有些时候我们需要知道转录本长度,比如在使用RNA-seq计算FPKM的时候,为了准确地评估不同基因的表达量,一般是用覆盖该基因/转录本的总reads数除以基因/转录本的长度,有些时候我们需要知道基因编码区的长度,比如在使用VAAST评估致病候选基因的时候,有些基因因为编码区特别长(如TTN)总是排名靠前,如果考虑到它的编码区长度后,排序将会更加科学。 那么怎样获得基因编码区长度呢?这个问题看起来比较简单,只要将每个外显子的长度加起来就可以了,对于单个转录本可以通过NCBI的CCDS数据库查询,但是基因有多个转录本,每个转录本的编码区有重合,所以基因编码区不是每个转录本编码区的简单相加,所以要想准确地获得每个基因的编码区长度并不容易,而且目前并没有现成的数据库,经过游侠在网上摸索后将相关方法整理如下,供大家参考。首先从sanger网站下载基因注释文件GTF,。然后在R中使用GenomicFeatures工具包。library(GenomicFeatures)txdb <- makeTranscriptDbFromGFF("",format="gtf")收集每个基因的编码区编号 <-cdsBy(txdb,by="gene")通过reduce函数避免重复计算重叠区 <- lapply((x){sum(width(reduce(x)))})生成的gene ID为ensemble编号,可以通过,转换为gene symbol。