'edu.jhu.ece.iacl.plugins.utilities.math.MedicAlgorithmImageCalculator', 'de.mpg.cbs.jist.brain.JistBrainMp2rageDuraEstimation', 'de.mpg.cbs.jist.brain.JistBrainPartialVolumeFilter', 'edu.jhu.ece.iacl.plugins.utilities.volume.MedicAlgorithmThresholdToBinaryMask', # 'de.mpg.cbs.jist.cortex.JistCortexFullCRUISE', # waiting for http://www.nitrc.org/tracker/index.php?func=detail&aid=7236&group_id=228&atid=942 to be fixed 'de.mpg.cbs.jist.cortex.JistCortexSurfaceMeshInflation' ] modules_from_julia = [ 'de.mpg.cbs.jist.intensity.JistIntensityMp2rageMasking', 'edu.jhu.ece.iacl.plugins.segmentation.skull_strip.MedicAlgorithmSPECTRE2010' ] modules_from_leonie = [ 'edu.jhu.ece.iacl.plugins.classification.MedicAlgorithmLesionToads' ] modules_from_yasinyazici = [ 'edu.jhu.ece.iacl.plugins.classification.MedicAlgorithmN3' ] modules_list = list( set(modules_list).union(modules_from_chris).union( modules_from_leonie).union(modules_from_julia).union( modules_from_yasinyazici).union(modules_list)) generate_all_classes(modules_list=modules_list, launcher=["java edu.jhu.ece.iacl.jist.cli.run"], redirect_x=True, mipav_hacks=True)
'VBRAINSDemonWarp', 'extractNrrdVectorIndex', 'gtractAnisotropyMap', 'gtractAverageBvalues', 'gtractClipAnisotropy', 'gtractCoRegAnatomy', 'gtractConcatDwi', 'gtractCopyImageOrientation', 'gtractCoregBvalues', 'gtractCostFastMarching', 'gtractImageConformity', 'gtractInvertBSplineTransform', 'gtractInvertDisplacementField', 'gtractInvertRigidTransform', 'gtractResampleAnisotropy', 'gtractResampleB0', 'gtractResampleCodeImage', 'gtractResampleDWIInPlace', 'gtractTensor', 'gtractTransformToDisplacementField', 'GenerateLabelMapFromProbabilityMap', 'BRAINSLinearModelerEPCA', 'BRAINSCut', ] launcher=[''] generate_all_classes(modules_list=modules_list, launcher=[])
OUTPUT_PATH = os.path.join(args.output_path, 'semtools') if os.path.exists(OUTPUT_PATH): shutil.rmtree(OUTPUT_PATH) os.mkdir(OUTPUT_PATH) os.chdir(OUTPUT_PATH) found_modules_list = list() missing_modules_list = list() for test_module in all_known_modules_list: for currPath in SEARCH_PATHS: currProgPath = os.path.join(currPath, test_module) if os.path.exists(currProgPath): found_modules_list.append(test_module) break else: missing_modules_list.append(test_module) generate_all_classes(modules_list=found_modules_list, launcher=[]) help_file = open(os.path.join(OUTPUT_PATH, 'generated.sh'), 'w') help_file.write(' '.join(sys.argv) + "\n") help_file.close() print(("\n\nRan: ", ' '.join(sys.argv), "\n\n")) print(("FOUND: ", found_modules_list)) for test_module in missing_modules_list: print(("Missing Candidate Program: {prog_name}".format( prog_name=test_module)))
modules_list = ['edu.jhu.bme.smile.demo.RandomVol', 'de.mpg.cbs.jist.laminar.JistLaminarProfileCalculator', 'de.mpg.cbs.jist.laminar.JistLaminarProfileSampling', 'de.mpg.cbs.jist.laminar.JistLaminarROIAveraging', 'de.mpg.cbs.jist.laminar.JistLaminarVolumetricLayering', 'de.mpg.cbs.jist.laminar.JistLaminarProfileGeometry', 'de.mpg.cbs.jist.brain.JistBrainMgdmSegmentation', 'de.mpg.cbs.jist.brain.JistBrainMp2rageSkullStripping', 'de.mpg.cbs.jist.brain.JistBrainPartialVolumeFilter', 'de.mpg.cbs.jist.brain.JistBrainMp2rageDuraEstimation'] modules_from_chris = ['edu.jhu.ece.iacl.plugins.segmentation.skull_strip.MedicAlgorithmSPECTRE2010', 'edu.jhu.ece.iacl.plugins.utilities.volume.MedicAlgorithmMipavReorient', 'edu.jhu.ece.iacl.plugins.utilities.math.MedicAlgorithmImageCalculator', 'de.mpg.cbs.jist.brain.JistBrainMp2rageDuraEstimation', 'de.mpg.cbs.jist.brain.JistBrainPartialVolumeFilter', 'edu.jhu.ece.iacl.plugins.utilities.volume.MedicAlgorithmThresholdToBinaryMask', # 'de.mpg.cbs.jist.cortex.JistCortexFullCRUISE', # waiting for http://www.nitrc.org/tracker/index.php?func=detail&aid=7236&group_id=228&atid=942 to be fixed 'de.mpg.cbs.jist.cortex.JistCortexSurfaceMeshInflation'] modules_from_julia = ['de.mpg.cbs.jist.intensity.JistIntensityMp2rageMasking', 'edu.jhu.ece.iacl.plugins.segmentation.skull_strip.MedicAlgorithmSPECTRE2010'] modules_from_leonie = ['edu.jhu.ece.iacl.plugins.classification.MedicAlgorithmLesionToads'] modules_from_yasinyazici = ['edu.jhu.ece.iacl.plugins.classification.MedicAlgorithmN3'] modules_list = list(set(modules_list).union(modules_from_chris).union(modules_from_leonie).union(modules_from_julia).union(modules_from_yasinyazici).union(modules_list)) generate_all_classes(modules_list=modules_list, launcher=["java edu.jhu.ece.iacl.jist.cli.run"], redirect_x=True, mipav_hacks=True)
#exec_dir = '/scratch/src/BRAINS4-build/bin' #exec_dir = '/scratch/johnsonhj/src/BRAINS4-buld/bin' exec_dir = '/Users/johnsonhj/src/BRAINS4-build/bin' for candidate_exe in test_list.split(): test_command = exec_dir + "/" + candidate_exe + " --xml" xmlReturnValue = subprocess.Popen(test_command, stdout=subprocess.PIPE, shell=True).communicate()[0] isThisAnSEMExecutable = xmlReturnValue.find("<executable>") if isThisAnSEMExecutable != -1: SEM_exe.append(candidate_exe) print("SEM_PROGRAMS: {0}".format(SEM_exe)) ## NOTE: For now either the launcher needs to be found on the default path, or ## every tool in the modules list must be found on the default path ## AND calling the module with --xml must be supported and compliant. ## modules_list = ['BRAINSConstellationDetector','BRAINSFit', 'BRAINSResample', 'BRAINSDemonWarp', 'BRAINSROIAuto'] ## SlicerExecutionModel compliant tools that are usually statically built, and don't need the Slicer3 --launcher SEM.generate_all_classes(modules_list=SEM_exe, launcher=[]) ### This uses the unsuppored "point" SEM type ### TransformFromFiducials ### This uses the unsupported "geometry" SEM type ### compareTractInclusion ### gtractCreateGuideFiber ### gtractFiberTracking ### gtractCostFastMarching ### gtractFastMarchingTracking ### gtractResampleFibers
SEM_exe = list() # exec_dir = '/scratch/src/BRAINS4-build/bin' # exec_dir = '/scratch/johnsonhj/src/BRAINS4-buld/bin' exec_dir = "/Users/johnsonhj/src/BRAINS4-build/bin" for candidate_exe in test_list.split(): test_command = exec_dir + "/" + candidate_exe + " --xml" xmlReturnValue = subprocess.Popen(test_command, stdout=subprocess.PIPE, shell=True).communicate()[0] isThisAnSEMExecutable = xmlReturnValue.find("<executable>") if isThisAnSEMExecutable != -1: SEM_exe.append(candidate_exe) print("SEM_PROGRAMS: {0}".format(SEM_exe)) ## NOTE: For now either the launcher needs to be found on the default path, or ## every tool in the modules list must be found on the default path ## AND calling the module with --xml must be supported and compliant. ## modules_list = ['BRAINSConstellationDetector','BRAINSFit', 'BRAINSResample', 'BRAINSDemonWarp', 'BRAINSROIAuto'] ## SlicerExecutionModel compliant tools that are usually statically built, and don't need the Slicer3 --launcher SEM.generate_all_classes(modules_list=SEM_exe, launcher=[]) ### This uses the unsuppored "point" SEM type ### TransformFromFiducials ### This uses the unsupported "geometry" SEM type ### compareTractInclusion ### gtractCreateGuideFiber ### gtractFiberTracking ### gtractCostFastMarching ### gtractFastMarchingTracking ### gtractResampleFibers