Skip to main content

fermo_core

DOI PyPI version

Contents

Overview

fermo_core is a tool to perform hypothesis-driven prioritization on metabolomics data. Besides its use as backend processing tool of the FERMO dashboard, fermo_core can be used as a command line interface (CLI) for large-scale data processing and analysis.

This README specifies the use of fermo_core as CLI. For a more user-friendly version of FERMO, see FERMO Online.

For general information on FERMO, see the FERMO Metabolomics GitHub Organization page.

Documentation

The high-level documentation can be found HERE.

For the Sphinx-generated library documentation, see HERE.

System Requirements

Hardware requirements

fermo_core can be run on a standard computer and does not have any special requirements.

Software requirements

OS Requirements

Local installation of this package is only supported for Linux (tested on Ubuntu 20.04 and 22.04).

Python dependencies

Dependencies including exact versions are specified in the pyproject.toml file.

Installation Guide

Depending on the chosen installation option, install time can vary from a few seconds (uv) to a few minutes (conda).

With pip from PyPI

Nota bene: we recommend installing fermo_core in some kind of virtual environment.

pip install fermo_core

Once installed, run as specified in Run with pip

With uv from GitHub

Assumes that uv is installed

git clone git@github.com:fermo-metabolomics/fermo_core.git
cd fermo_core
uv sync

Once installed, run as specified in Run with uv

With conda from GitHub

Assumes that conda is installed

conda create --name fermo_core python=3.11 -y
conda activate fermo_core
git clone git@github.com:fermo-metabolomics/fermo_core.git
cd fermo_core
pip install -e .

Once installed, run as specified in Run with conda

Quick Start

Running fermo_core on your data

As minimal requirement, fermo_core takes LC-MS(/MS) metabolomics data, which it can integrate with a range of optional orthogonal data formats. Compatible formats are described in the Documentation.

fermo_core requires all parameters to be described in a parameters file. This file must follow specifications outlined in the JSON Schema file. For an example, see case_study_parameters.json.

For a more user-friendly version of FERMO, see FERMO Online.

Run with pip

fermo_core --parameters <your_parameter_file.json>

Run with uv

uv run fermo_core --parameters <your_parameter_file.json>

Run with conda

python3 fermo_core/main.py --parameters <your_parameter_file.json>

Demo

Overview

To demonstrate the functionality of fermo_core, we provide an example dataset sourced from this publication. It describes a set of extracts from strains belonging to the bacterial genus Planomonospora grown in the same condition, showing differential antibiotic activity against Staphylococcus aureus. fermo_core can be used to investigate and prioritize the phenotype-associated and differentially abundant molecular features. Calculation of the Phenotype Score results in the selection of a group of molecular features annotated as siomycins, thiopeptides with known anti-Gram positive antibiotic activity.

Details on the experimental conditions can be found in the Wiki.

Setup

All parameters and input data are specified in a parameters.json file.

Run the example

Execution time is hardware-dependent but usually takes only a few minutes. On a machine running Ubuntu 22.04 with Intel® Core™ i5-7200U CPU @ 2.50GHz x 4 with 8 GiB Memory, execution time was 104 seconds.

Run command

Nota bene: the exact command depends on the type of installation as specified in the Installation Guide.

uv run fermo_core --parameters ./example_data/case_study_parameters.json

Results and Interpretation

After successful completion of the run, all results files can be found in example_data/results. The out.fermo.session.json file can be visualized in FERMO online or inspected with a text viewer. Alternatively, the spreadsheet format file out.fermo.abbrev.csv can be inspected.

Antibiotic activity is attributable to the thiopeptide siomycin and congeners (e.g. feature ID 83).

Attribution

License

fermo_core is an open source tool licensed under the MIT license (see LICENSE).

Publications

See CITATION.cff or FERMO online for information on citing fermo_core.

For Developers

Nota bene: for details on how to contribute to the FERMO project, please refer to CONTRIBUTING.

Development

Instructions for setting up a development environment.

Package Installation

Assumes that uv is installed

uv sync --extra dev
uv run pre-commit install
uv run pytest --run_slow

Documentation

Instructions on setting up and deploying the automated documentation found here.

The documentation rebuilds and deploys automatically on every release using GitHub Actions.

Package Installation

Assumes that hatch is installed

hatch env create doc
hatch run doc:sphinx-build -b html docs/source/ docs/_build

Metadata

Release files for fermo-core 0.7.1

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

Source distribution (sdist)

Source distribution for fermo-core 0.7.1
File Size Uploaded
fermo_core-0.7.1.tar.gz 8.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for fermo-core 0.7.1
File Interpreter ABI Platform
fermo_core-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 17.6 MB

Release files / fermo_core-0.7.1.tar.gz

Download URL fermo_core-0.7.1.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
deb6d57eaeb2037de5369699ef92fcb18b69d2046df093afe7072517ea0efb2d
BLAKE2b-256 checksum
How to use checksums
b10db6ea032a433cb27b43513a5e5a43d96f91017bcd0660f73b72b513f7a970
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 22, 2026.

Transparency log

Release files / fermo_core-0.7.1-py3-none-any.whl

Download URL fermo_core-0.7.1-py3-none-any.whl
Size 8.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
1649d37cc4accaec11c74161f246817abcfa946da6e2b97316016d04a8725d3e
BLAKE2b-256 checksum
How to use checksums
bd96106a0d13daafba7dca341b6264f5c042320354c71245985b263a732f127e
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 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

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