import numpy as np
from neuron import h, load_mechanisms
from . import neuronFunctions as nfx
from . import get_src_dir
src_directory = get_src_dir()
load_mechanisms(f'{src_directory}/mod.files/')
h('objref nil')
class L23(object):
def __init__(self,cellID=0,dendNa=[6,2,200,False],dendK=[0.048,100,False,False],dxSeg=5,fixDiam=None):
"""
Initializer for L23 object. cellID determines which cell to load (see "loadHoc" function of this class for file names)
"""
if cellID>5 or cellID<0:
raise ValueError(f"CellIDs can only be 0-5, cellID={cellID} was provided.")
self.cellID = cellID
self.loadHoc(cellID) # Load Hoc File
self.props(dendNa=dendNa,dendK=dendK) # Load properties into class
self._topol(cellID,dxSeg,fixDiam) # Construct topology (and load names of sections into L23 object)
if cellID==0: self._changeLength(cellID) # if Cat Cell, fix lengths
self._addAxon() # Add axon
self._biophys() # Add passive properties
self.init_active(dendNa=dendNa, dendK=dendK)
def loadHoc(self,cellID):
hocFileName = {0:'L23',1:'29_CDK170205_registered_D2',2:'layer23_1_ATL',3:'layer23_2_ATL',4:'layer23_3_ATL',5:'layer23_4_ATL'}
print('Creating cell : {fName}'.format(fName=hocFileName[cellID]))
file_name = f"{get_src_dir()}/morphologies_from_literature/{hocFileName[cellID]}.hoc"
h(f'xopen("{file_name}")');
def props(self,dendNa,dendK):
# Passive properties
self.CM = 1.0
self.RM = 7000.0
self.RA = 100.0
self.E_PAS = -75
self.CELSIUS = 35
# Active properties
self.Ek = -90
self.Ena = 60
self.Eca = 140
# From Lorincz & Nusser, 2010
self.singleChannelNA = 17
self.gna_ais = self.singleChannelNA*150 #Ujfalussy: 1000
self.gkv_ais = 100 # Ujfalussy: 100
self.gna_axon = self.singleChannelNA*10
self.gkv_axon = 33
self.gna_soma = self.singleChannelNA * dendNa[0] # Ujfalussy: 1000
self.gkv_soma = 100
self.gkm_soma = 2.2
self.gkca_soma = 3
self.gca_soma = 0.5
self.git_soma = 0.0003
self.gna_dend = self.singleChannelNA*dendNa[0] # 80 - default
self.gna_Lambda = dendNa[2] # Drop off parameter
self.gkv_dend = 3 # 3 - default
self.gkm_dend = 1 # dendK[0][1] # 1 - default
self.gkca_dend = 3 # dendK[0][2] # 3 - default
self.gk_Lambda = dendK[1] # Drop off parameter
self.gka_base = dendK[0]
self.gca_dend = 0.5
self.git_dend = 0.00015
self.gh_dend = 0
self.caTau = 20 # ms - use for decay and 1/gamma
self.caDepth = 0.1 # µm how much to focus calcium in shell
self.caMinCai = 75e-6 # mM - minimum calcium concentration
def _topol(self,cellID,dxSeg,fixDiam):
self.soma = h.soma
self.soma.nseg = 1
self.dends = []
# Load each section (which has already been defined by h(xopen..)) into the self.dends list
secListL23 = returnSecListL23(cellID) #return name of every dendritic segment in list (excludes soma and axon)
for secName in secListL23:
self.dends.append(eval('h.{secName}'.format(secName=secName)))
# Set the diameter of each section correctly
for sec in self.dends:
sec.diam = sec.diam * 0.7
sec.nseg = np.ceil(sec.L/dxSeg).astype(int) # have a little bit more than 1 segment per every dxSeg(default=10µm)
if fixDiam:
sec.diam = fixDiam
def _changeLength(self,cellID):
if cellID != 0:
return
# Update length of all sections because L23.hoc based on cat neuron
self.soma.L = self.soma.L * 0.7
for sec in self.dends:
sec.L = sec.L * 0.7
def _addAxon(self):
self.ais = h.Section(name='ais')
self.ais.L = 30
self.ais.diam = 2
self.ais.nseg = 6
self.axon = h.Section(name='axon')
self.axon.L = 300
self.axon.diam = 1
self.axon.nseg = 7
self.ais.connect(self.soma,1,0)
self.axon.connect(self.ais,1,0)
def _biophys(self):
# Set up passive biophysics for soma
self.soma.cm = self.CM
self.soma.insert('pas')
self.soma.e_pas = self.E_PAS
self.soma.g_pas = 1.0/self.RM
self.soma.Ra = self.RA
# Set up passive biophysics for axon
self.ais.cm = self.CM
self.ais.insert('pas')
self.ais.e_pas = self.E_PAS
self.ais.g_pas = 1.0/self.RM
self.ais.Ra = self.RA
self.axon.cm = self.CM
self.axon.insert('pas')
self.axon.e_pas = self.E_PAS
self.axon.g_pas = 1.0/self.RM
self.axon.Ra = self.RA
# Set up passive biophysics for dendrites
for sec in self.dends:
sec.cm = self.CM
sec.insert('pas')
sec.e_pas = self.E_PAS
sec.g_pas = 1.0/self.RM
sec.Ra = self.RA
def init_active(self, dendNa, dendK):
self.axon.insert('na'); self.axon.gbar_na = self.gna_axon
self.axon.insert('kv'); self.axon.gbar_kv = self.gkv_axon
self.axon.ena = self.Ena
self.axon.ek = self.Ek
self.ais.insert('na'); self.ais.gbar_na = self.gna_ais
self.ais.insert('kv'); self.ais.gbar_kv = self.gkv_ais
self.ais.ena = self.Ena
self.ais.ek = self.Ek
self.soma.insert('na'); self.soma.gbar_na = self.gna_soma
self.soma.insert('kv'); self.soma.gbar_kv = self.gkv_soma
self.soma.insert('km'); self.soma.gbar_km = self.gkm_soma
self.soma.insert('kca'); self.soma.gbar_kca = self.gkca_soma
self.soma.insert('ca'); self.soma.gbar_ca = self.gca_soma
self.soma.insert('CaT'); self.soma.gbar_CaT = self.git_soma
self.soma.insert('CaDynamics');
self.soma.gamma_CaDynamics = 1/self.caTau
self.soma.decay_CaDynamics = self.caTau
self.soma.depth_CaDynamics = self.caDepth
self.soma.minCai_CaDynamics = self.caMinCai
self.soma.ena = self.Ena
self.soma.ek = self.Ek
self.soma.eca = self.Eca
# If we're adding the A-Type channel, add it
if dendK[2] is True:
self.soma.insert('kap');
self.soma.gkabar_kap = self.gka_base
for d in self.dends:
d.insert('na');
d.insert('kv'); d.gbar_kv = self.gkv_dend
d.insert('km'); d.gbar_km = self.gkm_dend
d.insert('kca'); d.gbar_kca = self.gkca_dend
d.insert('ca'); d.gbar_ca = self.gca_dend
d.insert('CaT'); d.gbar_CaT = self.git_dend
d.insert('CaDynamics');
d.gamma_CaDynamics = 1/self.caTau
d.decay_CaDynamics = self.caTau
d.depth_CaDynamics = self.caDepth
d.minCai_CaDynamics = self.caMinCai
#d.insert('cad');
d.ena = self.Ena
d.ek = self.Ek
d.eca = self.Eca
if dendNa[3] is True:
# Decay conductance exponentially
for seg in range(d.nseg):
segSpot = nfx.returnSegment(d.nseg,seg+1)
segDistance = h.distance(self.soma(1),d(segSpot))
gDecaySodium = np.exp(-segDistance/self.gna_Lambda)
d(segSpot).gbar_na = self.singleChannelNA*((dendNa[0]-dendNa[1])*gDecaySodium+dendNa[1]) # take proximal value and decay exponentially
else:
d.gbar_na = self.gna_dend
# Add K-A linearly with distance from soma
if dendK[2] is True:
d.insert('kap');
d.insert('kad');
for seg in range(d.nseg):
segSpot = nfx.returnSegment(d.nseg,seg+1)
segDistance = h.distance(self.soma(1),d(segSpot))
increaseAType = 1e-3 * segDistance / dendK[1] # increase 1mA/cm2 every 100µm of distance from soma
# Assume we're only using proximal version
d(segSpot).gkabar_kap = self.gka_base + increaseAType
d(segSpot).gkabar_kad = 0
# And switch to distal version at 100µm if requested
if dendK[3] is True and segDistance>100:
d(segSpot).gkabar_kap = 0
d(segSpot).gkabar_kad = self.gka_base + increaseAType
def returnElevAxim(cellID):
if cellID==0:
return None
elif cellID==1:
return None
def returnSecListL23(cellID):
secList = []
if cellID==0:
# Cat cell from Hausser Lab
secList.append("dend1_1")
secList.append("dend1_11")
secList.append("dend1_111")
secList.append("dend1_1111")
secList.append("dend1_1112")
secList.append("dend1_112")
secList.append("dend1_1121")
secList.append("dend1_1122")
secList.append("dend1_12")
secList.append("dend1_121")
secList.append("dend1_1211")
secList.append("dend1_1212")
secList.append("dend1_122")
secList.append("dend1_1221")
secList.append("dend1_1222")
secList.append("dend1_12221")
secList.append("dend1_12222")
secList.append("dend2_1")
secList.append("dend2_11")
secList.append("dend2_111")
secList.append("dend2_1111")
secList.append("dend2_1112")
secList.append("dend2_112")
secList.append("dend2_1121")
secList.append("dend2_1122")
secList.append("dend2_12")
secList.append("dend2_121")
secList.append("dend2_1211")
secList.append("dend2_12111")
secList.append("dend2_121111")
secList.append("dend2_121112")
secList.append("dend2_12112")
secList.append("dend2_121121")
secList.append("dend2_1211211")
secList.append("dend2_1211212")
secList.append("dend2_12112121")
secList.append("dend2_12112122")
secList.append("dend2_121122")
secList.append("dend2_1212")
secList.append("dend2_12121")
secList.append("dend2_121211")
secList.append("dend2_121212")
secList.append("dend2_12122")
secList.append("dend2_122")
secList.append("dend2_1221")
secList.append("dend2_12211")
secList.append("dend2_12212")
secList.append("dend2_1222")
secList.append("dend2_12221")
secList.append("dend2_12222")
secList.append("dend3_1")
secList.append("dend3_11")
secList.append("dend3_111")
secList.append("dend3_1111")
secList.append("dend3_1112")
secList.append("dend3_11121")
secList.append("dend3_11122")
secList.append("dend3_112")
secList.append("dend3_1121")
secList.append("dend3_1122")
secList.append("dend3_12")
secList.append("dend3_121")
secList.append("dend3_1211")
secList.append("dend3_1212")
secList.append("dend3_12121")
secList.append("dend3_12122")
secList.append("dend3_121221")
secList.append("dend3_121222")
secList.append("dend3_1212221")
secList.append("dend3_1212222")
secList.append("dend3_12122221")
secList.append("dend3_12122222")
secList.append("dend3_121222221")
secList.append("dend3_1212222211")
secList.append("dend3_12122222111")
secList.append("dend3_12122222112")
secList.append("dend3_1212222212")
secList.append("dend3_121222222")
secList.append("dend3_1212222221")
secList.append("dend3_1212222222")
secList.append("dend3_12122222221")
secList.append("dend3_12122222222")
secList.append("dend3_122")
secList.append("dend3_1221")
secList.append("dend3_12211")
secList.append("dend3_12212")
secList.append("dend3_1222")
secList.append("dend4_1")
secList.append("dend4_11")
secList.append("dend4_111")
secList.append("dend4_1111")
secList.append("dend4_1112")
secList.append("dend4_11121")
secList.append("dend4_11122")
secList.append("dend4_112")
secList.append("dend4_1121")
secList.append("dend4_1122")
secList.append("dend4_12")
secList.append("dend4_121")
secList.append("dend4_122")
secList.append("dend4_1221")
secList.append("dend4_1222")
secList.append("dend4_12221")
secList.append("dend4_12222")
elif cellID==1:
# EggerSchmitt Cell
secList.append("apical_1_0")
secList.append("apical_1_0_0")
secList.append("apical_1_0_0_0")
secList.append("apical_1_0_0_0_0")
secList.append("apical_1_0_0_0_1")
secList.append("apical_1_0_0_1")
secList.append("apical_1_0_0_1_0")
secList.append("apical_1_0_0_1_1")
secList.append("apical_1_0_0_1_1_0")
secList.append("apical_1_0_0_1_1_1")
secList.append("apical_1_0_1")
secList.append("apical_1_0_1_0")
secList.append("apical_1_0_1_0_0")
secList.append("apical_1_0_1_0_1")
secList.append("apical_1_0_1_1")
secList.append("apical_1_0_1_1_0")
secList.append("apical_1_0_1_1_0_0")
secList.append("apical_1_0_1_1_0_0_0")
secList.append("apical_1_0_1_1_0_0_1")
secList.append("apical_1_0_1_1_0_0_1_0")
secList.append("apical_1_0_1_1_0_0_1_1")
secList.append("apical_1_0_1_1_0_0_1_1_0")
secList.append("apical_1_0_1_1_0_0_1_1_0_0")
secList.append("apical_1_0_1_1_0_0_1_1_0_1")
secList.append("apical_1_0_1_1_0_0_1_1_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_0_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_0_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_1_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_1_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_1_1_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_0_1_1_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_1_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_1_0_0")
secList.append("apical_1_0_1_1_0_0_1_1_1_1_0_1")
secList.append("apical_1_0_1_1_0_0_1_1_1_1_1")
secList.append("apical_1_0_1_1_0_1")
secList.append("apical_1_0_1_1_0_1_0")
secList.append("apical_1_0_1_1_0_1_1")
secList.append("apical_1_0_1_1_1")
secList.append("apical_1_0_1_1_1_0")
secList.append("apical_1_0_1_1_1_1")
secList.append("dend_1_0")
secList.append("dend_1_0_0")
secList.append("dend_1_0_1")
secList.append("dend_1_0_1_0")
secList.append("dend_1_0_1_0_0")
secList.append("dend_1_0_1_0_1")
secList.append("dend_1_0_1_1")
secList.append("dend_1_0_1_1_0")
secList.append("dend_1_0_1_1_1")
secList.append("dend_2_0")
secList.append("dend_2_0_0")
secList.append("dend_2_0_0_0")
secList.append("dend_2_0_0_1")
secList.append("dend_2_0_1")
secList.append("dend_3_0")
secList.append("dend_4_0")
secList.append("dend_4_0_0")
secList.append("dend_4_0_0_0")
secList.append("dend_4_0_0_0_0")
secList.append("dend_4_0_0_0_0_0")
secList.append("dend_4_0_0_0_0_0_0")
secList.append("dend_4_0_0_0_0_0_0_0")
secList.append("dend_4_0_0_0_0_0_0_1")
secList.append("dend_4_0_0_0_0_0_1")
secList.append("dend_4_0_0_0_0_1")
secList.append("dend_4_0_0_0_0_1_0")
secList.append("dend_4_0_0_0_0_1_1")
secList.append("dend_4_0_0_0_1")
secList.append("dend_4_0_0_0_1_0")
secList.append("dend_4_0_0_0_1_1")
secList.append("dend_4_0_0_1")
secList.append("dend_4_0_0_1_0")
secList.append("dend_4_0_0_1_1")
secList.append("dend_4_0_1")
secList.append("dend_4_0_1_0")
secList.append("dend_4_0_1_0_0")
secList.append("dend_4_0_1_0_1")
secList.append("dend_4_0_1_0_1_0")
secList.append("dend_4_0_1_0_1_0_0")
secList.append("dend_4_0_1_0_1_0_0_0")
secList.append("dend_4_0_1_0_1_0_0_1")
secList.append("dend_4_0_1_0_1_0_1")
secList.append("dend_4_0_1_0_1_1")
secList.append("dend_4_0_1_1")
secList.append("dend_4_0_1_1_0")
secList.append("dend_4_0_1_1_0_0")
secList.append("dend_4_0_1_1_0_1")
secList.append("dend_4_0_1_1_0_1_0")
secList.append("dend_4_0_1_1_0_1_0_0")
secList.append("dend_4_0_1_1_0_1_0_1")
secList.append("dend_4_0_1_1_0_1_1")
secList.append("dend_4_0_1_1_1")
secList.append("dend_4_0_1_1_1_0")
secList.append("dend_4_0_1_1_1_1")
secList.append("dend_5_0")
secList.append("dend_5_0_0")
secList.append("dend_5_0_0_0")
secList.append("dend_5_0_0_0_0")
secList.append("dend_5_0_0_0_1")
secList.append("dend_5_0_0_1")
secList.append("dend_5_0_1")
secList.append("dend_5_0_1_0")
secList.append("dend_5_0_1_1")
secList.append("dend_5_0_1_1_0")
secList.append("dend_5_0_1_1_0_0")
secList.append("dend_5_0_1_1_0_1")
secList.append("dend_5_0_1_1_1")
secList.append("dend_5_0_1_1_1_0")
secList.append("dend_5_0_1_1_1_1")
secList.append("dend_6_0")
secList.append("dend_6_0_0")
secList.append("dend_6_0_0_0")
secList.append("dend_6_0_0_1")
secList.append("dend_6_0_1")
secList.append("dend_6_0_1_0")
secList.append("dend_6_0_1_1")
secList.append("dend_7_0")
secList.append("dend_7_0_0")
secList.append("dend_7_0_1")
secList.append("dend_8_0")
secList.append("dend_8_0_0")
secList.append("dend_8_0_0_0")
secList.append("dend_8_0_0_1")
secList.append("dend_8_0_1")
secList.append("dend_9_0")
secList.append("dend_9_0_0")
secList.append("dend_9_0_1")
elif cellID==2:
# Poleg-Polsky L23_1
secList.append("apic[0]")
secList.append("apic[1]")
secList.append("apic[2]")
secList.append("apic[3]")
secList.append("apic[4]")
secList.append("apic[5]")
secList.append("apic[6]")
secList.append("apic[7]")
secList.append("apic[8]")
secList.append("apic[9]")
secList.append("apic[10]")
secList.append("apic[11]")
secList.append("apic[12]")
secList.append("apic[13]")
secList.append("apic[14]")
secList.append("apic[15]")
secList.append("apic[16]")
secList.append("apic[17]")
secList.append("apic[18]")
secList.append("apic[19]")
secList.append("apic[20]")
secList.append("apic[21]")
secList.append("apic[22]")
secList.append("apic[23]")
secList.append("apic[24]")
secList.append("apic[25]")
secList.append("apic[26]")
secList.append("apic[27]")
secList.append("apic[28]")
secList.append("apic[29]")
secList.append("apic[30]")
secList.append("apic[31]")
secList.append("apic[32]")
secList.append("apic[33]")
secList.append("apic[34]")
secList.append("apic[35]")
secList.append("apic[36]")
secList.append("apic[37]")
secList.append("apic[38]")
secList.append("dend[0]")
secList.append("dend[1]")
secList.append("dend[2]")
secList.append("dend[3]")
secList.append("dend[4]")
secList.append("dend[5]")
secList.append("dend[6]")
secList.append("dend[7]")
secList.append("dend[8]")
secList.append("dend[9]")
secList.append("dend[10]")
secList.append("dend[11]")
secList.append("dend[12]")
secList.append("dend[13]")
secList.append("dend[14]")
secList.append("dend[15]")
secList.append("dend[16]")
secList.append("dend[17]")
secList.append("dend[18]")
secList.append("dend[19]")
secList.append("dend[20]")
secList.append("dend[21]")
secList.append("dend[22]")
secList.append("dend[23]")
secList.append("dend[24]")
secList.append("dend[25]")
secList.append("dend[26]")
secList.append("dend[27]")
secList.append("dend[28]")
elif cellID==3:
# Poleg-Polsky L23_2
secList.append("apic[0]")
secList.append("apic[1]")
secList.append("apic[2]")
secList.append("apic[3]")
secList.append("apic[4]")
secList.append("apic[5]")
secList.append("apic[6]")
secList.append("apic[7]")
secList.append("apic[8]")
secList.append("apic[9]")
secList.append("apic[10]")
secList.append("apic[11]")
secList.append("apic[12]")
secList.append("apic[13]")
secList.append("apic[14]")
secList.append("apic[15]")
secList.append("apic[16]")
secList.append("apic[17]")
secList.append("apic[18]")
secList.append("apic[19]")
secList.append("apic[20]")
secList.append("apic[21]")
secList.append("apic[22]")
secList.append("apic[23]")
secList.append("apic[24]")
secList.append("apic[25]")
secList.append("apic[26]")
secList.append("apic[27]")
secList.append("apic[28]")
secList.append("dend[0]")
secList.append("dend[1]")
secList.append("dend[2]")
secList.append("dend[3]")
secList.append("dend[4]")
secList.append("dend[5]")
secList.append("dend[6]")
secList.append("dend[7]")
secList.append("dend[8]")
secList.append("dend[9]")
secList.append("dend[10]")
secList.append("dend[11]")
secList.append("dend[12]")
secList.append("dend[13]")
secList.append("dend[14]")
elif cellID==4:
# Poleg-Polsky L23_3
secList.append("dend[0]")
secList.append("dend[1]")
secList.append("dend[2]")
secList.append("dend[3]")
secList.append("dend[4]")
secList.append("dend[5]")
secList.append("dend[6]")
secList.append("dend[7]")
secList.append("dend[8]")
secList.append("dend[9]")
secList.append("dend[10]")
secList.append("dend[11]")
secList.append("dend[12]")
secList.append("dend[13]")
secList.append("dend[14]")
secList.append("dend[15]")
secList.append("dend[16]")
secList.append("dend[17]")
secList.append("dend[18]")
secList.append("dend[19]")
secList.append("dend[20]")
secList.append("dend[21]")
secList.append("dend[22]")
secList.append("dend[23]")
secList.append("dend[24]")
secList.append("dend[25]")
secList.append("dend[26]")
secList.append("dend[27]")
secList.append("dend[28]")
secList.append("dend[29]")
secList.append("dend[30]")
secList.append("dend[31]")
secList.append("dend[32]")
secList.append("apic[0]")
secList.append("apic[1]")
secList.append("apic[2]")
secList.append("apic[3]")
secList.append("apic[4]")
secList.append("apic[5]")
secList.append("apic[6]")
secList.append("apic[7]")
secList.append("apic[8]")
secList.append("apic[9]")
secList.append("apic[10]")
secList.append("apic[11]")
secList.append("apic[12]")
secList.append("apic[13]")
secList.append("apic[14]")
secList.append("apic[15]")
secList.append("apic[16]")
secList.append("apic[17]")
secList.append("apic[18]")
elif cellID==5:
# Poleg-Polsky L23_4
secList.append("dend[0]")
secList.append("dend[1]")
secList.append("dend[2]")
secList.append("dend[3]")
secList.append("dend[4]")
secList.append("dend[5]")
secList.append("dend[6]")
secList.append("dend[7]")
secList.append("dend[8]")
secList.append("dend[9]")
secList.append("dend[10]")
secList.append("dend[11]")
secList.append("dend[12]")
secList.append("dend[13]")
secList.append("dend[14]")
secList.append("dend[15]")
secList.append("dend[16]")
secList.append("dend[17]")
secList.append("dend[18]")
secList.append("dend[19]")
secList.append("dend[20]")
secList.append("dend[21]")
secList.append("dend[22]")
secList.append("dend[23]")
secList.append("dend[24]")
secList.append("dend[25]")
secList.append("dend[26]")
secList.append("dend[27]")
secList.append("dend[28]")
secList.append("dend[29]")
secList.append("dend[30]")
secList.append("dend[31]")
secList.append("dend[32]")
secList.append("dend[33]")
secList.append("dend[34]")
secList.append("dend[35]")
secList.append("dend[36]")
secList.append("dend[37]")
secList.append("dend[38]")
secList.append("dend[39]")
secList.append("dend[40]")
secList.append("dend[41]")
secList.append("dend[42]")
secList.append("dend[43]")
secList.append("dend[44]")
secList.append("dend[45]")
secList.append("dend[46]")
secList.append("dend[47]")
secList.append("dend[48]")
secList.append("dend[49]")
secList.append("dend[50]")
secList.append("dend[51]")
secList.append("dend[52]")
secList.append("dend[53]")
secList.append("dend[54]")
secList.append("dend[55]")
secList.append("dend[56]")
secList.append("dend[57]")
secList.append("dend[58]")
secList.append("dend[59]")
secList.append("dend[60]")
secList.append("dend[61]")
secList.append("dend[62]")
secList.append("dend[63]")
secList.append("dend[64]")
secList.append("dend[65]")
secList.append("dend[66]")
secList.append("dend[67]")
secList.append("dend[68]")
secList.append("dend[69]")
secList.append("dend[70]")
secList.append("dend[71]")
secList.append("dend[72]")
secList.append("dend[73]")
secList.append("dend[74]")
secList.append("dend[75]")
secList.append("dend[76]")
secList.append("dend[77]")
secList.append("dend[78]")
secList.append("dend[79]")
secList.append("dend[80]")
secList.append("dend[81]")
secList.append("dend[82]")
secList.append("dend[83]")
secList.append("dend[84]")
secList.append("dend[85]")
secList.append("dend[86]")
secList.append("dend[87]")
secList.append("dend[88]")
secList.append("dend[89]")
return secList