Showing posts from July, 2011

Understand the main loop of message-passing-interface software

In video games, the main loop usually looks like this: 1 2 3 4 5 while ( running ){      processInput ();      updateGameState ();      drawScreen (); } (from ) Message-passing-interface (MPI) software can be designed in a similar fashion. Each message-passing-interface rank of an MPI software has its own message inbox and its own message outbox. Like for emails, received messages go in the inbox and sent messages go in the outbox. The main loop of an MPI rank usually looks like this: 1 2 3 4 5 6 while ( running ){      receiveMessages ();      processMessages ();      processData ();      sendMessages (); } This general architecture is utilised in the Ray de novo genome assembler. Read the code:

I don't understand why Ray was not included in the paper Bioinformatics 27, 2031–2037

In the paper Lin, Y. et al. Comparative studies of de novo assembly tools for next-generation sequencing technologies. Bioinformatics 27, 2031–2037 (2011). Ray is not mentioned. Why is that so ?  We have been working on Ray for quite a while with an early prototype of the assembly engine called OpenAssembler ( started in 2009-01-21 ). We published Ray in 2010 in Journal of Computational Biology . We have also presented Ray at a few places .   Cool facts about Ray: - We are participating to Assemblathon 2 . - We assembled a genome on 512 compute cores in 18 hours, there were > 3 000 000 000 Illumina TruSeq paired reads (that is a lot of reads !) - Ray is an high-performance peer-to-peer assembler - Can assemble mixtures of technologies - Is open source, licensed with the GNU GPL - Ray is free. - Works on POSIX systems (Linux, Mac, and others) and on Microsoft Windows - Compiles cleanly with gcc and with Microsoft Visual Studio - Ray utilises the message-p