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

Langage Perl Discussion :

Can't call method "isa" on unblessed reference at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 85


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 Can't call method "isa" on unblessed reference at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 85
    Appel du sous-programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &ClustalW2 ($out_file, \($seq->seq, $sequences_ref{$gene}) );
    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
    sub ClustalW2 {
     
    	my $fich_fsa = $_[0];
    	my $seq_array_ref = $_[1];
     
     
    	(my $fich_msf) = $fich_fsa =~ s/\.fsa/\.msf/;
     
     
    	# my $fich_msf_fh = FileHandle->new (">".$fich_msf);
    	# close $fich_msf_fh;
     
    	my @params = (	
     
    		'gapopen' => 15,
    		'PAIRGAP' => 0,
    		'ktuple' => 4, 
    		'type' => 'dna', 
    		'outfile' => $fich_msf, 
    		'format' => 'Fasta',
    		'outorder' => 'aligned',
    	);
     
    	# and pass the factory a reference to that array
    	my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
    	$factory->executable("C:/ClustalW2/clustalw2.exe");
    	# $factory->executable("C:/ClustalW/clustalw.exe");
     
    	my $aln = $factory->align($seq_array_ref);
     
    	# création du fichier fasta
    	my $in_msf  = Bio::AlignIO->new(-file => $fich_msf , -format => 'msf');
    	my $out_fsa = Bio::AlignIO->new(-file => ">".$fich_fsa , -format => 'fasta');
     
    	while ( my $aln = $in_msf->next_aln() ) {
    	    $out_fsa->write_aln($aln);
    	}
    }
    ERREUR
    Can't call method "isa" on unblessed reference at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 854, <GEN0> line 1.

    Merci pour votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 184
    Par défaut
    Où est la ligne 854 ?

  3. #3
    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 Dimitry.e Voir le message
    Où est la ligne 854 ?
    Il n'y en a pas ... ça doit-être dans le module

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Il y a de fortes chance que lors de la création de ton objet $factory, les paramètres fournis n'ont pas permis la création et qu'une méthode interne a échouée.
    Pour connaitre la fonction de ton programme qui a engendré l'erreur tu peux lancer ton script ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -MCarp=verbose script.pl ...
    (ou bien ajoute au début de ton script).

    Si cela ne donne pas plus d'indication, tente alors d'ajouter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SIG{__DIE__} = sub { require Carp; Carp::confess };

  5. #5
    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
    Merci Philou


    J'obtiens :

    Name "Carp::verbose" used only once: possible typo at Bio_SeqIO_ref_compare.pl line 6.
    Can't call method "isa" on unblessed reference at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 854, <GEN0> line 1.
    at Bio_SeqIO_ref_compare.pl line 6
    main::__ANON__('Can\'t call method "isa" on unblessed reference at C:/Perl/si...') called at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 854
    Bio::Tools::Run::Alignment::Clustalw::_setinput('Bio::Tools::Run::Alignment::Clustalw=HASH(0x22745fc)', 'SCALAR(0x213ba68)') called at C:/Perl/site/lib/Bio/Tools/Run/Alignment/Clustalw.pm line 508
    Bio::Tools::Run::Alignment::Clustalw::align('Bio::Tools::Run::Alignment::Clustalw=HASH(0x22745fc)', 'SCALAR(0x213ba68)') called at Bio_SeqIO_ref_compare.pl line 110
    main::ClustalW2('FileHandle=GLOB(0x1f74a84)', 'SCALAR(0x213ba68)', 'SCALAR(0x236c04)') called at Bio_SeqIO_ref_compare.pl line 73

  6. #6
    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
    Si j'utilise les paramètres de la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	my @params = ('ktuple' => 2, 'matrix' => 'BLOSUM');
    	my $factory = Bio::Tools::Run::Alignment::Clustalw->new(@params);
     
    	$factory->executable("C:/ClustalW2/clustalw2.exe");
    J'obtiens la même erreur

  7. #7
    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
    le problème venait du fichier de sortie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'outfile' => $fich_msf,

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    J'avais visé juste dans ma première réponse

  9. #9
    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
    Coucou,


    je viens de reprendre le programme, et j'ai immédiatement trouvé l'erreur. Comme quoi, quand on est trop dedans, on ne voit plus ses fautes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	my $fich_fsa = '>P:/Theorie/YANN/Fadoua/mutation_seq/ref_ali/'.$id.'.fsa';
    	my $fich_msf = '>P:/Theorie/YANN/Fadoua/mutation_seq/ref_ali/'.$id.'.msf';
     
     
     
    # plus bas
     
    my $out_fsa = Bio::AlignIO->new(-file => ">".$fich_fsa , -format => 'fasta');

    => j'ai donc deux fois le '>' d'ouverture ... comme quoi, une bête erreur peut nous tracasser longtemps !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/03/2007, 20h09
  2. Réponses: 1
    Dernier message: 17/01/2007, 17h10
  3. Can't call method "mail" on an undefined value
    Par hpalpha dans le forum Modules
    Réponses: 2
    Dernier message: 18/01/2006, 10h50

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