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 :: (Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> t1), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> t1), Apply ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> t1), TerminalStream t (TermSymbol (TermSymbol M b) b1) r, TerminalStream t (TermSymbol (TermSymbol M b) Deletion) r, TerminalStream t (TermSymbol (TermSymbol M Deletion) b1) r, TerminalStream t (TermSymbol (TermSymbol M Epsilon) Epsilon) r, TermStaticVar (TermSymbol (TermSymbol M b) b1) r, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) r, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) r, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) r, RuleContext r, Element (Stack b2) r, MkStream t (Stack b2) r, MkStream t S r, Build b2, (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> t1)) (t1 -> (:.) ((:.) Z t3) t4 -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> t1)) (t1 -> (:.) ((:.) Z t3) () -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> t1)) (t1 -> (:.) ((:.) Z ()) t4 -> t1)) => SigGlobal t t1 t2 t3 t4 -> ((r -> r -> t t2) -> 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
gGlobal :: (Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> t1), Apply ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) b1)) -> t1), Apply ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> t1), TerminalStream t (TermSymbol (TermSymbol M b) b1) r, TerminalStream t (TermSymbol (TermSymbol M b) Deletion) r, TerminalStream t (TermSymbol (TermSymbol M Deletion) b1) r, TerminalStream t (TermSymbol (TermSymbol M Epsilon) Epsilon) r, TermStaticVar (TermSymbol (TermSymbol M b) b1) r, TermStaticVar (TermSymbol (TermSymbol M b) Deletion) r, TermStaticVar (TermSymbol (TermSymbol M Deletion) b1) r, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) r, RuleContext r, Element (Stack b2) r, MkStream t (Stack b2) r, MkStream t S r, Build b2, (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M b) b1)) -> t1)) (t1 -> (:.) ((:.) Z t3) t4 -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) ((:.) (TermArg (TermSymbol M b)) ()) -> t1)) (t1 -> (:.) ((:.) Z t3) () -> t1), (~) * (Fun ((:.) (Arg (Stack b2)) (TermArg (TermSymbol (TermSymbol M Deletion) 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 FMList
s.
runBacktrack :: FMList (u, l) -> [(u, l)] Source
Turn a single FMList
backtracking result into the corresponding
list.