5 METODOLOGIA
5.4 O MODELO PARA A DESCOBERTA DE REGIÕES CODIFICADORAS
O modelo proposto para identificar regiões codificadoras (éxon simples, éxon inicial, éxon interno e éxon terminal), que é uma das contribuições deste trabalho, foi fundamentado na combinação da técnica de matriz peso-posição modificada e redes neurais. Esta escolha se deve ao fato da técnica de matriz peso-posição ter se mostrado eficaz para solução do problema de descoberta de genes (GUIGÓ et al., 1992) e ao fato
das redes neurais serem amplamente utilizadas como técnica de classificação, além de ter mostrado bons resultados na predição de genes (UBERBACHER & MURAL, 1991; MURAL et al., 1992).
O primeiro passo para este modelo foi criar o banco de dados para o seu treinamento e a sua validação. Esta base de dados foi desenvolvida com combinações de regiões codificadoras e não codificadoras com o tamanho da janela escolhida.
Neste modelo, define-se como janela um bloco de N bases codificadoras ou não codificadoras. O tamanho ideal deste bloco pode variar de acordo com o organismo, portanto, deve-se testar várias janelas até encontrar a ideal para a base de dados de treinamento apresentada. A ferramenta ExonBR faz vários testes de tamanho de janela até encontrar a que permite melhor desempenho, a janela inicial sugerida é de 42 bp. Esta escolha deve-se ao fato de que este tamanho corresponde ao menor éxon predito corretamente pela maioria das ferramentas existentes. Este valor é configurável no programa. A Figura 5.3 mostra como esta separação é realizada para uma janela de 8 bp. Percebe-se que uma janela, denominada janela final, é criada para a detecção do final da região codificadora. Vale ressaltar que esta separação é diferente das tradicionais, trazendo uma melhora de desempenho da ferramenta ExonBR.
A Equação 5.1 mostra o total de janelas (θ) de tamanho N geradas a partir de uma base de dados com M bp, portanto com uma base de dados de 200.000 bp e em uma janela de 42 bp têm-se 4.762 blocos codificadores.
θ = N M ento Arredondam (Equação 5.1)
Onde M é o tamanho da base de dados em bp e N é o tamanho da janela em bp Outro ponto importante para definição deste modelo é a determinação das entradas da rede neural. As entradas foram baseadas em hexâmeros, esta escolha se deve ao fato de que em muitos sistemas para predição de genes utilizam-se informações destes polímeros como ponto principal de seu algoritmo. Testes realizados por Burge (1997) em sua tese mostraram que o hexâmero é a principal fonte de informações para a descoberta de regiões codificadoras.
Com a escolha do hexâmero como entrada, a próxima etapa consiste em decidir uma forma de codificá-lo. Existem 4096 (46) hexâmeros e isto torna impraticável a utilização de uma codificação sem dependência algébrica, pois cada hexâmero precisaria de 4.096 entradas na rede neural. Como exemplo pode-se citar uma rede neural com janela de 96 bp, que teria 65536 entradas. A solução encontrada, neste trabalho, foi tratar cada hexâmero como uma única entrada na rede neural, sendo, portanto, necessário um cálculo para sua codificação.
No cálculo utilizado, cada hexâmero foi representado como a quantidade normalizada de sua existência na região desejada. Esta técnica assemelha-se com a matriz peso-posição utilizada por Guigó et al. (1991), portanto denominada matriz peso-
posição modificada, sendo uma inovação apresentada neste trabalho. A modificação implementada é a utilização de hexâmeros e a normalização dos valores (em seu trabalho Guigó et al. (1991) utilizavam diretamente os nucleotídeos para a criação desta
matriz). Esta pontuação foi calculada a partir do conjunto de treinamento e fixada para qualquer seqüência de entrada na rede neural. A matriz terá sempre 4096 linha por C colunas (matriz 4096 x C), onde C é dado pela equação 5.2, portanto, para uma janela de 42 bp está matriz terá 37 colunas por 4096 linhas, ou seja, 151.552 células.
C = N – 5 (Equação 5.2)
Onde N é o tamanho da janela escolhida e C é a quantidade de colunas na matriz peso-posição.
A seguir, tem-se um exemplo com seqüências de até 8 bp para a criação da matriz peso-posição: Seqüência 1 – AAGCCTAG Seqüência 2 – CAGCCTAG Seqüência 3 – AGCCTA Seqüência 4 – CCGCCTAG Seqüência 5 – CAGCGGT Seqüência 6 – AAGCCTTA
A Tabela 5.1 mostra a quantidade de hexâmeros por posição normalizada. Para melhorar a visualização as linhas sem valores31 foram omitidas. A Figura 5.4 mostra como os hexâmeros são selecionados e suas posições.
Figura 5.4 – Seleção dos hexâmeros numa seqüência.
Tabela 5.1 – Exemplo de quantidade de hexâmeros por posição normalizada – Matriz peso-posição modificada
Hexâmero Posição 1 Posição 2 Posição 3
AAGCCT 1 0 0 AGCCTA 1 1 0 GCCTAG 0 0 1 CAGCCT 1 0 0 GCCTAG 0 0 0.5 CCGCCT 1 0 0 CGCCTA 0 0.5 0 CAGCGG 1 0 0 AGCGGT 0 0.5 0 AAGCCT 1 0 0 AGCCTT 0 0.5 0 GCCTTA 0 0 0.5
Nesta matriz, cada hexâmero tem um número que varia de 0 a 409532, definido como φ(hexâmero). A Equação 5.3 mostra como calcular φ(hexâmero).
φ(hexâmero)=
4
1 6 1 * − =∑
i i iNu
Equação 5.3 Onde:Nui → Valor do nucleotídeo na posição i do hexâmero. Os nucleotídeos são convertidos para os seguintes valores:
A → 0; T → 1; G → 2 ; C → 3
O valor de cada célula da matriz peso-posição, P(k,j), é dado pela Equação 5.5.
Q (k,j) =
∑
= S i 1t
kji , Equação 5.4 P (k,j) = j Max j k Q( , ) , Equação 5.5 Onde:tkj → Possui o valor 1 se o hexâmero k existe na posição j da i-ésima seqüência testada, caso contrário possui o valor 0.
S → Número de seqüências codificadoras no conjunto de treinamento.
Maxj → Maior valor da matriz na posição j.
A matriz peso-posição modificada, portanto, define a probabilidade do hexâmero existir numa posição baseado no conjunto de treinamento. Esta estatística é utilizada como entrada da rede neural, e a quantidade de entradas desta rede é θ, sendo esta combinação uma inovação neste trabalho.
A Figura 5.5 mostra como é feita a entrada na rede neural baseado no exemplo da Figura 5.4. Nesta figura cada hexâmero é inserido na rede com a informação da proabilidade de sua existência numa posição, definido como P(φ(hexâmero),posição). Vale ressaltar que a rede neural possui N-5 entradas, onde N é o tamanho da janela escolhida, portanto existem N-5 possíveis posições.
32
Figura 5.5 – Exemplo de codificação de entrada na rede neural
Somente regiões com alguma chance de serem codificadoras são usadas na rede neural, logo pelo menos um hexâmero deve ter sua pontuação diferente de 0 (zero) para ter chance de ser codificador. Nas seções 6.1.2.1, 6.1.2.2 e 6.1.2.3 são mostrados testes com e sem este filtro.
As seqüências repetidas e menores que a janela escolhida são retiradas para o treinamento da rede neural. Vale ressaltar que elas foram utilizadas na criação da matriz peso-posição modificada.
Outro teste realizado foi a colocação da taxa de G+C na seqüência, o que se deve ao fato de Guigó et al. (1992) demonstrarem a influência destes nucleotídeos para a
predição correta de regiões codificadoras. Esta entrada foi calculada como sendo a porcentagem de G+C na janela testada. Os resultados destes testes estão descritos nas seções 6.1.2.1, 6.1.2.2 e 6.1.2.3
Feito isto, foi definida a quantidade de neurônios e a codificação de saída da rede neural. Foi utilizado um neurônio nesta camada, tendo como saída a informação de ser uma região codificadora ou não.
A seguir, foi escolhido o tipo de rede neural a ser utilizado. Como este problema é de classificação, foi utilizada uma rede neural totalmente interligada, empregando o
algoritmo de aprendizado backpropagation baseado no método de gradiente
decrescente, sendo a tangente hiperbólica utilizada como função de ativação. Nesta rede foi utilizada a validação tradicional, não sendo utilizada a validação cruzada para melhorar de desempenho da ferramenta. Foram realizados testes com redes neurais de função de base radial (RBF – Radial Basis Function) (POWELL, 1985) não sendo
encontrados resultados satisfatórios devido à dificuldade nos ajustes dos parâmetros. Todas as redes neurais foram desenvolvidas na ferramenta, não sendo utilizadas ferramentas prontas com esta técnica.
Foram avaliadas redes com diversas quantidades de neurônios na camada escondida. Foi criada uma rede neural para cada tipo de região codificadora a ser predita no caso dos arquivos no formato GenBank, e para os arquivos FASTA foi criada somente uma rede com as informações das regiões codificadoras. O arquivo FASTA não possui informações diferenciando éxon simples, inicial, final ou interno. Vale ressaltar, que mesmo em arquivos do GenBank a ferramenta pode ser configurada para não separar os tipos de éxons. A Figura 5.6 mostra exemplos das redes backpropagation
testadas supondo entrada de 42 bp sem informação de G+C e a Figura 5.7 mostra a mesma rede com informações de G+C.
A ferramenta ExonBR inova testando automaticamente diversas quantidades de neurônios na camada escondida, sendo o valor inicial configurável no sistema.
Figura 5.7 – Exemplo de redes backpropagation testadas para regiões codificadoras
com informação de G+C
No caso dos arquivos no formato GenBank, um desafio, é a combinação dos modelos propostos, podendo ocorrer superposição de estruturas. A solução encontrada foi aceitar apenas as estruturas que se enquadrarem no modelo de gene descrito na seção 5.2, ou aquela que possuir a maior chance de ser o éxon selecionado.
O resultado desta fase é uma base de dados com a matriz peso-posição modificada e a estrutura da melhor rede neural com seus pesos. Estas informações permitem ao usuário a adaptabilidade a qualquer organismo, sendo uma novidade implementada na ferramenta ExonBR.