Safe Haskell | None |
---|---|
Language | Haskell2010 |
A simple linear alignment module for forest-like structures. Currently all comparisons are on Newick-like forests.
- data SigGlobal m s r t_n_0_ t_n_1_ = SigGlobal {}
- data SigLabolg m s r t_n_0_ t_n_1_ = SigLabolg {}
- gLabolg :: ((~#) * * (Fun (Arg ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) -> t6)) ((:.) ((:.) Z ()) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) () -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) t3 -> t6 -> t6), Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) i1, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) i1, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) i1, Element ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i2, Element ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i, Element ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) i1, Element ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 S i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) i1, MkStream t7 ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i2, MkStream t7 ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i, MkStream t7 ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) i1, RuleContext i2, RuleContext i, RuleContext i1, Apply (Arg ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) -> t6), Apply (Arg ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) -> t6), Build (TW t2 (i1 -> i1 -> t7 t5)), Build a, Build a1, TermStream t7 (TermSymbol (TermSymbol M Epsilon) Epsilon) (Elm S i1) i1, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) i1) => SigLabolg t7 t6 t5 t4 t3 -> t2 -> t1 -> t -> b2 -> a1 -> a -> b1 -> b -> (:.) ((:.) ((:.) Z (TW t2 (i1 -> i1 -> t7 t5))) (TW t1 (i -> i -> t7 t5))) (TW t (i2 -> i2 -> t7 t5))
- gGlobal :: ((~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z ()) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) () -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) i2, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) i2, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) i, Element ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, Element ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 S i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) i2, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) i2, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) i, MkStream t7 ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, RuleContext i2, RuleContext i, RuleContext i1, Build (TW t (i2 -> i2 -> t7 t5)), Build (TW t1 (i -> i -> t7 t5)), TermStream t7 (TermSymbol (TermSymbol M Epsilon) Epsilon) (Elm S i1) i1, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) i1) => SigGlobal t7 t6 t5 t4 t3 -> t2 -> t1 -> t -> b1 -> b -> (:.) ((:.) ((:.) Z (TW t2 (i1 -> i1 -> t7 t5))) (TW t1 (i -> i -> t7 t5))) (TW t (i2 -> i2 -> t7 t5))
- resig :: Monad m => SigGlobal m a b c d -> SigLabolg m a b c d
- score :: Monad m => Int -> Int -> Int -> SigGlobal m Int Int Info Info
- part :: Monad m => Log Double -> Log Double -> Log Double -> Log Double -> SigGlobal m (Log Double) (Log Double) Info Info
- type Pretty = [[Tree (Info, Info)]]
- pretty :: Monad m => SigGlobal m [Tree (Info, Info)] [[Tree (Info, Info)]] Info Info
- type Trix = TreeIxR Pre Vector Info I
- type Tbl x = TwITbl Id Unboxed ((Z :. EmptyOk) :. EmptyOk) ((Z :. Trix) :. Trix) x
- type Frst = Forest Pre Vector Info
- type TblBt x = TwITblBt Unboxed ((Z :. EmptyOk) :. EmptyOk) ((Z :. Trix) :. Trix) Int Id Id [x]
- type B = Tree (Info, Info)
- runForward :: Frst -> Frst -> Int -> Int -> Int -> ((Z :. Tbl Int) :. Tbl Int) :. Tbl Int
- runInside :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> ((Z :. Tbl (Log Double)) :. Tbl (Log Double)) :. Tbl (Log Double)
- type Trox = TreeIxR Pre Vector Info O
- type OTbl x = TwITbl Id Unboxed ((Z :. EmptyOk) :. EmptyOk) ((Z :. Trox) :. Trox) x
- runOutside :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> (((Z :. Tbl (Log Double)) :. Tbl (Log Double)) :. Tbl (Log Double)) -> ((Z :. OTbl (Log Double)) :. OTbl (Log Double)) :. OTbl (Log Double)
- runS :: Frst -> Frst -> Int -> Int -> Int -> (((Z :. Tbl Int) :. Tbl Int) :. Tbl Int, Int, [[Tree (Info, Info)]])
- runIO :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> ((:.) ((:.) ((:.) Z (Tbl (Log Double))) (Tbl (Log Double))) (Tbl (Log Double)), (:.) ((:.) ((:.) Z (OTbl (Log Double))) (OTbl (Log Double))) (OTbl (Log Double)), Log Double)
- t11 :: [Char]
- t12 :: [Char]
- t21 :: [Char]
- t22 :: [Char]
- t31 :: [Char]
- t32 :: [Char]
- t41 :: [Char]
- t42 :: [Char]
- t51 :: [Char]
- t52 :: [Char]
- t61 :: [Char]
- t62 :: [Char]
- t71 :: [Char]
- t72 :: [Char]
- test :: FilePath -> FilePath -> IO ()
- runAlignScoreTrees :: Frst -> Frst -> Int -> Int -> Int -> IO ()
- runAlignScoreTreesIO :: FillWeight -> RenderChoice -> FilePath -> Frst -> Frst -> Log Double -> Log Double -> Log Double -> IO ()
- runAlignS :: String -> String -> Int -> Int -> Int -> IO ()
- runAlignIO :: FillWeight -> RenderChoice -> FilePath -> String -> String -> Log Double -> Log Double -> Log Double -> Log Double -> IO ()
Documentation
data SigGlobal m s r t_n_0_ t_n_1_ Source #
(Monad mL0, Monad mR0, Eq xL0, (~) (* -> *) mL0 mR0, (~) * xL0 rL0) => ProductBacktracking (SigGlobal mL0 xL0 rL0 t_n_0_0 t_n_1_0) (SigGlobal mR0 xR0 rR0 t_n_0_0 t_n_1_0) Source # | |
(Monad mL0, Monad mR0, Eq xL0, Ord xL0, Ord xR0, (~) (* -> *) mL0 mR0) => ProductCombining (SigGlobal mL0 xL0 rL0 t_n_0_0 t_n_1_0) (SigGlobal mR0 xR0 rR0 t_n_0_0 t_n_1_0) Source # | |
type SigBacktracking (SigGlobal mL0 xL0 rL0 t_n_0_0 t_n_1_0) (SigGlobal mR0 xR0 rR0 t_n_0_0 t_n_1_0) Source # | |
type SigCombining (SigGlobal mL0 xL0 rL0 t_n_0_0 t_n_1_0) (SigGlobal mR0 xR0 rR0 t_n_0_0 t_n_1_0) Source # | |
gLabolg :: ((~#) * * (Fun (Arg ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) -> t6)) ((:.) ((:.) Z ()) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) () -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) t3 -> t6 -> t6), Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) i1, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) i1, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) i1, Element ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i2, Element ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i, Element ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) i1, Element ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 S i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) i1, MkStream t7 ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i2, MkStream t7 ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) i, MkStream t7 ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) i1, RuleContext i2, RuleContext i, RuleContext i1, Apply (Arg ((:!:) (Stack (TW t2 (i1 -> i1 -> t7 t5))) b2) -> t6), Apply (Arg ((:!:) (Stack a) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack a1) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t (i2 -> i2 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t (i2 -> i2 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t1 (i -> i -> t7 t5))) -> t6), Build (TW t2 (i1 -> i1 -> t7 t5)), Build a, Build a1, TermStream t7 (TermSymbol (TermSymbol M Epsilon) Epsilon) (Elm S i1) i1, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) i1) => SigLabolg t7 t6 t5 t4 t3 -> t2 -> t1 -> t -> b2 -> a1 -> a -> b1 -> b -> (:.) ((:.) ((:.) Z (TW t2 (i1 -> i1 -> t7 t5))) (TW t1 (i -> i -> t7 t5))) (TW t (i2 -> i2 -> t7 t5)) Source #
gGlobal :: ((~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z ()) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) () -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) ((:.) ((:.) Z t4) t3 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), (~#) * * (Fun (Arg ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6)) (t6 -> t6 -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Apply (Arg ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) -> t6), Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) i2, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) i2, Element ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) i, Element ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, Element ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 S i1, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M Deletion) b)) (TW t2 (i1 -> i1 -> t7 t5))) i2, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) Deletion)) (TW t2 (i1 -> i1 -> t7 t5))) i2, MkStream t7 ((:!:) ((:!:) S (TermSymbol (TermSymbol M b1) b)) (TW t2 (i1 -> i1 -> t7 t5))) i, MkStream t7 ((:!:) (Stack (TW t (i2 -> i2 -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, MkStream t7 ((:!:) (Stack (TW t1 (i -> i -> t7 t5))) (TW t2 (i1 -> i1 -> t7 t5))) i1, RuleContext i2, RuleContext i, RuleContext i1, Build (TW t (i2 -> i2 -> t7 t5)), Build (TW t1 (i -> i -> t7 t5)), TermStream t7 (TermSymbol (TermSymbol M Epsilon) Epsilon) (Elm S i1) i1, TermStaticVar (TermSymbol (TermSymbol M Epsilon) Epsilon) i1) => SigGlobal t7 t6 t5 t4 t3 -> t2 -> t1 -> t -> b1 -> b -> (:.) ((:.) ((:.) Z (TW t2 (i1 -> i1 -> t7 t5))) (TW t1 (i -> i -> t7 t5))) (TW t (i2 -> i2 -> t7 t5)) Source #
part :: Monad m => Log Double -> Log Double -> Log Double -> Log Double -> SigGlobal m (Log Double) (Log Double) Info Info Source #
type TblBt x = TwITblBt Unboxed ((Z :. EmptyOk) :. EmptyOk) ((Z :. Trix) :. Trix) Int Id Id [x] Source #
runInside :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> ((Z :. Tbl (Log Double)) :. Tbl (Log Double)) :. Tbl (Log Double) Source #
runOutside :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> (((Z :. Tbl (Log Double)) :. Tbl (Log Double)) :. Tbl (Log Double)) -> ((Z :. OTbl (Log Double)) :. OTbl (Log Double)) :. OTbl (Log Double) Source #
runS :: Frst -> Frst -> Int -> Int -> Int -> (((Z :. Tbl Int) :. Tbl Int) :. Tbl Int, Int, [[Tree (Info, Info)]]) Source #
runIO :: Frst -> Frst -> Log Double -> Log Double -> Log Double -> Log Double -> ((:.) ((:.) ((:.) Z (Tbl (Log Double))) (Tbl (Log Double))) (Tbl (Log Double)), (:.) ((:.) ((:.) Z (OTbl (Log Double))) (OTbl (Log Double))) (OTbl (Log Double)), Log Double) Source #
:: Frst | Forest |
-> Frst | Forest |
-> Int | score for matching nodes between |
-> Int | if nodes between |
-> Int | Score for an |
-> IO () |
This is the main entry for "main-like" calls that already provide trees. A match is defined as equality on the labels.
TODO this should be turned into the more ususual streaming-compatible behaviour.
runAlignScoreTreesIO :: FillWeight -> RenderChoice -> FilePath -> Frst -> Frst -> Log Double -> Log Double -> Log Double -> IO () Source #