Posts

Showing posts with the label coding

A comparison of common programming languages used in bioinformatics

The electronic version of this article is the complete one and can be found online at: http://www.biomedcentral.com/1471-2105/9/82 Abstract Background The performance of different programming languages has previously been benchmarked using abstract mathematical algorithms, but not using standard bioinformatics algorithms. We compared the memory usage and speed of execution for three standard bioinformatics methods, implemented in programs using one of six different programming languages. Programs for the Sellers algorithm, the Neighbor-Joining tree construction algorithm and an algorithm for parsing BLAST file outputs were implemented in C, C++, C#, Java, Perl and Python. Results Implementations in C and C++ were fastest and used the least memory. Programs in these languages generally contained more lines of code. Java and C# appeared to be a compromise between the flexibility of Perl and Python and the fast performance of C and C++. The relative performance of the tested languages d...

Simple tips to deal with Big Data In Bioinformatics

Here is something I came across recently, a relatively old article which I found on Bioinformatics Zen by Michale Barton. Simple, practical and worldly wise. Bioinformatics usually involves shuffling data into the right format for plotting or statistical tests. I prefer to use a database to store and format data as I think this make projects easier to maintain compared with using just scripts. I find a dynamic language like Ruby and libraries for database manipulation like ActiveRecord makes using a database relatively simple. Using a database however stops being simple when you have to deal with very large amounts of data. Here I’m outlining my experience of analysing gigabytes of data with millions of data points and how tried to improve my software’s performance when manipulating this data. I’ve ordered each approaches with I think is the most pragmatic first. The simple things Obvious but sometimes overlooked. 1. Use a bigger computer Using a faster computer might seem like a la...

Unofficial Google Shell

goosh.org - the unofficial google shell ( http://goosh.org /). It is pretty neat and useful in its neonatal state itself, like to read a feed, you can type, for eg: r http://www.google.com/reader/public/atom/user/11136726768885096694/label/cbn-roll and gets default 4 latest feeds, or you can check out a ncbi accession by typing, for eg: NP_001108376 and get to the Fugu fish refseq link. The most useful thing is the fact that it it text based and quite easy to parse visually as well as via scripts. Another cool feature for me right now is the shell translation, like to get the english word for the norwegian word 'hvor', all I have to do is type: t no en hvor which correctly says: translating "hvor" from "no" to "en": "where" More discussion going on at http://tech.slashdot.org/article.pl?sid=08/06/02/222234&from=rss . Enjoy!

FPGA-based systems – a very specialized programming skill that many bioinformatics developers don’t have

An “ecosystem” of partners who will use programmable hardware to create a standardized approach for analyzing data from second-generation sequencing instruments. Intel Seeks Partners to Develop FPGA-Based Solution for Next-Gen Sequencing Analysis . “Primary data analysis seems to be where Intel can play the most useful role” in the field, considering the initial analytical steps in sequencing: image processing, base calling, and alignment and assembly. One downside to this scenario, however, is that these codes would need to be written for FPGA-based systems – a very specialized programming skill that many bioinformatics developers don’t have. This challenge could present an opportunity for companies that develop FPGA-based algorithms and software-development toolkits. While the task of harvesting data from second-generation sequencing instruments has only just begun, both large and small labs are already facing some big choices over how to store the terabytes of data that these tools...

Version control system ideal for the collaborative bioinformatics software development

The new hotness, fast, efficient, distributed version control system ideal for the collaborative development of software... Github , a source code management (SCM) repository based on git has exited beta and is ready for people to sign up. Git and github offer interesting opportunities for bioinformatics software development, and I think it’s worth taking a few minutes to explore them. There’s a free option too , so it doesn’t cost anything to sign up and play around. Github builds on git and takes the easy branching feature a step further to create a social software site. I know everyone and their dog is creating a social [insert verb]ing application/site, but you might find that that github’s approach can make a difference in your approach to software development. Github makes it possible to see who is creating branches of your project, visualised as a network, where branch and merge points are shown in a timeline. More on git and github Repository Formats Matter Moving from subver...