Votre question n'est pas claire pour moi. Cependant, voici un programme utilisant BioPerl qui va obtenir des informations à partir de n'importe quelle base de données (spécifiée sous 'db') et tout terme de recherche (spécifié sous 'terme'). Cela enregistrera ensuite un fichier avec toutes les séquences NCBI associées à votre terme de recherche dans la base de données donnée.
########## http://www.bioperl.org/wiki/HOWTO:EUtilities_Cookbook #########
#!/usr/bin/perl -w
BEGIN {push @INC,"path to BioPerl";}
use Bio::DB::EUtilities;
my $factory = Bio::DB::EUtilities->new(-eutil => 'esearch',
-email => '[email protected]',
-db => 'nucleotide',
-term => 'search terms here',
-usehistory => 'y');
my $count = $factory->get_count;
# get history from queue
my $hist = $factory->next_History || die 'No history data returned';
print "History returned\n";
# note db carries over from above
$factory->set_parameters(-eutil => 'efetch',
-rettype => 'fasta',
-history => $hist);
my $retry = 0;
my ($retmax, $retstart) = (500,0);
open (my $out, '>', 'db:protein_term-VP1_AND_Parvovirus-NOT_dependovirus,patent,partial.fa') || die "Can't open file:$!";
RETRIEVE_SEQS:
while ($retstart < $count) {
$factory->set_parameters(-retmax => $retmax,
-retstart => $retstart);
eval{
$factory->get_Response(-cb => sub {my ($data) = @_; print $out $data});
};
if ([email protected]) {
die "Server error: [email protected] Try again later" if $retry == 5;
print STDERR "Server error, redo #$retry\n";
$retry++ && redo RETRIEVE_SEQS;
}
#say "Retrieved $retstart";
$retstart += $retmax;
}
close $out;
Pour votre information: http://biostar.stackexchange.com/ est un autre endroit agréable pour se poser ce genre de question relative à la bio-informatique – Pierre
Merci !! très utile en effet –