def create_models(self): self.generic_cell = IafActivityCell( id="generic_iaf_cell", C=self.get_bioparameter("iaf_C").value, thresh=self.get_bioparameter("iaf_thresh").value, reset=self.get_bioparameter("iaf_reset").value, leak_conductance=self.get_bioparameter("iaf_conductance").value, leak_reversal=self.get_bioparameter("iaf_leak_reversal").value, tau1=self.get_bioparameter("iaf_tau1").value) self.exc_syn = ExpTwoSynapse( id="exc_syn", gbase=self.get_bioparameter("chem_exc_syn_gbase").value, erev=self.get_bioparameter("chem_exc_syn_erev").value, tau_decay=self.get_bioparameter("chem_exc_syn_decay").value, tau_rise=self.get_bioparameter("chem_exc_syn_rise").value) self.inh_syn = ExpTwoSynapse( id="inh_syn", gbase=self.get_bioparameter("chem_inh_syn_gbase").value, erev=self.get_bioparameter("chem_inh_syn_erev").value, tau_decay=self.get_bioparameter("chem_inh_syn_decay").value, tau_rise=self.get_bioparameter("chem_inh_syn_rise").value) self.elec_syn = GapJunction( id="elec_syn", conductance=self.get_bioparameter("elec_syn_gbase").value) self.offset_current = PulseGenerator( id="offset_current", delay=self.get_bioparameter( "unphysiological_offset_current_del").value, duration=self.get_bioparameter( "unphysiological_offset_current_dur").value, amplitude=self.get_bioparameter( "unphysiological_offset_current").value)
def create_models(self): self.generic_cell = Cell(id = "GenericCell") morphology = Morphology() morphology.id = "morphology_"+self.generic_cell.id self.generic_cell.morphology = morphology prox_point = Point3DWithDiam(x="0", y="0", z="0", diameter=self.get_bioparameter("cell_diameter").value) dist_point = Point3DWithDiam(x="0", y="0", z=self.get_bioparameter("cell_length").value, diameter=self.get_bioparameter("cell_diameter").value) segment = Segment(id="0", name="soma", proximal = prox_point, distal = dist_point) morphology.segments.append(segment) self.generic_cell.biophysical_properties = BiophysicalProperties(id="biophys_"+self.generic_cell.id) mp = MembraneProperties() self.generic_cell.biophysical_properties.membrane_properties = mp mp.init_memb_potentials.append(InitMembPotential(value=self.get_bioparameter("initial_memb_pot").value)) mp.specific_capacitances.append(SpecificCapacitance(value=self.get_bioparameter("specific_capacitance").value)) mp.spike_threshes.append(SpikeThresh(value=self.get_bioparameter("spike_thresh").value)) mp.channel_densities.append(ChannelDensity(cond_density=self.get_bioparameter("leak_cond_density").value, id="Leak_all", ion_channel="Leak", erev=self.get_bioparameter("leak_erev").value, ion="non_specific")) mp.channel_densities.append(ChannelDensity(cond_density=self.get_bioparameter("k_slow_cond_density").value, id="k_slow_all", ion_channel="k_slow", erev=self.get_bioparameter("k_slow_erev").value, ion="k")) mp.channel_densities.append(ChannelDensity(cond_density=self.get_bioparameter("k_fast_cond_density").value, id="k_fast_all", ion_channel="k_fast", erev=self.get_bioparameter("k_fast_erev").value, ion="k")) mp.channel_densities.append(ChannelDensity(cond_density=self.get_bioparameter("ca_boyle_cond_density").value, id="ca_boyle_all", ion_channel="ca_boyle", erev=self.get_bioparameter("ca_boyle_erev").value, ion="ca")) ip = IntracellularProperties() self.generic_cell.biophysical_properties.intracellular_properties = ip # NOTE: resistivity/axial resistance not used for single compartment cell models, so value irrelevant! ip.resistivities.append(Resistivity(value="0.1 kohm_cm")) # NOTE: Ca reversal potential not calculated by Nernst, so initial_ext_concentration value irrelevant! species = Species(id="ca", ion="ca", concentration_model="CaPool", initial_concentration="0 mM", initial_ext_concentration="2E-6 mol_per_cm3") ip.species.append(species) self.exc_syn = GradedSynapse(id="exc_syn", conductance = self.get_bioparameter("exc_syn_conductance").value, delta = self.get_bioparameter("exc_syn_delta").value, Vth = self.get_bioparameter("exc_syn_vth").value, erev = self.get_bioparameter("exc_syn_erev").value, k = self.get_bioparameter("exc_syn_k").value) self.inh_syn = GradedSynapse(id="inh_syn", conductance = self.get_bioparameter("inh_syn_conductance").value, delta = self.get_bioparameter("inh_syn_delta").value, Vth = self.get_bioparameter("inh_syn_vth").value, erev = self.get_bioparameter("inh_syn_erev").value, k = self.get_bioparameter("inh_syn_k").value) self.elec_syn = GapJunction(id="elec_syn", conductance = self.get_bioparameter("elec_syn_gbase").value) self.offset_current = PulseGenerator(id="offset_current", delay=self.get_bioparameter("unphysiological_offset_current_del").value, duration=self.get_bioparameter("unphysiological_offset_current_dur").value, amplitude=self.get_bioparameter("unphysiological_offset_current").value)
def create_muscle_to_muscle_syn(self): self.muscle_to_muscle_elec_syn = GapJunction( id="muscle_to_muscle_elec_syn", conductance=self.get_bioparameter( "muscle_to_muscle_elec_syn_gbase").value)
nml_doc.izhikevich_cells.append(iz0) syn0 = ExpOneSynapse(id="syn0", gbase="14nS", erev="0mV", tau_decay="3ms") nml_doc.exp_one_synapses.append(syn0) syn1 = ExpTwoSynapse(id="syn1", gbase="2nS", erev="0mV", tau_rise="1ms", tau_decay="3ms") nml_doc.exp_two_synapses.append(syn1) gj = GapJunction(id="gj1", conductance="10pS") nml_doc.gap_junctions.append(gj) sil_syn = SilentSynapse(id="silent1") nml_doc.silent_synapses.append(sil_syn) grad_syn = GradedSynapse(id="gs1", conductance="0.5pS", delta="5mV", Vth="-55mV", k="0.025per_ms", erev="0mV") nml_doc.graded_synapses.append(grad_syn) pfs = PoissonFiringSynapse(id='pfs',
def create_n_connection_synapse(prototype_syn, n, nml_doc, existing_synapses): new_id = "%s_%sconns"%(prototype_syn.id, str(n).replace('.', '_')) if type(n) is float: new_id = "%s_%sconns" % (prototype_syn.id, get_str_from_expnotation(n).replace('.', '_')) if isinstance(prototype_syn, ExpTwoSynapse): new_id = "%s"%(prototype_syn.id) if not existing_synapses.has_key(new_id): if isinstance(prototype_syn, ExpTwoSynapse): new_syn = ExpTwoSynapse(id=new_id, gbase = prototype_syn.gbase, erev = prototype_syn.erev, tau_decay = prototype_syn.tau_decay, tau_rise = prototype_syn.tau_rise) existing_synapses[new_id] = new_syn nml_doc.exp_two_synapses.append(new_syn) elif isinstance(prototype_syn, GapJunction): magnitude, unit = bioparameters.split_neuroml_quantity(prototype_syn.conductance) cond = "%s%s" % (magnitude * n, unit) if type(n) is float: cond = "%s%s" % (get_str_from_expnotation(magnitude * n), unit) new_syn = GapJunction(id=new_id, conductance = cond) existing_synapses[new_id] = new_syn nml_doc.gap_junctions.append(new_syn) elif isinstance(prototype_syn, GradedSynapse): magnitude, unit = bioparameters.split_neuroml_quantity(prototype_syn.conductance) cond = "%s%s" % (magnitude * n, unit) if type(n) is float: cond = "%s%s" % (get_str_from_expnotation(magnitude * n), unit) new_syn = GradedSynapse(id=new_id, conductance = cond, delta = prototype_syn.delta, Vth = prototype_syn.Vth, erev = prototype_syn.erev, k = prototype_syn.k) existing_synapses[new_id] = new_syn nml_doc.graded_synapses.append(new_syn) elif isinstance(prototype_syn, GradedSynapse2): magnitude, unit = bioparameters.split_neuroml_quantity(prototype_syn.conductance) cond = "%s%s" % (magnitude * n, unit) if type(n) is float: cond = "%s%s" % (get_str_from_expnotation(magnitude * n), unit) new_syn = GradedSynapse2(id=new_id, conductance = cond, ar = prototype_syn.ar, ad = prototype_syn.ad, beta = prototype_syn.beta, vth = prototype_syn.vth, erev = prototype_syn.erev) existing_synapses[new_id] = new_syn nml_doc.graded_synapses.append(new_syn) else: new_syn = existing_synapses[new_id] return new_syn
self.leak_reversal, self.tau1)) generic_cell = IafActivityCell(id="generic_iaf_cell", C=iaf_C.value, thresh=iaf_thresh.value, reset=iaf_reset.value, leak_conductance=iaf_conductance.value, leak_reversal=iaf_leak_reversal.value, tau1=iaf_tau1.value) exc_syn = ExpTwoSynapse(id="exc_syn", gbase=chem_exc_syn_gbase.value, erev=chem_exc_syn_erev.value, tau_decay=chem_exc_syn_decay.value, tau_rise=chem_exc_syn_rise.value) inh_syn = ExpTwoSynapse(id="inh_syn", gbase=chem_inh_syn_gbase.value, erev=chem_inh_syn_erev.value, tau_decay=chem_inh_syn_decay.value, tau_rise=chem_inh_syn_rise.value) elec_syn = GapJunction(id="elec_syn", conductance=elec_syn_gbase.value) offset_current = PulseGenerator( id="offset_current", delay="0ms", duration=unphysiological_offset_current_dur.value, amplitude=unphysiological_offset_current.value)