Skip to content

Commit 2baf3bb

Browse files
committed
add fold change tests
1 parent 33a0ec9 commit 2baf3bb

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

tests/testthat/test-foldchange.R

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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")
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+
63+
64+
})

0 commit comments

Comments
 (0)