MolSnapper est un modèle de diffusion conçu pour la conception de médicaments basée sur la structure (SBDD). Il intègre des connaissances expertes pour conditionner le processus de génération. Basé sur MolDiff, il impose des contraintes sur la génération moléculaire, telles que les pharmacophores, les positions atomiques et les types, sans nécessiter de ré-entraînement du modèle de base. L'objectif est de produire des molécules dont les pharmacophores correspondent à ceux attendus dans une poche de liaison cible.
Contexte
MolSnapper est issu des travaux de l'Université d'Oxford, avec la Professeure Charlotte M. Deane comme auteure correspondante. L'article original, intitulé "MolSnapper: Conditioning Diffusion for Structure Based Drug Design", a été publié sur bioRxiv le 30 mars 2024. La génération de molécules capables de se lier efficacement aux poches de protéines cibles reste un défi majeur en conception moléculaire. L'intégration de connaissances a priori et le contrôle du processus de génération sont cruciaux pour obtenir des molécules adaptées à des sites de liaison spécifiques. MolSnapper offre une nouvelle approche en utilisant des contraintes de pharmacophores 3D pour conditionner les modèles de diffusion dans le domaine de la SBDD. Les évaluations sur les jeux de données CrossDocked et Binding MOAD démontrent que MolSnapper génère des molécules plus adaptées aux sites de liaison, tout en conservant une grande similarité structurelle et chimique avec les molécules de référence. Comparativement à MolDiff (sans conditionnement) et SILVR, MolSnapper produit environ deux fois plus de molécules efficaces.
Présentation du Modèle
Dans le domaine de la SBDD, concevoir des ligands qui s'associent précisément aux protéines cibles demeure une tâche ardue. Alors que les modèles autorégressifs souffrent d'erreurs cumulatives dues à la génération séquentielle et peinent à capturer des interactions complexes, les modèles de diffusion modélisent simultanément les interactions locales et globales entre atomes. Cependant, la rareté des données sur les complexes protéine-ligand peut conduire les modèles à apprendre des biais dataset plutôt que les principes biophysiques fondamentaux des interactions ligand-protéine. L'utilisation de contraintes pharmacophoriques pendant la génération peut améliorer significativement la qualité des molécules produites.
Le conditionnement permet d'orienter la génération en fournissant des informations ou des contraintes supplémentaires. Une approche consiste à utiliser des modèles de diffusion pré-entraînés. Par exemple, la méthode SILVR introduit une étape de raffinement où un mélange linéaire entre le ligand généré et une version bruitée de la molécule de référence est utilisé pour adapter la molécule au site de liaison. Cependant, cette méthode requiert un nombre d'atomes identique entre la molécule générée et la référence, et ne prend pas en compte les interactions avec la protéine, conduisant souvent à des molécules incompatibles avec la cible.
Une autre stratégie de conditionnement est l'inpainting, utilisée par DiffSBDD. Ici, un modèle de diffusion inconditionnel peut être adapté pour intégrer des informations contextuelles en modifiant les étapes de transition de probabilité durant l'échantillonnage. DiffSBDD intègre directement les informations sur la protéine dans le modèle, mais sa phase d'entraînement reste limitée aux données de complexes protéine-ligand.
Les approches actuelles de génération moléculaire basée sur la structure produisent souvent des molécules peu réalistes physiquement et peinent à égaler ou surpasser les interactions ligand-protéine observées dans les ligands réels. Pour adresser ces limitations, MolSnapper a été développé comme un modèle de diffusion conditionné, intégrant des connaissances expertes pour la SBDD. Il est capable de générer des molécules non seulement plausibles mais aussi de reproduire des interactions clés telles que les liaisons hydrogène.
MolSnapper exploite les informations structurelles sous forme de pharmacophores 3D et permet de sélectionner des contraintes adaptées à la protéine cible. Les évaluations sur les jeux de données CrossDocked et Binding MOAD montrent que MolSnapper surpasse SILVR en termes de similarité avec les molécules de référence. Il rivalise avec les modèles conditionnés par interactions et reproduit la majorité des liaisons hydrogène observées entre les ligands de référence et les protéines. Le nombre de molécules efficaces générées est approximativement le double de celui des méthodes concurrentes.
Architecture du Modèle
MolSnapper tire parti de la grande quantité de données disponibles dans l'espace des molécules médicamenteuses en intégrant des informations structurelles 3D significatives au moyen de pharmacophores 3D. Le modèle de base choisi est MolDiff, pré-entraîné sur le jeu de données GEOM-Drug. MolSnapper applique une stratégie de conditionnement sans modifier les poids du modèle pré-entraîné. Les pharmacophores extraits des molécules de référence (donneurs et accepteurs de liaisons hydrogène) sont utilisés pour conditionner le processus inverse (débruitage) de MolDiff, en tenant compte de leur position et de leur type.
Pour contraindre les positions atomiques durant le débruitage, un masque est introduit pour définir quelles positions atomiques peuvent être modifiées et lesquelles doivent rester fixes. À chaque étape, le modèle force certaines positions atomiques à se rapprocher de points de référence fixes. Les premières étapes permettent une légère déviation, tandis que les étapes finales ancrent fermement les atomes à leurs positions cibles. Contrairement à d'autres méthodes, MolSnapper utilise les positions originales des points de référence pharmacophoriques sans introduire de bruit supplémentaire.
L'illustration suivante montre le processus d'échantillonnage de positions atomiques contraintes. Les sphères roses représentent les positions atomiques du ligand généré, les sphères bleues les points de référence fixes, et la grille grise la surface de la protéine. Après la sortie du processus de diffusion au temps t, les atomes sont progressivement déplacés vers les positions fixes à chaque étape pour affiner la structure moléculaire.
Étant donné que le modèle MolDiff n'a pas été entraîné avec des données protéiques, il ne peut pas gérer directement les informations relatives à la poche de liaison. Un mécanisme de guidage est donc nécessaire pour prévenir les collisions ou les proximités excessives entre le ligand généré et la protéine. L'image suivante illustre le guidage anti-collision lors de la génération moléculaire. Les positions bleues sont fixes, les roses sont les atomes générés, et la grille grise est la protéine. Le mécanisme de guidage anti-collision optimise la génération pour éviter les conflits et les distances trop courtes.
Pour améliorer l'interprétabilité et le contrôle, des contraintes sont appliquées aux types d'atomes. Spécifiquement, l'azote (N) est désigné comme donneur de liaison hydrogène, et l'oxygène (O) comme accepteur. La probabilité que N agisse comme donneur et O comme accepteur est maintenue à 1 pendant tout le processus d'échantillonnage itératif. Les atomes d'hydrogène ne sont pas explicitement traités, offrant une flexibilité aux experts du domaine pour des ajustements ultérieurs.
Jeux de Données et Modèles de Base
L'efficacité de la méthode de conditionnement a été évaluée sur les jeux de données CrossDocked 2020 (docking artificiel) et Binding MOAD (structures expérimentales de complexes protéine-ligand).
Pour CrossDocked 2020, seuls les poses de docking de haute qualité (RMSD < 1Å) et les protéines diversifiées (similarité de séquence < 30% via MMseqs2) ont été conservés. L'ensemble d'entraînement comprenait 100 000 paires protéine-ligand de haute qualité, et l'ensemble de test 100 paires. L'évaluation a été réalisée avec PoseBusters, et les interactions par liaison hydrogène ont été vérifiées à l'aide de l'Open Drug Discovery Toolkit (ODDT). Pour garantir la qualité de l'ensemble de test, seuls les cas passant tous les tests PoseBusters et présentant des interactions pharmacophoriques pertinentes (plus de 3 liaisons hydrogène) ont été retenus, résultant en 73 complexes.
Binding MOAD est un jeu de données de complexes protéine-ligand déterminés expérimentalement. Les données ont été filtrées et classées par numéro de comité d'enzyme de la protéine. 40 344 paires ont été utilisées pour l'entraînement, et 130 pour les tests. Comme pour CrossDocked 2020, les critères de sélection incluaient la réussite à tous les tests PoseBusters et plus de 3 liaisons hydrogène, menant à la sélection de 43 complexes parmi les 130.
MolSnapper a été comparé à MolDiff, SILVR et DiffSBDD pour la génération de ligands dans des poches protéiques.
Pour vérifier l'efficacité du conditionnement de MolSnapper, il a été comparé à MolDiff sans conditionnement. Les ligands générés par MolDiff, n'ayant pas été conditionnés dans la poche, ont nécessité un docking via Vina.
SILVR est une méthode conçue pour générer des molécules adaptées aux sites de liaison protéiques. Le code des auteurs a été utilisé, en spécifiant les positions et types de pharmacophores, et en traitant les atomes restants comme virtuels.
DiffSBDD utilise une approche de conditionnement pour la conception flexible de molécules, appelée Inpainting. Pour DiffSBDD, les positions et types de pharmacophores ont été fournis comme entrées pour les atomes fixes.
Indicateurs d'Évaluation
- Similarité de Forme et de Couleur (SuCOS_sim) : Évalue la similarité 3D entre la molécule générée et la molécule de référence. La similarité de couleur évalue le chevauchement des caractéristiques pharmacophoriques, tandis que la similarité de forme mesure la comparaison volumétrique entre les deux conformations. Une valeur de 1 indique une correspondance parfaite, 0 un décalage total.
- Accessibilité Synthétique (SA) : Mesure la facilité de synthèse d'un composé. Elle estime la complexité de la molécule en se basant sur des données historiques de composés synthétisés. Normalisée entre 0 et 1, une valeur plus élevée indique une synthèse plus aisée.
- Interactions ODDT Identiques (Same ODDT Interaction) : Calcule le pourcentage de similarité entre les liaisons hydrogène formées par le ligand généré avec la protéine et celles formées par le ligand de référence. L'Open Drug Discovery Toolkit (ODDT) est utilisé pour cette mesure.
- Taux de Passage PoseBusters (PoseBusters Pass Rate) : Représente le pourcentage de molécules générées qui satisfont aux tests PoseBusters. Ce jeu de tests vérifie la validité chimique et la cohérence des conformations générées, leur validité intra et intermoléculaire, évaluant la cohérence physico-chimique et la rationalité structurelle.
Performence du Modèle
Comparaison sans entraînement en poche
Le tableau suivant présente les résultats de MolSnapper comparé à MolDiff (sans conditionnement) et SILVR sur le jeu de données CrossDocked. SILVR a été entraîné uniquement sur des molécules, pas sur des données protéine-molécule. MolDiff (modèle de base inconditionné) a généré des ligands avec un score SA élevé (moyenne Top 1 de 0.866). Pour évaluer leurs interactions avec la protéine, ces molécules ont été dockées dans la poche. Ces ligands dockés ont montré un taux de passage PoseBusters élevé (91%). Cependant, les ligands générés par MolDiff ont rarement reproduit les interactions du ligand de référence (moyenne Top 1 de Same ODDT Interaction de 0.276).
Les ligands générés par SILVR et MolSnapper sont conditionnés par les positions des pharmacophores 3D. Comparées à MolDiff non conditionné, ces deux méthodes ont produit des molécules avec un score SA moyen plus bas. MolSnapper a généré des molécules plus faciles à synthétiser (SA moyenne Top 1 : 0.631 contre 0.543 pour SILVR). Bien que les taux de passage PoseBusters de SILVR et MolSnapper soient inférieurs à ceux de MolDiff, 58% des molécules de MolSnapper ont passé les tests, contre seulement 27% pour SILVR.
La similarité de forme et de couleur (SuCOS_sim) des molécules générées par MolSnapper (moyenne Top 1 : 0.721) est significativement plus élevée que celles générées par MolDiff ou SILVR (0.417 et 0.586 respectivement). De plus, SILVR et MolSnapper ont surpassé MolDiff dans la reproduction des liaisons hydrogène. MolSnapper a obtenu une moyenne Top 1 de 0.746 pour l'indicateur Same ODDT Interaction, surpassant les 0.571 de SILVR. Ces résultats indiquent la supériorité de MolSnapper sur SILVR en termes d'interactions.
Les différences de performance peuvent être attribuées à plusieurs problèmes observés avec SILVR. Un problème majeur était la présence de nombreux fragments non connectés dans les molécules générées par SILVR. Pour l'évaluation, le plus grand fragment a été sélectionné. De plus, comme le modèle SILVR n'intègre pas d'informations sur la protéine, les molécules générées présentaient des conflits avec celle-ci. Le modèle de base MolDiff est également supérieur à EDM, le modèle de base utilisé par SILVR, car il modélise et diffuse les liaisons moléculaires, produisant des molécules plus valides et synthétisables.
L'illustration suivante compare des exemples de molécules générées par SILVR et MolSnapper, en se concentrant sur le ligand le mieux classé. Dans la première ligne, SILVR n'a pas réussi à générer une molécule satisfaisant les contraintes pharmacophoriques, produisant de petits fragments incapables de former des liaisons hydrogène avec la protéine. Dans la seconde ligne, une molécule de taille appropriée a été générée, mais elle n'a pas réussi à former les mêmes liaisons que le ligand de référence.
Sans ré-docking, MolSnapper atteint un taux de passage PoseBusters de 58%, une similarité élevée avec le ligand original, et reproduit la plupart des interactions par liaison hydrogène existantes. Ces aspects sont cruciaux pour conserver les interactions clés et la similarité avec les ligands réels, garantissant la pertinence pharmacologique et l'efficacité des molécules générées.
Comparaison avec entraînement en poche
MolSnapper a été comparé à DiffSBDD, un modèle de diffusion 3D conditionné entraîné spécifiquement sur des données de complexes protéine-ligand. Le tableau suivant compare les performances de DiffSBDD (entraîné sur CrossDocked) avec MolSnapper, ainsi que celles de DiffSBDD (entraîné sur Binding MOAD) avec MolSnapper. DiffSBDD et MolSnapper obtiennent des résultats comparables en termes de similarité avec les molécules originales (SuCOS_sim) et de reproduction des interactions de liaison (Same ODDT Interaction). Cependant, MolSnapper génère des molécules meilleures en termes de plausibilité physique (taux de passage PoseBusters) et d'accessibilité synthétique (score SA). Ces résultats suggèrent que l'entraînement sur un espace moléculaire plus large et le conditionnement pour la génération en poche, plutôt que de se limiter à l'entraînement sur des ensembles protéine-molécule, offrent une meilleure représentation du monde réel.
Étude de Cas : CDK2
Une étude de cas a été menée sur CDK2 (PDB ID: 1h00), une cible thérapeutique largement étudiée. L'analyse a été étendue au-delà des liaisons hydrogène pour inclure toutes les interactions extraites par PLIP, incluant les interactions hydrophobes. Les atomes impliqués dans ces interactions ont été spécifiquement choisis comme points de référence.
100 molécules ont été générées par SILVR, DiffSBDD (entraîné sur Binding MOAD), DiffSBDD (entraîné sur CrossDocked) et MolSnapper. DiffSBDD entraîné sur Binding MOAD a obtenu les meilleurs résultats en termes de similarité de ligand et de reproduction des interactions de liaison (SuCOS_sim de 0.582 contre 0.327, 0.569, 0.574 pour SILVR, DiffSBDD (CrossDocked), et MolSnapper respectivement). Il a également obtenu le score d'interaction PLIP le plus élevé (0.7 contre 0.2, 0.6, 0.5). MolSnapper a excellé en taux de passage PoseBusters (69% contre 15%, 57%, 45%), générant plus de molécules proches des ligands réels (12% de molécules avec SuCOS_sim > 0.5 contre 0%, 8%, 4%). L'illustration suivante compare les structures 3D et les interactions pour l'étude de cas CDK2, montrant les meilleurs résultats pour chaque méthode avec SuCOS_sim > 0.5.
Étude d'Ablation de MolSnapper
Pour étudier l'impact de l'initialisation et du conditionnement de référence sur la génération, trois stratégies d'initialisation et de traitement des points de référence ont été comparées sur le jeu de données CrossDocked.
- Initialisation aléatoire près des points fixes pharmacophoriques, référence fixe : La position initiale des molécules générées est un bruit aléatoire près des points fixes pharmacophoriques, et les positions de référence restent fixes durant le processus inverse de diffusion.
- Initialisation aléatoire, référence fixe : La position initiale est un bruit aléatoire, et les positions de référence restent fixes pendant tout le processus de génération.
- Initialisation aléatoire près des points fixes pharmacophoriques, référence bruitée : La position initiale est un bruit aléatoire près des points fixes pharmacophoriques, et un bruit est ajouté aux points de référence durant le processus inverse de diffusion selon un plan d'échelle de bruit prédéfini.
Le tableau récapitulant les résultats de l'étude d'ablation met en évidence l'impact du bruit sur la génération moléculaire assistée par GNN. Le meilleur score SuCOS_sim a été obtenu avec l'initialisation 1 : initialisation aléatoire près des points fixes pharmacophoriques, sans ajout de bruit aux points de référence. Cela suggère que des points de référence stables sont cruciaux pour maintenir les interactions clé ligand-cible durant la génération.
Évaluation de MolSnapper
Environnement d'Installation
Cloner le dépôt du projet :
git clone https://github.com/oxpig/MolSnapper.git
Créer l'environnement MolSnapper à partir du fichier env.yml :
conda env create -f env.yml
conda activate MolSnapper
Test d'Exemple de Génération Moléculaire
Le projet fournit un modèle MolDiff pré-entraîné, disponible via Google Drive : https://drive.google.com/drive/folders/1zTrjVehEGTP7sN3DB5jaaUuMJ6Ah0-ps. MolDiff sert de modèle de base pour MolSnapper.
MolDiff.pt: Modèle MolDiff complet, capable de générer et d'inférer des structures moléculaires complexes.MolDiff_simple.pt: Version simplifiée, sans le réglage du "bruit de liaison" durant l'entraînement. Peut générer des molécules mais avec une précision potentiellement moindre sur les liaisons.bond_predictor.pt: Prédicteur de liaison pré-entraîné, utilisé pour guider la génération et assurer la cohérence structurelle et la stabilité chimique.
Les modèles téléchargés doivent être placés dans le dossier ./ckpt.
Les tests d'exemples intégrés et personnalisés utilisent la même configuration que MolDiff, avec une graine aléatoire de 2023, générant 100 molécules par cas. La configuration de génération est définie dans ./configs/sample/sample_MolDiff.yml.
model:
checkpoint: ckpt/MolDiff.pt
bond_predictor: ckpt/bondpred.pt
sample:
seed: 2023
batch_size: 512
num_mols: 100
save_traj_prob: 0.02
guidance:
- uncertainty
- 1.e-4
Cas Intégré : CDK2 (PDB ID: 1h00)
Le cas intégré fourni est CDK2 (PDB ID: 1h00). Créer le dossier ./data/example_1h00 et y placer le fichier 1h00.pdb. Le ligand FCP dans la poche sert de molécule de référence.
1. Prétraitement de la Structure
Nettoyer la structure complexe protéine-ligand originale (supprimer H, solvants, ions) et sauvegarder les structures de protéine et de ligand séparément.
python ./scripts/clean_and_split.py \
--in-dir ./data/example_1h00 \
--proteins-dir ./data/example_1h00 \
--ligands-dir ./data/example_1h00
L'erreur indique un manque des pdb-tools. Installer avec :
pip install pdb-tools
Après installation, les fichiers traités (1h00_0.sdf pour le ligand, 1h00_protein.pdb pour la protéine) sont sauvegardés dans ./data/example_1h00.
2. Préparation des Données
Préparer les informations d'entrée du modèle à partir de la poche protéique et du ligand traités.
python scripts/prepare_single_complex.py \
--root_dir ./data/example_1h00 \
--ligand_filename 1h00_0.sdf \
--protein_filename 1h00_protein.pdb \
--out_pockets_path ./data/example_1h00/processed_pocket_1h00.pkl
Le fichier processed_pocket_1h00.pkl contient les coordonnées et types atomiques de la poche (complète et squelette).
3. Échantillonnage Moléculaire
Lancer la génération moléculaire.
python scripts/sample_single_pocket.py \
--outdir ./output_1h00 \
--config ./configs/sample/sample_MolDiff.yml \
--batch_size 32 \
--pocket_path ./data/example_1h00/processed_pocket_1h00.pkl \
--sdf_path ./data/example_1h00/1h00_0.sdf \
--use_pharma True \
--clash_rate 0.1
Avec batch_size=32 et 8 Go de VRAM, le processus a généré 60 molécules sur une tentative de 100, avec un temps d'exécution d'environ 22 minutes, en raison de 324 molécules incomplètes détectées.
Les résultats sont sauvegardés dans les sous-dossiers sample_MolDiff_... et sample_MolDiff_..._SDF de ./output_1h00.
Évaluation des molécules générées avec PoseBusters, calcul de similarité 3D (SuCOS_sim) et des interactions par liaison hydrogène (Same ODDT Interaction).
python scripts/evaluate.py \
./output_1h00/sample_MolDiff_20240908_072134_clash_rate_0.1_SDF \
--protein_path ./data/example_1h00/1h00_protein.pdb \
--reflig_path ./data/example_1h00/1h00_0.sdf \
--save_path ./output_1h00/eval
Les résultats moyens indiquent : QED=0.205, SA=0.602, SuCOS_sim=0.586, Interaction=2.067. Les molécules générées ont une faible qualité médicamenteuse (QED) mais une bonne synthétisabilité (SA). La similarité SuCOS_sim est élevée, et en moyenne 2 liaisons hydrogène sont formées.
Cas Personnalisé : 3wze
Utilisation de la protéine 3wze comme cas d'étude personnalisé. Créer le dossier ./data/example_3wze et y placer 3wze.pdb.
Prétraitement de la structure :
python ./scripts/clean_and_split.py \
--in-dir ./data/example_3wze \
--proteins-dir ./data/example_3wze \
--ligands-dir ./data/example_3wze
Fichiers traités : 3wze_0.sdf (ligand) et 3wze_protein.pdb (protéine).
Préparation des données :
python scripts/prepare_single_complex.py \
--root_dir ./data/example_3wze \
--ligand_filename 3wze_0.sdf \
--protein_filename 3wze_protein.pdb \
--out_pockets_path ./data/example_3wze/processed_pocket_3wze.pkl
Échantillonnage moléculaire :
python scripts/sample_single_pocket.py \
--outdir ./output_3wze \
--config ./configs/sample/sample_MolDiff.yml \
--batch_size 32 \
--pocket_path ./data/example_3wze/processed_pocket_3wze.pkl \
--sdf_path ./data/example_3wze/3wze_0.sdf \
--use_pharma True \
--clash_rate 0.1
Avec batch_size=32, 100 molécules ont été générées avec succès en environ 20 minutes.
Les résultats sont sauvegardés dans ./output_3wze.
Évaluation des molécules générées :
python scripts/evaluate.py \
./output_3wze/sample_MolDiff_20240908_094655_clash_rate_0.1_SDF \
--protein_path ./data/example_3wze/3wze_protein.pdb \
--reflig_path ./data/example_3wze/3wze_0.sdf \
--save_path ./output_3wze/eval
Les résultats moyens indiquent : QED=0.434, SA=0.676, SuCOS_sim=0.501, Interaction=4.320. La qualité médicamenteuse est encore modeste, mais la synthétisabilité est bonne. La similarité SuCOS_sim est moyenne, et en moyenne 4.3 liaisons hydrogène sont formées.
Les structures 2D et les poses 3D des 3 meilleurs molécules selon le score qvina (respectivement -12.4, -11.3, -11.1) sont présentées. La superposition avec la molécule de référence montre une excellente conservation de la position des atomes pharmacophoriques (N et O).
Conclusion
MolSnapper introduit une méthode innovante pour imposer des contraintes pharmacophoriques 3D aux modèles de diffusion, permettant un processus de conception moléculaire contrôlé en intégrant des connaissances expertes. Ses performances surpassent celles de SILVR et DiffSBDD, produisant jusqu'à trois fois plus de molécules passant les tests PoseBusters. La similarité de forme et de couleur avec les ligands de référence est améliorée jusqu'à 20%, augmentant de 30% le succès en "hit retrieval" initial.
Cette recherche comble un vide en permettant l'application de modèles entraînés sur de vastes jeux de données moléculaires pour une génération conditionnée dans des sites de liaison spécifiques. En intégrant des informations structurelles 3D et des connaissances expertes, MolSnapper réalise un processus de génération de ligands contrôlé et efficace. Les molécules générées par MolSnapper présentent des conformations plus réalistes, sans déformations chimiques étranges, et obtiennent de bons scores avec qvina, se comparant favorablement à des modèles tels que PIDiff et IPDiff. Globalement, MolSnapper représente une approche de génération moléculaire plus proche des exigences réelles de la conception de médicaments.