Metadata-Version: 2.4
Name: mlgiddetect
Version: 0.2.4
Summary: Inference package for GIWAXS peak detection.
Author-email: Constantin Völter <constantin.voelter@gmail.com>, Nico Lerch <nico.lerch@uni-tuebingen.de>
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: appdirs
Requires-Dist: h5py
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: pyyaml
Requires-Dist: scipy
Requires-Dist: tifffile
Requires-Dist: torch
Requires-Dist: torchvision
Requires-Dist: onnxruntime
Requires-Dist: opencv-python

# mlgidDETECT
[![Python version](https://img.shields.io/badge/python-3.9%7C3.10%7C3.11%7C3.12%7C3.13%7C3.14-blue.svg)](https://www.python.org/)

This package is included in the [`mlgidBASE` package](https://github.com/mlgid-project/mlgidBASE) and can be used as part of the `mlgid` pipeline. 

## Clone repository
* Clone with ssh (recommended)
```git clone git@github.com:mlgid-project/mlgidDETECT.git```
* If it fails, use https:
```git clone https://github.com/mlgid-project/mlgidDETECT.git```


## Installation

### Install Conda environment (recommended)
* Install miniconda
[https://docs.anaconda.com/miniconda/#quick-command-line-install](https://docs.anaconda.com/miniconda/#quick-command-line-install)

* Move into directory:
```cd mlgidDETECT```

* (Option 1) Create environment with CPU and optional GPU inference\
```cd setup```\
```conda env create -f conda_cpu.yaml```\
```conda activate mlgiddetect-cpu```\

* (Option 2) Create environment with with additional GPU preprocessing\
```cd setup```\
```python setup_cuda.py```\
```conda activate mlgiddetect-gpu```\
```conda env config vars set LD_LIBRARY_PATH=${CONDA_PREFIX}/lib:${LD_LIBRARY_PATH}```\
```conda deactivate```\
```conda activate mlgiddetect-gpu```\
Set ```PREPROCESSING CUDA: True``` in the config file


### Install package with pip
* Install package \
```pip install mlgiddetect```

## Usage

### With a PyGIDDataset

```python main.py --input_dataset=/home/testuser/dataset.h5```

### With a single image

```python main.py --image_path=./w4_mapbbr32.tif```

### With a config file

```python main.py --config_file=./faster_rcnn.yaml```

### Using the PyPI package

Use [mlgidDETECT_tutorial.ipynb](https://github.com/mlgid-project/mlgidDETECT/blob/main/mlgidDETECT_tutorial.ipynb) to get started.


### GPU support
The pip package depends on the CPU build of ONNX Runtime, which works on every machine.
For GPU inference, replace it with the GPU build (never install both at the same time,
they share the same `onnxruntime` module and overwrite each other):

```
pip uninstall -y onnxruntime
pip install onnxruntime-gpu
```

Note that current `onnxruntime-gpu` wheels require the CUDA 13 runtime
(`libcudart.so.13`); on machines with a CUDA 12 driver, install an
`onnxruntime-gpu` version built for CUDA 12 instead. If the GPU build is
installed and CUDA is available, it is automatically used for inference.
To use CUDA for preprocessing, use the install instructions for GPU support.
