Code Monkey home page Code Monkey logo

neuron-finding's Introduction

CSCI 8360 - Project 3 - Neuron Finding

Deon badge

This project is implemented as a part of the Data Science Practicum (CSCI 8360) course at the University of Georgia, Spring 2019. The goal was to develop an image segmentation pipeline that identifies as many of the neurons present as possible, as accurately as possible.

Please refer Wiki for more details on our approach.

Getting Started

The following instructions will assist you get this project running on any machine for developing and testing purpose.

Prerequisites:

  1. Python:
    To install Python, go here

  2. PyTorch:
    To install PyTorch, use pip3 install torch torchvision For more information, visit the PyTorch website.

  3. Thunder:
    pip install thunder-python
    pip install thunder-extraction

  4. Google cloud platform

Data Preparation:

The training and testing data folders are available on GCP bucket: gs://uga-dsp/project3
Training datasets are provided with ground truth labeled regions for identified neurons, and testing datasets are provided without ground truth. Each downloadable dataset includes metadata (as JSON), images (as TIFF), and coordinates of identified neurons, also known as ROIs (as JSON). Datasets are around 1 GB zipped and a few GBs unzipped. Visit the neurofinder repository for current download links for all datasets.

Download these files into your project directory using gsutil:
gsutil cp -r gs://uga-dsp/project3/* base_dir

Scripts

contrast.py

  • Perfroms contrast enhacement, as outlined here.
  • Create a data folder containing the neurofinder data.
  • Input data should follow the below structure:

data
--neurofinder.00.00.test
 |--images
--neurofinder.00.01.test
 |--images
...........
...........
--neurofinder.xx.xx.test
 |--images

  • Output data will follow the below structure:

edited_data
--neurofinder.00.00.test
 |--images
--neurofinder.00.01.test
 |--images
...........
...........
--neurofinder.xx.xx.test
 |--images

To run

contrast.py -d \<data directory>\ -s \<save location>\ -u \<upper_bound>\ -l \<lower_bound>\

Required parameters:

<data directory> Path to the data folder created as per the specifictions.

Optional parameters:

<save location> The location to save the output. Defaults to current working directory.

<upper_bound> The upper bound for clipping. Defaults to 99.

<lower_bound> The lower bound for clipping. Defaults to 3.

nmf.py

  • Perfroms nmf, as outlined here.
  • Follow the data format given above.

To run

nmf.py -d \<data directory>\ -k \<num_components>\ -p \<percentile>\ -m \<max_iter>\ -o \<overlap>\

Required parameters:

<data directory> Path to the data folder created as per the specifictions.

Optional parameters:

<num_components> The number of components to estimate per block. Defaults to 5.

<percentile> The value for thresholding. Defaults to 90.

<max_iter> The maximum number of algorithm iterations. Defaults to 20.

<overlap> The value for determining whether to merge. Defaults to 0.1.

Output:

The program will output submission.json in the given data folder.

Ethics Considerations

This project can be used as a part of a bigger study on the efficacy of new drugs on inhibiting certain types of cross-synaptic activity for the treatment of neurological disorders. With this context in mind, we have undertaken certain ethics considerations to ensure that this project cannot be misused for purposes other than the ones intended.

See the ETHICS.md file for details. Also see the Wiki Ethics page for explanations about the ethics considerations.

Contributing

The master branch of this repo is write-protected and every pull request must passes a code review before being merged. Other than that, there are no specific guidelines for contributing. If you see something that can be improved, please send us a pull request!

Authors

(Ordered alphabetically)

  • Dhaval Bhanderi
  • Hemanth Dandu
  • Sumer Singh
  • Yang Shi

See the CONTRIBUTORS.md file for details.

License

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

neuron-finding's People

Contributors

bfortuner avatar srs96 avatar hemanthme22 avatar jph00 avatar mattkleinsmith avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.