-
Notifications
You must be signed in to change notification settings - Fork 1
fix(ci): unblock all failing workflows on main #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,134 +1,55 @@ | ||
| # OpenMS streamlit template | ||
|
|
||
| [](https://abi-services.cs.uni-tuebingen.de/streamlit-template/) | ||
|
|
||
| This repository contains a template app for OpenMS workflows in a web application using the **streamlit** framework. It serves as a foundation for apps ranging from simple workflows with **pyOpenMS** to complex workflows utilizing **OpenMS TOPP tools** with parallel execution. It includes solutions for handling user data and parameters in workspaces as well as deployment with docker-compose. | ||
|
|
||
| ## Features | ||
|
|
||
| - Workspaces for user data with unique shareable IDs | ||
| - Persistent parameters and input files within a workspace | ||
| - local and online mode | ||
| - Captcha control | ||
| - Packaged executables for Windows | ||
| - framework for workflows with OpenMS TOPP tools | ||
| - Deployment [with docker-compose](https://github.com/OpenMS/streamlit-deployment) | ||
|
|
||
| ## 🔗 Try the Online Demo | ||
|
|
||
| Explore the hosted version here: 👉 [Live App](https://abi-services.cs.uni-tuebingen.de/streamlit-template/) | ||
|
|
||
| ## 💻 Run Locally | ||
|
|
||
| To run the app locally: | ||
|
|
||
| 1. **Clone the repository** | ||
| ```bash | ||
| git clone https://github.com/OpenMS/streamlit-template.git | ||
| cd streamlit-template | ||
| ``` | ||
|
|
||
| 2. **Install dependencies** | ||
|
|
||
| Make sure you can run ```pip``` commands. | ||
|
|
||
| Install all dependencies with: | ||
| ```bash | ||
| pip install -r requirements.txt | ||
| ``` | ||
|
|
||
| 4. **Launch the app** | ||
| ```bash | ||
| streamlit run app.py | ||
| ``` | ||
|
|
||
| > ⚠️ Note: The local version offers limited functionality. Features that depend on OpenMS TOPP tools are only available out of the box in the Docker setup. For the local version [OpenMS Command Line Tools](https://openms.readthedocs.io/en/latest/about/installation.html) must be installed separately. | ||
|
|
||
|
|
||
| ## 🐳 Build with Docker | ||
|
|
||
| This repository contains two Dockerfiles. | ||
|
|
||
| 1. `Dockerfile`: This Dockerfile builds all dependencies for the app including Python packages and the OpenMS TOPP tools. Recommended for more complex workflows where you want to use the OpenMS TOPP tools for instance with the **TOPP Workflow Framework**. | ||
| 2. `Dockerfile_simple`: This Dockerfile builds only the Python packages. Recommended for simple apps using pyOpenMS only. | ||
|
|
||
| 1. **Install Docker** | ||
|
|
||
| Install Docker from the [official Docker installation guide](https://docs.docker.com/engine/install/) | ||
|
|
||
| <details> | ||
| <summary>Click to expand</summary> | ||
|
|
||
| ```bash | ||
| # Remove older Docker versions (if any) | ||
| for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; done | ||
| ``` | ||
|
|
||
| </details> | ||
|
|
||
| 2. **Test Docker** | ||
|
|
||
| Verify that Docker is working. | ||
| ```bash | ||
| docker run hello-world | ||
| ``` | ||
| When running this command, you should see a hello world message from Docker. | ||
|
|
||
| 3. **Clone the repository** | ||
| ```bash | ||
| git clone https://github.com/OpenMS/streamlit-template.git | ||
| cd streamlit-template | ||
| ``` | ||
|
|
||
| 4. **Specify GitHub token (to download Windows executables).** | ||
|
|
||
| Create a temporary `.env` file with your Github token. | ||
|
|
||
| It should contain only one line: | ||
| `GITHUB_TOKEN=<your-github-token>` | ||
|
|
||
| ℹ️ **Note:** This step is not strictly required, but skipping it will remove the option to download executables from the WebApp. | ||
|
|
||
| 3. **Build & Launch the App** | ||
|
|
||
| To build and start the containers. | ||
| From the project root directory: | ||
|
|
||
| ```bash | ||
| docker-compose up -d --build | ||
| ``` | ||
| At the end, you should see this: | ||
| ``` | ||
| [+] Running 2/2 | ||
| ✔ openms-streamlit-template Built | ||
| ✔ Container openms-streamlit-template Started | ||
| ``` | ||
|
|
||
| To make sure server started successfully, run `docker compose ps`. You should see `Up` status: | ||
| ``` | ||
| CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
| 4abe0603e521 openms_streamlit_template "/app/entrypoint.sh …" 7 minutes ago Up 7 minutes 0.0.0.0:8501->8501/tcp, :::8501->8501/tcp openms-streamlit-template | ||
| ``` | ||
|
|
||
| To map the port to default streamlit port `8501` and launch. | ||
|
|
||
| ``` | ||
| docker run -p 8505:8501 openms_streamlit_template | ||
| ``` | ||
|
|
||
| ## Documentation | ||
|
|
||
| Documentation for **users** and **developers** is included as pages in [this template app](https://abi-services.cs.uni-tuebingen.de/streamlit-template/), indicated by the 📖 icon. | ||
| # quantms-web — DDA Label-Free Quantification | ||
|
|
||
| ## Citation | ||
| A browser-based **Data-Dependent Acquisition (DDA) Label-Free Quantification** workflow for proteomics. Upload mzML files and a protein FASTA; get identified and quantified proteins with volcano plots, PCA, and clustered heatmaps. No CLI, no Nextflow config. | ||
|
|
||
| Please cite: | ||
| Müller, T. D., Siraj, A., et al. OpenMS WebApps: Building User-Friendly Solutions for MS Analysis. Journal of Proteome Research (2025). [https://doi.org/10.1021/acs.jproteome.4c00872](https://doi.org/10.1021/acs.jproteome.4c00872) | ||
| quantms-web mirrors the **dda-lfq branch of the [quantms Nextflow workflow](https://github.com/bigbio/quantms)** but runs as a [Streamlit](https://streamlit.io) app powered by OpenMS TOPP tools. | ||
|
|
||
| ## References | ||
| ## Pipeline | ||
|
|
||
| | Stage | Tool | What it does | | ||
| |---|---|---| | ||
| | 1. Identification | Comet | Peptide-spectrum matching against a protein database | | ||
| | 2. Rescoring | Percolator | ML-based statistical validation of PSMs | | ||
| | 3. Filtering | IDFilter | FDR-controlled peptide identification filtering | | ||
| | 4. Quantification | ProteomicsLFQ | Label-free quantification across samples | | ||
| | 5. Analysis | Built-in | Volcano plots, PCA, heatmaps, spectral library export | | ||
|
|
||
| ## Run locally | ||
|
|
||
| Install the Python dependencies and launch: | ||
|
|
||
| ```bash | ||
| git clone https://github.com/OpenMS/quantms-web.git | ||
| cd quantms-web | ||
| pip install -r requirements.txt | ||
| streamlit run app.py | ||
| ``` | ||
|
|
||
| The full pipeline runs locally once the [OpenMS Command Line Tools](https://openms.readthedocs.io/en/latest/about/installation.html) are on your `PATH` — they provide Comet, Percolator, ProteomicsLFQ, and the rest of the TOPP suite. With Python alone, the pyOpenMS-backed parts of the UI still work. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: In the current OpenMS documentation (version 3.5.0 and nightly 3.6.0-pre), Comet and Percolator binaries are not bundled as direct OpenMS Command Line Tools (TOPP). Instead, they are external tools accessed via OpenMS adapters (CometAdapter and PercolatorAdapter). These adapters require the user to provide the path to the respective executables (-comet_executable and -percolator_executable parameters, which can be in PATH). However, for Comet, the documentation explicitly states that OpenMS installers ship with Comet, making it available by default in those installations. Percolator is treated similarly as an external dependency without mention of bundling in installers. For source builds or conda (libopenms/openms packages), third-party tools like Comet must be in PATH separately, and tools return exit code 14 if missing. Citations:
Clarify that Comet and Percolator availability depends on installation method and that both are accessed via OpenMS adapters. The phrase "they provide Comet, Percolator..." is ambiguous. Comet is bundled with OpenMS installers by default, while Percolator is an external dependency. Both are accessed via adapters (CometAdapter, PercolatorAdapter) that require explicit paths to the respective executables. Distinguish this from the direct TOPP suite tools, and note that availability varies by installation method (installers vs. source builds vs. conda packages). 🤖 Prompt for AI Agents |
||
|
|
||
| ## Run with Docker | ||
|
|
||
| Ships OpenMS and the search engines together so the full pipeline works out of the box: | ||
|
|
||
| - Pfeuffer, J., Bielow, C., Wein, S. et al. OpenMS 3 enables reproducible analysis of large-scale mass spectrometry data. Nat Methods 21, 365–367 (2024). [https://doi.org/10.1038/s41592-024-02197-7](https://doi.org/10.1038/s41592-024-02197-7) | ||
| ```bash | ||
| docker-compose up -d --build | ||
| ``` | ||
|
|
||
| - Röst HL, Schmitt U, Aebersold R, Malmström L. pyOpenMS: a Python-based interface to the OpenMS mass-spectrometry algorithm library. Proteomics. 2014 Jan;14(1):74-7. [https://doi.org/10.1002/pmic.201300246](https://doi.org/10.1002/pmic.201300246). PMID: [24420968](https://pubmed.ncbi.nlm.nih.gov/24420968/). | ||
| Open http://localhost:8501. | ||
|
|
||
| ## Windows installer | ||
|
|
||
| Download the latest `.msi` from [Releases](https://github.com/OpenMS/quantms-web/releases) and double-click to install. Standalone — no Python or Docker required. | ||
|
|
||
| ## Workspaces | ||
|
|
||
| Every analysis session runs in an isolated **workspace** that persists inputs, parameters, and results. In online deployments the workspace ID is part of the URL, so runs are resumable and shareable. | ||
|
|
||
| ## Citation | ||
|
|
||
| Müller, T. D., Siraj, A., et al. *OpenMS WebApps: Building User-Friendly Solutions for MS Analysis.* Journal of Proteome Research (2025). [doi:10.1021/acs.jproteome.4c00872](https://doi.org/10.1021/acs.jproteome.4c00872) | ||
|
|
||
| ## References | ||
|
|
||
| - Pfeuffer, J., Bielow, C., Wein, S. et al. *OpenMS 3 enables reproducible analysis of large-scale mass spectrometry data.* Nat Methods 21, 365–367 (2024). [doi:10.1038/s41592-024-02197-7](https://doi.org/10.1038/s41592-024-02197-7) | ||
| - Röst HL, Schmitt U, Aebersold R, Malmström L. *pyOpenMS: a Python-based interface to the OpenMS mass-spectrometry algorithm library.* Proteomics 14, 74–77 (2014). [doi:10.1002/pmic.201300246](https://doi.org/10.1002/pmic.201300246) | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Document the optional decoy-generation step to match runtime behavior.
The pipeline table skips the optional
DecoyDatabasestage that is part of the implemented workflow path (generate-decoys=True). Please add it (or explicitly mark current table as simplified) to avoid user confusion about expected inputs/outputs.🤖 Prompt for AI Agents