Metadata-Version: 2.3
Name: fermo_core
Version: 0.1.0
Summary: Data processing/analysis functionality of metabolomics dashboard FERMO
Project-URL: Website, https://fermo.bioinformatics.nl/
Project-URL: Repository, https://github.com/mmzdouc/fermo_core
Project-URL: Documentation, https://mmzdouc.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: func-timeout==4.3.5
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: ms2query==1.4.0
Requires-Dist: pandas==2.0.3
Requires-Dist: pydantic==2.5.2
Requires-Dist: pyteomics==4.6.3
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
=========
`fermo_core` is a Python-based command line tool to process, analyze, and prioritize compounds from metabolomics data. While primarily intended to be the backend processing module of `fermo_gui` of the application FERMO, `fermo_core` can be used independently for large-scale data processing and analysis. This README specifies the use of `fermo_core` as command line interface. 

For a more user-friendly version, see the [FERMO online](https://fermo.bioinformatics.nl). Please also consult the [Documentation](https://mmzdouc.github.io/fermo_docs/).

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

## Installation

### With `hatch`
- Install `python 3.11.x`
- Install hatch (e.g. with `pipx install hatch`)
- Download or clone the [repository](https://github.com/mmzdouc/fermo_core)
- (Change into the fermo_core base directory if not already present)
- Run `hatch -v env create`
- Once installed, run as specified in [Quick Start](#quick-start)

### With `conda`
- 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](https://github.com/mmzdouc/fermo_core)
- (Change into the fermo_core base directory if not already present)
- Run `pip install -e .`
- Once installed, run as specified in [Quick Start](#quick-start)

## Quick Start

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

### With `conda`:
- `python 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 be formatted following the schema specified in `fermo_core/config/schema.json`. See the example in `example_data/case_study_parameters.json` and/or consult the [Documentation](https://mmzdouc.github.io/fermo_docs/home/core.parameters/).

As **minimum** data input, fermo_core` requires a pre-processed **peaktable** summarizing the detected molecular features (**no raw data**). This peaktable must:
- Derive from liquid chromatography electrospray ionization (tandem) mass spectrometry **(LC-ESI-(MS/)MS)**
- Constitute of samples acquired at identical **concentration/dilution** and identical **injection volume**
- Be acquired using **untargeted** Data-dependent acquisition **(DDA)**
- Be of high resolution (ideally, **<20 ppm** mass deviation)
- Be in a single polarity (either **positive** or **negative** ion mode)

Optionally (but recommended), `fermo_core` also accepts the following file types:
- Mass fragmentation **(MS/MS)** accompanying the peak table
- Metadata on **sample grouping**
- **Phenotype** (bioactivity) data associated with the samples
- A **spectral library**
- An [**MS2Query**](https://github.com/iomega/ms2query) results file
- An [**antiSMASH**](https://antismash.secondarymetabolites.org) results folder

For more information on input and output files, their format, and their purpose, consult the [Documentation](https://mmzdouc.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`.

### Authors
Mitja M. Zdouc <zdoucmm@gmail.com>

## Contributing

Contributions, whether filing an issue, making a pull request, or forking, are appreciated. Please see [Contributing](CONTRIBUTING.md) for more information on getting involved.
Contributors agree to adhere to the specified [Code of Conduct](CODE_OF_CONDUCT.md).
For technical details, see the For Developers pages in the [Documentation](https://mmzdouc.github.io/fermo_docs/for_devs/overview/).
