Skip to main content

morphodeep

[License GNU LGPL v3.0](https://github.com/Gitlab /morphodeep/raw/main/LICENSE) PyPI Python Version [![tests](https://github.com/Gitlab /morphodeep/workflows/tests/badge.svg)](https://github.com/Gitlab /morphodeep/actions) [![codecov](https://codecov.io/gh/Gitlab /morphodeep/branch/main/graph/badge.svg)](https://codecov.io/gh/Gitlab /morphodeep) napari hub npe2 Copier

MorphoDeep

MorphoDeep is a Python package for performing membrane instance segmentation using a pre-trained U-Net model based on the Semantic format.
It produces a dense labels image where each unique integer corresponds to a segmented cell instance. It also includes a napari plugin

The plugin is designed for:

  • fluorescence images of cell membranes
  • 2D and 3D volumes (with optional isotropic rescaling)
  • interactive use in napari or scripted use in Python

Key features

  • Pre-trained U-Net for 2D / pseudo-3D membrane instance segmentation
  • Napari widget with:
    • image layer selection
    • network patch size (128 or 256)
    • 2D / 3D mode
    • optional tiling (“patches mode”) for large images
    • voxel size and Z-axis selection
    • optional isotropic rescaling for anisotropic volumes
    • Automatic model download and caching on first use

Installation

Setup your environnement

conda create -y -n morphodeep-env python=3.10
conda activate morphodeep-env

You can install morphodeep via ffpip:

pip install morphodeep

Installation with napari

Setup your environnement

conda create -y -n napari-env -c conda-forge python=3.11
conda activate napari-env

You can install morphodeep plugin with napari and Qt via:

pip install "napari[all]"
pip install "morphodeep[napari]"


MorphoDeep library Usage

You have 3 way to use the morphodeep library:

  1. with a command line : python morphodeep.py <args>
  2. directly inside the python code using the semantic library: MorphoModel(args)
  3. directly in napari with the morphodeep plugin

Arguments

JOBS (run the command line in a job )

  • --job : Launch the corresponding job
  • --exe : Execute the method ( ground_truth ... )
  • --path_jobs : path job output
  • --job_number : Launch a sepecif job in job array list
  • --job_filename : The file of the job array list

ACTION

  • --train : Launch the training
  • --predict : Launch the prediction
  • --ground_truth : Generate all the ground truth
  • --setdata : Generate the data list files used for train/test/predict
  • --export : Compute the testing set and plot the results in figures
  • --evolution : Evaluation the testing set throught the different epochs
  • --export_evol : Predict for each epochs
  • --eval : Evaluation of training database
  • --plot : Compute export and plot loss
  • --plot_loss : Plot the loss and accuracy

METHOD

  • -mode : 2D or 3D
  • --img_size : image size
  • --full : Use a several layers to complete a tiles network to a work with image size
  • --weight_files : weight files

TRAINING

  • --batch_size : "batch_size
  • --steps_per_epoch : steps_per_epoch
  • --epochs : number of epochs
  • --log_path : log path for tensorboard
  • --specie : which specie ? (PM,DR,AT,DM,or PM-AT, PM-DM-AT, CP (for CellPose)
  • --microscope : which microscope ? (SPIM (for lightsheet), CONF (for confocal),SIM (for simulated))
  • --augmentation : Use Data Augmentation ? Default is False
  • --pondere : Keep only the worst element (10%) for training

DATA Management

  • --input_path : Input Path (depend on the called method )
  • --output_path : Output Path (depend on the called method
  • --membrane_filename : Filename membrane")
  • --nucleus_filename : Filename nucleus")
  • --segmented_filename : Filename segmented")
  • --embryo_name : Embryo Name")
  • --ratio : Resize the full database")
  • --input_method : Input Method (for Ground Truth Calculcation)")

DATASET

  • --dataset_file : Dataset File without .train, .valid and .test
  • --test_split : Float between 0 and 1. Fraction of the data to be used as test data.
  • --validation_split : Float between 0 and 1. Fraction of the data to be used as validate data.

PREDICTION

  • --input_file : Input Filename to predict
  • --output_file : Output Filename of the predicted image
  • --patches : uses for prediction

RESULT

  • --export_path : The export path for the results

DATA PREPARATION

1. Extract segmentation and Raw Images data

SPIM PHALLUSIA MAMILATA

example :python morphodeep.py --microscope SPIM --specie PM --phallusia_data

CONF ARABIDOPSSIS

example :python morphodeep.py --microscope CONF --specie AT --arabidopsis_data

CONF LATERAL ROOTS

example :python morphodeep.py --microscope CONF --specie LP --plantseg_data

CONF OVULES

example :python morphodeep.py --microscope CONF --specie OV --plantseg_data

CONF SEA STAR

example :python morphodeep.py --microscope CONF --specie SS --seastar_data

CONF C ELEGANS

example :python morphodeep.py --microscope CONF --specie CE --celegans_data

2. Generate all Ground Truth

args : --ground_truth example :python morphodeep.py --ground_truth --microscope CONF --specie SS

3. Split Train,Test Valid data

args : --setdata example :python morphodeep.py --setdata --microscope CONF --specie SS

3.b To transfert your data in 128 patches

example : python morphodeep.py --setdata --img_size 128

4. Predict Cellpose (on test data)

args : --predict_cellpose example :python morphodeep.py --predict_cellpose --exe --microscope SPIM --specie PM

5. Predict PlantSeg (on test data)

args : --predict_plantseg example :python morphodeep.py --predict_plantseg --exe --microscope CONF --specie OV

6. DataManagement

To compress or uncompress data from $STORE path in Jean Zay : morphodeep/DataManagement/store_data.py example :python store_data.py --compress --microscope CONF --specie PM

7. Train Semantic Networks

args : --train example : python morphodeep.py --train --microscope SPIM --specie PM

8. Compute accuracy and plot loss evolution

args : --plot example : python morphodeep.py --plot --microscope CONF --specie AT

9. Benchmark Test data (from figures path)

example : python Benchmark.py --predict

11. Benchmark on external data

args : python Benchmark.py --predict -f figure_5/EXTERNAL_DATA/external_data_3D.txt


2D

Everything is by default in 3D, add --mode 2D to comptue evertyhing in 2D

1. Convert in 2D DATA (and generate txt files)

We extract all the 3D datbase to 2D slices args : --extract_2D example :python morphodeep.py --mode 3D --microscope ALL --specie all --extract_2D [-wh <test;train;valid>]

2. Generate all Ground Truth for all species (includ in all)

args : --ground_truth example :python morphodeep.py --mode 2D --ground_truth --microscope SPIM --specie PM

3. Predict Cellpose (on test data)

args : --predict_cellpose example :python morphodeep.py --mode 2D --predict_cellpose

4. Predict PlantSseg (on test data)

args : --predict_plantseg example :python morphodeep.py --mode 2D --predict_plantseg

6. DataManagement

To compress or uncompress data from $STORE path in Jean Zay : semantic/DataManagement/store_data.py example :python store_data.py --mode 2D --compress --microscope CONF --specie PM

7. Train Semantic Networks

args : --train example : python morphodeep.py --mode 2D --batch_size 32 --train

8. Compute accuracy and plot loss evolution

args : --plot example : python morphodeep.py --mode 2D --plot

12. Benchmark Test data (from figures path)

example : python Benchmark.py --predict -t 2D -p True

12. Benchmark on external data

example : python Benchmark.py --predict -t 2D -p True -n DUNNET -f /lustre/fsn1/projects/rech/dhp/uhb36wd/DATA_INTEGRATION//EXTERNAL_DATA_2D/external_data_2D.txt


This napari plugin was generated with copier using the napari-plugin-template (None).

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the GNU LGPL v3.0 license, "morphodeep" is free and open source software

Issues

If you encounter any problems, please [file an issue] along with a detailed description.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morphodeep-0.0.1.tar.gz (117.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morphodeep-0.0.1-py3-none-any.whl (145.7 kB view details)

Uploaded Python 3

File details

Details for the file morphodeep-0.0.1.tar.gz.

File metadata

  • Download URL: morphodeep-0.0.1.tar.gz
  • Upload date:
  • Size: 117.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for morphodeep-0.0.1.tar.gz
Algorithm Hash digest
SHA256 247e19f2d6d11a891a7129cc172dbe7f01026910b3ea0d1d2b8e8386c834d009
MD5 c6f819a8eb4ac93c500304745a677321
BLAKE2b-256 c239eca1ba38a74b6cdefd1ec95bb105b5789071fd972022ed2354c0afb4b7c4

See more details on using hashes here.

File details

Details for the file morphodeep-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: morphodeep-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 145.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for morphodeep-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c5efbfb5ff70e285bc9cae9d1946dd747ce4ae6613eb1fbd223c599f2bc099d
MD5 67867a04b3f76ee19aa691122985c63a
BLAKE2b-256 26275b84a28227b1727832230e08c8545704b3e8519f424331b9e72889dad792

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page