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 :

substitution de variable


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 substitution de variable
    J'aimerais que la séquence $seq_mut soit égale à $seq mais que $cod_mut soit remplacé par $blaTEMx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($seq_mut = $seq ) =~ s/${cod_mut}/${blaTEMx}/;
    Où est mon erreur?


    Merci

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $seq_mut = $seq;
    $seq_mut =~ s/$cod_mut/$blaTEMx/;
    Faut faire au plus simple

  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
    Merci de me répondre. C'est ce que j'ai essayé en premier lieu mais sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	# recherche du codon contenant la mutation
    	my ($cod_mut) = $seq =~ /(\w*\[\w+\]\w*)/;
     
    	# séquence mutée
    	my $seq_mut;
     
    	# si 1 seul nucléotide est muté
    	if ($cod_mut =~ /\[\w\]/){ 
    		($seq_mut = $seq ) =~ s/$cod_mut/$blaTEMx/;
    	}
    $cod_mut = '[T]TT';
    $blaTEMx = 'CTT';

    sequence : ATG AGT ATT [T]TT CAT TTT CGT GTC

    Et cela ne va pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	# recherche du codon contenant la mutation
    	my ($cod_mut) = $seq =~ /(\w*\[\w+\]\w*)/;
     
    	# séquence mutée
    	my $seq_mut = $seq;
     
    	# si 1 seul nucléotide est muté
    	if ($cod_mut =~ /\[\w\]/){ 
    		$seq_mut =~ s/$cod_mut/$blaTEMx/;
    	}
     
    	print "$start_mut\t$cod_mut\t=>\t$blaTEMx\n$seq\n$seq_mut\n";

  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
    Il faut ajouter des slashes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my $cod_mut = '\[T\]TT';
    my $blaTEMx = 'CTT';
     
    my $seq = 'ATG AGT ATT [T]TT CAT TTT CGT GTC';
    my $seq_mut = $seq;
     
    $seq_mut =~ s/$cod_mut/$blaTEMx/;
     
    print "$seq_mut\n";
    Solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	# si 1 seul nucléotide est muté
    	if ($cod_mut =~ /\[\w\]/){ 
    		$cod_mut = quotemeta ($cod_mut);
    		($seq_mut = $seq ) =~ s/$cod_mut/$blaTEMx/;
    	}
    Il n'y avait pas un autre moyen que quotemeta?

  5. #5
    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
    Je ne connais pas d'autre moyen que quotemeta, qui est justement fait pour cela. Ton écriture d'affectation en passant est par ailleurs tout à fait légale ( ($a = $b) =~ s/tralala/trululu/ ).

  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
    J'ai trouvé c'était qr auquel je pensais et que je n'arrivais plus à retrouver
    Alternately, you can use qr//, the regular expression quote operator (see perlop for more details). It quotes and perhaps compiles the pattern, and you can apply regular expression flags to the pattern.
    Ne réglerait-il pas mon problème? N'est-ce pas plus propre?

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

Discussions similaires

  1. sed et substitution de variable
    Par bnleg dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 06/12/2013, 10h57
  2. Réponses: 7
    Dernier message: 27/11/2009, 11h16
  3. M4 : Substitution de variable contenu dans un mot
    Par nicolaskarp dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 21/07/2009, 14h08
  4. Substitution de variables
    Par *alexandre* dans le forum Maven
    Réponses: 1
    Dernier message: 02/07/2009, 08h27
  5. Substitution de variable
    Par hugo123 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 02/11/2006, 09h37

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