User Tools

Site Tools


plugin:morphology:neurite_morphology_macro:start

Neurite Morph Macro

Neurite Morphology Macro

Introduction

This macro measures the neurite average length, area and perimeter per neuron from epifluorescence micrographs.

This macro is currently maintained and supported by a NIH P20GM103354-04 grant.

Author

Ruben K. Dagda, Ph.D., University of Nevada School of Medicine Contact: rdagda@medicine.nevada.edu

Features

Semiautomated quantification of length (um), area (um^2) and perimeter (um) per epifluorescence micrograph. The Measure Neurites macro is optimized to measure neurites of GFP transfected, differentiated SH-SY5Y cells, and primary cortical neurons. However, the macro can be customized depending on the neuronal population being analyzed by changing the value of the average soma perimeter (line 34) that is subtracted from the total average cellular perimeter lengths to obtain average neurite perimeters.

Description

The macro opens up RGB images, splits them into individual channels, and performs photographic inversion of the green channel. The macro allows the user time to manually threshold the pixels (set a minimum pixel value for the structures to be analyzed in a given epifluorescent field) to trace the neurites The macro then computes the number of neurites, summation of the areas and perimeters of soma and neurites, and the average neuritic area and perimeter per epifluorescent field. The results can be pasted onto an Excel spreadsheet. The summated neurite perimeters for each image is divided by 2, assuming negligible contributions of neurite thicknesses, to yield the summed total of neurite lengths, then normalized to the number of cells analyzed in the image (determined by counting the number of green neurons with DAPI stained nuclei), prior to statistical analysis

Installation

Copy the macro code onto a Notepad file, save it as text file and move the file to the “Macros” folder of ImageJ. The macro uses “Wait for User” Plug-in. Download the “Wait for User” class and JAVA files and transfer them to the Plug-in folder prior to running the macro. Press the “F4” key to start the macro.

Download

Download “Wait for User” files first, then copy macro text and save it as a text file. wait_for_user.class wait_for_user.java

 // Measures the length of neurites in GFP transfected cells //fluorescence
  macro "Measure Neurite Length [F4]" 
 // This macro was designed to measure the neurite lengths of SH-SY5Y cells at 20X
//magnification
// Creator: Ruben Dagda, Chu-Lab 030207
{
print("Neurite Length Macro, Ruben Dagda 03/02/07");
wait(1000);
open();
run("RGB Split");
close();
run("Invert");
run("Sharpen");
//run("Threshold...");
beep();
run("Wait For User", "Threshold your neurites now and press OK when done");  
run("Set Measurements...", "area perimeter redirect=None decimal=2" );
run("Analyze Particles...", "minimum=700 maximum=500000 bins=100 show=Outlines display  
clear   summarize");
for (i=0; i<nResults; i++){
SP+= getResult('Perim.',i);
                 A +=getResult('Area', i);
 }
wait(3000);
 s = getString("Are you OK with the outlines of the neurons? [y/n+comment]","n");
 if (fromCharCode(charCodeAt(s,0)) == "N") 
   exit;  // Have to start over and fix Macro to fit the right outlines of most cells
else {
 AP= SP/ i;       //This statement is the same as Average Neurite length is the Sum of 
                       all  lengths divided by total counts
AA= A/ i;         //This statement is defined as the Average Area of neurites
Adjusted_SP=AP-94.38;
print(getTitle());  print("Neurite Count:"+i); print("Total perimeter:"+ SP); print 
("Total Area:"+A);print("Average Perimeter:"+Adjusted_SP);print("Average Area:"+AA);
    // Prints out the Sum of perimeter, Adjusted Perimeter, Average area, Average   
Perimeter, Area, Average Area 
selectWindow("Results");
selectWindow("Log");
wait(3000);
selectWindow("Results");
selectWindow("Log");
close();
close();
close();
   //Closes all windows except your results which you can transfer to Excel
}
}

Download 2

This macro measures the average neurite length per field and counts the number of nuclei in the blue channel of RGB images. Thus neurite length can be normalized to cell number.

// Measures the length of neurites in GFP transfected cells //fluorescence
   macro "Measure Neurite Length [F4]" 
// This macro was designed to measure the neurite lengths of SH-SY5Y cells at 20X
//magnification.
// Creator: Ruben Dagda, Chu-Lab 05/18/08
{
print("Neurite Length Macro, Ruben Dagda 05/18/08");
print("Remember to set your correct scale at the global setting prior to running the  
 macro   and calculate your average soma perimeter and area for your cell line");
wait(1000);
open();
run("RGB Split");
wait(3000);
run("Invert");
run("Sharpen");
//run("Threshold...");
wait (17000);
run("Set Measurements...", "area perimeter  redirect=None decimal=2" );
run("Analyze Particles...", "minimum=300 maximum=500000 bins=100 show=Outlines display    
summarize");
for (i=0; i<nResults; i++){
SP+= getResult('Perim.',i);
                 A +=getResult('Area', i);
}
wait(3000);
s = getString("Are you OK with the outlines of the neurons? [y/n+comment]","n");
if (fromCharCode(charCodeAt(s,0)) == "N") 
  exit;  // Have to start over and fix Macro to fit the right outlines of most cells
else {        
print(getTitle());  print("Neurite Count:"+i); print("Total perimeter:"+ SP); print("Total 
 Area:"+A);
    // Prints out the Sum of perimeter, Adjusted Perimeter, Average area, Average  
Perimeter, Area, Average Area
selectWindow("Results");
selectWindow("Log");
wait(3000);
s = getString("Do you want to count the number of neurons using a nuclei stain? 
[y/n+comment]","n");
if (fromCharCode(charCodeAt(s,0)) == "N") 
  exit;  // Have to start over and fix Macro to fit the right outlines of most cells
    else {
          wait(5000);
          run("Invert");
         //run("Threshold...");
         wait (10000);
        run("Analyze Particles...", " minimum=400 maximum=500000 bins=100 show=Outlines  
display clear summarize");
close();
close();
close();
print("Total nuclei in the field:"+nResults);
print("To obtain average cellular neuritic perimeter: ((Total Perimeter- Average  
 soma)/2)/nuclei (from blue channel)");
selectWindow("Summary");
selectWindow("Results");
   //Closes all windows except your results which you can transfer to Excel
}
}

License

Please cite the following paper if pulishing results with this macro: Chu, C.T., Plowey, E.D., Dagda, R.K., Hickey, R.W. , Cherra III, S.J., and Clark, R.S. Autophagy in Neurite Injury and Neurodegeneration: in vitro and in vivo models. Meth. Enzymol: 453:217-49, 2009, PMID: 19216909

Changelog

Known Bugs

Please report any problems.

plugin/morphology/neurite_morphology_macro/start.txt · Last modified: 2019/04/12 13:13 (external edit)