Big Data e Saude - facom.ufu.brhumberto/sbbd2017/wp-content/uploads/sites/3/... · • Modelagem...
Transcript of Big Data e Saude - facom.ufu.brhumberto/sbbd2017/wp-content/uploads/sites/3/... · • Modelagem...
1
Bio-SGBD: precisamos?
Workshop Databases Meet Bioinformatics (DBBio)
Simpósio Brasileiro de Bancos de Dados (SBBD) – Uberlândia (MG), Outubro 2017
Sérgio Lifschitz
SGBD-Bio: Precisamos?
Resposta: NULL ( … mas acho que sim…)
Alternativas:
• Sistemas Ad-hoc
• SGBD relacionais estendidos
• SGBD não-relacionais, NoSQL, NewSQL
2
BDs e bio-*
Questões fundamentais• Modelagem (conceitual) de dados
• Transações e otimização de E/S
Questões recentes e avançadas• Workflows e proveniência de dados
• Data streams, P2P, grids, nuvem, Big Data
Abordagem básica: de CS para Bio!
vs biological inspired computing !
Aspectos Fundamentais
3
Biologia Molecular
heterogeneidade
Grande Volume
Dis
trib
uiç
ão
@ Cristian Tristão
Tamanho
• Genbank mais de 100Gbases
• Mais de 100 milhões de registros de sequências
Human Genome Project
• 3 Giga pares de bases, em uma certa ordem, para cada indivíduo, sem incluir anotações!
Alguns fatos
• Sequências: no mínimo quadruplica a cada ano
• Sanger Center: + de 20 TB “terror bytes”
• Micro arrays: pelo menos 1 PB/ano
VLDB?
4
Persistência
Armazenamento
Estruturas de Dados
Backup
ADTs e métodos
Buffer e cache
Gerência de memóriaPrinter
Video
File
Operating System Abstract Layer
Video
Device
Printer
Device
File System
DevicePipeLine
Program
A
Program
B
Program
C
Program
D
Métodos de Acesso
Organização de arquivos
Indexação
5
Transações
Faz sentido para Bio?
Controle de concorrência
Recuperação
Otimização de Consultas
Especificação de consultas
Linguagens declarativas
Filtros estáticos
Planos ótimos
Operadores ad-hoc
6
Modelagem
3 fases?
Abstração conceitual
Modelos lógicos
Nível físico
Evolução de esquemas
Como Gerenciar Sequências Biológicas?
.fasta.txt
...
TEXTVARCHAR
BLOB
funçõesscripts
• replace(string text, from text, to text)
• strpos(string, substring)• substr(string, from [, count])
• translate(string text, from text, to text)
atgaaggcaatactagtagtctgctatatacatttgcaaccgcaaatgcagacacattatgtataggttatcatgcgaacaattcaacagacact
gtagacacagtactagaaaagaatgtaacagtaacacactctgttaaccttctagaagacaagcataacgggaaactatgcaaactaagag
gggtagccccattgcatttgggtaaatgtaacattgctggctggatcctgggaaatccagagtgtgaatcactctccacagcaagctcatggtcct
acattgtggaaacacctatttaccaggtgttcagacaatggaacgtgttacccaggagatttcatcgattatgaggagctaagagag ...
Sequência de Nucleotídeo
@ Cristian Tristão
7
Tipo Abstrato de Dados
Funções
SG
BD
Po
stg
reSQ
L
persistência
manipulação / acesso
I II III I
V
Translationcode
complement
reverse
getGCcontent
transcript
translation
searchORF
Sequence
=
Text Type@ Cristian Tristão
Funções básicas
Dado uma sequência de DNA, é retornado o seu transcrito.
Ex.: transcript(‘ACGGCTATTTAGACT’) = ACGGCUAUUUAGACU
Dado uma sequência, é retornado seu conteúdo GC.
Ex.: getGCcontent(‘ACGGCTATTTAGACT’) = 6
Conteúdo GC: getGCcontent
(“sequence”)
Transcrição: transcript(“sequence”)
@ Cristian Tristão
8
Funções específicas
Dado uma sequência de nucleotídeos é
retornada a sequência de aminoácidos.
Ex.: translation(2,‘ACGGCTATTTAGACT’) = RLFR
Tradução: translation (“position”, “sequence”)
Dada seq. nucleotídeos retorna conjunto de ORFs com um tamanho mínimo.
Ex.: searchORF(1,‘ACGAUGCUAUUUAGAUAGCUG’, 10) = AUGCUAUUUAGAUAG
Procura ORF: searchORF (“position”, “sequence”, “tam”)
@ Cristian Tristão
Questões de Análise
Quantidade de Proteínas Comparadas
Proteínas com Sequência Genômica de Origem
Quantidade de Genomas que Pertencem a um Grupo Taxonômico
Quantidade de Proteínas que Pertencem a um Grupo Taxonômico
Quantidade de Hits para uma Proteína “X”, + Linha de Corte
Genes Únicos
Genes Parálogos
Genes Ortólogos
9
Esquema Conceitual
@ Cristian Tristão
e Marcia Bezerra
Esquema Conceitual
@ Cristian Tristão
e Marcia Bezerra
10
Visão Geral
AnáliseEsquema Conceitual
• Quantidade de Proteínas Comparadas
• Proteínas com Sequência Genômica de Origem
• Quantidade de Genomas que Pertencem a um Grupo
Taxonômico
• Quantidade de Proteínas que Pertencem a um Grupo
Taxonômico
• Quantidade de Hits para uma Proteína “X”, + Linha. de
Corte
• Genes Únicos
• Genes Parálogos
• Genes Ortólogos
Questões de Interesse
ValidaçãoModelo Lógico
• getTaxonomyIdChildren
• getTaxonomyIdChildrenS
et
• getCountGenomeTaxon
omy
• getCountProteinTaxono
my
• getCountHitsProtein
Funções SQL/PGSQL
• getProteinTaxonom
y
• getSimilarProtein
• getSingleGene
• getOrthologousGen
e
• getParalogousGen
e
@ Cristian Tristão
Carga dos Dados
Fontes Externas
Taxonomy
Refseq
protein
I II III I
V
hit_pp
I II III I
V
cds
I II III I
V
taxonomy
I II III I
V
...
ETL - Extract, Transform and Load
Prototipaç
ão
@ Cristian Tristão
11
Tópicos Avançados
Integração de dados
Fontes heterogêneas
Data warehouses
Frameworks
@ LF Seibel
12
Ambiente distribuídos
Paralelismo
Clusters
P2P and grids
Multicore
Balanceamento de carga
Bio-Workflows
Sistemas de Gerenciamento
Definição: nível de abstração
Interação and integração
Consistência
Modelo Execução
Proveniência
13
MHOLline
• “Prediction of tridimensional protein structuresvia comparative modeling”
WF Experimentos In-silico(1/3)
@ Luciana Gomes
Geração de árvores filogenéticas
Clustal
Muscle
Seqbo
ot
Protdist
Protdist
Neighb
or
Consens
e
Fitch
Protein
Sequences
Filogenetic
tree
WF Experimentos In-silico(2/3)
@ Luciana Gomes
e Marcia Bezerra
14
Descrito como um data-flow
Uso de scripts
• Conhecimento da linguagem
• Difícil manutenção
• Problemas com reuso e compartilhamento
Clustal Muscleseq AlignmentRefined
Alignement
WF Experimentos In-silico(3/3)
@ Luciana Gomes
SWfMS
Scientific Workflow Management Systems
• WF Interface de autoria
• Atividades Pre-determinadas
• Facilidade de manutenção e gerência
• Em geral representados como dataflows
• Pode capturar automaticamente dados de proveniência!
15
SWfMS: proveniência
Clustal MuscleA
1
• Tempos de execução
• Onde executou
• Processamento dos resultados
Definição
Execução
Prospective
Provenance
Retrospective
Provenance
A
2Clustal MuscleA
1
C:\seq.txt type = 1 it = 3
C:\...\temp
@ Luciana Gomes
Bio-* Dataflows
VLDBs em arquivos texto!
Programas em linha de comando
• BLAST
• Modeller
Scripts para usuários finais
• BATS
• FILTERS
16
Desafios
Modelo de proveniência
Gestão de dados produzidos e consumidos de maneira padronizada
Descrição de atividades
... (e muito mais) ...
Particularly: Data reusability and Reproducibility
Níveis de Reprodutibilidade
• Definition reuse
• Conceitual
• Strict
• Mesmos dados e atividades
Reproducibility
Clustal MuscleProtein Sequences
A2A1
v 1.0 v 2.3
Clustal Muscle
type = 1 it = 3
type = 1 it = 3
@ Luciana Gomes
17
... Dos dados produzidos com proveniência de origem?
Reuso
Main Workflow
Refined Workflow
@ Luciana Gomes
SGBDs Disponíveis
Oracle
• BLASTN stored proc and BLOB sequences
IBM DB2 life sciences connect
MS SQL Server
PostgreSQL
• BLASTonDB, BLASTgres
18
SGBDs e Extensões
Oracle Data Mining (ODM) BLAST
identificador = VARCHAR
Sequência = CLOB
(Character
Large OBject)Regular Expression Searches
Conjunto de funcionalidades@ Cristian Tristão
SGBDs e Extensões
I II III I
V
Sequência = Cadeia de caracteres
parameter hit
I II III I
V
@ Cristian Tristão
19
SGBDs e Extensões
G T T A ... T T .. C A ... G G1 2 3 4 ... 18219 18220 .. 25515 25516 ... 45996 45997
Homo sapiens chromosome 19
T T G C A ... T G A G T C A
1 2 3 4 5 .. 7291 7292 7293 7294 7295 7296 7297
Contig AC112702.3
T G A G T C A
1 2 3 4 5 6 7
Protein X
18219 18220 18221 18222 18223 .. 25510 25511 25512 25513 25514 25515 25516
Contig = loc(‘Homo sapiens chromosome 19’, [18219 ..
25516])
7291 7292 7293 7294 7295 7296 7297
range = [18219 .. 25516]
(c)
Protein X = loc(‘Contig’, [7291 .. 7297])
range = [7291 .. 7297]
(a)
Protein X = loc(‘Homo sapiens chromosome 19’, [25510
.. 25516])
range = [25510 .. 25516](b)
@ Cristian Tristão
BDBMS
Biological data add several challenges and requirements to current DBMSs
bdbms is a database management system for supporting and processing biological data
bdbms is being prototyped using PostgreSQL
bdbms
Annotation and provenance
management
Local dependency tracking
Content-based update
authorization
Non-traditional and novel
access methods
A-SQL language
20
BDBMS Motivação
Biological data adds new challenges and requirements to DBMSs
• Community-based curation and provenance tracking
• Complex dependencies that usually involve external procedures
• Authorization that depends not only on the user’s identity but also on the content of the data
• Various data types and large amounts of data
GID GName GSequence
JW0080 mraW ATGATGGAAAA…
JW0041 fixB ATGAACACGTT…
JW0037 caiB ATGGATCATCT…
JW0055 yabP ATGAAAGTATC…
Gene B3: obtained from GenoBase
B1: Curated by user admin
B2: possibly split by frameshift
B5: This gene has an unknown function
B4: pseudogene
GID ProteinSequence
JW0080 MMENYKHTTV…
JW0041 MNTFSQVWVF…
JW0037 MDHLPMPKFG…
JW0055 MKVSVPGMPV …
Protein
Prediction tool
BDBMS - Exemplo de anotação
GID GName GSequence
JW0080 mraW ATGATGGAAAA…
JW0082 ftsI ATGAAAGCAGC…
JW0055 yabP ATGAAAGTATC…
JW0078 fruR GTGAAACTGGA…
DB1_Gene
A3: Involved in methyltransferase activity
A1: These genes are published in …
A2: These genes were obtained from RegulonDB
GID GName GSequence
JW0080 mraW ATGATGGAAAA…
JW0041 fixB ATGAACACGTT…
JW0037 caiB ATGGATCATCT…
JW0055 yabP ATGAAAGTATC…
JW0027 ispH ATGCAGATCCT…
DB2_GeneB3: obtained from GenoBase
B5: This gene has an unknown function
B4: pseudogene
B2: possibly split by frameshift
B1: Curated by user admin
21
BDBMS – Esquema Simples de Armazenamento
GID Ann_GID GName Ann_GName GSequence Ann_GSequence
JW0080 mraW ATGATGGAAAA… A3
JW0082 A1 ftsI A1 ATGAAAGCAGC…
JW0055 A1, A2 yabP A1, A2 ATGAAAGTATC… A2
JW0078 A2 fruR A2 GTGAAACTGGA… A2
DB1_Gene
GID Ann_GID GName Ann_GName GSequence Ann_GSequence
JW0080 B1, B5 mraW B1, B5 ATGATGGAAAA… B3, B5
JW0041 B1 fixB B1 ATGAACACGTT… B3
JW0037 B1, B4 caiB B1, B4 ATGGATCATCT… B3, B4
JW0055 yabP B2 ATGAAAGTATC… B3
JW0027 ispH B2 ATGCAGATCCT… B3
DB2_Gene
Every data column has a corresponding annotation column
Handling multi-granularity annotations
Hard to perform optimizations
Example:
A2 and B3 are repeated 6 and 5 times, respectively
Propagating Annotations
Key requirement is to simplify users’ queries
Without a database system support, users’ queries may become complex and user-unfriendly
Q1: Retrieve genes that are common in DB1_Gene
and DB2_Gene along with their annotations
22
Respondendo Q1
R1(GID, GName, GSequence) =
SELECT GID, GName, GSequence
FROM DB1_Gene
INTERSECT
SELECT GID, GName, GSequence
FROM DB2_Gene
R2(GID, GName, GSequence, Ann_GID,
Ann_GName, Ann_GSequence) =
SELECT R.GID, R.GName, R.GSequence,
G.Ann_GID, G.Ann_GName,
G.Ann_GSequence
FROM R 1 R, DB1_Gene G
WHERE R.GID = G.GID
R3(GID, GName, GSequence, Ann_GID, Ann_GName, Ann_GSequence) =
SELECT R.GID, R.GName, R.GSequence, R.Ann_GID + G.Ann_GID,
R.Ann_GName + G.Ann_GName,
R.Ann_GSequence + G.Ann_GSequence
FROM R2 R, DB2_Gene G
WHERE R.GID = G.GID
Indexing
Biological data contains various data formats (Sequences are dominant)
BDBMS supports:
• Multi-dimensional index structures (suitable for protein 3D structures)
• Compressed index structures (suitable for large sequences)
23
Multi-dimensional Indexes
Integrating SP-GiST inside bdbms
• SP-GiST is a generic indexing framework for indexing multidimensional data (kd-tree, quadtree, …) [SSDBM01, JIIS01, ICDE04, ICDE06 ]
• Suitable for protein 3D structures and surface shape matching
PostgreSQL Function Manager
PostgreSQL Engine
SP-GiST Core
SP-GiST
kd-treeSP-GiST
Quad-tree
4. Indexing and Query Processing:Compressed Indexes
Compressing the data improves the system performance
• Storage and I/O operations
Compressing biological sequences using Run-Length-Encoding (RLE)
SBC-tree is a novel index structure for indexing and searching RLE-compressed sequences without decompressing it
indexing compressed sequences
sequence compression
Protein secondary structure:
LLLEEEEEEEHHHHHHHHHHHHHHHHHHHHHHEEEEEELLEEELHHHHHHHHHHLL
LLLLLLLLHHHHHHHHHHHHHHHHLLLLEEEEEEEHHHHHHHHHHHHEEEEEEEEEE
LLLLHHHHHHHLLLLHHHHHHHHHHHHHHEEEEEEEEEEHHHHHHHEEEEEEEEHH
HHHHHHHHEEEELEEEEEEEEEELLLEEEEEEEELLLLHHHHHHHHHHHHHHHEEEE
EELLEEEELLLLLLLLHHHHHHHHHHHHHHHHHHHHEEEELEEEEEEEEEELEEEEEL
LLLLLLLLEEEEELLLLLLEEEEEEEELEEEEEEEEELLLEEEEHHHHHHHHHHHHHHH
HHHEEEEELLLEEEEEEEEELLLHHHHHHHHHHHHHHHHHHHHLHHHHHHHHHHHH
EEEEELEEEEHHHHHHHHHHHHHHHHHEEEEEELLLLLEEEEEEELLLLEEEEEEEEE
EEEELEEEEEEEEEEEEEEHHHHHHHHHHHHHHLLLLLEEEEEEEEEEHHHHHHHEE
EEEEHHHHHHHHHHLLLLLLHHHHHHHHHHHEEEEEEEEEEEHHHHHHHHHHHHHL
LEEEEELLLLLLLLLLHHHHHHHHHHHHHHHHHHLLLEEEEEEEHHHHHHHHHHLLLL
EEEEEEEEEEEEEEEEEELLLLEEELLHHHHHHHHHLLLLLLLLLLLHHHHHHHHHHHH
HHHHHHHHEEEEEEEEEEELEEEEHHHHHHHHHHHHLHHHHHHHHHHHHHHLLEE
EEEEEELLLLEEEEEEEEELLLLLEEEEELLLLLEEEEEEEEELLLEEEEEEEEELLLEEE
HHHHHHHHHHHHHLLLL
RLE compressed form:
L3E7H22E6L2E3L1H10L10H16L4E7H12E10L4H7L4H14E10H7E8H10E4L1E10L3E8L
4H15E6L2E4L8H20E4L1E10L1E5L9E5L6E8L1E9L3E4H18E5L3E9L3H20L1H12E5L1E
4H17E6L5E7L4E13L1E14H14L5E10H7E6H10L6H11E11H13L2E5L10H18L3E7H9L4E
18L4E3L2H9L11H20E11L1E4H12L1H14L2E8L4E9L5E5L5E9L3E9L3E3H13L4
SBC-tree
24
SGBD-Bio: ENTÃO - Precisamos?
Resposta: provavelmente SIM!
Acknowledgments
Alunos e Ex-alunos: Cristian Tristão, Carlos Juliano Viana, Melissa Lemos, Márcia Bezerra, Luiz Fernando Bessa Seibel,
Janaína Oleinik, José Antonio Fernandes de Macêdo, Renato C. Mauro, Paulo Gomes, Daniel Xavier de Sousa, Maíra
Ferreira de Noronha, Rogério L. C. Costa, Luciana Gomes, Marcos Silva, Elvismary Molina de Armas, Julio Omar
Entenza, Alejandro Menes e Guilherme Borba Neumann.
Principais colaboradores: (Fiocruz) Antonio Basilio de Miranda, Wim Degrave e Marcos Catanho, (UFRJ) Paulo
Cavalcanti Ferreira (UNB) Maristela Holanda e Maria Emilia Walter, (Telecom Bretagne) Philippe Picouet e Sebastien
Bigaret, (Sanger) Thomas Otto (LNCC) Laurent Dardenne e Fabio Porto (PUC-Rio) Hermann Haeusler e Livia Uehara.
Eventos: Colaboradores durante organização WOB 2003 (Macaé), BSB 2007 (Angra dos Reis) e BSB 2010 (Búzios)