存储基因和转录本的结构信息,gtf和gff3两种格式都可以。在实际分析时,会需要转换两种格式。比如,NCBI 只提供了GFF格式的下载文件,我们需要转换成GTF文件之后再使用。 完成这一任务,可以自己编写脚本,也可以借助现成的工具。接下来看下每种工具的使用方法和特点。使用NCBI的GFF文件进行测试,链接如下
1. gffreadgffread是由cufflinks的开发团队提供的一款读取gff文件的工具,可以实现gff文件转换为gtf文件,用法如下 gffread -T GCF_000001405.38_GRCh38.p12_genomic.gff -o hg38.gtf 生成的gtf示例如下 NC_000001.11 BestRefSeq exon 11874 12227 . + . transcript_id "rna0"; gene_id "gene0"; gene_name "DDX11L1"; gffread 生成的gtf文件中只提供了 2. UCSCUCSC采用GenePred 格式存储基因和转录本的结构信息, 通过UCSC的小工具,我们可以借助GenePred格式来实现GFF转换成GTF。用法如下 gff3ToGenePred GCF_000001405.38_GRCh38.p12_genomic.gff hg38.GenePred
genePredToGtf database hg38.GenePred hg38.gtf 首先用 生成的gtf示例如下 NC_012920.1 hg38.GenePred transcript 15956 16023 . - . gene_id "gene60958"; transcript_id "rna171196"; gene_name "gene60958"; 相比gffreads, UCSC提供的类型更多,包括以下几种 1. exon 虽然区间的类型变多了,但是属性的问题和gffread是一样的,除了gene_name属性有价值外,其他属性都没有价值。 当然,网上也有各种别人编写的脚本,但是或多或少多都存在问题。最佳的方案还是自己来编写,首先需要搞清楚GTF文件中,我们需要哪些类型的区间信息。 对于GTF的实际使用而言,只需要 另外一个问题就是,第九列提供哪些属性。根据我的经验,只需要以下6个属性
以上6种属性就能够满足几乎100%的场景,对于不同数据库中的文件,只需要自己写脚本提取这些信息,就可以了。 ·end· |
|