PRISM is a comprehensive tool for building protein-ligand systems for molecular dynamics simulations in GROMACS. It supports multiple force fields for ligands including GAFF, GAFF2, OpenFF, CGenFF, OPLS-AA, and SwissParam (MMFF/MATCH/Hybrid).
- Multiple Force Field Support
- GAFF/GAFF2 via AmberTools
- OpenFF via openff-toolkit
- CGenFF (CHARMM General Force Field) via web download
- OPLS-AA via LigParGen server
- SwissParam (MMFF/MATCH/Hybrid) via SwissParam server
- Automatic System Building: Complete workflow from PDB/MOL2/SDF to simulation-ready files
- Flexible Configuration: YAML-based configuration for easy customization
- Smart File Processing: Handles various input formats with automatic conversion
- Position Restraints: Automatic generation for equilibration protocols
- Complete MDP Files: Pre-configured protocols for minimization, equilibration, and production
- Metal Ion Support: Intelligent recognition and handling of metal ions (Zn, Ca, Mg, Fe, etc.) with distance-based filtering
- Advanced Protein Cleaning: Smart removal of heteroatoms and crystallization artifacts while preserving structural metals
- Protonation State Prediction: Optional pKa-based protonation for ionizable residues with PROPKA (HIS/ASP/GLU/LYS/CYS/TYR)
- Protonation States: Support for special residue protonation states (CYM, HID, HIE, HIP, CYX, LYN, ASH, GLH)
- CADD-Agent
-
GROMACS (required)
# Ubuntu/Debian, CUDA-toolkit is needed, Dependence installation nvcc --version # For check sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install cmake # Download GROMACS Package wget https://ftp.gromacs.org/gromacs/gromacs-2025.1.tar.gz tar xfz gromacs-2025.1.tar.gz # Prepare to build GROMACS with cmake cd gromacs-2025.1 mkdir build cd build # Installation cmake .. -DGMX_MPI=ON \ -DGMX_BUILD_OWN_FFTW=ON \ -DGMX_GPU=CUDA \ -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \ -DCUDA_INCLUDE_DIRS=/usr/local/cuda/include \ -DCUDA_CUDART_LIBRARY=/usr/local/cuda/lib64 \ -DCMAKE_INSTALL_PREFIX=~/gromacs-2025.1 make -j${nproc} make check # Optional but recommended sudo make install source /mnt/data/zf/gromacs-2024.3/bin/GMXRC # install bioconda conda install -c bioconda
-
Python 3.10 with required packages:
# create environment conda create -n prism python=3.10 conda activate prism -
PDBFixer and pyyaml (required)
conda install -c conda-forge pdbfixer numpy scipy pip install pyyaml
# PROPKA for pKa-based protonation prediction (optional)
conda install -c conda-forge propka
# or
pip install propka>=3.4.0
# Or install with PRISM protonation extras
pip install -e .[protonation]# AmberTools (required)
conda install conda-forge::ambertools
# ACPYPE (required)
pip install acpype
# Optional but recommended
conda install -c conda-forge rdkit# OpenFF toolkit and dependencies
conda install -c conda-forge openff-toolkit openff-interchange
# RDKit (required for SDF handling)
conda install -c conda-forge rdkit
# OpenBabel (Optional but Recommended)
conda install conda-forge::openbabelCGenFF requires downloading force field files from the web server:
- Visit https://cgenff.com/
- Upload your ligand structure (MOL2/SDF)
- Download the generated files (PDB and TOP files)
- Place them in a directory
- Use
--ligand-forcefield cgenff --forcefield-path /path/to/cgenff_files
Note: For halogens (F, Cl, Br, I), PRISM automatically removes lone pair (LP) atoms and transfers their charges to halogen atoms.
OPLS-AA uses the LigParGen web server (requires internet connection):
# Required Python packages
pip install requestsUsage: --ligand-forcefield opls
Note: Internet connection required during force field generation.
SwissParam uses the SwissParam web server (requires internet connection):
# Required Python packages
pip install mechanizeUsage:
--ligand-forcefield mmff(MMFF-based)--ligand-forcefield match(MATCH)--ligand-forcefield hybrid(Hybrid MMFF-based-MATCH)
Note: Internet connection required during force field generation.
-
Clone or download the PRISM package
-
Install in development mode:
cd PRISM pip install -e .
Or use directly without installation:
python /path/to/PRISM/prism/builder.pyFor detailed tutorials, guides, and API references, visit the PRISM documentation:
The documentation includes:
- Basic Tutorial: Get started with PRISM from scratch
- FEP Tutorial: Learn free energy perturbation calculations
- Configuration Guide: Detailed parameter reference
- Analysis Tools: Trajectory and energy analysis
- FEP User Guide: Complete FEP workflow documentation
-
Using GAFF (default):
prism protein.pdb ligand.mol2 -o output_dir
-
Using GAFF2 (improved GAFF):
prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield gaff2
-
Using OpenFF:
prism protein.pdb ligand.sdf -o output_dir --ligand-forcefield openff
-
Using CGenFF:
# First download CGenFF files from https://cgenff.com/ # Single ligand: prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield cgenff --forcefield-path /path/to/cgenff_files # Multiple ligands (requires one --forcefield-path per ligand): prism -pf protein.pdb -lf ligand1.mol2 -lf ligand2.mol2 -o output_dir \ --ligand-forcefield cgenff \ -ffp /path/to/cgenff_ligand1 \ -ffp /path/to/cgenff_ligand2
-
Using OPLS-AA:
prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield opls
-
Using SwissParam force fields:
# MMFF-based prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield mmff # MATCH prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield match # Hybrid MMFF-based-MATCH prism protein.pdb ligand.mol2 -o output_dir --ligand-forcefield hybrid
-
With custom configuration:
prism protein.pdb ligand.mol2 -o output_dir --config my_config.yaml
-
With specific protein force field:
prism protein.pdb ligand.mol2 -o output_dir --forcefield amber14sb --water tip4p
-
With advanced protein cleaning:
# Keep all metal ions prism protein.pdb ligand.mol2 -o output_dir --ion-mode keep_all # Remove all metal ions prism protein.pdb ligand.mol2 -o output_dir --ion-mode remove_all # Custom distance cutoff for metals prism protein.pdb ligand.mol2 -o output_dir --distance-cutoff 8.0 # Keep crystal water molecules prism protein.pdb ligand.mol2 -o output_dir --keep-crystal-water
-
With protonation prediction (PROPKA):
# Use PROPKA at pH 7.0
prism protein.pdb ligand.mol2 -o output_dir --protonation propka
# Custom pH (7.4)
prism protein.pdb ligand.mol2 -o output_dir --protonation propka --pH 7.4After PRISM completes, you can run the simulations:
cd output_dir/GMX_PROLIG_MDCreate and save localrun.sh:
#!/bin/bash
######################################################
# SIMULATION PART
######################################################
# Energy Minimization (EM)
mkdir -p em
if [ -f ./em/em.gro ]; then
echo "EM already completed, skipping..."
elif [ -f ./em/em.tpr ]; then
echo "EM tpr file found, continuing from checkpoint..."
gmx mdrun -s ./em/em.tpr -deffnm ./em/em -ntmpi 1 -ntomp 10 -gpu_id 0 -v -cpi ./em/em.cpt
else
echo "Starting EM from scratch..."
gmx grompp -f ../mdps/em.mdp -c solv_ions.gro -r solv_ions.gro -p topol.top -o ./em/em.tpr -maxwarn 999
gmx mdrun -s ./em/em.tpr -deffnm ./em/em -ntmpi 1 -ntomp 10 -gpu_id 0 -v
fi
# NVT Equilibration
mkdir -p nvt
if [ -f ./nvt/nvt.gro ]; then
echo "NVT already completed, skipping..."
elif [ -f ./nvt/nvt.tpr ]; then
echo "NVT tpr file found, continuing from checkpoint..."
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./nvt/nvt.tpr -deffnm ./nvt/nvt -v -cpi ./nvt/nvt.cpt
else
echo "Starting NVT from scratch..."
gmx grompp -f ../mdps/nvt.mdp -c ./em/em.gro -r ./em/em.gro -p topol.top -o ./nvt/nvt.tpr -maxwarn 999
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./nvt/nvt.tpr -deffnm ./nvt/nvt -v
fi
# NPT Equilibration
mkdir -p npt
if [ -f ./npt/npt.gro ]; then
echo "NPT already completed, skipping..."
elif [ -f ./npt/npt.tpr ]; then
echo "NPT tpr file found, continuing from checkpoint..."
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./npt/npt.tpr -deffnm ./npt/npt -v -cpi ./npt/npt.cpt
else
echo "Starting NPT from scratch..."
gmx grompp -f ../mdps/npt.mdp -c ./nvt/nvt.gro -r ./nvt/nvt.gro -t ./nvt/nvt.cpt -p topol.top -o ./npt/npt.tpr -maxwarn 999
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./npt/npt.tpr -deffnm ./npt/npt -v
fi
# Production MD
mkdir -p prod
if [ -f ./prod/md.gro ]; then
echo "Production MD already completed, skipping..."
elif [ -f ./prod/md.tpr ]; then
echo "Production MD tpr file found, continuing from checkpoint..."
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./prod/md.tpr -deffnm ./prod/md -v -cpi ./prod/md.cpt
else
echo "Starting Production MD from scratch..."
gmx grompp -f ../mdps/md.mdp -c ./npt/npt.gro -r ./npt/npt.gro -p topol.top -o ./prod/md.tpr -maxwarn 999
gmx mdrun -ntmpi 1 -ntomp 10 -nb gpu -bonded gpu -pme gpu -gpu_id 0 -s ./prod/md.tpr -deffnm ./prod/md -v
firun bash localrun.sh
PRISM provides convenient shortcuts for frequently used parameters, allowing you to write more concise commands while maintaining full compatibility with the complete parameter names.
Basic Setup
-pf, --protein-file: Protein PDB file path (alternative to positional argument)-lf, --ligand-file: Ligand structure file (MOL2/SDF) (alternative to positional argument)-o, --output: Output directory for generated files-c, --config: Custom configuration YAML file-f, --overwrite: Force overwrite existing files
Force Field Options
-ff, --forcefield: Protein force field (e.g., amber99sb, amber14sb, charmm36)-lff, --ligand-forcefield: Ligand force field (gaff, gaff2, openff, cgenff, opls, mmff, match, hybrid)-w, --water: Water model (tip3p, tip4p, spce)-ffp, --forcefield-path: Path to CGenFF downloaded files (required for cgenff)
-pf/-lfare for file paths (where to find protein/ligand files)-ff/-lffare for force fields (which force field to use for protein/ligand)
System Configuration
-d, --box-distance: Distance from protein to box edge in nm (default: 1.5)-bs, --box-shape: Simulation box shape (cubic, dodecahedron, octahedron)-t, --temperature: Simulation temperature in Kelvin (default: 310)-p, --pressure: Simulation pressure in bar (default: 1.0)
Ion Parameters
-sc, --salt-concentration: Salt concentration in M (default: 0.15)-pion, --positive-ion: Positive ion type (default: NA)-nion, --negative-ion: Negative ion type (default: CL)
Protein Preparation Parameters
-im, --ion-mode: Ion handling mode (smart, keep_all, remove_all; default: smart)-dc, --distance-cutoff: Distance cutoff for metal ions in Å (default: 5.0)-kcw, --keep-crystal-water: Preserve crystal water molecules (default: false)-nra, --no-remove-artifacts: Keep crystallization artifacts (default: false)-proton, --protonation: Protonation method (gromacsorpropka; default: gromacs)--pH: Target pH for protonation prediction (default: 7.0)
MM/PBSA Analysis
-pbsa, --mmpbsa: Run MM/PBSA binding energy calculation-m, --mode: MM/PBSA mode (single-frame or trajectory)-s, --structure: Structure file for single-frame calculation-sd, --system-dir: PRISM-generated system directory-po, --mmpbsa-output: Output directory for MM/PBSA results
Quick start with minimal typing:
prism protein.pdb ligand.mol2 -o output -fSpecify force fields using shortcuts:
prism protein.pdb ligand.mol2 -o output -ff amber14sb -lff gaff2 -w tip4pCustomize system parameters:
prism protein.pdb ligand.mol2 -o output -d 2.0 -t 300 -sc 0.1 -fRun MM/PBSA calculation:
prism -pbsa -m single-frame -s em.gro -sd system_dir -fMix shortcuts and full names (fully compatible):
prism protein.pdb ligand.mol2 -o output --forcefield amber99sb -lff openff --box-distance 1.8Advanced example combining multiple options:
prism protein.pdb ligand.sdf \
-o my_simulation \
-ff amber14sb \
-lff openff \
-w tip4p \
-d 2.0 \
-t 310 \
-sc 0.15 \
-fAll shortcuts are designed to be intuitive while maintaining backward compatibility with existing scripts that use full parameter names.
| Force Field | Best For | Pros | Cons | Internet Required |
|---|---|---|---|---|
| GAFF | General small molecules | Widely used, well-tested | Older parameters | No |
| GAFF2 | General small molecules | Improved over GAFF, better for pharmaceuticals | Newer, less tested | No |
| OpenFF | Drug-like molecules | Modern, data-driven parameters | Requires more dependencies | No |
| CGenFF | CHARMM compatibility | Consistent with CHARMM protein FF | Manual web download required | For download |
| OPLS-AA | All-atom simulations | Good for organic molecules | Internet required | Yes |
| MMFF | Quick parameterization | Fast, general purpose | Less accurate for MD | Yes |
| MATCH | CHARMM-style parameters | Good transferability | May fail for complex molecules | Yes |
| Hybrid | Balanced approach | Combines MMFF and MATCH | Internet required | Yes |
- Metal Ions: Automatically recognized and handled (Zn²⁺, Ca²⁺, Mg²⁺, Fe²⁺/³⁺, Cu²⁺, Mn²⁺, etc.)
- Protonation States: Support for CYM, HID, HIE, HIP, CYX, LYN, ASH, GLH
- Halogen Handling: CGenFF lone pairs (LP) automatically removed and charges transferred
PRISM provides advanced protein preparation with intelligent cleaning and optional protonation state optimization to ensure your protein structure is properly prepared for molecular dynamics simulations.
The ProteinCleaner class automatically processes protein PDB files with intelligent handling of metal ions and crystallization artifacts.
PRISM offers three modes for handling metal ions and heteroatoms:
smart(default): Keeps structural metals (Zn, Mg, Ca, Fe, Cu, Mn, etc.) while removing non-structural ions (Na, Cl, K, etc.)keep_all: Preserves all metal ions and heteroatoms (except water unless specified)remove_all: Removes all metal ions and heteroatoms
Structural metals preserved in smart mode: ZN, MG, CA, FE, CU, MN, CO, NI, CD, HG
Non-structural ions removed in smart mode: NA, CL, K, BR, I, F, SO4, PO4, NO3, CO3
Metals are only kept if they are within a specified distance from the protein:
- Default cutoff: 5.0 Å
- Configurable: Adjust via
--distance-cutoffparameter - Purpose: Removes distant, non-coordinating metals that may be crystallization artifacts
Common crystallization additives are automatically removed:
- Polyols: Glycerol (GOL), ethylene glycol (EDO), MPD
- PEG oligomers: PEG, PGE, 1PE, P6G, etc.
- Sugars: NAG, NDG, BMA (unless covalently linked to protein)
- Detergents: DMS, BOG, LMT, etc.
- Other additives: ACT, ACE, FMT, TRS, etc.
The cleaner automatically handles GROMACS requirements:
- HETATM → ATOM conversion: Metal ions are converted from HETATM to ATOM records
- Chain reassignment: Proteins and metals are placed in separate chains for pdb2gmx compatibility
- Terminal atom fixing: Automatic correction of C-terminal oxygen atoms
PRISM can optionally use PROPKA to predict pKa values and assign protonation states for ionizable residues (HIS/ASP/GLU/LYS/CYS/TYR) at a target pH. It renames residues in the PDB, and GROMACS pdb2gmx -ignh regenerates hydrogens based on those states.
- PROPKA integration: pKa-based ionizable residue prediction
- pH-based control: Choose target pH for prediction
- GROMACS-ready: Residue renaming for
pdb2gmx(e.g., HID/HIE/HIP, ASH/GLH, LYN/CYM/TYH)
# Install PROPKA (required for protonation prediction)
conda install -c conda-forge propka
# or
pip install propka>=3.4.0
# Or install with PRISM protonation extras
pip install -e .[protonation]- Method: Choose
gromacs(default) orpropka - Target pH: Configurable pH for PROPKA prediction (default: 7.0)
PRISM uses YAML configuration files for customization. Key parameters include:
- Force fields: Choose from AMBER, CHARMM, or OPLS variants
- Water models: TIP3P, TIP4P, SPC, SPCE
- Simulation parameters: Temperature, pressure, time, etc.
- Box settings: Size, shape, solvation
- Output controls: Trajectory frequency, compression
- Protein preparation: Advanced cleaning and ion handling options
- Protonation: Optional pKa-based protonation for ionizable residues with PROPKA
# Protein preparation settings
protein_preparation:
ion_handling_mode: smart # keep_all, smart, remove_all
distance_cutoff: 5.0 # Distance cutoff for metals (Å)
keep_crystal_water: false # Preserve crystal water
remove_artifacts: true # Remove crystallization artifacts# Protonation state prediction
protonation:
method: gromacs # 'gromacs' (default) or 'propka'
ph: 7.0 # Target pH for PROPKA pKa predictionSee configs/default.yaml for a complete example.
PRISM/
├── prism/ # Core modules
│ ├── __init__.py
│ ├── builder.py # Main program
│ ├── forcefield/ # Force field generators
│ │ ├── __init__.py
│ │ ├── base.py # Base class
│ │ ├── gaff.py # GAFF force field
│ │ ├── gaff2.py # GAFF2 force field
│ │ ├── openff.py # OpenFF force field
│ │ ├── cgenff.py # CGenFF force field
│ │ ├── opls_aa.py # OPLS-AA force field
│ │ └── swissparam.py # SwissParam force fields
│ └── utils/ # Utilities
│ ├── cleaner.py # Protein cleaning & metal handling
│ ├── system.py # System building
│ ├── config.py # Configuration management
│ └── mdp.py # MDP file generation
├── configs/ # Example configurations
├── examples/ # Example input files
├── docs/ # Documentation
└── README.md # This file
PRISM generates a complete set of files ready for MD simulation:
-
Force field files (directory name depends on force field):
LIG.amb2gmx/(GAFF/GAFF2)LIG.openff2gmx/(OpenFF)LIG.cgenff2gmx/(CGenFF)LIG.opls2gmx/(OPLS-AA)LIG.mmff2gmx/,LIG.match2gmx/,LIG.hybrid2gmx/(SwissParam)
Each contains:
LIG.gro: Ligand coordinatesLIG.itp: Ligand topologyatomtypes_LIG.itp: Atom type definitionsposre_LIG.itp: Position restraints
-
System files (
GMX_PROLIG_MD/):solv_ions.gro: Complete solvated systemtopol.top: System topologyprotein_clean.pdb: Cleaned protein structuretopol_Protein.itp: Protein topologytopol_Ion*.itp: Metal ion topologies (if present)
-
Protocol files (
mdps/):em.mdp: Energy minimizationnvt.mdp: NVT equilibrationnpt.mdp: NPT equilibrationmd.mdp: Production run
-
Configuration backup:
prism_config.yaml: Complete configuration used for this build
-
"Command not found" errors: Ensure all dependencies are installed and in PATH
# Check GROMACS gmx --version # Check AmberTools (for GAFF/GAFF2) antechamber -h # Check Python packages python -c "import openff.toolkit" # For OpenFF python -c "import requests" # For OPLS-AA python -c "import mechanize" # For SwissParam
-
Force field errors:
- GAFF/GAFF2: Ensure AmberTools and ACPYPE are installed
- OpenFF: Check openff-toolkit and openff-interchange
- CGenFF: Verify you downloaded the correct files from the web server
- OPLS-AA: Check internet connection and requests package
- SwissParam: Check internet connection and mechanize package
-
SwissParam errors:
MATCH ERROR: Could not Finish Charging: Try--ligand-forcefield mmffor--ligand-forcefield hybrid- Tautomer issues: Use a different force field (GAFF2 recommended)
-
CGenFF halogen issues:
- LP (lone pair) atoms are automatically removed
- If you see LP-related errors, please report as a bug
-
Metal ion issues:
- PRISM automatically detects common metal ions
- Supported: Zn, Ca, Mg, Fe, Cu, Mn, Co, Ni, K, Na, Cl
- If a metal is not recognized, it may be treated as a regular atom
-
Protonation state issues:
- Ensure residues use standard names (CYM, HID, HIE, HIP, CYX, LYN, ASH, GLH)
- GROMACS pdb2gmx should handle these automatically
-
Protein Preparation Issues:
PROPKA Not Available:
- Error: "PROPKA not found" or similar
- Solution: Install with
conda install -c conda-forge propkaorpip install propka>=3.4.0(orpip install -e .[protonation]) - Note: If you do not want PROPKA, keep
protonation.method: gromacs(default)
Metal Ions Removed by Distance:
- Message: "Removed ZN at distance 6.2 Å from protein"
- Solution: Increase distance cutoff if metal is important:
--distance-cutoff 8.0
Unknown Metal/Ion Warnings:
- Message: "Warning: Unknown metal/ion MO, keeping by default"
- Solution: Add custom metal to keep list in configuration or use
--ion-mode keep_all
PROPKA Renaming Summary:
- Message: "PROPKA: Renamed X residue(s)"
- Note: This is expected when
--protonation propkais enabled
Terminal Atom Issues:
- Message: "Fixed C-terminal residues with misplaced oxygen atoms"
- Note: This is normal behavior. PRISM automatically fixes terminal atom naming for GROMACS compatibility
-
Memory errors: Large systems may require more RAM, especially during parameterization
- Check the log files in the output directory
- Ensure input files are properly formatted (PDB/MOL2/SDF)
- Verify all dependencies are correctly installed
- Check PRISM configuration in
prism_config.yaml - For internet-based force fields, verify network connectivity
PRISM includes CADD-Agent, an AI agent workflow that orchestrates a complete computer-aided drug design pipeline through Claude Code and MCP (Model Context Protocol).
chemblfind (1000) -> MolScope (100) -> AutoDock Vina (top 10) -> PRISM (10 MD systems)
| Stage | Tool | Function |
|---|---|---|
| 1. Target search | ChEMBLFind | Search ChEMBL for bioactive molecules |
| 2. Chemical space selection | MolScope | Select representative molecules covering chemical space |
| 3. Molecular docking | AutoDock Vina MCP | Blind docking with AutoDock Vina |
| 4. MD system building | PRISM | Build GROMACS-ready MD systems |
| 5. Stability analysis | PRISM | RMSD, contacts, trajectory analysis |
Python >= 3.10 required (MCP server libraries mcp and fastmcp do not support Python 3.9).
# Create conda environment with Python 3.10+
conda create -n cadd python=3.12
conda activate cadd
# Install computational dependencies
conda install -c conda-forge ambertools openbabel
pip install vina rdkitInstall the 4 MCP server packages:
# 1. ChEMBLFind - ChEMBL molecule search
pip install git+https://github.com/AIB001/ChEMBLFind
# 2. MolScope - Chemical space coverage selection
pip install git+https://github.com/AIB001/MolScope
# 3. AutoDock Vina MCP - Molecular docking
pip install git+https://github.com/AIB001/AutodockVina_MCP
# 4. PRISM (this package)
pip install -e .
# 5. Claude Code (requires Node.js)
npm install -g @anthropic-ai/claude-codeRun (packages do not need to be fully installed first — missing ones will be reported):
prism --add cadd-agentThis will:
- Auto-detect installed MCP server paths (Python interpreter, server scripts)
- Configure
~/.claude/settings.jsonwith found MCP servers (global, works in any directory) - Create
~/.claude/CLAUDE.mdwith CADD workflow trigger rules - Copy
.mcp.jsonandCLAUDE.mdtemplates to the current directory - Report any missing packages with install commands
After setup, start Claude Code in any directory containing a protein PDB file:
mkdir my_project && cd my_project
cp /path/to/protein.pdb .
claudeThen simply tell the agent what you want:
"I want to screen inhibitors for Riboflavin Synthase"
The agent will guide you through the full pipeline, confirming parameters at each step.
If you prefer manual configuration, copy the template files from prism/prompts/resources/:
cp prism/prompts/resources/CLAUDE.md ~/.claude/CLAUDE.md
# Then edit ~/.claude/settings.json to add MCP server paths
# (see prism/prompts/resources/.mcp.json for the template)If you use PRISM in your research, please cite:
Paper (methodology and applications):
@article{PRISM,
title = {PRISM: A High-Throughput Simulation Infrastructure for CADD Agents},
author = {Shi, Zhaoqi and Gao, Xufan and Xu, Mingyu and Zhu, Xuanyi and Wang, Peng and Yang, Yuxuan and Yang, Zaixing and Zhou, Ruhong},
year = {2026},
doi = {https://doi.org/10.64898/2026.04.02.716083},
publisher = {BioRxiv Preprints},
url = {https://doi.org/10.64898/2026.04.02.716083}
}Code (software archive):
@software{PRISM_Code,
author = {Shi, Zhaoqi and Gao, Xufan and Xu, Mingyu and Zhu, Xuanyi and Wang, Peng and Yang, Yuxuan and Yang, Zaixing and Zhou, Ruhong},
title = {PRISM: Protein Receptor Interaction Simulation Modeler},
year = {2026},
doi = {https://doi.org/10.5281/zenodo.19163575},
publisher = {Zenodo},
url = {https://zenodo.org/records/19163575}
}Links:
- Paper: https://doi.org/10.64898/2026.04.02.716083
- Code: https://doi.org/10.5281/zenodo.19163575
- Local PDF: tests/gxf/FEP/plan/2026.04.02.716083v1.full.pdf
PRISM is released under the MIT License. Force field parameters are subject to their respective licenses.
