annotate jython_script.py @ 0:a989ca433027 draft

planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
author iuc
date Tue, 04 Aug 2015 11:14:30 -0400
parents
children dd8e4e000d2f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
1 import jython_utils
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
2 import math
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
3 import sys
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
4 from ij import IJ
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
5 from ij import ImagePlus
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
6 from skeleton_analysis import AnalyzeSkeleton_
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
7
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
8 BASIC_NAMES = [ 'Branches', 'Junctions', 'End-point Voxels',
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
9 'Junction Voxels', 'Slab Voxels', 'Average branch length',
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
10 'Triple Points', 'Quadruple Points', 'Maximum Branch Length' ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
11 DETAIL_NAMES = [ 'Skeleton ID', 'Branch length', 'V1 x', 'V1 y', 'V1 z', 'V2 x',
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
12 'V2 y', 'V2 z', 'Euclidean distance' ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
13 VALID_IMAGE_TYPES = [ ImagePlus.GRAY8 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
14
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
15 def asbool( val ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
16 return val == 'yes'
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
17
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
18 def get_euclidean_distance( vertex1, vertex2 ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
19 x1, y1, z1 = get_points( vertex1 )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
20 x2, y2, z2 = get_points( vertex2 )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
21 return math.sqrt( math.pow( ( x2 - x1 ), 2 ) +
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
22 math.pow( ( y2 - y1 ), 2 ) +
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
23 math.pow( ( z2 - z1 ), 2 ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
24
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
25 def get_graph_length( graph ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
26 length = 0
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
27 for edge in graph.getEdges():
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
28 length = length + edge.getLength()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
29 return length
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
30
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
31 def get_points( vertex ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
32 # An array of Point, which has attributes x,y,z.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
33 point = vertex.getPoints()[ 0 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
34 return point.x, point.y, point.z
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
35
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
36 def get_sorted_edge_lengths( graph ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
37 # Return graph edges sorted from longest to shortest.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
38 edges = graph.getEdges()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
39 edges = sorted( edges, key=lambda edge: edge.getLength(), reverse=True )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
40 return edges
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
41
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
42 def get_sorted_graph_lengths( result ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
43 # Get the separate graphs (skeletons).
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
44 graphs = result.getGraph()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
45 # Sort graphs from longest to shortest.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
46 graphs = sorted( graphs, key=lambda g: get_graph_length( g ), reverse=True )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
47 return graphs
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
48
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
49 def save( result, output, show_detailed_info, calculate_largest_shortest_path, sep='\t' ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
50 num_trees = int( result.getNumOfTrees() )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
51 outf = open( output, 'wb' )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
52 outf.write( '# %s\n' % sep.join( BASIC_NAMES ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
53 for index in range( num_trees ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
54 outf.write( '%d%s' % ( result.getBranches()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
55 outf.write( '%d%s' % ( result.getJunctions()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
56 outf.write( '%d%s' % ( result.getEndPoints()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
57 outf.write( '%d%s' % ( result.getJunctionVoxels()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
58 outf.write( '%d%s' % ( len( result.getListOfSlabVoxels() ), sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
59 outf.write( '%.3f%s' % ( result.getAverageBranchLength()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
60 outf.write( '%d%s' % ( result.getTriples()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
61 outf.write( '%d%s' % ( result.getQuadruples()[ index ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
62 outf.write( '%.3f' % result.getMaximumBranchLength()[ index ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
63 if calculate_largest_shortest_path:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
64 outf.write( '%s%.3f%s' % ( sep, result.shortestPathList.get( index ), sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
65 outf.write( '%d%s' % ( result.spStartPosition[ index ][ 0 ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
66 outf.write( '%d%s' % ( result.spStartPosition[ index ][ 1 ], sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
67 outf.write( '%d\n' % result.spStartPosition[ index ][ 2 ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
68 else:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
69 outf.write( '\n' )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
70 if show_detailed_info:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
71 outf.write( '# %s\n' % sep.join( DETAIL_NAMES ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
72 # The following index is a placeholder for the skeleton ID.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
73 # The terms "graph" and "skeleton" refer to the same thing.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
74 # Also, the SkeletonResult.java code states that the
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
75 # private Graph[] graph object is an array of graphs (one
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
76 # per tree).
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
77 for index, graph in enumerate( get_sorted_graph_lengths( result ) ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
78 for edge in get_sorted_edge_lengths( graph ):
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
79 vertex1 = edge.getV1()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
80 x1, y1, z1 = get_points( vertex1 )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
81 vertex2 = edge.getV2()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
82 x2, y2, z2 = get_points( vertex2 )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
83 outf.write( '%d%s' % ( index+1, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
84 outf.write( '%.3f%s' % ( edge.getLength(), sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
85 outf.write( '%d%s' % ( x1, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
86 outf.write( '%d%s' % ( y1, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
87 outf.write( '%d%s' % ( z1, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
88 outf.write( '%d%s' % ( x2, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
89 outf.write( '%d%s' % ( y2, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
90 outf.write( '%d%s' % ( z2, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
91 outf.write( '%.3f' % get_euclidean_distance( vertex1, vertex2 ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
92 if calculate_largest_shortest_path:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
93 # Keep number of separated items the same for each line.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
94 outf.write( '%s %s' % ( sep, sep ) )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
95 outf.write( ' %s' % sep )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
96 outf.write( ' %s' % sep )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
97 outf.write( ' \n' )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
98 else:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
99 outf.write( '\n' )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
100 outf.close()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
101
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
102 # Fiji Jython interpreter implements Python 2.5 which does not
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
103 # provide support for argparse.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
104 error_log = sys.argv[ -7 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
105 input = sys.argv[ -6 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
106 prune_cycle_method = sys.argv[ -5 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
107 prune_ends = asbool( sys.argv[ -4 ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
108 calculate_largest_shortest_path = asbool( sys.argv[ -3 ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
109 if calculate_largest_shortest_path:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
110 BASIC_NAMES.extend( [ 'Longest Shortest Path', 'spx', 'spy', 'spz' ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
111 DETAIL_NAMES.extend( [ ' ', ' ', ' ', ' ' ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
112 show_detailed_info = asbool( sys.argv[ -2 ] )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
113 output = sys.argv[ -1 ]
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
114
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
115 # Open the input image file.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
116 input_image_plus = IJ.openImage( input )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
117 bit_depth = input_image_plus.getBitDepth()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
118 image_type = input_image_plus.getType()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
119
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
120 # Create a copy of the image.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
121 input_image_plus_copy = input_image_plus.createImagePlus()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
122 image_processor_copy = input_image_plus.getProcessor().duplicate()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
123 input_image_plus_copy.setProcessor( "iCopy", image_processor_copy )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
124
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
125 try:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
126 if image_type not in VALID_IMAGE_TYPES:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
127 # Convert the image to binary grayscale.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
128 IJ.run( input_image_plus_copy, "Make Binary","" )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
129 # Run AnalyzeSkeleton
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
130 analyze_skeleton = AnalyzeSkeleton_()
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
131 analyze_skeleton.setup( "", input_image_plus_copy )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
132 if prune_cycle_method == 'none':
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
133 prune_index = analyze_skeleton.NONE
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
134 elif prune_cycle_method == 'shortest_branch':
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
135 prune_index = analyze_skeleton.SHORTEST_BRANCH
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
136 elif prune_cycle_method == 'lowest_intensity_voxel':
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
137 prune_index = analyze_skeleton.LOWEST_INTENSITY_VOXEL
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
138 elif prune_cycle_method == 'lowest_intensity_branch':
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
139 prune_index = analyze_skeleton.LOWEST_INTENSITY_BRANCH
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
140 result = analyze_skeleton.run( prune_index,
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
141 prune_ends,
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
142 calculate_largest_shortest_path,
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
143 input_image_plus_copy,
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
144 True,
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
145 True )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
146 # Save the results.
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
147 save( result, output, show_detailed_info, calculate_largest_shortest_path )
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
148 except Exception, e:
a989ca433027 planemo upload commit 8f8692e83217a072a3ed928469621f1f606ab28a-dirty
iuc
parents:
diff changeset
149 jython_utils.handle_error( error_log, str( e ) )