DESeq2代码有助于分析R

时间:2019-11-13 19:04:54

标签: r bioinformatics bioconductor rna-seq

我在设计一些正确的代码以使用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值保存起来,并将倍数变化值记录到表中。

1 个答案:

答案 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)

现在运行脚本的其余部分,应该没问题