<?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/30696?offset=10</link>
	<atom:link href="https://bioinformaticsonline.com/related/30696?offset=10" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<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/view/2021</guid>
	<pubDate>Mon, 12 Aug 2013 09:27:57 -0500</pubDate>
	<link>https://bioinformaticsonline.com/view/2021</link>
	<title><![CDATA[What are the difference between BioRuby and BioGem?]]></title>
	<description><![CDATA[<p>I came across two diferent but matching term BioRuby and BioGem. What are the difference between these two term? If both are using same Ruby language for development then why did they develope two different biological packages.</p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/43670/useful-bioinformatics-analysis-tools</guid>
	<pubDate>Thu, 23 Dec 2021 23:10:02 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/43670/useful-bioinformatics-analysis-tools</link>
	<title><![CDATA[Useful Bioinformatics Analysis Tools !]]></title>
	<description><![CDATA[<h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=cometa&amp;subpage=about">CoMeta</a></h3><p><strong>Classificier of reads from metagenomic sequencing experiments.</strong></p><p><span>&bull;&nbsp;&nbsp;Kawulok, J., Deorowicz, S.,&nbsp;</span><em>CoMeta: Classification of Metagenomes Using k-mers</em><span>,&nbsp;</span><a href="http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0121453">PLOS ONE,&nbsp;</a><span>2015; 10(4):1&ndash;23,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=CoMSA&amp;subpage=about">CoMSA</a></h3><p><strong>Compressor of multiple sequence alignments of proteins.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Walczyszyn, J., Debudaj-Grabysz, A.,&nbsp;</span><em>CoMSA: compression of protein multiple sequence alignment files</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/bty619">Bioinformatics,&nbsp;</a><span>2019; 35(2):22&ndash;234,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=dsrc&amp;subpage=about">DSRC</a></h3><p><strong>Compressor of sequencing reads.</strong></p><p><span>&bull;&nbsp;&nbsp;Roguski, L., Deorowicz, S.,&nbsp;</span><em>DSRC 2: Industry-oriented compression of FASTQ files</em><span>,&nbsp;</span><a href="http://bioinformatics.oxfordjournals.org/content/30/15/2213">Bioinformatics,&nbsp;</a><span>2014; 30(15):2213&ndash;2215,</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Grabowski, Sz.,&nbsp;</span><em>Compression of DNA sequences in FASTQ format</em><span>,&nbsp;</span><a href="http://bioinformatics.oxfordjournals.org/">Bioinformatics,&nbsp;</a><span>2011; 27(6):860&ndash;862,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=famsa&amp;subpage=about">FAMSA</a></h3><p><strong>Multiple sequence alignment designed for huge families of proteins (even containing hundreds of thousands of sequences).</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Debudaj-Grabysz, A., Gudys, A.,&nbsp;</span><em>FAMSA: Fast and accurate multiple sequence alignment of huge protein families</em><span>,&nbsp;</span><a href="http://www.nature.com/articles/srep33964">Scientific Reports,&nbsp;</a><span>2016; 6(33964):</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=fastore&amp;subpage=about">FaStore</a></h3><p><strong>Compressor of FASTQ files.</strong></p><p><span>&bull;&nbsp;&nbsp;Roguski, L., Ochoa, I., Hernaez, M., Deorowicz, S.,&nbsp;</span><em>FaStore - a space-saving solution for raw sequencing data</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/bty205">Bioinformatics,&nbsp;</a><span>2018; 34(16):2748&ndash;2756,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=fqsqueezer&amp;subpage=about">FQSqueezer</a></h3><p><strong>Experimental high-end compressor of FASTQ files.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S.,&nbsp;</span><em>FQSqueezer: k-mer-based compression of sequencing data</em><span>,&nbsp;</span><a href="https://www.nature.com/articles/s41598-020-57452-6">Scientific Reports,&nbsp;</a><span>2020; 10(578):</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=gdc&amp;subpage=about">GDC</a></h3><p><strong>Compressor of collections of genome sequences.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Danek, A., Niemiec, M.,&nbsp;</span><em>GDC 2: Compression of large collections of genomes</em><span>,&nbsp;</span><a href="http://www.nature.com/srep/2015/150625/srep11565/full/srep11565.html">Scientific Reports,&nbsp;</a><span>2015; 5(11565):1&ndash;12,</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Grabowski, Sz.,&nbsp;</span><em>Robust relative compression of genomes with random access</em><span>,&nbsp;</span><a href="http://sun.aei.polsl.pl/REFRESH/bioinformatics.oxfordjournals.org/content/27/21/2979.abstract">Bioinformatics,&nbsp;</a><span>2011; 27(21):2979&ndash;2986,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=gtc&amp;subpage=about">GTC</a></h3><p><strong>Genotype databases compressor with support for fast queries.</strong></p><p><span>&bull;&nbsp;&nbsp;Danek, A., Deorowicz, S.,&nbsp;</span><em>GTC: how to maintain huge genotype collections in a compressed form</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/bty023">Bioinformatics,&nbsp;</a><span>2018; 34(11):1834&ndash;1840,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=gtshark&amp;subpage=about">GTShark</a></h3><p><strong>Genotypes compressor.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Danek, A.,&nbsp;</span><em>GTShark: Genotype compression in large projects</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/btz508">Bioinformatics,&nbsp;</a><span>2019; 35(22):4791&ndash;4793,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=kmc&amp;subpage=about">KMC</a></h3><p><strong>Memory frugal&nbsp;<em>k</em>-mer counter.</strong></p><p><span>&bull;&nbsp;&nbsp;Kokot, M., Długosz, M., Deorowicz, S.,&nbsp;</span><em>KMC 3: counting and manipulating k -mer statistics</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/btx304">Bioinformatics,&nbsp;</a><span>2017; 33(17):2759&ndash;2761,</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Kokot, M., Grabowski, Sz., Debudaj-Grabysz, A.,&nbsp;</span><em>KMC 2: Fast and resource-frugal k-mer counting</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/btv022">Bioinformatics,&nbsp;</a><span>2015; 31(10):1569&ndash;1576,</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Debudaj-Grabysz, A., Grabowski, Sz.,&nbsp;</span><em>Disk-based k-mer counting on a PC</em><span>,&nbsp;</span><a href="http://www.biomedcentral.com/1471-2105/14/160">BMC Bioinformatics,&nbsp;</a><span>2013; 14():Article no. 160,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=kmer-db&amp;subpage=about">Kmer-db</a></h3><p><strong>Tool for estimation of evolutionary distances in a collection of genomes.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Gudys, A., Dlugosz, M., Kokot, M., Danek, A.,&nbsp;</span><em>Kmer-db: instant evolutionary distance estimation</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/bty610">Bioinformatics,&nbsp;</a><span>2019; 35(1):133&ndash;136,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=mugi&amp;subpage=about">MuGI</a></h3><p><strong>Index allowing queries for a collection of multiple genome sequences.</strong></p><p><span>&bull;&nbsp;&nbsp;Danek, A., Deorowicz, S., Grabowski, Sz.,&nbsp;</span><em>Indexes of Large Genome Collections on a PC</em><span>,&nbsp;</span><a href="http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0109384">PLOS ONE,&nbsp;</a><span>2014; 9(10):e109384,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=orcom&amp;subpage=about">ORCOM</a></h3><p><strong>Experimental compressor of sequencing reads.</strong></p><p><span>&bull;&nbsp;&nbsp;Grabowski, Sz., Deorowicz, S., Roguski, L.,&nbsp;</span><em>Disk-based compression of data from genome sequencing</em><span>,&nbsp;</span><a href="http://bioinformatics.oxfordjournals.org/content/early/2014/12/22/bioinformatics.btu844.abstract">Bioinformatics,&nbsp;</a><span>2014; 31(9):1389&ndash;1395,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=pgsa&amp;subpage=about">PgSA</a></h3><p><strong>Index allowing queries for a collection of sequencing reads.</strong></p><p><span>&bull;&nbsp;&nbsp;Kowalski, T., Grabowski, Sz., Deorowicz, S.,&nbsp;</span><em>Indexing arbitrary-length k-mers in sequencing reads</em><span>,&nbsp;</span><a href="http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0133198">PLOS ONE,&nbsp;</a><span>2015; 10(7):1&ndash;16,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=quickprobs&amp;subpage=about">QuickProbs</a></h3><p><strong>Multiple sequence alignment designed especially for GPU.</strong></p><p><span>&bull;&nbsp;&nbsp;Gudys, A., Deorowicz, S.,&nbsp;</span><em>QuickProbs 2: towards rapid construction of high-quality alignments of large protein families</em><span>,&nbsp;</span><a href="http://www.nature.com/articles/srep41553">Scientific Reports,&nbsp;</a><span>2017; 7(41553):</span><br /><span>&bull;&nbsp;&nbsp;Gudys, A., Deorowicz, S.,&nbsp;</span><em>QuickProbs &ndash; A Fast Multiple Sequence Alignment Algorithm Designed for Graphics Processors</em><span>,&nbsp;</span><a href="http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0088901">PLOS ONE,&nbsp;</a><span>2014; 9(2):e88901,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=reckoner&amp;subpage=about">RECKONER</a></h3><p><strong>Read error corrector.</strong></p><p><span>&bull;&nbsp;&nbsp;Maciej Długosz, M., Deorowicz, S.,&nbsp;</span><em>RECKONER: read error corrector based on KMC</em><span>,&nbsp;</span><a href="https://academic.oup.com/bioinformatics/article-abstract/33/7/1086/2843893/RECKONER-read-error-corrector-based-on-KMC">Bioinformatics,&nbsp;</a><span>2017; 33(7):1086&ndash;1089,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=tgc&amp;subpage=about">TGC</a></h3><p><strong>Compressor of collections of genomes given in Variant Call Format (VCF) files.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Danek, A., Grabowski, Sz.,&nbsp;</span><em>Genome compression: a novel approach for large collections</em><span>,&nbsp;</span><a href="http://bioinformatics.oxfordjournals.org/content/early/2013/08/29/bioinformatics.btt460">Bioinformatics,&nbsp;</a><span>2013; 29(20):2572&ndash;2578,</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=vcfshark&amp;subpage=about">VCFShark</a></h3><p><strong>Compressor of VCF files.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Danek, A.,&nbsp;</span><em>GTShark: Genotype compression in large projects</em><span>,&nbsp;</span><a href="https://www.biorxiv.org/content/10.1101/2020.12.18.423437v1">biorxiv.org,&nbsp;</a><span>2020; ():</span></p><h3><a href="http://sun.aei.polsl.pl/REFRESH/index.php?page=projects&amp;project=whisper&amp;subpage=about">Whisper</a></h3><p><strong>Experimental mapper of whole genome sequencing data.</strong></p><p><span>&bull;&nbsp;&nbsp;Deorowicz, S., Gudys, A.,&nbsp;</span><em>Whisper 2: indel-sensitive short read mapping</em><span>,&nbsp;</span><a href="https://doi.org/10.1101/2019.12.18.881292">bioRxiv.org,&nbsp;</a><span>2019; :</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Debudaj-Grabysz, A., Gudys, A., Grabowski, Sz.,&nbsp;</span><em>Whisper: read sorting allows robust robust mapping of DNA sequencing data</em><span>,&nbsp;</span><a href="https://doi.org/10.1093/bioinformatics/bty927">Bioinformatics,&nbsp;</a><span>2019; 35(12):2043&ndash;2050,</span><br /><span>&bull;&nbsp;&nbsp;Deorowicz, S., Debudaj-Grabysz, A., Gudys, A., Grabowski, Sz.,&nbsp;</span><em>Robust mapping of whole genome sequencing data</em><span>,&nbsp;</span><a href="https://meetings.cshl.edu/abstracts.aspx?meet=GENOME&amp;year=17">Poster at The Biology of Genomes Conference,&nbsp;</a><span>2017;</span></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/36603/learning-python-programming-a-bioinformatician-perspective</guid>
	<pubDate>Mon, 14 May 2018 16:33:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/36603/learning-python-programming-a-bioinformatician-perspective</link>
	<title><![CDATA[Learning Python Programming - a bioinformatician perspective !]]></title>
	<description><![CDATA[<p>Python Programming&nbsp;is a general purpose programming language that is open source, flexible, powerful and easy to use. One of the most important features of python is its rich set of utilities and libraries for data processing and analytics tasks. In the current era of big biological data, python and biopython is getting more popularity due to its easy-to-use features which supports big data processing.</p><p>In this tutorial series article, I will explore features and packages of python which are widely used in the big data, NGS, and bioinformatics. I will also walk through a real biological example which shows NGS data processing with the help of python packages and programming.</p><p>Python has a couple of points to recommend it to biologists and scientists specifically:</p><ul>
<li>It's widely used in the scientific community</li>
<li>It has a couple of very well designed libraries for doing complex scientific computing (although we won't encounter them in this book)</li>
<li>It lend itself well to being integrated with other, existing tools</li>
<li>It has features which make it easy to manipulate strings of characters (for example, strings of DNA bases and protein amino acid residues, which we as biologists are particularly fond of)</li>
</ul><p>In general, following are some of the important features of python which makes it a perfect fit for rapid application development.</p><ul>
<li>Python is interpreted language so the program does not need to be compiled. Interpreter parses the program code and generates the output.</li>
<li>Python is dynamically typed, so the variables types are defined automatically.</li>
<li>Python is strongly typed. So the developers need to cast the type manually.</li>
<li>Less code and more use makes it more acceptable.</li>
<li>Python is portable, extendable and scalable.</li>
</ul><p>There are two major Python versions, Python 2 and Python 3. Python 2 and 3 are quite different. This tutorial uses Python 3, because it more semantically correct and supports newer features.</p><p>I will post tutorial on daily basis on this page. Check the sub-pages on right side.</p>]]></description>
	<dc:creator>Rahul Nayak</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/39606/amity-university-bioinformatics-summer-program-kolkata</guid>
	<pubDate>Tue, 11 Jun 2019 21:27:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/39606/amity-university-bioinformatics-summer-program-kolkata</link>
	<title><![CDATA[Amity University Bioinformatics Summer Program - Kolkata]]></title>
	<description><![CDATA[<p>Registrations are now open for the 2019 Summer Bioinformatics Training program at Amity University, Kolkata. The program will focus on introductory topics for life science students. We will review important history, topics and challenges bioinformatics can help address in the context of basic research, discovery and industry.</p><p>Read more: https://edu.t-bio.info/amity-university-summer-bioinformatics-program-registrations-are-open/</p>]]></description>
	<dc:creator>eliabrodsky</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/11181/perl-one-liner-for-bioinformatician</guid>
	<pubDate>Fri, 30 May 2014 05:49:07 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/11181/perl-one-liner-for-bioinformatician</link>
	<title><![CDATA[Perl one-liner for bioinformatician !!!]]></title>
	<description><![CDATA[<p>With the emergence of NGS technologies, and sequencing data most of the bioinformaticians mung and wrangle around massive amounts of genomics text. There are several "standardized" file formats (FASTQ, SAM, VCF, etc.) and some tools for manipulating them (fastx toolkit, samtools, vcftools, etc.), there are still times where knowing a little bit of Perl onliner is extremely helpful.</p><p>Perl one-liners are small and awesome Perl programs that fit in a single line of code and they do one thing really well. These things include changing line spacing, numbering lines, doing calculations, converting and substituting text, deleting and printing certain lines, parsing logs, editing files in-place, doing statistics, carrying out system administration tasks, updating a bunch of files at once, and many more. Perl one-liners will make you the shell warrior. Anything that took you minutes to solve, will now take you seconds!<br /><br />perl -pe '$\="\n"'&nbsp; &nbsp;<br />#double space a file<br /><br />perl -pe '$_ .= "\n" unless /^$/' <br />#double space a file except blank lines<br /><br />perl -pe '$_.="\n"x7' <br />#7 space in a line.<br /><br />perl -ne 'print unless /^$/' <br />#remove all blank lines<br /><br />perl -lne 'print if length($_) &lt; 20' <br />#print all lines with length less than 20.<br /><br />perl -00 -pe '' <br />#If there are multiple spaces, delete all leaving one(make the file a single spaced file).<br /><br />perl -00 -pe '$_.="\n"x4' <br />#Expand single blank lines into 4 consecutive blank lines<br /><br />perl -pe '$_ = "$. $_"'<br />#Number all lines in a file<br /><br />perl -pe '$_ = ++$a." $_" if /./' <br />#Number only non-empty lines in a file<br /><br />perl -ne 'print ++$a." $_" if /./' <br />#Number and print only non-empty lines in a file<br /><br />perl -pe '$_ = ++$a." $_" if /regex/' <br />#Number only lines that match a pattern<br /><br />perl -ne 'print ++$a." $_" if /regex/' <br />#Number and print only lines that match a pattern<br /><br />perl -ne 'printf "%-5d %s", $., $_ if /regex/' <br />#Left align lines with 5 white spaces if matches a pattern (perl -ne 'printf "%-5d %s", $., $_' : for all the lines)<br /><br />perl -le 'print scalar(grep{/./}&lt;&gt;)' <br />#prints the total number of non-empty lines in a file<br /><br />perl -lne '$a++ if /regex/; END {print $a+0}' <br />#print the total number of lines that matches the pattern<br /><br />perl -alne 'print scalar @F' <br />#print the total number fields(words) in each line.<br /><br />perl -alne '$t += @F; END { print $t}' <br />#Find total number of words in the file<br /><br />perl -alne 'map { /regex/ &amp;&amp; $t++ } @F; END { print $t }' <br />#find total number of fields that match the pattern<br /><br />perl -lne '/regex/ &amp;&amp; $t++; END { print $t }' <br />#Find total number of lines that match a pattern<br /><br />perl -le '$n = 20; $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $m' <br />#will calculate the GCD of two numbers.<br /><br />perl -le '$a = $n = 20; $b = $m = 35; ($m,$n) = ($n,$m%$n) while $n; print $a*$b/$m' <br />#will calculate lcd of 20 and 35.<br /><br />perl -le '$n=10; $min=5; $max=15; $, = " "; print map { int(rand($max-$min))+$min } 1..$n' <br />#Generates 10 random numbers between 5 and 15.<br /><br />perl -le 'print map { ("a".."z",&rdquo;0&rdquo;..&rdquo;9&rdquo;)[rand 36] } 1..8'<br />#Generates a 8 character password from a to z and number 0 &ndash; 9.<br /><br />perl -le 'print map { ("a",&rdquo;t&rdquo;,&rdquo;g&rdquo;,&rdquo;c&rdquo;)[rand 4] } 1..20'<br />#Generates a 20 nucleotide long random residue.<br /><br />perl -le 'print "a"x50'<br />#generate a string of &lsquo;x&rsquo; 50 character long<br /><br />perl -le 'print join ", ", map { ord } split //, "hello world"'<br />#Will print the ascii value of the string hello world.<br /><br />perl -le '@ascii = (99, 111, 100, 105, 110, 103); print pack("C*", @ascii)'<br />#converts ascii values into character strings.<br /><br />perl -le '@odd = grep {$_ % 2 == 1} 1..100; print "@odd"'<br />#Generates an array of odd numbers.<br /><br />perl -le '@even = grep {$_ % 2 == 0} 1..100; print "@even"'<br />#Generate an array of even numbers<br /><br />perl -lpe 'y/A-Za-z/N-ZA-Mn-za-m/' file <br />#Convert the entire file into 13 characters offset(ROT13)<br /><br />perl -nle 'print uc' <br />#Convert all text to uppercase:<br /><br />perl -nle 'print lc' <br />#Convert text to lowercase:<br /><br />perl -nle 'print ucfirst lc' <br />#Convert only first letter of first word to uppercas<br /><br />perl -ple 'y/A-Za-z/a-zA-Z/' <br />#Convert upper case to lower case and vice versa<br /><br />perl -ple 's/(\w+)/\u$1/g' <br />#Camel Casing<br /><br />perl -pe 's|\n|\r\n|' <br />#Convert unix new lines into DOS new lines:<br /><br />perl -pe 's|\r\n|\n|' <br />#Convert DOS newlines into unix new line<br /><br />perl -pe 's|\n|\r|' <br />#Convert unix newlines into MAC newlines:<br /><br />perl -pe '/regexp/ &amp;&amp; s/foo/bar/' <br />#Substitute a foo with a bar in a line with a regexp.</p><p>Reference/Sources:</p><p>http://genomics-array.blogspot.in/2010/11/some-unixperl-oneliners-for.html</p><p><a href="http://genomespot.blogspot.com/2013/08/a-selection-of-useful-bash-one-liners.html">http://genomespot.blogspot.com/2013/08/a-selection-of-useful-bash-one-liners.html</a></p><p><a href="http://biowize.wordpress.com/2012/06/15/command-line-magic-for-your-gene-annotations/">http://biowize.wordpress.com/2012/06/15/command-line-magic-for-your-gene-annotations/</a></p><p><a href="http://genomics-array.blogspot.com/2010/11/some-unixperl-oneliners-for.html">http://genomics-array.blogspot.com/2010/11/some-unixperl-oneliners-for.html</a></p><p><a href="http://bioexpressblog.wordpress.com/2013/04/05/split-multi-fasta-sequence-file/">http://bioexpressblog.wordpress.com/2013/04/05/split-multi-fasta-sequence-file/</a></p>]]></description>
	<dc:creator>Abhimanyu Singh</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/40724/the-raku-programming-language</guid>
	<pubDate>Tue, 28 Jan 2020 05:37:17 -0600</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/40724/the-raku-programming-language</link>
	<title><![CDATA[The Raku Programming Language]]></title>
	<description><![CDATA[<p><span>Raku is a member of the Perl family of programming languages. Formerly known as Perl 6, it was renamed in October 2019. Raku introduces elements of many modern and historical languages. Compatibility with Perl was not a goal, though a compatibility mode is part of the specification.</span><span>&nbsp;</span></p>
<p><span>More at&nbsp;<a href="https://www.raku.org/">https://www.raku.org/</a></span></p><p>Address of the bookmark: <a href="https://www.raku.org/" rel="nofollow">https://www.raku.org/</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/poll/view/15000/which-mathstatistics-programming-languageapplication-do-you-most-frequently-use-in-bioinformatics</guid>
	<pubDate>Thu, 04 Sep 2014 17:46:41 -0500</pubDate>
	<link>https://bioinformaticsonline.com/poll/view/15000/which-mathstatistics-programming-languageapplication-do-you-most-frequently-use-in-bioinformatics</link>
	<title><![CDATA[Which math/statistics programming language/application do you most frequently use in bioinformatics?]]></title>
	<description><![CDATA[<p>I'm doing a bit more statistical analysis on some bioinformatics things lately, and I'm curious if there are any programming languages that are particularly good for this NGS computation. What suggestions do you guys have? Are there any languages that have exceptionally good libraries?</p>]]></description>
	<dc:creator>John Parker</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22571/pattern-matching-problem-solution-with-perl</guid>
	<pubDate>Tue, 09 Jun 2015 23:58:45 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22571/pattern-matching-problem-solution-with-perl</link>
	<title><![CDATA[Pattern Matching Problem Solution with Perl]]></title>
	<description><![CDATA[<p>Problem at http://rosalind.info/problems/1c/</p><p>#Find all occurrences of a pattern in a string.<br />#Given: Strings Pattern and Genome.<br />#Return: All starting positions in Genome where Pattern appears as a substring. Use 0-based indexing.<br /><br />use strict;<br />use warnings;<br /><br />my $string="GATATATGCATATACTT";<br />my $subStr="ATAT";<br />my $kmer=length($subStr);<br /><br />kmerMatch ($string, $subStr, $kmer);<br /><br />sub kmerMatch { #Check the exact matching kmers with sliding window<br />my ($string, $myStr, $kmer)=@_;<br />for (my $aa=0; $aa&lt;=(length($string)-$kmer); $aa++) {<br />&nbsp;&nbsp;&nbsp; my $myWin=substr&nbsp; $string, $aa,$kmer;<br />&nbsp;&nbsp;&nbsp; if ($myWin eq $myStr) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #print "$myWin eq $myStr\n";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $aa;<br />&nbsp;&nbsp;&nbsp; }<br />}<br />}</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<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>

</channel>
</rss>