<?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/36960?offset=130</link>
	<atom:link href="https://bioinformaticsonline.com/related/36960?offset=130" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/28141/csbb-v10</guid>
	<pubDate>Wed, 29 Jun 2016 07:33:05 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/28141/csbb-v10</link>
	<title><![CDATA[CSBB-v1.0]]></title>
	<description><![CDATA[<p>CSBB is a command line based bioinformatics suite to analyze biological data acquired through varied avenues of biological experiments. CSBB is implemented in Perl, while it also leverages the use of R and python in background for specific modules. Major focus of CSBB is to allow users from biology and bioinformatics community, to get benefited by performing down-stream analysis tasks while eliminating the need to write programming code. CSBB is currently available on Linux, UNIX, MAC OS and Windows platforms.</p>
<p>Currently CSBB provides 13 modules focused on analytical tasks like performing upper-quantile normalization on expression data or convert genome wide gene expression to z-scores when comparing expression data from different platforms.</p>
<p>More at&nbsp;https://github.com/skygenomics/CSBB-v1.0</p><p>Address of the bookmark: <a href="https://github.com/skygenomics/CSBB-v1.0" rel="nofollow">https://github.com/skygenomics/CSBB-v1.0</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/31976/snpgenie</guid>
	<pubDate>Thu, 30 Mar 2017 17:38:02 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/31976/snpgenie</link>
	<title><![CDATA[SNPGenie]]></title>
	<description><![CDATA[<p>SNPGenie is a Perl script for estimating evolutionary parameters, mainly from pooled next-generation sequencing (NGS) single-nucleotide polymorphism (SNP) variant data. SNP reports (acceptable in a variety of formats) much each correspond to a single population, with variants called relative to a single reference sequence (one sequence in one FASTA file). Just run the main script, <strong>snpgenie.pl</strong>, in a directory containing the necessary <a href="https://github.com/hugheslab/snpgenie#snpgenie-input">input files</a>, and we take care of the rest! For the earlier version, see <a href="http://ww2.biol.sc.edu/~austin/">Hughes Lab Bioinformatics Resource</a>.</p><p>Address of the bookmark: <a href="https://github.com/hugheslab/snpgenie" rel="nofollow">https://github.com/hugheslab/snpgenie</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/34812/building-web-uis-with-mojolicious-perl</guid>
	<pubDate>Tue, 26 Dec 2017 18:06:57 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/34812/building-web-uis-with-mojolicious-perl</link>
	<title><![CDATA[Building Web UIs With Mojolicious Perl]]></title>
	<description><![CDATA[<p>Mojolicious is one of 3 leading web frameworks available in the perl ecosystem (along with Dancer and Catalyst) and by far my favorite.</p>
<p>Mojolicious aims to provide a complete web development experience. It thus has no hard dependencies, comes with a built-in development and production server and many other features one needs to build a web application. It's easy to install, has an applciation generator script and many plugins and extensions.</p>
<p><em>Libraries for developing Web applications</em></p>
<ul>
<li><a href="https://metacpan.org/pod/Amon2">Amon2</a></li>
<li><a href="https://metacpan.org/pod/Catalyst">Catalyst</a>&nbsp;- Overflowing with features. Very popular.</li>
<li><a href="https://metacpan.org/pod/Dancer">Dancer</a>&nbsp;(<a href="http://perldancer.org/">Official site</a>)</li>
<li><a href="https://metacpan.org/pod/Dancer2">Dancer2</a></li>
<li><a href="https://metacpan.org/pod/Gantry">Gantry</a>&nbsp;- Web application framework for mod_perl, cgi, etc.</li>
<li><a href="https://metacpan.org/pod/Kossy">Kossy</a>&nbsp;- A Web framework with simple interface.</li>
<li><a href="https://metacpan.org/pod/Mojolicious">Mojolicious</a>&nbsp;- An all in one framework.</li>
<li><a href="https://metacpan.org/pod/Poet">Poet</a>&nbsp;- a modern Perl web framework for Mason developers</li>
</ul><p>Address of the bookmark: <a href="https://www.ynonperek.com/2017/09/28/perl-mojolicious-web-development/" rel="nofollow">https://www.ynonperek.com/2017/09/28/perl-mojolicious-web-development/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/35148/mojolicious-a-next-generation-web-framework-for-the-perl-programming-language</guid>
	<pubDate>Fri, 12 Jan 2018 16:48:10 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/35148/mojolicious-a-next-generation-web-framework-for-the-perl-programming-language</link>
	<title><![CDATA[mojolicious: a next generation web framework for the Perl programming language.]]></title>
	<description><![CDATA[<p><span>Back in the early days of the web, many people learned Perl because of a wonderful Perl library called&nbsp;</span><a href="https://metacpan.org/module/CGI" target="_blank">CGI</a><span>. It was simple enough to get started without knowing much about the language and powerful enough to keep you going, learning by doing was much fun. While most of the techniques used are outdated now, the idea behind it is not. Mojolicious is a new endeavor to implement this idea using bleeding edge technologies.</span></p>
<h2>Features</h2>
<ul>
<li>An amazing&nbsp;<strong>real-time web framework</strong>, allowing you to easily grow single file prototypes into well-structured MVC web applications.
<ul>
<li>Powerful out of the box with RESTful routes, plugins, commands, Perl-ish templates, content negotiation, session management, form validation, testing framework, static file server, CGI/<a href="http://plackperl.org/" target="_blank">PSGI</a>&nbsp;detection, first class Unicode support and much more for you to discover.</li>
</ul>
</li>
<li>A powerful&nbsp;<strong>web development toolkit</strong>, that you can use for all kinds of applications, independently of the web framework.
<ul>
<li>Full stack HTTP and WebSocket client/server implementation with IPv6, TLS, SNI, IDNA, HTTP/SOCKS5 proxy, UNIX domain socket, Comet (long polling), Promises/A+, keep-alive, connection pooling, timeout, cookie, multipart and gzip compression support.</li>
<li>Built-in non-blocking I/O web server, supporting multiple event loops as well as optional pre-forking and hot deployment, perfect for building highly scalable web services.</li>
<li>JSON and HTML/XML parser with CSS selector support.</li>
</ul>
</li>
<li>Very clean, portable and object-oriented pure-Perl API with no hidden magic and no requirements besides Perl 5.24.0 (versions as old as 5.10.1 can be used too, but may require additional CPAN modules to be installed)</li>
<li>Fresh code based upon years of experience developing&nbsp;<a href="http://catalystframework.org/" target="_blank">Catalyst</a>, free and open source.</li>
<li>Hundreds of 3rd party&nbsp;<a href="https://metacpan.org/requires/distribution/Mojolicious">extensions</a>&nbsp;and high quality spin-off projects like the&nbsp;<a href="https://metacpan.org/pod/Minion">Minion</a>&nbsp;job queue.</li>
</ul>
<p>http://mojolicious.org/</p><p>Address of the bookmark: <a href="http://mojolicious.org/" rel="nofollow">http://mojolicious.org/</a></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/bookmarks/view/2727/download-mutliple-fasta-file-from-ncbi-in-one-go</guid>
	<pubDate>Wed, 21 Aug 2013 08:13:30 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/2727/download-mutliple-fasta-file-from-ncbi-in-one-go</link>
	<title><![CDATA[Download mutliple fasta file from NCBI in one GO!!]]></title>
	<description><![CDATA[<p>if you have less time, then use three ways mentioned in bookmark link to extract/download all fasta sequences in single click given that you already have a list of GIs or accession IDs .</p>
<p>Alternatively, use one liner perl script:</p>
<p>perl -ne 'if(/^&gt;(\S+)/){$c=$i{$1}}$c?print:chomp;$i{$_}=1 if @ARGV' GIs.txt &gt;sequence.fasta</p>
<p>where GIs.txt contains&nbsp;a list of GIs or accession IDs.</p>
<p>(from :<a href="http://edwards.sdsu.edu/labsite/index.php/robert?start=5">http://edwards.sdsu.edu/labsite/index.php/robert?start=5</a>)</p><p>Address of the bookmark: <a href="http://edwards.sdsu.edu/labsite/index.php/robert/380-ncbi-sequence-or-fasta-batch-download-using-entrez" rel="nofollow">http://edwards.sdsu.edu/labsite/index.php/robert/380-ncbi-sequence-or-fasta-batch-download-using-entrez</a></p>]]></description>
	<dc:creator>Rahul Agarwal</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/bookmarks/view/39913/twinblast-when-two-is-better-than-one</guid>
	<pubDate>Sat, 07 Sep 2019 08:50:08 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/39913/twinblast-when-two-is-better-than-one</link>
	<title><![CDATA[TwinBLAST: When Two Is Better than One]]></title>
	<description><![CDATA[<p>TwinBLAST is a web-based tool for viewing 2 BLAST reports simultaneouslyside-by-side. It uses ExtJS (www.sencha.com/products/extjs/) to provide 2independently scrollable panels. BioPerl (www.bioperl.org) is used to indexraw BLAST reports and Bio::Graphics is used to draw pictograms of the BLASThits.</p>
<p><a href="https://github.com/IGS/twinblast">https://github.com/IGS/twinblast</a></p>
<p><a href="https://mra.asm.org/content/8/35/e00842-19">https://mra.asm.org/content/8/35/e00842-19</a></p><p>Address of the bookmark: <a href="https://github.com/IGS/twinblast" rel="nofollow">https://github.com/IGS/twinblast</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/41675/gapfinisher-a-reliable-gap-filling-pipeline-for-sspace-longread-scaffolder-output</guid>
	<pubDate>Thu, 14 May 2020 15:13:30 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/41675/gapfinisher-a-reliable-gap-filling-pipeline-for-sspace-longread-scaffolder-output</link>
	<title><![CDATA[gapFinisher: A reliable gap filling pipeline for SSPACE-LongRead scaffolder output]]></title>
	<description><![CDATA[<p>gapFinisher to process SSPACE-LongRead output to fill gaps after the scaffolding. gapFinisher is based on the controlled use of a previously published gap filling tool FGAP and works on all standard Linux/UNIX command lines.</p>
<p>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6733440/</p><p>Address of the bookmark: <a href="https://github.com/kammoji/gapFinisher" rel="nofollow">https://github.com/kammoji/gapFinisher</a></p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>

</channel>
</rss>