# Molclaw Proteinmpnn Tool

> Design or score protein sequences from PDB structures using a ProteinMPNN workflow wrapper.

- Skill: `internscience/molclaw-proteinmpnn-tool` (Agent Skill)
- Install (CLI): `npx skillmds@latest add internscience/molclaw-proteinmpnn-tool`
- Raw SKILL.md: https://api.skillmd.com/api/skills/internscience/molclaw-proteinmpnn-tool/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- License: MIT license
- Author: internscience (https://skillmd.com/u/internscience)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/internscience/molclaw-proteinmpnn-tool

---


# ProteinMPNN Sequence Design

Note: 
- Local files are not directly accessible by the server. Please upload them to the server using `molclaw-file-transfer` before execution. 
- For PDB file inputs, it is recommended to preprocess them using `molclaw-pdbfixer` before execution.
- Please refer to skill `molclaw-scp-server` to complete tool invocation.

## Usage

### 1. Protein Sequence Design and Scoring
The description of tool *proteinmpnn_tool*.

```tex
Run ProteinMPNN sequence design or scoring from protein structures with optional chain constraints and amino-acid controls.
Args:
    pdb_input (str): Input PDB file path or a directory containing multiple PDB files.
    model_name (str): Model name in {v_48_002, v_48_010, v_48_020, v_48_030} (default: "v_48_020").
    use_soluble (bool): Use soluble-protein model weights (default: False).
    ca_only (bool): Run CA-only model mode (default: False).
    num_seq (int): Number of sequences generated per target (default: 8).
    sampling_temp (str): Sampling temperature string; supports multiple values separated by spaces (default: "0.1").
    chains_to_design (str): Chain IDs to redesign, e.g. "A" or "A C" (default: "").
    fixed_positions (str): Residue position lists for chain constraints (default: "").
    specify_non_fixed (bool): Interpret listed positions as designable positions instead of fixed positions (default: False).
    homooligomer (bool): Enable tied-position design for homooligomers (default: False).
    omit_aas (str): Globally omitted amino acids (default: "X").
    bias_aa (str): Amino-acid bias JSON string (default: "").
    score_only (bool): Run scoring-only mode instead of sequence generation (default: False).
    path_to_fasta (str): FASTA path used in scoring mode (default: "").
    save_probs (bool): Save probability matrices (default: False).
    seed (int): Random seed (default: 0).
    skip_check (bool): Skip dependency checks in source pipeline (default: False).
    dry_run (bool): Validate inputs and create run directory without executing the pipeline (default: False).
Return:
    status (str): "success", "error", or "partial_success".
    msg (str): Human-readable execution summary.
    output_dir (str): Unique run directory under tool_result/proteinmpnn_tool_result.
    results_dir (str): Result directory path under output_dir/results.
    model_name (str): Effective model name used in this run.
    num_seq (int): Effective number of sequences used in this run.
    sampling_temp (str): Effective sampling temperature used in this run.
    score_only (bool): Effective scoring mode flag.
    dry_run (bool): Effective dry-run flag.
    output_files (dict): Produced output paths such as seqs/scores/probs directories.
    metrics (dict): Summary metrics, including sequence/score/prob file counts when available.
```

How to use tool *proteinmpnn_tool* :

```python
response = await client.session.call_tool(
    "proteinmpnn_tool",
    arguments={
        "pdb_input": "/path/to/input.pdb",
        "num_seq": 8,
        "sampling_temp": "0.1",
        "dry_run": True
    }
)
result = client.parse_result(response)
key_output = result["results_dir"]

```

#### Example parameter sets

```python
# 1) Main mode
{
    "pdb_input": "/path/to/input.pdb",
    "model_name": "v_48_020",
    "num_seq": 8,
    "sampling_temp": "0.1",
    "chains_to_design": "A",
    "dry_run": False
}

# 2) Variant mode
{
    "pdb_input": "/path/to/input.pdb",
    "score_only": True,
    "path_to_fasta": "relative/path/to/sequences.fasta",
    "seed": 42,
    "dry_run": False
}
```

