425fe0ac9cdc7f91527b942b83d51fda439dcde5
larrym
  Mon Jul 19 00:27:41 2010 -0700
add dnaMotifBitScoreWithMark0Bg
diff --git src/lib/dnaMotif.c src/lib/dnaMotif.c
index 74ae4a5..950bc02 100644
--- src/lib/dnaMotif.c
+++ src/lib/dnaMotif.c
@@ -170,6 +170,18 @@
 return p;
 }
 
+static float dnaMotifSequenceProbWithMark0(struct dnaMotif *motif, DNA *dna, double mark0[5])
+{
+float p = 1.0;
+int i;
+for (i=0; i<motif->columnCount; ++i)
+    {
+    int val = ntVal[(int) dna[i]] + 1;
+    p *= (mark0[val]/mark0[0]);
+    }
+return p;
+}
+
 static float dnaMotifSequenceProbLog(struct dnaMotif *motif, DNA *dna)
 {
 float p = 0;
@@ -229,6 +241,15 @@
 return logBase2(odds);
 }
 
+double dnaMotifBitScoreWithMark0Bg(struct dnaMotif *motif, DNA *dna, double mark0[5])
+/* Return logBase2-odds score of dna given a probabalistic motif and using a 0-order markov model for the background. */
+{
+double p = dnaMotifSequenceProb(motif, dna);
+double q = dnaMotifSequenceProbWithMark0(motif, dna, mark0);
+double odds = p/q;
+return logBase2(odds);
+}
+
 double dnaMotifBitScoreWithMarkovBg(struct dnaMotif *motif, DNA *dna, double mark2[5][5][5])
 /* Return logBase2-odds score of dna given a probabalistic motif using a 2nd-order markov model for the background.
    motif and markd2 must be in log2 format.