예제 #1
0
 def addSegmentSynapse(self, layerDict, dist2sec, distKeys, synList,
                       synType):
     for layer in layerDict:
         for dist in distKeys:
             sec_choice = dist2sec[dist]
             for seg_choice in layerDict[layer][sec_choice]:
                 nmda_flag = 0
                 if self.synvars['type'] == "E2-NMDA2":
                     syn = h.Exp2Syn(sec_choice(seg_choice))
                     nmda = h.Exp2NMDA_Wang(sec_choice(seg_choice))
                     nmda_flag = 1
                 if self.synvars['type'] == "Log_E2Syn":
                     syn = h.Log_E2Syn(sec_choice(seg_choice))
                 if self.synvars['type'] == "Add_E2Syn":
                     syn = h.Add_E2Syn(sec_choice(seg_choice))
                 if self.synvars['type'] == "Mult_E2Syn":
                     syn = h.Mult_E2Syn(sec_choice(seg_choice))
                 if self.synvars['type'] == "E2":
                     syn = h.Exp2Syn(sec_choice(seg_choice))
                 if self.synvars['type'] == "E2_Prob":
                     syn = h.E2_Prob(sec_choice(seg_choice))
                     syn.P = self.synvars['P']
                 if self.synvars['type'] == "E2_STP_Prob":
                     syn = h.E2_STP_Prob(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2":
                     syn = h.STDPE2(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_Clo":
                     syn = h.STDPE2_Clo(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_STP":
                     syn = h.STDPE2_STP(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_Prob":
                     syn = h.STDPE2_Prob(sec_choice(seg_choice))
                     syn.P = self.synvars['P']
                 #initializes different variables depending on synapse
                 if (self.synvars['type'] == "STDPE2_STP") | (
                         self.synvars['type'] == "E2_STP_Prob"):
                     syn.F1 = self.synvars['F1']
                 if (self.synvars['type'] == "STDPE2_Clo") | (
                         self.synvars['type'] == "STDPE2_STP") | (
                             self.synvars['type'] == "STDPE2") | (
                                 self.synvars['type'] == "STDPE2_Prob"):
                     syn.wmax = self.synvars['wmax']
                     syn.wmin = self.synvars['wmin']
                     syn.thresh = self.synvars['thresh']
                 if (self.synvars['type'] == "E2_Prob") | (
                         self.synvars['type'] == "E2_STP_Prob") | (
                             self.synvars['type'] == "STDPE2_STP") | (
                                 self.synvars['type'] == "STDPE2_Prob"):
                     h.use_mcell_ran4(1)
                     syn.seed = self.ranGen.randint(1, 4.295e9)
                 syn.tau1 = 0.5
                 syn.tau2 = 0.6
                 syn.e = 0
                 if nmda_flag == 1:
                     if synType == 'NMDA':
                         synList[layer].append(nmda)
                     else:
                         synList[layer].append(syn)
                 else:
                     synList[layer].append(syn)
def createSyn(synvars,sec_choice,seg_choice):
	if synvars['type'] == "E3_NMDA":
		syn = h.E3_NMDA(sec_choice(seg_choice))
	if synvars['type'] == "E2":	
		syn = h.Exp2Syn(sec_choice(seg_choice))
	if synvars['type'] == "E2_Prob":
		syn = h.E2_Prob(sec_choice(seg_choice))
		syn.P = synvars['P']
	if synvars['type'] == "E2_STP_Prob":
		syn = h.E2_STP_Prob(sec_choice(seg_choice))
	if synvars['type'] == "STDPE2":
		syn = h.STDPE2(sec_choice(seg_choice))
	if synvars['type'] == "STDPE2_Clo":
		syn = h.STDPE2_Clo(sec_choice(seg_choice))	
	if synvars['type'] == "STDPE2_STP"	:
		syn = h.STDPE2_STP(sec_choice(seg_choice))
	if synvars['type'] == "STDPE2_Prob":
		syn = h.STDPE2_Prob(sec_choice(seg_choice))
		syn.P = synvars['P']
	#initializes different variables depending on synapse		
	if (synvars['type'] == "STDPE2_STP")|(synvars['type'] == "E2_STP_Prob"):	
		syn.F1 = synvars['F1']		
	if  (synvars['type'] == "STDPE2_Clo" )|( synvars['type'] == "STDPE2_STP")|( synvars['type'] == "STDPE2")| (synvars['type'] == "STDPE2_Prob"):	
		syn.wmax = synvars['wmax']
		syn.wmin = synvars['wmin']
		syn.thresh = synvars['thresh']
	if  (synvars['type'] == "E2_Prob" )|( synvars['type'] == "E2_STP_Prob")|(synvars['type'] == "STDPE2_STP") | (synvars['type'] == "STDPE2_Prob"):
		h.use_mcell_ran4(1)   		
		syn.seed = self.ranGen.randint(1,4.295e9)
	syn.tau1 = 0.5
	syn.tau2 = 0.6
	syn.e = 0
        
        return syn
예제 #3
0
 def addSegmentSynapse(self, layerDict, list, synList, synType, in_param):
     s = 0
     for layer in sorted(layerDict.keys()):
         c = 0
         for sec_choice in list:
             dict = layerDict[layer]
             for seg_choice in dict[sec_choice]:
                 nmda_flag = 0
                 if self.synvars['type'] == "E2-NMDA2":
                     syn = h.Exp2Syn(sec_choice(seg_choice))
                     nmda = h.Exp2NMDA_Wang(sec_choice(seg_choice))
                     nmda_flag = 1
                 if self.synvars['type'] == "E2":
                     if layer == in_param["syn_layer"] and c == in_param[
                             "syn_id"]:
                         print layer, sec_choice, seg_choice
                     c = c + 1
                     syn = h.Exp2Syn(sec_choice(seg_choice))
                 if self.synvars['type'] == "E2_Prob":
                     syn = h.E2_Prob(sec_choice(seg_choice))
                     syn.P = self.synvars['P']
                 if self.synvars['type'] == "E2_STP_Prob":
                     syn = h.E2_STP_Prob(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2":
                     syn = h.STDPE2(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_Clo":
                     syn = h.STDPE2_Clo(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_STP":
                     syn = h.STDPE2_STP(sec_choice(seg_choice))
                 if self.synvars['type'] == "STDPE2_Prob":
                     syn = h.STDPE2_Prob(sec_choice(seg_choice))
                     syn.P = self.synvars['P']
                 #initializes different variables depending on synapse
                 if (self.synvars['type'] == "STDPE2_STP") | (
                         self.synvars['type'] == "E2_STP_Prob"):
                     syn.F1 = self.synvars['F1']
                 if (self.synvars['type'] == "STDPE2_Clo") | (
                         self.synvars['type'] == "STDPE2_STP") | (
                             self.synvars['type'] == "STDPE2") | (
                                 self.synvars['type'] == "STDPE2_Prob"):
                     syn.wmax = self.synvars['wmax']
                     syn.wmin = self.synvars['wmin']
                     syn.thresh = self.synvars['thresh']
                 if (self.synvars['type'] == "E2_Prob") | (
                         self.synvars['type'] == "E2_STP_Prob") | (
                             self.synvars['type'] == "STDPE2_STP") | (
                                 self.synvars['type'] == "STDPE2_Prob"):
                     h.use_mcell_ran4(1)
                     syn.seed = self.ranGen.randint(1, 4.295e9)
                 syn.tau1 = 0.5
                 syn.tau2 = 0.6
                 syn.e = 0
                 if nmda_flag == 1:
                     if synType == 'NMDA':
                         synList[layer].append(nmda)
                     else:
                         synList[layer].append(syn)
                 else:
                     synList[layer].append(syn)
         s = s + c
     print "total_synapses = ", s
    def addSynapses(self):
        self.pre_list = []

        # E0
        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        self.pre_list.append(syn_)  # AMPA        EC
        syn_.tau1 = 0.5
        syn_.tau2 = 3
        syn_.e = 0

        # E1
        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        self.pre_list.append(syn_)  # AMPA        EC
        syn_.tau1 = 0.5
        syn_.tau2 = 3
        syn_.e = 0

        # E2
        syn_ = h.MyExp2Syn(self.radTmed(0.5))
        self.pre_list.append(syn_)  # AMPA        CA3 Shaffer collateral
        syn_.tau1 = 0.5
        syn_.tau2 = 3
        syn_.e = 0

        # E3
        syn_ = h.NMDA(self.radTmed(0.5))
        self.pre_list.append(syn_)  # NMDA        CA3 Shaffer collateral
        syn_.tcon = 2.3
        syn_.tcoff = 100
        syn_.gNMDAmax = 1  # use connection weight to determine max cond

        # E4
        syn_ = h.MyExp2Syn(self.radTprox(0.5))
        self.pre_list.append(syn_)  # AMPA        PC Recurrent collateral
        syn_.tau1 = 0.5
        syn_.tau2 = 3
        syn_.e = 0

        # I5
        syn_ = h.MyExp2Syn(self.soma(0.5))
        self.pre_list.append(syn_)  # GABA-A    basket cell
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I6
        syn_ = h.MyExp2Syn(self.axon(0.1))
        self.pre_list.append(syn_)  # GABA-A    AA cell
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I7
        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        self.pre_list.append(syn_)  # GABA-A    OLM cell
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I8
        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        self.pre_list.append(syn_)  # GABA-A    OLM cell
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I9
        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        self.pre_list.append(syn_)  # GABA-B    OLM cell
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I10
        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        self.pre_list.append(syn_)  # GABA-B    OLM Cell
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I11
        syn_ = h.MyExp2Syn(self.radTmed(0.8))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I12
        syn_ = h.MyExp2Syn(self.radTmed(0.7))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I13
        syn_ = h.MyExp2Syn(self.radTmed(0.6))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I14
        syn_ = h.MyExp2Syn(self.radTmed(0.4))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I15
        syn_ = h.MyExp2Syn(self.radTmed(0.3))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I16
        syn_ = h.MyExp2Syn(self.radTmed(0.2))
        self.pre_list.append(syn_)  # GABA-A    Bistratified
        syn_.tau1 = 1
        syn_.tau2 = 8
        syn_.e = -75

        # I17
        syn_ = h.MyExp2Syn(self.radTmed(0.8))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I18
        syn_ = h.MyExp2Syn(self.radTmed(0.7))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I19
        syn_ = h.MyExp2Syn(self.radTmed(0.6))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I20
        syn_ = h.MyExp2Syn(self.radTmed(0.4))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I21
        syn_ = h.MyExp2Syn(self.radTmed(0.3))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I22
        syn_ = h.MyExp2Syn(self.radTmed(0.2))
        self.pre_list.append(syn_)  # GABA-B    Bistratified
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75

        # I23
        syn_ = h.STDPE2(self.radTmed(0.5))
        self.pre_list.append(syn_)  # AMPA modifiable	CA3 Schaffer collaterals
        syn_.tau1 = 0.5
        syn_.tau2 = 3
        syn_.e = 0
    def synapses(self):
        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        syn_.tau1 = 0.5
        syn_.tau2 = 3.0
        syn_.e = 0.0
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        syn_.tau1 = 0.5
        syn_.tau2 = 3.0
        syn_.e = 0.0
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.radTmed(0.5))
        syn_.tau1 = 0.5
        syn_.tau2 = 3.0
        syn_.e = 0.0
        self.prelist.append(syn_)

        syn_ = h.NMDA(self.radTmed(0.5))
        syn_.tcon = 2.3
        syn_.tcoff = 100.
        syn_.gNMDAmax = 1.0
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.radTprox(0.5))
        syn_.tau1 = 0.5
        syn_.tau2 = 3.0
        syn_.e = 0.0
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.soma(0.5))
        syn_.tau1 = 1.0
        syn_.tau2 = 8.0
        syn_.e = -75
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.axon(0.5))
        syn_.tau1 = 1.0
        syn_.tau2 = 8.0
        syn_.e = -75.0
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        syn_.tau1 = 1.0
        syn_.tau2 = 8.0
        syn_.e = -75
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        syn_.tau1 = 1.0
        syn_.tau2 = 8.0
        syn_.e = -75
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.lm_thick1(0.5))
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75
        self.prelist.append(syn_)

        syn_ = h.MyExp2Syn(self.lm_thick2(0.5))
        syn_.tau1 = 35
        syn_.tau2 = 100
        syn_.e = -75
        self.prelist.append(syn_)

        for l in np.arange(0.2, 0.9, 0.1):
            if l == 0.5:
                continue
            syn_ = h.MyExp2Syn(self.radTmed(l))
            syn_.tau1 = 1.0
            syn_.tau2 = 8.0
            syn_.e = -75
            self.prelist.append(syn_)

        for l in np.arange(0.2, 0.9, 0.1):
            if l == 0.5:
                continue
            syn_ = h.MyExp2Syn(self.radTmed(l))
            syn_.tau1 = 35
            syn_.tau2 = 100
            syn_.e = -75
            self.prelist.append(syn_)

        syn_ = h.STDPE2(self.radTmed(0.5))
        syn_.tau1 = 0.5
        syn_.tau2 = 3.0
        syn_.e = 0.0