Module bio::seq_analysis::orf [] [src]

One-way orf finder algorithm.

Complexity: O(n).

Example

use bio::seq_analysis::orf::{Finder, Orf};
let start_codons = vec!(b"ATG");
let stop_codons  = vec!(b"TGA", b"TAG", b"TAA");
let min_len = 50;
let finder = Finder::new(start_codons, stop_codons, min_len);

let sequence = b"ACGGCTAGAAAAGGCTAGAAAA";

for Orf{start, end, offset} in finder.find_all(sequence) {
   let orf = &sequence[start..end];
   //...do something with orf sequence...
}

Right now the only way to check the reverse strand for orf is to use the alphabet::dna::RevComp struct and to check for both sequences. But that's not so performance friendly, as the reverse complementation and the orf research could go on at the same time.

Structs

Finder

An implementation of a naive algorithm finder

Matches

Iterator over offset, start position, end position and sequence of matched orfs.

Orf

An orf representation with start and end position of said orf, as well as offset of the reading frame (1,2,3) and strand location