Otimização e Desenvolvimento de Ferramentas para BioInformática: Pipelines Metagenômicos, com Raquel Dias

13º Fórum de Informática SETREM - Anotações da segunda noite, trabalho de mestrado de Raquel Dias.

Atividades de um "Informata" na Biologia.
Raquel é formada em Biologia e está fazendo mestrado em Computação.
Laboratório de Alto Desempenho - PUCRS
Raquel.dias.001@acad.pucrs.br
www.lad.pucrs.br

Otimizações quantitativas
Processamento paralelo e distribuído
Otimização qualitativa
 - altera a estratégia para encontrar uma solução

APLICAÇÕES DE TI NA BIOLOGIA

Genética
 - Bases de dados (NCBI, GenBank)
 - Pós-Processamento Genômico
 - Pós-processamento metagenômico
 - Análise filogenética
 - Simulações evolutivas

Bioquímica
 - Bando de dados de proteínas (PDB)
 - Modelagem molecular
 - Visualização de proteínas
 - Dinâmica molecular (reações enzimáticas)

ÁREA DO TRABALHO DE MESTRADO DA RAQUEL

Metagenômica
 - Sequenciamento genético
 - Abordagens
   - Metatranscriptônicas
   - Sequenciamento baseado no gene 16S

Inicialmente são coletadas amostras ambientais, após estas amostras passam por um sequenciador (hardware - verifica pelo PH da amostra em um solvente - pega letra por letra) que gera um TXT com os dados genéticos.
Após o sequenciamento é necessário a análise dos dados genéticos para descobrir de que organismos são as sequencias genéticas encontradas, para isso utiliza-se bases de dados como NCBI.
Também é feito uma análise filogenética verificando mutações e comparando com outros organismos da mesma amostra etc.

Illumina: Sequenciamento em larga escala

Como melhorar estas etapas necessárias para analisar os dados genéticos?

 - Dados de entrada: bases nucleotídicas, várias amostras.

 - Pós-processamento metagenômico.

 - Pipelines metagenômicos: Mothur, RDP, Galaxy, MEGAN, RAST, PANGEA.

 - Versões offline são de código-aberto, PANGEA é um dos mais completos, por isso foi escolhido para o trabalho.

 - Linguagem PERL é ótima para trabalhar com strings/textos, então foi escolhida para manipulação das sequencias genéticas.
 - C foi escolhido para cálculos, processamentos.
 - Java para visualização dos dados.

Etapas - fases de processamento
1. Entrada de dados
1.1 Filtro de qualidade das sequencias genéticas

2. Métodos de Classificação de Espécies utilizados paralelamente para chegar ao resultado:
 - BLAST
 - RDP
 - SOAP2

3. Comparação dos resultados encontrados pelos 3 métodos para chegar a consenso.

4. Pós-processamento: análise e resumo dos resultados para apresentação ao usuário.

Otimizações execução
 - Paralelização do algoritmo BLAST que é o mais demorado e completo, distribui a execução em várias máquinas/processadores.

Melhorias
 - Resultados exibidos de forma mais clara, com mais dados, náo apenas o código do banco de dados.

Resultados
 - 500x mais rápido a execução
 - 125x mais rápido leitura dados NCBI
 - Aumentou o nível de certeza dos resultados

Atividades pendentes
 - publicação: BMC Bioinformatics

Exemplo apresentado: GenomaQuest - online, modificação do PANGEA.

Interoperabilidade Windows Linux, com André Rushel

13º Fórum de Informática - Anotações da primeira noite.

A abertura da noite foi feita por Fábio Hara, de forma remota, comentando sobre o trabalho do André Rushel.

André é, atualmente, MVP, Most Valuable Professional da Microsoft, palestrou nesta noite sobre ‘Interoperabilidade de Servidores: Microsoft e o Mundo OpenSource’.

Seguem anotações:
  • http://www.microsoftvirtualacademy.com - Muitos treinamentos grátis, dica do Fábio.
  • http://lwn.net/ - Software livre, notícias etc.
  • Debian-Interix.net - Tem a ver com o SUA, não sei quem copiou de quem.
  • http://suacommunity.com/ - SUA, Linux no Windows, comandos etc.
  • VDI - Virtual Desktop Infrastructure
  • MDT - Microsoft Deployment Toolkit -> Migrar Windows XP para 7 por exemplo, instala drivers, copia arquivos, ingressa no mesmo domínio etc. Grátis.
  • MAP - Utilizado para fazer inventário hardware via rede, gera um arquivo XLS, grátis, para windows w linux.
  • ACT - Application Compability Toolkit, colocar aplicações para rodar em modo de compatibilidade, permissão de administrador... tutorial do ACT.
  • Seamless (RDP?) - utilizado para acessar apenas determinada aplicação remotamente, sem precisar acessar toda a área de trabalho, roda em Windows/Linux.
  • Hyper-V 3 
    • Live Migration (SMB 3.0): muito bom, tem um vídeo da migração de um servidor de uma máquina para outra sem parar os serviços.
    • Replication - fazer cópia de uma máquina virtual...
  • SysInternals - ferramentas top grátis, de um russo...
    • Disk2vhd - transforma máquina física para virtual
    • ZoomIt - ferramenta para dar zoom...
    • AviCode - verifica erros desenvolvimento
  • Windows To Go - Windows no pendrive, postagem do André.
  • Programa MSP - Estudantes - Microsoft Student Partners
  • Problemas: Não tem Azure no Brasil? Sistemas lentos? tem que verificar. Citrix é melhor? parece que sim, mas bem mais caro também.  
Em resumo, foram as minhas anotações....  com alguns links adicionados, breve pesquisa no Google :)

[Atualização - 2012-07-06]

Hoje recebi um e-mail da Microsoft com o certificado pela participação deste evento, legal.


Dicas de Genexus


Bom, achei isso ai no bloco de notas, são minhas anotações dos primeiros dias utilizando Genexus.

Atalhos Mais Usados
  • CTRL+K = define atributo como chave
  • CTRL+D = define atributo Descritor, maior carga semântica, utilizado em filtros etc
  • CTRL+L = insere novo nível
  • F4 para ver propriedades do objeto selecionado
  • CTRL+O = abrir/buscar objetos
  • CTRL+A = buscar atributo
  • F12 = abrir um objeto selecionado ou que o marcador esteja
  • F5 = Run Developer Menu
  • CTRL + Q = comentar código
  • CTRL + SHIFT + Q = descomentar código

1 Como criar índice de usuário?
  1. Acesse a tabela que deseja criar o índice
  2. Na parte de baixo, selecione Indexes
  3. Clique botão direito e selecione Add Index
  4. Botão direito no novo índice e adicione os atributos

2 Como criar um domínio diretamente em uma transaction?

Basta colocar nome= na frente do tipo de dados.
  1. Nome= Character(20)
  2. Id = Numeric(4.0)
3 Como resolver o Erro: No aplications found. Em Smart Devices?
  1. Criar um Dashboard e adicionar um Item para invocar a Work With que quer executar.
  2. Altere as propriedades do Item: descrição, imagem...
4 Como configurar ADS no Android, colocar seu ID Publisher?
  1. Acesse http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Ads+%28Advertising%29,
  2. Siga os passos descritos no site.
5 Como criar/congelar uma versão da KB?
  1. Abrir Menu View->Versions
  2. Clique botão direito e selecione Freeze (congelar)
  3. Dê um nome, de preferência com a Data ou algum sequencial.
6 Como criar uma nova base de dados (limpa) com objetivo de manter a versão da antiga congelada também?
  1. Em Knowledge base navigator->Preferences->(DataStore do seu Environment)->Edit Connection
  2. De outro nome para o banco de dados e clique em Create DataBase
  3. Menu Build->Create Database Tables
7 Quando as alterações do CSS não estiverem fazendo efeito na aplicação, como resolver?
  1. Build all: o Gx copia algumas coisas do tema dentro da app, não adianta alterar os estilos apenas, precisa gerar novamente.
8 Como ordenar um for Each?
  1. Crescente: For Each Order Campo1, Campo 2 ... EndFor
  2. Decrescente: For Each Order (Campo1), (Campo 2) ... EndFor
9 Como saber onde um atributo ou objeto qualquer é utilizado?
  1. Para buscar o atributo, atalho CTRL+O, abra o que deseja analisar.
  2. Clique botão direito mouse sobre a aba (o nome do objeto) e selecione References (No GX9 era Cross ou algo assim)
10 Voltar versão de um objeto?
  1. Botão direito nele (aba com nome...) e selecione history, poderá comparar versões e voltar para determinada data...
11 Como ver a navegação de um procedimento com for each, saber quais tabelas do banco serão navegadas?
  1. Botão direito nele (aba com nome...) e selecione View Navigation.
12 Como evitar um Break ao ter laços aninhados que tem a mesma tabela base?
  1. Crie uma Sub Rotina: Sub 'Nome Rotina' ...coloque aqui o laço aninhado (For Each)... EndSub
  2. Chame essa rotina: Do 'Nome Rotina'  
  3. Obs.: Crie sempre as sub rotinas no final do Procedimento, abaixo de onde está usando...
13 Como colocar Condições em Regras/Condições?
  1. Em Regras (Rules) use If: Par1 = &Par1 If Insert;
  2. Em Condições, use When: Par1 = &Par1 When Not &Par1.IsEmpty();
14 Como abrir uma popUp de seleção em uma grid?
  1. Primeiro será necessário criar sua tela de pesquisa.
  2. Importante: Rules -> Parm -> Parâmetros precisam ser InOut!
  3. Na tela, add rule: Prompt(NomeTelaSelect, CampoChaveGridSubNivel);
15 Como fazer uma variável aceitar receber valor em uma Transaction?
  1. Utilize o Accept(&variavel); nas Rules
16 Problema: campo numérico no banco com alguns valores NULL, você quer fazer um foreach ou somar ou trabalhar apenas com os dados dos registros onde este campo é NULL, você já tentou utilizar isEmpty() e também  = Null(campo) e não funcionou? Passei por isso, achei  a solução no método de testes/erros/acertos... usando a função isNull deu certo, conforme abaixo:
  1. &Horas = SUM(Horas, isNull(CampoCodigoXXX))

17 Como configurar o Genexus pra pegar licenças na rede? Certo dia na empresa fiquei sem licença pra trabalhar, outro dia acabei vendo um erro ao reorganizar a base de dados... tudo questão de escolher uma máquina na rede com as licenças disponíveis, abaixo o erro que me ocorreu e na sequencia a solução.

error: GeneXus .NET Generator:
Error starting remote protection, using mgtsrv04 server:
Not authorized
error: Error in reorganization
  1. Vá até a pasta onde o executável do Genexus está (clique botão direito sobre o atalho e selecione "Abrir local do Arquivo"
  2. Procure um arquivo chamado "GxLMgr" que é o Gerenciador de Licenças do Gx e abra ele
  3. Selecione a máquina na rede, pode verificar se todas as licenças da máquina já estão em uso, se não estiverem é só voltar para o Genexus (no caso de erro semelhante ao meu), ou fechar e abrir de novo o GX que ele já vai pegar certinho o servidor de licenças agora.
  4. Obs.: No caso do erro acima precisa licença para o gerador, não para o Gx, são coisas diferentes.
18 Como fazer para poder editar registros diretamente em uma grid que está em uma web panel?
  1. Precisa criar variáveis baseadas nos atributos que se deseja atualizar
  2. Adicione as variáveis na grid
  3. Colocar a propriedade Read Only = No nessas variáveis -> colunas da grid (vem default)
  4. Coloque um botão com evento de percorrer as linhas da grid e atualizar os registros
  5. O evento do botão vai usar For Each Line In GrdDados
19 Como fazer que ao fechar uma popup a página de baixo/que chamou seja atualizada?
  1. Ao i nvés de chamar tela.PopUp() usar uma variável Window
&Window.Object = HSGP073.Create(&DemCodigo, SolCodigo)
&Window.Autoresize = True
&Window.Open()
Refresh

As cinco leis do ouro


I. O ouro vem de bom grado e numa quantidade crescente para todo homem que separa não menos de um décimo de seus ganhos, a fim de criar um fundo para seu futuro e o de sua própria família.

II. O ouro trabalha diligente e satisfatoriamente para o homem prudente que, possuindo-o, encontra para ele um emprego lucrativo, multiplicando-o como os flocos de algodão no campo.

III. O ouro busca a proteção do proprietário cauteloso que o investe de acordo com os conselhos de homens mais experimentados em seu manuseio.

IV. O ouro foge do homem que o emprega em negócios ou propósitos com que não está familiarizado ou que não contam com a aprovação daqueles que sabem poupá-lo.

V. O ouro escapa ao homem que o forca a ganhos impossíveis ou que dá ouvidos aos conselhos enganosos de trapaceiros e fraudadores ou que confia em sua própria inexperiência e desejos românticos na hora de investi-lo.

Leis retiradas do livro O homem mais rico da Babilônia de George S. Clason.



"Meu filho, você viu o fogo temporário e o fogo eterno; você chegou no lugar além do qual meus poderes não podem ver. Eu o trouxe aqui através do intelecto e arte; daqui a diante, deixe seu prazer ser seu guia; você passou pelo abismo e o caminho estreito. Veja o Sol que brilha sobre seu rosto; veja a relva, as flores e os arbustos que nascem aqui, espontaneamente, da terra. Entre eles, você pode descansar ou caminhar até a chegada dos olhos amáveis e felizes - os olhos que, chorando, enviaram-me a você. Não espere sequer mais uma palavra ou sinal de mim: sua vontade é livre, ereta e completa - agir contra essa vontade seria um erro: assim, eu concedo esta coroa e mitra para que você seja seu próprio guia." - (Últimas palavras de Virgílio para Dante quando lhe concede o poder de guiar a si mesmo. Canto XXVII, Purgatório).