Protein structure prediction in PyMOL
Project description
PymolFold
Inspired by ColabFold by Sergey O.
Visualization inspired by pymol-color-alphafold.
Thanks to ESMFold by Meta and the API.
Fast access to AlphaMissense predicted Human proteins provided by hegelab.
Quick Start Guide
1. Install PyMOL
This project enables structure and domain prediction directly within the PyMOL visualization software.
SO, download and install PyMOL from the official website.
2. Obtain API Tokens
PymolFold utilizes APIs from ESM3 and NVIDIA Boltz2.
You need to obtain API tokens from both:
After obtaining your tokens, set them as environment variables:
ESM_API_TOKENNVCF_API_KEY
Both must be uppercase and contain underscores.
How to set environment variables:
Windows:
- Press
Win + Sand search for "Environment Variables". - Select "Edit the system environment variables".
- In the System Properties window, go to "Advanced" → "Environment Variables".
- Add or edit variables in "System variables" or "User variables".
- Example:
- Variable name:
MY_ENV - Variable value:
hello
- Variable name:
- Example:
- (Windows User pay attention): In case of some strange error occurs, you also need set an extra variables
PYTHONUTF8and value set to1. - Save and close.
Mac:
- Press
Command + Space, type "terminal", and open Terminal. - Edit your shell config:
vim ~/.zshrc - Add your variable (example, replace with your actual token):
export MY_ENV=hello
- Save and exit Vim. (Ask ChatGPT if you duno how to do this)
- Activate the environment variable:
source ~/.zshrc
3. Run the Plugin
Once PyMOL and your API tokens are ready, download the run_plugin.py file from this project.
Open PyMOL and enter the full path to run_plugin.py:
run path_to/run_plugin.py
If you see the following, installation was successful:
4. How to Use
PymolFold provides several features: esm3, boltz2, and color_plddt.
1. Predict Monomer Protein Structure
Use the convenient esm3 command:
esm3 sequence [, name]
# Example:
esm3 MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG
2. Predict Complexes, DNA, RNA, or Ligand Structures
For more complex predictions, use the boltz2 command.
Due to the number of required inputs, a web interface is provided (inspired by NVIDIA Boltz2).
Currently, conditional prediction is not supported, but may be added in the future.
To launch the web interface, enter the following in the PyMOL command line:
boltz2
You can run the provided example:
When using CCD code, you can check all the existed CCDs under pymolfold/gui/ccd_keys.json
After clicking Run on the web page, wait about 6 seconds (depending on protein size), and the structure will appear in PyMOL!
3. View pLDDT Scores
After prediction, enter the following to view pLDDT scores for the predicted structure:
color_plddt
4. How to evaluate the predicted results?
We utilized PXMeter to evaluate the differences between predicted structures and reference structures. PXMeter(0.1.4) now only supports PPI analysis, and more details can be seen in their repo.
But how to use in PyMolFold?
pxmeter_align full_path_to/real_struct.cif full_path_to/predict_struct.cif
Unfortunately, we haven't fix out how to get the structure path from pymol object, so you guys have to manually provide them. Besides, only cif format is supported now.
After running the script above, you will get the metrics in csv and png format under the folder you setted (if not set, it will generate in the root path). You can use the exmaple files under pymolfold/example/, and the results should be exactly the same as pymolfold/example/metrics.
Others
Version
Current version is 0.2.2, and if you are interesting in the source code, you can install pymolfold directly by pip install pymolfold==0.2.2.
Info
The PymolFold service is running on a A5000 instance (cost $100 a week), and the sequence length is limited to 1000aa.
Issues and Errors
If you encounter any errors or issues while using this project, please don't hesitate to open an issue here on GitHub. Your feedback helps us improve the project and make it more user-friendly for everyone.
PymolFold Server: A Shared Resource
Please note that the PymolFold server is a shared resource, and I request you to use it responsibly. Do not abuse the server, as it can affect the availability and performance of the service for other users.
21Sept2025: Refactor PyMOLFold, deleting unrelated module, adding boltz2 using NVIDIA API
17Jan2025: Add `esm3` to use ESM-3 for folding.
21Aug2023: As the ESMFold API is not stable, the job will be sent to PymolFold server if the job failed.
11Apr2023: `pf_plugin.py` is the PyMOL plugin and the `pf_pkg.py` is a pymol-free python package.
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 pymolfold-0.2.2.tar.gz.
File metadata
- Download URL: pymolfold-0.2.2.tar.gz
- Upload date:
- Size: 131.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfbda896d855f74c8de169b4804f2ed02e7938f0a0b9d4c47fa0fe4c8c232671
|
|
| MD5 |
dbbfc23c4481e6e64e8d7c58856f2502
|
|
| BLAKE2b-256 |
fddc6ea266662d54d3af77f1df721b7c9d7bdd49dde9b5d813cc7ac1b93beac4
|
File details
Details for the file pymolfold-0.2.2-py3-none-any.whl.
File metadata
- Download URL: pymolfold-0.2.2-py3-none-any.whl
- Upload date:
- Size: 124.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13782ddf553dc46d6be0472afd560265c37e61a59d0a9e88dbdaed0a43723dab
|
|
| MD5 |
21841f3a9f2d4dda5d48a5a0daf5e06e
|
|
| BLAKE2b-256 |
bba1a357f514defb6f3aae6cd648f86ce3d526680cfee9209020359e11aa9376
|