def __init__(self, inp, output, logger=None): logger.info('FindBeamCenter.__init__') self.st = time.time() self.input,self.cpu,self.verbose,self.clean,self.ram,self.red = inp self.output = output self.logger = logger #Setting up data input self.setup = self.input[1] self.header = self.input[2] self.header2 = False if self.input[3].has_key('distance'): self.header2 = self.input[3] self.preferences = self.input[4] else: self.preferences = self.input[3] self.controller_address = self.input[-1] #Number of labelit runs to fine tune beam center and spacing from original #Should be even number for symmetry around original beam center self.iterations2 = 10 self.iterations2_space = 0.3 #self.iterations2 = 15 #self.iterations2_space = 0.1 #Sets the limit of the std dev (mm) of either x or y beam position in the top 10% of the solutions. self.std_dev = 0.1 #Sets settings to check output on my machine and does not send results to database. #******BEAMLINE SPECIFIC***** self.cluster_use = BLspec.checkCluster() if self.cluster_use: self.test = False else: self.test = True #******BEAMLINE SPECIFIC***** #this is where I have chosen to place my results self.labelit_results = {} self.labelit_summary = False #Labelit settings self.twotheta = False self.multiproc = True self.labelit_jobs = {} self.results = {} self.runs = {} self.pool = {} #Settings for all programs self.x_beam = self.header.get('beam_center_x') self.y_beam = self.header.get('beam_center_y') self.working_dir = self.setup.get('work') #self.sg = self.header.get('spacegroup','None') self.distance = os.path.basename(self.working_dir) self.vendortype = Utils.getVendortype(self,self.header) Process.__init__(self,name='FindBeamCenter') self.start()
def __init__(self,input,logger=None): logger.info('AutoStats.__init__') self.st = time.time() self.input = input self.logger = logger self.working_dir = self.input[0].get('dir',os.getcwd()) self.datafile = self.input[0].get('data',False) self.gui = self.input[0].get('gui',True) self.clean = self.input[0].get('clean',True) self.test = self.input[0].get('test',False) self.controller_address = self.input[0].get('control',False) self.verbose = self.input[0].get('verbose',False) self.clean = False self.verbose = True #Check if precession photo info included in input if self.input[0].has_key('run'): self.pp = True else: self.pp = False self.stats_timer = 180 self.xtriage_log = [] self.jobs_output = {} self.pids = {} self.xtriage_results = False self.xtriage_summary = False self.pts = False self.twin = False self.molrep_log = False self.molrep_results = False self.molrep_summary = False self.NCS_results = False self.sample_type = False self.failed = False self.input_sg = False self.solvent_content = 0.55 #******BEAMLINE SPECIFIC***** #self.cluster_use = Utils.checkCluster() self.cluster_use = BLspec.checkCluster() #******BEAMLINE SPECIFIC***** if self.test: self.clean = False Process.__init__(self,name='AutoStats') self.start()
def __init__(self,inp,output,logger=None): logger.info('LabelitAction.__init__') self.st = time.time() self.input,self.clean,self.test,self.verbose,self.vendortype,self.red = inp self.output2 = output self.logger = logger self.labelit_jobs = {} self.pool = {} self.working_dir = os.getcwd() self.multiproc = True #******BEAMLINE SPECIFIC***** #self.cluster_use = Utils.checkCluster() self.cluster_use = BLspec.checkCluster() #******BEAMLINE SPECIFIC***** #initialize the thread Process.__init__(self,name='LabelitAction') #start the process self.start()
def main(): """ This pipeline has to be run on a computer cluster. It launches many Labelit autoindexing runs varying input beamcenter for each distance, then looks at all the refined beam center outputs and fits to a 6th order polymonial. """ #start logging import logging,logging.handlers LOG_FILENAME = os.path.join(os.getcwd(),'rapd.log') #inp = Input.input() # Set up a specific logger with our desired output level logger = logging.getLogger('RAPDLogger') logger.setLevel(logging.DEBUG) # Add the log message handler to the logger handler = logging.handlers.RotatingFileHandler(LOG_FILENAME,maxBytes=10000000,backupCount=5) #add a formatter formatter = logging.Formatter("%(asctime)s - %(message)s") handler.setFormatter(formatter) logger.addHandler(handler) logger.info('__init__') import argparse #Parse the command line for commands. parser = argparse.ArgumentParser(description='Run job on computer cluster.') parser.add_argument('inp' ,nargs='*', type=str, help='folder') args = vars(parser.parse_args()) if len(args['inp']) == 0: image_dir = raw_input('In what folder do the direct beam shots exist?: ') else: image_dir = args['inp'][0] #if Utils.checkCluster(): if BLspec.checkCluster(): #Creates the input dict and passes it to the Handler. Handler(createInput(image_dir,logger),logger=logger) else: #Connect to the cluster and rerun this script if not launched on computer cluster. RunCluster(image_dir,logger=logger)
def __init__(self, input, output=None, logger=None): logger.info('LabelitPP.__init__') self.st = time.time() self.input = input self.output = output self.logger = logger self.working_dir = self.input[0].get('dir', os.getcwd()) self.gui = self.input[0].get('gui', True) self.test = self.input[0].get('test', False) self.clean = self.input[0].get('clean', True) self.controller_address = self.input[0].get('control', False) self.verbose = self.input[0].get('verbose', False) #Number of Labelit iterations to run. (Default is 4) added 2 more to test new Labelit options self.iterations = 6 #Set times for processes. 'False' to disable. self.stats_timer = 180 self.labelit_timer = 120 self.labelitpp_timer = False self.labelit_input = False self.labelit_log = {} self.labelit_log['0'] = [] self.labelit_results = {} self.labelitpp_results = False self.labelit_jobs = {} self.labelit_summary = False self.labelit_failed = False self.failed = False self.pp_jobs = {} self.pids = {} #Labelit settings self.index_number = False self.spacegroup = 'None' self.min_spots = False self.ignore_user_cell = False self.ignore_user_SG = False self.blank_image = False self.pseudotrans = False self.min_good_spots = False self.twotheta = False self.multiproc = True #For rerunning Labelit when it does not index correctly with a pair. self.cycle = 0 if self.input[0].has_key('run'): #Variables I call in more than one place self.total = self.input[0].get('run').get('total') #For determining detector type. Should move to rapd_site probably. if self.input[0].get('run').get('fullname')[-3:] == 'cbf': if float(self.input[0].get('run').get('x_beam')) > 200.0: self.vendortype = 'Pilatus-6M' else: self.vendortype = 'ADSC-HF4M' else: self.vendortype = 'ADSC' """ #if self.input[0].get('run').get('fullname')[-3:] == 'cbf': if float(self.input[0].get('run').get('x_beam')) > 200.0: self.pilatus = True else: self.pilatus = False """ else: self.failed = True #******BEAMLINE SPECIFIC***** #self.cluster_use = Utils.checkCluster() self.cluster_use = BLspec.checkCluster() #******BEAMLINE SPECIFIC***** if self.test: self.clean = False Process.__init__(self, name='LabelitPP') self.start()
def __init__(self, input, output=None, logger=None): logger.info('LabelitPP.__init__') self.st = time.time() self.input = input self.output = output self.logger = logger self.working_dir = self.input[0].get('dir',os.getcwd()) self.gui = self.input[0].get('gui',True) self.test = self.input[0].get('test',False) self.clean = self.input[0].get('clean',True) self.controller_address = self.input[0].get('control',False) self.verbose = self.input[0].get('verbose',False) #Number of Labelit iterations to run. (Default is 4) added 2 more to test new Labelit options self.iterations = 6 #Set times for processes. 'False' to disable. self.stats_timer = 180 self.labelit_timer = 120 self.labelitpp_timer = False self.labelit_input = False self.labelit_log = {} self.labelit_log['0'] = [] self.labelit_results = {} self.labelitpp_results = False self.labelit_jobs = {} self.labelit_summary = False self.labelit_failed = False self.failed = False self.pp_jobs = {} self.pids = {} #Labelit settings self.index_number = False self.spacegroup = 'None' self.min_spots = False self.ignore_user_cell = False self.ignore_user_SG = False self.blank_image = False self.pseudotrans = False self.min_good_spots = False self.twotheta = False self.multiproc = True #For rerunning Labelit when it does not index correctly with a pair. self.cycle = 0 if self.input[0].has_key('run'): #Variables I call in more than one place self.total = self.input[0].get('run').get('total') #For determining detector type. Should move to rapd_site probably. if self.input[0].get('run').get('fullname')[-3:] == 'cbf': if float(self.input[0].get('run').get('x_beam')) > 200.0: self.vendortype = 'Pilatus-6M' else: self.vendortype = 'ADSC-HF4M' else: self.vendortype = 'ADSC' """ #if self.input[0].get('run').get('fullname')[-3:] == 'cbf': if float(self.input[0].get('run').get('x_beam')) > 200.0: self.pilatus = True else: self.pilatus = False """ else: self.failed = True #******BEAMLINE SPECIFIC***** #self.cluster_use = Utils.checkCluster() self.cluster_use = BLspec.checkCluster() #******BEAMLINE SPECIFIC***** if self.test: self.clean = False Process.__init__(self,name='LabelitPP') self.start()
def __init__(self, input, logger=None): logger.info('AutoMolRep.__init__') self.st = time.time() self.input = input self.logger = logger #Setting up data input self.setup = self.input[1] self.data = self.input[2] self.preferences = self.input[3] self.controller_address = self.input[-1] #For testing individual modules self.test = False #Removes junk files and directories at end. self.clean = False #Calculate ADF for all solutions self.adf = True self.verbose = True #variables to set #self.phaser_timer = 600 #Timer will be double for full Phaser self.phaser_timer = False self.phaser_results = {} self.phaser_jobs = [] self.output = {} self.cell_summary = False self.pdb_summary = False self.pdb_percent = False self.percent = False self.tooltips = False self.cell2 = False self.solvent_content = False self.input_sg = False self.pdb_code = False self.run_before = False self.dres = False self.large_cell = False self.sample_type = self.preferences.get('sample_type','Protein') self.datafile = Utils.convertUnicode(self,self.data.get('original').get('mtz_file',None)) if self.datafile == None: self.datafile = Utils.convertUnicode(self,self.preferences.get('request').get('input_sca')) self.nmol = self.preferences.get('request').get('nmol',False) #Used for printing summary html self.pdb_name = self.preferences.get('request').get('pdb_name',False) if self.pdb_name == None: self.pdb_name = False self.input_pdb = Utils.convertUnicode(self,self.preferences.get('request').get('pdb',None)) if self.input_pdb == None: self.input_pdb = Utils.convertUnicode(self,self.preferences.get('request').get('pdb_code',None)) #Used in SummaryCell for label. if self.input_pdb != None: self.pdb_code = True #Check if running from beamline and turn off testing if I forgot to. if self.preferences.get('request').has_key('request_type'): self.gui = True self.test = False self.verbose = False else: self.gui = False #******BEAMLINE SPECIFIC***** #self.cluster_use = Utils.checkCluster() self.cluster_use = BLspec.checkCluster() #******BEAMLINE SPECIFIC***** Process.__init__(self,name='AutoMolRep') #starts the new process self.start()