Creating Molecule of the Month-style illustrations in ChimeraX
·(edited)· / , , , , , , , · reads0Assisted
AI TranslationSimplified ChineseEnglish
Key Insights
The author developed the ChimeraX-Illustrate plugin, integrating Illustrate rendering in the style of PDB-101's "Molecule of the Month" into ChimeraX. Users can apply color schemes with a single click, capture the current scene, adjust parameters such as outlines and shadows, and export high-resolution images. The article provides installation steps, operating instructions, and a description of the plugin's features, aiming to simplify the process of producing this style of illustration.
Intro
Recently, while browsing RCSB, I came across a section called Molecule of the Month (MOTM for short). Compared with the content, its molecular-visualization illustrations stand out at a glance — an effect I had never seen in any journal or in common molecular-visualization tools such as ChimeraX or PyMol.
An illustration from MOTM
I tried to reproduce a similar look in ChimeraX, but the results were worlds apart; the presets in Mol* were no closer either. Eventually I found out that this rendering style comes from Illustrate, an image-rendering program written in Fortran.
The output does look great, but actually using it means writing an .inp file by hand, manually defining structure, colors, viewpoint, outlines, and output parameters.
If you only draw a single figure now and then, and with some help from AI, this workflow is arguably tolerable. But in real use you constantly need to tweak the structure's viewpoint and colors. After every change you have to edit the script and re-render, and getting the color scheme right is fiddly — on the whole it's not very convenient.
So I thought: since the structure is already open in ChimeraX, and ChimeraX has an open plugin ecosystem, why not do the whole thing right inside ChimeraX?
That's how this project came to be (just vibed it together): ChimeraX-Illustrate. It's a ChimeraX bundle that recolorizes with a single click, captures the current ChimeraX scene, renders it in the Illustrate style, and exports it.
TL;DR
Download the project:
BASH
cd ~
git clone https://github.com/Jaaayden/ChimeraX-Illustrate.git
Install it from the ChimeraX command line:
CHIMERAX-PYTHON
devel install ~/ChimeraX-Illustrate
Restart ChimeraX and run:
CHIMERAX-PYTHON
illustrate
Open a structure and adjust what's shown and the viewpoint;
Pick a color scheme and capture the current scene;
Export a PNG.
Prerequisite
Tip
This procedure is based on macOS.
You'll need:
ChimeraX 1.10 or a compatible stable version installed;
Git installed;
a structure file that ChimeraX can open.
Detailed procedure
Install
First, clone the repository in your system terminal:
BASH
cd ~
git clone https://github.com/Jaaayden/ChimeraX-Illustrate.git
Then open ChimeraX and run:
CHIMERAX-PYTHON
devel install ~/ChimeraX-Illustrate
Once installed, restart ChimeraX and enter:
CHIMERAX-PYTHON
illustrate
to open the tool window.
To update the project:
BASH
cd ~/ChimeraX-Illustrate
git pull
Then run devel install again and restart ChimeraX.
Prepare the structure
After opening a structure in ChimeraX — here I use 7E2Y as an example:
Adjust what's displayed and pick a suitable viewpoint: Note: the plugin captures whatever is shown in ChimeraX as atom, cartoon or molecular surface — that is, an atom not shown in any of these forms can't be captured or rendered by the plugin.
Show the atoms you want to draw and rotate to a suitable viewpoint
Recolorize in one click with presets
Run:
CHIMERAX-PYTHON
illustrate
The tool window offers five color schemes:
Classic Chains: the classic soft chain scheme;
Cool / Warm Complex: alternates cool and warm tones, ideal for multi-subunit complexes;
Nucleic Base Contrast: distinguishes proteins, nucleic-acid backbones, and bases;
MotM Spectrum: uses blue, green, purple, magenta, and warm tones;
Monochrome Blues: uses different shades of blue to bring out repeated chains or symmetric assemblies.
These schemes are inspired by the flat colors and black outlines commonly seen on PDB-101, but they are not a color-by-color copy of any particular Molecule of the Month illustration.
Colors are assigned in chain order; the plugin doesn't try to infer functional domains.Nucleic Base Contrast also tells sugar-phosphate backbones apart from bases using the standard DNA/RNA atom names.
After choosing a scheme, click Apply Colors.
The presets generally look quite good, but you can also adjust colors by hand to suit your needs.
Recolorize in one click using a preset
Capture the scene and render:
In the tool window, click Capture Current Scene.
You can also just use:
CHIMERAX-PYTHON
illustrate capture
The plugin captures the currently visible atoms, cartoon residues, or molecular-surface patches and reads off their colors, atom radii, and grouping information.
A point worth noting: the final render still consists of atomic spheres. The original geometry meshes of cartoon and molecular surface are not rasterized directly — they're converted into Illustrate-style atomic spheres.
The plugin captures a snapshot of the current scene. So if you change the ChimeraX camera afterward, you need to capture again. Parameter tweaks only affect the scene that has already been captured; they neither modify the original structure nor overwrite your input file.
Capture the scene and render
(Optional) fine-tune the rendering parameters: after capturing a scene you can adjust these in the tool window:
Outlines;
Subunit boundaries;
Residue boundaries;
Atom color and shading;
Soft shadows;
Atmosphere/fog effect;
Background transparency.
The default preview size is 512 pixels (max 1024). The default outline level is 4; if you want sharper outlines, try 1–3.
I think the defaults are already quite good, so you generally won't need to adjust anything by hand
The plugin also includes parameter descriptions, suggested ranges, and a restore-defaults function.
Export the image:
You can change the export size directly in the tool window and export the image,
Export options
or use the command line:
CHIMERAX-PYTHON
illustrate save /absolute/path/to/illustrate.png transparent true
Specify the output size:
CHIMERAX-PYTHON
illustrate save /absolute/path/to/illustrate.png transparent true width 3000 height 3000
Output sizes from 2 to 8000 pixels are supported. Above 4096 pixels the plugin switches to tiled processing to ease memory pressure, but very large images still take longer to render and use more memory.
To clear a captured scene:
CHIMERAX-PYTHON
illustrate reset
For this kind of image, 1200 × 1200 is enough in the vast majority of cases — the difference between 4000 × 4000 and 8000 × 8000 is already negligible, so going bigger really isn't meaningful
The exported result
Outro
The reason for building this plugin is simple: Illustrate's output is really striking, and I think it works beautifully in Slides — less stiff and serious, a way to ease up on an already tense scene — but the Fortran version of Illustrate is a bit far from everyday structural illustration.
This plugin brings the whole pipeline into ChimeraX, making MOTM-style figures effortless — in ChimeraX it all takes under a minute. If you want to quickly produce a MOTM-style molecular-visualization figure, this will be far more convenient than hand-writing an .inp file.
Feel free to try it out and share your feedback on GitHub.
Intro
Recently, while browsing RCSB, I came across a section called Molecule of the Month (MOTM for short). Compared with the content, its molecular-visualization illustrations stand out at a glance — an effect I had never seen in any journal or in common molecular-visualization tools such as ChimeraX or PyMol.
I tried to reproduce a similar look in ChimeraX, but the results were worlds apart; the presets in Mol* were no closer either. Eventually I found out that this rendering style comes from Illustrate, an image-rendering program written in Fortran.
The output does look great, but actually using it means writing an .inp file by hand, manually defining structure, colors, viewpoint, outlines, and output parameters.
If you only draw a single figure now and then, and with some help from AI, this workflow is arguably tolerable. But in real use you constantly need to tweak the structure's viewpoint and colors. After every change you have to edit the script and re-render, and getting the color scheme right is fiddly — on the whole it's not very convenient.
So I thought: since the structure is already open in ChimeraX, and ChimeraX has an open plugin ecosystem, why not do the whole thing right inside ChimeraX?
That's how this project came to be (just vibed it together): ChimeraX-Illustrate. It's a ChimeraX bundle that recolorizes with a single click, captures the current ChimeraX scene, renders it in the Illustrate style, and exports it.
TL;DR
Prerequisite
This procedure is based on macOS.
You'll need:
Detailed procedure
Install
First, clone the repository in your system terminal:
Then open ChimeraX and run:
Once installed, restart ChimeraX and enter:
to open the tool window.
To update the project:
Then run devel install again and restart ChimeraX.
Prepare the structure
After opening a structure in ChimeraX — here I use 7E2Y as an example:
Note: the plugin captures whatever is shown in ChimeraX as atom, cartoon or molecular surface — that is, an atom not shown in any of these forms can't be captured or rendered by the plugin.
Run:
The tool window offers five color schemes:
These schemes are inspired by the flat colors and black outlines commonly seen on PDB-101, but they are not a color-by-color copy of any particular Molecule of the Month illustration.
Colors are assigned in chain order; the plugin doesn't try to infer functional domains.Nucleic Base Contrast also tells sugar-phosphate backbones apart from bases using the standard DNA/RNA atom names.
After choosing a scheme, click Apply Colors.
The presets generally look quite good, but you can also adjust colors by hand to suit your needs.
In the tool window, click Capture Current Scene.
You can also just use:
The plugin captures the currently visible atoms, cartoon residues, or molecular-surface patches and reads off their colors, atom radii, and grouping information.
A point worth noting: the final render still consists of atomic spheres. The original geometry meshes of cartoon and molecular surface are not rasterized directly — they're converted into Illustrate-style atomic spheres.
The plugin captures a snapshot of the current scene. So if you change the ChimeraX camera afterward, you need to capture again. Parameter tweaks only affect the scene that has already been captured; they neither modify the original structure nor overwrite your input file.
The default preview size is 512 pixels (max 1024). The default outline level is 4; if you want sharper outlines, try 1–3.
I think the defaults are already quite good, so you generally won't need to adjust anything by hand
The plugin also includes parameter descriptions, suggested ranges, and a restore-defaults function.
You can change the export size directly in the tool window and export the image,
or use the command line:
Specify the output size:
Output sizes from 2 to 8000 pixels are supported. Above 4096 pixels the plugin switches to tiled processing to ease memory pressure, but very large images still take longer to render and use more memory.
To clear a captured scene:
For this kind of image, 1200 × 1200 is enough in the vast majority of cases — the difference between 4000 × 4000 and 8000 × 8000 is already negligible, so going bigger really isn't meaningful
Outro
The reason for building this plugin is simple: Illustrate's output is really striking, and I think it works beautifully in Slides — less stiff and serious, a way to ease up on an already tense scene — but the Fortran version of Illustrate is a bit far from everyday structural illustration.
This plugin brings the whole pipeline into ChimeraX, making MOTM-style figures effortless — in ChimeraX it all takes under a minute. If you want to quickly produce a MOTM-style molecular-visualization figure, this will be far more convenient than hand-writing an .inp file.
Feel free to try it out and share your feedback on GitHub.