|
![](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 |
LFPs from a population of cells relying on MPI (Message Passing Interface)
|
|
![](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 |
<mpiexec> -n <processes> python example_mpi_2.py
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
Notes:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
- on certain platforms and with mpirun, the --oversubscribe argument is needed
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
to get more processes than the number of physical CPU cores.
|
|
![](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 |
|
|
![](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 |
from matplotlib.collections import PolyCollection, LineCollection
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import os
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
from os.path import join
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import sys
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if sys.version < '3':
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
from urllib2 import urlopen
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
from urllib.request import urlopen
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
import zipfile
|
|
![](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 |
from mpi4py import MPI
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#initialize the MPI interface
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
COMM = MPI.COMM_WORLD
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
SIZE = COMM.Get_size()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
RANK = COMM.Get_rank()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#set the numpy random seeds
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
global_seed = 1234
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
np.random.seed(global_seed)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
def stationary_poisson(nsyn,lambd,tstart,tstop):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
''' Generates nsyn stationary possion processes with rate lambda between tstart and tstop'''
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
interval_s = (tstop-tstart)*.001
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spiketimes = []
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i in range(nsyn):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spikecount = np.random.poisson(interval_s*lambd)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spikevec = np.empty(spikecount)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if spikecount==0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spiketimes.append(spikevec)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spikevec = tstart + (tstop-tstart)*np.random.random(spikecount)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spiketimes.append(np.sort(spikevec)) #sort them too!
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
return spiketimes
|
|
![](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 |
#Fetch Mainen&Sejnowski 1996 model files
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if not os.path.isfile(join('cells', 'cells', 'j4a.hoc')) and RANK==0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#get the model files:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
u = urlopen('http://senselab.med.yale.edu/ModelDB/eavBinDown.asp?o=2488&a=23&mime=application/zip')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
localFile = open('patdemo.zip', 'w')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
localFile.write(u.read())
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
localFile.close()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#unzip:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
myzip = zipfile.ZipFile('patdemo.zip', 'r')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
myzip.extractall('.')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
myzip.close()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#resync MPI threads
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
COMM.Barrier()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# Define cell parameters
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell_parameters = { # various cell parameters,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'morphology' : join('cells', 'cells', 'j4a.hoc'), # Mainen&Sejnowski, 1996
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'cm' : 1.0, # membrane capacitance
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'Ra' : 150, # axial resistance
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'v_init' : -65., # initial crossmembrane potential
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'passive' : True, # turn on passive mechanism for all sections
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'passive_parameters' : {'g_pas' : 1./30000, 'e_pas' : -65}, # passive params
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'nsegs_method' : 'lambda_f',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'lambda_f' : 100.,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'dt' : 2.**-3, # simulation time step size
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'tstart' : 0., # start time of simulation, recorders start at t=0
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'tstop' : 300., # stop simulation at 200 ms. These can be overridden
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# by setting these arguments i cell.simulation()
|
|
![](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 |
# Define synapse parameters
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
synapse_parameters = {
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'idx' : 0, # to be set later
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'e' : 0., # reversal potential
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'syntype' : 'ExpSyn', # synapse type
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'tau' : 5., # syn. time constant
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'weight' : .001, # syn. weight
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'record_current' : True,
|
|
![](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 |
# Define electrode parameters
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
point_electrode_parameters = {
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'sigma' : 0.3, # extracellular conductivity
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'x' : 0., # electrode requires 1d vector of positions
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'y' : 0.,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
'z' : 0.,
|
|
![](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 |
# number of units
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
n_cells = 6
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# assign cell positions
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
x_cell_pos = np.linspace(-250., 250., n_cells)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# default rotation around x and y axis
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
xy_rotations = dict(x=4.99, y=-4.33)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# rotations around z-axis
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK == 0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
z_rotation = COMM.bcast(np.random.permutation(np.arange(0., np.pi,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
np.pi / n_cells)),
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
root=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
z_rotation = COMM.bcast(None, root=0)
|
|
![](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 |
#synaptic spike times drawn on RANK 0 distributed to all processes
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
n_pre_syn = 1000
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK == 0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_sptimes = COMM.bcast(stationary_poisson(nsyn=n_pre_syn, lambd=5.,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
tstart=0, tstop=300),
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
root=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_sptimes = COMM.bcast(None, root=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# number of synapses on each cell
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
n_synapses = 100
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# indices for presynaptic spike trains for each neuron also picked on RANK 0
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# and scattered (for illustrating purposes, not efficiency)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK == 0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# set up len SIZE nested list for spike train IDs.
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_ids = [[]]*SIZE
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for cell_id in range(n_cells):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_ids[cell_id % SIZE] += [np.random.permutation(np.arange(
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
n_pre_syn))[0:n_synapses]]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_ids = None
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pre_syn_ids = COMM.scatter(pre_syn_ids, root=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# containers for per-cell LFP and summed LFPs
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
single_LFPs = []
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
summed_LFP = np.zeros(int(cell_parameters['tstop'] / cell_parameters['dt'] + 1))
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# get state of random seed generator
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
state = np.random.get_state()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# iterate over cells in populations
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for cell_id in range(n_cells):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if cell_id % SIZE == RANK:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# get set seed per cell in order to synapse locations
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
np.random.seed(global_seed + cell_id)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# Create cell
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell = LFPy.Cell(**cell_parameters)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#Have to position and rotate the cells!
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell.set_rotation(z=z_rotation[cell_id], **xy_rotations)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell.set_pos(x=x_cell_pos[cell_id])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i_syn in range(n_synapses):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
syn_idx = cell.get_rand_idx_area_norm()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
synapse_parameters.update({'idx' : syn_idx})
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
synapse = LFPy.Synapse(cell, **synapse_parameters)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
synapse.set_spike_times(pre_syn_sptimes[pre_syn_ids[
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell_id % SIZE][i_syn]])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#run the cell simulation
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell.simulate(rec_imem=True)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#set up the extracellular device
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
point_electrode = LFPy.RecExtElectrode(cell,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
**point_electrode_parameters)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
point_electrode.calc_lfp()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# sum LFP on this RANK
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
summed_LFP += point_electrode.LFP[0]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# send LFP of this cell to RANK 0
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK != 0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
COMM.send(point_electrode.LFP[0], dest=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
else:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
single_LFPs += [point_electrode.LFP[0]]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# collect single LFP contributions on RANK 0
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK == 0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if cell_id % SIZE != RANK:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
single_LFPs += [COMM.recv(source=cell_id % SIZE)]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# we can also use MPI to sum arrays directly:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
summed_LFP = COMM.reduce(summed_LFP)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# reset state of random number generator
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
np.random.set_state(state)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# plot output on RANK 0.
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if RANK==0:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#assign color to each unit
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
color_vec = [plt.cm.rainbow(int(x*256./n_cells)) for x in range(n_cells)]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#figure
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
fig = plt.figure(figsize=(12, 8))
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
# Morphologies axes:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axes([.175, .0, .65, 1], aspect='equal')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axis('off')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i_cell in range(n_cells):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell = LFPy.Cell(join('cells', 'cells', 'j4a.hoc'),
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
nsegs_method='lambda_f',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
lambda_f=5)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell.set_rotation(z=z_rotation[i_cell], **xy_rotations)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell.set_pos(x=x_cell_pos[i_cell])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
zips = []
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for x, z in cell.get_idx_polygons():
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
zips.append(list(zip(x, z)))
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
linecol = LineCollection(zips,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
edgecolor = 'none',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
facecolor = color_vec[i_cell],
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
rasterized=False,
|
|
![](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 |
ax = plt.gca()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.add_collection(linecol)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
axis = ax.axis(ax.axis('equal'))
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.axis(np.array(axis) / 1.15)
|
|
![](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 |
#adding a blue dot:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.plot(point_electrode.x, point_electrode.z, 'o',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
markeredgecolor='none', markerfacecolor='b', markersize=3,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
zorder=10, clip_on=False)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.annotate("Electrode",
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
xy=(0., 0.), xycoords='data',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
xytext=(-100., 1000.),
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
arrowprops=dict(arrowstyle='wedge',
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
shrinkA=1,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
shrinkB=1,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#lw=0.5,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
mutation_scale=20,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
fc="0.6", ec="none",
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
edgecolor='k', facecolor='w'))
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.xlim([-700., 700.])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.plot([100, 200], [-250, -250], 'k', lw=1, clip_on=False)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.text(150, -300, r'100$\mu$m', va='center', ha='center')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#presynaptic spike trains axes
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axes([.05, .35, .25, .55])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pop_sptimes = []
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i_pre in range(n_pre_syn):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
sp = pre_syn_sptimes[i_pre]
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i_sp in range(len(sp)):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
pop_sptimes.append(sp[i_sp])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for i_pre in range(n_pre_syn):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.scatter(pre_syn_sptimes[i_pre],
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
i_pre*np.ones(len(pre_syn_sptimes[i_pre])),
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
s=1, edgecolors='none', facecolors='k')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylim([0,n_pre_syn])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.xlim([0,cell_parameters['tstop']])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylabel('train #', ha='left', labelpad=0)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.title('Presynaptic spike times')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax = plt.gca()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for loc, spine in ax.spines.items():
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if loc in ['right', 'top']:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spine.set_color('none')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.xaxis.set_ticks_position('bottom')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.yaxis.set_ticks_position('left')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.set_xticklabels([])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#spike rate axes
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axes([.05,.12,.25,.2])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
binsize = 5
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
bins=np.arange(0, cell_parameters['tstop']+1., binsize)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
count,b = np.histogram(pop_sptimes, bins=bins)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
rate = count*(1000./binsize)*(1./n_pre_syn)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.plot(b[0:-1],rate,color='black',lw=1)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.xlim([0,cell_parameters['tstop']])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylim([0,10.])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
tvec = np.arange(point_electrode.LFP.shape[1])*cell.dt
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.xlabel('$t$ (ms)')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylabel('Rate (spike/s)')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax = plt.gca()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for loc, spine in ax.spines.items():
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if loc in ['right', 'top']:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spine.set_color('none')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.xaxis.set_ticks_position('bottom')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.yaxis.set_ticks_position('left')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#single neuron EPs axes
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axes([.7,.35,.25,.55])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.title('Single neuron extracellular potentials')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axis('off')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for cell_id in range(n_cells):
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.plot(tvec,
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
cell_id+2.e3*single_LFPs[cell_id],
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
color=color_vec[cell_id], lw=1,
|
|
![](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 |
plt.ylim([-1,n_cells-.5])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
#Summed LFPs axes
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.axes([.7,.12,.25,.2])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.plot(tvec, 1E3*summed_LFP, color='black', lw=1)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylim([-5.e-1,5e-1])
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.title('Summed extracellular potentials')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.xlabel(r'$t$ (ms)')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.ylabel(r'$\mu$V',ha='left',rotation='horizontal')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax = plt.gca()
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
for loc, spine in ax.spines.items():
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
if loc in ['right', 'top']:
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
spine.set_color('none')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.xaxis.set_ticks_position('bottom')
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
ax.yaxis.set_ticks_position('left')
|
|
![](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 |
fig.savefig('example_mpi_2.pdf', dpi=300)
|
|
![](https://seccdn.libravatar.org/avatar/5bd1084ba3c410e1218065d166e726101cd2f8167f2ac85e81fd841d128703ef?s=16&d=retro) |
7d68d07 |
plt.show()
|