• Nenhum resultado encontrado

Execução de Ferramentas de Comparação

4.2 Modicações no Sistema BioAgents

4.2.4 Execução de Ferramentas de Comparação

Nessa nova implementação do BioAgents, os Agentes Analisadores ganharam a capacidade de executar as ferrramentas BLAST e BLAT. Isso possibilitou a execução do BioAgents mesmo sem os arquivos de saída do BLAST e BLAT terem sido gerados. Portando, o

Agente Resolvedor de Conflitos

Agente Gerente Blast

Agente Analisador Blast Agente Analisador Blast

NR GO

Interface com usuário

Camada Colaborativa

Camada Física

C.elegans Agente Gerente Blat Agente Analisador

Portrait

Agente Analisador Blat

usuário não precisa mais produzir arquivos de saída compatíveis com os analisadores já implementados.

Isso aumentou um pouco a complexidade das requisições, uma requisição é um con- junto de subrequisições que se diferenciam em subrequisições de análise de arquivo ou de execução de ferramenta de comparação. Um agente gerente pode receber um conjunto mesclado de subrequições, dividindo-as e distribuindo-as entre os agente analisadores.

Capítulo 5

Método de aprendizagem por reforço

no BioAgents

Nesse capítulo será apresentado o método utilizado para o aprendizagem de máquina in- cluído no sistema BioAgents. A descrição do método será feita na Seção 5.1. A arquitetura baseada em agentes que compõem a camada de aprendizagem é apresentada na Seção 5.2. E os detalhes de funcionamento do sistema serão apresentados na Seção 5.3.

5.1 Descrição do Método

Antes de se estabelecer um método de aprendizagem por reforço, foi analisado o conjunto de estados e ações do BioAgents para vericar a aplicabilidade dos métodos tradicionais. Nota-se que os agentes do BioAgents não possuem um conjunto S nito de estados e um conjunto A(s) nito de ações predeterminadas para cada estado, pois não se pode prever todas as sequências genéticas que serão submetidas ao BioAgents. Isso implica que os métodos tradicionais, que tentam maximizar a provável recompensa através da escolha de

a∈ A(s), como, por exemplo, o Q-Learning, não podem ser aplicados.

Desta forma, o método de aprendizagem por reforço proposto para o sistema BioAgents usa os bancos de dados e as ferramentas utilizadas na camada colaborativa. Os bancos de dados utilizados podem variar de acordo com o projeto de sequenciamento. Os algoritmos utilizados foram os BLAST e o BLAT, os quais são suportados pelo BioAgents.

A idéia do método é baseada na pontuação das ferramentas e dos bancos de dados utilizados no sistema. Essa pontuação é feita para que o BioAgents considere mais forte- mente as ferramentas e os bancos de dados com maior pontuação. Assim, os agentes, ao longo de suas interações, vão aprendendo quais os bancos de dados e as ferramentas mais adequadas para as sugestões, o que caracteriza a aprendizagem por interação, uma das características da aprendizagem por reforço.

Essa pontuação não é feita imediatamente, mas após a sugestão ser feita pelo sistema. Isso mostra outra característica da aprendizagem por reforço, o retorno atrasado. Essa pontuação será feita por entidades críticas dentro do ambiente, o que é transparente para

os agentes que esperam pela pontuação. Essas entidades críticas compõem a camada de aprendizagem, que será detalhada na seção 5.2.

Outra característica do método é a orientação ao objetivo. Todos os agentes den- tro do BioAgents trabalham de forma cooperativa para alcançar um objetivo e sugerir uma boa anotação para uma sequência analisada. A pontuação feita pela camada de aprendizagem auxilia o cumprimento desse objetivo.

Para calcular se um banco de dados e uma ferramenta devem ser pontuados, a ca- mada de aprendizagem primeiramente faz uma comparação com um banco de dados de referência, o qual não é analisado dentro do projeto de sequenciamento, porém é um or- ganismo similar e com uma anotação muito curada, denominada de organismo modelo. Essa comparação é feita utilizando o algoritmo BLAST que alinha a sequência em questão com esse banco de dados de referência e toma o melhor resultado. A partir dele é obtido o Gene Ontology Accession Number (GO Accession Number) tanto a sugestão quanto para o resultado obtido a partir do banco de referência. Se os GO Accession Numbers forem iguais, a sugestão é considerada correta. Porém para pontuar os bancos e as fer- ramentas, são analisadas todas as sugestões de cada etapa de execução do BioAgents, que serão descritas na seção 5.3, para vericar quais bancos e ferramentas retornaram uma sugestão correta, sendo então pontuados. A pontuação feita aos bancos de dados e às ferramentas é considerada a atribuição de recompesas feita aos agentes. Utilizando a Equação 3.1 apresentada na Seção 3.5.2, na página 33, temos os seguintes valores de

recompensa (rt+k+1) dado aos banco de dados e às ferramentas tratadas pelos agentes.

ˆ 1 quando ao menos uma sugestão é considerada correta ˆ 0 quando nenhuma sugestão é considerada correta

Cada agente, antes de fazer a análise de seu conjunto dados, vericará a pontuação do banco de dados e da ferramenta que estão sendo analisados para ver o conjunto de sugestões a serem retornadas. Isso é feito para que o agente do nível superior tenha mais hits de um bom banco de dados e de uma boa ferramenta para analisar e extrair suas sugestões.

A quantidade de sugestões, Qtd(p), a serem retornadas foi empiricamente denida. O critério de escolha é baseado numa função que aumenta o número de sugestões com poucos pontos. Esta decisão também considerou que um projeto de sequenciamento possui milhares de sequências. Então, após um crescimento acentuado dos pontos, evita-se que a quantidade retornada por Qtd(p) seja um número muito grande, considerando que a quantidade de bons hits de uma ferramenta de comparação é limitada. A função Qtd(p) foi denida como sendo:

Qtd(p) = {5⌊5∗log(p)⌋+5 , p>0, p=0

O valor de p para um agente gerente é a pontuação do algoritmo que ele está tratando, e para os agentes analisadores, é a pontuação dos bancos que eles estão tratando. Pode-se armar que quando um algoritmo é pontuado, obrigatoriamente pelo menos um banco de

dados é pontuado, e se um banco de dados é pontuado obrigatoriamente um algoritmo também é pontuado. Novamente utilizando a Equação 3.1, temos que:

p= R(t) = ∞ X k=0 γkrt+k+1

5.2 Arquitetura Proposta

A camada de aprendizagem foi concebida como mostra a Figura 5.1. Essa camada pos- sui um Agente Controlador de Aprendizagem e Agentes de Aprendizagem, que farão a análise e armazenamento dos resultados da análise. Observamos que, para simplicar a Figura 5.1, não foi colocada a base de dados do BioAgents que armazena todas as infor- mações de execução, como requisições, sugestões e pontuação das bases de dados e das ferramentas. Todos os agentes fazem acessos a esse banco de dados para executar suas tarefas. Esses acessos serão descritos na Seção 5.3.

Agente Resolvedor de Conflitos

Agente Gerente Blast

Agente Analisador Blast Agente Analisador Blast NR GO

Interface com usuário

Camada Colaborativa Camada de Aprendizagem

Agente de Controle de Aprendizagem

Banco de Dados de Referência

Camada Física C.elegans

Agente Gerente Blat Agente Analisador Portrait Agente Analisador Blat Agente de Aprendizagem

Figura 5.1: Arquitetura com o tratamento de requisições Blast e Blat, um Agente Anali- sador Portrait, um Agente de Controle de Aprendizagem e um conjunto de 3 Agentes de Aprendizagem.

A função do Agente Controlador de Aprendizagem é fazer a execução do BLAST da sequência requerida com o banco de referência escolhido para o projeto. Os melhores resultados serão enviados para os Agentes de Aprendizagem, junto com o escopo a ser analisado. Entende-se por escopo uma parte da análise feita pelo BioAgents, por exemplo, a análise da execução do Agente Resolvedor de Conitos ou de um Agente Gerente.

A análise de um Agente de Aprendizagem no escopo do Agente Resolvedor de Con- itos vai ser feita considerando todas as sugestões recebidas dos Agentes Gerentes e comparando-as, utilizando o GO Accession Number, com as sequências enviadas pelo Agente de Controle de Aprendizagem. Assim o Agente de Aprendizagem irá pontuar as ferramentas que zeram uma sugestão correta.

O outro escopo de análise, que analisa um Agente Gerente, tem um funcionamento similar. Da mesma forma, serão comparadas as sugestões retornadas pelos Agentes Ana- lisadores, e serão pontuados os bancos de dados que originaram as sugestões corretas.

Os dados para as análises dos agentes da camada de aprendizagem são obtidas do banco de dados do BioAgents implementado para suportar essa solução. Notamos que essa camada não existia na proposta original. A camada contém todos os dados de uma requisição e as sugestões que foram feitas por cada agente para essa requisição. Esse dados serão utilizados na camada de aprendizagem para fazer as comparações, mas logo após isso, eles serão removidos por questão de espaço. O único dado preservado é a requisição original e seu resultado, para consultas posteriores.

5.3 Funcionamento

Para exemplicar o funcionamento do sistema BioAgents, vamos utilizar a seguinte requi- sição:

ˆ Requisição:

 Subrequisição 1:

* Tipo: Execução de ferramenta * Ferramenta: BLAST

* Sequência: ACGTAGGTCCA... * Base de Dados: SwissProt  Subrequisição 2:

* Tipo: Execução de ferramenta * Ferramenta: BLAT

* Sequência: ACGTAGGTCCA... * Base de Dados: S.cerevisiae  Subrequisição 3:

* Tipo: Análise de Arquivo * Ferramenta: BLAST

* Caminho: /var/exemplo/saida.blast  Subrequisição 4:

* Tipo: Análise de Arquivo * Ferramenta: BLAT

Nota-se que uma requisição é dividida em subrequisições. Uma subrequisição contém o seu tipo, a ferramenta a ser utilizada e uma sequência com uma base de dados, ou uma arquivo de saida produzido pela ferramenta em questão. Existem dois tipos de subrequi- sições, análise de arquivo e execução de ferramenta. O tipo análise de arquivo pressupõe um arquivo de saída previamente pronto, enquanto o tipo execução de ferramenta deve produzir esse arquivo utilizando a sequência e a base de dados informada.

O funcionamento do sistema BioAgents inicia-se com uma mensagem REQUEST, con- tendo uma requisição como descrita previamente, vinda da interface com o usuário, como mostra a Figura 5.2. A interface com usuário não é implementada junto do BioAgents, e é representada por uma nuvem pois qualquer sistema pode obter serviços do BioAgents através da troca de mensagens.

Em seguida o Agente Resolvedor de Conitos recebe a requisição com seu compor- tamento de recebimento, o qual cria um grupo de trabalho para dividir a requisição por especialidade, de acordo com as ferramentas solicitadas, e fazer o protocolo Contract Net com os agentes gerentes. Esse grupo de trabalho apresenta um comportamento que responderá a interface e controlará o uxo do trabalho a ser feito

Agente Resolvedor de Conflitos Interface com usuário

REQUEST

Figura 5.2: Passo 1: Início do ciclo de funcionamento com BioAgents.

O segundo passo ainda acontece no Agente Resolvedor de Conitos, o qual, através do grupo de trabalho, inicia um Contract Net, com uma mensagem CFP com os Agentes Gerentes, como mostrado na Figura 5.3. O Contract Net ocorre entre Agentes Gerentes de mesma especialidade somente. Nesse momento os Agentes Gerentes, através de seus comportamentos de recebimento, criam um grupo de trabalho responsável para tratar esta solicitação. Para responder a solicitação, primeiro os gerentes vericam a disponibilidade de Agentes Analisadores para atenderem à solicitação. A partir daí, os Agentes Gerentes fazem suas propostas ao Agente Resolvedor de Conitos, como mostra a Figura 5.3. Essa proposta consiste no número de agentes disponíveis para atender à requisição.

Neste momento, o Agente Resolvedor de Conitos analisa as propostas agrupadas por especialidade, seleciona uma ou descarta todas. Para aceitar uma proposta, o número de agentes disponíveis deve ser igual ou maior que o número de base de dados e arquivos a

Agente Resolvedor de Conflitos

CFP

Agente Gerente Blast Agente Gerente Blat

CFP

Agente Resolvedor de Conflitos

PROPOSE

Agente Gerente Blast Agente Gerente Blat

PROPOSE

Figura 5.3: Passos 2 e 3: Solicitação de proposta por parte do Agente Resolvedor de Conitos e retorno das propostas dos Agentes Gerentes.

serem analisados. Aceitando as propostas dos Agentes Gerentes, o Agente Resolvedor de Conitos envia uma aceitação para cada gerente, como mostrado na Figura 5.4.

Agente Resolvedor de Conflitos

ACCEPT_PROPOSAL

Agente Gerente Blast Agente Gerente Blat

ACCEPT_PROPOSAL

Figura 5.4: Passo 4: Aceitação das propostas dos Agentes Gerentes.

Os Agentes Gerentes, ao receberem a aceitação, solicitam que Agentes Analisadores sejam alocados para analisar cada base de dados e arquivos que foram inicialmente re- queridos. A requisição então é dividida e são criados comportamentos dentro do grupo de trabalho para fazer as solicitações aos seus respectivos Agentes Analisadores, como mostrado na Figura 5.5.

Os Agentes Analisadores, recebendo um requisição, não poderão atender outra requi- sição qualquer, porque nesse momento eles entram em um estado ocupado. Esses agentes tratam requisição de análise de arquivo, ou seja, analisam um arquivo de saída já pronto de uma ferramenta de comparação ou de análise com execução de ferramenta, ou seja, os Agentes Analisadores devem executar a ferramenta solicitada para obter o arquivo de

Agente Gerente Blast

REQUEST

Agente Analisador Blast Agente Analisador Blast REQUEST

Agente Gerente Blat

Agente Analisador Blat REQUEST

Figura 5.5: Passo 5: Requisição aos Agentes Analisadores.

saída desejado. Um requisição de análise com execução de ferramenta, antes de qualquer ação, requer que o agente execute a ferramenta, BLAST ou BLAT dependendo da sua especialidade, para obter o resultado da comparação. Após a execução do algoritmo, a analise é igual para os dois tipo de requisição, já que o arquivo é uma saída de uma ferramenta. O agente transforma todo o conteúdo da saída dos algoritmos em objetos denidos na ontologia e depois alimenta a base de fatos do Drools, executando as regras e recuperando os resultados. Cada resultado é uma coleção de sugestões, as quais contém hits. A quantidade máxima de sugestões é denida pela função Qtd(p) e a quantidade de pontos é recuperado do banco de dados do BioAgents. O arquivo de saída e as sugestões são armazenadas no banco de dados do BioAgents para análise posterior na camada de aprendizagem. Por m, o resultado é enviado para o Agente Gerente que fez a requisição. Esse passos estão descritos na Figura 5.6.

Ao receber todas as sugestões dos agentes analisadores, os agentes gerentes populam a base de fatos do Drools com as sugestões recebidas, executam as regras, recuperam os resultados, salvam todos os dados na base de dados do BioAgents e repassam os resultados para o agente resolvedor de conitos, como descrito na Figura 5.7. Aqui também é utili- zado a função Qtd(p) para denir a quantidade máxima de sugestões a serem retornadas. O Agente Resolvedor de Conitos, nesse momento, deve fazer uma decisão baseada nas sugestões recebidas. Caso não tenha recebido nenhuma sugestão, deve fazer uma solicitação ao Agente Analisador Portrait, esperando dele uma resposta, que é a proba- bilidade da sequência analisada ser um ncRNA. Esse resultado então é repassado para a interface de usuário quando então termina uma interação completa do BioAgents. O funcionamento do Agente Analisador Portrait inicia-se com uma requisição, o Portrait é executado e extrai o resultado do arquivo de saída, retornando-o para o Agente Resolvedor de Conitos.

Se o Agente Resolvedor de Conitos tiver recebido sugestões, faz uma análise das sugestões recebidas utilizando a base de conhecimento e regras Drools, recupera os resul- tados, armazena todos os dados e resultados no banco de dados do BioAgents e envia duas mensagens, uma com o resultado da requisição inicial para a interface com o usuário e outra para o Agente de Controle de Aprendizagem dizendo que uma requisição terminou e deve ser analisada. Esses dois casos são descritos na Figura 5.8.

Nos dois casos a interface com o usuário recebe uma resposta. Não havendo suges- tões, a resposta contém somente a probabilidade da sequência ser um ncRNA, como por exemplo:

Agente Gerente Blast

INFORM

Agente Analisador Blast Agente Analisador Blast INFORM

Agente Gerente Blat

Agente Analisador Blat INFORM Recebe requisição É uma analise de arquivo?

Executa algoritmo

Transforma saída Alimenta base de fatos

Executa as Regras no DROOLS Recupera resultados e retorna Não

Sim

Armazena os dados no BD

Figura 5.6: Passo 6: Fluxo de execução dos Agentes Analisadores e resposta aos Agentes Gerentes.

Agente Gerente Blast INFORM

Agente Gerente Blat Agente Resolvedor de Conflitos

INFORM

Recebe resposta Recebeu todas respostas? Alimenta base de fatos

Executa as Regras no DROOLS Recupera resultados e retorna

Não

Sim

Armazena os dados no BD

Figura 5.7: Passo 7: Fluxo de execução da análise dos Agentes Gerentes e resposta ao Agente Resolvedor de Conitos.

INFORM

Agente Controlador de Aprendizado Agente Resolvedor de Conflitos REQUEST

Interface com usuário

OU

INFORM

Agente Resolvedor de Conflitos Interface com usuário Agente Analisador Portrait Agente Resolvedor de Conflitos

REQUEST

Agente Analisador Portrait Agente Resolvedor de Conflitos

INFORM Quantidade de Sugestões maior que 0

Quantidade de Sugestões igual a 0

ˆ Resposta:

 Probabilidade ncRNA: 87, 2%

Havendo sugestões, a resposta contem todos os dados do alinhamento sugerido recu- perados a partir da saída da ferramenta utilizada, como por exemplo:

ˆ Resposta:  Sugestão:

* HidId: gi|166989585|sp|A4WFL5.1|GLGB_ENT38

* Nome do Produto: RecName: Full=1,4-alpha-glucan-branching enzyme

* E-Value: 1.0e−114

* Score: 410

A partir desse momento, a metodologia de aprendizagem por reforço descrita na Se- ção 5.1 é aplicada e se inicia quando o Agente Controlador de Aprendizagem, ao receber uma solicitação, recupera a requisição de análise feita pelo Agente Resolvedor de Coni- tos e todas as requisições originadas a partir desta, ou seja, requisições feitas aos Agentes Gerentes. Após essa recuperação, o agente alinha a sequência contida na requisição inicial com o banco de dados de referência utilizando o algoritmo BLAST. Em seguida, escolhe o melhor hit baseado no menor e-value. Por m, ele envia aos Agente de Aprendizagem esse hit, uma requisição, a inicial ou uma das originadas, e um escopo a ser analisado. Deve- se ressaltar que existe sempre um Agente de Aprendizagem para cada Agente Gerente envolvido na requisição e mais um para o Agente Resolvedor de Conitos. A Figura 5.9 mostra todas essa etapas.

Por m os Agentes de Aprendizagem, recebendo a requisição, recuperam as sugestões feitas para a requisição a ser analisada, obtem o GO Accession Number para cada hit das sugestões e para o hit que recebeu do Agente Controlador de Aprendizagem e os compara. Caso algum número EC de uma sugestão for igual ao número EC do hit, a base de dados ou o algoritmo será pontuado, dependendo do escopo analisado. Porém deve-se ressaltar que se um Agente de Aprendizagem pontua um banco de dados, um outro Agente de Aprendizagem deve pontuar a ferramenta que foi executada utilizando desse banco de dados. Por m essa pontuação é salva no banco de dados, como mostra a Figura 5.10.

Esse é a descrição completa do funcionamento do BioAgents que foi implementada para a solução do aprendizagem por reforço.

Agente de aprendizagem Agente de controle de aprendizagem

REQUEST Recebe requisição

Recupera dados para análise

Executa BLAST

Envia aos agentes de aprendizado Separa requisições e escopos

Recebe requisição

Recupera dados para análise

Obtem GO Accession Numbers

Armazena pontuação no BD Compara os Go Accession Numbers

Capítulo 6

Experimentos

Para a validação do método proposto neste trabalho e da implementação realizada, foram feitos dois experimentos baseados no Projeto Genoma Funcional e Diferencial do Paracoc- cidioides brasilienses (Projeto Genoma Pb) e no Projeto Genoma Funcional e Genética Genômica de Paullinia cupana (Projeto Genoma Guaraná), descritos respectivamente nas Seções 6.1 e 6.2 .

Os dois experimentos foram executados tanto para validar o funcionamento do sis- tema quanto para vericar a acurácia das sugestões, comparando-as com experimentos previamente realizados e executados com dados desses dois projetos.

Para que os resultados pudessem ser devidamente comparados com a anotação manual, foram utilizadas as mesmas saídas do BLAST usadas na anotação manual realizada pelos biólogos. Isso foi feito para que as novas anotações e correções das bases de dados mais atualizadas não interferissem nos resultados. A condição utilizada para vericar se uma sugestão feita pelo BioAgents estava correta foi baseada na comparação com a anotação manual feita pelos biólogos. A recomendação de sugestão era considerada igual à anotação

Documentos relacionados