
---
Máxima verossimilhança no CIPRES
===
## Conteúdo
[TOC]
## Seleção do modelo evolutivo
Para selecionar o modelo evolutivo, utilizaremos a ferramenta jModelTest no CIPRES. O jModelTest lê arquivo de entrada no formato **.phy**, por este motivo, é necessário converter o arquivo *.fasta*, gerado no alinhamento MAFFT, para este tipo de formato.
1. Para converter o arquivo **.fasta** > **.phy** acesse o site do **A**lignment **T**ransformation **E**nvi**R**onment ([ALTER](https://www.sing-group.org/ALTER/)).
1.2. No lado esquerdo do site, selecione (1) o formato de entrada, (2) o sistema operacional e faça o upload do arquivo **.fasta**. No lado direito do site selecione o (3) programa a ser utilizado (agora o JModelTest) e formato de saída do arquivo (i.e., **.phylip**), clique em **convert** e depois em **save**. Por fim, selecione o sistema operacional e salve o arquivo no novo formato.*(Lembre-se que essas conversões de extensão de arquivos podem ser feitas em uma diversidade de programas, até no já utilizado Mesquite)*
2. Depois de convertido, no passo 4, selecione o sistema operacional e depois cliquem em **Save**.

2. Uma vez que o arquivo foi convertido para .phy, carregue o mesmo no CIPRES clicando em "**upload data**".
3. Tarefa no CIPRES:
3.1. Clique em **tasks** > **create a new task** e dê um nome para a tarefa.
3.2 Clique em **input** e selecione o arquivo recém convertido **.phy**.
3.3 Clique em **select tool** e selecione **jModelTest2 on XSEDE**.
3.4. Clique em **parameter** e para **Maximum Hours to Run**, insira o valor de 100. Salve os parâmetros.
3.5. Clique em **save and run**.

4. Uma vez que a análise tenha terminado, clique em **view output** ou em **view status** (as vezes o CIPRES ainda não atualizou o ícone).

5. Será exibida uma lista de arquivos.

6. Baixe o arquivo **stdout** e abra no bloco de notas. Procure no arquivo o modelo mais adequado para o seu conjunto de dados. Procure pelo **AKAIKE INFORMATION CRITERION (AIC)** e veja qual foi o modelo selecionado. No meu caso o modelo selecionado foi **TIM2+G**.

Como rodar ML no CIPRES?
---
1. Converta vamos converter o arquivo **.fasta** (do alinhamento MAFFT) para **.nexus**, novamente no [**ALTER**](https://www.sing-group.org/ALTER/) (siga o passo 1 do item anterior):

2. Em um bloco de notas, abra o arquivo que foi gerado pelo jModeltest.

4. Abaixo da conclusão do AIC com a seleção do modelo evolutivo, há uma linha de comando para o PAUP (**PAUP Commands Block**). Copie o comando, que neste exemplo é:
BEGIN PAUP;
Lset base=(0.2776 0.2183 0.2275 ) nst=6 rmat=(0.6575 1.6450 0.6575 1.0000 2.5173) rates=gamma shape=0.3400 ncat=4 pinvar=0;
END;
5. Abra o arquivo .nexus (convertido no passo 2) no bloco de notas. No final do arquivo .nexus, cole o comando do modelo que foi copiado do arquivo gerado pelo jmodeltest.

6. Depois de colado, ficará da seguinte forma:

7. No topo do arquivo .nexus, exclua a linha onde tem a seguinte informação: "symbols: ABCDEFGHIJKLMNOPQRSTUVWXYZ"
8. Nesse passo já temos no mesmo arquivo .nexus o alinhamento (aqui gerado no MAFFT) e a linha de comando que informa os parâmetros do melhor modelo evolutivo selecionado pelo JModelTest. Agora é preciso incluir os parâmetros para realizar a análise de ML no programa PAUP. Os parâmetros são os seguintes (com comentários explanatórios entre colchetes na primeira figura e sem os comentários na segunda figura):
*COM COMENTÁRIOS:*
[!Para indicar o começo do bloco de comandos:]
BEGIN PAUP;
[!Para fechar a janela depois que acabar a análise]
set autoclose=yes;
[!Para mudar o critério da análise para parcimônia]
set criterion=like;
[!Para indicar o método de enraizamento]
set root=outgroup;
[!Para guardar o tamanho dos ramos]
set storebrlens=yes;
[!Acrescenta o número máximo de árvores para "aumentar automaticamente"; essa opção é interessante manter dessa maneira para buscarmos o máximo de árvores possíveis. O padrão do programa é somente a busca de 100 árvores]
set increase=auto;
[!Aqui você deve inserir os nomes dos grupos que você estabeleceu como grupo externo]
outgroup [Inserir o nome dos seus grupos externos separados por espaço];
[!Indica o modelo evolutivo que será configurado para a análise - Lset -]
Lset base=(0.2393 0.1984 0.2164 ) nst=6 rmat=(1.0000 1.6586 0.5448 0.5448 6.3123) rates=gamma shape=0.7300 ncat=4 pinvar=0.6350;
[!Indica a análise de busca heurística (hs), seguido de adição aleatória de sequências (addseq=random), o número de réplicas (nreps=) e o tipo de permuta de ramos (branch swapping)]
hsearch addseq=random nreps=[número de réplicas] swap=tbr;
[! Para salvar as árvores no arquivo que indicar (arquivo.tre) e ainda guardar os valores do tamanho dos ramos nas árvores.]
savetrees file=[nome do arquivo.tre] brlens=yes;
[!Para fechar bloco de comandos do PAUP]
end;
*SEM COMENTÁRIOS:*
BEGIN PAUP;
set criterion=like;
set autoclose=yes;
set root = outgroup;
outgroup [Inserir o nome dos seus grupos externos separados por espaço];
set storebrlens=yes;
set increase=auto;
Lset [modelo evolutivo];
hsearch addseq=random nreps=10000 swap=tbr;
savetrees file=[nome do arquivo.tre] brlens=yes;
END;
9. Copie os comandos listados acima (da figura Sem Comentários). Cole esses comandos no arquivo .nexus, abaixo da linha de comando do PAUP.
11. Da porção copiada anteriormente do JModelTest para o arquivo .nexus, copie a linha que inicia com **Lset**. Delete o **Begin PAUP;** e o **end;**). Cole a linha copiada na linha que também inicia por Lset dos comandos copiado no passo 9. Na linha **outgroup** escreva o nome dos taxons do grupo externo separados apenas por vírgulas. Atualize o nome do seu arquivo de saída em **savetrees file**. No fim, os comandos no arquivo .nexus devem ficar da seguinte forma:

10. Uma fez que o arquivo esteja pronto, salve.
12. Acesso o **CIPRES** e faça o upload desse arquivo na sua pasta adequada, dentro de **Data**. Dê um nome para o arquivo em **Label** e coloque uma descrição em Data.

13. Clique em **Tasks** > **create new task**. Inclua o nome, selecione o dado (o arquivo anexado no passo 12) e em **tool** selecione **PAUP on XSEDE**. Em **Input Parameters** mude **Maximum Hours to Run** para 100, selecione a caixa **My data set has commands in a PAUP block** e em **Set the Optimality Criterion** mude para **Likelihood**.
14. Clique em **save and run task**.
(As vezes a descrição desaparece e é necessário incluir novamente antes de enviar a tarefa).
15. Quando a tarefa estiver concluída, baixe o arquivo **.tre**. Esse arquivo pode ser aberto em editores de árvores filogenéticas.

Cálculo do Bootstrap
---
Para calcular o bootstrap, é necessário utilizar um novo arquivo **.nex**.
1. De volta na matrix .nex, copie e cole os comandos abaixo no final do alinhamento. *(Lembre-se de excluir a linha "Symbols" no início do arquivo .nex.)*
begin paup;
set autoclose=yes;
set criterion=like;
set root = outgroup;
set storebrlens=yes;
set increase=auto;
Lset **[modelo evolutivo]**;
outgroup **[Inserir o nome dos seus grupos externos separados por espaço]**;
bootstrap nreps=100 search=heuristic/ addseq=random swap=tbr;
savetrees file=**[arvore_qualquer_boot]**.tre brlens=yes savebootp=NodeLabels MaxDecimals=0;
end;
*Lembre-se que os itens em negrito devem ser atualizados!*
*COMANDOS COM COMENTÁRIOS:*
[!Para indicar o começo do bloco de comandos:]
begin paup;
[!Para fechar a janela depois que acabar a análise]
set autoclose=yes;
[!Para mudar o critério da análise para likelihood]
set criterion=like;
[!Para indicar o método de enraizamento]
set root = outgroup;
[!Para guardar o tamanho dos ramos]
set storebrlens=yes;
[!Acrescenta o número máximo de árvores para "aumentar automaticamente"; essa opção é interessante manter dessa maneira para buscarmos o máximo de árvores possíveis. O padrão do programa é somente a busca de 100 árvores]
set increase=auto;
[!Aqui denota o local em que deverá inserir o modelo evolutivo previamente calculado a partir da sua análise de Máxima verossimilhança, conforme feito na seção [Como fazer análise de Máxima Verossimilhança usando o CIPRES](https://hackmd.io/s/S1IzWLIVm#Como-fazer-an%C3%A1lise-de-M%C3%A1xima-Verossimilhan%C3%A7a-usando-o-CIPRES)]
Lset [modelo evolutivo]];
[!Aqui você deve inserir os nomes dos grupos que você estabeleceu como grupo externo]
outgroup [Inserir o nome dos seus grupos externos separados por espaço];
[!Indica a análise de bootstrap a partir de busca de pseudo réplicas (primeiro "nreps") com busca heurística (heuristic), seguido de adição aleatória de sequências (addseq=random) e o tipo de permuta de ramos (branch swapping)]
bootstrap nreps=100 search=heuristic/ addseq=random swap=tbr;
[! Para salvar as árvores no arquivo que indicar (arquivo_qualquer.tre) e ainda guardar os valores do bootstrap e tamanho dos ramos nas árvores.]
savetrees file=[arvore_qualquer_boot].tre brlens=yes savebootp=NodeLabels MaxDecimals=0;
end;
2. Crie uma nova tarefa no CIPRES para rodar seus dados. Preencha no CIPRES os mesmos parâmetros utilizados para Máxima Verossimilhança no PAUP.
3. Uma vez que a tarefa esteja concluída, é possível abrir o arquivo STDOUT em um editor de textos como o Bloco de Notas e visualizar o suporte dos ramos.

Lembre-se que esta não é a sua árvore de ML, ela somente exibe os suportes para sua árvore gerada anteriormente. Os suportes devem ser acrescentados à sua árvore anterior. Isso será feito no próximo passo, utilizando o software FigTree.
###### tags: `Sistemática Filogenética` `PPG Evolução e Diversidade`