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 :

erreur code, Blast Bioperl


Sujet :

Bioinformatique Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut erreur code, Blast Bioperl
    Bonjour
    J'essaye de faire un script pour fournir a blast un fichier de séquences et recevoir en sortie un fichier avec les informations relatives a ces séquences.
    jessaye d'utiliser le fameux code fourni par Bio::Tools::Run::RemoteBlast -

    Mais il a une erreur dans le bast, le code ne rentre jamais dans le esle de la boucle suivante
    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
     if( !ref($rc) ) {
              if( $rc < 0 ) {
                $factory->remove_rid($rid);
              }
              print STDERR "." if ( $v > 0 );
              sleep 5;
            } else {
              my $result = $rc->next_result();
              #save the output
              my $filename = "Result";
     
     
              $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";
                }
              }
            }
          }
        }
      }
    Quelqu'un pourrait m'expliquer comment le v est calculé?

    dans un code légèrement diffèrent j'ai cette erreur
    Can't call method "next_result" on an undefined value
    Merci

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Voici un script qui fonctionne :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    #!/usr/local/bin/perl
     
     
    #Remote-blast "factory object" creation and blast-parameter initialization
     
    use strict;
     
     
    # Lorsque l'on utilise ce module, la première chose à faire est de le charger. 
    use Bio::Tools::Run::RemoteBlast;
     
     
    # différents algoritmes sont disponibles
    # blastn compare une séquence cible nucléique à une base de données nucléique.
    # blastp compare une séquence cible protéique à une base de données protéique.
    # cf tableau dans l'introduction ou site http://www.ncbi.nlm.nih.gov/Education/BLASTinfo/query_tutorial.html
    my $prog = 'blastn';
     
    # Base données dont les entrées seront comparées à notre séquence cible
    # dans ce cas-ci nr (base par défaut) contenant les séquences non redondantes
    # pour la liste complète des bases de données, se rendre sur le site http://www.ncbi.nlm.nih.gov/Education/BLASTinfo/query_tutorial.html
    my $db   = 'nr';
     
    # expected value (défaut 10)
    my $e_val= '1e-10';
     
    # méthode utilisée afin de lire le rapport du blast
    my $readmethod = 'SearchIO';
     
     
    my @params = (
        '-prog' => $prog,
        '-data' => $db,
        '-expect' => $e_val,
        '-readmethod' => $readmethod );
     
     
    my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
     
     
     
    # séquence cible entrée sous le format Bio::Seq
    my $sequence = 'CTCCGTAGGTGAACCTGCGGAGGGATCATTACAAGWRMSCCCGGKCTWACSRCCKGGWTRTTCATAACCCTTTGTTGTCCGACTCTGTTGCCTCCGGGGCGACCCTGCCTTCGGGCGGGGGCTCCGGGTGGACACTTCAAACTCTTGCGTAACTTTGCAGTCTGAGTAAACTTAATTAATAAATTAAAACTTTTAACAACGGATCTCTTGGTTCTGGCATCGATGAAGAACGCAGCGAAATGCGATAAGTAATGTGAATTGCAGAATTCAGTGAATCATCGAATCTTTGAACGCACATTGCGCCCCCTGGTATTCCGGGGGGCATGCCTGTTCGAGCGTCATTTCACCACTCAAGCCTCGCTTGGTATTGGGCAACGCGGTCCGCCGCGTGCCTCAAATCGWCCGGCTGGGTCTTCTGTCCCCTAAGCGTTGTGGAAACTATTCGCTAAAGGGTGTTCGGGAGGCTACGCCGTAAAACAACCCCATTTCTAAGGTTGACCTCGGATCAGGTAGGGATACCCGCTGAACTTAAGCATATCAATAASCGGAGGA';
    my $input = Bio::Seq->new( -display_id => 'seq_consensus', -seq => $sequence);
    my $r = $factory->submit_blast($input);
     
     
     
     
     
    # $v permet d'activer ou de désactiver les messages
    my $v = 1;
    print STDERR "waiting..." if( $v > 0 );
     
    while ( my @rids = $factory->each_rid ) {
     
    	foreach my $rid ( @rids ) {
     
    		# Tente de récupérer un rapport blast de la file d'attendre
    		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();
     
    			print $result;
     
    			# création du fichier de sortie ayant comme nom l'identifiant de la séquence cible
    			my $filename = 'C:/chemin/'.$result->query_name().'.blast';
    			$factory->save_output($filename);
    			$factory->remove_rid($rid);
    			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";
     
    				}
    			}
    		}
    	}
    }
    Code Bioinfoe : Sélectionner tout - Visualiser dans une fenêtre à part
    Quelqu'un pourrait m'expliquer comment le v est calculé?
    v permet d'activer ou de désactiver les messages, c'est à toi de le définir.


    Si tu ne passes pas dans le else, c'est probablement qu'aucun résultat n'est trouvé car tes paramètres sont mal réglés. Quelle est la taille de ta séquence? Quels paramètres utilises-tu?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut
    J'ai essayer ton code ça ne donne toujours rien


    Citation Envoyé par Jasmine80 Voir le message
    Quelle est la taille de ta séquence? Quels paramètres utilises-tu?
    la taille de mes séquences varie entre 20 et 35 nucléotides.
    paramètres :
    blastn
    nr
    1e-10

    pour spécifier l'organisme c'est bien la ligne de code suivante?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'Triticum aestivum [ORGN]';
    P.S. La recherche "à la main" directement sur le site fonctionne

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par Bioinfoe Voir le message
    J'ai essayer ton code ça ne donne toujours rien



    la taille de mes séquences varie entre 20 et 35 nucléotides.
    paramètres :
    blastn
    nr
    1e-10 pour le e value
    Mets l'e value à 1000. Pour les petites séquences tu dois utiliser une très grande e value car la probabilité de les retrouver par hasard dans la DB est énorme.

    Tu dois également mettre le 'word' utilisé pour la recherche à 5 car par défaut, il est à 7.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my @params = 	( 	
    				 '-prog' => 'blastn',
    				 '-data' => 'nr',
    				 '-expect' => 1000,
    				 '-W' => 5,
    		);
    Citation Envoyé par Bioinfoe Voir le message
    pour spécifier l'organisme c'est bien la ligne de code suivante?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'Triticum aestivum [ORGN]';
    oui, c'est correct.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut
    Merci beaucoup ça marche...

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

Discussions similaires

  1. erreur code renommer table
    Par milielf dans le forum Access
    Réponses: 7
    Dernier message: 13/07/2006, 12h30
  2. Réponses: 6
    Dernier message: 09/06/2006, 00h19
  3. erreur code pour désactiver molette souris.
    Par rangernoir dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 10h14
  4. [CR] erreur code de touche incorrect ??
    Par CAPPE dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 09/05/2005, 16h52
  5. Réponses: 4
    Dernier message: 09/05/2003, 16h20

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