Beispiel #1
0
  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()
Beispiel #2
0
 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()
Beispiel #3
0
 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()
Beispiel #4
0
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)
Beispiel #5
0
    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()
Beispiel #6
0
 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()
Beispiel #7
0
 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()