|
a |
|
b/tests/deseq2/test_zero_zero.py |
|
|
1 |
import unittest |
|
|
2 |
|
|
|
3 |
import numpy as np |
|
|
4 |
|
|
|
5 |
from inmoose.deseq2 import DESeq, makeExampleDESeqDataSet |
|
|
6 |
from inmoose.utils import Factor |
|
|
7 |
|
|
|
8 |
|
|
|
9 |
class zero_zero(unittest.TestCase): |
|
|
10 |
def test_zero_zero(self): |
|
|
11 |
"""test that contrast of two groups with all zeros - LFC zeroed out""" |
|
|
12 |
|
|
|
13 |
# test comparison of two groups with all zeros |
|
|
14 |
dds = makeExampleDESeqDataSet( |
|
|
15 |
m=8, n=100, sizeFactors=[1, 1, 0.5, 0.5, 1, 1, 2, 2] |
|
|
16 |
) |
|
|
17 |
dds.obs["condition"] = Factor(np.repeat(["A", "B", "C", "D"], 2)) |
|
|
18 |
dds.design = "~condition" |
|
|
19 |
dds.counts()[:, 0] = [100, 110, 0, 0, 100, 110, 0, 0] |
|
|
20 |
dds.counts()[:, 1] = np.repeat(0, 8) |
|
|
21 |
dds = DESeq(dds) |
|
|
22 |
|
|
|
23 |
res = dds.results(contrast=["condition", "D", "B"]) |
|
|
24 |
self.assertEqual(res.log2FoldChange.iloc[0], 0) |
|
|
25 |
res = dds.results(contrast=[0, -1, 0, 1]) |
|
|
26 |
self.assertEqual(res.log2FoldChange.iloc[0], 0) |
|
|
27 |
res = dds.results(contrast=["condition_D_vs_A", "condition_B_vs_A"]) |
|
|
28 |
self.assertEqual(res.log2FoldChange.iloc[0], 0) |
|
|
29 |
|
|
|
30 |
res = dds.results(name="condition_D_vs_A") |
|
|
31 |
self.assertNotEqual(res.log2FoldChange.iloc[0], 0) |
|
|
32 |
res = dds.results([0, 0, 0, 1]) |
|
|
33 |
self.assertNotEqual(res.log2FoldChange.iloc[0], 0) |
|
|
34 |
|
|
|
35 |
# if all samples have 0, should be NA |
|
|
36 |
res = dds.results(contrast=["condition", "D", "B"]) |
|
|
37 |
self.assertTrue(np.isnan(res.log2FoldChange.iloc[1])) |
|
|
38 |
res = dds.results(contrast=[0, -1, 0, 1]) |
|
|
39 |
self.assertTrue(np.isnan(res.log2FoldChange.iloc[1])) |