我正在尝试使用公开的RNA序列数据在R中执行差异基因表达。但是,我在组大小上有很大的不平衡(情况N = 10,再次控制N> 800)。这导致火山绘图偏斜。这类似于此处https://bioinformatics.stackexchange.com/questions/2570/very-unbalanced-group-sizes-for-de
所述的情况我尝试使用edgeR和DESeq2分析数据。但是(1)我一直偏向于基因下调,这在生物学上是没有意义的;(2)两种方法中差异表达的基因仅重叠25-40%,其余的仅被称为显着两者之一。
我的老板建议我通过对10个案例抽取10个随机对照样本,计算差异表达并进行1000次来进行人为平衡设计。但是,如何总结这种随机抽样的结果呢?另外,对我来说似乎不一直使用所有可用的样本似乎是错误的?
我还发现了关于班级不平衡的其他讨论,例如https://support.bioconductor.org/p/87507/。但是他们只讨论一组稍大一些,而不是几乎两个数量级的情况。
对于DESeq,我使用了此功能,其中'counts.raw'是原始读取计数,并对样本进行'分组'。
dds <- DESeqDataSetFromMatrix(round(counts.raw), colData=data.frame(group), design=~group)
des.test <- DESeq(dds, test="Wald", fitType="mean")
res.des <- results(des.test)
对于edgeR,我这样做了,其中f是使用所有蛋白质编码基因计算得出的比例因子:
dge.list <- DGEList(counts=counts.raw, lib.size=f,group=group)
design <- model.matrix(~group)
dge.list2 <- estimateDisp(dge.list, design=design)
dge.test <- exactTest(dge.list2)
res.edger <- dge.test$table