Mercurial > repos > imgteam > imagej2_crop
annotate imagej2_math_jython_script.py @ 0:db3066ae9b09 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
| author | imgteam | 
|---|---|
| date | Wed, 25 Sep 2024 16:28:45 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 0 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 1 import sys | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 2 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 3 from ij import IJ | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 4 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 5 # Fiji Jython interpreter implements Python 2.5 which does not | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 6 # provide support for argparse.\ | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 7 input_file = sys.argv[-7] | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 8 operation = sys.argv[-6] | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 9 expression = sys.argv[-5] | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 10 if sys.argv[-4] in [None, "None"]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 11 bin_constant = None | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 12 else: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 13 bin_constant = int(sys.argv[-4]) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 14 if sys.argv[-3] in [None, "None"]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 15 float_constant = None | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 16 else: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 17 float_constant = float(sys.argv[-3]) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 18 tmp_output_path = sys.argv[-2] | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 19 output_datatype = sys.argv[-1] | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 20 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 21 print("\ninput_file: %s\n" % str(input_file)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 22 print("\noperation: %s\n" % str(operation)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 23 print("\nexpression: %s\n" % str(expression)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 24 print("\nbin_constant: %s\n" % str(bin_constant)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 25 print("\nfloat_constant: %s\n" % str(float_constant)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 26 print("\ntmp_output_path: %s\n" % str(tmp_output_path)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 27 print("\noutput_datatype: %s\n" % str(output_datatype)) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 28 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 29 # Open the input image file. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 30 input_image_plus = IJ.openImage(input_file) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 31 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 32 # Create a copy of the image. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 33 input_image_plus_copy = input_image_plus.duplicate() | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 34 image_processor_copy = input_image_plus_copy.getProcessor() | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 35 bit_depth = image_processor_copy.getBitDepth() | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 36 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 37 if operation.find("_") > 0: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 38 # Square_Root. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 39 new_operation = operation.replace("_", " ") | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 40 elif operation in ["Square", "Log", "Exp", "Abs", "Reciprocal"]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 41 # Unfortunately some ImageJ commands require a "..." ending | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 42 # while others do not. There seems to be no pattern. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 43 new_operation = "%s" % operation | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 44 else: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 45 new_operation = "%s..." % operation | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 46 | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 47 if operation == "Macro": | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 48 # Apply the macro code to the image via a call to it's | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 49 # ImageProcessor since this option does not work using | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 50 # the IJ.run() method. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 51 new_expression = expression.lstrip('"').rstrip('"') | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 52 options = "code=%s" % new_expression | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 53 image_processor_copy.applyMacro(new_expression) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 54 elif operation == "Min": | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 55 # Min does not work without using the ImageProcessor. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 56 image_processor_copy.min(float_constant) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 57 elif operation == "Max": | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 58 # Max does not work without using the ImageProcessor. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 59 image_processor_copy.max(float_constant) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 60 elif operation == "Abs": | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 61 if bit_depth not in [16, 32]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 62 # Convert the image to 32-bit. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 63 IJ.run(input_image_plus_copy, "32-bit", "") | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 64 IJ.run(input_image_plus_copy, new_operation, "") | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 65 elif operation == "Reciprocal": | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 66 if bit_depth != 32: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 67 # Convert the image to 32 bit. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 68 IJ.run(input_image_plus_copy, "32-bit", "") | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 69 IJ.run(input_image_plus_copy, new_operation, "") | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 70 else: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 71 if operation in ["AND", "OR", "XOR"]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 72 # Value is a binary number. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 73 options = "value=%d" % bin_constant | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 74 elif operation in ["Log", "Exp", "Square", "Square_Root"]: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 75 # No constant value. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 76 options = "" | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 77 else: | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 78 # Value is a floating point number. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 79 options = "value=%.3f" % float_constant | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 80 IJ.run(input_image_plus_copy, "%s" % new_operation, "%s" % options) | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 81 # Save the ImagePlus object as a new image. | 
| 
db3066ae9b09
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
 imgteam parents: diff
changeset | 82 IJ.saveAs(input_image_plus_copy, output_datatype, tmp_output_path) | 
