# Open Microscopy Environment

El Open Microscopy Environment (OME) es una sofisticada solución de e-science que permite organizar, almacenar y analizar grandes volúmenes de imágenes microscópicas, a través de un sistema cliente-servidor de código abierto y un modelo de datos flexible.
Los desarrolladores de OME percibieron las siguientes limitaciones del paradigma de procesamiento de datos de imágenes:
* No existe un estándar para describir un sistema de adquisición de imágenes
* No existe un formato unificado de representación de datos de adquisición de imágenes
* La mayoría de los datos requieren un análisis específico que ninguna herramienta de software puede proveer anticipadamente
* Es muy difícil manejar datos de imágenes en la escala producida por los laboratorios.
* La imagen y su análisis están unidos, pero no existe un método coherente que permita manejar los resultados analíticos junto con los datos de la imagen.
OME intenta resolver algunos de estos problemas, al proveer software y protocolos que permiten almacenar, compartir y transformar imágenes sin importar el microscopio o software utilizado para su captura y seguir conservando los datos del experimento, el sistema de imágenes y el software utilizado para su procesamiento. A través de su modelo de datos extensible y auto-descriptivo, OME es capaz de adaptarse a las necesidades de los usuarios y sus experimentos, permitiendo crear nuevos tipos de información. Este modelo tiene dos implementaciones:
* Una base de datos relacional utilizando PostgreSQL para trabajar con las herramientas de software de OME.
* Un formato de archivo XML que hace posible el intercambio de información con otro tipo de software.
Los datos y la metadata de las imágenes se almacenan en un servidor centralizado, suficiente para manejar un departamento entero. Los usuarios visualizan y consultan sus imágenes a través de dos tipos de cliente: un cliente web desarrollado en perl en su mayor parte y un cliente en Java.
OME está diseñado para asistir la investigación de imágenes biológicas, pero al ser un proyecto de código abierto, puede ser aprovechado/modificado para crear herramientas que trabajen con otro tipo de imágenes.

## Historia del proyecto

OME nació en 1998-1999 en los laboratorios de Jason Sorger (Universidad de Dundee) y Swedlow(MIT). El primer prototipo fue escrito por el Dr. Ilya Goldberg en el laboratoriio Sorger. Actualmente él administra su propio laboratorio en NIA-NIH el cual también participa activamente en el proyecto. Desde sus inicios OME nació como un proyecto de código abierto (no de software libre), para que este pueda ser libremente utilizado por la comunidad científica, adaptable sin problemas a las necesidades de otros vendedores de software y desarrollado con la colaboración de desarrolladores de cualquier parte del mundo. A los laboratorios Sorger, Swedlow y Goldberg, se les unió recientemente el Laboratorio de Instrumentación Óptica y Computacional (LOCI; U. of Wisconsin, Madison) dirigido por John White y Kevin Eliceiri. Ellos trabajan enlazando OME y un visualizador multidimensional llamado VisBio.

## Desarrollo del proyecto

OME está licenciado bajo LGPL lo que implica que el proyecto puede “enlazarse” con otros programas no licenciados bajo la GPL (es decir, libres o propietarios). Puede ser considerado un proyecto de publicación frecuente pues desde marzo/2005 a diciembre/2006 se publicaron desde las versiones 2.4 hasta la 2.6. La comunidad de desarrolladores de OME está formada por miembros de cuatro laboratorios de investigación en Estados Unidos y Escocia (Dundee, NIA Baltimore, MIT y LOCI). Existen empresas que colaboran muy de cerca con el proyecto, así como otras instituciones (ej. Vanderbild University School of Medicine) que buscan adaptar el proyecto a sus necesidades o desarrollar nuevas herramientas basadas en OME.
OME no es un proyecto tipo bazar exactamente, pues la comunidad de desarrollo es relativamente pequeña, se encuentran divididos por laboratorio y coordinados por el jefe de cada laboratorio. La comunidad de desarrollaodres cuenta con una lista de correos, un repositorio CVS y una wiki.

## Estructuras organizativas/asociativas o de decisión

Cada laboratorio tiene un jefe y un grupo de investigadores/desarrolladores
* Ilya Goldberg (igg@nih.gov), Jason Swedlow (jason@lifesci.dundee.ac.uk), Peter Sorger (psorger@mit.edu) y Kevin Eliceiri
Sin embargo los laboratorios mantienen reuniones presenciales entre ellos y con las empresas que colaboran con el proyecto (una a dos veces al año). De esta forma se toman las decisiones sobre el futuro del proyecto.

## Industria relacionada

OME tiene una relación muy cercana con las empresas comerciales desarrolladoras de hardware y software de manejo de imágenes microscópicas. Mantiene sociedad con muchas de ellas, lo cual significa que estas colaboran en el proyecto de alguna forma, puede ser a través de retroalimentación técnica, desarrollando software de acuerdo a las especificaciones de OME, etc. Ejemplo:
* Applied Precision, LLC Archivado el 30 de diciembre de 2006 en Wayback Machine.,
* Bitplane AG, etc

## Estado actual

OME como otros proyectos, tiene siempre dos versiones de la aplicación: una estable y otra de desarrollo. La versión de desarrollo incluye las correcciones efectuadas y nuevas funcionalidades. Con este sistema, siempre tienen una versión estable para ofrecer a los usuarios y una versión de desarrollo que refleja la dirección que tomará el proyecto. Adicionalmente se tiene una versión “Snapshot”. Los Snapshot son hechos con regularidad para proveer a usuarios de las últimas funcionalidades sin necesidad tratar con CVS.
La última versión de OME es la 2.6, publicada el 7 de diciembre de 2006. Entre los cambios en esta versión se encuentran:
* Interfaz Web basada en plantillas
* Integración completa con Excel
* Mejor conectividad con MATLAB
* Instalador gráfico para OS X

## Radiografía

La herramienta SLOCCount permite identificar líneas de código de diversos lenguajes (no incluye matlab ni javascript, ambos lenguajes utilizados en OME). Los datos y cifras que se muestran en la tabla siguiente nos permitirán analizar un poco más a OM (servidor y cliente web, sin incluir el cliente en Java. La versión 2.6 de OME cuenta con casi 105 mil líneas de código fuente que identifica el SLOCCount, una cifra que según el modelo COCOMO requeriría un esfuerzo para producir un software de este tamaño de 26 persona-años. Por otro lado otra estimación que arrojo el SLOCCount es la referente al tiempo que tardaría una empresa en tener un software como OME, el cual es de 2 años, también obtuvimos que el número de desarrolladores que pueden trabajar en paralelo es de aproximadamente 13, cuyo cálculo se obtiene al dividir las persona-años entre los años.
Una vez que sabemos cuánto tiempo y cuánta gente necesitamos, el cálculo de costes es fácil, para ello se toma en consideración el salario de 56.286 $/año, que es el salario promedio de un programador en los Estados Unidos, luego se multiplica ese resultado por 2,40 que incluye cualquier gasto extra que no sean los programadores como por ejemplo: luz y teléfono, todo esto da un monto de $ 3,574,762.
Estado actual de OME :
| Página web | http://www.openmicroscopy.com/ |
| Inicio del proyecto | 1998 |
| Versión actual | 7 de diciembre de 2006 |
| Líneas de código fuente | 104,852 |
| Esfuerzo estimado de desarrollo (persona-año / persona-mes) | 26.46 / 317.55 |
| Estimación de tiempo (años) | 1.86 |
| Estimación del nº de desarrolladores en paralelo | 13 |
| Estimación de coste | $ 3,574,762 |
Otro aspecto a mencionar son los diversos lenguajes de programación utilizados en el desarrollo del proyecto, según el análisis realizado con SLOCCount, el lenguaje más utilizado en el servidor OME y el cliente web es perl, seguido de ANSI C, shell, y C++ . SLOCCount no identifica la participación de lenguajes como MATLAB y Javascript. En la tabla se muestra dicha información junto con las líneas de código y el porcentaje.
Lenguajes de programación utilizados en OME 2.6 :
| Lenguaje | Líneas de código | % |
| perl | 58533 | 55.82% |
| ANSI C | 42712 | 40.74% |
| sh | 3319 | 3.17% |
| C++ | 288 | 0.27% |