/deepfish

Primary LanguagePythonMIT LicenseMIT

DeepFish

This is the deepfish repo to accompany the manuscript titled "Deep phenotypic profiling of neuroactive drugs in larval zebrafish" (doi:10.1101/2024.02.22.581657)

Environment setup:

     To train the Twin-NN and Twin-DN models, create a new conda environment from the provided requirements file as follows: conda create --name deepfish_env --file deepfish_env_req_simple.txt.
     The code was tested and model training was performed on NVIDIA a GeForce GTX 1080 Ti GPU and a CentOS Linux kernel 3.10.0 operating system with an x86-64 architecture.

Data:

     Download data from provided zenodo repo: https://zenodo.org/records/10652682. Put the data in the 'Data/' directory or whichever directory you prefer (just make sure to edit the path in the config.yaml file)

To train models:

     Use provided config file or choose custom training parameters (config.yaml file). Activate conda environment: conda activate deepfish_env
     We provide the pre-enumerated training and test pairs in the data repo as numpy arrays as described in the methods section. You can use a different train/ test splitting approach, just save the resulting pairs to a numpy array and place in the Data directory.
     Run main training loop: python TwinMain.py

Expected Results:

     Expected training results provided in output log files in the Results/ directory for the two models, Twin-NN and Twin-DN.
Twin-NN runtime: about 10 minutes on a single GPU for 25 epochs, with batch size of 32. GPU memory utilization: 2.8 GB.
Twin-DN: about 4 hours on a single GPU for 25 epochs, with batch size of 8. GPU memory utilization: 8.5 GB.