Perlを使用してNCBIからのFASTAヌクレオチドフォーマットで遺伝子機能を取得する方法

StackOverflow https://stackoverflow.com//questions/22073986

質問

私は、次のように見えるFASTAファイルをダウンロードすることができます。

>lcl|CR543861.1_gene_1...
ATGCTTTGGACA...
>lcl|CR543861.1_gene_2...
GTGCGACTAAAA...
.

「送信」をクリックして「遺伝子機能」を選択すると、FASTAヌクレオチドがこのページ

このようなスクリプト付き:

#!/usr/bin/env perl
use strict;
use warnings;
use Bio::DB::EUtilities;

my $factory = Bio::DB::EUtilities->new(-eutil   => 'efetch',
                                       -db      => 'nucleotide',
                                       -id      => 'CR543861',
                                       -rettype => 'fasta');
my $file = 'CR543861.fasta';
$factory->get_Response(-file => $file);
.

私は次のようなファイルを取得します:

>gi|49529273|emb|CR543861.1| Acinetobacter sp. ADP1 complete genome
GATATTTTATCCACA...
. 全ゲノム配列が一緒に集中している

最初の(手動でダウンロードされた)ファイルのような情報を得るにはどうすればよいですか?

他の投稿を見た:

Eutilities Cookbookのこのセクション

GenBankファイルのフェッチと保存を試みました(私がget igbファイルの各遺伝子には各遺伝子には別々のシーケンスがあるようです)、しかし、私がBio :: Seqioを使ってそれを使って仕事をするとき、私は1つだけを手に入れるでしょう配列

役に立ちましたか?

解決

そのアクセス番号と戻り値のタイプで、完全なゲノムシーケンスを取得しています。個々の遺伝子シーケンスを取得したい場合は、完全なGenBankファイルを必要としていることを指定して、遺伝子を解析してください。これが例です。

#!/usr/bin/env perl

use 5.010;
use strict;
use warnings;
use Bio::SeqIO;
use Bio::DB::EUtilities;


my $factory = Bio::DB::EUtilities->new(-eutil   => 'efetch',
                                       -email   => 'foo@bar.com',
                                       -db      => 'nucleotide',
                                       -id      => 'CR543861',
                                       -rettype => 'gb');
my $file = 'CR543861.gb';
$factory->get_Response(-file => $file);

my @gene_features = grep { $_->primary_tag eq 'gene' } 
                    Bio::SeqIO->new(-file => $file)->next_seq->get_SeqFeatures;

for my $feat_object (@gene_features) {
    for my $tag ($feat_object->get_all_tags) {
        # open a filehandle here for writing each to a separate file
        say ">",$feat_object->get_tag_values($tag);
        say $feat_object->spliced_seq->seq;
        # close it!
    } 
}
.

それぞれの遺伝子を同じファイルに書き込みます(あなたがそれをリダイレクトするだけでは、今度はstdoutに書き込みます)が、あなたがそれらを別々のファイルに書き込むために小さな変更を加えることができるところを示しました。Genbankの解析は時々少しトリッキーになることができるので、そのドキュメントを読むことは常に役立ちます。"nofollow">機能注釈HOWTO 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top