Metadata-Version: 2.4
Name: fermo_core
Version: 0.6.1
Summary: Data processing/analysis functionality of metabolomics dashboard FERMO
Project-URL: Website, https://fermo.bioinformatics.nl/
Project-URL: Repository, https://github.com/fermo-metabolomics/fermo_core
Project-URL: Documentation, https://fermo-metabolomics.github.io/fermo_docs/
Author-email: "Mitja M. Zdouc" <zdoucmm@gmail.com>
License-File: LICENSE
Keywords: cheminformatics,genomics,metabolomics
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: <3.12,>=3.11
Requires-Dist: argparse==1.4.0
Requires-Dist: coloredlogs==15.0.1
Requires-Dist: jsonschema==4.19.0
Requires-Dist: keras==2.15.0
Requires-Dist: matchms==0.24.0
Requires-Dist: ms2deepscore==0.5.0
Requires-Dist: pandas==2.0.3
Requires-Dist: pydantic==2.5.2
Requires-Dist: pyteomics==4.6.3
Requires-Dist: statsmodels~=0.14
Provides-Extra: dev
Requires-Dist: black~=24.4.2; extra == 'dev'
Requires-Dist: isort~=5.13.2; extra == 'dev'
Requires-Dist: pre-commit~=3.4.0; extra == 'dev'
Requires-Dist: pytest-cov~=4.1.0; extra == 'dev'
Requires-Dist: pytest~=7.4.2; extra == 'dev'
Requires-Dist: ruff~=0.4.4; extra == 'dev'
Description-Content-Type: text/markdown

fermo_core
=========

[![DOI](https://zenodo.org/badge/671395100.svg)](https://zenodo.org/doi/10.5281/zenodo.11259126) [![PyPI version](https://badge.fury.io/py/fermo_core.svg)](https://badge.fury.io/py/fermo_core)

`fermo_core` is a tool to process, analyze, and prioritize compounds from metabolomics data. 

While primarily intended to be the backend processing module of the FERMO application, `fermo_core` can be used as a command line interface (CLI) for large-scale data processing and analysis or as library. 

This README specifies the use of `fermo_core` as CLI. For a more user-friendly version of FERMO, see [FERMO Online](https://fermo.bioinformatics.nl).

For more information, see the [FERMO Metabolomics](https://github.com/fermo-metabolomics) GitHub Organization page.

Table of Contents
-----------------
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Usage](#usage)
- [Attribution](#attribution)

## Installation

### With `pip` from PyPI
- Install `python 3.11.x`
- Create a virtual environment (e.g. venv, conda) and activate it
- Run `pip install fermo_core`
- Once installed, run as specified in [Run with `pip`](#run-with-pip)

### With `hatch` from GitHub
- Install `python 3.11.x`
- Install hatch (e.g. with `pipx install hatch`)
- Download or clone the repository
- (Change into the fermo_core base directory if not already present)
- Run `hatch -v env create`
- Once installed, run as specified in [Run with `hatch`](#run-with-hatch)

### With `conda` from GitHub
- Install conda (e.g. miniconda)
- Create a conda environment with `conda create --name fermo_core python=3.11`
- Activate the conda environment with `conda activate fermo_core`
- Download or clone the repository
- (Change into the fermo_core base directory if not already present)
- Run `pip install -e .`
- Once installed, run as specified in [Run with `conda`](#run-with-conda)

## Quick Start

### Run with `pip`
- `fermo_core --parameters <your_parameter_file.json>`

### Run with `hatch`:
- `hatch run fermo_core --parameters <your_parameter_file.json>`

### Run with `conda`:
- `python3 fermo_core/main.py --parameters <your_parameter_file.json>`

## Usage

`fermo_core` can be used both as a command line interface as well as a library.

All parameters and input data are specified in a `parameters.json` file.
This file must be formatted according to the JSON Schema specified in `fermo_core/config/schema.json`. 
See the example in `example_data/case_study_parameters.json`.

For more information on input and output files, their format, and their purpose, consult the [Documentation](https://fermo-metabolomics.github.io/fermo_docs/home/input_output/).

## Attribution

### License

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

### Publications

See [FERMO online](https://fermo.bioinformatics.nl/) for information on citing `fermo_core`.
