1
- # fold_change
2
- test_that(' fold_change' ,{
3
- set.seed(' 57475' )
4
-
5
- # data
6
- D = iris_DatasetExperiment()
7
-
8
- # two groups
9
- F = filter_smeta(mode = ' exclude' ,levels = ' setosa' ,factor_name = ' Species' )
10
- F = model_apply(F ,D )
11
-
12
- D = predicted(F )
13
-
14
- # add column for paired data
15
- D $ sample_meta $ sample_id = c(1 : 50 ,1 : 50 )
16
- D $ data [1 : 50 ,2 ] = NA
17
- D $ data [1 : 25 ,3 ] = NA
18
-
19
- # unpaired
20
- FF = fold_change(factor_name = ' Species' ,method = " geometric" ,control_group = ' versicolor' )
21
- FF = model_apply(FF ,D )
22
- m = exp(mean(log(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ]))) / exp(mean(log((D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ]))))
23
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
24
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
25
- m = exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ])))) / exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' versicolor' ,3 ]))))
26
- expect_equal(FF $ fold_change [3 ,1 ],m ,tolerance = 0.00001 )
27
-
28
- FF $ method = ' median'
29
- FF = model_apply(FF ,D )
30
- m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ]) / median(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
31
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
32
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
33
- m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ],na.rm = TRUE ) / median(D $ data [D $ sample_meta $ Species == ' versicolor' ,3 ],na.rm = TRUE )
34
- expect_equal(FF $ fold_change [3 ,1 ],m ,tolerance = 0.00001 )
35
-
36
- FF $ method = ' mean'
37
- FF = model_apply(FF ,D )
38
- m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ]) / mean(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
39
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
40
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
41
- m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ],na.rm = TRUE ) / mean(D $ data [D $ sample_meta $ Species == ' versicolor' ,3 ],na.rm = TRUE )
42
- expect_equal(FF $ fold_change [3 ,1 ],m ,tolerance = 0.00001 )
43
-
44
- # paired
45
- FF = fold_change(factor_name = ' Species' ,method = " geometric" ,paired = TRUE ,sample_name = ' sample_id' )
46
- FF = model_apply(FF ,D )
47
- m = exp(mean(log(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ])- log(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])))
48
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
49
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
50
-
51
- FF $ method = ' median'
52
- FF = model_apply(FF ,D )
53
- m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ] / D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
54
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
55
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
56
-
57
- FF $ method = ' mean'
58
- FF = model_apply(FF ,D )
59
- m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ] / D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
60
- expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
61
- expect_true(is.na(FF $ fold_change [2 ,1 ]))
62
1
63
2
3
+ test_that(' fold_change unpaired' ,{
4
+ set.seed(' 57475' )
5
+
6
+ # data
7
+ D = iris_DatasetExperiment()
8
+
9
+ # add some missing values
10
+ D $ data [1 : 50 ,2 ] = NA
11
+ D $ data [1 : 25 ,3 ] = NA
12
+
13
+ # unpaired
14
+ FF = fold_change(factor_name = ' Species' ,method = " geometric" ,control_group = ' versicolor' )
15
+ FF = model_apply(FF ,D )
16
+ # check some fold changes
17
+ m = exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ])))) / exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ]))))
18
+ expect_equal(FF $ fold_change $ `virginica/versicolor` [1 ],m ,tolerance = 0.00001 )
19
+
20
+ m = exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' setosa' ,4 ])))) / exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' versicolor' ,4 ]))))
21
+ expect_equal(FF $ fold_change $ `setosa/versicolor` [4 ],m ,tolerance = 0.00001 )
22
+
23
+ m = exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ])))) / exp(mean(log(na.exclude(D $ data [D $ sample_meta $ Species == ' setosa' ,3 ]))))
24
+ expect_equal(FF $ fold_change $ `virginica/setosa` [3 ],m ,tolerance = 0.00001 )
25
+
26
+ # check some NA
27
+ expect_true(is.na(FF $ fold_change $ `virginica/setosa` [2 ]))
28
+ expect_true(is.na(FF $ fold_change $ `setosa/versicolor` [2 ]))
29
+
30
+ FF $ method = ' median'
31
+ FF = model_apply(FF ,D )
32
+ # check some fold changes
33
+ m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ],na.rm = TRUE ) / median(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ],na.rm = TRUE )
34
+ expect_equal(FF $ fold_change $ `virginica/versicolor` [1 ],m ,tolerance = 0.00001 )
35
+
36
+ m = median(D $ data [D $ sample_meta $ Species == ' setosa' ,4 ],na.rm = TRUE ) / median(D $ data [D $ sample_meta $ Species == ' versicolor' ,4 ],na.rm = TRUE )
37
+ expect_equal(FF $ fold_change $ `setosa/versicolor` [4 ],m ,tolerance = 0.00001 )
38
+
39
+ m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ],na.rm = TRUE ) / median(D $ data [D $ sample_meta $ Species == ' setosa' ,3 ],na.rm = TRUE )
40
+ expect_equal(FF $ fold_change $ `virginica/setosa` [3 ],m ,tolerance = 0.00001 )
41
+
42
+ # check some NA
43
+ expect_true(is.na(FF $ fold_change $ `virginica/setosa` [2 ]))
44
+ expect_true(is.na(FF $ fold_change $ `setosa/versicolor` [2 ]))
45
+
46
+ FF $ method = ' mean'
47
+ FF = model_apply(FF ,D )
48
+ m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ],na.rm = TRUE ) / mean(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ],na.rm = TRUE )
49
+ expect_equal(FF $ fold_change $ `virginica/versicolor` [1 ],m ,tolerance = 0.00001 )
50
+
51
+ m = mean(D $ data [D $ sample_meta $ Species == ' setosa' ,4 ],na.rm = TRUE ) / mean(D $ data [D $ sample_meta $ Species == ' versicolor' ,4 ],na.rm = TRUE )
52
+ expect_equal(FF $ fold_change $ `setosa/versicolor` [4 ],m ,tolerance = 0.00001 )
53
+
54
+ m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,3 ],na.rm = TRUE ) / mean(D $ data [D $ sample_meta $ Species == ' setosa' ,3 ],na.rm = TRUE )
55
+ expect_equal(FF $ fold_change $ `virginica/setosa` [3 ],m ,tolerance = 0.00001 )
56
+
57
+ # check some NA
58
+ expect_true(is.na(FF $ fold_change $ `virginica/setosa` [2 ]))
59
+ expect_true(is.na(FF $ fold_change $ `setosa/versicolor` [2 ]))
60
+
61
+
64
62
})
63
+
64
+ test_that(' fold_change paired' ,{
65
+ set.seed(' 57475' )
66
+
67
+ # data
68
+ D = iris_DatasetExperiment()
69
+
70
+ # two groups
71
+ F = filter_smeta(mode = ' exclude' ,levels = ' setosa' ,factor_name = ' Species' )
72
+ F = model_apply(F ,D )
73
+
74
+ D = predicted(F )
75
+
76
+ # add column for paired data
77
+ D $ sample_meta $ sample_id = c(1 : 50 ,1 : 50 )
78
+ D $ data [1 : 50 ,2 ] = NA
79
+ D $ data [1 : 25 ,3 ] = NA
80
+
81
+ # paired
82
+ FF = fold_change(factor_name = ' Species' ,method = " geometric" ,paired = TRUE ,sample_name = ' sample_id' ,control_group = ' versicolor' )
83
+ FF = model_apply(FF ,D )
84
+ m = exp(mean(log(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ])- log(D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])))
85
+ expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
86
+ expect_true(is.na(FF $ fold_change [2 ,1 ]))
87
+
88
+ FF $ method = ' median'
89
+ FF = model_apply(FF ,D )
90
+ m = median(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ] / D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
91
+ expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
92
+ expect_true(is.na(FF $ fold_change [2 ,1 ]))
93
+
94
+ FF $ method = ' mean'
95
+ FF = model_apply(FF ,D )
96
+ m = mean(D $ data [D $ sample_meta $ Species == ' virginica' ,1 ] / D $ data [D $ sample_meta $ Species == ' versicolor' ,1 ])
97
+ expect_equal(FF $ fold_change [1 ,1 ],m ,tolerance = 0.00001 )
98
+ expect_true(is.na(FF $ fold_change [2 ,1 ]))
99
+
100
+
101
+ })
0 commit comments