Abstract
Sumário: Os programas de alinhamento de sequências múltiplas Clustal W e Clustal X foram completamente reescritos em C++. Isto facilitará o desenvolvimento dos algoritmos de alinhamento no futuro e permitiu a portabilidade adequada dos programas para as últimas versões dos sistemas operacionais Linux, Macintosh e Windows.
Contact:[email protected]
1 INTRODUÇÃO
Alinhamentos de sequências múltiplas são agora uma das análises bioinformáticas mais amplamente utilizadas. Eles são necessários rotineiramente como partes de análises mais complicadas ou gasodutos de análise e há várias embalagens muito utilizadas, por exemplo, Clustal W (Thompson et al., 1994), Clustal X (Thompson et al., 1997), T-Coffee (Notredame et al., 2000), MAFFT (Katoh et al., 2002) e MUSCLE (Edgar, 2004). Clustal é também o mais antigo dos programas atualmente mais utilizados, tendo sido distribuído por correio em disquetes no final da década de 1980. Foi inicialmente escrito no Microsoft Fortran para MS-DOS e originalmente executado em computadores pessoais compatíveis com IBM como quatro programas executáveis separados, Clustal1-Clustal4 (Higgins e Sharp, 1988, 1989). Estes foram mais tarde reescritos em C e fundidos num único programa, Clustal V (Higgins et al., 1992), que foi distribuído para PCs compatíveis com VAX/VMS, Unix, Apple Macintosh e IBM. Estes programas foram distribuídos a partir do servidor de arquivos EMBL (Stoehr e Omond, 1989), um servidor de e-mail e FTP, baseado no EMBL em Heidelberg, Alemanha.
Os atuais programas Clustal todos derivam do Clustal W (Thompson et al., 1994), que incorporou um novo esquema de pontuação específico de posição e um esquema de ponderação para grupos de sequências sobre-representados. O ‘W’ significa ‘pesos’. Estes programas foram alterados e acrescentados muitas vezes desde 1994 a fim de aumentar a funcionalidade e aumentar a sensibilidade. A facilidade de utilização também foi muito melhorada com a adição, em 1997, de uma interface gráfica completa do utilizador (Thompson et al., 1997). Isto tornou o código complicado de manter e desenvolver, pois a interface gráfica deve ser constantemente modificada e recompilada para novos sistemas operacionais e ambientes de trabalho (Windows, Macintosh, VMS, Unix e Linux).
No final dos anos 90, Clustal W e Clustal X foram os programas de alinhamento múltiplo mais utilizados. Eles eram capazes de alinhar conjuntos de dados médios muito rapidamente e eram fáceis de usar. Os alinhamentos eram de qualidade suficiente para não requerer edição manual ou ajuste com muita frequência. Esta situação mudou muito com o aparecimento do primeiro conjunto de teste de referência feito sob medida para programas de alinhamento múltiplo, BAliBASE (Thompson et al., 1999). Isto foi seguido pelo aparecimento do T-Coffee que foi capaz de fazer alinhamentos muito precisos de proteínas muito divergentes, mas apenas para pequenos conjuntos de seqüências, dado seu alto custo computacional. Com o aumento da velocidade de processamento dos computadores desktop, e subsequente otimização do código T-Coffee, este último é agora prático para uso rotineiro em problemas de alinhamento de tamanho moderado. Mais recentemente, surgiram o MAFFT e o MUSCLE; que eram, inicialmente, pelo menos tão precisos como o Clustal, em termos de precisão de alinhamento, mas que também eram extremamente rápidos; e capazes de alinhar muitos milhares de sequências. Nos últimos 4 ou 5 anos, estes programas também se tornaram gradualmente mais e mais precisos com alinhamentos difíceis. No entanto, o Clustal W e o Clustal X continuam a ser muito utilizados, cada vez mais em websites. O site EBI Clustal, recebe literalmente milhões de trabalhos de alinhamento múltiplo por ano.
Foi neste contexto que desenvolvemos o Clustal W 2.0 e o Clustal X 2.0. Estes programas foram reescritos em C++ com um modelo de objeto simples para facilitar a manutenção do código e mais importante, para facilitar a modificação ou até mesmo a substituição de alguns algoritmos de alinhamento. Nós produzimos dois novos programas que são muito parecidos com os programas antigos da versão 1.83, mas que agora podem ser gerenciados mais facilmente. Também fizemos alguns pequenos ajustes nos algoritmos de alinhamento. Incluímos um novo código para as árvores guia UPGMA como uma alternativa às árvores guia habituais Neighbor-Joining. Isto ajuda a acelerar o alinhamento de conjuntos de dados extremamente grandes de dezenas de milhares de sequências. Também incluímos um recurso de alinhamento iterativo para aumentar a precisão do alinhamento.
ClustalX 2.0 Screenshot on Mac OS X.
ClustalX 2.0 Screenshot no Mac OS X.
>
Clustal X 2.0 é a nova versão da ferramenta de alinhamento gráfico Clustal X. O Clustal X original foi desenvolvido utilizando a vibrante caixa de ferramentas do NCBI. A caixa de ferramentas vibrante não é mais suportada o que levou a problemas na compilação do Clustal X em versões mais recentes de sistemas operacionais. As secções da interface gráfica do Clustal X 2.0 foram completamente reescritas utilizando a caixa de ferramentas GUI Qt. Qt é um conjunto de ferramentas GUI C++ fácil de usar e multiplataforma. O código só precisa ser compilado uma vez em cada uma das plataformas. A caixa de ferramentas Qt fornece uma aparência nativa nas plataformas Windows, Linux e Mac. Clustal X 2.0 tem a mesma funcionalidade do Clustal X.
2 NOVAS CARACTERÍSTICAS
Duas novas opções foram incluídas no Clustal W 2.0, para permitir um alinhamento mais rápido de conjuntos de dados muito grandes e para aumentar a precisão do alinhamento. As opções padrão do Clustal W e Clustal X 2.0 são as mesmas do Clustal W 1.83, e darão os mesmos resultados de alinhamento.
As árvores-guia no Clustal foram calculadas usando o método Neighbor-Joining (NJ), durante os últimos 10 anos ou mais. Nas primeiras versões do programa foi utilizado o UPGMA. O UPGMA é mais rápido que o NJ mas propenso a agrupar ramos longos quando as taxas evolutivas são muito desiguais em diferentes linhagens. Ambos os algoritmos têm complexidade de O(N2) mas a UPGMA é mais rápida para um dado conjunto de dados e a diferença torna-se pronunciada com N muito grande. Em um PC desktop padrão, é possível agrupar 10 000 sequências em menos de um minuto usando a UPGMA, enquanto NJ levaria mais de uma hora. Nós reimplementamos um algoritmo muito eficiente para UPGMA que pode ser chamado usando a opção de linha de comando ‘-clustering=UPGMA’. É marginalmente menos preciso no benchmark Balibase, mas em grandes alinhamentos (por exemplo, 10 000 sequências de globin) isto é compensado pela economia no tempo de processamento (2 h versus 12 h).
Iteração é um método rápido e eficaz de refinar alinhamentos. Um esquema de iteração ‘remover primeiro’, que otimiza a soma ponderada dos pares (WSP), foi incluído nesta versão do Clustal. Durante cada passo de iteração, cada sequência é removida do alinhamento por sua vez e realinhada. Se a pontuação WSP for reduzida, então o alinhamento resultante é mantido. O esquema de iteração pode ser usado para refinar o alinhamento final ou em cada etapa do alinhamento progressivo. A iteração durante o alinhamento progressivo tende a ser mais precisa, mas também muito mais demorada, uma vez que existem 2N-3 nós na árvore guia. A opção de linha de comando ‘-Iteração=Alinhamento’ refina o alinhamento final, enquanto a opção ‘-Iteração=Árvore’ incorpora o esquema no alinhamento progressivo. O número de ciclos de iteração é definido através da opção de linha de comando ‘-numiters’ (o padrão é 3).
ACKNOWLEDGEMENT
Este trabalho foi financiado principalmente pela Science Foundation Ireland.
Conflict of Interest: none declared.
Author notes
Associate Editor: Alex Bateman