def write_to_omero(self): sf = self.client.getSession() group = str(self.value_resolver.target_object.details.group.id.val) sr = sf.sharedResources() update_service = sf.getUpdateService() name = 'bulk_annotations' table = sr.newTable(1, name, {'omero.group': group}) if table is None: raise MetadataError( "Unable to create table: %s" % name) original_file = table.getOriginalFile() log.info('Created new table OriginalFile:%d' % original_file.id.val) table.initialize(self.columns) log.info('Table initialized with %d columns.' % (len(self.columns))) table.addData(self.columns) log.info('Added data column data.') table.close() file_annotation = FileAnnotationI() file_annotation.ns = \ rstring('openmicroscopy.org/omero/bulk_annotations') file_annotation.description = rstring(name) file_annotation.file = OriginalFileI(original_file.id.val, False) link = self.create_annotation_link() link.parent = self.target_object link.child = file_annotation update_service.saveObject(link, {'omero.group': group})
def create_file_annotation(): ''' Creates a file annotation to represent a set of columns from our measurment. ''' file_annotation = FileAnnotationI() file_annotation.ns = rstring(NS) return file_annotation
def plate_well_table(itest, well_grid_factory, update_service, conn): """ Returns a new OMERO Plate, linked Wells, linked WellSamples, and linked Images populated by an L{omeroweb.testlib.IWebTest} instance. """ plate = PlateI() plate.name = rstring(itest.uuid()) # Well A1 has one WellSample plate.addWell(well_grid_factory({(0, 0): 1})[0]) plate = update_service.saveAndReturnObject(plate) col1 = WellColumn('Well', '', []) col2 = StringColumn('TestColumn', '', 64, []) columns = [col1, col2] tablename = "plate_well_table_test:%s" % str(random()) table = conn.c.sf.sharedResources().newTable(1, tablename) table.initialize(columns) wellIds = [w.id.val for w in plate.copyWells()] print("WellIds", wellIds) data1 = WellColumn('Well', '', wellIds) data2 = StringColumn('TestColumn', '', 64, ["foobar"]) data = [data1, data2] table.addData(data) orig_file = table.getOriginalFile() table.close() fileAnn = FileAnnotationI() fileAnn.ns = rstring('openmicroscopy.org/omero/bulk_annotations') fileAnn.setFile(OriginalFileI(orig_file.id.val, False)) fileAnn = conn.getUpdateService().saveAndReturnObject(fileAnn) link = PlateAnnotationLinkI() link.setParent(PlateI(plate.id.val, False)) link.setChild(FileAnnotationI(fileAnn.id.val, False)) update_service.saveAndReturnObject(link) return plate, wellIds
def plate_well_table(itest, well_grid_factory, update_service, conn): """ Returns a new OMERO Plate, linked Wells, linked WellSamples, and linked Images populated by an L{weblibrary.IWebTest} instance. """ plate = PlateI() plate.name = rstring(itest.uuid()) # Well A1 has one WellSample plate.addWell(well_grid_factory({(0, 0): 1})[0]) plate = update_service.saveAndReturnObject(plate) col1 = WellColumn('Well', '', []) col2 = StringColumn('TestColumn', '', 64, []) columns = [col1, col2] tablename = "plate_well_table_test:%s" % str(random()) table = conn.c.sf.sharedResources().newTable(1, tablename) table.initialize(columns) wellIds = [w.id.val for w in plate.copyWells()] print "WellIds", wellIds data1 = WellColumn('Well', '', wellIds) data2 = StringColumn('TestColumn', '', 64, ["foobar"]) data = [data1, data2] table.addData(data) table.close() orig_file = table.getOriginalFile() fileAnn = FileAnnotationI() fileAnn.ns = rstring('openmicroscopy.org/omero/bulk_annotations') fileAnn.setFile(OriginalFileI(orig_file.id.val, False)) fileAnn = conn.getUpdateService().saveAndReturnObject(fileAnn) link = PlateAnnotationLinkI() link.setParent(PlateI(plate.id.val, False)) link.setChild(FileAnnotationI(fileAnn.id.val, False)) update_service.saveAndReturnObject(link) return plate, wellIds