Recherche pour un ensemble de séquences.
Le module de gestion des arguments argparse de Python
d’étendre le travail du TP3 pour la recherche d’occurrences d’une PFM pour un esnemble de séquences et non plus une seule séquence
Recherche pour un ensemble de séquences
Dans la suite du projet nous allons rechercher les occurrences de matrices dans un ensemble de séquences.
Ajouter à utils.py une fonction download_promotors qui, étant donné une liste d’identifiants de mRNA, une taille de séquence promotrice, un répertoire d’enregistrement (. par défaut), télécharge dans des fichiers séparés les séquences promotrices de ces mRNA au format FASTA. Les noms des fichiers seront les nom des identifiants mRNA suivi de la longueur du promoteur (par exemple, le promoteur de taille 100 de NM_007389 sera stocké dans le fichier NM_007389_100.fa).
La construction d’un chemin valide se fait grâce à os.path.join (voir documentation de os.path)
Cette fonction sera utile dans les tests des fonctions suivantes car elle évitera de réaliser des requêtes trop fréquentes au NCBI (le NCBI pourrait réduire votre accès si il estime qu’il y a trop de requêtes).
Mettez en œuvre la fonction download_promotors en téléchargeant les promoteurs des mRNA suivants : NM_007389, NM_079420, NM_001267550, NM_002470, NM_003279, NM_005159, NM_003281, NM_002469, NM_004997, NM_004320, NM_001100, NM_006757 dans le répertoire data.
Réalisez dans le module pwm.py une fonction scan_all_sequences qui, à partir d’une PSSM (un objet `PositionSpecificScoringMatrix), d’une liste de séquences (des objets Biopython Bio.Seq), retourne les couples position/score d’occurrence pour l’ensemble des séquences. Réfléchissez à la façon de structurer ces données pour pouvoir les exploiter ensuite.
Réalisez dans le module pwm.py une fonction score_window qui, étant donné un résultat de scan_all_sequences et des coordonnées début/fin dans les séquences, retourne le score de la fenêtre.
Réalisez dans le module pwm.py une fonction best_window qui, étant donné un résultat de scan_all_sequences et une taille de fenêtre, retourne les coordonnées de la fenêtre de meilleur score.
Testez en cherchant la meilleure fenêtre pour la liste des mRNA donnée ci-dessus pour la matrice MA_0114.
Le module de gestion des arguments argparse de Python
Dans l’objectif de livrer à la fin de l’UE un programme Python de bonne qualité, nous vous proposons d’explorer le module argparse de Python permettant de traiter très simplement les paramètres de la ligne de commande
En vous inspirant de ce tutoriel mettez en place un script Python test_args.py qui prenne en option :
-t pour le seuil de score (option longue --threshold, pas de valeur par défaut) ;
-l pour la longueur du promoteur (option longue --promotor-length, par défaut 1000) ;
-w pour la longueur de la fenêtre glissante (option longue --window-size, par défaut 40).
Les identifiants des mRNA seront donnés en argument (et pas en option). Le script affichera simplement les valeurs des options et la liste des arguments.
Ce script préfigure le script de rendu final.
- Un environement virtuel au nom de
virtual_env
a ete cree pour filtrer que les packages necessaires pour ce projet:
pip install virtualenv
python -m virtualenv virtual_env
- Pour activer l'environement virtuel:
.\virtual_env\Scripts\activate
- Apres avoir installer tout les packages necessaires. Pour les entregistrer dans un fichier
requirements.txt
pip freeze > requirements.txt
- Donc pour installer les packages necessaires il suffit d'executer la commande:
pip install -r requirements.txt
Département informatique – Université de Lille
- Rendu intermédiaire
- Calcul de score à partir de matrices de fréquences (repris du TP2)
- Mise en place de fonctions utiles pour manipuler les PWM
- Script pour le rendu intermédiaire
- Recherche pour un ensemble de séquences
- Le module de gestion des arguments
argparse
de Python
L’objectif de ce TP est :
- de faire ou finaliser la partie du TP2 pour la recherche d’occurrences d’une PFM
- recherche des occurrences et stockage d’une PWM pour une séquence
- rendu intermédiaire
- calcul de score d’une fenêtre glissante
À la fin de la séance (i.e. avant 17h00), vous devez avoir réalisé un script python, qui s’exécute en ligne de commande, prend en argument :
- un fichier contenant une matrice JASPAR ;
- un identifiant Genbank d’un mRNA ;
- une taille pour la séquence promotrice ;
- un seuil de score.
et produit sur la sortie standard une liste d’occurrences dont le score est supérieur au seuil. Typiquement :
Ahr::Arnt 71 6.198700428009033
Ahr::Arnt -745 5.744134426116943
Ahr::Arnt 444 6.198700428009033
Ahr::Arnt 446 6.198700428009033
Ahr::Arnt -388 10.591017723083496
Ahr::Arnt 920 6.198700428009033
(voir la section dédiée plus bas)
Nous allons maintenant utiliser Biopython pour trouver les endroits correspondant à des sites de fixation du facteur de transcription.
Nous allons travailler à partir du fichier que vous avez téléchargé la semaine dernière sur JASPAR, à mettre dans votre répertoire data/
. Le module motifs
de Biopython est celui qui nous intéressera pour rechercher les occurrences de PSSM. Chargez-le.
Le chargement de ce type fichier (matrices de fréquences) se fait avec la méthode read
du module motifs
(documentation), en lui précisant que le format est jaspar
.
- 1. Combien de matrices ont été lues ? => On a lu 1 matrices
Pour chaque entrée, la matrice est accessible via l’attribut counts
, de type FrequencyPositionMatrix
(documentation).
- 2. De quelle manière allez-vous pouvoir obtenir une matrice poids-position (position-weight matrix, PWM) ? Quelle valeur mettez-vous pour les pseudo-poids (pseudocounts) ? (souvenez-vous du cours…) => 0.01
Le résultat que vous obtenez doit dont être une PWM, de type PositionWeightMatrix
(documentation).
- 3. Comment obtenir une PSSM à partir de cette PWM ?
La PSSM obtenue est de type PositionSpecificScoringMatrix
(documentation).
- 4. Comment rechercher les occurrences d’une PSSM dans une séquence ?
Toutes les fonctions seront positionnées dans un fichier pwm.py
.
-
1. Réalisez une fonction
pwm2pssm
qui, à partir d’une matrice de fréquence JASPAR (un objetFrequencyPositionMatrix
) et d’un pseudo-poids passés en paramètre, retourne la PSSM correspondante (un objetPositionSpecificScoringMatrix
). -
2. Réalisez une fonction
scan_sequence
qui, à partir d’une PSSM (un objetPositionSpecificScoringMatrix
), d’une séquence (un objet BiopythonBio.Seq
), et d’un seuil de score passés en paramètre, retourne une liste de couples position, score d’occurrence.
Il est temps maintenant de consolider ce qui a été fait la semaine dernière et cette semaine.
-
1. Réalisez le script
scan_pwm.py
pour le rendu intermédiaire (le pseudo-poids sera figé à la valeur 0.1). Bien sûr ce script importera les modulespwm.py
etutils.py
. -
2. Pour tester votre script vous pourrez faire des recherches les matrices
MA0083, MA0114, MA0056
surNM_007389
avec un seuil de score positionné à -2.0.python src/scan_pwm.py MA0083.jaspar NM_007389 6 -2
-
3. Que signifie une position d’occurrence négative ? Cela signifie que la séquence est plus loin de la distance moyenne moyenne
-
4. En lien avec la question précédente, posez-vous la question de l’endroit où se trouve, vis-à-vis du début du gène, la position d’occurrence d’une matrice fournie par votre script.
Département informatique – Université de Lille
L’objectif de ce TP est :
- d’automatiser avec Python ce qui a été fait la semaine dernière
- d’avoir du code permettant de récupérer les séquences en amont d’un gène
- de commencer à effectuer le calcul de score pour une PWM
Biopython est module Python qui offre des facilités pour faire des analyses bioinformatiques. Ici nous n’allons utiliser qu’une partie de Biopython :
- la lecture dans un fichier au format FASTA ou Genbank
- la représentation des séquences
- l’utilisation de l’API du NCBI
La documentation de Biopython ainsi que le tutorial and cookbook pourront vous aider dans ce TP et la suite du travail à effectuer.
-
Pour commencer, récupérez depuis la banque Nucleotide du NCBI l’enregistrement aux formats FASTA et Genbank correspondant à la séquence ARN étudiée la semaine dernière, dont le numéro d’accession est
NM_007389
. -
Enregistrez ces fichiers FASTA et Genbank dans un répertoire
data/
sur votre dépôt. -
Vous allez commencer par faire des essais dans un intepréteur Python afin de manipuler ces fichiers. La lecture et l’écriture de fichier se fait avec le module
SeqIO
de Biopython. Chargez ce module, puis chargez le fichier FASTA et le fichier Genbank, chacun dans une variable différente (fasta
etgenbank
) grâce à la méthodeSeqIO.read
(voir sa documentation).
Le type renvoyé par SeqIO.read
est un SeqRecord
(documentation).
- Déterminez comment obtenir les résultats suivants et mettez vos réponses dans un fichier
TP2.md
à la racine de votre dépôt.
-
- En consultant la documentation, identifiez comment récupérez la séquence depuis ces entrées.
-
- Comment obtenir la séquence sous forme d’une
string
Python (de typestr
) ? Vérifiez que les séquences sont bien identiques entre l’entrée Genbank et l’entrée FASTA.
- Comment obtenir la séquence sous forme d’une
-
- Comment obtenir la séquence complémentaire inverse (reverse complement en anglais) ?
-
- Des attributs existent pour récupérer les annotations ou les features des entrées. Quels sont ces attributs ? Existent-ils aussi bien pour l’entrée FASTA que pour l’entrée Genbank ? Pourquoi ?
-
- Intéressez-vous à la première feature. Comment peut-on accéder à ses positions de début et de fin ?
-
Vous allez maintenant réaliser certaines fonctions, qui s’appuient sur votre compréhension des
SeqRecord
qui pourront vous être utiles pour la suite. -
Créez un répertoire
src/
à la racine de votre dépôt et dans un fichierutils.py
ajoutez la fonction suivante :-
find_cds
, qui prend en paramètre unSeqRecord
et qui renvoie une liste des couples de positions de début et de fin des CDS contenues dans cette séquence (pour récupérer les positions de début et fin, voir la documentation deFeatureLocation
). La liste sera vide si leSeqRecord
n’a pas de CDS.
-
Nous nous sommes ici intéressés à la méthode SeqIO.read
qui lit une entrée. Si le fichier contient plusieurs entrées, il faudra utiliser la méthode SeqIO.parse
qui permet d’itérer sur tous les SeqRecord
contenus dans le fichier.
La semaine dernière vous avez utilisé l’API du NCBI. Plus précisément vous avez eu recours à esearch
, efetch
et elink
en accédant directement à certaines URL. Nous allons faire la même chose, mais en utilisant le module Biopython, ce qui permet de récupérer des résultats sous forme d’objets Biopython qui peuvent être aisément manipulés.
Dans Biopython, c’est le module Entrez
, que vous devrez importer qui permet d’interroger l’API du NCBI (documentation). Un préalable est de renseigner votre adresse email afin de pouvoir utiliser l’API :
Entrez.email = "email@example.org"
Comme vous pouvez le voir dans la documentation, le module Entrez
possède des méthodes esearch
, efetch
, elink
-
- Utilisez la méthode
efetch
pour récupérer l’entréeNM_007389
au format Genbank puis au format FASTA. Cette méthode retourne un handle qui peut ensuite être passé à la méthodeSeqIO.read
(à la place du nom de fichier).
- Utilisez la méthode
-
- Vérifiez que les séquences des entrées obtenues sont bien identiques
-
- En utilisant votre méthode
find_cds
sur le résultat au format Genbank, vérifiez que la CDS est bien identique à celle identifiée dans la première partie, avec le fichier Genbank.
- En utilisant votre méthode
Comme la semaine dernière, nous allons utilisez elink
pour connaître l’identifiant du gène correspondant à l’ARNm qu’on étudie. Cette fois nous utiliserons la méthode elink
du module Entrez
.
-
- Utilisez la méthode
elink
pour récupérer le gène correspondant à l’entréeNM_007389
. Ici le résultat n’est pas exploitable parSeqIO.read
. Regardez dans la documentation de la méthodeelink
pour savoir comment obtenir un objet exploitable à partir du résultat de la méthodeelink
.
- Utilisez la méthode
-
- Dans le résultat obtenu, identifiez comment trouver l’identifiant du gène.
-
- Dans le fichier
utils.py
réalisez une méthodemrna_to_gene
qui prenne un numéro d’accession d’un ARNm et qui renvoie l’identifiant du gène correspondant (ou qui lève une exceptionValueError
en cas de problème).
- Dans le fichier
-
- À partir de l’identifiant du gène obtenu, utilisez la méthode
esummary
(documentation) pour pouvoir déterminer le numéro d’accession du chromosome (commençant parNC_
) et les positions chromosomiques du gène.
- À partir de l’identifiant du gène obtenu, utilisez la méthode
-
- À partir de l’identifiant de ce chromosome, déterminez comment obtenir la séquence en amont du gène. Attention ne téléchargez pas tout le chromosome, mais uniquement la portion d’intérêt (comme la semaine dernière en utilisant
seq_start
etseq_stop
).
- À partir de l’identifiant de ce chromosome, déterminez comment obtenir la séquence en amont du gène. Attention ne téléchargez pas tout le chromosome, mais uniquement la portion d’intérêt (comme la semaine dernière en utilisant
-
- Dans le fichier
utils.py
réalisez une fonctionupstream_gene_seq
qui, à partir d’un identifiant de gène et d’une longueur retourne un objet BiopythonBio.Seq
correspondant à la séquence ADN amont de ce gène de la longueur demandée (attention au brin sur lequel se trouve le gène).
- Dans le fichier
- Pour vérifier le bon fonctionnement de votre fonction, recherchez la séquence obtenue sur le site Ensembl, avec l’outil Blat (pensez à sélectionner le bon organisme).
Nous allons maintenant utiliser Biopython pour trouver les endroits correspondant à des sites de fixation du facteur de transcription.
- Nous allons travailler à partir du fichier que vous avez téléchargé la semaine dernière sur JASPAR, à mettre dans votre répertoire
data/
. - Le module
motifs
de Biopython est celui qui nous intéressera pour rechercher les occurrences de PSSM. Chargez-le.
Le chargement de ce type fichier (matrices de fréquences) se fait avec la méthode read
du module motifs
(documentation), en lui précisant que le format est jaspar
.
-
- Combien de matrices ont été lues ?
Pour chaque entrée, la matrice est accessible via l’attribut counts
, de type FrequencyPositionMatrix
(documentation).
-
- De quelle manière allez-vous pouvoir obtenir une matrice poids-position (position-weight matrix, PWM) ? Quelle valeur mettez-vous pour les pseudo-poids (pseudocounts) ? (souvenez-vous du cours…)
Le résultat que vous obtenez doit dont être une PWM, de type PositionWeightMatrix
(documentation).
-
- Comment obtenir une PSSM à partir de cette PWM ?
La PSSM obtenue est de type PositionSpecificScoringMatrix
(documentation).
-
- Réalisez une fonction qui, à partir d’une matrice de fréquence et de pseudo-poids, renvoie la PSSM correspondante.
-
- Comment rechercher les occurrences d’une PSSM dans une séquence ?
Département informatique – Université de Lille
Plusieurs banques de données internationales centralisent les séquences biologiques obtenues par des scientifiques autour du monde.
Nous allons ici nous concentrer sur le NCBI (National Center for Biology Information), le centre de bioinformatique des États-Unis d’Amérique. Ce centre pointe vers de nombreuses ressources : des séquences ADN ou ARN, des séquences protéiques, des articles scientifiques, des livres…
Ici nous allons aller sur le site qui correspond aux séquences nucléotidiques (ADN ou ARN).
Dans le champ de recherche, entrez CHRNA1
. CHRNA1, est le nom d’un gène qui code une protéine réceptrice de l’acétylcholine (un neurotransmetteur).
Une fois la recherche validée, vous devez obtenir quelques milliers de résultats. Ce qui est beaucoup. Nous allons les filtrer pour obtenir ce qui nous intéresse.
-
- Parmi les organismes disponibles, sélectionner la souris (Mus musculus), sur la droite de la page, dans Top organisms, cliquez sur More… pour voir plus d’organismes (s'il n'apparaît pas cliquez sur All other taxa). Constatez que cela modifie votre champ de recherche pour y ajouter cette contrainte.
-
- Nous voulons nous intéresser ici à un ARN messager (ARNm, ou mRNA en anglais) du gène CHRNA1. Ne conservez que les ARNm en choisissant l’entrée correspondante (à gauche de la page).
-
- Enfin, ne conservez que les résultats provenant de RefSeq (à gauche de la page), qui ne contient que des données vérifiées sans doublon.
- Il ne reste plus qu’un seul résultat, c’est celui qui nous intéresse. => Ici
Nous n’arrivons pas toujours à un seul résultat avec cette démarche, il peut par exemple y avoir plusieurs ARNm pour un même gène, ou alors le nom du gène peut être présent sans que la molécule vienne de ce gène, dans ce cas il aurait fallu raffiner la recherche en précisant que CHRNA1
était le nom du gène, en notant CHRNA1[gene name]
.
Une entrée possède de nombreuses informations la décrivant mais également détaillant comment la séquence a été identifiée. Le format utilisé pour cette description est un format texte appelé GenBank (documentation).
Sur la première ligne, commençant par LOCUS
on a notamment:
- l’identifiant de cet ARN messager (commençant par
NM_
) => NM_007389, - sa taille en nucléotides => 4320,
- le type de molécule => mRNA.
Un peu plus bas, la ligne commençant par ORGANISM
confirme qu’il s’agit bien d’une séquence identifiée chez des souris. Ensuite de nombreuses lignes correspondent aux références des articles scientifiques ayant participé à la mise en évidence de cet ARN messager et de ses caractéristiques.
Descendez jusqu’à la ligne qui commence par FEATURES
. Un certain nombre d’informations sont visibles. Identifiez :
-
- Le chromosome où le gène codant cet ARNm est présent => /chromosome="2"
-
- Un autre nom pour le gène CHRNA1 => /gene_synonym="Achr-1; Acra; AI385656; AI608266"
-
- L’identifiant numérique de ce gène => /db_xref="GeneID:11435"
-
- Le nombre d’exons => 9: (1..94; 95..240; 241..285; 286..395; 396..591; 592..829; 830..1053; 1054..1293; 1294..4320)
Enfin la séquence ADN de l’ARNm est présente à la fin du fichier. La séquence est écrite sous forme de blocs de 10 nucléotides séparées par une espace, mais ce format n’est pas le plus simple pour la manipulation des séquences.
Nous allons visualiser cette entrée sous un autre format.
- Revenez tout en haut de la page.
- Cliquez à l’endroit où se trouve un lien GenBank (au dessus du nom de l’ARNm) et choisissez le format Fasta (text). => Ici, et pour le télécharger ici
- À quelle position commence et se termine la séquence de la protéine (sur fond rouge, dont le nom commence par
NP_
) ? => 52..1,425 (elle va coder la proteine) - Pourquoi la protéine ne recouvre pas tout le gène ? => Le gène debuté sa séquence et la termine en 1..4,320 .
Pour que ce gène soit exprimé, ce qui nous intéresse c’est le promoteur du gène qui est en amont de celui-ci. Or pour identifier cette région amont, il faut s’intéresser à la position de ce gène sur le chromosome sur lequel il se trouve.
Dans l’entrée GenBank nous avons identifié le chromosome sur lequel ce gène se trouve. Pour autant nous ne connaissons pas sa position sur le chromosome.
-
Pour cela nous allons utiliser les liens que fait le NCBI entre ces différentes banques de données. Nous sommes actuellement sur la banque de données nucléotides, sur une entrée d’un ARNm, et nous allons nous rendre sur l’entrée qui correspond à ce gène dans la banque Gene.
-
Pour cela cliquer sur Gene dans Related information dans le bandeau de droite. => Ici
-
Sur cette page, trouvez l’identifiant du gène, qui doit être le même que celui relevé précédemment dans les informations de l’entrée GenBank.
Ensuite vous trouverez:
-
- le nom du chromosome => Chromosome 2,
-
- son numéro d’accession (commençant par
NC_
) => NC_000068.8,
- son numéro d’accession (commençant par
-
- et les positions sur celui-ci. => (73393625..73410682, complement)
-
Si nous voulons étudier les positions en amont du gène, quelles positions devons-nous étudier ? (attention au brin sur lequel le gène se trouve) => à partir de la position 73410683
-
Trouvez comment extraire la région se situant 1000 bases en amont du début du mRNA (la séquence promotrice). => (73410683...73411682)
-
La sauvegarder au format Fasta.=> Ici
Nous avons fait tout cela manuellement, mais il est nécessaire d’automatiser cela afin de pouvoir traiter les données automatiquement.
Pour cela le NCBI offre une API.
Cette API peut être utilisée en accédant directement à certaines URL ou, via des packages dans certains langages de programmation.
-
esearch : permet de chercher certains termes dans une base de données (p. ex. https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch/esearch.fcgi?db=MY\_DB&term=MY\_TERM)
-
efetch : permet de récupérer une entrée précise dans une base de données (p. ex. https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch/efectch.fcgi?db=MY\_DB&id=MY\_ACCESSION&rettype=MY\_TYPE&retmode=text)
-
elink : fait un lien entre une entrée dans une base de données et l’entrée correspondante dans une autre base de données (p.ex. https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink/elink.fcgi?dbfrom=MY\_DB\_FROM&db=MY\_DB&id=MY\_ACCESSION)
Renouvelez ce que nous avons fait précédemment mais en utilisant cette API :
-
Effectuez la recherche avec
esearch
(sans les filtres), sur la base de donnéesnucleotide
(attention à bien remplacerMY_DB
etMY_TERM
dans l’URL donnée en exemple). => En executant esearch -
Quel est le format obtenu ? => XML
-
Combien de résultats y a-t-il au total (pas seulement ceux affichés) ? => 2560
-
Afin d’appliquer les mêmes filtres que précédemment il faudra indiquer comme terme de recherche
Chrna1 AND biomol_mrna[PROP] AND refseq[filter] AND "Mus musculus"[Organism]
. => Ici -
Quel est l’identifiant du résultat obtenu ? => 425905338
Utilisez maintenant efetch
pour récupérer l’entrée correspondante dans cette banque de données:
- Récupérez l’entrée au format GenBank (
gb
) => Ici pour gb; - puis FASTA (
fasta
) (ce qui remplaceMY_TYPE
, qui est le type de format de données). => Ici pour fasta
Réessayez en remplaçant l’identifiant par le numéro d’accession de la molécule (commençant par NM_
):
- Obtenez-vous la même chose ? En executant: AVEC NM_007389 on obtient la meme chose.
Enfin utilisez elink
afin de passer de la banque de données nucleotide
à la banque de données gene
, comme précédemment sur le site web:
- Cela nous permettra de connaître l’identifiant du gène. => En executant elink entre nucleotide et gene et NM_007389, nous obtiendrons:
<eLinkResult>
<LinkSet>
<DbFrom>nuccore</DbFrom>
<IdList>
<Id>425905338</Id>
</IdList>
<LinkSetDb>
<DbTo>gene</DbTo>
<LinkName>nuccore_gene</LinkName>
<Link>
<Id>11435</Id>
</Link>
</LinkSetDb>
</LinkSet>
</eLinkResult>
donc le gene id est: 11435
Avec efetch
récupérez les informations, au format GenBank, pour ce gène-là (banque de données gene
).
Cela nous (re)donne:
- le numéro d’accession du chromosome => Annotation: Chromosome 2 NC_000068.8
- et les positions du gène sur le chromosome. => (73393625..73410682, complement)
=> Nous allons executer: `https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch/efectch.fcgi?db=gene&id=11435&rettype=gb&retmode=text
- Utilisez à nouveau
efetch
pour récupérer la séquence en amont de ce gène (pour préciser les positions, il faut utiliserseq_start
etseq_stop
,seq_start
étant supérieur àseq_stop
lorsqu’on est sur le brin anti-sens). => En executant efectch
Comme expliqué en cours, pour que la transcription s’initie il faut que des protéines, les facteurs de transcription, viennent “s’accrocher” en amont du gène, dans la partie promotrice.
Ces protéines reconnaissent des sites spécifiques : les sites de fixation de facteurs de transcription (en anglais Transcription Factor Binding Sites, TFBS). Les motifs de TFBS sont modélisés par des matrices de comptage ou de fréquence. À partir de données récoltées pour un site de fixation (un certain nombre de séquences ADN pour lesquelles on sait qu’elles correspondent à ce site) on a établi un décompte du nombre de lettres à chaque position du site. Une telle modélisation est plus expressive qu’une simple expression régulière qui ne permet pas d’associer une probabilité d’occurrences lorsqu’il y a plusieurs possibilités pour une position. Ces matrices sont nommées PFM (Position Frequency Matrix), PWM (Position Weight Matrix) ou PSSM (Position Specific Scoring Matrix) suivant la donnée qu’elles contiennent. Nous reviendrons sur cette modélisation la semaine prochaine.
Il existe deux ressources principales regroupant des TFBS modélisés par des matrices : Transfac et Jaspar. Nous utiliserons Jaspar car l’accès à Transfac est payant.
Suivez le ‘Jaspar Interactive Tour ’ proposé sur la page d’accueil et répondez aux questions suivantes (nous ne traiterons pas l’étape 10 sur les TFFMs) :
-
combien de matrices modélisent le site de fixation
GATA3
? => 4 -
quelles sont les longueurs des sites
GATA
d’après le modèle ? => 55 -
d’après-vous, pourquoi ce site est nommé GATA ? => .
-
sur combien de séquences la matrice
MA0037.2
a-t-elle été construite ? => AGATAA_GA_GAC -
d’après-vous, que signifie la hauteur des lettres du schéma coloré affiché ? => .
-
Recherchez les matrices modélisant le site
HNF4A
. Choisissez la version qui vous semble la plus appropriée : en correspondance avec l’organisme choisi. -
Grâce à la fonction Scan proposée sur le site et à la séquence promotrice récupérée précédemment, trouvez des occurrences de HNF4 dans le promoteur de
Chrna1
(utilisez la séquence que vous avez téléchargée précédemment). -
Terminez cette partie en téléchargeant l’ensemble des matrices PFM pour les vertébrés contenue dans CORE JASPAR (voir le menu Download).