Dear Bioconductor community,
I have timecourse RNA-seq data.
Some sample are low quality (high RNA degradation, low coverage on genes), this is why I wanted to use limma-voom with
Animals received 2 differents treatments (TreatmentA, TreatmentB).
There are different number of animals in each group (5 or 6).
For each animal,blood were collacted before any treatment (D0) and at different time points after treatment: D1, D5, D28.
I don't have data for all animal at each time point. For example, in treatment A, animal A74 doesn't have data at Day5.
I also have other condition for which i don't have value for animals at Day 0.
I want to determine :
1/ Which genes respond at either the Day1, Day5 or day28 in the different group
2/ Which genes respond differently over time in the different groups
Here is my analysis :
Blocked_Design_model<-model.matrix(~0+Group,data=Design_clean_simple) dge <- DGEList(counts=Count) keep <- filterByExpr(dge, Blocked_Design_model) dge <- dge[keep,,keep.lib.sizes=FALSE] dge.norm <- calcNormFactors(dge) v.wts.bl<- voomWithQualityWeights(dge.norm, Blocked_Design_model, plot=TRUE) corfit.wts.bl <- duplicateCorrelation(v.wts.bl,Blocked_Design_model,block=Design_clean_simple$Animal) v.wts.bl.corfit <- voomWithQualityWeights(dge.norm, Blocked_Design_model, plot=TRUE, correlation=corfit.wts.bl$consensus) fit.wts.bl.corfit <- lmFit(v.wts.bl.corfit, Blocked_Design_model,block=Design_clean_simple$Animal ,correlation=corfit.wts.bl$consensus)
contrast.matrix.blocked<-makeContrasts(GpA.D1=GroupTreatmentA.1-GroupTreatment.0, GpA.D5=GroupTreatment.5-GroupTreatment.0, GpA.D27=GroupTreatmentA.27-GroupTreatmentA.0, GpAvsGpB.D1 = (GroupTreatmentA.1-GroupTreatmentA.0)-(GroupTreatmentB.1-GroupTreatmentB.0),GpAvsGpB.D5 = (GroupTreatmentA.5-GroupTreatmentA.0)-(GroupTreatmentB.5-GroupTreatmentB.0),levels=colnames(Blocked_Design_model)) fit2.wts.bl.corfit <- contrasts.fit(fit.wts.bl.corfit, contrast.matrix.blocked) fit2.wts.bl.corfit <- eBayes(fit2.wts.bl.corfit,robust=TRUE)
My question : as each subject doesn't yields a value at each time point, is it relevant to use Block model ?
In general cases, I have data set with missing information at some time point, how to deal with it ? Is my model correct ?
Thanks in advance for you help