Amino Scribe is a Python package for generating nanopore squiggles based on protein sequences.
Project description
AminoScribe
AminoScribe is a Python module for generating simulated nanopore squiggle signals from amino acid sequences. It provides tools for sequence-based signal generation, time warping, noise addition, and signal processing such as filtering, normalization, and downsampling.
Features
- Generate idealized templates for amino acid sequences.
- Add time-domain warping and amplitude noise to simulate realistic signals.
- Apply low-pass Bessel filtering to reduce noise.
- Normalize signals using min-max scaling.
- Downsample signals for efficient processing.
- Fetch protein sequences using UniProt accession numbers.
Installation
Install AminoScribe using pip:
pip install aminoscribe
Usage
Generate a Squiggle Signal
You can generate a simulated squiggle signal from an amino acid sequence or a protein ID:
from aminoscribe.aminoscribe import generate_squiggle
# Generate a squiggle signal from a sequence
signal = generate_squiggle(sequence="MKTLLDLGYTMKTLLLTLVVTMKTLLDLGYTMKTLLLTLVVLLTLVVVTIVCLDLGYTLGYT",
normalize=True,
downsample=True,
downsample_factor=5)
# Generate a squiggle signal from a protein ID
signal = generate_squiggle(protein_id="P12345",
filter_noise=True,
bessel_N=8,
bessel_Wn=0.1)
Generate an Idealized Template
If you only need the idealized template without noise or processing:
sequence = "YYYYYSTSSDGDEEDGDDSTSYYYYYSTSSDGEDDEGDDSTSYYYYYSTSSDGEDEDGDDSTSYYYYYSTSSDGD"
template = generate_squiggle(sequence=sequence, template_only=True)
Fetch Protein Sequence
Retrieve a protein sequence using its UniProt accession number:
from aminoscribe.aminoscribe import get_protein_seq
sequence = get_protein_seq("E2RYF6")
Function Reference
generate_squiggle
Generates a simulated squiggle signal from an amino acid sequence or protein ID.
Parameters:
sequence(str, optional): Amino acid sequence.protein_id(str, optional): Protein ID to fetch the sequence.base_template(optional): Base template signal.seed(optional): Random seed for reproducibility.template_only(bool, optional): Return idealized template only.cterm(str, optional): Sequence to append to the C-terminal end.nterm(str, optional): Sequence to prepend to the N-terminal end.filter_noise(bool, optional): Apply low-pass Bessel filter.bessel_N(int, optional): Order of the Bessel filter.bessel_Wn(float, optional): Normalized cutoff frequency.normalize(bool, optional): Apply min-max normalization.norm_cutoff(int, optional): Number of elements for normalization.downsample(bool, optional): Apply linear downsampling.downsample_factor(float, optional): Downsampling factor.
Returns:
- List of float values representing the processed squiggle signal.
get_protein_seq
Fetches a protein sequence using its UniProt accession number.
Parameters:
protein_id(str): UniProt accession number.
Returns:
- Amino acid sequence as a string.
License
This project is licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). See the LICENSE file for details.
Contributing
Source code lives at https://github.com/uwmisl/Amino-Scribe. Please submit a pull request or open an issue for any bugs or feature requests.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aminoscribe-0.1.5.tar.gz.
File metadata
- Download URL: aminoscribe-0.1.5.tar.gz
- Upload date:
- Size: 14.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06d52de2c031216059f32afb085c6741be67b1d1df9d160e85c5eb5749ec0eab
|
|
| MD5 |
99e9f63483f97839baf64c7c56348975
|
|
| BLAKE2b-256 |
e0d9cb87409acae923fd3571fdce46f2372640d2f55786d7243939d9e5bc3710
|
File details
Details for the file aminoscribe-0.1.5-py3-none-any.whl.
File metadata
- Download URL: aminoscribe-0.1.5-py3-none-any.whl
- Upload date:
- Size: 14.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bcc34d73ac2db2813f5711b97e1fae7489e444fecaf45baaab73a96d264b56c
|
|
| MD5 |
18dec57798a75c512dbcc819f4f40ce8
|
|
| BLAKE2b-256 |
aeda4589a24f00751975dda07ca4d6097820518794b281688cfff0724837e8c5
|