gP2S es una aplicación web para el seguimiento de experimentos de crioem. Se describen sus principales características, así como los pasos necesarios para instalar y configurar la aplicación. Una vez configurada, la aplicación permite registrar con precisión los metadatos asociados con los experimentos de manchas negativas y cryoEM.
La microscopia electrónica criogénica (cryoEM) se ha convertido en una parte integral de muchos proyectos de descubrimiento de fármacos porque la cristalografía de la proteína diana no siempre es alcanzable y el crioEM proporciona un medio alternativo para apoyar el diseño de ligandos basados en la estructura. Cuando se trata de un gran número de proyectos distintos, y dentro de cada proyecto un número potencialmente grande de co-estructuras ligando-proteína, el mantenimiento de registros precisos se convierte rápidamente en un desafío. Muchos parámetros experimentales se ajustan para cada objetivo, incluyendo en las etapas de preparación de la muestra, preparación de la rejilla y microscopía. Por lo tanto, el mantenimiento de registros precisos puede ser de vital importancia para permitir la reproducibilidad a largo plazo y para facilitar el trabajo en equipo eficiente, especialmente cuando los pasos del flujo de trabajo cryoEM son realizados por diferentes operadores. Para ayudar a hacer frente a este desafío, desarrollamos un sistema de gestión de información basado en la web para cryoEM, llamado gP2S.
La aplicación realiza un seguimiento de cada experimento, desde la muestra hasta el modelo atómico final, en el contexto de los proyectos, una lista de los cuales se mantiene en la aplicación o externamente en un sistema independiente. Los vocabularios controlados definidos por el usuario de consumibles, equipos, protocolos y software ayudan a describir cada paso del flujo de trabajo de cryoEM de una manera estructurada. gP2S es ampliamente configurable y, dependiendo de las necesidades del equipo, puede existir como un producto independiente o ser parte de un ecosistema más amplio de aplicaciones científicas, integrándose a través de APIs REST con herramientas de gestión de proyectos, aplicaciones que rastrean la producción de proteínas o de ligandos de moléculas pequeñas, o aplicaciones que automatizan la recopilación y el almacenamiento de datos. Los usuarios pueden registrar los detalles de cada sesión de cuadrícula y microscopía, incluidos los metadatos experimentales clave y los valores de los parámetros, y se registra el linaje de cada artefacto experimental (muestra, cuadrícula, sesión de microscopía, mapa, etc.). gP2S sirve como un organizador de flujo de trabajo experimental cryoEM que permite el mantenimiento de registros precisos para los equipos, y está disponible bajo una licencia de código abierto.
Gestión de la información en las instalaciones de cryoEM
A partir de 2014 aproximadamente, el número de instalaciones de microscopía electrónica criogénica (cryoEM)1 ha crecido de forma explosiva, con al menos 300 sistemas de alta gama instalados en todo el mundo2,incluso en un número en las compañías farmacéuticas, lo que refleja un papel creciente para cryoEM en el descubrimiento de fármacos3. Las misiones de estas instalaciones y sus necesidades de seguimiento y gestión de datos difieren4. Algunos, por ejemplo los centros nacionales de cryoEM, se encargan de recibir cuadrículas EM, recopilar conjuntos de datos y devolver datos a los usuarios para la determinación de la estructura, tal vez después de un procesamiento automatizado de imágenes. En tales instalaciones, el seguimiento de la procedencia de la red, su asociación con una propuesta o concesión de usuario, y el linaje de la cuadrícula al conjunto de datos es crucial, pero otros factores, como el método de purificación de la muestra de proteína o el eventual proceso de determinación de la estructura, son menos, o no son en absoluto relevantes. En otras instalaciones, como las instalaciones académicas locales, cada usuario final es responsable de preparar sus propias muestras y cuadrículas, realizar la microscopía, administrar los datos en bruto y su procesamiento y publicar los resultados. No hay una necesidad estricta de seguimiento de metadatos por parte de dicha instalación porque esta función la cumple el usuario final o su investigador principal.
En nuestras instalaciones de cryoEM, el manejo y la optimización de muestras, cuadrículas, protocolos de recopilación y procesamiento de datos y resultados (mapas, modelos) se centraliza en muchos proyectos en un pequeño grupo de profesionales. Esto presenta desafíos en la gestión experimental de (meta)datos. El linaje experimental de estructuras, desde el modelo atómico hasta la identidad exacta de las proteínas y ligandos, a través de parámetros de preparación de cuadrícula y protocolos de recopilación de datos, debe ser capturado y preservado con precisión. Estos metadatos deben ponerse a disposición de varios operadores humanos. Por ejemplo, una persona que realiza el procesamiento de imágenes puede necesitar saber qué construcción de una proteína se utilizó y cuáles fueron los parámetros de imagen, a pesar de que no purificaron la proteína ni recopilaron los datos de crioem ellos mismos; los sistemas informáticos, como los demonios automatizados de gestión de datos, necesitan identificar el proyecto para el que un microscopio está recopilando datos actualmente con el fin de asignar correcta y sistemáticamente nombres de directorio.
Varios sistemas de gestión de la información están disponibles para apoyar las instalaciones de cryoEM. Quizás el más completo de ellos es EMEN25,que combina las características de un cuaderno electrónico de laboratorio, un sistema de gestión de la información y algunos elementos de una herramienta de gestión de procesos de negocio. Utilizado en muchos sincrotrones, ISPyB6,originalmente construido para soportar las líneas de haz de rayos X para cristalografía, ahora también admite la recopilación de datos de crioEM. Scipion7 es un contenedor rico y potente alrededor de paquetes de procesamiento de imágenes, que permite a los usuarios grabar flujos de trabajo de procesamiento de imágenes y compartirlos, por ejemplo, a través del repositorio público EMPIAR8,9,y también está integrado con ISPyB para permitir el procesamiento de datos cryoEM sobre la marcha.
Aquí describimos gP2S (para Genentech Protein to Structure), un sistema de gestión de información crioEM moderno y ligero construido para apoyar el flujo de trabajo desde la proteína purificada y el ligando de moléculas pequeñas hasta el modelo atómico final.
Descripción general de gP2S
gP2S es un sistema de gestión de información cryoEM basado en la web fácil de usar que facilita el mantenimiento de registros precisos para laboratorios cryoEM e instalaciones multiusuario y multiproyecto. Se realiza un seguimiento de las siguientes entidades, sus relaciones y metadatos asociados: proyectos, equipos, consumibles, protocolos, muestras, cuadrículas, sesiones de microscopía, sesiones de procesamiento de imágenes, mapas y modelos atómicos. Los usuarios también pueden agregar comentarios de texto libre, incluyendo opcionalmente archivos adjuntos, lo que permite la anotación enriquecida de cualquier entidad registrada en gP2S. El front-end ha sido diseñado para facilitar el uso con dispositivos de pantalla táctil y probado ampliamente en iPad Pros de 12,9″, lo que permite utilizar gP2S en el banco de laboratorio mientras se preparan muestras y rejillas(Figura 1),así como en el ordenador al operar el microscopio, procesar imágenes o depositar modelos. Cada página en el front-end tiene como objetivo reducir la entrada manual de datos mediante el establecimiento previo de parámetros a valores predeterminados razonables cuando sea posible.
El backend de gP2S cuenta con una serie de puntos finales de API REST (REpresentational State Transfer Application Programming Interface), lo que permite integrar gP2S en flujos de trabajo y scripts existentes. El modelo de datos se diseñó para permitir la captura precisa de flujos de trabajo de manchas negativas y crioem, incluida la ramificación, por ejemplo, con una muestra utilizada en varias cuadrículas, datos de varias sesiones de microscopía que se fusionan en una sola sesión de procesamiento de datos o una sesión de procesamiento de datos que produce varios mapas.
Arquitectura del sistema
gP2S es una aplicación clásica de tres niveles (Figura 2). En esta arquitectura modular, el sistema se divide en tres capas separadas, cada una responsable de realizar tareas distintas, y cada una reemplazable o modificable independientemente de las demás. (1) La capa de presentación (o frontend) proporciona acceso al usuario a través del navegador web (ampliamente probado con Chrome y Safari), permite crear y modificar elementos de flujo de trabajo (incluida la validación de datos) y muestra datos experimentales como entidades individuales, listas basadas en proyectos e informes de flujo de trabajo completos. (2) La capa de servicio (o backend) sirve como una capa intermedia entre la interfaz de usuario y el sistema de almacenamiento: contiene la lógica de negocios principal, expone la API de servicio utilizada por el frontend, se integra con el almacenamiento de datos y el sistema LDAP (Protocolo ligero de acceso a directorios) para la autenticación de usuarios y proporciona una base para la integración adicional con sistemas externos. (3) La capa de persistencia (acceso a datos) es responsable del almacenamiento de datos experimentales, comentarios de usuarios y archivos adjuntos.
Tecnologías y marcos clave
Con el fin de facilitar el desarrollo, la construcción y el mantenimiento de la aplicación gP2S, se utilizaron varias tecnologías y marcos en el proyecto. Los más importantes son: Vue.js 2.4.210 para el frontend y SpringBoot 1.311 con servidor Tomcat 8 integrado para el backend. La aplicación utiliza bases de datos MySQL 5.7 y MongoDB 4.0.6 para el almacenamiento y LDAP12 para la autenticación. De forma predeterminada, todos estos componentes se envían e implementan como una sola aplicación.
En total, la aplicación utiliza cientos de bibliotecas diferentes, ya sea directa o indirectamente. Los más destacados se enumeran en el Cuadro 1.
Modelo de datos
Se pueden distinguir tres tipos de entidades en el modelo de datos gP2S (Figura 3):entidades de flujo de trabajo relacionadas con los datos recopilados durante los experimentos (por ejemplo, muestras o sesiones de microscopía); entidades de equipos y protocolos que describen datos que son comunes en todos los proyectos (por ejemplo, microscopios o protocolos de vitrificación); otras entidades que desempeñan funciones de apoyo o técnicas en el sistema (por ejemplo, comentarios o valores predeterminados).
La raíz del árbol de datos de flujo de trabajo es la entidad Project. Cada proyecto consta de una serie de proteínas y/o ligandos que son bloques de construcción para crear entidades de muestra. Cada muestra se puede utilizar para crear múltiples cuadrículas que a su vez se utilizan en sesiones de microscopía (una cuadrícula por sesión de microscopía). Estos últimos se asignan a sesiones de procesamiento que pueden producir uno o más mapas. La última entidad del árbol es el Modelo atómico, creado mediante uno o varios mapas. En consecuencia, cada entidad relacionada con el flujo de trabajo, desde la proteína hasta el modelo, siempre está vinculada a un proyecto en particular a través de sus antepasados. Dicho diseño crea agregados de datos que son fáciles de procesar por el módulo front-end o por sistemas externos que usan la API.
Además de los datos de flujo de trabajo, hay entidades que describen los equipos utilizados en experimentos o protocolos que se siguieron durante la preparación de las cuadrículas. La definición de estas entidades es un requisito previo para crear entidades de flujo de trabajo experimentales como cuadrículas, microscopía y sesiones de procesamiento.
El último tipo de entidad de datos, denominada colectivamente como “Otros”, se usa con fines técnicos (por ejemplo, archivos adjuntos o valores predeterminados). Esta categoría incluye entidades de comentario que se pueden vincular a cualquier flujo de trabajo o entidades de equipo/protocolo.
Disponibilidad del software
La versión de código abierto de gP2S está disponible bajo una licencia Apache Versión 2.026,desde https://github.com/arohou/gP2S. Una imagen de Docker para ejecutar gP2S está disponible en https://hub.docker.com/r/arohou/gp2s. Una rama de código cerrado de gP2S está en continuo desarrollo en Roche &Genentech.
Ejecución de la aplicación gP2S
Hay dos formas de ejecutar gP2S: como un contenedor docker o como una aplicación Java independiente. La elección óptima dependerá del entorno de implementación de destino. Por ejemplo, si se desea la capacidad de personalizar o mejorar el código para satisfacer las necesidades específicas de los usuarios, primero se debe volver a generar toda la aplicación. En este caso, se podría recomendar la ejecución de gP2S como una aplicación independiente.
Contenedor docker
La forma más fácil de empezar a trabajar con la aplicación gP2S es ejecutarla como un servicio de Docker.The easiest way to start working with the gP2S application is to run it as a Docker service. Para ello, se ha preparado y publicado una imagen de Docker dedicada en el repositorio de Docker Hub (“https://hub.docker.com/r/arohou/gp2s”). La ejecución de la imagen gP2S depende del acceso a las bases de datos MySQL y MongoDB, y a un servidor LDAP. Para el entorno que no es de producción, se recomienda ejecutar todas estas dependencias como aplicaciones docker de varios contenedores junto con la aplicación gP2S. Para que esto sea transparente, se ha preparado y proporcionado un archivo docker-compose (https://github.com/arohou/gP2S/blob/master/docker-compose.yml) que incluye todas las configuraciones necesarias del entorno final en el repositorio de GitHub de gP2S (https://github.com/arohou/gP2S). Las siguientes imágenes de docker son dependencias: mysql27, mongodb28, apacheds29.
En la configuración predeterminada, todos los datos almacenados, tanto las entidades como los archivos adjuntos, se eliminarán al quitar los contenedores docker. Para conservar los datos, se deben usar volúmenes docker o la aplicación gP2S debe conectarse a instancias de base de datos dedicadas (MySQL y MongoDB). El contenedor del servidor LDAP de ApacheDS viene con un usuario administrador preconfigurado (contraseña: secreto). Estas credenciales se deben usar para iniciar sesión en la aplicación gP2S cuando se ejecuta como un servicio de Docker.These credentials should be used to log in to the gP2S application when it is run as a Docker service. Para entornos de producción, se puede utilizar el mismo archivo docker-compose para implementar gP2S (y otros contenedores si es necesario) como servicios en una plataforma de orquestación de contenedores de Docker Swarm.
El proceso completo de ejecución de gP2S como un contenedor de Docker, incluidos todos los detalles sobre la configuración correcta, se describe en el repositorio de GitHub de gP2S y cubre los siguientes temas:
• Ejecución de la aplicación dockerized gP2S con todas las dependencias.
• Acceso a la aplicación gP2S, base de datos y LDAP.
• Actualización del servicio gP2S con una nueva versión.
• Eliminación de la aplicación gP2S.
• Configuración de la persistencia de datos.
• Conexión de la aplicación gP2S est dockerizada a bases de datos dedicadas o a un servidor LDAP.
• Detalles de configuración
Aplicación Java independiente
Otra opción para ejecutar la aplicación gP2S es construir un paquete Java autónomo. Este enfoque debe adoptarse si no es posible ejecutar contenedores de Docker.This approach should be taken if running Docker containers is not possible. La creación de la aplicación gP2S requiere la instalación de un Kit de desarrollo de Java versión 8 o superior. Todo el proceso de compilación se administra mediante la herramienta Maven, que se proporciona en el código base del repositorio de GitHub.The whole build process is managed by the Maven tool, which is provided in the codebase in GitHub repository. La configuración de compilación está preparada para compilar primero la parte de front-end, luego copiarla en orígenes de back-end y, a continuación, compilarla como una aplicación final. De esta manera, no hay necesidad de instalar ninguna otra herramienta o biblioteca para preparar un paquete gP2S completamente funcional. De forma predeterminada, el resultado de la compilación es un paquete JAR (almacenado localmente) y una imagen de Docker (insertada en el repositorio configurado en el archivo pom.xml de Maven). Es importante recordar que la información necesaria para conectarse a sistemas externos (bases de datos y servidor LDAP) debe proporcionarse en un archivo de configuración adecuado antes de que se construya el paquete.
Una vez creado el paquete JAR gP2S, contiene todas las dependencias e información de configuración necesarias para ejecutar la aplicación, incluido el servidor de aplicaciones Tomcat que aloja el sistema. Si el paquete se creó con varios archivos de configuración, se puede ejecutar en diferentes modos sin volver a generarlo.
El repositorio de GitHub gP2S incluye una descripción completa del proceso de creación y ejecución de gP2S como una aplicación independiente y cubre los siguientes temas:
• Creación de gP2S utilizando la herramienta Maven
• Creación y ejecución con bases de datos integradas
• Creación y ejecución con dependencias implementadas como contenedores docker
• Creación y ejecución con bases de datos dedicadas
• Configuración de la autenticación
Cuando se usa de manera adecuada y consistente, gP2S ayuda a lograr un mantenimiento adecuado de registros de metadatos de alta calidad al hacer cumplir el registro de metadatos experimentales críticos utilizando modelos de datos estructurados y vocabularios definidos, pero el valor agregado de esto solo se realiza completamente cuando se logra un alto nivel de cumplimiento en el laboratorio. El protocolo anterior no cubre cómo lograrlo. Se encontró que una técnica de aplicación eficaz fue hacer que los operadores de microscopio se nieguen a recopilar datos sobre las rejillas no registradas en gP2S. Esto impulsó el cumplimiento muy rápidamente y sentó las bases para la aparición, durante los meses siguientes, de un gran cuerpo de detalles experimentales detallados y precisos y memoria corporativa. Después de unos meses de uso, el valor del corpus de metadatos almacenados en gP2S se hizo tan obvio para la mayoría de los usuarios que el cumplimiento se mantuvo alto sin intervención explícita.
Aprovechar al máximo esta memoria colectiva requiere que los metadatos almacenados en gP2S sean accesibles a sistemas externos y se asocien fácilmente con los datos experimentales (micrografías) y los resultados (mapas y modelos). El protocolo anterior no describe cómo integrar gP2S con otros sistemas informáticos y de procesamiento de datos. Lo más sencillo son las integraciones potenciales a través de la API REST de back-end de gP2S, que no requieren ninguna modificación de gP2S. Por ejemplo, cada computadora que controla nuestros detectores de recopilación de datos ejecuta un script que consulta periódicamente el punto final de gP2S “getItemByMicroscope” bajo el controlador REST de administración de sesiones de microscopía, para verificar si una sesión de microscopía está en curso en su microscopio. Si es así, el script recupera de gP2S el nombre de directorio de almacenamiento de datos adecuado (como se ha configurado en la página Configuración, consulte más arriba) y crea un directorio en el dispositivo de almacenamiento de datos local con este nombre. Esto garantiza la denominación sistemática de los directorios de almacenamiento de datos y reduce el riesgo de error debido a errores tipográficos.
Aunque han sido comentados en la fuente de la versión pública de gP2S, también son posibles más integraciones que impliquen gP2S consumiendo datos de sistemas externos. En nuestro laboratorio, nuestra implementación de gP2S se integra con (i) un sistema de gestión de proyectos, de modo que cada proyecto configurado en gP2S se puede vincular a un proyecto de cartera de toda la empresa, y los metadatos de la cartera se pueden mostrar dentro de gP2S; ii) un sistema de registro de proteínas, de modo que cada proteína añadida a gP2S esté vinculada, a través de un identificador almacenado localmente, a un conjunto completo de registros que detallen la procedencia de la proteína, incluidos detalles de la biología molecular, el sistema de expresión y la purificación pertinentes; (iii) un sistema de gestión de compuestos de moléculas pequeñas, que permite a gP2S mostrar información clave sobre cada ligando, como su estructura química. Las modificaciones de código necesarias para habilitar estas integraciones se describen en la sección “Integración” del documento de README-BUILD.md disponible en el repositorio gP2S (https://github.com/arohou/gP2S).
La versión actual de gP2S tiene limitaciones, la primera de las cuales es el modelo de datos demasiado simplista y el frontend para la deposición de la estructura (modelo). Esto se dejó intencionalmente en un estado “barebones” en la versión lanzada de gP2S porque una característica de deposición y validación de estructura completa está actualmente en desarrollo junto con soporte para cristalografía de rayos X. Otra decisión de diseño fue no implementar ningún sistema de privilegios o permisos: todos los usuarios en gP2S tienen igual acceso a sus características y datos. Esto puede hacer que sea una mala opción para las instalaciones que sirven a grupos de usuarios con intereses en competencia y requisitos de confidencialidad, pero no era una preocupación para nuestra instalación.
El desarrollo de nuestra versión interna de gP2S está en curso y esperamos que la versión de código abierto descrita aquí sea útil para otros grupos de cryoEM, y que algunos puedan contribuir con sugerencias o mejoras de código en el futuro. Los futuros desarrollos de alto valor podrían centrarse, por ejemplo, en integraciones con equipos de laboratorio (robots de vitrificación, microscopios electrónicos), software (por ejemplo, para recopilar metadatos de procesamiento de imágenes) y repositorios públicos externos (por ejemplo, para facilitar las deposiciones de estructuras).
La recopilación sistemática de metadatos de alta calidad habilitada por el uso rutinario de gP2S en el laboratorio y las instalaciones de cryoEM puede tener un impacto significativo y positivo en la capacidad de procesar múltiples proyectos en paralelo durante un período de años. A medida que se establezcan más y más grupos e instalaciones de cryoEM compartidos y centralizados, anticipamos que la necesidad de sistemas de gestión de la información como gP2S continuará creciendo.
The authors have nothing to disclose.
Los autores agradecen a todos los demás miembros del equipo de desarrollo de gP2S que han trabajado en el proyecto desde su creación: Rafał Udziela, Cezary Krzyżanowski, Przemysław Stankowski, Jacek Ziemski, Piotr Suchcicki, Karolina Pająk, Ewout Vanden Eyden, Damian Mierzwiński, Michał Wojtkowski, Piotr Pikusa, Anna Surdacka, Kamil Łuczak y Artur Kusak. También agradecemos a Raymond Ha y Claudio Ciferri por ayudar a armar el equipo y dar forma al proyecto.