neuprint_read_neurons is a full service function that tries to build as complete neuron objects as possible. Choose whether or not to heal the fetched skeletons, assign a soma (if tagged in neuprint) and assign synapses to approximate treenode positions, in the style of neuron objects used by the rcatmaid package.

If neuprint_read_skeletons is used, just a simple skeleton is retrieved.

  meta = TRUE,
  nat = TRUE,
  drvid = FALSE,
  soma = TRUE,
  heal = TRUE,
  heal.threshold = 1000,
  connectors = TRUE,
  all_segments = TRUE,
  dataset = NULL,
  resample = FALSE,
  conn = NULL,
  OmitFailures = TRUE,

  dataset = NULL,
  conn = NULL,
  heal = TRUE,
  heal.threshold = 1000,

neuprint_read_neurons_simple(bodyids, ...)



the body IDs for neurons/segments (bodies) you wish to query. This can be in any form understood by neuprint_ids.


whether or not to fetch a meta data for the given bodyids, using neuprint_get_meta


whether or not to read neurons are nat::neuronlist objects (TRUE) or get SWC data frame (FALSE)


whether or not to use drvid::read.neuron.dvid rather than a cypher post request to neuprint_fetch_custom, in order to read a neuron. This might be faster, and this might also enable access to skeletons on an underlying DVID database that have not yet been ported to neuprint.


whether or not to fetch a possible soma location for the given bodyids, using neuprint_locate_soma


whether or not to heal a fragmented skeleton using a minimum spanning tree, via nat::stitch_neurons_mst


distance in raw units beyond which isolated fragments will not be merged onto the main skeleton. The default of 1000 implies 8000 nm for the hemibrain dataset. Use Inf to merge all fragments.


whether or not to add synapse data to the retrieved skeletons in the format used by the rcatmaid package, for easy use with rcatmaid or catnat functions. This can be done for synapse-less skeletons using neuprint_assign_connectors


if TRUE, all bodies are considered, if FALSE, only 'Neurons', i.e. bodies with a status roughly traced status.


optional, a dataset you want to query. If NULL, the default specified by your R environ file is used or, failing that the current connection, is used. See neuprint_login for details.


if a number, the neuron is resampled using nat::resample, stepsize = resample. If 0 or FALSE (default), no resampling occurs.


optional, a neuprintr connection object, which also specifies the neuPrint server. If NULL, the defaults set in your .Rprofile or .Renviron are used. See neuprint_login for details.


Whether to omit neurons for which FUN gives an error. The default value (NA) will result in nlapply stopping with an error message the moment there is an error. For other values, see details.


methods passed to neuprint_login


a data frame in SWC format, or a

nat::neuronlist/nat::neuron object as used by the nat and catmaid packages


# \donttest{
neurons = neuprint_read_neurons(c(818983130, 1796818119))
#> Loading required package: rgl
#> Some nat functions depend on a CMTK installation. See ?cmtk and for details.
#> Attaching package: ‘nat’
#> The following object is masked from ‘package:rgl’:
#>     wire3d
#> The following objects are masked from ‘package:base’:
#>     intersect, setdiff, union
plot3d(neurons, col = "purple", lwd = 2)

## In this example, in hemibrain:v1.0, an erroneously connected bit
## of neuron skeleton is removed.
n1 = neuprint_read_neurons(5812980863, heal.threshold = 20e3)
## compare with
n2 = neuprint_read_neurons(5812980863, heal = FALSE)
# }
# \donttest{
dl1s=neuprint_read_skeletons('DL1 adPN')
#> Error in neuprint_ids(bodyids, conn = conn, dataset = dataset): No valid ids provided!
plot(dl1s, WithNode=FALSE)
#> Error in eval(expr, envir, enclos): object 'dl1s' not found
# }