ProteinDJ v2.1.0 - Ranking and Analysis Filtering
Overview
This update focuses on enhancing ProteinDJ's output organization and filtering capabilities by adding design ranking functionality and a fourth filtering stage for biophysical analysis, along with significant documentation improvements and metric refinements.
Major Changes by Category:
1. Design Ranking System
- New script:
rank_designs.py- Ranks designs based on prediction quality metrics - New parameters:
rank_designs- Enable/disable ranking of outputsranking_metric- Specify metric for ranking (e.g.,af2_pae_interaction,boltz_ipSAE_min)max_designs- Limit number of top designs to outputmax_seqs_per_fold- Limit sequences per fold to increase fold diversity
- Output structure: Added
ranked_designs/directory andranked_designs.csvto results
2. Analysis Filtering Stage (4th Stage)
- New script:
filter_analysis.py- Filter designs after PyRosetta analysis - Can now filter using biophysical and sequence metrics including:
- Interface quality: shape complementarity, H-bonds, unsatisfied H-bonds, packing
- Energy: ΔG, ΔG/BSA ratio, total energy metric (TEM)
- Solubility: SAP (Spatial Aggregation Propensity) scores for monomer and complex
- Sequence properties: extinction coefficient, isoelectric point, surface hydrophobics
- Secondary structure: helices, strands, radius of gyration
3. Boltz-2 Enhancements
- New metrics from ipSAE analysis (MIT-licensed scripts from Digital Biotechnology Lab):
ipSAE_min- Minimum Interaction Prediction Score from Aligned ErrorsLIS- Local Interaction ScorepDockQ2_min- Minimum Predicted DockQ Score v2boltz_pae_interaction- PAE at interaction interfaces
- New scripts:
analyse_boltz_batch.py- Parallel batch processing of ipSAE metricsanalyse_boltz_calc.py- Core ipSAE calculation engine
- New filtering parameters: 4 additional Boltz filtering criteria
- Template support:
boltz_use_templatesnow defaults totrue - MSA support: New
boltz_input_msaparameter for providing target MSA files (.a3m format)
4. Metric Naming Standardization
Renamed metrics for consistency across the pipeline:
bc_target_rmsd→bc_rmsd_targetboltz_overall_rmsd→boltz_rmsd_overallboltz_binder_rmsd→boltz_rmsd_binderboltz_target_rmsd→boltz_rmsd_targetpr_surfhphobics_%→pr_surfhphobics- Added
boltz_ptm_binderandboltz_ptm_targetalongside existingboltz_ptm
5. PyRosetta Analysis Improvements
- New metrics:
pr_intface_deltaGtoBSA- ΔG to BSA ratiopr_intface_unsat_hbonds- Unsatisfied hydrogen bondspr_SAP- Spatial Aggregation Propensity (solubility predictor) of designed chainpr_SAP_complex- SAP of binder when in complex with targer
- Reorganized output: Metrics now grouped logically in
analyse_batch.py
6. BindSweeper Updates
- Version bump: 0.1.9 → 2.1.0 (aligned with ProteinDJ version)
- New CLI options to parellise and resume unfinished runs:
--resume- Use Nextflow's-resumeflag for caching--parallel- Execute combinations in parallel with isolated caches--max-parallel- Control parallel execution limit (default: 4)
- Success metrics tracking: Now tracks all 4 stages including analysis filtering
- BindCraft mode support: Added
bindcraft_denovoto binder schema - Improved testing: New test suites for validators and success rate analyzer
7. Documentation Enhancements
- README.md updates:
- Expanded filtering recommendations with literature references
- Added BindCraft-specific built-in filters explanation
- Updated output directory structure
- Added citations for ipSAE scripts
- Parameters documentation:
- New parameters for ranking designs
- Updated Boltz parameter descriptions with units
- Clarified filter parameter directions (higher/lower is better)
- BindSweeper documentation:
- Detailed explanation of
--resumefunctionality - Parallel execution usage examples
- Performance optimization tips
- Detailed explanation of
8. Container Updates
- New container:
python_tools- Lightweight Python environment (BioPython, Pandas, PyYAML, Matplotlib) for processes that do not need PyRosetta - Version bumps: All containers updated to v2.1
- Used for prep scripts that don't need heavy dependencies
9. Success Metrics Calculation
- Enhanced generate_success_metrics.py:
- Now tracks
pred_generated(before filtering) vspred_filtered - Adds
analysis_filteredcount - Properly handles skip stages (None values for skipped retention rates)
- Uses first non-zero count as entry point for overall success rate
- Now tracks
10. Metadata Management
- Updated
metadata_converter.py:- Fixed seq_id output formatting (integer strings instead of floats)
- Added all new metric columns to column ordering
- Improved JSONL conversion for analysis metrics
Testing & Quality:
- New test files:
test_binder_validator.py- Validates BindCraft parameter handlingtest_success_rate_analyzer.py- Tests metric calculation with skip scenarios
- Updated tests: Enhanced sweep engine tests for parallel execution
- Linting: Maintained Ruff compliance
Breaking Changes:
- Metric names changed (affects CSV column names and filter parameters)
- Container versions updated (requires re-pull)
- BindSweeper version jump requires awareness of new features
Backward Compatibility:
- Pipeline modes unchanged
- Config file structure preserved