def load_image_container_from_settings(settings): imagecontainer = ImageContainer() infos = imagecontainer.iter_check_plates(settings) scan_plates = dict((info[0], False) for info in infos) import_iter = imagecontainer.iter_import_from_settings(settings, scan_plates) for idx, info in enumerate(import_iter): pass if len(imagecontainer.plates) > 0: plate = imagecontainer.plates[0] imagecontainer.set_plate(plate) return imagecontainer
def load_image_container_from_settings(settings): imagecontainer = ImageContainer() infos = imagecontainer.iter_check_plates(settings) scan_plates = dict((info[0], False) for info in infos) import_iter = imagecontainer.iter_import_from_settings( settings, scan_plates) for idx, info in enumerate(import_iter): pass if len(imagecontainer.plates) > 0: plate = imagecontainer.plates[0] imagecontainer.set_plate(plate) return imagecontainer
index -= 1 else: parser.error("Only SGE supported at the moment (environment variable '%s')." % ENV_INDEX_SGE) # if no position list was specified via the program options get it from the settings file if position_list is None: if settings.get(SECTION_NAME_GENERAL, 'constrain_positions'): position_list = settings.get(SECTION_NAME_GENERAL, 'positions') or None # construct a dummy string containing all plates and positions known to imagecontainer if position_list is None: positions = [] for plate_id in imagecontainer.plates: imagecontainer.set_plate(plate_id) meta_data = imagecontainer.get_meta_data() positions += ['%s___%s' % (plate_id, pos) for pos in meta_data.positions] else: positions = position_list.split(',') if index is not None and (index < 0 or index >= len(positions)): parser.error("Cluster index %s does not match number of positions %d." % (index, len(positions))) # batch size was specified if batch_size is not None: if index is None: parser.error("Batch size requires a cluster index.") # select slice of positions according to index and batch size positions = positions[(index*batch_size) : ((index+1)*batch_size)]
index -= 1 else: parser.error("Only SGE supported at the moment (environment variable '%s')." % ENV_INDEX_SGE) # if no position list was specified via the program options get it from the settings file if position_list is None: if settings.get(SECTION_NAME_GENERAL, 'constrain_positions'): position_list = settings.get(SECTION_NAME_GENERAL, 'positions') or None # construct a dummy string containing all plates and positions known to imagecontainer if position_list is None: positions = [] for plate_id in imagecontainer.plates: imagecontainer.set_plate(plate_id) meta_data = imagecontainer.get_meta_data() positions += ['%s___%s' % (plate_id, pos) for pos in meta_data.positions] else: positions = position_list.split(',') if index is not None and (index < 0 or index >= len(positions)): parser.error("Cluster index %s does not match number of positions %d." % (index, len(positions))) # batch size was specified if batch_size is not None: if index is None: parser.error("Batch size requires a cluster index.") # select slice of positions according to index and batch size positions = positions[(index*batch_size) : ((index+1)*batch_size)]
# read the settings data from file settings = ConfigSettings() settings.read(settingsfile) imagecontainer = ImageContainer() imagecontainer.import_from_settings(settings) if settings('General', 'constrain_positions'): positions = settings('General', 'positions').split(POSSEP) if not settings('General', 'has_multiple_plates'): plate = os.path.split(settings("General", "pathin"))[1] positions = ['%s%s%s' % (plate, PLATESEP, p) for p in positions] else: positions = list() for plate in imagecontainer.plates: imagecontainer.set_plate(plate) meta_data = imagecontainer.get_meta_data() positions += \ ['%s%s%s' % (plate, PLATESEP, pos) for pos in meta_data.positions] n_positions = len(positions) if index is not None and (index < 0 or index >= len(positions)): raise RuntimeError( "Cluster index %s does not match number of positions %d." %(index, len(positions))) # batch size was specified if batch_size is not None: if index is None: raise RuntimeError("Batch size requires a cluster index.")