OmeroHome
Welcome to the OMERO wiki! This is the home page of the OMERO developer documentation wiki.
Instructions on downloading, installing and administering OMERO can be found under the server section of the main site.
What is OMERO?
OMERO is an open source client/server system written for visualizing, managing, and annotating microscope images and metadata. The OMERO server API allows clients to be written in Java, Python, C++ or MATLAB. OMERO releases include a web client OMERO.web and command line interface OMERO.cli which use the Python API and a Java client OMERO.Insight. There is also an ImageJ plugin. OMERO can be extended by modifying these clients or by writing your own in any of the supported languages (see figure). OMERO also supports a Scripting Service which allows Python scripts to be run on the server & called from any of the other clients.
OMERO is designed, developed and released by the Open Microscopy Environment, with contributions from Glencoe Software, Inc. OMERO is released under the GNU General Public License (GPL) with commercial licenses and customization available from Glencoe Software.
Asking questions
For help with any aspect of OMERO, see details of our forums and mailing lists.
OMERO Basics
OMERO is based on the OME data model which can appear overly complex for new users. However, the core entities you need for getting started are much simpler.
Images in OMERO are organised into a many-to-many container hierarchy: "Project" -> "Dataset" -> "Image". These containers (and various other objects) can be annotated to link various types of data. Annotation types include Comment (string), Tag (short string), Boolean, Long, Xml, File attachment etc.
Images are represented as Pixels with 5 dimensions: X, Y, Z, Channel, Time.
The OMERO model is implemented as a relational postgres database on the OMERO server and mapped to code-generated model objects used by the clients in the various supported languages (see above). The OMERO API consists of a number of services for working with these objects and associated binary data. Typically, clients will use various stateless services to query the OMERO model and then use the stateful services for exchange of binary data or image rendering.
A typical client interaction might have an outline such as:
- Log in to OMERO, obtaining connection and 'service factory'
- Use the stateless 'Query Service' or 'Container Service' to traverse Projects, Datasets and Images
- Use the stateful 'Rendering Engine' or 'Thumbnail Service' to view images.
- Use the stateful 'Raw Pixels Service' or 'Raw File Store' to retrieve pixel or file data for analysis
- Create new Annotations or other objects and save them with the stateless 'Update Service'
- Close stateful services to free resources and close the connection
Getting started with OMERO development
You may want to start by watching "OMERO, the movie(s)". On this, you'll find links to a range of movies that demonstrate features of the OMERO software. After that you will likely want to install the server and clients: Insight, Web. Play with it, test data. You can also try out the CLI.
After that, the WorkingWithOmero page is probably a good next step. It describes various tools and resources you will find useful when working with OMERO.
Then, the following wiki pages are meant to provide you with a trail through the available documentation so that you can get started with OMERO development. Note that this is not everything that you will need to read, but should get you started...
The Development Process
- Git Usage for OMERO developers gives an overview of the development process that we currently use which utilises Git & Git-Flow (NB. For more information about git see the git movies that Josh prepared.
- Developing With OMERO
- Development Standards
- Process Overview (Generic)
- Process Overview (OMERO specific)
- Coding Standards
Getting Your Hand's Dirty
- Working with OMERO
- Extending OMERO
- Java Language Bindings
- Python Language Bindings
- Developing Clients using OmeroBlitz
- Developing Scripts
- Developing WebApps
OMERO Architecture (From a programmer's perspective)
More pages can be found on the SiteMap.
Further Reading
- OmeroApi: OMERO Application Programming Interface
- OmeroCli: OMERO Commandline Interface
- OmeroModel: Model Documentation
- DevelopingOmeroClients: Developting OmeroBlitz Clients
- ExtendingOmero: Extending Omero
Current Development Cycle
We are currently working on the Beta4.4 build, which should be considered Beta software. The last build milestone (Beta4.3.3) was a maintenance release. The current build milestone (Beta4.4) is focusing on stability and reliability.
Attachments
-
api-figure.png
(179.2 KB) -
added by wmoore 13 months ago.
-
model-pdi.png
(27.1 KB) -
added by wmoore 12 months ago.

