Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.36 KB

README.rst

File metadata and controls

34 lines (25 loc) · 1.36 KB

deVries

Efficient data-structures to handle mutations and mutation profiles. The library is written to be fast, straightforward, and simple to use. All functions are documented and tests/examples are provided.

The library is named after Hugo de Vries (1848-1935), an important but often forgotten scientist who rediscovered Mendel's law of genetics and coined the term 'Mutation' (from the latin muto, 'to change').

Author

Philippe Desjardins-Proulx <[email protected]>

Language

C++-compatible ANSI C. Development is done on Linux x86_64 with the GCC, Intel, and Clang compilers.

Design

deVries has only two important objects: sequence and mutation.

A sequence can be, well, any sequence (RNA, DNA, amino acids). The object stores a char array (the sequence), an info object with details on the sequence (e.g.: gi number), and a list of mutations.

Mutations are very small immutable objects. They store a position, a type, and either the new character (point mutation), the number of elements to delete (deletions) or the sequence to insert (for insertions). Like sequences, mutations can themself have mutations, leading to a tree of mutations. It's possible to recover the sequence from any mutation in the tree.

License

MIT <http://www.opensource.org/licenses/mit-license.php>.

Dependencies

None (but it might change).