<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Related items]]></title>
	<link>https://bioinformaticsonline.com/related/2727?offset=40</link>
	<atom:link href="https://bioinformaticsonline.com/related/2727?offset=40" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/22961/bioscripts</guid>
	<pubDate>Sun, 28 Jun 2015 07:46:14 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/22961/bioscripts</link>
	<title><![CDATA[BioScripts]]></title>
	<description><![CDATA[<p>You are requested to please bookmark collection of bioinformatics tools, scripts, codes that can be pieced together in a very easy and flexible manner to perform both simple and complex bioinformatics tasks.</p>
<p>The next-generation sequencing included whole genome sequencing(WGS), transcriptome sequencing (whole cDNA sequencing, RNA-seq), digital gene expression sequencing (Tag-Seq), ChIP-Seq, and so on. And there are many sequencing platform to generate sequece, as well know Sanger/ABi(the frist generation), Solexa/illumina, SOLiD/ABi, 454/Roche. But thier sequence format is different, also they have different error type. High quality data is very important for further analysis or data mining. There are many pipeline for raw sequence quality analysis and control with few of process for reporting reads quality statistical details, trimming, filtering, and error correction. Please bookmarks them for the benefits of bioinformatics community.</p>
<p>https://code.google.com/p/biowiki/</p>
<p>https://code.google.com/p/ngs-pipeline/source/browse/#svn%2Ftrunk</p>
<p>NGSand Perl scripts https://code.google.com/hosting/search?q=NGS+perl&amp;projectsearch=Search+projects</p>
<p>NGS and Python scripts https://code.google.com/hosting/search?q=NGS+Python&amp;projectsearch=Search+projects</p><p>Address of the bookmark: <a href="https://code.google.com/hosting/search?q=bioinformatics&amp;sa=Search" rel="nofollow">https://code.google.com/hosting/search?q=bioinformatics&amp;sa=Search</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/29479/how-to-install-perl-modules-on-mac-os-x-in-easy-steps</guid>
	<pubDate>Thu, 20 Oct 2016 07:26:29 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/29479/how-to-install-perl-modules-on-mac-os-x-in-easy-steps</link>
	<title><![CDATA[How to install Perl modules on Mac OS X in easy steps !!]]></title>
	<description><![CDATA[<p>Today at work, I learned how to install Perl modules using&nbsp;<a href="http://en.wikipedia.org/wiki/CPAN">CPAN</a>. It&rsquo;s a lot easier than I thought.</p><p>You see, for the past couple of years, I&rsquo;ve been a bit frustrated because OS X does not come with a whole lot of Perl modules pre-installed, and for all I googled, I couldn&rsquo;t find an &ldquo;idiot&rsquo;s&rdquo; guide for moderately-savvy-but-not-expert users like myself to install modules and dependencies on demand.</p><p>The only instructions I could find point to&nbsp;<a href="http://fink.sourceforge.net/">Fink</a>, which basically installs modules in a path that isn&rsquo;t included in the Perl @INC variable, meaning you have to manually specify the full path to the modules in every script &mdash; which is not a lot of fun if you&rsquo;re developing on OS X and deploying on Red Hat, for instance.</p><p>Moreover, Fink doesn&rsquo;t seem to make every module available, and it&rsquo;s not very easy to determine which Fink package you need to install if you need a particular module.</p><p>So, with a script that called on several apparently unavailable modules, and a deadline looming, I finally decided to suck it up and figure out how to use CPAN to install them:</p><h4>1) Make sure you have the Apple Developer Tools (XCode) installed.</h4><p>These are on one of your install discs, or available as a huge but free download from the&nbsp;<a href="https://developer.apple.com/xcode/">Apple Developer Connection</a>&nbsp;[free registration required] or the Mac App Store. I thought I had them, but apparently when we upgraded that computer to Tiger, they went missing.</p><p>If you don&rsquo;t have this stuff installed, your installation will fail with errors about unavailable commands.</p><h4>1.5) Install Command Line Tools (Recent XCode versions only)</h4><p>(Thank you to Tom Marchioro for informing me about this step.)</p><p>Older versions of XCode installed the command line tools (which are required to properly install CPAN modules) by default, but apparently newer ones do not. To check whether you have the command line tools already installed, run the following from the Terminal:</p><p><code>$ which make</code></p><p>This command checks the system for the &ldquo;<code>make</code>&rdquo; tool. If it spits out something like&nbsp;<code>/usr/bin/make</code>&nbsp;you&rsquo;re golden and can skip ahead to Step 2. If you just get a new prompt and no output, you&rsquo;ll need to install the tools:</p><ol>
<li>Launch XCode and bring up the Preferences panel.</li>
<li>Click on the Downloads tab</li>
<li>Click to install the Command Line Tools</li>
</ol><p>If you like, you can run&nbsp;<code>which make</code>&nbsp;again to confirm that everything&rsquo;s installed correctly.</p><h4>2) Configure CPAN.</h4><p><code>$ sudo perl -MCPAN -e shell</code></p><p><code>perl&gt; o conf init</code></p><p>This will prompt you for some settings. You can accept the defaults for almost everything (just hit &ldquo;return&rdquo;). The two things you must fill in are the path to&nbsp;<code>make</code>&nbsp;(which should be&nbsp;<code>/usr/bin/make</code>&nbsp;or the value returned when you run&nbsp;<code>which make</code>&nbsp;from the command line) and your choice of CPAN mirrors (which you actually choose don&rsquo;t really matter, but it won&rsquo;t let you finish until you select at least one). If you use a proxy or a very restrictive firewall, you may have to configure those settings as well.</p><p>If you skip Step 2, you may get errors about&nbsp;<code>make</code>&nbsp;being unavailable.</p><h4>3) Upgrade CPAN</h4><p><code>$ sudo perl -MCPAN -e 'install Bundle::CPAN'</code></p><p>Don&rsquo;t forget the&nbsp;<code>sudo</code>, or it&rsquo;ll fail with permissions errors, probably when doing something relatively unimportant like installing&nbsp;<code>man</code>&nbsp;files.</p><p>This will spend a long time downloading, testing, and compiling various files and dependencies. Bear with it. It will prompt you a few times about dependencies. You probably want to enter &ldquo;yes&rdquo;. I agreed to everything it asked me, and everything turned out fine. YMMV of course. If everything installs properly, it&rsquo;ll give you an &ldquo;OK&rdquo; at the end.</p><h4>4) Install your modules. For each module&hellip;.</h4><p><code>$ sudo perl -MCPAN -e 'install Bundle::Name'</code></p><p>or</p><p><code>$ sudo perl -MCPAN -e 'install Module::Name'</code></p><p>This will install the module&nbsp;<em>and</em>&nbsp;its dependencies. Nice, eh? Again, don&rsquo;t forget the&nbsp;<code>sudo</code>.</p><p>The first time you run this after upgrading CPAN, it may prompt you to configure again (see Step 2). If you accept its offer to try to configure itself automatically, it may just run through everything without a problem.</p><p>There are a couple of potential pitfalls with specific modules (such as the<code>LWP::UserAgent</code>&nbsp;/&nbsp;<code>HEAD</code>&nbsp;issue), but most have workarounds, and I haven&rsquo;t run into anything that wasn&rsquo;t easily recoverable.</p><p>And that&rsquo;s it!</p><p>Did you find this useful? Is there anything I missed?</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</guid>
	<pubDate>Sun, 18 Jun 2017 14:11:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</link>
	<title><![CDATA[Genetic-mapper: SVG Genetic Map Drawer]]></title>
	<description><![CDATA[<p><span>Genetic-mapper is a perl script able to draw publication-ready vectorial genetic maps.</span></p>
<p>Perl script for creating a publication-ready vectorial genetic/linkage map in Scalable Vector Graphics (SVG) format. The resulting file can either be submitted for publication and edited with any vectorial drawing software like&nbsp;<a href="https://inkscape.org/">Inkscape</a>&nbsp;and&nbsp;<a href="http://www.adobe.com/uk/products/illustrator.html">Abobe Illustrator(R)</a>.</p>
<p>The input file must be a text file with at least the marker name (ID), linkage group (LG) and the position (POS) separeted by tabulations. Additionally a logarithm of odds (LOD score) can be provided. Any extra parameter will be ignored.</p>
<pre><code>map.tsv

ID&lt;tab&gt;LG&lt;tab&gt;POS&lt;tab&gt;LOD
13519  12     0       0.250840894
2718   12     1.0     0.250840893
11040  12     1.6     0.252843341
...</code></pre>
<p>https://github.com/pseudogene/genetic-mapper</p><p>Address of the bookmark: <a href="https://github.com/pseudogene/genetic-mapper" rel="nofollow">https://github.com/pseudogene/genetic-mapper</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</guid>
	<pubDate>Tue, 26 Dec 2017 18:14:11 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</link>
	<title><![CDATA[Bioinformatics Web Application Development with Perl]]></title>
	<description><![CDATA[<div><p>Perl's second wave of adoption came from the growth of the world wide web. Dynamic web pages&mdash;the precursor to modern web applications&mdash;were easy to create with Perl and CGI. Thanks to Perl's ubiquity as a language for system administrators and its power to manipulate text, it was the default choice for web programming. Its presence everywhere made it popular and, in some ways, the duct tape of the Internet.</p><h4>Web Application Development</h4><p>The old days of CGI programs and the simple development style that represented seem clunky. Web pages have become web applications. Development has moved from generating static HTML to both client and server side programming, with rich client interfaces and powerful backends.</p><p>Perl is still well suited for developing modern web apps. The language grows more powerful and easier to use every year, the available libraries are wonderful and keep getting better, and the inventions and discoveries available in modern Perl are unsurpassed.</p><p>In particular, a modern Perl developer can do amazing things with modern Perl tools. If you still think of Perl web development as a&nbsp;<em>cgi-bin</em>&nbsp;directory full of messy scripts that spew warnings to STDERR, you're a decade out of date. Better yet, you can replace that mess piecemeal, thanks to the new tools and techniques of modern Perl. See, for example, the ever-growing list of technologies&nbsp;<a href="http://www.builtinperl.com/">Built in Perl</a>.</p><h4>Modern Perl Web Frameworks</h4><p>While the old wave of web development may have made the CGI.pm module central, modern Perl web programming follows a stricter separation of business logic, URL and request routing, and output. The days of slinging a string here, an array there, a Perl hash yonder, declaring every variable at the top of the program, and maybe making a subroutine are gone. The Perl world has seen the value of abstraction and ways to mechanize away boilerplate. Perl has dozens of frameworks and toolkits designed to make web development and deployment simpler.</p><p>Any of a dozen of these frameworks will help you do great things, but three in particular stand out. You can build web sites and web applications of tremendous value with all three. These are neither the only good possibilities (think of POE or Jifty or Continuity or...) nor the only mechanisms for web programming with Perl (see Mechanize or LWP or Mojo::UserAgent for more). Yet if you want three good options to choose between, start here.</p><h4>Catalyst</h4><p>The&nbsp;<a href="http://catalystframework.org/">Catalyst</a>&nbsp;framework is a flexible and powerful system for building small to large web apps. It uses the&nbsp;<a href="http://moose.perl.org/">Moose</a>&nbsp;object system to provide great APIs for extension and further development. It's the most mature of the modern top Perl web frameworks, yet it retains its flexibility and vibrancy. In particular, its plugin and extension ecosystem allows it to evolve to provide new and essential features.</p><p>Catalyst has embraced the Plack/PSGI standard for Perl web deployment and recent versions are exploring high-scalability, event-based request handling models.</p><h4>Dancer</h4><p>The&nbsp;<a href="http://perldancer.org/">Dancer</a>&nbsp;framework is deliberately minimal in syntax and scope, but it also has a vibrant plugin ecosystem. Dancer particularly excels for smaller sites and applications, though good programmers can build larger things with it.</p><p>The first version of Dancer was easy to use. Dancer 2 continues that ease while improving the internals and robustness of applications.</p><h4>Mojolicious</h4><p>The&nbsp;<a href="http://mojolicio.us/">Mojolicious</a>&nbsp;(Mojo) framework has a real-time design based on high performance event handling. Its focus is solving new and interesting problems in simple and effective ways, and the project has produced a lot of new code that does old things in better ways.</p><p>In particular, Mojolicious goes to great lengths to support new web standards, such as CSS 3, web sockets, and HTTP 2.</p><p>Where Catalyst embraces the CPAN fully, Mojolicious by design provides most of what an average app might need in a single download. It's still fully compatible with the CPAN, but the intention is to provide good working defaults in a package that's easy to start with. Mojo's fans are quick to praise it as fun to develop.</p><p>A modern Perl web developer should be familiar with at least one of these frameworks.</p><h4>Modern Perl Storage Mechanisms</h4><p>Perl's venerable&nbsp;<a href="http://search.cpan.org/perldoc?DBI">DBI</a>&nbsp;module has been the focal point of database access since its invention. Its design allows it to provide the same interface to huge relational databases and flat files alike through its DBD extension mechanism. Yet the DBI by itself isn't the be-all, end-all of data storage and access in Perl.</p><h4>DBIx::Class</h4><p><a href="http://search.cpan.org/perldoc?DBIx::Class">DBIx::Class</a>&nbsp;sits on top of DBI to provide an API to your database based on the concept of queries and results. This is often sufficient to remove all but the most complicated of SQL from your code, leaving you to manipulate your business models instead of the small details of how a relational database works. The power and maintainability you receive is well the small cost of the learning curve.</p><p>Even better, DBIC can manage (and even generate) your database schema for you.</p><p>Recent versions of DBIC have demonstrated that a well-written ORM can perform much better than even clever hand-written code. Because it builds on the Perl DBI, it scales everywhere from SQLite to PostgreSQL, MySQL, Oracle, and more.</p><h3>Rose::DB</h3><p>The lesser-known but no less powerful&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB::Object">Rose::DB::Object</a>&nbsp;builds on&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB">Rose::DB</a>&nbsp;to provide an object-relational mapper for Perl. While its high level features most directly compare to those of DBIx::Class, it's often measurably faster.</p><h4>NoSQL on the CPAN</h4><p>Of course the&nbsp;<a href="http://search.cpan.org/">CPAN</a>&nbsp;has modules for almost any NoSQL database or job queue or persistence mechanism you could name, and several you have never heard of. Everything you need is a quick CPAN or cpanm away!</p><h4>Modern Perl Deployment Strategies</h4><p>In the early days of the web, deploying a Perl web application meant putting one or more&nbsp;<em>.cgi</em>&nbsp;or&nbsp;<em>.pl</em>&nbsp;files in a special directory and hoping that your system administrator had everything configured correctly. The execution model was often slow and cumbersome, and accessing shared resources such as databases was often tricky.</p><p>Modern Perl has better choices. While deployment strategies are the source of many arguments, the return on your investment from learning the modern way is impressive.</p><h4>Plack/PSGI</h4><p>The PSGI specification (as exemplified by&nbsp;<a href="http://plackperl.org/">Plack</a>) describes a strategy for building Perl web apps independent of server and with the possibility to share custom processing behaviors.</p><p>In other words, it's a standard for writing Perl apps to take advantage of the huge ecosystem of Perl development available on the CPAN without tying yourself to a server like Apache, Apache 2, nginx, or anything else.</p><p>Any good modern Perl web framework (including those listed here) supports PSGI. Several deployment mechanisms exist to meet various business needs which also support PSGI. In particular, you can deploy the same application with a local testing server on your own machine as you can to your production server or servers without changing your application at all.</p><h4>mod_perl</h4><p>The older but still viable mod_perl Apache httpd module embeds Perl into the web server. This was the first widespread persistence mechanism for Perl web applications themselves and it's still popular to this day, though PSGI compliance is often the choice for new development. (PSGI handlers to use mod_perl as the backend are available.)</p><p>Modern Perl developers should familiarize themselves with PSGI and the wealth of available Plack middleware.</p><h4>Perl Web Development</h4><p>Of course no discussion of Perl web development would be complete without mentioning the strength of the CPAN. Almost any project will benefit from the wealth of freely available libraries built to solve real problems. These distributions run the gamut from full-blown web frameworks and content management systems to APIs for web services, development tools, testing systems, and interfaces to document formats and external resources.</p><p>For example, if you need to write a web service which accepts JSON data and produces Excel spreadsheets, you can glue together a few CPAN distributions and get the job done early. If you need to consume XML from a remote service and emit a PDF, you're in luck.</p><p>Perl's prowess as a general purpose programming language as well as its flexibility and power in managing text and gluing systems together make it a wonderful fit for web development. The community's adoption of modern Perl standards such as PSGI and Plack only enhance your power.</p><p>Web application development in Perl is still viable, and modern Perl tools and techniques and libraries make it more powerful and pleasant than ever.</p></div>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/36185/installing-bioscf-perl-module</guid>
	<pubDate>Mon, 09 Apr 2018 04:04:29 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/36185/installing-bioscf-perl-module</link>
	<title><![CDATA[Installing Bio::SCF perl module]]></title>
	<description><![CDATA[<p>Most Perl modules are written in Perl, some use&nbsp;<a href="http://perldoc.perl.org/perlxs.html">XS</a>&nbsp;(they are written in&nbsp;<a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a>) so require a C&nbsp;<a href="http://en.wikipedia.org/wiki/Compiler">compiler</a>&nbsp;(it's easy to get this setup - don't panic), see your OS of choice below to find out how to get the right compiler. Modules may have dependencies on other modules (almost always on&nbsp;<a href="http://www.cpan.org/">CPAN</a>) and cannot be installed without them (or without a specific version of them). Many modules on CPAN require a somewhat recent version of Perl (version 5.8 or above).</p><p>More about the basic perl module installation steps check this&nbsp;http://bioinformaticsonline.com/blog/view/710/how-to-install-perl-modules-manually-using-cpan-command-and-other-quick-ways</p><p>installing Bio::SCF perl module is daunting task, specieally because of it dependencies. Here is the steps, you need to follow to sucessfully install Bio::SCF module</p><p>#sudo apt-get install libbio-scf-perl #trev for visualization of scf file</p><p><strong>1. You will need the zlib library which can be found at http://www.zlib.net/.</strong></p><p>install zlib library first:</p><p>jitendra@jitendra-UNLOCK-INSTALL[zlib-1.2.11] ./configure []<br />Checking for gcc...<br />Checking for shared library support...<br />Building shared library libz.so.1.2.11 with gcc.<br />Checking for size_t... Yes.<br />Checking for off64_t... Yes.<br />Checking for fseeko... Yes.<br />Checking for strerror... Yes.<br />Checking for unistd.h... Yes.<br />Checking for stdarg.h... Yes.<br />Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().<br />Checking for vsnprintf() in stdio.h... Yes.<br />Checking for return value of vsnprintf()... Yes.<br />Checking for attribute(visibility) support... Yes.<br />jitendra@jitendra-UNLOCK-INSTALL[zlib-1.2.11] make []<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o adler32.o adler32.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o crc32.o crc32.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o deflate.o deflate.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o infback.o infback.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inffast.o inffast.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inflate.o inflate.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o inftrees.o inftrees.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o trees.o trees.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o zutil.o zutil.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o compress.o compress.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o uncompr.o uncompr.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzclose.o gzclose.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzlib.o gzlib.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzread.o gzread.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -c -o gzwrite.o gzwrite.c<br />ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o <br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/adler32.o adler32.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/crc32.o crc32.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/deflate.o deflate.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/infback.o infback.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inffast.o inffast.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inflate.o inflate.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/inftrees.o inftrees.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/trees.o trees.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/zutil.o zutil.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/compress.o compress.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/uncompr.o uncompr.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzclose.o gzclose.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzlib.o gzlib.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzread.o gzread.c<br />gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -DPIC -c -o objs/gzwrite.o gzwrite.c<br />gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc <br />rm -f libz.so libz.so.1<br />ln -s libz.so.1.2.11 libz.so<br />ln -s libz.so.1.2.11 libz.so.1<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.11<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.11<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c<br />gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a<br />jitendra@jitendra-UNLOCK-INSTALL[zlib-1.2.11] sudo make install []<br />[sudo] password for jitendra: <br />rm -f /usr/local/lib/libz.a<br />cp libz.a /usr/local/lib<br />chmod 644 /usr/local/lib/libz.a<br />cp libz.so.1.2.11 /usr/local/lib<br />chmod 755 /usr/local/lib/libz.so.1.2.11<br />rm -f /usr/local/share/man/man3/zlib.3<br />cp zlib.3 /usr/local/share/man/man3<br />chmod 644 /usr/local/share/man/man3/zlib.3<br />rm -f /usr/local/lib/pkgconfig/zlib.pc<br />cp zlib.pc /usr/local/lib/pkgconfig<br />chmod 644 /usr/local/lib/pkgconfig/zlib.pc<br />rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h<br />cp zlib.h zconf.h /usr/local/include<br />chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h<br />&nbsp;</p><p><br /><strong>2. Now make io_lib-1.9</strong></p><p>In order to install this perl extension you have to install io-lib version 1.9 or higher from the Staden library (staden.sourceforge.net). This can be downloaded from https://sourceforge.net/project/showfiles.php?group_id=100316&amp;package_id=108243&amp;release_id=340318 confirm that the package installed correctly look for a library named "libread".</p><p>jitendra@jitendra-UNLOCK-INSTALL[io_lib-1.9.0] export CFLAGS="-fPIC" &amp;&amp; ./configure <br />checking for a BSD-compatible install... /usr/bin/install -c<br />checking whether build environment is sane... yes<br />checking for gawk... gawk<br />checking whether make sets $(MAKE)... yes<br />checking for gcc... gcc<br />checking for C compiler default output file name... a.out<br />checking whether the C compiler works... yes<br />checking whether we are cross compiling... no<br />checking for suffix of executables... <br />checking for suffix of object files... o<br />checking whether we are using the GNU C compiler... yes<br />checking whether gcc accepts -g... yes<br />checking for gcc option to accept ANSI C... none needed<br />checking for style of include used by make... GNU<br />checking dependency style of gcc... gcc3<br />checking for a BSD-compatible install... /usr/bin/install -c<br />checking for ranlib... ranlib<br />checking for main in -lz... yes<br />checking how to run the C preprocessor... gcc -E<br />checking for egrep... grep -E<br />checking for ANSI C header files... yes<br />checking for sys/wait.h that is POSIX.1 compatible... yes<br />checking for sys/types.h... yes<br />checking for sys/stat.h... yes<br />checking for stdlib.h... yes<br />checking for string.h... yes<br />checking for memory.h... yes<br />checking for strings.h... yes<br />checking for inttypes.h... yes<br />checking for stdint.h... yes<br />checking for unistd.h... yes<br />checking fcntl.h usability... yes<br />checking fcntl.h presence... yes<br />checking for fcntl.h... yes<br />checking limits.h usability... yes<br />checking limits.h presence... yes<br />checking for limits.h... yes<br />checking for unistd.h... (cached) yes<br />checking zlib.h usability... yes<br />checking zlib.h presence... yes<br />checking for zlib.h... yes<br />checking whether byte ordering is bigendian... no<br />checking for short... yes<br />checking size of short... 2<br />checking for int... yes<br />checking size of int... 4<br />checking for long... yes<br />checking size of long... 8<br />checking for inline... inline<br />checking for mode_t... yes<br />checking build system type... x86_64-unknown-linux-gnu<br />checking host system type... x86_64-unknown-linux-gnu<br />checking for cos in -lm... yes<br />checking for strdup... yes<br />configure: creating ./config.status<br />config.status: creating Makefile<br />config.status: creating read/Makefile<br />config.status: creating progs/Makefile<br />config.status: creating config.h<br />config.status: executing depfiles commands<br />jitendra@jitendra-UNLOCK-INSTALL[io_lib-1.9.0] make []<br />make all-recursive<br />make[1]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />Making all in read<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT Read.o -MD -MP -MF ".deps/Read.Tpo" -c -o Read.o Read.c; \<br />then mv -f ".deps/Read.Tpo" ".deps/Read.Po"; else rm -f ".deps/Read.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT scf_extras.o -MD -MP -MF ".deps/scf_extras.Tpo" -c -o scf_extras.o scf_extras.c; \<br />then mv -f ".deps/scf_extras.Tpo" ".deps/scf_extras.Po"; else rm -f ".deps/scf_extras.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT translate.o -MD -MP -MF ".deps/translate.Tpo" -c -o translate.o translate.c; \<br />then mv -f ".deps/translate.Tpo" ".deps/translate.Po"; else rm -f ".deps/translate.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT compression.o -MD -MP -MF ".deps/compression.Tpo" -c -o compression.o `test -f '../ztr/compression.c' || echo './'`../ztr/compression.c; \<br />then mv -f ".deps/compression.Tpo" ".deps/compression.Po"; else rm -f ".deps/compression.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT ztr.o -MD -MP -MF ".deps/ztr.Tpo" -c -o ztr.o `test -f '../ztr/ztr.c' || echo './'`../ztr/ztr.c; \<br />then mv -f ".deps/ztr.Tpo" ".deps/ztr.Po"; else rm -f ".deps/ztr.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT ztr_translate.o -MD -MP -MF ".deps/ztr_translate.Tpo" -c -o ztr_translate.o `test -f '../ztr/ztr_translate.c' || echo './'`../ztr/ztr_translate.c; \<br />then mv -f ".deps/ztr_translate.Tpo" ".deps/ztr_translate.Po"; else rm -f ".deps/ztr_translate.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT fpoint.o -MD -MP -MF ".deps/fpoint.Tpo" -c -o fpoint.o `test -f '../abi/fpoint.c' || echo './'`../abi/fpoint.c; \<br />then mv -f ".deps/fpoint.Tpo" ".deps/fpoint.Po"; else rm -f ".deps/fpoint.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT seqIOABI.o -MD -MP -MF ".deps/seqIOABI.Tpo" -c -o seqIOABI.o `test -f '../abi/seqIOABI.c' || echo './'`../abi/seqIOABI.c; \<br />then mv -f ".deps/seqIOABI.Tpo" ".deps/seqIOABI.Po"; else rm -f ".deps/seqIOABI.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT seqIOALF.o -MD -MP -MF ".deps/seqIOALF.Tpo" -c -o seqIOALF.o `test -f '../alf/seqIOALF.c' || echo './'`../alf/seqIOALF.c; \<br />then mv -f ".deps/seqIOALF.Tpo" ".deps/seqIOALF.Po"; else rm -f ".deps/seqIOALF.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT ctfCompress.o -MD -MP -MF ".deps/ctfCompress.Tpo" -c -o ctfCompress.o `test -f '../ctf/ctfCompress.c' || echo './'`../ctf/ctfCompress.c; \<br />then mv -f ".deps/ctfCompress.Tpo" ".deps/ctfCompress.Po"; else rm -f ".deps/ctfCompress.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT seqIOCTF.o -MD -MP -MF ".deps/seqIOCTF.Tpo" -c -o seqIOCTF.o `test -f '../ctf/seqIOCTF.c' || echo './'`../ctf/seqIOCTF.c; \<br />then mv -f ".deps/seqIOCTF.Tpo" ".deps/seqIOCTF.Po"; else rm -f ".deps/seqIOCTF.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT expFileIO.o -MD -MP -MF ".deps/expFileIO.Tpo" -c -o expFileIO.o `test -f '../exp_file/expFileIO.c' || echo './'`../exp_file/expFileIO.c; \<br />then mv -f ".deps/expFileIO.Tpo" ".deps/expFileIO.Po"; else rm -f ".deps/expFileIO.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT seqIOPlain.o -MD -MP -MF ".deps/seqIOPlain.Tpo" -c -o seqIOPlain.o `test -f '../plain/seqIOPlain.c' || echo './'`../plain/seqIOPlain.c; \<br />then mv -f ".deps/seqIOPlain.Tpo" ".deps/seqIOPlain.Po"; else rm -f ".deps/seqIOPlain.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT misc_scf.o -MD -MP -MF ".deps/misc_scf.Tpo" -c -o misc_scf.o `test -f '../scf/misc_scf.c' || echo './'`../scf/misc_scf.c; \<br />then mv -f ".deps/misc_scf.Tpo" ".deps/misc_scf.Po"; else rm -f ".deps/misc_scf.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT read_scf.o -MD -MP -MF ".deps/read_scf.Tpo" -c -o read_scf.o `test -f '../scf/read_scf.c' || echo './'`../scf/read_scf.c; \<br />then mv -f ".deps/read_scf.Tpo" ".deps/read_scf.Po"; else rm -f ".deps/read_scf.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT write_scf.o -MD -MP -MF ".deps/write_scf.Tpo" -c -o write_scf.o `test -f '../scf/write_scf.c' || echo './'`../scf/write_scf.c; \<br />then mv -f ".deps/write_scf.Tpo" ".deps/write_scf.Po"; else rm -f ".deps/write_scf.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT array.o -MD -MP -MF ".deps/array.Tpo" -c -o array.o `test -f '../utils/array.c' || echo './'`../utils/array.c; \<br />then mv -f ".deps/array.Tpo" ".deps/array.Po"; else rm -f ".deps/array.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT compress.o -MD -MP -MF ".deps/compress.Tpo" -c -o compress.o `test -f '../utils/compress.c' || echo './'`../utils/compress.c; \<br />then mv -f ".deps/compress.Tpo" ".deps/compress.Po"; else rm -f ".deps/compress.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT error.o -MD -MP -MF ".deps/error.Tpo" -c -o error.o `test -f '../utils/error.c' || echo './'`../utils/error.c; \<br />then mv -f ".deps/error.Tpo" ".deps/error.Po"; else rm -f ".deps/error.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT files.o -MD -MP -MF ".deps/files.Tpo" -c -o files.o `test -f '../utils/files.c' || echo './'`../utils/files.c; \<br />then mv -f ".deps/files.Tpo" ".deps/files.Po"; else rm -f ".deps/files.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT find.o -MD -MP -MF ".deps/find.Tpo" -c -o find.o `test -f '../utils/find.c' || echo './'`../utils/find.c; \<br />then mv -f ".deps/find.Tpo" ".deps/find.Po"; else rm -f ".deps/find.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT mach-io.o -MD -MP -MF ".deps/mach-io.Tpo" -c -o mach-io.o `test -f '../utils/mach-io.c' || echo './'`../utils/mach-io.c; \<br />then mv -f ".deps/mach-io.Tpo" ".deps/mach-io.Po"; else rm -f ".deps/mach-io.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT open_trace_file.o -MD -MP -MF ".deps/open_trace_file.Tpo" -c -o open_trace_file.o `test -f '../utils/open_trace_file.c' || echo './'`../utils/open_trace_file.c; \<br />then mv -f ".deps/open_trace_file.Tpo" ".deps/open_trace_file.Po"; else rm -f ".deps/open_trace_file.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT read_alloc.o -MD -MP -MF ".deps/read_alloc.Tpo" -c -o read_alloc.o `test -f '../utils/read_alloc.c' || echo './'`../utils/read_alloc.c; \<br />then mv -f ".deps/read_alloc.Tpo" ".deps/read_alloc.Po"; else rm -f ".deps/read_alloc.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT strings.o -MD -MP -MF ".deps/strings.Tpo" -c -o strings.o `test -f '../utils/strings.c' || echo './'`../utils/strings.c; \<br />then mv -f ".deps/strings.Tpo" ".deps/strings.Po"; else rm -f ".deps/strings.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT traceType.o -MD -MP -MF ".deps/traceType.Tpo" -c -o traceType.o `test -f '../utils/traceType.c' || echo './'`../utils/traceType.c; \<br />then mv -f ".deps/traceType.Tpo" ".deps/traceType.Po"; else rm -f ".deps/traceType.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT xalloc.o -MD -MP -MF ".deps/xalloc.Tpo" -c -o xalloc.o `test -f '../utils/xalloc.c' || echo './'`../utils/xalloc.c; \<br />then mv -f ".deps/xalloc.Tpo" ".deps/xalloc.Po"; else rm -f ".deps/xalloc.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT vlen.o -MD -MP -MF ".deps/vlen.Tpo" -c -o vlen.o `test -f '../utils/vlen.c' || echo './'`../utils/vlen.c; \<br />then mv -f ".deps/vlen.Tpo" ".deps/vlen.Po"; else rm -f ".deps/vlen.Tpo"; exit 1; fi<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT hash_table.o -MD -MP -MF ".deps/hash_table.Tpo" -c -o hash_table.o `test -f '../utils/hash_table.c' || echo './'`../utils/hash_table.c; \<br />then mv -f ".deps/hash_table.Tpo" ".deps/hash_table.Po"; else rm -f ".deps/hash_table.Tpo"; exit 1; fi<br />../utils/hash_table.c: In function &lsquo;HashFileOpen&rsquo;:<br />../utils/hash_table.c:920:21: warning: field precision specifier &lsquo;.*&rsquo; expects argument of type &lsquo;int&rsquo;, but argument 3 has type &lsquo;long int&rsquo; [-Wformat=]<br /> sprintf(aname, "%.*s%s", cp-fname+1, fname, hf-&gt;archive);<br /> ^<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT mFILE.o -MD -MP -MF ".deps/mFILE.Tpo" -c -o mFILE.o `test -f '../utils/mFILE.c' || echo './'`../utils/mFILE.c; \<br />then mv -f ".deps/mFILE.Tpo" ".deps/mFILE.Po"; else rm -f ".deps/mFILE.Tpo"; exit 1; fi<br />rm -f libread.a<br />ar cru libread.a Read.o scf_extras.o translate.o compression.o ztr.o ztr_translate.o fpoint.o seqIOABI.o seqIOALF.o ctfCompress.o seqIOCTF.o expFileIO.o seqIOPlain.o misc_scf.o read_scf.o write_scf.o array.o compress.o error.o files.o find.o mach-io.o open_trace_file.o read_alloc.o strings.o traceType.o xalloc.o vlen.o hash_table.o mFILE.o <br />ar: `u' modifier ignored since `D' is the default (see `U')<br />ranlib libread.a<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />Making all in progs<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT convert_trace.o -MD -MP -MF ".deps/convert_trace.Tpo" -c -o convert_trace.o convert_trace.c; \<br />then mv -f ".deps/convert_trace.Tpo" ".deps/convert_trace.Po"; else rm -f ".deps/convert_trace.Tpo"; exit 1; fi<br />gcc -fPIC -o convert_trace convert_trace.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT makeSCF.o -MD -MP -MF ".deps/makeSCF.Tpo" -c -o makeSCF.o makeSCF.c; \<br />then mv -f ".deps/makeSCF.Tpo" ".deps/makeSCF.Po"; else rm -f ".deps/makeSCF.Tpo"; exit 1; fi<br />gcc -fPIC -o makeSCF makeSCF.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT extract_seq.o -MD -MP -MF ".deps/extract_seq.Tpo" -c -o extract_seq.o extract_seq.c; \<br />then mv -f ".deps/extract_seq.Tpo" ".deps/extract_seq.Po"; else rm -f ".deps/extract_seq.Tpo"; exit 1; fi<br />gcc -fPIC -o extract_seq extract_seq.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT index_tar.o -MD -MP -MF ".deps/index_tar.Tpo" -c -o index_tar.o index_tar.c; \<br />then mv -f ".deps/index_tar.Tpo" ".deps/index_tar.Po"; else rm -f ".deps/index_tar.Tpo"; exit 1; fi<br />gcc -fPIC -o index_tar index_tar.o <br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT scf_dump.o -MD -MP -MF ".deps/scf_dump.Tpo" -c -o scf_dump.o scf_dump.c; \<br />then mv -f ".deps/scf_dump.Tpo" ".deps/scf_dump.Po"; else rm -f ".deps/scf_dump.Tpo"; exit 1; fi<br />gcc -fPIC -o scf_dump scf_dump.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT scf_info.o -MD -MP -MF ".deps/scf_info.Tpo" -c -o scf_info.o scf_info.c; \<br />then mv -f ".deps/scf_info.Tpo" ".deps/scf_info.Po"; else rm -f ".deps/scf_info.Tpo"; exit 1; fi<br />gcc -fPIC -o scf_info scf_info.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT scf_update.o -MD -MP -MF ".deps/scf_update.Tpo" -c -o scf_update.o scf_update.c; \<br />then mv -f ".deps/scf_update.Tpo" ".deps/scf_update.Po"; else rm -f ".deps/scf_update.Tpo"; exit 1; fi<br />gcc -fPIC -o scf_update scf_update.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT get_comment.o -MD -MP -MF ".deps/get_comment.Tpo" -c -o get_comment.o get_comment.c; \<br />then mv -f ".deps/get_comment.Tpo" ".deps/get_comment.Po"; else rm -f ".deps/get_comment.Tpo"; exit 1; fi<br />gcc -fPIC -o get_comment get_comment.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT hash_tar.o -MD -MP -MF ".deps/hash_tar.Tpo" -c -o hash_tar.o hash_tar.c; \<br />then mv -f ".deps/hash_tar.Tpo" ".deps/hash_tar.Po"; else rm -f ".deps/hash_tar.Tpo"; exit 1; fi<br />gcc -fPIC -o hash_tar hash_tar.o ../read/libread.a -lz -lm <br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT hash_extract.o -MD -MP -MF ".deps/hash_extract.Tpo" -c -o hash_extract.o hash_extract.c; \<br />then mv -f ".deps/hash_extract.Tpo" ".deps/hash_extract.Po"; else rm -f ".deps/hash_extract.Tpo"; exit 1; fi<br />gcc -fPIC -o hash_extract hash_extract.o ../read/libread.a -lz -lm <br />if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../read -I../alf -I../abi -I../ctf -I../ztr -I../plain -I../scf -I../exp_file -I../utils -I/usr/local/include -fPIC -MT trace_dump.o -MD -MP -MF ".deps/trace_dump.Tpo" -c -o trace_dump.o trace_dump.c; \<br />then mv -f ".deps/trace_dump.Tpo" ".deps/trace_dump.Po"; else rm -f ".deps/trace_dump.Tpo"; exit 1; fi<br />gcc -fPIC -o trace_dump trace_dump.o ../read/libread.a -lz -lm <br />../read/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />make[1]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0'<br /><br />jitendra@jitendra-UNLOCK-INSTALL[io_lib-1.9.0] sudo make install []<br />[sudo] password for jitendra: <br />Making install in read<br />make[1]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />test -z "/usr/local/lib" || mkdir -p -- "/usr/local/lib"<br /> /usr/bin/install -c -m 644 'libread.a' '/usr/local/lib/libread.a'<br /> ranlib '/usr/local/lib/libread.a'<br />make[2]: Nothing to be done for 'install-data-am'.<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />make[1]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/read'<br />Making install in progs<br />make[1]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"<br /> /usr/bin/install -c 'convert_trace' '/usr/local/bin/convert_trace'<br /> /usr/bin/install -c 'makeSCF' '/usr/local/bin/makeSCF'<br /> /usr/bin/install -c 'extract_seq' '/usr/local/bin/extract_seq'<br /> /usr/bin/install -c 'index_tar' '/usr/local/bin/index_tar'<br /> /usr/bin/install -c 'scf_dump' '/usr/local/bin/scf_dump'<br /> /usr/bin/install -c 'scf_info' '/usr/local/bin/scf_info'<br /> /usr/bin/install -c 'scf_update' '/usr/local/bin/scf_update'<br /> /usr/bin/install -c 'get_comment' '/usr/local/bin/get_comment'<br /> /usr/bin/install -c 'hash_tar' '/usr/local/bin/hash_tar'<br /> /usr/bin/install -c 'hash_extract' '/usr/local/bin/hash_extract'<br /> /usr/bin/install -c 'trace_dump' '/usr/local/bin/trace_dump'<br />make[2]: Nothing to be done for 'install-data-am'.<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />make[1]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0/progs'<br />make[1]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />make[2]: Entering directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />make[2]: Nothing to be done for 'install-exec-am'.<br />test -z "/usr/local/man/man3" || mkdir -p -- "/usr/local/man/man3"<br /> /usr/bin/install -c -m 644 './man/man3/exp2read.3' '/usr/local/man/man3/exp2read.3'<br /> /usr/bin/install -c -m 644 './man/man3/ExperimentFile.3' '/usr/local/man/man3/ExperimentFile.3'<br /> /usr/bin/install -c -m 644 './man/man3/fread_reading.3' '/usr/local/man/man3/fread_reading.3'<br /> /usr/bin/install -c -m 644 './man/man3/fread_scf.3' '/usr/local/man/man3/fread_scf.3'<br /> /usr/bin/install -c -m 644 './man/man3/fwrite_reading.3' '/usr/local/man/man3/fwrite_reading.3'<br /> /usr/bin/install -c -m 644 './man/man3/fwrite_scf.3' '/usr/local/man/man3/fwrite_scf.3'<br /> /usr/bin/install -c -m 644 './man/man3/read2exp.3' '/usr/local/man/man3/read2exp.3'<br /> /usr/bin/install -c -m 644 './man/man3/read2scf.3' '/usr/local/man/man3/read2scf.3'<br /> /usr/bin/install -c -m 644 './man/man3/read_allocate.3' '/usr/local/man/man3/read_allocate.3'<br /> /usr/bin/install -c -m 644 './man/man3/read_deallocate.3' '/usr/local/man/man3/read_deallocate.3'<br /> /usr/bin/install -c -m 644 './man/man3/read_reading.3' '/usr/local/man/man3/read_reading.3'<br /> /usr/bin/install -c -m 644 './man/man3/read_scf.3' '/usr/local/man/man3/read_scf.3'<br /> /usr/bin/install -c -m 644 './man/man3/read_scf_header.3' '/usr/local/man/man3/read_scf_header.3'<br /> /usr/bin/install -c -m 644 './man/man3/scf2read.3' '/usr/local/man/man3/scf2read.3'<br /> /usr/bin/install -c -m 644 './man/man3/write_reading.3' '/usr/local/man/man3/write_reading.3'<br /> /usr/bin/install -c -m 644 './man/man3/write_scf.3' '/usr/local/man/man3/write_scf.3'<br /> /usr/bin/install -c -m 644 './man/man3/write_scf_header.3' '/usr/local/man/man3/write_scf_header.3'<br />test -z "/usr/local/man/man4" || mkdir -p -- "/usr/local/man/man4"<br /> /usr/bin/install -c -m 644 './man/man4/Read.4' '/usr/local/man/man4/Read.4'<br />test -z "/usr/local/include/io_lib" || mkdir -p -- "/usr/local/include/io_lib"<br /> /usr/bin/install -c -m 644 'read/Read.h' '/usr/local/include/io_lib/Read.h'<br /> /usr/bin/install -c -m 644 'read/scf_extras.h' '/usr/local/include/io_lib/scf_extras.h'<br /> /usr/bin/install -c -m 644 'read/translate.h' '/usr/local/include/io_lib/translate.h'<br /> /usr/bin/install -c -m 644 'abi/abi.h' '/usr/local/include/io_lib/abi.h'<br /> /usr/bin/install -c -m 644 'abi/fpoint.h' '/usr/local/include/io_lib/fpoint.h'<br /> /usr/bin/install -c -m 644 'abi/seqIOABI.h' '/usr/local/include/io_lib/seqIOABI.h'<br /> /usr/bin/install -c -m 644 'alf/alf.h' '/usr/local/include/io_lib/alf.h'<br /> /usr/bin/install -c -m 644 'ctf/seqIOCTF.h' '/usr/local/include/io_lib/seqIOCTF.h'<br /> /usr/bin/install -c -m 644 'exp_file/expFileIO.h' '/usr/local/include/io_lib/expFileIO.h'<br /> /usr/bin/install -c -m 644 'plain/plain.h' '/usr/local/include/io_lib/plain.h'<br /> /usr/bin/install -c -m 644 'scf/scf.h' '/usr/local/include/io_lib/scf.h'<br /> /usr/bin/install -c -m 644 'utils/array.h' '/usr/local/include/io_lib/array.h'<br /> /usr/bin/install -c -m 644 'utils/compress.h' '/usr/local/include/io_lib/compress.h'<br /> /usr/bin/install -c -m 644 'utils/error.h' '/usr/local/include/io_lib/error.h'<br /> /usr/bin/install -c -m 644 'utils/mach-io.h' '/usr/local/include/io_lib/mach-io.h'<br /> /usr/bin/install -c -m 644 'utils/misc.h' '/usr/local/include/io_lib/misc.h'<br /> /usr/bin/install -c -m 644 'utils/open_trace_file.h' '/usr/local/include/io_lib/open_trace_file.h'<br /> /usr/bin/install -c -m 644 'utils/tar_format.h' '/usr/local/include/io_lib/tar_format.h'<br /> /usr/bin/install -c -m 644 'utils/traceType.h' '/usr/local/include/io_lib/traceType.h'<br /> /usr/bin/install -c -m 644 'utils/xalloc.h' '/usr/local/include/io_lib/xalloc.h'<br /> /usr/bin/install -c -m 644 'utils/mFILE.h' '/usr/local/include/io_lib/mFILE.h'<br /> /usr/bin/install -c -m 644 'utils/stdio_hack.h' '/usr/local/include/io_lib/stdio_hack.h'<br /> /usr/bin/install -c -m 644 'utils/vlen.h' '/usr/local/include/io_lib/vlen.h'<br /> /usr/bin/install -c -m 644 'utils/hash_table.h' '/usr/local/include/io_lib/hash_table.h'<br /> /usr/bin/install -c -m 644 'utils/os.h' '/usr/local/include/io_lib/os.h'<br /> /usr/bin/install -c -m 644 'ztr/compression.h' '/usr/local/include/io_lib/compression.h'<br /> /usr/bin/install -c -m 644 'ztr/ztr.h' '/usr/local/include/io_lib/ztr.h'<br />make[2]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0'<br />make[1]: Leaving directory '/home/jitendra/Downloads/io_lib-1.9.0'</p><p><strong>3. Now install Bio::SCF</strong></p><p>Now follows these steps:</p><p>tar zxf Bio::SCF.tar<br />cd Bio::SCF<br />perl Makefile.PL<br />make<br />make test<br />make install</p><p>jitendra@jitendra-UNLOCK-INSTALL[Bio-SCF-1.01] perl Makefile.PL []<br />Checking if your kit is complete...<br />Looks good<br />Generating a Unix-style Makefile<br />Writing Makefile for Bio::SCF<br />Writing MYMETA.yml and MYMETA.json<br />jitendra@jitendra-UNLOCK-INSTALL[Bio-SCF-1.01] make []<br />cp SCF.pm blib/lib/Bio/SCF.pm<br />cp SCF/Arrays.pm blib/lib/Bio/SCF/Arrays.pm<br />Running Mkbootstrap for Bio::SCF ()<br />chmod 644 "SCF.bs"<br />"/usr/bin/perl" "/usr/share/perl/5.22/ExtUtils/xsubpp" -typemap "/usr/share/perl/5.22/ExtUtils/typemap" SCF.xs &gt; SCF.xsc &amp;&amp; mv SCF.xsc SCF.c<br />Please specify prototyping behavior for SCF.xs (see perlxs manual)<br />x86_64-linux-gnu-gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -DVERSION=\"1.01\" -DXS_VERSION=\"1.01\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.22/CORE" -DLITTLE_ENDIAN SCF.c<br />In file included from /usr/lib/x86_64-linux-gnu/perl/5.22/CORE/perl.h:5546:0,<br /> from SCF.xs:5:<br />SCF.xs: In function &lsquo;XS_Bio__SCF_get_scf_pointer&rsquo;:<br />SCF.xs:57:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]<br /> ret_val = newSViv((int)scf_data);<br /> ^<br />/usr/lib/x86_64-linux-gnu/perl/5.22/CORE/embed.h:402:40: note: in definition of macro &lsquo;newSViv&rsquo;<br /> #define newSViv(a) Perl_newSViv(aTHX_ a)<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_get_scf_fpointer&rsquo;:<br />SCF.xs:80:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]<br /> ret_val = newSViv((int)scf_data);<br /> ^<br />/usr/lib/x86_64-linux-gnu/perl/5.22/CORE/embed.h:402:40: note: in definition of macro &lsquo;newSViv&rsquo;<br /> #define newSViv(a) Perl_newSViv(aTHX_ a)<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_scf_free&rsquo;:<br />SCF.xs:89:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> scf_deallocate((Scf *)scf_pointer);<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_get_comments&rsquo;:<br />SCF.xs:95:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_set_comments&rsquo;:<br />SCF.xs:108:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_scf_write&rsquo;:<br />SCF.xs:121:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_scf_fwrite&rsquo;:<br />SCF.xs:137:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_get_from_header&rsquo;:<br />SCF.xs:159:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_get_at&rsquo;:<br />SCF.xs:186:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_set_base_at&rsquo;:<br />SCF.xs:242:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />SCF.xs: In function &lsquo;XS_Bio__SCF_set_at&rsquo;:<br />SCF.xs:255:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]<br /> Scf *scf_data = (Scf *)scf_pointer;<br /> ^<br />rm -f blib/arch/auto/Bio/SCF/SCF.so<br />x86_64-linux-gnu-gcc -shared -L/usr/local/lib -fstack-protector-strong SCF.o -o blib/arch/auto/Bio/SCF/SCF.so \<br /> -lread -lz \<br /> <br />/usr/local/lib/libread.a(open_trace_file.o): In function `find_file_url':<br />open_trace_file.c:(.text+0xaf4): warning: the use of `tempnam' is dangerous, better use `mkstemp'<br />chmod 755 blib/arch/auto/Bio/SCF/SCF.so<br />"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- SCF.bs blib/arch/auto/Bio/SCF/SCF.bs 644<br />Manifying 1 pod document</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/37590/parallel-processing-with-perl</guid>
	<pubDate>Sat, 25 Aug 2018 11:32:40 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/37590/parallel-processing-with-perl</link>
	<title><![CDATA[Parallel Processing with Perl !]]></title>
	<description><![CDATA[<p>Here is a small tutorial on how to make best use of multiple processors for bioinformatics analysis. One best way is using perl threads and forks. Knowing how these threads and forks work is very important before implementing them. Getting to know how these work would be really useful before reading this tutorial.</p><p>Many times in bioinformatics we need to deal with huge datasets which&nbsp; are more than 100GB size. The traditional way to analysis a file is using the while loop</p><p>while (FILE){</p><p>Do something;</p><p>}</p><p>This is very slow(since we are using only one processor) and if we have 500 million lines in the dataset it takes more than a day to iterate through the whole dataset. So how do we make best use of all our processors and get the work done quickly?</p><p>Here is a very simple and efficient technique with perl which i have been using. I am&nbsp; more inclined towards using perl fork than perl threads.</p><p>One of the oldest way to fork is</p><blockquote><p>my $fork = fork();<br />if($fork){&nbsp;&nbsp;&nbsp;<br />push (@childs,$fork);&nbsp;<br />}<br />elseif($fork==0){<br /><strong>your code here;</strong><br />exit(0);<br />}<br />else{die &ldquo;Couldnt fork : $!&rdquo;;}</p><p>## wait for the child process to finish<br />foreach(@childs){<br />my $tmp=waitid($_,0);<br />}</p></blockquote><p>what a fork does is it creates a child process and takes the variables and code with it to analyze it separately (detached from the parent process) and thus a separate process is created( which usually runs on a separate processor). Thats it!! One big disadvantage of forking is its very difficult to share variables among the different processes. I will show you how to do it easily but still it has its own drawbacks.</p><blockquote><p>Okie, now if you really do not want to use fork in your code, that&rsquo;s okie too..There are many useful modules which do it for you very efficiently. One really useful module is Parallel::ForkManager. You can use Parallel::ForkManager to manage the number of forks you want to generate (number of processors you want to use).</p><p><strong>Simple usage:</strong><br />use Parallel::ForkManager;<br />my $max_processors=8;<br />my $fork= new Parallel::ForkManager($max_processors);<br />foreach (@dna) {<br />$fork-&gt;start and next; # do the fork<br /><strong>you code here;</strong><br />$fork-&gt;finish; # do the exit in the child process<br />}<br />$pm-&gt;wait_all_children;</p></blockquote><p>so you will be generating 8 forks which do the same thing for your each element of array. when one child finishes, Parallel::ForkManager generates a new one and thus you will be using all your processors to analyze the data. Now, if you have generated 8 child processes and want to write the data to one file. You need to lock the file to do this, because you will have problems with the buffering. You can lock the file using flock command.</p><blockquote><p>open (my $QUAL, &ldquo;myfile.txt&rdquo;);<br />flock $QUAL, LOCK_EX or die &ldquo;cant lock file $!&rdquo;;<br />print $QUAL &ldquo;$output&rdquo;;<br />flock $QUAL, LOCK_UN or die &ldquo;$!&rdquo;;<br />close $QUAL;</p></blockquote><p>I would not suggest using flock when dealing with multiple processes because it will decrease the processing efficiency( each child process must wait for the lock to be released by the other child process). Instead, I would suggest each fork writing to a separate file and after the processing just concatenating them.</p><p><strong>Putting it all together, If you have 100GB data you can do this</strong></p><blockquote><p><strong>step 1</strong>&nbsp;: split the dataset equally according to number of processors you have. this may take a few hours(about 2-3 hrs for 100GB file)<br />You can use unix &ldquo;split&rdquo; command for this<br />for example:<br />my $number_split=int($number_of_entries_in_your_dataset/$max_processors);<br />my $split_Files=`split -l $number_split &ldquo;your_file.fasta&rdquo; &ldquo;file_name&rdquo;`;</p><p><strong>step2</strong>: open you directory comtaining you split files and start Parallel::ForkManager.<br /><strong>For example:</strong><br />opendir(DIRECTORY, $split_files_directory) or die $!; ### open the directory<br />my $fork= new Parallel::ForkManager($max_processors);<br />while (my $file = readdir(DIRECTORY)) { ### read the directory<br />if($file=~/^\./){next;}<br />print $file,&rdquo;\n&rdquo;;<br />########## Start fork ##########<br />my $pid= $super_fork-&gt;start and next;<br /><strong>Whatever you want to do with the split file ;</strong><br /><strong>analyze my piece of $file;</strong><br />######### end fork ###############<br />$super_fork-&gt;finish;<br />}<br />$super_fork-&gt;wait_all_children;</p></blockquote><p>So basically each processor will be active with its piece of data (split file) and thus you have created 8 processes at one time which run without interfering with the other process. I again will not suggest writing output from each child process to one file(for reasons above). Write output from each fork to a separate file and finally concatenate them. Thats it, you have just increased your program speed by 8 times!! Isnt it easy?</p><p><strong>Note:</strong><br />You may worry about concatenation of the output each child generates, since it does take some time(remember 100GB). I think now you can use a mysql database LOAD DATA LOCAL INFILE command to load all the files into a single table(Should take about 3hrs for 100Gb dataset) and then export the whole table into one file. This should be faster than just concatenating them using &ldquo;cat&rdquo; command.(correct me if I am wrong)</p><p>Or much simpler way is to use pipes</p><p>cat output_dir/* | my_pipe or my_pipe &lt;(file1) final_file;</p><p>Thats it guys!! Enjoy programming and please do comment. I am not a computer scientist so forgive me for any mistakes and if any please report them. Thank you.</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/40736/list-of-perl-special-symbols</guid>
	<pubDate>Tue, 28 Jan 2020 06:44:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/40736/list-of-perl-special-symbols</link>
	<title><![CDATA[List of perl special symbols !]]></title>
	<description><![CDATA[<p><span>There are some variables which have a predefined and special meaning in Perl. They are the variables that use punctuation characters after the usual variable indicator ($, @, or %), such as $_ ( explained below ).</span></p><p>Special Symbols &ndash; File handlers</p><blockquote><p>$@ Perl error string</p><p>$! Error number from C, &lsquo;errno&rsquo;</p><p>$^E Extended OS error info, such as &lsquo;CDROM tray not closed&rsquo;</p><p>$? Exit status from last process</p><p>$AGRV &ndash; name of current file</p><p>@ARGV &ndash; command line arguments</p><p>$ARGV &ndash; special file handle for command line filenames</p><p>$. &ndash; current line number</p><p>$/ - input line delimiter</p><p>$\ - output line delimiter</p><p>$% - current page number</p><p>$&amp;/${^MATCH} &ndash; last successful matching string</p><p>$`/${^PREMATCH} &ndash; the string preceding the last matching string</p><p>$&rsquo;/${^POSTMATCH} &ndash; the string following the last matching string</p><p>$1, $2, &hellip; - matching groups in the parentheses in pattern</p></blockquote><p>More at&nbsp;<a href="https://www.tutorialspoint.com/perl/perl_special_variables.htm">https://www.tutorialspoint.com/perl/perl_special_variables.htm</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/44371/steps-to-find-all-the-repeats-in-the-genome</guid>
	<pubDate>Thu, 31 Aug 2023 02:43:28 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/44371/steps-to-find-all-the-repeats-in-the-genome</link>
	<title><![CDATA[Steps to find all the repeats in the genome !]]></title>
	<description><![CDATA[<div><p>To find repeats in a genome from 2 to 9 length using a Perl script, you can use the RepeatMasker tool with the "--length" option<a href="https://mobilednajournal.biomedcentral.com/articles/10.1186/1759-8753-5-13" target="_blank">[0]</a>. Here's a step-by-step guide:</p></div><div><ol>
<li>Install RepeatMasker: First, you need to install RepeatMasker on your system. You can download it from the RepeatMasker website<a href="https://mobilednajournal.biomedcentral.com/articles/10.1186/1759-8753-5-13" target="_blank">[0]</a>.</li>
</ol></div><div><ol>
<li>Prepare the genome sequence: Make sure you have the genome sequence in a FASTA file format. Let's assume the file is named "genome.fasta".</li>
</ol><blockquote><p>./RepeatMasker -pa &lt;number_of_processors&gt; -nolow -norna -no_is -div &lt;divergence_value&gt; -lib RepeatMaskerLib.embl -gff -xsmall -small -poly -species &lt;species_name&gt; -dir &lt;output_directory&gt; -length &lt;min_length&gt;-&lt;max_length&gt; genome.fasta</p></blockquote><div><p>Replace the following placeholders with appropriate values:</p><ul>
<li><code>&lt;number_of_processors&gt;</code>: The number of processors/threads you want to use for parallel processing.</li>
<li><code>&lt;divergence_value&gt;</code>: The divergence value for the species you are analyzing. You can find divergence values for different species in the RepeatMasker documentation<a href="https://mobilednajournal.biomedcentral.com/articles/10.1186/1759-8753-5-13" target="_blank">[0]</a>.</li>
<li><code>&lt;species_name&gt;</code>: The name of the species you are analyzing.</li>
<li><code>&lt;output_directory&gt;</code>: The directory where you want the output files to be saved.</li>
<li><code>&lt;min_length&gt;</code>&nbsp;and&nbsp;<code>&lt;max_length&gt;</code>: The minimum and maximum lengths of the repeats you want to find (in this case, 2 and 9).</li>
</ul></div><div><ol>
<li>Analyze the output: RepeatMasker will generate several output files, including a .out file. You can parse this file to extract the information you need. There is a Perl tool called "one_code_to_find_them_all.pl" that can help you parse RepeatMasker output files<a href="https://mobilednajournal.biomedcentral.com/articles/10.1186/1759-8753-5-13" target="_blank">[0]</a>. You can download it from the source provided.</li>
</ol></div><div><ol>
<li>Use the provided Perl script: Once you have the "one_code_to_find_them_all.pl" script, you can run it to conveniently parse the RepeatMasker output files. Here's an example of how to use it:</li>
</ol><blockquote><p>perl one_code_to_find_them_all.pl --rm &lt;RepeatMasker_out_file&gt; --length &lt;length_file&gt;</p></blockquote></div><p>&nbsp;</p></div><div><div><p>Replace&nbsp;<code>&lt;RepeatMasker_out_file&gt;</code>&nbsp;with the path to your RepeatMasker .out file, and&nbsp;<code>&lt;length_file&gt;</code>&nbsp;with the path to a file containing the lengths of the reference elements.</p></div><div><p>This script will generate several output files, including .log.txt and .copynumber.csv, which contain quantitative information about the identified repeat elements.</p></div><div><p>Remember to adjust the parameters and options according to your specific needs and the characteristics of your genome.</p></div></div>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/33842/awesome-perl-frameworks-libraries-and-software-part-5</guid>
	<pubDate>Fri, 07 Jul 2017 04:12:47 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/33842/awesome-perl-frameworks-libraries-and-software-part-5</link>
	<title><![CDATA[Awesome perl frameworks, libraries and software - PART 5]]></title>
	<description><![CDATA[<ul>
<li><a href="https://github.com/robelix/sub2srt">robelix/sub2srt</a>&nbsp;- subtitle converter</li>
<li><a href="https://github.com/reyjrar/graphite-scripts">reyjrar/graphite-scripts</a>&nbsp;- A Collections of Scripts for Working with Graphite</li>
<li><a href="https://github.com/regilero/check_nginx_status">regilero/check_nginx_status</a>&nbsp;- Nagios check for nginx status report</li>
<li><a href="https://github.com/omniti-labs/resmon">omniti-labs/resmon</a>&nbsp;- resmon</li>
<li><a href="https://github.com/motemen/App-htmlcat">motemen/App-htmlcat</a>&nbsp;- redirect stdin to web browser</li>
<li><a href="https://github.com/moose/Moo">moose/Moo</a>&nbsp;- Minimalist Object Orientation (with Moose compatibility)</li>
<li><a href="https://github.com/miyagawa/fastpass">miyagawa/fastpass</a>&nbsp;- Tiny, XS free, standalone and preforking FastCGI daemon for PSGI</li>
<li><a href="https://github.com/miyagawa/Filesys-Notify-Simple">miyagawa/Filesys-Notify-Simple</a>&nbsp;- Simple and dumb file system watcher</li>
<li><a href="https://github.com/mhop/fhem-mirror">mhop/fhem-mirror</a>&nbsp;- Branch 'master' is a read-only-mirror of svn://svn.code.sf.net/p/fhem/code which is updated once a day. On branch 'enocean' I am going to add some Enocean-Devices</li>
<li><a href="https://github.com/lopnor/Plack-App-DAV">lopnor/Plack-App-DAV</a>&nbsp;- simple DAV server for Plack</li>
<li><a href="https://github.com/kazuho/url_compress">kazuho/url_compress</a>&nbsp;- a static PPM-based URL compressor / decompressor</li>
<li><a href="https://github.com/jnthn/6model">jnthn/6model</a>&nbsp;- Just a place that I'm keeping some meta-model prototyping; anything that matters will make it to another repo (e.g. nqp-rx one or Rakudo one) at some point.</li>
<li><a href="https://github.com/jasonhancock/nagios-puppetdb">jasonhancock/nagios-puppetdb</a>&nbsp;- Nagios plugins and pnp4nagios templates related to Puppetlab's PuppetDB project.</li>
<li><a href="https://github.com/goccy/p5-Compiler-Parser">goccy/p5-Compiler-Parser</a>&nbsp;- Create Abstract Syntax Tree for Perl5</li>
<li><a href="https://github.com/cgutteridge/Grinder">cgutteridge/Grinder</a>&nbsp;- Create RDF data from spreadsheets or CSV</li>
<li><a href="https://github.com/c9s/Plack-Middleware-OAuth">c9s/Plack-Middleware-OAuth</a>&nbsp;- Plack Middleware for OAuth1 and OAuth2</li>
<li><a href="https://github.com/bzip2-cuda/bzip2-cuda">bzip2-cuda/bzip2-cuda</a>&nbsp;- Parallel implementation of bzip2 using cuda</li>
<li><a href="https://github.com/alanstevens/ChocoPackages">alanstevens/ChocoPackages</a>&nbsp;- Chocolatey Nuget Packages</li>
<li><a href="https://github.com/SoylentNews/slashcode">SoylentNews/slashcode</a>&nbsp;- The slashcode repository for SoylentNews. The initial code base was uploaded as it appeared on Sourceforge as of the last commit in September 2009</li>
<li><a href="https://github.com/Miserlou/XSS-Harvest">Miserlou/XSS-Harvest</a>&nbsp;- XSS Weaponization</li>
</ul>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/file/view/36952/getoptspl-file</guid>
	<pubDate>Fri, 15 Jun 2018 04:43:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/file/view/36952/getoptspl-file</link>
	<title><![CDATA[getopts.pl file]]></title>
	<description><![CDATA[
<p>SSPACE_longread complain for getopts.pl file. </p>

<p>To resolve this, download and have in SSPACED-Longreads folder. </p>

<p>Cheers :)</p>
]]></description>
	<dc:creator>Jit</dc:creator>
	<enclosure url="https://bioinformaticsonline.com/file/download/36952" length="942" type="text/plain" />
</item>

</channel>
</rss>