AGGRESSOR
Aggregation-Guided Generation of REgion-specific Substitution-ORiented mutations.
AGGRESSOR performs rule-based in silico mutagenesis of protein sequences, targeting aggregation-prone regions (APRs) and proposing biologically grounded substitutions — including automatic, geometry-aware gatekeeper placement at APR boundaries.
It implements four physicochemical APR rules (hydrophobic-aliphatic, aromatic, amide, hydrophobic-aromatic adjacency), merges overlapping clusters via Union-Find into multi-rule convergence hotspots, classifies every mutation by structural context (BETA_CORE / GATEKEEPER / BOUNDARY / FLANKING / DIRECT / INSERTION), and generates single and multi-point variants.
References: Rousseau et al., J Mol Biol 2006 (gatekeeper hypothesis); Beerten et al., FEBS Lett 2012 (APR boundary effects); Tartaglia et al., J Mol Biol 2008 (aggregation propensity scale).
Installation
# From source (editable, for development)
pip install -e .[dev]
# From a checkout / wheel
pip install .
# From git
pip install "git+https://github.com/your-org/aggressor.git"
# From bioconda (once published)
conda install -c bioconda -c conda-forge aggressor-mutagenesis
Pure standard library — no runtime dependencies. Python >= 3.10.
Usage
# Rule-based mutagenesis across a region
aggressor protein.fasta --regions 55:135
# Aggregation analysis only (no mutations)
aggressor protein.fasta --regions all --agg-only
# Restrict to specific rules
aggressor protein.fasta --regions 10:30 --rules hydrophobic_aliphatic aromatic
# Double and triple mutations, parallelised
aggressor protein.fasta --regions 10:30 --multi-mutations 2 3 --threads 4
# Cap gatekeepers per APR for a synthesis budget (otherwise automatic)
aggressor protein.fasta --regions 55:135 --max-gatekeepers-per-apr 1
Also available as a module and a library:
python -m aggressor protein.fasta --regions 55:135
from aggressor import mutate_sequence, analyze_region
analysis = analyze_region(seq, start=55, stop=135)
mutations, region_analyses = mutate_sequence(
seq, positions=[], mutations=["P", "G", "D", "K"], regions=["55:135"],
)
Gatekeeper design philosophy
The number of effective gatekeeper slots is a structural property of the
APR (its flanks), not a free integer. AGGRESSOR therefore selects gatekeeper
positions automatically from APR geometry by default. --max-gatekeepers-per-apr
is an optional budget cap only: when set, boundary slots are ranked by their
predicted reduction in intrinsic aggregation propensity (Tartaglia scale) and
slots already occupied by a gatekeeper residue are skipped.
Package layout
src/aggressor/
├── core/ # config constants + data models (Cluster, MutationType, ...)
├── rules/ # rule evaluators + registry
├── analysis/ # Union-Find clustering, region analysis, gatekeeper selection
├── mutagenesis/ # single- and multi-point mutation engine
├── io/ # FASTA read/write + region parsing (single source of truth)
└── cli/ # argument parser + application entry point
Development
pip install -e .[dev]
pytest # run the test suite
ruff check src tests # lint
mkdocs serve # preview docs at http://127.0.0.1:8000
License
MIT — see LICENSE.
Metadata
Release files for aggressor-mutagenesis 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aggressor_mutagenesis-0.2.0.tar.gz | 45.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aggressor_mutagenesis-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.1 kB
Release files / aggressor_mutagenesis-0.2.0.tar.gz
| Download URL | aggressor_mutagenesis-0.2.0.tar.gz |
|---|---|
| Size | 45.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7d84077422e05e9c38687ea8c6012b63f14326d04ce36f85d8fd7d64450ab9cb
|
|
BLAKE2b-256 checksum How to use checksums |
e863ad2f6f8d688ce7ca1b32fc1c111353212d3e90b9c03f8962cff60c0056cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / aggressor_mutagenesis-0.2.0-py3-none-any.whl
| Download URL | aggressor_mutagenesis-0.2.0-py3-none-any.whl |
|---|---|
| Size | 49.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
918417b14801821b84a623fd461d2ddf8ab6940aff07aa1e416a0d8a201aaa61
|
|
BLAKE2b-256 checksum How to use checksums |
fa49122ea83097ffeefd64bbe796a666a1cba36388f5844c60ec131536e33ff5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for aggressor-mutagenesis 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.