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.
If you follow the below instructions it will allow you to install and run the training or testing.
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
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.
- 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
-
For Unix like systems
source activate cilia-env
-
For PC like systems
activate cilia-env
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
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
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
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
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\
)
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 |
- Ankita Joshi - AnkitaJo
- Parya Jandaghi - parya-j
- Nihal Soans - nihalsoans91
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details