Skip to main content

A python package to process protein cross-linking data.

Project description

pyXLMS

a python package to process protein cross-linking data

pyXLMS is a python package and web application with graphical user interface that aims to simplify and streamline the intermediate step of connecting crosslink search engine results with down-stream analysis tools, enabling researchers even without bioinformatics knowledge to conduct in-depth crosslink analyses and shifting the focus from data transformation to data interpretation and therefore gaining biological insight. Currently pyXLMS supports input from several different crosslink search engines including: MaxLynx (part of MaxQuant), MeroX, MS Annika, pLink 2 and pLink 3, Scout, xiSearch and xiFDR, XlinkX, as well as the mzIdentML format of the HUPO Proteomics Standards Initiative, and a well-documented and human-readable custom tabular format. Down-stream analysis is facilitated by functionality that is directly available within pyXLMS such as validation, annotation, aggregation, filtering, and visualization - and much more - of crosslink-spectrum-matches and crosslinks. In addition, the data can easily be exported to the required data format of the various available down-stream analysis tools such as AlphaLink2, ProXL, xiNET, xiVIEW, xiFDR, XlinkDB, xlms-tools, PyMOL (via PyXlinkViewer), ChimeraX (via XMAS), or IMP-X-FDR.

Installation

pyXLMS supports python version 3.7 and greater!

pyXLMS can easily be installed via pip:

pip install pyxlms

Quick Start

After installation you can use pyXLMS in python like this:

This example shows reading of MS Annika crosslink-spectrum-matches and exporting them to xiFDR format for external validation.

>>> import pyXLMS
>>> pr = pyXLMS.parser.read(
...     "data/ms_annika/XLpeplib_Beveridge_QEx-HFX_DSS_R1_CSMs.xlsx",
...     engine="MS Annika",
...     crosslinker="DSS"
... )
Reading MS Annika CSMs...: 100%|████████████████| 826/826 [00:00<00:00, 20731.70it/s]
>>> _ = pyXLMS.transform.summary(pr)
Number of CSMs: 826.0
Number of unique CSMs: 826.0
Number of intra CSMs: 803.0
Number of inter CSMs: 23.0
Number of target-target CSMs: 786.0
Number of target-decoy CSMs: 39.0
Number of decoy-decoy CSMs: 1.0
Minimum CSM score: 1.11
Maximum CSM score: 452.99
>>> _ = pyXLMS.exporter.to_xifdr(
...     pr["crosslink-spectrum-matches"],
...     filename="msannika_CSMs_for_xiFDR.csv"
... )

For python projects using pyXLMS we also provide a project template!

Web App

The web app is publicly accessible for free via hgb-bin-proteomics.github.io/pyXLMS-app.

Additionally, it can be run locally or self-hosted as described here: pyXLMS Web Application.

User Guide, Examples and Documentation

FAQ

Not sure if pyXLMS is what you are looking for? You can find a collection of common questions and answers about pyXLMS here or in the user guide under Documentation ➡️ FAQ.

Limitations

Despite our best efforts pyXLMS still comes with some limitations that are a direct result of the differences in the output formats of crosslink search engines. Many crosslink search engines do not report any kind of decoy matches which makes validation in pyXLMS or export to xiFDR impossible which is why we recommend using validated results for pyXLMS. Validation within pyXLMS is currently only supported for MaxLynx, MS Annika, and xiSearch.

Furthermore, the different down-stream analysis tools require varying input information which might not be consistently available from all crosslink search engines. Some of this can be mitigated by functionality in pyXLMS such as annotation or by additional information that needs to be passed to pyXLMS for a successful export. Generally, the export to all downstream analysis tools should work for all crosslink search engines and input formats, with the exception of the export to xiFDR which is limited to MaxLynx, MS Annika, and xiSearch for above reasons. For safety pyXLMS makes sure before the export that all the required information is available and will otherwise throw an error. For more information please check the specific export pages in the user guide and the documentation.

The web app supports most of the features of the python package, features that are not supported in the web app are listed in the user guide under Documentation ➡️ Web Application ➡️ Feature Support.

Interacting with STRING requires an active internet connection and depends on the service availability of STRING.

Citing

If you are using pyXLMS please cite the following publication:

  • Manuscript in preparation
    (wip)
    

Acknowledgements

We thank Melanie Birklbauer for designing the logo.

Contact

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

pyxlms-1.8.11.tar.gz (188.4 kB view details)

Uploaded Source

Built Distribution

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

pyxlms-1.8.11-py3-none-any.whl (179.5 kB view details)

Uploaded Python 3

File details

Details for the file pyxlms-1.8.11.tar.gz.

File metadata

  • Download URL: pyxlms-1.8.11.tar.gz
  • Upload date:
  • Size: 188.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyxlms-1.8.11.tar.gz
Algorithm Hash digest
SHA256 ddc03e0424e0fed0ab19f6d0d2fca4339c3047eec57feadbe8670586c1127222
MD5 f41997799d0030b6cb074543157fa9c9
BLAKE2b-256 e077f5e58a146c6ecccc25a05123d465f73ba17effb9fbb87470bb0df52f586b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxlms-1.8.11.tar.gz:

Publisher: publish-release.yml on hgb-bin-proteomics/pyXLMS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyxlms-1.8.11-py3-none-any.whl.

File metadata

  • Download URL: pyxlms-1.8.11-py3-none-any.whl
  • Upload date:
  • Size: 179.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyxlms-1.8.11-py3-none-any.whl
Algorithm Hash digest
SHA256 278d5d0c7b14c8e207803c81e3aef1fddeb716270fb95b70d1fc529eb58c2f93
MD5 c056edb014da53a528645b8d29a9d8c8
BLAKE2b-256 2bf8eb9a801ebb042ea3076f4dcf46863f160f209dfeb60a4c3647dfc0728c0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyxlms-1.8.11-py3-none-any.whl:

Publisher: publish-release.yml on hgb-bin-proteomics/pyXLMS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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