Skip to main content

Quality-control and tag-site scoring for designed protein binders, from a predicted complex

Project description

binderqc

Quality control and tag-site scoring for designed protein binders — geometry and sequence only, one CSV row per binder, straight from a predicted complex.

CI License: MIT Python 3.10+

From a predicted binder–target complex, binderqc reports interface, pose, grippability, tag site, and developability

Install

pip install -e .          # or: uv pip install -e .

Python 3.10+. Pulls in biotite, numpy, and pandas.

Usage

binderqc --binder-chains A --target-chains B --out out.csv complex.cif some_dir/
from binderqc import score_structure
rows = score_structure("complex.pdb", binder_chains=["A"], target_chains=["B"])

Inputs are PDB/CIF files, globs, or directories. Leave --binder-chains off to guess the binder as the shortest chain (20–250 aa, printed for each file); --target-chains defaults to the remaining chains.

flag default meaning
--binder-chains auto-guess comma-separated binder chain ids
--target-chains all non-binder comma-separated target chain ids
--interface-cutoff 5.0 heavy-atom contact distance (Å)
--exposure-cutoff 0.25 relSASA below which a terminus is buried
--out binderqc.csv output CSV path
--fasta off also write the QC-passing binders to this FASTA

Example output for the bundled LCB1 minibinder (a few of the columns):

recommended_tag binder_bsa epitope_planarity epitope_aromatic_n pi qc_pass
C 1021.4 3.21 11 4.17 True

Its warnings field reads both termini ~equidistant from interface (ambiguous) — a tag-site advisory, so qc_pass stays True.

What it reports

Per binder chain:

  • Interface — buried surface area and interface residue count.
  • Pose — approach angle (end-on vs. lying across the surface).
  • Grippability — epitope planarity, hydrophobic fraction, aromatic anchors.
  • Tag site — recommended terminus (N/C) and the numbers behind it: relative SASA, CA–CA distance to the paratope, orientation, and a terminal cysteine's SG SASA.
  • Developability — sequence liabilities, GRAVY, net charge, pI, MW, ε₂₈₀.

A warnings column flags problems (small, flat, or anchorless interfaces; buried, ambiguous, or interface-facing tag sites; hydrophobic sequences). qc_pass is true when there are no quality warnings — tag-site advisories like an ambiguous terminus don't count — and --fasta dumps exactly those binders.

Full column list

pdb, binder_chain, target_chains, binder_len, n_interface_res, binder_bsa, approach_angle, epitope_planarity, epitope_hydrophobic_frac, epitope_aromatic_n, nterm_resnum, nterm_resname, nterm_relsasa, nterm_dist_to_interface, nterm_orientation, nterm_sg_sasa, cterm_resnum, cterm_resname, cterm_relsasa, cterm_dist_to_interface, cterm_orientation, cterm_sg_sasa, recommended_tag, mw, gravy, net_charge_ph74, pi, ext_coeff_280, sequence_liabilities, warnings, qc_pass, binder_sequence

Tests

pip install -e ".[test]"
pytest

Runs against a bundled example, PDB 7JZU (the LCB1 minibinder on the SARS-CoV-2 RBD). tests/pisa_correctness.py is a separate script (not part of the unit tests) that downloads 18 public complexes from RCSB and PDBePISA and checks the interface area against PISA (r ≈ 1.0, ~1% median error):

pip install -e ".[validation]"
python tests/pisa_correctness.py

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binderqc-0.1.0.tar.gz (482.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binderqc-0.1.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file binderqc-0.1.0.tar.gz.

File metadata

  • Download URL: binderqc-0.1.0.tar.gz
  • Upload date:
  • Size: 482.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for binderqc-0.1.0.tar.gz
Algorithm Hash digest
SHA256 16ef8c43165a6a06159246f27044aff4a5c3d7c7d34d96695529164a4474937c
MD5 20a3c93c0edc3cbb257f92d9637632da
BLAKE2b-256 915c27779394f5f0a9e14b4ec4a0e8fec5f2ff86af06f30ed7f910423a42dce1

See more details on using hashes here.

Provenance

The following attestation bundles were made for binderqc-0.1.0.tar.gz:

Publisher: publish.yml on ssiddhantsharma/binderqc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file binderqc-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: binderqc-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for binderqc-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9dfd871016ebe6afb471a5c050e53f7f5efb7decd389177e2d0dd4e1785a9ce5
MD5 105d9bb24257b08d81439e15e82ff8f7
BLAKE2b-256 2409408923f8721398e0a0ed8725928bccc5aa0ef1dcc72c40789f3fef96621a

See more details on using hashes here.

Provenance

The following attestation bundles were made for binderqc-0.1.0-py3-none-any.whl:

Publisher: publish.yml on ssiddhantsharma/binderqc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page