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é "regexp", acronyme re).
L'écriture des expressions régulières suit des règles précises et utilise des caractères spéciaux (appelés métacaractères) qui agissent comme des opérateurs. Par exemple, l'expression régulière [AY]-x-H-x(4)-{DE} (figure ci-dessus) se lit :
Voir un cours sur le langage Python et les expressions régulières. |
Il existe de nombreux 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. Le métacaractère "\w" signifie tout caractère alpha-numérique : équivaut à [_A-Za-z0-9]. Le métacaractère "\d" signifie que la chaîne de caractères est composé uniquement de chiffre : équivaut à [0-9]. Exemple : 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 : Python, PHP, Perl, javascript, Ruby, R, XML, ... Par exemple :
Ci-dessous : exemple d'un programme très simple (langage Python) qui recherche une expression régulière (GA[ATGC]{3}AC) dans une séquence nucléotidique (variable "sequenceADN") avec le module "re" : 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 est : GACGTAC |
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. 3 options d'analyse sont proposées :
|
2. Principe de l'algorithme du programme BLAST BLAST ("Basic Local Alignment Search Tool") recherche des régions de similarité locale entre des séquences nucléotidiques ou d'acides aminés.
|
Description schématique de l'algorithme initial de BLAST L'algorithme BLAST utilise une heuristique moins précise que l'algorithme de Smith-Waterman mais il est beaucoup plus rapide. La vitesse et la précision élevée de BLAST ont été les principales innovations de ce programme. Soit une séquence requête ("Query") arbitraire d'acides aminés (code à 1 lettre) : ARGHLTFYIFQLM 1ère étape
Si la valeur de la somme des scores élémentaires est supérieure à une valeur appelée score seuil, 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 |
Voir un cours sur les matrices de substitution. |
Choix de la base de données de séquences de protéines à fouiller lors de l'utilisation de BLAST |
|
Base de données (valeurs en Janvier 2022) | Description |
Non-redundant protein sequences (nr) (> 453 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) (> 55 millions séquences) |
Séquences de NCBI Reference Sequence project |
Reference proteins (refseq_protein) (> 213 millions séquences) |
Séquences de NCBI Reference Sequence project |
Model Organisms (landmark) (> 426.000 séquences) |
Séquences correspondant aux protéomes issus de 27 génomes couvrant une large gamme taxonomique. |
UniProtKB / Swiss-Prot (swissprot) (> 478.000 séquences) |
Séquences non redondantes issues de UniProtKB/SwissProt. |
Patented protein sequences (pataa) (> 3,1 millions séquences) |
Séquences de protéines dérivées de la division des brevets de GenBank. |
Protein Data Bank proteins (pdb) (> 134.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) (> 10,6 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) (> 8,3 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")
Ce paramètre se trouve en bas de l'interface de BLAST, dans la partie "Algorithm parameters", onglet "General Parameters" .
|
3. PHI-BLAST ("Pattern Hit Initiated-BLAST") C'est un programme de recherche par comparaison de séquences.
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 |