我一直试图用BioPerl编写一个代码,它将查询Genbank中的特定蛋白质,然后将结果打印到fasta文件中。到目前为止,我所拥有的代码是有效的,我可以将结果打印到屏幕上,但不能打印到文件中。我在BioPerl网站和其他来源( PerlMonks、CPAN等)上做了大量的研究。但我没有找到任何能解决我的问题的办法。我理解如何从文件中读取某些内容,然后将输出打印到一个新文件(使用SeqIO),但我遇到的问题似乎是,我希望程序读取的内容不是存储在文本或FASTA文件中,而是数据库查询的结果。帮助?我是一个初学者,对Perl/BioPerl和一般编程都很陌生。
下面是我到目前为止掌握的代码:
#!usr/bin/perl
use Bio::DB::GenBank;
use Bio::DB::Query::GenBank;
use Bio::Seq;
$query = "Homo sapiens[ORGN] AND TFII-I[TITL]";
$query_obj = Bio::DB::Query::GenBank->new(-db => 'protein', -query => $query);
$gb_obj = Bio::DB::GenBank->new;
$stream_obj = $gb_obj->get_Stream_by_query($query_obj);
while ($seq_obj = $stream_obj->next_seq)
{print $seq_obj->desc, "\t", $seq_obj->seq, "\n";
}所以,在最后一行中,我要做的不是打印到屏幕上,而是以fasta格式打印到文件中。
谢谢,~杰
发布于 2013-10-13 17:35:57
假设您有数据来生成fasta (看起来是这样的),那么您能使用Bio:FASTASequence模块seq2file函数吗?我从来没有使用过它,我也不是生物信息专家,只是看到了它的选择,并认为它可能对你有用。
https://stackoverflow.com/questions/19347964
复制相似问题