macsima2mc 1.2.6
stages MACSima tiles for registration with ASHLAR in MCMICRO.
License: BSD-3-Clause
Requires Python: >=3.12
Keywords: mcmicro, multiplex imaging, proteomics, macsima, staging

# Staging module for Miltenyi - MACSIMA to MCMICRO
[![PyPI](https://img.shields.io/pypi/v/macsima2mc?style=flat-square)](https://pypi.org/project/macsima2mc/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/macsima2mc?style=flat-square)](https://pypi.org/project/macsima2mc/)
[![PyPI - License](https://img.shields.io/pypi/l/macsima2mc?style=flat-square)](https://pypi.org/project/macsima2mc/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/macsima2mc?style=flat-square)](https://pypi.org/project/macsima2mc/)
[![main](https://github.com/saezlab/liana-py/actions/workflows/main.yml/badge.svg)](https://github.com/schapirolabor/macsima2mc/actions)

The macsima2mc.py script stages MACSima data sets for being registerd with ASHLAR in MCMICRO.

The script takes as main input the path to the cycle folder that cointains the raw tiles generated by the Miltenyi-MACSima platform.  macsima2mc.py reads these tiles and distributes them into acquisition groups. i.e tiles with common rack, well, ROI and exposure levels will be written into an ome.tiff file with the necessary metadata for registration.  To be more precise two such ome.tiff files will be generated per cycle, one corresponds to the background signal and the other to the markers signal.

## CLI

You can run macsima2mc by using the following command
```bash
macsima2mc -h
```


### Required arguments
| Argument|Long name|Type|Description|Default value|
|---------|---------|----|-----------|-------------|
| -i | string/path | --input | Absolute path to the the parent folder of the raw tiles, i.e. the cycle folder whose name follows the pattern X_Cycle_N,where N represents the cycle number | NA |
| -o | string/path | --output | Absolute path to the directory in which the outputs will be saved. If the output directory doesn't exist it will be created. | NA | 

### Optional arguments
| Argument|Type|Long name| Description | Default value |
|---------|----|---------|-------------|---------------|
|-rm|string | --reference_marker | Name of the reference marker for registration|'DAPI'|
|-osd|string | --output_subdir | String specifying the name of the subfolder in which the staged images will be saved.|'raw'|
|-ic|boolean flag | --illumination_correction |Give this flag to apply illumination correction to all tiles, the illumination profiles are calculated with basicpy | FALSE |
|-he|boolean flag | --hi_exposure_only |Give this flag to extract only the set of images with the highest exposure time|FALSE|
|-rr|boolean flag | --remove_reference_marker |mark the removal of the reference marker ,e.g. DAPI, for all cycles except the first one |FALSE|
|-qc|boolean flag | --qc_metrics | measure features of contrast, intensity and sharpness of each tile in the cycle and appends them to a table |FALSE|
|-wt|boolean flag | --write_table | writes a table with the acquisition parameters, metadata and,if enabled, qc metrics of each tile. Table will be saved in --output/cycle_info   |FALSE|

## Installation
```bash
pip install macsima2mc
```

## Container usage
### download container:
- Docker
```
docker pull ghcr.io/schapirolabor/macsima2mc:v1.1.1
```
- Singularity
```
singularity pull docker://ghcr.io/schapirolabor/macsima2mc:v1.1.1
```
### Script execution

- Singularity
``` bash
singularity exec --bind $path_to_your_local_cycle_folder:/mnt,$path_to_your_local_output_folder:/media --no-home $path_to_container python staging/macsima2mc/macsima2mc.py -i /mnt/$path_to_your_local_cycle_folder -o /media/$path_to_your_local_output_folder
```