Skip to content

Conversation

@y1zhou
Copy link

@y1zhou y1zhou commented Dec 3, 2025

New

  • Packaged the script into an installable file structure.
  • Added .pre-commit-config.yaml to standardize formatting and catch linter errors.
  • Added support for specifying the model type from CLI arguments and skipping the guessing process.

Changed

  • Refactored global variables and subroutines in the original script into modular functions. Notably, there is a ipsae() function that can be imported by other scripts for downstream processing. Results are stored as lists of dataclasses, which can be trivially transformed to pandas or polars data frames.
  • Vectorized inner loop calculations where possible for performance improvements.
  • Improved CLI argument parsing, which now supports outputting results to stdout and to a specific directory via --output-dir.

Fixed

  • Chain index parsing logic from Fix chain index for iptm matrix #19
  • Redundant iterations of the input arrays for calculating different scores.
  • Counterintuitive row ordering in the generated PyMOL script.

These changes collectively improve the usability, reproducibility, and maintainability of the IPSAE scoring tool.

y1zhou and others added 30 commits November 30, 2025 22:47
…in the .pml output

The content are the same, but the original script outputs the coloring of the last asym pair *after* the max comment row. The original script also outputs extra whitespace around chain ID selection.
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
…class

Refactor summary_lines to ChainPairScoreResults dataclass
…ied chain groups

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
…tion

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
…s token, -g flag

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
y1zhou and others added 10 commits December 5, 2025 12:09
…ming, and byres ordering

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
…ank line separator

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
…ample files

Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Co-authored-by: y1zhou <17245097+y1zhou@users.noreply.github.com>
Add --chain-groups CLI argument for calculating scores between specified chain groups
@y1zhou
Copy link
Author

y1zhou commented Dec 8, 2025

Since commit 1dd0697, two additional things were added:

  • CLI options --chain-groups to specify groups of chains that would be merged during score calculation. For example in an antibody-antigen complex scenario, H+L/A would compute interface scores for the two antibody chains vs. the antigen chain.
  • Unit tests for the chain group parsing logic, and regression tests using tables generated from the original script to ensure my changes did not affect the output scores of individual chains.

@y1zhou y1zhou changed the title Refactor into installable package with modular functions Modular functions, support grouping chains, and partial support for Chai-1 models Dec 18, 2025
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