Skip to content

Instantly share code, notes, and snippets.

@sbesson
Created November 7, 2014 09:14
Show Gist options
  • Select an option

  • Save sbesson/0f59a8fa9dd74c8022ef to your computer and use it in GitHub Desktop.

Select an option

Save sbesson/0f59a8fa9dd74c8022ef to your computer and use it in GitHub Desktop.
annotations = getAnnotationTypes();
objects = getObjectTypes();
defaultownerid = session.getAdminService().getEventContext().userId;
% Load existing file annotations
metadataService = session.getMetadataService();
ids = toJavaList([], 'java.lang.Long');
include = toJavaList(getLCCBOmeroNamespace, 'java.lang.String');
exclude = toJavaList([], 'java.lang.String');
parameters = omero.sys.ParametersI;
parameters.exp(rlong(defaultownerid));
% Read annotations
object = objects(strcmpi('Image', {objects.name}));
annotation = annotations(strcmpi('file', {annotations.name}));
annotations = metadataService.loadSpecifiedAnnotationsLinkedTo(...
annotation.class, include, exclude, object.class, ids, parameters);
% Aggregate all annotations into a java.util.ArrayList
keySet = annotations.keySet;
i = keySet.iterator;
fprintf('Found %g images with analysis\n', keySet.size);
ids = [];
while (i.hasNext())
ids = [ids i.next()];
end
annotationList = cell(numel(ids), 1);
for n = 1:numel(ids)
annotationListPerId = annotations.get( ...
java.lang.Long(ids(n)));
if ~isempty(annotationListPerId)
annotationList{n} = toMatlabList(annotationListPerId);
end
end
annotations = annotationList;
%% Find images with ROIs
disp('Finding ROIs');
roiService = session.getRoiService();
roiIds = zeros(numel(ids), 1);
for i = 1 : numel(ids)
roiResult = session.getRoiService().findByImage(ids(i), []);
if ~isempty(roiResult.rois) && roiResult.rois.size == 1,
roiIds(i) = roiResult.rois.get(0).getId().getValue();
end
progressText(i/numel(ids), 'Finding images with ROIs');
end
fprintf('Found %g images with ROI and analysis\n', sum(logical(roiIds)));
%%
validIds = ids(roiIds ~=0);
validRoiIds = roiIds(roiIds ~=0);
MD(numel(validIds)) = MovieData();
for i = 1: numel(validIds)
fprintf(1, 'Movie %g/%g\n', i,numel(validRoiIds));
MD(i) = MovieData.load(s, validIds(i));
MD(i).roiOmeroId_ = validRoiIds(i);
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment