Bursting Neuron

The goal in this notebook is to update the HH equations to include a new (slow) current and produce bursting activity.

To do so, start with the HH code available here.

Update the HH model to include the \(\bf{g_K-}\)“M” current listed in Table A2 of this publication.

In the code below, we’ll use the variable B to define the gate for this current.

Challenges

1. Plot the steady-state function and time constant for this new current.

HINT: In Table A2 of this publication, the authors provide the forward rate function (\(\alpha[V]\)) and backward rate function (\(\beta[V]\)) for this current. Use these functions to compute the steady-state function and time constant, and plot both versus V.

2. Update the HH model to include this new current.

HINT: Update the HH model to accept three inputs: HH(I0, T0, gB0), where gB0 is the maximal conductance of the new current.

HINT: Update the HH model to return six outputs: return V,m,h,n,B,t, where B is the gate variable of the new current.

3. Find parameter settings so that the model produces bursting activity.

HINT: Fix I0=10 and T0=500 and vary the maximal conductance of the new current, gB0, until you find a value that supports bursting in the voltage.

HINT: Plot the voltage V and the new current gate B to visualize how the dynamics behave.

4. Compute the spectrum to characterize the dominant rhythms.

HINT: Be sure to carefully define T.

import numpy as np
import matplotlib.pyplot as plt
def alphaM(V):
    return (2.5-0.1*(V+65)) / (np.exp(2.5-0.1*(V+65)) -1)

def betaM(V):
    return 4*np.exp(-(V+65)/18)

def alphaH(V):
    return 0.07*np.exp(-(V+65)/20)

def betaH(V):
    return 1/(np.exp(3.0-0.1*(V+65))+1)

def alphaN(V):
    return (0.1-0.01*(V+65)) / (np.exp(1-0.1*(V+65)) -1)

def betaN(V):
    return 0.125*np.exp(-(V+65)/80)

def alphaB(V):
    return "SOMETHING"

def betaB(V):
    return "SOMETHING"

def HHB(I0,T0,gB0):
    "SOMETHING"