sábado, diciembre 22, 2007

Bases de datos relacionales para datos filogenéticos

Hoy es un día de traducciones ;). Este post es la versión en español de mi post previo en 'ingles' sobre el tema.

Hace un buen tiempo cuando estudiaba ingeniería de sistemas (=ciencias de los computadores), el paradigma reinante para las bases de datos eran las bases de datos relacionales, pero con el rápido crecimiento de internet, computadores más poderosas, y motores de búsqueda eficaces y populares--como Google--pusieron las bases de datos basadas en texto en la cima. Las bases de datos basadas en texto son el paradigma en el cual se han desarrollado las bases de datos para datos filogenéticos, como GenBank y TreeBASE.

En las bases de datos basadas en texto (BDTex) el énfasis se coloca en estandarizar los archivos de entrada, que deben contener todos los datos necesarios para hacer una búsqueda. Seguramente el lector conoce los archivos que se pueden descargar de GenBank, o las matrices/árboles descargados desde TreeBASE. Ellos tienen muchos campos, como una clasificación, identificación de las secuencias o caracteres, un algoritmo de string matching (coincidencia de letras/palabras? No se como se diga esto en español :P) es usado para encontrar coincidencias exactas o similares a la solicitud del usuario.

Entonces, la principal fuente de investigaciones para las BDTex esta basada en los algoritmos de string matching. El blog iPhylo de Rod Page, tiene varios posts, y enlaces a artículos y manuscritos (aquí o aquí) sobre el tema. Pero yo creo que las bases de BDTex son una aproximación erronea.

La coincidencia de letras (string matching) es una buena herramienta para buscar palabras claves a lo largo de la red, o varios grupos de letras, como la búsqueda de secuencias en GenBank (yo supongo que esa es la principal razón para que sea una BDTex!), pero parece problemática para una base de datos de taxonomía/filogenia. Quiero resaltar algunos puntos:
  • Ambigüedad: aunque la entrada para cargar archivos en los servidores estén basados en plantillas de 'cortar y pager' (o usen asistentes paso a paso), es responsabilidad de quien carga el archivo llenarlo adecuadamente. Como Page llama la atención, en muchas de las matrices de TreeBASE los nombres de los terminales no son nombres científicos.
  • Información irrelevante: cuando uno descarga un archivo, este suele estar lleno de información que el usuario no desea, y otra información no esta disponible. Además como las búsquedas se basan en coincidencias de texto, cosas como notas, comentarios y otros campos pueden confundir a los algoritmos (recuerden, se trata de algoritmos de string matching!).
  • Formateado: Al ser una base de datos basada en texto, se tiene que hacer un compromiso en hacer los archivos legibles (=estandarizados) por varios programas lo que hace que los campos sean rigidos y existe una gran dificultad para incluir nuevos campos e información. Por ejemplo, la información geográfica en GenBank no es obligatoria--hasta donde se--incluso para los conjuntos de datos usados en análisis filogeográficos! La información geográfica y de material examinado para TreeBASE parece imposible si su implementación continua unida al formato nexus.
  • Taxonomía: Como consecuencia del formateado rígido, clasificaciones alternativas y búsquedas usando sinónimos no pueden ser implementadas, o requieren búsquedas adicionales en bases de datos alternativas.
  • Filogenia: ¿Alguna vez han intentado buscar una 'estructura de árbol' en TreeBASE?
Las bases de datos relacionales son un concepto diferente a las BDTex. Se basan en usar muchas tablas independientes conectadas mediante campos-clave (keys) muchas veces usando tablas secundarias para enlazar diferentes tablas. El motor de búsqueda esta basado en explorar las claves específicas (en búsquedas complejas) y campos específicos dentro de cada tabla.
Mi propia idea de como debe ser la estructura de la base de datos, en forma simplificada, y basada en mis propios intereses y búsquedas que yo he realizado es esta:
Por supuesto, un diseño adecuado requiere muchos años de desarrollo, con montones de entrevistas a varios taxónomos para permitir un producto que pueda ser usado adecuadamente alrededor del mundo! (A pesar que en sus post el apoya las BDTex, este post de Rod Page da varias ideas muy interesantes sobre el trabajo multidisciplinario de una base de datos para filogenias, por supuesto hay muchas cosas en la que yo no estoy de acuerdo xD).

Esta es la descripción de las diferentes tablas de mi bosquejo. La tabla 'taxon' guarda la nomeclatura del nombre actual de un taxon, sea una especie o una entidad supra-especifica, puede incluir la diagnosis (enlazada con la tabla de entrada de caracteres!), el 'concepto filogenético', enlace a dibujos o fotografías, el espécimen tipo (con enlace a la tabla de especímenes) y cosas de ese estilo. La tabla de 'synonyms' y 'classification' son tablas secundarias que guardan solo la relación entre dos taxones: los sinónimos (se puede incluir el motivo de la sinonimia), y el siguiente taxon más inclusivo de un taxon particular (y puede incluir el autor de esa propuesta de inclusión). Como cada taxon es tratado de forma independiente uno puede incluir tantos sinónimos como desee, o múltiples clasificaciones propuestas.

La tabla 'specimen' puede guardar información especifica de el material examinado, enlace a fotografías del espécimen, la localidad donde fue colectado, y cosas así.

Además hay una sección de caracteres! La tabla 'character' guarda el nombre, descripción, y quizá una bibliografía y dibujos o fotos del carácter, con 'character equivalences' es posible guardar caracteres equivalentes usados en otros estudios, permitiendo referencias cruzadas entre estudios que tengan diferentes grupos de terminales, la tabla 'character entry' guarda la información especifica de un carácter y un taxon, puede ser una celda de una matriz de caracteres morfológicos, o un fragmento específico de una secuencia molecular.

Este diseño puede ayudar en las cosas en donde las BDTex fallan. La ambigüedad es reducida, porque cada entrada es única y especifica: al cargar un archivo en la base de datos se debe identificar la naturaleza especifica de la entrada. BDTex pueden desarrollarse con un estándar como ese, pero en este caso es posible incluir muchos sinónimos, y nombres específicos de caracteres. Un proceso curatorial para la taxonomía puede ser posible sin destruir la integridad del conjunto de datos, y como los resultados filogenéticos deben ser introducidos en forma de una clasificación, el distanciamiento entre la filogenia y la clasificación [1] se vera reducido.

Cuando se realiza una búsqueda el usuario puede recuperar solo la información específica que desea: por ejemplo todos los caracteres para la cabeza de Hymenoptera, usando las equivalencias los caracteres pueden ser organizados en una forma relativamente adecuada, y usando la tabla de clasificaciones es posible encontrar caracteres de la cabeza usados en diferentes estudios, caracteres que pueden estar incluidos si se utiliza una clasificación alternativa, o caracteres que pueden estar presentes al ser incluidos en clasificaciones más inclusivas (por ejemplo, caracteres usados para definir Hexapoda o Arthropoda), de esta forma se consigue un verdadero sistema de recuperación de la información basado en la clasificación [2].

Tal y como muestran Nixon et al. [3] un único formato de archivo no es algo bueno para una base de datos, más bien, es preferible la estructura de tablas, y mecanismos de reporte que puedan producir entradas en diferentes formatos, por ejemplo recuperar secuencias en el formato de GenBank, en el de TNT, y en POY (fasta), o un archivo de distribuciones listo para usar con NDM.

La tabla de clasificaciones puede ayudar para localizar estudios que apoyen o rechacen una clasificación particular, el usuario puede encontrar la evidencia para un agrupamiento y para la clasificación alternativa. Pueden desarrollarse y usarse algoritmos que realicen la tarea de convertir la estructura de un árbol en una solicitud de búsqueda--Page a posteado sobre el tema con relativa frecuencia ;)--. Pero es más poderoso que las busquedas basadas en texto pues la misma base de datos posee la información (la clasificación jerárquica) para realizar la búsqueda.

Espero algún día hacerme millonario (lo dudo :P) o recibir financiación--ojala ;)--para elaborar esta enorme tarea, o al menos que alguien en la red, tenga ideas similares. Hasta entonces el único camino parece ser el sufrimiento continuo con las bases de datos 'taxonómicas' y 'filogenéticas' que esta por la red...

Pd. Como se puede ver, quizá esta base de datos pondria más cosas sobre el investigador que cargue los datos... pero despues de haber estado en campo por meses, examinar material por horas, día tras día, escribir reportes y manuscritos, cargar la información es solo una parte de toda la investigación!

[1] Franz, N.M. 2005. On the lack of good scientific reasons for the growing phylogeny/classification gap. Cladistics 21: 495-500.
[2] Farris, J.S. 1979. The information content of the phylogenetic system. Systematic zoology 28: 483-519.
[3] Nixon, K.C., Carpenter, J.M., Borgardt, S.J. 2001. Beyond NEXUS: universal cladistic data objects. Cladistics 17: S53-S59.

No hay comentarios.: