Skip to content

Impress r - #58

Closed
drawadiagram wants to merge 13 commits into
mainfrom
impress_r
Closed

Impress r#58
drawadiagram wants to merge 13 commits into
mainfrom
impress_r

Conversation

@drawadiagram

Copy link
Copy Markdown
Contributor

add impress_r use case

Mariya Goliyad and others added 10 commits August 27, 2026 10:01
…eviews

Pipeline changes (examples/small_molecule_binding/):
- Rewrite all tasks from capture_stdio to local_task=True using asyncio.create_subprocess_shell;
  redirect stdout+stderr to per-task .log files (only surface on failure)
- Add _gpu_env() helper to propagate Dragon Policy gpu_affinity via CUDA_VISIBLE_DEVICES
- Add CIF.GZ→PDB gemmi conversion before MPNN (LigandMPNN only reads PDB format)
- Make scripts_path overridable via kwargs
- Add mpnn_run.py: numpy deprecated alias shim for LigandMPNN's bundled openfold

af2.sh:
- Detect colabfold_batch from active venv or pixi env; error if not found
- Use COLABFOLD_CACHE_DIR env var for model weights; fallback to ~/.cache/colabfold
- Pass --data flag (not --data-dir) and --num-models 1 for integration runs

rfd3.sh:
- Add --writable-tmpfs --bind /scratch:/scratch to apptainer exec (required on Delta)
- Set PYTHONNOUSERSITE=1 to prevent host .local packages contaminating container

impress_manager.py (bug fix):
- kill_parent path appended bare pipeline instead of (pipeline, future) tuple →
  ValueError on unpack in cleanup loop; fixed to append (pipeline, pipeline_future)
- Surface pipeline exceptions via future.exception() and log via pipeline_failed()

logger.py:
- Add pipeline_failed() method for error-level pipeline failure reporting

Code reviews:
- src/CODE_REVIEW.md: bugs and quality issues in impress src/
- examples/small_molecule_binding/CODE_REVIEW.md: pipeline + scripts review
- examples/protien_binding_usecase/CODE_REVIEW.md: protein binding example review

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
File was present in origin/main but absent from the ipdps_pdz_usecase base
branch. Added with the same DragonExecutionBackendV3 → DragonExecutionBackend
update applied to run_small_molecule_binding.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
Conflict resolutions:
- examples/protein_binding/protein_binding.py: took origin/main version
  (standalone Boltz-capable pipeline; moved out of src/impress/pipelines/)
- examples/small_molecule_binding/run_nonadaptive.py: kept HEAD version
  (DragonExecutionBackend, not V3)
- examples/protien_binding_usecase/run_protein_binding.py: accepted deletion
  (file lives in examples/protein_binding/ in main)
- AU files (CODE_REVIEW.md, SKILL.md, delta_env_setup.sh, delta_gpu_run.sh):
  staged at their new location in examples/protein_binding/ per main's rename

src/impress/pipelines/protein_binding.py deleted: concrete pipeline moved to
examples/protein_binding/protein_binding.py in main branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
- src/: remove all protein_binding.py findings (file moved to
  examples/protein_binding/ in main merge); add note at header
- examples/small_molecule_binding/: add run_nonadaptive.py to scope;
  extend debug-logging finding to cover both runner files; add findings
  for commented-out backend and hardcoded pipeline index list
- examples/protein_binding/: full rewrite — new header (directory
  renamed protein_binding/), expanded scope to cover protein_binding.py
  (Boltz), protein_binding_run.py, run_nonadaptive.py; add findings for
  hardcoded Anvil MPNN_PATH, hardcoded peptide sequence, concurrent
  Boltz gather, unguarded os.unlink, DragonExecutionBackendV3 rename in
  all three runner files, stale delta_gpu_run.sh paths; remove resolved
  typo-directory finding and fixed log-message typo finding

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
…nding/, protein_binding/

Bugs fixed:
- filter_shape.py: undefined sfxn → sfxn_clean in RosettaScripts XML; add argparse
- packmin.py: rosetta.* → pyrosetta.rosetta.* imports; remove commented dead code
- mpnn_wrapper.py (pb): #!/bin/sh shebang → #!/usr/bin/env python3
- mpnn_wrapper.py (pb): temperature type=int → type=float
- impress_manager.py: WorkflowEngine shutdown in try/finally; flow=None in __init__; guard submit_new_pipelines
- impress_pipeline.py: remove @AbstractMethod from finalize; add no-op base impl

Potential issues:
- protein_binding.py, small_molecule_binding.py: Anvil hardcoded paths → None + ValueError
- protein_binding.py: os.unlink → Path.unlink(missing_ok=True)
- protein_binding.py: Boltz gather gated with Semaphore(2) via _guarded_s4
- protein_binding_run.py, run_protein_binding.py, run_nonadaptive.py (pb): DragonExecutionBackendV3 → DragonExecutionBackend
- run_protein_binding.py: adaptive_criteria async→def; CSV path uses pipeline.base_path
- delta_gpu_run.sh: path typo protien→protein; LD_LIBRARY_PATH guarded; tasks-per-node=1; eval→source

Code quality:
- run_small_molecule_binding.py: DEBUG→INFO logging; remove unused ThreadPoolExecutor imports
- run_nonadaptive.py (smb): DEBUG→INFO; remove commented-out LocalExecutionBackend import
- protein_binding_run.py, run_nonadaptive.py (pb): DEBUG→INFO logging
- filter_shape.py: remove redundant .close() in with blocks
- filter_energy.py: remove unconditional print to stdout
- fastrelax.sh: quote $0 in dirname
- af2.sh: remove diagnostic echo lines
- af2_multimer_reduced.sh: remove unused /tmp/work /tmp/upper
- rfd3.sh: fix comment arg order ($4=diffusion_batch_size $5=scaffold_arg)
- small_molecule_binding.py: remove dead fixed_residues_file comment
- mpnn_wrapper.py (pb): chains==None → chains is None
- impress_manager.py: log buffered count before clear (fix stale-0 bug)
- logger.py: add min_level filtering; fix error()/critical() to use output_stream

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
…g integration

Combines modern IMPRESS protein_binding (Boltz structure prediction) with
ROME-A online ProteinMPNN fine-tuning. ROME hooks live entirely in the
adaptive function so the pipeline class stays clean. Includes SLURM scripts,
env setup, score analysis plotting script, and run 21736435 report.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
Plot 3 now shows depth-stratified mean trajectories (root/sub1/sub2/sub3)
instead of a single global mean, surfacing the ROME signal more clearly.
Report updated with final 296-design stats, per-depth table, and revised
key observations. plot_rome_scores.py updated to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
- delta_env_setup.sh (all examples): source lmod in non-interactive bash,
  use `module load python` for Python detection, fix version formula
  (major*100+minor), add matplotlib, export VIRTUAL_ENV before PyRosetta
  installer, pin dragonhpc==0.14.1 (0.14.2 breaks on Delta runtime),
  remove hardcoded bblj allocation from MINIFORGE and _scratch fallbacks
- delta_gpu_run.sh: point default IMPRESS_VENV to correct per-example venv
- impress_r/plot_rome_scores.py: remove hardcoded bblj allocation from
  SCRATCH fallback; require --csv-dir when SCRATCH is unset
- small_molecule_binding/small_molecule_binding.py: prefix scaffold_arg
  with + for Hydra append semantics (scaffoldguided.target_pdb)
- small_molecule_binding/delta_env_setup.sh: wrap COLABFOLD_CACHE_DIR in
  pathlib.Path() for download_alphafold_params

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbNxkFCwkCEEkHnN8xGH7Q
@drawadiagram

Copy link
Copy Markdown
Contributor Author

test branch only. mergeable activities moved to other branches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant