GenOO: A Modern Perl Framework for High Throughput Sequencing analysis
Summary
GenOO [jee-noo] is an open-source; object-oriented Perl framework specifically developed for the design of High Throughput Sequencing (HTS) analysis tools. The primary aim of GenOO is to make simple HTS analyses easy and complicated analyses possible. GenOO models biological entities into Perl objects and provides relevant attributes and methods that allow for the manipulation of high throughput sequencing data. Using GenOO as a core development module reduces the overhead and complexity of managing the data and the biological entities at hand. GenOO has been designed to be flexible, easily extendable with modular structure and minimal requirements for external tools and libraries.
Focus
- Organize biological entities as perl objects (genomic regions, genes, transcripts, introns/exons, etc)
- Organize sequencing entities as perl objects/attributes (sequencing reads, alignments, etc)
- Make I/O from widely used file formats easy (SAM, BED, FASTA, FASTQ)
- Be consistent and easily extendable
We want to keep this framework focused on the real issues found in sequencing analyses and balance being easily extendable with being focused and efficient.
Installation
- Install git for your machine git install
- Install GenOO dependencies (listed below) from CPAN. How to install CPAN modules
- Clone the GenOO repository on your machine
git clone https://github.com/genoo/GenOO.git - In the beginning of your perl script write the following
use lib 'path/to/genoo/clone/lib/' - You are done! No, seriously, you are done! Happy coding!
If you want to verify that everything works
cd path/to/genoo/clone/
prove -l t/*.t
Dependencies
- Moose
- MooseX::AbstractFactory
- MooseX::MarkAsMethods
- DBIx::Class
- PerlIO::gzip
- namespace::autoclean
- Test::Most
- Test::Class
- Test::Exception
- Modern::Perl
Important Notes
- Backwards compatibility is particularly important and GenOO will attempt to be as backwards compatible as possible. However we all know that bugs exist and things might change. If a change breaks backwards compatibility and particularly if it breaks the test suite it must be logged in the changelog file. This will help users track important changes and will make updates much more safe.
State
The framework is under development and functionality is added regularly. The core of the framework is considered stable.
Copyright
Copyright (c) 2013 Emmanouil Maragkakis and Panagiotis Alexiou.
License
This library is free software and may be distributed under the same terms as perl itself.