Neural network module
DEERNet is a collection of functions that make and use deep neural networks for processing DEER data. The approach is described in detail in (https://dx.doi.org/10.1126/sciadv.aat5218). The reasons why it works so well are analysed in (https://arxiv.org/abs/1912.01498).
Using DEERNet
Simply feed your DEER data to deernet.m - examples are provided in examples/deernet directory.
Functions
- deer_lib_gen.m
- Generates a library of simulated DEER data for use in neural network training and validation.
- deernet.m
- Uses a curated ensemble of neural networks to extract the distance distribution from DEER data.
- deernet_wrapper.m
- Compilable DEERNet wrapper for use outside Matlab and Spinach.
- descramble.m
- Weight matrix descrambling using Tikhonov smoothness criterion.
- dist_range.m
- Distance range estimation for a given time grid.
- elexsys2deernet.m
- Prepares standard Bruker Elexsys datasets for input into the deernet.m function.
- left_diag.m
- Weight matrix descrambling using maximum diagonality criterion.
- process_using.m
- Runs DEER data processing using a specified neural network file.
- train_one_net.m
- Trains a single neural network using supplied parameters.
Service functions
- quality_control.m
- Internal heuristics designed to catch malformed inputs.
Training your own networks
Training your own networks will require powerful hardware - IK's workstation has 32 Xeon cores, 1 TB of RAM, and three NVidia Titan V cards. Network sets included with the public versions of DEERNet took weeks to train.
- Go into experiments/deernet and edit library_params.m file.
- Delete all *.mat files from network directories.
- Edit training_script.m file to match your hardware configuration.
- Launch training_script.m file and hope that your computer holds up.
Version 2.5, authors: Ilya Kuprov, Steve Worswick, Jake Amey, Jake Keeley, Tajwar Choudhury