Skip to main content

Finding the perfect modification for your mass shift

Project description

Mumble

Finding the perfect unimod match for your mass shifted PSM

Overview

The PSM Modification Handler is a Python-based tool designed to find candidate unimod modifications for mass shifts. The tool allows users to apply modifications to PSMs, localize mass shifts, and generate lists of modified PSMs.

Features

  • PSM Modification: Apply specific modifications to PSMs and generate modified PSM lists.
  • Mass Shift Localization: Identify potential modifications in peptides by localizing mass shifts.
  • Flexible Input/Output: Read PSMs from various file formats, modify them, and write the results to different output formats.
  • Customizable Modifications: Supports the addition of amino acid combinations and handles custom modifications through the Unimod database.

Installation

Prerequisites

  • Python 3.9 or higher
  • pip (Python package installer)

Required Libraries

Install the required Python library using the following command:

pip install mumble

Basic Usage

Here's a quick example of how to use the PSM Modification Handler for single PSMs:

>>> from mumble import PSMHandler
>>> from psm_utils import PSM

>>> # Initialize the PSMHandler
>>> psm_handler = PSMHandler(aa_combinations=0, fasta_file=None, mass_error=0.02)

>>> # Create a minimal PSM to generate modified version from
>>> psm = PSM(
...     peptidoform="ARTHR/3",
...     precursor_mz=228.129628 # Required information
... )
>>> # Generate proteoforms for given PSM with a certain MZ
>>> modified_proteoforms = PSMHandler.get_modified_peptidoforms_list(psm, keep_original=False)


>>> # Write the modified PSM list to a file
>>> psm_handler.write_modified_psm_list(modified_proteoforms, output_file="modified_proteoforms.tsv", psm_file_type="tsv")

>>> print(modified_proteoforms)
# [
#     PSM(
#         peptidoform="[Acetyl]-ARTHR/3"
#         precursor_mz=228.129628
#     )
# ]

Here's a quick example of how to use the PSM Modification Handler for PSM lists:

>>> # Or load a PSM list (from a file or PSMList object)
>>> psm_list = psm_handler.parse_psm_list("path/to/psm_file.mzid", psm_file_type="mzid")

>>> # Add modified PSMs to the list
>>> modified_psm_list = psm_handler.add_modified_psms(psm_list, generate_modified_decoys=False, keep_original=True)

>>> # Write the modified PSM list to a file
>>> psm_handler.write_modified_psm_list(modified_psm_list, output_file="modified_psms.tsv", psm_file_type="tsv")

For more information on PSM objects and PSM lists visit psm_utils

Testing

The project includes unit tests using pytest to ensure code reliability.

Running Tests

To run the tests, simply use the following command:

pytest

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature-name).
  5. Open a pull request.

License

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

Acknowledgments

  • PSMUtils: For providing core utilities for PSM handling. (psm_utils)
  • Pyteomics: For offering tools to handle mass spectrometry data. (pyteomics)

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

mumble-0.2.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

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

mumble-0.2.0-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mumble-0.2.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for mumble-0.2.0.tar.gz
Algorithm Hash digest
SHA256 be62befe66e68b9db82285a28061a917db81bf0fb164b72f214208b26c6a3c39
MD5 a802976a00e7f8edccc03de7ee9ac036
BLAKE2b-256 a4d46c25f3a04830c13ea5de395722faf567dea53bbb3ff9afc23dfda0a975b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mumble-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for mumble-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a822efe46f84a5b1d673c3ffa68808d36865f80fdcd4bb52e3e1ecddf9868c1
MD5 d615722d285ec2e2aa949cad01b0ee87
BLAKE2b-256 4f2e963baa2f937ca0e43acb556d7996a3e284f6b98953030caab7099aab6d0b

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