Source profileQuality 79/100Review permissions

xuzhougeng/wisp-science/skills/ligandmpnn/SKILL.md

ligandmpnn

Inverse-fold a backbone with ligand, nucleic-acid, and metal context using LigandMPNN (Dauparas et al. 2023, github.com/dauparas/LigandMPNN). Reach for this skill to redesign the residues lining a binding pocket around a bound small molecule or cofactor, to design metal-coordinating sites where the geometry must be respected, or to get threaded designed-sequence PDBs out of any MPNN run.

Source repository stars
560
Declared platforms
0
Static risk flags
2
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

LigandMPNN extends the ProteinMPNN graph with non-protein atoms — small molecules, nucleic acids, and metals are visible to the network — so it is the right inverse-folding tool whenever the design surface includes a bound ligand or cofactor that vanilla proteinmpnn would ignore…

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/xuzhougeng/wisp-science --skill "skills/ligandmpnn"
    Safe inspection promptEditorial

    Inspect the Agent Skill "ligandmpnn" from https://github.com/xuzhougeng/wisp-science/blob/95d2c13d1665d46a388b5bdc998dcce0d5ec2eee/skills/ligandmpnn/SKILL.md at commit 95d2c13d1665d46a388b5bdc998dcce0d5ec2eee. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Running it

      Residue selections are space-separated {chain}{resnum} tokens inside one quoted string ("A45 A46 B10"; insertion codes append directly, "B82A"). That is the format for --fixedresidues and --redesignedresidues; --biasAAperresidue and --omitAAperresidue instead take a path to a JS…

      Residue selections are space-separated {chain}{resnum} tokens inside one quoted string ("A45 A46 B10"; insertion codes append directly, "B82A"). That is the format for --fixedresidues and --redesignedresidues; --biasAAp…Under --outfolder you get seqs/.fa (headers carry overallconfidence and ligandconfidence), backbones/{1..N}.pdb with the designed sequence threaded onto the input coordinates, and — with --packsidechains 1 — full-atom p…
    2. 02

      Model types — which one to pick

      Each model type has its own --checkpoint flag; the wrong pairing is caught at load time, but the default checkpoint path is relative to the repo, so run from inside the clone or pass the absolute path.

      Each model type has its own --checkpoint flag; the wrong pairing is caught at load time, but the default checkpoint path is relative to the repo, so run from inside the clone or pass the absolute path.
    3. 03

      ProDy compiles from source on py3.11 — pip install fails without a C compiler

      run.py imports ProDy unconditionally for ligand atom parsing. On py3.11 the prebuilt wheel is missing on PyPI, so pip install ProDy compiles from source and needs a working C/C++ compiler. On an unprivileged SSH context, prefer an existing compiler module or conda-provided toolc…

      run.py imports ProDy unconditionally for ligand atom parsing. On py3.11 the prebuilt wheel is missing on PyPI, so pip install ProDy compiles from source and needs a working C/C++ compiler. On an unprivileged SSH context…
    4. 04

      Turning ligand context off changes the answer, not the model

      --ligandmpnnuseatomcontext 0 keeps the ligand-aware weights but masks the ligand atoms at inference. That is useful for an ablation — the difference between context-on and context-off tells you how much the ligand is shaping the design — but it is not equivalent to running prote…

      --ligandmpnnuseatomcontext 0 keeps the ligand-aware weights but masks the ligand atoms at inference. That is useful for an ablation — the difference between context-on and context-off tells you how much the ligand is sh…
    5. 05

      Stripped HETATM or a chain filter silently drops the ligand — the design comes back pocket-blind

      LigandMPNN does not warn when no ligand atoms are found; it just runs as if --modeltype proteinmpnn had been picked. The two common ways this happens are an input PDB whose HETATM records were stripped by an upstream clean-up step, and --parsethesechainsonly naming the protein c…

      LigandMPNN does not warn when no ligand atoms are found; it just runs as if --modeltype proteinmpnn had been picked. The two common ways this happens are an input PDB whose HETATM records were stripped by an upstream cl…

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 20

    The documentation includes network, browsing, or remote request actions.

    git clone --depth 1 https://github.com/dauparas/LigandMPNN.git ligandmpnn

    Runs scripts

    medium · line 20

    The documentation asks the agent to run terminal commands or scripts.

    git clone --depth 1 https://github.com/dauparas/LigandMPNN.git ligandmpnn

    Runs scripts

    medium · line 23

    The documentation asks the agent to run terminal commands or scripts.

    bash get_model_params.sh ./model_params

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score79/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars560SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    xuzhougeng/wisp-science
    Skill path
    skills/ligandmpnn/SKILL.md
    Commit
    95d2c13d1665d46a388b5bdc998dcce0d5ec2eee
    License
    AGPL-3.0
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    LigandMPNN

    LigandMPNN extends the ProteinMPNN graph with non-protein atoms — small molecules, nucleic acids, and metals are visible to the network — so it is the right inverse-folding tool whenever the design surface includes a bound ligand or cofactor that vanilla proteinmpnn would ignore. The same run.py is also the most convenient runner for the other MPNN families because, unlike the original ProteinMPNN script, it threads designs back onto the input structure and writes PDBs alongside the FASTA. Code and weights are MIT (github.com/dauparas/LigandMPNN). The model is small enough to run on CPU — for a handful of designs on one structure that is seconds and usually faster than dispatching, so the normal path is local with pip install torch numpy biopython ProDy ml_collections dm-tree; a GPU helps for batched campaigns.

    Running it

    pip install torch numpy biopython ProDy ml_collections dm-tree
    git clone --depth 1 https://github.com/dauparas/LigandMPNN.git ligandmpnn
    cd ligandmpnn
    sed -i 's/np\.int\b/np.int64/g' openfold/np/residue_constants.py   # repo pins numpy 1.23; alias removed in >=1.24
    bash get_model_params.sh ./model_params
    python run.py \
      --model_type ligand_mpnn \
      --checkpoint_ligand_mpnn ./model_params/ligandmpnn_v_32_010_25.pt \
      --pdb_path complex.pdb \
      --out_folder out \
      --batch_size 8 --number_of_batches 4 \
      --temperature 0.1 \
      --fixed_residues "A45 A46 A47 A48"
    

    Residue selections are space-separated {chain}{resnum} tokens inside one quoted string ("A45 A46 B10"; insertion codes append directly, "B82A"). That is the format for --fixed_residues and --redesigned_residues; --bias_AA_per_residue and --omit_AA_per_residue instead take a path to a JSON file whose keys use the same {chain}{resnum} form, and --chains_to_design is comma-separated ("A,B"). If you want to redesign only the pocket, naming the pocket residues in --redesigned_residues is usually shorter than fixing everything else.

    Under --out_folder you get seqs/<stem>.fa (headers carry overall_confidence and ligand_confidence), backbones/<stem>_{1..N}.pdb with the designed sequence threaded onto the input coordinates, and — with --pack_side_chains 1 — full-atom packed models in packed/. The threaded PDBs are the reason to prefer this runner even for protein-only jobs.

    Model types — which one to pick

    --model_typeseesuse
    ligand_mpnnbackbone + ligand/NA/metal atomsbinding-pocket or active-site design
    protein_mpnnbackbone onlyprotein–protein; same weights as proteinmpnn
    soluble_mpnnbackbone only, soluble-trainedexpression-biased prior; see solublempnn
    *_membrane_mpnnbackbone + membrane labeltransmembrane designs

    Each model type has its own --checkpoint_<type> flag; the wrong pairing is caught at load time, but the default checkpoint path is relative to the repo, so run from inside the clone or pass the absolute path.

    ProDy compiles from source on py3.11 — pip install fails without a C compiler

    run.py imports ProDy unconditionally for ligand atom parsing. On py3.11 the prebuilt wheel is missing on PyPI, so pip install ProDy compiles from source and needs a working C/C++ compiler. On an unprivileged SSH context, prefer an existing compiler module or conda-provided toolchain and export CC=gcc CXX=g++; do not assume system package installation is allowed. On most CPU-local Python distributions the sdist builds in ~10 s if no wheel matches.

    Turning ligand context off changes the answer, not the model

    --ligand_mpnn_use_atom_context 0 keeps the ligand-aware weights but masks the ligand atoms at inference. That is useful for an ablation — the difference between context-on and context-off tells you how much the ligand is shaping the design — but it is not equivalent to running protein_mpnn, which uses a different checkpoint trained without those features. For a fair protein-only baseline, switch --model_type.

    Stripped HETATM or a chain filter silently drops the ligand — the design comes back pocket-blind

    LigandMPNN does not warn when no ligand atoms are found; it just runs as if --model_type protein_mpnn had been picked. The two common ways this happens are an input PDB whose HETATM records were stripped by an upstream clean-up step, and --parse_these_chains_only naming the protein chains but not the ligand's. If ligand_confidence in the FASTA header is missing or zero across every design, the model never saw the ligand — fix the input, do not trust the sequences.

    Wisp execution

    Use python only for bounded interactive checks. For a long or GPU-backed workload, require a selected and probed ssh:<alias> context and load remote-compute-ssh. Put the documented invocation in a self-contained project script, activate the remote environment explicitly, stage only small files with input_paths, and make the command write to a known absolute remote result path. Submit it with run_in_context and register that exact ssh:// path in output_specs. Call monitor_run once when waiting is needed, get_run once for a snapshot, or cancel_run to stop. Do not send a scheduler submission through the SSH-direct runner.

    Errors worth recognizing

    You seeIt means / do this
    ModuleNotFoundError: No module named 'tree'pip install dm-tree — the vendored openfold imports it unconditionally.
    module 'numpy' has no attribute 'int'Run the sed patch on openfold/np/residue_constants.py, or pin numpy<1.24 (py≤3.11 only).
    error: command 'clang' failed while pip install ProDySee the ProDy gotcha above — apt_install("build-essential") and env({"CC":"gcc","CXX":"g++"}).
    FileNotFoundError for model_params/...Checkpoints not fetched — run bash get_model_params.sh ./model_params from inside the clone.

    Next: fold the designs in complex with the ligand via boltz or chai1 (both accept SMILES/CCD) and filter on ipTM and ligand placement.

    Alternatives

    Compare before choosing

    Computed 10042,015

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10042,015

    coreyhaines31/marketingskills

    churn-prevention

    When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

    Computed 1007

    event4u-app/agent-config

    design-intelligence

    Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.

    Computed 1007

    event4u-app/agent-config

    design-system-capture

    Write and maintain DESIGN.md + PRODUCT.md — captures visual decisions and interaction patterns so design tasks stay consistent across sessions without re-scanning past work.