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)
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.
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)
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 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.