This repository contains code for extracting single-cell patches from microscopic images. The primary objective is to facilitate the analysis of cellular structures and their properties.
- Extracts single-cell patches from microscopic images
- Utilizes advanced image processing techniques
- Offers an example notebook for quick implementation
- Python 3.9
- OpenCV
- NumPy
- PyTorch
- Cellpose (https://github.com/MouseLand/cellpose)
- Scipy
- tifffile
- matplotlib
Clone the repository:
git clone https://github.com/SimonBon/CellPatchExtraction.git
Install the required packages:
Either install the packages in an existing enironment or create a new one using:
cd CellPatchExtraction
conda create -n CellPatches python=3.9
conda activate Cellpatches
pip install -r requirements.txt
Run the example notebook Example.ipynb
to get started.
For more control, you can directly use the extraction.py
script located in the src
directory.
from CellPatchExtraction import extraction
from plotutils import gridPlot #used for visualization
image_path = "path_to_TIFF_image" # or already loaded image as np.ndarray
model = "path_to_model" # or CellposeModel or one of "CP_TU" or "CP_BM"
diameter = 50 # set mean size of nuclei
min_size = 400 # set minimum size of nuclei, everything below will be discarded
patch_size = 32 # define size of patches
nuclear_channel = 38 # if image has more than 3 channels, define which channel should be used for segmentation
patches = extract_patches(image, model, cellpose_kwargs={"diameter": diameter, "min_size": min_size}, patch_size=32, nuclear_channel=38)
gridPlot(patches)
Feel free to open issues or submit pull requests.
This project is licensed under the MIT License.