如何直接从DGEList对象在最新的边缘获取RPKM的基因长度?
2
0.
进入编辑模式
anikng•0
@ Anikng-22672
最后一次出现是3个月前

从FeatureCounts开始生成的原始计数文件,我使用了Edger来估计de分析,它进展顺利。现在我使用CPM标准化文件来探索多种途径中的一些特定基因表达。我知道CPM纠正了库大小而不考虑基因长度。是否可以使用此文件进行单个基因分析并生成发布的图表,或者我需要另一个标准化文件吗?请记住,我试图获得RPKM标准化文件。但即使在阅读类似的帖子之后,我不确定如何将输入基因长度达到RPKM()函数。这讨论说明最新版本的edgeR可以直接从DGEList对象中找到基因长度。我使用edgeR_3.28.1和任何人可以指导我如何得到基因长度,以便我可以出口RPKM?相关信息:我从。下载了水稻基因组MSU和参考组装用Hisat2完成。目前,我只有原始计数文件与我(即,没有.bam文件可用)。

这是我用于生成CPM的代码。正常化,

raw_counts<-read.delim("rawcounts.txt",row.names="Locus",check.names = TRUE) targets<-read.table("targets.txt",header=T,sep="\ T ") group<-factor(paste(targets$ gene,targets$Time,targets$Treatment,sep=".")) cbind(targets, group =group) y<-DGEList(counts = raw_counts,# filter - out low count genes keep <- rowsum (cpm(y)>=2) >=2 y <- y[keep,, keep.lib. keep] # filter - out low count genes keep <- rowsum (cpm(y)>=2) >=2 ysize =FALSE] y<-calcNormFactors(y) CPM<-cpm(y) #如何在rpkm()中合并基因长度?RPKM < -rpkm (y)
正常化edger.rpkm.•396年的观点
添加评论
3.
进入编辑模式
@ gordon-smyth
最后一次出现是8小时前
威奇,墨尔本,澳大利亚

featurecounts.返回每个基因的长度。您应该使用返回的基因长度featurecounts.因为它们与用于计数的基因注释完全一致。

我以前关于这个主题的答案(你在问题中链接到的)链接到一个完整的工作示例,显示了如何从FeatureCounts获取基因长度,如何将基因长度存储在Dgelist中以及如何使用它们来计算RPKM

如果由于某种原因您丢失了由FeatureCounts返回的基因长度,您可以从GTF文件中再次计算它们:

SAF < -  RSUBREAD :: FLATTENGTF(“米_ annotation.gtf”)GOOLENGTH < -  Rowsum(SAF $ END-SAF $ Start + 1,SAF $ GeneID)
0.
进入编辑模式

谢谢@ gordon symth。但是FeatureCounts需要BAM / SAM文件来估计基因长度(不幸的是,我没有带我的映射文件)。所以你认为无法使用FeatureCounts获得基因长度,或者我误解了文件吗?

添加回复
0.
进入编辑模式

基因长度从基因注释计算,而不是来自BAM文件。

您的问题表明计数是从FeatureCount获得的,因此必须已经运行了特派团,因此必须提供基因长度,除非您删除它们。

即使由于某种原因丢弃了基因长度,您也可以通过用于获得计数的相同的GTF注释轻松地再次计算它们。

您无法从成绩单长度获得基因长度。基因长度定义为该基因的外显子覆盖的总碱。这与最长记录长度的长度相比,但可能更长。

如果您拥有的只是转录长度,则使用每个基因的最长记录长度。

1
进入编辑模式

从a中获得基因长度实际上它很简单TXDB.包(或对象):

>库(TXDB.HSAPIENS.CCSC.HG38.KNOKNOKNGENE)> EX < -  EXONSBY(TXDB.HSAPIENS.CUCSC.HG38.KNOKNGENE,“GENE”)##减少到最长的外显子范围> EX < - 减少(EX)##Compute Exon长度,通过基因> EXLEN < -  regis(宽度(extris(例如(ex)),ex)##加上它们> exlens < -  sapply(exlen,sum)>头部(exlens)1 10 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1002809 4634 18587 1004

类似的事情也可以用TXDB.op生成的。

0.
进入编辑模式

好的,我想我得到了它。你能证实吗?

我用单个BAM文件ran featurecounts(也使用了用于估计原始计数的相同gtf文件)

featurets -t exon -g gene_id -a rice_annotation。gtf -o OUTPUT.txt

然后从output.txt,从列'长度'中提取基因长度并输入到RPM()函数中。

添加回复
1
进入编辑模式

是的,你可以这样做。

或者您可以在R提示符下运行featurets。

或者您可以使用James MacDonald提供的TxDb代码。

或者您可以使用我添加到我的答案的代码直接从GTF文件中计算基因长度。

2
进入编辑模式
@ James-W-MacDonald-5106
最后看2小时前
美国

为了产生计数featurecounts.您必须有一些关于该基因的信息,您可以从中计算基因长度,因为米不是内置注释之一。因此,您可以推测使用这些数据来计算基因长度。使用MSU注释的问题是他们拥有自己的轨迹ID,因此您需要使用他们的数据来执行任何操作。假设他们可能有一个GTF或GFF文件(我现在无法到达他们的下载网站),您可以使用它来生成一个TXDB.包裹。

但不知道您拥有的(和MSU的下载页面似乎无法访问)我可以给出的唯一答案是您需要使用MSU的数据来获得基因长度。

0.
进入编辑模式

感谢@James W. MacDonald为您的回复。MSU提供了一个GTF文件,并且如您所建议的,我使用来自GenomicFeatures包的TXDB生成基因长度。我可以使用最长转录本长度'gene_lens'提供RPKM()函数?

gff_path < - ' - 'rice_annotation.gtf'x <-maketxdbfromgff(file = gff_path,format ='gtf')tx_by_gene < -  transcriptsby(x,by =“gene”)gene_lens <-ma(宽度(tx_by_gene))

我使用了来自MSU的相同GTF文件和基因组构建进行映射和计数估计。用于上述基因长度识别的代码在这儿

添加回复

登录在添加答案之前。

流量:过去一小时内访问了546个用户
使用权 rss.
API
统计

使用本网站构成了我们的接受用户协议和隐私政策

由的版本2.3.6