<gh_stars>0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import math

sys.path.extend(["..","../channels"])
from channelConstants import * # for CELSIUS, the global temperature

import moose
from moose.neuroml import *

def load_cells():
    MML = MorphML({'temperature':CELSIUS})
    ## writing ../cells/ below allows load_cells() to be called from within any sister directory

    ## original mitral cell of Upi with half RM (half tau), -58mV resting potential
    ## more Na & K in primary dend, some Na & K in tuft, electrode leak removed.
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3_mod.xml',{})
    ## modified as above + for spike initiation at soma for small tuft input and at tuft for large tuft input:
    ## RA reduced; added hillock and initial segment (with Migliore & Shepherd's Na channel), tuft and prim dend more excitable
    mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3_mod_withspikeinit.xml',{})
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3.xml',{})
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_TEST_L1_L2_L3.xml',{})
    ## modified mitral cell with changes as above plus: RM is 1/5th,
    ## Migliore & Shepherd Na channels, special hillock MS Na channel
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davisonMS_neuroML_L1_L2_L3.xml',{})

    ## Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca).
    PG_dict = MML.readMorphMLFromFile('../cells/PG_aditya2013unified_neuroML_L1_L2_L3.xml',{})
    ### For the 2012 cell, to get the Ca conc correct, below code was used. Obsolete with the new 2013 cell.
    ### Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca).
    ### Be sure to uncomment the CaBasal setting below too!
    ### For just the new 2012 PG cell set CaPool.CaBasal to 0.05 mM, else the PG fires a settling burst at t=0.
    ### PG_dict['PG'] = { segid1 : [ segname,(proximalx,proximaly,proximalz),
    ###  (distalx,distaly,distalz),diameter,length,[potential_syn1, ... ] ] , ... }
    ### This is a complete hackjob, ideally, I should use a different CaPool.
    #PG_dict = MML.readMorphMLFromFile('../cells/PG_aditya2012_neuroML_L1_L2_L3.xml',{})
    #for seg in PG_dict['PG'].values():
    #    segname = seg[0]
    #    segpath = '/library/PG/'+segname
    #    if not moose.context.exists(segpath):
    #        print "Missing compartment",segpath
    #        sys.exit(1)
    #    compartment = moose.Compartment(segpath)
    #    for child in compartment.getChildren(compartment.id): # channels and synapses
    #        if moose.Neutral(child).className in ['CaConc']:
    #            CaPool = moose.CaConc(child)
    #            CaPool.CaBasal = 0.05 # mM
    ### hackjob for PG cell 2012 ends.

    granule_dict = MML.readMorphMLFromFile('../cells/granule_granadityaMS2007_neuroML_L1_L2_L3.xml',{})

    ## make one dictionary out of above dicts.
    cellSegmentList = {}
    cellSegmentList.update(mitral_dict)
    cellSegmentList.update(PG_dict)
    cellSegmentList.update(granule_dict)
    return cellSegmentList

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import math

sys.path.extend(["..","../channels"])
from channelConstants import * # for CELSIUS, the global temperature

import moose
from moose.neuroml import *

def load_cells():
    MML = MorphML({'temperature':CELSIUS})
    ## writing ../cells/ below allows load_cells() to be called from within any sister directory

    ## original mitral cell of Upi with half RM (half tau), -58mV resting potential
    ## more Na & K in primary dend, some Na & K in tuft, electrode leak removed.
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3_mod.xml',{})
    ## modified as above + for spike initiation at soma for small tuft input and at tuft for large tuft input:
    ## RA reduced; added hillock and initial segment (with Migliore & Shepherd's Na channel), tuft and prim dend more excitable
    mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3_mod_withspikeinit.xml',{})
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3.xml',{})
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_TEST_L1_L2_L3.xml',{})
    ## modified mitral cell with changes as above plus: RM is 1/5th,
    ## Migliore & Shepherd Na channels, special hillock MS Na channel
    #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davisonMS_neuroML_L1_L2_L3.xml',{})

    ## Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca).
    PG_dict = MML.readMorphMLFromFile('../cells/PG_aditya2013unified_neuroML_L1_L2_L3.xml',{})
    ### For the 2012 cell, to get the Ca conc correct, below code was used. Obsolete with the new 2013 cell.
    ### Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca).
    ### Be sure to uncomment the CaBasal setting below too!
    ### For just the new 2012 PG cell set CaPool.CaBasal to 0.05 mM, else the PG fires a settling burst at t=0.
    ### PG_dict['PG'] = { segid1 : [ segname,(proximalx,proximaly,proximalz),
    ###  (distalx,distaly,distalz),diameter,length,[potential_syn1, ... ] ] , ... }
    ### This is a complete hackjob, ideally, I should use a different CaPool.
    #PG_dict = MML.readMorphMLFromFile('../cells/PG_aditya2012_neuroML_L1_L2_L3.xml',{})
    #for seg in PG_dict['PG'].values():
    #    segname = seg[0]
    #    segpath = '/library/PG/'+segname
    #    if not moose.context.exists(segpath):
    #        print "Missing compartment",segpath
    #        sys.exit(1)
    #    compartment = moose.Compartment(segpath)
    #    for child in compartment.getChildren(compartment.id): # channels and synapses
    #        if moose.Neutral(child).className in ['CaConc']:
    #            CaPool = moose.CaConc(child)
    #            CaPool.CaBasal = 0.05 # mM
    ### hackjob for PG cell 2012 ends.

    granule_dict = MML.readMorphMLFromFile('../cells/granule_granadityaMS2007_neuroML_L1_L2_L3.xml',{})

    ## make one dictionary out of above dicts.
    cellSegmentList = {}
    cellSegmentList.update(mitral_dict)
    cellSegmentList.update(PG_dict)
    cellSegmentList.update(granule_dict)
    return cellSegmentList
#!/usr/bin/env python # -*- coding: utf-8 -*- # for CELSIUS, the global temperature ## writing ../cells/ below allows load_cells() to be called from within any sister directory ## original mitral cell of Upi with half RM (half tau), -58mV resting potential ## more Na & K in primary dend, some Na & K in tuft, electrode leak removed. #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3_mod.xml',{}) ## modified as above + for spike initiation at soma for small tuft input and at tuft for large tuft input: ## RA reduced; added hillock and initial segment (with Migliore & Shepherd's Na channel), tuft and prim dend more excitable #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_L1_L2_L3.xml',{}) #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davison_neuroML_TEST_L1_L2_L3.xml',{}) ## modified mitral cell with changes as above plus: RM is 1/5th, ## Migliore & Shepherd Na channels, special hillock MS Na channel #mitral_dict = MML.readMorphMLFromFile('../cells/mitral_bbmit1993davisonMS_neuroML_L1_L2_L3.xml',{}) ## Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca). ### For the 2012 cell, to get the Ca conc correct, below code was used. Obsolete with the new 2013 cell. ### Low threshold spiking cell, LTS with shoulder and plateau potential due to extra TCa (low threshold Ca). ### Be sure to uncomment the CaBasal setting below too! ### For just the new 2012 PG cell set CaPool.CaBasal to 0.05 mM, else the PG fires a settling burst at t=0. ### PG_dict['PG'] = { segid1 : [ segname,(proximalx,proximaly,proximalz), ###  (distalx,distaly,distalz),diameter,length,[potential_syn1, ... ] ] , ... } ### This is a complete hackjob, ideally, I should use a different CaPool. #PG_dict = MML.readMorphMLFromFile('../cells/PG_aditya2012_neuroML_L1_L2_L3.xml',{}) #for seg in PG_dict['PG'].values(): #    segname = seg[0] #    segpath = '/library/PG/'+segname #    if not moose.context.exists(segpath): #        print "Missing compartment",segpath #        sys.exit(1) #    compartment = moose.Compartment(segpath) #    for child in compartment.getChildren(compartment.id): # channels and synapses #        if moose.Neutral(child).className in ['CaConc']: #            CaPool = moose.CaConc(child) #            CaPool.CaBasal = 0.05 # mM ### hackjob for PG cell 2012 ends. ## make one dictionary out of above dicts.