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