AgentStack
SKILL verified MIT Self-run

Molclaw Foldx Tool

skill-internscience-molclaw-molclaw-foldx-tool · by InternScience

>

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add skill-internscience-molclaw-molclaw-foldx-tool

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Molclaw Foldx Tool? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

FoldX Protein Stability & Mutation Analysis

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.

Critical Prerequisite

> MANDATORY: Run mode=repairpdb on every PDB before any other FoldX mode. > FoldX optimizes side-chain rotamers against its own empirical energy function; > unrepaired structures produce unreliable energy values. This is independent of > molclaw-pdbfixer — even pdbfixer-repaired structures need FoldX RepairPDB. > The output *_Repair.pdb is the ONLY acceptable input for subsequent FoldX modes.

  • For PDB file inputs, it is recommended to preprocess them using molclaw-pdbfixer before FoldX RepairPDB.

When To Use This Skill

| Scenario | Use FoldX | Use other tool instead | |----------|:---------:|----------------------| | Evaluate protein intrinsic stability (ΔG) | ✅ stability | — | | Predict effect of known mutations (ΔΔG) | ✅ buildmodel | — | | Protein–protein interface energy (fast, minutes) | ✅ analysecomplex | MMPBSA (precise, hours) | | Identify interface hotspot residues | ✅ alascan with chains | MMPBSA per-residue decomposition (precise) | | Saturating mutagenesis scan at specific sites | ✅ positionscan | — | | Affinity maturation on complex interface | ✅ pssm | — | | Per-residue energy decomposition | ✅ sequencedetail | interaction-visualizer (geometry level) | | Small-molecule binding free energy | ❌ | Boltz-2, MMPBSA | | MD trajectory dynamics | ❌ | GROMACS, OpenMM | | Batch docking pose evaluation | ❌ | EquiScore, ProLIF |

Unified Tool Interface

All 8 modes are accessed through a single tool foldx_tool with a mode parameter. The full parameter set is:

Run FoldX energy evaluation and mutation-scanning workflows for protein stability
or complex-interface screening.
Args:
    mode (str): FoldX command mode, REQUIRED. One of: repairpdb, stability,
        buildmodel, analysecomplex, alascan, positionscan, pssm, sequencedetail.
    pdb_path (str): Input PDB file path, REQUIRED for all modes.
    chains (str|None): Complex chain definition, e.g. 'A,B' or 'HL,A'.
        REQUIRED for analysecomplex and pssm.
        OPTIONAL for alascan (enables complex-mode interface scanning).
        Ignored by other modes. Default: None.
    positions (str|None): Comma-separated mutation position tokens.
        Format: OrigAA(1-letter) + ChainID + ResNum + TargetAA.
        REQUIRED for positionscan and pssm. Default: None.
    mutant_file (str|None): Path to FoldX-format mutation list file.
        REQUIRED for buildmodel. Default: None.
    number_of_runs (int): Independent repeats for buildmodel (1-100). Default: 5.
    water (str): Water handling: CRYSTAL|PREDICT|NONE|COMPARE. Default: CRYSTAL.
    pdb_hydrogens (bool): Read hydrogens from PDB. Default: False.
    dry_run (bool): Return planned command without execution. Default: False.
    timeout (int): Maximum execution time in seconds. Default: 7200.
Return:
    status (str): success | error | partial_success
    msg (str): Execution summary or error message
    mode (str): Normalized FoldX command mode
    output_dir (str|None): Run directory path
    foldx_command (str|None): Executed or planned command line
    pdb_file (str|None): Input PDB filename in output_dir
    key_files (dict): Key output files relative to output_dir
    metrics (dict): return_code, generated_file_count, and mode-specific values
        (total_energy, mean_ddg, ddg_values, interaction_energy, hotspot_count)
    stderr_tail (str, only on error): Last portion of FoldX stderr for diagnostics

Parameter–Mode Matrix

| Parameter | repairpdb | stability | buildmodel | analysecomplex | alascan | positionscan | pssm | sequencedetail | |-----------|:---------:|:---------:|:----------:|:--------------:|:-------:|:------------:|:----:|:--------------:| | pdb_path | REQUIRED | REQUIRED | REQUIRED | REQUIRED | REQUIRED | REQUIRED | REQUIRED | REQUIRED | | chains | — | — | — | REQUIRED | optional | — | REQUIRED | — | | positions | — | — | — | — | — | REQUIRED | REQUIRED | — | | mutant_file | — | — | REQUIRED | — | — | — | — | — | | number_of_runs | — | — | used (default 5) | — | — | — | — | — | | water | used | used | used | used | used | used | used | used | | pdb_hydrogens | used | used | used | used | used | used | used | used |

Mode 1: repairpdb — Structure Repair for FoldX

Optimizes side-chain rotamers and removes bad contacts against the FoldX energy function.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "repairpdb",
    "pdb_path": prepared_pdb_path
})
result = client.parse_result(response)
repaired_pdb = result["output_dir"] + "/" + [k for k in result["key_files"] if k.endswith("_Repair.pdb")][0]

Key outputs: {stem}_Repair.pdb (repaired structure), {stem}_Repair.fxout (energy log).

Mode 2: stability — Protein Free Energy (ΔG)

Computes total free energy of the protein structure. Lower (more negative) ΔG = more stable.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "stability",
    "pdb_path": foldx_repaired_pdb_path
})
result = client.parse_result(response)
total_energy = result["metrics"]["total_energy"]  # ΔG in kcal/mol

Key outputs: {stem}_0_ST.fxout. Key metric: metrics.total_energy.

Mode 3: buildmodel — Mutation ΔΔG Calculation

Models specified mutations and computes ΔΔG (free energy change upon mutation).

Mutant file format

Each line contains one mutation or combination, terminated by semicolon. Format per mutation: OrigAA(1-letter) + ChainID + ResidueNumber + NewAA(1-letter).

LA42G;
VA68D;
LA42G,VA68D;

Line 1: chain A position 42 Leu→Gly. Line 3: simultaneous double mutation.

Common format errors:

  • Leu42Gly; — must use single-letter amino acid codes
  • L42G; — must include chain ID between amino acid code and residue number
  • LA42G — must end with semicolon

Residue numbering (L3 Principle 17): Use the PDB file's numbering, not UniProt or literature numbering. Translate before writing the mutant file.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "buildmodel",
    "pdb_path": foldx_repaired_pdb_path,
    "mutant_file": "/path/to/mutations.txt",
    "number_of_runs": 5
})
result = client.parse_result(response)
mean_ddg = result["metrics"]["mean_ddg"]       # average ΔΔG in kcal/mol
ddg_values = result["metrics"]["ddg_values"]   # per-mutation ΔΔG list

Key outputs: Dif_{stem}.fxout (core ΔΔG), Average_{stem}.fxout, Raw_{stem}.fxout. Key metrics: metrics.mean_ddg, metrics.ddg_values.

Mode 4: analysecomplex — Protein–Protein Interface Energy

Computes interaction energy between two sides of a protein complex.

Determining the chains parameter

Before calling analysecomplex, you MUST check actual chain IDs in the PDB file. Do not assume chains are A and B. Use calculate_pdb_basic_info or inspect the PDB to identify chain IDs, then decide which chains form each side of the complex:

  • Antibody H+L vs antigen A → chains="HL,A"
  • Receptor A vs ligand B → chains="A,B"
  • Trimer AB vs C → chains="AB,C"
response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "analysecomplex",
    "pdb_path": foldx_repaired_complex_path,
    "chains": "A,B"   # MUST match actual PDB chain IDs
})
result = client.parse_result(response)
interaction_energy = result["metrics"]["interaction_energy"]  # kcal/mol

Key outputs: Interaction_{stem}_AC.fxout, Interface_Residues_{stem}_AC.fxout, Summary_{stem}_AC.fxout, Indiv_energies_{stem}_AC.fxout. Key metric: metrics.interaction_energy.

Mode 5: alascan — Alanine Scanning

Mutates each residue to alanine and computes ΔΔG. Two sub-modes:

Monomer mode (no chains): Computes effect on protein folding stability only.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "alascan",
    "pdb_path": foldx_repaired_pdb_path
})

Complex mode (with chains): Computes effect on interface interaction energy. This is the correct mode for interface hotspot identification.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "alascan",
    "pdb_path": foldx_repaired_complex_path,
    "chains": "A,B"   # MUST match actual PDB chain IDs
})
result = client.parse_result(response)
hotspot_count = result["metrics"]["hotspot_count"]  # residues with ΔΔG > 1.0

Key output: {stem}_AS.fxout. Key metric: metrics.hotspot_count.

> ⚠ Common mistake: Running AlaScan without chains on a complex PDB gives ΔΔG for monomer stability, NOT interface binding contribution. If your goal is to find interface hotspots, you MUST provide chains.

Mode 6: positionscan — Saturating Mutagenesis

Scans specified positions through all 20 amino acid substitutions (or a specified target).

Positions format

Each token: OrigAA(1-letter) + ChainID + ResidueNumber + Target. Use lowercase a to scan all 20 amino acids.

  • RA32a → Arg at chain A position 32, scan all 20 AAs
  • KA45G → Lys at chain A position 45, mutate only to Gly
  • RA32a,KA45a → scan both positions

Common format errors:

  • ArgA32a — must use single-letter AA code (R, not Arg)
  • R32a — must include chain ID (RA32a)
  • R:A:32:a — no separators within a token

Residue numbering (L3 Principle 17): positions use the PDB file's numbering. Translate from task numbering before calling.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "positionscan",
    "pdb_path": foldx_repaired_pdb_path,
    "positions": "RA32a,KA45a"
})
result = client.parse_result(response)

Key output: PS_{stem}_scanning_output.txt.

Mode 7: pssm — Position-Specific Scoring Matrix on Complex

Combines position scanning with complex analysis. For each position, evaluates all 20 substitutions considering BOTH protein stability AND interface binding energy. Requires both chains and positions.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "pssm",
    "pdb_path": foldx_repaired_complex_path,
    "chains": "A,B",
    "positions": "RA32a,KA45a"
})
result = client.parse_result(response)

Key outputs: PSSM_{stem}.txt (scoring matrix), PSSM_Clash_{stem}.txt (steric clashes).

Mode 8: sequencedetail — Per-Residue Energy Decomposition

Reports energy contribution of each residue broken down by van der Waals, hydrogen bonds, solvation, electrostatics, etc.

response = await client.session.call_tool("foldx_tool", arguments={
    "mode": "sequencedetail",
    "pdb_path": foldx_repaired_pdb_path
})
result = client.parse_result(response)

Key output: SD_{stem}.fxout.

Typical Workflow Combinations

Flow A — Protein stability assessment: repairpdbstability (wild-type ΔG) → buildmodel (mutant ΔΔG)

Flow B — Interface hotspot identification: repairpdbanalysecomplex (total interface energy) → alascan with chains (per-residue hotspots)

Flow C — Affinity maturation: repairpdbanalysecomplexpssm (systematic interface scanning for optimal substitutions)

Flow D — Mutation site discovery: repairpdbpositionscan (saturating scan) → select ΔΔG 1.0 kcal/mol → likely destabilizing

  • ΔΔG 1.0 kcal/mol → interface hotspot residue.

AnalyseComplex interaction energy: More negative = stronger binding. Near zero or positive = no significant complex formation.

Do NOT treat FoldX energies as exact binding free energies. FoldX uses an empirical force field with systematic errors of ±0.5–1.0 kcal/mol. Use for ranking and trend identification, not absolute affinity prediction. For high-accuracy ΔG, use MMPBSA (Skill 6).

Common Failures & Recovery

| Failure | Likely Cause | Recovery | |---------|-------------|----------| | "FoldX executable not found" | foldx binary not in PATH | Check foldx_bin parameter; verify FoldX installation | | "chains is required for mode=analysecomplex" | Forgot to specify chains | Check PDB chain IDs with calculate_pdb_basic_info, then set chains | | "invalid position token: 'Arg-A-32'" | positions format incorrect | Use format RA32a (1-letter AA + chain + number + target) | | "invalid chains format: 'A B'" | Chains not comma-separated | Use "A,B" not "A B" | | FoldX exit code ≠ 0 + stderr "not found in PDB" | Chain ID in chains parameter doesn't exist in PDB | Re-check PDB chain IDs | | FoldX timeout | Large protein + many-site scan | Reduce positions count or increase timeout | | partial_success with empty keyfiles | FoldX ran but output filenames don't match expected patterns | Manually check outputdir contents | | BuildModel ΔΔG all near 0 | Input structure not FoldX-repaired | Run mode=repairpdb first, then retry | | AlaScan finds no hotspots (all ΔΔG < 1.0) | Ran without chains (monomer mode instead of complex mode) | Add chains parameter to enable complex-mode scanning | | "mutant_file is required" | Forgot mutant_file for buildmodel | Create mutation list file in FoldX format (see Mode 3) |

Relationship to Other Tools

  • vs molclaw-pdbfixer (fix_pdb): PDBFixer does topology repair (missing atoms, non-standard residues). FoldX RepairPDB does energy-based side-chain optimization. For FoldX workflows, apply BOTH: pdbfixer first, then FoldX repairpdb.
  • vs molclaw-protein-ligand-mmpbsa / molclaw-protein-protein-mmpbsa: MMPBSA uses MD simulation for precise ΔG (Tier 4, hours). FoldX provides fast empirical ΔG/ΔΔG (Tier 3, minutes). Use FoldX for screening/ranking, MMPBSA for final validation of top candidates.
  • vs molclaw-interaction-visualizer: interaction-visualizer analyzes geometric interactions (H-bonds, hydrophobic contacts, etc.). FoldX provides energy quantification. They are complementary — use interaction-visualizer for visual/geometric analysis, FoldX for energy-based ranking.
  • vs proteinmpnn_tool: ProteinMPNN designs sequences from structure (generative). FoldX evaluates mutations on existing sequences (evaluative). Use ProteinMPNN for design, FoldX BuildModel/PositionScan for evaluation and cross-validation.

Source & license

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

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

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.