structure-prediction-boltz-2
Skill1.1k starsChanged 8 months agoMITView on GitHub
Structure prediction using Boltz-2, an open biomolecular structure predictor. Use this skill when: (1) Predicting protein complex structures, (2) Validating designed binders, (3) Predicting protein-ligand complexes, (4) Using local GPU resources.
- Reads credentials
- Installs packages
Trending
Quiet this year.thin dataabout the whole repository
Who's talking about PharMolix/OpenBioMed
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
In this repository45 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- admet-predictionSkill
- antibody-design-iggmSkill
- antibody-structure-prediction-tfoldSkill
- binding-affinity-prediction-prodigySkill
- biomedical-literature-searchSkill
- biomed-skill-creatorSkill
- biomed-skill-routerSkill
- cellxgene-census-querySkill
- chembl-querySkill
- disease-drug-intelligenceSkill
- drug-candidate-discoverySkill
- drug-drug-interaction-analysisSkill
- drug-lead-analysisSkill
- functional-protein-designSkill
- iupac-name-identification-biot5Skill
- kegg-querySkill
- molecule-biochemical-significance-query-biot5Skill
- mutation-design-aavSkill
- mutation-design-gfpSkill
- ppi-string-querySkill
- protein-function-predictionSkill
- protein-ligand-binding-analysis-plipSkill
- protein-mutation-analysisSkill
- protein-structure-design-boltzgenSkill
- protein-subcellular-localization-prediction-biot5Skill
- pubchem-querySkill
- retrosynthesis-planningSkill
- similar-protein-retrievalSkill
- single-cell-atac-seq-peak-calling-annotaionSkill
- single-cell-atac-seq-qc-processingSkill
- single-cell-foundation-model-geneformerSkill
- single-cell-foundation-model-langcellSkill
- single-cell-foundation-model-scgptSkill
- single-cell-multi-omics-analysis-scviSkill
- single-cell-multi-omics-data-harmonizationSkill
- single-cell-proteomics-data-processingSkill
- single-cell-proteomics-peptide-identificationSkill
- single-cell-scrna-seq-analysis-scanpySkill
- single-cell-foundation-model-stofmSkill
- spatial-transcriptomics-spatial-data-ioSkill
- target-based-lead-designSkill
- target-drug-reportSkill
- text-based-molecule-editingSkill
- uniprot-querySkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 5
Use this skill when: (1) Predicting protein complex structures, (2) Validating designed binders, (3) Predicting protein-ligand complexes, …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Boltz-2 Structure Prediction
Prerequisites
| Requirement | Minimum | Recommended |
| Python | 3.10+ | 3.10 |
| CUDA | 12.0+ | 12.2 |
| GPU VRAM | 24GB | 80GB (A800) |
| RAM | 32GB | 64GB |
How to run
Local installation
pip install boltz[cuda] -U -iPredict protein complex structure
import os, yaml, subprocess
def predict_protein_complex_structure(sequence_1, sequence_2, project_dir):
"""
:param sequence_1: sequence of the first protein
:param sequence_2: sequence of the second protein
:param project_dir: path to the project
:return structure of the protein complex in PDB format
"""
# init project dir
os.makedirs(project_dir, exist_ok=True)
log_file = os.join(project_dir, 'log.txt')
# init input yaml file
data = {
"sequences": [
{
"protein": {
"id": "A",
"sequence": sequence_1,
"msa": "empty"
}
},
{
"protein": {
"id": "B",
"sequence": sequence_2,
"msa": "empty"
}
},
]
}
input_file = os.path.join(project_dir, "input.yaml")
with open(input_file, "w") as f:
yaml.dump(data, f)
# init output file
output_dir = os.path.join(project_dir, "boltz")
# prediction
command = [
'boltz', 'predict', input_file,
"--out_dir", output_dir,
'--use_msa_server',
'--output_format', "pdb",
"--seed", "42"
]
with open(log_file, 'a') as f:
process = subprocess.Popen(command, stdout=f, stderr=f, env=self.env)
process.communicate()
process.terminate()
try:
process.wait(timeout=5)
except subprocess.TimeoutExpired:
process.kill()
process.wait()
# extract structure
with open(os.path.join(output_dir, "boltz_results_input", "predictions", "input", "input_model_0.pdb"), 'r') as f:
pred_struc = f.read()
return pred_struc
# Predict protein complex structure for sequence_1 and sequence_2
# pred_structure is the structure prediction in PDB format
pred_structure = predict_protein_complex_structure(sequence_1, sequence_2, project_dir)Predict protein ligand complex structure and IC50
import os, yaml, subprocess
def predict_protein_ligand_complex_affinity(sequence, smiles, project_dir):
"""
:param sequence: sequence of the first protein
:param smiles: SMILES string of the ligand
:param project_dir: path to the project
:return pred_struct: structure of protein-ligand complex in PDB format
:return pred_ic50: binding affinity prediction of the protein-ligand complex
"""
# init project dir
os.makedirs(project_dir, exist_ok=True)
log_file = os.join(project_dir, 'log.txt')
# init input yaml file
data = {
"sequences": [
{
"protein": {
"id": "A",
"sequence": sequence,
"msa": "empty"
}
},
{
"ligand":{
"id": "B",
"smiles": smiles,
}
}
],
"properties": [
{
"affinity":{
"binder": "B"
}
}
]
}
input_file = os.path.join(project_dir, "input.yaml")
with open(input_file, "w") as f:
yaml.dump(data, f)
# init output file
output_dir = os.path.join(project_dir, "boltz")
# prediction
command = [
'boltz', 'predict', input_file,
"--out_dir", output_dir,
'--use_msa_server',
'--output_format', "pdb",
"--seed", "42"
]
with open(log_file, 'a') as f:
process = subprocess.Popen(command, stdout=f, stderr=f, env=self.env)
process.communicate()
process.terminate()
try:
process.wait(timeout=5)
except subprocess.TimeoutExpired:
process.kill()
process.wait()
# extract affinity
with open(os.path.join(output_dir, "boltz_results_input", "predictions", "input", "affinity_input.json"), 'r') as f:
pred_ic50 = (6 - json.load(f)["affinity_pred_value"]) * 1.364
# extract structure
with open(os.path.join(output_dir, "boltz_results_input", "predictions", "input", "input_model_0.pdb"), 'r') as f:
pred_struc = f.read()
return pred_struc, pred_ic50
# Predict protein-ligand complex structure and the corresponding binding affinity (IC50)
# pred_structure is the structure prediction in PDB format
# pred_ic50 is the binding affinity prediction in IC50 format
pred_structure, pred_ic50 = predict_protein_ligand_complex_affinity(sequence, smiles, project_dir):Output format
Protein complex structure prediction
project_dir/boltz/boltz_results_input/predictions/input/
├── input_model_0.pdb # structure prediction (PDB format)
├── confidence_input_model_0.json # pTM, ipTM
├── pae_input_model_0.npz # PAE matrix
└── plddt_input_model_0.npz # pLDDT matrixProtein-ligand complex structure prediction
project_dir/boltz/boltz_results_input/predictions/input/
├── input_model_0.pdb # structure prediction (PDB format)
└── affinity_input.json # affinity_pred_valueDecision tree
Should I use Boltz-2?
│
└─ What are you predicting?
├─ Structure prediction for general protein-protein complex → boltz-2 ✓
├─ Structure prediction for protein-ligand complex → boltz-2 ✓
├─ Antibody and nanobody structure prediction → tfold
└─ Antigen-antibody structure prediction → tfoldTypical performance
| Campaign Size | Time (L40S) | Cost (Modal) | Notes |
| 100 complexes | 30-45 min | ~$8 | Standard validation |
| 500 complexes | 2-3h | ~$35 | Large campaign |
| 1000 complexes | 4-6h | ~$70 | Comprehensive |
Per-complex: ~15-30s for typical binder-target complex.
Next: Evaluate protein complex binding affinity with prodigy.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

