0

我试图弄清楚如何使用以下方法注释我的一组基因,以便我可以对注释的差异表达基因进行通路分析

这是我遇到问题的代码行:

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")
  1. 我想要这个,以便我可以吐出一张表,其中包含顶级差异表达基因及其基因名称等。
  2. 我还希望能够用基因名称而不是我目前拥有的 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"))

4

0 回答 0