[ome-devel] DB Upgrade, FindSpots, ST modifications,
and accessing OME Pixel data from C
Ilya Goldberg
igg at nih.gov
Fri Feb 17 22:57:17 GMT 2006
A couple of you reported problems running FindSpots on non-16-bit
data. This has now been fixed: all 7 pixel types are supported.
Another FindSpots problem stemming from channels with the same label
having different channel indexes has also been fixed (the channel is
now determined from the user-supplied label for each image in the
Dataset).
N.B.: An install is required after updating from CVS in order to
trigger a DB update:
cvs up -dP
sudo perl install.pl -y
Fixing this required modification of several STs ("in flight", since
they have already been released), and may serve as a useful example
of how to do this. The ST modifications involved promoting several
datatypes: integer -> float and integer -> string. In general, STs
modifications and other DB upgrades require updating the DB version
string in src/perl2/OME/Install/CoreDatabaseTablesTask.pm (our
$DB_VERSION = "2.19"), creating a directory for the next-oldest
version in update (update/2.18/pre in this case), and placing the
various update scripts in there, which can be pure-SQL commands
in .sql files or perl scripts in .eval files. The updates are run by
the installer sequentially if it detects they are needed. They are
executed before most of the OME classes are loaded, and before any of
the DB classes are loaded (i.e. before loading any descendants of
OME::DBObject). The files for this update (in update/2.18/pre) are
probably the simplest kind of ST modification one could do, but may
be informative.
Also: The new FindSpots uses Tomasz's fabulous libhttpOMEIS to fetch
pixel data, statistics and pixel dimensions etc directly from OMEIS
using libcurl's implementation of http instead of using temporary
files as before. Since several people asked about this, it (src/C/
findSpotsOME.c) may serve as a useful demonstration of how to access
OME data from C (or not). This fix also makes it practical to once
again run findSpotsOME from the command line (run the executable
without arguments to get a usage message).
-Ilya
More information about the ome-devel
mailing list