Difference between revisions of "Neural network module"

From Spinach Documentation Wiki
Jump to: navigation, search
(→‎Neural network parameters structure)
 
(66 intermediate revisions by 3 users not shown)
Line 1: Line 1:
−
New in the forthcoming version 2.2: docs being written...
+
__NOTOC__
 +
''DEERNet'' (a separate GitHub repository from Spinach) 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://www.pnas.org/content/118/5/e2016917118). Practical guidance is given in (https://doi.org/10.1016/j.jmr.2022.107186).
  
−
==Functions==
+
==Using DEERNet==
 +
Import your data with [[elexsys2deernet.m]] and feed it into [[deernet.m]] - examples are provided in examples/deernet directory. You will get outputs that look like the following:
 +
 
 +
[[File:deernet2_example.png]]
 +
 
 +
==Functions - DEERNet==
 
;[[deer_lib_gen.m]]
 
;[[deer_lib_gen.m]]
−
:Generates a library of distance distributions and corresponding simulated DEER traces for use in neural network training and validation.
+
:Generates a library of simulated DEER data for use in neural network training and validation.
−
;[[deer_resample.m]]
 
−
:Resample DEER trace to fit the number of digitsation points expected by the neural network.
 
 
;[[deernet.m]]
 
;[[deernet.m]]
−
:Uses a curated ensemble of neural networks to extract a distance distribution from primary DEER data.
+
:Uses an ensemble of neural networks to extract distance distributions from DEER data.
 +
;[[dist_range.m]]
 +
:Distance range estimation for a given time grid.
 
;[[elexsys2deernet.m]]
 
;[[elexsys2deernet.m]]
−
:Prepares experimental data - saved in the Bruker Elexsys format - for input into the [[deernet.m]] function.
+
:Prepares standard Bruker Elexsys datasets for input into the [[deernet.m]] function.
−
;[[netset_curate.m]]
 
−
:Evaluates an ensemble of neural networks and decides which ones are best.
 
 
;[[process_using.m]]
 
;[[process_using.m]]
−
:Runs the DEER data processing using a specified neural network file.
+
:Runs DEER data processing using a specified neural network file.
 
;[[train_one_net.m]]
 
;[[train_one_net.m]]
−
:Constructs a network object, generates a training library (see [[deer_lib_gen.m]]), and runs the network training - following supplied parameters.
+
:Trains a single neural network using supplied parameters.
 +
 
 +
==Functions - descrambling==
 +
;[[descramble.m]]
 +
:Weight matrix descrambling using Tikhonov smoothness criterion.
 +
;[[left_diag.m]]
 +
:Weight matrix descrambling using maximum diagonality criterion.
 +
 
 +
==Custom layers and networks==
 +
;[[dist_net.m]]
 +
:Returns an untrained distance distribution DEERNet for processing fully sampled data.
 +
;[[dist_vet.m]]
 +
:Returns an untrained distance distribution DEERNet for processing sparsely sampled data.
 +
;[[logsLayer.m]]
 +
:Logsigmoidal activation function layer.
 +
;[[renormLayer.m]]
 +
:Renormalisation layer for probability distributions.
 +
 
 +
==Service functions==
 +
;[[DEERDatastore.m]]
 +
:Infinite datastore of DEER data for spin-1/2 electrons.
 +
;[[deerplot.m]]
 +
:Plotting subsystem of DEERNet.
 +
;[[library_dd.m]]
 +
:Training database parameters for the purely dipolar DEERNet.
  
−
==Netset folder structure==
+
;[[nonnans.m]]
 +
:Returns the non-NaN elements of a numerical array.
 +
;[[signal_model.m]]
 +
:DEER signal model used for DEERNet and DEERVet back-calculations.
  
−
==Training set parameters structure==
+
''Version 2.6, authors: [[Ilya Kuprov]], [[Steve Worswick]], [[Jake Amey]], [[Jake Keeley]], [[Tajwar Choudhury]]''

Latest revision as of 13:16, 25 April 2026

DEERNet (a separate GitHub repository from Spinach) 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://www.pnas.org/content/118/5/e2016917118). Practical guidance is given in (https://doi.org/10.1016/j.jmr.2022.107186).

Using DEERNet

Import your data with elexsys2deernet.m and feed it into deernet.m - examples are provided in examples/deernet directory. You will get outputs that look like the following:

Deernet2 example.png

Functions - DEERNet

deer_lib_gen.m
Generates a library of simulated DEER data for use in neural network training and validation.
deernet.m
Uses an ensemble of neural networks to extract distance distributions from DEER data.
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.
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.

Functions - descrambling

descramble.m
Weight matrix descrambling using Tikhonov smoothness criterion.
left_diag.m
Weight matrix descrambling using maximum diagonality criterion.

Custom layers and networks

dist_net.m
Returns an untrained distance distribution DEERNet for processing fully sampled data.
dist_vet.m
Returns an untrained distance distribution DEERNet for processing sparsely sampled data.
logsLayer.m
Logsigmoidal activation function layer.
renormLayer.m
Renormalisation layer for probability distributions.

Service functions

DEERDatastore.m
Infinite datastore of DEER data for spin-1/2 electrons.
deerplot.m
Plotting subsystem of DEERNet.
library_dd.m
Training database parameters for the purely dipolar DEERNet.
nonnans.m
Returns the non-NaN elements of a numerical array.
signal_model.m
DEER signal model used for DEERNet and DEERVet back-calculations.

Version 2.6, authors: Ilya Kuprov, Steve Worswick, Jake Amey, Jake Keeley, Tajwar Choudhury