Bonjour,
Je reviens vers vous concernant mon second code, qui, comme le premier, ne fonctionne pas.
Voici la bête :
Et voici mes problèmes :
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 #!C:\strawberry\perl\bin -W use warnings; use stricts; open HIN, "<C:\\Users\\Maxime\\Desktop\\sequence.txt"; my @temp = <HIN>; my $a =0 for (my $j=0 ; $j<=($#temp) ; $j+=1){ my @t = split //, $temp[$j]; for (my $c=0; $c<=($#t);$c+=1){ if (($t[$c] =~ 'a')&&($t[$c+1] =~ 't')&&($t[$c+2] =~ 'g')){ for (my $i=$c+1; $i<=($#t);$i+=1){ if ($t[$i] =~ 'g') && ($t[$i+1] =~ 't'){ for (my $v=$i+1; $v<=($#t);$v+=1){ if ($t[$v] =~ 'a')&&($t[$v+1]=~ 'g'){ $a+=1 print("exon", "$a",":","$t[$c..$i-1]\n","intron", "$a", ":","$t[$i..v+1]\n") } elsif (($t[$v] =~ 't')&&($t[$v+1] =~ 'g')&&($t[$v+2] =~ 'a')){ print ("exon unique :","$t[$c..$v+2]") last} elsif (($t[$v] =~ 't')&&($t[$v+1] =~ 'a')&&($t[$v+2] =~ 'a')){ print ("exon unique :","$t[$c..$v+2]") last} };} elsif (($t[$i] =~ 't')&&($t[$i+1] =~ 'g')&&($t[$i+2] =~ 'a')){ print ("exon unique :","$t[$c..$i+2]") }};}};}
==> pour afficher une suite de ligne d'un tableau par exemple de la ligne 1 à 10, comment doit-on si prendre? print ($t[1..10]) ne semble pas fonctionner.
==>Ensuite je veux que le programme me trouve trois nucléotides (ATG) à la suite puis qu'il commence à faire d'autre action (chercher des introns ou une fin TAA ou TGA). Pour cela j'ai utilisé if précédé d'une boucle for.. if (($t[$c] =~ 'a')&&($t[$c+1] =~ 't')&&($t[$c+2] =~ 'g')). Est-ce que cette façon d'écrire pour la condition "SI la ligne x correspond à un 'a' ET la ligne x+1 correspond à un 't' ET la ligne x+2 correspond à un 'g' ALORS ...." est correcte?.
Bon le programme est un premier jet je suis pas sur que l'algorithme que j'ai mis en place fonctionne vraiment pour l'instant, mais avant de le vérifier j'aimerai bien résoudre ces petites questions de syntaxe ^^.
Partager