2010-09-14 32 views
0

Dans le Nucleotide BLAST search pagebases de données blastn Obtention programatically

est-il un moyen d'obtenir les bases de données répertoriées programatically dans la case « Choisissez Recherche Set »? Peut-être en format XML? Je ne pense pas (peu importe le langage de programmation utilisé)

de Merci à l'avance

+1

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

+0

Merci !! très utile en effet –

Répondre

3

vous pouvez obtenir cette information a jeté les services Web NCBI.

En utilisant XSLT:

<?xml version='1.0' encoding="ISO-8859-1" ?> 
<xsl:stylesheet 
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform' 
    version='1.0' 
    > 

<xsl:output method="text"/> 
<xsl:template match="/"> 
<xsl:apply-templates select="//select[@id='DATABASE']"/> 
</xsl:template> 


<xsl:template match="select[@id='DATABASE']"> 
<xsl:for-each select=".//option"> 
<xsl:value-of select="@value"/> 
<xsl:text> </xsl:text> 
<xsl:value-of select="."/> 
<xsl:text> 
</xsl:text> 
</xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 

et xsltproc:

xsltproc --html stylesheet.xsl "http://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastn&BLAST_PROGRAMS=megaBlast&PAGE_TYPE=BlastSearch&SHOW_DEFAULTS=on&LINK_LOC=blasthome" 2> /dev/null 

retours;

dbindex/9606/ref_contig dbindex/9606/alt_contig_HuRef dbindex/9606/rna Human genomic plus transcript (Human G+T) 
dbindex/10090/alt_contig dbindex/10090/ref_contig dbindex/10090/rna  Mouse genomic plus transcript (Mouse G+T) 
nr  Nucleotide collection (nr/nt) 
refseq_rna  Reference mRNA sequences (refseq_rna) 
refseq_genomic Reference genomic sequences (refseq_genomic) 
chromosome  NCBI Genomes (chromosome) 
est  Expressed sequence tags (est) 
est_others  Non-human, non-mouse ESTs (est_others) 
gss  Genomic survey sequences (gss) 
htgs High throughput genomic sequences (HTGS) 
pat  Patent sequences(pat) 
pdb  Protein Data Bank (pdb) 
alu  Human ALU repeat elements (alu_repeats) 
dbsts Sequence tagged sites (dbsts) 
wgs  Whole-genome shotgun reads (wgs) 
env_nt Environmental samples (env_nt) 
2

Je ne suis pas tout à fait ce que vous avez l'intention de l'utiliser pour, mais l'ensemble des bases de données utilisées par NCBI sont sur leur site FTP: ftp://ftp.ncbi.nih.gov/blast/db/ Si vous n'êtes intéressé que par les noms de base de données, il suffit de regarder au bit avant le premier. - La plupart des bases de données sont suffisamment grandes pour être segmentées. Afin de faire une bonne partie du filtrage (par exemple par organisme), ils utilisent des fichiers alias qui limitent une ou plusieurs de ces bases de données plus grandes par numéro GI.

0

Certaines API FTP sont nécessaires pour obtenir ces bibliothèques par programmation. Cependant, ces fichiers sont plutôt volumineux, même compressés. Vous devriez probablement au moins vérifier si la version disponible sur le site de téléchargement n'est pas la même que celle que vous avez déjà téléchargée et mise en cache. Les bibliothèques FTP Java sont passées en revue au http://www.javaworld.com/javaworld/jw-04-2003/jw-0404-ftp.html.

0

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;