[][src]Module bio::alignment::poa

Partial-Order Alignment for fast alignment and consensus of multiple homologous sequences.

For the original concept and theory, see:

  • Lee, Christopher, Catherine Grasso, and Mark F. Sharlow. "Multiple sequence alignment using partial order graphs." Bioinformatics 18.3 (2002): 452-464.
  • Lee, Christopher. "Generating consensus sequences from partial order multiple sequence alignment graphs." Bioinformatics 19.8 (2003): 999-1008.

For a modern reference implementation, see poapy: https://github.com/ljdursi/poapy

Example

use bio::alignment::poa::*;
use bio::alignment::pairwise::Scoring;

let x = b"AAAAAAA";
let y = b"AABBBAA";
let z = b"AABCBAA";

let scoring = Scoring::new(-1, 0, |a: u8, b: u8| if a == b { 1i32 } else { -1i32 });
let mut aligner = Aligner::new(scoring, x);
// z differs from x in 3 locations
assert_eq!(aligner.global(z).alignment().score, 1);
aligner.global(y).add_to_graph();
// z differs from x and y's partial order alignment by 1 base
assert_eq!(aligner.global(z).alignment().score, 5);

Structs

Aligner

A partially ordered aligner builder

Alignment
Poa

A partially ordered alignment graph

Traceback
TracebackCell

Enums

AlignmentOperation

Constants

MIN_SCORE

Type Definitions

POAGraph