Perl을 사용하여 NCBI에서 FASTA Nucleotide 형식으로 유전자 기능을 어떻게 얻을 수 있습니까?

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

문제

나는

을 수동으로 수동으로 다운로드 할 수 있습니다 :

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

"보내기"를 클릭하고 "유전자 특징"을 선택하면 FASTA Nucleotide는 이 페이지 .

다음과 같은 스크립트가 있습니다.

#!/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 파일을 가져 와서 저장하려고 시도했지만, Bio :: Seqio를 사용하여 Bio :: Seqio를 사용하여 일하면서 일하면서 일하면서 일을 할 것입니다. 시퀀스.

도움이 되었습니까?

해결책

해당 accession 번호와 반환 유형을 사용하면 전체 게놈 시퀀스를 얻을 수 있습니다.개별 유전자 시퀀스를 얻으려면 완전한 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에만 쓰는 경우)하지만 파일을 별도로 작성하기 위해 작은 변경을 할 수있는 곳을 표시했습니다.구문 분석 뱅크는 때때로 조금 까다로울 수 있으므로 문서를 읽는 것이 항상 도움이됩니다. 기능 주석 HOWTO .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top