首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.gff中提取gene-id +函数标注

从.gff中提取gene-id +函数标注
EN

Stack Overflow用户
提问于 2014-11-23 00:13:52
回答 1查看 1.4K关注 0票数 1

我有一个.gff文件,如下所示:

代码语言:javascript
复制
Niben044Scf00000988 .   contig  1   120868  .   .   .   ID=Niben044Scf00000988;Name=Niben044Scf00000988
Niben044Scf00000988 maker   gene    6221    8457    .   -   .   ID=NbS00000988g0019;AltID=maker-Niben044Scf00000988-augustus-gene-0.18;Name=NbS00000988g0019;PredictionNote=maker-augustus
Niben044Scf00000988 maker   mRNA    6221    8457    .   -   .   ID=NbS00000988g0019.1;Parent=NbS00000988g0019;AltID=maker-Niben044Scf00000988-augustus-gene-0.18-mRNA-1;Name=NbS00000988g0019.1;_AED=0.07;_QI=0|1|1|1|1|1|3|43|341;_eAED=0.07;blast_hits=TAIR:AT3G28470.1:I57.93:L145:E8e-43,SWP:MYB38_MAIZE:I46.92:L130:E1e-29,GB:CAN75378.1:I45.28:L360:E1e-77,ITAG:Solyc03g113530.2.1:I74.03:L362:E4e-155;func_annotation="MYB transcription factor [Solanum lycopersicum]"

……

我需要基因ids和属于它们的函数注释。我想在R中使用它。

使用gffread,我似乎只能提取序列。

输出应如下所示:

Gene-ID \t functionannotation

NbS00000988g001 \t MYB transcription factor [Solanum lycopersicum]

bioperl中有没有什么工具或迷你脚本?

EN

回答 1

Stack Overflow用户

发布于 2015-02-06 21:33:24

为此,您可以使用use Bio::FeatureIO。下面是您的数据示例:

代码语言:javascript
复制
use strict;
use warnings;
use Bio::FeatureIO;

# read infile "my.gff"
my $in  = Bio::FeatureIO->new(-file => "my.gff" , -format => 'GFF');

# write to outfile "out.txt"
open(my $fh, '>', 'out.txt') or die $!;
print $fh "Gene-ID\tfunctionannotation\n";

while ( my $feature = $in->next_feature() ) {
        my ($func) = $feature->annotation()->get_Annotations('func_annotation');
        print $fh $feature->seq_id . "\t" . $func->value . "\n" if $func;
}

文件out.txt:

代码语言:javascript
复制
Gene-ID functionannotation
Niben044Scf00000988 MYB transcription factor [Solanum lycopersicum]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27079504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档