[ome-devel] Existing client side code in C
Stefan Frank
s.frank at dkfz-heidelberg.de
Thu Aug 5 14:11:38 BST 2004
Ilya Goldberg wrote:
>
> On Aug 3, 2004, at 8:57 AM, Joshua Moore wrote:
>
>> Two quick questions:
>>
>> (1) Are there client-side C bindings of the omeis methods available in
>> CVS?
>>
>> (2) What is the availability of time information in the pixel struct?
>> I.e. if a user needs to calculate DX/DT over two images or
>> "timeElapsed=T*DT + startTime", is this available somewhere?
>
>
> The context of your question maybe implies that you're considering using
> omeis for acquisition, which is great and fabulous.
Sorry to say that, but that would just be the second step on our list:
Right now we just want to get Pixels out of OMEIS, to process them offline.
> So, in that sense, maybe omeis should store timing information for each
> plane as it comes in. Currently it does not.
> Is this what you had in mind?
>
> The concept behind omeis is that it deals only with pixels, and time is
> a piece of meta-data. So the proper way to do this is to tell omeis
> about the pixels, and tell OME about the time. If we included time in
> omeis (which we could certainly do, and it wouldn't be that hard) then
> where do we stop? Surely you want to store what filter you used for a
> given channel and what the objective was, and all sorts of other
> things. OME is really the place for all that stuff.
I totally agree on that: There is probably no end on the amount of
meta-data one wants to drag out of the store for the processing (what
other channels are available, maybe planeStatistics would also be nice
and so on). Coming from a client-side view, it would be nice to have
only one Image-Object to query and not to bother, where the data comes
from. But as the nature of the two servers are so completely different,
I think we will live with the split in ome-is and ome-ds, that is
already used in OME-JAVA. (the one-and-only ImageObject: Now that's what
i would call a "skinny" Interface...)
> Since we have java-based import of proprietary files that contain
> meta-data besides the pixels, this could be used as a basis for doing
> this sort of thing in C.
> If you're talking about having a dumb piece of acquisition hardware talk
> to OME, then probably the easiest thing to do is to pre-form chunks of
> XML that has place-holders for your meta-data, then substitute the
> place-holders with real values at acquisition time. Then you just
> import the XML using the regular mechanism. In this case, you can have
> the hardware deposit the pixels into omeis directly, and use an omeis
> reference in the XML you send to OME. This gives you the best of both
> worlds: a pixel-centric interface for your data and a meta-data-centric
> interface for your meta-data. Its a bit of a convolution for a piece of
> acquisition hardware that only produces a fixed set of meta-data, but
> its easy enough to accomplish by just treating the XML you need around
> it as pre-set fluff. Or you can put the meta-data in the binary form of
> your convenience, and write a back-end importer for it.
>
> If you're trying to do something with proprietary files, back-end
> importers are really the preferred way to deal with them assuming there
> is enough information in the files to unambiguously populate the 5-D
> pixel array and any meta-data you want stored with the images.
>
> Sorry if I've completely misunderstood what you were intending to do.
you're absolutely right: We have these three parts of the problem:
Getting the information out of the microscope and:
-----one----
a) getting the pixels into ome-is
b) getting the meta-data (and this includes the timestamp) into ome-ds
----two----
a) getting the pixels out of ome-is
b) getting the meta-data out of ome-ds
---- three ----
c) making up a convenient data-structure for the image to make
calculations easy
one&two seem to be genuine OME-topics, three is more a
"best-pratices"-question and a little bit out of scope of OME
If I got it right, there are two options for one:
a) using the perl-import-modules
b) using the interfaces ome-is (basically http-put, as chris pointed
out) and ome-ds (basically xml-rpc) offers
we're using (among others) a Leica TCS SP2 AOBS - when I remember the
other thread right, there is currently no support for that format,
especially not for that unholy <project>.txt-file the microscope
produces and which looks nice, but is not documented, let alone easy to
parse - but at least it contains the time-stamps we need for the
calculations. We're currently conferencing with Leica to make them
produce a more easily readable format. Then it should be straightforward
to use the api's from ome-is&ome-ds to get the pixels and the meta-data
in. You mentioned a "regular mechanism to import the XML" - do you have
any pointers, where we could look for that?! Right now, I've only seen
the API's from OME-Java, but it will be tedious to produce the DTO's for
all the attributes we want to store and then insert them manually using
the api: a simple interface to import an <experiment>.ome would be nicer
- is there any documentation about this import?
to sum it up: one looks solvable, when Leica can produce some sensible
files.
----two---
getting the meta-data (here: the timestamps for a given image) out of
OME-DS from C - does this belong into the other thread?! A "skinny"
layer on top of the rpc-calls, that encapsulates the same functionality,
as OME-DS from the OME-JAVA branch does, would be nice. Do you already
have examples for that? Getting attributes of some Pixels from OME-DS
into a C-Program?! How do you do that in the programms inside the
analysis-chains?! Don't they need any MetaData?! Are they working solely
on the raw pixels?
thx for your patience!
stefan
>
> -Ilya
>
>
>>
>> -Josh.
>> _______________________________________________
>> ome-devel mailing list
>> ome-devel at lists.openmicroscopy.org.uk
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
>>
>
> _______________________________________________
> ome-devel mailing list
> ome-devel at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-devel
--
Stefan Frank
iBioS - Intelligent BioInformatics Systems
http://www.dkfz-heidelberg.de/ibios
DKFZ - German Cancer Research Center
Im Neuenheimer Feld 580
69120 Heidelberg
Tel.: +49 (0) 6221 42-3612
Mail: s.frank at dkfz-heidelberg.de
More information about the ome-devel
mailing list