1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
// Copyright 2014 Johannes Köster. // Licensed under the MIT license (http://opensource.org/licenses/MIT) // This file may not be copied, modified, or distributed // except according to those terms. //! # Rust-bio, a bioinformatics library for Rust. //! This library provides implementations of many algorithms and data structures //! that are useful for bioinformatics. //! All provided implementations are rigorously tested via continuous //! integration. //! For installation instructions and a general overview, visit //! https://rust-bio.github.io. //! //! Currently, rust-bio provides //! //! * most major pattern matching algorithms, //! * a convenient alphabet implementation, //! * pairwise alignment, //! * suffix arrays, //! * BWT and FM-Index, //! * FMD-Index for finding supermaximal exact matches, //! * a q-gram index, //! * a rank/select data structure, //! * FASTQ and FASTA and BED readers and writers, //! * helper functions for combinatorics and dealing with log probabilities. //! //! # Example //! //! ```rust //! use bio::alphabets; //! use bio::data_structures::suffix_array::suffix_array; //! use bio::data_structures::bwt::bwt; //! use bio::data_structures::fmindex::FMIndex; //! //! let text = b"ACGGATGCTGGATCGGATCGCGCTAGCTA$"; //! let pattern = b"ACCG"; //! //! // Create an FM-Index for a given text. //! let alphabet = alphabets::dna::iupac_alphabet(); //! let pos = suffix_array(text); //! let fmindex = FMIndex::new(bwt(text, &pos), 3, &alphabet); //! //! let interval = fmindex.backward_search(pattern.iter()); //! let positions = interval.occ(&pos); //! ``` //! //! Documentation and further examples for each module can be found in the module descriptions below. #![cfg_attr(feature = "serde_macros", feature(const_fn, custom_derive, plugin))] #![cfg_attr(feature = "serde_macros", plugin(serde_macros))] #[cfg(feature = "serde_macros")] extern crate serde; extern crate rustc_serialize; extern crate csv; extern crate num; extern crate itertools; extern crate bit_vec; extern crate vec_map; extern crate bit_set; #[macro_use] extern crate lazy_static; extern crate nalgebra; pub mod utils; pub mod alphabets; pub mod pattern_matching; pub mod data_structures; pub mod alignment; pub mod io; pub mod stats; pub mod scores;