def preProcess(self, _edObject=None): EDPluginControl.preProcess(self) self.DEBUG("EDPluginControlAutoproc.preProcess") self.xds_anom = self.loadPlugin('EDPluginExecMinimalXds') self.xds_noanom = self.loadPlugin('EDPluginExecMinimalXds') path = os.path.abspath(self.dataInput.previous_run_dir.value) # create the data inputs now we know the files are here input_anom = XSDataMinimalXdsIn() input_anom.input_file = XSDataString(os.path.join(path, 'XDS.INP')) input_anom.friedels_law = XSDataBoolean(True) input_anom.job = XSDataString('CORRECT') input_anom.resolution = self.dataInput.resolution input_anom.resolution_range = [ XSDataFloat(60), self.dataInput.resolution ] self.xds_anom.dataInput = input_anom input_noanom = XSDataMinimalXdsIn() input_noanom.input_file = XSDataString(os.path.join(path, 'XDS.INP')) input_noanom.fridels_law = XSDataBoolean(False) input_noanom.job = XSDataString('CORRECT') input_noanom.resolution_range = [ XSDataFloat(60), self.dataInput.resolution ] self.xds_noanom.dataInput = input_noanom xds_anom_dir = os.path.abspath(self.xds_anom.getWorkingDirectory()) xds_noanom_dir = os.path.abspath(self.xds_noanom.getWorkingDirectory()) # let's make some links! for f in self._to_link: os.symlink(f, os.path.join(xds_anom_dir, os.path.basename(f))) os.symlink(f, os.path.join(xds_noanom_dir, os.path.basename(f))) # now this is the horrible part, we need to make symlinks to # the images also. for now we rely on the fact that the links # in the previous run are most likely the links to the # images. So we will make the same links and rely on the fact # that in the input file the path to the images is already # relative to the CWD path = os.path.abspath(self.dataInput.previous_run_dir.value) for f in os.listdir(path): fullpath = os.path.join(path, f) if os.path.islink(fullpath): # symlink the symlink... os.symlink(fullpath, os.path.join(xds_anom_dir, f)) os.symlink(fullpath, os.path.join(xds_noanom_dir, f))
def preProcess(self, _edObject = None): EDPluginControl.preProcess(self) self.DEBUG("EDPluginControlAutoproc.preProcess") self.xds_anom = self.loadPlugin('EDPluginExecMinimalXds') self.xds_noanom = self.loadPlugin('EDPluginExecMinimalXds') path = os.path.abspath(self.dataInput.previous_run_dir.value) # The MinimalXds plugin takes care of creating determining the # real images directory and creating a symlink to it so we # only need to update the NAMED_TEMPLATE_OF_DATA_FILES keyword # to not be relative anymore. We'll copy it to our own dir # beforehand to avoid clobbering it xdsinp = os.path.join(path, 'XDS.INP') new_xdsinp = os.path.join(self.getWorkingDirectory(), 'XDS.INP') copyfile(xdsinp, new_xdsinp) parsed_config = parse_xds_file(new_xdsinp) file_template = parsed_config['NAME_TEMPLATE_OF_DATA_FRAMES='][0] parsed_config['NAME_TEMPLATE_OF_DATA_FRAMES='] = os.path.abspath(os.path.join(path, file_template)) dump_xds_file(new_xdsinp, parsed_config) # create the data inputs now we know the files are here input_anom = XSDataMinimalXdsIn() input_anom.input_file = XSDataString(new_xdsinp) input_anom.friedels_law = XSDataBoolean(False) input_anom.job = XSDataString('CORRECT') input_anom.resolution = self.dataInput.resolution input_anom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_anom.dataInput = input_anom input_noanom = XSDataMinimalXdsIn() input_noanom.input_file = XSDataString(new_xdsinp) input_noanom.friedels_law = XSDataBoolean(True) input_noanom.job = XSDataString('CORRECT') input_noanom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_noanom.dataInput = input_noanom xds_anom_dir = os.path.abspath(self.xds_anom.getWorkingDirectory()) xds_noanom_dir = os.path.abspath(self.xds_noanom.getWorkingDirectory()) # let's make some links! for f in self._to_link: os.symlink(f, os.path.join(xds_anom_dir, os.path.basename(f))) os.symlink(f, os.path.join(xds_noanom_dir, os.path.basename(f)))
def preProcess(self, _edObject = None): EDPluginControl.preProcess(self) self.DEBUG("EDPluginControlAutoproc.preProcess") self.xds_anom = self.loadPlugin('EDPluginExecMinimalXds') self.xds_noanom = self.loadPlugin('EDPluginExecMinimalXds') path = os.path.abspath(self.dataInput.previous_run_dir.value) # The MinimalXds plugin takes care of creating determining the # real images directory and creating a symlink to it so we # only need to update the NAMED_TEMPLATE_OF_DATA_FILES keyword # to not be relative anymore. We'll copy it to our own dir # beforehand to avoid clobbering it xdsinp = os.path.join(path, 'XDS.INP') new_xdsinp = os.path.join(self.getWorkingDirectory(), 'XDS.INP') copyfile(xdsinp, new_xdsinp) parsed_config = parse_xds_file(new_xdsinp) file_template = parsed_config['NAME_TEMPLATE_OF_DATA_FRAMES='][0] parsed_config['NAME_TEMPLATE_OF_DATA_FRAMES='] = os.path.abspath(os.path.join(path, file_template)) dump_xds_file(new_xdsinp, parsed_config) # create the data inputs now we know the files are here input_anom = XSDataMinimalXdsIn() input_anom.input_file = XSDataString(new_xdsinp) input_anom.friedels_law = XSDataBoolean(True) input_anom.job = XSDataString('CORRECT') input_anom.resolution = self.dataInput.resolution input_anom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_anom.dataInput = input_anom input_noanom = XSDataMinimalXdsIn() input_noanom.input_file = XSDataString(new_xdsinp) input_noanom.friedels_law = XSDataBoolean(False) input_noanom.job = XSDataString('CORRECT') input_noanom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_noanom.dataInput = input_noanom xds_anom_dir = os.path.abspath(self.xds_anom.getWorkingDirectory()) xds_noanom_dir = os.path.abspath(self.xds_noanom.getWorkingDirectory()) # let's make some links! for f in self._to_link: os.symlink(f, os.path.join(xds_anom_dir, os.path.basename(f))) os.symlink(f, os.path.join(xds_noanom_dir, os.path.basename(f)))
def preProcess(self, _edObject = None): EDPluginControl.preProcess(self) self.DEBUG("EDPluginControlAutoproc.preProcess") self.xds_anom = self.loadPlugin('EDPluginExecMinimalXds') self.xds_noanom = self.loadPlugin('EDPluginExecMinimalXds') path = os.path.abspath(self.dataInput.previous_run_dir.value) # create the data inputs now we know the files are here input_anom = XSDataMinimalXdsIn() input_anom.input_file = XSDataString(os.path.join(path, 'XDS.INP')) input_anom.friedels_law = XSDataBoolean(True) input_anom.job = XSDataString('CORRECT') input_anom.resolution = self.dataInput.resolution input_anom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_anom.dataInput = input_anom input_noanom = XSDataMinimalXdsIn() input_noanom.input_file = XSDataString(os.path.join(path, 'XDS.INP')) input_noanom.fridels_law = XSDataBoolean(False) input_noanom.job = XSDataString('CORRECT') input_noanom.resolution_range = [XSDataFloat(60), self.dataInput.resolution] self.xds_noanom.dataInput = input_noanom xds_anom_dir = os.path.abspath(self.xds_anom.getWorkingDirectory()) xds_noanom_dir = os.path.abspath(self.xds_noanom.getWorkingDirectory()) # let's make some links! for f in self._to_link: os.symlink(f, os.path.join(xds_anom_dir, os.path.basename(f))) os.symlink(f, os.path.join(xds_noanom_dir, os.path.basename(f))) # now this is the horrible part, we need to make symlinks to # the images also. for now we rely on the fact that the links # in the previous run are most likely the links to the # images. So we will make the same links and rely on the fact # that in the input file the path to the images is already # relative to the CWD path = os.path.abspath(self.dataInput.previous_run_dir.value) for f in os.listdir(path): fullpath = os.path.join(path, f) if os.path.islink(fullpath): # symlink the symlink... os.symlink(fullpath, os.path.join(xds_anom_dir, f)) os.symlink(fullpath, os.path.join(xds_noanom_dir, f))