Skip to main content

binderqc

Quality control and tag-site scoring for designed protein binders.

PyPI CI License: MIT Python 3.10+ DOI

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

Install

pip install binderqc

Python 3.10+. Pulls in biotite, numpy, and pandas. For development from source: pip install -e ".[test]".

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, interface residue count, hydrogen-bond and salt-bridge counts, and a contact-packing density (a lightweight proxy for contact molecular surface).
  • 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: an SAP-style spatial aggregation score, sequence liabilities, GRAVY, 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 do not count), and --fasta writes those binders.

Full column list

pdb, binder_chain, target_chains, n_interface_res, binder_bsa, n_hbonds, n_salt_bridges, interface_packing, 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, pi, ext_coeff_280, sap_score, 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). LCB1 comes from Cao et al. (2020), which frames the problem binderqc targets: the bottleneck is selecting good binders, not designing them.

"…not in the de novo design of proteins with shape and chemical complementarity to the target surface, but in recognizing the best candidates."

In that work LCB1 buries ~1,000 Ų and forms "multiple hydrogen bonds and salt bridges … consistent with the subnanomolar affinities". binderqc on 7JZU agrees: 1021 Ų buried area (Cao reports ~1,000 Ų), plus 2 salt bridges and 17 interface polar contacts. See Cao et al., De novo design of picomolar SARS-CoV-2 miniprotein inhibitors, Science 370, 426-431 (2020), doi:10.1126/science.abd9909.

tests/pisa_correctness.py is a separate script (not part of the unit tests). It downloads 18 public complexes from RCSB and PDBePISA and checks the interface area against PISA (r ~ 1.0, about 1% median error):

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

License

MIT

Metadata

Release files for binderqc 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for binderqc 0.2.2
File Size Uploaded
binderqc-0.2.2.tar.gz 488.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for binderqc 0.2.2
File Interpreter ABI Platform
binderqc-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 504.8 kB

Release files / binderqc-0.2.2.tar.gz

Download URL binderqc-0.2.2.tar.gz
Size 488.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d47e90ad81c6a006ad6d6343e0b720de3a1ce004d0ae393fe297456094dd8f8a
BLAKE2b-256 checksum
How to use checksums
6274700e128d79523193dbdc57ccd1ad1daa2018ccff376c2f9e5eeee71250be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release files / binderqc-0.2.2-py3-none-any.whl

Download URL binderqc-0.2.2-py3-none-any.whl
Size 16.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
82d33dab0c349386571f6bac501dae0752d0a3bf98b2653db13949df5bf8e80a
BLAKE2b-256 checksum
How to use checksums
e70fa10f4f88453958e7904ecb4ce2b29f53b609ab1568d99b76ea08daae3272
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.2 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page