Skip to main content

Aggregation-Guided Generation of REgion-Specific Substitution ORiented mutations

Project description

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.

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

aggressor_mutagenesis-0.2.0.tar.gz (45.5 kB view details)

Uploaded Source

Built Distribution

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

aggressor_mutagenesis-0.2.0-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file aggressor_mutagenesis-0.2.0.tar.gz.

File metadata

  • Download URL: aggressor_mutagenesis-0.2.0.tar.gz
  • Upload date:
  • Size: 45.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for aggressor_mutagenesis-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7d84077422e05e9c38687ea8c6012b63f14326d04ce36f85d8fd7d64450ab9cb
MD5 0e2e105f79402e43889b6792c5167767
BLAKE2b-256 e863ad2f6f8d688ce7ca1b32fc1c111353212d3e90b9c03f8962cff60c0056cd

See more details on using hashes here.

File details

Details for the file aggressor_mutagenesis-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aggressor_mutagenesis-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 918417b14801821b84a623fd461d2ddf8ab6940aff07aa1e416a0d8a201aaa61
MD5 fea9f8f1646e9e1d9c645da065d991a8
BLAKE2b-256 fa49122ea83097ffeefd64bbe796a666a1cba36388f5844c60ec131536e33ff5

See more details on using hashes here.

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