Cheat sheet

Every subcommand of all four commands, with its synopsis. Generated from the argparse parsers at build time, so it always matches --help.

neu-vol

the volumes themselves: inspect, convert, copy, downsample, create, write, renumber, pack

subcommand

what it does

neu-vol info

what a volume is, and which levels exist

neu-vol convert

build a multiscale volume from a source

neu-vol copy

copy a volume, or a box out of it, as it is

neu-vol downsample

rebuild pyramid levels above a trusted one, in place

neu-vol create

lay out an EMPTY multiscale volume

neu-vol write

write one subvolume into an existing volume

neu-vol progress

blocks done per level, for a live run

neu-vol mask-by-value

replace label values with background

neu-vol to-hdf5

pack a small volume into one HDF5 file, with its frame

neu-vol align-bbox

move a box onto a volume’s block grid

neu-vol relabel

give each occupied region its own range of label ids

neu-vol wk-mappings

fetch a webknossos layer’s agglomerate views as tables

neu-vol wk-ls

list webknossos datasets and their layers

neu-vol help

what --help prints, as a subcommand

neu-vol info

what a volume is, and which levels exist

neu-vol info [-h] [--dataset DATASET] [--provenance] [--store-logs] volume

neu-vol convert

build a multiscale volume from a source

neu-vol convert [-h] [--src-format SRC_FORMAT] --src SRC [--src-level N] [--dvid-supervoxels] [--dvid-locked] [--wk-mapping NAME] [--wk-full-extent] --dst DST [--format {precomputed,zarr,both}] [--kind {image,probability,segmentation}] [--dtype TYPE] [--voxel-size VOXEL_SIZE] [--chunk CHUNK] [--shard SHARD] [--crop-bbox Z0,Y0,X0,Z1,Y1,X1] [--mask-bbox Z0,Y0,X0,Z1,Y1,X1] [--mask-value MASK_VALUE] [--background V[,V...]] [--bbox-scale N] [--bbox-order {zyx,xyz}] [--profile PROFILE] [--factors FACTORS] [--max-levels MAX_LEVELS] [--min-dim MIN_DIM] [--single-level] [--sparse] [--fresh] [--no-validate] [--config NAME_OR_PATH] [--workers WORKERS] [--serial] [--store-logs]

neu-vol copy

copy a volume, or a box out of it, as it is

neu-vol copy [-h] --src SRC [--src-level N] [--dvid-supervoxels] [--dvid-locked] [--wk-mapping NAME] [--wk-full-extent] --dst DST [--format {precomputed,zarr,both}] [--kind {image,probability,segmentation}] [--dtype TYPE] [--voxel-size VOXEL_SIZE] [--chunk CHUNK] [--shard SHARD] [--crop-bbox Z0,Y0,X0,Z1,Y1,X1] [--mask-bbox Z0,Y0,X0,Z1,Y1,X1] [--mask-value MASK_VALUE] [--background V[,V...]] [--bbox-scale N] [--bbox-order {zyx,xyz}] [--profile PROFILE] [--factors FACTORS] [--max-levels MAX_LEVELS] [--min-dim MIN_DIM] [--single-level] [--sparse] [--fresh] [--no-validate] [--config NAME_OR_PATH] [--workers WORKERS] [--serial] [--store-logs] [--dry-run]

neu-vol downsample

rebuild pyramid levels above a trusted one, in place

neu-vol downsample [-h] [--start-level START_LEVEL] [--kind {image,segmentation}] [--min-dim MIN_DIM] [--max-levels MAX_LEVELS] [--factors FACTORS] [--chunk CHUNK] [--voxel-size VOXEL_SIZE] [--encoding ENCODING] [--profile PROFILE] [--resume] [--sparse] [--progress-path PROGRESS_PATH] [--dry-run] [--config NAME_OR_PATH] [--workers WORKERS] [--serial] [--store-logs] volume

neu-vol create

lay out an EMPTY multiscale volume

neu-vol create [-h] [--like VOLUME] [--shape SHAPE] [--dtype DTYPE] [--voxel-size VOXEL_SIZE] [--offset-nm OFFSET_NM] [--units UNITS] [--kind {image,segmentation}] [--format {zarr,precomputed}] [--encoding ENCODING] [--chunk CHUNK] [--shard SHARD] [--levels LEVELS] [--factors FACTORS] [--max-levels MAX_LEVELS] [--min-dim MIN_DIM] [--profile PROFILE] [--name NAME] [--overwrite] [--no-validate] [--dry-run] [--store-logs] dst

neu-vol write

write one subvolume into an existing volume

neu-vol write [-h] --src SRC [--offset OFFSET] [--offset-field NAME] [--background V[,V...]] [--voxel-size-field NAME] [--offset-order {zyx,xyz}] [--level LEVEL] [--offset-level OFFSET_LEVEL] [--src-format SRC_FORMAT] [--dataset DATASET] [--all-datasets [GLOB]] [--cast] [--dry-run] [--store-logs] volume

neu-vol progress

blocks done per level, for a live run

neu-vol progress [-h] [--progress-path PROGRESS_PATH] [--storage] [--store-logs] volume

neu-vol mask-by-value

replace label values with background

neu-vol mask-by-value [-h] --values V[,V...] [--to TO] (--out VOLUME | --in-place) [--level LEVEL] [--overwrite] [--dry-run] [--store-logs] volume

neu-vol to-hdf5

pack a small volume into one HDF5 file, with its frame

neu-vol to-hdf5 [-h] --src SRC [--dvid-supervoxels] [--dvid-locked] [--wk-mapping NAME] --out FILE.h5 [--src-format SRC_FORMAT] [--voxel-size Z,Y,X] [--offset Z,Y,X] [--level LEVEL] [--crop-bbox Z0,Y0,X0,Z1,Y1,X1] [--src-dataset NAME] [--all-datasets] [--voxel-size-field NAME] [--offset-field NAME] [--units UNITS] [--axes AXES] [--dataset NAME] [--dtype DTYPE] [--truncate] [--chunk Z,Y,X] [--compression {gzip,lzf,none}] [--background V[,V...]] [--overwrite] [--dry-run] [--store-logs]

neu-vol align-bbox

move a box onto a volume’s block grid

neu-vol align-bbox [-h] --bbox Z0,Y0,X0,Z1,Y1,X1 [--volume PATH_OR_URL] [--block Z,Y,X] [--to {write-unit,pyramid,both,read-chunk}] [--level LEVEL] [--mode {outer,inner,nearest,origin}] [--scale N] [-q] [--store-logs]

neu-vol relabel

give each occupied region its own range of label ids

neu-vol relabel [-h] (--out VOLUME | --in-place) [--level LEVEL] [--block-size N] [--map PATH_OR_URL] [--overwrite] [--dry-run] [--store-logs] volume

neu-vol wk-mappings

fetch a webknossos layer’s agglomerate views as tables

neu-vol wk-mappings [-h] --out DIR [--volume VOLUME] [--mapping NAME] [--max-id MAX_ID] [--overwrite] [--threads N] src

neu-vol wk-ls

list webknossos datasets and their layers

neu-vol wk-ls [-h] [--org ID] [--all-orgs] [--details] [--max-details N] [--json] [pattern]

neu-vol help

what --help prints, as a subcommand

neu-vol help [-h] [COMMAND ...]

neu-morpho

meshes and skeletons from a segmentation

subcommand

what it does

neu-morpho run

index -> allowlist -> meshes

neu-morpho progress

live progress of a run, from its work dir

neu-morpho measure

per-body morphometry over published output

neu-morpho run-report

self-contained HTML summary of a run

neu-morpho help

what --help prints, as a subcommand

Stages

Passed to run --stages as a comma-separated list, and run in this order. Each is idempotent and resumable, so re-running a subset continues rather than redoing it.

stage

what it does

seg

copy the ROI’s labels out as a precomputed volume, so the meshes and skeletons can be viewed against the segmentation they came from. Optional, and off by default — it is pure I/O and usually the most expensive stage.

index

scan the volume once and record every body’s bounding box and voxel count in a SQLite metrics DB. Needed before –min-voxels or –limit-bodies, whose size filter builds the allowlist from these counts; mesh and skel are block-based and read no bounding box.

mesh

multi-resolution Draco meshes, per body. Two phases — fragments per (body, block), then one mesh assembled per body — so a re-run with only this stage reuses the fragments already on disk.

neu-morpho run

index -> allowlist -> meshes

neu-morpho run [-h] --src SRC [--dst DST] [--work-dir WORK_DIR] [--describe] [--stages LIST] [--seg-encoding SEG_ENCODING] [--seg-scales SEG_SCALES] [--roi ROI] [--roi-scale ROI_SCALE] [--index-scale INDEX_SCALE] [--mesh-scale MESH_SCALE] [--smoothing N] [--block BLOCK] [--min-voxels MIN_VOXELS] [--limit-bodies LIMIT_BODIES] [--allowlist ALLOWLIST] [--no-metrics-db] [--occupancy-scale OCCUPANCY_SCALE] [--occupancy-dilate OCCUPANCY_DILATE] [--config NAME_OR_PATH] [--workers WORKERS] [--serial] [--no-resume] [--allow-body-failures] [--max-consecutive-failures MAX_CONSECUTIVE_FAILURES] [--dry-run] [--store-logs]

neu-morpho progress

live progress of a run, from its work dir

neu-morpho progress [-h] [--sample SECONDS] work_dir

neu-morpho measure

per-body morphometry over published output

neu-morpho measure [-h] {volumes,skeletons,compartments,progress} ...

neu-morpho run-report

self-contained HTML summary of a run

neu-morpho run-report [-h] [-o OUT] work_dir

neu-morpho help

what --help prints, as a subcommand

neu-morpho help [-h] [COMMAND ...]

neu-mark

DVID annotations into tables: synapses and other point annotations, per-body records

subcommand

what it does

neu-mark points

point annotations (synapses) for a set of bodies, or all of them

neu-mark bodies

per-body annotations (name, status), for a body list or all of them

neu-mark select-bodies

choose which bodies are worth fetching, by synapse count

neu-mark segment-properties

a neuroglancer segment_properties source: names, tags and counts

neu-mark annotation-source

a neuroglancer precomputed annotation source: one LINE per connection

neu-mark roi-layers

a node’s DVID ROIs as precomputed segmentation layers

neu-mark roi-survey

measure a node’s DVID ROIs: sizes, containment tree, overlaps

neu-mark info

what a DVID annotation source is, and which node you would get

neu-mark help

what --help prints, as a subcommand

neu-mark points

point annotations (synapses) for a set of bodies, or all of them

neu-mark points [-h] --src URL --out DST [--bodies IDS] [--body-column NAME] [--format {parquet,csv,feather}] [--dvid-locked] [--all] [--threads N] [--drop-unmatched] [--connections] [--rois LIST] [--strict-rois] [--roi-source URL]

neu-mark bodies

per-body annotations (name, status), for a body list or all of them

neu-mark bodies [-h] --src URL --out DST [--bodies IDS] [--body-column NAME] [--format {parquet,csv,feather}] [--dvid-locked] [--all]

neu-mark select-bodies

choose which bodies are worth fetching, by synapse count

neu-mark select-bodies [-h] --src URL --out FILE [--min-synapses N] [--min-pre N] [--min-post N] [--limit N] [--dvid-locked]

neu-mark segment-properties

a neuroglancer segment_properties source: names, tags and counts

neu-mark segment-properties [-h] --src URL --dst VOLUME (--bodies IDS | --meshed-bodies) [--body-column NAME] [--counts URL] [--labelmap URL] [--synapses DIR] [--roi-spec TOML] [--rules PATH] [--label FIELD] [--drop RULE] [--max-tags N] [--table FILE] [--dry-run] [--no-link] [--dvid-locked]

neu-mark annotation-source

a neuroglancer precomputed annotation source: one LINE per connection

neu-mark annotation-source [-h] --dst PATH [--tables DIR] [--src URL] [--bodies IDS] [--body-column NAME] [--voxel-size X,Y,Z] [--bounds X0,Y0,Z0,X1,Y1,Z1] [--drop-partial] [--listed IDS] [--roi-spec TOML] [--per-cell N] [--threads N] [--dvid-locked] [--verify [N]] [--dry-run]

neu-mark roi-layers

a node’s DVID ROIs as precomputed segmentation layers

neu-mark roi-layers [-h] --src URL --spec TOML --like VOLUME --dst PATH [--layers NAMES] [--overwrite] [--dvid-locked] [--dry-run]

neu-mark roi-survey

measure a node’s DVID ROIs: sizes, containment tree, overlaps

neu-mark roi-survey [-h] --src URL [--compare URL] [--spec TOML] [--like VOLUME] [--contained FRAC] [--max-overlap FRAC] [--out JSON] [--dvid-locked]

neu-mark info

what a DVID annotation source is, and which node you would get

neu-mark info [-h] --src URL

neu-mark help

what --help prints, as a subcommand

neu-mark help [-h] [COMMAND ...]

neu-glance

neuroglancer states, annotation layers and links

subcommand

what it does

neu-glance gen

a viewer state from volumes, annotation sources and layer files

neu-glance annotate

a layer of annotations from coordinates you give

neu-glance bboxes

a layer of boxes marking where a sparse volume’s data is

neu-glance serve

host arrays locally and open a viewer on them

neu-glance parse

a neuroglancer URL back into its state JSON

neu-glance shaders

the built-in annotation shaders

neu-glance help

what --help prints, as a subcommand

neu-glance gen

a viewer state from volumes, annotation sources and layer files

neu-glance gen [-h] [--image VOLUME] [--seg VOLUME] [--segments IDS] [--all-segments LAYER_NAME] [--annotations SOURCE] [--presyn-postsyn] [--annotation-shader NAME_OR_PATH] [--no-filter-by-segmentation] [--layer PATH_OR_URL] [--image-opacity F] [--silhouette LAYER_NAME=VALUE] [--opacity-2d LAYER_NAME=VALUE] [--opacity-3d LAYER_NAME=VALUE] [--color LAYER_NAME=COLOR] [--color-by LAYER_NAME=PROP[,PROP...]] [--no-pick LAYER_NAME] [--config TOML] [--voxel-size Z,Y,X] [--format {url,state}] [--out PATH_OR_URL] [--into URL_OR_JSON] [--layout {4panel,xy,yz,xz,xy-3d,yz-3d,xz-3d,3d}] [--position Z,Y,X] [--position-order {zyx,xyz}] [--cross-section-scale S] [--projection-scale S] [--hide-slices] [--hide LAYER_NAME] [--select LAYER_NAME] [--select-last] [--viewer VIEWER] [--expand]

neu-glance annotate

a layer of annotations from coordinates you give

neu-glance annotate [-h] [--volume VOLUME] [--points CSV] [--point COORDS] [--boxes CSV] [--box COORDS] [--lines CSV] [--line COORDS] [--ellipsoids CSV] [--ellipsoid COORDS] [--scale N] [--nm] [--name NAME] [--color COLOR] [--label PREFIX] [--link [REL=]LAYER] [--voxel-size Z,Y,X] [--format {layer,state,url}] [--out PATH_OR_URL] [--into URL_OR_JSON] [--layout {4panel,xy,yz,xz,xy-3d,yz-3d,xz-3d,3d}] [--position Z,Y,X] [--position-order {zyx,xyz}] [--cross-section-scale S] [--projection-scale S] [--hide-slices] [--hide LAYER_NAME] [--select LAYER_NAME] [--select-last] [--viewer VIEWER] [--expand]

neu-glance bboxes

a layer of boxes marking where a sparse volume’s data is

neu-glance bboxes [-h] [--level LEVEL] [--tighten-level N] [--no-tighten] [--kind {box,point}] [--name NAME] [--label PREFIX] [--color COLOR] [--voxel-size Z,Y,X] [--format {layer,state,url}] [--out PATH_OR_URL] [--into URL_OR_JSON] [--layout {4panel,xy,yz,xz,xy-3d,yz-3d,xz-3d,3d}] [--position Z,Y,X] [--position-order {zyx,xyz}] [--cross-section-scale S] [--projection-scale S] [--hide-slices] [--hide LAYER_NAME] [--select LAYER_NAME] [--select-last] [--viewer VIEWER] [--expand] volume

neu-glance serve

host arrays locally and open a viewer on them

neu-glance serve [-h] [--image SRC] [--seg SRC] [--prob SRC] [--level N] [--crop-bbox Z0,Y0,X0,Z1,Y1,X1] [--voxel-size Z,Y,X] [--shader NAME_OR_PATH] [--color COLOR] [--bind ADDRESS] [--port N] [--into PATH_OR_URL] [--annotate [NAME]]

neu-glance parse

a neuroglancer URL back into its state JSON

neu-glance parse [-h] [--layers] [--out PATH_OR_URL] url

neu-glance shaders

the built-in annotation shaders

neu-glance shaders [-h] [name]

neu-glance help

what --help prints, as a subcommand

neu-glance help [-h] [COMMAND ...]

neu-eval

comparison metrics against a reference labeling, and a located list of the disagreements

subcommand

what it does

neu-eval compare

score a segmentation against a reference

neu-eval help

show help for a command

neu-eval compare

score a segmentation against a reference

neu-eval compare [-h] --reference SRC --segmentation SRC [--level LEVEL] [--reference-level REFERENCE_LEVEL] [--all-datasets] [--out DIR] [--labels A,B] [--ignore-reference IDS] [--ignore-segmentation IDS] [--top TOP] [--min-frac MIN_FRAC] [--min-voxels MIN_VOXELS] [--rank {severity,fraction}] [--point-at {seam,overlap}] [--no-locate] [--adjudicated CSV] [--voxel-size Z,Y,X] [--dtype DTYPE] [--no-scatter-check]

neu-eval help

show help for a command

neu-eval help [-h] [topic]