WayScience / CytoSnake

Orchestrating high-dimensional cell morphology data processing pipelines
https://cytosnake.readthedocs.io
Creative Commons Attribution 4.0 International
3 stars 3 forks source link

CytoPipe CLI implementation #15

Closed axiomcura closed 2 years ago

axiomcura commented 2 years ago

Motivation

Cytopipe is a going to be a python package that will contains extensive amount of workflows to processing cell morphology features from both CellProfiler and DeepProfiler.

This PR will introduces the very first working CLI interface for Cytopipe!

Diagram

Below is a simple diagram on how the CLI implementation is designed.

Cytopipe-cli_PR drawio

Usage

The CLI interface is easily executed by typing:

cytopipe <MODE> <MODE AGURMENTS>

The MODE is an argument that tells cytopipe's what type of action the user is performing. Each mode will serve a different purpose.

Currently, cytopipe contains three modes

Example

The first thing to do before trying to execute cytopipe's workflows is to format the files that are required for the processing.

This is done by using the init mode:

# example `[ ] ` indicates the parameter takes a list
# `< > ` indicates a string type
cytopipe init -d [ data1.sqlite, data2.sqlite ..], -m <metadata_dir> -p <platemap_path> -b <barcodes_path>

Once the files are appropriately formatted, the next step is to use the run mode and pick the desired workflow to process your data

cytopipe run <workflow_name>

work in progress:

To see what workflows are available, you can use the help option under the run mode and it will list all available workflows:

cytopipe run help

Note: This PR focuses on implementing the a work CLI for cytopipe ; however, more features will be developed in the future!

A future feature includes a test mode, which tests all the functionality of cytopipe before conducting any processes.

This includes checking the source code, software stack and versions, which is essential for both developers and users for debugging purposes!

gwaybio commented 2 years ago

oh! and we should somehow try to capture the documentation you wrote for this PR description somewhere more visible (perhaps in the main readme!)

axiomcura commented 2 years ago

Currently working on that! Will be a separate PR soon!