R语者小case之——从GTF文件生成注释表格做基因ID转换

 基因的注释表格是经常需要用到的,可以从GTF文件中获得。用R可以简单地实现这个功能。

简易的GTF文件实际上可以认为是用制表符分隔为9列的TSV。
第一列是seqid, 通常是染色体编号;
第二列是source,表示信息的来源;
第三列是feature,表示类型;
第四和第五列分别是区间的起始位置与终止位置;
第六列是score, 软件提供的统计值;
第七列是strand, 代表正负链的信息, +表示正链,-表示负链,?表示不清楚正负链的信息;
第八列是phase,当第三列是CDS时,需要指定翻译时开始的位置,取值范围有0,1,2;
第九列是attributes, 表示属性,必须有gene_id和transcript_id这两个属性, 多个属性用分号分隔

通常基因的feature值为gene,而gene的注释信息集中在第九列。
OK,了解了以上信息,stop talking, show me the code.

library(stringr)
library(readr)
gtf_in <- read_delim("Homo_sapiens.gtf",
"\t", escape_double = FALSE, col_names = FALSE,
comment = "#", trim_ws = TRUE)
gtf_in <- gtf_in[gtf_in$X3=="gene",]#第三列feature是gene的保留下来
gene_info <- data.frame(str_split_fixed(unique(gtf_in$X9),";",5))
# 多个属性用分号分隔
head(gene_info)#瞅一眼结果
                         X1                X2                       X3                     X4
1 gene_id "ENSG00000223972"  gene_version "5"      gene_name "DDX11L1"   gene_source "havana"
2 gene_id "ENSG00000227232"  gene_version "5"       gene_name "WASH7P"   gene_source "havana"
3 gene_id "ENSG00000278267"  gene_version "1"    gene_name "MIR6859-1"  gene_source "mirbase"
4 gene_id "ENSG00000243485"  gene_version "5"  gene_name "MIR1302-2HG"   gene_source "havana"
5 gene_id "ENSG00000284332"  gene_version "1"    gene_name "MIR1302-2"  gene_source "mirbase"
6 gene_id "ENSG00000237613"  gene_version "2"      gene_name "FAM138A"   gene_source "havana"
                                                   X5
1  gene_biotype "transcribed_unprocessed_pseudogene";
2              gene_biotype "unprocessed_pseudogene";
3                               gene_biotype "miRNA";
4                             gene_biotype "lincRNA";
5                               gene_biotype "miRNA";
6                             gene_biotype "lincRNA";
gene_info2 <- unique(data.frame("gene_id"=str_split_fixed(gene_info$X1,'"',3)[,2],
                         "gene_name"=str_split_fixed(gene_info$X3,'"',3)[,2],
                         "gene_biotype"=str_split_fixed(gene_info$X5,'"',3)[,2]))
#再用str_split_fixed获取引号内的内容,这样就获得了gene_id、gene_name、gene_biotype构成的基因注释表格

通过这个注释表格,我们就可以做基因ID转换等很多工作了~
示例的GTF文件第九列比较规整,每个基因都有5个相同属性,如果gene的GTF文件第九列不规整,那又如何来做这个事情呢?这里获取的是gene的注释信息,那么对于transcript或者CDS又如何处理呢?TB搜索店铺:R语者,获取指导。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基因注释文件GTF)是一种用于描述基因组上的基因、转录本和外显子等注释信息的文件格式。GTF文件通常与基因组序列文件一起使用,用于帮助研究者理解基因组的组成和功能。 GTF文件的结构很简单明了,每一行都代表一个注释区域(feature)。每行包含了一系列字段,用制表符分隔开,依次包括染色体名称、源(即生成注释的程序或数据库)、注释区域的类型、起始位置、终止位置、分数、方向、相位和其他一些属性等信息。通过这些字段,我们可以了解到基因和转录本在染色体上的位置,并且对于非编码RNA、外显子和剪接变体等也能到详细描述。 GTF文件的重要性在于它提供了关键的信息,可以用于多种生物信息学研究任务。例如,研究者可以利用GTF文件基因和转录本注释信息,对已知的基因进行注释,或者对全新的基因进行预测。此外,GTF文件还可以用于分析基因的发育、表达和调控过程,帮助我们理解基因组的功能。 然而,需要注意的是,GTF文件仅仅是基因注释的一部分,它并不能提供关于表达水平、蛋白质结构和功能的直接信息。因此,在进行基因组研究时,还需要结合其他实验数据,如RNA测序和质谱数据等,来进一步验证和研究基因组的功能。 总而言之,基因注释文件GTF)提供了基因、转录本和外显子等注释信息的描述,是生物信息学研究中不可或缺的一部分。通过分析GTF文件,我们可以加深对基因组的理解,并在基因组研究中发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值