def execute_MLtomo(self): import os import launch_job, utils_xmipp if (self.RestartIter>0): print '*********************************************************************' print '* Restarting ml_tomo program :' restartname = utils_xmipp.composeFileName('ml3d_it',iter,'log') params= ' -restart ' + restartname else: print '*********************************************************************' print '* Executing ml_tomo program :' # General parameters params= ' -i ' + str(self.InSelFile) + \ ' -doc ' + str(self.InDocFile) + \ ' -o ' + str(self.WorkingDir) + "/" + str(self.OutputRootName) + \ ' -iter ' + str(self.NumberOfIterations) + \ ' -sym ' + str(self.Symmetry) +\ ' -maxres ' + str(self.MaximumResolution) if (len(self.MissingDocFile) > 0): params+= ' -missing ' + str(self.MissingDocFile) if (self.Dimension > 0): params+= ' -dim ' + str(self.Dimension) if (self.DoKeepAngles): params+= ' -keep_angles ' # Alignment parameters if (self.DoAlign): params+= ' -ang ' + str(self.AngularSampling) if (self.AngularSearchRange<360): params+= ' -ang_search ' + str(self.AngularSearchRange) if (self.DoPerturb): params+= ' -perturb ' else: params+= ' -dont_align ' # Classification parameters if (len(self.SeedsSelfile)>0): params+= ' -ref ' + str(self.SeedsSelfile) else: params+= ' -nref ' + str(self.NumberOfReferences) if (self.InitialRegularization>0): params+= ' -reg0 ' + str(self.InitialRegularization) params+= ' -reg_steps ' + str(self.NumberRegularizationSteps) if (len(self.MaskName) > 0): if (self.DoAlign): print '********************************************************************************' print '* ERROR: you can only provide a mask if you do NOT allow orientations to change' self.close() else: params+= ' -mask ' + str(self.MaskName) # Extra parameters if (len(self.ExtraParamsMLtomo) > 0): params+=' ' + str (self.ExtraParamsMLtomo) # Thread parallelization if (self.NumberOfThreads > 1): params+=' -thr ' + str(self.NumberOfThreads) launchJob("xmipp_ml_tomo", params, self.log, self.DoParallel, self.NumberOfMpi, self.NumberOfThreads, self.SystemFlavour)
def __init__( self, SelectClasses, VisualizeVolZ, VisualizeVolX, VisualizeVolY, VisualizeVolChimera, MatrixWidth, VisualizeUntiltedAverages, VisualizeUntiltedImages, VisualizeTiltedImages, VisualizeVols, VisualizeFilteredVols, ProtocolName, ): import os, sys, shutil scriptdir = os.path.split(os.path.dirname(os.popen("which xmipp_protocols", "r").read()))[0] + "/protocols" sys.path.append(scriptdir) # add default search path import visualization, utils_xmipp # Import the corresponding protocol, get WorkingDir and go there pardir = os.path.abspath(os.getcwd()) shutil.copy(ProtocolName, "protocol.py") import protocol self.WorkingDir = protocol.WorkingDir os.chdir(self.WorkingDir) ShowVolumes = [] ShowSelfiles = [] ShowImages = [] refs = utils_xmipp.getCommaSeparatedIntegerList(SelectClasses) for ref in refs: basename = utils_xmipp.composeFileName("rct_ref", ref, "") if VisualizeUntiltedAverages: ShowImages.append(basename + "_untilted_avg.xmp") if VisualizeUntiltedImages: ShowSelfiles.append(basename + "_untilted.sel") if VisualizeTiltedImages: ShowSelfiles.append(basename + "_tilted.sel") if VisualizeVols: ShowVolumes.append(basename + "_tilted.vol") if VisualizeFilteredVols: ShowVolumes.append(basename + "_tilted_filtered.vol") visualization.visualize_volumes(ShowVolumes, VisualizeVolZ, VisualizeVolX, VisualizeVolY, VisualizeVolChimera) visualization.visualize_images(ShowSelfiles, True, MatrixWidth) visualization.visualize_images(ShowImages) # Return to parent dir and remove protocol.py(c) os.chdir(pardir) if os.path.exists("protocol.py"): os.remove("protocol.py") if os.path.exists("protocol.pyc"): os.remove("protocol.pyc")