pyXLMS


NamepyXLMS JSON
Version 1.1.2 PyPI version JSON
download
home_pageNone
SummaryA python package to process protein cross-linking data.
upload_time2025-07-16 17:45:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT License Copyright (c) 2024 Micha Johannes Birklbauer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords crosslink crosslinker crosslinking mass spectrometry proteomics
VCS
bugtrack_url
requirements numpy pandas openpyxl tqdm pyteomics biopython biopandas matplotlib matplotlib-venn streamlit xlsxwriter
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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)](https://www.maxquant.org/),
[MS Annika](https://github.com/hgb-bin-proteomics/MSAnnika),
[pLink 2 and pLink 3](http://pfind.ict.ac.cn/se/plink/),
[Scout](https://github.com/diogobor/Scout),
[xiSearch](https://www.rappsilberlab.org/software/xisearch/) and [xiFDR](https://www.rappsilberlab.org/software/xifdr/),
[XlinkX](https://docs.thermofisher.com/r/XlinkX-3.2-Quick-Start-Guide/),
as well as the [mzIdentML format](https://www.psidev.info/mzidentml)
of the HUPO Proteomics Standards Initiative, and a well-documented and
[human-readable custom tabular format](https://github.com/hgb-bin-proteomics/pyXLMS/blob/master/docs/format.md).
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](https://crosslinkviewer.org/index.php),
[xiVIEW](https://www.xiview.org/index.php),
[xiFDR](https://www.rappsilberlab.org/software/xifdr/),
[XlinkDB](https://xlinkdb.gs.washington.edu/xlinkdb/),
[xlms-tools](https://gitlab.com/topf-lab/xlms-tools),
pyMOL (via [pyXlinkViewer](https://github.com/BobSchiffrin/PyXlinkViewer)),
ChimeraX (via [XMAS](https://github.com/ScheltemaLab/ChimeraX_XMAS_bundle)),
or [IMP-X-FDR](https://github.com/vbc-proteomics-org/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._

```python
>>> 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 app is publicly accessible for free via [hgb-bin-proteomics.github.io/pyXLMS-app](https://hgb-bin-proteomics.github.io/pyXLMS-app).

Additionally, it can be run locally or self-hosted via:

- Running the [streamlit](https://streamlit.io/) app locally:
  - `cd gui`
  - `pip install -r requirements.txt`
  - `streamlit run streamlit_app.py`
- Building the [Docker](https://docs.docker.com/get-started/get-docker/) container yourself:
  - `docker build . -f Dockerfile -t pyxlms`
  - `docker run -p 8501:8501 pyxlms`
- _or_ by pulling the provided image from Docker Hub:
  - `docker run -p 8501:8501 michabirklbauer/pyxlms:latest`

## User Guide, Examples and Documentation

- A user guide that documents all available functionality is available via [hgb-bin-proteomics.github.io/pyXLMS-docs](https://hgb-bin-proteomics.github.io/pyXLMS-docs).
- 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](https://hgb-bin-proteomics.github.io/pyXLMS).

## Citing

If you are using pyXLMS please cite the following publication:

- Manuscript in preparation
  ```
  (wip)
  ```

## Contact

- [proteomics@fh-hagenberg.at](mailto:proteomics@fh-hagenberg.at)
- [micha.birklbauer@fh-hagenberg.at](mailto:micha.birklbauer@fh-hagenberg.at) (primary developer)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyXLMS",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Micha Johannes Birklbauer <micha.birklbauer@fh-hagenberg.at>",
    "keywords": "crosslink, crosslinker, crosslinking, mass spectrometry, proteomics",
    "author": null,
    "author_email": "Micha Johannes Birklbauer <micha.birklbauer@fh-hagenberg.at>",
    "download_url": "https://files.pythonhosted.org/packages/2a/b9/585d3d5489b3d6d9debc73afded8d115b6f484689e622b1cb2874adda398/pyxlms-1.1.2.tar.gz",
    "platform": null,
    "description": "# pyXLMS\n_a python package to process protein cross-linking data_\n\n**pyXLMS** is a python package and web application with graphical user interface that aims to simplify and streamline the intermediate step of\nconnecting crosslink search engine results with down-stream analysis tools, enabling researchers even without bioinformatics knowledge to\nconduct in-depth crosslink analyses and shifting the focus from data transformation to data interpretation and therefore gaining biological\ninsight. Currently pyXLMS supports input from six different crosslink search engines: [MaxLynx (part of MaxQuant)](https://www.maxquant.org/),\n[MS Annika](https://github.com/hgb-bin-proteomics/MSAnnika),\n[pLink 2 and pLink 3](http://pfind.ict.ac.cn/se/plink/),\n[Scout](https://github.com/diogobor/Scout),\n[xiSearch](https://www.rappsilberlab.org/software/xisearch/) and [xiFDR](https://www.rappsilberlab.org/software/xifdr/),\n[XlinkX](https://docs.thermofisher.com/r/XlinkX-3.2-Quick-Start-Guide/),\nas well as the [mzIdentML format](https://www.psidev.info/mzidentml)\nof the HUPO Proteomics Standards Initiative, and a well-documented and\n[human-readable custom tabular format](https://github.com/hgb-bin-proteomics/pyXLMS/blob/master/docs/format.md).\nDown-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\n[xiNET](https://crosslinkviewer.org/index.php),\n[xiVIEW](https://www.xiview.org/index.php),\n[xiFDR](https://www.rappsilberlab.org/software/xifdr/),\n[XlinkDB](https://xlinkdb.gs.washington.edu/xlinkdb/),\n[xlms-tools](https://gitlab.com/topf-lab/xlms-tools),\npyMOL (via [pyXlinkViewer](https://github.com/BobSchiffrin/PyXlinkViewer)),\nChimeraX (via [XMAS](https://github.com/ScheltemaLab/ChimeraX_XMAS_bundle)),\nor [IMP-X-FDR](https://github.com/vbc-proteomics-org/imp-x-fdr).\n\n## Installation\n\npyXLMS supports python version 3.7 and greater!\n\npyXLMS can easily be installed via pip:\n```\npip install pyxlms\n```\n\n## Quick Start\n\nAfter installation you can use pyXLMS in python like this:\n\n_This example shows reading of MS Annika crosslink-spectrum-matches and exporting_\n_them to xiFDR format for external validation._\n\n```python\n>>> import pyXLMS\n>>> pr = pyXLMS.parser.read(\"data/ms_annika/XLpeplib_Beveridge_QEx-HFX_DSS_R1_CSMs.xlsx\", engine=\"MS Annika\", crosslinker=\"DSS\")\nReading MS Annika CSMs...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 826/826 [00:00<00:00, 20731.70it/s]\n>>> _ = pyXLMS.transform.summary(pr)\nNumber of CSMs: 826.0\nNumber of unique CSMs: 826.0\nNumber of intra CSMs: 803.0\nNumber of inter CSMs: 23.0\nNumber of target-target CSMs: 786.0\nNumber of target-decoy CSMs: 39.0\nNumber of decoy-decoy CSMs: 1.0\nMinimum CSM score: 1.11\nMaximum CSM score: 452.99\n>>> _ = pyXLMS.exporter.to_xifdr(pr[\"crosslink-spectrum-matches\"], filename=\"msannika_CSMs_for_xiFDR.csv\")\n```\n\n## Web App\n\nThe web app is publicly accessible for free via [hgb-bin-proteomics.github.io/pyXLMS-app](https://hgb-bin-proteomics.github.io/pyXLMS-app).\n\nAdditionally, it can be run locally or self-hosted via:\n\n- Running the [streamlit](https://streamlit.io/) app locally:\n  - `cd gui`\n  - `pip install -r requirements.txt`\n  - `streamlit run streamlit_app.py`\n- Building the [Docker](https://docs.docker.com/get-started/get-docker/) container yourself:\n  - `docker build . -f Dockerfile -t pyxlms`\n  - `docker run -p 8501:8501 pyxlms`\n- _or_ by pulling the provided image from Docker Hub:\n  - `docker run -p 8501:8501 michabirklbauer/pyxlms:latest`\n\n## User Guide, Examples and Documentation\n\n- A user guide that documents all available functionality is available via [hgb-bin-proteomics.github.io/pyXLMS-docs](https://hgb-bin-proteomics.github.io/pyXLMS-docs).\n- Example jupyter notebooks can be found in `/examples`.\n- A full documentation of the python package can be accessed via [hgb-bin-proteomics.github.io/pyXLMS](https://hgb-bin-proteomics.github.io/pyXLMS).\n\n## Citing\n\nIf you are using pyXLMS please cite the following publication:\n\n- Manuscript in preparation\n  ```\n  (wip)\n  ```\n\n## Contact\n\n- [proteomics@fh-hagenberg.at](mailto:proteomics@fh-hagenberg.at)\n- [micha.birklbauer@fh-hagenberg.at](mailto:micha.birklbauer@fh-hagenberg.at) (primary developer)\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2024 Micha Johannes Birklbauer\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "A python package to process protein cross-linking data.",
    "version": "1.1.2",
    "project_urls": {
        "Documentation": "https://hgb-bin-proteomics.github.io/pyXLMS-docs",
        "Homepage": "https://github.com/hgb-bin-proteomics/pyXLMS",
        "Issues": "https://github.com/hgb-bin-proteomics/pyXLMS/issues"
    },
    "split_keywords": [
        "crosslink",
        " crosslinker",
        " crosslinking",
        " mass spectrometry",
        " proteomics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "05fd8ba83c9a2ad3e5a7d0b3daf94357dad3c5ea530d82829a0a24a477b4df26",
                "md5": "0177f701c8274580c740373d7c474d14",
                "sha256": "fe45d2a0bdaeb7954d58e961fb51f90a2a56ec083d2d519143d8af2d52b38d7f"
            },
            "downloads": -1,
            "filename": "pyxlms-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0177f701c8274580c740373d7c474d14",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 111530,
            "upload_time": "2025-07-16T17:45:12",
            "upload_time_iso_8601": "2025-07-16T17:45:12.481385Z",
            "url": "https://files.pythonhosted.org/packages/05/fd/8ba83c9a2ad3e5a7d0b3daf94357dad3c5ea530d82829a0a24a477b4df26/pyxlms-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2ab9585d3d5489b3d6d9debc73afded8d115b6f484689e622b1cb2874adda398",
                "md5": "3e2316678948843c70a51b48f61cc250",
                "sha256": "7e3977d66cb952a6a73e6f83efe07ded7e2628d2623811f5fe979075d66dbbe2"
            },
            "downloads": -1,
            "filename": "pyxlms-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3e2316678948843c70a51b48f61cc250",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 117593,
            "upload_time": "2025-07-16T17:45:14",
            "upload_time_iso_8601": "2025-07-16T17:45:14.147545Z",
            "url": "https://files.pythonhosted.org/packages/2a/b9/585d3d5489b3d6d9debc73afded8d115b6f484689e622b1cb2874adda398/pyxlms-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 17:45:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hgb-bin-proteomics",
    "github_project": "pyXLMS",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "openpyxl",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "pyteomics",
            "specs": []
        },
        {
            "name": "biopython",
            "specs": []
        },
        {
            "name": "biopandas",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "matplotlib-venn",
            "specs": []
        },
        {
            "name": "streamlit",
            "specs": []
        },
        {
            "name": "xlsxwriter",
            "specs": []
        }
    ],
    "lcname": "pyxlms"
}
        
Elapsed time: 0.41805s