def copyfree(self): '''Copy the free column from freein into hklin -> hklout.''' if not self._hklin_files: raise RuntimeError('no hklin files defined') if len(self._hklin_files) > 1: raise RuntimeError('can have only one hklin to update') hklin = self._hklin_files[0] # get the resolution limit to give as a limit for the FreeR # column md = Mtzdump() md.set_working_directory(self.get_working_directory()) md.set_hklin(hklin) md.dump() resolution_range = md.get_resolution_range() self.check_hklout() if self._freein is None: raise RuntimeError('freein not defined') if self._freein_column is None: raise RuntimeError('freein column not defined') self.add_command_line('hklin1') self.add_command_line(self._freein) self.add_command_line('hklin2') self.add_command_line(hklin) self.start() self.input('labin file_number 1 E1=%s' % self._freein_column) self.input('resolution file_number 1 %f %f' % resolution_range) self.input('labin file_number 2 all') self.close_wait() try: self.check_for_errors() self.check_ccp4_errors() except RuntimeError as e: # something went wrong; remove the output file try: os.remove(self.get_hklout()) except Exception: pass raise e return self.get_ccp4_status()
assert(dose_column in columns) continue if 'DOSE' in columns: dose_range = md.get_column_range('DOSE')[:2] if dose_range[0] != dose_range[1]: dose_column = 'DOSE' if 'BATCH' in columns and not dose_column: dose_column = 'BATCH' if not dose_column: raise RuntimeError, 'no DOSE/BATCH column found' dmin = min(md.get_resolution_range()) if overall_dmin is None: overall_dmin = dmin if dmin > overall_dmin: overall_dmin = dmin Stdout.write('Selected column: %s' % dose_column) for argv in sys.argv[1:]: chef.add_hklin(argv) chef.set_labin(dose_column) chef.set_resolution(overall_dmin) chef.write_log_file('chef.log')
assert(dose_column in columns) continue if 'DOSE' in columns: dose_range = md.get_column_range('DOSE')[:2] if dose_range[0] != dose_range[1]: dose_column = 'DOSE' if 'BATCH' in columns and not dose_column: dose_column = 'BATCH' if not dose_column: raise RuntimeError('no DOSE/BATCH column found') dmin = min(md.get_resolution_range()) if overall_dmin is None: overall_dmin = dmin if dmin > overall_dmin: overall_dmin = dmin Stdout.write('Selected column: %s' % dose_column) for argv in sys.argv[1:]: chef.add_hklin(argv) chef.set_labin(dose_column) chef.set_resolution(overall_dmin) chef.write_log_file('chef.log')