我试图弄清楚如何使用以下方法注释我的一组基因,以便我可以对注释的差异表达基因进行通路分析
这是我遇到问题的代码行:
ann <- select(org.Mm.eg.db,keys=rownames(fit.cont),columns=c("ENTREZID","SYMBOL","GENENAME"))
我正在尝试为最终对象中的每个基因生成 entrez ID、符号和基因名称。
基本上 - 我从一个原始矩阵“readcounts_g”开始,它有 10 个 RNA-seq 读取计数数据样本,用于 20k 个基因和对应于 ENSEMBL ID 的行名。
接下来,我执行了以下代码行:
z <- DGEList(readcounts_g)
z <- calcNormFactors(z)
v2 <- voom(z,design.mat,plot = TRUE)
fit2 <- lmFit(v2)
为我们的实验条件生成一个设计矩阵,指定前 5 个样本为 KO,后 5 个样本为 WT。
design.mat <- cbind(c(1,1,1,1,1,0,0,0,0,0), c(0,0,0,0,0,1,1,1,1,1))
colnames(design.mat) <- c("KO_GCC", "WT_GCC")
design.mat
cont.matrix2 <- makeContrasts(A.WTvsKO2=KO_GCC - WT_GCC,levels = design.mat)
fit.cont2 <- contrasts.fit(fit2, cont.matrix)
fit.cont2 <- eBayes(fit.cont2)
summa.fit2 <- decideTests(fit.cont2)
ann <- select(org.Mm.eg.db,keys=rownames(fit.cont),columns=c("ENTREZID","SYMBOL","GENENAME"))
最终,我希望能够使用:
topTable(fit.cont2,coef="A.WTvsKO",sort.by="p")
- 我想要这个,以便我可以吐出一张表,其中包含顶级差异表达基因及其基因名称等。
- 我还希望能够用基因名称而不是我目前拥有的 ID 号绘制火山图和其他图形
另一个问题是当我执行该goana
函数时,它是否能够正确识别我的数据集中的哪些基因,尽管只有 ENSEMBL ID 号而不是 ENTREZ ID 号
go <- goana(fit.cont2, coef="A.WTvsKO",species = "Mm")
这是我正在使用的集合的示例:
library(dplyr)
data_g = tibble(geneID=sample(1:3),
s1=rpois(3,10),s2=rpois(3,15),
s3=rpois(3,20),s4=rpois(3,25))
data_g$gene_name = c("ENSMUSG00000042638","ENSMUSG00000030214","ENSMUSG00000030222")
rownames(data_g) = data_g$gene_name
data = data_g[,-1]
data_1 = data[,-5]
rownames(data_1) = data$gene_name
data_1 = as.matrix(data_1)
从这里开始,data_1 本质上是一个截断版本的矩阵,我正在使用它来处理我的真实数据。
我正在尝试用 Entrez 基因 ID 注释这个矩阵,这样我就可以在 limma 中使用 goana 函数。
我认为下面这行会起作用,我将“键类型”指定为集合 ID #s,它返回 entrez ID:
ann <- select(org.Mm.eg.db,keys = rownames(fit.cont2),keytypes="ENSEMBL", columns=c("ENTREZID"))