J'aimerais que la séquence $seq_mut soit égale à $seq mais que $cod_mut soit remplacé par $blaTEMx
Où est mon erreur?Code:($seq_mut = $seq ) =~ s/${cod_mut}/${blaTEMx}/;
Merci
Version imprimable
J'aimerais que la séquence $seq_mut soit égale à $seq mais que $cod_mut soit remplacé par $blaTEMx
Où est mon erreur?Code:($seq_mut = $seq ) =~ s/${cod_mut}/${blaTEMx}/;
Merci
Faut faire au plus simple :lol:Code:
1
2 my $seq_mut = $seq; $seq_mut =~ s/$cod_mut/$blaTEMx/;
Merci de me répondre. C'est ce que j'ai essayé en premier lieu mais sans succès.
Code:
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/; }
Citation:
$cod_mut = '[T]TT';
$blaTEMx = 'CTT';
sequence : ATG AGT ATT [T]TT CAT TTT CGT GTC
Et cela ne va pas non plus :
Code:
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";
:ccool: Il faut ajouter des slashes
SolutionCode:
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";
Il n'y avait pas un autre moyen que quotemeta?Code:
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/; }
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/ ).
J'ai trouvé c'était qr auquel je pensais et que je n'arrivais plus à retrouver
Ne réglerait-il pas mon problème? N'est-ce pas plus propre?Citation:
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.
Il ne règle pas plus ton problème. Les crochets seront interprétés comme des caractères spéciaux de regexp, pas comme des caractères crochets à trouver un motif.
qr et metaquote ont deux objectifs distincts.
Ok merci pour ton aide