contrast matrix design for a comparison (trend) of drug concentrations
1
0
Entering edit mode
@javier-perez-florido-3121
Last seen 4.9 years ago

Dear list,

I have a microarray experiment with several samples grouped as: control, drug_conc_a, drug_conc_b, drug_conc_c. That is, a control group and then other groups with different concentrations of a drug (same drug): a, b and c

Besides the comparisons of the control group with respect to each of the concentrations, I'd like to study or compare the three concentrations to highlight potential trends. What is the best way (i.e. most informative and appropriate) to do it? Possibilities for limma:

drug_conc_a - drug_conc_b

drug_conc_a - drug_conc_c

drug_conc_b - drug_conc_c

OR

drug_conc_a - (drug_conc_b - drug_conc_c)

OR

(drug_conc_a - drug_conc_b) - drug_conc_c

OR

(drug_conc_a - drug_conc_b) - (drug_conc_b - drug_conc_c)

Not sure which comparison is the proper one.

Thanks,

Javier

0
Entering edit mode

Put limma as a separate tag if you want the maintainers to see this post.

0
Entering edit mode
Aaron Lun ★ 28k
@alun
Last seen 8 hours ago
The city by the bay

Well, it depends on what kind of trends you're interested in. The simplest approach is to look for genes that go up or down with increasing concentration, in which case I would do something like:

con <- makeContrasts(concLow - control, concMed - concLow,
concHigh - concMed, levels=design)
fit2 <- contrasts.fit(fit, con)
fit2 <- eBayes(fit2)
res <- topTable(fit2)

This will do an ANOVA-like analysis looking for any effects of drug treatment. I would then restrict myself to the significant genes with the same sign for all three log-fold changes, to identify genes that responded in a consistent direction to increasing concentration. If you want to be more rigorous, then you can do each of these pairwise comparisons separately (see coef in topTable) and then intersect the sets of significantly up- or down-regulated genes across the three comparisons.

If you're looking for more specific trends, then you'll have to use a bit more finesse. For example, to find genes where the effect of the drug plateaus at a certain concentration, you'd look for large log-fold changes/strong DE up for all comparisons up to the target concentration, and then look for the absence of changes for all comparisons involving higher concentrations.

P.S. Three concentrations are probably not enough to fit a meaningful covariate trend, so I would stick with a one-way layout.

0
Entering edit mode

What would be the difference if instead of

con <- makeContrasts(concLow - control, concMed - concLow,
concHigh - concMed, levels=design)

we design the following contrasts:

con <- makeContrasts(concLow - control, concMed - control,
concHigh - control, levels=design)

I'm not able to see the differences between these two approaches (for the same operations you suggested in the first paragraph). Do these two approaches study different effects of drug treatments?

Thanks again,

Javier

0
Entering edit mode

These two contrasts are equivalent in terms of the null hypothesis that they test. The first contrast tests whether concLow == control AND concMed == concLow AND concHigh == concMed. The second one tests whether concLow == control AND concMed == control AND concHigh == control. Both result in the null hypothesis of concLow == control == concMed == concHigh. The only difference is in the log-fold changes; the first contrast reports the log-fold changes between consecutive concentrations, whereas the second one looks at the log-fold change to the control baseline. Which one is most useful depends on what you want to do with them; in my post, I describe how to use the signs to focus on monotonic increasing/decreasing trends, so I use the first set of log-fold changes.