Getting Started#

To build our first model, we start by creating a definition consisting of soma and basal_dendrite.

We’ll begin by defining hh and pas in the soma, and pas in the dendrites:

from arborize import define_model

definition = define_model({
  "cable_types": {
    "soma": {
      "cable": {
        "Ra": 100,
        "cm": 1,
      },
      "mechanisms": {
        "hh": {
          "gnabar": 0.12,
          "gkbar": 0.036,
          "gl": 0.0003,
          "el": -54.3,
        },
      },
    },
    "basal_dendrite": {
      "cable": {
        "Ra": 100,
        "cm": 1,
      },
      "mechanisms": {
        "pas": {
          "g": 0.001,
          "e": -65,
        },
      },
    },
  },
})

Next up we need to get a schematic, download this morphology from NeuroMorpho as morpho.swc, then we can create a file schematic from it:

from arborize import file_schematic

schematic = file_schematic("morpho.swc", definition)

Hint

Arborize uses MorphIO to load schematics from file. The points are labelled with the SectionType enum.

We’re ready to build a cell:

from arborize import neuron_build

cell = neuron_build(schematic)

Hint

Arborize’s NEURON builder uses Patch to construct NEURON objects. It provides many convenience functions.

Let’s record the soma and plot the results:

from patch import p
import plotly.express as px

r = cell.soma[0].record()
cell.basal_dendrite[0].iclamp(delay=5, duration=1, amplitude=0.1, x=1)
t = p.time
p.celsius = 6.3
p.run(100)
px.line(x=list(r), y=list(t)).show()

To create variants of your cell model, pass the template definition to define_model:

variant = define_model(definition, {
  "cable_types": {
    "soma": {
      "mechanisms": {
        "hh": {
          "gkbar": 0.172
        }
      }
    }
  }
})

We can now plot the difference between the 2 cell types:

from patch import p
import plotly.express as px

wildtype_schematic = file_schematic("morpho.swc", definition)
wildtype_cell = neuron_build(schematic)
variant_schematic = file_schematic("morpho.swc", variant)
variant_cell = neuron_build(variant_schematic)
wildtype_cell.basal_dendrite[0].iclamp(delay=5, duration=1, amplitude=0.1, x=1)
variant_cell.basal_dendrite[0].iclamp(delay=5, duration=1, amplitude=0.1, x=1)
r_wt = wildtype_cell.soma[0].record()
r_var = variant_cell.soma[0].record()
t = p.time
p.celsius = 6.3
p.run(100)
px.line(x=list(r), y=list(t)).show()