NEURON codes from the paper:

Role of cerebellar GABAergic dysfunctions in the origins of essential tremor, by X. Zhang, and S. Santaniello (2019) Proc. Nat. Acad. Sci. USA

doi: 10.1073/pnas.1817689116

This code was contributed by Xu Zhang. If you need platform specific or more help to run the model than provided here please consult this web page:

https://senselab.med.yale.edu/ModelDB/NEURON_DwnldGuide.cshtml

Usage:

A. CCTC model (85-compartment, single-loop): in the folder "CCTC_model"

1) Compile all the .mod files in the folder "modfiles". For Windows users, use mknrndll.exe, then move the generated "nrnmech.dll" out of the modfiles directory (to where all the .hoc files are located). For Unix users, use the nrnivmodl command, then move the generated "x86_64" folder out of the modfiles directory (to where all the .hoc files are located).

2) Ensure the directories "recordings/ET", "recordings/ET_VimDBS", "recordings/NORM", "recordings/HARMALINE" exist (create them if not), so data can be stored after simulation ends.

3) "mosinit_ET.hoc", "mosinit_ET_VimDBS.hoc", "mosinit_Normal.hoc", "mosinit_Harmaline.hoc" correspond to ET (essential tremor), ET with 185-Hz Vim DBS, normal (tremor-free), and harmaline tremor conditions, respectively. Each runs for 6,000 ms by default. Data are stored in the folders specified above in 2) after simulation ends. ET-related parameters (i.e., synaptic properties in the PC->DCN synapse) are specified in Rows 46 and 47 in "mosinit_ET.hoc" and "mosinit_ET_VimDBS.hoc".

In both mosinit_ET.hoc and mosinit_ET_VimDBS.hoc, a perturbation to all the ION cells is required to initiate tremor activity (at 1,500 ms in the scripts, see Rows 38-45)

4) For the data files, "ap_xxx.txt" refer to the spike times of neuron type xxx. Note that ap_PC.txt and ap_ION.txt contain the spike times (2nd column) of all PC/ION neurons, whereas the 1st column indicates the no. of the corresponding neuron; for GrL neurons (GrC, GoC, STL), spike times are saved in different files for each neuron. "xxx_v_all_n.txt" refers to the sampled membrane voltage trace of the nth neuron of type xxx. Note that the sampling frequency is 80 Hz (step size: 0.0125 ms).

Example run:
Under linux run the following in a terminal window:

nrnivmodl modfiles
nrngui mosinit_Haramline.hoc

nrngui mosinit_Normal.hoc

(each mosinit_... program takes about 4 minutes to run on a 2015 intel i7 870 2.93Ghz Desktop) and then run the matlab file "plot_sample_v.m" in recordings/HARMALINE and recordings/NORM to produce graphs similar to those in Figure 2 in the paper, e.g. 2F, G:

DCN HARMALINE Vim Normal

5) Random seeds are stored in the file "rngSeeds.txt", which randomizes certain parameters each time the model is simulated.

6) "mosinit_ET_visualize.hoc" displays the membrane voltage traces of one Purkinje cell (PCcell), the deep cerebellar neuron (DCNcell) and one inferior olive neuron (IONcell), respectively, while running under the same settings as "mosinit_ET.hoc".

Note that tremor oscillations might pause and resume randomly (skipped cycles) under ET condition, depending on stochastic processes such as membrane/synaptic noises and stochastic inputs to ION cells (see ET_example.png as an example). This phenomenon is more likely to occur under Vim DBS.

B. Scaled-up CCTC model (425-compartment, 5-loops): in the folder "CCTC_model_scaleup"

1) Compile all the .mod files in the folder "modfiles". (same as above)

2) Ensure the directories "recordings/ET_scaleup", "recordings/NORM_scaleup" exist (create them if not), so data can be stored after simulation ends.

3) "mosinit_ET_scaleup.hoc" and "mosinit_NORM_scaleup.hoc" correspond to ET (essential tremor) and normal (tremor-free) conditions, respectively. Each runs for 5,000 ms by default. The results can be plotted (similar to Figure 6) by "plots_scaleup.m" in MATLAB.

4) "rngSeeds.txt" and "params_xxx.txt" files by default would generate results similar to Figure 6A (same connectivities but different rng seeds; tremor oscillations spread after 16 ION cells are perturbed, see rows 47-54 in "mosinit_ET_scaleup.hoc"). Modifying rng seeds may require perturbing more ION cells initially.

5) Connectivities can be modified by "createConnections.m" in MATLAB, which overwrites "params_xxx.txt" files. If the connectivities are modified, the group of ION cells that are most sensitive (i.e., their oscillations spread to other cells) may change, and the minimum number of ION cells that needs to be perturbed should be determined again.