• Nenhum resultado encontrado

Concepção do sistema computacional 106

5   Análise de Repetições de Codões e de Aminoácidos 99

5.3   Concepção do sistema computacional 106

Como resposta aos requisitos apresentados anteriormente, foi planeada uma solução computacional que incluísse as diversas funcionalidades. O sistema tem origem no estudo de genes relacionados com doenças no ser humano, embora possa ser aplicado ao estudo de repetições e de doenças por elas causadas em qualquer organismo.

5.3.1 Workflow para o estudo de repetições

A Figura 5.3 ilustra, de uma forma simplificada, o workflow a ser seguido para cada uma das fases referidas anteriormente. Estas são totalmente independentes uma da outra, estando, no entanto, relacionadas pelo facto da origem de dados poder ser a mesma, bem como a complementaridade dos resultados obtidos na análise ao processamento efectuado.

107

Figura 5.3: Workflow do estudo de repetições envolvendo as duas fases

São abordadas duas vertentes diferentes no contexto das repetições de codões e de aminoácidos envolvendo genes responsáveis por doenças. Na primeira abordagem interessa saber, do ponto de vista da evolução das espécies, qual o comportamento (em termos de conservação) das repetições num conjunto de organismos bastante distantes na

2ª Fase

Orfeoma

BD ortólogos (KEGG) Pesquisa de repetições

Selecção de genes ortólogos semelhantes para cada organismo

seleccionado

Procurar repetições semelhantes para cada grupo de genes

ortólogos

Clusters Repetições aproximadas

em genes ortólogos Análise dos resultados

Procurar genes com repetições Seleccionar genes do Homo

sapiens

Seleccionar genes ortólogos dos organismos seleccionados

Procurar repetições para cada grupo de genes ortólogos

Análise dos resultados Ficheiros com resultados Repetições aproximadas em genes ortólogos Seleccionar genes responsáveis

por doenças

108

escala temporal evolutiva, iniciando esse estudo no organismo ancestral, procurando posteriormente a cadeia de repetição mais aproximada nos genes ortólogos.

Na segunda abordagem, a análise é efectuada sob outro ponto de vista. Uma vez identificados os genes que possuem repetições, em que essas repetições são comprovadamente responsáveis por doenças, como por exemplo as referidas em [9] para o ser humano, pretende-se analisar a presença de repetições semelhantes em genes ortólogos, num conjunto alargado de organismos.

Esses genes estão presentes em diversos organismos, pelo que procuraremos perceber se essas repetições, evoluíram a partir dos organismos superiores ou se já existiam em organismos mais baixos na árvore filogenética. Os resultados obtidos para genes com repetições envolvidas em doenças, serão posteriormente comparados com genes contendo repetições, mas em que não foi estabelecida até à data, uma relação directa entre essas doenças e as repetições existentes.

5.3.2 ADAS - Algoritmo de detecção automática de sequências

Como resposta aos problemas foram concebidos e implementados vários algoritmos, entre os quais o algoritmo de detecção automática de sequências, designado por ADAS (Algoritmo de detecção automática de sequências), baseado na distância de Levenshtein [163], que permite encontrar a subsequência dentro de um gene de um organismo superior, que esteja à “menor distância” da subsequência padrão do organismo ancestral – a melhor aproximação. Para além deste algoritmo foi adoptada a metodologia referida em [164], para a contagem de repetições de codões, sendo neste caso implementada uma aplicação específica para esse fim, integrada com a ferramenta indicada anteriormente. A metodologia considera a exclusão da análise de repetições, dos genes que não cumprem cumulativamente as seguintes condições:

 Iniciar por ATG/AUG.

 Comprimento do gene múltiplo de 3.

 Termina com TAA/UAA ou TAG/UAG ou TGA/UGA (codões de STOP).  Contém codões STOP apenas no fim do gene.

109

A metodologia para aminoácidos segue os mesmos critérios, com as devidas adaptações. O algoritmo ADAS, para detecção automática de sequências foi publicado em [165], tendo sido complementado com um caso de estudo em [166], nomeadamente através da aplicação de regras de criação de grupos (clusters) e ferramentas de visualização de agrupamentos dos dados processados (dendograma), numa abordagem adaptada do algoritmo CLUSTAL [78].

O algoritmo (Figura 5.4) para pesquisa de subsequências em genes dos vários organismos em estudo, que sejam idênticos ou muito próximos da sequência padrão, em cada um dos genes, teve como principio a divisão da sequência padrão em sequências mais pequenas - prefixos e sufixos - conforme ilustrado na Figura 5.5. No final da execução do algoritmo obtêm-se as sequências contidas no gene, à menor distância da sequência padrão.

Os prefixos e sufixos gerados a partir da sequência inicial são guardados numa lista, que é posteriormente ordenada por ordem decrescente, relativamente ao comprimento dos sufixos e prefixos obtidos. O processo decorre até encontrar para o maior prefixo ou sufixo, as sequências dentro do gene que melhor se ajustam à sequência padrão. Desta forma, garante-se que ao ser encontrada uma subsequência da sequência inicial, essa estará provavelmente na região onde a conservação terá ocorrido.

Algorithm ADAS

Input: String S, Pattern P

Output: Position for best substring from S adjusted to P

n  Length(S)

{first we try to find exact match of P inside S}

If InString(S, P) Then {we can use KMP Algorithm to compute InString}

Return Position

Else

Create an array P’ with Prefixes and Suffixes from P

{sort the array of substrings from greater length to smaller}

Sort P’

For Each item S’ in P’

If InString(S, S’) Then

Compute best substring from left to right of position of S’ with smaller distance to P

{using Levenshtein distance}

Return Position

End If

End For

End If

110

Figura 5.5: Subdivisão da sequência inicial em prefixos e sufixos

O diagrama de actividades do algoritmo, apresentado na Figura 5.6, ilustra de uma forma genérica o fluxo de funcionamento do algoritmo.

111

Posteriormente, efectua-se o varrimento por “Brute Force” da zona onde essa subsequência é encontrada num intervalo de aproximadamente metade do tamanho da sequência inicial, quer à esquerda quer à direita da sequência detectada, garantindo assim que a zona de vizinhança dessa sequência será maior em tamanho (praticamente o dobro), do que a sequência inicial (Figura 5.7).

Figura 5.7: Demonstração do funcionamento do algoritmo de detecção de sequências

1 – Detecção da subcadeia máxima a partir da sequência inicial, inserida no gene; 2 – Aplicação da técnica de “Brute Force” num intervalo dinâmico.

Atendendo ao facto de que pode existir mais do que uma sequência com nível de similaridade igual, o algoritmo percorre todo o gene, aplicando a mesma técnica sempre que uma sequência nessas condições for encontrada. No final são apresentadas todas as subsequências encontradas, cuja distância à sequência inicial seja mínima.

5.4 RepCORE - Detecção e exploração de sequências exactas e