Nous pouvons exporter les résultats issus du calcul, directement vers d’autres programmes, sans passer par l’interface Molegro et son explorateur de poses. Mais pour en comprendre l’intérêt et les mécanismes mis en jeu, nous devons nous intéresser à la construction interne de ces fichiers.
Dans le cas de Molegro, il y a deux types de résultats bien distincts qui nous concernent: soit la conformation tridimensionnelle des poses, soit les valeurs numériques (scores, contributions, descripteurs issus des calculs d’arrimage). Dans cet article nous allons ne nous intéresser qu’aux valeurs numériques pour les exporter sous forme de table.
Publication initiale sur buildblog.buidez.net (2021) – Article mis à jour en Mars 2025.
Navigation dans le guide
Guide [ Aide Molegro (docking) ]
1. Un fichier XML pour chaque pose
Les images suivantes montrent des éléments de l’interface Molegro, à gauche une partie de l’affichage et à droite (poses en vert) une partie de l’explorateur de poses avec 10 poses sélectionnées (en bleu). Ces poses font partie d’un calcul de 20 runs, après classement en fonction du score Rerank. Le ligand est le JPL, dans un workspace basé sur 1P45a [Kuo_2003] et incluant le cofacteur NAD (en rose) et le JPL_400_1P45a cristallographique (en bleu).
![]() |
![]() |
| Les 10 premières poses Rerank dans l’espace de travail | Les 10 premières poses Rerank (sélectionnées) dans l’organisateur de poses |
Dans le conteneur de calcul, les fichiers correspondant aux poses sont ceux qui débutent par un numéro entre crochets, par exemple [02]JPL_400_3FNG_.mvdml. Ils correspondent à la conformation de chaque pose qui se trouve dans la première colonne de la table précédente et nous retrouvons le même numéro de pose (un indice de 0 à n-1) entre crochets.
Chaque fichier pose correspond donc à une structure 3D et est encodé dans un format de type XML du même type que celui utilisé pour le workspace. Le contenu de [02]JPL_400_3FNG_.mvdml est exposé dans l’insert suivant, certaines lignes sont remplacées par 3 points (...) pour alléger l’affichage :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
<!DOCTYPE MVDML> <Object title="Unnamed" version="12" type="MVD.Model.Project" datestring="lundi, février 1, 21 11:33:31" > <ProteinList count="0" basetype="MVD.Model.Protein" /> <LigandList count="0" basetype="MVD.Model.Ligand" /> <WaterMoleculesList count="0" basetype="MVD.Model.Molecule" /> <CofactorList count="0" basetype="MVD.Model.Molecule" /> <PoseList count="1" basetype="MVD.Model.Pose" > <Pose Energy="-149.663" OriginalLigandName="JPL_400_3FNG_" Rank="-1" name="[02]JPL_400_3FNG_" NumberOfRotatableBonds="4" RMSD="-1" rootAtom="16" filename="xxx/new_ligands_3d_ref_h_ref.sdf" > <AtomList count="39" basetype="MVD.Model.Atom" > <Atom cc="3" triposAtomType="4" pdb="1" aro="t" sol="0.6" type="4" genericType="-1" id="0" vol="10.8" hyb="2" pos="28.2799,48.5128,-11.3715" elem="6" /> <Atom cc="3" triposAtomType="4" pdb="1" aro="t" sol="0.6" type="4" genericType="-1" id="1" vol="10.8" hyb="2" pos="27.1773,49.0734,-12.002" elem="6" /> <Atom cc="3" triposAtomType="4" pdb="1" aro="t" sol="0.6" type="4" genericType="-1" id="2" vol="10.8" hyb="2" pos="27.1489,49.1064,-13.3869" elem="6" ih="1" /> ... <Atom triposAtomType="21" pdb="35" type="4" genericType="-1" id="36" vol="10" pos="30.8095,50.5951,-16.7277" elem="1" /> <Atom triposAtomType="21" pdb="35" type="4" genericType="-1" id="37" vol="10" pos="31.3877,49.8721,-18.2483" elem="1" /> <Atom triposAtomType="21" pdb="35" type="4" genericType="-1" id="38" vol="10" pos="32.199,49.4932,-13.4762" elem="1" /> </AtomList> <BondList count="41" basetype="MVD.Model.Bond" > <Bond a1="0" inRing="t" a2="15" type="5" /> <Bond a1="0" inRing="t" a2="1" type="5" /> <Bond rot="t" a1="0" a2="14" /> ... <Bond a1="18" a2="36" /> <Bond a1="18" a2="37" /> <Bond a1="19" a2="38" /> </BondList> <RingList count="0" basetype="MVD.Model.Ring" /> <Descriptors> C0=1; CO2minus=0; Cofactor (VdW)=-10.5671; Cofactor (elec)=0; Cofactor (hbond)=-7.27117; Csp2=16; Csp3=3; DOF=4; E-Inter (cofactor - ligand)=-51.3485; E-Inter (protein - ligand)=-96.457; E-Inter (water - ligand)=0; E-Inter total=-147.805; E-Intra (clash)=0; E-Intra (elec)=0; E-Intra (hbond)=-2.5; E-Intra (sp2-sp2)=0; E-Intra (steric)=10.7687; E-Intra (tors)=3.42649; E-Intra (tors, ligand atoms)=11.6951; E-Intra (vdw)=84.2097; E-Soft Constraint Penalty=0; E-Solvation=-13.5527; E-Total=-149.663; Electro=0; ElectroLong=0; Energy=-149.663; HBond=-2.48888; HeavyAtoms=23; LE1=-6.50709; LE3=-4.26552; Ligand=JPL_400_3FNG_; MW=347.235; N=0; Name=JPL_400_3FNG_; NoHBond90=-2.48888; Nplus=0; OH=1; OPO32minus=0; OS=1; PoseEnergy=-630.989; RMSD=0; RerankScore=-98.1069; Run=0; Steric=-93.9681; Torsions=4; VdW (LJ12-6)=-32.8953; carbonyl=0; halogen=2 </Descriptors> </Pose> </PoseList> <ConstraintList count="0" basetype="MVD.Model.Constraints.Constraint" /> <SearchSpaceList count="0" basetype="MVD.Evaluation.Grid.GridBase" /> <Cavities count="0" basetype="MVD.Model.Cavity" /> <FlexibilityDescriptorList count="0" basetype="MVD.Model.SidechainFlexibilityDescriptor" /> <ReceptorConformations count="0" basetype="MVD.Model.ReceptorConformation" /> <SimilarityDefinitionList count="0" basetype="MVD.Model.SimilarityDefinition" /> <WorkspaceNotes count="0" basetype="MVD.Model.KeyValueSerializer" /> </Object> finition" /> <WorkspaceNotes count="0" basetype="MVD.Model.KeyValueSerializer" /> </Object> |
Nous avons des entêtes tels que le nombre de poses dans le fichier (PoseList count="1" à la ligne 7) et la valeur du score (Pose Energy="-149.663" à la ligne 9), un bloc de coordonnées atomiques (AtomList), un bloc de connectivités (liaisons : BondList). Cet ensemble est suivi des résultats du calcul dans le bloc Descriptors (lignes 29 à 76) dont les valeurs constitueront une ligne du tableau des résultats, le nom de chaque descripteur (C0, CO2minus, Cofactor …) en composant chaque colonne.
2. Un fichier résultats (.mvdresults)
L’ensemble des résultats, sans les coordonnées atomiques des poses, est regroupé dans le fichier DockingResults.mvdresults au format CSV (comme son nom ne l’indique pas), délimité par des TABs. Le contenu de ce fichier est organisé en trois parties: un entête (lignes commençant par un caractère dièse: #) ; une ligne pour les titres de colonnes (ligne 11), puis les poses (une ligne par pose, de 12 à 31 inclus).
![]() |
Nous allons voir plus loin que ce fichier pourra s’insérer dans d’autres programmes. En effet, certains tableurs/grapheurs, ou liseuses CSV, permettent de lire ces fichiers CSV commentés en ‘sautant’ les lignes # (sinon il suffira de les supprimer).
Nous retrouvons les les paramètres de calcul dans l’entête : Dock Settings, Optimizer, Evaluator … Nous retrouvons les résultats du fichier pose qui étaient incluses dans le bloc <Descriptors> du fichier [02]JPL_400_3FNG_.mvdml précédent. Notamment la valeur de -149.663 (unités arbitraires) pour E-Total (une autre dénomination du score MolDock dans la terminologie Molegro) qui apparait dans une colonne plus à droite de l’éditeur (non affichée dans l’image précédente).
3. Exportation directe vers SciDAVis
S’agissant d’un fichier texte ASCII délimité par des tabulations, nous pouvons l’exporter assez facilement, moyennant un paramétrage adapté. Par exemple, sous SciDAVis (un outil pour les graphes scientifiques, de type Origin ou QtiPlot) nous utiliserons des options d’import issues de notre compréhension du contenu du fichier .mvdml (cf. section précédente). Nous aurons alors accès à un tableur qui nous permettra de visualiser des graphes, réaliser des ajustements de courbes, des opérations mathématiques sur les colonnes (permettant de calculer des descripteurs dérivés), quelques explorations statistiques …
![]() |
![]() |
| Filtres d’import | Résultats et sélection des colonnes E-inter (total; cofactor-ligand; protein-ligand) à proximité de E-Total (score MolDock). |
Noter que la pose dont E-Total prends une valeur de 149.663 est à la troisième position. Dans cette liste des poses, la numérotation est 1 à n (PoseList count="1") par définition (lignes) alors qu’il s’agit de la pose [02] ([02]JPL_400_3FNG_.mvdml), l’identification est de 0 à n-1.
A titre d’exemple, l’image suivante montre un graphique, réalisé très simplement sous SciDAVis, qui met en jeu le score MolDock (E-Total) en fonction de différentes valeurs d’énergie d’interaction (E-Inter). La valeur de E-inter (total) correspond à la contribution principale du score MolDock, nous retrouvons la valeur E-Total à -149.663 de la pose [02],dans la partie basse gauche du graphe (marquée par une flèche), il s’agit d’une des deux meilleures valeurs (poses limites).
![]() |
A propos de ce graphique …
Les valeurs des composantes de E-Inter total sont affichées en violet pour E-inter (cofactor-ligand) et en vert pour E-Inter (protein-ligand). Réaliser des calculs d’arrimage sur un système protéine-ligand-cofacteur en interaction (c’est le cas ici entre JPL et NAD dans le site de l’enzyme) sans s’intéresser aux contributions de chaque partenaire, c’est perdre de l’information. Mais beaucoup de programmes ne donnent pas ce type d’information, ni ne savent gérer le cofacteur en tant que troisième entité indépendante.
Ici, nous constatons que la composante cofacteur-ligand est importante, de l’ordre de la moitié de la composante proteine-ligand. Cela dépends des ligands, mais la balance cofacteur-ligand tends vers les 1/3 – 2/3 pour InhA. Ce qui se comprend lorsque nous observons (image suivante, UCSF Chimera) l’intrication des composés dans le site :
![]() |
JPL_400 et NAD dans le site de 3FNG_ (surface en vert) |
Nous voyons bien qu’il existe une surface de contact entre JPL (surface en cyan) et le NAD (surface en rose) qui a de l’importance, nous verrons qu’elle implique d’autres interactions hydrogènes typiques et qui s’ajoutent à celle qui existe avec la TYR158 (résidu en marron à droite de l’image).
4. Exportation directe vers Excel et CSV
Il suffit d’adapter les paramètres testés sous SciDAVis en fonction de la version d’Excel. Une fois le filtre appliqué, la table des résultats est accessible (image suivante). Cette fois, nous montrons la dernière colonne des résultats, et nous constatons qu’il s’agit d’une chaine SMILES. Ce qui permet d’afficher la formule développée dans grille, si une extension chimique est installée (par exemple ChemAxon JChem pour Office). Ce n’est pas important ici puisqu’il s’agit de poses du même ligand, mais ce type de donnée deviendra utile si nous comparons des ligands différents. En effet, les résultats (descripteurs, calculs) établis à partir d’une chaine SMILES (équivalent d’une formule développée 2D) sont susceptibles de s’intégrer dans un autre étage de calcul, typiquement un outil orienté QSAR (Quantitative Structure-Activity Relationship).
![]() |
Exportation aux formats CSV
Pour exporter en CSV, il suffit de sauver le fichier .mvdresults en .csv après avoir supprimé lignes débutant par un dièse (caractère #) en entête du fichier, et (éventuellement) changé les caractères séparateurs. Ce qui se fait facilement avec quelques lignes de code ou à la main. L’export automatisé en CSVM est possible en utilisant le paquetage buildez.molegro qui inclue des modules dédiés ajoutant des fonction de filtrage des colonnes.
5. Exportation vers Data Modeller
Le fichier .mvdresults s’exporte directement vers Molegro Data Modeller (MDM) qui fait partie de la suite Molegro et permet de réaliser différentes modélisations sur les valeurs des scores et des descripteurs. Ces valeurs étant issues du fichier .mvdresults natif ou d’un autre fichier (typiquement CSV) enrichi par d’autres colonnes de descripteurs.
En général nous utilisons MDM pour comparer des résultats filtrés de plusieurs ligands, dans une optique SAR (Structure-Activity Relationship). Dans ce cas la modélisation peut correspondre à différents objectifs: classification, calcul de métriques (ligand efficiencies), modèle prédictif. Ce type de modélisation sera basé sur une combinaison de résultats de l’arrimage et d’autres descripteurs liés aux propriétés des ligands.
L’image suivante, montre les résultats importés dans MDM, et le menu ouvert montre les méthodes disponibles (K-Means, KNN, SVM, régression multilinéaire …) en termes de statistiques et de classification.
![]() |
Cet outil est utile pour trier les poses sur les bases des scores ou des descripteurs issus du calcul. Par exemple, nous utilisons souvent le grapheur intégré pour évaluer (sur la base de valeurs et non de conformations) les poses que l’on peut éliminer d’un jeu de données. L’image suivante (à gauche) montre un graphe MolDock (E-Total) vs. Rerank avec des poses marquées (points marqués en rouge) qui correspondent de manière évidente à des données sans intérêt (notamment scores positifs). L’outil marque automatiquement les lignes correspondantes (en bleu) dans la table. L’explorateur de poses peut être associé à cette démarche de manière à inspecter visuellement ces poses.
![]() |
![]() |
| Sélection et tri de poses | Matrice de corrélation |
Une fois que les poses (lignes) sont filtrées, nous pouvons éliminer les colonnes de la table dont les valeurs sont constantes sur l’ensemble des poses (par exemple le nombre d’atomes). Nous pouvons afficher la matrice de corrélation (image précédente, à de droite, basée sur des coefficients de Pearson). Chaque valeur correspond à un coefficient de corrélation (linéaire) entre deux descripteurs. Plus la valeur sera proche de un, plus le graphe entre ces deux descripteurs sera linéaire et peu disperse. Ce type de matrice permet donc de détecter rapidement des liaisons (ou des colinéarités entre variables explicatives) entre scores ou descripteurs.
Dans l’exemple présenté, 2 colonnes sont encore à éliminer sur 4 (il s’agit de 2 variables identiques) car elles donnent des valeurs de 1.0 pour le coefficient (similarité totale). Nous pouvons y lire aussi que les valeurs de RMSD sont assez sensiblement corrélées aux scores, ce qui veut dire qu’un bon score correspondra généralement à un RMSD intéressant, ce qui donne en retour des information sur la manière dont on a paramétré l’arrimage et (parfois) des pistes d’amélioration.
6. Conclusion
Les fichiers poses .mvdml incluent donc des résultats, mais il ne serviront pas (en tout cas directement) à une exportation. D’une manière générale, pour l’inspection visuelle et l’export des conformations de poses, nous passerons par l’explorateur (Pose Organizer dans la terminologie Molegro). Cet outil (premières images de l’article) lit directement les fichiers .mvdml et les affiche dans l’interface graphique (MVD, MMV) avec beaucoup de détails visuels (interactions notamment). Mais il est intéressant de connaitre ces ilots d’informations composés uniquement de valeurs, car nous pouvons en avoir besoin si nous devons regrouper des résultats (traitement informatique ou publication).
Liens et lectures
- Structure–activity relationship [ https://en.wikipedia.org/wiki/Structure%E2%80%93activity_relationship ].
- Quantitative structure–activity relationship [ https://en.wikipedia.org/wiki/Quantitative_structure%E2%80%93activity_relationship ].
- K-Means clustering [ https://en.wikipedia.org/wiki/K-means_clustering ].
- KNN – k-nearest neighbors algorithm [ https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm ].
- Support Vector Machine (SVM, SVN) [ https://en.wikipedia.org/wiki/Support-vector_machine ].
- Linear regression [ https://en.wikipedia.org/wiki/Linear_regression#Simple_and_multiple_linear_regression ].
- Pearson correlation coefficient [ https://en.wikipedia.org/wiki/Pearson_correlation_coefficient ].
- Corrélation (statistiques) [ https://fr.wikipedia.org/wiki/Corr%C3%A9lation_(statistiques) ].










