<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Will,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks again.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I was just wondering if something like the Blitz gateway is available for Java.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Chris<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Will Moore [mailto:will@lifesci.dundee.ac.uk] <br><b>Sent:</b> Monday, May 09, 2011 6:00 PM<br><b>To:</b> Wood, Christopher<br><b>Cc:</b> ome-devel@lists.openmicroscopy.org.uk<br><b>Subject:</b> Re: [ome-devel] getting metadata<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Hi Chris,<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp;This depends quite a bit on what OMERO version you're using and whether you're using the &quot;Blitz Gateway&quot;&nbsp;<a href="https://trac.openmicroscopy.org.uk/ome/wiki/OmeroPy/Gateway">https://trac.openmicroscopy.org.uk/ome/wiki/OmeroPy/Gateway</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Without using the blitz gateway, it requires a bit more knowledge of the OMERO model and how objects are linked.<o:p></o:p></p></div><div><p class=MsoNormal><a href="http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/slice2html/omero/model.html">http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/slice2html/omero/model.html</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Image -&gt; Pixels -&gt; Channel -&gt; Logical Channel.excitation wavelength<o:p></o:p></p></div><div><p class=MsoNormal>Image -&gt; Objective Settings -&gt; Objective<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>For historical reasons the model is sometimes more complex than you might expect.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal>E.g. Image can have several sets of Pixels.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal>E.g. Channel -&gt; Logical Channel.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>You can traverse the graph by writing queries with iQuery, but this is the method of last resort, since it is tricky and susceptible to model changes.<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Much easier to use the Blitz gateway, which handles lazy loading, making it easier to traverse the graph.<o:p></o:p></p></div><div><p class=MsoNormal>It also 'hides' some of the complexity of the model.<o:p></o:p></p></div><div><p class=MsoNormal>However, this module is at an early stage of development and there will be some API changes with the 4.3 release.<o:p></o:p></p></div><div><p class=MsoNormal>All breaking changes are listed here: <a href="http://trac.openmicroscopy.org.uk/ome/wiki/Api/BlitzGateway">http://trac.openmicroscopy.org.uk/ome/wiki/Api/BlitzGateway</a><o:p></o:p></p></div><div><p class=MsoNormal>Having said all that, you can get what you want with this code<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p class=MsoNormal>import omero<o:p></o:p></p></div><div><p class=MsoNormal>from omero.gateway import BlitzGateway<o:p></o:p></p></div><div><p class=MsoNormal>conn = BlitzGateway('root', 'omero', port=4064, host='localhost')<o:p></o:p></p></div><div><p class=MsoNormal>conn.connect()<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>imageId = 1234<o:p></o:p></p></div><div><p class=MsoNormal>i = conn.getImage(imageId) &nbsp; &nbsp; &nbsp; &nbsp;# in 4.3 this will be getObject(&quot;Image&quot;, imageId)<o:p></o:p></p></div><div><p class=MsoNormal>for c in i.getChannels():<o:p></o:p></p></div><div><p class=MsoNormal>&nbsp;&nbsp; &nbsp;print c.getLogicalChannel().excitationWave &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# c.getExcitationWave() isn't supported - I'll fix that for 4.3<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p class=MsoNormal>ob = i.getObjectiveSettings().getObjective()<o:p></o:p></p></div><div><p class=MsoNormal>print ob.model<o:p></o:p></p></div><div><div><p class=MsoNormal>print ob.nominalMagnification<o:p></o:p></p></div><div><div><p class=MsoNormal>print ob.lensNA<o:p></o:p></p></div><div><div><p class=MsoNormal>print ob.getImmersion().value&nbsp;<span class=apple-tab-span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span># enumeration<o:p></o:p></p></div><div><div><p class=MsoNormal>print ob.getCorrection().value<span class=apple-tab-span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></div></div></div><div><p class=MsoNormal>Docs for the 4.2 ImageWrapper are&nbsp;<a href="http://hudson.openmicroscopy.org.uk/view/Beta4.2/job/OMERO-Beta4.2/javadoc/epydoc/omero.gateway._ImageWrapper-class.html">http://hudson.openmicroscopy.org.uk/view/Beta4.2/job/OMERO-Beta4.2/javadoc/epydoc/omero.gateway._ImageWrapper-class.html</a><o:p></o:p></p></div><div><p class=MsoNormal>The docs are much improved for the latest code (will be 4.3 release) allowing you to follow the traversal above.<o:p></o:p></p></div><div><p class=MsoNormal><a href="http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/epydoc/omero.gateway._ImageWrapper-class.html">http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/epydoc/omero.gateway._ImageWrapper-class.html</a><o:p></o:p></p></div><div><p class=MsoNormal>Attributes of the objective can be seen&nbsp;<a href="http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/slice2html/omero/model/Objective.html">http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/slice2html/omero/model/Objective.html</a><o:p></o:p></p></div><div><p class=MsoNormal>and are accessed 'directly' from the underlying object - instead of the methods on the ObjectiveWrapper<o:p></o:p></p></div><div><p class=MsoNormal><a href="http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/epydoc/omero.gateway._ObjectiveWrapper-class.html">http://hudson.openmicroscopy.org.uk/job/OMERO/javadoc/epydoc/omero.gateway._ObjectiveWrapper-class.html</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>As the Blitz Gateway evolves, some things will take a little trial and error, although the documentation is improving a lot and we'll do our best not to make breaking changes - at least after 4.3 release.<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Finally, you might get something out of looking at the code that displays all the image metadata in web.<o:p></o:p></p></div><div><p class=MsoNormal>This uses the Blitz Gateway, imageWrapper, channelWrapper etc.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal>Look under def&nbsp;load_metadata_acquisition()<o:p></o:p></p></div><div><p class=MsoNormal><a href="https://trac.openmicroscopy.org.uk/ome/browser/ome.git/components/tools/OmeroWeb/omeroweb/webclient/views.py">https://trac.openmicroscopy.org.uk/ome/browser/ome.git/components/tools/OmeroWeb/omeroweb/webclient/views.py</a>#L947<o:p></o:p></p></div><div><p class=MsoNormal>although there is a bit more going on here with web forms etc.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp;Hope that helps,<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp;&nbsp; Will.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=MsoNormal>On 9 May 2011, at 22:55, Wood, Christopher wrote:<o:p></o:p></p></div><p class=MsoNormal><br><br><o:p></o:p></p><div><div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Hi,<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>What is the best way to get metadata from an image using the python API?<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>For example, if I have a confocal image and I want to know the laser excitation wavelengths and the objective.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>&nbsp;<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Thanks<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif"'>Chris<o:p></o:p></span></p></div></div><p class=MsoNormal>_______________________________________________<br>ome-devel mailing list<br><a href="mailto:ome-devel@lists.openmicroscopy.org.uk">ome-devel@lists.openmicroscopy.org.uk</a><br><a href="http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel">http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel</a><o:p></o:p></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><div><div><div><div><div><p class=MsoNormal>William Moore<o:p></o:p></p></div><div><div><p class=MsoNormal>Wellcome Trust Centre for Gene Regulation &amp; Expression<o:p></o:p></p></div><div><p class=MsoNormal>College of Life Sciences<o:p></o:p></p></div><div><p class=MsoNormal>MSI/WTB/JBC Complex<o:p></o:p></p></div><div><p class=MsoNormal>University of Dundee<o:p></o:p></p></div><div><p class=MsoNormal>Dow Street<o:p></o:p></p></div><div><p class=MsoNormal>Dundee&nbsp; DD1 5EH<o:p></o:p></p></div><div><p class=MsoNormal>United Kingdom<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Phone 01382 386364<o:p></o:p></p></div></div><div><p class=MsoNormal><a href="http://openmicroscopy.org">http://openmicroscopy.org</a><o:p></o:p></p></div></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></body></html>