-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathassembleJB12Spec.m
112 lines (103 loc) · 3.95 KB
/
assembleJB12Spec.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
function specification = assembleJB12Spec(numCellsScaledown)
%ASSEMBLEJB12SPEC - Construct and connect the cortex of the (Benita et al., 2012) model
%
% assembleSpecification builds a (Benita et al., 2012)-type DynaSim
% specification, including both its populations and connections from the many
% mechanism files contained in the 'models/' subdirectory.
%
% Inputs:
% 'numCellsScaledown': number to multiply each cell population size
% by, between 0 and 1. To run the full model, use
% 1. If one wishes to run a smaller model, since
% the default model is rather large, use a
% smaller proportion like 0.2.
%
% Outputs:
% 'specification': DynaSim specification structure for the (Benita
% et al., 2012) model.
%
% Dependencies:
% - This has only been tested on MATLAB version 2017a.
%
% References:
% - Benita, J. M., Guillamon, A., Deco, G., & Sanchez-Vives, M. V. (2012).
% Synaptic depression and slow oscillatory activity in a biophysical
% network model of the cerebral cortex. Frontiers in Computational
% Neuroscience, 6. https://doi.org/10.3389/fncom.2012.00064
%
%
% Author: Austin E. Soplata <[email protected]>
% Copyright (C) 2018 Austin E. Soplata, Boston University, USA
% -------------------------------------------------------------------
%% 1. Make master equations and initialize
% -------------------------------------------------------------------
% Define equations of cell model (same for all populations)
eqns={
'dv/dt=(@current)/Cm'
'Cm = 1' % uF/cm^2
'spike_threshold = -25'
'monitor v.spikes(spike_threshold)'
'vIC = -68' % mV
'vNoiseIC = 50' % mV
'v(0) = vIC+vNoiseIC*rand(1,Npop)'
};
% Initialize DynaSim specification structure
specification=[];
% -------------------------------------------------------------------
%% 2. Assemble Cortex Model and Intracortical Connections
% -------------------------------------------------------------------
% PY cells and intercompartmental PY connections:
specification.populations(1).name='PYdr';
specification.populations(1).size=round(numCellsScaledown*1024);
specification.populations(1).equations=eqns;
specification.populations(1).mechanism_list={...
'CaBuffer_PYdr_JB12',...
'iAppliedCurrent',...
'iHVA_PYdr_JB12',...
'iKCa_PYdr_JB12',...
'iNaP_PYdr_JB12',...
'iAR_PYdr_JB12',...
};
% Note that the soma mechanisms are somewhat sensitive to initial conditions
specification.populations(2).name='PYso';
specification.populations(2).size=round(numCellsScaledown*1024);
specification.populations(2).equations=eqns;
specification.populations(2).mechanism_list={...
'iAppliedCurrent',...
'iLeak_PYso_JB12',...
'iNa_PYso_JB12',...
'iK_PYso_JB12',...
'iA_PYso_JB12',...
'iKS_PYso_JB12',...
};
specification.connections(1).direction='PYso<-PYdr';
specification.connections(1).mechanism_list={...
'iCOM_PYso_PYdr_JB12',...
'iNaCurrs_PYso_PYdr_JB12',...
};
specification.connections(2).direction='PYdr<-PYso';
specification.connections(2).mechanism_list={...
'iCOM_PYdr_PYso_JB12',...
'iAMPA_PYdr_PYso_JB12',...
'iNMDA_PYdr_PYso_JB12'};
% IN cells and intercompartmental IN connections:
specification.populations(3).name='IN';
specification.populations(3).size=round(numCellsScaledown*256);
specification.populations(3).equations=eqns;
specification.populations(3).mechanism_list={...
'iAppliedCurrent',...
'iLeak_IN_JB12',...
'iNa_IN_JB12',...
'iK_IN_JB12',...
};
% PY<->IN connections/synapses
specification.connections(3).direction='IN<-PYso';
specification.connections(3).mechanism_list={...
'iAMPA_IN_PYso_JB12',...
'iNMDA_IN_PYso_JB12'};
specification.connections(4).direction='PYso<-IN';
specification.connections(4).mechanism_list={...
'iGABAA_PYso_IN_JB12'};
specification.connections(5).direction='IN<-IN';
specification.connections(5).mechanism_list={...
'iGABAA_IN_IN_JB12'};