https://github.com/dineshpinto/ml-droplet-recognition
Neural network for micro-fluidic droplet LLPS recognition
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.5%) to scientific vocabulary
Keywords
Repository
Neural network for micro-fluidic droplet LLPS recognition
Basic Info
Statistics
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Droplet Detection with Neural Networks
Use a Convolutional Neural Network built in TensorFlow and Keras to detect a droplet in an experimental data set.
Test Data
The neural net consists of 4 layers, and for testing data shows reasonable results as shown below:

Experimental Data
The goal is to apply it to a biological sample and detect droplet formation. The droplet as imaged by a microscope looks like:

The model is trained on a subset of real data. The trained model is then used to find the droplet in the experimental images. An example of this is shown below:

Note: All biological droplet data is sourced from @cfsb618
Model

Installation
- Create the conda environment from file (where
xxis etherwin10ormacm1)
shell
conda env create --file conda-env-xx.yml
- Activate environment
shell
conda activate ml_droplet
- Add environment to Jupyter kernel
shell
python -m ipykernel install --user --name=ml_droplet
Performance
For optimal performance use a CUDA compatible NVIDIA GPU with the cuDNN libraries. The training times are around 3 orders of magnitude shorter. A guide on how to do this is given in the Tensorflow docs.
On Apple Silicon, use the tensorflow-metal plugin. A guide on how to do this is given in
the Apple developer docs.
Usage
- Place your training data in
training_data/and the corresponding droplet labels indroplet_labels.py - Train the model
shell
python neural_network_training.py
- This will train the neural network model and save the resulting model in
models/droplet_detection_model - Test the model by running an automated test set
shell
python plot_results.py
OR manually using the JupyterLab Notebook
shell
jupyter lab DropletDetectionTesting.ipynb
TODO
- [x] Add automated hyperparameter optimization.
- [ ] Add droplet feature detection, such as detecting the point of phase separation
- [ ] Add random sampling for training and testing data (example code below)
Export conda environment
shell
conda env export --no-builds | grep -v "^prefix: " > conda-env.yml
Owner
- Name: Dinesh Pinto
- Login: dineshpinto
- Kind: user
- Location: Switzerland/Germany
- Website: dineshpinto.github.io
- Twitter: dineshkpinto
- Repositories: 6
- Profile: https://github.com/dineshpinto
quantum info PhD student @ EPFL, pythonista & rustacean
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0