[ea0fd6]: / tests / limma / test_contrasts.py

Download this file

42 lines (35 with data), 1.2 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import unittest
import numpy as np
from patsy import dmatrix
from inmoose.limma import makeContrasts
class Test(unittest.TestCase):
def test_makeContrasts(self):
self.assertTrue(
np.array_equal(
makeContrasts(contrasts=["B-A", "C-B", "C-A"], levels=["A", "B", "C"]),
[[-1, 0, -1], [1, -1, 0], [0, 1, 1]],
)
)
self.assertTrue(
np.array_equal(
makeContrasts(contrasts="A-(B+C)/2", levels=["A", "B", "C"]),
[[1.0], [-0.5], [-0.5]],
)
)
design = dmatrix("0+A+B", {"A": ["a1", "a2", "a1"], "B": ["b1", "b2", "b3"]})
self.assertTrue(
np.array_equal(
makeContrasts(contrasts="A[a1]-A[a2]", levels=design),
[[1.0], [-1.0], [0.0], [0.0]],
)
)
# test support for underscores in contrasts
self.assertTrue(
np.array_equal(
makeContrasts(
contrasts=["T_T[B_1]-T[A_0]", "T[C_2]-T_T[B_1]", "T[C_2]-T[A_0]"],
levels=["T[A_0]", "T_T[B_1]", "T[C_2]"],
),
[[-1, 0, -1], [0, 1, 1], [1, -1, 0]],
)
)