Bonjour !
La chose semble simple. Je suis relativement contente du code que j'ai pondu mais il marche pas et je sais pas pourquoi.
Le principe : parcourir une sequence LRAEMN.... et remplacer chaque position par la lettre en cours
exemple :
la lettre en cours est A
donc dans la sequence MTESTAAVTTSGHSLT :
dans mon fichier sortie je devrais avoir
ATESTAAVTTSGHSLT
MAESTAAVTTSGHSLT
MTASTAAVTTSGHSLT
ainsi de suite jusqu' à la derniere
MTESTAAVTTSGHSLA
puis on fait la même chose pour la lettre suivante (les lettres sont determines dans @AcideAmine)
voici ce que j'ai fait :
mon message d'erreur est :
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 my $seq = ""; while (my $ligne = <INFILE>) { if ($ligne =~ /^[\s\t]+$/) { next } else { #mutation de chaque position de la chaine my @AcideAmine= (); @AcideAmine =("A","R","N","D","C","Q","E","G","H","I","L","K","M","F","P","S","T","W","Y","V"); my $aa; chomp($ligne); #enleve le saut à la ligne à la fin my @seq = split(//,$ligne); foreach $aa(@AcideAmine) { #induction de la mutation pour chaque lettre de la sequence foreach my $lettre(@seq){ my $x= $lettre cmp $aa; if ($x != 0){ splice(@seq,$seq[$lettre],1,$aa); $seq = join(";",@seq); $seq=~ s/;$//; print OUTFILE $seq."\n" } else {next} } } } }
Argument "N" isn't numeric in array element at Mutation.pl line 39, <INFILE> line 4.
Argument "D" isn't numeric in splice at Mutation.pl line 39, <INFILE> line 4.
Je suis d'accord que c'est pas numerique et justement c'est pas ce que je veux !
en plus j'utilise splice qui est fait pour les listes???
no comprendo
danke schon sehr sehr
Partager