Em formação

Como interpretar a distância de Robinson-Foulds ponderada entre filogenias?


A métrica Robinson-Foulds (RF) fornece distância simétrica entre duas filogenias como uma soma de grupos monofiléticos presentes em uma árvore, mas não na outra. A distância de RF normalizada é dada como $ frac {RF_i} {RF_ {max}} $. Vamos considerar um exemplo:

require (phangorn) set.seed (123456) tr = rtree (10, rooted = FALSE) tr2 = rtree (10, rooted = FALSE) RF.dist (tr, tr2) # [1] 12 RF.dist (tr, tr2 , normalizar = VERDADEIRO) # [1] 0,8571429

A última linha significaria que as árvores diferem em 86% de sua distância máxima. Mas como interpretar a distância RF se ela for ponderada nos comprimentos dos ramos?

wRF.dist (tr, tr2) # [1] 13.20986 wRF.dist (tr, tr2, normalizar = TRUE) # [1] 0,7600115

É 76% da distância máxima da árvore dada a soma dos comprimentos das árvores comparadas?


Robinson-Foulds Supertrees

Os métodos de superárvore sintetizam coleções de pequenas árvores filogenéticas com sobreposição incompleta de táxons em árvores abrangentes, ou superárvores, que incluem todos os táxons encontrados nas árvores de entrada. Métodos de superárvore baseados na distância Robinson-Foulds (RF) bem estabelecida têm o potencial de construir superárvores que retêm muitas informações das árvores de entrada. Especificamente, o problema da superárvore de RF busca uma superárvore binária que minimiza a soma das distâncias de RF da superárvore às árvores de entrada. Assim, uma superárvore RF é uma superárvore consistente com o maior número de clusters (ou clades) das árvores de entrada.

Resultados

Apresentamos heurísticas de hill-climbing eficientes, baseadas em busca local para o problema de superárvore de RF intrinsecamente difícil em árvores enraizadas. Essas heurísticas usam novos algoritmos não triviais para os problemas de busca local SPR e TBR que melhoram a complexidade de tempo das soluções mais conhecidas (ingênuas) por um fator de Θ (n) e Θ (n 2) respectivamente (onde n é o número de taxa, ou folhas, na superárvore). Usamos uma implementação de nossos novos algoritmos para examinar o desempenho do método RF superárvore e compará-lo com a representação de matriz com parcimônia (MRP) e o método tripleto superárvore usando quatro conjuntos de dados superárvore. Nossa heurística de RF não apenas forneceu estimativas rápidas de superárvores de RF em todos os conjuntos de dados, mas as superárvores de RF também retiveram mais informações das árvores de entrada (com base na distância de RF) do que os outros métodos de superárvore.

Conclusões

Nossas heurísticas para o problema da superárvore RF, com base em nossos novos algoritmos de busca local, tornam possível, pela primeira vez, estimar grandes superárvores otimizando diretamente a distância RF das árvores de entrada enraizadas às superárvores. Isso fornece um método novo e rápido para construir superárvores precisas. As superárvores de RF também podem ser úteis para estimar as superárvores de regra da maioria (-), que são uma generalização das árvores de consenso de regra da maioria.


Definições e Notação

Ao longo do resto do artigo, presumimos que recebemos um conjunto de filogenias T1, T2, …, Tn com um conjunto compartilhado de vértices de folha eu. A exigência de que todas as filogenias compartilhem exatamente o mesmo conjunto de folhas não é estritamente necessária, mas é mantida para facilitar a apresentação. Dado o conjunto de filogenias alternativas T1, T2, …, Tn e folhas eu, uma meta-árvore é uma árvore sem raiz com n deixa de forma que a Figura 1 mostra um exemplo simples. Ao longo do artigo, chapéus sobrescritos são usados ​​para distinguir "meta-objetos" de suas contrapartes, então, por exemplo, um vértice em uma filogenia será denotado v, enquanto um vértice em uma meta-árvore será denotado por ⁠. Meta-árvores serão desenhadas em figuras com círculos vazios nos nós.

cada vértice em tem associado a ele uma espécie de árvore com folhas eu, e

os vértices das folhas estão associados às árvores T1, …, Tn .


Discussão

Construímos as primeiras redes neurais residuais profundas para a tarefa de inferir filogenias de quarteto a partir de alinhamentos de sequência de aminoácidos. Treinamos essas redes residuais em dados de sequência simulados e mostramos que os preditores treinados têm um bom desempenho em dados de teste simulados de forma semelhante. Descobrimos que nossos preditores de rede residual se comparam favoravelmente com métodos filogenéticos de última geração em uma variedade de esquemas de evolução de sequência diferentes e intervalos de parâmetros de árvore. Especificamente, nossos preditores superam todos os métodos existentes examinados em árvores difíceis de quarteto do LBA, envolvendo extensas heterogeneidades de local e tempo na evolução. A verificação de sanidade usando conjuntos de dados filogenéticos reais valida nossos preditores e não revela nenhum sinal de ajuste excessivo aos esquemas de treinamento. Árvores de quarteto inferidas por nossos preditores de rede neural residual podem ser usadas pelo quebra-cabeça do quarteto para montar árvores grandes, que parecem ser tão ou até mais confiáveis ​​do que árvores grandes construídas pelos métodos existentes. Assim, treinar redes neurais residuais em dados filogenéticos heterogêneos gerados por simulação computacional mostra-se uma solução promissora para a dificuldade atual neste campo. Com base nos desempenhos em todas as análises, formulamos o DNN3 em um programa de inferência filogênica pronto para uso denominado PhyDL (https://gitlab.com/ztzou/phydl acessado pela última vez em 3 de janeiro de 2020).

O processo de treinamento fornece informações interessantes sobre como redes residuais aprendem gradualmente a extrair sinais filogenéticos de alinhamentos de sequência. No processo de treinamento de dnn1, enquanto a capacidade de inferir árvores de quarteto normais foi adquirida rapidamente em 10 épocas, a capacidade de resolver árvores LBA foi adquirida muito mais lentamente (fig. 1b). Por exemplo, a capacidade de dnn1 para resolver árvores LBA não era maior do que a do método MP (1.078 árvores corretas por 2.000 árvores testadas) antes de 100 épocas. A melhora notável na capacidade de resolução de LBA de dnn1 ocorreu entre 100 e 200 épocas (fig. 1b). No processo de treinamento do dnn3, a precisão na resolução de árvores do LBA permaneceu em torno do nível de MP (867 árvores corretas por 2.000 árvores testadas) por ∼700 épocas antes de seu rápido aumento e eventual superação do nível mais alto entre todos os métodos existentes, 1.230 árvores corretas de 2.000 testes por PhyML (fig. 1b). Esses padrões de aprendizagem passo a passo sugerem a possibilidade de que redes residuais primeiro capturem sinais filogenéticos diretos que também podem ser captados por métodos simples como MP e, em seguida, aprendam a extrair sinais de processos evolutivos complexos de Markovian.

Apesar dos critérios de otimização simples de MP e NJ, para a maioria dos conjuntos de dados de árvore normais deste estudo, esses dois métodos superam o ML e o BI, mesmo quando o processo evolutivo é relativamente complexo. Isso provavelmente ocorre porque os alinhamentos com quatro táxons não fornecem informações suficientes para a estimativa precisa de parâmetros de modelos evolutivos complexos, o que poderia ocorrer na realidade. Nesse sentido, nossos preditores de rede residual são vantajosos porque não dependem dos dados focais para parametrizar o modelo. Além disso, os programas de ML e BI comumente usados ​​não consideram a heterogeneidade do tempo na evolução da sequência, conseqüentemente, seu desempenho pode ser severamente prejudicado devido à falta de especificação do modelo ou insuficiência em face de heterogeneidades extensas. Em contraste, o aprendizado profundo permite que um preditor adquira a habilidade de inferir árvores, mesmo quando a evolução da sequência é altamente heterogênea. Mais importante, os preditores de rede residual não requerem especificação a priori de modelos de evolução de sequência mecanística durante o treinamento, aliviando o risco de especificação incorreta do modelo.

Além de sua precisão de inferência, as redes neurais profundas em execução em unidades de processamento gráfico (GPUs) também são eficientes em termos de tempo ao inferir árvores. Para avaliar a velocidade de predição, inferimos a topologia de 100 árvores de quarteto simuladas com comprimento de sequência de 2.000 aminoácidos e todos os comprimentos de ramificação igual a 1 (testtime_01 na tabela suplementar S2, Material Suplementar online). Em um núcleo de unidade de processamento central (CPU) Intel Xeon W-2133 (3,6 GHz), os algoritmos NJ e MP implementados em MEGA gastaram 0,077 se 0,127 s, respectivamente, para uma árvore média, enquanto RAxML, PhyML e MrBayes gastaram 2,81 s, 7,82 s e 41,7 s, respectivamente. No mesmo núcleo da CPU, os preditores de rede residuais usam em média 0,146–0,154 s por árvore, mais lento do que NJ e MP, mas mais rápido do que ML e BI. No entanto, usando o núcleo da CPU junto com uma placa gráfica Nvidia Titan Xp, nossos três preditores gastaram 0,053–0,055s por árvore, mais rápido do que qualquer método existente comparado aqui. O custo de tempo total para 100 árvores variou de 9,7 s a 9,9 s para nossos preditores, incluindo o tempo remanescente de carregamento dos preditores na GPU. A utilização de cálculo acelerado por GPU por redes neurais profundas pode atingir alta eficiência em tarefas de inferência filogenética massiva, independentemente do uso de servidores públicos ou computadores pessoais devidamente configurados.

Apesar da precisão geralmente alta, nossos preditores de rede residuais falham em superar o desempenho dos melhores métodos existentes em algumas condições. No entanto, na prática, não se sabe qual método existente tem o melhor desempenho para um determinado conjunto de dados porque a árvore verdadeira subjacente é desconhecida. Em nossas análises, por exemplo, NJ e MP obtêm bom desempenho em árvores normais, mas mostram precisões mais baixas em árvores LBA, enquanto o oposto é verdadeiro para ML. O fato de nossos preditores de rede residuais terem um desempenho geral superior sugere que eles podem ser aplicados para diversas tarefas de inferência de árvore quando usados ​​sozinhos ou combinados com o quebra-cabeças de quarteto.

Nos últimos anos, vimos várias aplicações de aprendizagem profunda em genética populacional e evolutiva (Sheehan e Song 2016 Kern e Schrider 2018). Quando estávamos preparando este manuscrito, Suvorov e colegas relataram a implementação e o treinamento de um CNN profundo para inferir árvores de quarteto a partir de sequências de DNA (Suvorov et al. 2019). Como nosso preditor foi treinado em sequências de proteínas, enquanto o deles foi treinado em sequências de DNA, os desempenhos dos dois preditores não podem ser comparados diretamente. No entanto, várias diferenças são aparentes. Primeiro, usamos redes neurais residuais, que, em comparação com a CNN tradicional usada por Suvorov et al., Permitem estruturas de rede mais profundas sem sofrer o efeito de "gradientes de desaparecimento", portanto, podem potencialmente alcançar um melhor aprendizado de processos de evolução complexos (He et al. . 2016). Na verdade, nossas redes têm 16 camadas de convolução, enquanto as redes de Suvorov et al. Têm oito. Em segundo lugar, Suvorov et al. simulou alinhamentos com lacunas e sem lacunas e mostrou que a vantagem de seu preditor sobre os métodos existentes é principalmente lidar com lacunas. Simulamos apenas alinhamentos sem lacunas e descobrimos que nosso preditor supera os métodos existentes, mesmo na ausência de lacunas. Terceiro e mais importante, nosso preditor tem um bom desempenho não apenas em simulados, mas também em dados filogenéticos diversos e reais, enquanto o preditor de Suvorov et al. Ainda não foi avaliado em dados reais. Esta diferença é especialmente relevante porque os dados reais têm heterogeneidades de local e tempo, bem como variações de comprimento de sequência, que foram incluídas em nossos dados de treinamento, mas não em Suvorov et al. Observe que a implementação de redes neurais residuais para resolver árvores de quarteto é prontamente aplicável aos dados de sequência de nucleotídeos, e será de interesse desenvolver preditores de rede residual para sequências de nucleotídeos em um futuro próximo.

Árvores de quarteto são as menores árvores possíveis, e aqui tratamos a inferência de árvore de quarteto como uma tarefa de classificação porque apenas três topologias de árvore possíveis existem para quatro táxons. No entanto, com um número arbitrário de N taxa, o número de topologias possíveis pode ser astronômico. Conseqüentemente, embora tenhamos mostrado a aplicabilidade das previsões de redes neurais residuais para inferência de grandes árvores quando combinadas com o quebra-cabeças do quarteto, a própria estrutura da rede está inerentemente confinada a resolver árvores de pequenos números fixos de taxa. Para desenvolver um preditor de aprendizado profundo com generalização inata para N- inferência da árvore de impostos, provavelmente precisaremos de uma metodologia de previsão de estrutura, que requer formulações de rede mais complicadas (Joachims et al. 2009) e estratégias de aprendizagem mais avançadas. Dado o sucesso do aprendizado profundo para inferência de árvore de quarteto demonstrado aqui, estamos cautelosamente otimistas de que o aprendizado de máquina melhorará a reconstrução filogenética em geral e, portanto, exigirá mais estudos nesta área promissora.


Discussão

Introduzimos uma abordagem baseada no espectro do grafo Laplaciano para reduzir árvores filogenéticas não rotuladas às suas propriedades constituintes. Mostramos como calcular os perfis de densidade espectral de filogenias e como usar esses perfis para caracterizar, comparar e agrupar árvores, bem como encontrar modos distintos de divisão dentro delas. Isso fornece uma estrutura abrangente para (i) resumir as informações contidas nas filogenias, (ii) identificar semelhanças e dissimilaridades entre as árvores, e (iii) selecionar padrões de ramificação distintos dentro de árvores individuais, sem fazer qualquer a priori suposições sobre o comportamento subjacente. A capacidade desta abordagem para analisar árvores não ultramétricas, em particular, preenche uma lacuna amplamente vazia no campo da dinâmica da diversificação.

Abordagens para resumir informações filogenéticas são necessárias em vários domínios das ciências biológicas. Eles são necessários para estudar a diversidade filogenética nos mundos macro e microbiano (Faith 1992 Lozupone e Knight 2008), para medir o quão intimamente as espécies relacionadas estão em assembléias comunitárias (Webb et al. 2002), para compreender como a diversificação varia no tempo e entre linhagens (Morlon 2014) e para rastrear a diversidade genealógica de doenças infecciosas ao longo do tempo (Vijaykrishna et al. 2014). Essas abordagens também são particularmente úteis na modelagem filogenética, onde nos permitem avaliar o quão próximo um modelo ecológico, epidemiológico ou macroevolutivo específico reproduz árvores empíricas. A capacidade fornecida por abordagens que resumem informações filogenéticas para quantificar a distância entre as árvores nos permite medir a distância entre as árvores simuladas sob um modelo específico e árvores empíricas, o que é crucial para o ajuste de abordagens como Computação Bayesiana Aproximada (Janzen et al. 2015) ou simulações preditivas posteriores (Lewis et al. 2014).

Dada a importância de resumir as informações contidas nas árvores filogenéticas, nosso estudo não é a primeira tentativa de fazê-lo. No entanto, nossa abordagem é sem precedentes na medida em que as densidades espectrais são responsáveis ​​por quase toda a estrutura filogenética: para árvores de tamanho intermediário, nenhuma (ou mínima) informação é perdida na forma da árvore ao expressar uma filogenia como sua densidade espectral. É, portanto, superior às estatísticas de resumo propostas anteriormente, que se limitam a certas propriedades da árvore resumidas por uma única estatística. Quando reduzido às suas propriedades constituintes (ou seja, principal λ ⁠, assimetria e curtose), o perfil de densidade espectral ainda consegue identificar melhor os tipos de diversificação entre as árvores do que uma combinação das estatísticas de resumo tradicionais mais amplamente utilizadas. Uma vantagem adicional dos perfis de densidade espectral em comparação com muitas estatísticas de resumo tradicionais é que eles podem ser calculados independentemente de a árvore ser datada, ultramétrica ou totalmente resolvida.

Existem muitas aplicações potenciais de nossa abordagem. Por exemplo, assumindo que a coevolução e a codiversificação levam a semelhanças nos padrões de ramificação, os clados submetidos à codiversificação podem ser identificados com base nas semelhanças em seus perfis de densidade espectral sem qualquer a priori informações sobre sua interação. Isso poderia ser particularmente útil no caso de micróbios e vírus, para os quais as interações e coevolução não podem ser observadas diretamente na natureza. Em vírus, especialmente, as semelhanças nos perfis de densidade espectral podem ser usadas para identificar a convergência entre as linhagens, onde a diversificação pode ser conduzida por, por exemplo, um parâmetro ecológico, adaptação de característica ou mesmo substituição específica do local. A este respeito, nossas análises para os vários padrões de diversificação em cepas de influenza A - embora sejam feitas aqui apenas para fins ilustrativos e devam ser tomadas com cautela - são de algum interesse.

Encontramos efeitos diferenciais de segmento de proteína, hospedeiro e país de origem na diversificação da influenza A. Para a maioria dos segmentos do vírus, os padrões de diversificação são semelhantes, embora haja diferenças marcantes entre HA e NA e outros segmentos. Esses dois segmentos mostram valores médios significativamente mais altos para λ principal e altura de pico, indicativo de diversificação altamente expandida e desequilibrada, o que corrobora observações anteriores de taxas de substituição especialmente altas nessas proteínas (Bhatt et al. 2011). Ao contrário do trabalho anterior, no entanto, não encontramos semelhanças nos perfis de densidade espectral de HA e M1, que foram sugeridos por terem histórias filogenéticas comparáveis ​​devido à sua interação durante a montagem viral (Rambaut et al. 2008). Embora esses segmentos possam ser mecanicamente interdependentes, a variação considerável entre seus padrões de diversificação sugere que suas estratégias de coevolução, embora compatíveis, não são equivalentes. Finalmente, as diferenças excepcionais entre HA e PB2, em particular, com o primeiro exemplificando árvores desproporcionalmente mais expansivas, desequilibradas e estaminais do que aquelas construídas com o último, evidenciam trajetórias evolutivas distintas para duas proteínas em um único vírus, bem como fortes restrições nessas trajetórias através de hospedeiros filogenéticos distantes. Além disso, vemos uma influência significativa do país de origem nos padrões de diversificação dentro de cada hospedeiro, onde cepas do mesmo país se diversificam de forma mais semelhante do que o esperado ao acaso. No entanto, para os perfis de densidade espectral padrão e normalizado, o único impacto mais forte na forma da diversificação do vírus é o animal hospedeiro. Esses resultados ilustram a utilidade de nossa abordagem para lidar com árvores não ultramétricas e para explorar o comportamento de diversificação de muitos organismos anteriormente indisponíveis para hipóteses macroevolucionárias.

Encontrar mudanças nos processos de diversificação é um grande interesse na macroevolução. Métodos para identificar mudanças de taxa em árvores (por exemplo, Alfaro et al. 2009 Shah et al. 2013 Rabosky 2014) foram inestimáveis ​​no estabelecimento, por exemplo, de radiações adaptativas em grandes clados (Alfaro et al. 2009 Shi e Rabosky 2015). Apresentamos a heurística eigengap, uma abordagem para encontrar diferentes modos de diversificação dentro de uma única árvore. Nossa abordagem mostra um sucesso considerável - embora imperfeito - na recuperação de mudanças de taxa em árvores simuladas, comparável (ou superior) aos métodos mais amplamente usados. Mas é importante enfatizar que a diferença analítica nesta abordagem indica uma diferença conceitual também: a heurística eigengap não identifica estritamente mudanças de taxa na árvore, mas identifica ramos de processos de diversificação semelhantes. Portanto, não é surpreendente que tenha um desempenho inferior, ainda que ligeiramente, em comparação com um método existente na identificação de mudanças na taxa de diversificação, mas supere o mesmo método na identificação de mudanças no padrão de diversificação. A heurística eigengap, portanto, se distingue por seu poder de reconhecer modos de padrões de diversificação presentes em uma árvore. Nossa ilustração dessa abordagem com uma árvore arqueada demonstra como a heurística eigengap pode ser usada para localizar populações de espécies microbianas em evolução díspar em um único ambiente (neste caso, Lago Dagow). Especificamente, ele revela subárvores com padrões de diversificação consideravelmente diferentes, que não variam por parentesco filogenético.

A maior parte do trabalho teórico-gráfico anterior em filogenética concentrou-se no desenvolvimento de métodos para estimar o "espaço da árvore" que diferentes hipóteses para a mesma árvore filogenética ocupam (Hillis et al. 2005 Huang e Li 2013 Whidden e Matsen 2015). Esses métodos têm sido muito bem-sucedidos e pensamos que, avaliando a congruência das densidades espectrais para diferentes árvores baseadas em genes para a mesma árvore de espécies, nossa abordagem também pode ser útil para estimar intervalos de confiança para árvores. Da mesma forma, pode ser possível investigar a coevolução de características (e genes) com base nas (dis) semelhanças entre os perfis de densidade espectral de árvores de características (e árvores de genes) amostradas da mesma espécie. Geralmente, comparar os perfis de densidade espectral para muitas filogenias, sejam elas amostradas ou não da mesma árvore de espécies, é útil para identificar padrões característicos de diversificação, bem como limites naturais para esses padrões.

Existem também muitas variações potenciais em nossa abordagem. Nós ilustramos a abordagem em árvores bifurcadas, mas a matriz de grau pode assumir qualquer forma, de modo que árvores reticuladas (ou seja, redes filogenéticas) também podem ser analisadas. Árvores reticuladas até agora têm sido amplamente inavegáveis ​​por técnicas filogenéticas convencionais e, como resultado, os estudos de filogenias microbianas normalmente assumem que as árvores são bifurcadas (Martin et al. 2004), o que muitas vezes não é preciso dado o nível de transferência lateral de genes no mundo microbiano. Dado que os micróbios constituem a maior parte da biodiversidade do planeta, é fundamental desenvolver tais abordagens.

Finalmente, existem muitas extensões potenciais de nossa abordagem. Por exemplo, Laplacianos de gráfico são usados ​​na dinâmica de sincronização (McGraw e Menzinger 2008) para analisar se e como uma determinada parte de uma rede afeta a dinâmica de outras partes dessa rede. Aplicado a filogenias, isso poderia permitir a análise dos efeitos de interação de alguns clados sobre outros. Existem também técnicas de geometria diferencial, baseadas na chamada fórmula do traço (Horton et al. 2006), que poderiam ser utilizadas para analisar o comportamento de suítes de densidades espectrais, como as densidades espectrais medidas para uma árvore em momentos diferentes de sua origem. Essas análises podem nos informar sobre a evolução de um clado. Uma terceira extensão potencial seria usar gráficos assinados, onde uma matriz assinada mapeia dados nas bordas do gráfico Laplaciano (Shames et al. 2014) para analisar como certas informações não codificadas na filogenia molecular (por exemplo, distância geográfica ou fenotípica) afeta as estruturas locais na árvore.

Nós desenvolvemos uma abordagem, implementada em um software amigável, que dá aos pesquisadores acesso a questões mal atendidas pelas técnicas filogenéticas atuais.


Como interpretar a distância de Robinson-Foulds ponderada entre filogenias? - Biologia

Análises filogenômicas locais automatizadas, ou ALPHA, é um aplicativo baseado em python que fornece uma interface de usuário intuitiva para análises filogenéticas e visualização de dados. Possui quatro modos distintos que são úteis para diferentes tipos de análise filogenética: RAxML, File Converter, MS Comparison e D-statistic.

O modo RAxML oferece aos usuários um front-end para interagir com RAxML (STAMATAKIS 2014a) para inferência baseada em Máxima Verossimilhança de grandes árvores filogenéticas. O modo RAxML do ALPHA permite usar o RAxML para realizar automaticamente a análise de janela deslizante sobre um alinhamento inserido. Os usuários podem selecionar entre uma infinidade de opções na execução de suas análises, incluindo: tamanho da janela, deslocamento da janela e número de bootstraps. Neste modo, os usuários são capazes de produzir uma variedade de gráficos para ajudar a entender seu alinhamento genômico e interpretar as árvores geradas pelo RAxML. Essas opções de gráfico incluem: uma visualização em árvore das topologias principais, gráfico de dispersão das janelas para suas topologias, frequência das topologias principais, um gráfico de linha das janelas para a porcentagem de sites informativos e um mapa de calor dos sites informativos. O modo RAxML também fornece suporte para o cálculo de duas estatísticas com base nas árvores produzidas em cada janela em comparação com uma árvore de espécie geral: distância de Robinson-Foulds e a probabilidade de uma árvore de gene dada uma árvore de espécie.

O conversor de arquivo em ALPHA fornece uma interface de usuário para uma função de conversor de arquivo Biopython AlignIO. Ele permite que os usuários convertam entre doze tipos de arquivo de alinhamento de genoma populares. O modo RAxML aceita apenas o formato phylip-sequential. O modo MS Comparison permite aos usuários realizar uma comparação precisa entre um “arquivo verdade” e um ou mais arquivos no formato MS ou os resultados do modo RAxML. Com o modo de estatística D, os usuários podem calcular a estatística D de Patterson para determinar a introgressão em um alinhamento de quatro táxons. O modo de estatística D produz um gráfico de dispersão do valor da estatística D nas janelas deslizantes, bem como o valor da estatística D em todo o alinhamento.

ALPHA atualmente é executado em sistemas operacionais Mac e Windows e seleciona o sistema operacional adequado automaticamente. Python 2.7.13 e Java são necessários para esta GUI, junto com as bibliotecas adicionais: BioPython, DendroPy, ETE, Matplotlib, natsort, PIL, PyQt4, ReportLab, SciPy, Statistics e SVGUtils. RAxML também é necessário para realizar análises no modo RAxML.

Evite caracteres especiais, como diacríticos, espaços e pontuação que não sejam pontos (“.”) E sublinhados (“_”) nos nomes da pasta ALPHA e em todos os arquivos de entrada.

No modo RAxML, existem duas seções de análise contendo preferências para ajustar as estatísticas. Na seção Executar RAxML, o usuário seleciona um arquivo no formato phylip-sequential e modifica as opções nas configurações Standard ou Advanced RAxML para se ajustar às suas preferências.

No modo padrão, o tamanho da janela, o deslocamento da janela e o número de topologias principais a serem analisadas podem ser inseridos manualmente como números inteiros maiores que um. O tipo de modelo pode ser selecionado a partir de seis tipos populares. Bootstrapping também pode ser selecionado se for, o usuário pode inserir o nível de confiança e o número de bootstraps a serem executados. O usuário também pode escolher enraizar a árvore em um grupo externo específico no arquivo de entrada.

No modo avançado, o usuário pode inserir um comando RAxML customizado no qual os sinalizadores -s e -n são manipulados internamente. Uma árvore de espécies com ou sem raiz também pode ser gerada neste modo usando um comando RAxML personalizado ou simplesmente clicando em Gerar, que executa RAxML em todo o alinhamento.

Para obter mais informações sobre RAxML e seus comandos, consulte o manual RAxML.

Depois de executar o RAxML, o usuário pode entrar na seção Gerar Figuras e selecionar qualquer um dos seguintes: Visualização da árvore das topologias principais, Gráfico de dispersão das topologias das janelas para as topologias, Gráfico de rosca da frequência da topologia da topologia, Gráfico de linhas das janelas para sites informativos, Mapa de calor dos sites informativos, Gráfico de Dispersão de Distância de Robinson-Foulds ponderado e / ou não ponderado e a Probabilidade de uma Árvore Genética dada o Gráfico de Dispersão da Árvore de Espécies. O usuário também pode especificar quantas topologias principais deseja analisar e inserir um arquivo de árvore de espécies ou string em Opções de gráfico.

A visualização da árvore de topologias superiores gera uma imagem contendo as filogenias locais de ocorrência mais frequente geradas pela execução de RAxML em janelas do tamanho especificado anteriormente. A visualização também inclui o número de vezes que cada topologia ocorre.

O gráfico de dispersão de janelas para topologias superiores mostra as janelas nas quais cada filogenia local ocorre e representa o eixo x como o número da janela e o eixo y como a topologia.

O Topology Frequency Donut Plot é um gráfico que mostra o número de vezes que cada topologia ocorre, topologias diferentes das topologias principais são agrupadas e categorizadas como "Outra".

Gere a visualização da árvore das topologias principais, o gráfico de dispersão das janelas para as topologias principais e o gráfico de rosca de frequência da topologia superior ao mesmo tempo para garantir que as cores das topologias correspondam às cores usadas nos gráficos.

O gráfico de linhas de janelas para sites informativos mostra como a porcentagem de sites informativos difere em cada janela. As janelas estão no eixo x, e a porcentagem de sites informativos está no eixo y.

O Mapa de calor de sites informativos descreve a capacidade de informação de cada site nos dados. Se um site for informativo, há uma linha preta. Quanto mais informativo o site, mais espessa é a linha no mapa de calor.

O gráfico de dispersão de distância de Robinson-Foulds descreve a distância de Robinson-Foulds entre a filogenia local e a árvore da espécie. O usuário pode optar por gerar o Gráfico de Dispersão de Distância Robinson-Foulds Ponderado, que leva em consideração os comprimentos dos ramos, ou pode gerar os gráficos ponderados e não ponderados, não marcando a opção Ponderado.

A probabilidade de uma árvore gênica dada o gráfico de dispersão da árvore de espécies mostra a probabilidade da filogenia local em uma janela realmente ocorrer dada a árvore de espécies inserida.

O modo Conversor de arquivos permite ao usuário selecionar um arquivo contendo alinhamentos de DNA em um dos doze formatos populares e convertê-los em um formato de arquivo diferente. Depois de selecionar o arquivo de entrada e seu formato, o usuário deve especificar o nome e a localização do arquivo de saída junto com o formato desejado.

Para obter mais informações sobre os tipos de arquivo, consulte BioPython AlignIO.

No modo MS Comparison, o usuário pode especificar um arquivo verdade MS e o diretório RAxML e / ou outros arquivos MS para compará-lo. Este modo tem opções para gerar números para a distância Robinson-Foulds do gráfico da barra da verdade do MS, gráfico da barra dos sites de correspondência percentual e gráfico de linha TMRCA.

Ao comparar com o diretório RAxML, o usuário tem a opção de inserir o diretório que contém os arquivos RAxML e escolher o tamanho da janela e o deslocamento. Esta função deve ser usada após realizar a análise de janela deslizante no modo RAxML do ALPHA.

Ao comparar o arquivo verdade com outros arquivos MS, o usuário pode inserir vários arquivos MS para comparação.

O gráfico de distância de Robinson-Foulds do MS Truth Bar representa a diferença total entre as árvores no arquivo verdade e outros arquivos escolhidos para comparação.

O gráfico da barra de porcentagem de correspondência de sites mostra a porcentagem de sites no (s) arquivo (s) de comparação que contêm árvores que correspondem ao arquivo verdade para análises ponderadas e não ponderadas. A distância Robinson-Foulds é usada para determinar se uma árvore é considerada compatível ou não.

O gráfico de linha TMRCA mostra a altura da árvore sobre cada site ao comparar os arquivos verdade e outros arquivos. Esta figura tem como objetivo representar as diferenças no tempo até o ancestral comum mais recente (TMRCA) entre cada arquivo.

O modo de estatística D permite ao usuário inserir um arquivo de alinhamento no formato phylip-sequential, escolher o tamanho e deslocamento da janela e selecionar a localização de cada grupo externo no visual da árvore. Este modo então gera a estatística D geral e um gráfico de dispersão em que o eixo x é o número da janela e o eixo y é o valor da estatística D calculado para essa janela.

Para obter mais informações sobre a Estatística D e seu uso, consulte:
Green et al. (2010), Durand et al. (2011), Martin et al. (2014)

O ALGORITMO DE D GEN E A GUI FIZERAM UMA REVISÃO PRINCIPAL. THESE INSTRUCTIONS WILL BE UPDATED VERY SOON ALONGSIDE AN ACCOMPANYING PAPER DETAILING THE NEW ALGORITHM. THANK YOU FOR YOUR PATIENCE.

ALPHA’s generalized D statistic has many different inputs to cover a range of user preferences. This section will go over each input and its usage in both the user interface and command line script.

To run the command line version of the generalized D statistic cd into the CommandLineFiles directory and use the following command with one’s desired parameters. All possible parameters are listed below along with their default values for the command line script. Note: not all of these parameters can not be called at the same time.

python -c "from CalculateGeneralizedDStatistic import * calculate_generalized(alignments, species_tree=None, reticulations=None, outgroup=None, window_size=100000000000, window_offset=100000000000, verbose=False, alpha=0.01, use_inv=False, useDir=False, directory="", statistic=False, save=False, f="DGenStatistic_", plot=False, meta=False)"

Below we go through a description of each parameter and its usage in both the command line and GUI version of ALPHA:

Alignments: command line - a list of phylip alignment files, example: [‘C:/Users/example/ALPHA/exampleFiles/6TaxaExample’, ‘C:/Users/example/ALPHA/exampleFiles/6TaxaExample2’] GUI - click the three dots next to the “Alignment” box and select a phylip file, if multiple files are desired click the plus sign below “Alignment” and select another file

Species_tree: Command line - a newick string with leaf names matching the taxa in the alignment file, example: ‘((((P1,P2),(P3,P4)),P5),O)’ users can also input the location of a file containing a newick string GUI - use either the “species tree file” or “species tree newick” option. The “species tree file” option allows a user to input a file containing a newick string. The “species tree newick” option allows a user to type their newick string directly into the user interface

Reticulations: Command line - a list of reticulations to use where each reticulation represents the direction of possible gene flow, example: [(‘P2’,’P3’),(‘P4’,’P5’)] a statistic generated by this list of reticulations would determine which site patterns would have an increased probability using a species network with gene flow from P2 to P3 and P4 to P5. GUI - after inputting an alignment file users can select taxa using the drop down menu in the “Reticulations” section. Taxa on the left represent the source of gene flow while the right taxa are the sink. To add more reticulations to the desired statistic click the plus sign and repeat the steps above.

Window size: Command line - an integer denoting the window size to be used when calculating the generalized D statistic with sliding windows GUI - input the desired window size as an integer in the textbox next to “Window Size:”. Note that a plot of the windows to their generalized D statistic can be generated easily using the checkbox next to “Generate Plot” under “Options”

Window offset: Command line - an integer denoting the offset to be used for performing sliding window analysis, note that using a window offset equal to the window size results in consecutive windows GUI - input the desired window offset as an integer in the textbox next to “Window offset:”. Note that a plot of the windows to their generalized D statistic can be generated easily using the checkbox next to “Generate Plot” under “Options

Verbose: Command line - a boolean True or False corresponding to using or not using the verbose output, respectively. Verbose mode includes further information like: the counts for each site pattern, the chi-squared statistic used for determining significance and the probability of each site pattern GUI - after completing a run of the statistic users can toggle between the verbose and the standard output by clicking “View Verbose Output” in the bottom right corner of the interface

Alpha: Command line - a decimal value less than 1 corresponding to the significance level used for hypothesis testing, note that this value is defaulted to 0.01 (1% significance level) GUI - users can specify their significance level using the textbox next to “Alpha:”

Use_inv: Command line - a boolean True or False corresponding to using or not using the inverse site patterns in a statistic, note that at higher taxa using site patterns is not recommended GUI - users can choose to use inverse site patterns using the checkbox next to “Use Inverse”

Use_dir: Command line - a boolean True or False corresponding to using an entire directory of fasta or phylip alignments for performing calculating the generalized D statistic. These files are concatenated in order based on the file name. Note that when True this MUST be used with the directory command explained below GUI - to use an entire directory click the “Use Directory” checkbox then click the three dots next to the “Alignment Directory:” textbox and select the desired directory

Directory: Command line - a string containing the location of the desired directory for more information see use_dir GUI - see use_dir

Statistic: Command line - a string with the file location of a previously saved statistic, meant to be used in conjunction with the save and f commands from a previous run GUI - click the “Load Previously Generated Statistic” checkbox then choose the desired statistic file using the three dots next to the “Statistic:” textbox. Note: using a previously saved statistic allows users to not input a species tree, outgroup and reticulations

Save: Command line - a boolean True or False corresponding to creating a save file for future runs (see statistic), can be used with the “f” parameter GUI - users can specify a save file name and location using the “Statistic Save Location:” textbox. Users can input a file name directly into the textbox to save their statistic in the ALPHA directory or can click the 3 dots and select a folder then add a slash and the desired name of their file. Example: to ‘C:/Users/example/Desktop’ one would add ’/DGenStatistic’ so that the entry in the textbox would be ‘C:/Users/example/Desktop/DGenStatistic’

f: Command line - a string corresponding to the desired filename for a saved statistic, must be used with “save” parameter. Note: if “f” is not used with “save” the statistic is saved as “DGenStatistic.txt” GUI - see “save” parameter

Plot: Command line - a boolean True or False corresponding to creating a matrix formatted output file with columns for the window number, generalized D value and True or False based on its significance. This parameter is meant make it easy for users to parse and plot the results using their preferred software (R, Excel, etc.) GUI - in order to automatically generate a windows to generalized D value plot click the checkbox next to “Generate Plot”

Meta: Command line - a string corresponding to any metadata that a user may wish to include in their plot formatted output (see “plot”). This parameter must be used with plot GUI - this feature is not available in the ALPHA GUI.

Finally, if you have already generated and saved a DGEN statistic, simply launch the dgen tool and select an alignment you wish to analyze. Then select the "Load Previously Generated Statistic" checkbox along with selecting the statistic file itself at the location it has been saved on your computer. Then set the window size and offset and optionally change the alpha significance cutoff parameter. To see a graphical output of a plot of the generalized D value versus the windows along the alignment, simply check the "generate plot" checkbox.

The Smooth Winds page has been created with an accompanying command line script. This documentation will be soon updated alongside a companion publication. Thank you for your patience in the mean time.

All output files are automatically saved in various folders in ALPHA. Windows that are created by RAxML are outputted into the “windows” folder, and are saved as “window0.phylip”, “window1.phylip”, etc. Files outputted by running RAxML are found in the “RAxML_Files” directory. When bootstrap analysis is chosen these files are saved under “RAxML_bestTree”, “RAxML_bipartitions”, “RAxML_bipartitionsBranchLabels”, “RAxML_bootstrap”, and “RAxML_info”. When bootstrapping is not chosen these files are named “RAxML_bestTree”, “RAxML_randomTree”, “RAxML_result”, “RAxML_log”, and “RAxML_info”. Each of these files has “.0”, “.1”, “.2”, etc. extensension corresponding to the index of the window that RAxML was run on. All graphs and images are automatically saved into the plots folder under the name of the image.

For more information regarding the RAxML output files see the RAxML manual.

Download the RAxML source code in a zip folder.

Open a terminal window and 'cd' into the RAxML directory.

If the second and last commands show the version, proceed. Otherwise, check the Common Installation Errors below.

If the command returns "Python 2.7.13" skip to step 3. Otherwise proceed.

Rerun the above command. If it still shows an older version after downloading and installing the new version, fully close and reopen your terminal. See Common Installation Errors if problems persist.

If any errors occur, see the Common Installation Errors section.

Alternate method: Download the SIP source files, unzip and cd into the repo then run (with the virtual environment activated)

Install and create a virtual environment wrapper.

NOTE: Make sure that your virtual environment is activated anytime you use the pip command or run the project (with the python command).

Install remaining dependencies with PIP.

In terminal (with the virtual env activated) run:

Download the source code of this repo as a zip.

To open ALPHA, run the following command in terminal:

See Common Installation Errors for fixes to any issues.

  • Run the setup installer in the section 'Current Cygwin DLL Version.'
  • In the 'Choose a Download Site' section of the installer, select the first download site in the list. This is listed as http://cygwin.mirror.constant.com.
  • Run the setup installer in the section 'Graphical User Interface Installer.'
  • In the MinGW Installation Manager that opens after installation, select the 'mingw32-base' and 'msys-base' packages and click 'Mark for Installation.'
  • Select the 'Installation' tab and click 'Apply Changes.'

Download the RAxML source code in a zip folder.

Open Cygwin and 'cd' into the directory.

In the Cygwin terminal run:

Open Command Prompt and run:

If both the Cygwin and Command Prompt commands show the version, proceed. Otherwise, check the Common Installation Errors section.

If the command returns "Python 2.7.13" skip to step 3. Otherwise proceed.

Rerun the above command. If it still shows an older version after downloading and installing the new version, fully close and reopen your terminal. See Common Installation Errors if problems persist.

Download the get-pip.py file.

Open a Command Prompt window and 'cd' into the directory containing the file.

Open a Command Prompt window and 'cd' into the directory containing the wheel file.

Run the following for Windows 64-bit:

Run the following for Windows 32-bit:

Install remaining dependencies with PIP.

Download the source code of this repo as a zip.

To open ALPHA, run the following command in terminal:

See Common Installation Errors for fixes to any issues.

Common Installation Errors

If prompted, install the latest verson of Xcode.

If you get an error with the last command when installing RAxML, run the following in place of the original 'cp' command:

Permissions Errors on Homebrew for Mac

If you have trouble installing Homebrew due to permissions errors, running the following command in Terminal in place of the original command fixes this issue:

Error: Command Not Recognized

IF you receive an error saying that a command (i.e. raxmlHPC, make, python, etc.) "is not recognized as an internal or external command, operable program or batch file," do the following:

The commands should work correctly after adding their program directories (ex. C:Python27) to your path.

Go to Control Panel > System > Advanced System Settings > Environment Variables.

Select 'Path' under the 'User variables for user' section and click 'Edit.' Add the directory destinations (ex. C:Python27Scripts) below.

Once you add the path(s) to your Environment Variables list and click 'OK,' close and reopen Command Prompt. The commands should now work correctly.

If you are having issues with Java not being recognized as a command, install the newest version of Java and use the above instructions to add it to your path if it is not automatically added.

'No module named SIP' or 'No module named PyQt4'

If you receive this error, run the following in terminal:

Download the SIP and PyQt4 source packages.

'cd' into the SIP directory, and run the following:

'cd' into the PyQt4 directory, and run the following:

After installing and opening ALPHA, you can use the drop down menu on the main page to select the mode you'd like to use.

Once you enter any of these modes, you can use the "Mode" drop down menu in the upper left corner to enter a different one.

Here, we use the provided example files (see the folder "exampleFiles" in the ALPHA directory) to show how to use the software.

  • If you select the Bootstrap option, input the desired confidence level and number of bootstraps to be run.
  • To root the tree, select the Rooted option. Use the drop down menu to select the desired outgroup.

  • If you select the Custom RAxML Command option, input your desired command without the -s and -n flags.
  • To generate a species tree:
    • If you select the Custom RAxML Command option, use the same parameters as above to input your command.
    • To root your species tree, select the Rooted option and select your desired outgroup with the drop down menu on the right.
    • Click the Generate button to create your species tree file.

    In this example, we generate a species tree by running RAxML over the entire alignment, which does not require additional inputs.

    After modifying these options to your preferences, click the Run RAxML button. The Generate Figures options will be available after you run RAxML.

    Select any number of the eight figures to generate. Aside from the informative sites heatmap RAxML must be run before generating these figures. Some of the figures require inputs in the Graph Options and Species Tree sections, so their necessary parameters are defined below:

    For Top Topologies Tree Visualization, Windows to Top Topologies Scatter Plot, and Top Topologies Frequency Donut Plot:

    • To ensure that the color coding for these visuals is correct, generate the three figures together.
    • Input the number of most frequently occurring topologies that you want to generate figures for in the Number of Top Topologies section under Graph Options.

    For Robinson-Foulds Distance Scatter Plot:

    • Input the species tree by selecting a file or inputting a newick string under the Species Tree section. You can generate a species tree for this by following the steps in the Advanced mode of Run RAxML. It is not necessary that the species tree is rooted.
    • If you select the Weighted option, ALPHA will generate the weighted Robinson-Foulds Distance Scatter Plot. Otherwise, it will generate both the weighted and unweighted graphs.
    • Input the Input the species tree by selecting a file or inputting a newick string under the Species Tree section. You can generate a species tree for this by following the steps in the Advanced mode of Run RAxML. The tree must be rooted to generate this plot.

    The informative sites heatmap provides a visualization of informative sites across an inputted alignment. Users can reduce the total number of sites that are used for the heatmap in order to speed up runs on extremely large files.

    Once you have selected the desired figures to be generated, click the Generate Figures button.

    To resize and manipulate the figures:

    • All figures generated in ALPHA use a Matplotlib output interface, allowing users to customize figures to their liking. Hovering one’s cursor over the icons at the bottom of each figure’s output window provides a short description of each icon’s usage. The following describes each button from left to right.

    • The home button reformats the plot to the default view.
    • The left arrow button changes the plot to its previous view.
    • The right arrow button changes the plot back to its former view if the previous view is selected.
    • The arrow cross button allows users to change the view of the figure by panning across the plot.
    • The magnifying glass button allows users to zoom to a rectangle on the plot.
    • The sliders button allows users adjust the spacing and borders of their plots.
    • The tight layout button gets rid of the border around the plot.
    • The plot button allows users to customize the axes and curves of the figure.
      • The axes tab allows users to change the min, max and scale of the axes, along with the title and axes labels. This tab also allows users to automatically generate a legend.
      • The curves tab allows users to select each curve on the plot and alter its label, line style and color. Both the sliders button and plots button can be accessed by the “Configure Plot” menu at the top of the window they can be found under “Configure Subplots” and “Configure Axis and Curves” respectively.

      To save figures as images:

      • The save button allows users to save and export the figure window to a specified location. This functionality can also be accessed under “Save As…” in the “File” menu at the top of the output window.
      • All images can be exported to a desired save location, renamed and saved as one of the following file types: pdf, png, jpeg, tiff, svg, eps, rgba, pgf, and ps.

      Walkthrough with Example File

      Click the three dots on the line for alignment. This will bring up a file explorer in the ALPHA directory. From here choose the "exampleFiles" folder. In here you will find several files that are useful for learning about the usages of ALPHA. In this case select the "4TaxaExample.phylip" file. Before running RAxML you can generate a heatmap of the alignment's informative sites by clicking the checkbox next to "Informative Sites Heat Map" then clicking "Generate Figure". To run RAxML go to the "Run RAxML" tab here input a window size and offset. For this file we recommend 10000 and 10000. Click "Run RAxML" then go to the "Generate Figures" tab. Here you can select as many figures as you want then click "Generate Figures".

      For more information on RAxML Mode and the figures it can generate, see the RAxML section above.

      To use the file converter, first select the input file and its format. Then, specify the desired filename, location, and format of the output file. Click the convert button to create your new file.

      For more information on the File Converter and its formats, see the File Converter section above.

      First, select the MS Truth File that you want to analyze. Then, select either the Compare Against RAxML Directory option or the Compare Against MS File(s) option.

      Compare Against RAxML Directory

      To compare against a RAxML directory:

      To select more than one MS file to compare against, simply click the + button to add the number of files you want to compare. Then, select one MS file per box. To remove a file, click the - button on the left side of the file input box. In the "exampleFiles" folder there are two files, "ExampleMS" and "ExampleMS2". New users can use these files to get a better understanding of the MS Comparison functionality.

      Select any number of the three graphs to generate them. Click the Compare button to run MS Comparison and generate the desired figures.

      For more information on MS Comparison and the graphs it generates, see the MS Comparison section above.

      To compute the D-statistic, first input the desired alignment in phylip-sequential format.

      Then, input the preferred window size and offset.

      Using the provided four taxa tree, select your desired topology. Click the Run button to generate the D Statistic and the Windows to D-statistic Scatter Plot.

      Users can subset from an alignment of more than 4 taxa. To get a better understanding of this use "6TaxaExample.txt" from the "exampleFiles" folder.

      For more information on the D-statistic and what it outputs, see the D-statistic section above.

      For users looking to modify ALPHA source code we recommend using the PyCharm IDE with a Python 2.7.13 interpreter.

      The user interface is created using PyQt4. More information on it can be found here: PyQt4. Individuals looking to alter the GUI must use the Qt Designer interface for the file "gui_layout.ui" located in the "module" folder. Alterations to the .ui file must be saved in the Qt Designer then pushed to the "gui_layout.py" file using the following command prompt command while in the "module" folder. If the command is not run then any changes made in the Qt Designer will not be updated properly.

      All functions are executed within the "module" folder. Each of these files roughly corresponds to a different analysis function of ALPHA.

      Plot outputs are each given their own window file where plot formatting and other aesthetics are dealt with. These files can be found in the "raxmlOutputWindows" folder and can be altered accordingly.

      Add a New Page Walkthrough

      1. Open Qt Designer this should have been installed along with PyQt and sip. A nice tutorial on the basics of Qt Designer as well as an alternative installation route via anaconda can be found at http://pythonforengineers.com/your-first-gui-app-with-python-and-pyqt/
      2. Click the file tab in the top left corner, click open and select the gui_layout.ui file in the Module folder of ALPHA
      3. On the right in the object inspector the fourth tab is "stackedWidget" right click and click "insert page" choose the if you want the page to be before or after the current page Note: you can change the current page being edited using the left and right arrows on the top right corner of the ALPHA gui page
      4. Scroll to the top of the widget box on the left side click and drag Vertical Layout onto the UI. Reposition and rescale as desired.
      5. Scroll to the bottom of the widget box and find Label. Click and drag this into the box created by your vertical layout.
      6. Double click TextLabel then type in "Hello World". To change the alignment of the text in the Property Editor section in the bottom right scroll down to QLabel. Click the arrow next to alignment next to Horizontal click AlignLeft then use the drop down menu to select the desired alignment type.
      7. Click the Mode tab on the ALPHA interface then click Type Here and enter “Hello World”
      8. While still selecting the text from step 8 got to the Property Editor in the bottom right corner and click the checkbox next to "checkable"
      9. Use the arrows in the top right to ALPHA's home page. Double click the drop down menu. Then click the down arrow until the bottom selection is highlighted. Click the plus button and type in "Hello World". Save the ui file using the file tab.

      Next we will alter ALPHA's python code to allow us to access the Hello World page using ALPHA's navigation bar.

      1. Open command line, cd into the module folder in ALPHA. Then enter the command below. This pushes the changes from our PyQt ui file to the python file that main.py interacts with.
      1. Open main.py in a text editor or IDE (we recommend using PyCharm for this). Find the section of code that says "ADD NEW PAGE INFORMATION BELOW" (at the time of writing this was line 83).
      2. Update the six dictionaries in this section of code by adding a comma then using the following code in order:
      1. Finally find the section of code with the header "CHANGE MODE" (at the time of writing this was line 141). Add the following line of code:

      Run main.py to and select Hello World from the menu to view your new page.

      Tip: It is recommended developers rename widgets and page that they add in order to make variable names more informative. This can be done using the Object Inspector section in the top right corner of the page. Currently selected widgets will be highlighted in blue. Right click the desired widget then select Change Object Name.

      Tip: If you add a widget at any point and it is initially too small to rescale using the cursor use the property editor in the bottom right corner of the screen.

      perguntas frequentes

      Q: Any click in a text box in the main window of the software leads to the following comment in the terminal: 2018-01-04 10:53:15.808 Python[89398:f07] unlockFocus called too many time. Is this an error?

      A: No. This is currently a known issue with the PyQt GUI software. It is a harmless message without any effect on ALPHA and can safely be ignored.

      Cock PJA, Antao T, Chang JT, et al. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics. 200925(11):1422-1423. doi:10.1093/bioinformatics/btp163.

      Durand EY, Patterson N, Reich D, Slatkin M. Testing for Ancient Admixture between Closely Related Populations. Molecular Biology and Evolution. 201128(8):2239-2252. doi:10.1093/molbev/msr048.

      ETE 3: Reconstruction, analysis and visualization of phylogenomic data. Jaime Huerta-Cepas, Francois Serra and Peer Bork. Mol Biol Evol 2016 doi: 10.1093/molbev/msw046

      Green RE, Krause J, Briggs AW, et al. A Draft Sequence of the Neandertal Genome. Science (New York, NY). 2010328(5979):710-722. doi:10.1126/science.1188021.

      Richard R. Hudson Generating samples under a Wright–Fisher neutral model of genetic variation. Bioinformatics 2002 18 (2): 337-338. doi: 10.1093/bioinformatics/18.2.337

      Hunter, John D. "Matplotlib: A 2D Graphics Environment." Computing in Science & Engineering 9.3 (2007): 90-95. 10.1109/MCSE.2007.55

      Martin SH, Davey JW, Jiggins CD. Evaluating the Use of ABBA–BABA Statistics to Locate Introgressed Loci. Molecular Biology and Evolution. 201532(1):244-257. doi:10.1093/molbev/msu269.

      Stamatakis A. 2014a. RAxML version 8: a tool for phylogenetic analysis and post-analysis of large phylogenies. Bioinformatics 30, 1312–1313. DOI: 10.1093/bioinformatics/btu033.

      Stamatakis A. 2014b. The RAxML v8.0.X Manual

      Sukumaran, J. and Mark T. Holder. 2010. DendroPy: A Python library for phylogenetic computing. Bioinformatics 26: 1569-1571.

      Than C, Ruths D, Nakhleh L (2008) PhyloNet: a software package for analyzing and reconstructing reticulate evolutionary relationships. BMC Bioinformatics 9: 322


      4. DISCUSSÃO

      treespace provides a simple framework for exploring landscapes of phylogenetic trees and investigating phylogenetic incongruence using tree–tree distances. Of the various methods for measuring distances between trees, some may be better than others at capturing meaningful topological differences, as is the case when testing phylogenetic signal (Jombart, Pavoine, Devillard, & Pontier, 2010 Münkemüller et al., 2012 Pavoine et al., 2008 ). There are currently no theoretical descriptions that can determine a priori which tree comparison method will be most revealing for which kind of data. Recognizing this, we have incorporated considerable flexibility into treespace in terms of how trees are compared, by providing a framework which can incorporate any tree-to-tree distance, and implementing seven different ones by default. This feature distinguishes treespace from other similar software, like the R package RWTY which re-implements mesquite 's treesetviz module (Robinson–Foulds metric) as part of an excellent toolkit for assessing mixing in Bayesian phylogenetics (Warren, Geneva, & Lanfear, 2017 ), or treescaper , which puts stronger emphasis on reduced space optimization methods and community detection algorithms (Huang et al., 2016 Wilgenbusch et al., 2017 ).

      Lastly, one of the key advantages of developing treespace within the R software (R Core Team 2016 ) is the resulting interoperability with other tools. Indeed, R is becoming a standard for phylogenetic analyses (Jombart et al., 2010 , 2017 Kembel et al., 2010 Paradis et al., 2004 Revell, 2012 Schliep, 2011 Warren et al., 2017 ) and therefore represents an ideal environment for treespace to become a useful tool for the exploration of phylogenetic results. Its development within an open-source, community-based platform together with its availability as user-friendly web interface will hopefully facilitate its adoption by a wide range of scientists and encourage further methodological developments.


      ACKNOWLEDGMENTS

      This work was supported in part by the Government of Canada, through Genome Canada and the Ontario Genomics Institute (OGI-131), and by grants from the Canadian Institutes of Health Research (PJT-155990, PJT-156178) and the Natural Sciences and Engineering Research Council of Canada (RGPIN-2018-05516). We also thank Eric Wong and Vidhu Joshi for their assistance in searching the literature for cophylogeny studies and collecting published data sets Faisal Abu-Sardanah for assistance with debugging and David W. Dick for help interpreting mathematical models. Lastly we are grateful to Dr. Michelle Kendall and anonymous reviewers for helpful feedback.


      Generalizations of the RF distance for labeled trees on different label sets

      Let us consider labeled trees of different sizes or whose label sets are not the same. The RF distance between any pair of such trees is simply equal to the total number of edges in the trees and thus fails to capture their dis-similarity. Here, we generalize the RF distance in order to measure the dis-similarity of such pairs of trees better.

      Bourque distances

      For a labeled tree S, we use (<>>(S)) to denote the label set of S. Since each node of V(S) is labeled with a non-empty subset of (<>>(S)) , each edge (e=(u, v)) induces the two-part partition (P(e)=) , where (L(u)=cup _ ell (x)) and (L(v)=cup _ ell (y)) .

      Deixar T be another labeled tree such that (<>>(S)cap <>>(T) e emptyset .) We define (C=(S)cap <>>(T)) .

      For (e'in E(S)) , we assume that the two-part partition induced by (e') is (P(e')=>>(S)setminus X>) , where (Xsubset <>>(S)) . (P(e')) is said to be similar to a two-part partition (P=(C', C'')) of C if the following condition is satisfied:

      We use (sim) to denote the similarity relationship.

      Observações

      (1) The similarity relation is a many-to-many relation in the product space of edge-induced partitions (<>(S)> imes <>>(T)) . (2) If (<>>(S)= <>>(T)) , the similarity becomes the equal relation.

      Definition 2

      Deixar S e T be two labeled trees and let (<>>= <: emptyset e C'subset C, C' e C >) . The Bourque metric B(S, T) between S e T é definido como:

      The rationale behind the Bourque distance is that we “correct” the RF distance by those partitions, that would be shared between both trees when labels unique to either of the two trees were ignored. For example, in Fig. 3B, the labels (<7, 9>) that appear in the left tree are not found in the right tree, whereas the labels (<6, 8>) that appear in the right tree are not found in the left tree. Therefore, none of the seven edge-induced partitions in either tree is found in the other. This implies that the RF distance between the two trees is 14. Since the labels appearing in both trees are (<0, 1, 2, 3, 4, 5>) , the edge (4, 9) (purple) of the left tree induces the same partition, (<<1, 2, 3, 4>, <0, 5>>) of (<0, 1, 2, 3, 4, 5>) as the edges (4, 6) and (6, 0) (purple) of the right tree. Furthermore, the edge (1, 2) (resp. (2, 3) and (2, 4)) induces the same partition of (<0, 1, 2, 3, 4, 5>) in both trees and the edge (9, 5) of the left tree induces the same partition of (<1, 2, 3, 4, 5>) as the edge (0, 5) of the right tree. Therefore, the Bourque distance between both trees is (14-5=9) .

      Proposition 4

      Deixar S e T be two labeled trees with s e t edges, respectively.

      Proof

      Deixar S e T be two labeled trees. (i) Without loss of generality, we assume (sge t) . If (<>>(S)=<>>(T)) , the first and second term of Eqn.(2) equals (s+t-|(S)cap <>>(T)|) and (-|<>>(S)cap <>>(T)|) , respectively. Thus, ((S, T)= mathrm(S, T)= s+t-2 |<>>(S) cap <>>(T)| ge s+t-2t=s-t) .

      (ii) If (<>>(S)cap <>>(T)=emptyset) , then, the first term and second term of Eqn.(2) equals (s+t) and 0, respectively, as (|<>>(S)cap <>>(T)|=emptyset) .

      Additionally, we also have the following fact, which is proved in Additional file 1.

      Proposition 5

      The Bourque metric is a distance metric in the space of labeled trees in other words, it satisfies the non-negativity, symmetry and triangle inequality conditions.

      Proposition 6

      The Bourque distance between two labeled trees S e T can be computed in linear time (O(|<>>(S)|+<>>(T)|) .

      Proof

      The proof is an adaption of the proof by Day for computing the Robinson–Foulds distance of rooted leaf-labelled trees in linear time [38]. We assume node labels are integers (otherwise, we apply hashing to convert the labels into integers). By indexing labels with integers and filling a hash table, we can determine the set C of node labels that are in both trees. Se C is empty, we have (B(S,T) = s+t) . Otherwise, we remove all labels that are not in C from the two trees S e T. This may create some nodes v with no labels, i. e. (ell (v) = emptyset) . We remove leafs with no labels from S and the corresponding edges as they do not induce any non-trivial partitions. We then select an arbitrary node r that is labeled with at least one label, root S no r and map the labels to ([ 1, 2, cdots , |C|]) based on a pre-order depth-first traversal of S. Since node labels occur only once per tree, this mapping is well-defined, and we obtain a new node labelling (ell ') for which the elements of each (ell '(v)) are consecutive integers and smaller than the elements of (ell '(w)) for every C accessed after v in the pre-order depth-first traversal of S. In particular, 1 is a label of the root for every subtree of the rooted S, the union of node labels of all nodes in the subtree is now a consecutive interval. Using efficient data structures, the above tree manipulations amortise to linear time with regard to (|<>>(S)|) . Using a post-order depth-first traversal of the rooted tree S, we can obtain all consecutive intervals in linear time with regard to (|<>>(S)|) . Due to nodes with no labels, the same interval can occur multiple times. Therefore we track the counts of the intervals. This can be done efficiently with a hash table.

      Now, we relabel the nodes of T using the mapping obtained from the pre-order traversal of S and root T at the node containing the label 1. We perform a post-order depth-first traversal of T and obtain the intervals defined by the smallest and largest label of each subtree. In addition we also keep track of the total number of labels in the subtree. If the length of the interval matches this number, the interval is consecutive and thereby the incoming edge to the subtree defines a partition that is also induced by an edge in S. The necessary operations amortise to linear time with regard to (|<>>(S)| + |<>>(T)|) . Since the label 1 is located at the root in both S e T, the obtained intervals for S e T are always the part of the partition that does not contain the label 1. Therefore it is sufficient to consider these intervals to compare partitions. Let (Z_S) be the multi-set of intervals obtained from S and (Z_T) be the multi-set of (consecutive) intervals obtained from T, then we obtain the second part of Eq. (2) by summing over the smaller prevalence of each interval in either T ou S. This can be accomplished in linear time using two hash tables to track the prevalence of the intervals in each tree. The first part of Eq. (2) is just the number of edges in S e T in the case (<>>(S) e <>>(T)) . Pseudocode of the algorithm is given in Section 4 of Additional file 1. In case (<>>(S) = <>>(T)) , B(S, T) is simply the size of the intersection of (Z_S) and (Z_T) . This concludes that the Bourque distance can be computed in linear time.

      High-order Bourque distances for labelled trees

      Like the RF distance, the Bourque distance has the tendency to overpenalize certain labeling differences and can saturate quickly (see our validation tests on random trees presented later). In this subsection, we will use the Bourque distances between local subtrees and a matching algorithm ([15, 17, 18]) to define new distance metrics. The new metrics will take more values than the basic version.

      Deixar T be a labeled tree and (uin V(T)) . For an integer (k>0) , the k-star subtree (C_k(u)) centered at você is defined as the subtree induced by the vertex set () in T. For any pair of labeled trees S e T do n and (n') nodes, respectively, such that (n le n') , define (mathrm _k(S, T)) to be the complete weighted bipartite graph with two node parts (>cup V(S)) and V(T), where each (emptyset _i) is just a copy of the empty graph the Bourque distance (B(C_k(x), C_k(y))) is assigned to the edge (x, y) as a weight for every (xin V(S)) and (yin V(T)) and a weight of (|E(C_(y))|) is assigned to the edge ((emptyset _i, y)) for any (emptyset _i) and (yin V(T)) . Although (C_k(x)) can be identical for different nodes x, (mathrm _k(S, T)) always has (2n') nodes.

      Definition 3

      Deixar S e T be two labeled trees and (k ge 1) . o k-Bourque distance (B_k(S, T)) is defined to be the minimum weight of a perfect matching in (mathrm _k(S, T)) .

      Proposition 7

      o k-Bourque distances have the following properties:

      For any 1-labeled trees S e T such that (|V(S)|= |V(T)|=n) , (B_k(S, T)=n cdot (S, T)) for any (kge max (mathrm(S), mathrm (T))) , where (mathrm(X)) is the diameter of X for (X=S, T) .

      (B_k(S, T)) satisfies the non-negativity, symmetry and triangle inequality conditions for each (kge 1) .

      Proof

      The full proof appears in the Additional file 1.

      Remark

      The run time of computing the k-Bourque distance for two labeled trees S e T com n and (n') nodes, respectively, is (O(max (n', n)^3)) , as computing the Bourque distances between the k-star trees centered at tree nodes takes (O(max (n', n))) in the worst case and computing the minimum weight perfect matching in (mathrm_(S, T)) takes (O(max (n', n)^3)) time.


      Reconhecimentos

      First of all, I have to thank Mareike Fischer for introducing me to the world of phylogenetic distances. She helped also a lot for getting a clear notation. Second, I’m very grateful to Jürgen Eichhorn who unconsciously draw my attention to metrics between metric spaces. Third, I’d like to thank Michelle Kendall for her inspiring talk at the Portobello conference 2015 and additional discussion later. Fourth, I thank Mike Steel for many interesting discussions, useful hints, his kind hospitality during my stay in Christchurch 2010, and for the organisation of the amazing 2015 workshop in Kaikoura with an inspiring and open atmosphere. Further, Miroslav Bačak, Andrew Francis, Alexander Gavryushkin, Stefan Grünewald, Marc Hellmuth and Giulio dalla Riva gave useful hints and inspiration in many discussions. The questions and hints of five anonymous referees regarding previous versions of this manuscript helped to improve it substantially.


      Assista o vídeo: Phylogenetics Part 5 - Maximum Parsimony and Maximum Likelihood methods (Novembro 2021).