Skip to content

Latest commit

 

History

History
145 lines (95 loc) · 6.22 KB

README.md

File metadata and controls

145 lines (95 loc) · 6.22 KB

Cilia Segmentation

License: MIT

The task is to design an algorithm that learns how to segment cilia. Cilia are microscopic hairlike structures that protrude from literally every cell in your body. They beat in regular, rhythmic patterns to perform myriad tasks, from moving nutrients in to moving irritants out to amplifying cell-cell signaling pathways to generating calcium fluid flow in early cell differentiation. Cilia, and their beating patterns, are increasingly being implicated in a wide variety of syndromes that affected multiple organs.

Getting Started

If you follow the below instructions it will allow you to install and run the training or testing.

Prerequisites

What things you need to install the software and how to install them

  • Python 3.6
  • Anaconda - Python Environment virtualization so that you dont mess up your system environment
  • Keras The best Deep Learning Tool PERIOD ;)
  • Tensorflow One of the API used as Backend of Keras

Installing

Anaconda

Anaconda is a complete Python distribution embarking automatically the most common packages, and allowing an easy installation of new packages.

Download and install Anaconda from (https://www.continuum.io/downloads). The link for Linux,Mac and Windows are in the website.Following their instruction will install the tool.

Running Environment
  • Once Anaconda is installed open anaconda prompt(Windows/PC) Command Line shell(Mac OSX or Unix)
  • Run conda env create -f environment.yml will install all packages required for all programs in this repository
To start the environment
  • For Unix like systems source activate cilia-env

  • For PC like systems activate cilia-env

Keras

You can install keras using pip on command line sudo pip install keras

The environment.yml file for conda is placed in Extra for your ease of installation this has keras

Tensorflow

Installing Tensorflow is straight forward using pip on command line

  • If CPU then sudo pip install tensorflow
  • If GPU then sudo pip install tensorflow-gpu

The environment.yml file for conda is placed in Extra for your ease of installation this has tensorflow

Downloading the dataset (Optional)

If you prefer to download the dataset rather than online The code is present in extra/downloadfiles.py

To Run python downloadfiles.py This will download the whole data set including training and testing

In Folders \Train and \Test respectively

Data

The data itself are grayscale 8-bit images taken with DIC optics of cilia biopsies published in this 2015 study. For each video, you are provided 100 subsequent frames, which is roughly equal to about 0.5 seconds of real-time video (the framerate of each video is 200 fps). Since the videos are grayscale, if you read a single frame in and notice its data structure contains three color channels, you can safely pick one and drop the other two. Same goes for the masks. Speaking of the masks: each mask is the same spatial dimensions (height, width) as the corresponding video. Each pixel, however, is colored according to what it contains in the video:

  • 2 corresponds to cilia (what you want to predict!)
  • 1 corresponds to a cell
  • 0 corresponds to background (neither a cell nor cilia)

For more information please refer to our wiki on data

Running and Training

One can run findcilia.py via regular python

$ python findcilia.py [train or Test] [Network] [optional args]

Example: python findcilia.py train FCN

  • Required Arguments

    • trainortest: This is a string either train or test

    • network: String which defines which network you want ot train or test Eg: FCN ,U-net,Tiramisu

  • Optional Arguments

    • -batch-size: The batch size if applicable (Default: 20)
    • -masks: Path to the masks directory where masks are present. (Default: train\masks)
    • -dataset: Path to the dataset directory where train dataset is present. (Default: train\)

Results

We have used multiple networks and below are the results followed by the person resonsible for that result

Method Configuration Dice (training) Dice (testing) Personnel
FCN #epochs:124, #batch:16 0.925 0.243 parya-j
FCN #epochs:134, #batch:8 0.928 0.233 parya-j
Method Configuration Dice (training) Dice (testing) Personnel
U-Net #epochs:50, #batch:8 0.79 0.247 parya-j
U-Net #epochs:100, #batch:8 0.91 0.258 parya-j
U-Net #epochs:130, #batch:8 0.934 0.276 parya-j
U-Net #epochs:150, #batch:8 0.946 0.273 parya-j
U-Net #epochs:160, #batch:8 0.948 0.264 parya-j
Method Configuration Dice (training) Dice (testing) Personnel
Optical Flow Not Applicable - - AnkitaJo

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments and References

  • Hat tip to anyone who's code was used
  • The project4 description used in Data Science Practicum pdf
  • An implementation of Fully Convolutional Networks with Keras link