Skip to main content

Library for manipulating neuromorpho resources.

Project description

neuromorpholib

Codecov PyPI GitHub Workflow Status

Installation

pip3 install neuromorpholib

Usage

Downloading

A simple download of known dataset and name

from neuromorpholib import neuromorpho

nmo = neuromorpho.NeuroMorpho()
acc1 = nmo.download_swc("martone", "ACC1")

A query for all species=mouse neurons

mouse_neurons = nmo.search({"species": "mouse"})

Download a SWC for a mouse neuron

swc_demo = nmo.download_swc(
    mouse_neurons[0]
)

If you know the archive name and neuron name, you can also download the swc directly by passing archive and neuron_name arguments.

If you only want the SWC text and don't want it to be converted into a NeuronMorphology object, you can pass text_only=True.

SWC Management

Read a SWC file from disk

from neuromorpholib.swc import load_swc, NeuronMorphology

my_morphology = load_swc("my_neuron.swc")
# This is a NeuronMorphology object.

Get a list of branch points

branch_points = my_morphology.get_branch_points()

Get a simplified graph (only leaves and branch points) of a morphology

morphology_graph = my_morphology.smoothed()
# nx.DiGraph

SWC Geometry Operations

Rotate, translate, or scale a geometry with NeuronMorphology functions:

n = NeuronMorphology()
n.scale(3)
n.translate([4, 44, 10])
n.rotate([0, 0, math.pi/2])

Rendering SWCs

All of the following visualization techniques assume you have a single NeuronMorphology object, downloaded perhaps like this:

from neuromorpholib import neuromorpho

nmo = neuromorpho.NeuroMorpho()
acc1 = nmo.download_swc("martone", "ACC1")

Using matplotlib

import networkx as nx

g = acc1.get_graph()
nx.draw(g, pos={n: a['xyz'][:2] for n, a in g.nodes(data=True)}, node_size=0)
image

Using pytri

This will return an interactive 3D turntable in a Jupyter Notebook.

from pytri import Figure

fig = Figure()
fig.graph(acc1.get_graph(), pos_attribute="xyz")
fig.show()
image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neuromorpholib-0.2.2.tar.gz (8.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page