name: diffdock description: Amarrage moléculaire basé sur la diffusion. Prédire les poses de liaison protéine-ligand à partir de PDB/SMILES, scores de confiance, criblage virtuel, pour la conception de médicaments basée sur la structure. Non destiné à la prédiction d'affinité. license: MIT license tags: [protein-ligand-docking, binding-pose-prediction, diffusion-docking, virtual-screening, diffdock] metadata: skill-author: K-Dense Inc. ---------|------------------|----------------| | > 0 | Élevée | Prédiction forte, probablement précise | | -1,5 à 0 | Modérée | Prédiction raisonnable, valider avec soin | | < -1,5 | Faible | Prédiction incertaine, nécessite validation |
Notes critiques :
- Confiance ≠ Affinité : Une confiance élevée signifie la certitude du modèle sur la structure, NON une liaison forte
- Le contexte importe : Ajustez vos attentes pour :
- Ligands volumineux (>500 Da) : Confiance plus faible attendue
- Protéines multi-chaînes : Peut diminuer la confiance
- Familles protéiques nouvelles : Peut donner des résultats médiocres
- Multiples échantillons : Examinez les 3-5 meilleures prédictions, cherchez un consensus
Pour des conseils détaillés : Lisez references/confidence_and_limitations.md en utilisant l'outil Read
Personnalisation des paramètres
Utiliser une configuration personnalisée
Créez une configuration personnalisée pour des cas d'usage spécifiques :
# Copier le modèle
cp assets/custom_inference_config.yaml my_config.yaml
# Éditer les paramètres (voir le modèle pour les présets)
# Puis exécuter avec la configuration personnalisée
python -m inference \
--config my_config.yaml \
--protein_ligand_csv input.csv \
--out_dir results/
Paramètres clés à ajuster
Densité d'échantillonnage :
samples_per_complex: 10→ Augmentez à 20-40 pour les cas difficiles- Plus d'échantillons = meilleure couverture mais temps d'exécution plus long
Étapes d'inférence :
inference_steps: 20→ Augmentez à 25-30 pour une précision plus élevée- Plus d'étapes = qualité potentiellement meilleure mais plus lent
Paramètres de température (contrôlent la diversité) :
temp_sampling_tor: 7.04→ Augmentez pour les ligands flexibles (8-10)temp_sampling_tor: 7.04→ Diminuez pour les ligands rigides (5-6)- Température plus élevée = poses plus diverses
Présets disponibles dans le modèle :
- Haute précision : Plus d'échantillons + étapes, température plus faible
- Criblage rapide : Moins d'échantillons, plus rapide
- Ligands flexibles : Température de torsion augmentée
- Ligands rigides : Température de torsion diminuée
Pour la référence complète des paramètres : Lisez references/parameters_reference.md en utilisant l'outil Read
Techniques avancées
Amarrage d'ensemble (flexibilité de la protéine)
Pour les protéines avec flexibilité connue, amarrez-vous à plusieurs conformations :
# Créer CSV d'ensemble
import pandas as pd
conformations = ["conf1.pdb", "conf2.pdb", "conf3.pdb"]
ligand = "CC(=O)Oc1ccccc1C(=O)O"
data = {
"complex_name": [f"ensemble_{i}" for i in range(len(conformations))],
"protein_path": conformations,
"ligand_description": [ligand] * len(conformations),
"protein_sequence": [""] * len(conformations)
}
pd.DataFrame(data).to_csv("ensemble_input.csv", index=False)
Exécutez l'amarrage avec échantillonnage augmenté :
python -m inference \
--config default_inference_args.yaml \
--protein_ligand_csv ensemble_input.csv \
--samples_per_complex 20 \
--out_dir results/ensemble/
Intégration avec des fonctions de scoring
DiffDock génère des poses ; combinez avec d'autres outils pour l'affinité :
GNINA (scoring de réseau de neurones rapide) :
for pose in results/*.sdf; do
gnina -r protein.pdb -l "$pose" --score_only
done
MM/GBSA (Plus précis, plus lent) : Utilisez AmberTools MMPBSA.py ou gmx_MMPBSA après minimisation d'énergie
Calculs d'énergie libre (Plus précis) : Utilisez OpenMM + OpenFE ou GROMACS pour les calculs FEP/TI
Flux de travail recommandé :
- DiffDock → Générer des poses avec scores de confiance
- Inspection visuelle → Vérifier la plausibilité structurale
- GNINA ou MM/GBSA → Rescore et classez par affinité
- Validation expérimentale → Essais biochimiques
Limitations et portée
DiffDock est conçu pour :
- Petits ligands moléculaires (typiquement 100-1000 Da)
- Composés organiques de type drogue
- Petits peptides (<20 résidus)
- Protéines monochaîne ou multichaîne
DiffDock N'est PAS conçu pour :
- Grandes biomolécules (amarrage protéine-protéine) → Utilisez DiffDock-PP ou AlphaFold-Multimer
- Grands peptides (>20 résidus) → Utilisez des méthodes alternatives
- Amarrage covalent → Utilisez des outils d'amarrage covalent spécialisés
- Prédiction d'affinité de liaison → Combinez avec des fonctions de scoring
- Protéines membranaires → Non spécifiquement entraîné, utilisez avec prudence
Pour les limitations complètes : Lisez references/confidence_and_limitations.md en utilisant l'outil Read
Dépannage
Problèmes courants
Problème : Scores de confiance faibles dans toutes les prédictions
- Cause : Ligands volumineux/inhabituels, site de liaison peu clair, flexibilité protéique
- Solution : Augmentez
samples_per_complex(20-40), essayez l'amarrage d'ensemble, validez la structure protéique
Problème : Erreurs de mémoire insuffisante
- Cause : Mémoire GPU insuffisante pour la taille du lot
- Solution : Réduisez
--batch_size 2ou traitez moins de complexes à la fois
Problème : Performance lente
- Cause : Exécution sur CPU au lieu de GPU
- Solution : Vérifiez CUDA avec
python -c "import torch; print(torch.cuda.is_available())", utilisez GPU
Problème : Poses de liaison peu réalistes
- Cause : Mauvaise préparation protéique, ligand trop volumineux, mauvais site de liaison
- Solution : Vérifiez la protéine pour les résidus manquants, supprimez les eaux éloignées, envisagez de spécifier le site de liaison
Problème : Erreurs « Module not found »
- Cause : Dépendances manquantes ou mauvais environnement
- Solution : Exécutez
python scripts/setup_check.pypour diagnostiquer
Optimisation des performances
Pour les meilleurs résultats :
- Utilisez GPU (essentiel pour un usage pratique)
- Pré-calculez les embeddings ESM pour un usage protéique répété
- Traitez par lots plusieurs complexes ensemble
- Commencez avec les paramètres par défaut, puis affinez si nécessaire
- Validez les structures protéiques (résolvez les résidus manquants)
- Utilisez SMILES canoniques pour les ligands
Interface utilisateur graphique
Pour un usage interactif, lancez l'interface web :
python app/main.py
# Naviguez vers http://localhost:7860
Ou utilisez la démo en ligne sans installation :
Ressources
Scripts d'aide (scripts/)
prepare_batch_csv.py : Créer et valider les fichiers CSV d'entrée par lots
- Créer des modèles avec des entrées d'exemple
- Valider les chemins de fichier et les chaînes SMILES
- Vérifier les colonnes requises et les problèmes de format
analyze_results.py : Analyser les scores de confiance et classer les prédictions
- Analyser les résultats d'exécutions simples ou par lots
- Générer des résumés statistiques
- Exporter en CSV pour analyse en aval
- Identifier les meilleures prédictions sur tous les complexes
setup_check.py : Vérifier la configuration de l'environnement DiffDock
- Vérifier la version Python et les dépendances
- Vérifier la disponibilité de PyTorch et CUDA
- Tester l'installation de RDKit et PyTorch Geometric
- Fournir des instructions d'installation si nécessaire
Documentation de référence (references/)
parameters_reference.md : Documentation complète des paramètres
- Toutes les options de ligne de commande et paramètres de configuration
- Valeurs par défaut et plages acceptables
- Paramètres de température pour contrôler la diversité
- Emplacements des points de contrôle de modèle et flags de version
Lisez ce fichier quand les utilisateurs ont besoin de :
- Explications détaillées des paramètres
- Conseils de réglage fin pour des systèmes spécifiques
- Stratégies d'échantillonnage alternatives
confidence_and_limitations.md : Interprétation des scores de confiance et limitations de l'outil
- Interprétation détaillée des scores de confiance
- Quand faire confiance aux prédictions
- Portée et limitations de DiffDock
- Intégration avec des outils complémentaires
- Stratégies de validation
Lisez ce fichier quand les utilisateurs ont besoin de :
- Aide pour interpréter les scores de confiance
- Comprendre quand NE PAS utiliser DiffDock
- Conseils sur la combinaison avec d'autres outils
- Stratégies de validation
workflows_examples.md : Exemples de flux de travail complets
- Instructions d'installation détaillées
- Exemples pas à pas pour tous les flux de travail
- Schémas d'intégration avancés
- Dépannage des problèmes courants
- Meilleures pratiques et conseils d'optimisation
Lisez ce fichier quand les utilisateurs ont besoin de :
- Exemples de flux de travail complets avec code
- Intégration avec GNINA, OpenMM ou d'autres outils
- Flux de travail de criblage virtuel
- Procédures d'amarrage d'ensemble
Actifs (assets/)
batch_template.csv : Modèle pour le traitement par lots
- CSV pré-formaté avec colonnes requises
- Entrées d'exemple montrant différents types d'entrée
- Prêt à personnaliser avec les données réelles
custom_inference_config.yaml : Modèle de configuration
- YAML annoté avec tous les paramètres
- Quatre configurations de présets pour les cas d'usage courants
- Commentaires détaillés expliquant chaque paramètre
- Prêt à personnaliser et utiliser
Meilleures pratiques
- Toujours vérifier l'environnement avec
setup_check.pyavant de démarrer de gros travaux - Valider les CSV par lots avec
prepare_batch_csv.pypour détecter les erreurs tôt - Commencer par les valeurs par défaut puis affiner les paramètres en fonction des besoins spécifiques du système
- Générer plusieurs échantillons (10-40) pour des prédictions robustes
- Inspection visuelle des meilleures poses avant analyse en aval
- Combiner avec des fonctions de scoring pour l'évaluation de l'affinité
- Utiliser les scores de confiance pour le classement initial, pas les décisions finales
- Pré-calculer les embeddings pour les campagnes de criblage virtuel
- Documenter les paramètres utilisés pour la reproductibilité
- Valider les résultats expérimentalement si possible
Citations
Quand vous utilisez DiffDock, citez les articles appropriés :
DiffDock-L (modèle par défaut actuel) :
Stärk et al. (2024) "DiffDock-L: Improving Molecular Docking with Diffusion Models"
arXiv:2402.18396
DiffDock original :
Corso et al. (2023) "DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking"
ICLR 2023, arXiv:2210.01776
Ressources supplémentaires
- GitHub Repository : https://github.com/gcorso/DiffDock
- Démo en ligne : https://huggingface.co/spaces/reginabarzilaygroup/DiffDock-Web
- Papier DiffDock-L : https://arxiv.org/abs/2402.18396
- Papier original : https://arxiv.org/abs/2210.01776