## Features & quick facts

- Ray is a high-performance peer-to-peer software.
 - http://dskernel.blogspot.com/2011/07/understand-main-loop-of-message-passing.html

- Ray can be utilised as a k-mer counter.
- Ray builds a k-mer graph (subgraph of a full de Bruijn graph).
- Ray finds paths in this graph.

- Ray is implemented in C++, version ISO/IEC 14882:1998.
- Ray utilises the message-passing interface (MPI), version 2.2.
- Ray supports various network interconnects, thanks to the message-passing interface (MessagesHandler).
- Ray is cloud-ready thanks to the message-passing interface.
 - http://aws.amazon.com/ec2/hpc-applications/

- Ray utilises distributed sparse hash tables with double hashing (MyHashTable).
- Ray utilises smart pointers.
- Ray does garbage collection using real-time memory defragmentation & compaction (DefragmentationGroup).
- Ray utilises a Bloom filter to avoid storing most of the erroneous k-mers in memory.

- Ray utilises virtual communication (VirtualCommunicator).
 - http://dskernel.blogspot.com/2011/01/virtual-communicator.html
 - http://dskernel.blogspot.com/2011/06/more-on-virtual-communication-with.html 

- Ray supports substitution DNA sequencing errors (Illumina).
- Ray supports indels DNA sequencing errors (Pacific Biosciences, 454). In development
- Ray supports paired reads to traverse repeats.
- Ray outputs scaffolds (+ many other useful files).

- Ray is open source with the GNU General Public License.
- Ray is a single executable called Ray (Ray.exe on Microsoft Windows).
- Ray is easy to install and easy to use.

