opensubscriber
   Find in this group all groups
 
Unknown more information…

b : biojava-l@biojava.org 23 January 2006 • 7:32PM -0500

Re: [Biojava-l] Generalized HMM in biojava?
by Matthew Pocock

REPLY TO AUTHOR
 
REPLY TO GROUP




On Friday 20 January 2006 22:11, wendy wong wrote:
> what I am trying to do is to develop a phylogenetic HMM. so say there
> are 3 sequences, in the alignment, that means each site consists of 3
> symbols, and if it is a generalized HMM, each state has several sites,
> say 7.

OK - so you have a single HMM that emits whole columns of an alignment?
Usually to a lign three sequences, you would use a 3-head HMM where each head
emits one of the sequences.

> I wrote a testing program to see if it works. when the length
> of sites in the state = 5 it worked. (I just want to see if I can
> factorize a symbol in the state alphabet. but when number of sites in
> the state = 7, I get  java.lang.ArrayIndexOutOfBoundsException.  (code
> attached)
>
> Is it because i was not using the alphabet efficiently?

You shouldn't be getting exceptions. This is almost certainly a bug. Could you
send the stack-trace?

Matthew

>
> again, thanks very much for helping!
>
> Wendy
>
> public static void main(String[] args) throws MarshalException,
> ValidationException, IOException {
>
> Alphabet sequenceAlphabet = DNATools.getDNA();
> Set alphabetSet = AlphabetManager.getAllSymbols((FiniteAlphabet)
> sequenceAlphabet);
>
>      int no_sequences = 3;
> List siteAlphabetList = Collections.nCopies(no_sequences,
> sequenceAlphabet); Alphabet siteAlphabet =
> AlphabetManager.getCrossProductAlphabet(siteAlphabetList);
>     int length = 7;
>     List staeAlphabetList = Collections.nCopies(length, siteAlphabet);
>     Alphabet stateAlphabet =
> AlphabetManager.getCrossProductAlphabet(staeAlphabetList);
>
>     AlphabetIndex alphabetIndex =
> AlphabetManager.getAlphabetIndex((FiniteAlphabet) stateAlphabet);
> AtomicSymbol sym = (AtomicSymbol) alphabetIndex.symbolForIndex(3);
>     List symList = sym.getSymbols();
>     log.info("sym (index=3)  is " + sym);
>     log.info("sym is composed of:");
>     Iterator symIter = symList.iterator();
>     while (symIter.hasNext()) {
>      log.info(symIter.next());
>     }
> }
_______________________________________________
Biojava-l mailing list  -  Biojava-l@bioj...
http://biojava.org/mailman/listinfo/biojava-l

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.