Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 3'-TGAACGTACACTTTCCGGA-5' x|x||||x|| 5'-GCGAAATAAGCATGCAAGT-3'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 3'-GGTACGTACATAATCCGTGTG-5' |||||||x|| 5'-AGGCCTACCACATGCAAGT-3'
J'aimerais compter le nombre de pipes successifs qui commence au début.
Pour le premier exemple, ce serait donc 0 et pour le second, ce serait 7.
Ce code fonctionne, avec ${$h_ref}{'Seq1'} contenant la première ligne (3'-GGTACGTACATAATCCGTGTG-5') et ${$h_ref}{'Pipes'} contenant la ligne des pipes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 if (${$h_ref}{'Seq1'} =~ m/^\s+3/){ # on compte le nombre de pipes successifs en 3' my ($pipes) = ${$h_ref}{'Pipes'} =~ m/^\s+(\|*)/; my @array_pipes = split '', $pipes; if (int(@array_pipes) >= $pipes_threshold){ ... } }
Il doit y avoir moyen de faire plus simple, je pense à quelque chose de ce genre, mais il ne faut pas compter les pipes à l'extrémité droite après la croix :
Il faudrait donc une regexp qui recherche individuellement les pipes du début et qui s'arrête quand on trouve une croix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part my $count = () = ${$h_ref}{'Pipes'} =~ m/[\s\|](\|)/g;
Avez-vous une idée pour la regexp ou une autre solution qu'une regexp?
Partager