Пример #1
0
Файл: Cad.py Проект: hainm/xia2
    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, e:
        # something went wrong; remove the output file
        try:
          os.remove(self.get_hklout())
        except:
          pass
        raise e