mcpField
P
pymol

pymol

github.com/aminoanalyticaData & databases041 installsUpdated 26w ago
Repository

About pymol

A Claude Code skill for controlling PyMOL molecular visualization through the claudemol socket interface. It covers structure loading, display, rendering, and export for molecular structure analysis and figure creation.

Key features

  1. 01Install and configure PyMOL and claudemol
  2. 02Load local or RCSB structures
  3. 03Set molecular representations and colors
  4. 04Select residues, chains, and binding sites
  5. 05Adjust views and create high-resolution images
  6. 06Export images, sessions, and movies

Use cases

  1. 01Set up PyMOL and its socket connection
  2. 02Inspect protein and complex structures
  3. 03Highlight ligand-binding sites
  4. 04Create publication-quality structure figures

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aminoanalytica/amina-skills --skill pymol

After installing, type/pymolin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
commands.md
troubleshooting.md
visualization.md
scripts/
setup_pymol.py

Details

From the project README

PyMOL: Molecular Visualization via claudemol

Summary

This skill enables Claude Code to control PyMOL molecular visualization software through the claudemol socket interface. It supports:

  • Setup: Cross-platform installation of claudemol and PyMOL
  • Visualization: Rendering proteins, small molecules, and complexes
  • Publication figures: Ray-traced high-resolution images
  • Interactive control: Send PyMOL commands programmatically

Applicable Scenarios

Task CategoryExamples
SetupInstall PyMOL, configure claudemol, verify connection
Structure LoadingLoad PDB files, fetch from RCSB, open local structures
RepresentationsCartoon, surface, sticks, spheres, ribbons, lines
ColoringColor by chain, spectrum, B-factor, custom colors
SelectionsSelect residues, chains, ligands, binding sites
CameraOrient view, zoom, rotate, save viewpoints
Ray TracingHigh-quality renders, publication figures
ExportSave images (PNG), sessions (PSE), movies

Setup Instructions

Quick Setup (All Platforms)

Run the automated setup script:

python /path/to/skills/pymol/scripts/setup_pymol.py
Manual Setup
1. Install claudemol
pip install claudemol
2. Install PyMOL

macOS (Recommended):

brew install pymol

Windows/Linux (Headless):

pip install pymol-open-source

Windows (Licensed PyMOL): Connect to existing PyMOL installation - see references/troubleshooting.md

3. Configure PyMOL
claudemol setup

This adds the socket plugin to PyMOL's startup.

4. Launch and Verify
  1. Start PyMOL normally
  2. Check that port 9880 is listening:
    lsof -i :9880  # macOS/Linux
    netstat -an | findstr 9880  # Windows
    

Socket Communication

claudemol communicates with PyMOL via a TCP socket on port 9880.

Basic Pattern
import socket
import json

def send_pymol_command(code: str, host: str = 'localhost', port: int = 9880) -> dict:
    """Send a command to PyMOL via claudemol socket."""
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(30)
    try:
        sock.connect((host, port))
        message = json.dumps({"code": code})
        sock.sendall(message.encode('utf-8'))
        response = sock.recv(65536)
        return json.loads(response.decode('utf-8'))
    finally:
        sock.close()
Multi-Command Example
commands = """
cmd.load('1ubq.pdb')
cmd.show('cartoon')
cmd.color('cyan', 'all')
cmd.orient()
"""
result = send_pymol_command(commands)

Quick Reference

Loading Structures
# From local file
cmd.load('/path/to/structure.pdb')
cmd.load('/path/to/structure.cif')

# From RCSB PDB
cmd.fetch('1ubq')
cmd.fetch('6lu7', type='cif')
Representations
# Show representations
cmd.show('cartoon', 'all')
cmd.show('surface', 'chain A')
cmd.show('sticks', 'resn LIG')
cmd.show('spheres', 'name CA')

# Hide representations
cmd.hide('lines', 'all')
cmd.hide('everything', 'solvent')
Coloring
# Color by chain (automatic colors)
cmd.util.cbc()

# Spectrum coloring (rainbow N to C)
cmd.spectrum('count', 'rainbow', 'all')

# Specific colors
cmd.color('red', 'chain A')
cmd.color('blue', 'resn LIG')
cmd.color('green', 'resi 50-100')

# B-factor coloring
cmd.spectrum('b', 'blue_white_red', 'all')
Selections
# Create named selections
cmd.select('binding_site', 'byres resn LIG around 5')
cmd.select('active_site', 'resi 145+41+166 and chain A')
cmd.select('interface', 'chain A within 4 of chain B')

# Selection algebra
cmd.select('no_water', 'all and not solvent')
View and Camera
# Orient and zoom
cmd.orient()
cmd.zoom('all')
cmd.zoom('chain A', buffer=5)
cmd.center('resn LIG')

# Set specific view
cmd.set_view([...])  # 18-element matrix

# Store and recall views
cmd.view('view1', 'store')
cmd.view('view1', 'recall')
Ray Tracing and Export
# Basic ray trace
cmd.ray(1920, 1080)
cmd.png('/path/to/output.png')

# Publication quality
cmd.set('ray_trace_mode', 1)
cmd.set('ray_shadows', 'on')
cmd.set('antialias', 2)
cmd.ray(2400, 2400)
cmd.png('/path/to/figure.png', dpi=300)

Visualization Workflows

See references/visualization.md for complete workflows:

  • Basic protein visualization
  • Cartoon with chain coloring
  • Surface with transparency
  • Ligand binding site
  • Domain highlighting
  • Publication-quality figures

Command Reference

See references/commands.md for complete command documentation:

  • All cmd.* functions
  • Selection syntax
  • Setting parameters
  • Color palettes

Troubleshooting

See references/troubleshooting.md for platform-specific issues:

  • macOS GLUT errors
  • Windows headless mode
  • Connection refused errors
  • Display problems

Common Issues

IssueResolution
Connection refusedEnsure PyMOL is running with claudemol plugin loaded
Port 9880 in useKill other processes or change port
No GUI (Windows pip)Use headless mode or licensed PyMOL
GLUT missing (macOS)Install via Homebrew instead of pip
Slow ray tracingReduce resolution or simplify scene

External Resources

Comments

Markdown supported