Hi all,
I am currently trying to analyze a microarray dataset from a longitudinal time-course experiment that unfortunately only has two time points. The experiment has two treatments (Control and Infected) with six individuals each. The individuals were sampled at the beginning of the experiment (when all individuals were not infected, the ones in the Infected group were infected after the initial sampling) and at the end of the experiment (when the individuals from the Infected group were indeed infected). In the end I have the following design.
Sample | Individual | Time | Treatment |
---|---|---|---|
1 | I1 | before | Control |
2 | I1 | after | Control |
3 | I2 | before | Control |
4 | I2 | after | Control |
5 | I3 | before | Infected |
6 | I3 | after | Infected |
... | ... | ... | ... |
23 | I12 | before | Control |
24 | I12 | after | Control |
I have looked at several techniques (limma, lefse, TcGSa, SAM, MMM, Edge) to try to figure out which probes differ between treatments taking into consideration the individual ID, but I haven't been able to succeed due to technique specifications, such as not allowing for time-course, or longitudinal data. (I know EdgeR would be perfect for it, but it doesn't allow microarray data).
It seems to me that Edge would be the way to go, but when I try to build the study, it gives me the following error:
>de_obj <- build_study(data = m, grp = Treatment, tme = Time,
+ ind = Individual, sampling = "timecourse")
Error in validObject(object) :
invalid class “deSet” object: full model matrix is near singular.
Which I believe is related to the fact that I only have two time points. Is there a way to work around my time point limitation? Hope you can help me with this!
Cheers, Joana
> sessionInfo()
R version 3.5.3 (2019-03-11)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
Matrix products: default
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods base
other attached packages:
[1] edge_2.14.0 Biobase_2.42.0 BiocGenerics_0.28.0
loaded via a namespace (and not attached):
[1] magic_1.5-9 jackstraw_1.3 bit64_0.9-7 splines_3.5.3
[5] gtools_3.8.1 TcGSA_0.12.4 assertthat_0.2.1 stats4_3.5.3
[9] blob_1.2.0 backports_1.1.5 pillar_1.4.2 RSQLite_2.1.2
[13] lattice_0.20-38 limma_3.38.3 glue_1.3.1 digest_0.6.22
[17] qvalue_2.14.1 minqa_1.2.4 colorspace_1.4-1 cowplot_1.0.0
[21] Matrix_1.2-15 plyr_1.8.4 XML_3.98-1.20 pkgconfig_2.0.3
[25] genefilter_1.64.0 purrr_0.3.3 xtable_1.8-4 corpcor_1.6.9
[29] scales_1.0.0 gdata_2.18.0 ClusterR_1.2.0 BiocParallel_1.16.6
[33] lme4_1.1-21 tibble_2.1.3 annotate_1.60.1 mgcv_1.8-27
[37] gmp_0.5-13.5 IRanges_2.16.0 ggplot2_3.2.1 lazyeval_0.2.2
[41] survival_2.43-3 magrittr_1.5 crayon_1.3.4 snm_1.30.0
[45] memoise_1.1.0 gplots_3.0.1.1 nlme_3.1-137 MASS_7.3-51.1
[49] GSA_1.03.1 vegan_2.5-6 tools_3.5.3 matrixStats_0.55.0
[53] FD_1.0-12 stringr_1.4.0 S4Vectors_0.20.1 lfa_1.12.0
[57] munsell_0.5.0 cluster_2.0.7-1 irlba_2.3.3 AnnotationDbi_1.44.0
[61] ade4_1.7-13 compiler_3.5.3 rsvd_1.0.2 caTools_1.17.1.2
[65] rlang_0.4.1 grid_3.5.3 RCurl_1.95-4.12 nloptr_1.2.1
[69] rstudioapi_0.10 bitops_1.0-6 boot_1.3-20 multtest_2.38.0
[73] geometry_0.4.4 gtable_0.3.0 abind_1.4-5 DBI_1.0.0
[77] reshape2_1.4.3 R6_2.4.0 dplyr_0.8.3 zeallot_0.1.0
[81] bit_1.1-14 KernSmooth_2.23-15 permute_0.9-5 ape_5.3
[85] stringi_1.4.3 sva_3.30.1 Rcpp_1.0.3 vctrs_0.2.0
[89] tidyselect_0.2.5
As far as I understand limma does not allow for longitudinal time course data. I initially did as you mentioned above, but doing that completely neglects the information available on the "state" of the individuals at the beginning of the experiment. I basically would like to include that data and compare the trends in the probes (after-before) between treatments, and not just compare the after time points.