Skip to main content

KARDEMUMMA

DOI

KARDEMUMMA stands for Key Analysis of Reproducible Data for Efficient Monitoring in Unified Mass Spectrometry Methods and Assays.

This repository contains the Python package for processing and quality-checking targeted mass spectrometry outputs (for example Skyline/OpenSWATH-style exports). The tool is built based on targeted proteomics assay at KTH Royal intitute of technology and Science for Life Laboratory (SciLifeLab), Sweden. The aim of this tool is to provide a simplified analysis pipeline of plasma proteomics as well as bridging research and clinical applications.

The repository name has now been updated from skyline_qc to kardemumma throughout the project.

Documentation

API reference (HTML and PDF) is attached to each GitHub Release. Download and open in a browser:

Installation

You can install the dependencies and set up the environment using Conda:

  1. Clone the repository:

    git clone https://github.com/thanadol-git/kardemumma.git
    cd kardemumma
    
  2. Create the Conda environment using the config.yml file:

    conda env create -f environment.yml -p ./env
    

    Alternatively, if you want to use a unique environment name:

    conda env create -f environment.yml -n kardemumma
    
  3. Activate the environment:

    conda activate ./env
    

    or, if you used an environment name:

    conda activate kardemumma
    
  4. Install the package in editable mode:

    pip install -e .
    

Available pipelines

  • SDRF generation for plasma proteomics
  • Targeted PRM with ProteomEdge AB
  • Targeted SRM

Requirement

To run the script

  • Result files exported from Skyline (*.csv) and a targeted-SDRF file (.sdrf.tsv) are required for analysis. Column names are validated in src/kardemumma/importer.py.

    Skyline CSV — required columns (ImportSkylineFile, _SKYLINE_EXPECTED_COLS):

    Precursor, Replicate, File Name, Peptide Retention Time, Predicted Retention Time, Precursor Charge, Peptide Sequence, Peptide, Normalized Area, RatioLightToHeavy, Ratio Dot Product, Library Dot Product, Protein Name

    Precursor Replicate File Name Peptide Retention Time Predicted Retention Time Precursor Charge Peptide Sequence Peptide Normalized Area RatioLightToHeavy Ratio Dot Product Library Dot Product Protein Name
    547.7823++ (light) Sample_01 Sample_01.raw 12.45 12.30 2 LVNELTEFAK LVNELTEFAK 1240000 0.98 0.95 0.97 sp|P01023|A2M
    547.7823++ (heavy) Sample_01 Sample_01.raw 12.46 12.30 2 LVNELTEFAK LVNELTEF[K].AK 1310000 0.96 sp|P01023|A2M
    490.5796+++ (light) Sample_02 Sample_02.raw 13.35 13.83 3 ELDKYGVSDYHK ELDKYGVSDYHK 850000 1.05 0.94 0.92 iRT_Tag

    SDRF — required columns for merge (MergeFiles.merge_files):

    • comment[data file] (joined to Skyline File Name)
    • all characteristics[...] columns present in the file
    • optional: any factor value[...] columns (merged when present)
    source name characteristics[plate] characteristics[Sample] comment[data file] factor value[Sample]
    PRM_20251218_MarthaReselection_Plate_9_A4 Plate_9 CHAPS PRM_20251218_MarthaReselection_Plate_9_A4.raw CHAPS
    PRM_20251218_MarthaReselection_Plate_9_B4 Plate_9 CHAPS PRM_20251218_MarthaReselection_Plate_9_B4.raw CHAPS
    PRM_20251218_MarthaReselection_Pool Plate_9 Pool PRM_20251218_MarthaReselection_Pool.raw Pool

Notes

  • All required dependencies will be installed via Conda and pip as specified in environment.yml.
  • Python 3.10 is recommended.
  • For pip installs, make sure you have internet access.

To Dos

Version 0.1.3

  • Unit testing
  • mzQC
  • pmultiqc
  • Logo banners

Phase 1 — Python Package & PyPI Release (Version 0.x.x)

1. Code & API clean-up

  • -1. Move plot functions from DA4K notebook to prm.py and expose via kdm.* (map_peptide_sequence, plot_peptide_concentration_by_group, plot_median_peptide_concentration_by_group, plot_all_median_peptide_concentration_by_group, plot_all_peptide_concentration_by_group)
  • 0. Remove 3 under-QC samples from analysis
  • 1. Check with Yasset on how to set up targeted SDRF
  • 2. Integrate prm-slider to work with transition levels
  • 3. Work on SRM support (sdrf.py + new srm.py module)
  • 4. Combine output layer with OpenMS formats
  • 5. Audit all public functions — consistent naming, type hints, docstrings
  • 6. Ensure __init__.py exports a clean, stable public API
  • Create landing logo and banners.
  • Remove 3 proejct ipynb

2. Package metadata & build

  • 7. Update pyproject.toml: add missing pyteomics dependency, bump version, add classifiers (python_requires, install_requires) ✔️ (done)
  • 8. Add CHANGELOG.md with initial release notes (included in release & GitHub Action)
  • 9. Add LICENSE file (MIT)
  • 10. Verify pip install -e . builds cleanly in a fresh environment
  • 11. Build distribution: python -m build → inspect dist/

3. Testing & CI

  • 12. Add unit tests with pytest for core modules (prm.py, sdrf.py)
  • 13. Add a GitHub Actions workflow (.github/workflows/release.yml) for releases (tests run on push/tag)
  • 14. Add a release workflow that publishes docs on version tag push (.github/workflows/release_docs.yml); PyPI publish pending

4. PyPI release

  • 15. Register package name on PyPI (check availability of kardemumma)
  • 16. Create API token on PyPI and store as PYPI_API_TOKEN GitHub secret
  • 17. Publish first release: python -m twine upload dist/* (or via GitHub Actions)
  • 18. Verify: pip install kardemumma works from PyPI

Phase 2 — Nextflow Pipeline (Version 2.x.x)

5. Pipeline design

  • 19. Define end-to-end workflow: raw input → SDRF validation → OpenSWATH/Skyline export → PRM QC → ratio/DA output
  • 20. Sketch module boundaries as Nextflow process blocks (one process per major step)
  • 21. Decide on container strategy: Docker images (or Singularity) per process, each with kardemumma installed from PyPI

6. Implementation

  • 22. Scaffold repository structure: nextflow/, modules/, conf/, assets/
  • 23. Write a main.nf entry workflow with configurable params (--input, --outdir, --mode prm|srm)
  • 24. Implement individual processes wrapping kardemumma CLI calls or Python scripts
  • 25. Add nextflow.config with profiles: standard (local), cluster (SLURM/HPC at SciLifeLab), cloud
  • 26. Pin kardemumma version in each container/environment to match tested PyPI release

7. Testing & docs

  • 27. Add small test dataset (synthetic or anonymised) to tests/ for end-to-end pipeline testing
  • 28. Add nf-test or a simple CI job that runs the pipeline on the test dataset
  • 29. Write pipeline usage docs in docs/pipeline.md (input format, params, outputs)
  • 30. Consider submission to nf-core once pipeline is stable

Issues

  • iRT peptides: why do they contain Biognosys sequences?
  • Oxidation
  • Stats for PEP

Key developers

  • Thanadol Sutantiwanichkul
  • Justin Sing
  • Yuqi Zheng
  • Khue Hua Tran Minh
  • Maria-Jesus Iglesias Mareque
  • Fredrik Edfors

Metadata

Release files for kardemumma 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kardemumma 1.0.0
File Size Uploaded
kardemumma-1.0.0.tar.gz 69.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kardemumma 1.0.0
File Interpreter ABI Platform
kardemumma-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 140.4 kB

Release files / kardemumma-1.0.0.tar.gz

Download URL kardemumma-1.0.0.tar.gz
Size 69.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0eb9b6fbc1c2fb0f69950103af39cad6e95b6a4551d651221654fbfebd3b3f1f
BLAKE2b-256 checksum
How to use checksums
005350f8a74e5ffabe81852e07e925337529fa62659d0036451b4f1086ba534d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / kardemumma-1.0.0-py3-none-any.whl

Download URL kardemumma-1.0.0-py3-none-any.whl
Size 70.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f621ea290b0ac290ec8de30f3f4c5db743d297f0ba704d3844f48910bb837bf
BLAKE2b-256 checksum
How to use checksums
4aa032d46b4a83f610d9ba077a1058206478c99d73701f90b1c901b0e0d9522e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page