# Solublempnn

> >

- **Type:** Skill
- **Install:** `agentstack add skill-xuzhougeng-wisp-science-solublempnn`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [xuzhougeng](https://agentstack.voostack.com/s/xuzhougeng)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [xuzhougeng](https://github.com/xuzhougeng)
- **Source:** https://github.com/xuzhougeng/wisp-science/tree/main/skills/solublempnn
- **Website:** https://wispscience.com/

## Install

```sh
agentstack add skill-xuzhougeng-wisp-science-solublempnn
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# SolubleMPNN

SolubleMPNN is not a separate package — it is the ProteinMPNN architecture
retrained on a soluble-PDB subset, which shifts the output distribution away
from the surface hydrophobics that the full-PDB model happily places (because
many of them are buried at crystallographic or membrane interfaces in the
training set). Reach for it when the goal is soluble yield in a heterologous
host; stick with `proteinmpnn` when native-like recovery matters more, since
the soluble prior trades a few points of recovery for the surface bias. Code
and weights are MIT (github.com/dauparas/ProteinMPNN, `soluble_model_weights`;
also exposed via github.com/dauparas/LigandMPNN). The model is small enough to
run on CPU — for a handful of sequences on one backbone that is seconds and
usually faster than dispatching; a GPU helps for batched campaigns. Either way
the repo is cloned in-job (no PyPI dist; checkpoints bundled).

## Running it

```bash
pip install torch numpy   # if not already present
git clone --depth 1 https://github.com/dauparas/ProteinMPNN.git proteinmpnn
cd proteinmpnn
python protein_mpnn_run.py \
  --pdb_path backbone.pdb --pdb_path_chains "A" \
  --out_folder out --num_seq_per_target 16 \
  --sampling_temp "0.1" --use_soluble_model
```

The runner uses repo-relative imports, so the `cd` line is load-bearing —
invoking the script by absolute path from elsewhere fails with
`ModuleNotFoundError`. If you want threaded designed-sequence PDBs as well,
the LigandMPNN runner accepts `--model_type soluble_mpnn` (see `ligandmpnn`
for that path; it needs ProDy in addition to torch). The flag surface is
otherwise identical to `proteinmpnn` (or `ligandmpnn` for the second form),
including the string-typed temperature and the fixed-position JSONL keyed by
PDB stem — see `proteinmpnn` for the parsing quirks. The repo
ships soluble weights at `v_48_010` and `v_48_020` only; asking for
`--model_name v_48_002 --use_soluble_model` errors on a missing checkpoint, so
leave `--model_name` at its default.

Output is `out/seqs/.fa` with `score=` and `seq_recovery=` in each
header. Expect recovery against a native structure to drop a few points
relative to vanilla — that is the prior working, not a bug.

## Hydrophobic surface patches still recur where the fold needs them

Soluble weights shift the distribution; they do not enforce a hydrophobicity
ceiling. If a particular surface patch keeps coming back hydrophobic, that
patch is likely structurally load-bearing and the network is paying the
solubility cost to keep the fold. Layering `--omit_AAs "CW"` or a per-position
bias on top is fine, but check that the resulting designs still fold (via
`boltz` or `esmfold2`) before assuming the constraint was free.

## "Crystallisable" training set ≠ "soluble in your host" — keep an orthogonal filter

The training set is "structures that were soluble enough to crystallise," which
correlates with but is not the same as "expresses solubly in E. coli at 37 °C."
For campaigns where expression yield is the bottleneck, rank the soluble-MPNN
output by an orthogonal sequence-based predictor before committing wet-lab
slots; treat the MPNN bias as widening the funnel, not replacing the filter.

---

**Next:** fold the designs with `boltz` or `esmfold2` to confirm the backbone
is still recovered, then carry survivors into the expression screen.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [xuzhougeng](https://github.com/xuzhougeng)
- **Source:** [xuzhougeng/wisp-science](https://github.com/xuzhougeng/wisp-science)
- **License:** Apache-2.0
- **Homepage:** https://wispscience.com/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-xuzhougeng-wisp-science-solublempnn
- Seller: https://agentstack.voostack.com/s/xuzhougeng
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
