Skip to main content

AmyloDeep

AmyloDeep: pLM-based ensemble model for predicting amyloid propensity from the amino acid sequence

AmyloDeep is a Python package that uses ensemble model to predict amyloidogenic regions in protein sequences using a rolling window approach.

Features

  • Multi-model ensemble: Combines 5 different models for robust predictions
  • Rolling window analysis: Analyzes sequences using sliding windows of configurable size
  • Easy-to-use API: Simple Python interface and command-line tool
  • Web interface: Light version of tool is available at amylodeep.com

Installation

From PyPI (recommended)

pip install amylodeep

From source

git clone https://github.com/AlisaDavtyan/protein_classification.git
cd amylodeep
pip install amylodeep

Quick Start

from amylodeep import predict_ensemble_rolling

# Predict amyloid propensity for a protein sequence
sequence = "MKTFFFLLLLFTIGFCYVQFSKLKLENLHFKDNSEGLKNGGLQRQLGLTLKFNSNSLHHTSNL"
window_size = 10
result = predict_ensemble_rolling(sequence, window_size = window_size)

print(f"Average probability: {result['avg_probability']:.4f}")
print(f"Maximum probability: {result['max_probability']:.4f}")

# Access position-wise probabilities
for position, probability in result['position_probs']:
    print(f"Position {position}: {probability:.4f}")
  
# Plot probabilities
import numpy as np
import matplotlib.pyplot as plt
positions, probs = zip(*result['position_probs'])
x = np.arange(0, len(sequence) - window_size + 1)
bar_colors = [
                (0, 0, 1, 0.8) if p > 0.8 else (0, 0, 1, 0.6) if p > 0.5 else (0, 0, 1, 0.2) for p in probs
            ]
fig, ax = plt.subplots(figsize=(10, 5))
ax.bar(x, probs, color=bar_colors, width=1, edgecolor="black")
ax.set_ylabel("Probability", fontsize=12)
ax.set_xlabel("Residue", fontsize=12)
L = len(sequence)

ax.set_xlim(-1, L - window_size + 1)

if L < 100:
   ax.set_xticks(np.arange(0, L+1, 5))
else:
  step = int(np.ceil(L/5/10) * 10)
  tick_labels = np.arange(0, L+1, step)
  tick_positions = np.minimum(tick_labels, L - window_size)
  ax.set_xticks(tick_positions)
  ax.set_xticklabels([str(t) for t in tick_labels])

ax.axhline(y=0.5, color='green', linestyle='--', alpha=0.7)
ax.axhline(y=0.8, color='red', linestyle='--', alpha=0.7)
ax.tick_params(axis='both', labelsize=12)
ax.set_title('Amyloidogenicity probability per window ', fontsize=16)

Command Line Interface

# Basic prediction
amylodeep "MKTFFFLLLLFTIGFCYVQFSKLKLENLHFKDNSEGLKNGGLQRQLGLTLKFNSNSLHHTSNL"

# With custom window size
amylodeep "SEQUENCE" --window-size 10

# Save results to file
amylodeep "SEQUENCE" --output results.json --format json

# CSV output
amylodeep "SEQUENCE" --output results.csv --format csv

Requirements

  • torch>=1.12.0
  • transformers>=4.30.0
  • huggingface_hub>=0.14.0
  • xgboost>=1.7.0
  • numpy>=1.20
  • pandas>=1.3
  • scikit-learn>=1.0
  • jax-unirep>=2.0.0

Main Functions

predict_ensemble_rolling(sequence, window_size=10)

Predict amyloid propensity for a protein sequence using rolling window analysis.

Parameters:

  • sequence (str): Protein sequence (amino acid letters)
  • window_size (int): Size of the rolling window (default: 10)

Returns: Dictionary containing:

  • position_probs: List of (position, probability) tuples
  • avg_probability: Average probability across all windows
  • max_probability: Maximum probability across all windows
  • sequence_length: Length of the input sequence
  • num_windows: Number of windows analyzed

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use AmyloDeep in your research, please cite:

@software{amylodeep2025,
  title={AmyloDeep: pLM-based ensemble model for predicting amyloid propensity from the amino acid sequence},
  author={Alisa Davtyan, Anahit Khachatryan, Rafayel Petrosyan},
  year={2025},
  url={https://github.com/AlisaDavtyan/protein_classification}
}

Support

For questions and support:

Metadata

Release files for amylodeep 0.3.1

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

Source distribution (sdist)

Source distribution for amylodeep 0.3.1
File Size Uploaded
amylodeep-0.3.1.tar.gz 13.5 kB Details

Built distribution (wheel)

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

Total release size: 27.5 kB

Release files / amylodeep-0.3.1.tar.gz

Download URL amylodeep-0.3.1.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9e312cbbd338e0907d8257a764953e0341092d1e472229c7ed5d8de66b218635
BLAKE2b-256 checksum
How to use checksums
4a16323424511e27c8f11cb9ac5c5be88d6b086cb45c670e01ee23d52e6abf3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / amylodeep-0.3.1-py3-none-any.whl

Download URL amylodeep-0.3.1-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c8898baf3b679139138966432a86513fc85eec22905a911b2301046a6dce00e
BLAKE2b-256 checksum
How to use checksums
896fe15fb1ce70e71dbe74bd8a3ce594c4d2b7f2b547304f6a0bd44150fb139f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

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