Question: Limma : time course experiment with missing data
0
12 months ago by
SPbeginner0 wrote:

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

voomWithQualityWeights

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

limma limma-voom • 333 views
modified 8 days ago • written 12 months ago by SPbeginner0

Is it a problem to use Limma with blocked model when the dataset contain 2 groups with time points that are different ?

As an example, I have Group A with D0,D3,D7 and D27 and Group B with D0,D1,D3,D5,D7 and D28 ? I would like to identify genes which respond differently over time in the different groups :

contrast.matrix.blocked<-makeContrasts(Day3=(GroupA.D3-GroupA.D0)-(GroupB.D3-GroupB.D0), Day7=(GroupA.D7-GroupA.D0)-(GroupB.D7-GroupB.D0)))

Which model would be the best ?

I have to precise that number of animal at each time point in Group B is very variable (animal are dying).

I had to pool 2 experiments so animals are not the same at D1 and D3 but for both I have D0. This is why I think I shouldn't use blocked model on animals ... Any suggestion ?

If you are talking about a different dataset to that presented in the original post, please write a new question.

Figure out how to appreciate each moment of your life. Be glad at this point. Try not to sit tight to something outside of yourself to make you cheerful later on. Think how extremely valuable is the time you need to spend, regardless of whether it's grinding away or with your family. Consistently ought to be appreciated and enjoyed. It isn't the excellence of a building you should take a gander at cheap assignment writing services. its the development of the establishment that will stand the trial of time.

Answer: Limma : time course experiment with missing data
0
12 months ago by
United States
James W. MacDonald49k wrote:

If you are using a linear mixed model you aren't using subject level blocking. In the former case it's OK to have missing time points for some subjects, and in the latter any such samples will drop out of the analysis when you compare timepoints that include missing data for a given subject.

An alternative would be to use splines (section 9.6.2 of the limma User's guide) which don't require replicates at each time point, but might be slightly more difficult to interpret.

So, for you, my code is correct ?

I'll try to use splines for between-group comparison and let you know !