Skip to main content

A modular, python-based framework for mass spectrometry.

Project description

AlphaPept

CI Quick Test Performance test Windows Installer

DOI:10.1101/2021.07.23.453379

Preprint

Our preprint AlphaPept, a modern and open framework for MS-based proteomics is now available here.

Be sure to check out other packages of our ecosystem:

  • alphatims: Fast access to TimsTOF data.
  • alphamap: Peptide level MS data exploration.

Windows Quickstart

  1. Download the latest installer here, install and click the shortcut on the desktop. A browser window with the AlphaPept interface should open. In the case of Windows Firewall asking for network access for AlphaPept, please allow.
  2. In the New Experiment, select a folder with raw files and FASTA files.
  3. Specify additional settings such as modifications with Settings.
  4. Click Start and run the analysis.

See also below for more detailed instructions.

Current functionality

Feature Implemented
Type DDA
Filetypes Bruker, Thermo
Quantification LFQ
Isobaric labels None
Platform Windows

Linux and macOS should, in principle, work but are not heavily tested and might require additional work to set up (see detailed instructions below). To read Thermo files, we use Mono, which can be used on Mac and Linux. For Bruker files, we can use Linux but not yet macOS.

Python Installation Instructions

Requirements

We highly recommend the Anaconda or Miniconda Python distribution, which comes with a powerful package manager. See below for additional instructions for Linux and Mac as they require additional installation of Mono to use the RawFileReader.

AlphaPept can be used as an application as a whole or as a Python Package where individual modules are called. Depending on the use case, AlphaPept will need different requirements, and you might not want to install all of them.

Currently, we have the default requirements.txt, additional requirements to run the GUI gui and packages used for developing develop.

Therefore, you can install AlphaPept in multiple ways:

  • The default alphapept
  • With GUI-packages alphapept[gui]
  • With pacakges for development alphapept[develop] (alphapept[develop,gui] respectively

The requirements typically contain pinned versions and will be automatically upgraded and tested with dependabot. This stable version allows having a reproducible workflow. However, in order to avoid conflicts with package versions that are too strict, the requirements are not pinned when being installed. To use the strict version use the -stable-flag, e.g. alphapept[stable].

For end-users that want to set up a processing environment in Python, the "alphapept[stable,gui-stable]" is the batteries-included-version that you want to use.

Python

It is strongly recommended to install AlphaPept in its own environment.

  1. Open the console and create a new conda environment: conda create --name alphapept python=3.8
  2. Activate the environment: conda activate alphapept
  3. Install AlphaPept via pip: pip install "alphapept[stable,gui-stable]". If you want to use AlphaPept as a package without the GUI dependencies and without strict version dependencies, use pip install alphapept.

If AlphaPept is installed correctly, you should be able to import AlphaPept as a package within the environment; see below.


Linux

  1. Install the build-essentials: sudo apt-get install build-essential.
  2. Install AlphaPept via pip: pip install "alphapept[stable,gui-stable]". If you want to use AlphaPept as a package withouth the GUI dependencies and strict version dependencies use pip install alphapept.
  3. Install libgomp.1 with sudo apt-get install libgomp1.
Bruker Support
  1. Copy-paste the Bruker library for feature finding to your /usr/lib folder with sudo cp alphapept/ext/bruker/FF/linux64/alphapeptlibtbb.so.2 /usr/lib/libtbb.so.2.
Thermo Support
  1. Install Mono from mono-project website Mono Linux. NOTE, the installed mono version should be at least 6.10, which requires you to add the ppa to your trusted sources!
  2. Install pythonnet with pip install pythonnet==2.5.2

Mac

  1. Install AlphaPept via pip: pip install "alphapept[stable,gui-stable]". If you want to use AlphaPept as a package withouth the GUI dependencies and strict version dependencies use pip install alphapept.
Bruker Support

Only supported for preprocessed files.

Thermo Support
  1. Install brew and pkg-config: brew install pkg-config3. Intall Mono from mono-project website Mono Mac
  2. Register the Mono-Path to your system: For macOS Catalina, open the configuration of zsh via the terminal:
  • Type in cd to navigate to the home directory.
  • Type nano ~/.zshrc to open the configuration of the terminal
  • Add the path to your mono installation: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig:$PKG_CONFIG_PATH.
  • Save everything and execute . ~/.zshrc
  1. Install pythonnet with pip install pythonnet

Developer

  1. Redirect to the folder of choice and clone the repository: git clone https://github.com/MannLabs/alphapept.git
  2. Navigate to the alphapept folder with cd alphapept and install the package with pip install . (default users) or with pip install -e . to enable developers mode. Note that you can use the different requirements here aswell (e.g. pip install ".[gui-stable]")

GPU Support

Some functionality of AlphaPept is GPU optimized that uses Nvidia's CUDA. To enable this, additional packages need to be installed.

  1. Make sure to have a working CUDA toolkit installation that is compatible with CuPy. To check type nvcc --version in your terminal.
  2. Install cupy. Make sure to install the cupy version matching your CUDA toolkit (e.g. pip install cupy-cuda110 for CUDA toolkit 11.0.

Additional Notes

To access Thermo files, we have integrated RawFileReader into AlphaPept. We rely on Mono for Linux/Mac systems.> To access Bruker files, we rely on the timsdata-library. Currently, only Windows is supported. For feature finding, we use the Bruker Feature Finder, which can be found in the ext folder of this repository.

Notes for NBDEV

  • For developing with the notebooks, install the nbdev package (see the development requirements)
  • To facilitate navigating the notebooks, use jupyter notebook extensions. They can be called from a running jupyter instance like so:http://localhost:8888/nbextensions. The extensions collapsible headings and toc2 are very beneficial.

Standalone Windows Installer

To use AlphaPept as a stand-alone program for end-users, it can be installed on Windows machines via a one-click installer. Download the latest version here.

Additional Documentation

The documentation is automatically built based on the jupyter notebooks (nbs/index.ipynb) and can be found here:

Version Performance

An overview of the performance of different versions can be found here. We re-run multiple tests on datasets for different versions so that users can assess what changes from version to version. Feel free to suggest a test set in case.

How to use

AlphaPept is meant to be a framework to implement and test new ideas quickly but also to serve as a performant processing pipeline. In principle, there are three use-cases:

  • GUI: Use the graphical user interface to select settings and process files manually.
  • CMD: Use the command-line interface to process files. Useful when building automatic pipelines.
  • Python: Use python modules to build individual workflows. Useful when building customized pipelines and using Python as a scripting language or when implementing new ideas.

Windows Standalone Installation

For the windows installation, simply click on the shortcut after installation. The windows installation also installs the command-line tool so that you can call alphapept via alphapept in the command line.

Python Package

Once AlphaPept is correctly installed, you can use it like any other python module.

from alphapept.fasta import get_frag_dict, parse
from alphapept import constants

peptide = 'PEPT'

get_frag_dict(parse(peptide), constants.mass_dict)
{'b1': 98.06004032687,
 'b2': 227.10263342687,
 'b3': 324.15539728686997,
 'y1': 120.06551965033,
 'y2': 217.11828351033,
 'y3': 346.16087661033}

Using as a tool

If alphapept is installed an a conda or virtual environment, launch this environment first.

To launch the command line interface use:

  • alphapept

This allows us to select different modules. To start the GUI use:

  • alphapept gui

To run a workflow, use:

  • alphapept workflow your_own_workflow.yaml An example workflow is easily generated by running the GUI once and saving the settings which can be modified on a per-project basis.

CMD / Python

  1. Create a settings-file. This can be done by changing the default_settings.yaml in the repository or using the GUI.
  2. Run the analysis with the new settings file. alphapept run new_settings.yaml

Within Python (i.e., Jupyter notebook) the following code would be required)

from alphapept.settings import load_settings
import alphapept.interface
settings = load_settings('new_settings.yaml')
r = alphapept.interface.run_complete_workflow(settings)

This also allows you to break the workflow down in indiviudal steps, e.g.:

settings = alphapept.interface.import_raw_data(settings)
settings = alphapept.interface.feature_finding(settings)

Notebooks

Within the notebooks, we try to cover most aspects of a proteomics workflow:

  • Settings: General settings to define a workflow
  • Chem: Chemistry related functions, e.g., for calculating isotope distributions
  • Input / Output: Everything related to importing and exporting and the file formats used
  • FASTA: Generating theoretical databases from FASTA files
  • Feature Finding: How to extract MS1 features for quantification
  • Search: Comparing theoretical databases to experimental spectra and getting Peptide-Spectrum-Matches (PSMs)
  • Score: Scoring PSMs
  • Recalibration: Recalibration of data based on identified peptides
  • Quantification: Functions for quantification, e.g., LFQ
  • Matching: Functions for Match-between-runs
  • Constants: A collection of constants
  • Interface: Code that generates the command-line-interface (CLI) and makes workflow steps callable
  • Performance: Helper functions to speed up code with CPU / GPU
  • Export: Helper functions to make exports compatbile to other Software tools
  • Label: Code for support isobaric label search
  • Display: Code related to displaying in the streamlit gui
  • Additional code: Overview of additional code not covered by the notebooks
  • How to contribute: Contribution guidelines
  • AlphaPept workflow and files: Overview of the worfklow, files and column names

Contributing

If you have a feature request or a bug report, please post it either as an idea in the discussions or as an issue on the GitHub issue tracker. Upvoting features in the discussions page will help to prioritize what to implement next. If you want to contribute, put a PR for it. You can find more guidelines for contributing and how to get started here. We will gladly guide you through the codebase and credit you accordingly. Additionally, you can check out the Projects page on GitHub. You can also contact us via opensource@alphapept.com.

If you like the project, consider starring it!

Cite us

@article {Strauss2021.07.23.453379,
	author = {Strauss, Maximilian T and Bludau, Isabell and Zeng, Wen-Feng and Voytik, Eugenia and Ammar, Constantin and Schessner, Julia and Ilango, Rajesh and Gill, Michelle and Meier, Florian and Willems, Sander and Mann, Matthias},
	title = {AlphaPept, a modern and open framework for MS-based proteomics},
	elocation-id = {2021.07.23.453379},
	year = {2021},
	doi = {10.1101/2021.07.23.453379},
	publisher = {Cold Spring Harbor Laboratory},
	URL = {https://www.biorxiv.org/content/early/2021/07/26/2021.07.23.453379},
	eprint = {https://www.biorxiv.org/content/early/2021/07/26/2021.07.23.453379.full.pdf},
	journal = {bioRxiv}
}

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

alphapept-0.3.31.tar.gz (64.2 MB view details)

Uploaded Source

Built Distribution

alphapept-0.3.31-py3-none-any.whl (64.7 MB view details)

Uploaded Python 3

File details

Details for the file alphapept-0.3.31.tar.gz.

File metadata

  • Download URL: alphapept-0.3.31.tar.gz
  • Upload date:
  • Size: 64.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for alphapept-0.3.31.tar.gz
Algorithm Hash digest
SHA256 6d457966fdcc36e3e0d95ba9b5b61ca7ff2e60e9dc4de233b90623ba8963af4f
MD5 f932683ef574f999aecb06e60e6573e0
BLAKE2b-256 c98686bd1bb56e38c4efc8fbafb712dc1182ca96f4c203c31eb613443be63ebf

See more details on using hashes here.

File details

Details for the file alphapept-0.3.31-py3-none-any.whl.

File metadata

  • Download URL: alphapept-0.3.31-py3-none-any.whl
  • Upload date:
  • Size: 64.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for alphapept-0.3.31-py3-none-any.whl
Algorithm Hash digest
SHA256 86dbf08923e3110b73b766fd566c744fe25e89735745cff575acf7ade2715318
MD5 a3ceecc078530a34323599c90d4e4dba
BLAKE2b-256 4ccfd8120ad511ac48d890c315bbc1d9fd8de8dc51151f925f4f40efbd38517e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page