我在设计一些正确的代码以使用R中的DESeq2时遇到了麻烦,如何查看与对照组相比在疾病患者中哪些基因表达更高。
我的数据当前是一个大型数据框,包含600000行的基因名称。前三列[1:3]是对照患者,后三列是胰腺癌患者[4:6]。
DF = data.frame(id=colnames(genetable),type=rep(c("treat","ctrl"),each=3))
# run DESeq2
dds = DESeqDataSetFromMatrix(genetable,DF,~type)
ddsoutput <- DESeq(dds)
summary(results(dds),alpha=0.05)
获得低于0.05的基因数;
res <- results(ddsoutput)
res[which(res$padj < 0.05),]
然后,我需要计算出疾病与控制之间的倍数变化,即上调和下调。我需要设置自己的倍数变化阈值,然后通过KEGG根据我的p值分析最上调或下调的基因的功能;
upreg <- subset(res, log2FoldChange > 1)
downreg <- subset(res, log2FoldChange < 1)
但是以上方法均无效,我想使用type = rep可能会出错吗?我最终需要将p值保存起来,并将倍数变化值记录到表中。
答案 0 :(得分:1)
您的代码中有一个错误,我在下面更正了该错误,并将先前的错误放在##下。您将原始DESeq2对象替换为函数DESeq()的输出
DF = data.frame(id=colnames(genetable),type=rep(c("treat","ctrl"),each=3))
# run DESeq2
dds = DESeqDataSetFromMatrix(genetable,DF,~type)
dds <- DESeq(dds)
# it was
# ddsoutput <- DESeq(dds)
summary(results(dds),alpha=0.05)
现在运行脚本的其余部分,应该没问题