Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
use strict;
my $seq = '..............AGCT...TGT.AAGTCG...TTTT.......';
my ($depart, $fin) = ($seq =~ /^(\.*)[A-Z].*[A-Z](\.*)$/i);
my $index_depart = length($depart);
my $index_fin = length($seq) - length($fin) - 1;
print "$depart => $index_depart\n $fin => $index_fin\n\n";
 
my @array_seq = split ('', $seq);
my $premier_nuc = $array_seq[$index_depart];
my $dernier_nuc = $array_seq[$index_fin];
print "premier nucléotide = $premier_nuc\ndernier nucléotide = $dernier_nuc\n\n";
J'aimerais récupérer la position du premier et du dernier nucléotide de ma séquence. N'y aurait-il pas moyen d'améliorer mon code?
En tenant compte du fait que mes séquences font environ 5000 caractères (points compris), cette façon de procéder est-elle la meilleure?

Je me demandais aussi au niveau temps de calcul de l'expression régulière si je mets [A-Z] le programme va t'il devoir faire 26 tests ou y a-t'il un code spécial dans l'écriture binaire des lettres permettant de directement voir si c'est une lettre? Peut-être est ce mieux que je mette [ATCGN] vu que je sais qu'aucune autre lettre n'est présente dans mes séquences.


Merci pour vos conseils,