{"id":24435433,"url":"https://github.com/bamescience/peptonizer2000","last_synced_at":"2026-04-29T02:39:29.211Z","repository":{"id":155389238,"uuid":"630385193","full_name":"BAMeScience/Peptonizer2000","owner":"BAMeScience","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-11T10:53:23.000Z","size":128047,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-02T10:55:09.931Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BAMeScience.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-20T09:10:43.000Z","updated_at":"2024-08-21T15:24:34.000Z","dependencies_parsed_at":"2024-04-11T10:26:02.164Z","dependency_job_id":"08002206-a6af-4b59-a703-5d4b3619bde2","html_url":"https://github.com/BAMeScience/Peptonizer2000","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BAMeScience/Peptonizer2000","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BAMeScience%2FPeptonizer2000","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BAMeScience%2FPeptonizer2000/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BAMeScience%2FPeptonizer2000/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BAMeScience%2FPeptonizer2000/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BAMeScience","download_url":"https://codeload.github.com/BAMeScience/Peptonizer2000/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BAMeScience%2FPeptonizer2000/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32408440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T02:37:21.628Z","status":"ssl_error","status_checked_at":"2026-04-29T02:36:50.947Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-20T17:20:14.313Z","updated_at":"2026-04-29T02:39:29.179Z","avatar_url":"https://github.com/BAMeScience.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** I'm using markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n*** See the bottom of this document for the declaration of the reference variables\n*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.\n*** https://www.markdownguide.org/basic-syntax/#reference-style-links\n--\u003e\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=https://git.bam.de/tholstei/pepgm/\u003e\n    \u003cimg src=\"images/peptonizer.jpg\" alt=\"Logo\"  height=\"300\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eThe Peptonizer 2000\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Integrating PepGM and Unipept for probability-based taxonomic inference of metaproteomic samples\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#input\"\u003eInput\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#preparation\"\u003ePreparation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nIntroducing the Peptonizer2000 - a tool that combines the capabilities of Unipept and PepGM to analyze\nmetaproteomic mass spectrometry-based samples. Originally designed for taxonomic inference of viral\nmass spectrometry-based samples, we've extended PepGM's functionality to analyze metaproteomic samples by\nretrieving taxonomic information from the Unipept database.\n\nPepGM is a probabilistic graphical model developed by the eScience group at BAM (Federal Institute for Materials\nResearch and Testing) that uses belief propagation to infer the taxonomic origin of peptides and taxa in viral samples.\nYou can learn more about PepGM on our eScience group at BAM (Federal Institute for Materials Research and Testing).\nPlease refer to our [GitHub](https://github.com/BAMeScience/PepGM) page.\n\nUnipept, on the other hand, is a web-based metaproteomics analysis tool that provides taxonomic information for\nidentified peptides. To make it work seamlessly with PepGM, we've extended Unipept with new functionalities that\nrestrict the taxa queried and provide all potential taxonomic origins of the peptides queried. Check out more\ninformation about Unipept [here](https://unipept.ugent.be/).\n\nWith the Peptonizer2000, you can look forward to a comprehensive and streamlined workflow that simplifies\nthe process of identifying peptides and their taxonomic origins in metaproteomic samples.\n\nThe Peptonizer2000 workflow is comprised of the following steps:\n\n1. Query all identified peptides, provided by the user in a .tsv file, in the Unipept API,\n   and restrict the taxonomic range queried based on any prior knowledge of the sample.\n2. Assemble the peptide-taxon associations provided by Unipept into a bipartite graph,\n   where peptides and taxa are represented by different nodes, and an edge is drawn between a peptide and a taxon\n   if the peptide is part of the taxon's proteome.\n3. Transform the bipartite graph into a factor graph using convolution trees and conditional probability table\n   factors (CPD).\n4. Run the belief propagation algorithm multiple times with different sets of CPD parameters until convergence,\n   to obtain posterior probabilities of candidate taxa.\n5. Use an empirically deduced metric to determine the ideal graph parameter set.\n6. Output the top scoring taxa as a results barchart. The results are also available as comma-separated files\n   for further downstream analysis or visualizations.\n\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"images/workflow.png\" alt=\"workflow scheme\" width=\"500\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- INPUT --\u003e\n\n## Input\n\n* A .tsv file of your peptides output from any protoemic peptide search method. The first column should be the peptide, the second column it's score attributed by the search engine. An example is provided in test files. \u003cbr\u003e\n* A config file with your parameters for the peptonizer2000. A more detailed description of the configuration file can be found below. Additionally, an exemplary config file is provided in this repository.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\n### Prerequisites\n\nMake sure you have git installed and clone the repo:\n   ```sh\n   git clone https://github.com/BAMeScience/Peptonizer2000.git\n   ```\nThe Peptonizer relies on a snakemake workflow developed with snakemake 5.10.0. \u003cbr\u003e\nInstalling snakemake requires mamba.\n\nTo install mamba:\n  ```sh\nconda install -n \u003cyour_env\u003e -c conda-forge mamba\n  ```\n\nAlternatively, if you do not have conda installed, you can download mamba directly together with miniforge(intructions from the [mamba installation guide](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html)):\n```sh\nwget \"https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh\"\nbash Miniforge3-$(uname)-$(uname -m).sh\n```\n\nTo install snakemake:\n```sh\nconda activate \u003cyour_env\u003e\nmamba install -c conda-forge -c bioconda -n \u003cyour_snakemake_env\u003e snakemake\n```\nIn accordance with the Snakemake recommendations, we suggest to save your sample data \nin `resources` folder. All outputs will be saved in `results`.\n\nAdditional dependencies necessary are Java and GCC.\n\nThe Peptonizer2000 is tested for Linux OS. \u003cbr\u003e\n\nAll necessary binaries are autmatically installed using conda.\n\n\n### Configuration file\n\nThe Peptonizer2000 relies on a configuration file in `yaml` format to set up the workflow.\nAn example configuration file is provided in `config/config.yaml`. \u003cbr\u003e\nDo not change the config file location.\n\n\u003cdetails\u003e \n   \u003cdetails \u003e \u003csummary\u003e Peptonizer parameter \u003c/summary\u003e\n   \u003cul\u003e\n      \u003cli\u003e DataDir:  Relative path to raw spectra \u003c/li\u003e\n      \u003cli\u003e ResultsDir: Relative path to results \u003c/li\u003e\n      \u003cli\u003e ResourcesDir: Relative path to resources \u003c/li\u003e \n      \u003cli\u003e ExperimentName: Name of subfolder in results \u003c/li\u003e\n      \u003cli\u003eTaxaInPlot: # of inferred taxa that appear in the barplot that is created of the results csv\u003c/li\u003e\n      \u003cli\u003eAlpha: Grid search increments for alpha \u003c/li\u003e\n      \u003cli\u003eBeta: Grid search increments for beta \u003c/li\u003e\n      \u003cli\u003eprior: grid search increments for prior \u003c/li\u003e\n   \u003c/ul\u003e\n   \u003c/details\u003e\n\n   \u003cdetails \u003e \u003csummary\u003e Sample specific parameter \u003c/summary\u003e\n   \u003cul\u003e\n      \u003cli\u003e PeptidesAndScores: path to you .tsv file of input peptides\u003c/li\u003e\n      \u003cli\u003e SampleName: wildcard for spectra file and folder name \u003c/li\u003e\n   \u003c/ul\u003e\n   \u003c/details\u003e\n\n   \u003c/details\u003e\n\n   \u003cdetails \u003e \u003csummary\u003e UniPept parameter \u003c/summary\u003e\n   \u003cul\u003e\n       \u003cli\u003eTaxaNumber: # of taxa \u003c/li\u003e\n       \u003cli\u003etargetTaxa: Comma separated list of taxa compromised in the UniPept query. If querying all of Unipept, use '1'\u003c/li\u003e\n   \u003c/ul\u003e \n   \u003c/details\u003e\n\u003c/details\u003e\n\n### Output files\n\nAll Peptonizer2000 output files are saved into the results folder and include the following: \u003cbr\u003e\n\nMain results: \u003cbr\u003e\n\n- Peptonizer_Results.csv: Table with values ID, score, type (contains all taxids under 'ID' and all probabilities under '\n  score' tosterior probabilities of n (default: 15) highest scoring taxa \u003cbr\u003e\n  \u003cbr\u003e\n\nAdditional (intermediate): \u003cbr\u003e\n- Intermediate results folder sorted by their prior value for all possible grid search parameter combinations\n- TaxaWeights.csv: csv file of all taxids that had at least one protein map to them and their weight \n- PepGM_graph.graphml: graphml file of the graphical model (without convolution tree factors). Useful to visualize the graph structure and peptide-taxon connections \u003cbr\u003e\n- paramcheck.png: barplot of the metric used to determine the graphical model parameters for n (default: 15) best performing parameter combinations \u003cbr\u003e\n- additional .csv files resulting from the clustering of taxa by peptidome\n- log files for bug fixing\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## Testing the Peptonizer\n\u003c!-- Testing --\u003e\n\nTo test the Peptonizer2000 and see if it is set up correctly on your machine, we provide a test file under resources/test_files. This should be dowloaded automatically if you follow the installation instructions above. The test file is a .tsv resulting from the sample S03 of the [CAMPI study](https://www.nature.com/articles/s41467-021-27542-8) searched against a sample specific database using X!Tandem and MS2Rescore. The original file are available through [PRIDE under PXD023217](https://www.ebi.ac.uk/pride/archive/projects/PXD023217/). \n\nTo execute a test run of the Peptonizer2000 using the provided files: \n \n 1. Follow the installation instructions above\n 2. In you terminal, go to the folder resources/test_files\n 3. execute the following code to move config file to the right directory\n ```sh\n cp ./config.yaml ../../config/\n ```\n 4. You need to make some alterations to the provided example config file.\n    - input the path to the S03 .tsv file . It should be something like 'path_to_workflow_directory/resources/SampleData/S03_test.tsv'\n\n\nYou should now me all set up to run the Peptonizer2000 on the test files. In your terminal, run\n```sh\nsnakemake --use-conda --cores \u003cn\u003e\n````\n\u003cn\u003e is the number of cores available on your machine to run this workflow. Make sure your mamba environment, to which you downloaded snakemake, is active.\n\n\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nTanja Holstein - [@HolsteinTanja](https://twitter.com/HolsteinTanja) - tanja.holstein@ugent.be \u003cbr\u003e\nPieter Verschaffelt - pieter.verschaffelt@ugent.be\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/BAMeScience/repo_name.svg?style=for-the-badge\n[contributors-url]: https://github.com/BAMeScience/repo_name/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/BAMeScience/repo_name.svg?style=for-the-badge\n[forks-url]: https://github.com/BAMeScience/repo_name/network/members\n[stars-shield]: https://img.shields.io/github/stars/BAMeScience/repo_name.svg?style=for-the-badge\n[stars-url]: https://github.com/BAMeScience/repo_name/stargazers\n[issues-shield]: https://img.shields.io/github/issues/BAMeScience/repo_name.svg?style=for-the-badge\n[issues-url]: https://github.com/BAMeScience/repo_name/issues\n[license-shield]: https://img.shields.io/github/license/BAMeScience/repo_name.svg?style=for-the-badge\n[license-url]: https://github.com/BAMeScience/repo_name/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/linkedin_username\n[product-screenshot]: images/screenshot.png\n[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge\u0026logo=nextdotjs\u0026logoColor=white\n[Next-url]: https://nextjs.org/\n[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://reactjs.org/\n[Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=4FC08D\n[Vue-url]: https://vuejs.org/\n[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge\u0026logo=angular\u0026logoColor=white\n[Angular-url]: https://angular.io/\n[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge\u0026logo=svelte\u0026logoColor=FF3E00\n[Svelte-url]: https://svelte.dev/\n[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge\u0026logo=laravel\u0026logoColor=white\n[Laravel-url]: https://laravel.com\n[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white\n[Bootstrap-url]: https://getbootstrap.com\n[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge\u0026logo=jquery\u0026logoColor=white\n[JQuery-url]: https://jquery.com ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbamescience%2Fpeptonizer2000","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbamescience%2Fpeptonizer2000","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbamescience%2Fpeptonizer2000/lists"}