Busca Sequência DNA.
Equipes de no máximo 4 pessoas.
O DNA (Ácido desoxirribonucléico em inglês) é uma molécula formada por duas cadeias na forma de uma dupla hélice. Essas cadeias são constituídas por um açúcar (desoxirribose), um grupo fosfato e uma base nitrogenada (T timina, A adenina, C citosina ou G guanina). Já o RNA (ácido ribonucléico em inglês) é uma molécula também formada por um açúcar (ribose), um grupo fosfato e uma base nitrogenada (U uracila, A adenina, C citosina ou G guanina) gerada a partir das bases do DNA. Assim, apesar de o RNA ser o ator que inicia a produção de proteínas num ser vivo, ele é codificado a partir do DNA.
A informação contida no DNA (ou no RNA), o código genético, está registrada na seqüência de suas bases na cadeia. Cada grupo de três bases (ACC, GAG, CGU etc.) é chamado códon e é específico para um tipo de aminoácido.
Um problema interessante da bioinformática é a busca por padrões em moléculas assim. Tipicamente estes algoritmos são muito complexos do ponto de vista computacional. Um programa que busque por padrões em sequenciamentos genéticos usualmente consome muitas horas de CPU.
Aqui podemos estudar uma melhoria de performance, considerando um problema trivial.
O projeto será comporto de três etapas, a saber:
Etapa 1 (10%). Elaborar um programa em C que leia um sequenciamento de genes em um arquivo (para simplificar será uma longa tira de caracteres 'a', 'c', 'u' ou 'g'), bem como um códon (três caracteres no universo {'a', 'c', 'u', 'g'}) procurado, e informe quantas vezes aquele códon ocorre naquela sequência.
1.1. O programa deverá possuir uma função que leia a sequência do arquivo e a armazene num array, fazendo o mesmo com o códon
1.2. O programa deverá possuir uma função que receba um ponteiro para o array de sequenciamento e outro para o códon e retorne um inteiro, que é a quantidade de vezes que o códon ocorre no sequenciamento
Etapa 2. (40%). Desenvolver uma versão em assembly para a função que conta as ocorrências de códons, de forma que ela possa manter o máximo possível de dados nos registradores e assim ganhar desempenho na busca.
Etapa 3. (40%). Confeccionar um relatório descrevendo seus resultados. A estrutura do relatório será
Introdução
Descrição do programa original
Descriçao do programa com função em assembly
Descrição dos experimentos de comparação
Resultados
Conclusões
Os 10% restantes serão conferidos proporcionalmente ao ganho de desempenho obtido entre as equipes.
Equipes
As equipes, com no mínimo 1 e no máximo 4 componentes, devem ser formadas espontaneamente. Os nomes devem ser enviados para o e-mail do professor até a meia noite do dia 22/06/2016. Caso algum nome não apareça em uma equipe até a meia noite do dia 22/06/2016, então ele será incluído numa equipe compulsoriamente formada pelo professor.
EQUIPES ESPONTÂNEAS
Eva Maia
Alberto Segundo
Philiphe Kramer
João Victor Costa
Lucas Dias
Luan Oliveira
Yuri Bonifácio
César Augusto
Jonathan Queiroz
José Augusto
Kaique Pedroso
equipes compulsórias