parcour d'une séquence (2)
Bonjour,
désolé mais le post précédent n'est pas résolu.
Je suis plus à l'aise avec la méthode suivante néanmoins j'ai un souci:
quand ma séquence possède plusieurs fragment de N. Je bloque pour indiquer le nom de la séquence
fichier
>seq_1
ATTTTNNNNNGATCANNNNN
>seq_2
ATTTTGTANNNN
>seq_3
ATTTTAAAAAAGATCA
>seq_4
ATTTTNNNNN
en effet, j'obtiens:
seq_4 6 10
seq_1 6 10
16 20
seq_3 0 0
seq_2 9 12
alors que je voudrais que ce soit
seq_4 6 10
seq_1 6 10
seq_1 16 20#avoir indiqué seq1
seq_3 0 0
seq_2 9 12
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| while( my $ligne=<SEQ>){
my $current_seq;
my $pos_debut = 0;
my $pos_fin = 0;
*
if($ligne =~ /^>(.+)$/){
$current_seq = $1;
print $current_seq."\t";
}
else{
if($ligne =~ /N/){
while($ligne =~ /(N+)/g){
$pos_fin = pos($ligne);
$pos_debut = $pos_fin - length($1) + 1;
print "$pos_debut\t$pos_fin\n";
}
}
else{
print "$pos_debut\t$pos_fin\n";
}
}
} |