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 six different crosslink search engines: MaxLynx (part of MaxQuant), 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, and filtering 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 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")
Web App#
The web application is currently in development.
User Guide, Examples and Documentation#
A user guide that documents all available functionality is available via pyxlms.vercel.app/.
Example jupyter notebooks can be found in
/examples
.A full documentation of the python package can be accessed via hgb-bin-proteomics.github.io/pyXLMS.
Citing#
If you are using pyXLMS please cite the following publication:
Manuscript in preparation
(wip)
Contact#
micha.birklbauer@fh-hagenberg.at (primary developer)