IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bioinformatique Perl Discussion :

Blast via Bioperl => erreur


Sujet :

Bioinformatique Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut Blast via Bioperl => erreur
    Bonjour à tous,
    je viens voir si l'un(e) d'entre vous pourrait venir à mon secours. Je m'explique, j'ai actuellement un fichier .fasta contenant environ 10000 séquences de petits ARN qu'il faudrait que je blaste. Pour ne pas le faire manuellement, j'ai décidé d'utiliser Bioperl et de faire un petit script (très très largement inspiré de ce que j'ai trouvé sur le net) pour qu'il le fasse de lui-même.
    Le but de ce script: blaster chacune de mes séquences l'une derrière l'autre et enregistrer pour chaque séquence le résultat dans un fichier "nom_séquence.out".
    Le problème: quelle que soit la séquence le fichier de sortie contient:
    "No alias or index file found for nucleotide database [nr/nt] in search path [/export/home/web/public/htdocs/blast/SPLITD:/export/home/splitd/blastdb/blast:/blast/db/blast:/blast/db/disk.blast/blast1:]"
    et aussi :
    "<b>No significant similarity found.</b> For reasons why, <A HREF = "Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=FAQ"><b>click here</A>.</b><br><br>"
    C'est quoi ce "For reasons why .... click here"? Aurai-je fais une erreur de code?

    Or ce n'est pas possible, il y a forcément un résultat. J'ai essayé de le faire pour quelques séquences directement sur le site du NCBI mais ça plante.

    Je voudrais donc votre avis sur mon code, savoir s'il est correct ou si' j'ai raté quelquechose. En vous remerciant par avance!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
      use Bio::Tools::Run::RemoteBlast;
      use strict;
      my $prog = 'blastn';
      my $db   = 'nr/nt';
      my $e_val= '1e-10';
     
      my @params = ( '-prog' => $prog,
             '-data' => $db,
             '-expect' => $e_val,
             '-readmethod' => 'SearchIO' );
     
      my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
     
      my $v = 1;
     
      my $str = Bio::SeqIO->new(-file=>"C:/fichier.fasta" , -format => 'fasta' );
     
      while (my $input = $str->next_seq()){
     
        my $r = $factory->submit_blast($input);
     
        print STDERR "waiting..." if( $v > 0 );
        while ( my @rids = $factory->each_rid ) {
          foreach my $rid ( @rids ) {
            my $rc = $factory->retrieve_blast($rid);
            if( !ref($rc) ) {
              if( $rc < 0 ) {
                $factory->remove_rid($rid);
              }
              print STDERR "." if ( $v > 0 );
              sleep 5;
            } else {
              my $result = $rc->next_result();
     
              my $filename = $result->query_name()."\.out";
              $factory->save_output($filename);
              $factory->remove_rid($rid);
              print "\nQuery Name: ", $result->query_name(), "\n";
              while ( my $hit = $result->next_hit ) {
                next unless ( $v > 0);
                print "\thit name is ", $hit->name, "\n";
                while( my $hsp = $hit->next_hsp ) {
                  print "\t\tscore is ", $hsp->score, "\n";
                }
              }
            }
          }
        }
      }
    Encore merci pour toute réponse que vous pourrez m'apporter!

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Re-bonjour, en fait, j'ai trouvé la solution en bidouillant un peu, c'est ma e-value qui ne va pas.
    Mais du coup, j'ai une autre question, j'aimerai spécifier les organismes contre lesquels faire mon Blast, à savoir Zea mays et Oryza sativa.
    Je sais qu'il faut utiliser la syntaxe: $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = ('Oryza sativa [ORGN]';
    Mais j'aimerai savoir comment rajouter une seconde espèce, car quand je fais $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = ('Oryza sativa [ORGN]', 'Zea mays [ORGN]';
    je n'obtiens des résultats que pour l'une ou l'autre des espèces...
    Merci d'avance!

  3. #3
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    as-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = ('Oryza sativa [ORGN] OR Zea mays [ORGN]';
    ?
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Je viens de le faire et ........... victoire!
    Merci beaucoup. Le pire c'est que c'est exactement ce que je marquais sur le site Blast, mais sur BioPerl je ne sais pas pourquoi je voulais changer la syntaxe... Encore merci, bonne journée!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coverage, Blast, et BioPerl
    Par Noirham dans le forum Bioinformatique
    Réponses: 1
    Dernier message: 14/04/2011, 10h27
  2. Migration de données via Procédures stockées, erreur timeout
    Par Arnard dans le forum Accès aux données
    Réponses: 6
    Dernier message: 01/10/2009, 13h17
  3. [XL-2003] Envoi mail Outlook via VBA Excel erreur
    Par altra dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/08/2009, 16h50
  4. Blast avec Bioperl
    Par Petitchaoui dans le forum Bioinformatique
    Réponses: 21
    Dernier message: 12/01/2009, 08h03
  5. via ac 97 erreur code 10
    Par cali71 dans le forum Windows XP
    Réponses: 23
    Dernier message: 24/05/2007, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo