Longitudinal Time-Course microarray experiment with two time points
1
0
Entering edit mode
@joanasabinopinto-22330
Last seen 4.0 years ago

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
edge DGE microarray • 869 views
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 11 minutes ago
WEHI, Melbourne, Australia

I wonder what technical difficulties caused you problems with limma? You say that edgeR would be perfect, but limma and edgeR are identical in terms of design setup and so on.

Your experiment is almost a standard paired-comparison design. A simple way to setup the limma design matrix is like this:

Control <- Time=="after" & Treatment=="Control"
Infected <- Time=="after" & Treatment=="Infected"
design <- model.matrix(~Individual + Control + Infected)

This allows you to test for before-vs-after differential expression separately for the control and infected treatments.

Alternatively, you could follow the approach described in Section 9.7 of the limma User's Guide or the approach in Section 3.5 of the edgeR User's Guide. The code I've given above is actually equivalent to the edgeR Section 3.5 approach.

ADD COMMENT
0
Entering edit mode

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.

ADD REPLY

Login before adding your answer.

Traffic: 647 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6