Usage du code chez les bactéries


1. Récupération de l'ensemble des gènes d'E. coli

Retournez sur la page de composition de requêtes du PBIL. Sélectionnez les options Search for sequences, Nucleotide databank. Ensuite, sélectionnez la banque EMGLib dans le menu déroulant. Composez ensuite la reqête suivante :
    DEFAULT     Species or taxon     Escherichia coli
    AND         Author               Riley
    AND         Type                 CDS 

    List name   ecoli
Plus d'une souche d'E. coli ayant été complètement séquencée, il est nécessaire de ne sélectionner que celle que nous voulons étudier. Comme nous nous intéressons à la souche K12, et que Monica Riley a participé à son séquençage, nous pouvons utiliser son nom d'auteur comme critère de sélection.

Une fois la page de résultats chargée, nous allons modifier la liste des séquences en retirant celles qui sont trop courtes. En effet, des gènes d'une longueur insuffisante peuvent avoir une composition fortement biaisée simplement du fait de variations stochastiques. Pour ce faire, cliquez sur le bouton Modify qui figure au sommet de la page. Sur le document qui apparaît, sélectionnez le lien Select by length. Fixez la longueur de façon à ne retenir que les séquences faisant plus de 150 nucléotides de long :

    Length choice: >150
    List name:     ecoli
Après soumission au moyen du bouton SUBMIT, une nouvelle page, basée sur le modèle de celle qui a été créée précedemment apparaît. Vous constatez que le nombre de séquences codantes obtenu est légèrement inférieur.

2. Récupération d'un ensemble de gènes hautement exprimés

Nous allons maintenant sélectionner un ensemble de gènes d'E. coli dont on sait qu'ils sont hautement exprimés afin d'établir une table de référence d'usage du code pour cet organisme. Cette table de référence nous permettra de calculer les valeurs du Cdon Adaptation Index (CAI). Si un gène quelconque présente une ressemblance avec les gènes de référence, alors il y a de bonnes chances pour que ce gène soit hautement exprimé chez E. coli.

Revenez à la page de composition et construisez la requête suivante :

    DEFAULT     Seq. name list     Escherichia coli
    AND         Keyword            *ribosomal*protein*
    AND NOT     Keyword            rim* 
    AND NOT     Keyword            *methyltransferase*
    
    List name   ecoli-rib
Cette reqête permet de récupérer l'ensemble des gènes codant pour des protéines ribosomiques chez E. coli. L'option Seq. name list permet d'effectuer la recherche dans une liste qui a précédemment été définie plutôt que dans la banque entière. Les deux derniers critères permettent de retirer du jeu de données des gènes qui sont associés aux gènes de protéines ribosomiques (et donc, dont les mots-clés contiennent effectivement ribosomal protein).

3. Calcul du facteur d'adaptation des codons

En utilisant la composition en codons des séquences des gènes de protéines ribosomiques, nous allons tout d'abord calculer l'effectif des 64 codons de ces gènes. Allez sur la page permettant d'effectuer le calcul des fréquences des codons. Au niveau de l'option List name du formulaire, tapez le nom de la liste contenant les noms des séquences de gènes ribosomiques (ecoli-rib).

Le résultat retourné par le formulaire est une page de texte sur laquelle figurent plusieurs informations. Tout d'abord est donné le nom du fichier contenant la table de fréquence des codons que vous venez de calculer (ecoli-rib.dat). Ce nom est construit à partir du nom de la liste contenant les séquences auquel à été rajouté l'extension .dat.

Par ailleurs, un certain nombre de liens sont accessibles. Le lien Table permet d'accéder au contenu du fichier ecoli-rib.dat, le lien list contient la liste des séquences des gènes, le lien number donne le nombre de gènes figurant dans la liste. Enfin, le lien form peut être laissé de côté pour l'instant.

Allez maintenant sur la page permettant de calculer le facteur d'adaptation des codons. La définition de ce facteur vous a été donnée en cours. Le formulaire vous demande le nom de la table de fréquence des codons à utiliser. Rentrez le nom de la table que nous venons de calculer sur les gènes de protéines ribosomiques (ecoli-rib.dat). Le code génétique à utiliser est le 0, correspondant au code dit "universel".

Le résultat retourné est une page sur laquelle figure le nom du fichier généré (ecoli-rib.dat.w), ainsi qu'un certain nombre de liens. En particulier, le lien output permet de visualiser les valeurs du facteur d'adaptation pour chaque codon, avec un regroupement par codons synonymes, la dernière colonne donnant l'effectif.

4. Calculs utilisant les outils du serveur

Nous allons maintenant effectuer, au moyen d'outils disponibles sur le serveur du PBIL, différents calculs sur l'ensemble des gènes d'E. coli de plus de 150 nucléotides. Les résultats de ces calculs devront être sauvegardés sous la forme de fichiers textes dans votre répertoire de travail pour R. En effet, l'étape suivante de ce TP nécessitera l'utilisation de cet environnement.

4.1. Fréquence des codons

Tout d'abord nous allons calculer le tableau contenant la fréquence absolue des 64 codons. Utilisez la procédure décrite au début de la section 3. pour calculer ce tableau en prenant comme nom de liste ecoli. Le calcul de la fréquence des codons sur plus de 4000 séquences peut prendre un certain temps. Une fois la page de résultats générée, cliquez sur le lien table pour récupérer le tableau de données complet. Sauvegardez ce tableau dans votre répertoire R en utilisant comme nom ecoli.txt. Revenez en arrière puis cliquez sur le lien list pour récupérer pour récupérer la liste des mnémoniques. Sauvegardez cette liste sous le nom ecoli-mne.txt.

4.2. Indices d'usage du code

Accéder à la page permettant d'effectuer des calculs d'indices d'usage des codons. Nous allons calculer plusieurs indices sur l'ensemble de nos gènes d'E. coli. Pour commencer, nous allons utiliser la table du facteur d'adaptation des codons que nous avons calculée en 3. Cette table nous permettre de calculer les valeurs du CAI pour les gènes :
    Table name:    ecoli.dat
    Index to use:  User defined
    Index file:    ecoli-rib.dat.w
Le champ Table name est rempli avec le nom du fichier contenant la fréquence des codons tandis que le champ Index file, l'est avec le nom de la table du facteur d'adaptation des codons. Le résultat est retourné directement sous la forme d'une page de texte. Sauvez-là sous le nom ecoli-cai.txt.

Deux autres calculs d'indices doivent êtres effectués à l'aide de ce formulaire. Revenez en arrière et sélectionnez les options G+C% puis Kyte & Doolittle. Comme ces indices sont prédéfinis, il n'est pas nécessaire dans ce cas de remplir le champ Index file :

    Table name:    ecoli.dat
    Index to use:  G+C%
    Index file:
L'option G+C% permet tout simplement de calculer le pourcentage en bases G+C dans l'ensemble des gènes. Quant à l'option Kyte & Doolittle, elle permet de calculer, à partir de la composition en codons, l'hydrophobicité globale de la protéine encodée par le gène. Il ne s'agit donc pas d'une vraie mesure d'usage du code, mais bien d'une mesure de l'usage des acides aminés. Sauvegardez les résultats obtenus en utilisant comme noms de fichiers respectifs ecoli-gc.txt et ecoli-kd.txt.

Remarque importante : il est fréquent que les navigateurs Web rajoutent deux lignes vide en tête de fichier lors de sauvegardes effectuées depuis des pages de résultats de calculs. Ceci peut ensuite poser des problèmes lors de leur utilisation sous R. Une fois que vous avez sauvegardé tous vos fichiers localement, ouvrez-les avec un éditeur de texte et enlevez ces deux lignes vides le cas échéant. N'oubliez pas ensuite de sauvegarder au format texte votre fichier modifié.

5. Calculs et interprétations sous R

Ouvrez une fenêtre de commande (un shell). Nous allons ajouter le chemin vers la bibliothèque d'analyse multivariée ADE-4 afin que R puisse l'utiliser. Pour ce faire, tapez les lignes de commandes suivantes :
R_LIBS="~/semon"
export R_LIBS
R
Si jamais la procédure précédente ne marche pas, il est possible d'installer localement la bibliothèque. Pour ce faire, quittez R puis tapez les commandes suivantes sous le shell :
R_LIBS="."
export R_LIBS
R
Une fois sous R, tapez la commande :
install.packages("ade4", destdir = ".")
La bibliothèque ADE-4 sera alors compilée sur votre machine et installée dans votre répertoire courant.

Une fois ADE-4 installé et R lancé, chargez ADE-4, lisez les fichiers ecoli.txt, ecoli-cai.txt, ecoli-gc.txt, ecoli-kd.txt et ecoli-mne.txt et calculez une Analyse Factorielle des Correspondances (AFC) sur le tableau contenant les fréquences de codons. Pour l'AFC, ne conservez que les trois premiers facteurs de l'analyse (seuls ceux-ci nous intéressent). Une fois les calculs effectués, tracez les graphes croisant les facteurs F1xF2 et F1xF3. Vous pouvez directement effectuer une opération de copier / coller dans R en utilisant le code ci-dessous :

library(ade4)
x <- read.table("ecoli.txt")
cai <- read.table("ecoli-cai.txt")
gc <- read.table("ecoli-gc.txt")
kd <- read.table("ecoli-kd.txt")
mne <- read.table("ecoli-mne.txt")
coa1 <- dudi.coa(x, scannf = FALSE, nf = 3)
plot(coa1$li[,1], coa1$li[,2], xlab = "F1", ylab = "F2")
plot(coa1$li[,1], coa1$li[,3], xlab = "F1", ylab = "F3")
Que constatez-vous concernant le facteur F3 ?

Maintenant, calculez le coefficient de corrélation entre la valeur de F1 et l'inverse du CAI (1/CAI), tracez le graphe croisant ces deux valeurs et superposez la droite de régression au nuage de points :

r1 <- lsfit(coa1$li[,1], 1/cai$V1)
ls.print(r1)
plot(coa1$li[,1], 1/cai$V1, xlab = "F1", ylab = "1/CAI")
abline(r1)
Qu'en concluez-vous vis-à-vis du biais principal qui affecte la composition en codons chez E. coli ? Vous pouvez vérifier cette hypothèse en regardant les ménomiques des séquences possèdant des scores élevés sur F1. Les séquences dont les noms sont de la forme ECOLICG.RP* codent en effet pour des protéines ribosomiques :
z <- data.frame(coa1$li[,1], mne)
z <- z[order(z[,1], decreasing = TRUE),]
z[1:50,2]
Réitérez l'opération de calcul du coefficient de corrélation avec affichage du graphe pour les couples croisant les valeurs F2xG+C% et F3xKD :
r2 <- lsfit(coa1$li[,2], gc$V1)
ls.print(r2)
plot(coa1$li[,2], gc$V1, xlab = "F2", ylab = "G+C%")
abline(r2)
r3 <- lsfit(coa1$li[,3], kd$V1)
ls.print(r3)
plot(coa1$li[,3], kd$V1, xlab = "F3", ylab = "KD")
abline(r3)
Que pouvez-vous conclure de ces différentes observations quant au différents biais affectant, à des degrés divers, la composition en codons des gènes d'E. coli ?

6. Exercice d'application

Comme exercice d'application vous allez réitérer les analyses précédemment effectuées sur les gènes (> 150 nucléotides de long) de M. genitalium. Dans ce cas il est nécessaire de calculer un indice d'usage du code supplémentaire : le G+C3% (pourcentage de bases G+C en position III des codons). Utilisez comme nom générique pour les fichiers de résultats mycgen, pour les distinguer de ceux obtenus avec E. coli.

Remarque : M. genitalium est une bactérie qui n'utilise pas le code génétique standard. En effet, chez cet organisme le tryptophane est codé par deux codons au lieu d'un : UGA et UGG. Aussi, au moment de calculer le facteur d'adaptation des codons, n'utilisez pas le code génétique par défaut (option 0), mais utilisez le code numéro 3, qui correspond à celui utilisé par cette bactérie.

Une fois que vous aurez obtenu les graphes croisant les différents facteurs de l'AFC effectuée sur les gènes de M. genitalium avec les indices d'usage du code, comparez les résultats avec ceux obtenus sur E. coli. Quelles sont les différences les plus notables entre les deux espèces ? Les biais sont-ils identiques chez ces deux bactéries ? Quelles interprétations biologiques peut-on donner de ces différences ?


If you have problems or comments...

Back to PBIL home page