For each neuron corresponding to a given neuron name or neuron ID, return a list of measurements stored on neuromorpho.org. See details for the sort of measurements you can get.

neuromorpho_morphometry(
  neuron_name = NULL,
  neuron_id = NULL,
  batch.size = 10,
  data_frame = TRUE,
  neuromorpho_url = "http://neuromorpho.org",
  progress = TRUE,
  ...
)

Arguments

neuron_name

a neuron name, or vector of neuron names, as recorded in the neuromorpho database. Names and neuron IDs can be found by searching the repository, for example via neuromorpho_search

neuron_id

a neuron ID, or vector of neuron IDs, as recorded in the neuromorpho database. If neuron_name is given this supersedes neuron_id, which is then treated as if its value were NULL.

batch.size

the number of requests sent at once to the neuromorpho.org, using multi_run. Requests are sent to neuromorpho.org in parallel to speed up the process of reading neurons. Batches of queries are processed serially. Increasing the value of batch.size may reduce read time.

data_frame

if TRUE, a data.frame object is returned, rather than a list object, with the same information. If a nested list (dictionary-like) has been returned for a neuron, this option will result in some data loss.

neuromorpho_url

the base URL for querying the neuromorpho database, defaults to http://neuromorpho.org

progress

if TRUE or a numeric value, a progress bar is shown. The bar progresses when each batch is completed. If TRUE, or 100, the bar completes where all batches are done.

...

methods passed to neuromorpho_async_req, or in some cases, neuromorphr:::neuromorpho_fetch

Value

a list of measurements for a neuron, or a list of lists if neuron_name/neuron_id is a vector with more than one element

Details

neurmorpho.org calculates some basic measures for neuronal skeleton reconstructions. Distances are given in micrometers, and angles in °. Typical measures: #'

  • neuron_name

  • neuron_id

  • surface (micrometers^2) -- Total arborisation surface area

  • volume (micrometers^3) -- Total internal volume of the arborisation

  • n_branch -- Total number of branches

  • width (micrometers) -- Neuronal width (95

  • height (micrometers) -- Neuronal height (95

  • depth (micrometers) -- Neuronal depth (95

  • diameter (micrometers) -- Average branch diameter

  • eucDistance (micrometers) -- Maximum Euclidean (straight) distance from soma to tips

  • pathDistance -- Maximum Path (along the tree) distance from soma to tips

  • branch_Order -- Maximum Branch order (number of bifurcations from soma to tips)

  • contraction -- Average Contraction (the ratio between Euclidean and path length calculated on each branch)

  • fragmentation -- Total number of reconstruction points

  • partition_asymmetry -- Topological asymmetry (average over all bifurcations of the absolute value of (n1-n2)/(n1+n2-2), where n1 and n2 are the numbers of tips in the two subtrees)

  • Rall -- Rall's Ratio (average over all bifurcations of the sum of the diameters of the two daughters, elevated to 1.5, divided by the diameter of the parent, elevated to 1.5)

  • pk_classic

  • bif_ampl_local

  • fractal_Dim

  • soma_Surface (micrometers^2) -- Soma surface area

  • n_stems -- Total number of branches (bifurcations plus terminations)

  • n_bifs -- Total number of bifurcations

  • bif_ampl_remote

  • length (micrometers) -- Total arborisation length

  • Local Bifurcation angle (average over all bifurcations of the angle between the first two daughter compartments)

  • Remote Bifurcation angle (average over all bifurcations of the angle between the following bifurcations or tips)

Neurons may also be searched by their morphological measures via the web browser at http://neuromorpho.org/MorphometrySearch.jsp

For exact definitions and/or more information about these measurements, please visit the L-Measure website. Note that each of these parameters is extracted from the whole neuron (axon plus dendrites).

Examples

# Let's get some measurements for the

# let's get neocortical neurons from both the African elephant and the humpback whale
big.neocortex.df = neuromorpho_search(search_terms= c("species:elephant,humpback whale",
                                                      "brain_region:neocortex"))

## Pull measurements, in a data frame
measurements = neuromorpho_morphometry(big.neocortex.df$neuron_name, data_frame = TRUE)
#> Warning: Currently, the infastructure of neuromorpho.org cannot support too many requests at once,
#>             and does not have support for rate limiting. The API would be fine with 5 times per second
#>             and the web page once every 5 seconds. To prevent crashing the site, batch.size <= 5 is preferable, 
#>             yours is 10
#> 
|++                                                | ~4% pulling neuromorpho measurements
|++++                                              | ~8% pulling neuromorpho measurements
|++++++                                            | ~12% pulling neuromorpho measurements
|++++++++                                          | ~16% pulling neuromorpho measurements
|++++++++++                                        | ~20% pulling neuromorpho measurements
|++++++++++++                                      | ~24% pulling neuromorpho measurements
|++++++++++++++                                    | ~28% pulling neuromorpho measurements
|++++++++++++++++                                  | ~32% pulling neuromorpho measurements
|++++++++++++++++++                                | ~36% pulling neuromorpho measurements
|++++++++++++++++++++                              | ~40% pulling neuromorpho measurements
|++++++++++++++++++++++                            | ~44% pulling neuromorpho measurements
|++++++++++++++++++++++++                          | ~48% pulling neuromorpho measurements
|++++++++++++++++++++++++++                        | ~52% pulling neuromorpho measurements
|++++++++++++++++++++++++++++                      | ~56% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++                    | ~60% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++                  | ~64% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++                | ~68% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++              | ~72% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++            | ~76% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++          | ~80% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++++        | ~84% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++++++      | ~88% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++++++++    | ~92% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++++++++++  | ~96% pulling neuromorpho measurements
|++++++++++++++++++++++++++++++++++++++++++++++++++| ~100% pulling neuromorpho measurements

## Assign species column
measurements$species = big.neocortex.df[rownames(measurements),"species"]

## Boxplot
boxplot(as.numeric(length)~species, data=measurements, notch=FALSE, 
     col=(c("deepskyblue1","firebrick1")),
     main="neocortical neuron lengths", xlab="species")