Skip to main content

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)

Source distribution for aggressor-mutagenesis 0.2.0
File Size Uploaded Provenance
aggressor_mutagenesis-0.2.0.tar.gz 45.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aggressor-mutagenesis 0.2.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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