Safe Haskell | None |
---|---|
Language | Haskell2010 |
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.
- data SigGlobal m s r t_l t_u = SigGlobal {}
- gGlobal :: (Build b2, MkStream m S t3, MkStream m (Stack b2) t3, Element (Stack b2) t3, RuleContext t3, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) t3, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) t3, TermStaticVar (TermSymbol (TermSymbol M b) b1) t3, TerminalStream m (TermSymbol (TermSymbol M Deletion) b1) t3, TerminalStream m (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TerminalStream m (TermSymbol (TermSymbol M b) Deletion) t3, TerminalStream m (TermSymbol (TermSymbol M b) b1) t3, Apply ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a)) (a -> (:.) ((:.) Z t1) () -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a)) (a -> (:.) ((:.) Z t1) t2 -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a)) (a -> (:.) ((:.) Z ()) t2 -> a)) => SigGlobal m a t t1 t2 -> ((t3 -> t3 -> m t) -> b2) -> b -> b1 -> (:.) Z b2
- backtrack :: Monad m => u -> l -> SigGlobal m (FMList (l, u)) [FMList (l, u)] l u
- runBacktrack :: FMList (u, l) -> [(u, l)]
Documentation
data SigGlobal m s r t_l t_u Source
Define signature and grammar
(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) | |
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 |
gGlobal :: (Build b2, MkStream m S t3, MkStream m (Stack b2) t3, Element (Stack b2) t3, RuleContext t3, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) t3, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) t3, TermStaticVar (TermSymbol (TermSymbol M b) b1) t3, TerminalStream m (TermSymbol (TermSymbol M Deletion) b1) t3, TerminalStream m (TermSymbol (TermSymbol M Epsilon) Epsilon) t3, TerminalStream m (TermSymbol (TermSymbol M b) Deletion) t3, TerminalStream m (TermSymbol (TermSymbol M b) b1) t3, Apply ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> a)) (a -> (:.) ((:.) Z t1) () -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> a)) (a -> (:.) ((:.) Z t1) t2 -> a), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> a)) (a -> (:.) ((:.) Z ()) t2 -> a)) => SigGlobal m a t t1 t2 -> ((t3 -> t3 -> m t) -> 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 FMList
s.
runBacktrack :: FMList (u, l) -> [(u, l)] Source
Turn a single FMList
backtracking result into the corresponding
list.