Skip to content

ProteinDJ v2.1.0 - Ranking and Analysis Filtering

Choose a tag to compare

@JoshuaMHardy JoshuaMHardy released this 17 Dec 21:58
· 175 commits to main since this release
bd3f322

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 outputs
    • ranking_metric - Specify metric for ranking (e.g., af2_pae_interaction, boltz_ipSAE_min)
    • max_designs - Limit number of top designs to output
    • max_seqs_per_fold - Limit sequences per fold to increase fold diversity
  • Output structure: Added ranked_designs/ directory and ranked_designs.csv to 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 Errors
    • LIS - Local Interaction Score
    • pDockQ2_min - Minimum Predicted DockQ Score v2
    • boltz_pae_interaction - PAE at interaction interfaces
  • New scripts:
    • analyse_boltz_batch.py - Parallel batch processing of ipSAE metrics
    • analyse_boltz_calc.py - Core ipSAE calculation engine
  • New filtering parameters: 4 additional Boltz filtering criteria
  • Template support: boltz_use_templates now defaults to true
  • MSA support: New boltz_input_msa parameter for providing target MSA files (.a3m format)

4. Metric Naming Standardization

Renamed metrics for consistency across the pipeline:

  • bc_target_rmsdbc_rmsd_target
  • boltz_overall_rmsdboltz_rmsd_overall
  • boltz_binder_rmsdboltz_rmsd_binder
  • boltz_target_rmsdboltz_rmsd_target
  • pr_surfhphobics_%pr_surfhphobics
  • Added boltz_ptm_binder and boltz_ptm_target alongside existing boltz_ptm

5. PyRosetta Analysis Improvements

  • New metrics:
    • pr_intface_deltaGtoBSA - ΔG to BSA ratio
    • pr_intface_unsat_hbonds - Unsatisfied hydrogen bonds
    • pr_SAP - Spatial Aggregation Propensity (solubility predictor) of designed chain
    • pr_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 -resume flag 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_denovo to 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 --resume functionality
    • Parallel execution usage examples
    • Performance optimization tips

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) vs pred_filtered
    • Adds analysis_filtered count
    • Properly handles skip stages (None values for skipped retention rates)
    • Uses first non-zero count as entry point for overall success rate

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 handling
    • test_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