-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Collection of alignment algorithms -- -- generalized Algebraic Dynamic Programming -- -- A selection of (sequence) alignment algorithms. Both terminal, and -- syntactic variables, as well as the index type is not fixed here. This -- makes it possible to select the correct structure of the grammar here, -- but bind the required data type for alignment in user code. -- -- That being said, these algorithms are mostly aimed towards sequence -- alignment problems. -- -- List of grammars: -- -- @package AlignmentAlgorithms @version 0.0.2.1 -- | 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. module DP.Alignment.Global.Tapes2 -- | Define signature and grammar data SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 SigGlobal :: (s_adl3 -> (:.) ((:.) Z t_l_adl5) t_u_adl6 -> s_adl3) -> (s_adl3 -> (:.) ((:.) Z t_l_adl5) () -> s_adl3) -> ((:.) ((:.) Z ()) () -> s_adl3) -> (s_adl3 -> (:.) ((:.) Z ()) t_u_adl6 -> s_adl3) -> (Stream m_adl2 s_adl3 -> m_adl2 r_adl4) -> SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 [align] :: SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 -> s_adl3 -> (:.) ((:.) Z t_l_adl5) t_u_adl6 -> s_adl3 [delin] :: SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 -> s_adl3 -> (:.) ((:.) Z t_l_adl5) () -> s_adl3 [done] :: SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 -> (:.) ((:.) Z ()) () -> s_adl3 [indel] :: SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 -> s_adl3 -> (:.) ((:.) Z ()) t_u_adl6 -> s_adl3 [h] :: SigGlobal m_adl2 s_adl3 r_adl4 t_l_adl5 t_u_adl6 -> Stream m_adl2 s_adl3 -> m_adl2 r_adl4 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 -- | Generic backtracking scheme via FMLists. backtrack :: Monad m => u -> l -> SigGlobal m (FMList (l, u)) [FMList (l, u)] l u -- | Backtracking with more options backtrackFun :: Monad m => (l -> u -> r) -> (l -> u -> r) -> u -> l -> SigGlobal m (FMList r) [FMList r] l u -- | Turn a single FMList backtracking result into the -- corresponding list. runBacktrack :: FMList r -> [r] instance (GHC.Base.Monad mL0, GHC.Base.Monad mR0, GHC.Classes.Eq xL0, mL0 ~ mR0, xL0 ~ rL0) => ADP.Fusion.TH.Backtrack.ProductBacktracking (DP.Alignment.Global.Tapes2.SigGlobal mL0 xL0 rL0 t_l0 t_u0) (DP.Alignment.Global.Tapes2.SigGlobal mR0 xR0 rR0 t_l0 t_u0)