allensdk.internal.morphology.morphvis module

class allensdk.internal.morphology.morphvis.MorphologyColors[source]

Bases: object

set_apical_color(self, r, g, b)[source]
set_axon_color(self, r, g, b)[source]
set_basal_color(self, r, g, b)[source]
set_soma_color(self, r, g, b)[source]
allensdk.internal.morphology.morphvis.calculate_scale(morph, pix_width, pix_height)[source]

Calculates scaling factor and x,y insets required to auto-scale and center morphology into box with specified numbers of pixels

Parameters:
morph: AISDK Morphology object
pix_width: int
Number of image pixels on X axis
pix_height: int
Number of image pixels on Y axis
Returns:
real, real, real
First return value is the scaling factor. Second is the
number of pixels needed to adjust x-coordinates so that the
morphology is horizontally centered. Third is the number of
pixels needed to adjust the y-coordinates so that the morphology
is vertically centered.
allensdk.internal.morphology.morphvis.create_image(w, h, color=None, alpha=False)[source]
allensdk.internal.morphology.morphvis.draw_density_hist(img, morph, vert_scale, inset_left=0, inset_right=0, inset_top=0, inset_bottom=0, num_bins=None, colors=None)[source]

Draws density histogram onto image When no scaling is applied, and no insets are provided, the coordinates of the morphology are used directly – i.e., 100 in morphology coordinates is equal to 100 pixels.

The scale factor is multiplied to morphology coordinates before being drawn. If scale_factor=2 then 50 in morphology coordinates is 100 pixels. Left and top insets shift the coordinate axes for drawing. E.g., if left=10 and top=5 then 0,0 in morphology coordinates is 10,5 in pixel space. Bottom and right insets are ignored.

If scale_to_fit is set then scale factor is ignored. The morphology is scaled to be the maximum size that fits in the image, taking into account insets. In a 100x100 image, if all insets=10, then the image is scaled to fit into the center 80x80 pixel area, and nothing is drawn in the inset border areas.

Axons are drawn before soma and dendrite compartments.

Parameters:
img: PIL image object
morph: AISDK Morphology object
vert_scale: real
This is the amout required to multiply to a moprhology
y-coordinate to convert it to relative cortical depth (on [0,1]).
This is the inverse of the cortical thickness.
inset_*: real
This is the number of pixels to use as border on top/bottom/
right/left. If scale_to_fit is false then only the top/left
values are used, as the scale_factor will determine how
large the morphology is (it can be drawn beyond insets and even
beyond image boundaries)
num_bins: int
The number of bins in the histogram
colors: MorphologyColors object
This is the color scheme used to draw the morphology. If
colors=None then default coloring is used
Returns:
Histogram arrays: [hist, hist2, hist3, hist4]
where hist is the histgram of all neurites, and hist[234] are
the histograms of SWC types 2,3,4
allensdk.internal.morphology.morphvis.draw_morphology(img, morph, inset_left=0, inset_right=0, inset_top=0, inset_bottom=0, scale_to_fit=False, scale_factor=1.0, colors=None)[source]

Draws morphology onto image When no scaling is applied, and no insets are provided, the coordinates of the morphology are used directly – i.e., 100 in morphology coordinates is equal to 100 pixels.

The scale factor is multiplied to morphology coordinates before being drawn. If scale_factor=2 then 50 in morphology coordinates is 100 pixels. Left and top insets shift the coordinate axes for drawing. E.g., if left=10 and top=5 then 0,0 in morphology coordinates is 10,5 in pixel space. Bottom and right insets are ignored.

If scale_to_fit is set then scale factor is ignored. The morphology is scaled to be the maximum size that fits in the image, taking into account insets. In a 100x100 image, if all insets=10, then the image is scaled to fit into the center 80x80 pixel area, and nothing is drawn in the inset border areas.

Axons are drawn before soma and dendrite compartments.

Parameters:
img: PIL image object
morph: AISDK Morphology object
inset_*: real
This is the number of pixels to use as border on top/bottom/
right/left. If scale_to_fit is false then only the top/left
values are used, as the scale_factor will determine how
large the morphology is (it can be drawn beyond insets and even
beyond image boundaries)
scale_to_fit: boolean
If true then morphology is scaled to the inset area of the
image and scale_factor is ignored. Morphology is centered
in the image in the sense that the top/bottom and left/right
edges of the morphology are equidistant from image borders.
scale_factor: real
A scalar amount that is multiplied to morphology coordinates
before drawing
colors: MorphologyColors object
This is the color scheme used to draw the morphology. If
colors=None then default coloring is used
Returns:
2-dimensional array, the pixel coordinates of the soma root [x,y]