RNA-Seq comparisons of various sample
1
0
Entering edit mode
minie • 0
@minie-11306
Last seen 7.1 years ago

I want to analyze RNA-Seq with multiple samples with replicates. So I have two groups A & B and within that I have 5  different sub groups in each (a,b,c,d,e & a1,b1,c1,d1,e1).There are  two ways to perform the analysis :

1.A vs B

2.a_vs_a1 , b_vs_b1 ,c_vs_c1,d_vs_d1,e_vs_e1   which way would be good and not biased??

as I have noticed that the statistical values will change for the candidate genes in both the cases.

Thanks

RNA-Seq • 1.1k views
ADD COMMENT
1
Entering edit mode
Aaron Lun ★ 28k
@alun
Last seen 2 hours ago
The city by the bay

You don't mention the package you're using - edgeR? voom with limma? DESeq2? The answer to your question is largely agnostic to the exact implementation, but still, it's good practice to say exactly what you're doing.

Anyway, there are two levels to your question. The first is how you parametrize the experimental design for variance modelling. Presumably, the subgroups (a-e, a1-e1) in each "main" group (A/B) have some biological differences. This suggests that you should model each subgroup as a separate entity; otherwise, differences between subgroups will inflate the variances if you treat samples from different subgroups as "replicates". With edgeR or limma, I would use a one-way layout with one coefficient per subgroup:

subgroups <- rep(c("a", "a1", "b", "b1", "c", "c1", "d", "d1", "e", "e1"), 
                 each=2) # Assuming two replicates per group
subgroups <- factor(subgroups)
design <- model.matrix(~0 + subgroups)
colnames(design) <- levels(subgroups)

Now, the other problem is how you should perform the comparisons between your main groups. The simplest approach is to compute the average expression across all subgroups within each main group, and compare them between groups:

con <- makeContrasts((a+b+c+d+e)/5 - (a1+b1+c1+d1+e1)/5, levels=design)

This does exactly what it says, i.e., computes the grand mean of the average expression across subgroups, and tests for changes in the averages between main groups. However, this can be misleading, e.g., if strong upregulation is only present in one subgroup "e", this will drag up the average expression for main group A and make it seem like that there is upregulation in A compared to B. If you want to look for genes that are consistently changing in the same direction for all pairs of subgroups, you can do:

con <- makeContrasts(a - a1, b - b1, c - c1, d - d1, e - e1, levels=design)

This will perform an ANODEV, testing for whether there are any differences in the corresponding pairs of subgroups from each main group. You can then filter for genes with low ANODEV p-values where the signs of the log-fold changes for all pairwise comparisons are the same, e.g., for positive log-fold changes, you would have a > a1, b > b1, c > c1, d > d1 and e > e1. This may be easier to interpret as the change in expression between the main groups is consistent across the paired subgroups. (In theory, you could be even more stringent and require significant DE in each pairwise comparison, but this is probably too conservative.)

If you want exact implementation details, see Section 3.2.3 of the edgeR user's guide for some code.

ADD COMMENT

Login before adding your answer.

Traffic: 655 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