CMCompare-0.0.1.5: Infernal covariance model comparison

Safe HaskellNone

BioInf.CMCompare

Contents

Description

This program compares two Infernal covariance models with each other. Based on the Infernal CM scoring mechanism, a Link sequence and Link score are calculated. The Link sequence is defined as the sequence scoring highest in both models simultanuously.

The complete algorithm is described in:

Christian Höner zu Siederdissen, and Ivo L. Hofacker. 2010. Discriminatory power of RNA family models. Bioinformatics 26, no. 18: 453–59.

http://bioinformatics.oxfordjournals.org/content/26/18/i453.long

NOTE always use coverage analysis to find out, if we really used all code paths (in long models, if a path is not taken, there is a bug)

Synopsis

optimization functions

type Opt a = (CM -> StateID -> a, CM -> StateID -> BitScore -> a -> a, CM -> StateID -> BitScore -> a -> a, CM -> StateID -> BitScore -> a -> a, CM -> StateID -> BitScore -> (Char, Char, BitScore) -> a -> a, CM -> StateID -> BitScore -> (Char, BitScore) -> a -> a, CM -> StateID -> BitScore -> (Char, BitScore) -> a -> a, CM -> StateID -> BitScore -> (Char, BitScore) -> a -> a, CM -> StateID -> BitScore -> (Char, BitScore) -> a -> a, CM -> StateID -> a -> a -> a, [(a, a)] -> [(a, a)], a -> String)Source

Type of the optimization functions.

cykMaxiMin :: Opt BitScoreSource

Calculates the cyk optimal score over both models.

rnaString :: Bool -> Opt [Char]Source

Return the nucleotide sequence leading to the score. uses an optional endmarker to denote end states. the string is the same for both models. this is the only Opt function, currently, for which this is true.

dotBracket :: Bool -> Opt StringSource

Dotbracket notation, again with an endmarker, to see the secondary structure corresponding to the rnastring.

visitedNodes :: Opt [NodeID]Source

Show the nodes which were visited to get the score. the last node can occur multiple times. if it does, local end transitions were used.

extendedOutput :: Opt StringSource

Detailed output of the different states, that were visited.

(<*>) :: Eq a => Opt a -> Opt b -> Opt (a, b)Source

Algebra product operation.

The grammar for CM comparison.

recurse :: Bool -> Opt a -> CM -> CM -> Array (StateID, StateID) [(a, a)]Source

Recursion in two CMs simultanously.