buildez.pdb : module altloc, ligands et exceptions

J’ai déjà décrit des fonctionnalités du module pdb.altloc en ce qui concerne les résidus (acides aminés) standards de protéines. Sauf que d’autres résidus peuvent avoir des conformations alternatives, par exemple des résidus incomplets (chaine latérale), des ligands ou même des molécules d’eau ! Il s’agit de cas que nous devons être capables de traiter, si on veut que le module soit complet.

Les exemples seront basés sur les structures (1ADO et 1OIM) de deux enzymes que nous avons utilisé au laboratoire. La structure 1ADO [Blom_1997] correspond à une aldolase (D-fructose 1,6-bisphosphate aldolase) de lapin qui nous intéresse ici pour son ligand 13P (1,3-dihydroxyacetonephosphate). La structure 1OIM [Zechel_2003] correspond à une ß-glucosidase de Thermotoga maritima  et qui ligande un iminosucre, le NOJ (1-deoxynojirimycin). Cette structure nous intéresse ici par quelques exceptions qui vont nous permettre de tester d’autres types d’atomes désordonnés.

Publication initiale en 2021, révisé en Avril 2025.

Navigation dans le guide

Guide [ Composants : buildez.pdb ]




1. Ligands alternatifs

Les composés co cristallisés intéressent particulièrement les chimistes médicinaux, et il se trouve que certains sont en conformation alternative. C’est le cas du ligand 13P de la structure 1ADO que l’on peut détecter et afficher, la fonction pdb_altloc_pdbmcheck et pdb_altloc_resmapcheck produiront des résultats classiques, que l’on peut afficher :

Le cas d’un ligand se traite systématiquement de la même manière et par le même code, dans un premier temps, il faut choisir la conformation. Dans l’exemple précédent, c’est la conformation 0/A qui a été sélectionnée. Puis il faut mettre à jour la matrice pdbm, pour masquer la seconde conformation, ce qui nous donne :

Il faut maintenant nettoyer le bloc de connexion des atomes qui n’ont pas été retenus dans la seconde conformation. Autrement dit, d’après la sortie précédente, les atomes (HETATM) intercalaires : 13608, 13610, 13612, 13614, 13616, 13618, 13620, 13622, 13625, 13626, 13628, 13630.
Atomes qui n’apparaissent pas toujours dans certains outils de visualisation. Par exemple Discovery Studio (DSV) a bien reconnu les deux conformations, mais propose une approche ‘conformère’: les IDs d’atomes (impairs) sont similaires dans les deux conformations :

Puis nous ajoutons la séquence d’instructions, à la fin du bloc de traitement de la structure protéique :

Ces lignes supplémentaires vont nous permettre de voir le résultat après le recalcul d’une matrice pdbm à partir de la chaine s mise à jour lorsque on a sélectionné la conformation alternatives A et nettoyé les blocs de connectivité. Dans la sortie les ‘…’ sont utilisés pour simplifier l’affichage, le 13P est affiché en bleu avec des espaces ajoutés pour faciliter la lisibilité et les connectivités sont attribuées.

update connection block
...
CONECT 13607 13609 13611 13613 13615 -> P
CONECT 13609 13607 -> P=O
CONECT 13611 13607 13627 -> P-OH
CONECT 13613 13607 -> P=O
CONECT 13615 13607 13617 -> P-O-C
CONECT 13617 13615 13619 -> O-C-C
CONECT 13619 13617 13621 13623 -> C-(C=O)-C
CONECT 13621 13619 -> C=O
CONECT 13623 13619 13625 -> C-C-OH
CONECT 13625 13623 13629 -> C-OH
CONECT 13627 13611 -> OH
CONECT 13629 13625 -> OH

CONECT13637136361363813639
CONECT1363813637
CONECT136391363713640
CONECT136401363913642
CONECT1364113633
CONECT1364213640
END

Nous constatons, dans le bloc de connectivité, la disparition des atomes (valeur du champ Serial, colonne d’indice 1 d’une matrice pdbm) pairs de 13608 à 13630, dans ce cas, les deux conformations du ligand ne partagent pas d’atomes en commun.

La fonction pdb_pdbm2str_extended est très utile car elle permet de combiner l’affichage de la matrice pdbm (donc de coordonnées) avec d’autres informations du fichier qui sont accessibles en mode texte. Il suffit de spécifier l’intitulé des champs du fichier PDB dans la liste keywords donnée en argument. Cela permet de générer rapidement des systèmes de vérification du bon déroulement du traitement ou de générer des fichiers PDB simplifiés.

La fonction pdb_str_clean n’étant pas appliquée, les lignes du fichier PDB initial qui ne sont pas sélectionnées pour la sortie, apparaissent néanmoins sous forme de lignes vides. On peut dire que la fonction pdb_pdbm2str_extended agit comme un masque.

2. Résidus standard incomplets

Ils sont traités de la même manière que les résidus standards. D’un point de vue algorithmique, il n’y a aucune nécessité de les différentier.

3. Quelques exceptions

Prenons maintenant le cas de la structure 1OIM, que nous traitons ave le code standard :

Ce qui va nous donner le résultat :

check atoms: altloc=12 occupancy=28 counts
found 1 alt residues
['ARG', 203, 2289, 2305, -1, ''] found 2 conformers

Nous avons donc détecté un résidu ARG 203 de la chaine A qui présente deux conformations alternatives. Si on examine le bloc correspondant dans le fichier PDB, on retrouvera les 12 atomes désordonnés (2x 6 lignes de couleurs différentes) avec un taux d’occupation de 50%. Les taux à 100% concernent les atomes du backbone et le Cβ, la torsion de l’angle χ1 n’affecte pas la fluctuation de cet atome.

C’est bien trouvé, et la valeur de hit_altloc est bien égale à 12. Mais la valeur hit_occupancy est égale à 28 (nombre d’atomes qui ne sont pas similaires dans leur position et qui ont un taux d’occupation < 100%). Il s’agit d’un contrôle de cohérence effectué par la fonction, cela veut dire qu’il existe ailleurs des atomes désordonnés mais qui ne sont pas pris en compte dans des résidus à conformation alternatives.

La fonction pdb_altloc_atomcheck va nous permettre de les trouver, elle renvoie les lignes de la matrice pdbm correspondantes à une valeur de occupancy inférieure à 1.0 :

Ce qui va nous donner plusieurs lignes, ou nous retrouvons, le résidu ARG203 :

Résidus désordonnés

Mais nous trouvons aussi un résidu ASP141 dont les atomes de la chaine latérale ont un taux d’occupation de 50%, sans pour autant que le résidu présente une conformation alternative. On constate donc que la présence d’atomes désordonnés ne signifie pas obligatoirement la présence de résidus alternatifs.

Pour mémoire le bloc PDB correspondant à ce résidu était :

La fonction pdb_altloc_atomcheck ne nous renvoie que les lignes correspondant au taux d’occupation non standard, il faudra faire une autre opération (par exemple une extraction à partir de la resmap) si nous voulons le résidu en entier.

Molécules d’eau désordonnées

Nous avons aussi des molécules d’eau à 50% de taux d’occupation, sans être alternatives également, je n’affiche pas le bloc PDB correspondant, juste la sortie de la fonction pdb_altloc_atomcheck  :

Donc 12 atomes désordonnées dans deux conformations alternatives (ARG203), 4 atomes désordonnés dans un résidu (ASP141) et 12 molécules d’eau désordonnées, nous retrouvons la valeur de hit_occupancy à 28.

4. Conclusion

Nous disposons donc d’un outil pour sélectionner et extraire tout type de résidu dont les atomes n’ont pas un taux d’occupation égal  à 1, ce qui englobe des résidus se présentant sous des conformations alternatives.

Liens et lectures
Retour en haut