<p align="center"> <img src = "https://raw.githubusercontent.com/DevoLearn/devolearn/master/images/banner_1.jpg"> </p>

Build Status codecov Open In Colab

Contents

Installation

pip install devolearn

Example notebooks

<p align="center"> <img src = "https://raw.githubusercontent.com/DevoLearn/data-science-demos/master/Networks/nodes_matrix_long_smooth.gif" width = "40%"> <img src = "https://raw.githubusercontent.com/DevoLearn/data-science-demos/master/Networks/3d_node_map.gif" width = "40%">
</p>

Segmenting the Cell Membrane in C. elegans embryo

<p align="center"> <img src = "https://raw.githubusercontent.com/DevoLearn/devolearn/master/images/pred_centroids.gif" width = "80%"> </p>

from devolearn import cell_membrane_segmentor
segmentor = cell_membrane_segmentor()

seg_pred = segmentor.predict(image_path = "sample_data/images/seg_sample.jpg")
plt.imshow(seg_pred)
plt.show()
filenames = segmentor.predict_from_video(video_path = "sample_data/videos/seg_sample.mov", centroid_mode = False, save_folder = "preds")
seg_pred, centroids = segmentor.predict(image_path = "sample_data/images/seg_sample.jpg", centroid_mode = True)
plt.imshow(seg_pred)
plt.show()
df = segmentor.predict_from_video(video_path = "sample_data/videos/seg_sample.mov", centroid_mode = True, save_folder = "preds")
df.to_csv("centroids.csv")

Segmenting the Cell Nucleus in C. elegans embryo

<p align="center"> <img src='https://huggingface.co/devoworm-group/Devolearn/resolve/main/images/nucleus_segmentation.gif' width = "60%"> </p>

from devolearn import cell_nucleus_segmentor
segmentor = cell_nucleus_segmentor()

seg_pred = segmentor.predict(image_path = "sample_data/images/nucleus_seg_sample.jpg")
plt.imshow(seg_pred)
plt.show()

Generating synthetic images of embryos with a Pre-trained GAN

<p align="center"> <img src = "https://raw.githubusercontent.com/devoworm/GSoC-2020/master/Pre-trained%20Models%20(DevLearning)/images/generated_embryos_3.gif" width = "30%"> </p>

from devolearn import Generator, embryo_generator_model
generator = embryo_generator_model()

gen_image = generator.generate()  
plt.imshow(gen_image)
plt.show()

generator.generate_n_images(n = 5, foldername= "generated_images", image_size= (700,500))

Predicting populations of cells within the C. elegans embryo

<p align="center"> <img src = "https://raw.githubusercontent.com/devoworm/GSoC-2020/master/Pre-trained%20Models%20(DevLearning)/images/resnet_preds_with_input.gif" width = "60%"> </p>

from devolearn import lineage_population_model
model = lineage_population_model(device = "cpu")
print(model.predict(image_path = "sample_data/images/embryo_sample.png"))
results = model.predict_from_video(video_path = "sample_data/videos/embryo_timelapse.mov", save_csv = True, csv_name = "video_preds.csv", ignore_first_n_frames= 10, ignore_last_n_frames= 10, postprocess = False)
plot = model.create_population_plot_from_video(video_path = "sample_data/videos/embryo_timelapse.mov", save_plot= True, plot_name= "plot.png", ignore_last_n_frames= 0, postprocess = False)
plot.show()

Links to Datasets

Model Data source
Segmenting the cell membrane in C. elegans embryo 3DMMS: robust 3D Membrane Morphological Segmentation of C. elegans embryo
Segmenting the nucleus in C. elegans embryo C. elegans Cell-Tracking-Challenge dataset
Cell lineage population prediction + embryo GAN EPIC dataset

Links to HuggingFace spaces

Model Huggingface
Segmenting the cell membrane in C. elegans embryo Cell Membrane segmentor
Segmenting the nucleus in C. elegans embryo C. elegans Nucleus segmentor
Cell lineage population prediction Lineage population

Authors/maintainers:

Feel free to join our Slack workspace!