Hi All,
I'm using the bioconductor EDGE package for R to look for differentially expressed genes in a microarray time series dataset. I have a question regarding the parameters on the de_object
creation using build_study
{edge}.
1) How is the ind argument incorporated into the full/null model creation and fit_models()
argument? When I try to add this into my expression set it creates a de_object
, but I get an error, please see code below:
#setup data
eset <- list()
eset$expr <- as.matrix(P20)
eset$ind <- as.factor(P20annot$patient)
eset$time <- as.numeric(P20annot$time)
eset$gender <- as.factor(P20annot$gender)
summary(eset)
Length Class Mode
expr 923967 -none- numeric
ind 51 factor numeric
time 51 -none- numeric
gender 51 factor numeric
de_obj <- build_study(data = eset$expr, tme = eset$time, adj.var = eset$gender, ind = eset$ind, sampling = "timecourse")
fullModel(de_obj)
~adj.var + ns(tme, df = 2, intercept = FALSE)
<environment: 0x11dfca8>
nullModel(de_obj)
~adj.var
<environment: 0x11dfca808>
full_matrix <- fullMatrix(de_obj)
null_matrix <- nullMatrix(de_obj)
#Fit the model (likelihood ratio test)
ef_obj <- fit_models(de_obj, stat.type = "lrt")
Error in svd(X) : a dimension is zero
de_lrt <- lrt(de_obj, nullDistn = "normal")
Error in svd(X) : a dimension is zero
My design annotation is below. Please note that each individual was only sampled at three of the five time points. I feel this is what is giving me the error, but I'm unsure why. When I run the code without ind as a parameter it runs just fine.
print(annotation)
value ind time gender
1 M_115_0h 115 0 M
2 M_122_0h 122 0 F
3 M_117_0h 117 0 F
4 M_126_0h 126 0 M
5 M_129_0h 129 0 F
6 M_140_0h 140 0 F
7 M_142_0h 142 0 F
8 M_143_0h 143 0 M
9 M_146_0h 146 0 M
10 M_148_0h 148 0 M
11 M_152_0h 152 0 M
12 M_156_0h 156 0 F
13 M_132_0h 132 0 F
14 M_147_0h 147 0 F
15 M_150_0h 150 0 M
16 M_153_0h 153 0 M
17 M_155_0h 155 0 F
18 M_129_6h 129 6 F
19 M_140_6h 140 6 F
20 M_142_6h 142 6 F
21 M_143_6h 143 6 M
22 M_152_6h 152 6 M
23 M_156_6h 156 6 F
24 M_115_24h 115 24 M
25 M_122_24h 122 24 F
26 M_117_24h 117 24 F
27 M_126_24h 126 24 M
28 M_129_24h 129 24 F
29 M_140_24h 140 24 F
30 M_142_24h 142 24 F
31 M_143_24h 143 24 M
32 M_146_24h 146 24 M
33 M_148_24h 148 24 M
34 M_152_24h 152 24 M
35 M_156_24h 156 24 F
36 M_115_72h 115 72 M
37 M_122_72h 122 72 F
38 M_117_72h 117 72 F
39 M_126_72h 126 72 M
40 M_132_72h 132 72 F
41 M_147_72h 147 72 F
42 M_149_72h 149 72 M
43 M_150_72h 150 72 M
44 M_153_72h 153 72 M
45 M_155_72h 155 72 F
46 M_132_168h 132 168 F
47 M_147_168h 147 168 F
48 M_149_168h 149 168 M
49 M_150_168h 150 168 M
50 M_153_168h 153 168 M
51 M_155_168h 155 168 F
Also, there is an argument: basis.df = 2
. How do I know what # to set the degree of freedom to for this?
Thanks!