Automated Sholl Analysis of Digitized Neuronal Morphology at Multiple Scales

* These authors contributed equally

Your institution must subscribe to JoVE's Neuroscience section to access this content.

Fill out the form below to receive a free trial or learn more about access:



We have developed a computer program to analyze neuronal morphology. In combination with two existing open source analysis tools, our program performs Sholl analysis and determines the number of neurites, branch points, and neurite tips. The analyses are performed so that local changes in neurite morphology can be observed.

Cite this Article

Copy Citation | Download Citations | Reprints and Permissions

Kutzing, M. K., Langhammer, C. G., Luo, V., Lakdawala, H., Firestein, B. L. Automated Sholl Analysis of Digitized Neuronal Morphology at Multiple Scales. J. Vis. Exp. (45), e2354, doi:10.3791/2354 (2010).


Neuronal morphology plays a significant role in determining how neurons function and communicate1-3. Specifically, it affects the ability of neurons to receive inputs from other cells2 and contributes to the propagation of action potentials4,5. The morphology of the neurites also affects how information is processed. The diversity of dendrite morphologies facilitate local and long range signaling and allow individual neurons or groups of neurons to carry out specialized functions within the neuronal network6,7. Alterations in dendrite morphology, including fragmentation of dendrites and changes in branching patterns, have been observed in a number of disease states, including Alzheimer's disease8, schizophrenia9,10, and mental retardation11. The ability to both understand the factors that shape dendrite morphologies and to identify changes in dendrite morphologies is essential in the understanding of nervous system function and dysfunction.

Neurite morphology is often analyzed by Sholl analysis and by counting the number of neurites and the number of branch tips. This analysis is generally applied to dendrites, but it can also be applied to axons. Performing this analysis by hand is both time consuming and inevitably introduces variability due to experimenter bias and inconsistency. The Bonfire program is a semi-automated approach to the analysis of dendrite and axon morphology that builds upon available open-source morphological analysis tools. Our program enables the detection of local changes in dendrite and axon branching behaviors by performing Sholl analysis on subregions of the neuritic arbor. For example, Sholl analysis is performed on both the neuron as a whole as well as on each subset of processes (primary, secondary, terminal, root, etc.) Dendrite and axon patterning is influenced by a number of intracellular and extracellular factors, many acting locally. Thus, the resulting arbor morphology is a result of specific processes acting on specific neurites, making it necessary to perform morphological analysis on a smaller scale in order to observe these local variations12.

The Bonfire program requires the use of two open-source analysis tools, the NeuronJ plugin to ImageJ and NeuronStudio. Neurons are traced in ImageJ, and NeuronStudio is used to define the connectivity between neurites. Bonfire contains a number of custom scripts written in MATLAB (MathWorks) that are used to convert the data into the appropriate format for further analysis, check for user errors, and ultimately perform Sholl analysis. Finally, data are exported into Excel for statistical analysis. A flow chart of the Bonfire program is shown in Figure 1.


1. Before You Begin:

1) E18 rat dissection:

Standard dissection methods of E18 hippocampal neurons have previously been described13. In order to use the Bonfire program to analyze the morphological characteristics of the neurites, 8 bit .tif images of individual neurons must be obtained. This can be accomplished in a number of ways depending on the experimental protocol you are following. Neurons can be plated at a low enough density so that single neurons appear in the microscope field. Alternatively, to image individual neurons that are grown in a dense culture, neurons can be transfected using a variety of transfection methods with a plasmid encoding a fluorescent protein.

2) Software Requirements and Installation:

  1. The NeuronJ plugin for the ImageJ software from NIH and NeuronStudio must both be installed in order to run the Bonfire program. The software packs can be found at the following websites:
    ImageJ -
    NeuronJ -
    NeuronStudio -
  2. The Bonfire program can be found at The Bonfire user manual is also available at this website. Additionally, the initial description of Bonfire can be found in Langhammer et al, Cytometry 2010. All of our data have been analyzed using a Windows operating system.

3) Image Resolution Adjustment:

You will need to adjust the Bonfire program based on the image resolution of the images that you wish to analyze. In the bonfire_parameters portion of the Bonfire program, replace the current value for the variable pix_conv with the value of the image resolution (μm/pixel) of your images.

2. File Structure:

In order for Bonfire to analyze your data, the files must be organized in this specific structure (Figure 2). You will have:

  • A master folder
  • Sub-folders (containing each of your different conditions)
  • Cell image files (filename.tif files) contained in the different condition folders
  • A Bonfire folder containing the Bonfire Matlab mfiles (also contained in the master folder)

3. Tracing Neurons in NeuronJ:

  1. Prepare the image for tracing
    1. Open the image by selecting the 'Open' button on the NeuronJ toolbar and selecting the image you would like to trace.
    2. Resize the image by selecting the 'maximize' button.
    3. Adjust the brightness and contrast of the image so that you can visualize all of the neurites by selecting 'Image' on the NeuronJ toolbar then selecting 'Adjust brightness/contrast'.
  2. Trace the cell body in NeuronJ and identify the trace as being 'Type 06'
    1. Select the 'Add Traces' button on the NeuronJ toolbar.
    2. Trace around the perimeter of the cell body.
    3. Select the 'Label Tracings' button on the NeuronJ toolbar.
    4. Select 'N1' from the 'Tracing ID' dropdown menu.
    5. Select 'Type 06' in the NeuronJ: Attributes window and select 'OK'.
  3. Trace the neurites in NeuronJ
    1. Select the 'Add Traces' button on the NeuronJ toolbar.
    2. Add a trace along each neurite branch. You can select only the dendrites or the axon, depending on your experiment.
    3. We suggest that the segments you draw stop at each branch point, with each daughter branch point starting at that point as a new trace.
    4. Select the 'Save Tracings' button on the NeuronJ toolbar.
    5. Save the tracing you have just created in the same folder as the original image file.
  4. Export the trace files and the trace identifier file from NeuronJ
    Two types of files must be exported from NeuronJ and saved into the appropriate condition folders along with the .tif and .ndf files.
    1. Select the 'Export Trace' button on the NeuronJ toolbar.
    2. Select the "Tab-deliminated text-files: separate file for each tracing' option on the 'NeuronJ: Export' dialogue box and select 'OK'.
    3. Allow NeuronJ to choose the names of the files and the save location.
    4. Select the 'Measure Tracings' button on the NeuronJ toolbar.
    5. Select the 'Display tracing measurements' option on the 'NeuronJ: Measurements' window and select 'Run'.
    6. Select 'File' in the 'NeuronJ: Tracings' window.
    7. Select 'Save As' and save the file as filename_info. 'filename' must exactly match the name of the original image file (including capitalization) followed by _info and should not contain a 3-letter file-extension. For example, for original image name Cell20.tif, this file would be named 'Cell20_info'. Check that your computer does not automatically add a .xls file extension. If it does, the file extension must be manually deleted.

4. Use Bonfire to Build Preliminary .swc Files from NeuronJ Data:

  1. Reorganize folders using 'bonfire_load'
    1. Open Matlab by double clicking on the icon.
    2. Click on the ' ' button in the upper right of the command window.
    3. Select the 'Bonfire' folder in your master folder in the 'Browse For Folder' window.
    4. Type 'bonfire_load' into the Matlab command window and press enter.
    5. Select the condition folder that you wish to analyze in the 'Browse For Folder' window and select 'OK'.
    6. This will reorganize the folder structure by creating cell sub-folders containing all of the data for each individual cell.
  2. Create filename_prelim.swc files using 'bonfire_ndf2swc'
    1. Type 'bonfire_ndf2swc' into the command window and press enter.
    2. Select the same condition folder you just reorganized with 'bonfire_load' in the 'Browse For Folder' window and select 'OK'.
    3. This will create a .swc file in each cell folder for the chosen condition. Each cell folder will now contain 5 files; the original .tif image, the .ndf file, the _info trace identifier file, a .txt file and a .swc file.

5. Use NeuronStudio to Finalize .swc Files:

  1. Open and calibrate neuron images in NeuronStudio
    1. Open the NeuronStudio program.
    2. Select File→Open on the NeuronStudio toolbar.
    3. Find the .tif image of the neuron you want to edit and open it.
    4. Select Run→Settings and enter '1' into each of the 3 (X,Y,Z) boxes in the 'Voxel Size' window.
    5. Select File→Import SWC. Select the appropriate .swc file. The image file will now be overlaid with a trace image. The cell soma should be overlaid with a red circle.
  2. Use NeuronStudio to link neurites
    1. Use the tools in NeuronStudio to correctly identify branch points and end points (we recommend that you become acquainted with NeuronStudio's features and shortcuts before analyzing your data).
    2. Specifically, use the 'neurite tool' to join nodes so that:
      • Each branch point (yellow nodes) can only create two branches
      • All traces are continuous with the soma (only one red node)
  3. Export data from NeuronStudio
    1. Select File→Save Neurites (save as the default name).
  4. Check for errors in .swc files using 'bonfire_trace_check'
    1. Type 'bonfire_trace_check' into the Mathlab command window and press enter.
    2. Select the condition folder containing the data you have just processed in the 'Browse For Folder' window and select 'OK'.
    3. If there are any errors in any of the images in the folder the program will output images displaying where the error is located.
    4. Fixing errors in NeuronStudio
      1. Open the image file you saved in the exporting step.
      2. Locate and fix the problem(s).
      3. Click File→Save Neurites.
      4. Repeat for other images that need to be fixed.
      5. Rerun 'bonfire_trace_check' (5.4).

6. Use 'bonfire' to Extract Morphological Data from .swc Files:

  1. Type 'bonfire' into the command window and press enter.
  2. Select the condition folder that contains the data you want to analyze in the 'Browse For Folder' window and select 'OK'.
  3. The Bonfire analysis will generate a window for each of the neurons being analyzed, in which it graphs the neuronal morphology along with the Sholl rings used in the analysis. Additionally, the 'bonfire' command will generate the .mat file that contains all of the morphological information that has been taken from the analysis.

7. Use 'bonfire_results' to View the Data:

  1. Type 'bonfire_results' into the Matlab command window.
  2. Select the condition folder for the condition you would like to view in the 'Browse For Folder' window and select 'OK'.
  3. The 'Browse for Folder' window will close temporarily and re-open, allowing you to select additional conditions you would like to view.
  4. When you are finished selecting condition folders, select 'Cancel' to exit the selection process.
  5. 'Bonfire_results' will return summary charts including the data from the condition folders you selected.

8. Use 'bonfire_export' to Export Data to Excel:

  1. Type 'bonfire_export' into the command window.
  2. Select the condition folder containing the data you would like to export in the 'Browse For Folder' window and select 'OK'. Bonfire_export will create Excel files of the morphological data and will place them in the condition folder that was selected.

9. Representative Results:

An example of the data generated by the Bonfire program on a data set containing two conditions is shown in Figure 3. In this example, Condition 1 neurons contain more neurites distal to the cell body. This phenomenon can be observed in the example images (Figure 3B) as well as in the Sholl curve of the total dendritic arbor (Figure 3A) and in the graph of the number of terminal points (Figure 3C). Additionally, because the Bonfire program also performs Sholl analysis on subregions of the images, we are able to identify more specifically the identity of the neurites that have increased. Both the total number of intersections of 3rd order or greater neurites (Figure 3F) and the total number of both intermediary and terminal neurites (Figure 3G) are increased distal to the cell body. These trends can also be observed in Figures 3D and 3E.

Figure 1
Figure 1: Flow chart of the Bonfire program. Neurons are traced using ImageJ. The data are then exported and converted by the Bonfire program into preliminary .swc files. NeuronStudio is used to define the connectivity of the neurites. Bonfire checks for errors and then calculates Sholl curves, the number of primary, secondary, and higher order neurites, and the number of branch points and neurite tips. Finally, the data are exported to Excel for statistical analysis.

Figure 2
Figure 2: File structure required for Bonfire analysis. The file structure must match this or the program will not run correctly. The names of the folders and files and the quantity of the folders and files can be changed.

Figure 3
Figure 3: Example output data from Bonfire program. A) Total Sholl curves. B) Example inverted images of both conditions. C) Average number of branch points and terminal points/cell. D) Average number of processes/cell for primary, secondary, and tertiary or greater neurites. E) Average number of processes/cell for root, intermediate, and terminal neurites. F) Segment identity-specific Sholl analysis curves. Segments are grouped as primary, secondary, or tertiary or greater. G) Segment identity-specific Sholl analysis curves. Segments are grouped as root segments, intermediate segments, or terminal segments.

Subscription Required. Please recommend JoVE to your librarian.


The Bonfire program is a semi-automated program for the analysis of dendrite and axon morphology. It greatly increases the efficiency and accuracy of Sholl analysis over performing the analysis manually. In addition, the Bonfire program saves the data at every step of the process, making it possible to audit the data and to verify the accuracy of the analysis. Therefore, the task of data analysis can be distributed to numerous individuals without compromising accuracy. Lastly, by performing the analysis on subregions of the images, the program is able to identify local changes in branching that are missed when Sholl analysis is run only on the entire dendrite or axon arbor. Our program is able to identify how specific subsets of neurites are arranged in reference to the cell body. As a result, the branching patterns in the images are well- represented by the data that are generated by the Bonfire program.

Subscription Required. Please recommend JoVE to your librarian.


The authors declare no competing interests. The funding agencies had no scientific role in the development of Bonfire.


This work was supported in part by a Busch Biomedical Grant, NSF grant IBN-0548543, NSF grant IBN-0919747, March of Dimes Foundation Grant 1-FY04-107, March of Dimes Foundation Grant 1-FY08-464 (to B.L.F). M.K.K. and C.G.L. were supported by NIH Biotechnology Training Grant T32 GM008339-20, and C.G.L. was also supported by a NJ Commission on Spinal Cord Research Predoctoral Fellowship 08-2941-SCR-E-0.


Name Company Catalog Number Comments
NeuronJ plugin
ImageJ software
Bonfire program
MatLab Program Mathworks



  1. Elston, G. N. Pyramidal cells of the frontal lobe: all the more spinous to think with. J Neurosci. 20, (2000).
  2. Koch, C., Segev, I. The role of single neurons in information processing. Nat Neurosci. Suppl 3. 1171-1177 (2000).
  3. Poirazi, P., Mel, B. W. Impact of active dendrites and structural plasticity on the memory capacity of neural tissue. Neuron. 29, 779-796 (2001).
  4. Schaefer, A. T., Larkum, M. E., Sakmann, B., Roth, A. Coincidence detection in pyramidal neurons is tuned by their dendritic branching pattern. J Neurophysiol. 89, 3143-3154 (2003).
  5. Vetter, P., Roth, A., Hausser, M. Propagation of action potentials in dendrites depends on dendritic morphology. J Neurophysiol. 85, 926-937 (2001).
  6. Hausser, M., Spruston, N., Stuart, G. J. Diversity and dynamics of dendritic signaling. Science. 290, 739-744 (2000).
  7. Brette, R. Simulation of networks of spiking neurons: a review of tools and strategies. J Comput Neurosci. 23, 349-398 (2007).
  8. Arendt, T., Zvegintseva, H. G., Leontovich, T. A. Dendritic changes in the basal nucleus of Meynert and in the diagonal band nucleus in Alzheimer's disease--a quantitative Golgi investigation. Neuroscience. 19, 1265-1278 (1986).
  9. Harrison, P. J. The neuropathology of schizophrenia. A critical review of the data and their interpretation. Brain. 122, 593-624 (1999).
  10. Lewis, D. A., Glantz, L. A., Pierri, J. N., Sweet, R. A. Altered cortical glutamate neurotransmission in schizophrenia: evidence from morphological studies of pyramidal neurons. Ann N Y Acad Sci. 1003, 102-112 (2003).
  11. Kaufmann, W. E., Moser, H. W. Dendritic anomalies in disorders associated with mental retardation. Cereb Cortex. 10, 981-991 (2000).
  12. Georges, P. C., Hadzimichalis, N. M., Sweet, E. S., Firestein, B. L. The yin-yang of dendrite morphology: unity of actin and microtubules. Mol Neurobiol. 38, 270-284 (2008).
  13. Firestein, B. L. Cypin: a cytosolic regulator of PSD-95 postsynaptic targeting. Neuron. 24, 659-672 (1999).



  1. Hi!
    I already have the tracings from NeuronJ analysis, labeled as primary, secondary, terciary (starting with N1). How can I uses tehm for Sholl?

    Posted by: Anonymous
    May 11, 2011 - 8:07 AM
  2. Traces labeled as "Primary," "Secondary," "Tertiary," and "Default" should all be handled appropriately as neurites by the program. Traces labeled "Cell Body," Type 06," or "Soma" will all be handled as an indicator of cell body location. You should, therefore, still be able to use them with the Bonfire program.

    Posted by: Anonymous
    May 11, 2011 - 7:44 PM
  3. Another common question we have received is as follows:

    "I use different magnifications in different experiments. How can I readjust the settings within Bonfire to account for this?"

    When you are using the program with different microscope set-ups you will definitely have to change the scale (as each microscope will cover a different number of micrometers with each pixel). This is done in the file named . It contains a number of variables that are dependent on the set up and analysis being performed. Descriptions of what each variable is used for are located in the file itself. Open and enter the values you need for your particular set up in order to correctly calibrate the program to your experimental set up.

    Posted by: Anonymous
    May 11, 2011 - 7:49 PM
  4. Hi.

    When I try to use the bonfire_ndf²swc command after the file folders have been reorganized by bonfire, I get this error message: Undefined function 'range' for input arguments of type 'double'.

    Error in bonfire_ndf²swc (line 43)
    r start = mean ([range(cell_body(1:max(find(cell_bodyX(:,1))),1)) range (cell_bodyY(1:max (find(cell_bodyY(:,1))),1))])/²;

    Have you encountered this before?

    Posted by: Jalina G.
    July 9, 2012 - 5:55 PM

Post a Question / Comment / Request

You must be signed in to post a comment. Please or create an account.

Usage Statistics