# Morphology class¶

(Shortest import: from brian2 import Morphology)

class brian2.spatialneuron.morphology.Morphology(**kwds)[source]

Bases: object

Neuronal morphology (tree structure).

The data structure is a tree where each node is an un-branched section consisting of a number of connected compartments, each one defined by its geometrical properties (length, area, diameter, position).

Notes

You cannot create objects of this class, create a Soma, a Section, or a Cylinder instead.

Attributes

 area The membrane surface area of each compartment in this section. children The children (as a Children object) of this section. coordinates Array with all coordinates at the start- and end-points of each compartment in this section. coordinates_ Array with all coordinates (as unitless floating point numbers) at the start- and end-points of each compartment in this section. diameter The diameter at the middle of each compartment in this section. distance The total distance between the midpoint of each compartment and the root of the morphology. end_distance The distance to the root of the morphology at the end of this section. end_x The x coordinate at the end of each compartment. end_x_ The x coordinate (as a unitless floating point number) at the end of each compartment. end_y The y coordinate at the end of each compartment. end_y_ The y coordinate (as a unitless floating point number) at the end of each compartment. end_z The z coordinate at the end of each compartment. end_z_ The z coordinate (as a unitless floating point number) at the end of each compartment. length The length of each compartment in this section. n The number of compartments in this section. parent The parent section of this section. r_length_1 The geometry-dependent term to calculate the conductance between the start and the midpoint of each compartment. r_length_2 The geometry-dependent term to calculate the conductance between the midpoint and the end of each compartment. start_x The x coordinate at the beginning of each compartment. start_x_ The x coordinate (as a unitless floating point number) at the beginning of each compartment. start_y The y coordinate at the beginning of each compartment. start_y_ The y coordinate (as a unitless floating point number) at the beginning of each compartment. start_z The z coordinate at the beginning of each compartment. start_z_ The z coordinate (as a unitless floating point number) at the beginning of each compartment. total_compartments The total number of compartments in this subtree (i.e. total_sections The total number of sections in this subtree. volume The volume of each compartment in this section. x The x coordinate at the midpoint of each compartment. x_ The x coordinate (as a unitless floating point number) at the midpoint of each compartment. y The y coordinate at the midpoint of each compartment. y_ The y coordinate (as a unitless floating point number) at the midpoint of each compartment. z The y coordinate at the midpoint of each compartment. z_ The z coordinate (as a unitless floating point number) at the midpoint of each compartment.

Methods

 Create a copy of the current section (attributes of this section only, not re-creating the parent/children relation) from_file(filename[, spherical_soma]) Convencience method to load a morphology from a given file. from_points(points[, spherical_soma]) Create a morphology from a sequence of points (similar to the SWC format, see Morphology.from_swc_file). from_swc_file(filename[, spherical_soma]) Load a morphology from a SWC file. generate_coordinates([section_randomness, ...]) Create a new Morphology, with coordinates filled in place where the previous morphology did not have any. Return a representation of the topology

Details

area

The membrane surface area of each compartment in this section.

children

The children (as a Children object) of this section.

coordinates

Array with all coordinates at the start- and end-points of each compartment in this section. The array has size $$(n+1) \times 3$$, where $$n$$ is the number of compartments in this section. Each row is one point (start point of first compartment, end point of first compartment, end point of second compartment, …), with the columns being the x, y, and z coordinates. Returns None for morphologies without coordinates.

coordinates_

Array with all coordinates (as unitless floating point numbers) at the start- and end-points of each compartment in this section. The array has size $$(n+1) \times 3$$, where $$n$$ is the number of compartments in this section. Each row is one point (start point of first compartment, end point of first compartment, end point of second compartment, …), with the columns being the x, y, and z coordinates. Returns None for morphologies without coordinates.

diameter

The diameter at the middle of each compartment in this section.

distance

The total distance between the midpoint of each compartment and the root of the morphology.

end_distance

The distance to the root of the morphology at the end of this section.

end_x

The x coordinate at the end of each compartment. Returns None for morphologies without coordinates.

end_x_

The x coordinate (as a unitless floating point number) at the end of each compartment. Returns None for morphologies without coordinates.

end_y

The y coordinate at the end of each compartment. Returns None for morphologies without coordinates.

end_y_

The y coordinate (as a unitless floating point number) at the end of each compartment. Returns None for morphologies without coordinates.

end_z

The z coordinate at the end of each compartment. Returns None for morphologies without coordinates.

end_z_

The z coordinate (as a unitless floating point number) at the end of each compartment. Returns None for morphologies without coordinates.

length

The length of each compartment in this section.

n

The number of compartments in this section.

parent

The parent section of this section.

r_length_1

The geometry-dependent term to calculate the conductance between the start and the midpoint of each compartment. Dividing this value by the Intracellular resistivity gives the conductance.

r_length_2

The geometry-dependent term to calculate the conductance between the midpoint and the end of each compartment. Dividing this value by the Intracellular resistivity gives the conductance.

start_x

The x coordinate at the beginning of each compartment. Returns None for morphologies without coordinates.

start_x_

The x coordinate (as a unitless floating point number) at the beginning of each compartment. Returns None for morphologies without coordinates.

start_y

The y coordinate at the beginning of each compartment. Returns None for morphologies without coordinates.

start_y_

The y coordinate (as a unitless floating point number) at the beginning of each compartment. Returns None for morphologies without coordinates.

start_z

The z coordinate at the beginning of each compartment. Returns None for morphologies without coordinates.

start_z_

The z coordinate (as a unitless floating point number) at the beginning of each compartment. Returns None for morphologies without coordinates.

total_compartments

The total number of compartments in this subtree (i.e. the number of compartments in this section plus all the compartments in the sections deeper in the tree).

total_sections

The total number of sections in this subtree.

volume

The volume of each compartment in this section.

x

The x coordinate at the midpoint of each compartment. Returns None for morphologies without coordinates.

x_

The x coordinate (as a unitless floating point number) at the midpoint of each compartment. Returns None for morphologies without coordinates.

y

The y coordinate at the midpoint of each compartment. Returns None for morphologies without coordinates.

y_

The y coordinate (as a unitless floating point number) at the midpoint of each compartment. Returns None for morphologies without coordinates.

z

The y coordinate at the midpoint of each compartment. Returns None for morphologies without coordinates.

z_

The z coordinate (as a unitless floating point number) at the midpoint of each compartment. Returns None for morphologies without coordinates.

abstract copy_section()[source]

Create a copy of the current section (attributes of this section only, not re-creating the parent/children relation)

Returns

copy : Morphology

A copy of this section (without the links to the parent/children)

static from_file(filename, spherical_soma=True)[source]

Convencience method to load a morphology from a given file. At the moment, only SWC files are supported, calling this function is therefore equivalent to calling Morphology.from_swc_file directly.

Parameters

filename : str

The name of a file storing a morphology.

spherical_soma : bool, optional

Whether to model the soma as a sphere.

Returns :

——- :

morphology : Morphology

The morphology stored in the given file.

static from_points(points, spherical_soma=True)[source]

Create a morphology from a sequence of points (similar to the SWC format, see Morphology.from_swc_file). Each point has to be a 7-tuple: (index, name, x, y, z, diameter, parent)

Note that the values should not use units, but are instead all taken to be in micrometers.

Parameters

points : sequence of 7-tuples

The points of the morphology.

spherical_soma : bool, optional

Whether to model a soma as a sphere.

Returns :

——- :

morphology : Morphology

Notes

This format closely follows the SWC format (see Morphology.from_swc_file) with two differences: the type should be a string (e.g. 'soma') instead of an integer and the 6-th element should be the diameter and not the radius.

static from_swc_file(filename, spherical_soma=True)[source]

Load a morphology from a SWC file. A large database of morphologies in this format can be found at http://neuromorpho.org

The format consists of an optional header of lines starting with # (ignored), followed by a sequence of points, each described in a line following the format:

index type x y z radius parent


index is an integer label (starting at 1) that identifies the current point and increases by one each line. type is an integer representing the type of the neural segment. The only type that changes the interpretation by Brian is the type 1 which signals a soma. Types 2 (axon), 3 (dendrite), and 4 (apical dendrite) are used to give corresponding names to the respective sections. All other types are ignored. x, y, and z are the cartesian coordinates at each point and r is its radius. parent refers to the index of the parent point or is -1 for the root point.

Parameters

filename : str

The name of the SWC file.

spherical_soma : bool, optional

Whether to model the soma as a sphere.

Returns

morpho : Morphology

The morphology stored in the given file.

generate_coordinates(section_randomness=0.0, compartment_randomness=0.0, overwrite_existing=False)[source]

Create a new Morphology, with coordinates filled in place where the previous morphology did not have any. This is mostly useful for plotting a morphology, it does not affect its electrical properties.

Parameters

section_randomness : float, optional

The randomness when deciding the direction vector for each new section. The given number is the $$\beta$$ parameter of an exponential distribution (in degrees) which will be used to determine the deviation from the direction of the parent section. If the given value equals 0 (the default), then a deterministic algorithm will be used instead.

compartment_randomness : float, optional

The randomness when deciding the direction vector for each compartment within a section. The given number is the $$\beta$$ parameter of an exponential distribution (in degrees) which will be used to determine the deviation from the main direction of the current section. If the given value equals 0 (the default), then all compartments will be along a straight line.

overwrite_existing : bool, optional

Whether to overwrite existing coordinates in the morphology. This is by default set to False, meaning that only sections that do not currently have any coordinates set will get new coordinates. This allows to conveniently generate a morphology that can be plotted for a morphology that is based on points but also has artificially added sections (the most common case: an axon added to a reconstructed morphology). If set to True, all sections will get new coordinates. This can be useful to either get a schematic representation of the morphology (with section_randomness and compartment_randomness both 0) or to simply generate a new random variation of a morphology (which will still be electrically equivalent, of course).

Returns

morpho_with_coordinates : Morphology

The same morphology, but with coordinates

topology()[source]

Return a representation of the topology

Returns

topology : Topology

An object representing the topology (can be converted to a string by using str(...) or simply by printing it with print.)