from tvbo import SimulationExperiment
exp = SimulationExperiment.from_string("""
label: "NeuroML Ex27: Multi-Synapses"
dynamics:
name: iafCell
iri: neuroml:iafCell
network:
dynamics:
iaf:
name: iaf
iri: neuroml:iafCell
parameters:
leakReversal: {value: -70, unit: mV}
thresh: {value: -55, unit: mV}
reset: {value: -70, unit: mV}
C: {value: 0.2, unit: nF}
leakConductance: {value: 10, unit: nS}
spks:
name: spks
iri: neuroml:spikeArray
events:
s:
event_type: preset_time
trigger_times: [50, 200, 350, 360]
# AMPA: fast excitatory synapse
AMPA:
name: AMPA
iri: neuroml:expTwoSynapse
parameters:
gbase: {value: 1, unit: nS}
erev: {value: 0, unit: mV}
tauRise: {value: 1, unit: ms}
tauDecay: {value: 2, unit: ms}
# NMDA: slow excitatory synapse with Mg2+ block
NMDA:
name: NMDA
iri: neuroml:blockingPlasticSynapse
parameters:
gbase: {value: 4, unit: nS}
erev: {value: 0, unit: mV}
tauRise: {value: 2, unit: ms}
tauDecay: {value: 20, unit: ms}
modes:
blockMechanism:
name: blockMechanism
iri: neuroml:voltageConcDepBlockMechanism
parameters:
species: {description: mg}
blockConcentration: {value: 1.2, unit: mmol_per_m3}
scalingConc: {value: 1.920544, unit: mmol_per_m3}
scalingVolt: {value: 16.129, unit: mV}
# doubleSynapse: composite of AMPA + NMDA
AMPA_NMDA:
name: AMPA_NMDA
iri: neuroml:doubleSynapse
parameters:
synapse1: {description: AMPA}
synapse1Path: {description: ./AMPA}
synapse2: {description: NMDA}
synapse2Path: {description: ./NMDA}
nodes:
- {id: 0, dynamics: iaf}
- {id: 1, dynamics: iaf}
- {id: 2, dynamics: iaf}
- {id: 3, dynamics: iaf}
- {id: 4, dynamics: iaf}
- {id: 100, dynamics: spks}
edges:
# Cell 0: AMPA only
- {source: 100, target: 0, coupling: AMPA, parameters: {weight: {value: 0.5} , delay: {value: 0, unit: ms }} }
# Cell 1: NMDA only
- {source: 100, target: 1, coupling: NMDA, parameters: {weight: {value: 0.5} , delay: {value: 0, unit: ms }} }
# Cell 2: AMPA + NMDA separately
- {source: 100, target: 2, coupling: AMPA, parameters: {weight: {value: 0.5} , delay: {value: 0, unit: ms }} }
- {source: 100, target: 2, coupling: NMDA, parameters: {weight: {value: 0.5} , delay: {value: 0, unit: ms }} }
# Cell 3: doubleSynapse (AMPA+NMDA composite) with 5ms delay
- {source: 100, target: 3, coupling: AMPA_NMDA, parameters: {weight: {value: 0.5} , delay: {value: 5, unit: ms }} }
integration:
method: euler
step_size: 0.001
duration: 600.0
time_scale: ms
""" )
print (f"Model: { exp. dynamics. name if exp. dynamics else 'network' } " )