PyMOL
Prérequis
uv: Lisez la skilluvet suivez ses instructions de configuration pour vous assurer queuvest installé et sur PATH.- Notification utilisateur : Si LICENSE_NOTIFICATION.txt n'existe pas déjà dans le répertoire de cette skill, alors (1) notifiez l'utilisateur de manière bien visible de vérifier la licence sur https://www.pymol.org/, puis (2) créez le fichier en enregistrant le texte de notification et l'horodatage.
Vue d'ensemble
Toutes les commandes PyMOL s'exécutent sur l'hôte via uv avec le rendu logiciel OSMesa — aucun GPU, affichage ou serveur X n'est nécessaire. Les fichiers de structure doivent être téléchargés sur l'hôte avant d'exécuter PyMOL.
À NE PAS utiliser quand :
- L'utilisateur veut exécuter des prédictions AlphaFold.
- L'utilisateur veut des simulations d'ancrage ou de dynamique moléculaire.
- L'utilisateur n'a que une séquence et aucun fichier de structure — récupérez d'abord la structure. Vérifiez si d'autres skills installées peuvent récupérer des structures de la PDB ou de la AlphaFold Database avant de continuer.
Configuration (Instructions pour l'agent)
Assurez-vous que uv est installé sur le système hôte. Les scripts PyMOL utilisent les en-têtes PEP 0723 pour déclarer leurs dépendances, et uv run gérera automatiquement leur installation (y compris pymol-open-source-whl) quand le script s'exécute.
Règles fondamentales
- Les chemins de sortie doivent être absolus ou relatifs à la racine du projet de l'utilisateur. Exécutez toujours les scripts PyMOL depuis le répertoire du projet de l'utilisateur.
- Rendu logiciel uniquement. Utilisez
cmd.png()pour la sortie. N'utilisez jamaiscmd.draw()oucmd.ray()avec accélération matérielle — OSMesa ne le supporte pas. Définissez la variable d'environnementPYOPENGL_PLATFORM=osmesapour le rendu sans affichage. - Enregistrez toujours un fichier de session
.pseaux côtés de toute sortie PNG. Cela permet à l'utilisateur d'ouvrir la session dans sa PyMOL locale pour une inspection ultérieure. - Appelez toujours
cmd.quit()à la fin de chaque script PyMOL. L'omettre cause l'arrêt du processus. - Le code d'initialisation est obligatoire. Chaque script PyMOL doit commencer par la séquence d'initialisation.
from pymol import cmddoit venir aprèsfinish_launching(), pas avant. - Consultez references/PYMOL_REFERENCE.md pour la syntaxe de sélection, les commandes courantes et les pièges.
- Vérification préalable des fichiers : Avant d'écrire le script PyMOL ou de l'exécuter, vous DEVEZ vérifier que le fichier de structure demandé existe réellement sur la machine hôte.
- Vérifiez le chargement de la structure : Après avoir chargé une structure avec
cmd.load(), vérifiez toujours qu'elle a réussi en vérifiantcmd.count_atoms("all"). Si le résultat est 0, imprimez une erreur sur stdout et appelezcmd.quit()immédiatement. - Notification : Si cette skill est utilisée, assurez-vous que cela est mentionné dans la sortie.
Démarrage rapide
- Assurez-vous que les fichiers de structure sont téléchargés dans un répertoire du projet de l'utilisateur.
- Écrivez un script PyMOL Python (par exemple,
render.py) avec le code d'initialisation obligatoire et l'en-tête PEP 0723. - Exécutez-le via
uv run:bash uv run render.py
Exemple de script minimal (render.py)
# /// script
# requires-python = ">=3.10, <3.13"
# dependencies = [
# "pymol-open-source-whl",
# ]
# ///
import os
import sys
# Set environment variable for headless rendering
os.environ["PYOPENGL_PLATFORM"] = "osmesa"
import pymol # pytype: disable=import-error
pymol.pymol_argv = ["pymol", "-cq"]
pymol.finish_launching()
from pymol import cmd # pytype: disable=import-error
cmd.load("AF-P00520-F1-model_v4.cif", "structure")
cmd.show("cartoon")
cmd.color("green", "ss h")
cmd.color("yellow", "ss s")
cmd.color("gray", "ss l+''")
cmd.orient()
cmd.set("ray_opaque_background", 1)
cmd.png("output/render.png", width=1200, height=900, dpi=150)
cmd.save("output/session.pse")
cmd.quit()
Recettes courantes
Consultez references/RECIPES.md pour les recettes complètes et prêtes à copier-coller. Recettes disponibles :
- Cartoon avec coloration de structure secondaire — coloration basique hélice/feuillet/boucle
- Coloration par facteur B (pLDDT) — coloration continue du spectre par facteur B
- Coloration pLDDT AlphaFold — couleurs de confiance canoniques basées sur seuils
- Mettre en surbrillance des résidus spécifiques — montrer le site actif ou les résidus clés comme bâtons
- Rendu de surface — surface transparente sur cartoon
- Rendu de surface électrostatique — électrostatiques sous vide (qualitatif)
- Couleurs de complexe multi-chaîne — coloration automatique par chaîne
- Analyse putty par facteur B — largeur de tube proportionnelle à la flexibilité
- Visualisation de cavités et poches — détection de cavités de surface avec focus sur ligand
- Rendu batch multi-structure — rendu d'un répertoire de structures
- Mesurer la distance entre résidus — distance CA–CA avec étiquettes
- Zoom dans la poche de liaison — simple focus sur poche
- Interaction protéine-ligand — isolement du ligand, rendu stylisé, contacts polaires
- Superposition de deux structures avec RMSD — align/cealign avec repli automatique
- Mutagenèse in silico — mutation de résidus avec l'assistant mutagenèse
- Charger et modifier une session existante — réouvrir un fichier
.pse
Interprétation des résultats
- Le répertoire
output/contient les images PNG et un fichier de session.pse. - Toutes les mesures ou métriques (distances, RMSD, comptages d'atomes) sont imprimées sur stdout par le script PyMOL. Rapportez ces valeurs à l'utilisateur.
- Présentez les images PNG à l'utilisateur et décrivez la visualisation.
- Dites à l'utilisateur qu'il peut ouvrir le fichier
.psedans sa PyMOL locale pour explorer, faire pivoter ou modifier la visualisation. - Si l'utilisateur veut des modifications, chargez la
.pseenregistrée dans un nouveau script et réexécutez. - Les grandes sessions avec surfaces peuvent dépasser la limite
--max_output_mb(500 MB par défaut). Augmentez-la avec--max_output_mb=1000si nécessaire.