Skip to content
This repository has been archived by the owner on Jul 20, 2021. It is now read-only.

Commit

Permalink
Merge pull request #8 from tferr/asa-snt
Browse files Browse the repository at this point in the history
Implement the ShollAnalysisPlugin
  • Loading branch information
tferr authored Oct 25, 2016
2 parents 4e0185f + 9e898fb commit 73ff077
Show file tree
Hide file tree
Showing 7 changed files with 559 additions and 23 deletions.
8 changes: 1 addition & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,6 @@
<dependency>
<groupId>ca.mcgill</groupId>
<artifactId>Sholl_Analysis</artifactId>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand All @@ -172,6 +166,6 @@
</dependency>
</dependencies>
<properties>
<Sholl_Analysis.version>3.6.7</Sholl_Analysis.version>
<Sholl_Analysis.version>3.6.8</Sholl_Analysis.version>
</properties>
</project>
73 changes: 64 additions & 9 deletions src/main/java/tracing/NeuriteTracerResultsDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import ij.ImagePlus;
import ij.WindowManager;
import ij.gui.GenericDialog;
import ij.gui.WaitForUserDialog;
import ij.gui.YesNoCancelDialog;
import ij.io.FileInfo;
import ij.io.OpenDialog;
Expand Down Expand Up @@ -101,7 +102,6 @@ public class NeuriteTracerResultsDialog
protected JMenuItem makeLineStackMenuItem;
protected JMenuItem exportCSVMenuItemAgain;
protected JMenuItem sendToTrakEM2;
protected JMenuItem shollAnalysiHelpMenuItem;

protected JCheckBoxMenuItem mipOverlayMenuItem;
protected JCheckBoxMenuItem drawDiametersXYMenuItem;
Expand Down Expand Up @@ -714,6 +714,8 @@ public NeuriteTracerResultsDialog( String title,
viewMenu = new JMenu("View");
menuBar.add(viewMenu);

menuBar.add(helpMenu());

loadMenuItem = new JMenuItem("Load traces / SWC file...");
loadMenuItem.addActionListener(this);
fileMenu.add(loadMenuItem);
Expand Down Expand Up @@ -754,10 +756,6 @@ public NeuriteTracerResultsDialog( String title,
exportCSVMenuItemAgain.addActionListener(this);
analysisMenu.add(exportCSVMenuItemAgain);

shollAnalysiHelpMenuItem = new JMenuItem("Sholl Analysis help...");
shollAnalysiHelpMenuItem.addActionListener(this);
analysisMenu.add(shollAnalysiHelpMenuItem);

String opacityLabel = "Show MIP overlay(s) at "+
SimpleNeuriteTracer.OVERLAY_OPACITY_PERCENT+
"% opacity";
Expand Down Expand Up @@ -1287,10 +1285,6 @@ public void actionPerformed( ActionEvent e ) {
imagePlus.show();
}

} else if( source == shollAnalysiHelpMenuItem ) {

IJ.runPlugIn("ij.plugin.BrowserLauncher", "http://fiji.sc/wiki/index.php/Simple_Neurite_Tracer:_Sholl_analysis");

} else if( source == cancelSearch ) {

if( currentState == SEARCHING ) {
Expand Down Expand Up @@ -1522,4 +1516,65 @@ public void textValueChanged( TextEvent e ) {
plugin.justDisplayNearSlices(nearbySlices(),getEitherSide());
}

private JMenu helpMenu() {
final JMenu helpMenu = new JMenu("Help");
final String URL = "http://imagej.net/Simple_Neurite_Tracer";
JMenuItem mi = menuItemTrigerringURL("Main documentation page", URL);
helpMenu.add(mi);
helpMenu.addSeparator();
mi = menuItemTrigerringURL("Tutorials", URL + "#Tutorials");
helpMenu.add(mi);
mi = menuItemTrigerringURL("Basic instructions", URL + ":_Basic_Instructions");
helpMenu.add(mi);
mi = menuItemTrigerringURL("Step-by-step instructions", URL + ":_Step-By-Step_Instructions");
helpMenu.add(mi);
mi = menuItemTrigerringURL("3D interaction", URL + ":_3D_Interaction");
helpMenu.add(mi);
helpMenu.addSeparator();
mi = menuItemTrigerringURL("List of shortcuts", URL + ":_Key_Shortcuts");
helpMenu.add(mi);
helpMenu.addSeparator();
mi = menuItemTrigerringURL("Sholl analysis: Online help", URL + ":_Sholl_analysis");
helpMenu.add(mi);
mi = new JMenuItem("Sholl analysis: Offline help");
mi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
final Thread newThread = new Thread(new Runnable() {
@Override
public void run() {
String modKey = IJ.isMacOSX() ? "Alt" : "Ctrl";
modKey += "+Shift";
final String instructions = "To manually select the center of analysis:\n"
+ " 1. Mouse over the path of interest and press \"G\" to activate it\n"
+ " 2. Press \"" + modKey + "\" to select a point along the path\n"
+ " 3. Press \"" + modKey + "+A\" to initiate Sholl analysis\n \n"
+ "For batch processing run \"Sholl Analysis (Tracings)...\".";
final WaitForUserDialog wd = new WaitForUserDialog("Sholl Analysis Cheat Sheet", instructions);
wd.show();
}
});
newThread.start();
}
});
helpMenu.add(mi);
helpMenu.addSeparator();
mi = menuItemTrigerringURL("Ask a question", "http://forum.imagej.net");
helpMenu.add(mi);
helpMenu.addSeparator();
mi = menuItemTrigerringURL("Citing SNT...", URL + "#Citing_Simple_Neurite_Tracer");
helpMenu.add(mi);
return helpMenu;
}

public static JMenuItem menuItemTrigerringURL(final String label, final String URL) {
final JMenuItem mi = new JMenuItem(label);
mi.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
IJ.runPlugIn("ij.plugin.BrowserLauncher", URL);
}
});
return mi;
}
}
11 changes: 7 additions & 4 deletions src/main/java/tracing/PathAndFillManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -1719,9 +1719,11 @@ public boolean importSWC( BufferedReader br, boolean assumeCoordinatesIndexVoxel
if( previous == -1 )
primaryPoints.add( p );
else {
SWCPoint previousPoint = idToSWCPoint.get( previous );
p.previousPoint = previousPoint;
previousPoint.addNextPoint( p );
SWCPoint previousPoint = idToSWCPoint.get(previous);
if (previousPoint != null) {
p.previousPoint = previousPoint;
previousPoint.addNextPoint(p);
}
}
} catch( NumberFormatException nfe ) {
IJ.error( "There was a malformed number in line: "+line );
Expand Down Expand Up @@ -1796,7 +1798,8 @@ public boolean importSWC( BufferedReader br, boolean assumeCoordinatesIndexVoxel
}

if( alreadySeen.size() > 0 ) {
IJ.error( "Malformed file: there are some misconnected points" );
IJ.error("Malformed file: there are some misconnected points.\n"
+ "(List will now be shown in ImageJ's Console)");
for( int i : alreadySeen ) {
SWCPoint p = idToSWCPoint.get( i );
System.out.println( " Misconnected: " + p);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/tracing/ShollAnalysisDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,7 @@ public void analyzeWithShollAnalysisPlugin(final String exportDir, final double
sa.setCenter(pX, pY, pZ);
sa.setUnit(cal.getUnit());
}
sa.setStepRadius(sphereSeparation);
sa.setPrimaryBranches(primaryBranches);
sa.setExportPath(exportDir);
sa.analyzeProfile(sampled_distances, sampled_counts, !twoDimensional);
Expand Down
Loading

0 comments on commit 73ff077

Please sign in to comment.