2. Generalidades
Bio4J es una Base de Datos basada en grafos, para aplicaciones
bioinformáticas. Utiliza tecnología NoSQL
Basada en Neo4j
Incluye gran parte de la información disponible en UniProt
(SwissProt + Trembl) , Gene Ontology (GO) y UniRef.
Es software libre bajo licencia AGPLv3.
3. Generalidades (cont)
En Bio4J la información está organizada en
una manera que es semánticamente Gen
equivalente a lo que ésta representa,
gracias a la estructura de grafos. Genoma
Consultas que pueden ser muy complejas en
RDBMS estándar se vuelven muy rápidas GenAnotacionGO
y simples cuando se usa esta nueva
aproximación al problema. Termin
o
GO
4. Generalidades (cont)
Abstracciones base
Especie
Gen Secuencia
Funciones
Nodos
Relaciones
Propiedades (para ambos) Tipo=Codifica
Protein
a
6. Es una base de datos basada en grafos. Almacena información en los
nodos y relaciones de un grafo. Es la fundación para Bio4J
Optimizada para almacenar estructuras de grafo con máximo
desempeño y escalabilidad
ACID
Puede manejar miles de millones de nodos-relaciones-propiedades en
un solo servidor o varios de ellos
Optimizado para hacer recorridos veloces en el espacio de nodos
7. Nodos y relaciones
Los nodos están organizados por
relaciones, también tienen
propiedades
Las relaciones pueden crear
estructuras determinadas: Lista,
Árbol, Mapa, etc...
8. Recorridos
El recorrido es la forma en la que
se consulta el grafo.
Se navega desde los nodos iniciales
hasta nodos relacionados,
dependiendo de la infomación
buscada
9. Indices
Los índices mapean nodos
y relaciones a partir de
las propiedades
10. Bio4j vs RDBMS
El modelo de dominios
grandes en una RDBMS
suele ser engorroso y las
consultas se complican
11. Bio4j vs RDBMS
Las RDBMS están optimizadas para grandes cantidades de datos
agregados. Bio4J está optimizada por datos altamente interconectados
Integrar nuevo conocimiento en un modelo relacional puede ser
complicado y muchas veces no es posible sin cambiar el modelo
En el modelo relacional, se pueden necesitar muchas tablas y subtablas
para representar una entidad y sus datos asociados
Se pueden hacer necesarios muchos JOINS para encontrar relaciones
entre entidades
12. Bio4J vs RDBMS
Bio4J es más adecuado para modelado de información biológica
13. Herramientas: Bio4jExplorer
Navegar nodos y relaciones
Explorar el vecindario de un nodo o relación
Buscar por índices relacionados con un nodo
Buscar relaciones entrantes y salientes para un nodo
Buscar nodos de inicio y de fin para una relación
16. Herramientas: Cypher
Cypher Query Language.
Permite hacer consultas rápidas y poderosas a la base de datos son
necesidad de escribir código
Inspirado en SQL
Pensado para desarrolladores y usuarios finales
18. Herramientas: Cypher
START john=node:node_auto_index(name = 'John')
MATCH john-[:friend]->()-[:friend]->fof
RETURN john, fof
john fof
Node[4]{name>"John"} Node[2]{name>"Maria"}
Node[4]{name>"John"} Node[3]{name>"Steve"}
2 rows, 2 ms
19. Herramientas: REST Server
También se puede usar la API REST para acceder y navegar la
información. Los datos obtenidos están codificados por defecto en
JSON
Obtener proteína por código
http://server_url:7474/db/data/index/node/protein_accession_index/
protein_accession_index/Q9UR66
Obtener relaciones salientes para proteína
http://server_url:7474/db/data/node/Q9UR66_node_id/relationships/
out
21. Herramientas: Cloud Services
Crear un web server usando AWS con Bio4j como backend es bastante
simple
Hay código liberado como EBS snapshots
Plantillas CloudFormation:
Basic Bio4j DB Instance
Bio4j REST Server Instance