|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# -*- coding: utf-8 -*-
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
A very generic case where the same morphology on different file formats
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
is loaded in LFPy using a generic template specification, defined by
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
file LFPyCellTemplate.hoc
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
Execution:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
python example_LFPyCellTemplate.py
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
Copyright (C) 2017 Computational Neuroscience Group, NMBU.
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
This program is free software: you can redistribute it and/or modify
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
it under the terms of the GNU General Public License as published by
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
the Free Software Foundation, either version 3 of the License, or
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
(at your option) any later version.
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
This program is distributed in the hope that it will be useful,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
GNU General Public License for more details.
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import LFPy
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import neuron
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import numpy as np
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import matplotlib.pyplot as plt
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#A plottin' function
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
def plotcell(cell, color='k'):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for sec in cell.template.all:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
idx = cell.get_idx(sec.name())
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.plot(np.r_[cell.xstart[idx], cell.xend[idx][-1]],
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
np.r_[cell.zstart[idx], cell.zend[idx][-1]],
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
color=color)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
print(' ')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#delete cell instances from previous script executions,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
neuron.h('forall delete_section()')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#create some cell instances, set the positions, plot the morphologies
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell1 = LFPy.TemplateCell(
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
morphology='morphologies/markram/CNG version/C010398B-P2.CNG.swc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatefile='LFPyCellTemplate.hoc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatename='LFPyCellTemplate',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templateargs=None)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell1.set_pos(0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plotcell(cell=cell1, color='r')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell2 = LFPy.TemplateCell(
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
morphology='morphologies/markram/Source-Version/C010398B-P2.asc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatefile='LFPyCellTemplate.hoc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatename='LFPyCellTemplate',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templateargs=None)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell2.set_pos(200)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plotcell(cell=cell2, color='g')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell3 = LFPy.TemplateCell(
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
morphology='morphologies/markram/hoc-version/C010398B-P2.hoc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatefile='LFPyCellTemplate.hoc',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templatename='LFPyCellTemplate',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
templateargs=None)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell3.set_pos(400)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plotcell(cell=cell3, color='b')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.show()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|