pyneuroml.neuron package#

A package of utilities for exporting NEURON models to NeuroML 2 & for analysing/comparing NEURON models to NeuroML versions

Will use some some utilities from OpenSourceBrain/NEURONShowcase

pyneuroml.neuron.allca() None#

Prints Ca conc of all compartments (segments).

pyneuroml.neuron.allcells(var: str) None#

Prints information on all cells stored in the variable var.

Parameters

var (str) – name of NEURON variable holding cells to get information for

pyneuroml.neuron.allsyns(var: str) None#

Prints information on network connections for all cells stored in the variable var

Parameters

var (str) – name of NEURON variable holding cells to get information for

pyneuroml.neuron.allv() None#

Prints voltage of all compartments (segments).

pyneuroml.neuron.areainfo() None#

Provide information on the area of the cell.

Iterates over all sections of the current cell providing:

  • x, y, z, diameter information for each segment in the section

  • total area of the section

  • summary metrics for the whole cell

pyneuroml.neuron.cellinfo(doprint: str = '') dict#

Provide summary information on the current cell.

Returns a dictionary, and also prints out the information in yaml or json.

Parameters

doprint (str) – toggle printing to std output and its format. Use “json” or “yaml” to print in the required format, any other value to disable printing.

Returns

cellinfo dict

pyneuroml.neuron.cellinfohoc() None#

Provide information on current cell.

Uses the hoc utility function. Please prefer the cellinfo function instead, which is written in pure Python and provides the output in JSON which makes it easier to compare information from different cells.

pyneuroml.neuron.export_to_neuroml1(hoc_file, nml1_file_name, level=1, validate=True)#

Export to NeuroML1.

NOTE: NeuroML1 is deprecated and supporting functions will be removed in a future release. Please use NeuroML2.

pyneuroml.neuron.export_to_neuroml2(hoc_or_python_file: str, nml2_file_name: str, includeBiophysicalProperties: bool = True, separateCellFiles: bool = False, known_rev_potentials: dict = {}, validate: bool = True) None#

Export NEURON hoc morphology files to NeuroML2 format.

Please note that the conversion of NEURON Python scripts is not yet implemented.

Parameters
  • hoc_or_python_file (str) – NEURON hoc or Python file to convert

  • nml2_file_name (str) – name of NeuroML2 file to save to

  • includeBiophysicalProperties (bool) – whether or not to include biophysical properties in the conversion

  • separateCellFiles – whether cells should be exported to individual files

  • known_rev_potentials (dict with ions as keys, and their reveral potentials) – known reversal potentials

  • validate (bool) – whether the generated files should be validated

pyneuroml.neuron.get_seg_midpoint(seg: int, nseg: int) float#

Get mid point of segment

The total section is from 0 -> 1.

Parameters
  • seg (int) – segment to get mid point of

  • nseg (int) – total number of segments

Returns

location of mid point of segment in (0, 1)

pyneuroml.neuron.get_utils_hoc() Path#

Get full path of utils.hoc file

Returns

pathlib.Path object for utils.hoc file

pyneuroml.neuron.getinfo(seclist: list, doprint: str = '', listall: bool = False)#

Provide detailed information on the provided section list.

Returns a dictionary, and also prints out the information in yaml or json.

Parameters
  • doprint (str) – toggle printing to std output and its format. Use “json” or “yaml” to print in the required format, any other value to disable printing.

  • listall (bool) – also list mechs that are not present on any sections

Returns

dict

pyneuroml.neuron.load_hoc_or_python_file(hoc_or_python_file: str) bool#

Load a NEURON hoc file or Python script.

Note: loading Python scripts is not yet supported.

Parameters

hoc_or_python_file (str) – NEURON hoc or Python file to convert

Returns

True if file was loaded, False if an error occurred

pyneuroml.neuron.morphinfo(section: Optional[str] = None, doprint: str = '') dict#

Provides morphology of the provided section.

Returns a dictionary, and also prints out the information in yaml or json.

Parameters
  • section (str or None) – section name, current section if None (default)

  • doprint (str) – toggle printing to std output and its format. Use “json” or “yaml” to print in the required format, any other value to disable printing.

Returns

morphology information dict

pyneuroml.neuron.morphinfohoc(section: Optional[str] = None) None#

Provides information on the morphology of the currently accessed section.

Uses the hoc utility function. Please prefer the morph function instead, which is written in pure Python and provides the output in JSON which makes it easier to compare information from different cells.

Parameters

section (str or None) – section name, current section if None (default)

pyneuroml.neuron.replace_brackets(astring: str) str#

Replaces the [] in strings with _. if ] is the last char, just skips it.

Parameters

astring (str) – id to convert

Returns

converted id

pyneuroml.neuron.rm_NML_str(astring: str) str#

Replaces the _NML2 suffix from names to ease comparison

Parameters

astring (str) – string to modify

Returns

new string

pyneuroml.neuron.secinfo(section: str = '', doprint: str = 'json')#

Print summary information on provided section, like an expanded psection():

  • number of segments in the section,

  • voltage of the section

  • total area

  • total ri

  • information in each segment - start - end - area - ri

Returns a dictionary, and also prints out the information in yaml or json.

Parameters
  • section (str) – section to investigate, or current section if “”

  • doprint (str) – toggle printing to std output and its format. Use “json” or “yaml” to print in the required format, any other value to disable printing.

Returns

section information dict

pyneuroml.neuron.secinfohoc(section: str = '') None#

Provide information on current section, like an expanded psection(). Uses the hoc utility function. Please prefer the cellinfo function instead, which is written in pure Python and provides the output in JSON which makes it easier to compare information from different cells.

pyneuroml.neuron.analysis module#