Perl을 사용하여 NCBI에서 FASTA Nucleotide 형식으로 유전자 기능을 어떻게 얻을 수 있습니까?
문제
나는
을 수동으로 수동으로 다운로드 할 수 있습니다 :>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...
.
전체 게놈 서열이 함께 뭉친 것입니다. 첫 번째 (수동 다운로드) 파일과 같은 정보를 얻는 방법은 무엇입니까?
몇 개의 다른 게시물을 보았습니다.
- Biopython Entrez에서 완전한 게놈 서열을 다운로드하는 방법 .Esearch (이 답변은 관련 )
- 가입 번호만으로 전체 GenBank 파일을 어떻게 다운로드 할 수 있습니까?
뿐만 아니라 이 섹션에서 eUTILITIES cookbook .
해결책
해당 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 .
제휴하지 않습니다 StackOverflow