Source code for fafbseg.flywire.meshes
# A collection of tools to interface with manually traced and autosegmented
# data in FAFB.
#
# Copyright (C) 2019 Philipp Schlegel
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
import navis
from .utils import parse_volume
__all__ = ['get_mesh_neuron']
[docs]def get_mesh_neuron(id, dataset='production'):
"""Fetch flywire neuron as navis.MeshNeuron.
Parameters
----------
id : int | list of int
Segment ID(s) to fetch meshes for.
dataset : str | CloudVolume
Against which flywire dataset to query::
- "production" (currently fly_v31)
- "sandbox" (currently fly_v26)
Return
------
navis.MeshNeuron
Examples
--------
>>> from fafbseg import flywire
>>> m = flywire.get_mesh_neuron(720575940614131061)
>>> m.plot3d() # doctest
"""
vol = parse_volume(dataset)
if navis.utils.is_iterable(id):
return navis.NeuronList([get_mesh_neuron(n, dataset=dataset) for n in id])
# Make sure the ID is integer
id = int(id)
# Fetch mesh
mesh = vol.mesh.get(id)[id]
# Turn into meshneuron
return navis.MeshNeuron(mesh, id=id, units='nm', dataset=dataset)