quarta-feira, 14 de março de 2012

Get multiples sequence of Genbank


Neste caso em particular, eu precisava obter uma lista de 150 genes de determinados organismos, usando Bioperl.  

Contando com a super ajuda do Rondon (de novo!)


#!/usr/bin/perl

use warnings;
use strict;
use Bio::SeqIO;
use Bio::DB::GenBank;
use Bio::DB::Query::GenBank;

my @genes = ("ARP3[TITL]", "PAB1[TITL]", "CAR2[TITL]", "SEC24[TITL]", "PRE9[TITL]", "GLC7[TITL]", "BIM1[TITL]", "BET2[TITL]", "ESA1[TITL]", "YSH1[TITL]", "CBR1[TITL]", "RFC4[TITL]", "TOP2[TITL]", "RSP5[TITL]", "BRR2[TITL]", "KIP3[TITL]", "YTA12[TITL]", "HOS2[TITL]", "YAK1[TITL]", "KIC1[TITL]", "YDJ1[TITL]", "TAF5[TITL]", "ROT2[TITL]", "RPN9[TITL]", "SAC1[TITL]", "SUL2[TITL]", "ADK1[TITL]", "BET3[TITL]", "KGD2[TITL]", "PSR1[TITL]", "SUI2[TITL]", "LSC2[TITL]", "MYO2[TITL]", "URA2[TITL]", "ALD5[TITL]", "HAS1[TITL]", "TOP1[TITL]", "SMC4[TITL]", "SER1[TITL]", "SUP35[TITL]", "SSC1[TITL]", "PHB1[TITL]", "FAL1[TITL]", "RFC2[TITL]", "CDC9[TITL]", "ILS1[TITL]", "CCC2[TITL]", "TCP1[TITL]", "PUF3[TITL]", "CRM1[TITL]", "UBA3[TITL]", "SKY1[TITL]", "CDC2[TITL]", "PUP1[TITL]", "MLH1[TITL]", "RPT1[TITL]", "URA6[TITL]", "CDC48[TITL]", "APL4[TITL]", "CLB2[TITL]", "ILV1[TITL]", "MET14[TITL]", "SOD2[TITL]", "RRM3[TITL]", "PIM1[TITL]", "TRM1[TITL]", "IMP4[TITL]", "PRO3[TITL]", "HHT2[TITL]", "YPK1[TITL]", "ALA1[TITL]", "PRP22[TITL]", "GRX4[TITL]", "SEC7[TITL]", "KAR3[TITL]", "CDC39[TITL]", "RSA4[TITL]", "VMA2[TITL]", "MTO1[TITL]", "KRE33[TITL]", "LYS12[TITL]", "VPS60[TITL]", "VAS1[TITL]", "FAA2[TITL]", "FUS3[TITL]", "VAC14[TITL]", "PRX1[TITL]", "NUG1[TITL]", "UTP15[TITL]", "YPT1[TITL]", "CDC47[TITL]", "PDI1[TITL]", "URK1[TITL]", "GLR1[TITL]", "TIM50[TITL]", "KIN28[TITL]", "VMA6[TITL]", "PRP46[TITL]", "PRC1[TITL]", "SSB2[TITL]", "SPT15[TITL]", "PGK1[TITL]", "SMC2[TITL]", "BMS1[TITL]", "TEF1[TITL]", "HMT1[TITL]", "SEC23[TITL]", "SUI3[TITL]", "COP1[TITL]", "RAD54[TITL]", "MCM2[TITL]", "AMD1[TITL]", "SEC26[TITL]", "FAA1[TITL]", "VMA5[TITL]", "VPH1[TITL]", "ADE12[TITL]", "CBK1[TITL]", "MSF1[TITL]", "ENO1[TITL]", "PDB1[TITL]", "BMH2[TITL]", "MIS1[TITL]", "ERG10[TITL]", "ARF2[TITL]", "NBP35[TITL]", "SEC17[TITL]", "LCB2[TITL]", "KRR1[TITL]", "ACT1[TITL]", "RPS3[TITL]", "SEC21[TITL]", "MAP1[TITL]", "CDC19[TITL]", "STT3[TITL]", "ATM1[TITL]", "RIP1[TITL]", "PWP2[TITL]", "HAT2[TITL]", "SER33[TITL]", "CCT5[TITL]", "PYC1[TITL]", "FBP26[TITL]", "TDH3[TITL]", "RET1[TITL]", "MTR4[TITL]", "MEF1[TITL]", "GLE2[TITL]", "DBP2[TITL]", "NMT1[TITL]");

my @organisms = ("Saccharomyces cerevisiae S288c [ORGN]");

foreach my $orgn_query (@organisms){
  my $seq_out = Bio::SeqIO -> new  (-format => 'fasta',
   -file => ">$orgn_query.fasta");
  foreach my $nucleotide (@genes){
    my $db_obj = Bio::DB::GenBank->new;
    my $query_obj = Bio::DB::Query::GenBank->new( -db    => 'nucleotide',
 -query => "$orgn_query AND $nucleotide" );
    my $gb_obj = Bio::DB::GenBank->new;
    my $stream_obj = $gb_obj->get_Stream_by_query($query_obj);
while (my $seq_obj = $stream_obj->next_seq) {
 $seq_out -> write_seq($seq_obj);
}
    }
}
exit;

Um comentário: