Results Analysis & Quality Assessment
- Download results: Use get_prediction_results to retrieve PDB files
- Analyze quality: Use analyze_prediction_quality for pLDDT and PAE metrics
- Parallel analysis: Use analyze_job_parallel for fast batch analysis (25 predictions in ~60s)
- IMPORTANT: After starting analysis, DO NOT automatically check for results
- Tell the user: "Analysis started. This will take 1-2 minutes. Ask me to check results in a few minutes."
- Wait for the user to explicitly ask for results before checking
- Get analysis results: Use get_analysis_results to retrieve completed parallel analyses
- Only call this when the user explicitly asks to check/get analysis results
- Check the 'status' field in response: 'complete', 'running', 'failed', 'likely_failed', 'incomplete'
- If status is 'failed' or 'likely_failed', STOP retrying and explain the error to the user with error_hint/error_details
- DO NOT repeatedly call get_analysis_results if it returns 'failed' status - the analysis has permanently failed
- Common failure: Cloud Run can't find prediction files (usually means AlphaFold job hasn't completed yet)
- If status is 'running', you may check again ONCE after a brief wait, but not in a loop
- OF3 analysis: Use of3_analyze_job_parallel to analyze OF3 predictions (generates pLDDT plots, PDE heatmaps, ipTM matrix, Gemini analysis)
- OF3 results: Use of3_get_analysis_results to retrieve OF3 analysis results
- Boltz-2 analysis: Use boltz2_analyze_job_parallel to analyze Boltz-2 predictions
- Boltz-2 results: Use boltz2_get_analysis_results to retrieve Boltz-2 analysis results
- Job analysis: Use analyze_job for comprehensive analysis of any job (failed, successful, or running)
- Use detail_level='summary' for quick overview without log fetching (default, recommended for initial checks)
- Use detail_level='detailed' for deep troubleshooting with Cloud Logging error logs (fetches top 5 ERROR logs per failed task)
AF2 Quality Metrics
pLDDT (per-residue, 0-100):
90: Very high confidence — backbone and sidechain positions reliable. Drug design quality.
- 70-90: Good confidence — backbone reliable, some sidechain uncertainty. Suitable for most analyses.
- 50-70: Low confidence — often loops, disordered regions, or poorly sampled conformations.
- <50: Very low — likely intrinsically disordered regions (IDRs). These are real biology, not prediction failures.
PAE (Predicted Aligned Error, Angstroms):
- Measures predicted error in position of residue X relative to residue Y
- Low PAE (<5Å) within a domain = well-defined fold
- Low PAE between domains = reliable domain arrangement
- High PAE between domains = domains may be correct individually but relative orientation is uncertain
- Critical for multimer interface quality — low inter-chain PAE = confident interface
ranking_confidence:
- Monomer: average pLDDT (higher is better)
- Multimer: 0.8 × ipTM + 0.2 × pTM (higher is better)
- Use this to pick the best model from the 5 (or 25) predictions
When AF2 Struggles (help users understand)
- Disordered regions: Low pLDDT (<50) in known IDRs is correct — these regions are genuinely flexible
- Multi-domain proteins with flexible linkers: Individual domains may be well-predicted but relative orientation uncertain (high inter-domain PAE)
- Membrane proteins: Often good in transmembrane regions, uncertain in flexible loops
- Novel folds: If the protein has no homologs in training data, confidence will be lower
- Multimer interfaces: Some interfaces are poorly predicted even with high individual chain pLDDT
OpenFold3 (OF3) Metrics Reference
For deep metric interpretations, consult the attached reference: references/of3-metrics.md.
Includes details on sample_ranking_score, ptm, iptm, gpde, chain_pair_iptm, and analysis plot interpretation.
Smart Retry Guidance for Failed Jobs
When a job fails, analyze the error and suggest targeted fixes — don't just resubmit blindly.
Data Pipeline Failures
Template parser errors (e.g., ValueError: Could not parse description):
- This is a known AF2 bug where hmmsearch finds a PDB template with an unusual description format
- Fix: Resubmit with an earlier
max_template_date (e.g., 2020-01-01) to avoid the problematic PDB entry
- Tell the user: "The template search found a PDB entry with a format AF2 can't parse. I can resubmit with an earlier template date to skip it — prediction quality will still be good."
Sequence parsing errors (e.g., invalid FASTA, empty sequences):
- Check if the FASTA was malformed (missing newlines, merged headers)
- The agent auto-repairs common copy-paste issues, but if it still fails, show the user what was submitted and ask them to verify
- Fix: Reformat the sequence and resubmit
Database not found errors (e.g., missing uniref90, BFD):
- NFS databases may not be fully downloaded yet
- Fix: Check database download status, wait for completion, then resubmit
Out of memory / OOM in data pipeline:
- Rare, but can happen with very large sequences and full BFD
- Fix: Resubmit with
use_small_bfd=True
Predict Task Failures
GPU OOM (e.g., CUDA out of memory):
- Sequence too large for the selected GPU
- Fix: Upgrade GPU tier (L4 -> A100, A100 -> A100_80GB)
GPU provisioning timeout (e.g., max wait duration reached):
- No GPUs available in the region within the DWS timeout
- Fix: Resubmit (transient), or try a different GPU tier that has quota available
- Check quotas first with check_gpu_quota
Relax Task Failures
Relax OOM or timeout:
- AMBER relaxation is less demanding — usually an L4 is sufficient
- Fix: If relax failed on L4, try with
relax_gpu_type='A100'
- Alternative: Resubmit with
run_relaxation=False (unrelaxed structures are still useful)
General Retry Rules
- Always use
get_job_details first to retrieve the original sequence and parameters
- Pipeline caching (
enable_caching=True, the default) skips completed tasks — only failed tasks re-run
- Tell the user: "Completed steps will be cached so only the failed task re-runs"
- If the same error repeats after retry, escalate — don't retry the same thing more than twice
1---2name: results-analysis3description: Quality assessment, confidence scoring (pLDDT, PAE, ipTM), and parallel evaluation of predicted protein structures4---56# Results Analysis & Quality Assessment78- **Download results**: Use get_prediction_results to retrieve PDB files9- **Analyze quality**: Use analyze_prediction_quality for pLDDT and PAE metrics10- **Parallel analysis**: Use analyze_job_parallel for fast batch analysis (25 predictions in ~60s)11 - **IMPORTANT**: After starting analysis, DO NOT automatically check for results12 - Tell the user: "Analysis started. This will take 1-2 minutes. Ask me to check results in a few minutes."13 - Wait for the user to explicitly ask for results before checking14- **Get analysis results**: Use get_analysis_results to retrieve completed parallel analyses15 - Only call this when the user explicitly asks to check/get analysis results16 - Check the 'status' field in response: 'complete', 'running', 'failed', 'likely_failed', 'incomplete'17 - If status is 'failed' or 'likely_failed', STOP retrying and explain the error to the user with error_hint/error_details18 - DO NOT repeatedly call get_analysis_results if it returns 'failed' status - the analysis has permanently failed19 - Common failure: Cloud Run can't find prediction files (usually means AlphaFold job hasn't completed yet)20 - If status is 'running', you may check again ONCE after a brief wait, but not in a loop21- **OF3 analysis**: Use of3_analyze_job_parallel to analyze OF3 predictions (generates pLDDT plots, PDE heatmaps, ipTM matrix, Gemini analysis)22- **OF3 results**: Use of3_get_analysis_results to retrieve OF3 analysis results23- **Boltz-2 analysis**: Use boltz2_analyze_job_parallel to analyze Boltz-2 predictions24- **Boltz-2 results**: Use boltz2_get_analysis_results to retrieve Boltz-2 analysis results25- **Job analysis**: Use analyze_job for comprehensive analysis of any job (failed, successful, or running)26 - Use detail_level='summary' for quick overview without log fetching (default, recommended for initial checks)27 - Use detail_level='detailed' for deep troubleshooting with Cloud Logging error logs (fetches top 5 ERROR logs per failed task)2829### AF2 Quality Metrics30**pLDDT (per-residue, 0-100)**:31- >90: Very high confidence — backbone and sidechain positions reliable. Drug design quality.32- 70-90: Good confidence — backbone reliable, some sidechain uncertainty. Suitable for most analyses.33- 50-70: Low confidence — often loops, disordered regions, or poorly sampled conformations.34- <50: Very low — likely intrinsically disordered regions (IDRs). These are real biology, not prediction failures.3536**PAE (Predicted Aligned Error, Angstroms)**:37- Measures predicted error in position of residue X relative to residue Y38- Low PAE (<5Å) within a domain = well-defined fold39- Low PAE between domains = reliable domain arrangement40- High PAE between domains = domains may be correct individually but relative orientation is uncertain41- Critical for multimer interface quality — low inter-chain PAE = confident interface4243**ranking_confidence**:44- Monomer: average pLDDT (higher is better)45- Multimer: 0.8 × ipTM + 0.2 × pTM (higher is better)46- Use this to pick the best model from the 5 (or 25) predictions4748### When AF2 Struggles (help users understand)49- **Disordered regions**: Low pLDDT (<50) in known IDRs is correct — these regions are genuinely flexible50- **Multi-domain proteins with flexible linkers**: Individual domains may be well-predicted but relative orientation uncertain (high inter-domain PAE)51- **Membrane proteins**: Often good in transmembrane regions, uncertain in flexible loops52- **Novel folds**: If the protein has no homologs in training data, confidence will be lower53- **Multimer interfaces**: Some interfaces are poorly predicted even with high individual chain pLDDT5455### OpenFold3 (OF3) Metrics Reference56For deep metric interpretations, consult the attached reference: `references/of3-metrics.md`.57Includes details on `sample_ranking_score`, `ptm`, `iptm`, `gpde`, `chain_pair_iptm`, and analysis plot interpretation.5859## Smart Retry Guidance for Failed Jobs60When a job fails, analyze the error and suggest targeted fixes — don't just resubmit blindly.6162### Data Pipeline Failures63**Template parser errors** (e.g., `ValueError: Could not parse description`):64- This is a known AF2 bug where hmmsearch finds a PDB template with an unusual description format65- **Fix**: Resubmit with an earlier `max_template_date` (e.g., `2020-01-01`) to avoid the problematic PDB entry66- Tell the user: "The template search found a PDB entry with a format AF2 can't parse. I can resubmit with an earlier template date to skip it — prediction quality will still be good."6768**Sequence parsing errors** (e.g., invalid FASTA, empty sequences):69- Check if the FASTA was malformed (missing newlines, merged headers)70- The agent auto-repairs common copy-paste issues, but if it still fails, show the user what was submitted and ask them to verify71- **Fix**: Reformat the sequence and resubmit7273**Database not found errors** (e.g., missing uniref90, BFD):74- NFS databases may not be fully downloaded yet75- **Fix**: Check database download status, wait for completion, then resubmit7677**Out of memory / OOM in data pipeline**:78- Rare, but can happen with very large sequences and full BFD79- **Fix**: Resubmit with `use_small_bfd=True`8081### Predict Task Failures82**GPU OOM** (e.g., CUDA out of memory):83- Sequence too large for the selected GPU84- **Fix**: Upgrade GPU tier (L4 -> A100, A100 -> A100_80GB)8586**GPU provisioning timeout** (e.g., max wait duration reached):87- No GPUs available in the region within the DWS timeout88- **Fix**: Resubmit (transient), or try a different GPU tier that has quota available89- Check quotas first with check_gpu_quota9091### Relax Task Failures92**Relax OOM or timeout**:93- AMBER relaxation is less demanding — usually an L4 is sufficient94- **Fix**: If relax failed on L4, try with `relax_gpu_type='A100'`95- Alternative: Resubmit with `run_relaxation=False` (unrelaxed structures are still useful)9697### General Retry Rules981. Always use `get_job_details` first to retrieve the original sequence and parameters992. Pipeline caching (`enable_caching=True`, the default) skips completed tasks — only failed tasks re-run1003. Tell the user: "Completed steps will be cached so only the failed task re-runs"1014. If the same error repeats after retry, escalate — don't retry the same thing more than twice