AlignmentAlgorithms-0.0.2.1: Collection of alignment algorithms

Safe HaskellNone
LanguageHaskell2010

DP.Alignment.Global.Tapes2

Description

Very simple pairwise global alignment. The terminal tapes may contain the atomic types u and l which means that one may align sequences of different types.

In case you want to align nucleotides to amino acids, this version should only be used if the nucleotides are already in triplet form and have no frameshift within the sequence. Alternatively, specify a derived grammar of higher complexity.

Synopsis

Documentation

data SigGlobal m s r t_l t_u Source

Define signature and grammar

Constructors

SigGlobal 

Fields

align :: s -> (:.) ((:.) Z t_l) t_u -> s
 
delin :: s -> (:.) ((:.) Z t_l) () -> s
 
done :: (:.) ((:.) Z ()) () -> s
 
indel :: s -> (:.) ((:.) Z ()) t_u -> s
 
h :: Stream m s -> m r
 

Instances

(Monad mL0, Monad mR0, Eq xL0, (~) (* -> *) mL0 mR0, (~) * xL0 rL0) => ProductBacktracking (SigGlobal mL xL rL t_l t_u) (SigGlobal mR xR rR t_l t_u) Source 
type SigBacktracking (SigGlobal mL0 xL0 rL0 t_l0 t_u0) (SigGlobal mR0 xR0 rR0 t_l0 t_u0) = SigGlobal mR0 (xL0, [xR0]) rR0 t_l0 t_u0 Source 

gGlobal :: (TermStream t (TermSymbol (TermSymbol M b) b1) r r, TermStream t (TermSymbol (TermSymbol M b) Deletion) r r, TermStream t (TermSymbol (TermSymbol M Epsilon) Epsilon) r r, TermStream t (TermSymbol (TermSymbol M Deletion) b1) r r, TermStaticVar (TermSymbol (TermSymbol M b) b1) r, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) r, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) r, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) r, RuleContext r, MkStream t (Stack b2) r, MkStream t S r, Element (Stack b2) r, Build b2, Apply ((:.) (Arg (Stack b2)) ((:.) ((:.) Z (TermArg b)) (TermArg b1)) -> t1), Apply ((:.) (Arg (Stack b2)) ((:.) ((:.) Z (TermArg b)) ()) -> t1), Apply ((:.) (Arg (Stack b2)) ((:.) ((:.) Z ()) (TermArg b1)) -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) ((:.) Z (TermArg b)) (TermArg b1)) -> t1)) (t1 -> (:.) ((:.) Z t3) t4 -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) ((:.) Z (TermArg b)) ()) -> t1)) (t1 -> (:.) ((:.) Z t3) () -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) ((:.) Z ()) (TermArg b1)) -> t1)) (t1 -> (:.) ((:.) Z ()) t4 -> t1)) => SigGlobal t t1 t2 t3 t4 -> ((r -> r -> t t2) -> b2) -> b -> b1 -> (:.) Z b2 Source

backtrack :: Monad m => u -> l -> SigGlobal m (FMList (l, u)) [FMList (l, u)] l u Source

Generic backtracking scheme via FMLists.

backtrackFun :: Monad m => (l -> u -> r) -> (l -> u -> r) -> u -> l -> SigGlobal m (FMList r) [FMList r] l u Source

Backtracking with more options

runBacktrack :: FMList r -> [r] Source

Turn a single FMList backtracking result into the corresponding list.