Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Um dos melhores softwares da área da bioinformática é o Mr Bayes. Seu maior dilema é o processamento em ambiente paralelo, portanto este documento relata a instalação do MrBayes em sua versão para processamento paralelo e adaptação para arquitetura 64 bits de versão do MrBayes para processamento paralelo.

[ Hits: 20.675 ]

Por: José Cleydson Ferreira da Silva em 03/07/2010


Sobre MrBayes



Adaptação para arquitetura 64 bits de versão do MrBayes para processamento paralelo e relatório de instalação.

MrBayes é um software característico da área de bioinformática para análise bayesiana de filogenia. Um dos grandes desafios da bioinformática é a utilização de processamento distribuído, ou paralelo, para a redução do tempo de processamento que, de outra forma, pode consumir meses.

Por ser um software Livre e de código aberto licenciado pela GNU General Public (GPL), foi possível à equipe "John P. Huelsenbeck da Section of Ecology, Behavior and Evolution Division of Biological Sciences University of California, San Diego e Fredrik Ronquist School of Computational Science Florida State University" implementar uma versão para processamento paralelo.

Este texto relata a instalação do MrBayes em sua versão para processamento paralelo em um servidor Linux de 64 bits e oito processadores.
Linux: Bioinformática - Instalação do Mr Bayes em ambiente paralelo

Instalando o MrBayes

O MrBayes e seu Makefile correspondente foram originariamente desenvolvidos para 32 bits (arquitetura x86) e sua instalação é bastante simples. Porém, sua instalação em arquitetura 64 bits torna-se problema pela dificuldade de endereçamento de mais memória e mais de 4 núcleos de processadores.

No entanto, mais memória e mais processadores tem-se tornado exigência para a redução do tempo de processamento em processos paralelizáveis. Assim, sua instalação em sistemas operacionais com arquitetura 64 bits necessita de diversas bibliotecas e de modificações específicas no arquivo Makefile.

Um script foi criado para modificar esse arquivo e portá-lo para a arquitetura 64 bits. Abaixo, seguem os tópicos para a configuração e instalação desses arquivos.

Download do MrBayes

O software pode ser encontrado em diversos repositórios; dois deles são apresentados a seguir. Sugere-se descarregar o arquivo de download no diretório padrão /opt.

Download MrBayes. Entrar no diretório:

# cd /opt

Obter MrBayes:

# wget http://mrbayes.csit.fsu.edu/download2.php?arch=src
ou
# wget http://dfn.dl.sourceforge.net/sourceforge/mrbayes/mrbayes-3.1.2.tar.gz

Descompactar o arquivo:

# tar -xvzf mrbayes-3.1.2.tar.gz

Preparando ambiente paralelo com bibliotecas MPI

O MPI (Message Passing Interface) é um padrão de desenvolvimento de bibliotecas de troca de mensagens independente de fabricante. O MPI resultou do trabalho em conjunto de grupos e pessoas no período de 1992 a 1994. A figura abaixo apresenta alguns grupos que trabalharam na definição do padrão MPI.

No universo do software livre e de código aberto há diversos softwares e bibliotecas que auxiliam a implementação de programas para o processamento paralelo. Entre as muitas bibliotecas disponíveis, a lista a seguir pode ser utilizada para preparar o ambiente paralelo em seu servidor.
ProgramaClassificação
libmpich2-devArquivo de desenvolvimento para MPICH2.
libmpich2-1.2Biblioteca compartilhada para MPICH2.
libmpich1.0gfBiblioteca compartilha para tempo de execução MPICH2.
libmpich1.0-devBiblioteca estática e ficheiro de desenvolvimento.
libmpich-shmem1.0gfBiblioteca compartilha para uso de tempo de execução em mpich-shmem.
libmpich-shmem1.0-devBiblioteca estática e ficheiro de desenvolvimento.
libmpich-mpd1.0gfBiblioteca compartilha para uso de tempo de execução em mpich-mpd.
libmpich-mpd1.0-devBiblioteca estática mpich e ficheiro de desenvolvimento.
libopenmpi1.3Biblioteca para alto desempenho para troca de mensagem.
mpich-mpd-binImplementação de sistema computação paralela, versão MPD.
mpich-shmem-binImplementação de sistema computação paralela, versão Shmem.
mpich2Implementação do padrão MPI.
openmpi-binBiblioteca MPI para alta performance.
openmpi-checkpointBiblioteca MPI para alta performance com suporte a checkpoint.
openmpi-commonBiblioteca MPI para alta performance de análise de mensagens.
libreadline5-devAuxilia a consistência de interface de usuários entre programas distintos.


A instalação desses programas dá-se por meio do gerenciador de pacotes da distribuição Linux que estiver sendo utilizada; neste caso específico, serão utilizados gerenciadores de pacotes do Ubuntu Linux arquitetura x86_64. Os comandos abaixo farão as instalações dos mesmos. Caso já tenha um ambiente MPI instalado no servidor ou no computador essa instalação deve ser desconsiderada.

Instalação MPI.

Verificar atualização:

# apt-get update
# apt-get upgrade


Instalação dos softwares MPI:

# apt-get install libmpich2-dev libmpich2-1.2 libmpich1.0gf libmpich1.0-dev libmpich-shmem1.0gf libmpich-shmem1.0-dev libmpich-mpd1.0gf libmpich-mpd1.0-dev libopenmpi1.3 mpich-mpd-bin mpich-shmem-bin mpich2 openmpi-bin openmpi-checkpoint openmpi-bin libreadline5-dev

Após a execução satisfatória do comando de instalação acima deve-se verificar a disponibilidade dos comandos MPI. Digita-se o comando mpi no terminal seguido do pressionamento da tecla TAB. Compare com a imagem abaixo. Caso não tenha ocorrido erro o resultado será semelhante ao da figura abaixo de instalação no servidor galileu.

Correção do Makefile para 64 bits

O MrBayes, como mencionado, funciona perfeitamente em plataformas 32 bits; portanto, é necessário fazer correção no arquivo Makefile para que não ocorra erro de compilação durante a checagem da arquitetura do kernel. A compilação em ambiente com arquitetura x86_64 sem a correção desse arquivo culminou no seguinte erro em meio a muitas linhas exibidas na saída padrão.

/usr/bin/ld: i386 architecture of input file `mb.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `mcmc.o' is incompatible with i386:x86-64 output

Uma correção do arquivo Makefile está disponível no site www.technical.bestgrid.org. Esse mesmo arquivo foi colocado disponível em outro site para o caso de problemas de acesso ao primeiro. No quadro abaixo seguem os links para obtenção do arquivo de correção.

1) www.technical.bestgrid.org
http://technical.bestgrid.org/images/7/73/Mb_64bit-safe.patch.txt

2) www.vivaolinux.com.br
http://www.vivaolinux.com.br/scripts/download.php?arquivo=MakePatch

Baixe o arquivo dentro da pasta gerada quando da descompactação do MrBayes (/opt/mrbayes-3.1.2). Mude o nome do arquivo para MakePatch. Essa modificação não interfere no processo de instalação servindo, entretanto, para melhor distinção de nome dos arquivos e suas contextualizações.

O script a seguir foi elaborado pelos autores para indicar todos os arquivos e parâmetros da sintaxe do comando patch de forma automática.

#!/bin/sh
# Script auxiliar para correção da arquitetura do MrBayes
# Elaborado por:
# Vitor: vitorbs@gmail.com
# Cleysinho: Cleysinhonv@gmail.com
# O download desse script pode ser encontrado no link:
# http://www.vivaolinux.com.br/scripts/download.php?arquivo=script_correcao_arq64


if test "$1" = ""
then
   echo "Usage: $0 <PATCH_FILE>"
   exit 0
fi

for i in *
do
   patch -R "$i" < "$1"
done

Caso não se queira fazer o download pode-se criar um arquivo, adicionar o conteúdo do script, atribuir permissão de execução e processar o script. Abaixo, será apresentado o passo-a-passo para a correção do arquivo e a compilação do mesmo. As instruções devem ser seguidas com atenção para que nenhum procedimento fique sem ser executado.

Processo de correção e compilação.

1) Se baixar o script no link abaixo, vá para o passo 3.

http://www.vivaolinux.com.br/scripts/download.php?arquivo=MakePatch

2) Criar o arquivo e adicionar o conteúdo acima (no diretório /opt/mrbayes-3.1.2):

# touch script_correcao_arq64

Adicionar conteúdo do arquivo acima (link) no script_correcao_arq64:

# vim script_correcao_arq64

Mudar permissão:

# chmod +x script_correcao_arq64

3) Correção do arquivo Makefile:

# ./script_correcao_arq64 MakePatch

4) Compilação do MrBayes:

# make

Obs.: Será gerado um arquivo executável chamado mb.

Após a compilação deve-se criar o arquivo .mpd.conf no diretório home do usuário e mudar a permissão. Seguem os comandos:

# touch .mpd.conf
# chmod 600


Adicionar o conteúdo abaixo no arquivo:

MPD_SECRETWORD=mr45-j9z

Testando o MrBayes

A compilação gera um arquivo mb, esse executável é responsável por iniciar o MrBayes. Inicialmente para testá-lo sem o uso paralelo pode-se usar o comando ./mb, abaixo segue o comando e a interface do MrBayes no terminal que eu fiz (no diretório da instalação).

# sh /opt/mrbayes-3.1.2/mb

                          MrBayes v3.1.2 

                 (Bayesian Analysis of Phylogeny) 

                        (Parallel version) 
                    (1 processors available) 

                                by 

             John P. Huelsenbeck and Fredrik Ronquist 

            Section of Ecology, Behavior and Evolution 
                  Division of Biological Sciences 
                University of California, San Diego 
                      johnh@biomail.ucsd.edu 

                  School of Computational Science 
                      Florida State University 
                       ronquist@csit.fsu.edu 

         Distributed under the GNU General Public License 

          Type "help" or "help <command>" for information 
                on the commands that are available. 

MrBayes > 

Note que a mensagem "1 processors available" em vermelho corresponde a um único processador - modo monoprocessado. Para a forma multiprocessada - paralela - usa-se o comando mpirun seguido do parâmetro -np seguido do número de processadores. Veja o exemplo para 4 processadores a seguir.

# mpirun -np 4 /opt/mrbayes-3.1.2/mb

É necessário indicar o caminho completo do executável, ainda que esteja no diretório corrente pois, caso contrário, será apresentado o seguinte erro:

configuration file /etc/mpd.conf is accessible by others
change permissions to allow read and write access only by you

A execução do comando "mpirun -np 8 /opt/mrbayes-3.1.2/mb" fará com que o programa MrBayes utilize oito processadores para a execução de suas tarefas. A tela com o seguinte resultado:

# mpirun -np 8 /opt/mrbayes-3.1.2/mb

                               MrBayes v3.1.2 

                      (Bayesian Analysis of Phylogeny) 

                             (Parallel version) 
                         (8 processors available) 

                                     by 

                  John P. Huelsenbeck and Fredrik Ronquist 

                 Section of Ecology, Behavior and Evolution 
                       Division of Biological Sciences 
                     University of California, San Diego 
                           johnh@biomail.ucsd.edu 

                       School of Computational Science 
                           Florida State University 
                            ronquist@csit.fsu.edu 

              Distributed under the GNU General Public License 

               Type "help" or "help <command>" for information 
                     on the commands that are available. 

MrBayes > 

Criando script para inicialização do MrBayes (opcional)

Para melhorar a usabilidade do MrBayes, evitando a necessidade de indicar os comandos e os caminhos de forma completa, pode-se usar um simples script.

Crie um arquivo com de nome mrBayes em /usr/local/bin e adicione o conteúdo do quadro abaixo dando permissão de execução (chmod +x mrBayes) ou faça o download do script do link.

#!/bin/sh

# Script para inicialização do MrBayes
#
# José Cleydson F. Silva
# Cleysinhonv@gmail.com
#
# Versão 1.0 - 24/05/2010
#


if [ "$#" -eq 0 ]
then
  echo "Usage: mrBayes <NUMBER OF PROCESSOR>"
  exit 0
fi

mpirun -np $1 /opt/mrbayes-3.1.2/mb

Para usá-lo dê o comando abaixo, ou seja, o nome do arquivo criado seguido do número de processadores.

# mrBayes 8

O script pode ser obtido no link abaixo:
    Próxima página

Páginas do artigo
   1. Sobre MrBayes
   2. Sobre os autores
Outros artigos deste autor

Economia e liberdade: o software livre une o útil ao agradável

Implementando servidor de aplicações PHP utilizando Zend Framework

O comando LS de A a Z

Implementando rotas estáticas no Linux com route

Novidades e mudanças na estrutura e configuração do Grub2, fique por dentro!

Leitura recomendada

Bandwidthd + Postgre

Nuxeo EP com MySQL no Ubuntu LTS Server Hardy 8.04

Dia: O Editor de diagrama (Microsoft Visio) para Linux

KDE-Edu e Gcompris: Software Livre a serviço da educação

IRPF 2005 no Linux

  
Comentários
[1] Comentário enviado por Gui.loss em 27/10/2011 - 17:13h

Olá,


tentei instalar seguindo passo a passo...

aparentemente tu estava dando certo mas no passo que digito

sh /opt/mrbayes-3.1.2/mb

aprece no shell


/opt/mrbayes-3.1.2/mb: 1: Syntax error: word unexpected (expecting ")")
como poderia solucionar isso?


obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts