MultiScale Optimized Neuronal Intramembrane Cavitation (SONIC) model (Lemaire et al. 2019)

 Download zip file 
Help downloading and running models
Accession:264539
Jupyter Notebooks to reproduce data and figures of the SONIC paper (Lemaire et al. 2019) describing a computationally efficient variant to simulate ultrasound neuromodulation by intramembrane cavitation in cortical neurons.
Reference:
1 . Lemaire T, Neufeld E, Kuster N, Micera S (2019) Understanding ultrasound neuromodulation using a computationally efficient and interpretable model of intramembrane cavitation. J Neural Eng 16:046007 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism:
Cell Type(s): Subthalamic nucleus principal GABA cell; Neocortex spiking regular (RS) neuron; Neocortex fast spiking (FS) interneuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: Python; NEURON;
Model Concept(s): Action Potentials;
Implementer(s):
Search NeuronDB for information about:  Subthalamic nucleus principal GABA cell;
# -*- coding: utf-8 -*-
# @Author: Theo Lemaire
# @Email: theo.lemaire@epfl.ch
# @Date:   2018-10-01 20:45:29
# @Last Modified by:   Theo Lemaire
# @Last Modified time: 2020-04-29 13:48:58

''' Utilities used across notebooks. '''

import os
import matplotlib
from PySONIC.utils import si_format
from root import dataroot

# Matplotlib parameters
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42
matplotlib.rcParams['font.family'] = 'arial'


def subdirectory(name):
    ''' Return (and create if needed) a data sub-directory. '''
    if dataroot is None:
        raise ValueError('You must specify the data root directory')
    if not os.path.isdir(dataroot):
        raise ValueError('You must create the data root directory prior to running the code')
    subdir = os.path.join(dataroot, name)
    if not os.path.isdir(subdir):
        os.mkdir(subdir)
    return subdir


def codes(a, pneuron, Fdrive, PRF, tstim):
    ''' Return codes dictionary for a combination of parameters. '''
    return [
        pneuron.name,
        f'{si_format(a, space="")}m',
        f'{si_format(Fdrive, space="")}Hz',
        f'PRF{si_format(PRF, space="")}Hz',
        f'{si_format(tstim, space="")}s'
    ]


def saveFigsAsPDF(figs, figindex):
    ''' Save figures as PDFs with a specific figure index. '''
    figdir = subdirectory('figs')
    figbase = f'fig{figindex:02}'
    for fname, fig in figs.items():
        fig.savefig(os.path.join(figdir, f'{figbase}{fname}.pdf'), transparent=True)


def subthr(x):
    ''' Sub-threshold acoustic pressure (Pa). '''
    return x - 5e3


def suprathr(x):
    ''' Supra-threshold acoustic pressure (Pa). '''
    return x + 20e3

Loading data, please wait...