"Low frequency firing is modeled by Type 1 neurons with a SNIC (saddle node on an invariant circle), but, because of the vertical slope of the square-root-like f–I curve, low f only occurs over a narrow range of I. When an adaptive current is added, however, the f–I curve is linearized, and low f occurs robustly over a large I range. Ermentrout (Neural Comput. 10(7):1721-1729, 1998) showed that this feature of adaptation paradoxically arises from the SNIC that is responsible for the vertical slope. We show, using a simplified Hindmarsh–Rose neuron with negative feedback acting directly on the adaptation current, that whereas a SNIC contributes to linearization, in practice linearization over a large interval may require strong adaptation strength. We also find that a type 2 neuron with threshold generated by a Hopf bifurcation can also show linearization if adaptation strength is strong. Thus, a SNIC is not necessary. More fundamental than a SNIC is stretching the steep region near threshold, which stems from sufficiently strong adaptation, though a SNIC contributes if present. In a more realistic conductance-based model, Morris–Lecar, with negative feedback acting on the adaptation conductance, an additional assumption that the driving force of the adaptation current is independent of I is needed. If this holds, strong adaptive conductance is both necessary and sufficient for linearization of f–I curves of type 2 f–I curves."
This is the readme for the models associated with the paper:
Sherman AS, Ha J (2017) How Adaptation Makes Low Firing Rates Robust. J Math Neurosci 7:4
doi:10.1186/s13408-017-0047-3
These xpp codes were contributed by Artie Sherman. You can find a comprehensive tutorial on xpp at:
http://www.math.pitt.edu/~bard/bardware/tut/
If you want to jump ahead to the tutorial on using the AUTO component for making bifurcation diagrams, go to:
http://www.math.pitt.edu/~bard/bardware/tut/xpptut2.html#auto
Two models were used in the paper, Hindmarsh-Rose (HR) and Morris-Lecar (ML).
The version of HR used to make Fig. 1A is in HR_SNIC_2D.ode.
You can launch this from the command line by typing
xppaut HR\_SNIC\_2D.ode
Then select "Initialconds -> Go" in the GUI. It should produce the following:

The same file can be used to make the bifurcation diagram in Fig. 2A as follows:
AUTO needs to start from a steady state, so Set the applied current I = -10, and run the system to a steady state. Then, bring up the
AUTO window by selecting File -> Auto, and go successively through the menus:
- Parameter (confirm that I is "Par 1")
- Axes: select "hI-lo" and adjust the window
- Numerics: make sure "Par Min" and "Par Max" include the desired range
- Run: select "Steady state"
That sequence will generate the S-shaped curve in Fig. 2A and the screenshot:

(Ignore the extraneous branch in red starting at point # 5; AUTO is very powerful but also sometimes has a mind of its own.)
Finally, to generate the max and min values of the period orbit, select the Hopf bifurcation by clicking "Grab", then tabbing through the labeled points until you reach one labled "HB"; hit enter, then select "Run -> Periodic" from the main AUTO menu.
The unadapted f-I curve can now be easily generated by choosing "Axes -> fRequency" from the menu and windowing appropriately:

This corresponds to the curve labeled f0(I) in Fig. 2A. Note that since time in the model is in ms, the frequency has to be multiplied to 1000 to convert to Hz.
The 3D Hindmarsh-Rose model with adaptation and a SNIC in the 2D fast sub-system is defined in the file HR_SNIC.ode. Running with the default parameters should produce this screen shot, corresponding to Fig. 3B:

Running AUTO with I as the bifurcation parameter should produce the adapted f-I curve shown as the dashed curve in Fig. 2A.
The 3D Hindmarsh-Rose model with adaptation and a Hopf bifurcation in the 2D fast sub-system is defined in the file HR_Hopf.ode. Running with the default parameters should produce this screen shot:

The version of Morris-Lecar is defined in ML.ode. The version with a SNIC, corresponding
to Fig. 11 in the paper (Sherman & Ha 2017), is defined in
ML_SNIC.set. The version with a Hopf bifurcation, corresponding to
Fig. 12, is defined in ML_Hopf.set. To bring one of those parameter sets into xpp, launch xpp using a command like
xppaut ML.ode
then select "File -> Read Set" and choose the appropriate set file from the list.
After reading in ML_SNIC.set, run the model
by clicking "Initalconds -> Go" in the GUI. It
should display a figure like:

The f-I curves in Figs. 11 and 12 can be made by the same procedure as described for Hindmarsh-Rose above.