[Dynamite] (no subject)

Ian Holmes ihh@fruitfly.org
Mon, 24 Jul 2000 12:38:30 -0700 (PDT)


On Tue, 25 Jul 2000, Ewan Birney wrote:

> > I had in mind something like:
> > 
> >   <state name="my_special_state/">
> >     <loop chain="target"/>    <!--this is the tag that indicates it's a special state-->
> >     ...
> >   </state>
> > 
> > ...i.e. s/special/loop/
> > 
> > but otherwise they're handled the same as dynamite
> > 
> 
> Hmmm. Neither "loop" nor "special" really capture their attributes 
> (states can be special without looping. true? it is so in dynamite)
> 

True. Special states that aren't loop states are (theoretically)  
auto-detectable by the algorithm, because they form a clique of states
that either has (1) no incoming transitions from the polymer or (2) no
outgoing transitions *to* the polymer

E.g. in the following simple HMM:

   START --> INSERT_QUERY_A --> MATCH --> INSERT_QUERY_B --> END

...'INSERT_QUERY_A' is a left padding state that falls into category (1)
(call this "pre-loop"), and 'INSERT_QUERY_B' is a right padding state in
category (2) (call this "post-loop")

(in practise you probably would not bother with padding states as all
models implicitly have zero-scoring padding states anyway, unless declared
global with "initiate" and "terminate" tags--the equivalent of dynamite's 
"!left" etc)

Note also that in the following HMM:

   START --> INSERT_QUERY_A --> INSERT_QUERY_B --> MATCH --> INSERT_QUERY_C --> INSERT_QUERY_D --> END

...INSERT_QUERY_A and INSERT_QUERY_B are both still pre-loop, and
INSERT_QUERY_C and INSERT_QUERY_D are both still post-loop

Perhaps it is too obscure to expect the algorithm to autodetect these
(though it's not hard); I had considered adding *optional* tags
e.g. "preloop" and "postloop"

perhaps this is even more confusing, because "loop" states can also either
be located before OR after the target chain, depending on whether they
have any null transitions into or out of the target. hmmm.

> 
> How about "singlet" states (ie, not polymer). or "monomer"
> 

I have to admit "singlet" is a pretty good name

Although... you still have to sort the states into pre-loop and post-loop.

So: vote is between "singlet"
         or "loop" + optional "preloop", "postloop"

ian