def __init__(self, InSelFile, InDocFile, MissingDocFile, WorkingDir, DoDeleteWorkingDir, ProjectDir, LogDir, OutputRootName, NumberOfIterations, DoKeepAngles, RestartIter, Symmetry, Dimension, MaximumResolution, ExtraParamsMLtomo, DoAlign, AngularSampling, AngularSearchRange, DoPerturb, NumberOfReferences, SeedsSelfile, InitialRegularization, NumberRegularizationSteps, MaskName, NumberOfThreads, DoParallel, NumberOfMpi, SystemFlavour): 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 log,selfile self.InSelFile=InSelFile self.InDocFile=InDocFile self.MissingDocFile=MissingDocFile self.WorkingDir=WorkingDir self.DoDeleteWorkingDir=DoDeleteWorkingDir self.ProjectDir=ProjectDir self.LogDir=LogDir self.OutputRootName=OutputRootName self.NumberOfIterations=NumberOfIterations self.DoKeepAngles=DoKeepAngles self.RestartIter=RestartIter self.Symmetry=Symmetry self.Dimension=Dimension self.MaximumResolution=MaximumResolution self.ExtraParamsMLtomo=ExtraParamsMLtomo self.DoAlign=DoAlign self.AngularSampling=AngularSampling self.AngularSearchRange=AngularSearchRange self.DoPerturb=DoPerturb self.NumberOfReferences=NumberOfReferences self.SeedsSelfile=SeedsSelfile self.InitialRegularization=InitialRegularization self.NumberRegularizationSteps=NumberRegularizationSteps self.MaskName=MaskName self.NumberOfThreads=NumberOfThreads self.DoParallel=DoParallel self.NumberOfMpi=NumberOfMpi self.SystemFlavour=SystemFlavour # Setup logging self.log=log.init_log_system(self.ProjectDir, self.LogDir, sys.argv[0], self.WorkingDir) # This is not a restart if (self.RestartIter < 1): # Delete working directory if it exists, make a new one if (DoDeleteWorkingDir): if (self.WorkingDir==""): raise RuntimeError,"No working directory given" if os.path.exists(self.WorkingDir): shutil.rmtree(self.WorkingDir) if not os.path.exists(self.WorkingDir): os.makedirs(self.WorkingDir) # Backup script log.make_backup_of_script_file(sys.argv[0], os.path.abspath(self.WorkingDir)) # This protocol is executed from the ProjectDir self.execute_MLtomo()
def __init__(self, InSelFile, WorkingDir, ProjectDir, LogDir, ReferenceImage, NumberOfIterations, DoFilter, Highpass, Lowpass, NumberOfMpi, SystemFlavour): 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 log self.WorkingDir=WorkingDir self.ProjectDir=ProjectDir self.InSelFile=InSelFile self.ReferenceImage=ReferenceImage self.NumberOfIterations=NumberOfIterations self.DoFilter=DoFilter self.Highpass=Highpass self.Lowpass=Lowpass self.NumberOfMpi=NumberOfMpi self.SystemFlavour=SystemFlavour # Setup logging self.log=log.init_log_system(self.ProjectDir, LogDir, sys.argv[0], self.WorkingDir) # Create directory if does not exist if not os.path.exists(self.WorkingDir): os.makedirs(self.WorkingDir) self.doStep1=True self.doStep2=True # Save parameters and compare to possible previous runs self.saveAndCompareParameters([ "InSelFile", "ReferenceImage", "NumberOfIterations", "DoFilter", "Highpass", "Lowpass"]); # Backup script log.make_backup_of_script_file(sys.argv[0], os.path.abspath(self.WorkingDir)) # Update status fh=open(self.WorkingDir + "/status.txt", "a") fh.write("Step 0: Process started at " + time.asctime() + "\n") fh.close() # Run self.preprocess() self.execute_CLalign2D() self.postprocess() fh=open(self.WorkingDir + "/status.txt", "a") fh.write("Step F: Process finished at " + time.asctime() + "\n") fh.close()