Bonjour,
Voici mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 my $sql0 = <<"SQL0"; SELECT accession, organism, sequence FROM ma_table WHERE sequence REGEXP 'TGTAGACGTGACGATGTAACAC[ATCG]{100,}' OR sequence REGEXP '[ATCG]{100,}TGATACCGATCCCTAGAACAGAT' SQL2$sequence contient TGTAGACGTGACGATGTAACAC ou TGATACCGATCCCTAGAACAGAT ou les 2 polynucléotides séparés par 100 à 250 nucléotides.
Code : Sélectionner tout - Visualiser dans une fenêtre à part my ($subseq) = $sequence =~ m/((?:TGTAGACGTGACGATGTAACAC)?[ATCG]{100,250}(?:TGATACCGATCCCTAGAACAGAT)?)/;
J'aimerais récupérer des sous-séquences de $sequence dont les 2 polynucléotides (TGTAGACGTGACGATGTAACAC et TGATACCGATCCCTAGAACAGAT) seraient les bornes. Si un seul polynucléotide est présent on récupère ce qu'il est possible de récupérer en gardant les même bornes.
Le problème est que si je fais une recherche gourmande, je récupère d'office 250 nucléotides après le premier polynucléotide (ce qui peut dépasser le second polynucléotide) et dans le cas contraire ([ATCG]{100,250}?), je n'en récupère que 100 et le second polynucléotide est laissé de côté.
Comment puis-je faire en une seule regexp?
Merci pour votre aide,
Partager