Chemistry with the ReInvented Macromolecular Mechanics
Project description
crimm
crimm stands for Chemistry with the ReInvented Macromolecular Mechanics.
This is a Python toolkit for biomolecule structure preparation, designed to unify common modeling routines under one scriptable platform. While many tools exist for tasks like solvation, adding hydrogens, or building missing loops, they often lack the scriptability needed for high-throughput pipelines. crimm aims to fill this gap by providing intuitive Python APIs that integrate seamlessly with pyCHARMM, RDKit, and other computational chemistry tools.
Why crimm?
- Scriptable: All preparation steps are Python functions—no clicking through web interfaces or writing shell scripts
- Integrated: Works natively with pyCHARMM for energy calculations and simulations
- Accurate: Uses mmCIF format to correctly identify chain types, detect missing loops, and handle biological assemblies
- Extensible: Adaptors connect crimm to RDKit, PropKa, OpenMM, and more
Features
- Fetch structures from RCSB PDB or AlphaFold Database
- Generate topology using CHARMM36m force field (proteins, nucleic acids, lipids, carbohydrates)
- Parameterize small molecule ligands with CGenFF integration
- Solvate in cubic or truncated octahedral water boxes
- Add ions at target concentrations (SPLIT, SLTCAP methods)
- Build missing loops from homology models
- Read/write native CHARMM PSF and CRD files
- Visualize structures in Jupyter notebooks with NGLView
Installation
pip install crimm
Requires Python >= 3.8. For a complete environment:
conda env create -f env.yaml
Note: pyCHARMM and OpenMM must be installed separately if needed.
Quick Example
from crimm.Fetchers import fetch_rcsb
from crimm.Modeller import TopologyGenerator
from crimm.Modeller.Solvator import Solvator
from crimm.IO import write_psf, write_crd
# Fetch and prepare structure
model = fetch_rcsb('1LSA', organize=True)
topo_gen = TopologyGenerator()
for chain in model.protein:
topo_gen.generate(chain)
# Solvate and add 150 mM KCl
solvator = Solvator(model)
solvator.solvate(cutoff=10.0, box_type='octa')
solvator.add_ions(concentration=0.15, cation='POT', anion='CLA')
# Write CHARMM files
write_psf(model, 'system.psf')
write_crd(model, 'system.crd')
Modules
| Module | Purpose |
|---|---|
Fetchers |
Download structures from RCSB PDB or AlphaFold |
Modeller |
Topology generation, solvation, loop building |
IO |
Read/write PDB, mmCIF, PSF, CRD files |
Adaptors |
Connect to pyCHARMM, RDKit, PropKa |
Documentation
See tutorials/ for Jupyter notebooks on structure preparation, topology generation, loop building, and more.
License
GPLv3
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crimm-2026.1.3.tar.gz.
File metadata
- Download URL: crimm-2026.1.3.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
797245ccc6ebb1c8e299c3c1dc5c2fb7f59d58af40431868941cada549ace9ab
|
|
| MD5 |
da2d0ab0bce18535383823bcd6e0d057
|
|
| BLAKE2b-256 |
616f17776bd7deacbd9f2c6ed5e1f4feb7d95b4f45e58f5587ba9c5e59715cac
|
File details
Details for the file crimm-2026.1.3-py3-none-any.whl.
File metadata
- Download URL: crimm-2026.1.3-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4ba3ec62b13f9138b2165e90169d5836b159b4752b7ed516dc1067e35a4d734
|
|
| MD5 |
eb5e91f7a3175e2365d3ace966f226be
|
|
| BLAKE2b-256 |
dadf120b2d2689895b975bcfa5ddfa149429b228785a0c986147f2f17bd2ab44
|