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

 Download zip file 
Help downloading and running models
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.
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;
Gap Junctions:
Simulation Environment: Python; NEURON;
Model Concept(s): Action Potentials;
Search NeuronDB for information about:  Subthalamic nucleus principal GABA cell;
# -*- coding: utf-8 -*-
# @Author: Theo Lemaire
# @Email:
# @Date:   2020-04-28 21:35:27
# @Last Modified by:   Theo Lemaire
# @Last Modified time: 2020-05-02 14:28:47

''' Run all the notebooks to produce the data and figures. '''

import logging
import re
import glob
from argparse import ArgumentParser
from PySONIC.utils import logger

from notebook_runner import runNotebook

# Set logging level

# Gather all the notebooks in the directory
notebooks = sorted(list(glob.glob('*.ipynb')))

# Associate each notebook for a figure index
notebook_pattern = re.compile(f'^figure_([0-9]+).ipynb$')
notebooks = {int(notebook_pattern.match(n).group(1)): n for n in notebooks}
valid_indexes = list(notebooks.keys())

def main():
    # Parse command line arguments
    ap = ArgumentParser()
        '-f', '--figure', type=str, nargs='+', default='all', help='Figure index')
        '-s', '--save', default=False, action='store_true', help='Save in-place')
    args = ap.parse_args()
    figindexes = args.figure
    save =
        # Check validity of provided figure indexes
        if figindexes == 'all' or figindexes == ['all']:
            figindexes = valid_indexes
            if 'all' in figindexes:
                raise ValueError('"all" cannot be provided with other figure indexes.')
            figindexes = sorted([int(s) for s in figindexes])
            for i in figindexes:
                if i not in valid_indexes:
                    raise ValueError(
                        f'{i} is not a valid figure index. Options are {valid_indexes}.')
    except Exception as e:

    # Construct list of selected notebooks and execute them sequentially'selected figures: {figindexes}')
    selected_notebooks = [notebooks[i] for i in figindexes]
    for notebook in selected_notebooks:'running {notebook} notebook')
        runNotebook(notebook, save=save)

if __name__ == '__main__':

Loading data, please wait...