Software Open Access
Gradient Algorithm
Published: Aug. 21, 2015. Version: 1.0.0
Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh, Mark RG, Mietus JE, Moody GB, Peng CK, Stanley HE. PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals (2003). Circulation. 101(23):e215e220.
Abstract
In finding an optimal stimulus waveform for inducing switches in neuronal states, analytical techniques from optimal control theory are often found to be difficult to use or extremely time intensive. Here, we present the code for a gradientbased algorithm approach that has been used to find energetically optimal stimulus waveforms to trigger an action potential in the HodgkinHuxley model as well as initiating and repressing repetitive firing in the FitzHughNagumo models. These two models serve just as examples and the code can be easily adapted to any other system.
Project description
This directory contains code and documentation for three applications of a stochasticallyseeded gradient algorithm as described in the paper included. The gradient algorithm is used to solve optimization problems given a set of constraints and an optimization metric. We have applied the algorithm to three different neuronal applications:
 Triggering an action potential in the HodgkinHuxley model (an empirically validated ionic model of neuronal excitability)
 Initiating repetitive firing in the FitzHughNagumo model (an abstract model applied to a wide range of biological systems that exhibit an oscillatory state and a quiescent state), and
 Suppressing repetitive firing in the FitzHughNagumo model
We demonstrate in our study that this algorithm enables automated exploration of a wide solution space with stochastic seeding that allows us to find multiple locally optimal solutions. Furthermore, this algorithm is robust enough that no a priori knowledge of the optimal stimulus is necessary.
The code provided here are preset to run for these three applications, but they can be used as training tools to apply the gradient algorithm to any other application so desired.
Directory Contents
 Gradient Algorithm.pdf
 The paper which describes the work that we have done.
 HodgkinHuxley/

 gradAlg.m
 This is the main program to run.
 hh.m
 Function describe the HodgkinHuxley equations
 pInfluence.m
 Function describing the p influence equations
 RInfluence.m
 Function describing the R influence equations
 FitzHughNagumo/Initiating Repetitive Firing/

 fhn.m
 Function describing the FitzHughNagumo equations
 gradAlg.m
 This is the gradient algorithm for a single run with a given initial and terminal condition.
 optInOut.m
 This is the main program to run used to process every single run between the quiescent state and every single point on the repetitive firing limit cycle.
 outX.mat
 A set of 68 points defining the repetitive firing limit cycle.
 pInfluence.m
 Function describing the p influence equations
 RInfluence.m
 Function describing the R influence equations
 FitzHughNagumo/Suppressing Repetitive Firing/

 fhn.m
 Function describing the FitzHughNagumo equations
 gradAlg.m
 This is the gradient algorithm for a single run with a given initial and terminal condition.
 optOutIn.m
 This is the main program to run used to process every single run between the quiescent state and every single point on the repetitive firing limit cycle.
 outX.mat
 A set of 68 points defining the repetitive firing limit cycle.
 pInfluence.m
 Function describing the p influence equations
 RInfluence.m
 Function describing the R influence equations
Access
Access Policy:
Anyone can access the files, as long as they conform to the terms of the specified license.
License (for files):
Open Data Commons Attribution License v1.0
Discovery
Topics:
optimization
Corresponding Author
Files
Total uncompressed size: 2.4 MB.
Name  Size  Modified 

FitzHughNagumo  
HodgkinHuxley  
files  
GradientAlgorithm.pdf  1.2 MB  20190412 
README.txt  2.7 KB  20190412 
abstract  761 B  20190412 
info.shtml  211 B  20190412 
owner.html  347 B  20190412 