32d7f059cbf363cf6b98a6139ad1e7975b59e116 larrym Mon Jul 5 20:12:09 2010 -0700 add dnaMotifBitScoreWithMarkovBg diff --git src/inc/dnaMarkov.h src/inc/dnaMarkov.h index 3f64fe4..552422f 100644 --- src/inc/dnaMarkov.h +++ src/inc/dnaMarkov.h @@ -1,34 +1,43 @@ /* dnaMarkov - stuff to build 1st, 2nd, 3rd, and coding * 3rd degree Markov models for DNA. */ #ifndef DNAMARKOV_H #define DNAMARKOV_H void dnaMark0(struct dnaSeq *seqList, double mark0[5], int slogMark0[5]); /* Figure out frequency of bases in input. Results go into * mark0 and optionally in scaled log form into slogMark0. * Order is N, T, C, A, G. (TCAG is our normal order) */ void dnaMark1(struct dnaSeq *seqList, double mark0[5], int slogMark0[5], double mark1[5][5], int slogMark1[5][5]); /* Make up 1st order Markov model - probability that one nucleotide * will follow another. Input is sequence and 0th order Markov models. * Output is first order Markov model. slogMark1 can be NULL. */ void dnaMark2(struct dnaSeq *seqList, double mark0[5], int slogMark0[5], double mark1[5][5], int slogMark1[5][5], double mark2[5][5][5], int slogMark2[5][5][5]); /* Make up 1st order Markov model - probability that one nucleotide * will follow the previous two. */ void dnaMarkTriple(struct dnaSeq *seqList, double mark0[5], int slogMark0[5], double mark1[5][5], int slogMark1[5][5], double mark2[5][5][5], int slogMark2[5][5][5], int offset, int advance, int earlyEnd); /* Make up a table of how the probability of a nucleotide depends on the previous two. * Depending on offset and advance parameters this could either be a straight 2nd order * Markov model, or a model for a particular coding frame. */ +char *dnaMark2Serialize(double mark2[5][5][5]); +// serialize a 2nd order markov model + +void dnaMark2Deserialize(char *buf, double mark2[5][5][5]); +// deserialize a 2nd order markov model from buf which was serialized with dnaMark2Serialize + +void dnaMarkMakeLog2(double mark2[5][5][5]); +// convert a 2nd-order markov array to log2 + #endif /* DNAMARKOV_H */