diff --git a/PySONIC.sublime-project b/PySONIC.sublime-project index 4c82066..9f884ae 100644 --- a/PySONIC.sublime-project +++ b/PySONIC.sublime-project @@ -1,53 +1,53 @@ { "build_systems": [ { "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "name": "Anaconda Python Builder", "selector": "source.python", - "shell_cmd": "\"python\" -u \"$file\"" + "shell_cmd": "\"C:\\Users\\lemaire\\Anaconda3\\python.exe\" -u \"$file\"" } ], "folders": [ { "file_exclude_patterns": [ "*.sublime-workspace", "MANIFEST.in", "LICENSE", "conf.py", "index.rst", "*.gitignore", "__init__.py", "*.c", "*.sh", "*.bat", "Makefile", "*.pkl" ], "folder_exclude_patterns": [ "docs", "*.egg-info", ".ipynb_checkpoints", "_build", "_static", "_templates", "__pycache__" ], "path": "." } ], "settings": { "anaconda_linting": true, "anaconda_linting_behaviour": "always", "pep257": false, "python_interpreter": "C:\\Users\\lemaire\\Anaconda3\\python.exe", "test_command": "python -m unittest discover", "use_pylint": false, "validate_imports": true }, "translate_tabs_to_spaces": true } diff --git a/PySONIC/core/nbls.py b/PySONIC/core/nbls.py index bc1aff7..c99e478 100644 --- a/PySONIC/core/nbls.py +++ b/PySONIC/core/nbls.py @@ -1,702 +1,701 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2016-09-29 16:16:19 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-10 16:18:39 +# @Last Modified time: 2019-06-12 12:13:32 from copy import deepcopy import logging import numpy as np import pandas as pd from scipy.interpolate import interp1d from scipy.integrate import solve_ivp from .simulators import PWSimulator, HybridSimulator, PeriodicSimulator from .bls import BilayerSonophore from .pneuron import PointNeuron from .model import Model from .batches import createQueue from ..neurons import getLookups2D, getLookupsDCavg from ..utils import * from ..constants import * from ..postpro import getFixedPoints class NeuronalBilayerSonophore(BilayerSonophore): ''' This class inherits from the BilayerSonophore class and receives an PointNeuron instance at initialization, to define the electro-mechanical NICE model and its SONIC variant. ''' tscale = 'ms' # relevant temporal scale of the model simkey = 'ASTIM' # keyword used to characterize simulations made with this model - def __init__(self, a, neuron, Fdrive=None, embedding_depth=0.0): + def __init__(self, a, pneuron, Fdrive=None, embedding_depth=0.0): ''' Constructor of the class. :param a: in-plane radius of the sonophore structure within the membrane (m) - :param neuron: neuron object + :param pneuron: point-neuron object :param Fdrive: frequency of acoustic perturbation (Hz) :param embedding_depth: depth of the embedding tissue around the membrane (m) ''' # Check validity of input parameters - if not isinstance(neuron, PointNeuron): + if not isinstance(pneuron, PointNeuron): raise ValueError('Invalid neuron type: "{}" (must inherit from PointNeuron class)' - .format(neuron.name)) - self.neuron = neuron + .format(pneuron.name)) + self.pneuron = pneuron # Initialize BilayerSonophore parent object - BilayerSonophore.__init__(self, a, neuron.Cm0, neuron.Cm0 * neuron.Vm0 * 1e-3, - embedding_depth) + BilayerSonophore.__init__(self, a, pneuron.Cm0, pneuron.Qm0, embedding_depth) def __repr__(self): - s = '{}({:.1f} nm, {}'.format(self.__class__.__name__, self.a * 1e9, self.neuron) + s = '{}({:.1f} nm, {}'.format(self.__class__.__name__, self.a * 1e9, self.pneuron) if self.d > 0.: s += ', d={}m'.format(si_format(self.d, precision=1, space=' ')) return s + ')' def params(self): params = super().params() - params.update(self.neuron.params()) + params.update(self.pneuron.params()) return params def getPltVars(self, wrapleft='df["', wrapright='"]'): pltvars = super().getPltVars(wrapleft, wrapright) - pltvars.update(self.neuron.getPltVars(wrapleft, wrapright)) + pltvars.update(self.pneuron.getPltVars(wrapleft, wrapright)) return pltvars def getPltScheme(self): - return self.neuron.getPltScheme() + return self.pneuron.getPltScheme() def filecode(self, *args): return Model.filecode(self, *args) def filecodes(self, Fdrive, Adrive, tstim, toffset, PRF, DC, method='sonic'): # Get parent codes and supress irrelevant entries bls_codes = super().filecodes(Fdrive, Adrive, 0.0) - neuron_codes = self.neuron.filecodes(0.0, tstim, toffset, PRF, DC) - for x in [bls_codes, neuron_codes]: + pneuron_codes = self.pneuron.filecodes(0.0, tstim, toffset, PRF, DC) + for x in [bls_codes, pneuron_codes]: del x['simkey'] del bls_codes['Qm'] - del neuron_codes['Astim'] + del pneuron_codes['Astim'] # Fill in current codes in appropriate order codes = { 'simkey': self.simkey, - 'neuron': neuron_codes.pop('neuron'), - 'nature': neuron_codes.pop('nature') + 'neuron': pneuron_codes.pop('neuron'), + 'nature': pneuron_codes.pop('nature') } codes.update(bls_codes) - codes.update(neuron_codes) + codes.update(pneuron_codes) codes['method'] = method return codes def fullDerivatives(self, t, y, Adrive, Fdrive, phi): ''' Compute the derivatives of the (n+3) ODE full NBLS system variables. :param t: specific instant in time (s) :param y: vector of state variables :param Adrive: acoustic drive amplitude (Pa) :param Fdrive: acoustic drive frequency (Hz) :param phi: acoustic drive phase (rad) :return: vector of derivatives ''' dydt_mech = BilayerSonophore.derivatives(self, y[:3], t, Adrive, Fdrive, y[3], phi) - dydt_elec = self.neuron.Qderivatives(y[3:], t, self.Capct(y[1])) + dydt_elec = self.pneuron.Qderivatives(y[3:], t, self.Capct(y[1])) return dydt_mech + dydt_elec def effDerivatives(self, t, y, lkp): ''' Compute the derivatives of the n-ODE effective HH system variables, based on 1-dimensional linear interpolation of "effective" coefficients that summarize the system's behaviour over an acoustic cycle. :param t: specific instant in time (s) :param y: vector of HH system variables at time t :param lkp: dictionary of 1D data points of "effective" coefficients over the charge domain, for specific frequency and amplitude values. :return: vector of effective system derivatives at time t ''' # Split input vector explicitly Qm, *states = y # Compute charge and channel states variation - Vmeff = self.neuron.interpVmeff(Qm, lkp) - dQmdt = - self.neuron.iNet(Vmeff, states) * 1e-3 - dstates = self.neuron.derEffStates(Qm, states, lkp) + Vmeff = self.pneuron.interpVmeff(Qm, lkp) + dQmdt = - self.pneuron.iNet(Vmeff, states) * 1e-3 + dstates = self.pneuron.derEffStates(Qm, states, lkp) # Return derivatives vector - return [dQmdt, *[dstates[k] for k in self.neuron.states]] + return [dQmdt, *[dstates[k] for k in self.pneuron.states]] def interpEffVariable(self, key, Qm, stim, lkps1D): ''' Interpolate Q-dependent effective variable along solution. :param key: lookup variable key :param Qm: charge density solution vector :param stim: stimulation state solution vector :param lkps1D: dictionary of lookups for ON and OFF states :return: interpolated effective variable vector ''' x = np.zeros(stim.size) x[stim == 0] = np.interp( Qm[stim == 0], lkps1D['OFF']['Q'], lkps1D['OFF'][key], left=np.nan, right=np.nan) x[stim == 1] = np.interp( Qm[stim == 1], lkps1D['ON']['Q'], lkps1D['ON'][key], left=np.nan, right=np.nan) return x def runFull(self, Fdrive, Adrive, tstim, toffset, PRF, DC, phi=np.pi): ''' Compute solutions of the full electro-mechanical system for a specific set of US stimulation parameters, using a classic integration scheme. The first iteration uses the quasi-steady simplification to compute the initiation of motion from a flat leaflet configuration. Afterwards, the ODE system is solved iteratively until completion. :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param tstim: duration of US stimulation (s) :param toffset: duration of the offset (s) :param PRF: pulse repetition frequency (Hz) :param DC: pulse duty cycle (-) :param phi: acoustic drive phase (rad) :return: 2-tuple with the output dataframe and computation time. ''' # Determine time step dt = 1 / (NPC_FULL * Fdrive) # Compute non-zero deflection value for a small perturbation (solving quasi-steady equation) Pac = self.Pacoustic(dt, Adrive, Fdrive, phi) Z0 = self.balancedefQS(self.ng0, self.Qm0, Pac) # Set initial conditions - steady_states = self.neuron.steadyStates(self.neuron.Vm0) + steady_states = self.pneuron.steadyStates(self.pneuron.Vm0) y0 = np.concatenate(( [0., Z0, self.ng0, self.Qm0], - [steady_states[k] for k in self.neuron.states])) + [steady_states[k] for k in self.pneuron.states])) # Initialize simulator and compute solution logger.debug('Computing detailed solution') simulator = PWSimulator( lambda t, y: self.fullDerivatives(t, y, Adrive, Fdrive, phi), lambda t, y: self.fullDerivatives(t, y, 0., 0., 0.)) (t, y, stim), tcomp = simulator( y0, dt, tstim, toffset, PRF, DC, print_progress=logger.getEffectiveLevel() <= logging.INFO, target_dt=CLASSIC_TARGET_DT, monitor_time=True) logger.debug('completed in %ss', si_format(tcomp, 1)) # Store output in dataframe data = pd.DataFrame({ 't': t, 'stimstate': stim, 'Z': y[:, 1], 'ng': y[:, 2], 'Qm': y[:, 3] }) data['Vm'] = data['Qm'].values / self.v_Capct(data['Z'].values) * 1e3 # mV - for i in range(len(self.neuron.states)): - data[self.neuron.states[i]] = y[:, i + 4] + for i in range(len(self.pneuron.states)): + data[self.pneuron.states[i]] = y[:, i + 4] # Return dataframe and computation time return data, tcomp def runHybrid(self, Fdrive, Adrive, tstim, toffset, PRF, DC, phi=np.pi): ''' Compute solutions of the system for a specific set of US stimulation parameters, using a hybrid integration scheme. :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param tstim: duration of US stimulation (s) :param toffset: duration of the offset (s) :param phi: acoustic drive phase (rad) :return: 3-tuple with the time profile, the solution matrix and a state vector ''' # Determine time steps dt_dense, dt_sparse = [1. / (n * Fdrive) for n in [NPC_FULL, NPC_HH]] # Compute non-zero deflection value for a small perturbation (solving quasi-steady equation) Pac = self.Pacoustic(dt_dense, Adrive, Fdrive, phi) Z0 = self.balancedefQS(self.ng0, self.Qm0, Pac) # Set initial conditions - steady_states = self.neuron.steadyStates(self.neuron.Vm0) + steady_states = self.pneuron.steadyStates(self.pneuron.Vm0) y0 = np.concatenate(( [0., Z0, self.ng0, self.Qm0], - [steady_states[k] for k in self.neuron.states], + [steady_states[k] for k in self.pneuron.states], )) - is_dense_var = np.array([True] * 3 + [False] * (len(self.neuron.states) + 1)) + is_dense_var = np.array([True] * 3 + [False] * (len(self.pneuron.states) + 1)) # Initialize simulator and compute solution logger.debug('Computing hybrid solution') simulator = HybridSimulator( lambda t, y: self.fullDerivatives(t, y, Adrive, Fdrive, phi), lambda t, y: self.fullDerivatives(t, y, 0., 0., 0.), - lambda t, y, Cm: self.neuron.Qderivatives(t, y, Cm), + lambda t, y, Cm: self.pneuron.Qderivatives(t, y, Cm), lambda yref: self.Capct(yref[1]), is_dense_var, ivars_to_check=[1, 2]) (t, y, stim), tcomp = simulator( y0, dt_dense, dt_sparse, 1. / Fdrive, tstim, toffset, PRF, DC, monitor_time=True) logger.debug('completed in %ss', si_format(tcomp, 1)) # Store output in dataframe data = pd.DataFrame({ 't': t, 'stimstate': stim, 'Z': y[:, 1], 'ng': y[:, 2], 'Qm': y[:, 3] }) data['Vm'] = data['Qm'].values / self.v_Capct(data['Z'].values) * 1e3 # mV - for i in range(len(self.neuron.states)): - data[self.neuron.states[i]] = y[:, i + 4] + for i in range(len(self.pneuron.states)): + data[self.pneuron.states[i]] = y[:, i + 4] # Return dataframe and computation time return data, tcomp def computeEffVars(self, Fdrive, Adrive, Qm, fs): ''' Compute "effective" coefficients of the HH system for a specific combination of stimulus frequency, stimulus amplitude and charge density. A short mechanical simulation is run while imposing the specific charge density, until periodic stabilization. The HH coefficients are then averaged over the last acoustic cycle to yield "effective" coefficients. :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param Qm: imposed charge density (C/m2) :param fs: list of sonophore membrane coverage fractions :return: list with computation time and a list of dictionaries of effective variables ''' # Run simulation and retrieve deflection and gas content vectors from last cycle data, tcomp = BilayerSonophore.simulate(self, Fdrive, Adrive, Qm) Z_last = data.loc[-NPC_FULL:, 'Z'].values # m Cm_last = self.v_Capct(Z_last) # F/m2 # For each coverage fraction effvars = [] for x in fs: # Compute membrane capacitance and membrane potential vectors Cm = x * Cm_last + (1 - x) * self.Cm0 # F/m2 Vm = Qm / Cm * 1e3 # mV # Compute average cycle value for membrane potential and rate constants effvars.append({'V': np.mean(Vm)}) - effvars[-1].update(self.neuron.computeEffRates(Vm)) + effvars[-1].update(self.pneuron.computeEffRates(Vm)) # Log process log = '{}: lookups @ {}Hz, {}Pa, {:.2f} nC/cm2'.format( self, *si_format([Fdrive, Adrive], precision=1, space=' '), Qm * 1e5) if len(fs) > 1: log += ', fs = {:.0f} - {:.0f}%'.format(fs.min() * 1e2, fs.max() * 1e2) log += ', tcomp = {:.3f} s'.format(tcomp) logger.info(log) # Return effective coefficients return [tcomp, effvars] def runSONIC(self, Fdrive, Adrive, tstim, toffset, PRF, DC): ''' Compute solutions of the system for a specific set of US stimulation parameters, using charge-predicted "effective" coefficients to solve the HH equations at each step. :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param tstim: duration of US stimulation (s) :param toffset: duration of the offset (s) :param PRF: pulse repetition frequency (Hz) :param DC: pulse duty cycle (-) :return: 3-tuple with the time profile, the effective solution matrix and a state vector ''' # Load appropriate 2D lookups - Aref, Qref, lkps2D, _ = getLookups2D(self.neuron.name, a=self.a, Fdrive=Fdrive) + Aref, Qref, lkps2D, _ = getLookups2D(self.pneuron.name, a=self.a, Fdrive=Fdrive) # Check that acoustic amplitude is within lookup range Adrive = isWithin('amplitude', Adrive, (Aref.min(), Aref.max())) # Interpolate 2D lookups at zero and US amplitude logger.debug('Interpolating lookups at A = %.2f kPa and A = 0', Adrive * 1e-3) lkps1D = {state: {key: interp1d(Aref, y2D, axis=0)(val) for key, y2D in lkps2D.items()} for state, val in {'ON': Adrive, 'OFF': 0.}.items()} # Add reference charge vector to 1D lookup dictionaries for state in lkps1D.keys(): lkps1D[state]['Q'] = Qref # Set initial conditions - steady_states = self.neuron.steadyStates(self.neuron.Vm0) - y0 = np.insert(np.array([steady_states[k] for k in self.neuron.states]), 0, self.Qm0) + steady_states = self.pneuron.steadyStates(self.pneuron.Vm0) + y0 = np.insert(np.array([steady_states[k] for k in self.pneuron.states]), 0, self.Qm0) # Initialize simulator and compute solution logger.debug('Computing effective solution') simulator = PWSimulator( lambda t, y: self.effDerivatives(t, y, lkps1D['ON']), lambda t, y: self.effDerivatives(t, y, lkps1D['OFF'])) (t, y, stim), tcomp = simulator(y0, DT_EFF, tstim, toffset, PRF, DC, monitor_time=True) logger.debug('completed in %ss', si_format(tcomp, 1)) # Store output in dataframe data = pd.DataFrame({ 't': t, 'stimstate': stim, 'Qm': y[:, 0] }) data['Vm'] = self.interpEffVariable('V', data['Qm'].values, stim, lkps1D) for key in ['Z', 'ng']: data[key] = np.full(t.size, np.nan) - for i in range(len(self.neuron.states)): - data[self.neuron.states[i]] = y[:, i + 1] + for i in range(len(self.pneuron.states)): + data[self.pneuron.states[i]] = y[:, i + 1] # Return dataframe and computation time return data, tcomp def meta(self, Fdrive, Adrive, tstim, toffset, PRF, DC, method): ''' Return information about object and simulation parameters. :param Fdrive: US frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param tstim: stimulus duration (s) :param toffset: stimulus offset (s) :param PRF: pulse repetition frequency (Hz) :param DC: stimulus duty cycle (-) :param method: integration method :return: meta-data dictionary ''' return { - 'neuron': self.neuron.name, + 'neuron': self.pneuron.name, 'a': self.a, 'd': self.d, 'Fdrive': Fdrive, 'Adrive': Adrive, 'tstim': tstim, 'toffset': toffset, 'PRF': PRF, 'DC': DC, 'method': method } def simulate(self, Fdrive, Adrive, tstim, toffset, PRF=100., DC=1.0, method='sonic'): ''' Simulate the electro-mechanical model for a specific set of US stimulation parameters, and return output data in a dataframe. :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic drive amplitude (Pa) :param tstim: duration of US stimulation (s) :param toffset: duration of the offset (s) :param PRF: pulse repetition frequency (Hz) :param DC: pulse duty cycle (-) :param method: selected integration method :return: 2-tuple with the output dataframe and computation time. ''' logger.info( '%s: simulation @ f = %sHz, A = %sPa, t = %ss (%ss offset)%s', self, si_format(Fdrive, 0, space=' '), si_format(Adrive, 2, space=' '), *si_format([tstim, toffset], 1, space=' '), (', PRF = {}Hz, DC = {:.2f}%'.format( si_format(PRF, 2, space=' '), DC * 1e2) if DC < 1.0 else '')) # Check validity of stimulation parameters BilayerSonophore.checkInputs(self, Fdrive, Adrive, 0.0, 0.0) - self.neuron.checkInputs(Adrive, tstim, toffset, PRF, DC) + self.pneuron.checkInputs(Adrive, tstim, toffset, PRF, DC) # Call appropriate simulation function try: simfunc = { 'full': self.runFull, 'hybrid': self.runHybrid, 'sonic': self.runSONIC }[method] except KeyError: raise ValueError('Invalid integration method: "{}"'.format(method)) data, tcomp = simfunc(Fdrive, Adrive, tstim, toffset, PRF, DC) # Log number of detected spikes - nspikes = self.neuron.getNSpikes(data) + nspikes = self.pneuron.getNSpikes(data) logger.debug('{} spike{} detected'.format(nspikes, plural(nspikes))) # Return dataframe and computation time return data, tcomp @logCache(os.path.join(os.path.split(__file__)[0], 'astim_titrations.log')) def titrate(self, Fdrive, tstim, toffset, PRF=100., DC=1., method='sonic', xfunc=None, Arange=None): ''' Use a binary search to determine the threshold amplitude needed to obtain neural excitation for a given frequency, duration, PRF and duty cycle. :param Fdrive: US frequency (Hz) :param tstim: duration of US stimulation (s) :param toffset: duration of the offset (s) :param PRF: pulse repetition frequency (Hz) :param DC: pulse duty cycle (-) :param method: integration method :param xfunc: function determining whether condition is reached from simulation output :param Arange: search interval for Adrive, iteratively refined :return: determined threshold amplitude (Pa) ''' # Default output function if xfunc is None: - xfunc = self.neuron.titrationFunc + xfunc = self.pneuron.titrationFunc # Default amplitude interval if Arange is None: - Arange = [0., getLookups2D(self.neuron.name, a=self.a, Fdrive=Fdrive)[0].max()] + Arange = [0., getLookups2D(self.pneuron.name, a=self.a, Fdrive=Fdrive)[0].max()] return binarySearch( lambda x: xfunc(self.simulate(*x)[0]), [Fdrive, tstim, toffset, PRF, DC, method], 1, Arange, TITRATION_ASTIM_DA_MAX ) def simQueue(self, freqs, amps, durations, offsets, PRFs, DCs, method): ''' Create a serialized 2D array of all parameter combinations for a series of individual parameter sweeps, while avoiding repetition of CW protocols for a given PRF sweep. :param freqs: list (or 1D-array) of US frequencies :param amps: list (or 1D-array) of acoustic amplitudes :param durations: list (or 1D-array) of stimulus durations :param offsets: list (or 1D-array) of stimulus offsets (paired with durations array) :param PRFs: list (or 1D-array) of pulse-repetition frequencies :param DCs: list (or 1D-array) of duty cycle values :params method: integration method :return: list of parameters (list) for each simulation ''' if amps is None: amps = [np.nan] DCs = np.array(DCs) queue = [] if 1.0 in DCs: queue += createQueue(freqs, amps, durations, offsets, min(PRFs), 1.0) if np.any(DCs != 1.0): queue += createQueue(freqs, amps, durations, offsets, PRFs, DCs[DCs != 1.0]) for item in queue: if np.isnan(item[1]): item[1] = None item.append(method) return queue def quasiSteadyStates(self, Fdrive, amps=None, charges=None, DCs=1.0, squeeze_output=False): ''' Compute the quasi-steady state values of the neuron's gating variables for a combination of US amplitudes, charge densities and duty cycles, at a specific US frequency. :param Fdrive: US frequency (Hz) :param amps: US amplitudes (Pa) :param charges: membrane charge densities (C/m2) :param DCs: duty cycle value(s) :return: 4-tuple with reference values of US amplitude and charge density, as well as interpolated Vmeff and QSS gating variables ''' # Get DC-averaged lookups interpolated at the appropriate amplitudes and charges amps, charges, lookups = getLookupsDCavg( - self.neuron.name, self.a, Fdrive, amps, charges, DCs) + self.pneuron.name, self.a, Fdrive, amps, charges, DCs) # Compute QSS states using these lookups nA, nQ, nDC = lookups['V'].shape - QSS = {k: np.empty((nA, nQ, nDC)) for k in self.neuron.states} + QSS = {k: np.empty((nA, nQ, nDC)) for k in self.pneuron.states} for iA in range(nA): for iDC in range(nDC): - QSS_1D = self.neuron.quasiSteadyStates( + QSS_1D = self.pneuron.quasiSteadyStates( {k: v[iA, :, iDC] for k, v in lookups.items()}) for k in QSS.keys(): QSS[k][iA, :, iDC] = QSS_1D[k] # Compress outputs if needed if squeeze_output: QSS = {k: v.squeeze() for k, v in QSS.items()} lookups = {k: v.squeeze() for k, v in lookups.items()} # Return reference inputs and outputs return amps, charges, lookups, QSS def iNetQSS(self, Qm, Fdrive, Adrive, DC): ''' Compute quasi-steady state net membrane current for a given combination of US parameters and a given membrane charge density. :param Qm: membrane charge density (C/m2) :param Fdrive: US frequency (Hz) :param Adrive: US amplitude (Pa) :param DC: duty cycle (-) :return: net membrane current (mA/m2) ''' _, _, lookups, QSS = self.quasiSteadyStates( Fdrive, amps=Adrive, charges=Qm, DCs=DC, squeeze_output=True) - return self.neuron.iNet(lookups['V'], np.array(list(QSS.values()))) # mA/m2 + return self.pneuron.iNet(lookups['V'], np.array(list(QSS.values()))) # mA/m2 def evaluateStability(self, Qm0, states0, lkp): ''' Integrate the effective differential system from a given starting point, until clear convergence or clear divergence is found. :param Qm0: initial membrane charge density (C/m2) :param states0: dictionary of initial states values :param lkp: dictionary of 1D data points of "effective" coefficients over the charge domain, for specific frequency and amplitude values. :return: boolean indicating convergence state ''' # Initialize y0 vector t0 = 0. y0 = np.array([Qm0] + list(states0.values())) # Initialize simulator and compute solution # simulator = PeriodicSimulator( # lambda t, y: self.effDerivatives(t, y, lkp), # ivars_to_check=[0]) # simulator.stopfunc = simulator.stopFuncTmp # simulator.refs = [Qm0] # simulator.conv_thr = [QSS_Q_CONV_THR] # simulator.div_thr = [QSS_Q_DIV_THR] # simulator.t_history = QSS_HISTORY_INTERVAL # t, y, stim = simulator.compute( # y0, # QSS_INTEGRATION_INTERVAL, # QSS_INTEGRATION_INTERVAL, # nmax=int(QSS_MAX_INTEGRATION_DURATION // QSS_INTEGRATION_INTERVAL) # ) # conv = simulator.isAsymptoticallyStable(t, y, QSS_INTEGRATION_INTERVAL) != -1 # tf = t[-1] # dQ = [y[-1, 0]] # Initializing empty list to record evolution of charge deviation n = int(QSS_HISTORY_INTERVAL // QSS_INTEGRATION_INTERVAL) # size of history dQ = [] # As long as there is no clear charge convergence or divergence conv, div = False, False tf, yf = t0, y0 while not conv and not div: # Integrate system for small interval and retrieve final charge deviation t0, y0 = tf, yf sol = solve_ivp( lambda t, y: self.effDerivatives(t, y, lkp), [t0, t0 + QSS_INTEGRATION_INTERVAL], y0, method='LSODA' ) tf, yf = sol.t[-1], sol.y[:, -1] dQ.append(yf[0] - Qm0) # logger.debug('{:.0f} ms: dQ = {:.5f} nC/cm2, avg dQ = {:.5f} nC/cm2'.format( # tf * 1e3, dQ[-1] * 1e5, np.mean(dQ[-n:]) * 1e5)) # If last charge deviation is too large -> divergence if np.abs(dQ[-1]) > QSS_Q_DIV_THR: div = True # If last charge deviation or average deviation in recent history # is small enough -> convergence for x in [dQ[-1], np.mean(dQ[-n:])]: if np.abs(x) < QSS_Q_CONV_THR: conv = True # If max integration duration is been reached -> error if tf > QSS_MAX_INTEGRATION_DURATION: logger.warning('too many iterations (dQ = {:.5f} nC/cm2)'.format(dQ[-1] * 1e5)) conv = True logger.debug('{}vergence after {:.0f} ms: dQ = {:.5f} nC/cm2'.format( {True: 'con', False: 'di'}[conv], tf * 1e3, dQ[-1] * 1e5)) return conv def fixedPointsQSS(self, Fdrive, Adrive, DC, lkp, dQdt): ''' Compute QSS fixed points along the charge dimension for a given combination of US parameters, and determine their stability. :param Fdrive: US frequency (Hz) :param Adrive: US amplitude (Pa) :param DC: duty cycle (-) :param lkp: lookup dictionary for effective variables along charge dimension :param dQdt: charge derivative profile along charge dimension :return: 2-tuple with values of stable and unstable fixed points ''' logger.debug('A = {:.2f} kPa, DC = {:.0f}%'.format(Adrive * 1e-3, DC * 1e2)) # Extract stable and unstable fixed points from QSS charge variation profile def dfunc(Qm): return - self.iNetQSS(Qm, Fdrive, Adrive, DC) SFP_candidates = getFixedPoints(lkp['Q'], dQdt, filter='stable', der_func=dfunc).tolist() UFPs = getFixedPoints(lkp['Q'], dQdt, filter='unstable', der_func=dfunc).tolist() SFPs = [] pltvars = self.getPltVars() # For each candidate SFP for i, Qm in enumerate(SFP_candidates): logger.debug('Q-SFP = {:.2f} nC/cm2'.format(Qm * 1e5)) # Re-compute QSS *_, QSS_FP = self.quasiSteadyStates(Fdrive, amps=Adrive, charges=Qm, DCs=DC, squeeze_output=True) # Simulate from unperturbed QSS and evaluate stability if not self.evaluateStability(Qm, QSS_FP, lkp): logger.warning('diverging system at ({:.2f} kPa, {:.2f} nC/cm2)'.format( Adrive * 1e-3, Qm * 1e5)) UFPs.append(Qm) else: # For each state unstable_states = [] - for x in self.neuron.states: + for x in self.pneuron.states: pltvar = pltvars[x] unit_str = pltvar.get('unit', '') factor = pltvar.get('factor', 1) is_stable_direction = [] for sign in [-1, +1]: # Perturb state with small offset QSS_perturbed = deepcopy(QSS_FP) QSS_perturbed[x] *= (1 + sign * QSS_REL_OFFSET) # If gating state, bound within [0., 1.] - if self.neuron.isVoltageGated(x): + if self.pneuron.isVoltageGated(x): QSS_perturbed[x] = np.clip(QSS_perturbed[x], 0., 1.) logger.debug('{}: {:.5f} -> {:.5f} {}'.format( x, QSS_FP[x] * factor, QSS_perturbed[x] * factor, unit_str)) # Simulate from perturbed QSS and evaluate stability is_stable_direction.append( self.evaluateStability(Qm, QSS_perturbed, lkp)) # Check if system shows stability upon x-state perturbation # in both directions if not np.all(is_stable_direction): unstable_states.append(x) # Classify fixed point as stable only if all states show stability is_stable_FP = len(unstable_states) == 0 {True: SFPs, False: UFPs}[is_stable_FP].append(Qm) logger.info('{}stable fixed-point at ({:.2f} kPa, {:.2f} nC/cm2){}'.format( '' if is_stable_FP else 'un', Adrive * 1e-3, Qm * 1e5, '' if is_stable_FP else ', caused by {} states'.format(unstable_states))) return SFPs, UFPs def isStableQSS(self, Fdrive, Adrive, DC): _, Qref, lookups, QSS = self.quasiSteadyStates( Fdrive, amps=Adrive, DCs=DC, squeeze_output=True) lookups['Q'] = Qref - dQdt = -self.neuron.iNet( - lookups['V'], np.array([QSS[k] for k in self.neuron.states])) # mA/m2 + dQdt = -self.pneuron.iNet( + lookups['V'], np.array([QSS[k] for k in self.pneuron.states])) # mA/m2 SFPs, _ = self.fixedPointsQSS(Fdrive, Adrive, DC, lookups, dQdt) return len(SFPs) > 0 def titrateQSS(self, Fdrive, DC=1., Arange=None): # Default amplitude interval if Arange is None: - Arange = [0., getLookups2D(self.neuron.name, a=self.a, Fdrive=Fdrive)[0].max()] + Arange = [0., getLookups2D(self.pneuron.name, a=self.a, Fdrive=Fdrive)[0].max()] # Titration function def xfunc(x): - if self.neuron.name == 'STN': + if self.pneuron.name == 'STN': return self.isStableQSS(*x) else: return not self.isStableQSS(*x) return binarySearch( xfunc, [Fdrive, DC], 1, Arange, TITRATION_ASTIM_DA_MAX) diff --git a/PySONIC/core/nmodl_generator.py b/PySONIC/core/nmodl_generator.py index 4ea3392..664bbe9 100644 --- a/PySONIC/core/nmodl_generator.py +++ b/PySONIC/core/nmodl_generator.py @@ -1,177 +1,177 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2019-03-18 21:17:03 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-03-18 21:37:58 +# @Last Modified time: 2019-06-12 12:14:36 import inspect import re from time import gmtime, strftime def escaped_pow(x): return ' * '.join([x.group(1)] * int(x.group(2))) class NmodlGenerator: tabreturn = '\n ' NEURON_protected_vars = ['O', 'C'] - def __init__(self, neuron): - self.neuron = neuron - self.translated_states = [self.translateState(s) for s in self.neuron.states] + def __init__(self, pneuron): + self.pneuron = pneuron + self.translated_states = [self.translateState(s) for s in self.pneuron.states] def print(self, outfile): all_blocks = [ self.title(), self.description(), self.constants(), self.tscale(), self.neuron_block(), self.parameter_block(), self.state_block(), self.assigned_block(), self.function_tables(), self.initial_block(), self.breakpoint_block(), self.derivative_block() ] with open(outfile, "w") as fh: fh.write('\n\n'.join(all_blocks)) def translateState(self, state): return '{}{}'.format(state, '1' if state in self.NEURON_protected_vars else '') def title(self): - return 'TITLE {} membrane mechanism'.format(self.neuron.name) + return 'TITLE {} membrane mechanism'.format(self.pneuron.name) def description(self): return '\n'.join([ 'COMMENT', - self.neuron.getDesc(), + self.pneuron.getDesc(), '', '@Author: Theo Lemaire, EPFL', '@Date: {}'.format(strftime("%Y-%m-%d", gmtime())), '@Email: theo.lemaire@epfl.ch', 'ENDCOMMENT' ]) def constants(self): block = [ 'FARADAY = 96494 (coul) : moles do not appear in units', 'R = 8.31342 (J/mol/K) : Universal gas constant' ] return 'CONSTANT {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def tscale(self): return 'INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}' def neuron_block(self): block = [ - 'SUFFIX {}'.format(self.neuron.name), + 'SUFFIX {}'.format(self.pneuron.name), '', ': Constituting currents', - *['NONSPECIFIC_CURRENT {}'.format(i) for i in self.neuron.getCurrentsNames()], + *['NONSPECIFIC_CURRENT {}'.format(i) for i in self.pneuron.getCurrentsNames()], '', ': RANGE variables', 'RANGE Adrive, Vmeff : section specific', 'RANGE stimon : common to all sections (but set as RANGE to be accessible from caller)' ] return 'NEURON {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def parameter_block(self): block = [ ': Parameters set by python/hoc caller', 'stimon : Stimulation state', 'Adrive (kPa) : Stimulation amplitude', '', ': Membrane properties', - 'cm = {} (uF/cm2)'.format(self.neuron.Cm0 * 1e2) + 'cm = {} (uF/cm2)'.format(self.pneuron.Cm0 * 1e2) ] # Reversal potentials - possibles_E = list(set(['Na', 'K', 'Ca'] + [i[1:] for i in self.neuron.getCurrentsNames()])) + possibles_E = list(set(['Na', 'K', 'Ca'] + [i[1:] for i in self.pneuron.getCurrentsNames()])) for x in possibles_E: nernst_pot = 'E{}'.format(x) - if hasattr(self.neuron, nernst_pot): + if hasattr(self.pneuron, nernst_pot): block.append('{} = {} (mV)'.format( - nernst_pot, getattr(self.neuron, nernst_pot))) + nernst_pot, getattr(self.pneuron, nernst_pot))) # Conductances / permeabilities - for i in self.neuron.getCurrentsNames(): + for i in self.pneuron.getCurrentsNames(): suffix = '{}{}'.format(i[1:], '' if 'Leak' in i else 'bar') factors = {'g': 1e-4, 'p': 1e2} units = {'g': 'S/cm2', 'p': 'cm/s'} for prefix in ['g', 'p']: attr = '{}{}'.format(prefix, suffix) - if hasattr(self.neuron, attr): - val = getattr(self.neuron, attr) * factors[prefix] + if hasattr(self.pneuron, attr): + val = getattr(self.pneuron, attr) * factors[prefix] block.append('{} = {} ({})'.format(attr, val, units[prefix])) return 'PARAMETER {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def state_block(self): block = [': Standard gating states', *self.translated_states] return 'STATE {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def assigned_block(self): block = [ ': Variables computed during the simulation and whose value can be retrieved', 'Vmeff (mV)', 'v (mV)', - *['{} (mA/cm2)'.format(i) for i in self.neuron.getCurrentsNames()] + *['{} (mA/cm2)'.format(i) for i in self.pneuron.getCurrentsNames()] ] return 'ASSIGNED {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def function_tables(self): block = [ ': Function tables to interpolate effective variables', 'FUNCTION_TABLE V(A(kPa), Q(nC/cm2)) (mV)', - *['FUNCTION_TABLE {}(A(kPa), Q(nC/cm2)) (mV)'.format(r) for r in self.neuron.rates] + *['FUNCTION_TABLE {}(A(kPa), Q(nC/cm2)) (mV)'.format(r) for r in self.pneuron.rates] ] return '\n'.join(block) def initial_block(self): block = [': Set initial states values'] - for s in self.neuron.states: - if s in self.neuron.getGates(): + for s in self.pneuron.states: + if s in self.pneuron.getGates(): block.append('{0} = alpha{1}(0, v) / (alpha{1}(0, v) + beta{1}(0, v))'.format( self.translateState(s), s.lower())) else: block.append('{} = ???'.format(self.translateState(s))) return 'INITIAL {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def breakpoint_block(self): block = [ ': Integrate states', 'SOLVE states METHOD cnexp', '', ': Compute effective membrane potential', 'Vmeff = V(Adrive * stimon, v)', '', ': Compute ionic currents' ] - for i in self.neuron.getCurrentsNames(): - func_exp = inspect.getsource(getattr(self.neuron, i)).splitlines()[-1] + for i in self.pneuron.getCurrentsNames(): + func_exp = inspect.getsource(getattr(self.pneuron, i)).splitlines()[-1] func_exp = func_exp[func_exp.find('return') + 7:] func_exp = func_exp.replace('self.', '').replace('Vm', 'Vmeff') func_exp = re.sub(r'([A-Za-z][A-Za-z0-9]*)\*\*([0-9])', escaped_pow, func_exp) block.append('{} = {}'.format(i, func_exp)) return 'BREAKPOINT {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) def derivative_block(self): block = [': Gating states derivatives'] - for s in self.neuron.states: - if s in self.neuron.getGates(): + for s in self.pneuron.states: + if s in self.pneuron.getGates(): block.append( '{0}\' = alpha{1}{2} * (1 - {0}) - beta{1}{2} * {0}'.format( self.translateState(s), s.lower(), '(Adrive * stimon, v)') ) else: block.append('{}\' = ???'.format(self.translateState(s))) return 'DERIVATIVE states {{{}{}\n}}'.format(self.tabreturn, self.tabreturn.join(block)) diff --git a/PySONIC/parsers.py b/PySONIC/parsers.py index c09cb55..69ee9d4 100644 --- a/PySONIC/parsers.py +++ b/PySONIC/parsers.py @@ -1,393 +1,390 @@ import logging import numpy as np from argparse import ArgumentParser from .utils import Intensity2Pressure, selectDirDialog, isIterable -from .neurons import getPointNeuron, CorticalRS +from .neurons import getPointNeuron class Parser(ArgumentParser): ''' Generic parser interface. ''' dist_str = '[scale min max n]' def __init__(self): super().__init__() self.defaults = {} self.allowed = {} self.factors = {} self.addPlot() self.addVerbose() def getDistribution(self, xmin, xmax, nx, scale='lin'): if scale == 'log': xmin, xmax = np.log10(xmin), np.log10(xmax) return {'lin': np.linspace, 'log': np.logspace}[scale](xmin, xmax, nx) def getDistFromList(self, xlist): if not isinstance(xlist, list): raise TypeError('Input must be a list') if len(xlist) != 4: raise ValueError('List must contain exactly 4 arguments ([type, min, max, n])') scale = xlist[0] if scale not in ('log', 'lin'): raise ValueError('Unknown distribution type (must be "lin" or "log")') xmin, xmax = [float(x) for x in xlist[1:-1]] if xmin >= xmax: raise ValueError('Specified minimum higher or equal than specified maximum') nx = int(xlist[-1]) if nx < 2: raise ValueError('Specified number must be at least 2') return self.getDistribution(xmin, xmax, nx, scale=scale) def addVerbose(self): self.add_argument( '-v', '--verbose', default=False, action='store_true', help='Increase verbosity') def addPlot(self): self.add_argument( '-p', '--plot', type=str, nargs='+', help='Variables to plot') def addMPI(self): self.add_argument( '--mpi', default=False, action='store_true', help='Use multiprocessing') def addTest(self): self.add_argument( '--test', default=False, action='store_true', help='Run test configuration') def addSave(self): self.add_argument( '-s', '--save', default=False, action='store_true', help='Save output figure(s)') def addCompare(self, desc='Comparative graph'): self.add_argument( '--compare', default=False, action='store_true', help=desc) def addSamplingRate(self): self.add_argument( '--sr', type=int, default=1, help='Sampling rate for plot') def addHideOutput(self): self.add_argument( '--hide', default=False, action='store_true', help='Hide output') def addCmap(self, default='viridis'): self.add_argument( '--cmap', type=str, default=default, help='Colormap name') def addInputDir(self, dep_key=None): self.inputdir_dep_key = dep_key self.add_argument( '-i', '--inputdir', type=str, help='Input directory') def addOutputDir(self, dep_key=None): self.outputdir_dep_key = dep_key self.add_argument( '-o', '--outputdir', type=str, help='Output directory') def parseDir(self, key, args, title, dep_key=None): if dep_key is not None and args[dep_key] is False: return None directory = args[key] if args[key] is not None else selectDirDialog(title=title) if directory == '': raise ValueError('No {} selected'.format(key)) return directory def parseInputDir(self, args): return self.parseDir('inputdir', args, 'Select input directory', self.inputdir_dep_key) def parseOutputDir(self, args): return self.parseDir('outputdir', args, 'Select output directory', self.outputdir_dep_key) def parseLogLevel(self, args): return logging.DEBUG if args.pop('verbose') else logging.INFO def parsePltScheme(self, args): if args['plot'] is None: raise ValueError('You must specify a plot scheme') if args['plot'] == ['all']: return None else: return {x: [x] for x in args['plot']} def restrict(self, args, keys): if sum([args[x] is not None for x in keys]) > 1: raise ValueError( 'You must provide only one of the following arguments: {}'.format(', '.join(keys))) def parse2array(self, args, key, factor=1): return np.array(args[key]) * factor def parse(self): args = vars(super().parse_args()) args['loglevel'] = self.parseLogLevel(args) for k, v in self.defaults.items(): if args[k] is None: args[k] = v if isIterable(v) else [v] return args class SimParser(Parser): ''' Generic simulation parser interface. ''' def __init__(self): super().__init__() self.addMPI() self.addOutputDir() def parse(self): args = super().parse() args['outputdir'] = self.parseOutputDir(args) return args class MechSimParser(SimParser): ''' Parser to run mechanical simulations from the command line. ''' def __init__(self): super().__init__() self.defaults.update({ 'radius': 32.0, # nm 'embedding': 0., # um - 'Cm0': CorticalRS().Cm0 * 1e2, # uF/m2 - 'Qm0': CorticalRS().Qm0 * 1e5, # nC/m2 + 'Cm0': getPointNeuron('RS').Cm0 * 1e2, # uF/m2 + 'Qm0': getPointNeuron('RS').Qm0 * 1e5, # nC/m2 'freq': 500.0, # kHz 'amp': 100.0, # kPa 'charge': 0. # nC/cm2 }) self.factors.update({ 'radius': 1e-9, 'embedding': 1e-6, 'Cm0': 1e-2, 'Qm0': 1e-5, 'freq': 1e3, 'amp': 1e3, 'charge': 1e-5 }) self.addRadius() self.addEmbedding() self.addCm0() self.addQm0() self.addFdrive() self.addAdrive() self.addCharge() def addRadius(self): self.add_argument( '-a', '--radius', nargs='+', type=float, help='Sonophore radius (nm)') def addEmbedding(self): self.add_argument( '--embedding', nargs='+', type=float, help='Embedding depth (um)') def addCm0(self): self.add_argument( '--Cm0', type=float, help='Resting membrane capacitance (uF/cm2)') def addQm0(self): self.add_argument( '--Qm0', type=float, help='Resting membrane charge density (nC/cm2)') def addFdrive(self): self.add_argument( '-f', '--freq', nargs='+', type=float, help='US frequency (kHz)') def addAdrive(self): self.add_argument( '-A', '--amp', nargs='+', type=float, help='Acoustic pressure amplitude (kPa)') self.add_argument( '--Arange', type=str, nargs='+', help='Amplitude range {} (kPa)'.format(self.dist_str)) self.add_argument( '-I', '--intensity', nargs='+', type=float, help='Acoustic intensity (W/cm2)') self.add_argument( '--Irange', type=str, nargs='+', help='Intensity range {} (W/cm2)'.format(self.dist_str)) def addAscale(self, default='lin'): self.add_argument( '--Ascale', type=str, choices=('lin', 'log'), default=default, help='Amplitude scale for plot ("lin" or "log")') def addCharge(self): self.add_argument( '-Q', '--charge', nargs='+', type=float, help='Membrane charge density (nC/cm2)') def parseAmp(self, args): params = ['Irange', 'Arange', 'intensity', 'amp'] self.restrict(args, params[:-1]) Irange, Arange, Int, Adrive = [args.pop(k) for k in params] if Irange is not None: amps = Intensity2Pressure(self.getDistFromList(Irange) * 1e4) # Pa elif Int is not None: amps = Intensity2Pressure(np.array(Int) * 1e4) # Pa elif Arange is not None: amps = self.getDistFromList(Arange) * self.factors['amp'] # Pa else: amps = np.array(Adrive) * self.factors['amp'] # Pa return amps def parse(self): args = super().parse() args['amp'] = self.parseAmp(args) for key in ['radius', 'embedding', 'Cm0', 'Qm0', 'freq', 'charge']: args[key] = self.parse2array(args, key, factor=self.factors[key]) return args class PWSimParser(SimParser): ''' Generic parser interface to run PW patterned simulations from the command line. ''' def __init__(self): super().__init__() self.defaults.update({ 'neuron': 'RS', 'tstim': 100.0, # ms 'toffset': 50., # ms 'PRF': 100.0, # Hz 'DC': 100.0 # % }) self.factors.update({ 'tstim': 1e-3, 'toffset': 1e-3, 'PRF': 1., 'DC': 1e-2 }) self.allowed.update({ 'DC': range(101) }) self.addNeuron() self.addTstim() self.addToffset() self.addPRF() self.addDC() self.addSpanDC() self.addTitrate() def addNeuron(self): self.add_argument( '-n', '--neuron', type=str, nargs='+', help='Neuron name (string)') def addTstim(self): self.add_argument( '-t', '--tstim', nargs='+', type=float, help='Stimulus duration (ms)') def addToffset(self): self.add_argument( '--toffset', nargs='+', type=float, help='Offset duration (ms)') def addPRF(self): self.add_argument( '--PRF', nargs='+', type=float, help='PRF (Hz)') def addDC(self): self.add_argument( '--DC', nargs='+', type=float, help='Duty cycle (%%)') def addSpanDC(self): self.add_argument( '--spanDC', default=False, action='store_true', help='Span DC from 1 to 100%%') def addTitrate(self): self.add_argument( '--titrate', default=False, action='store_true', help='Perform titration') def parseNeuron(self, args): - # for item in args['neuron']: - # if item not in self.allowed['neuron']: - # raise ValueError('Unknown neuron type: "{}"'.format(item)) return [getPointNeuron(n) for n in args['neuron']] def parseAmp(self, args): return NotImplementedError def parseDC(self, args): if args.pop('spanDC'): return np.arange(1, 101) * self.factors['DC'] # (-) else: return np.array(args['DC']) * self.factors['DC'] # (-) def parse(self, args=None): if args is None: args = super().parse() args['neuron'] = self.parseNeuron(args) args['DC'] = self.parseDC(args) for key in ['tstim', 'toffset', 'PRF']: args[key] = self.parse2array(args, key, factor=self.factors[key]) return args class EStimParser(PWSimParser): ''' Parser to run E-STIM simulations from the command line. ''' def __init__(self): super().__init__() self.defaults.update({'amp': 10.0}) # mA/m2 self.factors.update({'amp': 1.}) self.addAstim() def addAstim(self): self.add_argument( '-A', '--amp', nargs='+', type=float, help='Amplitude of injected current density (mA/m2)') self.add_argument( '--Arange', type=str, nargs='+', help='Amplitude range {} (mA/m2)'.format(self.dist_str)) def parseAmp(self, args): if args.pop('titrate'): return None Arange, Astim = [args.pop(k) for k in ['Arange', 'amp']] if Arange is not None: amps = self.getDistFromList(Arange) * self.factors['amp'] # mA/m2 Ascale = Arange[0] else: amps = np.array(Astim) * self.factors['amp'] # mA/m2 return amps def parse(self): args = super().parse() args['amp'] = self.parseAmp(args) return args class AStimParser(PWSimParser, MechSimParser): ''' Parser to run A-STIM simulations from the command line. ''' def __init__(self): MechSimParser.__init__(self) PWSimParser.__init__(self) self.defaults.update({'method': 'sonic'}) self.allowed.update({'method': ['classic', 'hybrid', 'sonic']}) self.addMethod() def addMethod(self): self.add_argument( '-m', '--method', nargs='+', type=str, help='Numerical integration method ({})'.format(', '.join(self.allowed['method']))) def parseMethod(self, args): for item in args['method']: if item not in self.allowed['method']: raise ValueError('Unknown neuron type: "{}"'.format(item)) def parseAmp(self, args): if args.pop('titrate'): return None return MechSimParser.parseAmp(self, args) def parse(self): args = PWSimParser.parse(self, args=MechSimParser.parse(self)) for k in ['Cm0', 'Qm0', 'embedding', 'charge']: del args[k] self.parseMethod(args) return args diff --git a/PySONIC/plt/QSS.py b/PySONIC/plt/QSS.py index d629f2d..c3f4f23 100644 --- a/PySONIC/plt/QSS.py +++ b/PySONIC/plt/QSS.py @@ -1,502 +1,502 @@ import inspect import logging import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import cm, colors from ..core import NeuronalBilayerSonophore, Batch from .pltutils import * from ..utils import logger, fileCache root = '../../../QSS analysis/data' -def plotVarQSSDynamics(neuron, a, Fdrive, Adrive, charges, varname, varrange, fs=12): +def plotVarQSSDynamics(pneuron, a, Fdrive, Adrive, charges, varname, varrange, fs=12): ''' Plot the QSS-approximated derivative of a specific variable as function of the variable itself, as well as equilibrium values, for various membrane charge densities at a given acoustic amplitude. - :param neuron: neuron object + :param pneuron: point-neuron object :param a: sonophore radius (m) :param Fdrive: US frequency (Hz) :param Adrive: US amplitude (Pa) :param charges: charge density vector (C/m2) :param varname: name of variable to plot :param varrange: range over which to compute the derivative :return: figure handle ''' # Extract information about variable to plot - pltvar = neuron.getPltVars()[varname] + pltvar = pneuron.getPltVars()[varname] # Get methods to compute derivative and steady-state of variable of interest - derX_func = getattr(neuron, 'der{}{}'.format(varname[0].upper(), varname[1:])) - Xinf_func = getattr(neuron, '{}inf'.format(varname)) + derX_func = getattr(pneuron, 'der{}{}'.format(varname[0].upper(), varname[1:])) + Xinf_func = getattr(pneuron, '{}inf'.format(varname)) derX_args = inspect.getargspec(derX_func)[0][1:] Xinf_args = inspect.getargspec(Xinf_func)[0][1:] # Get dictionary of charge and amplitude dependent QSS variables - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) _, Qref, lookups, QSS = nbls.quasiSteadyStates( Fdrive, amps=Adrive, charges=charges, squeeze_output=True) df = QSS df['Vm'] = lookups['V'] # Create figure fig, ax = plt.subplots(figsize=(6, 4)) ax.set_title('{} neuron - QSS {} dynamics @ {:.2f} kPa'.format( - neuron.name, pltvar['desc'], Adrive * 1e-3), fontsize=fs) + pneuron.name, pltvar['desc'], Adrive * 1e-3), fontsize=fs) ax.set_xscale('log') for key in ['top', 'right']: ax.spines[key].set_visible(False) ax.set_xlabel('$\\rm {}\ ({})$'.format(pltvar['label'], pltvar.get('unit', '')), fontsize=fs) ax.set_ylabel('$\\rm QSS\ d{}/dt\ ({}/s)$'.format(pltvar['label'], pltvar.get('unit', '1')), fontsize=fs) ax.set_ylim(-40, 40) ax.axhline(0, c='k', linewidth=0.5) y0_str = '{}0'.format(varname) - if hasattr(neuron, y0_str): - ax.axvline(getattr(neuron, y0_str) * pltvar.get('factor', 1), + if hasattr(pneuron, y0_str): + ax.axvline(getattr(pneuron, y0_str) * pltvar.get('factor', 1), label=y0_str, c='k', linewidth=0.5) # For each charge value icolor = 0 for j, Qm in enumerate(charges): lbl = 'Q = {:.0f} nC/cm2'.format(Qm * 1e5) # Compute variable derivative as a function of its value, as well as equilibrium value, # keeping other variables at quasi steady-state derX_inputs = [varrange if arg == varname else df[arg][j] for arg in derX_args] Xinf_inputs = [df[arg][j] for arg in Xinf_args] - dX_QSS = neuron.derCai(*derX_inputs) - Xeq_QSS = neuron.Caiinf(*Xinf_inputs) + dX_QSS = pneuron.derCai(*derX_inputs) + Xeq_QSS = pneuron.Caiinf(*Xinf_inputs) # Plot variable derivative and its root as a function of the variable itself c = 'C{}'.format(icolor) ax.plot(varrange * pltvar.get('factor', 1), dX_QSS * pltvar.get('factor', 1), c=c, label=lbl) ax.axvline(Xeq_QSS * pltvar.get('factor', 1), linestyle='--', c=c) icolor += 1 ax.legend(frameon=False, fontsize=fs - 3) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) fig.tight_layout() fig.canvas.set_window_title('{}_QSS_{}_dynamics_{:.2f}kPa'.format( - neuron.name, varname, Adrive * 1e-3)) + pneuron.name, varname, Adrive * 1e-3)) return fig -def plotQSSdynamics(neuron, a, Fdrive, Adrive, DC=1., fs=12): +def plotQSSdynamics(pneuron, a, Fdrive, Adrive, DC=1., fs=12): ''' Plot effective membrane potential, quasi-steady states and resulting membrane currents as a function of membrane charge density, for a given acoustic amplitude. - :param neuron: neuron object + :param pneuron: point-neuron object :param a: sonophore radius (m) :param Fdrive: US frequency (Hz) :param Adrive: US amplitude (Pa) :return: figure handle ''' # Get neuron-specific pltvars - pltvars = neuron.getPltVars() + pltvars = pneuron.getPltVars() # Compute neuron-specific charge and amplitude dependent QS states at this amplitude - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) _, Qref, lookups, QSS = nbls.quasiSteadyStates(Fdrive, amps=Adrive, DCs=DC, squeeze_output=True) lookups['Q'] = Qref Vmeff = lookups['V'] # Compute QSS currents and 1D charge variation array - currents = neuron.currents(Vmeff, np.array([QSS[k] for k in neuron.states])) + currents = pneuron.currents(Vmeff, np.array([QSS[k] for k in pneuron.states])) iNet = sum(currents.values()) dQdt = -iNet # Compute stable and unstable fixed points Q_SFPs, Q_UFPs = nbls.fixedPointsQSS(Fdrive, Adrive, DC, lookups, dQdt) # Extract dimensionless states norm_QSS = {} - for x in neuron.states: + for x in pneuron.states: if 'unit' not in pltvars[x]: norm_QSS[x] = QSS[x] # Create figure fig, axes = plt.subplots(3, 1, figsize=(7, 9)) axes[-1].set_xlabel('$\\rm Q_m\ (nC/cm^2)$', fontsize=fs) for ax in axes: for skey in ['top', 'right']: ax.spines[skey].set_visible(False) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(minor=True): item.set_visible(False) fig.suptitle('{} neuron - QSS dynamics @ {:.2f} kPa, {:.0f}%DC'.format( - neuron.name, Adrive * 1e-3, DC * 1e2), fontsize=fs) + pneuron.name, Adrive * 1e-3, DC * 1e2), fontsize=fs) # Subplot: Vmeff ax = axes[0] ax.set_ylabel('$V_m^*$ (mV)', fontsize=fs) ax.plot(Qref * 1e5, Vmeff, color='k') - ax.axhline(neuron.Vm0, linewidth=0.5, color='k') + ax.axhline(pneuron.Vm0, linewidth=0.5, color='k') # Subplot: dimensionless quasi-steady states cset = plt.get_cmap('Dark2').colors + plt.get_cmap('tab10').colors ax = axes[1] ax.set_ylabel('QSS gating variables (-)', fontsize=fs) ax.set_yticks([0, 0.5, 1]) ax.set_ylim([-0.05, 1.05]) for i, (label, QS_state) in enumerate(norm_QSS.items()): ax.plot(Qref * 1e5, QS_state, label=label, c=cset[i]) # Subplot: currents ax = axes[2] cset = plt.get_cmap('tab10').colors ax.set_ylabel('QSS currents ($\\rm A/m^2$)', fontsize=fs) for i, (k, I) in enumerate(currents.items()): ax.plot(Qref * 1e5, -I * 1e-3, '--', c=cset[i], - label='$\\rm -{}$'.format(neuron.getPltVars()[k]['label'])) + label='$\\rm -{}$'.format(pneuron.getPltVars()[k]['label'])) ax.plot(Qref * 1e5, -iNet * 1e-3, color='k', label='$\\rm -I_{Net}$') ax.axhline(0, color='k', linewidth=0.5) if len(Q_SFPs) > 0: ax.scatter(np.array(Q_SFPs) * 1e5, np.zeros(len(Q_SFPs)), marker='.', s=200, facecolors='g', edgecolors='none', label='QSS stable FPs', zorder=3) if len(Q_UFPs) > 0: ax.scatter(np.array(Q_UFPs) * 1e5, np.zeros(len(Q_UFPs)), marker='.', s=200, facecolors='r', edgecolors='none', label='QSS unstable FPs', zorder=3) fig.tight_layout() fig.subplots_adjust(right=0.8) for ax in axes[1:]: ax.legend(loc='center right', fontsize=fs, frameon=False, bbox_to_anchor=(1.3, 0.5)) for ax in axes[:-1]: ax.set_xticklabels([]) fig.canvas.set_window_title( - '{}_QSS_dynamics_vs_Qm_{:.2f}kPa_DC{:.0f}%'.format(neuron.name, Adrive * 1e-3, DC * 1e2)) + '{}_QSS_dynamics_vs_Qm_{:.2f}kPa_DC{:.0f}%'.format(pneuron.name, Adrive * 1e-3, DC * 1e2)) return fig -def plotQSSVarVsQm(neuron, a, Fdrive, varname, amps=None, DC=1., +def plotQSSVarVsQm(pneuron, a, Fdrive, varname, amps=None, DC=1., fs=12, cmap='viridis', yscale='lin', zscale='lin', mpi=False, loglevel=logging.INFO): ''' Plot a specific QSS variable (state or current) as a function of membrane charge density, for various acoustic amplitudes. - :param neuron: neuron object + :param pneuron: point-neuron object :param a: sonophore radius (m) :param Fdrive: US frequency (Hz) :param amps: US amplitudes (Pa) :param DC: duty cycle (-) :param varname: extraction key for variable to plot :return: figure handle ''' # Extract information about variable to plot - pltvar = neuron.getPltVars()[varname] - Qvar = neuron.getPltVars()['Qm'] + pltvar = pneuron.getPltVars()[varname] + Qvar = pneuron.getPltVars()['Qm'] Afactor = 1e-3 logger.info('plotting %s neuron QSS %s vs. Qm for various amplitudes @ %.0f%% DC', - neuron.name, pltvar['desc'], DC * 1e2) + pneuron.name, pltvar['desc'], DC * 1e2) - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) # Get reference dictionaries for zero amplitude _, Qref, lookups0, QSS0 = nbls.quasiSteadyStates(Fdrive, amps=0., squeeze_output=True) Vmeff0 = lookups0['V'] df0 = QSS0 df0['Vm'] = Vmeff0 # Create figure fig, ax = plt.subplots(figsize=(6, 4)) - title = '{} neuron - QSS {} vs. Qm - {:.0f}% DC'.format(neuron.name, varname, DC * 1e2) + title = '{} neuron - QSS {} vs. Qm - {:.0f}% DC'.format(pneuron.name, varname, DC * 1e2) ax.set_title(title, fontsize=fs) ax.set_xlabel('$\\rm {}\ ({})$'.format(Qvar['label'], Qvar['unit']), fontsize=fs) ax.set_ylabel('$\\rm QSS\ {}\ ({})$'.format(pltvar['label'], pltvar.get('unit', '')), fontsize=fs) if yscale == 'log': ax.set_yscale('log') for key in ['top', 'right']: ax.spines[key].set_visible(False) # Plot y-variable reference line, if any y0 = None y0_str = '{}0'.format(varname) - if hasattr(neuron, y0_str): - y0 = getattr(neuron, y0_str) * pltvar.get('factor', 1) - elif varname in neuron.getCurrentsNames() + ['iNet', 'dQdt']: + if hasattr(pneuron, y0_str): + y0 = getattr(pneuron, y0_str) * pltvar.get('factor', 1) + elif varname in pneuron.getCurrentsNames() + ['iNet', 'dQdt']: y0 = 0. y0_str = '' if y0 is not None: ax.axhline(y0, label=y0_str, c='k', linewidth=0.5) # Plot reference QSS profile of variable as a function of charge density var0 = extractPltVar( - neuron, pltvar, pd.DataFrame({k: df0[k] for k in df0.keys()}), name=varname) + pneuron, pltvar, pd.DataFrame({k: df0[k] for k in df0.keys()}), name=varname) ax.plot(Qref * Qvar['factor'], var0, '--', c='k', zorder=1, label='A = 0') if varname == 'dQdt': # Plot charge SFPs and UFPs for each acoustic amplitude SFPs, UFPs = getQSSFixedPointsvsAdrive( nbls, Fdrive, amps, DC, mpi=mpi, loglevel=loglevel) if len(SFPs) > 0: _, Q_SFPs = np.array(SFPs).T ax.scatter(np.array(Q_SFPs) * 1e5, np.zeros(len(Q_SFPs)), marker='.', s=100, facecolors='g', edgecolors='none', label='QSS stable fixed points') if len(UFPs) > 0: _, Q_UFPs = np.array(UFPs).T ax.scatter(np.array(Q_UFPs) * 1e5, np.zeros(len(Q_UFPs)), marker='.', s=100, facecolors='r', edgecolors='none', label='QSS unstable fixed points') # Define color code mymap = plt.get_cmap(cmap) zref = amps * Afactor if zscale == 'lin': norm = colors.Normalize(zref.min(), zref.max()) elif zscale == 'log': norm = colors.LogNorm(zref.min(), zref.max()) sm = cm.ScalarMappable(norm=norm, cmap=mymap) sm._A = [] # Get amplitude-dependent QSS dictionary _, Qref, lookups, QSS = nbls.quasiSteadyStates( Fdrive, amps=amps, DCs=DC, squeeze_output=True) df = QSS df['Vm'] = lookups['V'] # Plot QSS profiles for various amplitudes for i, A in enumerate(amps): var = extractPltVar( - neuron, pltvar, pd.DataFrame({k: df[k][i] for k in df.keys()}), name=varname) + pneuron, pltvar, pd.DataFrame({k: df[k][i] for k in df.keys()}), name=varname) ax.plot(Qref * Qvar['factor'], var, c=sm.to_rgba(A * Afactor), zorder=0) # Add legend and adjust layout ax.legend(frameon=False, fontsize=fs) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) fig.tight_layout() fig.subplots_adjust(bottom=0.15, top=0.9, right=0.80, hspace=0.5) # Plot amplitude colorbar if amps is not None: cbarax = fig.add_axes([0.85, 0.15, 0.03, 0.75]) fig.colorbar(sm, cax=cbarax) cbarax.set_ylabel('Amplitude (kPa)', fontsize=fs) for item in cbarax.get_yticklabels(): item.set_fontsize(fs) fig.canvas.set_window_title('{}_QSS_{}_vs_Qm_{}A_{:.2f}-{:.2f}kPa_DC{:.0f}%'.format( - neuron.name, varname, zscale, amps.min() * 1e-3, amps.max() * 1e-3, DC * 1e2)) + pneuron.name, varname, zscale, amps.min() * 1e-3, amps.max() * 1e-3, DC * 1e2)) return fig @fileCache( root, lambda nbls, Fdrive, amps, DC: '{}_QSS_FPs_{:.0f}kHz_{:.2f}-{:.2f}kPa_DC{:.0f}%'.format( - nbls.neuron.name, Fdrive * 1e-3, amps.min() * 1e-3, amps.max() * 1e-3, DC * 1e2) + nbls.pneuron.name, Fdrive * 1e-3, amps.min() * 1e-3, amps.max() * 1e-3, DC * 1e2) ) def getQSSFixedPointsvsAdrive(nbls, Fdrive, amps, DC, mpi=False, loglevel=logging.INFO): # Compute 2D QSS charge variation array _, Qref, lookups, QSS = nbls.quasiSteadyStates( Fdrive, amps=amps, DCs=DC, squeeze_output=True) - dQdt = -nbls.neuron.iNet(lookups['V'], np.array([QSS[k] for k in nbls.neuron.states])) # mA/m2 + dQdt = -nbls.pneuron.iNet(lookups['V'], np.array([QSS[k] for k in nbls.pneuron.states])) # mA/m2 # Generate batch queue queue = [] for iA, Adrive in enumerate(amps): lookups1D = {k: v[iA, :] for k, v in lookups.items()} lookups1D['Q'] = Qref queue.append([Fdrive, Adrive, DC, lookups1D, dQdt[iA, :]]) # Run batch to find stable and unstable fixed points at each amplitude batch = Batch(nbls.fixedPointsQSS, queue) output = batch(mpi=mpi, loglevel=loglevel) # Sort points by amplitude SFPs, UFPs = [], [] for i, Adrive in enumerate(amps): SFPs += [(Adrive, Qm) for Qm in output[i][0]] UFPs += [(Adrive, Qm) for Qm in output[i][1]] return SFPs, UFPs def runAndGetStab(nbls, *args): - return nbls.neuron.getStabilizationValue(nbls.load(*args)[0]) + return nbls.pneuron.getStabilizationValue(nbls.load(*args)[0]) @fileCache( root, lambda nbls, Fdrive, amps, tstim, toffset, PRF, DC: '{}_sim_FPs_{:.0f}kHz_{:.0f}ms_offset{:.0f}ms_PRF{:.0f}Hz_{:.2f}-{:.2f}kPa_DC{:.0f}%'.format( - nbls.neuron.name, Fdrive * 1e-3, tstim * 1e3, toffset * 1e3, PRF, + nbls.pneuron.name, Fdrive * 1e-3, tstim * 1e3, toffset * 1e3, PRF, amps.min() * 1e-3, amps.max() * 1e-3, DC * 1e2) ) def getSimFixedPointsvsAdrive(nbls, Fdrive, amps, tstim, toffset, PRF, DC, outputdir=None, mpi=False, loglevel=logging.INFO): # Run batch to find stabilization point from simulations (if any) at each amplitude queue = [[nbls, outputdir, Fdrive, Adrive, tstim, toffset, PRF, DC, 'sonic'] for Adrive in amps] batch = Batch(runAndGetStab, queue) output = batch(mpi=mpi, loglevel=loglevel) return list(zip(amps, output)) -def plotEqChargeVsAmp(neuron, a, Fdrive, amps=None, tstim=None, toffset=None, PRF=None, +def plotEqChargeVsAmp(pneuron, a, Fdrive, amps=None, tstim=None, toffset=None, PRF=None, DC=1., fs=12, xscale='lin', compdir=None, mpi=False, loglevel=logging.INFO): ''' Plot the equilibrium membrane charge density as a function of acoustic amplitude, given an initial value of membrane charge density. - :param neuron: neuron object + :param pneuron: point-neuron object :param a: sonophore radius (m) :param Fdrive: US frequency (Hz) :param amps: US amplitudes (Pa) :return: figure handle ''' logger.info('plotting equilibrium charges for various amplitudes') # Create figure fig, ax = plt.subplots(figsize=(6, 4)) - figname = '{} neuron - charge stability vs. amplitude @ {:.0f}%DC'.format(neuron.name, DC * 1e2) + figname = '{} neuron - charge stability vs. amplitude @ {:.0f}%DC'.format(pneuron.name, DC * 1e2) ax.set_title(figname) ax.set_xlabel('Amplitude (kPa)', fontsize=fs) ax.set_ylabel('$\\rm Q_m\ (nC/cm^2)$', fontsize=fs) if xscale == 'log': ax.set_xscale('log') for skey in ['top', 'right']: ax.spines[skey].set_visible(False) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) Afactor = 1e-3 # Plot charge SFPs and UFPs for each acoustic amplitude SFPs, UFPs = getQSSFixedPointsvsAdrive( nbls, Fdrive, amps, DC, mpi=mpi, loglevel=loglevel) if len(SFPs) > 0: A_SFPs, Q_SFPs = np.array(SFPs).T ax.scatter(np.array(A_SFPs) * Afactor, np.array(Q_SFPs) * 1e5, marker='.', s=20, facecolors='g', edgecolors='none', label='QSS stable fixed points') if len(UFPs) > 0: A_UFPs, Q_UFPs = np.array(UFPs).T ax.scatter(np.array(A_UFPs) * Afactor, np.array(Q_UFPs) * 1e5, marker='.', s=20, facecolors='r', edgecolors='none', label='QSS unstable fixed points') # Plot charge asymptotic stabilization points from simulations for each acoustic amplitude if compdir is not None: stab_points = getSimFixedPointsvsAdrive( nbls, Fdrive, amps, tstim, toffset, PRF, DC, outputdir=compdir, mpi=mpi, loglevel=loglevel) if len(stab_points) > 0: A_stab, Q_stab = np.array(stab_points).T ax.scatter(np.array(A_stab) * Afactor, np.array(Q_stab) * 1e5, marker='o', s=20, facecolors='none', edgecolors='k', label='stabilization points from simulations') # Post-process figure - ax.set_ylim(np.array([neuron.Qm0 - 10e-5, 0]) * 1e5) + ax.set_ylim(np.array([pneuron.Qm0 - 10e-5, 0]) * 1e5) ax.legend(frameon=False, fontsize=fs) fig.tight_layout() fig.canvas.set_window_title('{}_QSS_Qstab_vs_{}A_{:.0f}%DC{}'.format( - neuron.name, + pneuron.name, xscale, DC * 1e2, '_with_comp' if compdir is not None else '' )) return fig @fileCache( root, lambda nbls, Fdrive, DCs: '{}_QSS_threshold_curve_{:.0f}kHz_DC{:.2f}-{:.2f}%'.format( - nbls.neuron.name, Fdrive * 1e-3, DCs.min() * 1e2, DCs.max() * 1e2), + nbls.pneuron.name, Fdrive * 1e-3, DCs.min() * 1e2, DCs.max() * 1e2), ext='csv' ) def getQSSThresholdAmps(nbls, Fdrive, DCs, mpi=False, loglevel=logging.INFO): queue = [[Fdrive, DC] for DC in DCs] batch = Batch(nbls.titrateQSS, queue) return batch(mpi=mpi, loglevel=loglevel) @fileCache( root, lambda nbls, Fdrive, tstim, toffset, PRF, DCs: '{}_sim_threshold_curve_{:.0f}kHz_{:.0f}ms_offset{:.0f}ms_PRF{:.0f}Hz_DC{:.2f}-{:.2f}%'.format( - nbls.neuron.name, Fdrive * 1e-3, tstim * 1e3, toffset * 1e3, PRF, + nbls.pneuron.name, Fdrive * 1e-3, tstim * 1e3, toffset * 1e3, PRF, DCs.min() * 1e2, DCs.max() * 1e2), ext='csv' ) def getSimThresholdAmps(nbls, Fdrive, tstim, toffset, PRF, DCs, mpi=False, loglevel=logging.INFO): # Run batch to find threshold amplitude from titrations at each DC queue = [[Fdrive, tstim, toffset, PRF, DC, 'sonic'] for DC in DCs] batch = Batch(nbls.titrate, queue) return batch(mpi=mpi, loglevel=loglevel) -def plotQSSThresholdCurve(neuron, a, Fdrive, tstim=None, toffset=None, PRF=None, DCs=None, +def plotQSSThresholdCurve(pneuron, a, Fdrive, tstim=None, toffset=None, PRF=None, DCs=None, fs=12, Ascale='lin', comp=False, mpi=False, loglevel=logging.INFO): - logger.info('plotting %s neuron threshold curve', neuron.name) + logger.info('plotting %s neuron threshold curve', pneuron.name) - if neuron.name == 'STN': + if pneuron.name == 'STN': raise ValueError('cannot compute threshold curve for STN neuron') # Create figure fig, ax = plt.subplots(figsize=(6, 4)) - figname = '{} neuron - threshold amplitude vs. duty cycle'.format(neuron.name) + figname = '{} neuron - threshold amplitude vs. duty cycle'.format(pneuron.name) ax.set_title(figname) ax.set_xlabel('Duty cycle (%)', fontsize=fs) ax.set_ylabel('Amplitude (kPa)', fontsize=fs) if Ascale == 'log': ax.set_yscale('log') for skey in ['top', 'right']: ax.spines[skey].set_visible(False) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) Athrs_QSS = np.array(getQSSThresholdAmps(nbls, Fdrive, DCs, mpi=mpi, loglevel=loglevel)) ax.plot(DCs * 1e2, Athrs_QSS * 1e-3, '-', c='k', label='QSS curve') if comp: Athrs_sim = np.array(getSimThresholdAmps( nbls, Fdrive, tstim, toffset, PRF, DCs, mpi=mpi, loglevel=loglevel)) ax.plot(DCs * 1e2, Athrs_sim * 1e-3, '--', c='k', label='sim curve') # Post-process figure ax.set_xlim([0, 100]) ax.set_ylim([10, 600]) ax.legend(frameon=False, fontsize=fs) fig.tight_layout() fig.canvas.set_window_title('{}_QSS_threhold_curve_{:.0f}-{:.0f}%DC_{}A{}'.format( - neuron.name, + pneuron.name, DCs.min() * 1e2, DCs.max() * 1e2, Ascale, '_with_comp' if comp else '' )) return fig diff --git a/PySONIC/plt/actmap.py b/PySONIC/plt/actmap.py index 18c96f0..2ed35e0 100644 --- a/PySONIC/plt/actmap.py +++ b/PySONIC/plt/actmap.py @@ -1,327 +1,327 @@ import os import ntpath import pickle import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib from matplotlib.ticker import FormatStrFormatter from ..core import NeuronalBilayerSonophore from ..utils import logger, si_format, loadData from ..postpro import findPeaks from ..constants import * from .pltutils import cm2inch, computeMeshEdges class ActivationMap: - def __init__(self, root, neuron, a, Fdrive, tstim, PRF, amps, DCs): + def __init__(self, root, pneuron, a, Fdrive, tstim, PRF, amps, DCs): self.root = root - self.neuron = neuron + self.pneuron = pneuron self.a = a - self.nbls = NeuronalBilayerSonophore(self.a, self.neuron) + self.nbls = NeuronalBilayerSonophore(self.a, self.pneuron) self.Fdrive = Fdrive self.tstim = tstim self.PRF = PRF self.amps = amps self.DCs = DCs self.title = '{} neuron @ {}Hz, {}Hz PRF ({}m sonophore)'.format( - self.neuron.name, *si_format([self.Fdrive, self.PRF, self.a])) + self.pneuron.name, *si_format([self.Fdrive, self.PRF, self.a])) out_fname = 'actmap {} {}Hz PRF{}Hz {}s.csv'.format( - self.neuron.name, *si_format([self.Fdrive, self.PRF, self.tstim], space='')) + self.pneuron.name, *si_format([self.Fdrive, self.PRF, self.tstim], space='')) out_fpath = os.path.join(self.root, out_fname) if os.path.isfile(out_fpath): self.data = np.loadtxt(out_fpath, delimiter=',') else: self.data = self.compute() np.savetxt(out_fpath, self.data, delimiter=',') def classify(self, df): ''' Classify based on charge temporal profile. ''' t = df['t'].values Qm = df['Qm'].values # Detect spikes on charge profile during stimulus dt = t[1] - t[0] mpd = int(np.ceil(SPIKE_MIN_DT / dt)) ispikes, *_ = findPeaks( Qm[t <= self.tstim], mph=SPIKE_MIN_QAMP, mpd=mpd, mpp=SPIKE_MIN_QPROM ) # Compute firing metrics if ispikes.size == 0: # if no spike, assign -1 return -1 elif ispikes.size == 1: # if only 1 spike, assign 0 return 0 else: # if more than 1 spike, assign firing rate FRs = 1 / np.diff(t[ispikes]) return np.mean(FRs) def correctAmp(self, A): return np.round(A * 1e-3, 1) * 1e3 def compute(self): - logger.info('Generating activation map for %s neuron', self.neuron.name) + logger.info('Generating activation map for %s neuron', self.pneuron.name) actmap = np.empty((self.amps.size, self.DCs.size)) nfiles = self.DCs.size * self.amps.size for i, A in enumerate(self.amps): for j, DC in enumerate(self.DCs): fname = '{}.pkl'.format(self.nbls.filecode( self.Fdrive, self.correctAmp(A), self.tstim, 0., self.PRF, DC, 'sonic')) fpath = os.path.join(self.root, fname) if not os.path.isfile(fpath): print(fpath) logger.error('"{}" file not found'.format(fname)) actmap[i, j] = np.nan else: # Load data logger.debug('Loading file {}/{}: "{}"'.format( i * self.amps.size + j + 1, nfiles, fname)) df, _ = loadData(fpath) actmap[i, j] = self.classify(df) return actmap def adjustFRbounds(self, actmap): ''' Check firing rate bounding. ''' minFR, maxFR = (actmap[actmap > 0].min(), actmap.max()) logger.info('FR range: %.0f - %.0f Hz', minFR, maxFR) if FRbounds is None: FRbounds = (minFR, maxFR) else: if minFR < FRbounds[0]: logger.warning( 'Minimal firing rate (%.0f Hz) is below defined lower bound (%.0f Hz)', minFR, FRbounds[0]) if maxFR > FRbounds[1]: logger.warning( 'Maximal firing rate (%.0f Hz) is above defined upper bound (%.0f Hz)', maxFR, FRbounds[1]) def getNormalizer(self, bounds, scale): return { 'lin': matplotlib.colors.Normalize, 'log': matplotlib.colors.LogNorm }[scale](*bounds) def fit2Colormap(self, actmap, cmap): actmap[actmap == -1] = np.nan actmap[actmap == 0] = 1e-3 cmap.set_bad('silver') cmap.set_under('k') return actmap, cmap def addThresholdCurve(self, ax): Athrs_fname = 'Athrs_{}_{:.0f}nm_{}Hz_PRF{}Hz_{}s.xlsx'.format( - self.neuron.name, self.a * 1e9, + self.pneuron.name, self.a * 1e9, *si_format([self.Fdrive, self.PRF, self.tstim], 0, space='')) fpath = os.path.join(self.root, Athrs_fname) if os.path.isfile(fpath): df = pd.read_excel(fpath, sheet_name='Data') DCs = df['Duty factor'].values Athrs = df['Adrive (kPa)'].values iDCs = np.argsort(DCs) DCs = DCs[iDCs] Athrs = Athrs[iDCs] ax.plot(DCs * 1e2, Athrs, '-', color='#F26522', linewidth=2, label='threshold amplitudes') ax.legend(loc='lower center', frameon=False, fontsize=8) else: logger.warning('%s file not found -> cannot draw threshold curve', fpath) def render(self, Ascale='log', FRscale='log', FRbounds=None, fs=8, cmap='viridis', interactive=False, Vbounds=None, tmax=None, thresholds=False): # Compute FR normalizer norm = self.getNormalizer(FRbounds, FRscale) # Compute mesh edges xedges = computeMeshEdges(self.DCs) yedges = computeMeshEdges(self.amps, scale=Ascale) # Create figure fig, ax = plt.subplots(figsize=cm2inch(8, 5.8)) fig.subplots_adjust(left=0.15, bottom=0.15, right=0.8, top=0.92) ax.set_title(self.title, fontsize=fs) ax.set_xlabel('Duty cycle (%)', fontsize=fs, labelpad=-0.5) ax.set_ylabel('Amplitude (kPa)', fontsize=fs) if Ascale == 'log': ax.set_yscale('log') ax.set_xlim(np.array([self.DCs.min(), self.DCs.max()]) * 1e2) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) # Plot activation map with specific color code actmap, cmap = self.fit2Colormap(self.data, plt.get_cmap(cmap)) ax.pcolormesh(xedges * 1e2, yedges * 1e-3, actmap, cmap=cmap, norm=norm) # Plot firing rate colorbar sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm) sm._A = [] pos1 = ax.get_position() # get the map axis position cbarax = fig.add_axes([pos1.x1 + 0.02, pos1.y0, 0.03, pos1.height]) fig.colorbar(sm, cax=cbarax) cbarax.set_ylabel('Firing rate (Hz)', fontsize=fs) for item in cbarax.get_yticklabels(): item.set_fontsize(fs) if interactive: fig.canvas.mpl_connect( 'button_press_event', lambda event: self.onClick(event, (xedges, yedges), tmax, Vbounds)) if thresholds: self.addThresholdCurve(ax) return fig def onClick(self, event, meshedges, tmax, Vbounds): ''' Retrieve the specific input parameters of the x and y dimensions when the user clicks on a cell in the 2D map, and define filename from it. ''' # Get DC and A from x and y coordinates x, y = event.xdata, event.ydata DC = self.DCs[np.searchsorted(meshedges[0], x * 1e-2) - 1] Adrive = self.amps[np.searchsorted(meshedges[1], y * 1e3) - 1] # Define filepath fname = '{}.pkl'.format(self.nbls.filecode( self.Fdrive, self.correctAmp(Adrive), self.tstim, 0., self.PRF, DC, 'sonic')) fpath = os.path.join(self.root, fname) # Plot Q-trace try: self.plotQVeff(fpath, tmax=tmax, ybounds=Vbounds) self.plotFRspectrum(fpath) plt.show() except FileNotFoundError as err: logger.error(err) def plotQVeff(self, filepath, tonset=10, tmax=None, ybounds=None, fs=8, lw=1): ''' Plot superimposed profiles of membrane charge density and effective membrane potential. :param filepath: full path to the data file :param tonset: pre-stimulus onset to add to profiles (ms) :param tmax: max time value showed on graph (ms) :param ybounds: y-axis bounds (mV / nC/cm2) :return: handle to the generated figure ''' # Check file existence fname = ntpath.basename(filepath) if not os.path.isfile(filepath): raise FileNotFoundError('Error: "{}" file does not exist'.format(fname)) # Load data logger.debug('Loading data from "%s"', fname) with open(filepath, 'rb') as fh: frame = pickle.load(fh) df = frame['data'] t = df['t'].values * 1e3 # ms Qm = df['Qm'].values * 1e5 # nC/cm2 Vm = df['Vm'].values # mV # Add onset to profiles t = np.hstack((np.array([-tonset, t[0]]), t)) - Vm = np.hstack((np.array([self.neuron.Vm0] * 2), Vm)) + Vm = np.hstack((np.array([self.pneuron.Vm0] * 2), Vm)) Qm = np.hstack((np.array([Qm[0]] * 2), Qm)) # Determine axes bounds if tmax is None: tmax = t.max() if ybounds is None: ybounds = (min(Vm.min(), Qm.min()), max(Vm.max(), Qm.max())) # Create figure fig, ax = plt.subplots(figsize=cm2inch(7, 3)) fig.canvas.set_window_title(fname) plt.subplots_adjust(left=0.2, bottom=0.2, right=0.95, top=0.95) for key in ['top', 'right']: ax.spines[key].set_visible(False) for key in ['bottom', 'left']: ax.spines[key].set_position(('axes', -0.03)) ax.spines[key].set_linewidth(2) ax.yaxis.set_tick_params(width=2) ax.yaxis.set_major_formatter(FormatStrFormatter('%.0f')) ax.set_xlim((-tonset, tmax)) ax.set_xticks([]) ax.set_xlabel('{}s'.format(si_format((tonset + tmax) * 1e-3, space=' ')), fontsize=fs) ax.set_ylabel('mV - $\\rm nC/cm^2$', fontsize=fs, labelpad=-15) ax.set_ylim(ybounds) ax.set_yticks(ybounds) for item in ax.get_yticklabels(): item.set_fontsize(fs) # Plot Qm and Vmeff profiles ax.plot(t, Vm, color='darkgrey', linewidth=lw) ax.plot(t, Qm, color='k', linewidth=lw) # fig.tight_layout() return fig def plotFRspectrum(self, filepath, FRbounds=None, fs=8, lw=1): ''' Plot firing rate specturm. :param filepath: full path to the data file :param FRbounds: firing rate bounds (Hz) :return: handle to the generated figure ''' # Determine FR bounds if FRbounds is None: FRbounds = (1e0, 1e3) # Check file existence fname = ntpath.basename(filepath) if not os.path.isfile(filepath): raise FileNotFoundError('Error: "{}" file does not exist'.format(fname)) # Load data logger.debug('Loading data from "%s"', fname) with open(filepath, 'rb') as fh: frame = pickle.load(fh) df = frame['data'] meta = frame['meta'] tstim = meta['tstim'] t = df['t'].values Qm = df['Qm'].values dt = t[1] - t[0] # Detect spikes on charge profile during stimulus mpd = int(np.ceil(SPIKE_MIN_DT / dt)) ispikes, *_ = findPeaks( Qm[t <= tstim], mph=SPIKE_MIN_QAMP, mpd=mpd, mpp=SPIKE_MIN_QPROM ) # Compute FR spectrum if ispikes.size <= MIN_NSPIKES_SPECTRUM: raise ValueError('Number of spikes is to small to form spectrum') FRs = 1 / np.diff(t[ispikes]) logbins = np.logspace(np.log10(FRbounds[0]), np.log10(FRbounds[1]), 30) # Create figure fig, ax = plt.subplots(figsize=cm2inch(7, 3)) fig.canvas.set_window_title(fname) for key in ['top', 'right']: ax.spines[key].set_visible(False) ax.set_xlim(FRbounds) ax.set_xlabel('Firing rate (Hz)', fontsize=fs) ax.set_ylabel('Density', fontsize=fs) for item in ax.get_yticklabels(): item.set_fontsize(fs) ax.hist(FRs, bins=logbins, density=True, color='k') ax.set_xscale('log') fig.tight_layout() return fig diff --git a/PySONIC/plt/effvars.py b/PySONIC/plt/effvars.py index e89a440..8067978 100644 --- a/PySONIC/plt/effvars.py +++ b/PySONIC/plt/effvars.py @@ -1,161 +1,161 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-10-02 01:44:59 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 21:23:03 +# @Last Modified time: 2019-06-12 12:17:07 import numpy as np from scipy.interpolate import interp1d import matplotlib.pyplot as plt import matplotlib.cm as cm import matplotlib from PySONIC.utils import logger, si_prefixes, isWithin from PySONIC.neurons import getLookups2D, getLookupsOff from PySONIC.core import NeuronalBilayerSonophore def setGrid(n, ncolmax=3): ''' Determine number of rows and columns in figure grid, based on number of variables to plot. ''' if n <= ncolmax: return (1, n) else: return ((n - 1) // ncolmax + 1, ncolmax) -def plotEffectiveVariables(neuron, a=None, Fdrive=None, Adrive=None, +def plotEffectiveVariables(pneuron, a=None, Fdrive=None, Adrive=None, nlevels=10, zscale='lin', cmap=None, fs=12, ncolmax=1): ''' Plot the profiles of effective variables of a specific neuron as a function of charge density and another reference variable (z-variable). For each effective variable, one charge-profile per z-value is plotted, with a color code based on the z-variable value. - :param neuron: channel mechanism object + :param pneuron: point-neuron object :param a: sonophore radius (m) :param Fdrive: acoustic drive frequency (Hz) :param Adrive: acoustic pressure amplitude (Pa) :param nlevels: number of levels for the z-variable :param zscale: scale type for the z-variable ('lin' or 'log') :param cmap: colormap name :param fs: figure fontsize :param ncolmax: max number of columns on the figure :return: handle to the created figure ''' if sum(isinstance(x, float) for x in [a, Fdrive, Adrive]) < 2: raise ValueError('at least 2 parameters in (a, Fdrive, Adrive) must be fixed') if cmap is None: cmap = 'viridis' # Get reference US-OFF lookups (1D) - _, lookupsoff = getLookupsOff(neuron.name) + _, lookupsoff = getLookupsOff(pneuron.name) - nbls = NeuronalBilayerSonophore(32e-9, neuron) + nbls = NeuronalBilayerSonophore(32e-9, pneuron) pltvars = nbls.getPltVars() # Get 2D lookups at specific combination - zref, Qref, lookups2D, zvar = getLookups2D(neuron.name, a=a, Fdrive=Fdrive, Adrive=Adrive) - _, lookupsoff = getLookupsOff(neuron.name) + zref, Qref, lookups2D, zvar = getLookups2D(pneuron.name, a=a, Fdrive=Fdrive, Adrive=Adrive) + _, lookupsoff = getLookupsOff(pneuron.name) for lookups in [lookups2D, lookupsoff]: lookups.pop('ng') lookups['Cm'] = Qref / lookups['V'] * 1e5 # uF/cm2 zref *= zvar['factor'] prefix = {value: key for key, value in si_prefixes.items()}[1 / zvar['factor']] # Optional: interpolate along z dimension if nlevels specified if zscale is 'log': znew = np.logspace(np.log10(zref.min()), np.log10(zref.max()), nlevels) elif zscale is 'lin': znew = np.linspace(zref.min(), zref.max(), nlevels) else: raise ValueError('unknown scale type (should be "lin" or "log")') znew = np.array([isWithin(zvar['label'], z, (zref.min(), zref.max())) for z in znew]) lookups2D = {key: interp1d(zref, y2D, axis=0)(znew) for key, y2D in lookups2D.items()} zref = znew for lookups in [lookups2D, lookupsoff]: lookups['Vm'] = lookups.pop('V') # mV lookups['Cm'] = Qref / lookups['Vm'] * 1e3 # uF/cm2 keys = ['Cm', 'Vm'] + list(lookups2D.keys())[:-2] # Define color code mymap = cm.get_cmap(cmap) if zscale == 'lin': norm = matplotlib.colors.Normalize(zref.min(), zref.max()) elif zscale == 'log': norm = matplotlib.colors.LogNorm(zref.min(), zref.max()) sm = cm.ScalarMappable(norm=norm, cmap=mymap) sm._A = [] # Plot logger.info('plotting') nrows, ncols = setGrid(len(lookups2D), ncolmax=ncolmax) xvar = pltvars['Qm'] Qbounds = np.array([Qref.min(), Qref.max()]) * xvar['factor'] fig, _ = plt.subplots(figsize=(3.5 * ncols, 1 * nrows), squeeze=False) for j, key in enumerate(keys): ax = plt.subplot2grid((nrows, ncols), (j // ncols, j % ncols)) for s in ['right', 'top']: ax.spines[s].set_visible(False) yvar = pltvars[key] if j // ncols == nrows - 1: ax.set_xlabel('$\\rm {}\ ({})$'.format(xvar['label'], xvar['unit']), fontsize=fs) ax.set_xticks(Qbounds) else: ax.set_xticks([]) ax.spines['bottom'].set_visible(False) ax.xaxis.set_label_coords(0.5, -0.1) ax.yaxis.set_label_coords(-0.02, 0.5) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) ymin = np.inf ymax = -np.inf # Plot effective variable for each selected z-value y0 = lookupsoff[key] for i, z in enumerate(zref): y = lookups2D[key][i] if 'alpha' in key or 'beta' in key: y[y > y0.max() * 2] = np.nan ax.plot(Qref * xvar.get('factor', 1), y * yvar.get('factor', 1), c=sm.to_rgba(z)) ymin = min(ymin, y.min()) ymax = max(ymax, y.max()) # Plot reference variable ax.plot(Qref * xvar.get('factor', 1), y0 * yvar.get('factor', 1), '--', c='k') ymax = max(ymax, y0.max()) ymin = min(ymin, y0.min()) # Set axis y-limits if 'alpha' in key or 'beta' in key: ymax = y0.max() * 2 ylim = [ymin * yvar.get('factor', 1), ymax * yvar.get('factor', 1)] if key == 'Cm': factor = 1e1 ylim = [np.floor(ylim[0] * factor) / factor, np.ceil(ylim[1] * factor) / factor] else: factor = 1 / np.power(10, np.floor(np.log10(ylim[1]))) ylim = [np.floor(ylim[0] * factor) / factor, np.ceil(ylim[1] * factor) / factor] ax.set_yticks(ylim) ax.set_ylim(ylim) ax.set_ylabel('$\\rm {}\ ({})$'.format(yvar['label'], yvar['unit']), fontsize=fs, rotation=0, ha='right', va='center') - fig.suptitle('{} neuron: {} \n modulated effective variables'.format(neuron.name, zvar['label'])) + fig.suptitle('{} neuron: {} \n modulated effective variables'.format(pneuron.name, zvar['label'])) # Plot colorbar fig.subplots_adjust(left=0.20, bottom=0.05, top=0.8, right=0.80, hspace=0.5) cbarax = fig.add_axes([0.10, 0.90, 0.80, 0.02]) fig.colorbar(sm, cax=cbarax, orientation='horizontal') cbarax.set_xlabel('{} ({}{})'.format( zvar['label'], prefix, zvar['unit']), fontsize=fs) for item in cbarax.get_yticklabels(): item.set_fontsize(fs) return fig diff --git a/PySONIC/plt/pltutils.py b/PySONIC/plt/pltutils.py index 5bf860c..abf1c7e 100644 --- a/PySONIC/plt/pltutils.py +++ b/PySONIC/plt/pltutils.py @@ -1,80 +1,80 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-08-21 14:33:36 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 18:26:50 +# @Last Modified time: 2019-06-12 12:17:23 ''' Useful functions to generate plots. ''' import numpy as np import matplotlib # Matplotlib parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' def figtitle(meta): ''' Return appropriate title based on simulation metadata. ''' if 'Cm0' in meta: return '{:.0f}nm radius BLS structure: MECH-STIM {:.0f}kHz, {:.2f}kPa, {:.1f}nC/cm2'.format( meta['a'] * 1e9, meta['Fdrive'] * 1e-3, meta['Adrive'] * 1e-3, meta['Qm'] * 1e5) else: if meta['DC'] < 1: wavetype = 'PW' suffix = ', {:.2f}Hz PRF, {:.0f}% DC'.format(meta['PRF'], meta['DC'] * 1e2) else: wavetype = 'CW' suffix = '' if 'Astim' in meta: return '{} neuron: {} E-STIM {:.2f}mA/m2, {:.0f}ms{}'.format( meta['neuron'], wavetype, meta['Astim'], meta['tstim'] * 1e3, suffix) else: return '{} neuron ({:.1f}nm): {} A-STIM {:.0f}kHz {:.2f}kPa, {:.0f}ms{} - {} model'.format( meta['neuron'], meta['a'] * 1e9, wavetype, meta['Fdrive'] * 1e-3, meta['Adrive'] * 1e-3, meta['tstim'] * 1e3, suffix, meta['method']) def cm2inch(*tupl): inch = 2.54 if isinstance(tupl[0], tuple): return tuple(i / inch for i in tupl[0]) else: return tuple(i / inch for i in tupl) def extractPltVar(model, pltvar, df, meta=None, nsamples=0, name=''): if 'func' in pltvar: s = 'model.{}'.format(pltvar['func']) try: var = eval(s) except AttributeError: - var = eval(s.replace('model', 'model.neuron')) + var = eval(s.replace('model', 'model.pneuron')) elif 'key' in pltvar: var = df[pltvar['key']] elif 'constant' in pltvar: var = eval(pltvar['constant']) * np.ones(nsamples) else: var = df[name] var = var.values.copy() if var.size == nsamples - 2: var = np.hstack((np.array([pltvar.get('y0', var[0])] * 2), var)) var *= pltvar.get('factor', 1) return var def computeMeshEdges(x, scale='lin'): ''' Compute the appropriate edges of a mesh that quads a linear or logarihtmic distribution. :param x: the input vector :param scale: the type of distribution ('lin' for linear, 'log' for logarihtmic) :return: the edges vector ''' if scale == 'log': x = np.log10(x) dx = x[1] - x[0] n = x.size + 1 return {'lin': np.linspace, 'log': np.logspace}[scale](x[0] - dx / 2, x[-1] + dx / 2, n) diff --git a/notebooks/BLS model - intermolecular pressure.ipynb b/notebooks/BLS model - intermolecular pressure.ipynb index 0f6ae3a..82c72a7 100644 --- a/notebooks/BLS model - intermolecular pressure.ipynb +++ b/notebooks/BLS model - intermolecular pressure.ipynb @@ -1,209 +1,208 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bilayer Sonophore model: computation of intermolecular pressure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import logging\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from PySONIC.utils import logger, rmse, rsquared\n", - "from PySONIC.neurons import CorticalRS\n", + "from PySONIC.neurons import getPointNeuron\n", "from PySONIC.core import BilayerSonophore, PmCompMethod\n", "from PySONIC.constants import *\n", "\n", "# Set logging level\n", "logger.setLevel(logging.INFO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Functions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def plotPmavg(bls, Z, fs=15):\n", " fig, ax = plt.subplots(figsize=(5, 3))\n", " for skey in ['right', 'top']:\n", " ax.spines[skey].set_visible(False)\n", " ax.set_xlabel('Z (nm)', fontsize=fs)\n", " ax.set_ylabel('Pressure (kPa)', fontsize=fs)\n", " ax.set_xticks([0, bls.a * 1e9])\n", " ax.set_xticklabels(['0', 'a'])\n", " ax.set_yticks([-10, 0, 40])\n", " ax.set_ylim([-10, 50])\n", " for item in ax.get_xticklabels() + ax.get_yticklabels():\n", " item.set_fontsize(fs)\n", " ax.plot(Z * 1e9, bls.v_PMavg(Z, bls.v_curvrad(Z), bls.surface(Z)) * 1e-3, label='$P_m$')\n", " ax.plot(Z * 1e9, bls.PMavgpred(Z) * 1e-3, label='$P_{m,approx}$')\n", " ax.axhline(y=0, color='k')\n", " ax.legend(fontsize=fs, frameon=False)\n", " fig.tight_layout()\n", "\n", "def plotZprofiles(bls, f, A, Q, fs=15):\n", " # Run simulation with integrated intermolecular pressure\n", " data, _ = bls.simulate(f, A, Qm, Pm_comp_method=PmCompMethod.direct)\n", " Z1 = data.loc[-NPC_FULL:, 'Z'].values * 1e9 # nm\n", "\n", " # Run simulation with predicted intermolecular pressure\n", " data, _ = bls.simulate(f, A, Qm, Pm_comp_method=PmCompMethod.predict)\n", " Z2 = data.loc[-NPC_FULL:, 'Z'].values * 1e9 # nm\n", " \n", " # Plot figure \n", " t = np.linspace(0, 1 / f, NPC_FULL) * 1e6 # us\n", " fig, ax = plt.subplots(figsize=(5, 3))\n", " for skey in ['right', 'top']:\n", " ax.spines[skey].set_visible(False)\n", " ax.set_xlabel('time (us)', fontsize=fs)\n", " ax.set_ylabel('Deflection (nm)', fontsize=fs)\n", " ax.set_xticks([t[0], t[-1]])\n", " for item in ax.get_xticklabels() + ax.get_yticklabels():\n", " item.set_fontsize(fs)\n", " \n", " ax.plot(t, Z1, label='$P_m$')\n", " ax.plot(t, Z2, label='$P_{m,approx}$')\n", " ax.axhline(y=0, color='k')\n", " ax.legend(fontsize=fs, frameon=False)\n", " fig.tight_layout()\n", " \n", " return fig, Z1, Z2 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameters" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "neuron = CorticalRS()\n", - "Qm0 = neuron.Cm0 * neuron.Vm0 * 1e-3 # C/m2\n", - "bls = BilayerSonophore(32e-9, neuron.Cm0, Qm0)\n", + "pneuron = getPointNeuron('RS')\n", + "bls = BilayerSonophore(32e-9, pneuron.Cm0, pneuron.Qm0)\n", "f = 500e3\n", "A = 100e3\n", - "Qm = Qm0" + "Qm = pneuron.Qm0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Profiles comparison over deflection range " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Z = np.linspace(-0.4 * bls.Delta_, bls.a, 1000)\n", "fig = plotPmavg(bls, Z)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Error quantification over a typical acoustic cycle" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Z-error: R2 = 0.9996, RMSE = 0.0454 nm (0.8212% dZ)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, Z1, Z2 = plotZprofiles(bls, f, A, Qm)\n", "error_Z = rmse(Z1, Z2)\n", "r2_Z = rsquared(Z1, Z2)\n", "print('Z-error: R2 = {:.4f}, RMSE = {:.4f} nm ({:.4f}% dZ)'.format(\n", " r2_Z, error_Z, error_Z / (Z1.max() - Z1.min()) * 1e2))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/notebooks/STN neuron.ipynb b/notebooks/STN neuron.ipynb index 2f39529..3038b99 100644 --- a/notebooks/STN neuron.ipynb +++ b/notebooks/STN neuron.ipynb @@ -1,540 +1,540 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Subthalamic Nucleus neuron\n", "## Validation of the model implementation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import time\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from PySONIC.core import NeuronalBilayerSonophore\n", - "from PySONIC.neurons import OtsukaSTN\n", + "from PySONIC.neurons import getPointNeuron\n", "from PySONIC.utils import si_format, pow10_format, getStimPulses, Intensity2Pressure\n", "from PySONIC.postpro import findPeaks\n", "from PySONIC.constants import *\n", "\n", - "neuron = OtsukaSTN()" + "pneuron = getPointNeuron('STN')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Functions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "def runAndPlot(neuron, a, f, A, tstim, toffset, PRF=1e2, DC=1., fs=12, sr_interval='all', Vm0=None):\n", + "def runAndPlot(pneuron, a, f, A, tstim, toffset, PRF=1e2, DC=1., fs=12, sr_interval='all', Vm0=None):\n", " ''' Run ESTIM/ASTIM simulation of point-neuron model and plot resulting charge profile. '''\n", " \n", " # If different Vm0 provided: re-intialize neuron at different membrane potential\n", - " Vm0ref = neuron.Vm0\n", + " Vm0ref = pneuron.Vm0\n", " if Vm0 is not None:\n", - " neuron.Vm0 = Vm0\n", - " neuron.__init__()\n", + " pneuron.Vm0 = Vm0\n", + " pneuron.__init__()\n", " \n", " # Run ESTIM or ASTIM simulation\n", " tstart = time.time() \n", " if a is not None:\n", - " nbls = NeuronalBilayerSonophore(a, neuron)\n", + " nbls = NeuronalBilayerSonophore(a, pneuron)\n", " data, _ = nbls.simulate(f, A, tstim, toffset, PRF, DC, method='sonic')\n", " t, Qm, stimon = [data[key].values for key in ['t', 'Qm', 'stimstate']]\n", " title = '{}, A = {}Pa'.format(nbls.pprint(), si_format(A, space=' '))\n", " else:\n", - " data, _ = neuron.simulate(A, tstim, toffset, PRF, DC)\n", + " data, _ = pneuron.simulate(A, tstim, toffset, PRF, DC)\n", " t, Qm, stimon = [data[key].values for key in ['t', 'Qm', 'stimstate']]\n", " title = '{} (Vm0 = {:.1f} mV), A = {}A/m2'.format(\n", - " neuron.pprint(), neuron.Vm0, si_format(A * 1e-3, space=' '))\n", + " pneuron.pprint(), pneuron.Vm0, si_format(A * 1e-3, space=' '))\n", " tcomp = time.time() - tstart\n", " \n", " # Reset neuron membrane potential to its standard resting value \n", - " neuron.Vm0 = Vm0ref\n", - " neuron.__init__()\n", + " pneuron.Vm0 = Vm0ref\n", + " pneuron.__init__()\n", " \n", " # Detect spikes on Qm signal\n", " dt = t[1] - t[0]\n", " ipeaks, *_ = findPeaks(\n", " Qm,\n", " mph=SPIKE_MIN_QAMP,\n", " mpd=int(np.ceil(SPIKE_MIN_DT / dt)),\n", " mpp=SPIKE_MIN_QPROM\n", " )\n", " nspikes = len(ipeaks)\n", " if nspikes > 0:\n", " tspikes = t[ipeaks]\n", " \n", " # Restrict spikes analysis if needed\n", " if sr_interval is 'ON':\n", " tspikes = tspikes[tspikes <= tstim]\n", " elif sr_interval is 'OFF':\n", " tspikes = tspikes[tspikes > tstim]\n", " \n", " # Compute spike rate (Hz)\n", " if len(tspikes) > 1:\n", " sr = np.mean(1 / np.diff(tspikes))\n", " title += ' (sr = {:.1f} Hz)'.format(sr)\n", " elif len(tspikes == 1):\n", " title += ' (1 spike)'\n", " else:\n", " title += ' (no spike)'\n", " else:\n", " title += ' (no spike)'\n", " \n", " # Rescale vectors to appropriate units\n", " t *= 1e3\n", " Qm *= 1e5\n", " \n", " # Get pulses timing\n", " npatches, tpatch_on, tpatch_off = getStimPulses(t, stimon)\n", " \n", " # Add onset to signals\n", " t0 = -100.0\n", " t = np.hstack((np.array([t0, 0.]), t))\n", " Qm = np.hstack((np.ones(2) * Qm[0], Qm))\n", " \n", " # Create figure and plot charge density profile\n", " fig, ax = plt.subplots(figsize=(8, 3))\n", " ax.set_title(title, fontsize=fs)\n", " ax.set_xlabel('time (ms)', fontsize=fs)\n", " ax.set_ylabel('Qm (nC/cm2)', fontsize=fs)\n", " for key in ['top', 'right']:\n", " ax.spines[key].set_visible(False)\n", " for item in ax.get_xticklabels() + ax.get_yticklabels():\n", " item.set_fontsize(fs)\n", " ax.plot(t, Qm)\n", " if A != 0.0:\n", " for i in range(npatches):\n", " ax.axvspan(tpatch_on[i], tpatch_off[i], edgecolor='none',\n", " facecolor='#8A8A8A', alpha=0.2)\n", " ax.set_xlim(t0, (tstim + toffset) * 1e3)\n", " ax.set_ylim(-80, 70)\n", " ax.set_xlabel('time (ms)', fontsize=fs)\n", " \n", " return fig\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Spontaneous spiking activity" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ - "fig = runAndPlot(neuron, None, None, 0., 2., 0.)" + "fig = runAndPlot(pneuron, None, None, 0., 2., 0.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe a variable spontenaous firing rate between 5 and 20 Hz, with an average of about 13-14 Hz. This is slightly higher than that reported by Otsuka (approx. 10 Hz), but within the same order of magnitude. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Response to depolarizing current pulses" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for A in [5., 20., 60.]:\n", - " fig = runAndPlot(neuron, None, None, A, 1., 1., sr_interval='ON')" + " fig = runAndPlot(pneuron, None, None, A, 1., 1., sr_interval='ON')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, injection of depolarizing current induces an increase in the neuron's firing rate. Furthermore, the detected firing rates at 5, 20 and 60 mA/m2 current injection correspond to those indicated by Otsuka." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generation of plateau potentials" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we simply re-initialize the STN neuron at a membrane potential lower than its resting potential, in order to mimick the effect of a hyperpolarizing current that would drive the membrane to a hyperpolarized state and hence suppress the neuron's spontaneous activity.\n", "\n", "Then, we inject a short depolarizing pulse (50 ms, similarly as in Otsuka 2004), in order to elicit the plateau potential burst of spikes. \n", "\n", "Due to the current implementation, no hyperpolarizing current can be injected after the depolarizing pulse, hence the neuron's spontaneous activity can re-occur after the burst. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfkAAADeCAYAAAA+aHneAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXecFdXZ+L/PdnZhkd5RUAQFFAWxG3sUu1Fj1ESjhphujPHV5H0TTfxpYkvTGI3G3isasCugoCAoICC996Vvr8/vj5m5O/fu3Hvntr1lz/fz2c/emTlzznNmzpznOc9poqoYDAaDwWDIPfLSLYDBYDAYDIbUYJS8wWAwGAw5ilHyBoPBYDDkKEbJGwwGg8GQoxglbzAYDAZDjmKUvMFgMBgMOYpR8mlARK4TkfkislhEFonIUyIy2HX9WhH5cQLxTxWRi2K8Z4SITBaRBfbfNBE5zr52s4jMs/+qRGS163h/O72pIpLniq+niGT1/EwR+ZGITBSRx0TkXx7XvyUi82OM80gR+VxEvhaRD0SkX/IkBhHJF5FbReQLEVkqIn8REbGvnSMiO13vbp6IdPGIo5eIvGWXz4UickwC8lwpIks8zvcRkWr7/70icmKM8b4iIttFpDRe2ULiu1dE1rmeywuua7eIyBIRWWE/W0lCeqNFREXkfzyu5YnIV+7vyUd83xSRObbsX4jI6RHCniki/y9e2eNBRM4XkUrXcbGIPCQiy0XkSxH5Q7T8ishfReS/Ya7tJyJVHudvFZH7o8R7vYh8z29esg5VNX/t+AfcA7wHDLKP84DvARuBgfa5x4EbE0hjKnBRjPcsAi5wHZ8A7AG6R4vbPlcH/K/rXE+reKX/mcf5DPcFZgECjLOfRaeQMO8AE2OIswhYDxxrH/8ImJJkuW+w30cnoBj4DLjUvnYn8BsfcbzohAPG2GWzNE55SoDtTp5d528BnrV/dwW+Cn2+EeLsD1QA/wWuS9Jz+xQ4xuP8BOBLoMzOyzTgkiSk9yDwtF0eCkKuHQc8EkNcXYEdwEj7+BBgN9DFI2wX+1nH9T7jzOswYAVQ5Tp3G/C2/UwF+Dfw0whxXOK88zDX93PH7zp/K3B/FPnygS+Avu31TNrzL+0CdKQ/YCBQBXTzuPY34AHgAmCnXbH+BBgBzADm2gXxx3b4oMLrPrYr+YuAArvCfsb+fRQwHUt5rQMedd2/E7giRKZvAl1Dzk3FW8n/1q5YjrLPhVXywBpb3o+BtcAfXdfOseX70s730T7z+yqwGPiZ/ZzftCuzhcCv7XD7ASuBfwCzgeW4DJsQGf/lrnTs8N91He+HVbGW2r9XAQ8Bc4B5wLnAZDu9F7CMuWOBRa44ioB6oEdI2gfbcYT+fd9HGZsHnOo6HgD0sn9PA94H5tvP/gSP+wuAGuce1/O9MMx7vAPLkFgKXAP8x45/DtDfDncXwWVN7OdyjOvcv4Bf+PyObgWexyrjXwMSJtzfPZ7hLI9wxVhG6ut2mXkFGGxf+7dTfuzjq4A3wsj0FPChLdPT9vOYjqXIv+MK2wXYCxyEVT4vDYnrbuDsGMpVT+DbIe9wDzDEQ86bgXtcx7cBC+z43wH62efrseqOpcC4eJ6rHbYU63s+l2Al/1/gKtfxWcDUMHEcZMv3M+JU8liK3C3vOvudl7mey1/8lL9s+0u7AB3pD/gW8HmYa+cA8+3fj2O35IFHgZvt332xKrc8oiu9y4DX7AIu9vnngBPt352xLOOx9vF3gF3AJvvj/ikhrXhX3F5K/iLgB3blU050JX+P/XsAUAsMwbL4v8JWesBIYDNWKypaft1KZBpwg/27K5bSudSuCBQ42/U+1nrIJ/az2c917ipclRDw/5xKwRXvufbxg8Bq+zmU2M/0GFuGt0PS2gAcksQyVgP8HPgAq/K+Hci3r71qvyfBai3uwPYeue7vC9SFnHsa+HmY93if/fvbQDNwqH38Gq3egCFYSqezfXwa8GVIXBcC03zkrwDLAD4bSznvBM5M8JkNAaYAo+xn82ssI1OwWpuXusKeCnzhEcet9jvviuVF2Qnca187D1jmCvtjYI79+9eEKEg77RK/5cpDljsIX8/MobUOGGS/l2L7+FfA+fZvxWXUJvBsnwKuJkQJA/8HvIVVDxVhNUSWetzf2ZZ5FNY3GEnJN9PW+NhCSEse6I7luXS/18PxqAty4c/0ybc/hWHOF2N9WKG8BtwkIq9iVYQ/V9UWH+nci1WZ/lHtUgxcCewjIr8B/olVGXUGUNXngH5YXQdLsD7MxSKyn4+0sOP4N1YF9U8fwSfZ92wEtmF9eKfZMnwgIvOwPvwW4AAf8X0MICJlWC3mB+z492AZTWfa4RqxKnSwPCPdPeLqAeyjqmtc554HRtpjEAqwnqU7n41Y3gOwDJ2ZqrpXVeuwKuPuWMZZ6DsWrMqp9YTIwSH95s7f96M/BgqxPDYTsJ7DcVgtIFT1QlV9WS0+AWZiPXM3vmR08Yorz1tUdb7ruLud7mrgEyyXK8BELOPTzWpguI/8nYfVKntbVeux3sv1XgFF5O8ez3BWaDhVXa2qE1R1of2t3APsj6U4Qp9HpGfxvqruUdVarHf+tn0+8CxsrgOesH8/DYwVkaNtmQ8GVtnlBvyVKye/BSLyd+BiLAPWixFYrnOwjKX5wBcicg8wT1Vfd4X92CsCv89VrHFFTar6H49o/oylaD/F8i7NBBo8wj0K/ENVF4bJj5taVR3j/sPyELll6oT1PJ9S1eddl1YDg0WkxEc6WUVBugXoYHwGDBORvqq6JeTaSVgFPQhV/a+IDMOqjE8Bfi8iY7EqHvcAoKKQW5+ita/rXPvcdKzW3dtYrfUjARGREVius5uxPrj3gd+JyPtYLb97YsjjD+w0rogSrtadTVvWfOADVf22c0FEBmFVZucTOb/OoJu8kHDOOce4anAZSaHPMEgeEclzwqpqnYg8jmX8fA4sVNXlrnsaXMYUWJVzKOuw+pOdvBViGRQbgxJXXYzVFx4REelPq8EClmLfBDxnK8B6EXkJOMGW/cfAnS45xUPObXbeu6vqTvtcfyyPgxf1rt9eeXb4J/AbEXkTOB7LmHTTSHjl6ebHWMbpCnv8WxHQT0RGquoid0BV/bmP+BCRQ7A8EE+5T9syBb0z/D8L8HgeInI8Vqv0JhH5lX26AfgllsI7H9sAdq75KFeISDfgZVvuo1R1RxgZW7AHXKtqi4h8A2vMyanAX0TkbVW9yQ7bZiCbfZ+v54rV8i61DfYioJP9e4Itx72qeqMt/2W0Gh9OngZilZXhIvJLLIOmq4hMUdUJPmVwx5cPPIv17f4p5HID1nfvpwGVVZiWfDtit1r/DjwnIgOc83YL7VtY1i1AE7ZSEpFnsfrbnseq4PZitTIqsFoAItYI6bNDkpuN5RI7QER+ICL7AEcA/6Oqr2L1Wx+ApVi3AhPFNSJfRLpjudK/iDGPu7AU/B2x3GfzAXC6bXQgIhOwDIZORM+vk34lljH1EzuOrlgK5b0Y8rADq+ti35BLD2K53K+ibUvUD7OAHtI6Wv1q4FNV3R1HXKjqppCWyyasiv4Ke4R2IdZz+hyoxHomFwKIyGHAeFpbm06cTVh9vhPtcIdgjRGYGo+MLt7C6gr4LfC03dp1MwTLgxQWETkQ+AZWF9N+9l9/LOP1FwnI1gL8XUSG2Mc/Ahao6gYshXu5iJSJSDHWu3/dOxpf/AirFTnIyQPWO7pQrBk2Z2H1V/vGVl5TsFqjp0dQ8ADLsOoPRORQrDEBX6vqncBfsOqIpKCq41V1lN2inkBrS3sTVsPjIft77oxl5DwTcv8GVe3vapX/Dvg4HgVvcz9WvfoTj2tDgdWq6uVNyGpMS76dUdVbROQaYJLtGirGUshHq+paO9hbwH12S+WPwCMi8kOsls5rWJXaPCwX9HKsluA0QlqlduvzKuBdrAFBd2K55qqxWiMzgANU9QMRORm403bbVWO1Su5Q1Q/jyOM0EbkPq0KP5b7FIjIReF6szDdh9UdWicgz0fLr4nLgAdt4KsKy3h+nrdKOxCvAGViK3ZFvlVjTwUYT3IL2hao2isiFwP12t8IO2rZoE+V/sYzFhVjf93vAX1W1WUTOA/4hIrdhPdtvq+p2ABGZAvxLVd/AMiYfEZGFtPbN7klEKLvV+C+sMujllj8DeMmW5TqswV7XhoT5EfCaqq4IOf8H4L8i8hsnPzHKtlBEfga8aSvMDVhjVFDVN0VkNNY3WoSl9J+MNQ2wpiZiGVnjQtL/UEQ+xTLK610eFL9cgtVF0xmYI60z/L6rql+FhH0Z61l/pKrzReRF+54qLO+a31Z6ovwHy5O4EKuh8W9VfRkivv+4sbtDrsNqNHwurQ/pWlWdg6v85RrOgCyDweDCbtW9jFXZmI8khYhIOVZX1TjbMO2C1Q97VXolyz3sZ/0Z1rOuSbc8mYBt2H2B5QXZmm55ko1R8gZDGETk51h9om0WwjEkD9vrM0VV37ePjwcqVDWi+94QH7ZH50hV/U26ZckE7P7+3ar6WLplSQVGyRsMBoPBkKOYgXcGg8FgMOQoRskbDAaDwZCjGCVvMBgMBkOOkhNT6M444wx9++23owdMAlu2hK5hE52+ffumQBKDwWAwdGB87YaYEy357dtjnhprMBgMBkPOkxNK3mAwGAwGQ1uMkjcYDAaDIUcxSt5gMBgMhhzFKHmDwWAwGHIUo+QNBoPBYMhR0qbkRWS0iEwVkS9FZI69RzoicouILBGRFSJyq2u3IIPBYDAYDDGQFiUvIqVY25/epaqHYW2n+oy9f/glwFhgFHAScHE6ZDQYDAaDIdtJV0v+dGClqjp7cr+BpdwvAJ5V1WpVrQMeA65Ik4wGg8FgMGQ16VLyBwJbRORREZkDvIe1+t4gYL0r3AZgYBrkMxgMBoMh60nXsraFwATgJFWdZe9vPAX4GnDvfStAs1cEIjIRmAgwePDg1EprMBgMBkMWkq6W/Cbga1WdBaCqk4B8oAXo7wrXH6s13wZVfVhVx6nquF69eqVaXoPBYDAYso50Kfm3gCGuEfUnYLXg/wpcLiJlIlIMXAW8niYZDQaDwWDIatLirlfVLSJyPvBPESkD6oELVfUTERkNzAaKgEnAk+mQ0WAwGAyGbCdtW82q6nTgSI/zdwB3tL9EBoPBYDDkFmbFO4PBYDAYchSj5A0Gg8FgyFGMkjcYDAaDIUcxSt5gMBgMhhzFKHmDwWAwGHIUo+QNBoPBYMhRjJI3GAwGgyFHMUreYDAYDIYcxSh5g8FgMBhyFKPkDQaDwWDIUYySNxgMBoMhRzFK3mAwGAyGHMUoeYPBYDAYcpS0KnkROV9EKl3Ht4jIEhFZISK3ioikUz6DwWAwGLKZtCl5ERkG3AOIfTwBuAQYC4wCTgIuTpd8BoPBYDBkO2lR8iJSCjwN3OA6fQHwrKpWq2od8BhwRTrkC8f6nTUc9de5fLWpKt2iGAwGg8EQlXS15B+y/xa4zg0C1ruONwADw0UgIhNFZI6IzKmoqEiNlCFMX26lM3nxjnZJz2AwGAyGRGh3JS8iPwaaVPU/HrKoOyjQHC4eVX1YVcep6rhevXqlQNLwaPQgBoPBYDCknXS05K8CjhCRecAUoJP9ewPQ3xWuv30uYxDMOECDIV00NLWwsiKxrrKnPl3D5j21CcWxcOMe5q/fnVAcoVTVN7Fxd2JyGdqX5hblsRmrqW8K2xbNCNpdyavqeFUdpapjgAlArf37NeByESkTkWIsY+D19pbPYDBkJre+uYhT7p3Gtr11cd2/rbKO/5u0iKv+83lCcpz9j08474EZCcURyoX/nMGxf/owqXEawtPQ1MK6HTUJxfHK3A3c9uZiHvhoZcLy3PDiPH7y7BcJx+NFxsyTV9U3gVeB2cBCYC7wZFqFCoNx1yePhqYWZqzY3ub81r11HP7H91ixrbLNtW2VdTz16ZqE0h1yy2Suemy2r7A7quo95TD458g73ueKR2YlFMesVdZYmL11jXHd39Ji/d9V05CQHKlg2VYzmNcPO6rqE/bEANz86gJOuPujuMsSWN4XgL218cfh8OoXG5m8YHPC8XiRViWvqmtUtbPr+A5VHamqw1T1RlXNKH1qZu0nRnV9E80twa/0rreXcPkjs/hy3a6g8299tZmd1Q089enaNvH8+Okv+L9Ji1i9vdoznUsf/jSqVawKU5f6G7B54j1TOfW+6b7CGrzZureeTzyMuXiIt1Yw32/2M/b29zn6zsQ9Hh8vt8piXUP8rvZsKU8Z05I3ZB6NzS3MDKmYK+saqWts/TDW7qhmv5snM3XptsC5PTWN/OL5L4Os5JYWZeTv3+G3r30VFJ/Tx7qz2rt15VWfOy2xZqdpFsJnq3Ym1SqurGtKWlyG+HHWxkrU8s+oloMhrSSjLGRYW7QNRsnHQSIvdcOumrj7FNubu95ewmWPzGKea5DR6Fvf5ay/fxw4nrvWaoFPmrcpcO7hj1cyad4mnpy5JnCu2X5mL80NHksZblFDP4sdZvi3ZcgwsqThZWgHOlJZMEq+nTnuzx8x/o4PAscPTVvJim3e/XFb9tTx0LSVAaNixortPDy9dZDHb177iv97fWHgeFVFVVCLeNK8jSzf6r8vedqyCl7/cmPg2JFrR1V9ULiVFW3d5F6Gj/tUMj8qs9qxwWAw+MMo+TRS19jMnW8t4aJ/zQSsQWh/e395wB3+o2fmcudbSwJK9fJHZnHHlCWB+5+dtY6nPmvtsz753mmcePdHgeNfPD+P0/7S2pd88j1TeXBqq5Fw3gMz+P2kViPhyv/M5voX5gWO/ShTJ0jwAgfh3aqxekFMa93gkCzTzpQpQzLIlqaGUfIxEPpS//juGt5YmPhgohp78Mczs9byl/eXBRRxld0XHDpYLRJ7I/Qfr9pezZ/fbjUS5q/fzRMeA9sSJaD4Y6hMQ8P6aaybutoQE4EyZUqOwSIZBl+mlyaj5GMgVPFMXryDO963lOTeuiZ211oKdva6vbw83xqI9uHyXdzzzlJf8dc1ttj/mz3TSxexfgixiO2EjSWJDHkshizDLGZlcEhG3Zot3YYF6RYgVzj9X/MB+Oz6sfz81eUAXHRob34zeRUAN35zeNQ4vFzf6cSPAg645j0CqcedsebNKw5Dx8a42w0G/5iWfBwkvZKx4wtnF6ZL0cVtqEoExe8zK9lhIxvak1Yj2Gh5Q3JIRlnKdKPTKPkYSLa7L5oSzVb3opcHINx30Np/7x0i0geU6R+XITMx5caQjLo1S7z10d31InII1l7vw7F2hVsCvKyq/jqaDVEJtSYzbXGFSPJ4FfTYCn+WfCmGrCfTusMMhvYgbEteRHqKyEvAc0B3rDXlPwO6AS+JyAsi0qd9xMwsUlVJhBuVnj6d73+FMc8wGWasGLKbbPVsGXKbTO8+itSSfwy4S1U/9rooIicCjwJnp0CuzCTFdUxoJZYt7qBQvObJx6zvIyxhmq3PxWAwZBaJtEOypRqKpOTPU1XvxcEBVZ0qImbXjiTQpuWeHjGSRlzz5ONIJ9MtaENqiHuDmsD9ptwYkkemF6ew7npVbRGRE0XkylC3vIhc6YSJN2ERuUJE5ovIPBGZKSLj7PO3iMgSEVkhIrdKBk5GTNZLjWcBmPYkFmUdb8WZaXk2ZC6JlpUMrEoMhpQTqU/+BuAh4BLgaxE5yXX5F4kkKiLDgbuBM1R1DHA78KqITLDTGwuMAk4CLk4krWSSrioiXZZia34jDbxLzVNpbXWlJHpDFmPKhCFROpK9F2kK3dXAEap6FnAZ8IKIjLavJfqI6oFrVdXZD3QO0BdLoT+rqtWqWoc1LuCKBNNKAcmtZUJjy/ZKrHUKXWtGornWY/FqmAFYhkTI8s/LkEQSKgtZYilEUvKNqroXQFXfBm4E3hCRHiT4bFR1japOBrDd8fcBbwD9gPWuoBuAgV5xiMhEEZkjInMqKioSESfthLq6s7GvOWiDmhjc/H68BQZDMsiOKtmQbWR6zRVJyVeIyPdFpARAVZ8EXgWmAF2TkbiIlAEvAgcA19ryBG9oZs3Nb4OqPqyq41R1XK9evZIhTlRS3acXLv50r3gXSVl77fkhEUbGGwyJkuj3kO2eMkNmkC1GYyQl/yMsl/23nROq+itgOrBvogmLyGBgJpYSP0lVdwPrgP6uYP2xWvMdEomwPGy7pJ8RxTh85k1l3bFI1MiOtrqioePQkWZaRBpdv1JVj1fVJ0LO/5oElbyIdAGmAq+q6qWqWmtfmgRcLiJlIlIMXAW8nkhaqSBFS9e3HudguQuXp3D1diQDI0u6wgwZRi5+V4b0k+nlys+ytn2xlG33kEs3JZDuT7EMhQtE5ALX+VOwugRmA0VYSv/JBNJJKske8d1msFlyok06EXehi7BpSKYXfoPBYIiXbGls+Nlq9g0sl/nKZCWqqncCd4a5fIf91+EILTTpLkPxLGoTdF8MPo9waZgNagyhJPreTbExdKQ1E/wo+SJVvTDlknRgMlVZxfsdxNKXHy5svAaGIXdJWrVsypTBJjn1S2YXKD9bzc4VkVEplyQLaK9drLJpMEhgnXovkRNY1tZPhZ6NUw0N6cOUFkMyyYyBydHx05KfAcwTkc1Ao3NSVYemTKoMJdkenlAlFboPe6Z4lCIpU68WdyxyJ5LHbPnIDAZD7pLpbTI/Sv7XWCveJa1PPttJ1UsNO08+zVPo4k0/ltvC9slHmkJn2mYdimR14ZhSY0gGmdIIi4YfJb9bVV9MuSRZQHu1HDPGMoy7T74t0abQtfFqRFrWNs3rBxjSQ7Iq1WzqDjMYEsWPkv9QRO4BXsFacx4AVf0iZVJ1EKKt1x7PKPVUEHEKXSCM1xS66HJHM5y8osgSA9pgMHQAMt1m9KPkL7P/f8t1ToEO1yffSvu81XT3OftZFcqrdZUMt2q6827IXOI1ek0L3uCQnDoqO4iq5FV1iIh0VtUqex37clXd1g6yZRztNa0rtBLLhropaOBdHMU/fJ98W7KlL8yQXBIdI+KQBZ+TIcUk00uabk9rNKJOoRORS4Av7cPBwEIROSelUnVQQlfUa68pe4nhbzOasB9CuDwaRW4IoSMYd8bb0D50JE+hn3nyvwVOAlDVZcBY4LZUCtVRaKvYMmv3tkRXhUpGPsyKd4ZkY8qNoSPhR8nnq2pgJzhVXe/zvpwlVXVEptmW8a7Vn+r+rkwZkGhID/G+9WwoLcYAaV8SqqMyrcIOgx9lvU1EfigiBSKSLyJXA1tTLVgm0l7rHQfc9YHj9O4n7ydMvCLGk8eO5GoztJKst57JxmHmSpZbJLMrNNMNMz9K/jpgIlAL1Nm/f5QqgUTkLBFZICJLReQlESlPVVrxkrxd6MLNDQ/ulE93GYq44p0rVKT7ws+TjzKFLu25N2Qaudxvnct5yySSYTBmS2MjrJIXkYPA6odX1bFAb6C7qh6lqqtSIYyI9AIeA76lqsOBVcCfUpFWPLT3K013EfKTvpeSTobHQ3yY2qY+7GAkyZNmyo0hmWR6cYrUkv+DiMwVkbtE5FhV3aWqlSmW53Tgc1Vdbh8/CFwuHWlfQA+yoVLykjH1ffKGjkii7z2Ty00my5aLJOQ5yZKdMsMqeVW9GDgamApcabvQHxGRs0WkOEXyDALWu443AOVAlxSll1GEzgNu475PE5EKsZcyjsUii2dwX4e2+Dowib73TK+MITtkzAWS4m20/2d6l2LEPnlVbVDVKao6UVUPAR4FjsPamS5V8ng9sebQEyIyUUTmiMicioqKFIkTmqb1P1kvtc32qiGWYbqVWbxrxHt9P+GiiPatZfbnY0gHuawIM11h5Bod4WlHVPIi0kNEertOdQLuVdVxKZJnHdDfdTwA2KWq1aEBVfVhVR2nquN69eqVInGCSfVAC7+xt9fgnNCtbyORbIlaDZ4Iu9Dlcm1vaEPSOu0yuNiYIt0+pLsB1Z5EGng3ElgCHOs6fSGwQESGp0ied4GjRGSYfXwdMClFaWUs0Za1zaSKIJIyjkUJx9SCyZBZB4bsxLSWDQ6JzZPPjsFBkdau/xPwC1V9zTmhqj8VkTnAXcB5yRZGVbeJyPeBl0WkCGsP++8lO51ESd4UuuDjNu76cPvLJyf5pOBVzmPxAJg+eUPsxLlBTUZ9OYa0koRKJJZ6Lp1EUvKDVfXZ0JOq+riI3JgqgVR1CjAlVfEnQqoNt8DAu5DzbY5VaRdV58Nl7tWF4dWXHy6OcIaMn2edSR4NQ+qJdwXGbCKX85aZxP/As2XOV6Q++TaD3Vw0JFuQXMeX6zp0P/nAvUkXxxexjEFIeGewUK9GhB3H0vVxmTEA6SVZM2kz+TUab0P7kMy6NdPrhUhKfquIjAk9KSKHAW0GwhkiE0s5aDuFLuR64uLERCrTyxJj2JBDZHKVnOH6wuAiS7rkI7rr/whMEpHbgJlYBsHRwO+Aa9tBtowj6S3rNq1X53TowLvIA/FShfjpdPLQ0l5TDVMjcvt+XqrZ46LLZRJeDCeDNWnmSpabJPK8s35ZW1WdCXwXuAKYjaXoLwIuV9X32ke8zCLWCt5dmfgahBaSQPg++vadQucHz4F3sXgvQtOOYCWnqxvDVMDpJeH3ngUvMJMNkFwi3jVAspFILXlUdTpwcjvJknO4y09Mg+WiFDw/BbPd59K704vFGooyuM/rfLpWOW63AY8GT4wXxZAskrlaXaYbChGVPICI9MGar94dVw2nqj9PoVwZSmy1TNDocq/rIWcztQ6LuAtdgjVvNJdXJm1bkOHfcochUQM2k99jJstmCCYX+uQdnsEaaPclmZ+fdsFvJRPcko8hfudHmA0Q2rtPPta16x3izX9QHJFWvIsvSkMHJ5NbXpksWy7SEUbX+1HyA1T1oJRLkgXE3KgMaslHLwih8YcdiOcjrraGQewFMd6BJcnpkw+fdtr65DP7W855Eh3olBWvLyuEzH78NGCix5E5XsZIRFy73matiJSlXJIswm+5CBpdHtMUOitwlpQhIDh/seyeF20Ev+fAu3TNkzc1sCHFmDLWPrQOak5Cn3zCMaQWPy35zcA8EZkK1DonO2KffMwN+RgH0IXt40mTuz5M8kEkqnDD3Z6J9o1pyWdbzjq1AAAgAElEQVQGufwaTBlrX5KwnXzG40fJr7H/DDESa/kJdUf6XebWT9rxFOZYXFpRLeIUVF6Z3hdmSDLZUqsmgCnRWUiGv7SwSl5EeqlqhareFiFMb1XdlhrRMhf/7nrX7zhWvAt/vZ2mx/moVL2Wn420JG04whoJHqfDGT+GjoGx7QyJkowuv2zpTo3UJ/8fEblBRLqFXhCRchH5NfB4yiTLQGJeQCHKwLtYFoCJdF+MosRxb6QpdHYYjz55X8v1hwkb8QNK29r16UnXYJHoa8+G92e8U+1LUkbXZ3hzI5KSPw/IBxaKyIci8rCIPGL3zS+1r8W13ayIXCEi80VknojMFJFxrmu3iMgSEVkhIrdKBg1hjH1wfXIG3sUzhS45lUX6V4WK9AG1/9iEzP6YDdmPKWHtSyLfdDwey3QQ1l2vqi3A3SJyP9aqdyOwyuBrwPuqWh9PgiIyHLgbOFxVN4vIBOBVYLD9+xJgLNYueO8Ai4EX40kr3URbDCeUNsvahrMq2nmefDKI9WOKNF0qXVZfpn/MHYV4K+ZsMNJMGWsfktF2TMY0vPYg6sA7Va0FJtt/yaAeuFZVN9vHc4C+IlIEXAA8q6rVACLyGNba+dmp5N2/YygJbQfaxT5Pvk2csaSv6vsj8JrLH8uSkaZ/3eCXzPHppY5sMERyiUxX0MnAzzz5uBCRCSLSFPoHnKCqk+0wAtwHvKGqDcAgYL0rmg3AwFTJGCutlpvPkhHjALrQ6eWJuIMS6oMP7R6IFDjSLnQJ9MmHkyVYrvb9QjtAfZDTZEWFng0y5hAd4XH7mUIXF6o6JVL89gI7j2Mp9jPs03kEP3fBctt73T8RmAgwePDgxAX2QSItCX/uen/ptduytjEk6Dm6Psx1X2lHeNa+tsBNAWZQVIZgXoMhQTw31oo3jgwvkClryUdCRAZjbV3bDJykqrvtS+uA/q6g/bFa821Q1YdVdZyqjuvVq1dK5Y2XRJRcuHi8jj3viaU1Hib+mKbQeV5LDenaxzmzP+XcpyMsa5sNMuYCyZxCl+m2v59d6PoCV2HtQhdAVW+KJ0ER6QJMBZ7wmIM/Cfi9iDwMNNnpPh5POqnE9wy6KCPvwsUTzTJMdYsydEvVVKbWOm3QO5VM+oAySZaOTC6/BlPG2pfEHnd2jCfy465/A6s1vTJJaf4U2Be4QEQucJ0/RVXfFJHRwGygCEvpP5mkdBMm1j7yoJZ8LIPQ2n/xOM/4/bScIk5x85Wadxp+DO1M/7gMycUMvDMkm8Q2qEmeHKnEj5IvUtULk5Wgqt4J3Bnh+h3AHclKL53E6q4P3wcfMrrezzz50BH5Mc3Tj3wcJsFWPPIRdYGfcAPvPO5Mm5vM1L9ZTTaMqcgCEXOCWDbRikamvzM/ffJzRWRUyiXJRWKcJx8I64yuF293UHtZ+7FYqp4r+iVg2PgaeNfOmFZWZpDplWoi5HDWMopkLGSTJQ15Xy35GVi70G0GGp2Tqjo0ZVLlCNHmybdZyjVwnwYdxzXyrs0tsczTD/UCRJzHlhSyoXLLZeWSDUQbvxGNbHh/2eBtMISS2e/Mj5L/NXAZyeuTz1pirVxi/WD9TqHzl3bi98YyUy3e9KJlMZPmyRsMhtwikRokg1Zcj4gfJb9bVbNyxblUEd/Au/jjb7viXWbjVfSjGjxtrkda1tZMoevI5HJjN5fzlkkkc1xPpr8zP0r+QxG5B3gFa0laAFT1i5RJleFE3jRFXb/x/B0+nuA++NYFG0LT8CdnvPcka4U9XzMK0uStiC+9DP+acxyzBLLBIZalt71I7mI4mY0fJX+Z/f9brnMKmD55D+Kd+w7+rctUu6kDYwJ8bK2bLEnCP7e2+N2SN9lk+sfcUYi3Ys4GGy0bZMwEVNM/hS3mZc7ThJ8Naoa0hyDZgL8tXl2/gy5Ev9dvmW3/LVZ9hIlTqHCu93R/wF5k+Lec82RimUg2ZpyJP1LduMglIip5EekMXAccizXd7lPgn1j7yG9U1Q9TLmEGEqlghBtRH+OQveCjNn30qaV1Cl8M97h+e7nR4p4nH8mLYLRuhySX37op0v4IXZUzZnx4KXOFSBvIdMdS6l8D79mnT8baGrYSOCnl0mUoEQtGmJa85z0+FVubGXQxbhgTK7Gk51yKJX9uws6Tj35rGtz1HaBGyAbifA3m/eUOib7JZGwuk65uw1iJ1JK/DXhEVe92nXtARF4GGlV1b2pFyzxiXmkuxrcftl86jhXv2sYRS1hnnr7/ZW3dyjoe+zquVrnplO+Q5LKyzt2cZRbJeM7JWFCnPYik5E8ExrhP2K37g4DCFMqU1YTrk4+nYgq34p0vORIoxvFM90tkvjtEmnOaOV9Q5khiiIdMr4zBdEH5JWmPKSGPZ3a8q0jL2raoauhe7pVYo+xrUydSdhPORe89hS56HOHuzRRSJZqvwX7t/JFl8nvoSOTye8jhrCWVZH37yYgl099ZxLXrRaTcfayqjcCWlEqUBfidUuYuiJ5d1mH75DXof7SBeH6IaVnbGOJvcVz7cQy2izWtZN5ryD78TOmMRDYUF1Om/ZGs55ScxXAy+6VFUvLPAg+LSLFzQkRKgH8BTycjcRE5X0QqQ87dIiJLRGSFiNwqGbR2YKyvMrgl3/bucDvFRR2J7kOShMpdTP76tqfieWPhd+CLkHS7TyXM7I+5o5DbbyG3c5cpJGPgXbYQScnfY/9fJSKTRGQSsApodl2LGxEZZscjrnMTgEuAscAorBH8FyeaVrsSw1SwtuecAW+Rw6VauTkF35cx4fMjiX3dfz9xti8ZbrDnPIla+5ne4jL4J9FXmRQ3fQqKUyrKaFglr6rNqnop1pz4j+y/81T1ck1QEhEpxfIG3BBy6QLgWVWtVtU64DHgikTSSgURl7WN4qJ30xLyGMPvqR752A+JLGsbyZnid+Bd/NOeModMkqUjk8vKOoezllSS1iefYd2FqYjTz4p3c7DmxseE3Sp/w+PS1cBpwEPAgpBrg4APXMcbgIFh4p8ITAQYPHhwrOLFRfC69N5vI9pgu3BhAVochRmiVNu25P20sEPjTk3t0SqzhwyuNFtS8kGYGrEjkstvPZfzlkyS1iefpnvbM86IA+8SQVWnqGpB6B/QGWhS1f+EkcedT8HqHvCK/2FVHaeq43r16pX8DERA1d/I+KBWvS/3c3Cg1il0IS1+XzIGh4pFyQaG+/mR2SOQp8IPI3V4izx2QybVGKMivSS6c1iy314qyoMpYv5I1mNK5B1GGnQcL6koU342qEk2VwGlIjIPKAI62b8nAOuA/q6w/bFa8xlH2HcR1uXuMfDOZ197tHBeBSNUqcdSeELDRirCkWJ1X4tmZISdJe9jtb32wlTAhlTTEQaCJYNMMLhT4q5PfpSpa8mHQ1XHq+ooVR2DpdhrVXWMqm4CJgGXi0iZPar/KuD19pbRD376z6PPkw9tbYcZeOdDlmiKP56WvK+wvgYUQkuM/np/Mw3S/6Eb0kF87z3ZlXK29MnmIklryWeEFKklHS35sKjqmyIyGpiN1cqfBDyZXqlaCeeKDwoTrq/e41w0vRfeWo3uvg+NO5Y++VQsgRtr5eUEz5j5k5gKON207gGeVjECpKRPNkPylulkwop3gfFIyZEESNPAu1Siqmuw+ujd5+4A7kiLQFEIHngXJkxQeO97w52LtjhOuHB+4k5k4F2kLie/xkt4o8g7XkfePB8j+w0dAw35H38MySHhndAM8ZO0gXcJlCZHySexCKSiuyajWvKZjqO88kR8Drzz/h3uXFv3ffQ0wsXdtk8+9DhCX3cMXorAKVdBb25pASDfVfqjeutDvpTmluiDWtp94F2WuOdylURnaDS3JEeOVGLKmD8Sfk5JaCGk4l3lXEs+22gdTQlNPjRwtEIQ2k9t68aAvnPSiz7wzmMEfpSWfMQK0+kPD7mn2eMmrzw6lWlenlvJR+2b8Dz0nprneYtv4h20YzwH6UXDfA9+8Sq/iWDc9ekjaVPoMsxdnwrafeBdNuOuI8JVGBrmwKswNTZ7K9F8WzkGlHybPvi2x02hcUVR6pGUrnPFMWQk5NgrXndBd9J26fiobvnQFnu4QYiQeGUd7+2m/k0vrYMx43sTyV4rwijk9JHoow90/SQQUSaM8PeDUfIxEBhkFqElH9RvH3ylTdjGEP9hg31ckG+9FkeZ+WnJh8YVqvRDvQYNTeF9l078gfQJPg4O66H4Q4yVcOGgraETiMPVNRJKq1ztW9lny0edq4TzbPklrPctgzBFrH1w6sdEHnertzGZ8+STFlUAo+RjIDAYDPHVkg+dQheqaJtaQhWzreSdlnxL23i8jqHVQHAIVfrRjr0IrRS9KknHWCgqyGsTzq2gQz0LgfMt3h+b8yzchkJr/Na1THHbGtqHRFvireM8kiFNivpkjb/IF4ka3K0NqPjjcercwvwkKvkUvH+j5GPAUWgF+UJ9U/SXoSG/QxVxQ0gcTqvWUWz1dnivlEJH+oe2iEOP6xpD047QkrdTdBStk1STh2HQWtBdSt5DQYem7xBQuBoqr7XQYXFh2yLqZC3ez8GJO1ZM9ZtenDIb73vwM2MjFkyrO30k+uhDG1jx0BjieU0GpiWfZqrrLeVQWphHVUOronC3isNNm1OFvXWNQfHVNDQFHVfa10uL8oOOQ1GUalf6ilJdHxxXaFq1jU0hx+EVnSO2k4aTi8q6pjZha+0wJS5l7MjSqTA/cC6cYnXOh5btOrtCLy5oW0TrnXsidBVEIpzBEQ1TqcdHfVN8RlUoznuLt/XllLWiJFbKycaUMX8k+pwak+Cud4zOQg9vY7yk4vVnbmnPQBzlVVKYx5a99YHz26paFeoelyLcUd16XlG2VzYExbfVjqNHWREAW/bWAa0Ly1TY11U1qOWtClvtsF7HANtc8rnTCnfsNhKcgrajqjV9Kz/B8gNU2GE6F7dO1NhZY4dzlf2KSiucW/ED7K7xNmT21Frniwvy21wLd09Q2hEINYD8Y2rgeNgT4X3FQnVDWyMzJjnsMlXeKf5JRX66uRLBlLDwuA34RN3au+16IhFjYZddrjuXJDZJLbhuN+76tFJlVzKqsGhLNQBF+cJi+zfA/I1Vgd/TVu4Oun/x5r1Bxws2WNf77VNiH++x4rdb5pW24lWPe+eta41bgfnrg9Oab8fdq0uxdWxf720fO2k7LNy4pzU+VVpalK83V0aUH2Dplsrw51zldWWF9Vz623kNPR9atldus857eVa3hBg0btbuqAn8DvfBrN5e7Xnei2QpqI7MGtc7SYR1OxOLxykb/ffplEAcrWUnWfWx28tlBneGZ+Pu2taDBB/T3kBjLP6INtjlMT/B7p/1u5LzfYTDzJOPgRrbXf/fxTsC50oK85i1tlX5fbB8V+D3a19tD/xWhY+WbAscNzS18M6iLYHjFdsqWWIrR1WY8tXm1oQVJs3bGBTX60HHyuvzNgHQtVMhTc0tvDnfOi7Kz6O5RZlsx9fJ7gp4c4F17LTAJ7vTAz5fs7ONS3/yAivObqWFAOyqbuDTlTsCMoHVYp+7dpcjdkC+9xZvDUoPrArT8Q64K7fahmY+XRUcr8Oyra1GhVd9OG3ptqDrXt/f1KUVbWQJx3tfb42YniE605dVJBzHlj11Ca+PMHOl9T36ee/hmL7M9U0nqd3tfj6miIVnapKe05oYjPxwNLcoM526L8G4nPooGXF5YVryMRDa792vvIi9dc18uKJVsc9ZX0nPssLA8Tf23wew+rPfdymM1+dtZFdNIwV5gio88vHqQF9hiyr/mbEm0M+9q6aBl+duCLi6l2zZyycrttPFdhNNXVrBim1VlBXlo6pMWbiFzXvqAtffXriFDbtqKSnMQxXmrNnJ/PW7KSrIQ1XZVW3F76AKj3yyOjDPXRUWbdrDZ6t2BuX/2dnrqA8ZDPXIJ6uClDvApyt3sGjT3qBwAA9OXdmapuv885+v8+z/V1XueWep657gT2JndQNPz1rnGafDwo17eMXOq1d/v5t563fzp7eWRIzPEJkV2yp5fOYaoHXWSDz87YPlgd/xKNcZK7YzY4W34eiXLXvqeHCaq8wmoUCs31nD7ZO/TmqcucjG3bX8w10G4nxOqspf3l+WcDxPzFwT8Cgm8s427KrhwakrEpYnEkbJx0CVS8n/9fwDOG5oV8AaJX/xmNY97a8a3zfw+9QDuwFw33tLqW9q4ZQRvQG46eUFjBm0D984sBeLNu3l+c/Xc/lRgykqyOO52ev5evNefnnqgQDc+dYSahua+dkpBwDw65cXUF5SyPeP2Q+Anz33Jfv2KOX8wwawt66JX780nxF9u3DaQX3YuLuWX788n2G9O3P6wX1Zt7OGiU/NpVeXYr51+ECqG5r5zr8/o66xmR+eMBSAX700n/cWb+Wa44YA8PDHq/jlC/MoLynggsMGsKumkY+WbuOhaSs5aXgv+nctYdbqHazeXs1Tn67lnEP6U1qUz5ItlTQ1t/Cnt5fQp7yYYw/owe6aRppblGVbK3lxznouPHwA0DrKfsueOu57dxnH7N+D8pC+rtfnbeTdxVu5/MjBQPAH0dKi3PzKAirrGjlrdD/7evAXs2xrJd99dBa9uhRz+sF9wqqKlhbloWkruejBmRQX5PGLU4a1Sc8QHlVlyZa93PvuUs5/YCYlhXmcP6Z/XEbSruoGbn1jEc/NXsfpB/ex4/d/f2NzC8/PXsfEJ+cwtFcZB/crj9lIqG1o5oXP13HO/Z9Q29DM+WP6R78pAtv21jHlq83c9PJ8TvvLNHZVNwS+dWNKttLY3MLCjXu4992lnPHX6dQ2NPO9o/cF4jP0tlXWcf0L85g0b1NrHRFjHLuqG7hjytf84b+LOWVE74BXM1YqKut55ONVnPOPT6hvauHSIwYRl0A+MO76GHC7r8cO6sJHK6x+7W8f1pvB3ay+5tH9yujTxRpIV16SH2idf7ZqJ+eN6c9+Pcr4YMk2Rg/oykPfHcsVj8wC4Lwx/fmfM0bw2Iw1ANx85gjOHdOfO+2W5KNXHRFYEx7g6WuOZPYaq2VdWpTPo1cewWMzVgMwoFsn/nn54dwxxbq3S0kB/7jsMO5622oF1zY088iV4wKehSVbKvmfM0YE+u9nr97J8D5dmHjC/vz749VUVNZTUVnPH88bGehS+P5jn5OfJ9wy4SBO/8t0AE66ZypFBXnccNqBvDF/Ex8v384Bv30LgL9+ewxPfbaWdTtruOqx2VTVN1HeqZCfnTyMV7/YyO2Tv+bIIT342wfLaWxp4Y4LRnPiPVN5fOYazjqkH4O6lfK7SYsYt283rjluCM/MWscNL87njFF9KS0q4O8fLufdxVv5v7MPpqa+iclfbea/CzZz/mGWEbF6ezWXPzKLwvw8nrn2SB79ZDU7qxtYtGkPI/t3DTzX7VX1/OrF+UxbVsGZo/rypwsPYYbt5l2zo5rhfbu0KReqyvJtVcxfv5vNe+oQYHCPUo4e2oPe5SVtwmczqkpdYwvbq+qpqKoPlI3tVfVs3l3Hiooqlm+tDPR5nn5wH353zsE8P3s9zS1KU3NL1ClHLS3KjJXbeeHz9by7aCsNzS18/9j9+O5R+/Lu4q2sqojubt2wq4bnZ6/nhTnrqaisZ/yQ7vz90sP46bNfsLqiOqocDU0tzFy5nbe+2sKUhZuprGti9ICu/Plbh/DJigpen7eJ6oYmyqK4/uubmlm0aS/z1u1m/obdfLlud2BsQWlRPuePGcBPTz6AlXae6iNMbfV6TjtrGthd08ie2gZa1Jq2WlKQT5/yYrqXFSV1oZZk0NTcQmVdE5V1Teyta7R/N7KntpFtlfVs2VPH5j11bNlby7KtVTQ0tZAncOLw3vzvWQcxe7VV5zX6mMIM1iDbdxdt5b8LNvHJ8u2IwA2nHcg3R/Zl8lebWe9jnEdDUwsfLd3Gq19s4MMl22hsVr4zfhC/P2ckx/zpQ9bsqEZVI++zocqq7dV8+PU23l28hTlrd6EKxx7Qg9vOHRXosqlpbKIr0Q2HXdUNdLMHbEcjLUre3k72H0BXoBn4oarOta/dAlxpy/Y0cJtmyGgUt7u+MD8vMDBu0D7FgYHk3UsLA7+7lhQE+oSLC/K475Ix3PWOpXjPHN2XPuUlgVHx3z5iECWukeeXHTk4MAYA4BsH9gr06fcpL2b0wK58biv5cw7pzwG9OwdGD1997BCG9urMLnsE6W8mHMSIvuWBEe53X3wIxx7Qk1e/sPr1bzt3JFces1/AjX3owK688qNjgub1v/Kjozl8cDd+9tyXARnuuuhQDuzTqvS6FBdw23kj2a9nWdBzO2VEb84b05/b3lwEwMfLLaV53yWH0r20taCec/8nAPx2wkFBcdz08gIGdutEY3MLd198aNByuR98vY3CfOGv7y/nwsMHcPWx+wVcu9e/MI9zD+3P9qp6rnhkFs0tygsTj2K/nmWBZ/WtB2ey5I9nAjB37S5+/MxcdtU0cvv5o7j8yMGItG6i+8On5rL6zgmBj7mhqYWX527g0U9WBSppNyJw9NAeXDR2IGeO6hcYD5FOGppaqAxUrk5F28jeuib21raet86FHlv/w61S2LNzEUN7debcMf0ZPaArJw3v3cbIuemVBdx3yRjP+zfvqeWFz9fz0pwNbNxdyz6lhVx25GC+fcQgDupXHhj0dv9HK7jq2P3o2bk46P7mFmXq0m08M2sdH9ljM04e3pvLjhzMScN7k5cnfL15L9UNzTw0fRU/OemANjJ8tWEPT3+2lrcWbmZvXROdiws47eA+fGf8YI7YrxsiwowVVvm9/N+zeO+Gb7SJo7ahmclfbeadRVuYsWI7NfY0077lJRw6qCvfO3pfxu7bjZH9uwYWkXIMl8v+PSuojLnZXlXPx8srmLliB4s372VVRXXEqbBF+Xn026eEgd06MahbKYO6lzKwWycGditlULdO9OpSHFYxqSoNzS00Niu1Dc3UNjRT09hEdb39u6GJmoZm+6+J2oZmqhuaqXWdr6xvcpU1639NQ+TplPuUFtK3vIQ+5SVceXQPRg3oylFDe9DHLkdOnXflY7P56MYTPeOoa2zmg6+3MWneRqYuraChuYWB3TrxgxOGcsm4QQzpWRYY23PnW0v4zpGDKS8JVqyqyvwNVtfemws2sbumkZ6di/je0ftx0diBHNSvHLC6CD9evp3py7fzjQN7tZFlxbYqXpqznncWbQkMQD2oXzm/OGUY3xzZNxDPx8stJX/tE3OY/PPj28TT0qJ8tnoH7y/exrRl21hZUc2aP50V8Vk6tLuSF5FS4F3gGlWdIiLnAc8AI0RkAnAJMBZL+b8DLAZebG85vQgtoDUNlhIsK8qnttH5nRf4cMpclfqQnmXk5wlVdguni90CcOaidykOLmRlRQWBOeihOAOHnAUdnCkcTneC0xfvpOUU4NbrznFjUHjne+/btYSC/Lygynzsvt2D4rj5zBFtCvWMW05u87H892fHMbxvF0QkcO/4Id2ZMKovF9jdC25OGdGbq+1uAofV26tZvb2aOy4YzZCeZaxzjda+ffJiKuuaGDNoH+64YDQiEvTcpi+v4O53lrKrpoEXJh7NMNsocQygukZL6X21YQ9XPf45fctLeP3H4zm4fzlerKyo4oDeXVi2tZKfPfslS7dWcuigfbj9/FEcvX8PBncvpblFWbGtincXb+X1Lzdyw4vz+f2kRZx9aD9OGdGH/Xt3pltpIWXFBYExGRC8fHBDcwsNTa6/5mbq7d+1jc3U1DdT3WBVutX1TfbvJqob7GP7fE1Dk13ZWhWtnzUCOhcX0KXE+isvKaRn5yKG9CyzjjsV0qWkgJ6di+nVuZheXay/7mVFQQsiheJ8O69+sZG7vnVIUCt6/vrdPPDRCj5Yso0WVY47oCc3nzmC0w7uE2T4imtO5vRlFVx4+EDruak1sPS+d5exans1vbsU89OTDuDS8YMZEDKS3vneHg5R8l+u28Wdby1h9uqdlBblc8aovpw1uh/HDevpOY0TYPm2KvbWNQbKfGVdI/+atpInP11LZV0TA/bpxIWHD+DY/Xty2OBu9O0a3qvj1rXLtlYFeYxmr97Jw9NX8dHSbTS3KPuUFjJ6QFfGD+nOvt1L6VZWRNdOhRTk5dHY0kJtQzNb99axZW8dm3bXsX5nDe9/vY3tVcHTZgvzhaL8PPLzhIL8PFpUaWxqCSj3WCnKz6NTUT5lRfl0Ksqnc0kh5SUF9OtaQpfiQso7FdClpNAuW4WB8tWlpICunQrp1aU46H17Pie7DKzeXk1dY3NQ+I27a/n39FW8PHcDVfVN9OpSzOVHDeacQ/tz2KB9ggwat2nz5brdQXXZ9GUV/O2D5cxdu4vigjxOH9mXCw8bwPHDeob1/ry9cHNQHPPX7+bud5byyYrtFOQJxx7Qk2uOG8JJI3ozsFtp2Pwt2rQ3qEw1Nrfw3Ox1PPrJatbuqKGoII+jhvbgW2MHRnxObtLRkj8dWKmqU+zjN4DV9u8LgGdVtRpARB4DriBDlHyo1exUGJ2L89lZYymr0qL8QAEqLcoLfLyOW8/xBjjHTl906FxLr+VcnYg7O0q6zq9SDzYCHCMh9NhZjtaRzcvIrw7c09al1LmobXEaNaDVFe5UHH88b1SgEnOnMePmk+lbXtIm7xcePoCD+pbznfGD2tyzdW89/buW8NB3xwY+ePfYiavsboVHvjeO0QNbZXF7ZR74aCVPfbqGIT3KeH7iUW3cYEEyrthBTUMzlz8yi+KCPB7+7lhOO7hPUAVSmG/le9SArlx/yjBmr9nJS3M28PqXm3hu9vo2zyhZdCrMp6w4n7LiAsqKCigrzqdbWREDu5dSbles5SXBFW15SIXbuaTAu+wliPt5z9+wh7H7dqO6vonfvvYVr8/bRLfSQiaeMJTLxg9mUHfvStD9HhwlX9fYzP+8soBJ8zYxvE8XHrjscLTKACAAABOvSURBVE4f2SeiwQHWnPnq+iZKi/J5cNpK7np7KT07F/G7sw/monED2xirbtz1wMwV2zljVD++2rCHa574nG2V9Zw1uh9XHrNfoOXvB7cB8/HyCob37UJ1fRM3vbyAyV9tpmfnIq49fgjnHNKfg/uVB+3w6JfahmY27Kphw65a1u+qYfOeOhqbWmhqURqbW8jPs5R+YUEehfl5FBfkUZgvlBTmU1pUQGlRvv0X/LuT/TvaM08G7uWxF23aw9h9u1PX2Mw/PlzOw9NXoQrnHNqfi8YO5KihPXyV5blrd/GNA3uxp7aR37z2FZMXbGbAPp247dyRXHD4gIhlwWGW3Y2gqjzw0QrueXcZ3cuKuOmM4Vw8dlCgKzQc7vUXZq7YwRmj+rKqooqJT81lxbYqxu7bjRtOO5DTD+4bs0cwZUrebpW/4XHpD8AWEXkUOBTYDdxkXxsEfOAKuwHwNFlEZCIwEWDw4MFJkjoyoS15R8mXFeUH/XaUWZlL4ZeFUawOXtN6whVPxwvgtIJDlbaj1J0V87qEGAXlAaXfHHS9NpCH8MXCqeC6eCwA4bficRs07jmmoa0uh3DuXYBnf3Akw/t0oYfLdeu8p+F9ulBRVc9vJhzESfaAx9AwAP+atpKB3Trx5DXjo/Zz/XPqCuoaW9intJDnJx4dVmaHvDzhqKE9OGpoD/5gj2lYvb2avbaScSotp5IXsXbvKyrIoyg/j6KCfOu3fVxckEeJhzIvLUqNck4WbsNr+rIK+nUt4Zon5rB0y15+dvIB/PAb+8c0te3j5dvZXlXPD5+ay9y1u7jx9AP50YkHxPQMZqzYzvTlFTz92TrOPbQ/d1w42pcM7kV5pi3bTklhPj9+5gu6lRYx6SfHcuigfXzL4BBkwCzfznljBnDNE5+zcOMebjjtQH5w/NCEu3s6FeUzrE+XgDcrG3Ebi5+u3MHQnp25+onP+XLdbi48fAA3nj7c1zoIwYb7dq44ajDfe3Q2KyuquPH0A5l4wv5B+3FEY1VFNWu2V3P/Ryt4ee4GLjhsAH88f5TvMl1VH+x97F1ezDWPf46I1UA55aDecY+vSJmSt1vqbeIXkd8CE4CTVHWW7a6fIiL7Yo32d/uJBMtt7xX/w8DDAOPGjWuXPvuakCl07pa8ozRKC/MC50uL8mmwFX6JXWAC4UIUqZfSDH2pda54obXiDG25h3PfOwo6cL0u2F3vLMrhTN3zWuO7JpDn+IuO+954FJP7nmP279nmupPvX542jDNG9fOMw6mo/3DeSFZuq+La44cG+v1Ccbfctu6tp1eXYp699qioCj6UsuICxu7bjbH7dovpvlzAreQfm7Ga52avo6ahmf9cdQQnDu8d4c5W3MVxR3UDR9/5AXkiPHDZ4Zx1iPd7jhTXxKfmAnDdN/bnpm8O922k1rkMxOdmr+PFOesZ3qcLj3//iKQMtJy+rIJz/vEJu2sbeOi74zjNnlVgaF1aHOCZWet49cuNbNhVy4OXH86Zo2MpA63veu7aXUz428eB8nj8sLZ96344+d6ptChcf+owfnHKsJiUcpWr2/LZWet49YsN9Ckv4Ynvj28zxilW0uGu3wR8raqzAFR1kog8AgwF1gHu+Sn9sVrzaUdVqQlx19faffKdi/IDa62XFOYHRsiWFOQFfjtWuNeubeA9Zzt0cxZnIFxxYfDa9o6Srg7pc3dWgQw1IJzrjsJ2rte78gDeuyvVNYRvyfvFreTjcfE594T7hlqNlfAtn3q7b/r4Yb343tH7RUzP6ce+ZNxAzjm0PyP6lkd1vxmCccrm6Qf34d3FWynvVMhT1xzpOVshHO4154f17kxdUzP/+M7hjImj5fyLU4bx9Gdruf7UA7niqH1jutcpD2eN7sfUpds4ev+e/OXbhwa+q3hwymy30kKqbA/P8xOPjitvuYxjnO/Xo5Q1O2ooLyngqavHc+TQHjHF416zwfmWn7n2SA4bHJ8BfuLwXny+eie3XzCKCw7z31/u4Hwfpx7Um4+WVjCyvzX7KnRwaTykQ8m/BdwrImNVda6InIDVel8NTAJ+LyIPA03AVcDjaZCxDfVNLYEBUueMtAqU06IsK84PDLLr1qmAAls5Du5WHBiQ5yxk4yj70hDXm5fVV2IP+NknZC5mV3vt7YI8q9IrLY7sFQh1v5fasjhK3fEqOC1Wx+DwkskxdKJNHYqEuyUeT0veqezDbTTi9G9F2ojEMZjKiqO7QBsCm+Xkx23ld3Tq7E1qfnryAfzs5GEM7VUWcxkqdL33d395AhD/Xt7Xn3og1wfmpseGk5dTD+7N/ZcdlpRpao7BffT+1pSq0qL8hL6xXMXxCF1z3BAO7l/OoG6lcXlPCu06rleXYmbefLJ1LoExBY9/fzzNLRp3l5lT9559SH/+dulh1tiuJE1/bPdSpKpbROR84J8iUgbUAxeqah3wpj29bjZQhKX0n4wW5966xsCyqanCsbR+deIgLh5juRf/fuEwpq7YTWlhHt8f34+eZYWcOrwbAvzp7KEcP3Qfqhqa+WBlZWAk770XH8rLX2xgpD16+8UfHs2Kba3r3d93yaGB/uWigjxuPedgTrBHbU4Y3Y+lWyq57sT9Abj13JEM6l7KsftbRsdT1xzJm/M3BfrsX/zh0cxatSPghnz6miP5eHlF4Pih747lsRmrAxvkXDZ+MO8v3srF4wYF5DnhwF6c7XKF3nrOSG6f/DXdXFPfjh/Wk31Kg/uyOxcXcMR+wVbxKSN684FraV83px7k7bL1WiXNMaLGD+nuec/g7qV8tmpnG5ncdC8tYndNY0zdDqU+DAKDN/m2QdqpMD/uPmGn3JYWJ68CjIcmuwuuU2Hy5HAM0+KCfOMlioCzSU1xYX5gxk8i8SRzwGAiY2KcbZCt8TbJVcuSIVPQE6K43zDtd+Vf2yWtO84aysnDYnPp9O3bN3qgDkBLi9Ks2uaj2lndQOfigjZdGFv21FFckOc5GG7u2p0M71vuqaRrGpqYuWIHp0boy9ywq4aZK3ZwyRGDwoZxqGts5u53lvLL0w5MaCxCR2ZlRRUvzdkQU993KKrKnW8t4cLDBzCir/cUx2i8u2gLW/bWRe2iicSm3bX8/YPl3HbeyLDT62KlpqGJm1/5iv8966CcW0ApmVRU1vOnt5Zw+/mjEhqI2NKi/L8pX/Od8YM5oHfnuON5YuYa+pSXcMaoxOr4zXtquf/DFfz+nJGxDPjz9SHlhJIfeehh+sKUqSlPp6ggjy4tVTFb70bJGwwGgyHJ+FJEOdEs6VSYHzQfO5Vs2ZL4DkYGg8FgMLQHZoMag8FgMBhyFKPkDQaDwWDIUYySNxgMBoMhRzFK3mAwGAyGHMUoeYPBYDAYchSj5A0Gg8FgyFGMkjcYDAaDIUcxSt5gMBgMhhzFKHmDwWAwGHIUo+QNBoPBYMhR0qLkReQCEVkgIvNE5EMR2d8+ny8ifxWRJSKyQkSuS4d8BoPBYDDkAu2u5EWkE/A01vayY4A3gb/bl38IHAiMAo4ArheR8e0to8FgMBgMuUA6WvL5WLvnODvKdAbq7N8XAI+papOq7gKeB65ofxENBoPBYMh+UrYLnYhMAN7wuHQ1cB0wU0R2YCn9Y+1rg4D1rrAbgENSJaPBYDAYDLlMypS8qk7xil9ERgOvAQer6koR+TnwioiMwfIsuDe4F6DZK34RmQhMtA+rRGRpMuWPQE9gezul1Z6YfGUXJl/ZhclXdpEN+XpbVc+IFigd+8l/E5ihqivt4weAvwA9gHVAf1fY/lit+Tao6sPAwymU0xMRmaOq49o73VRj8pVdmHxlFyZf2UUu5SsdffJfAN8QkT728fnAalXdDkwCrhaRAhHZB7gUeD0NMhoMBoPBkPW0e0teVT8UkbuBqSLSAOwEzrMvPwjsD8wHioCHVHVae8toMBgMBkMukA53Par6AJabPvR8E3B9+0sUE+3eRdBOmHxlFyZf2YXJV3aRM/kSVY0eymAwGAwGQ9ZhlrU1GAwGgyFHMUreJyJylr0U71IReUlEytMtk19E5AoRmW8vIzxTRMbZ529xLSF8q4iIfb6XiLwlIotFZKGIHJPeHERGRM4XkUrXcVbnS0RGi8hUEflSROaIyFj7fFbnC7yXtI60nLWIDBOR6XbeZovIiHTK70YsnhCRG+3juPIhIlfb55eLyIMiUpiO/LjkCc1XJxH5j122Ftm/O9nXwpa9TKszQ/MVcu1VEbnfdZw1+YqKqpq/KH9AL2AbMMw+/jPwz3TL5VP24cBmoJ99PAFrquIE4EugDCgBpgGX2GFeBH5j/x4DbARK052XMPkbBqwAqlz5y9p8AaX2+5pgH58HLMn2fNmydQKqgQPs418Ck4EfA866Gt3s/I63w8wGLrN/nwksxO5mTHNeDgI+tPNzo30u5nxgLeG93q5j8oDngJsyLF+3A0/a8uXbMv4hUtnLtDrTK1+uazcBFcD9rnNZkS8/f6Yl74/Tgc9Vdbl9/CBwudOSynDqgWtVdbN9PAfoC1wMPKuq1apaBzwGXCEiBcDZwL8BVHUesByIuuhCeyMipVj7INzgOn0B2Z2v04GVai0mBdaqkZeQ/fmC8Etaey5nLSIDgBH2Mar6ln3PYe0tuAc/AR4BXnKdiycf5wFvqGqFqrYAD5Hepby98jUduF1VW1S1GcvY3DdK2cu0OtMrX8j/b+/+Q+2u6ziOP18OFTEjlgmaa1tYxBLdH1utf+SGsCjaStE0xChSMR1CEFQQFYGBEGYGbdpKMKiGbjV1jmZDLTdZGNYa/RCmN5ElSzFlIU7z5R+fz2Xfzs65nnt35znf7309YHDu+Z7z/X7ed9/7fZ/v5/s977c0QRnvhsZzbYrrTSXJD6dfud23A6eNZjjDsz1pexuU6SrgZkriOJOjYzqbUunpBNv/7rNs3NxW/+1tPNfv/6pNcb0feFbSTyQ9BjxAOTNse1zYPsSRktYHgHXAVxkc2yLgQE1+vctGyvY62z/veXo2cQx6z0j0i8v2DttPAEhaTPkG1F1Mv++N1TGzX1ySzgJ+AFzB/1dWbU1cw0iSH05vud0pfUvujiNJp1KmoM4BrmJwCeF+sQ4sLzwqkq4DXrP9055FrY4LOJEyNX+7S8WtH1KmgE+m3XFNlbT+JqWk9VnAjcBmyhl+q2OrZrPvDV3Ke9TqvSG/p0xr38fM4poyFrHV+x5+AXy5Mcs5pbVx9ZMkP5zecrvvBl6w/d8RjWdGJL0H2E3ZET9q+z8MLiF8sLxFC/ssGyefB1ZK+hMlCZ5SHz9Du+M6APzN9h4A21spSfB12h0X9C9pfS7wT/rH9jRwZs9U6LjGBoP/pqaLY+hS3qMk6XLKrNLXbH+3Pj3dvjfux8wVwHuBm+tx41rgMkkbaXdcR0mSH84OYJWk99Wfr6WU4B17kk4DHgK22L7c9st10VbKtaRTJZ1MSZq/dilItI3a/EfSecCyuo6xYftDts+1vZxy5vtyffwrWhwXsB1YqiN31F9AOXO4hXbHBQNKWjOgnLXtZyg3VV4GIOljlA87f3nLRz6c2cRxD7BW0hn1Q8A1jFkpb0lrgFuB1c0p7zfZ98b6mGn7UduLbC+vx40NwCbbV7U5rn5GUvGubWwflPQF4G5JJwH7gc+NeFjDWgcsBi6SdFHj+QuBLZS7fk+i7Kh31mXXARsl7aMkmCttv/jWDXn2bN9bp4VbGZftZyV9GvhRvcTyCnCx7UfaHBdMW9L6HwwuZ/1Z4MeSvkG5Se/Snmvb42S6styD4tgr6TuUO79PBPZQ7tgeJ9+jTFdvbExG7LJ9PdPsey0+ZkKH4krFu4iIiI7KdH1ERERHJclHRER0VJJ8RERERyXJR0REdFSSfEREREclyUd0mKQdkk6vj++XtOw4butLkq6Zg/UskHSfpDPmYlwR81m+QhfRYZIMvMv2c8d5O4spZZNXeQ4OKrUI0A22LznmwUXMYzmTj+goSXfUhw9KWiRpUtIKSROSHpW0SaWv+y5JayQ9IOlpSd9vrGONpD0qve13SfrIgM19HfiZbUtaIulJSbdJeqxuY62kbZL21+2eUCvDrVfpzf1Hld7cbwOw/TtgmaTlx/e3FNFtOZOP6LDmmbykSeASSpvT3wIrbT8uaTul/esEpaPWAWAJpXf9FmDC9vOSPljfd06zVnctx3qwrm9S0hJKudpP2b5H0npKm87zgcPAk3UcC4DbKQ1rLOkmYKvt3XW9t1Lqgn/reP1+IrouZW0j5qenbD9eH+8HXrR9GHhO0kvAQuACSkvinY1ypq9TOhn+ubGudwLvsD3ZeO5V4N7G+nfbfglApc3sQuARStOkPZJ+A2y2/YfmGIEPz0GsEfNWpusj5qdXen5+tc9rFgA7p5p41EYeq4B9Pa8z5YS+eTw53HNt/qj1126I5wNfoST7TSothJvvGdsWnhFtkCQf0W3/ozQ+mY2dwGpJHwCQ9AlgL3BK80W2nwdeoDRCGpqkT9Zt7Lb9bUrDnZWNlywF/j7LsUcEma6P6Lq7gIclXTzTN9r+a/1K3C/rdffXgLW2D/V5+WbKdff1M9jEduDjwD5JhygfFK5uLF8NfGam446II3LjXUQcM0lLgbuBFXP0FboJ4Hrblx7ruiLmsyT5iJgTkm6gXIvfcIzrWUC5ae+Ltv81J4OLmKeS5CMiIjoqN95FRER0VJJ8RERERyXJR0REdFSSfEREREclyUdERHRUknxERERHvQFW8vDptDGwkgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for Vm0 in [-58, -60, -65, -70., -75., -80.0]:\n", - " fig = runAndPlot(neuron, None, None, 50., 0.05, 1.5, Vm0=Vm0)" + " fig = runAndPlot(pneuron, None, None, 50., 0.05, 1.5, Vm0=Vm0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Despite the slight difference of implementation, we still observe the presence of a burst of spikes that start s at the onset of the depolarizing pulse and then outlasts the stimulus duration.\n", "\n", "We also notice that the duration of this burst seems to effectively depend on the initial value of membrane potential, with an optimum of approx. -70 mV at which the burst duration is maximal. This corroborates with the voltage-dependency of plateau potential generation observed in Otsuka 2004." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rebound bursting after hyperpolarizing pulses" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for A in [5., -20., -60.]:\n", - " fig = runAndPlot(neuron, None, None, A, 0.2, 1.8)" + " fig = runAndPlot(pneuron, None, None, A, 0.2, 1.8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also observe the generation of rebound bursts at the offset of short hyperpolarizing pulses. Again, the burst spike rate and duration is dependent on the intensity of the hyperpolarizing pulse." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Typical response to US CW stimulation" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ - "fig = runAndPlot(neuron, 32e-9, 500e3, 20e3, 0.15, 0.1)" + "fig = runAndPlot(pneuron, 32e-9, 500e3, 20e3, 0.15, 0.1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I = 10 W/m2 (A = 5.58 kPa)\n", "I = 110 W/m2 (A = 18.51 kPa)\n", "I = 115 W/m2 (A = 18.93 kPa)\n", "I = 127 W/m2 (A = 19.89 kPa)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAADeCAYAAACg5AOPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXecXUX5/9/PbrJJNj0hvQKhBwgmYKSKSBFBmh1EVERQFH8KKiLYsaFiV74giIIiSO8IAgqCJCSEAOkJqZvd1O3t7vz+OOfcPffuOWfmnrI3Yefzeu3r3r0z8zzPmfrM8zwzR5RSWFhYWFhYWPRdVJRbAAsLCwsLC4vywioDFhYWFhYWfRxWGbCwsLCwsOjjsMqAhYWFhYVFH4dVBiwsLCwsLPo4rDJgYWFhYWHRx2GVgd0cInKpiLwmIotF5D4RGev+PkhE/uj+/pr7fVC55Y2CiDSKyHQRmSMid6VE8wIRaRGRmUW/PygiF7jfnxaR1SKyUEReEZE3ROQaX96nReT9IfTnisi/RGSRW9ePiMhBCWSd78rwmojcKCLD3bTnXfleF5Gc+32hiNzm1pkSkU8V0btcRG6JI8uuChH5h4hsEZHqFGmKiPxJRC73/TZKRO4QkaUi8rKIfD6k7C3+cr7fvyUidW4bLXD7xz9FZN8Y8k0SkftFREotG4PX6SKyzde/ForIUDftve5zLBWRO0VkWAiN89w+vNDtt3NC8q0pThORd4rIYo2Ms0XkhrjPaBEMqwzsxhCR2cDlwJFKqZnAcuC7bvJVQD/gEPdvEHBlOeQsFUqpeUqpwMU3JgT4q4gMjMhzhVJqllLqUOAdwMUiclQkUZEBwIPAl5VSh7htcBvwiIhUliSgyOHANcCJrgyHAJ3A7wCUUkcqpWYBpwItrqyzlFLnuiS6gJ+KyH6l8N2dICITgWOBF4DzU6J5APAkUNzffg40AgcCc4H3iMhpJZK/w22jw5RShwD3AbfHEPP/gO+q3rkU5kjgOl//mqWUahCRMcDNwDlKqf2AVcAPiwu7/e8nwCluf/0ecHeaAiql5gP9YrSHRQSsMrAbwx0U+yildroL3SRgq5v8LPA9pVSXUioHLACmFdNwdzC3iMhjIrJERJ4UkQlu2hoRuVZEXnB3A59yLQyviMg8d3IOoveYiLwqIn8RkXEicq+I/NfdfT8t3daLY3w7pxtw+6N/d1C88/L/LyKXuLK8JCL/FpEDQ6rqSaAGuM6waoe6n1s0+aqBEcAQ32+3AZcCJSkDwASc568GcNvsGpyFwAQtwE+B20WkKiqjW7/Picif3bpf7Ck+IlIlIj93d8OvuPU9zE0r2Ml5/7uWiXUi8riILBORCSJypkv7FRH5j4gc4ZYJ7W8GuAinLW8BLgvbKYvIL4t2tgtF5MUQmp8DbgTuLPp9NvBnpVROKdUOPERPhaGY78/d5xkSkuVJYH8371wReVZEXhSRtSJyUwjNtwNjlVIvuf+f7bbNPLfsse7vT4vI3eJYjj5fROP8gPpYKCIHB7A8EniX227/9ugDJwEvKaWWu///Djg3oA3agAuVUpvc/+cB43V9MuTZb/bJ+ro41q8T3OQb6N74WKQBpZT9283/gDNxFq4NOMpBcfo0YCNwWkDat4CVwDD3//uBb7vf1wA/c79/CMgBh7r/3wN8PYTeEqCf+/9lwFfd7wI8DHwZqMJZoE9w0z4CKGA68E5gsfv7LcDlPvq34FhDKnEmngnu7x8DLgqQ5wKc3fsEoNarA/e3C9zvTwOrgYXAa0A7cCsgvvT3h9T9l4BmnJ3Sn4FPAtUx2rA/jiLRCbwM/Bp4ryeDL990oDHoNxxl4hmcnR1uPd0SwOudLp9Z7v9fBp5xv1+Ds7Pznv1a4Le+/jDHR2cNMMflr4Bj3N/3d9t2L/f/dwGbgGFE9DdN/fTD6d+nAQOAbcB7UhxDxf3sJvevP46y9xTwWEi5K9z2uhsY4BsHvy6S/6fAA+7/fwXe6X4fAtQBswPoXwd8y/f/SmCu+/0k4BpfH70phXq4G0fpEeBonM3FZOBrwO+Lnkd57RhCS4C/AHeFpK8BluKMO+9vBe7YL6LzV+B3Rb/XA3um1Qf6+p+1DLwFoJS6Vym1B84E9JiI5NtVHFfCv3EmpgdDSDytlKp3vy8ARvnS/uF+rgRqlFKv+P735/PjBaVUpyvbL4DnReRLwG+BmTiT38FAh1LqSTffX4EGw0dGOTvnO13avwZ24EzeYfk3AZ8C/igi4wOyeG6Cg3AsLPvjTIA6OX4GjAO+gLPgfRVYIK6vv4Tn6VCOyX8qzqJRBfwJ+FsJNLqA84BPiMiJmuxvKqUWut9fprstTwPOwHmGhTiKZpjFxY9O4L/u93cBTyqlVrlyPYWjiM1206P6WxjOwFEAH1VKteHUyxeDMpZoGQjDl3EWuwXAvcATOEpiEL4EXAJ805XNw4c8/sAiYCzwaTft48AIEfk6zrgYRKGFycP+OAukh78B94jIjcBI4Me+tH8HCVeKZUApdbZS6i7l4D/A88CJOIpmkJsiF8JzMPB3YAZwYVAeF+cqn0siJO9PcRTJS4t+Xw28Zd1ivQ2rDOzGEJEZInK076c/4lgBRrrpH8aZxL6mlLo2glSL77vC0cQ9+Ce3DkPRGn0y/gj4Ds7O5wbgcR/9YhNjZwCtYnny5kal1HnA6TiT5ddwdg+hUEo9gKNA3BrA25+vDse3e2xYHgAROUpErlBKNSilHlRKfQU4yJX5xKK8c/wTcQCtT4rI+5RSG5VStymlLgLeBnxARPaIkqNI9nXAZ3AUiahyYW1eCVzmm5yPoNs8HtoWQJunALo0iheOCpxddhTvKHwWZ8FcISJrcJSUkyQgWFMp9QVV6POepZR6uwEPP4YBX1FKzVRKvduVcUVI3mdwFJNbRKS/7/c7fPwPVEp9TClV46Y9ixP/sQRnfGwguB4UvnlaKXUVzo59Ho7V61lf3kYCoJS6NaA+ZimlXvXnE5ERIvL1ItO/4Iz7tYDfLTgJ2K6UairmJyJTcZSIHHC8UmpHkFwmEJEvA8cBH3I3AH50EKKMWJQOqwzs3pgA/M23WJyLY2LbKiKnA78ETlJKxQlaSgsnA9crpf6Mszs8EWexWIQTyH0qzpf34SoxRajDMUV7AWTHud/3EJF1wFal1PXAN4DDDeT5Ms6kdkJYBndCPwn4n4ZWHfCNIoVsAjAcKJholRMU6d8BFaML+JGITPb9dhDwJrBdI0cBlFJ3AY8QsnPW4DHgUnFiBypwYhZ+4Kb52+KdOM8ahCeBk0VkLzfvu4ApQKm7c9zy++K0+2yl1HT3byLOQnhZHJoGuBhnkUZExuHsWMPG0TwcN8EOHOtcJERkBE5f/apS6m4cM/wMguNMlgJ7u+X6uYpQtVLq9zgK0iHiBLKmgQacGIqzXX6H4SiDj+Io8XNFZB8378U4AZHFzzYUx2Vxt1Lqw0qpluI8phCRj7jynKaUaixKE5yNz9K49C0K0a/cAljEh1Lq3yLyfeBpEenEiQs4002+Dkerv9Gn6D+nlPpcL4v5HeA6Efkujib/H2CGUqpDRM4Efi8i1+L4C2sDyv8KuE1EluL4GJ8CUEptEZHvAU+KSAuOVeHTAeULoJRqdSeZ4oX+JyLyDZyd2GCcBe37vvQ/S+Exvd8opb7qPsO17iLeCuwEPqGUKmmSUkrdIs5xuYfdyV0By4CTA3ZEJvgCzg6yVHwXp+8swFmcFuIoUOC4QH4nIp8B5rt/PaCUel1EPgvcLSL9cGIqTldOoGsoYxG5GCcmodhUfAlwj1KqeGf+HeBBEfm6UkoX7FkqfoDT5otxxtE1yg3iC4JSSonIJ4GFIvJQFGGl1A4R+QHwsog0AeuB53AUgieLst8F/ALHBdEpIl/ECRLtwFEgP6mUaouqV1MopXIicgbwKxH5Ns6Y+pBXtyLyCeAuNxhwJe6JDnGCSm90ldxLcRbps0TkLB/5E5RSWykNt+BYTB7yuT5/7ypCc4CVSqm1cZ7Voie8ICELCwuLssLdVf5KKXVBuWXZlSAijwFXK6V0lqo+A1cxv1MpFal4WZjDugksLCx2Fcwi4Oy6BZ8Brgk4xtcn4QZFK6sIpAtrGbCwsLCwsOjjsJYBCwsLCwuLPg6rDFhYWFhYWPRxWGXAwsLCwsKij+MtcbTwlFNOUY8++mi5xQhFTU2NPpOFhYWFhYUhxo8fn2pA6VvCMrBlS9pHjC0sLCwsLPoO3hLKgIWFhYWFhUV8WGXAwsLCwsKij8MqAxYWFhYWFn0cVhmwsLCwsLDo47DKgIWFhYWFRR9H2ZQBETlYRJ4WkQUiMs+9bxoRuVJElojIChH5lr2P28LCwsLCIluURRlwX9X6OPBjpdRhOK9Nvc19t/0HgdnATOB44APlkNHCwsLCwqKvoFyWgZNw3kX9sPv//ThKwFnA7UqpJqVUK3AzcF6ZZLSwsLCwsOgTKJcysC9QIyI3icg84Amc2xCnAOt8+dYDk8sgn4WFhYWFRZ9Bua4j7g+cChyvlHpRRM4AHgbeAPzvVBYgF0RARC4CLgKYOnVqttJaWFhYWFi8hVEuy8BG4A2l1IsASqn7gEqgC5joyzcRxzrQA0qpG5RSc5RSc8aMGZO1vBYWFhYWFm9ZlEsZeATY03eC4Fgci8D1wLkiMlhEBgAXAPeWSUYLCwsLC4s+gbK4CZRSNSJyJvBbERkMtAFnK6X+IyIHA/8DqoD7gFvLIaOFhYWFhUVfQdleYayUehZ4e8Dv1wLX9r5EFhYWFhYWfRP2BkILCwsLC4s+DqsMWFhYWFhY9HFYZcDCwsLCwqKPwyoDFhYWFhYWfRxWGbCwsLCwsOjjsMqAhYWFhYVFH4dVBiwsLCwsLPo4rDJgYWFhYWHRx2GVAQsLCwsLiz4OqwxYWFhYWFj0cVhlwMLCwsLCoo/DKgMWFhYWFhZ9HFYZsLCwsLCw6OMoqzIgImeKSIPv/ytFZImIrBCRb4mIlFM+CwsLCwuLvoCyKQMisg9wHSDu/6cCHwRmAzOB44EPlEs+CwsLCwuLvoKyKAMiUg38BfiS7+ezgNuVUk1KqVbgZuC8cshnYWFhYWHRl1Auy8Af3L9Fvt+mAOt8/68HJocREJGLRGSeiMyrq6vLRkoLCwsLC4s+gF5XBkTks0CnUuqPAbIof1YgF0ZHKXWDUmqOUmrOmDFjMpDUwsLCwsKib6BfGXheAFSLyEKgChjkfn8ZmOjLNxHHOmBhYWFhYWGRIXrdMqCUOkIpNVMpNQs4FWhxv98DnCsig0VkAI7ScG9vy2dhYWFhYdHXUA7LQCCUUg+IyMHA/3AsBvcBt5ZXKgsLCwsLi7c+yqoMKKXWAEN8/18LXFs2gSwsLCwsLPog7A2EFhYWFhYWfRxWGbCwsLCwsOjjsMqAhYWFhYVFH4dVBiwsLCwsLPo4rDJgYWFhYWHRx2GVAQsLCwsLiz4OqwxYWFhYWFj0cVhlwMLCwsLCoo/DKgMWFhYWFhZ9HNobCEXkEOAsYD+ctwguAe5SSi3NWDYLF9ubOxhZ3b/cYlhYWFhYvEURahkQkT1E5E7gr8AonHcGvACMBO4UkTtEZFzviPnWweNLtrFoY6Nx/seWbOM9Nyxi8aYmo/yX3LmUf63Yrs33yBtbuejvS7T5drZ0sqm+LTJPl1L87eXNNLeHvnEagGdX7mB7c4eWVlI0t+fIdcWn09ml2NHSGZqulKK1sysyPQl/CwuLtyaa2nJ05MLnjtaOLtbviJ5va+rbI+efuIhyE9wM/FIpdZBS6jKl1PVKqd8opS5XSh0C/A64KXWJ3uK45tHVXPR3c6PK/PUNAKzY0myUf8GGRq58cJU237cfW8OijXoF4303LeKsPy6OzPPc6p1c/+x6fvls+BunG1o7+coDK/nyfStC82zY2caRv3iZR5dsDc3z0OtbOe3/FoUqDV1K8a7fLuTHT60NpfGfVTu499W60PQfP7WWU/7wCm0hA+4fi+p4568XUFPfHph+76tbOOqXL1PXGJx+60s1zL1+fuiksGFnGws3NITK99v/bOD+xVsC03a2djL3+vm8sGZnYPojb2zlhN8uoDMXXH8X37k0tO427GzjuF+/zNrtrYHpizc18tzqYL6NbTnOuGkRr9UE97knlm7j//67MTCtSylufGEj20IUyeV1zbz4Zn1gWkeuix8/tTZUCX1u9U4eeSO4v+W6FH9fWBvaTk+v2M6Ty4IV79bOLq5/Zh1NIQryb/+zIbSetzd3cOZNr7J6a0tg+o6WTjbuDF4wcl2KL9+3gldCNhw7WztDZQb43XMbuPl/mwLTmtpzzL1+Pk8s3RaafvvLm0PH5rLaZu5cWBvK+6nl23nwteB+DXDS7xZy/m2vh6Z/6d7l/OzpdaHp59/2Ol+8Z3lo+o+efJP/d294+uqtLZHyb6pv4+w/vsrmhuBxD3DC7xbyhbvDeVz50Eref8tiVMSm6Mw/vsqVD64MTY+LKGXgDKXUv8MSlVJPA+9LXSKLAkiZ+bd16ne43qLZ0BZuGfDWnvUhkxjAyi3O5PfPiMnq2n+uYUtTR+jO2xtDYYslwOX3r+SHT4YrC08ucya79hBl4KnljnzrdwYvio8uccqHafh/nlcDQHNHMP1zbl7MxXcuC5Xv1nk1XPvPNwPTltU2uzw2B6b//Jl1NLV30RiySC3c0Mjdi4IVpceWbKOtU/FwyOJ54R1LQ5W9VzY2srmhgxtfCF7wr35kNTe9GLwILdzQyI0vbOL7TwQ/88due4PLQib5fy3fwd2L6rg+RFH98n0r+PZjawLTHnx9Kz97eh23vlQTmP61B1dx1cPBive9i+r424JabglZWG+dVxNaz/9etZOahnZumx/chmfe9Cpn3xysoG9p6uC51Tv5RohcVz3kyBymyP7ppRr+8HxwG21yy4QpC79wNwRhCuH5t7/BTyMW668/tIrvhbQxQH1bjmV1wQoSwPNr6vl7xGK9rK6FF0KURoB7Xt3Cf9eEp39cI//9i7ewsb49UqEBZ8MWBo+/btaNkjMuQpUBpVSXiLxTRD5e7A4QkY97eeIyFpHzROQVEVkoIs+LyBz39ytFZImIrBCRb4lIudfDXQIm1vMobTJLiKuyqIgunFYjSi+oRzoe2nQ3Oaw28qUzaC7daCnXYErC11P8WkOUpyh4VdwVw23j7eqjlNww5NyxGGERDoWuDaNMxLq+VePuWttjCKZrw8Y2x7UWZlHb3dEeYk3z4C1VSYa1V8flmMqjYga+BPwB+CDwhogc70u+LAlTEdkP+AlwilJqFvA94G4ROdXlNxuYCRwPfCAJr90d+c5RVinMENmBS3gQM8VHk64noecRUwbtgNYoC2kgSjGDZIpjkokqTtlu5ar0wkmUkDQm5jgyd5eNAUNlMIs27A1FfVdGmgt5Oeb7KDfBJ4HDlVLvBT4K3CEiB7tpSVu9DbhQKeXZm+YB43EW/tuVUk1KqVacuIXzEvLarZGfCE0WyGxFCYWJ7cZEFzCio8mTRh1U6Hb2CRfz7kkj/RbLW2nCJuwEu5dy2eiSLDJJ2krXDzScY5Xyl0ymhITQTvBMpu1fJgNlryFLC6xoJsoseUcpAx1KqXpXgEeBy4H7RWQ0CedcpdQapdRDAK4b4GfA/cAEwO+UWQ9MDqIhIheJyDwRmVdXFx4M9lZBkh1Gb8HIMJDSY2RaGwnNMbqdbBrmxLhIY6ccq2wKikRvWyS8J05ywqW3F0ZdNaehz+36M1G2CPM4paksl2O+j1IG6kTkEyIyEEApdStwN/AwMDwN5iIyGPg7MAO40JXHXwuCc7dBDyilblBKzVFKzRkzZkwa4uySeKuETHjP0WUQVxCl/WrX6RTHUHw3gWZ3rinfG+j9hTV52d5GkqGXzrCN4RbxFE1NRSdxuexObZgFdLFAacQMhCkcWVZ9lDJwCY6r4EN5QZT6MvAsMC0pYxGZCjyPs9gfr5TaAawFJvqyTcSxDlgYIM4gTdPsFEXKZG4sSfHJcFRod1c6v6zOFJuhfpcl7+7Jrnd990mQaEF3P3t9d5/EleN+ZhLKa9jv3/LQuOAS3ZXSC/FEYYg6TbBSKXWMUupPRb9fQUJlQESGAk8DdyulPqyU8s6L3AecKyKDRWQAcAFwbxJeuzuyHl9pdLqSJoGEsQ+6BSlN81pSRUlrGUhEXUM7A97du84YhfN8e3eaMznpElo2iX/d/YwVMJmgrAdt0VhymfWet7rlII2L0cIgGm0gy7o1uY54PM6iPKoo6SsJ+F6Ko1CcJSJn+X4/AccV8T+gCkc5uDUBn7cMsuoESpFY4zAx76uizyg6JshyUOgsFLrnLefxvl32aGGCbWMa5vo4F0J2u3t6+RRDL1iOYpV1P3Vm8rc6tMGZqZwm6H2NSqsM4AT2rQdSu/JIKfUD4Achyde6fxaUtjuJ033S6Ljdu690+JkcUQzLkqaSED7pRT+v3s0Qf5ExRaZHC2OXLF/ZOEhjci/b82oKJ5IrQ9q7MgTn2bJUhnR9Lsu6NVEGqpRSZ2cog0UZ4SwaybqxyW7DW3ySLoDiDcleiBkIP56nKx/tO8z27giNVaNMO3QPSczm5eIbz6USo1AKMLUMJbnvIW767g4Rp960wZnJQwZ2rZgBH+aLyMzMJbEIREm7k1gBhKWXSZF96rxSkSHheWptm6VoTgzDrrZ721UXR5OyyXb3CSwwGVgk0nkmXXp2VqldAWHiV+QDP1PxE/Q6TCwDzwELRWQTkH/bh1Jqr8ykssjDNGgnLtKkmvRiJBPFpztPlkE8Lo+M6WdCO8OYgXLfUZAsGC/Johw/hDCLHbiea0Q8S3zSJXCPRgphSmWB6byQqWWgnAGEwBU4NxCm/5okC2NkFkCYAg0jN4EBv1KOrmVpGUjraKEOWbSp8SSbZNfZ62XjH9lKdntheV0qSRpJv2BlFwihtUrtztqA6h2rWzmsJybKwA6l1N8zl8QiEKXsUmOZp1IJICyBXUJ+velT01/cEgydjKmaE8N461wUcWinYHLvbaRyHXEvz8tJFBitqBkqOMZKcGwJygsvXinuKSJDJkDUZie72jNRBp4SkeuAf+C8U8ARSqmXM5PKIo+sJ9HeOpffbRkIz1PSZSsZmgZMjxbqymcZaKSDVlFJsENP9vKdGLv7FMZAvKOFDuI7CZK6NmIw9hAWz5KAZDfphB13N9UG8sdUw9Ldz931RUUmysBH3c9zfL8pwMYM9CKMLANlCiD0drpGE65JXIGBL6FXLAO69LiWgzKeI08loC7WApdgRxq7ZBlPQKRggYlTVidrMiUlOg7CtKrTOMFUDuQlDg0cTq4s605LlfXSIaXUniIyRCnV6L6nYJhSqjY7kSyCsCvHDJTCyCSA0IhcSIWkYenQHy3UHd/TlPfolyyZObK4mz4N9PZOOZ0lp7eDD72ysYtmcprAtKxRzMBuCN24TeNeijROe8SF9mihiHwQWOD+OxVYLCKnZyqVRR6Z+1pTMauXwC7qpIAJL4+OOcvSYTioQ99eZsgmm0lR5+Iozw49CZItYGYum8iycfiWeeebRZBb0sDaJLx3CXhuggxPang0wnhkWXcm9wxcBRwPoJRaBswGvp2hTBY+lHK0ME5HSeOebZOdm9FpghI069AbulIMiAx/BbFh+VDLQjT93sDu9ebBBAu6+9nbAYTlvoBH9/rsJI2YVNHYXZWBfOCvzuKXRsxAGSrJRBmoVErl3xyolFpnWM4iBaR533UQ0iCbhq/Mj8ggwxKuPo4LUzN/ePno+tD5XpMgSzNjuXz35fL758vGKJPItZGCsqgNII1NORy6Ow4wTN9VYewmSINJCMptGagVkc+ISD8RqRSRTwKbM5TJIgAmwXmxAo5ilMmKlskiqbt0KBXlxvDdA7F3SBkqeOZWifjYncqWLWCyTL5fU37lcFFly7sXoJl7ktyHUYxdMmYAuBi4CGgBWt3vl2QlkIi8V0QWichSEblTRIZlxWt3QObWxhR7XaSbIKUZoDdiBrrfdBdtatVfuxpC30uPI5wGukVI55M0ox3fXB8HaQQQJruwKP0dugnfLI4WViRQUnRl0gow3FVhqminwyPMD5qcRxhClQEROQCcOAGl1GxgLDBKKTVXKbUqC2FEZAxwM3COUmo/YBXwwyx47S7I+vrddNwEKRDBbDLR7tbSjBmIG0BoeLwvizY1DfJKdM9Agp1yEiUkDpIFATpIFl+RROmKzy/LBTmsDU1jLHZTXcDYYpgGdjXLwHdEZL6I/FhEjlJKbVdKNWQsz0nAS0qp5e7/vwPOlST3gu7mKMlHXkIPSrJjCqNlEkBoQicyT/5Og+yGizZmIGkAoZeukSOWsqCJnk8S5V6RaBQmP8WQaKOcSIGJUzbB85ouqlGXfIX23eytHbr0LMdultBbDJ3PZO8miNYEsww6DlUGlFIfAN4BPA183DXd3ygip4nIgIzkmQKs8/2/HhgGDM2I3y6PrHyPaQYmpnW9rtGLiojO0xsxA7odkN6c7ik00XJksptNtMBpaGdUVqfgmPDtbaThFtEhqDZU/jNMGXTTY7SD6iYeTNv05s3SWe8SSBwrZICKBOMzKSJjBpRS7Uqph5VSFymlDgFuAo7GeZNhVvIEVUOu+AcRuUhE5onIvLq6uozE2XWQtjKdhd86OmbAhILBrr83ArM0ZvxuZUGTnmBnB9lcoWsa8R2Fcpnc46BcUf1p3NaY6DprraIaH0nN5LupYUA795i2mwmP0HsGyhEzACAio0VkrO+nQcBPlVJzMpJnLTDR9/8kYLtSqqk4o1LqBqXUHKXUnDFjxmQkTvlR0oU+MfwEu5LJzuRZde6NNPzw5mb8ePSNze2JFrB46ZG0y3Te30Mia0asoMfkro0kMofdge8hsBmUYdkSZXLKuPEImkt39LE2u86cUwqMT+ok1wXKgqgAwoOAJcBRvp/PBhaJyH4ZyfM4MFdE9nH/vxi4LyNeuwUqEphITeiazgpR/NNyZRjFDOTlScgsiofGVGceIBiPvodEk6bGqpFkkYoD85c3BaQnqIckkflZ3/Ghg94cHSdmwIx2NN9o2lr31+6pC2jjldJQeHXvecmy6qLeTfAV/17cAAAgAElEQVRD4DKl1D15QZS6VETmAT8GzkhbGKVUrYh8ArhLRKqAlcD5afPZnVBKBytlkJW6c1GEL9ZpLdAmdLoXleD0dGIGPDni7YC0Ef1eeU2+WLs3FV02yUmGNHa7Js8cVn96S43qEbhXtjceJgjUM5U5SC59zEB8ufJ9K4GSEo/zrgHjTUAiJs5HOawnUcrAVKXU7cU/KqVuEZHLsxJIKfUw8HBW9HdXZBczYEa4S4Wbt9O+XjeKShaxDmFc4l7co50UeuEVx9qTDBku6En4BvWzfBGDGIvKorJpKDBxkKSfmloDI1PLYhkwq7Dd3U2gt3wksWR5NMKIxyatRVTMQI+gPR/a0xbEIhiZRUOXOilE5tObYkvpw0YuibCYgRL46HiE+111pyfMTlck3WEFlyn8LIapPzqSR5bBhwn6UFB6GhclJborII4S4vHVZYzwqET3zIQBhAnvGdhdTQO6DVRFCpN172x2ghGlDGwWkVnFP4rIYUCPgD6LbFCSm6AkuqX5jqO0+bQUFhNRkpz9NkWFRj03Plqo251r5EjyjHrLQOnE05js9CcoeqYbm6cDM8SPGeg+MhsfyRbd6PSoMamvqxgCeWVjpiex0uwK0Lko07C6ZBUjZoIoN8F3gftE5NvA8ziKwzuAa4ALe0E2C8wDr0qn63wauwkS8itF/mg3gWaCTqGadJOW8WKfdEGO8Sw6nzGaCS0KSSY70yJR/UwfM2DIpETEcosksQwY6lxBpPMR/wlpB/LTmJ1MAmeV2vXdBEGxJ1DCuE7CXLPZybLmoi4deh74GHAe8D8cheD9wLlKqScylMkiAEadoISeUrLv2CBfUo0/P9cY0ElDOQqlodkR6ga9cUxBgp2fDmFFvQGfxR0G3bzj71gDTd+GZYMVCWXGNwDpnCZI4p7QUI7VhmYurEi+OtqawNtdHaE1Yxjcl8bRwnKoS1GWAZRSzwLv6iVZLAKQ2fGmEumamCQjFwFTuTR5dfVRKp+gCUq/c0/HWpPFWXCvYvSKSBJFQzMZ0rNevSK6Z46eaONbUmLt7mOU6S6bxALjuvC0MScxFI0UrDuxj9aJk7iruwlUyMSgPSWUwlXP2pioDK0qkcoAgIiMwznvPwpffSilvpCZVBZ5pHVsrxgVmE04Hnpj/JooFXkTfgr8wk5IaM2BuiNG+fIhk6ahqT5Rm6fvgTB+6U/UyRPdQwWavlV4WiHfnjlM+pSX3vNYYnylL51Avej0oDFgKmoWXUv/xkxHG8jyfv00oBv3oe5DotNNkOQekKTQKgPAbTgBgwsoj/WiT6OUI4ClNE6pO4TofNG7UX2iOVLVnHWDPkyG6OLo9hDdqaUvjKbQvX45kZsghqnfqI9oaGcQYlFQtrjV0jiWmGXMQJwHTmYZMNPKQl1UhrzDfPa9BRViM9S+tVCjDJUmQ2m/pwETZWCSUuqADGWwiIDpLrJkuu6nuTJgoIwkllFPIJV3vbvoCrMHetJolAVtegjdLG8gVEWfPXj3yGkO08kuql7jxUmkoEiYlN3FnNpZxpQkga5fh+UwVa6C7ovoTegDh3VWpvi8Kwx5ZIHIdxO4eFNEBmcuiUUkTLpGSR3IMBjGQ2SUtwGJUrp2JL0Uo21Dd/6G5mGd71SHTI9/aXZnWe52k5j6k1iXgtorrxxl6ZIJQBoXcWkD1WLQTHK0NG8YCO1bGkXdsE7KbX7WKdJ692H8J9BtFMptGdgELBSRp4EW70cbM9A7yMpaVirZtBf8KB4GukAK3MJJ6E8LmNWe/ghS+pNiOm6fYJheZZvI1B+Q3t0vNMpZFN1otqGm4TCZdEhiwUrShrqiafik4/bbfMyAkVJXRtOAZrEPjxlIbrVM5c2HMWGiDKxx/yzKgMwCCEv0HZucFEh0pCyAXhB0O9tS+IT71aNpeea0uG4CD2aTYjyE3k2fDwKM4SZwP7XXsQbQVhFpfiS5SCfwWGJ+N6vjG05Of5Nk+DsR9H0g3D+eyIoSgkT3DHifOiU35mKa51Nm00C4xS9aGa4wbPNI6KxvGdZNqDIgImOUUnVKqW9H5BmrlKrNRjQLKG3yLqmflOibSn6HQAnyG/gJ0oi21ZoDQxfU6PJ5+rrTBLrymvSoMroJO0s3QRTtWJaBos9wvkmUpyBZzOhF7WNN6irMPx5HWTStgrTrCvQ+dVMXRRonhZIgVLpeUGbym534JOLzjkj7o4h8SURGFieIyDARuQK4JTPJLIDs7hlI4+hTMdI6DhOpCqTgl8tTSLCoRZXXuRFMrT2JYgbCeJcpyt10QY9KT3KaIIkVJqmFJ7JsZFp8d0wY0oh4D1c0NUquad8rs2VA797LDjqFKUveUcrAGUAlsFhEnhKRG0TkRjd2YKmbFus1xiJynoi8IiILReR5EZnjS7tSRJaIyAoR+ZaU84zJLoBSHr6UjlLqDjGR+bbEPFF50zjL60F3/E632Ie/JtYMWUQlm9ShCe8gmN5eF7nrjLPb1UrmlY3NNtoikUBpi3PltFcmVqCm5kmTuB11Lhf9PQPR6R7KfV2x9vm0z59E/mxOj5kg1E2glOoCfiIiv8a5hXB/nHa8B/inUqotDkMR2Q/4CfA2pdQmETkVuBuY6n7/IDAb562JjwGvA3+Pw+utgKxiBko9smiSLS0RTSwDYXKXIkNYXt3xHt1in5bvNNl1xMFlS40VCaatSY8ok2S3myTgMo7iZT42ohwF0Uj/GKYZymF1SuXVzL0A7f0iOstIGm6CsPktQy1BG0ColGoBHnL/0kAbcKFSapP7/zxgvIhUAWcBtyulmgBE5GacdyP0XWUgxYssCui6n8Z+UaOdfTpSmlgG0rjFLK6bQBtVnFGbmUFF8k5DtiQ+0zh1bmrtCLyBUFMf3fki0mL2k7h8VURaQb4YCozpVceB/DQ8TJVkrSJabm1A4+fIctynY12IB5N7BmJBRE4Vkc7iP+BYpdRDbh4Bfgbcr5RqB6YA63xk1gOTs5Jx94DXAU1W45LJGgeqRLoJUu+4UdpA9IAsRSHRnSbQIa752PzyHjM5AnmH/J7onHki3s6vcU4iRNM1y5DpLjuCX5wFvTstwzbKxDKg2fmXdGlV+aCzGIaWM1Rao6CzPmRZMyZHC2NBKfVwFH33IqNbcBSAU9yfKyh8XsFxFwSVvwi4CGDq1KnJBd5FkVXEhOnVoB6S7PbA1M2g38Wl6TbRmfv0yoLO3BnmZjBT8OIoWXmSCXazOnniXsZkxCOwqBm9SKuCjm+ELNp2SDA2Ao9hGlZfb1+TrGt37f0chnTKbRjQjftMlZUU3HhxkZllIAoiMhXnlcg54Hil1A43aS0w0Zd1Io51oAeUUjcopeYopeaMGTMmU3nLicxiBkq83MJoMU+oMJjkTTPaNq4pXecbTHopkWl6ZNmQ39M4nZLEfK0PPozPONKqkKlrI9w9oUMyF0PpjZimmy0MunGxq98zECcmxvndTFmOQvcdJiHzW4Z1Y/LWwvHABThvLcxDKfWVOAxFZCjwNPCngDsM7gO+KSI3AJ0u31vi8HmroBQ/VJx+YlrGJFI7aT812cWl+jIQTYCgzjeq2wGFIS03RGCZfNloq0QSq0OcXXYxjfCy4TvlWEqIkVTB9WVaR9HPm6FVIY5lwJh26S8LSus0QbktA3rLRrzyJkqCaXBxFjBxE9yPsztfmRLPS4FpwFkicpbv9xOUUg+IyMHA/4AqHOXg1pT47tZI239Y6g4x8dHCUoZ4lGVAdwoiJQtEVLrpi4h0yoTO3BgnyMuDTrZMTxMELqyFn3FoJzEv6/hG3UCoQ7QlRFM2ZpqOrw4mC1qpHkqtG8DworOyxwxoBn6c2yx3B5goA1VKqbPTYqiU+gHwg4j0a4Fr0+K3u0NKGJKlKAymC1IpSErKpHiacmtPC4T5/FO6CEpbPJFlIDg9FTeBblFOYuqPWJT1C3oyhTW0rC49Ad9gF4OeLsRTFk1PE6gAbcD0pELinfUu6ibIm/BLLFcKul0pvV8JJjED80VkZuaSWASiFEtdKd2nVHN79BWzeiolxQxESKWTu5Q60AX46QIM4+5U07jWVwe9iyN9q4NJehJrSJKdcqxF2bSsRq4oRLsYSi+cxJpREu8AmN4zUO6dc9bjtlS6BTzcz13VTfAczlsLNwEd3o9Kqb0yk8oij1I6RymdtORLh4wyJuvBJpNvr5wm0Jn5E7oJdPzz6dHJkTTjKjpGtJMsrIY8An9LUJ+JLizK8jRB4PMqrUwm6aXyLaTd0zSg42d8GZc2iDTblVDnAon76uju8RFfft3mL8uaMVEGrgA+SnoxAxYlIOtLh0wHnonlNy0ZjdSOkEyljMMkZ96jeOnebmYaxJfsrYXB6I0AJZNg00zKxqSr5ZtI+YnfxrrnDY5ziC6V5R0XWkXdVEnW8IkT3FhYnkhtIE57Q7K+7SEL960pTJSBHUqpPnsD4K4CI1N8CfRKDyCM4Juy1SLSMpDgBrUefGLGBKR1HXGmvlOtVaN04nmlL8FkHneidcpmt7AmCsaLmQaawMUEzxsG47P+UXKF0db4u02tnFkEN5ZCP25509suo6A7flnW64iBp0TkOuAfOFcJe0K9nJlUFnmUtoiaZzY95lMK7d5QZvU3dJkLER4opLtHwCuf7IGz8UU7REODIw15R3OIZzFx0hKUjSwZnG7+0p+A3b1hX4oMekxUz6Xz1RUyfv12hidZkr6gq0vpbwOMpK9RJ+IqK2m4/TK6Y84IJsrAR93Pc3y/KcDGDPQijHbfJVEs8dKhBJO0cZ68rzQ8d5qvdNYt9qGnCTRD1jSmQGvdSOQmCLN6xA/iMt35pP2OgPyzGCwScZHETZCBAQcwcWMl4BunLjWFdJZ77SuO87wzfHBScA8mUIZ10N1ymOV+y+RFRXtmyN9CA1X0aZTZAKX6jqNNv8nNY4X09HlCB0sJQhgdr4pK19FPuDuPU5/mwXZ6E3SYXzaReyOBXPodW3iGODcfmgc9Rig/ukU3gLFpoGac1z0bX4Udo/P11tHBqDc9miCWxQUTE35skXw80qNVKiKVAREZAlwMHIVzDPG/wG+BM4ANSqmnMpewj6MkN0EJdEs1FxtZECKtB/ryJutYmu9qiDtp6WSorIi2unhHrHKa1S2X4MxaWFHdK1Lz5RVUhjxnnOOBpgtr1KKsU96i/O/ZxirEowuQS1mB0cF0ExBL0dDEo6QVvKhLz3Wp/BgMLK8hENtNEF3MaILuVtbi04iLqBcJjcJZ/N8AnnB/fhfOK4cbgOOzE8vCg+kOwzSPhwrNwC2GyR3qkRNfKUpNRN40zyonWSAg/JG8ug1b7L2JKpeUf8DuXbf4VWiCvPy8K4uPlhnuWLsilJioxU8nVxRdCK5vUyUkSi7t4hNRVv+88dKc9PDnDYN5+0fTiUJ433M+dUqwVoEyKF/cdwvTI4tHKPHR8nnlwtJNTgiU8xXGUZaBbwM3KqV+4vvtNyJyF9ChlKrPVjSLUlFSBypxUY20/Ho7t4T916MTNdjTvYFQN+hDZDC8XCVssc/TTzopKuhX4u69e0KOJE1OQf/QtNIn67zCaMA3tGwMRcL7TVfXQfXR3a/jl9XWc4RcOpk7Y1iOKiv0fCHe+NLNA6Z3m2j7l0F79K+MStePqyB0j+t4ipRJjeoDpLNDlDLwTmCW/wfXWnAA4fOERcro7lj6blDK+C3V2q6bmEBn8jRHFJ00z8mHDXrRmPF1Zn5zy0Dpi4wfXQFh1boJ2XRnGL1IRcsVvcuOz1dXX0GLY16RiCyp4xu/bJznNVWuo64yDoNOUc3LFaSU6XbUEXI5vD3ayfq93r2m6yfxyusUad3zm8zPYmg9yQJR1xF3KaVyRb814JwqaMlOpL6BUqP40+4bpiY7D1Hj09R8bIqoxUa3EJciQpiCo5u0dOZAD2HlKzXP4PnqtZNWjArPKyK6nWFGC1wsq0KCXbZpQGW0NSP+LjruLtRJS7boBcF03MehreuOnj88KW+9IpPQ4qZT4sPmHs1cbWK59ea3sJxZBhZGvptARIYVCqI6gJrsxHlrw68AmI81s4WnO6cZSj1iZjI5RFoGShAu6ll1R29KMW/qd/7B5bxScXcw3cpGcLmKCtPdezT/IOTNxAYuiGJ0L+jRPAJ36BrnfWUKO6KgZ/LqMM4CoQzHXpTSZhLsFsY3rC48W1Cw8hPNUKeIRssVjbxLJtQq5dLOaLE2T49M1ta77thf+NwUzRf0ylqWsQRRysDtwA0iMsD7QUQGAr8H/pIGcxE5U0Qain67UkSWiMgKEfmWJLl3cheDv32NrwEuwTJQyoJbqVlUixEZba2ZvJw8enQvshHKgPsZNgGXUgc6n364ZUCT7tEPmXQqNDsM4wk7YvELQ/dCEpktkLdHO84raLs0/TjJ/Qd5HhELmK5fRPnfk5jU4yxc3k9hJSsr4teVru95CBpfpq/u1QXgZe0GSGo5CCvv1Xv43OMqQ2HPZzD/azciZbIMXOd+rhKR+0TkPmAVkPOlxYaI7OPSEd9vpwIfBGYDM3FOLHwgKa9dBf52NN3VedlMOkEcrdF0JxYlr+mEa4qowaw7TVDKBKmzDOiDznTmwrDFXsffS49kH7mQhEEMg6CidobaALCosiFlvGeOswjl+UYsyol892VyqYRVVlRd6dpfZ5WKoqMr0+0+C043fT2vLjAyqfskbrrpuDS5MChu3E2WoQShyoBSKqeU+jDOnQL/cv/OUEqdqxLewyoi1TjWhS8VJZ0F3K6UalJKtQI3A+cl4bVLwVdrpv5e08nMn9cEpoFEHiJ3/ZqdspPHRH5vMomwDKRoRtNH3IcNSNcSEtN8rFNoJMIy4a/HOGbiKBOzH0G8vTJxgvGMLRYxguKizeaFn2GIPNIYQ/nRmczzZQPSuzTjILKuNA+axGJh+upfrdwJTzJkb1nQjdvoTUDYnOov16mZe8IUzCxfYGRyA+E8nLsFSoK7y78/IOmTwInAH4BFRWlTgCd9/68HJofQvwi4CGDq1KmlilcW+Bcqc9+o2aRSKkqNWjVRXnTarra8wcStm1BKchOE+QY1ilL3jjEufU16RKBVwe4icCGJlsk0X9RxOV0lx4lEJz8J9kwy2e3mVLTbJM6Cnk+LESiqM/VH8dWOgwR15SUncV+E0tbILREWDR3vktJjugE8aAOLQzci7qeBZUA/9ySf30pFZABhEiilHlZK9Sv+A4YAnUqpP4bI439cwXFLBNG/QSk1Ryk1Z8yYMek/QAbwN2Spk3ZWLwoy9zEbKAMJe6qJwqHzLZfkJgjJazro9ZaDYPreY4ZNilGWAX+RJEFeup1fHF92dNnoUlGnRHRlo6K8leH4Cd6hF9IILRu4KJtVVpQCE64LRNVVND+V75ulL6im1hX9zjqaTtktB2HzguFpAt24BxOFI4RG8M+pwORFRWnjAqBaRBYCVcAg9/upwFpgoi/vRBzrwFsCJpphjzLeLrRE+jqYWgZEHBmispm4CUye12T+jPKXOjTMa0G72MeYMMEXLKdTFnRRy1FR+QTXgX4iDS/r/yk6uj6ShVaJCUKU6VtngZGICdSjloVrI1820jKgaY8Yrg1TN1IQut0Ekdli1UdXnrZGyTXso6XIplNkdeVN0r2dc+hi740Pg7kp9I6TfHry+a1UZGYZCINS6gil1Eyl1CwcBaBFKTVLKbURuA84V0QGu6cYLgDu7W0Zs0KBMlBio6YdQGgaM2AygLtveQunYxKbYKIwaI/3lGQZ0Gj42sU8hG5X9A7Jq4vQxzW0DASV1+/evM/onV+UsqDdZUcFxYUhop9px0pEe+n871E8zINrI3b3WsWp5295mTV3/AfyjWaXf844u2NTN0HYuDC9PVTnRggKMNRZzPyIHTNgekdHSLKJjLoLz7IMICyHZSAUSqkHRORg4H84VoP7gFvLK1V6KEV79WA6mTkMCnlFnco0Nf9XipBDGd3dHnUI1OQGw5JM/GGDxfddVwdhyosuKlpnCdHtkLy6iHeOvPt78GKg2xmGKzL+Phbs9ze0DGhoB6GCcOXUVMGLftlQdNlAJaTLK1v65N+tdJXO1/sl1DLglY1oozBEKYM6uUyvg9a5CfRXYZvxCfvN5BrvyHStGyB63JtsyuIrFNlpA2VVBpRSa3BiCPy/XQtcWxaBMkacmAEvm0lwnr+TR91b74dukTY5l252IZGBLAYd3RMjlGXRghZVBzrtW3t0MKbloEszqXgKTPDuPFqhNLUM6HaVwTt0l0c0C63VIQhRcRrafmFw1C4LBaa7bABfwwEe5eoJVwbCj76aKh9xgvgMDTRaN4GOd5zAXP9P2qOJ2mcP/t2TO6y8lx425fhL6dwAaQRIl4pedxP0ZfgbuNSYARNt0z/ItIu84Xljk7PBRou4L0/Y7sWkSnTBdyWZC0Pk6NRMmPlJIcwNoHUTRA/4qPcvFCqU4QtJGEwDCIN92WbaQByLRSI3QZ5vz9+M7yiIEX/hIXBBNxy3UYqT7lXAuiC/qB10FjEDeSU5TIkxvOhMx1t32Vac9LC8QXKFPZ+uv3T6Jlv97aYh81skh2SwykAvwj9pmE5wHSXcOVvQ2TT0Te8JN4kZ0Gn6oDdBg9nErQu+K6jjmL7DTs2g794hhMkYTT/vJgjd+YWXLzirHHX8LwRRVokCRSoiPY7P13BzH8uq4CHQ729YNlCxMuUboTjp3RNBsng0gstE9Y/CDUE4vzjH73TDXDc2u2UoXUkv3EgF8O4KzmuabiKfqWUgzDZgMjdpNxIZBg1YZaAX0anp0FFlTPL7O5DpLVmm2n60m8BANl+eMKuFyeSrW6g7fET0k1fw7znDQR/uO4wun8vXacjOj/D0Do1CaXoCIqjNdBOueUBdz990CmO3ayQ+36B+ZapMR5rrdXwjFk5d2ViWkAirnv95o/pHUF3pFis/vSDF3Rt7oRa1nNlcFhW/EZauixkoTI/mHya/zsXipYeFKZlsBttzXvsE0+gw1VBjwCoDvYhSzPjFZUxM8aVYBkyVDJPb9owuJDIw03UadPSO/ISi087TsAzE2yGYmhN1MQtByQXKTkCGdk0ddnSGt2e7pv94vCuiIkVDyrZpHLlRdWI6AUbLrClbYsyALhi43SWo4xvEo92tq34hhSPrStP/u61S0YpTYHpn9ILqPXNYvbXlwnn7EdTcOc38UfjcPcvr6qWAlyZmQDeuwyycBfUbc6PRmfRmtwhYZaAXEc9NEK2N+pHTTFB+eJOz6T3fUcqLLnDGz8+hGZLHYBfnTZRhE45/wMV9BbDWHKhRSFpdGcP4t2meISpmoaAeNRN6EPITdtAC1hk9WZn2meAdumE/i6FIRFmvohQYpVtgcuH9ujBYN1zmoKry121QG7drlK7OiDFZ6JcOkit8E9DeGV22XbOYtWt2/l7fjHNPQIf2ucz6LhgEMOpigbRuhGC6BZa3EBF0mx1/G6UNqwz0IuK4CXS7zAL6JZjI2zWdLs/fm2gjFoDWDudhqvqFd6dWzSIG3YtRZUSv1ClH/h1AsP9Z3wbdPMLSvcU8OL17wo1WBnT89ZNiOG8I3qG0R+zO2jUTblSf0Sm6psqAbiIvfialVF6uoD7htVVlwLrarrGyeH02qJnaOnSLT/i4bdUoxjrlp3v32DOtXTMHtHTmCmgUltXJFd3G7Z3hi72THt73Ct17PdOb27svog2SrVWz2OuUBROLYpvhQh06N2nGl5PHU7gDk402hXFhlYFeREu7fkEsRnNH9ADzo6lgwETn796dhucxWTihcKCGoVUzefplijJDt2rkbmoznzTC2qDRpRG2Q2h0nzfUMtARLWOU5cBZ3MItB7pJrbWj+/kDF6IOT/bwtND0iLrXWX6afbSLF/Rcl/IpKQG0IxY43SLS5I65oKbQWVmaI9q5SbM4tUUsjAVjIaKNw3zf+SBAjVxB/as1Yj5p8ckVxFunxLRqLF7559KNywjFLIy+TlHRjXtdX4DuuSU0vd1s3oDwucOb78MssU0Gc21cWGWgF9HgW6hMYwbqWzud/AbKQ2ObuTKws6VTm6+AXgT/Js3iCIXPHpZvhytTVN3s0Mi9szVa5vpWfRs0tkXzaNRMCjtbNTK2hLdpQ1vOdxqhZ1nv+cP4b/enB/Df5tWfrmxA+o7mjlC6O31lgxahHc3d6cXJ9a2dkUeqdkQ8k65fRbVFId0eyfm+ErR4NWjGRlQ/9ca0Qzu8HXT1HNy/denhC1ZUPTvpHZG0vfJhwZhRbbG92d9/eiQXjNsg+v56CWqvnS25yPSCegvZ+OTHfUh6Q1v0PFgw94TNHRHjs5hG2rDKQC+irrE9/93UMlDXGD4BF6OmwYx+U1uuWwONyFfX1D34oxboTfXtWp6bfbKFkfLy5FSwibupLacdcH4+QXlqNOmtHV1sbQ6ftJRS3c8beLRP+Z4jeIeyLYJ+TX10G26qL+H5isq3dnRFKoG6uut+7mi5gvpUVL1rn6m+rTu9iPbGnb60gPaoqQ/vU36ZghaYTS7foHbY6JMpaGx4ZYNeVbtR08ZeOwSV1fXfgnYoqo/OnKKuKbzv+vteUH3URLSTUiovW5B1Z0tTR+Sx1pqG6P6zyd8HYvTdzZq5UTfudrZ2ai2C3f0lMLmwHwfUf+H8FkzD/xxpwyoDvYjXapry301iBprac6zZ1urkN9Ad3tjcTT8q6HSxT44oH9SijY3572H8c12K112+ua7wSNoCWiGBTwX1E0Bm0aZuGmFiF8rcM9MrG6Kf6dVN0emrt7VGKiQrt0anL9rY6NsF96S/YEN0PS3Y0JD/3tNk3sXiTeF97JWNjZF3IBTwLqq7nS2drNrWAgQvUn65imm3dXYVtG0x6yi+7Z2Fz1Tcr6PKtnZ0FY6JYr7r/XVZmNjYlmNZXYvLs+fzLozgW9/aycotXtkeRXl5vb+uCtOa23N5mYP6x8vr/f2jME0pVdjkCyYAACAASURBVNS/C+VatKmx28WgbcPCtFyX4pWIMbx2e1t+dx9UX1HPDLAwov846dFjv6B8wLPp6OvG3auaeaWhtZNVW525OmzjtGhT9Lzrn9/CFA5/G6QNqwz0ErY2dfDE0u2MH1oFmO30H1i8hc4uxfihVVo3weptLcxf18DkEQMc+iH5lVLcsWAzwwZUMnxgZfjFOjnFXa/UMXXkAColXN5H3thKfWuOA8ZVA8EDdf66BpbVtXCgmydoIDz4+hZ2tuY4eMJgh07AzuO2+ZsZNrCSySMGBNKYv66BJbXNHDrRueG6eNJp6cjxj0W1eR5Bu5u/zNvMkKpK9h49MPCZ/zyvhqpK4cBx1YFtcutLNQyoFA6eMLiHMtGlFH+eV8PwgZXsO2ZQ4OJ158Ja9htbzdABlT3S39zWyjMrd3D41KGB8t+/eCs7WjqZO22Yk+4rr1zewwZWsv/Y6h51s3Z7K/9avj1ftngRu23+ZnJdMHfasB5p9a2d3L2ojsOnDqV/pfSgfe+rW2hoy3XL5ZO7uT3HnQtrOWj8YIZUVfYoe8+rW6hvy3HUnsOBQkWkqT3Hna/UcujEIVRXVfSoj7teqaW5oyuQ786WTu59dQvvmD6MioD+/deXN9PZpZg7bVgP5Wd7cwf3vbrFRzegrhQcOX1Yjzbc0dLJA4sdvtBznN6xsJa2TpVP7yp+3oW1zBw/mMFVFT3631PLd7B+Zxtvn9rzeZVS3PpSDUMHVHLQ+ME9nndzQzuPLtkW2HcAHluyjdrGjjzt4qHxp5dq6FchHDZpSI+yHbkubp+/mUnDq5gwrCpQ0bx38RaOCOnXtQ3tPLpka2i/37CzjX8u2x743N3lt+XpF88djW057llUx2GThiABz+aM282MrO7H9FEDAxf7vy2opbNLcdikIYHK8vK6Zl5Ys5O3TfbmpuC5Z7g7vwXNLS+vb+C1mqb8XJs2rDLQC9jZ2sn/u3c5HbkuPnOk84Zm3eK+eFMTf/jvRt4+dRiHThqi9e1/46FVVFdVcu7bxgHhi/ffFtTy/Jp6zj98PIOrKkNN4dc/u44VW1q45KhJVFZIYL4VW1r42dPrOHjCYI7de0Tgc9U2tvOtR1czefgAzjpkjJunkM6y2mZ++ex6Dps0hGP2cugUTxi3vFTDvHUNXPSOiVT37zkRbqpv41uPrmbS8CrO8fj4GOW6FN95bA21DR187ujJzgJQRONPL9Xw4tp6LjpyItVVPRfjB17bwiNvbOOjs8cxZkhVwGK8hceXbuPcOeMZG5D+l3mbeWltA59+x8Qeda+U4sdPvcmGnW1cerRX591lm9pyXP3IKgb1r+BTb58AFE5qS2ub+fV/1jNnytD8wumn/ye3/i4+chLVRQtJU3uOqx9ZzcB+FVw4d0KP+n/xzXpum1/Dew8czb5jqnscYf3e42vY2drJZ4+a1KNeX6tp4rfPrWfutGH5Bc6bLLuU4gf/fJOahnY+f8xkKisK+8/S2mZ++5/1vH1qd1n/EcTvP7GGrU0dfPboSfQTKeD7ysZGbvjvRo7dazizpwx1y5Cvt+88voaGthwXH9mzrueva+CW/23ipP1GcuD4wQVpnTnF1Y+spi3XxWePmtSjrv63tp4/z6vh1ANGs+/Y6oI26OxSXP3IKlo7fWW7CmW+8YWNHD9jhE+h7X7eHz35JrWN7Vx6zCQqRQraf+32Vn701JvsN7aa9xw4qodct7+8mRferOfCuRMcRdNXtrWzi288vIoupbjElcs/dlZt7R7n795vZA+5H3ljKw+/sZWPvm0cY4dW9ejXv/r3BpZvaeHzx0x2lcXCOvnO42toaM3x2aMnF7QTOFalKx9aRaUIn3nHxB7P1dKR46qHVjGgXwWfyvfd7vKtnV1c9fAqBLjoHZN60M91Kb77+Bq2NXfwuaOD57o/PL+RVzY2csmRkxjYr6KHkv/fNTvd/jLK7S89FcCvP7SKYQP78fHDe44vgP97YRPz1zvjc2C/noptTX0733xkNROHVfH+Q8eSBawykAGUUiil6OpSNLZ1culdy1i9rZUfnr43e40eBES7CZ5duYPL7lnGqOp+XH3ydOfNgRE+pIvvXMqa7a18/717MXpwf4d+gC5w+8ub+cWz6zlu7xF8dPY4Kiqkx6LapRS//Pd67nqljnNnj+P4GSOprJAeC/iS2mYu/ccyqqsq+f5798pfkOKXs6a+nc/euYymjhw/OG0vBldVunm6ia3Y0sLn717G0IGVfPuUPelX2ZPOHQs284fnN3LK/qM4+5AxVEjhgK1tbOeL9yynpaOLH50+g+qqCrcOVJ7fj59ay79W7OALx05m1qQhzjP5eNz1Si2/f34jJ+8/ig8cOqZH+hNLt/HDf77J4VOHcuHcifSrkIJAp38u28aPnnTSP/n2CT12m3e9Ustvn9vAu/cdyTmHOPRzvkXx58+s5+E3tvGpuRM4fOowKqV7Qm5qy3HFAytYuaWFb528J2OHVLnlHNort7TwxXuXM2xgJdecPN3XFqrg2U7abyRnHbwHlRXdC0lTW46vPrCSFXXNfPOUPRlbZLl6eX0DX3twJXuNHsSXjptCRUV3Wkeui+8/8SbPrtrJZcdO4YBxgwsm0yW1zVx+3wpGV/fn6pOmU+mTq7NLcd2/1vHEsu189qhJ+Tbxyi6tbeaye5Yzorof3zzFGQP5sjnFj55cy1PLd/C5oydx6MQhVPgW9MWbmvjK/SsYN7SKq04s5Nva2cV3H1/Dc6t38sXjJrPf2OoCBWbB+gaueGAFU0YO5KsnTMsfSexSTtlvPrqaeesauPKEacwYMyhPFxwl4qsPrGT6qIFcfvwUKsUZN0op2jq7+Najq3lpbQNXvGsq+4ypRnxlX93YyJfvXcGEYQO48t3TCt7w59XV40u385l3TGTWpKEFY3LdjlYuu2c5lSJc+969qHLP5nr1ce+rdfzq3xs4fsYIPjhrrNv3nLTWji6uemgVizc1cc1JezKlyLL45rZWvnjPcgb0E2d8VhS+ROvpFdv53hNreNvkIXz6HRMK5iqlFDe+sIm/L6zlQ7PG8s4ZI906ccp25hxF0muL/cdWU1nRTbu1s4uvPrCS12qauPrk6UwZObCgvls6clxx/0qW1TVzzcnTmTR8QEF6a2cXX3tgJYs3NfH1E6cxfVRh+VyXo1A+s9KZF2ZOGEKlFCrZf5lXw59equGMmXtw+kGje4zr+esauOqhVey9xyC+dsLUHnP1zhZnI1jb0M6PTt+bkYOcdwP655bb5m/mjy9u4vSDRnOmOz7983dtQzuX3bOMlo4ufvy+GQyuymbZLstbC93XFP8KGA7kgM8opea7aVcCH3dl+wvwbaW5tP71TfXM+s7jgO8lH8r3mg9V8FGQls/v/qIUAeV6puXvHi+iE4afnjGDd0wfzvK6ZiDYjN/ZpfjD8xv487zN7D+2mh+etjd7DO5PZUVw/jc2N3H5fSto7ezip++bwRFTh/Hc6p0OLV9v6uxSXP/MOu56pY7jZ4zgu+/ZiwoRKkVoau9ie3MHI6v709bZxfceX8MTy7bz/kPHcOnRjiZdIY7S8ea2VqaNGsiLb9bz9YdWMnRAP351zj6MHVKVn7w8M3ZtQztfe3AVjW05fnnWvuwzppoNbrDX40u3cVT7cLY3d/Ldx9cwqH8FvzlnP8YOrcpP+ncs2Mz+4wbz4pv1/H1hLcftPYJvnDTdkbtCWFLbzB9f3MTowf3544sbaWjL8bMzZjBjj0HUukE2N724iUMmDGH+ugZeXFvPBUeM5yOu5aRCHDlaOnM0tOZ4dMk2jt5rOF9/9zTErZuX1zfw3cfX0NmleHzJNg6dNIQfvndv+lUIlRXw5vZWrn54Fe05xTMrd3DoxCH86DQvXVi3o42vPrCSpvYc89Y1cNSew/nmydPz9BdtbOKL9yxnW3MHy+pa+PBhY/O7/ooK4d7FW1i5tYVN9e1sb+7g6pOnc+Sew/PBTj9+8k3uWVTH8i3NDB3Qj1+ctS9jh1TlF79L/7GcCnHiHI7aczhXn9TN+9VNTXz89jeoqW9zLEsnTeeoPYez1Q0a/eGTa/nry7Ws29HK1JED+dmZMxg8oDK/wJ33l9dZu72V9pzi03Mn8MFZzm6lnwh/W1DL0yt2UNvYztghVVx/1j6MHtw/37af+OsbTjBja45zZ4/jY3OcNqkU4Z5Xt/DU8u3sbM0xZkh/fnX2voyq7p9/po/f/gadOUV9W46PHz6ej77NKwt3L6rj+dU72dzQzoRhVfz8zH0YPqhffkH/yJ9fyweyXXzkxPwOq7JCuG3+Zv65bBubGzqYOnIAvzx7HwZXVeb5fuTW16mpb6Mtp/jCsZM59cDRgHMh0Y0vbOKOBbU0tOWYNnIAvzx7X6p9Zc/7y+vUNXZQ35bj88dM4vSD9sjzvfl/Ndy9qI6drTkmDqvi12fvy7CB/XzP+zo19e205RTnzR7H+YePz5e9e1Ed89bVs6m+ner+Ffz8zH2YNHwAK9xYhy/cvQylnNMJc6cN49un7ImI0K9CWFrbzCf++gY19e3saOnkindN5YR9R+aP2P363xt4Yul2Vm9robp/Jb88ex8mDh+Qj/34ygMrGTqgksWbmjhw/GB+cvoM+ldWUFnhBAN+8Z7l7GjpZEltM6ceMJrLjpuc79dPLd/Bl+5dTk1DO6u2tha2hQh3vlLLq5sa2biznc0N7Xz93dM4fsbI/NG+P71Uw2s1TSypbWbd9jauOXk6x+w1In+a4daXali0sZFldc2s2trK106Yyrv3HUWLe7z17wtrWbW1hTXbWnl1UxOfnjuBDx02Ll+vTyzdRnuui21NnTy5fDvv3nckVxw/1Rk7FcIrGxu5/pl1VFYIdy6sZdLwAfz0jBlumzvz7e+e28Cwgf2499U6Nje08/337sUhE4fkY0nuWlTLxvo2Vm1t4YHXtnLCPiP56gne3APL6pq59aUaRgzqx01F85s/aDZN9LoyICLVwOPAp5RSD4vIGcBtwP4icirwQWA2jpLwGPA68PcomiMG9ed9h07M3xTmf4e999V7MU/3/77v7pd8KQnO7/0floZIQT6P74RB3T5PT7P+zX/WM3JQPw6b7JgwtzR18M1HVjN/fQNnztyD//fOKQxwL/GpFKGusYPzb3udr7xrGgeNr+a+xVv42dPrGFXdn1+ds2/e4uDdYHrhHUs4bu8RfORtY7nhvxt5eX0jH33buLwpDJzLfZ5bvZPT/m8Rpx20B4trmli5pYXPHT2J82aP872xEJ5cvp0nl29nnz0GsWJLC3uNHsjPztyHce5O0rtv6JuPrqZCHOVo7ND+/Ob9+7Lf2GqXn0PvTy852jbA3nsM4rr37c2EYQPyMoFjNvPw/kPH8MXjpuTrrkJgW3MnN/x3IwCTRwzgd++f0YPPf1bt5D+rdjKofwVXHD+Vcw4dk6fZ1ulEP9+5sI6qSuHc2eO45MhJectERYWj6D30+laqqyo465AxfP6YSQzqX+nK4OR7Ytl2xgzpz4dmjeWSoyYxsH9FgQzPrNzBtJEDuXDuBC44fEKevvecC9Y3MGNMNVedOI3TDhxd0HfB8YceOH4w580ex6xJQwvKtuUUje05Ttl/NBfOncAY12Lg8X5zeytzpw3jfTP3yO8I/em1De3MnT6ccw4ZwyGuWdp/Be7gqgo+fvh4zp09niEDKnvQ/uCssRw+ZShzpw/vrld3WzR4QCUf2388HzpsLKOq+xeU3dzQwakHjOa4vUdw3IwR+bLeOffJIwZy/j4jOPWA0YwsKrutuZPTDhzN8fuMzI8p6D7WNXRAJacdNIEPHDqW4e4uLP+8jR18/PDxHDF1WN51ANDs3kUwqro/Z8wcw4dmjWXwgMJ2fnN7Kx+aNZZj9x5RUNZTufcbW80xew3ntAP3yJf16nLl1lZOP2g0J+03isNdvzZ070D33mMQR+05gtMOGs3wgf3csrh82/jI28bytslD8y40KHSnnHXwGD582FgmDi8cQ9uaOzn1gNEcOL6aMw8ek5fHS1+/o42504ZxxsF7MGfKsIK6Ujjuo5P3H80njhjvG59O+pptrcwcP5jzDx/PJ94+gYG+uQrgpXX1HDhuMJcfP4VzDhnT3a89C8yGRmbsMYjvn7oXJ+w7Mv8s7TnnzolN9e3svccgvnrCVN7h9i9/H3hm5Q72HDWI68/ah7e7cQ5e161paOfJ5duZPHwA171vb452681ry0317Tzw2lbGDOnPN06cxmmucgbOOf/mji7uXFjHwH4VfOKI8Vw4d2LB2Gnp6OJvC2oBOHav4Xz9xOmMKOpr3vw2fmgVvzx7n/zYrXDr/qW1Dby0toEKgXNnj+OzR3XPyxXufP/b5zYAMHl44fwWdk11UpTDMnASsFIp9bD7//3Aavf7WcDtSqkmABG5GTgPjTIwccQgvnPGzIzETY6ampr8d69DbtjZziV3LeM35+zLtuYOrvvXWsd3V9Q5wdGmAZbVtXDpP5ax5+iBvLG5mbdPHcY3T5men2yhuzOC4254ZuUOqqsquPqk6bzX3c142OLuAqv6VXD/4i1MGFbFz86YwZG+SRa6J+lDJw6hs0tx7uxxfGruhPzC6Ofbr0L48GFjGdS/gvf7JmTonigAvnmys8t/1z4j6O+7ctDLM6q6H988eU/GDOmfV3Q8eOeVLzlyIkfuOZzpowYW0PAPlsc+cygD+lfkJ6ti/OacfTl04pD8Iu3B24V8/pjJnDt7XI9y3qOcO3scnz9mciBtgPNmj+PSgHTvmNJFR04KpO8dKf3sUZN69Ad/G//hA/sV1LGT7nwOG1jJ9Wft04O2dy/EeXPG9+Dtp+3trP3w6nbWpCGBz+1d/nLh3AkcP2NkQZpHetzQ/lxz8vQeZb06OX/O+AIlwV922IBKvnFSz7LepUWfP3YyR/gWXOjuUxOGVeV94kG47NgpzJo0pLCsy3jvPQbx/945JbTsxUdOZOaEwrKezLMnD+WqE3vK7OGzR03qUdbjO23kAC47tidf73jqJ46YwHsOGB1YFgisZ2/LcuoBo3s8k38YXH3S9LyS2J3eneHGD+/fg7Y3V50xcwxfedfUHulev/7yO6f06Nd+fOPE6QVKFxS+5+GO82cyflhVoWy+DDd/5ABm7DEoNP3GD+3PTDeQOAi//8C+HDxhSEEZIG85u/z4KbzngNF512e3jE7+o/caztdOmMbIQf0KaPjr7x+fmEl1/4q8wuvBs3B85siJHDl9OHuNLpzfMtIFslMG3F3+/QFJ3wFqROQm4FBgB/AVN20K8KQv73ogcKYVkYuAiwCmTu3Z6XZV+DvGlBED+Nw/lgHOzuLbp+yZ92v54V1RefYhY6htbKe2oZ3Lj5+S958X0Pf9f/vHDmRJbTNHTB2WjyXww7vA4rr3zWDmhMFUVUqPnakf3zhpGlNG9JQPugfB26cNC1z8/M9eVSk9JrDiPPvsUZ3X+IvhnaXed2w1+4zpGVnrHyzFi1kxpo4c0EMRgO6z4FNHDggs5ylSU0cG14d3HjioPQE27HBMfdNC6HsIKu9v42EDK0PTJw8Pph3FW1d3HuuJwzRyB9SL17aThwfXiYcpAXJ5SkjxAlCMoGf2FiidzJ6/vJBvON3Csj2fyRtLE4drZA4oW5EvW3r/8MoGXcEMsM29PGpaQFn/+A9K93a2E0LawVM0g+oSoN5VsoOe2Y+gPuCfO8cO7TmfFc+tPdJ99RE2LrvTB/VQBKD7XotpIwf2UASg2308ZcQA9giYc/0blUkhbevdYXHguMF5a4AfFRlpA5kpA+7Ovwd9EbkKOBU4Xv3/9u49Rq7yvOP497c347uNufiCCxtwcLBJjFgoAYlQVTKJG64KJC20SmlKKUE0rWirRFUbVeofUaQmSpU4OLSoF6VJCQmGgtukUIiIK1O3XGoREDG4DjXE8WJs1vZeZvfpH+c962E4Z2bsvczi+X2k1c71nHeec3vmPe88J2JbOk3wiKQzyQY0Vp8cF9npgqLpbwI2AfT19TU4Yz9zVC/Hr99wLv/ywhssW9DD5WcvKu3+2XMgO7BceMb8t3WpFckTyMVzuuhdMpvemm/VRVYunjV+SqKeZfPLd0z5ucaynUR125bV2SnnvRD1dqB5CdozSnY4+Ua8eE7j1btog4Wj2XnZPF5Ly6TsIJEXIFlZkizkhY3KkoncmXUOqkBh8pbHp+xAkheTKjqAFe0Aq+VxWd7ooFwQt7wUbr11BIp3kvmYrXrrDjA+ALJankw3OiifXLC+HB4/dVF/vkWJU16xr1GbFxYkdPn21CiBKVp/8v3IspLl/+qbRw9o9dtVkAym/2Xtytf7sgNdrlE8Ty3YLqtXzaKS5V1VjxXtz6q3lfy0V5lFJV8i8qFYZV+K9qaej7LP32j7gqPreun+rcFVQ49XK04T7AF+HBHbACJis6R7gPcAu4HlVa9dTtY7cMKoPuAvmdtd2EVc62epcuGKBjszqNppFuwUyxRteEWKvkHn8kFtS+vMt5mDwd70WU9vov1lyUk+2reZGNTrCYHynV5eMa1so9+Xdgr14gGNP+f8gh1yvQs5wdFei/xXB6XzLlgOjXZW+XJudIDrLmhk3q5T59Vf34p25Pl60SiRKEqo816aRm0uWhfyXpRGPQNFXmtimyibb97mRglM0bfTwfFEovi9eTLY6NtxkTwZLFuG+frR6GC/pEGiXhSTRttqR+PvM5Om7PM32vaqx2s1UrZvaKY0/fFoxU8LtwC9ki4EkHQ5WW/AK8Bm4CZJcyXNAj4JPNCCNk6Z/IB6+XsWNnjlUe9LXUVlmX61/Nz4h0u64avl34obbWSdHY037jVLs/NvtecY3za/tIGUnSIAWJ0+a73pXNa7kKXze0qTkzyrv3L1yaXTOH1+Nx86e1Hp8+vPXcySOV2lPSYfv+A0OlS+U1if5l10egYYL+5SNv01S+ey6pTiXp3uzg46BFetKY7jqvSTt7zISq184F3ROIo8pGWxyceTrKlzvrUsJnmXZz5YrdYFK+aVnjbJ14sPnlW83Zw+v3v8Z1u18t/sX1Jy2ikv9FKkL8WwdixBbsXCnvFiN7XytubbRq1Fs7tKl3G+/l9YEqvVp80p7EKGoweRK1cXrx/58i/qCcmdX7J88+79y3qLl8PVa7NxAGVJch6rsn3OykWzxouTlSlbFuOnKkuWR25tyfLIlfUKwNH1sCxpzte13iXFiVa+zW2osw/MiwqV9RQX9dhMBjX41d7UzDRLAL4IzAWGgN+LiCfTc58DbgJ6yJKDP2z008K+vr7Yvn371DZ6AqoHEEYEDz/fz6W9C9828K+eg4MVXu4/Mj4itZ6IrGzo2mXzGo467T80QmUsGn473fvWMN2desdAl2qVseDVN4caftvYvX+QlYtmle4MxlLt/3rdjIeHRxkejbob7Z4DQyxb0FM6n4ODFbo79bZBkNWOjIwyVCmfx3BljLeGRksP9sOVMQaGR0uX8eDIGEOjY6Ub9luDFSSVdmceGKwwt6ezcBlHBPsOjYz/uqDWUGWMwUr5vPsPjbBwdlfhtMfStMu++QwMjdLVofFfVdS2q/9wpfTUzKHhUTp1fO8dGBqls4PC5RkRvHG4UrqsDgxWmNVVPMh0LIL+OrE8mN5blNSNpfmWtXn/4RHm9HQWvje7xsVI6RiJg4MVOuqsH/sOjbBkTlfh+j9UGePIyFjpuv3G4RHm9XSWXpL89YPDpe0aGR1j/5FK6frx1mCFMcoPaG8eqTCrq3y73DswzKKTukrbtndgmMWzuwp7piC7PsyCk8qT/P5DI5zU3VHY4wLZejY8Ola6XVdGg58N1N9/7d4/yIqFs0oTigODFYYqY3V79l7uP8Kla3on9XxBS5KByfZuSgbMzMwmaunSpZOaDLgCoZmZWZtzMmBmZtbmnAyYmZm1OScDZmZmbc7JgJmZWZtzMmBmZtbmnAyYmZm1OScDZmZmbc7JgJmZWZtzMmBmZtbmnAyYmZm1OScDZmZmba4lyYCk6yQ9J+kZSY9JOjs93inpy5JekPQTSbe1on1mZmbtZNqTAUmzgX8Aro+IdcBDwFfS078DvBdYC1wEfEbSxdPdRjMzs3bSip6BTkDAwnR/HjCYbl8H3BsRlYjYD3wLuHn6m2hmZtY+uqZqwpI2AA8WPHULcBuwVVI/WXJwWXpuJfDTqte+Crx/qtpoZmZmU5gMRMQjRdOXdD7wPeC8iNgp6U7gfknryHoqovrlwGjR9CXdCtya7g5IenEy2z/JTgH2tboR73KO4cQ5hpPDcZw4x3DidkTE2sma2JQlA3VcCfwoInam+18FvgQsAXYDy6teu5ysd+AdImITsGkK2zlpJG2PiL5Wt+PdzDGcOMdwcjiOE+cYTpyk7ZM5vVaMGfhv4EOSTk/3rwVeiYh9wGbgFkldkhYBnwAeaEEbzczM2sa09wxExGOSvgg8LmkYeAO4Jj29ETgbeBboAe6OiCemu41mZmbtpBWnCYiIr5KdHqh9vAJ8ZvpbNOXeFaczZjjHcOIcw8nhOE6cYzhxkxpDRUTjV5mZmdkJy+WIzczM2pyTgSkk6VdS2eUXJd0naUGr2zRTSbpZ0rOpRPVWSX3p8c9Wlaf+vCSlx0+VtEXS85J2SLq0tZ9g5pB0raS3qu47hk2SdL6kxyU9LWm7pAvT445hk4rKzdcrNS9plaQfphg+JWl1K9vfSsr8raS70v3jipukW9LjL0naKKm74cwjwn9T8AecCuwFVqX7XwC+1up2zcQ/4FzgNWBZur+B7GemG4CngbnAScATwI3pNf8EfC7dXgf8HzCn1Z+l1X/AKuAnwEBVLB3D5mI3J62HG9L9a4AXHMNjiuFs4BBwTrr/+8DDwO1AXntmcYrrxek1TwG/lm5/BNhBOoXdTn/A+4DHUvzuSo8dc9zIyvn/NB2DOoB/BP6o0fzdQRrLfgAABYlJREFUMzB11gP/GREvpfsbgZvybxT2NkPApyLitXR/O7AUuAH4ZkQciohB4F7gZkldwEeBbwBExDPAS8CHp73lM4ikOWTX/fiDqoevwzFs1npgZ2QF0yCroHojjuGxKCs3X1hqXtIKYHW6T0RsSe+5YLobPgN8GrgHuK/qseOJ2zXAgxHx84gYA+6mibL+TgamTlFp5QXA/NY0Z+aKiF0R8TBk3WTAX5LtiJfxzhieQVa9rCMifl7wXDu7O/09V/VY0XroGBZ7L/C6pL9OBV1+QPaNzDFsUkQMcLTc/B7gDuCPKY/hSmBPOmjVPtdWIuKOiPhmzcPHE7ey99TlZGDq1JZWzhWWVzaQNJes2/Uc4FOUl6cuim1p6ep2IOl2oBIRf1PzlGPYvG6yUwKbIquO91dkXbSzcAybksrN/ylZufnlwF8A95P1GDiGx+54tt+my/rXzsimRm1p5RXA/og41KL2zGiSfgHYSrbS/lJEvEl5eeq92Vt0csFz7eqTwEWSniE7gM1Ot1/FMWzWHuDHEbENICI2kx3ExnAMm1VUbn4t8L8Ux3A3sKzm9Gm7x7Ba2T6wXtyaLutfzcnA1Pk+cImkVen+bWTllq2GpPnA48B3I+ITEXEkPbWZbJzFXEmzyA54D0RWnOph0oWqJL0fOC9Noy1FxMURsTYi1pF9uz2Sbn8Px7BZW4Deql8QXE72DevLOIbNKiw3T0mp+Yh4lWzA68cBJF1Jlnz9z7S3fGY6nrg9CFwt6bSULNxKE2X9W1KBsB1ExF5Jvwl8R1IPsBP4jRY3a6a6AzgTuE7SdVWP/zLwXbJRsz1kG8bfpeduB+6RtINsh/3rEXFg+pr87hARD6WuW8ewgYh4XdK1wNfSKash4PqIeNIxbE6Ul5t/kfJS878KfEPSn5ANNryh5lx4O6tXor8sbs9J+nOyXyZ0A9vIfs1WlysQmpmZtTmfJjAzM2tzTgbMzMzanJMBMzOzNudkwMzMrM05GTAzM2tzTgbMTmCSvi/plHT7EUnnTeG8flfSrZMwnU5J/yzptMlol5k15p8Wmp3AJAVwakTsm+L5nElWSvqSmISdSir4c2dEfGzCjTOzhtwzYHaCknRvuvnvklZK2iWpT9IVkv5D0rfTNed/JOkqST+QtFvSl6qmcZWkbZKeTq/7YMnsPgv8fUSEpLMkvSzpbknb0zyulvSwpJ1pvh2pqtpGSc9J+i9J90maBxARPwTOk7RuaqNkZuCeAbMTWnXPgKRdwMfILnX6b8BFEfG0pC1kl5y9guzKmnuAs4C5ZBUgr4iIfklr0vvOqb7GRip5ujdNb5eks8hK0F4TEQ9K2kh2Wd8PAMPAy6kdncAmsovahKQvAJsjYmua7lfIrufxZ1MVHzPLuByxWXt6JSKeTrd3AgciYhjYJ+kgcDJwOdllpB+tuh7KGNlVJZ+tmtYSYFFE7Kp6bAR4qGr6WyPiIEC6tO3JwJNkF6baJulfgfsj4qnqNgK/OAmf1cwa8GkCs/Y0VHN/pOA1ncCjEbEu/wMuAXbUvC7IOgiq9yfDNWMH3jH9dGXKDwB3kSUF306XYq5+jy9lazYNnAyYndhGyS5WcjweBdZLWg0gaQPwHDC7+kUR0Q/sJ7vYVNMkfTTNY2tEfJ7s4j8XVb2kF3jhONtuZsfApwnMTmz3AU9Iuv5Y3xgRz6efCn4rjQuoAFdHxEDBy+8nGxew8RhmsQX4CLBD0gBZQvHbVc+vB2481nab2bHzAEIzmzBJvcB3gL5J+mnhFcCnI+KGiU7LzBpzMmBmk0LSnWRjBb4+wel0kg0+/K2IeG1SGmdmdTkZMDMza3MeQGhmZtbmnAyYmZm1OScDZmZmbc7JgJmZWZtzMmBmZtbmnAyYmZm1uf8HFuZBIe8knfAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for I in [10, 110, 115, 127]:\n", " A = Intensity2Pressure(I, rho=1028.0)\n", " print('I = {:.0f} W/m2 (A = {:.2f} kPa)'.format(I, A * 1e-3))\n", - " fig = runAndPlot(neuron, 32e-9, 500e3, A, 1.0, 0.0)" + " fig = runAndPlot(pneuron, 32e-9, 500e3, A, 1.0, 0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe a transition between different spiking regimes as a function of acoustic intensity:\n", "- for small intensities (10 to 110 W/m2), the acoustic simulus simply excites the neuron at a constant firing rate, higher than its spontaneous physiological counterpart. Within this regime, increasing acoustic intensity simply raises the obtained firing rate.\n", "- for intermediate intensities (115 W/m2), the acoustic stimulus triggers a neural response in which the firing pattern evolves in time, with spikes increasing in frequency and decrease in amplitude.\n", "- for high intensities (127 W/m2), the acoustic stimulus triggers a few spikes and then a slienced plateau potential.\n", "\n", "All those observations are qualitatively similar to those of Tarnaud 2018 for the same intensities (Fig 1)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/notebooks/TC neuron - iH kinetics.ipynb b/notebooks/TC neuron - iH kinetics.ipynb index 9f13727..9bed0a1 100644 --- a/notebooks/TC neuron - iH kinetics.ipynb +++ b/notebooks/TC neuron - iH kinetics.ipynb @@ -1,219 +1,219 @@ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Thalamo-cortical neuron\n", "# Analysis of Ca2+ and voltage-dependent kinetics of the hyperpolarization-activated current" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm\n", "from matplotlib import ticker\n", "from matplotlib.colors import LogNorm\n", "\n", - "from PySONIC.neurons import ThalamoCortical" + "from PySONIC.neurons import getPointNeuron ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Functions" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def plotIhKinetics(Vm, CCa, gatings, ylabel, cmap='viridis', fs=18, lw=2):\n", " \n", " mymap = cm.get_cmap(cmap)\n", " sm = plt.cm.ScalarMappable(cmap=mymap, norm=LogNorm(CCa.min(), CCa.max()))\n", " sm._A = []\n", " fig, ax = plt.subplots(figsize=(5, 3))\n", " for key in ['top', 'right']:\n", " ax.spines[key].set_visible(False)\n", " ax.set_xlabel('$V_m$ (mV)', fontsize=fs)\n", " ax.set_ylabel(ylabel, fontsize=fs)\n", " for c, gating, in zip(CCa, gatings):\n", " ax.plot(Vm, gating, linewidth=lw, c=sm.to_rgba(c))\n", " ax.xaxis.set_major_locator(ticker.MaxNLocator(2))\n", " ax.yaxis.set_major_locator(ticker.MaxNLocator(2))\n", " fig.subplots_adjust(right=0.85)\n", " cbar_ax = fig.add_axes([0.87, 0.1, 0.02, 0.8])\n", " fig.add_axes()\n", " fig.colorbar(sm, cax=cbar_ax)\n", " for item in ax.get_xticklabels() + ax.get_yticklabels() + cbar_ax.get_yticklabels():\n", " item.set_fontsize(fs)\n", " cbar_ax.set_ylabel('$[Ca^{2+}_i]\\ (uM)$', fontsize=fs)\n", " return fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameters" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ - "neuron = ThalamoCortical()\n", + "pneuron = getPointNeuron('TC')\n", "Vm = np.linspace(-100, 50, 100) # mV\n", "CCa = np.logspace(np.log10(0.01), np.log10(10.0), 10) # uM\n", "\n", "# rate constants\n", - "alpha = neuron.alphao(Vm)\n", - "beta = neuron.betao(Vm)\n", + "alpha = pneuron.alphao(Vm)\n", + "beta = pneuron.betao(Vm)\n", "\n", "# proportion of regulating factor in unbound state (-)\n", - "P0 = neuron.k2 / (neuron.k2 + neuron.k1 * (CCa * 1e-6)**4)\n", + "P0 = pneuron.k2 / (pneuron.k2 + pneuron.k1 * (CCa * 1e-6)**4)\n", "\n", "# Extend to match dimensions (nCa, nV)\n", "alpha = np.tile(alpha, (CCa.size, 1))\n", "beta = np.tile(beta, (CCa.size, 1))\n", "P0 = np.tile(P0, (Vm.size, 1)).T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Open form" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ - "O = neuron.k4 / (neuron.k3 * (1 - P0) + neuron.k4 * (1 + beta / alpha))\n", + "O = pneuron.k4 / (pneuron.k3 * (1 - P0) + pneuron.k4 * (1 + beta / alpha))\n", "fig = plotIhKinetics(Vm, CCa, O, ylabel='$O_{\\infty}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Locked-open form" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "OL = (1 - O * (1 + beta / alpha))\n", "fig = plotIhKinetics(Vm, CCa, OL, ylabel='$O_{L, \\infty}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Global gate activation" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "gHrel = O + 2 * OL\n", "fig = plotIhKinetics(Vm, CCa, gHrel, ylabel='$(O + 2O_L)_{\\infty}$')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Ih steady-state activation increases with intracellular Calcium concentration**." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/paper figures/deprecated/figQSS.py b/paper figures/deprecated/figQSS.py index cc96cb2..a340d9a 100644 --- a/paper figures/deprecated/figQSS.py +++ b/paper figures/deprecated/figQSS.py @@ -1,294 +1,294 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-09-28 16:13:34 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:14:32 +# @Last Modified time: 2019-06-12 12:10:20 ''' Subpanels of the QSS approximation figure. ''' import os import logging import numpy as np import matplotlib.pyplot as plt import matplotlib import matplotlib.cm as cm from argparse import ArgumentParser from PySONIC.core import NeuronalBilayerSonophore from PySONIC.utils import logger, selectDirDialog from PySONIC.neurons import getPointNeuron # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] def plotQSSvars_vs_Adrive(neuron, a, Fdrive, PRF, DC, fs=8, markers=['-', '--', '.-'], title=None): - neuron = getPointNeuron(neuron) + pneuron = getPointNeuron(neuron) # Determine spiking threshold - Vthr = neuron.VT # mV - Qthr = neuron.Cm0 * Vthr * 1e-3 # C/m2 + Vthr = pneuron.VT # mV + Qthr = pneuron.Cm0 * Vthr * 1e-3 # C/m2 # Get QSS variables for each amplitude at threshold charge - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) Aref, _, Vmeff, QS_states = nbls.quasiSteadyStates(Fdrive, charges=Qthr, DCs=DC) # Compute US-ON and US-OFF ionic currents - currents_on = neuron.currents(Vmeff, QS_states) - currents_off = neuron.currents(neuron.VT, QS_states) + currents_on = pneuron.currents(Vmeff, QS_states) + currents_off = pneuron.currents(pneuron.VT, QS_states) iNet_on = sum(currents_on.values()) iNet_off = sum(currents_off.values()) # Retrieve list of ionic currents names, with iLeak first ckeys = list(currents_on.keys()) ckeys.insert(0, ckeys.pop(ckeys.index('iLeak'))) # Compute quasi-steady ON, OFF and net charge variations, and threshold amplitude dQ_on = -iNet_on * DC / PRF dQ_off = -iNet_off * (1 - DC) / PRF dQ_net = dQ_on + dQ_off Athr = np.interp(0, dQ_net, Aref, left=0., right=np.nan) # Create figure fig, axes = plt.subplots(4, 1, figsize=(4, 6)) axes[-1].set_xlabel('Amplitude (kPa)', fontsize=fs) for ax in axes: for skey in ['top', 'right']: ax.spines[skey].set_visible(False) ax.set_xscale('log') ax.set_xlim(1e1, 1e2) ax.set_xticks([1e1, 1e2]) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(minor=True): item.set_visible(False) figname = '{} neuron thr dynamics {:.1f}nC_cm2 {:.0f}% DC'.format( - neuron.name, Qthr * 1e5, DC * 1e2) + pneuron.name, Qthr * 1e5, DC * 1e2) fig.suptitle(figname, fontsize=fs) # Subplot 1: Vmeff ax = axes[0] ax.set_ylabel('Effective potential (mV)', fontsize=fs) Vbounds = (-120, -40) ax.set_ylim(Vbounds) - ax.set_yticks([Vbounds[0], neuron.Vm0, Vbounds[1]]) + ax.set_yticks([Vbounds[0], pneuron.Vm0, Vbounds[1]]) ax.set_yticklabels(['{:.0f}'.format(Vbounds[0]), '$V_{m0}$', '{:.0f}'.format(Vbounds[1])]) ax.plot(Aref * 1e-3, Vmeff, '--', color='C0', label='ON') - ax.plot(Aref * 1e-3, neuron.VT * np.ones(Aref.size), ':', color='C0', label='OFF') - ax.axhline(neuron.Vm0, linewidth=0.5, color='k') + ax.plot(Aref * 1e-3, pneuron.VT * np.ones(Aref.size), ':', color='C0', label='OFF') + ax.axhline(pneuron.Vm0, linewidth=0.5, color='k') # Subplot 2: quasi-steady states ax = axes[1] ax.set_ylabel('Quasi-steady states', fontsize=fs) ax.set_yticks([0, 0.5, 0.6]) ax.set_yticklabels(['0', '0.5', '1']) ax.set_ylim([-0.05, 0.65]) d = .01 f = 1.03 xcut = ax.get_xlim()[0] for ycut in [0.54, 0.56]: ax.plot([xcut / f, xcut * f], [ycut - d, ycut + d], color='k', clip_on=False) - for label, QS_state in zip(neuron.states, QS_states): + for label, QS_state in zip(pneuron.states, QS_states): if label == 'h': QS_state -= 0.4 ax.plot(Aref * 1e-3, QS_state, label=label) # Subplot 3: currents ax = axes[2] ax.set_ylabel('QSS Currents (mA/m2)', fontsize=fs) Ibounds = (-10, 10) ax.set_ylim(Ibounds) ax.set_yticks([Ibounds[0], 0.0, Ibounds[1]]) for i, key in enumerate(ckeys): c = 'C{}'.format(i) if isinstance(currents_off[key], float): currents_off[key] = np.ones(Aref.size) * currents_off[key] ax.plot(Aref * 1e-3, currents_on[key], '--', label=key, c=c) ax.plot(Aref * 1e-3, currents_off[key], ':', c=c) ax.plot(Aref * 1e-3, iNet_on, '--', color='k', label='iNet') ax.plot(Aref * 1e-3, iNet_off, ':', color='k') ax.axhline(0, color='k', linewidth=0.5) # Subplot 4: charge variations and activation threshold ax = axes[3] ax.set_ylabel('$\\rm \Delta Q_{QS}\ (nC/cm^2)$', fontsize=fs) dQbounds = (-0.06, 0.1) ax.set_ylim(dQbounds) ax.set_yticks([dQbounds[0], 0.0, dQbounds[1]]) ax.plot(Aref * 1e-3, dQ_on, '--', color='C0', label='ON') ax.plot(Aref * 1e-3, dQ_off, ':', color='C0', label='OFF') ax.plot(Aref * 1e-3, dQ_net, color='C0', label='Net') ax.plot([Athr * 1e-3] * 2, [ax.get_ylim()[0], 0], linestyle='--', color='k') ax.plot([Athr * 1e-3], [0], 'o', c='k') ax.axhline(0, color='k', linewidth=0.5) fig.tight_layout() fig.subplots_adjust(right=0.8) for ax in axes: ax.legend(loc='center right', fontsize=fs, frameon=False, bbox_to_anchor=(1.3, 0.5)) if title is not None: fig.canvas.set_window_title(title) return fig def plotQSSdQ_vs_Adrive(neuron, a, Fdrive, PRF, DCs, fs=8, title=None): - neuron = getPointNeuron(neuron) + pneuron = getPointNeuron(neuron) # Determine spiking threshold - Vthr = neuron.VT # mV - Qthr = neuron.Cm0 * Vthr * 1e-3 # C/m2 + Vthr = pneuron.VT # mV + Qthr = pneuron.Cm0 * Vthr * 1e-3 # C/m2 # Get QSS variables for each amplitude and DC at threshold charge - nbls = NeuronalBilayerSonophore(a, neuron, Fdrive) + nbls = NeuronalBilayerSonophore(a, pneuron, Fdrive) Aref, _, Vmeff, QS_states = nbls.quasiSteadyStates(Fdrive, charges=Qthr, DCs=DCs) dQnet = np.empty((DCs.size, Aref.size)) Athr = np.empty(DCs.size) for i, DC in enumerate(DCs): # Compute US-ON and US-OFF net membrane current from QSS variables - iNet_on = neuron.iNet(Vmeff, QS_states[:, :, i]) - iNet_off = neuron.iNet(Vthr, QS_states[:, :, i]) + iNet_on = pneuron.iNet(Vmeff, QS_states[:, :, i]) + iNet_off = pneuron.iNet(Vthr, QS_states[:, :, i]) # Compute the pulse average net current along the amplitude space iNet_avg = iNet_on * DC + iNet_off * (1 - DC) dQnet[i, :] = -iNet_avg / PRF # Find the threshold amplitude that cancels the pulse average net current Athr[i] = np.interp(0, -iNet_avg, Aref, left=0., right=np.nan) # Create figure fig, ax = plt.subplots(figsize=(4, 2)) - figname = '{} neuron thr vs DC'.format(neuron.name, Qthr * 1e5) + figname = '{} neuron thr vs DC'.format(pneuron.name, Qthr * 1e5) fig.suptitle(figname, fontsize=fs) for key in ['top', 'right']: ax.spines[key].set_visible(False) ax.set_xscale('log') for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(minor=True): item.set_visible(False) ax.set_xlabel('Amplitude (kPa)', fontsize=fs) ax.set_ylabel('$\\rm \Delta Q_{QS}\ (nC/cm^2)$', fontsize=fs) ax.set_xlim(1e1, 1e2) ax.axhline(0., linewidth=0.5, color='k') ax.set_ylim(-0.06, 0.12) ax.set_yticks([-0.05, 0.0, 0.10]) ax.set_yticklabels(['-0.05', '0', '0.10']) norm = matplotlib.colors.LogNorm(DCs.min(), DCs.max()) sm = cm.ScalarMappable(norm=norm, cmap='viridis') sm._A = [] for i, DC in enumerate(DCs): ax.plot(Aref * 1e-3, dQnet[i, :], c=sm.to_rgba(DC), label='{:.0f}% DC'.format(DC * 1e2)) ax.plot([Athr[i] * 1e-3] * 2, [ax.get_ylim()[0], 0], linestyle='--', c=sm.to_rgba(DC)) ax.plot([Athr[i] * 1e-3], [0], 'o', c=sm.to_rgba(DC)) fig.tight_layout() fig.subplots_adjust(right=0.8) ax.legend(loc='center right', fontsize=fs, frameon=False, bbox_to_anchor=(1.3, 0.5)) if title is not None: fig.canvas.set_window_title(title) return fig def plotQSSAthr_vs_DC(neurons, a, Fdrive, DCs_dense, DCs_sparse, fs=8, title=None): fig, ax = plt.subplots(figsize=(3, 3)) ax.set_title('Rheobase amplitudes', fontsize=fs) ax.set_xlabel('Duty cycle (%)', fontsize=fs) ax.set_ylabel('$\\rm A_T\ (kPa)$', fontsize=fs) for key in ['top', 'right']: ax.spines[key].set_visible(False) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) ax.set_xticks([25, 50, 75, 100]) ax.set_yscale('log') ax.set_ylim([10, 600]) norm = matplotlib.colors.LogNorm(DCs_sparse.min(), DCs_sparse.max()) sm = cm.ScalarMappable(norm=norm, cmap='viridis') sm._A = [] for i, neuron in enumerate(neurons): - neuron = getPointNeuron(neuron) - nbls = NeuronalBilayerSonophore(a, neuron) - Athrs_dense = nbls.findRheobaseAmps(DCs_dense, Fdrive, neuron.VT)[0] * 1e-3 # kPa - Athrs_sparse = nbls.findRheobaseAmps(DCs_sparse, Fdrive, neuron.VT)[0] * 1e-3 # kPa - ax.plot(DCs_dense * 1e2, Athrs_dense, label='{} neuron'.format(neuron.name)) + pneuron = getPointNeuron(neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) + Athrs_dense = nbls.findRheobaseAmps(DCs_dense, Fdrive, pneuron.VT)[0] * 1e-3 # kPa + Athrs_sparse = nbls.findRheobaseAmps(DCs_sparse, Fdrive, pneuron.VT)[0] * 1e-3 # kPa + ax.plot(DCs_dense * 1e2, Athrs_dense, label='{} neuron'.format(pneuron.name)) for DC, Athr in zip(DCs_sparse, Athrs_sparse): ax.plot(DC * 1e2, Athr, 'o', label='{:.0f}% DC'.format(DC * 1e2) if i == len(neurons) - 1 else None, c=sm.to_rgba(DC)) ax.legend(fontsize=fs, frameon=False) fig.tight_layout() if title is not None: fig.canvas.set_window_title(title) return fig def main(): ap = ArgumentParser() # Runtime options ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-o', '--outdir', type=str, help='Output directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) figset = args.figset if figset == 'all': figset = ['a', 'b', 'c', 'e'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters a = 32e-9 # m Fdrive = 500e3 # Hz PRF = 100.0 # Hz DC = 0.5 DCs_sparse = np.array([5, 15, 50, 75, 95]) / 1e2 DCs_dense = np.arange(1, 101) / 1e2 # Figures figs = [] if 'a' in figset: figs += [ plotQSSvars_vs_Adrive('RS', a, Fdrive, PRF, DC, title=figbase + 'a RS'), plotQSSvars_vs_Adrive('LTS', a, Fdrive, PRF, DC, title=figbase + 'a LTS') ] if 'b' in figset: figs += [ plotQSSdQ_vs_Adrive('RS', a, Fdrive, PRF, DCs_sparse, title=figbase + 'b RS'), plotQSSdQ_vs_Adrive('LTS', a, Fdrive, PRF, DCs_sparse, title=figbase + 'b LTS') ] if 'c' in figset: figs.append(plotQSSAthr_vs_DC(['RS', 'LTS'], a, Fdrive, DCs_dense, DCs_sparse, title=figbase + 'c')) if args.save: outdir = selectDirDialog() if args.outdir is None else args.outdir if outdir == '': logger.error('No input directory chosen') return for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(outdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig2.py b/paper figures/fig2.py index 60b7d90..05a8c7b 100644 --- a/paper figures/fig2.py +++ b/paper figures/fig2.py @@ -1,329 +1,329 @@ # -*- coding: utf-8 -*- # @Author: Theo # @Date: 2018-06-06 18:38:04 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-07 13:54:14 +# @Last Modified time: 2019-06-12 12:51:23 ''' Sub-panels of the model optimization figure. ''' import os import logging import numpy as np import matplotlib import matplotlib.pyplot as plt from matplotlib.ticker import FormatStrFormatter from matplotlib.patches import Rectangle from argparse import ArgumentParser from PySONIC.utils import logger, rescale, si_format, selectDirDialog from PySONIC.plt import SchemePlot, cm2inch from PySONIC.constants import NPC_FULL -from PySONIC.neurons import CorticalRS +from PySONIC.neurons import getPointNeuron from PySONIC.core import BilayerSonophore, NeuronalBilayerSonophore # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] def PmApprox(bls, Z, fs=12, lw=2): fig, ax = plt.subplots(figsize=cm2inch(7, 7)) for key in ['right', 'top']: ax.spines[key].set_visible(False) for key in ['bottom', 'left']: ax.spines[key].set_linewidth(2) ax.spines['bottom'].set_position('zero') ax.set_xlabel('Z (nm)', fontsize=fs) ax.set_ylabel('Pressure (kPa)', fontsize=fs, labelpad=-10) ax.set_xticks([0, bls.a * 1e9]) ax.set_xticklabels(['0', 'a']) ax.tick_params(axis='x', which='major', length=25, pad=5) ax.set_yticks([0]) ax.set_ylim([-10, 50]) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) ax.plot(Z * 1e9, bls.v_PMavg(Z, bls.v_curvrad(Z), bls.surface(Z)) * 1e-3, c='g', label='$P_m$') ax.plot(Z * 1e9, bls.PMavgpred(Z) * 1e-3, '--', c='r', label='$\~P_m$') ax.axhline(y=0, color='k') ax.legend(fontsize=fs, frameon=False) fig.tight_layout() fig.canvas.set_window_title(figbase + 'a') return fig def recasting(nbls, Fdrive, Adrive, fs=12, lw=2, ps=15): # Run effective simulation data, _ = nbls.simulate(Fdrive, Adrive, 5 / Fdrive, 0., method='full') t, Qm, Vm = [data[key].values for key in ['t', 'Qm', 'Vm']] t *= 1e6 # us Qm *= 1e5 # nC/cm2 Qrange = (Qm.min(), Qm.max()) dQ = Qrange[1] - Qrange[0] # Create figure and axes fig, axes = plt.subplots(1, 2, figsize=cm2inch(17, 5)) for ax in axes: ax.set_xticks([]) ax.set_yticks([]) # Plot Q-trace and V-trace ax = axes[0] for key in ['top', 'right']: ax.spines[key].set_visible(False) for key in ['bottom', 'left']: ax.spines[key].set_position(('axes', -0.03)) ax.spines[key].set_linewidth(2) ax.plot(t, Vm, label='Vm', c='dimgrey', linewidth=lw) ax.plot(t, Qm, label='Qm', c='k', linewidth=lw) ax.add_patch(Rectangle( (t[0], Qrange[0] - 5), t[-1], dQ + 10, fill=False, edgecolor='k', linestyle='--', linewidth=1 )) ax.yaxis.set_tick_params(width=2) ax.yaxis.set_major_formatter(FormatStrFormatter('%.0f')) # ax.set_xlim((t.min(), t.max())) ax.set_xticks([]) ax.set_xlabel('{}s'.format(si_format((t.max()), space=' ')), fontsize=fs) ax.set_ylabel('$\\rm nC/cm^2$ - mV', fontsize=fs, labelpad=-15) ax.set_yticks(ax.get_ylim()) for item in ax.get_yticklabels(): item.set_fontsize(fs) # Plot inset on Q-trace ax = axes[1] for key in ['top', 'right', 'bottom', 'left']: ax.spines[key].set_linewidth(1) ax.spines[key].set_linestyle('--') ax.plot(t, Vm, label='Vm', c='dimgrey', linewidth=lw) ax.plot(t, Qm, label='Qm', c='k', linewidth=lw) ax.set_xlim((t.min(), t.max())) ax.set_xticks([]) ax.set_yticks([]) delta = 0.05 ax.set_ylim(Qrange[0] - delta * dQ, Qrange[1] + delta * dQ) fig.canvas.set_window_title(figbase + 'b') return fig def mechSim(bls, Fdrive, Adrive, Qm, fs=12, lw=2, ps=15): # Run mechanical simulation data, _ = bls.simulate(Fdrive, Adrive, Qm) t, Z, ng = [data[key].values for key in ['t', 'Z', 'ng']] # Create figure fig, ax = plt.subplots(figsize=cm2inch(7, 7)) fig.suptitle('Mechanical simulation', fontsize=12) for skey in ['bottom', 'left', 'right', 'top']: ax.spines[skey].set_visible(False) ax.set_xticks([]) ax.set_yticks([]) # Plot variables and labels t_plot = np.insert(t, 0, -1e-6) * 1e6 Pac = Adrive * np.sin(2 * np.pi * Fdrive * t + np.pi) # Pa yvars = {'P_A': Pac * 1e-3, 'Z': Z * 1e9, 'n_g': ng * 1e22} colors = {'P_A': 'k', 'Z': 'C0', 'n_g': 'C5'} dy = 1.2 for i, ykey in enumerate(yvars.keys()): y = yvars[ykey] y_plot = rescale(np.insert(y, 0, y[0])) - dy * i ax.plot(t_plot, y_plot, color=colors[ykey], linewidth=lw) ax.text(t_plot[0] - 0.1, y_plot[0], '$\mathregular{{{}}}$'.format(ykey), fontsize=fs, horizontalalignment='right', verticalalignment='center', color=colors[ykey]) # Acoustic pressure annotations ax.annotate(s='', xy=(1.5, 1.1), xytext=(3.5, 1.1), arrowprops=dict(arrowstyle='<|-|>', color='k')) ax.text(2.5, 1.12, '1/f', fontsize=fs, color='k', horizontalalignment='center', verticalalignment='bottom') ax.annotate(s='', xy=(1.5, -0.1), xytext=(1.5, 1), arrowprops=dict(arrowstyle='<|-|>', color='k')) ax.text(1.55, 0.4, '2A', fontsize=fs, color='k', horizontalalignment='left', verticalalignment='center') # Periodic stabilization patch ax.add_patch(Rectangle((2, -2 * dy - 0.1), 2, 2 * dy, color='dimgrey', alpha=0.3)) ax.text(3, -2 * dy - 0.2, 'limit cycle', fontsize=fs, color='dimgrey', horizontalalignment='center', verticalalignment='top') # Z_last patch ax.add_patch(Rectangle((2, -dy - 0.1), 2, dy, edgecolor='k', facecolor='none', linestyle='--')) # ngeff annotations c = plt.get_cmap('tab20').colors[11] ax.text(t_plot[-1] + 0.1, y_plot[-1], '$\mathregular{n_{g,eff}}$', fontsize=fs, color=c, horizontalalignment='left', verticalalignment='center') ax.scatter([t_plot[-1]], [y_plot[-1]], color=c, s=ps) fig.canvas.set_window_title(figbase + 'c mechsim') return fig -def cycleAveraging(bls, neuron, Fdrive, Adrive, Qm, fs=12, lw=2, ps=15): +def cycleAveraging(bls, pneuron, Fdrive, Adrive, Qm, fs=12, lw=2, ps=15): # Run mechanical simulation data, _ = bls.simulate(Fdrive, Adrive, Qm) t, Z, ng = [data[key].values for key in ['t', 'Z', 'ng']] # Compute variables evolution over last acoustic cycle t_last = t[-NPC_FULL:] * 1e6 # us Z_last = Z[-NPC_FULL:] # m Cm = bls.v_Capct(Z_last) * 1e2 # uF/m2 Vm = Qm / Cm * 1e5 # mV yvars = { 'C_m': Cm, # uF/cm2 'V_m': Vm, # mV - '\\alpha_m': neuron.alpham(Vm) * 1e3, # ms-1 - '\\beta_m': neuron.betam(Vm) * 1e3, # ms-1 - 'p_\\infty / \\tau_p': neuron.pinf(Vm) / neuron.taup(Vm) * 1e3, # ms-1 - '(1-p_\\infty) / \\tau_p': (1 - neuron.pinf(Vm)) / neuron.taup(Vm) * 1e3 # ms-1 + '\\alpha_m': pneuron.alpham(Vm) * 1e3, # ms-1 + '\\beta_m': pneuron.betam(Vm) * 1e3, # ms-1 + 'p_\\infty / \\tau_p': pneuron.pinf(Vm) / pneuron.taup(Vm) * 1e3, # ms-1 + '(1-p_\\infty) / \\tau_p': (1 - pneuron.pinf(Vm)) / pneuron.taup(Vm) * 1e3 # ms-1 } # Determine colors violets = plt.get_cmap('Paired').colors[8:10][::-1] oranges = plt.get_cmap('Paired').colors[6:8][::-1] colors = { 'C_m': ['k', 'dimgrey'], 'V_m': plt.get_cmap('tab20').colors[14:16], '\\alpha_m': violets, '\\beta_m': oranges, 'p_\\infty / \\tau_p': violets, '(1-p_\\infty) / \\tau_p': oranges } # Create figure and axes fig, axes = plt.subplots(6, 1, figsize=cm2inch(4, 15)) fig.suptitle('Cycle-averaging', fontsize=fs) for ax in axes: ax.set_xticks([]) ax.set_yticks([]) for skey in ['bottom', 'left', 'right', 'top']: ax.spines[skey].set_visible(False) # Plot variables for ax, ykey in zip(axes, yvars.keys()): ax.set_xticks([]) ax.set_yticks([]) for skey in ['bottom', 'left', 'right', 'top']: ax.spines[skey].set_visible(False) y = yvars[ykey] ax.plot(t_last, y, color=colors[ykey][0], linewidth=lw) ax.plot([t_last[0], t_last[-1]], [np.mean(y)] * 2, '--', color=colors[ykey][1]) ax.scatter([t_last[-1]], [np.mean(y)], s=ps, color=colors[ykey][1]) ax.text(t_last[0] - 0.1, y[0], '$\mathregular{{{}}}$'.format(ykey), fontsize=fs, horizontalalignment='right', verticalalignment='center', color=colors[ykey][0]) fig.canvas.set_window_title(figbase + 'c cycleavg') return fig def Qsolution(nbls, Fdrive, Adrive, tstim, toffset, PRF, DC, fs=12, lw=2, ps=15): # Run effective simulation data, _ = nbls.simulate(Fdrive, Adrive, tstim, toffset, PRF, DC, method='sonic') t, Qm, states = [data[key].values for key in ['t', 'Qm', 'stimstate']] t *= 1e3 # ms Qm *= 1e5 # nC/cm2 _, tpulse_on, tpulse_off = SchemePlot.getStimPulses(_, t, states) # Add small onset t = np.insert(t, 0, -5.0) Qm = np.insert(Qm, 0, Qm[0]) # Create figure and axes fig, ax = plt.subplots(figsize=cm2inch(12, 6)) ax.set_xticks([]) ax.set_yticks([]) for key in ['top', 'right']: ax.spines[key].set_visible(False) for key in ['bottom', 'left']: ax.spines[key].set_position(('axes', -0.03)) ax.spines[key].set_linewidth(2) # Plot Q-trace and stimulation pulses ax.plot(t, Qm, label='Qm', c='k', linewidth=lw) for ton, toff in zip(tpulse_on, tpulse_off): ax.axvspan(ton, toff, edgecolor='none', facecolor='#8A8A8A', alpha=0.2) ax.yaxis.set_tick_params(width=2) ax.yaxis.set_major_formatter(FormatStrFormatter('%.0f')) ax.set_xlim((t.min(), t.max())) ax.set_xticks([]) ax.set_xlabel('{}s'.format(si_format((t.max()) * 1e-3, space=' ')), fontsize=fs) ax.set_ylabel('$\\rm nC/cm^2$', fontsize=fs, labelpad=-15) ax.set_yticks(ax.get_ylim()) for item in ax.get_yticklabels(): item.set_fontsize(fs) ax.legend(fontsize=fs, frameon=False) fig.canvas.set_window_title(figbase + 'e Qtrace') return fig def main(): ap = ArgumentParser() # Runtime options ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-o', '--outdir', type=str, help='Output directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) figset = args.figset if figset == 'all': figset = ['a', 'b', 'c', 'e'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters - neuron = CorticalRS() + pneuron = getPointNeuron('RS') a = 32e-9 # m Fdrive = 500e3 # Hz Adrive = 100e3 # Pa PRF = 100. # Hz DC = 0.5 tstim = 150e-3 # s toffset = 100e-3 # s Qm = -71.9e-5 # C/cm2 - bls = BilayerSonophore(a, neuron.Cm0, neuron.Cm0 * neuron.Vm0 * 1e-3) - nbls = NeuronalBilayerSonophore(a, neuron) + bls = BilayerSonophore(a, pneuron.Cm0, pneuron.Qm0) + nbls = NeuronalBilayerSonophore(a, pneuron) # Figures figs = [] if 'a' in figset: figs.append(PmApprox(bls, np.linspace(-0.4 * bls.Delta_, bls.a, 1000))) if 'b' in figset: figs.append(recasting(nbls, Fdrive, Adrive)) if 'c' in figset: figs += [ mechSim(bls, Fdrive, Adrive, Qm), - cycleAveraging(bls, neuron, Fdrive, Adrive, Qm) + cycleAveraging(bls, pneuron, Fdrive, Adrive, Qm) ] if 'e' in figset: figs.append(Qsolution(nbls, Fdrive, Adrive, tstim, toffset, PRF, DC)) if args.save: outdir = selectDirDialog() if args.outdir is None else args.outdir if outdir == '': logger.error('No input directory chosen') return for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(outdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig4.py b/paper figures/fig4.py index b3f4864..7240379 100644 --- a/paper figures/fig4.py +++ b/paper figures/fig4.py @@ -1,83 +1,84 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-02-15 15:59:37 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:19:18 +# @Last Modified time: 2019-06-12 12:01:04 ''' Sub-panels of the effective variables figure. ''' import os import matplotlib import matplotlib.pyplot as plt from argparse import ArgumentParser import logging from PySONIC.plt import plotEffectiveVariables from PySONIC.utils import logger, selectDirDialog from PySONIC.neurons import getPointNeuron # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] def main(): ap = ArgumentParser() # Runtime options - ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') + ap.add_argument('-v', '--verbose', default=False, action='store_true', + help='Increase verbosity') ap.add_argument('-o', '--outdir', type=str, help='Output directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) figset = args.figset if figset == 'all': figset = ['a', 'b', 'c'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters - neuron = getPointNeuron('RS') + pneuron = getPointNeuron('RS') a = 32e-9 # m Fdrive = 500e3 # Hz Adrive = 50e3 # Pa # Generate figures figs = [] if 'a' in figset: - fig = plotEffectiveVariables(neuron, a=a, Fdrive=Fdrive, cmap='Oranges', zscale='log') + fig = plotEffectiveVariables(pneuron, a=a, Fdrive=Fdrive, cmap='Oranges', zscale='log') fig.canvas.set_window_title(figbase + 'a') figs.append(fig) if 'b' in figset: - fig = plotEffectiveVariables(neuron, a=a, Adrive=Adrive, cmap='Greens', zscale='log') + fig = plotEffectiveVariables(pneuron, a=a, Adrive=Adrive, cmap='Greens', zscale='log') fig.canvas.set_window_title(figbase + 'b') figs.append(fig) if 'c' in figset: - fig = plotEffectiveVariables(neuron, Fdrive=Fdrive, Adrive=Adrive, cmap='Blues', zscale='log') + fig = plotEffectiveVariables(pneuron, Fdrive=Fdrive, Adrive=Adrive, cmap='Blues', zscale='log') fig.canvas.set_window_title(figbase + 'c') figs.append(fig) if args.save: outdir = selectDirDialog() if args.outdir is None else args.outdir if outdir == '': logger.error('No input directory chosen') return for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(outdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig6.py b/paper figures/fig6.py index 1b72abd..5ad5116 100644 --- a/paper figures/fig6.py +++ b/paper figures/fig6.py @@ -1,302 +1,303 @@ # -*- coding: utf-8 -*- # @Author: Theo # @Date: 2018-06-06 18:38:04 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-02 11:53:17 +# @Last Modified time: 2019-06-12 12:03:19 ''' Sub-panels of the NICE and SONIC computation times comparative figure. ''' import os import logging import numpy as np import matplotlib import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.utils import * from PySONIC.neurons import * from PySONIC.plt import cm2inch from utils import * # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] time_indicators = [1, 60, 60**2, 60**2 * 24, 60**2 * 24 * 7] time_indicators_labels = ['1 s', '1 min', '1 hour', '1 day', '1 week'] def comptime_vs_amp(neuron, a, Fdrive, amps, tstim, toffset, inputdir, fs=8, lw=2, ps=4): ''' Comparative plot of computation times for different acoustic amplitudes. ''' # Get filepaths xlabel = 'Amplitude (kPa)' subdir = os.path.join(inputdir, neuron) sonic_fpaths = getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], amps, [tstim], [toffset], [None], [1.], 'sonic')) full_fpaths = getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], amps, [tstim], [toffset], [None], [1.], 'full')) data_fpaths = {'full': full_fpaths, 'sonic': sonic_fpaths} # Extract computation times (s) comptimes_fpath = os.path.join(inputdir, '{}_comptimes_vs_amps.csv'.format(neuron)) comptimes = getCompTimesQuant( inputdir, neuron, amps * 1e-3, xlabel, data_fpaths, comptimes_fpath) tcomp_lookup = getLookupsCompTime(neuron) # Extract threshold excitation amplitude CW_Athr_vs_Fdrive = getCWtitrations_vs_Fdrive( ['RS'], a, [Fdrive], tstim, toffset, os.path.join(inputdir, 'CW_Athrs_vs_freqs.csv')) Athr = CW_Athr_vs_Fdrive.loc[Fdrive * 1e-3, 'RS'] # Plot comparative profiles of computation times vs. amplitude fig, ax = plt.subplots(figsize=cm2inch(5.5, 5.8)) plt.subplots_adjust(bottom=0.2, left=0.25, right=0.95, top=0.95) ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) ax.set_xlabel(xlabel, fontsize=fs, labelpad=1) ax.set_ylabel('Computation time (s)', fontsize=fs) ax.set_xscale('log') ax.set_yscale('log') ax.set_ylim((1e-1, 1e6)) for y, lbl in zip(time_indicators, time_indicators_labels): ax.axhline(y, linewidth=0.5, linestyle='--', c='k') ax.text(amps.max() * 1e-3, 1.2 * y, lbl, horizontalalignment='right', fontsize=fs) ax.get_yaxis().set_tick_params(which='minor', size=0) ax.get_yaxis().set_tick_params(which='minor', width=0) ax.axhline(tcomp_lookup, color='k', linewidth=lw) ax.axvline(Athr, linestyle='--', color='k', linewidth=1) colors = ['silver', 'dimgrey'] for i, key in enumerate(comptimes): ax.plot(amps * 1e-3, comptimes[key], 'o--', color=colors[i], linewidth=lw, label=key, markersize=ps) for item in ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(): item.set_fontsize(fs) fig.canvas.set_window_title(figbase + 'a') return fig def comptime_vs_freq(neuron, a, freqs, CW_Athrs, tstim, toffset, inputdir, fs=8, lw=2, ps=4): ''' Comparative plot of computation times for different US frequencies. ''' # Get filepaths xlabel = 'Frequency (kHz)' subdir = os.path.join(inputdir, neuron) sonic_fpaths, full_fpaths = [], [] for Fdrive in freqs: Athr = CW_Athrs[neuron].loc[Fdrive * 1e-3] # kPa Adrive = (Athr + 20.) * 1e3 # Pa sonic_fpaths += getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [None], [1.], 'sonic')) full_fpaths += getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [None], [1.], 'full')) data_fpaths = {'full': full_fpaths, 'sonic': sonic_fpaths} # Extract computation times (s) comptimes_fpath = os.path.join(inputdir, '{}_comptimes_vs_freqs.csv'.format(neuron)) comptimes = getCompTimesQuant( inputdir, neuron, freqs * 1e-3, xlabel, data_fpaths, comptimes_fpath) tcomp_lookup = getLookupsCompTime(neuron) # Plot comparative profiles of computation time vs. frequency fig, ax = plt.subplots(figsize=cm2inch(5.5, 5.8)) plt.subplots_adjust(bottom=0.2, left=0.25, right=0.95, top=0.95) ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) ax.set_xlabel(xlabel, fontsize=fs, labelpad=1) ax.set_ylabel('Computation time (s)', fontsize=fs) ax.set_xscale('log') ax.set_yscale('log') ax.set_ylim((1e-1, 1e6)) for y, lbl in zip(time_indicators, time_indicators_labels): ax.axhline(y, linewidth=0.5, linestyle='--', c='k') ax.text(freqs.max() * 1e-3, 1.2 * y, lbl, horizontalalignment='right', fontsize=fs) ax.get_yaxis().set_tick_params(which='minor', size=0) ax.get_yaxis().set_tick_params(which='minor', width=0) ax.axhline(tcomp_lookup, color='k', linewidth=lw) colors = ['silver', 'dimgrey'] for i, key in enumerate(comptimes): ax.plot(freqs * 1e-3, comptimes[key], 'o--', color=colors[i], linewidth=lw, label=key, markersize=ps) for item in ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(): item.set_fontsize(fs) fig.canvas.set_window_title(figbase + 'b') return fig def comptime_vs_radius(neuron, radii, Fdrive, CW_Athrs, tstim, toffset, inputdir, fs=8, lw=2, ps=4): ''' Comparative plot of computation times for different sonophore radii. ''' # Get filepaths xlabel = 'Sonophore radius (nm)' subdir = os.path.join(inputdir, neuron) sonic_fpaths, full_fpaths = [], [] for a in radii: Athr = CW_Athrs[neuron].loc[np.round(a * 1e9, 1)] # kPa Adrive = (Athr + 20.) * 1e3 # Pa sonic_fpaths += getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [None], [1.], 'sonic')) full_fpaths += getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [None], [1.], 'full')) data_fpaths = {'full': full_fpaths, 'sonic': sonic_fpaths} # Extract computation times (s) comptimes_fpath = os.path.join(inputdir, '{}_comptimes_vs_radius.csv'.format(neuron)) comptimes = getCompTimesQuant( inputdir, neuron, radii * 1e9, xlabel, data_fpaths, comptimes_fpath) tcomp_lookup = getLookupsCompTime(neuron) # Plot comparative profiles of computation time vs. frequency fig, ax = plt.subplots(figsize=cm2inch(5.5, 5.8)) plt.subplots_adjust(bottom=0.2, left=0.25, right=0.95, top=0.95) ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) ax.set_xlabel(xlabel, fontsize=fs, labelpad=1) ax.set_ylabel('Computation time (s)', fontsize=fs) ax.set_xscale('log') ax.set_yscale('log') ax.set_ylim((1e-1, 1e6)) for y, lbl in zip(time_indicators, time_indicators_labels): ax.axhline(y, linewidth=0.5, linestyle='--', c='k') ax.text(radii.max() * 1e9, 1.2 * y, lbl, horizontalalignment='right', fontsize=fs) ax.get_yaxis().set_tick_params(which='minor', size=0) ax.get_yaxis().set_tick_params(which='minor', width=0) ax.axhline(tcomp_lookup, color='k', linewidth=lw) colors = ['silver', 'dimgrey'] for i, key in enumerate(comptimes): ax.plot(radii * 1e9, comptimes[key], 'o--', color=colors[i], linewidth=lw, label=key, markersize=ps) for item in ax.get_yticklabels(): item.set_fontsize(fs) for item in ax.get_xticklabels(): item.set_fontsize(fs) fig.canvas.set_window_title(figbase + 'c') return fig def comptime_vs_DC(neurons, a, Fdrive, Adrive, tstim, toffset, PRF, DCs, inputdir, fs=8, lw=2, ps=4): ''' Comparative plot of computation times for different dity cycles and neuron types. ''' xlabel = 'Duty cycle (%)' colors = list(plt.get_cmap('Paired').colors[:6]) del colors[2:4] # Create figure fig, ax = plt.subplots(figsize=cm2inch(5.5, 5.8)) plt.subplots_adjust(bottom=0.2, left=0.25, right=0.95, top=0.95) ax.spines['top'].set_visible(False) ax.spines['right'].set_visible(False) ax.set_xlabel(xlabel, fontsize=fs, labelpad=-7) ax.set_ylabel('Computation time (s)', fontsize=fs) ax.set_xticks([DCs.min() * 1e2, DCs.max() * 1e2]) ax.set_yscale('log') ax.set_ylim((1e-1, 1e6)) for y, lbl in zip(time_indicators, time_indicators_labels): ax.axhline(y, linewidth=0.5, linestyle='--', c='k') ax.text(DCs.max() * 1e2, 1.2 * y, lbl, horizontalalignment='right', fontsize=fs) ax.get_yaxis().set_tick_params(which='minor', size=0) ax.get_yaxis().set_tick_params(which='minor', width=0) # Loop through neurons for i, neuron in enumerate(neurons): # Get filepaths subdir = os.path.join(inputdir, neuron) sonic_fpaths = getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [PRF], DCs, 'sonic')) full_fpaths = getSims(subdir, neuron, a, nbls.simQueue( [Fdrive], [Adrive], [tstim], [toffset], [PRF], DCs, 'full')) sonic_fpaths = sonic_fpaths[1:] + [sonic_fpaths[0]] full_fpaths = full_fpaths[1:] + [full_fpaths[0]] data_fpaths = {'full': full_fpaths, 'sonic': sonic_fpaths} # Extract computation times (s) comptimes_fpath = os.path.join(inputdir, '{}_comptimes_vs_DC.csv'.format(neuron)) comptimes = getCompTimesQuant( inputdir, neuron, DCs * 1e2, xlabel, data_fpaths, comptimes_fpath) # Plot ax.plot(DCs * 1e2, comptimes['full'], 'o--', color=colors[2 * i], linewidth=lw, markersize=ps) ax.plot(DCs * 1e2, comptimes['sonic'], 'o--', color=colors[2 * i + 1], linewidth=lw, markersize=ps, label=neuron) fig.canvas.set_window_title(figbase + 'd') return fig def main(): ap = ArgumentParser() # Runtime options - ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') + ap.add_argument('-v', '--verbose', default=False, action='store_true', + help='Increase verbosity') ap.add_argument('-i', '--inputdir', type=str, help='Input directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) inputdir = selectDirDialog() if args.inputdir is None else args.inputdir if inputdir == '': logger.error('No input directory chosen') return figset = args.figset if figset == 'all': figset = ['a', 'b', 'c', 'd'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters a = 32e-9 # m radii = np.array([16, 22.6, 32, 45.3, 64]) * 1e-9 # nm tstim = 150e-3 # s toffset = 100e-3 # s freqs = np.array([20e3, 100e3, 500e3, 1e6, 2e6, 3e6, 4e6]) # Hz Fdrive = 500e3 # Hz CW_Athr_vs_Fdrive = getCWtitrations_vs_Fdrive( ['RS'], a, freqs, tstim, toffset, os.path.join(inputdir, 'CW_Athrs_vs_freqs.csv')) Athr = CW_Athr_vs_Fdrive['RS'].loc[Fdrive * 1e-3] amps1 = np.array([Athr - 5, Athr, Athr + 20]) * 1e3 amps2 = np.array([50, 100, 300, 600]) * 1e3 # Pa amps = np.sort(np.hstack([amps1, amps2])) CW_Athr_vs_radius = getCWtitrations_vs_radius( ['RS'], radii, Fdrive, tstim, toffset, os.path.join(inputdir, 'CW_Athrs_vs_radius.csv')) Adrive = 100e3 # Pa PRF = 100 # Hz DCs = np.array([5, 10, 25, 50, 75, 100]) * 1e-2 # Generate figures figs = [] if 'a' in figset: figs.append(comptime_vs_amp('RS', a, Fdrive, amps, tstim, toffset, inputdir)) if 'b' in figset: figs.append(comptime_vs_freq('RS', a, freqs, CW_Athr_vs_Fdrive, tstim, toffset, inputdir)) if 'c' in figset: figs.append(comptime_vs_radius( 'RS', radii, Fdrive, CW_Athr_vs_radius, tstim, toffset, inputdir)) if 'd' in figset: figs.append(comptime_vs_DC( ['RS', 'LTS'], a, Fdrive, Adrive, tstim, toffset, PRF, DCs, inputdir)) if args.save: for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(inputdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig7.py b/paper figures/fig7.py index fde1ea5..e8af9d1 100644 --- a/paper figures/fig7.py +++ b/paper figures/fig7.py @@ -1,150 +1,150 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-09-26 09:51:43 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 21:01:54 +# @Last Modified time: 2019-06-12 12:04:26 ''' Sub-panels of (duty-cycle x amplitude) US activation maps and related Q-V traces. ''' import os import numpy as np import logging import matplotlib import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.core import NeuronalBilayerSonophore from PySONIC.utils import logger, selectDirDialog, si_format from PySONIC.plt import ActivationMap from PySONIC.neurons import getPointNeuron # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] -def plotMapAndTraces(inputdir, neuron, a, Fdrive, tstim, amps, PRF, DCs, FRbounds, +def plotMapAndTraces(inputdir, pneuron, a, Fdrive, tstim, amps, PRF, DCs, FRbounds, insets, tmax, Vbounds, prefix): # Activation map - mapcode = '{} {}Hz PRF{}Hz 1s'.format(neuron.name, *si_format([Fdrive, PRF, tstim], space='')) + mapcode = '{} {}Hz PRF{}Hz 1s'.format(pneuron.name, *si_format([Fdrive, PRF, tstim], space='')) subdir = os.path.join(inputdir, mapcode) - actmap = ActivationMap(subdir, neuron, a, Fdrive, tstim, PRF, amps, DCs) + actmap = ActivationMap(subdir, pneuron, a, Fdrive, tstim, PRF, amps, DCs) mapfig = actmap.render(FRbounds=FRbounds, thresholds=True) mapfig.canvas.set_window_title('{} map {}'.format(prefix, mapcode)) ax = mapfig.axes[0] DC_insets, A_insets = zip(*insets) ax.scatter(DC_insets, A_insets, s=80, facecolors='none', edgecolors='k', linestyle='--') # Related inset traces tracefigs = [] - nbls = NeuronalBilayerSonophore(a, neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) for inset in insets: DC = inset[0] * 1e-2 Adrive = inset[1] * 1e3 fname = '{}.pkl'.format(nbls.filecode( Fdrive, actmap.correctAmp(Adrive), tstim, 0., PRF, DC, 'sonic')) fpath = os.path.join(subdir, fname) tracefig = actmap.plotQVeff(fpath, tmax=tmax, ybounds=Vbounds) figcode = '{} VQ trace {} {:.1f}kPa {:.0f}%DC'.format( - prefix, neuron.name, Adrive * 1e-3, DC * 1e2) + prefix, pneuron.name, Adrive * 1e-3, DC * 1e2) tracefig.canvas.set_window_title(figcode) tracefigs.append(tracefig) return mapfig, tracefigs -def panel(inputdir, neurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, insets, prefix): +def panel(inputdir, pneurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, insets, prefix): mapfigs, tracefigs = [], [] - for n in neurons: + for pn in pneurons: out = plotMapAndTraces( - inputdir, n, a, 500e3, tstim, amps, PRF, DCs, - FRbounds, insets[n.name], tmax, Vbounds, prefix) + inputdir, pn, a, 500e3, tstim, amps, PRF, DCs, + FRbounds, insets[pn.name], tmax, Vbounds, prefix) mapfigs.append(out[0]) tracefigs += out[1] return mapfigs + tracefigs def main(): ap = ArgumentParser() # Runtime options ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-i', '--inputdir', type=str, help='Input directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) inputdir = selectDirDialog() if args.inputdir is None else args.inputdir if inputdir == '': logger.error('No input directory chosen') return figset = args.figset if figset == 'all': figset = ['a', 'b', 'c'] logger.info('Generating panel {} of {}'.format(figset, figbase)) # Parameters - neurons = [getPointNeuron(n) for n in ['RS', 'LTS']] + pneurons = [getPointNeuron(n) for n in ['RS', 'LTS']] a = 32e-9 # m tstim = 1.0 # s amps = np.logspace(np.log10(10), np.log10(600), num=30) * 1e3 # Pa DCs = np.arange(1, 101) * 1e-2 FRbounds = (1e0, 1e3) # Hz tmax = 240 # ms Vbounds = -150, 50 # mV # Generate figures try: figs = [] if 'a' in figset: PRF = 1e1 insets = { 'RS': [(28, 127.0), (37, 168.4)], 'LTS': [(8, 47.3), (30, 146.2)] } - figs += panel(inputdir, neurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, + figs += panel(inputdir, pneurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, insets, figbase + 'a') if 'b' in figset: PRF = 1e2 insets = { 'RS': [(51, 452.4), (56, 452.4)], 'LTS': [(13, 193.9), (43, 257.2)] } - figs += panel(inputdir, neurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, + figs += panel(inputdir, pneurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, insets, figbase + 'b') if 'c' in figset: PRF = 1e3 insets = { 'RS': [(40, 110.2), (64, 193.9)], 'LTS': [(10, 47.3), (53, 168.4)] } - figs += panel(inputdir, neurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, + figs += panel(inputdir, pneurons, a, tstim, PRF, amps, DCs, FRbounds, tmax, Vbounds, insets, figbase + 'c') except Exception as e: logger.error(e) quit() if args.save: for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(inputdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig8.py b/paper figures/fig8.py index 30148fd..68e8da9 100644 --- a/paper figures/fig8.py +++ b/paper figures/fig8.py @@ -1,150 +1,150 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-11-27 17:57:45 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:15:59 +# @Last Modified time: 2019-06-12 12:06:14 ''' Sub-panels of threshold curves for various sonophore radii and US frequencies. ''' import os import logging import numpy as np import pandas as pd import matplotlib import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.neurons import getPointNeuron from PySONIC.utils import logger, si_format, selectDirDialog from PySONIC.plt import cm2inch # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] def getThresholdAmplitudes(root, neuron, a, Fdrive, tstim, PRF): subfolder = '{} {:.0f}nm {}Hz PRF{}Hz {}s'.format( neuron, a * 1e9, *si_format([Fdrive, PRF, tstim], 0, space='') ) fname = 'log_ASTIM.xlsx' fpath = os.path.join(root, subfolder, fname) df = pd.read_excel(fpath, sheet_name='Data') DCs = df['Duty factor'].values Athrs = df['Adrive (kPa)'].values iDCs = np.argsort(DCs) DCs = DCs[iDCs] Athrs = Athrs[iDCs] return DCs, Athrs def plotThresholdAmps(root, neurons, radii, freqs, PRF, tstim, fs=10, colors=None, figsize=None): ''' Plot threshold excitation amplitudes of several neurons determined by titration procedures, as a function of duty cycle, for various combinations of sonophore radius and US frequency. :param neurons: list of neuron names :param radii: list of sonophore radii (m) :param freqs: list US frequencies (Hz) :param PRF: pulse repetition frequency used for titration procedures (Hz) :param tstim: stimulus duration used for titration procedures :return: figure handle ''' if figsize is None: figsize = cm2inch(8, 7) linestyles = ['--', ':', '-.'] assert len(freqs) <= len(linestyles), 'too many frequencies' fig, ax = plt.subplots(figsize=figsize) ax.set_xlabel('Duty cycle (%)', fontsize=fs) ax.set_ylabel('Amplitude (kPa)', fontsize=fs) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) ax.set_yscale('log') ax.set_xlim([0, 100]) ax.set_ylim([10, 600]) linestyles = ['-', '--'] for neuron, ls in zip(neurons, linestyles): - neuron = getPointNeuron(neuron) icolor = 0 for i, a in enumerate(radii): for j, Fdrive in enumerate(freqs): if colors is None: color = 'C{}'.format(icolor) else: color = colors[icolor] - DCs, Athrs = getThresholdAmplitudes(root, neuron.name, a, Fdrive, tstim, PRF) + DCs, Athrs = getThresholdAmplitudes(root, neuron, a, Fdrive, tstim, PRF) lbl = '{} neuron, {:.0f} nm, {}Hz, {}Hz PRF'.format( - neuron.name, a * 1e9, *si_format([Fdrive, PRF], 0, space=' ')) + neuron, a * 1e9, *si_format([Fdrive, PRF], 0, space=' ')) ax.plot(DCs * 1e2, Athrs, ls, c=color, label=lbl) icolor += 1 ax.legend(fontsize=fs - 5, frameon=False) fig.tight_layout() return fig def main(): ap = ArgumentParser() # Runtime options - ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') + ap.add_argument('-v', '--verbose', default=False, action='store_true', + help='Increase verbosity') ap.add_argument('-i', '--inputdir', type=str, help='Input directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) inputdir = selectDirDialog() if args.inputdir is None else args.inputdir if inputdir == '': logger.error('No input directory chosen') return figset = args.figset if figset == 'all': figset = ['a', 'b'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters neurons = ['RS', 'LTS'] radii = np.array([16, 32, 64]) * 1e-9 # m a = radii[1] freqs = np.array([20, 500, 4000]) * 1e3 # Hz Fdrive = freqs[1] PRFs = np.array([1e1, 1e2, 1e3]) # Hz PRF = PRFs[1] tstim = 1 # s colors = plt.get_cmap('tab20c').colors # Generate figures figs = [] if 'a' in figset: fig = plotThresholdAmps(inputdir, neurons, radii, [Fdrive], PRF, tstim, fs=12, colors=colors[:3][::-1]) fig.canvas.set_window_title(figbase + 'a') figs.append(fig) if 'b' in figset: fig = plotThresholdAmps(inputdir, neurons, [a], freqs, PRF, tstim, fs=12, colors=colors[8:11][::-1]) fig.canvas.set_window_title(figbase + 'b') figs.append(fig) if args.save: for fig in figs: figname = '{}.pdf'.format(fig.canvas.get_window_title()) fig.savefig(os.path.join(inputdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/fig9.py b/paper figures/fig9.py index e35a8a7..28cfb21 100644 --- a/paper figures/fig9.py +++ b/paper figures/fig9.py @@ -1,107 +1,107 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-12-09 12:06:01 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 21:29:48 +# @Last Modified time: 2019-06-12 12:54:36 ''' Sub-panels of SONIC model validation on an STN neuron (response to CW sonication). ''' import os import logging import numpy as np import matplotlib import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.core import NeuronalBilayerSonophore -from PySONIC.neurons import OtsukaSTN +from PySONIC.neurons import getPointNeuron from PySONIC.utils import logger, selectDirDialog, Intensity2Pressure from PySONIC.plt import plotFRProfile, SchemePlot # Plot parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' # Figure basename figbase = os.path.splitext(__file__)[0] def main(): ap = ArgumentParser() # Runtime options ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-i', '--inputdir', type=str, help='Input directory') ap.add_argument('-f', '--figset', type=str, nargs='+', help='Figure set', default='all') ap.add_argument('-s', '--save', default=False, action='store_true', help='Save output figures as pdf') args = ap.parse_args() loglevel = logging.DEBUG if args.verbose is True else logging.INFO logger.setLevel(loglevel) inputdir = selectDirDialog() if args.inputdir is None else args.inputdir if inputdir == '': logger.error('No input directory chosen') return figset = args.figset if figset is 'all': figset = ['a', 'b'] logger.info('Generating panels {} of {}'.format(figset, figbase)) # Parameters - neuron = OtsukaSTN() + pneuron = getPointNeuron('STN') a = 32e-9 # m Fdrive = 500e3 # Hz tstim = 1 # s toffset = 0. # s PRF = 1e2 DC = 1. - nbls = NeuronalBilayerSonophore(a, neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) # Range of intensities - intensities = neuron.getLowIntensities() # W/m2 + intensities = pneuron.getLowIntensities() # W/m2 # Levels depicted with individual traces subset_intensities = [112, 114, 123] # W/m2 # convert to amplitudes and get filepaths amplitudes = Intensity2Pressure(intensities) # Pa fnames = ['{}.pkl'.format(nbls.filecode(Fdrive, A, tstim, toffset, PRF, DC, 'sonic')) for A in amplitudes] fpaths = [os.path.join(inputdir, 'STN', fn) for fn in fnames] # Generate figures figs = [] if 'a' in figset: fig = plotFRProfile(fpaths, 'Qm', no_offset=True, no_first=False, zref='A', zscale='lin', cmap='Oranges') fig.canvas.set_window_title(figbase + 'a') figs.append(fig) if 'b' in figset: isubset = [np.argwhere(intensities == x)[0][0] for x in subset_intensities] subset_amplitudes = amplitudes[isubset] titles = ['{:.2f} kPa ({:.0f} W/m2)'.format(A * 1e-3, I) for A, I in zip(subset_amplitudes, subset_intensities)] print(titles) figtraces = SchemePlot([fpaths[i] for i in isubset], pltscheme={'Q_m': ['Qm']})() for fig, title in zip(figtraces, titles): fig.axes[0].set_title(title) fig.canvas.set_window_title(figbase + 'b {}'.format(title)) figs.append(fig) if args.save: for fig in figs: s = fig.canvas.get_window_title() s = s.replace('(', '- ').replace('/', '_').replace(')', '') figname = '{}.pdf'.format(s) fig.savefig(os.path.join(inputdir, figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/paper figures/utils.py b/paper figures/utils.py index cc81422..303ddf5 100644 --- a/paper figures/utils.py +++ b/paper figures/utils.py @@ -1,120 +1,120 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-10-01 20:45:29 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:15:30 +# @Last Modified time: 2019-06-12 12:08:00 import os import numpy as np import pandas as pd from PySONIC.utils import * from PySONIC.core import NeuronalBilayerSonophore from PySONIC.neurons import * from PySONIC.postpro import computeSpikingMetrics def getCWtitrations_vs_Fdrive(neurons, a, freqs, tstim, toffset, fpath): fkey = 'Fdrive (kHz)' freqs = np.array(freqs) if os.path.isfile(fpath): df = pd.read_csv(fpath, sep=',', index_col=fkey) else: df = pd.DataFrame(index=freqs * 1e-3) for neuron in neurons: if neuron not in df: - neuronobj = getPointNeuron(neuron) - nbls = NeuronalBilayerSonophore(a, neuronobj) + pneuron = getPointNeuron(neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) for i, Fdrive in enumerate(freqs): logger.info('Running CW titration for %s neuron @ %sHz', neuron, si_format(Fdrive)) Athr = nbls.titrate(Fdrive, tstim, toffset) # Pa df.loc[Fdrive * 1e-3, neuron] = np.ceil(Athr * 1e-2) / 10 df.sort_index(inplace=True) df.to_csv(fpath, sep=',', index_label=fkey) return df def getCWtitrations_vs_radius(neurons, radii, Fdrive, tstim, toffset, fpath): akey = 'radius (nm)' radii = np.array(radii) if os.path.isfile(fpath): df = pd.read_csv(fpath, sep=',', index_col=akey) else: df = pd.DataFrame(index=radii * 1e9) for neuron in neurons: if neuron not in df: - neuronobj = getPointNeuron(neuron) + pneuron = getPointNeuron(neuron) for a in radii: - nbls = NeuronalBilayerSonophore(a, neuronobj) + nbls = NeuronalBilayerSonophore(a, pneuron) logger.info( 'Running CW titration for %s neuron @ %sHz (%.2f nm sonophore radius)', neuron, si_format(Fdrive), a * 1e9) Athr = nbls.titrate(Fdrive, tstim, toffset) # Pa df.loc[a * 1e9, neuron] = np.ceil(Athr * 1e-2) / 10 df.sort_index(inplace=True) df.to_csv(fpath, sep=',', index_label=akey) return df def getSims(outdir, neuron, a, queue): fpaths = [] updated_queue = [] - neuronobj = getPointNeurons(neuron) - nbls = NeuronalBilayerSonophore(a, neuronobj) + pneuron = getPointNeurons(neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) for i, item in enumerate(queue): Fdrive, tstim, toffset, PRF, DC, Adrive, method = item fcode = nbls.filecode(Fdrive, Adrive, tstim, toffset, PRF, DC, method) fpath = os.path.join(outdir, '{}.pkl'.format(fcode)) if not os.path.isfile(fpath): print(fpath, 'does not exist') item.insert(0, outdir) updated_queue.append(item) fpaths.append(fpath) if len(updated_queue) > 0: print(updated_queue) - # neuron = getPointNeuron(neuron) - # nbls = NeuronalBilayerSonophore(a, neuron) + # pneuron = getPointNeuron(neuron) + # nbls = NeuronalBilayerSonophore(a, pneuron) # batch = Batch(nbls.runAndSave, updated_queue) # batch.run(mpi=True) return fpaths def getSpikingMetrics(outdir, neuron, xvar, xkey, data_fpaths, metrics_fpaths): metrics = {} for stype in data_fpaths.keys(): if os.path.isfile(metrics_fpaths[stype]): logger.info('loading spiking metrics from file: "%s"', metrics_fpaths[stype]) metrics[stype] = pd.read_csv(metrics_fpaths[stype], sep=',') else: logger.warning('computing %s spiking metrics vs. %s for %s neuron', stype, xkey, neuron) metrics[stype] = computeSpikingMetrics(data_fpaths[stype]) metrics[stype][xkey] = pd.Series(xvar, index=metrics[stype].index) metrics[stype].to_csv(metrics_fpaths[stype], sep=',', index=False) return metrics def extractCompTimes(filenames): ''' Extract computation times from a list of simulation files. ''' tcomps = np.empty(len(filenames)) for i, fn in enumerate(filenames): logger.info('Loading data from "%s"', fn) with open(fn, 'rb') as fh: frame = pickle.load(fh) meta = frame['meta'] tcomps[i] = meta['tcomp'] return tcomps def getCompTimesQuant(outdir, neuron, xvars, xkey, data_fpaths, comptimes_fpath): if os.path.isfile(comptimes_fpath): logger.info('reading computation times from file: "%s"', comptimes_fpath) comptimes = pd.read_csv(comptimes_fpath, sep=',', index_col=xkey) else: logger.warning('extracting computation times for %s neuron', neuron) comptimes = pd.DataFrame(index=xvars) for stype in data_fpaths.keys(): for i, xvar in enumerate(xvars): comptimes.loc[xvar, stype] = extractCompTimes([data_fpaths[stype][i]]) comptimes.to_csv(comptimes_fpath, sep=',', index_label=xkey) return comptimes diff --git a/scripts/generate_mod_file.py b/scripts/generate_mod_file.py index 0d8f542..024f67c 100644 --- a/scripts/generate_mod_file.py +++ b/scripts/generate_mod_file.py @@ -1,41 +1,41 @@ # -*- coding: utf-8 -*- # @Author: Theo # @Date: 2019-03-18 18:06:20 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:10:17 +# @Last Modified time: 2019-06-12 12:20:32 import os import logging from argparse import ArgumentParser from PySONIC.neurons import getPointNeuron from PySONIC.utils import logger, selectDirDialog from PySONIC.core import NmodlGenerator def main(): ap = ArgumentParser() ap.add_argument('-n', '--neuron', type=str, default='RS', help='Neuron name (string)') ap.add_argument('-o', '--outputdir', type=str, default=None, help='Output directory') logger.setLevel(logging.INFO) args = ap.parse_args() try: - neuron = getPointNeuron(args.neuron) + pneuron = getPointNeuron(args.neuron) except ValueError as err: logger.error(err) return outdir = args.outputdir if args.outputdir is not None else selectDirDialog() if outdir == '': logger.error('No output directory selected') quit() outfile = '{}.mod'.format(args.neuron) outpath = os.path.join(outdir, outfile) - gen = NmodlGenerator(neuron) - logger.info('generating %s neuron MOD file in "%s"', neuron.name, outdir) + gen = NmodlGenerator(pneuron) + logger.info('generating %s neuron MOD file in "%s"', pneuron.name, outdir) gen.print(outpath) if __name__ == '__main__': main() diff --git a/scripts/plot_QSS.py b/scripts/plot_QSS.py index 879486f..bb36221 100644 --- a/scripts/plot_QSS.py +++ b/scripts/plot_QSS.py @@ -1,77 +1,77 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-09-28 16:13:34 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-10 22:16:40 +# @Last Modified time: 2019-06-12 12:23:20 ''' Phase-plane analysis of neuron behavior under quasi-steady state approximation. ''' import os import numpy as np import matplotlib.pyplot as plt from PySONIC.utils import logger from PySONIC.plt import plotQSSdynamics, plotQSSVarVsQm, plotEqChargeVsAmp, plotQSSThresholdCurve from PySONIC.parsers import AStimParser def main(): # Parse command line arguments parser = AStimParser() parser.addCmap(default='viridis') parser.addAscale() parser.addSave() parser.outputdir_dep_key = 'save' parser.addCompare(desc='Compare with simulations') parser.addInputDir(dep_key='compare') parser.defaults['amp'] = np.logspace(np.log10(1), np.log10(600), 100) # kPa parser.defaults['tstim'] = 1000. # ms parser.defaults['toffset'] = 0. # ms args = parser.parse() args['inputdir'] = parser.parseInputDir(args) logger.setLevel(args['loglevel']) if args['plot'] is None: args['plot'] = ['dQdt'] a, Fdrive, tstim, toffset, PRF = [ args[k][0] for k in ['radius', 'freq', 'tstim', 'toffset', 'PRF']] figs = [] - for i, neuron in enumerate(args['neuron']): + for i, pneuron in enumerate(args['neuron']): if args['DC'].size == 1: DC = args['DC'][0] if args['amp'].size == 1: Adrive = args['amp'][0] - figs.append(plotQSSdynamics(neuron, a, Fdrive, Adrive, DC)) + figs.append(plotQSSdynamics(pneuron, a, Fdrive, Adrive, DC)) else: # Plot evolution of QSS vars vs Q for different amplitudes for pvar in args['plot']: figs.append(plotQSSVarVsQm( - neuron, a, Fdrive, pvar, amps=args['amp'], DC=DC, + pneuron, a, Fdrive, pvar, amps=args['amp'], DC=DC, cmap=args['cmap'], zscale=args['Ascale'], mpi=args['mpi'], loglevel=args['loglevel'])) # Plot equilibrium charge as a function of amplitude if 'dQdt' in args['plot']: figs.append(plotEqChargeVsAmp( - neuron, a, Fdrive, amps=args['amp'], tstim=tstim, toffset=toffset, PRF=PRF, + pneuron, a, Fdrive, amps=args['amp'], tstim=tstim, toffset=toffset, PRF=PRF, DC=DC, xscale=args['Ascale'], compdir=args['inputdir'], mpi=args['mpi'], loglevel=args['loglevel'])) else: figs.append(plotQSSThresholdCurve( - neuron, a, Fdrive, tstim=tstim, toffset=toffset, PRF=PRF, DCs=args['DC'], + pneuron, a, Fdrive, tstim=tstim, toffset=toffset, PRF=PRF, DCs=args['DC'], Ascale=args['Ascale'], comp=args['compare'], mpi=args['mpi'], loglevel=args['loglevel'])) if args['save']: for fig in figs: s = fig.canvas.get_window_title() s = s.replace('(', '- ').replace('/', '_').replace(')', '') figname = '{}.png'.format(s) fig.savefig(os.path.join(args['outputdir'], figname), transparent=True) else: plt.show() if __name__ == '__main__': main() diff --git a/scripts/plot_activation_map.py b/scripts/plot_activation_map.py index 389e91c..c6d151d 100644 --- a/scripts/plot_activation_map.py +++ b/scripts/plot_activation_map.py @@ -1,121 +1,121 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2018-09-26 09:51:43 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 20:58:41 +# @Last Modified time: 2019-06-12 12:20:52 ''' Plot (duty-cycle x amplitude) US activation map of a neuron at a given frequency and PRF. ''' import numpy as np import logging import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.utils import logger, selectDirDialog, Intensity2Pressure from PySONIC.plt import ActivationMap from PySONIC.neurons import getPointNeuron # Default parameters defaults = dict( neuron='RS', radius=32, # nm freq=500, # kHz duration=1000, # ms PRF=100, # Hz amps=np.logspace(np.log10(10), np.log10(600), num=30), # kPa DCs=np.arange(1, 101), # % Ascale='log', FRscale='log', FRbounds=(1e0, 1e3), # Hz tmax=240, # ms Vbounds=(-150, 50), # mV ) def main(): ap = ArgumentParser() # Runtime options ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-i', '--inputdir', type=str, default=None, help='Input directory') ap.add_argument('-r', '--threshold', default=False, action='store_true', help='Show threshold amplitudes') ap.add_argument('--interactive', default=False, action='store_true', help='Show traces on click') # Stimulation parameters ap.add_argument('-n', '--neuron', type=str, default=defaults['neuron'], help='Neuron name (string)') ap.add_argument('-a', '--radius', type=float, default=defaults['radius'], help='Sonophore radius (nm)') ap.add_argument('-f', '--freq', type=float, default=defaults['freq'], help='US frequency (kHz)') ap.add_argument('-d', '--duration', type=float, default=defaults['duration'], help='Stimulus duration (ms)') ap.add_argument('-A', '--amps', nargs='+', type=float, help='Acoustic pressure amplitude (kPa)') ap.add_argument('-I', '--intensities', nargs='+', type=float, help='Acoustic intensity (W/cm2)') ap.add_argument('--PRF', type=float, default=defaults['PRF'], help='PRF (Hz)') ap.add_argument('--DC', nargs='+', type=float, help='Duty cycle (%%)') # Plot options ap.add_argument('--Ascale', type=str, default=defaults['Ascale'], help='y-axis scale ("log" or "lin")') ap.add_argument('--FRscale', type=str, default=defaults['FRscale'], help='map color scale ("log" or "lin")') ap.add_argument('--FRbounds', type=float, nargs='+', default=defaults['FRbounds'], help='Lower and upper bounds for firing rate (Hz)') ap.add_argument('--tmax', type=float, default=defaults['tmax'], help='Max time value for callback graphs (ms)') ap.add_argument('--Vbounds', type=float, nargs='+', default=defaults['Vbounds'], help='Y-axis extent for callback graphs (mV)') # Parse arguments args = {key: value for key, value in vars(ap.parse_args()).items() if value is not None} # Runtime options loglevel = logging.DEBUG if args['verbose'] is True else logging.INFO logger.setLevel(loglevel) inputdir = args['inputdir'] if 'inputdir' in args else selectDirDialog() if inputdir == '': logger.error('Operation cancelled') return # Parameters - neuron = getPointNeuron(args['neuron']) + pneuron = getPointNeuron(args['neuron']) a = args['radius'] * 1e-9 # m Fdrive = args['freq'] * 1e3 # Hz tstim = args['duration'] * 1e-3 # s PRF = args['PRF'] # Hz DCs = np.array(args.get('DCs', defaults['DCs'])) * 1e-2 # (-) if 'amps' in args: amps = np.array(args['amps']) * 1e3 # Pa elif 'intensities' in args: amps = Intensity2Pressure(np.array(args['intensities']) * 1e4) # Pa else: amps = np.array(defaults['amps']) * 1e3 # Pa # Plot options for item in ['Ascale', 'FRscale']: assert args[item] in ('lin', 'log'), 'Unknown {}'.format(item) # Plot activation map - actmap = ActivationMap(inputdir, neuron, a, Fdrive, tstim, PRF, amps, DCs) + actmap = ActivationMap(inputdir, pneuron, a, Fdrive, tstim, PRF, amps, DCs) actmap.render( Ascale=args['Ascale'], FRscale=args['FRscale'], FRbounds=args['FRbounds'], interactive=args['interactive'], Vbounds=args['Vbounds'], tmax=args['tmax'], thresholds=args['threshold'] ) plt.show() if __name__ == '__main__': main() diff --git a/scripts/plot_effective_variables.py b/scripts/plot_effective_variables.py index 4cf7612..048de79 100644 --- a/scripts/plot_effective_variables.py +++ b/scripts/plot_effective_variables.py @@ -1,71 +1,71 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-02-15 15:59:37 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 21:27:19 +# @Last Modified time: 2019-06-12 12:21:05 ''' Plot the effective variables as a function of charge density with color code. ''' import logging import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.plt import plotEffectiveVariables from PySONIC.utils import logger from PySONIC.neurons import getPointNeuron # Set logging level logger.setLevel(logging.INFO) def main(): ap = ArgumentParser() # Stimulation parameters ap.add_argument('-n', '--neuron', type=str, default='RS', help='Neuron name (string)') ap.add_argument('-a', '--radius', type=float, default=None, help='Sonophore radius (nm)') ap.add_argument('-f', '--freq', type=float, default=None, help='US frequency (kHz)') ap.add_argument('-A', '--amp', type=float, default=None, help='Acoustic pressure amplitude (kPa)') ap.add_argument('--log', action='store_true', default=False, help='Log color scale') ap.add_argument('-c', '--cmap', type=str, default=None, help='Colormap name') ap.add_argument('--ncol', type=int, default=1, help='Number of columns in figure') ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') # Parse arguments args = {key: value for key, value in vars(ap.parse_args()).items() if value is not None} neuron_str = args['neuron'] a = args['radius'] * 1e-9 if 'radius' in args else None # m Fdrive = args['freq'] * 1e3 if 'freq' in args else None # Hz Adrive = args['amp'] * 1e3 if 'amp' in args else None # Pa zscale = 'log' if args['log'] else 'lin' cmap = args.get('cmap', None) ncol = args['ncol'] loglevel = logging.DEBUG if args['verbose'] is True else logging.INFO logger.setLevel(loglevel) # Check neuron name validity try: - neuron = getPointNeuron(neuron_str) + pneuron = getPointNeuron(neuron_str) except ValueError as err: logger.error(err) return # Plot effective variables - plotEffectiveVariables(neuron, a=a, Fdrive=Fdrive, Adrive=Adrive, + plotEffectiveVariables(pneuron, a=a, Fdrive=Fdrive, Adrive=Adrive, zscale=zscale, cmap=cmap, ncolmax=ncol) plt.show() if __name__ == '__main__': main() diff --git a/scripts/plot_gating_kinetics.py b/scripts/plot_gating_kinetics.py index ac571f7..5685f97 100644 --- a/scripts/plot_gating_kinetics.py +++ b/scripts/plot_gating_kinetics.py @@ -1,134 +1,134 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2016-10-11 20:35:38 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:07:26 +# @Last Modified time: 2019-06-12 12:21:52 ''' Plot the voltage-dependent steady-states and time constants of activation and inactivation gates of the different ionic currents involved in the neuron's membrane dynamics. ''' import numpy as np import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.utils import logger from PySONIC.neurons import getPointNeuron # Default parameters defaults = dict( neuron='RS' ) -def plotGatingKinetics(neuron, fs=15): +def plotGatingKinetics(pneuron, fs=15): ''' Plot the voltage-dependent steady-states and time constants of activation and inactivation gates of the different ionic currents involved in a specific neuron's membrane. - :param neuron: specific channel mechanism object + :param pneuron: point-neuron object :param fs: labels and title font size ''' # Input membrane potential vector Vm = np.linspace(-100, 50, 300) xinf_dict = {} taux_dict = {} - logger.info('Computing %s neuron gating kinetics', neuron.name) - names = neuron.states + logger.info('Computing %s neuron gating kinetics', pneuron.name) + names = pneuron.states for xname in names: Vm_state = True # Names of functions of interest xinf_func_str = xname.lower() + 'inf' taux_func_str = 'tau' + xname.lower() alphax_func_str = 'alpha' + xname.lower() betax_func_str = 'beta' + xname.lower() # derx_func_str = 'der' + xname.upper() # 1st choice: use xinf and taux function - if hasattr(neuron, xinf_func_str) and hasattr(neuron, taux_func_str): - xinf_func = getattr(neuron, xinf_func_str) - taux_func = getattr(neuron, taux_func_str) + if hasattr(pneuron, xinf_func_str) and hasattr(pneuron, taux_func_str): + xinf_func = getattr(pneuron, xinf_func_str) + taux_func = getattr(pneuron, taux_func_str) xinf = np.array([xinf_func(v) for v in Vm]) if isinstance(taux_func, float): taux = taux_func * np.ones(len(Vm)) else: taux = np.array([taux_func(v) for v in Vm]) # 2nd choice: use alphax and betax functions - elif hasattr(neuron, alphax_func_str) and hasattr(neuron, betax_func_str): - alphax_func = getattr(neuron, alphax_func_str) - betax_func = getattr(neuron, betax_func_str) + elif hasattr(pneuron, alphax_func_str) and hasattr(pneuron, betax_func_str): + alphax_func = getattr(pneuron, alphax_func_str) + betax_func = getattr(pneuron, betax_func_str) alphax = np.array([alphax_func(v) for v in Vm]) if isinstance(betax_func, float): betax = betax_func * np.ones(len(Vm)) else: betax = np.array([betax_func(v) for v in Vm]) taux = 1.0 / (alphax + betax) xinf = taux * alphax # # 3rd choice: use derX choice - # elif hasattr(neuron, derx_func_str): - # derx_func = getattr(neuron, derx_func_str) - # xinf = brentq(lambda x: derx_func(neuron.Vm, x), 0, 1) + # elif hasattr(pneuron, derx_func_str): + # derx_func = getattr(pneuron, derx_func_str) + # xinf = brentq(lambda x: derx_func(pneuron.Vm, x), 0, 1) else: Vm_state = False if not Vm_state: logger.error('no function to compute %s-state gating kinetics', xname) else: xinf_dict[xname] = xinf taux_dict[xname] = taux fig, axes = plt.subplots(2) - fig.suptitle('{} neuron: gating dynamics'.format(neuron.name)) + fig.suptitle('{} neuron: gating dynamics'.format(pneuron.name)) ax = axes[0] ax.get_xaxis().set_ticklabels([]) ax.set_ylabel('$X_{\infty}$', fontsize=fs) for xname in names: if xname in xinf_dict: ax.plot(Vm, xinf_dict[xname], lw=2, label='$' + xname + '_{\infty}$') ax.legend(fontsize=fs, loc=7) ax = axes[1] ax.set_xlabel('$V_m\ (mV)$', fontsize=fs) ax.set_ylabel('$\\tau_X\ (ms)$', fontsize=fs) for xname in names: if xname in taux_dict: ax.plot(Vm, taux_dict[xname] * 1e3, lw=2, label='$\\tau_{' + xname + '}$') ax.legend(fontsize=fs, loc=7) return fig def main(): ap = ArgumentParser() # Stimulation parameters ap.add_argument('-n', '--neuron', type=str, default=defaults['neuron'], help='Neuron name (string)') # Parse arguments args = ap.parse_args() neuron_str = args.neuron # Check neuron name validity try: - neuron = getPointNeuron(neuron_str) + pneuron = getPointNeuron(neuron_str) except ValueError as err: logger.error(err) return # Plot gating kinetics variables - plotGatingKinetics(neuron) + plotGatingKinetics(pneuron) plt.show() if __name__ == '__main__': main() diff --git a/scripts/plot_rheobase_amps.py b/scripts/plot_rheobase_amps.py index 8d84c4b..a967319 100644 --- a/scripts/plot_rheobase_amps.py +++ b/scripts/plot_rheobase_amps.py @@ -1,69 +1,69 @@ # -*- coding: utf-8 -*- # @Author: Theo # @Date: 2018-04-30 21:06:10 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-06 15:08:17 +# @Last Modified time: 2019-06-12 12:23:44 ''' Plot duty-cycle dependent rheobase acoustic amplitudes of various neurons for a specific US frequency and PRF. ''' import logging import numpy as np import matplotlib.pyplot as plt from argparse import ArgumentParser from PySONIC.utils import logger from PySONIC.neurons import getPointNeuron from PySONIC.plt import plotAstimRheobaseAmps, plotEstimRheobaseAmps # Set logging level logger.setLevel(logging.INFO) # Default parameters defaults = dict( neuron='RS', radii=[32.0], freqs=[500.0] ) def main(): ap = ArgumentParser() # Stimulation parameters ap.add_argument('-n', '--neuron', type=str, default=defaults['neuron'], help='Neuron name (string)') ap.add_argument('-a', '--radii', type=float, nargs='+', default=defaults['radii'], help='Sonophore radius (nm)') ap.add_argument('-f', '--freqs', type=float, nargs='+', default=defaults['freqs'], help='US frequency (kHz)') ap.add_argument('-m', '--mode', type=str, default='US', help='Stimulation modality (US or elec)') # Parse arguments args = {key: value for key, value in vars(ap.parse_args()).items() if value is not None} mode = args['mode'] # Get neurons objects from names neuron_str = args.get('neuron', defaults['neuron']) try: - neuron = getPointNeuron(neuron_str) + pneuron = getPointNeuron(neuron_str) except ValueError as err: logger.error(err) return if mode == 'US': radii = np.array(args['radii']) * 1e-9 # m freqs = np.array(args['freqs']) * 1e3 # Hz - plotAstimRheobaseAmps(neuron, radii, freqs) + plotAstimRheobaseAmps(pneuron, radii, freqs) elif mode == 'elec': - plotEstimRheobaseAmps(neuron) + plotEstimRheobaseAmps(pneuron) else: logger.error('Invalid stimulation type: "%s"', mode) return plt.show() if __name__ == '__main__': main() diff --git a/scripts/run_astim.py b/scripts/run_astim.py index e24d024..2168da6 100644 --- a/scripts/run_astim.py +++ b/scripts/run_astim.py @@ -1,52 +1,52 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-02-13 18:16:09 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-07 14:59:17 +# @Last Modified time: 2019-06-12 12:24:06 ''' Run A-STIM simulations of a specific point-neuron. ''' import matplotlib.pyplot as plt from PySONIC.core import NeuronalBilayerSonophore, Batch from PySONIC.utils import logger from PySONIC.plt import SchemePlot from PySONIC.parsers import AStimParser def main(): # Parse command line arguments parser = AStimParser() args = parser.parse() logger.setLevel(args['loglevel']) # Run A-STIM batch logger.info("Starting A-STIM simulation batch") pkl_filepaths = [] for a in args['radius']: - for neuron in args['neuron']: - nbls = NeuronalBilayerSonophore(a, neuron) + for pneuron in args['neuron']: + nbls = NeuronalBilayerSonophore(a, pneuron) queue = nbls.simQueue( args['freq'], args['amp'], args['tstim'], args['toffset'], args['PRF'], args['DC'], args['method'][0] ) for item in queue: item.insert(0, args['outputdir']) batch = Batch(nbls.runAndSave, queue) pkl_filepaths += batch(mpi=args['mpi'], loglevel=args['loglevel']) # Plot resulting profiles if args['plot'] is not None: SchemePlot(pkl_filepaths, pltscheme=parser.parsePltScheme(args))() plt.show() if __name__ == '__main__': main() diff --git a/scripts/run_estim.py b/scripts/run_estim.py index f05a61b..14306fe 100644 --- a/scripts/run_estim.py +++ b/scripts/run_estim.py @@ -1,46 +1,46 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-08-24 11:55:07 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-07 14:57:30 +# @Last Modified time: 2019-06-12 12:24:26 ''' Run E-STIM simulations of a specific point-neuron. ''' import matplotlib.pyplot as plt from PySONIC.core import Batch from PySONIC.utils import logger from PySONIC.plt import SchemePlot from PySONIC.parsers import EStimParser def main(): # Parse command line arguments parser = EStimParser() args = parser.parse() logger.setLevel(args['loglevel']) # Run E-STIM batch logger.info("Starting E-STIM simulation batch") pkl_filepaths = [] - for neuron in args['neuron']: - queue = neuron.simQueue( + for pneuron in args['neuron']: + queue = pneuron.simQueue( args['amp'], args['tstim'], args['toffset'], args['PRF'], args['DC'], ) for item in queue: item.insert(0, args['outputdir']) - batch = Batch(neuron.runAndSave, queue) + batch = Batch(pneuron.runAndSave, queue) pkl_filepaths += batch(mpi=args['mpi'], loglevel=args['loglevel']) # Plot resulting profiles if args['plot'] is not None: SchemePlot(pkl_filepaths, pltscheme=parser.parsePltScheme(args))() plt.show() if __name__ == '__main__': main() diff --git a/scripts/run_lookups.py b/scripts/run_lookups.py index eaf1b75..8972a3f 100644 --- a/scripts/run_lookups.py +++ b/scripts/run_lookups.py @@ -1,218 +1,218 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-06-02 17:50:10 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-06-07 15:41:10 +# @Last Modified time: 2019-06-12 12:25:32 ''' Create lookup table for specific neuron. ''' import os import itertools import pickle import logging import numpy as np from argparse import ArgumentParser from PySONIC.utils import logger, getNeuronLookupsFile, isIterable from PySONIC.neurons import getPointNeuron from PySONIC.core import NeuronalBilayerSonophore, createQueue, Batch # Default parameters defaults = dict( neuron='RS', radius=np.array([16.0, 32.0, 64.0]), # nm freq=np.array([20., 100., 500., 1e3, 2e3, 3e3, 4e3]), # kHz amp=np.insert(np.logspace(np.log10(0.1), np.log10(600), num=50), 0, 0.0), # kPa ) -def computeAStimLookups(neuron, aref, fref, Aref, Qref, fsref=None, +def computeAStimLookups(pneuron, aref, fref, Aref, Qref, fsref=None, mpi=False, loglevel=logging.INFO): ''' Run simulations of the mechanical system for a multiple combinations of imposed sonophore radius, US frequencies, acoustic amplitudes charge densities and (spatially-averaged) sonophore membrane coverage fractions, compute effective coefficients and store them in a dictionary of n-dimensional arrays. - :param neuron: neuron object + :param pneuron: point-neuron object :param aref: array of sonophore radii (m) :param fref: array of acoustic drive frequencies (Hz) :param Aref: array of acoustic drive amplitudes (Pa) :param Qref: array of membrane charge densities (C/m2) :param fsref: acoustic drive phase (rad) :param mpi: boolean statting wether or not to use multiprocessing :param loglevel: logging level :return: lookups dictionary ''' descs = { 'a': 'sonophore radii', 'f': 'US frequencies', 'A': 'US amplitudes', 'fs': 'sonophore membrane coverage fractions' } # Populate inputs dictionary inputs = { 'a': aref, # nm 'f': fref, # Hz 'A': Aref, # Pa 'Q': Qref # C/m2 } # Add fs to inputs if provided, otherwise add default value (1) err_fs = 'cannot span {} for more than 1 {}' if fsref is not None: for x in ['a', 'f']: assert inputs[x].size == 1, err_fs.format(descs['fs'], descs[x]) inputs['fs'] = fsref else: inputs['fs'] = np.array([1.]) # Check validity of input parameters for key, values in inputs.items(): if not isIterable(values): raise TypeError( 'Invalid {} (must be provided as list or numpy array)'.format(descs[key])) if not all(isinstance(x, float) for x in values): raise TypeError('Invalid {} (must all be float typed)'.format(descs[key])) if len(values) == 0: raise ValueError('Empty {} array'.format(key)) if key in ('a', 'f') and min(values) <= 0: raise ValueError('Invalid {} (must all be strictly positive)'.format(descs[key])) if key in ('A', 'fs') and min(values) < 0: raise ValueError('Invalid {} (must all be positive or null)'.format(descs[key])) # Get dimensions of inputs that have more than one value dims = np.array([x.size for x in inputs.values()]) dims = dims[dims > 1] ncombs = dims.prod() # Create simulation queue per radius queue = createQueue(fref, Aref, Qref) for i in range(len(queue)): queue[i].append(inputs['fs']) # Run simulations and populate outputs (list of lists) - logger.info('Starting simulation batch for %s neuron', neuron.name) + logger.info('Starting simulation batch for %s neuron', pneuron.name) outputs = [] for a in aref: - nbls = NeuronalBilayerSonophore(a, neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) batch = Batch(nbls.computeEffVars, queue) outputs += batch(mpi=mpi, loglevel=loglevel) # Split comp times and effvars from outputs tcomps, effvars = [list(x) for x in zip(*outputs)] effvars = list(itertools.chain.from_iterable(effvars)) # Reshape effvars into nD arrays and add them to lookups dictionary logger.info('Reshaping output into lookup tables') varkeys = list(effvars[0].keys()) nout = len(effvars) assert nout == ncombs, 'number of outputs does not match number of combinations' lookups = {} for key in varkeys: effvar = [effvars[i][key] for i in range(nout)] lookups[key] = np.array(effvar).reshape(dims) # Reshape comp times into nD array (minus fs dimension) if fsref is not None: dims = dims[:-1] tcomps = np.array(tcomps).reshape(dims) # Store inputs, lookup data and comp times in dictionary df = { 'input': inputs, 'lookup': lookups, 'tcomp': tcomps } return df def main(): ap = ArgumentParser() # Runtime options ap.add_argument('--mpi', default=False, action='store_true', help='Use multiprocessing') ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-t', '--test', default=False, action='store_true', help='Test configuration') # Stimulation parameters ap.add_argument('-n', '--neuron', type=str, default=defaults['neuron'], help='Neuron name (string)') ap.add_argument('-a', '--radius', nargs='+', type=float, help='Sonophore radius (nm)') ap.add_argument('-f', '--freq', nargs='+', type=float, help='US frequency (kHz)') ap.add_argument('-A', '--amp', nargs='+', type=float, help='Acoustic pressure amplitude (kPa)') ap.add_argument('-Q', '--charge', nargs='+', type=float, help='Membrane charge density (nC/cm2)') ap.add_argument('--spanFs', default=False, action='store_true', help='Span sonophore coverage fraction') # Parse arguments args = {key: value for key, value in vars(ap.parse_args()).items() if value is not None} loglevel = logging.DEBUG if args['verbose'] is True else logging.INFO logger.setLevel(loglevel) mpi = args['mpi'] neuron_str = args['neuron'] radii = np.array(args.get('radius', defaults['radius'])) * 1e-9 # m freqs = np.array(args.get('freq', defaults['freq'])) * 1e3 # Hz amps = np.array(args.get('amp', defaults['amp'])) * 1e3 # Pa # Check neuron name validity try: - neuron = getPointNeuron(neuron_str) + pneuron = getPointNeuron(neuron_str) except ValueError as err: logger.error(err) return # Determine charge vector if 'charge' in args: charges = np.array(args['charge']) * 1e-5 # C/m2 else: - charges = np.arange(neuron.Qbounds()[0], neuron.Qbounds()[1] + 1e-5, 1e-5) # C/m2 + charges = np.arange(pneuron.Qbounds()[0], pneuron.Qbounds()[1] + 1e-5, 1e-5) # C/m2 # Determine fs vector fs = None if args['spanFs']: fs = np.linspace(0, 100, 101) * 1e-2 # (-) # Determine output filename lookup_path = { - True: getNeuronLookupsFile(neuron.name), - False: getNeuronLookupsFile(neuron.name, a=radii[0], Fdrive=freqs[0], fs=True) + True: getNeuronLookupsFile(pneuron.name), + False: getNeuronLookupsFile(pneuron.name, a=radii[0], Fdrive=freqs[0], fs=True) }[fs is None] # Combine inputs into single list inputs = [radii, freqs, amps, charges, fs] # Adapt inputs and output filename if test case if args['test']: for i, x in enumerate(inputs): if x is not None and x.size > 1: inputs[i] = np.array([x.min(), x.max()]) lookup_path = '{}_test{}'.format(*os.path.splitext(lookup_path)) # Check if lookup file already exists if os.path.isfile(lookup_path): logger.warning('"%s" file already exists and will be overwritten. ' + 'Continue? (y/n)', lookup_path) user_str = input() if user_str not in ['y', 'Y']: - logger.error('%s Lookup creation canceled', neuron.name) + logger.error('%s Lookup creation canceled', pneuron.name) return # Compute lookups - df = computeAStimLookups(neuron, *inputs, mpi=mpi, loglevel=loglevel) + df = computeAStimLookups(pneuron, *inputs, mpi=mpi, loglevel=loglevel) # Save dictionary in lookup file - logger.info('Saving %s neuron lookup table in file: "%s"', neuron.name, lookup_path) + logger.info('Saving %s neuron lookup table in file: "%s"', pneuron.name, lookup_path) with open(lookup_path, 'wb') as fh: pickle.dump(df, fh) if __name__ == '__main__': main() diff --git a/tests/test_basic.py b/tests/test_basic.py index e2aa351..2649800 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -1,214 +1,214 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-06-14 18:37:45 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-05-31 14:39:42 +# @Last Modified time: 2019-06-12 12:53:09 ''' Test the basic functionalities of the package. ''' import os import sys import logging import time import cProfile import pstats from argparse import ArgumentParser from PySONIC.core import BilayerSonophore, NeuronalBilayerSonophore from PySONIC.utils import logger -from PySONIC.neurons import * +from PySONIC.neurons import getPointNeuron def execute(func_str, globals, locals, is_profiled): ''' Execute function with or without profiling. ''' if is_profiled: pfile = 'tmp.stats' cProfile.runctx(func_str, globals, locals, pfile) stats = pstats.Stats(pfile) os.remove(pfile) stats.strip_dirs() stats.sort_stats('cumulative') stats.print_stats() else: eval(func_str, globals, locals) def test_MECH(is_profiled=False): ''' Mechanical simulation. ''' logger.info('Test: running MECH simulation') # Create BLS instance a = 32e-9 # m Qm0 = -80e-5 # membrane resting charge density (C/m2) Cm0 = 1e-2 # membrane resting capacitance (F/m2) bls = BilayerSonophore(a, Cm0, Qm0) # Stimulation parameters Fdrive = 350e3 # Hz Adrive = 100e3 # Pa Qm = 50e-5 # C/m2 # Run simulation execute('bls.simulate(Fdrive, Adrive, Qm)', globals(), locals(), is_profiled) def test_ESTIM(is_profiled=False): ''' Electrical simulation ''' logger.info('Test: running ESTIM simulation') # Initialize neuron - neuron = CorticalRS() + pneuron = getPointNeuron('RS') # Stimulation parameters Astim = 10.0 # mA/m2 tstim = 100e-3 # s toffset = 50e-3 # s # Run simulation - execute('neuron.simulate(Astim, tstim, toffset)', globals(), locals(), is_profiled) + execute('pneuron.simulate(Astim, tstim, toffset)', globals(), locals(), is_profiled) def test_ASTIM_sonic(is_profiled=False): ''' Effective acoustic simulation ''' logger.info('Test: ASTIM sonic simulation') # Default parameters a = 32e-9 # m - neuron = CorticalRS() - nbls = NeuronalBilayerSonophore(a, neuron) + pneuron = getPointNeuron('RS') + nbls = NeuronalBilayerSonophore(a, pneuron) Fdrive = 500e3 # Hz Adrive = 100e3 # Pa tstim = 50e-3 # s toffset = 10e-3 # s # test error 1: sonophore radius outside of lookup range try: - nbls = NeuronalBilayerSonophore(100e-9, neuron) + nbls = NeuronalBilayerSonophore(100e-9, pneuron) nbls.simulate(Fdrive, Adrive, tstim, toffset, method='sonic') except ValueError as err: logger.debug('Out of range radius: OK') # test error 2: frequency outside of lookups range try: - nbls = NeuronalBilayerSonophore(a, neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) nbls.simulate(10e3, Adrive, tstim, toffset, method='sonic') except ValueError as err: logger.debug('Out of range frequency: OK') # test error 3: amplitude outside of lookups range try: - nbls = NeuronalBilayerSonophore(a, neuron) + nbls = NeuronalBilayerSonophore(a, pneuron) nbls.simulate(Fdrive, 1e6, tstim, toffset, method='sonic') except ValueError as err: logger.debug('Out of range amplitude: OK') # Run simulation execute("nbls.simulate(Fdrive, Adrive, tstim, toffset, method='sonic')", globals(), locals(), is_profiled) def test_ASTIM_full(is_profiled=False): ''' Classic acoustic simulation ''' logger.info('Test: running ASTIM classic simulation') # Initialize sonic neuron a = 32e-9 # m - neuron = CorticalRS() - nbls = NeuronalBilayerSonophore(a, neuron) + pneuron = getPointNeuron('RS') + nbls = NeuronalBilayerSonophore(a, pneuron) # Stimulation parameters Fdrive = 500e3 # Hz Adrive = 100e3 # Pa tstim = 1e-6 # s toffset = 1e-6 # s # Run simulation execute("nbls.simulate(Fdrive, Adrive, tstim, toffset, method='full')", globals(), locals(), is_profiled) def test_ASTIM_hybrid(is_profiled=False): ''' Hybrid acoustic simulation ''' logger.info('Test: running ASTIM hybrid simulation') # Initialize sonic neuron a = 32e-9 # m - neuron = CorticalRS() - nbls = NeuronalBilayerSonophore(a, neuron) + pneuron = getPointNeuron('RS') + nbls = NeuronalBilayerSonophore(a, pneuron) # Stimulation parameters Fdrive = 350e3 # Hz Adrive = 100e3 # Pa tstim = 1e-3 # s toffset = 1e-3 # s # Run simulation execute("nbls.simulate(Fdrive, Adrive, tstim, toffset, method='hybrid')", globals(), locals(), is_profiled) def test_all(): t0 = time.time() test_MECH() test_ESTIM() test_ASTIM_sonic() test_ASTIM_full() test_ASTIM_hybrid() tcomp = time.time() - t0 logger.info('All tests completed in %.0f s', tcomp) def main(): # Define valid test sets valid_testsets = [ 'MECH', 'ESTIM', 'ASTIM_sonic', 'ASTIM_full', 'ASTIM_hybrid', 'all' ] # Define argument parser ap = ArgumentParser() ap.add_argument('-t', '--testset', type=str, default='all', choices=valid_testsets, help='Specific test set') ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') ap.add_argument('-p', '--profile', default=False, action='store_true', help='Profile test set') # Parse arguments args = ap.parse_args() if args.verbose: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) if args.profile and args.testset == 'all': logger.error('profiling can only be run on individual tests') sys.exit(2) # Run test if args.testset == 'all': test_all() else: possibles = globals().copy() possibles.update(locals()) method = possibles.get('test_{}'.format(args.testset)) method(args.profile) sys.exit(0) if __name__ == '__main__': main() diff --git a/tests/test_values.py b/tests/test_values.py index 4ecae27..7250556 100644 --- a/tests/test_values.py +++ b/tests/test_values.py @@ -1,214 +1,214 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Date: 2017-06-14 18:37:45 # @Email: theo.lemaire@epfl.ch # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-05-31 12:31:21 +# @Last Modified time: 2019-06-12 12:27:41 ''' Run functionalities of the package and test validity of outputs. ''' import sys import logging from argparse import ArgumentParser import numpy as np from PySONIC.utils import logger from PySONIC.core import BilayerSonophore, NeuronalBilayerSonophore from PySONIC.neurons import getNeuronsDict from PySONIC.constants import * # Set logging level logger.setLevel(logging.INFO) def test_MECH(): ''' Maximal negative and positive deflections of the BLS structure for a specific sonophore size, resting membrane properties and stimulation parameters. ''' logger.info('Starting test: Mechanical simulation') # Create BLS instance a = 32e-9 # m Cm0 = 1e-2 # membrane resting capacitance (F/m2) Qm0 = -80e-5 # membrane resting charge density (C/m2) bls = BilayerSonophore(a, Cm0, Qm0) # Run mechanical simulation Fdrive = 350e3 # Hz Adrive = 100e3 # Pa Qm = 50e-5 # C/m2 data, _ = bls.simulate(Fdrive, Adrive, Qm) # Check validity of deflection extrema Zlast = data.loc[-NPC_FULL:, 'Z'].values Zmin, Zmax = (Zlast.min(), Zlast.max()) logger.info('Zmin = %.2f nm, Zmax = %.2f nm', Zmin * 1e9, Zmax * 1e9) Zmin_ref, Zmax_ref = (-0.116e-9, 5.741e-9) assert np.abs(Zmin - Zmin_ref) < 1e-12, 'Unexpected sonophore compression amplitude' assert np.abs(Zmax - Zmax_ref) < 1e-12, 'Unexpected sonophore expansion amplitude' logger.info('Passed test: Mechanical simulation') def test_resting_potential(): ''' Neurons membrane potential in free conditions should stabilize to their specified resting potential value. ''' conv_err_msg = ('{} neuron membrane potential in free conditions does not converge to ' 'stable value (gap after 20s: {:.2e} mV)') value_err_msg = ('{} neuron steady-state membrane potential in free conditions differs ' 'significantly from specified resting potential (gap = {:.2f} mV)') logger.info('Starting test: neurons resting potential') for Neuron in getNeuronsDict().values(): # Simulate each neuron in free conditions - neuron = Neuron() + pneuron = Neuron() - logger.info('%s neuron simulation in free conditions', neuron.name) + logger.info('%s neuron simulation in free conditions', pneuron.name) - data, _ = neuron.simulate(Astim=0.0, tstim=20.0, toffset=0.0) + data, _ = pneuron.simulate(Astim=0.0, tstim=20.0, toffset=0.0) Vm_free = data['Vm'].values # Check membrane potential convergence Vm_free_last, Vm_free_beforelast = (Vm_free[-1], Vm_free[-2]) Vm_free_conv = Vm_free_last - Vm_free_beforelast - assert np.abs(Vm_free_conv) < 1e-5, conv_err_msg.format(neuron.name, Vm_free_conv) + assert np.abs(Vm_free_conv) < 1e-5, conv_err_msg.format(pneuron.name, Vm_free_conv) # Check membrane potential convergence to resting potential - Vm_free_diff = Vm_free_last - neuron.Vm0 - assert np.abs(Vm_free_diff) < 0.1, value_err_msg.format(neuron.name, Vm_free_diff) + Vm_free_diff = Vm_free_last - pneuron.Vm0 + assert np.abs(Vm_free_diff) < 0.1, value_err_msg.format(pneuron.name, Vm_free_diff) logger.info('Passed test: neurons resting potential') def test_ESTIM(): ''' Threshold E-STIM amplitude and needed to obtain an action potential and response latency should match reference values. ''' Athr_err_msg = ('{} neuron threshold amplitude for excitation does not match reference value' '(gap = {:.2f} mA/m2)') latency_err_msg = ('{} neuron latency for excitation at threshold amplitude does not match ' 'reference value (gap = {:.2f} ms)') logger.info('Starting test: E-STIM titration') # Stimulation parameters tstim = 100e-3 # s toffset = 50e-3 # s # Reference values Athr_refs = {'FS': 6.91, 'LTS': 1.54, 'RS': 5.03, 'RE': 3.61, 'TC': 4.05, 'LeechT': 4.66, 'LeechP': 13.72, 'IB': 3.08} for Neuron in getNeuronsDict().values(): # Perform titration for each neuron - neuron = Neuron() - logger.info('%s neuron titration', neuron.name) - Athr = neuron.titrate(tstim, toffset) + pneuron = Neuron() + logger.info('%s neuron titration', pneuron.name) + Athr = pneuron.titrate(tstim, toffset) # Check threshold amplitude - Athr_diff = Athr - Athr_refs[neuron.name] - assert np.abs(Athr_diff) < 0.1, Athr_err_msg.format(neuron.name, Athr_diff) + Athr_diff = Athr - Athr_refs[pneuron.name] + assert np.abs(Athr_diff) < 0.1, Athr_err_msg.format(pneuron.name, Athr_diff) logger.info('Passed test: E-STIM titration') def test_ASTIM(): ''' Threshold A-STIM amplitude and needed to obtain an action potential and response latency should match reference values. ''' Athr_err_msg = ('{} neuron threshold amplitude for excitation does not match reference value' '(gap = {:.2f} kPa)') latency_err_msg = ('{} neuron latency for excitation at threshold amplitude does not match ' 'reference value (gap = {:.2f} ms)') logger.info('Starting test: A-STIM titration') # Sonophore radius a = 32e-9 # m # Stimulation parameters Fdrive = 350e3 # Hz tstim = 50e-3 # s toffset = 30e-3 # s # Reference values Athr_refs = {'FS': 38.96e3, 'LTS': 24.90e3, 'RS': 50.90e3, 'RE': 46.36e3, 'TC': 23.14e3, 'LeechT': 21.02e3, 'LeechP': 22.23e3, 'IB': 91.26e3} # Titration for each neuron for Neuron in getNeuronsDict().values(): # Initialize sonic neuron - neuron = Neuron() - nbls = NeuronalBilayerSonophore(a, neuron) - logger.info('%s neuron titration', neuron.name) + pneuron = Neuron() + nbls = NeuronalBilayerSonophore(a, pneuron) + logger.info('%s neuron titration', pneuron.name) # Perform titration Athr = nbls.titrate(Fdrive, tstim, toffset, method='sonic') # Check threshold amplitude - Athr_diff = (Athr - Athr_refs[neuron.name]) * 1e-3 - assert np.abs(Athr_diff) < 0.1, Athr_err_msg.format(neuron.name, Athr_diff) + Athr_diff = (Athr - Athr_refs[pneuron.name]) * 1e-3 + assert np.abs(Athr_diff) < 0.1, Athr_err_msg.format(pneuron.name, Athr_diff) logger.info('Passed test: A-STIM titration') def test_all(): logger.info('Starting tests') test_MECH() test_resting_potential() test_ESTIM() test_ASTIM() logger.info('All tests successfully passed') def main(): # Define valid test sets valid_testsets = [ 'MECH', 'resting_potential', 'ESTIM', 'ASTIM', 'all' ] # Define argument parser ap = ArgumentParser() ap.add_argument('-t', '--testset', type=str, default='all', choices=valid_testsets, help='Specific test set') ap.add_argument('-v', '--verbose', default=False, action='store_true', help='Increase verbosity') # Parse arguments args = ap.parse_args() if args.verbose: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) # Run test try: if args.testset == 'all': test_all() else: possibles = globals().copy() possibles.update(locals()) method = possibles.get('test_{}'.format(args.testset)) method() sys.exit(0) except AssertionError as e: logger.error(e) sys.exit(1) if __name__ == '__main__': main()