|
a |
|
b/tests/deseq2/test_addMLE.py |
|
|
1 |
import unittest |
|
|
2 |
|
|
|
3 |
import numpy as np |
|
|
4 |
|
|
|
5 |
from inmoose.deseq2 import DESeq, makeExampleDESeqDataSet, nbinomWaldTest |
|
|
6 |
from inmoose.utils import Factor |
|
|
7 |
|
|
|
8 |
|
|
|
9 |
class Test(unittest.TestCase): |
|
|
10 |
def test_addMLE(self): |
|
|
11 |
"""test that adding MLE works as expected""" |
|
|
12 |
dds = makeExampleDESeqDataSet(n=200, m=12, betaSD=1, seed=42) |
|
|
13 |
dds.obs["condition"] = Factor(np.repeat(["A", "B", "C"], 4)) |
|
|
14 |
dds.design = "~condition" |
|
|
15 |
dds = DESeq(dds, betaPrior=True) |
|
|
16 |
ddsNP = nbinomWaldTest(dds.copy(), betaPrior=False) |
|
|
17 |
|
|
|
18 |
res1 = dds.results(contrast=["condition", "C", "A"], addMLE=True) |
|
|
19 |
res2 = ddsNP.results(contrast=["condition", "C", "A"]) |
|
|
20 |
self.assertTrue(np.allclose(res1.lfcMLE, res2.log2FoldChange, equal_nan=True)) |
|
|
21 |
|
|
|
22 |
res1 = dds.results(contrast=["condition", "A", "B"], addMLE=True) |
|
|
23 |
res2 = ddsNP.results(contrast=["condition", "A", "B"]) |
|
|
24 |
self.assertTrue(np.allclose(res1.lfcMLE, res2.log2FoldChange, equal_nan=True)) |
|
|
25 |
|
|
|
26 |
res1 = dds.results(contrast=["condition", "C", "B"], addMLE=True) |
|
|
27 |
res2 = ddsNP.results(contrast=["condition", "C", "B"]) |
|
|
28 |
self.assertTrue(np.allclose(res1.lfcMLE, res2.log2FoldChange, equal_nan=True)) |