Expressions régulières |
1. Les expressions régulières 2. Principe de l'algorithme de BLAST |
3. PHI-blast ("Pattern Hit Initiated-Blast") 4. Liens Internet et références bibliographiques |
1. Les expressions régulières Elles sont aussi appelées expressions rationnelles (en anglais : "regular expressions", abrégé "regex", abréviation re). C'est un moyen d'écrire de manière "compacte" un ensemble (qui peut-être extrêmement vaste) de séquences de caractères : par exemple des séquences de nucléotides ou d'acides aminés. Voir l'exemple des toxines de serpent. L'écriture des expressions régulières suit des règles précises et utilise également des caractères spéciaux dotés, les métacaractères, qui permettent d'effectuer des opérations de recherche sophistiquées d'occurences. Considérons un résultat d'alignement de séquences multiples mettant en exergue un motif : On peut "résumer" les séquences qui composent ce motif avec l'expression régulière [AY]-x-H-x(4)-{DE} (figure ci-dessus). Elle se traduit de la manière suivante :
Voir un cours sur le langage Python et les expressions régulières. |
Il existe de nombreux opérateurs (ou métacaractères) pour les expressions régulières. En voici quelques exemples.
Les métacaractères "*", "+" , "{ }" et "?" sont des opérateurs de quantification ou quantificateur.
Le méta-caractère "\" (back-slash) est utilisé comme caractère d'échappement. L'opérateur "\w" signifie tout caractère alpha-numérique : équivaut à [_A-Za-z0-9]. L'opérateur "\d" signifie que la chaîne de caractères est composé uniquement de chiffre : équivaut à [0-9]. Illustration L'expression régulière ^ATG[ATGC]{30,1000}A{5,10}$ se traduit par :
C'est l'expression la plus "simple" pour traduire une séquence d'ARN messager. |
Expressions régulières et programmes On retrouve les expressions régulières dans un très grand nombre de langages de programmation : Perl, Python, PHP, javascript, Ruby, R, XML, ... Par exemple :
Ci-dessous : exemple d'un programme très simple (langage Python) qui recherche l'expression régulière GA[ATGC]{3}AC dans une séquence nucléotidique (variable "sequenceADN") avec le module Python "re" qui régit l'utilisation des expressions régulières : import re # Module "re" (regular expression) de Python sequenceADN = "ATGACGTACGTACTCAGACGTACGGGTTGACGTACAG" resultat = re.search(r"GA[ATGC]{3}AC",sequenceADN) # La méthode "search" attend 2 paramètres : # - l'expression régulière (ou motif) à rechercher # - la chaîne de caractères (ici la variable "sequenceADN") dans laquelle on recherche ce motif # On stocke le résultat dans la variable "resultat" print(resultat) # Affichage du résulat de la recherche du motif Le résultat de l'exécution de ce script est GACGTAC. Avec d'autres expressions régulières et d'autres méthodes, on peut dénombrer le nombre d'occurences, leurs positions dans la chaîne de caractères et bien d'autres propriétés. |
Expressions régulières et bases de données PROSITE est une base de données de motifs qui utilisent les expressions régulières. Exemple (PDOC00245 - "Snake toxins signature") :
Voir la syntaxe des expressions régulières PROSITE. ScanProsite est un programme qui permet d'analyser des séquences de protéines de l'utilisateur pour y détecter des concordances avec la collection de motifs contenus dans la base de données PROSITE ou par rapport à des modèles définis par l'utilisateur. Trois options d'analyse sont proposées :
|
BLAST ("Basic Local Alignment Search Tool", 1990) recherche des régions de similarité locale entre une séquence requête (utilisateur) et des séquences (nucléotides ou acides aminés) contenues dans une base de données.
|
Principe de l'algorithme du programme BLAST Soit la séquence requête ("query") arbitraire d'acides aminés (code à 1 lettre) suivante : ARGHLTFYIFQLM 1ère étape
Pour chacun de ces mots, une liste de mots similaires est créée à l'aide d'une matrice de substitution choisie par l'utilisateur (section "Parameters" de BLAST). Cette matrice permet de calculer un score élémentaire pour la substitution d'un acide aminé par un autre à chaque position comparée. Par exemple, la comparaison du mot TFY avec le mot TDY donne avec la matrice de substitution PAM 250 (voir ci-dessous) :
Si la valeur de la somme des scores élémentaires est supérieure à une valeur appelée score seuil ("threshold", section "Parameters" de BLAST), le mot est conservé dans la liste. Par exemple :
|
2ème étape
3ème étape
Finalement, le fragment le plus long mis en évidence de la séquence de la base de données (ce peut être la séquence entière) s'appelle un "High Scoring Pairs" (HSP). Par exemple : Source : N. Gaedeke - Max Plant Institute |
La matrice de substitution PAM 250 Une faible valeur dans la matrice indique que l'acide aminé considéré peut être remplacé par un autre (exemple : le tryptophane W remplacé par la cystéine C : -8) et donc que cette partie des séquences est faiblement homologue. Au contraire, une valeur élevée indique une région présentant une forte homologie des séquences. |
A | R | N | D | C | Q | E | G | H | I | L | K | M | F | P | S | T | W | Y | V | |
A | 2 | |||||||||||||||||||
R | -2 | 6 | ||||||||||||||||||
N | 0 | 0 | 2 | |||||||||||||||||
D | 0 | -1 | 2 | 4 | ||||||||||||||||
C | -2 | -4 | -4 | -5 | 4 | |||||||||||||||
Q | 0 | 1 | 1 | 2 | -5 | 4 | ||||||||||||||
E | 0 | -1 | 1 | 3 | -5 | 2 | 4 | |||||||||||||
G | 1 | -3 | 0 | 1 | -3 | -1 | 0 | 5 | ||||||||||||
H | -1 | 2 | 2 | 1 | -3 | 3 | 1 | -2 | 6 | |||||||||||
I | -1 | -2 | -2 | -2 | -2 | -2 | -2 | -3 | -2 | 5 | ||||||||||
L | -2 | -3 | -3 | -4 | -6 | -2 | -3 | -4 | -2 | 2 | 6 | |||||||||
K | -1 | 3 | 1 | 0 | -5 | 1 | 0 | -2 | 0 | -2 | -3 | 5 | ||||||||
M | -1 | 0 | -2 | -3 | -5 | -1 | -2 | -3 | -2 | 2 | 4 | 0 | 6 | |||||||
F | -4 | -4 | -4 | -6 | -4 | -5 | -5 | -5 | -2 | 1 | 2 | -5 | 0 | 9 | ||||||
P | 1 | 0 | -1 | -1 | -3 | 0 | -1 | -1 | 0 | -2 | -3 | -1 | -2 | -5 | 6 | |||||
S | 1 | 0 | 1 | 0 | 0 | -1 | 0 | 1 | -1 | -1 | -3 | 0 | -2 | -3 | 1 | 3 | ||||
T | 1 | -1 | 0 | 0 | -2 | -1 | 0 | 0 | -1 | 0 | -2 | 0 | -1 | -2 | 0 | 1 | 3 | |||
W | -6 | 2 | -4 | -7 | -8 | -5 | -7 | -7 | -3 | -5 | -2 | -3 | -4 | 0 | -6 | -2 | -5 | 17 | ||
Y | -3 | -4 | -2 | -4 | 0 | -4 | -4 | -5 | 0 | -1 | -1 | -4 | -2 | 7 | -5 | -3 | -3 | 0 | 10 | |
V | 0 | -2 | -2 | -2 | -2 | -2 | -2 | -1 | -2 | 4 | 2 | -2 | 2 | -1 | -1 | -1 | 0 | -6 | 2 | 4 |
Choix de la base de données de séquences de protéines à fouiller lors de l'utilisation de BLAST |
|
Base de données | Description |
Non-redundant protein sequences (nr) (≈ 884 millions séquences) |
Séquences non redondantes issues de la traduction des séquences codantes ("CDS translations") de GenBank + séquences de la PDB + séquences de SwissProt + séquences de PIR + séquences de PRF à l'exclusion des échantillons environnementaux des projets de séquençage de génomes complets ("whole genome sequencing", WGS). |
RefSeq Select proteins (refseq_select) (≈ 83 millions séquences) |
Séquences de NCBI Reference Sequence Database |
Reference proteins (refseq_protein) (≈ 389 millions séquences) |
Séquences de NCBI Protein Reference Sequences |
Model Organisms (landmark) (≈ 500.000 séquences) |
Séquences correspondant aux protéomes issus de plusieurs dizaines de génomes couvrant une large gamme taxonomique. |
UniProtKB / Swiss-Prot (swissprot) (≈ 484.000 séquences) |
Séquences non redondantes issues de UniProtKB/SwissProt. |
Patented protein sequences (pataa) (> 3,6 millions séquences) |
Séquences de protéines dérivées de la division des brevets de GenBank. |
Protein Data Bank proteins (pdb) (≈ 170.000 séquences) |
Séquences de protéines dérivées des données de structures tridimensionnelles de la Protein Data Bank. |
Metagenomic proteins (env_nr) (≈ 11 millions séquences) |
Séquences de protéines dérivées de données métagénomiques WGS (env_nr). |
Transcriptome Shotgun Assembly proteins (tsa_nr) (> 11,8 millions séquences) |
Séquences de protéines dérivées de l'assemblage des séquences du transcriptome. |
Aller à l'interface de BLAST. |
Exemple d'un résultat issu d'une recherche avec BLAST Alignement local entre la séquence requête ("Query") et l'une des séquences ("Sbjct") trouvées dans la base de données fouillée (N° d'accession : XP_009417953).
La valeur "Expect" ou "E-value"
Le paramètre "Expect threshold" (seuil de signification statistique, "statistical significance threshold")
Si la signification statistique attribuée à une concordance est supérieure à la valeur du paramètre "Expect threshold", cette concordance n'apparaît pas dans les résultats. |
3. PHI-BLAST ("Pattern Hit Initiated-BLAST") C'est une variante du programme BLAST qui utilise les expressions régulières (dans la syntaxe PROSITE) pour décrire une courte séquence consensus appelée patron ("pattern").
PHI-BLAST est adapté pour détecter des séquences de protéines qui :
Aller à PHI-BLAST : entrer le numéro d'accession 2NBT_A et le motif G-C-x(1,3)-C-P-x(8,10)-C-C-x(2)-[PDEN] |
4. Liens Internet et références bibliographiques | |
Regular Expressions Python regular expressions |
|
Altschul et al. (1990) "Basic local alignment search tool" J. Mol. Biol. 215, 403 - 410 Karlin & Altschul (1990) "Methods for assessing the statistical significance of molecular sequence features by using general scoring schemes" PNAS 87, 2264 - 2268 Altschul et al. (1997) "Gapped BLAST and PSI-BLAST: A new generation of protein database search programs" Nuc. Acids Res. 25, 3389 - 3402 |