Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**GPU**: A100 (40GB) | **Timeout**: 3600s default
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
| Requirement | Minimum | Recommended | |-------------|---------|-------------| | Python | 3.8+ | 3.10 | | CUDA | 11.0+ | 12.0+ | | GPU VRAM | 32GB | 40GB (A100) | | RAM | 32GB | 64GB | | Disk | 100GB | 500GB (for databases) |
> First time? See Installation Guide to set up Modal and biomodals.
bashcd biomodals modal run modal_colabfold.py \ --input-faa sequences.fasta \ --out-dir output/
GPU: A100 (40GB) | Timeout: 3600s default
bashgit clone https://github.com/deepmind/alphafold.git cd alphafold python run_alphafold.py \ --fasta_paths=query.fasta \ --output_dir=output/ \ --model_preset=monomer \ --max_template_date=2026-01-01
bashmodal run modal_esmfold.py \ --sequence "MKTAYIAKQRQISFVK..."
| Parameter | Default | Options | Description | |-----------|---------|---------|-------------| | --model_preset | monomer | monomer/multimer | Model type | | --num_recycle | 3 | 1-20 | Recycling iterations | | --max_template_date | - | YYYY-MM-DD | Template cutoff | | --use_templates | True | True/False | Use template search |
output/
├── ranked_0.pdb # Best model
├── ranked_1.pdb # Second best
├── ranking_debug.json # Confidence scores
├── result_model_1.pkl # Full results
├── msas/ # MSA files
└── features.pkl # Input featurespythonimport pickle with open('result_model_1.pkl', 'rb') as f: result = pickle.load(f) plddt = result['plddt'] ptm = result['ptm'] iptm = result.get('iptm', None) # Multimer only pae = result['predicted_aligned_error']
$ python run_alphafold.py --fasta_paths complex.fasta --model_preset multimer
[INFO] Running MSA search...
[INFO] Running model 1/5...
[INFO] Running model 5/5...
[INFO] Relaxing structures...
Results:
ranked_0.pdb:
pLDDT: 87.3 (mean)
pTM: 0.78
ipTM: 0.62
PAE (interface): 8.5
Saved to output/What good output looks like:
Should I use AlphaFold?
│
├─ What are you predicting?
│ ├─ Single protein → ESMFold (faster)
│ ├─ Protein-protein complex → AlphaFold/ColabFold ✓
│ ├─ Protein + ligand → Chai or Boltz
│ └─ Batch of sequences → ColabFold ✓
│
├─ What do you need?
│ ├─ Highest accuracy → AlphaFold/ColabFold ✓
│ ├─ Fast screening → ESMFold
│ └─ MSA-free prediction → Chai or ESMFold
│
└─ Which AF2 option?
├─ Local installation → Full control, slow setup
├─ ColabFold → Easier, MSA server
└─ Modal → Recommended for batch| Campaign Size | Time (A100) | Cost (Modal) | Notes | |---------------|-------------|--------------|-------| | 100 complexes | 1-2h | ~$8 | With MSA server | | 500 complexes | 5-10h | ~$40 | Standard campaign | | 1000 complexes | 10-20h | ~$80 | Large campaign |
Per-complex: ~30-60s with MSA server.
bashfind output -name "ranked_0.pdb" | wc -l # Should match input count
Low pLDDT regions: May indicate disorder or poor design Low ipTM: Interface not confident, check hotspots High PAE off-diagonal: Chains may not interact OOM errors: Use ColabFold with MSA server instead
| Error | Cause | Fix | |-------|-------|-----| | RuntimeError: CUDA out of memory | Sequence too long | Use A100 or split prediction | | KeyError: 'iptm' | Running monomer on complex | Use multimer preset | | FileNotFoundError: database | Missing MSA databases | Use ColabFold MSA server | | TimeoutError | MSA search slow | Reduce num_recycles |
Next: protein-qc for filtering and ranking.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.