Em formação

Matriz de distâncias com sequências de diferentes comprimentos

Matriz de distâncias com sequências de diferentes comprimentos



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Em um projeto que estamos fazendo (em python), queremos criar uma matriz de distância para uma árvore filogenética com várias sequências de comprimentos diferentes. No entanto, o que vimos até agora (AlignIO em biopython, etc.) requer que o comprimento das sequências seja igual. Existe alguma maneira pitônica de obter a matriz com sequências de comprimento diferente? Ou alguma outra forma indireta que nos levasse ao mesmo resultado?


Existem duas possibilidades:

  1. Não use as sequências em si, mas uma métrica escalar de similaridade de sequência para valores de distância
  2. Introduzir lacunas no alinhamento. Você também pode fazer um alinhamento com espaçamento de ponta a ponta, como o Needleman-Wunsch e usar as pontuações de alinhamento para a matriz de distância.

Dtaidistance.dtw_ndim¶

(Dependente) Dynamic Time Warping usando sequências multidimensionais.

Pressupõe que a primeira dimensão seja o índice do item de sequência e a segunda dimensão seja o índice da série (portanto, o passo de tempo).

Este método retorna a distância DTW (DTW_D) [1] dependente entre duas sequências n-dimensionais. Se você deseja calcular a distância DTW independente (DTW_I), use a versão unidimensional:

Nota: Se você estiver usando o código otimizado para C, o fragmento acima acionará uma operação de cópia para garantir que os arrays sejam ordenados por C e, portanto, criará sobrecarga de tempo e memória. Isso pode ser evitado armazenando as dimensões como matrizes separadas ou invertendo as dimensões da matriz e use dtw.distance (s1 [dim ,:], dtw.distance (s2 [dim ,:]).

[1] M. Shokoohi-Yekta, B. Hu, H. Jin, J. Wang e E. Keogh. Generalizar dtw para o caso multidimensional requer uma abordagem adaptativa. Data Mining and Knowledge Discovery, 31: 1-31, 2016.

dtaidistance.dtw_ndim. distance_fast ( s1, s2, janela = Nenhum, max_dist = Nenhum, max_step = Nenhum, max_length_diff = Nenhum, penalidade = nenhuma, psi = Nenhum, use_pruning = False, only_ub = False ) ¶

Nota: espera-se que as séries sejam arrays do tipo double. Assim, numpy.array ([[1,1], [2,2], [3,3]], dtype = numpy.double)

dtaidistance.dtw_ndim. distance_matrix ( s, ndim, max_dist = Nenhum, use_pruning = False, max_length_diff = Nenhum, janela = Nenhum, max_step = Nenhum, penalidade = nenhuma, psi = Nenhum, bloco = Nenhum, compacto = falso, paralelo = falso, use_c = False, use_mp = False, show_progress = False, only_triu = False ) ¶

Matriz de distância para todas as sequências n-dimensionais em s.

Este método retorna a distância DTW (DTW_D) [1] dependente entre duas sequências n-dimensionais. Se você deseja calcular a distância DTW independente (DTW_I), use a versão unidimensional e some as matrizes de distância:

Onde series_sep_dim é uma estrutura de dados que retorna uma lista das sequências que representa a i-ésima dimensão de cada sequência em s.

  • s - Iterável de série
  • janela - ver distância ()
  • max_dist - ver distância ()
  • max_step - ver distância ()
  • max_length_diff - ver distância ()
  • pena - ver distância ()
  • psi - ver distância ()
  • bloquear - Bloco de computação apenas na matriz. Espera tupla com início e fim, por exemplo, ((0,10), (20,25)) comparará apenas as linhas 0:10 com as linhas 20:25.
  • compactar - Retorne a matriz de distância como uma matriz que representa a matriz triangular superior.
  • paralelo - Use operações paralelas
  • use_c - Use funções Python compiladas c
  • use_mp - Use multiprocessamento para operações paralelas (não OpenMP)
  • show_progress - Mostra o progresso usando a biblioteca tqdm. Isso só é compatível com a versão Python pura (portanto, não com as implementações baseadas em C).
  • only_triu - Preencha apenas o triângulo superior

A matriz de distância ou a matriz de distância condensada se o argumento compacto for verdadeiro

[1] M. Shokoohi-Yekta, B. Hu, H. Jin, J. Wang e E. Keogh. Generalizar dtw para o caso multidimensional requer uma abordagem adaptativa. Data Mining and Knowledge Discovery, 31: 1-31, 2016.

dtaidistance.dtw_ndim. distance_matrix_fast ( s, ndim, max_dist = Nenhum, max_length_diff = Nenhum, janela = Nenhum, max_step = Nenhum, penalidade = nenhuma, psi = Nenhum, bloco = Nenhum, compacto = falso, paralelo = verdadeiro, only_triu = False ) ¶

dtaidistance.dtw_ndim. ub_euclidean ( s1, s2 ) ¶

Distância euclidiana (dependente) entre duas sequências n-dimensionais. Suporta comprimentos diferentes.

Se as duas séries diferem em comprimento, compare o último elemento da série mais curta com os elementos restantes na série mais longa.

  • s1 - Sequência de números, a 1ª dimensão é a sequência, a 2ª dimensão é o vetor de valor n-dimensional.
  • s2 - Sequência de números, a 1ª dimensão é a sequência, a 2ª dimensão é o vetor de valor n-dimensional.

Dynamic Time Warping (manter a matriz completa) usando sequências multidimensionais.


Dados da matriz de distância

FITCH. Estima as filogenias a partir dos dados da matriz de distâncias sob o "modelo de árvore aditiva", segundo o qual as distâncias devem ser iguais às somas dos comprimentos dos ramos entre as espécies. Usa o critério de Fitch-Margoliash e alguns critérios de mínimos quadrados relacionados, ou o método de matriz de distância de evolução mínima. Não assume um relógio evolutivo. Este programa será útil com distâncias calculadas a partir de sequências moleculares, sítios de restrição ou distâncias de fragmentos, com medições de hibridização de DNA e com distâncias genéticas calculadas a partir de frequências gênicas.

KITSCH. Estima filogenias de dados de matriz de distância sob o modelo "ultramétrico", que é o mesmo que o modelo de árvore aditiva, exceto que um relógio evolutivo é assumido. O critério de Fitch-Margoliash e outros critérios de mínimos quadrados, ou o critério de evolução mínima são possíveis. Este programa será útil com distâncias calculadas a partir de sequências moleculares, sítios de restrição ou distâncias de fragmentos, com distâncias de medições de hibridização de DNA e com distâncias genéticas calculadas a partir de frequências gênicas.

VIZINHO . Uma implementação por Mary Kuhner e John Yamato do "Método de união de vizinho" de Saitou e Nei e do método UPGMA (agrupamento de ligação média). A união de vizinhos é um método de matriz de distância que produz uma árvore sem raiz sem a suposição de um relógio. UPGMA assume um relógio. Os comprimentos dos ramos não são otimizados pelo critério dos mínimos quadrados, mas os métodos são muito rápidos e, portanto, podem lidar com conjuntos de dados muito maiores.

DNADIST. Calcula quatro distâncias diferentes entre espécies de sequências de ácido nucleico. As distâncias podem então ser usadas nos programas de matriz de distância. As distâncias são a fórmula de Jukes-Cantor, baseada no método de 2 parâmetros de Kimura, o modelo F84 usado em DNAML e a distância LogDet. As distâncias também podem ser corrigidas para taxas de alteração distribuídas por gama e distribuídas por sites invariantes gama em diferentes sites. As taxas de evolução podem variar entre os sites de uma forma pré-especificada e também de acordo com um modelo de Markov Oculto. O programa também pode fazer uma tabela de porcentagem de similaridade entre as sequências.

PROTDIST. Calcula uma medida de distância para sequências de proteínas, usando estimativas de máxima verossimilhança com base na matriz Dayhoff PAM, o modelo de matriz JTT, o modelo PBM, a aproximação de Kimura de 1983 a estes, ou um modelo baseado no código genético mais uma restrição na mudança para um diferente categoria de aminoácido. As distâncias também podem ser corrigidas para taxas de alteração distribuídas por gama e distribuídas por sites invariantes gama em diferentes sites. As taxas de evolução podem variar entre os sites de uma forma pré-especificada e também de acordo com um modelo de Markov Oculto. O programa também pode fazer uma tabela de porcentagem de similaridade entre as sequências. As distâncias podem ser usadas nos programas de matriz de distância.

GENDIST. Calcula uma das três fórmulas de distância genética diferentes a partir de dados de frequência do gene. As fórmulas são a distância genética de Nei, a medida de acorde Cavalli-Sforza e a distância genética de Reynolds et. al. O primeiro é apropriado para dados em que novas mutações ocorrem em um modelo de mutação neutra de isoalelos infinitos, os dois últimos para um modelo sem mutação e com deriva genética pura. As distâncias são gravadas em um arquivo em um formato apropriado para entrada nos programas de matriz de distância.

RESTDIST. Distâncias calculadas a partir de dados de sites de restrição ou dados de fragmentos de restrição. A opção de sites de restrição é usada para fazer também distâncias para RAPDs ou AFLPs.


Métodos

HomFam

A análise apresentada aqui usa o sistema de benchmark de alinhamento HomFam [8]. Este consiste em famílias de domínio único Pfam [9] (versão 25) que possuem pelo menos 5 membros com estruturas conhecidas em um alinhamento estrutural HOMSTRAD [10]. Medimos a proporção de colunas centrais alinhadas corretamente de todas as colunas centrais alinhadas nas sequências de referência (pontuação BAliSCORE TC [11]), quando essas sequências são incorporadas em conjuntos de dados maiores. A pontuação de TC varia de 0,0 (nenhuma coluna central nas sequências de referência corretamente alinhada) a 1,0 (todas as colunas centrais da sequência de referência corretamente alinhadas). Uma pontuação alternativa de TC mede a proporção de todas as colunas alinhadas corretamente. Embora os resultados tenham sido semelhantes, usamos colunas centrais neste artigo.

Ao examinar as sequências de HomFam, percebeu-se que várias proteínas tinham a mesma sequência de aminoácidos, embora fossem (corretamente) marcadas de forma diferente em Pfam. Por exemplo, na família de dedos de zinco (número de acesso Pfam PF00096), as informações de sequência para:

são idênticos. A Tabela 1 mostra o número de sequências em cada família HomFam e o número delas que são únicas. Na análise restante, as sequências duplicadas foram removidas das famílias HomFam. Ter sequências duplicadas fornecerá automaticamente distâncias empatadas e desejamos separar este efeito dos efeitos devido ao uso k- pontuações duplas.

Um efeito colateral do processo de remoção é que as sequências restantes são classificadas em ordem alfabética crescente das sequências (não os nomes das sequências) dentro de cada uma das famílias HomFam. Como cada conjunto de dados é posteriormente embaralhado aleatoriamente antes de ser alinhado, isso não terá efeito em nenhum dos alinhamentos produzidos.

Programas

Este artigo examina a instabilidade dos alinhamentos produzidos pelos programas de alinhamento de seqüência múltipla progressiva Clustal Omega [12], Kalign [13], Mafft [14] e Muscle [3]. Esses programas foram selecionados com base em seu uso difundido, sua capacidade de alinhar mais de mil sequências de proteínas e o uso de uma árvore-guia com base na semelhança entre cada par de sequências para determinar a ordem em que as sequências serão alinhadas.

Cada um dos programas de alinhamento gera uma matriz de distância contendo as medidas de similaridade ou distância entre todas as combinações de pares de sequências de entrada. O Kalign não exibe essa matriz de distância por padrão, mas ao examinar kalign2_main.c linha 135, o código para produzir a matriz de distância foi comentado. Este código foi descomentado e modificado para gerar a matriz de distância para um arquivo de texto específico. Além disso, as medidas de distância foram geradas com 25 casas decimais para garantir que quaisquer duplicatas não fossem resultado de arredondamento ao formatar a saída.

Os outros três programas de alinhamento também foram modificados para medir a distância de saída com 25 casas decimais: Clustal Omega: linha 327 de clustal / symmatrix.c Mafft: linha 2643 de io.c Músculo: linha 59 de fastclust.cpp.

Para todos os quatro programas de alinhamento, os parâmetros de tempo de execução foram limitados aos necessários para gerar uma matriz de distância. Por padrão, o Clustal Omega usa o algoritmo mBed [8] para agrupar as sequências com base em um pequeno número de sequências “sementes”. Isso requer apenas o cálculo das medidas de similaridade entre essas sequências de sementes e todas as outras sequências no arquivo de entrada. Solicitando que uma matriz de distância completa seja gerada e enviada, as sequências foram agrupadas usando as medidas de similaridade entre todos os pares de sequências de entrada.

Para Mafft, foram utilizados os algoritmos FFT-NS-1, FFT-NS-2 e G-INS-1. Com FFT-NS-1, uma matriz de distância é gerada primeiro usando a pontuação de 6 tuplas entre cada par de sequências - ambas as sequências são escaneadas desde o início para combinar 6 tuplas, e quando uma correspondência é encontrada, a pontuação é incrementada e a varredura continua a partir do próximo resíduo [4]. Uma árvore guia é então construída agrupando de acordo com essas distâncias, e as sequências são alinhadas usando a ordem de ramificação da árvore guia. Com FFT-NS-2, o alinhamento produzido pelo método FFT-NS-1 é usado para regenerar a matriz de distância e a árvore guia, e então fazer um segundo alinhamento progressivo. Neste artigo, FFT-NS-1 será especificado sempre que medidas de distância forem necessárias. Se nenhuma medida de distância for necessária, o método padrão FFT-NS-2 será usado. O algoritmo G-INS-1 também foi usado na Figura 1 para comparação com uma medida de distância que não depende de correspondência k-tuples.

Diferença nas pontuações principais do TC para amostras aleatórias e na ordem inversa. A diferença nas pontuações principais do TC para 1000 sequências selecionadas aleatoriamente e em ordem reversa. 68 famílias de proteínas HomFam. (n = 10 ) amostras por família

Com o Muscle, o número de iterações foi limitado a 2, em vez do padrão de 16. Este é o número de iterações recomendado pelos autores para grandes conjuntos de dados.

As versões do programa e os parâmetros de tempo de execução usados ​​são os seguintes:

Clustal Omega (v1.2.0-r289): --full --distmat-out =.

Mafft (v7.029b) FFT-NS-1: --retree 1 --anysymbol --distout

Mafft (v7.029b) FFT-NS-2: --anysymbol --distout

Mafft (v7.029b) G-INS-1: --anysymbol --globalpair

Músculo (v3.8.31): -maxiters 2 -DistMx1.

Material de apoio

Um pacote de programas utilitários, arquivos de dados e scripts está disponível para download em http://www.bioinf.ucd.ie/download/2015instability.tar.gz.


Resultados

Para testar nosso algoritmo desenvolvido, nós o aplicamos a seis conjuntos de dados de benchmark. Modelos diferentes podem resultar em árvores filogenéticas diferentes, portanto, é importante escolher o método mais adequado. Aqui, usamos as abordagens de Fitch-Margoliash ou UPGMA (UPGMA = Método de grupo de pares não ponderados com média aritmética) no pacote PHYLIP 24 para gerar a árvore filogenética. Nos dados de benchmark, o resultado gerado usando ambas as abordagens tem pequenas diferenças entre elas. No entanto, escolhemos a árvore ideal com base na classificação taxonômica e comparamos com as ferramentas existentes. Os seis conjuntos de dados de referência usados ​​neste estudo são os seguintes:

Sequências de proteína NADH desidrogenase 5 (ND 5).

Sequências de proteína NADH desidrogenase 6 (ND 6).

sequências de proteínas de xilanases nos conjuntos de dados F10 e G11.

sequências de proteínas da transferrina.

sequências de proteínas de pico de coronavírus.

sequências da proteína beta-globina.

Sequências de proteínas NADH desidrogenase 5 (ND 5)

O algoritmo proposto foi testado no conjunto de dados de referência de 9 sequências de proteínas de NADH desidrogenase 5 com quase 600 aminoácidos (Tabela S1). Todas as sequências foram obtidas no banco de dados do genoma do NCBI. O gene MT-ND5 fornece instruções para a produção de uma proteína chamada NADH desidrogenase 5. Essa proteína é parte de um grande complexo enzimático conhecido como complexo I, que é ativo na mitocôndria. A NADH desidrogenase 5 codificada mitocondrialmente (complexo I) em eucariotos reconhecem a composição de subunidades 33 altamente conservada. Portanto, o ND5 tem sido amplamente utilizado para a análise dos estudos filogenéticos e sua evolução. A árvore filogenética gerada por nosso método mostrado na Fig. 1, agrupou com sucesso uma categoria semelhante com base na classificação taxonômica da família. 9 sequências de proteína ND5 pertencentes a mamíferos podem ser divididas nas seguintes quatro categorias com base em sua família (i) Hominidae inclui humano, chimpanzé pigmeu, chimpanzé comum e gorila (ii) Balaenopteridae inclui baleia-comum e baleia-azul (iii) Muridae inclui camundongo e rato e (iv) Didelphidae inclui gambá. A partir da Fig. 1, fica claro que nosso método agrupou com sucesso sequências de proteínas separadamente com base em suas famílias. Para ilustrar a eficácia do nosso método, comparamos a árvore filogenética gerada por nossa abordagem com a árvore filogenética gerada pelo ClustalW usando o pacote MEGA 25 (Fig. S1) e árvores filogenéticas geradas pelos estudos anteriores 13,34,35,36,37 , 38 no mesmo conjunto de dados. A Figura 1 gerada por nosso método não agrupou chimpanzé comum e chimpanzé pigmeu em comparação com a Fig. S1. No entanto, a árvore gerada por nossa abordagem (Fig. 1) tem vantagem sobre 37,38. Em 37, a construção de árvores filogenéticas com base no método de vetor de proporção de aminoácidos 20-D e com base no método de vetor de proporção de conteúdo de aminoácidos 20-D, quatro categorias com base em sua família Hominidae, Balaenopteridae, Muridae e Didelphidae não são agrupados separadamente. Da mesma forma, em 38 e 37, construção de árvores filogenéticas com base no método do momento de inércia 20-D e com base na relação de posição de aminoácidos 40-D e método de vetor de relação de conteúdo, gambá não é separado como um grupo externo.

A árvore filogenética de 9 sequências da proteína NADH Desidrogenase 5 construída por nosso método usando a abordagem de Fitch-Margoliash.

Usamos o coeficiente de correlação (CC) e a distância de Robinson-Foulds (RF-distância) 26 como ferramentas estatísticas para análise comparativa entre duas árvores filogenéticas. Como uma percepção geral, mais CC significa maior similaridade entre uma árvore inferida e uma árvore de referência. Da mesma forma, costumamos usar a distância de RF 39,40 para analisar a similaridade topológica entre duas árvores. RF-distance = 0 indica que a topologia da árvore de teste é completamente semelhante à da árvore de referência, enquanto o nível de similaridade diminui à medida que o valor da distância RF aumenta. Obtivemos ou calculamos a distância CC e RF de diferentes métodos sem alinhamento (Tabela 1) em relação à árvore de referência (método ClustalW). Usamos o pacote R para cálculo da distância CC e RF. Na Tabela 1, Jayanta et al. 34 (com agrupamento) método mostra que, mesmo o CC é muito alto (0,9403) em comparação com o nosso método CC (0,7378), mas sua distância RF correspondente é 4, que é maior do que o nosso método RF-distance que é 2 ( ou seja, a árvore de 34 (com agrupamento) é topologicamente menos semelhante em comparação com a nossa árvore com a árvore de referência). Da mesma forma na Tabela 1, Wen et al. 35 e Yao et al. 36 tendo CC 0,7324 e 0,6908, respectivamente, que é mais próximo do CC do nosso método (CC = 0,7378). No entanto, em termos de similaridade topológica, a distância RF de Wen et al. 35 e Yao et al. 36 são 4, o que é maior do que a distância RF do nosso método. A análise acima mostra que CC mais alta ou mais próxima nem sempre implica que as duas árvores filogenéticas são mais semelhantes ou mais próximas uma da outra.

Sequências de proteína NADH desidrogenase 6 (ND 6)

O outro conjunto de dados de referência usado neste estudo foi 8 sequências de proteínas de NADH desidrogenase 6 com quase 175 aminoácidos (Tabela S2). Todas as sequências foram obtidas no banco de dados do genoma do NCBI. A cadeia 6 da NADH-ubiquinona oxidoredutase é uma proteína que em humanos é codificada pelo gene NADH Desidrogenase 6 mitocondrial. A proteína ND6 é uma subunidade da NADH desidrogenase (ubiquinona), que se encontra na membrana interna mitocondrial e é o maior dos cinco complexos da cadeia de transporte de elétrons 41. 8 sequências de proteína ND6 pertencem a mamíferos podem ser divididas nas seguintes quatro categorias com base em sua família taxonômica (i) Hominidae inclui humano, chimpanzé comum e gorila (ii) Phocidae inclui o selo do porto e o selo cinza (iii) Muridae inclui camundongo e rato e (iv) Macropodidae incluem wallaroo. Conforme mostrado na árvore gerada pelo nosso método (Fig. 2), as sequências de proteínas pertencem às famílias Hominidae, Muridae e Phocidae foram separados corretamente. Com base na classificação taxonômica da família, comparamos nossa árvore com as árvores geradas nos estudos anteriores 38,42 e a árvore gerada pelo ClustalW usando o pacote MEGA 25 (Fig. S2). A árvore gerada por nosso método tem uma vantagem sobre 38, porque não se agrupou (foca, foca cinza) e (camundongo, rato) em clados separados. No entanto, a Fig. 2 mostra consistência com 42 e Fig. S2 com base na divisão taxonômica da família.

A árvore filogenética de 8 sequências da proteína NADH Desidrogenase 6 construída por nosso método usando a abordagem de Fitch-Margoliash.

Calculamos a distância CC e RF de estudos anteriores 38,42 com ClustalW. CC e distância-RF também foram calculados entre o nosso método e com o ClustalW. Na Tabela 2, Czerniecka et al. O método 38 tem menor CC (0,4609) do que CC (0,5982) gerado por nosso método em comparação com o método ClustalW, e sua distância RF correspondente (RF = 6) é muito maior do que nosso método (RF = 2). Portanto, a árvore filogenética gerada por nosso método (Fig. 2) é mais topologicamente semelhante do que a árvore filogenética gerada por Czerniecka. et al. 38 em comparação com a árvore de referência (Fig. S2). No entanto, na Tabela 1, Gupta et al. 42 método tem maior CC (0,7763) em comparação com nosso método CC (0,5982), mas ambos os métodos têm a mesma distância RF = 2.

Sequências de proteínas de xilanases nos conjuntos de dados F10 e G11

O outro conjunto de dados de referência usado para validação do método foram as 20 sequências de proteínas de xilanases nos conjuntos de dados de proteínas F10 e G11 com quase 500 aminoácidos coletados de 37. Árvore filogenética gerada por nosso método (Fig. 3) sequências de proteínas separadas com precisão pertencentes a conjuntos de dados de xilanases G11 (diomandos vermelhos) de sequências de proteínas pertencentes a conjuntos de dados de xilanases F10 (círculo verde) em ramos separados. A árvore filogenética gerada em 37 não separou as sequências de proteínas pertencentes à família F10 e G11 em dois ramos separados. A Figura 3 mostrou que há uma melhoria na construção da árvore filogenética com nosso método do que o método usado no estudo 37. No entanto, nossa árvore (Fig. 3) é consistente com a árvore gerada pelo ClustalW usando o pacote MEGA 25 (Fig. S3). Também calculamos a distância CC e RF entre nosso método e o ClustalW, que são 0,6998149 e 18.

A árvore filogenética para 20 sequências de proteínas xilanases nos conjuntos de dados F10 e G11 construídos por nosso método usando a abordagem de Fitch-Margoliash.

Sequências de proteínas de transferrina

Neste estudo, o outro conjunto de dados de referência usado foi 24 sequência de proteína de transferrinas (TFs) de vertebrados 43 com quase 700 aminoácidos (Tabela S3). Todas as sequências foram obtidas no banco de dados do genoma do NCBI. As transferrinas são as proteínas de ligação ao ferro que estão envolvidas no armazenamento de ferro e na resistência a doenças bacterianas. As transferrinas têm alta afinidade de ligação com o ferro e mantêm o ferro livre em baixa concentração no sangue e outros fluidos corporais 44. As árvores filogenéticas construídas por nosso método (Fig. 4), agruparam com sucesso as sequências da proteína da transferrina e as sequências da proteína lactoferrina em clados separados. A árvore gerada por nossa abordagem (Fig. 4) dividiu as 24 sequências de transferrinas (TFs) de vertebrados em três grupos: mamíferos(círculo vermelho), actinopterygii(quadrado verde) e anfíbios(diomand preto). Apenas a sequência de transferrina de solha japonesa pertence a actinopterygii classe foi agrupada com sequência de transferrina de sapo pertencente a anfíbios classe. Na Fig. 4, as sequências pertencem a gêneros Oncorhynchus e Salvelinus foram agrupados em clados separados, e as sequências pertencem ao gênero salmo foram colocados próximos uns dos outros.

A árvore filogenética para 24 sequências da proteína transferrina construída por nosso método usando a abordagem de Fitch-Margoliash.

Com base na divisão taxonômica, comparação entre métodos sem alinhamento, a árvore filogenética gerada por nossa abordagem (Fig. 4) com a árvore filogenética gerada nos estudos anteriores 45,46 indica melhoria em nossa abordagem. Na Fig. 4, as sequências pertencem a mamíferos classes foram agrupadas em um clado separado que não foi observado em 45,46. Além disso, as espécies pertencem a gêneros Oncorhynchus e Salvelinus foram agrupados em clados separados, que faltam em 46. Ao comparar nossa árvore (Fig. 4) com a árvore de benchmark construída por 43 e a árvore construída por ClustalW usando o pacote MEGA 25 (Fig. S4), notamos que elas são consistentes entre si. As distâncias CC e RF calculadas entre nosso método e o ClustalW são 0,7453224 e 20.

Sequências de proteínas de pico de coronavírus

O outro conjunto de dados de referência usado para a validação do nosso método foram as proteínas de pico de 50 coronavírus (Tabela S4) com quase 1500 aminoácidos. Os coronavírus são diversos grupos de vírus de RNA de fita positiva, grandes e envelopados, pertencentes à família Coronaviridae. Os coronavírus são responsáveis ​​por doenças respiratórias e entéricas em humanos e outros animais. De acordo com o tipo de hospedeiro, os coronavírus podem ser divididos em quatro grupos (Tabela S4). Os grupos I e II contêm coronavírus de mamíferos, o grupo III contém coronavírus aviários e o grupo IV contém SARS-CoVs 47,48,49. A proteína spike, comum a todos os coronavírus conhecidos, é crucial para a fixação viral e a entrada na célula hospedeira. Para ilustrar o uso da caracterização quantitativa dessas sequências, empregamos nosso método para analisar as 50 proteínas spike do coronavírus. Observando a Fig. 5, descobrimos que os SARS-CoVs (grupo IV) parecem se agrupar e formar um ramo separado, que pode ser facilmente distinguido de outros três grupos (I, II e III) de coronavírus. Da mesma forma, as sequências pertencentes aos grupos II e III são colocadas em um ramo independente. Embora as sequências pertençam ao grupo I, como (TGEV, TGEVG) e (PEDVC, PEDV) formaram clados separados, mas eram próximos uns dos outros. Um olhar mais atento para a subárvore de SARS-CoVs (grupo IVa) pertencia à epidemia interespécie de 03–04 estão agrupados, enquanto todos os SARS-CoVs humanos formaram outro ramo. A árvore filogenética gerada por nosso método (Fig. 5) é consistente com as árvores filogenéticas geradas nos estudos anteriores 42,50,51 e o método baseado em alinhamento ClustalW usando o pacote MEGA 25 (Fig. S5). A distância CC e RF entre nosso método e o ClustalW são 0,9555357 e 46.

A árvore filogenética para 50 sequências da proteína spike do coronavírus construída por nosso método usando a abordagem de Fitch-Margoliash.

Sequências de proteína beta-globina

50 sequências de proteína beta-globina (Tabela S5) de diferentes espécies 52 com quase 150 aminoácidos foram extraídas do GenBank. Com base no tipo de hospedeiro, 50 sequências da proteína beta-globina podem ser classificadas nos seguintes grupos, como primatas, proboscídeos, ungulados, carnívoros, rodentia, quirópteros, aves, actinoptergii, reptilia e condrichthyes. As árvores filogenéticas construídas por nosso método (Fig. 6) separaram 50 sequências de proteína beta-globina em dois clados principais: clado A e clado B. O clado A continha beta-globinas de mamíferos e o clado B continha beta-globinas de aves, peixes, e espécies reptilianas. De acordo com a divisão de taxonomia, categorizamos dois clados principais em vários subclados. Todos os primatas, proboscidea, carnivora, chiroptera, aves e rodentia foram agrupados com sucesso nos clados (i), (iv), (v), (vi), (viii) e (xii), respectivamente. Os ungulados foram agrupados nos clados (ii), (iii) e (vii). Observamos uma limitação óbvia na Fig. 6 é que nossa abordagem falhou em agrupar as espécies de peixes em clados únicos com base na taxonomia. No entanto, a árvore filogenética gerada por nossa abordagem é consistente e gerou um melhor resultado com base nas características taxonômicas das espécies em comparação com estudos anteriores 45,53. A árvore filogenética gerada pelo ClustalW usando o pacote MEGA 25 (Fig. S6), agrupou com sucesso espécies de peixes e espécies de répteis em clados separados, enquanto nossa abordagem (Fig. 6) falhou em agrupar separadamente. No entanto, de ambas as figuras, é claro que a árvore filogenética gerada por nosso método (Fig. 6) representou uma divisão mais clara em termos de comprimento de ramo do que a árvore filogenética gerada por ClustalW (Fig. S6). As distâncias CC e RF calculadas entre nosso método e ClustalW são 0,7294663 e 64.

A árvore filogenética para 50 sequências da proteína beta-globina construída por nosso método usando a abordagem UPGMA.


Construção da árvore vizinha: matriz de distância não simétrica? - (24 / out / 2006)

Eu tenho um conjunto de 164 GPCR & # 39s intimamente relacionados, dos quais eu queria construir uma árvore usando o vizinho.

Inicialmente, peguei as sequências por meio de 100 bootstraps e calculei as matrizes de distância da proteína usando protdist para os 100 conjuntos de dados. No entanto, quando peguei a saída protdist para o vizinho, o seguinte erro apareceu.

Conjunto de dados nº 4:
ERROR: a matriz de distância não é simétrica:
(135,112) elemento e (112,135) elemento são desiguais.
Eles são 4.544564 e 4.544564, respectivamente.
É uma matriz de distância?

e, portanto, não consegui obter as 100 árvores diferentes, pois o arquivo parou no conjunto de dados # 4 com o erro acima.

Eu ficaria feliz se vocês pudessem me dizer o que pode estar acontecendo.

Eu tenho um conjunto de 164 GPCR & # 39s intimamente relacionados, dos quais eu queria construir uma árvore usando o vizinho.

Inicialmente, peguei as sequências por meio de 100 bootstraps e calculei as matrizes de distância da proteína usando protdist para os 100 conjuntos de dados. No entanto, quando peguei a saída protdist para o vizinho, o seguinte erro apareceu.

Conjunto de dados nº 4:
ERROR: a matriz de distância não é simétrica:
(135,112) elemento e (112,135) elemento são desiguais.
Eles são 4.544564 e 4.544564, respectivamente.
É uma matriz de distância?

e, portanto, não consegui obter as 100 árvores diferentes, pois o arquivo parou no conjunto de dados # 4 com o erro acima.

Eu ficaria feliz se vocês pudessem me informar o que pode estar acontecendo.

Consegui descobrir qual é o problema.

meu infile (uma saída protist) tinha valores de matriz que foram concatenados porque acabaram sendo valores grandes. Eu os editei manualmente, introduzindo um espaço em branco e agora funciona bem.

Os autores do phylip podem querer tomar isso como uma nota e ver que espaços em branco são introduzidos quando as distâncias se tornam muito grandes.


Teoria:

PHYLIP é um pacote completo de análise filogenética que foi desenvolvido por Joseph Felsestein na Universidade de Washington. PHYLIP é usado para encontrar as relações evolutivas entre diferentes organismos. Alguns dos métodos disponíveis neste pacote são método de máxima parcimônia, matriz de distância e métodos de verossimilhança. Os dados são apresentados ao programa a partir de um arquivo de texto, que é preparado pelo usuário usando editores de texto comuns, como processador de texto, etc. Alguns dos programas de análise de sequência, como o ClustalW, podem gravar arquivos de dados no formato PHYLIP. A maioria dos programas procura o arquivo de entrada chamado "infile" - se eles não encontrarem esse arquivo, eles pedem ao usuário para digitar o nome do arquivo de dados. Antes de iniciar o cálculo, o programa pedirá ao usuário para definir as opções (opcional) por meio de um menu. A saída é gravada em arquivos especiais com nomes como outfile e outtree.

Formato de arquivo PHYLIP:

  • Os arquivos de entrada contêm informações sobre o número de sequências, ácidos nucléicos e aminoácidos.
  • A sequência possui 10 caracteres de comprimento. Espaços podem ser adicionados ao final das sequências curtas para torná-las longas.
  • As lacunas podem ser representadas como ‘-‘.
  • Dados ausentes podem ser representados como '?'
  • Espaços entre os alinhamentos são permitidos geralmente a cada 10 bases.

Introdução

A comparação de sequências de DNA ou sequências de proteínas é um problema que vem sendo estudado nas ciências biológicas há anos. É um meio importante para compreender a natureza das proteínas conhecidas e prever as funções desconhecidas das sequências. Muitas abordagens têm sido propostas para medir a similaridade entre sequências de DNA e sequências de proteínas, incluindo alinhamento de múltiplas sequências [1], vetores de momento [2] e vetores de características [3]. O alinhamento de várias sequências usa técnicas de programação dinâmica para identificar a solução de alinhamento globalmente ideal e é o método mais popular na comparação de sequências. No entanto, o problema de alinhamento de sequência é NP-difícil, tornando-o inviável para estudar grandes conjuntos de dados. The moment vector approach characterizes the DNA space by assigning each DNA sequence a vector consisting of moments obtained from its graphical curve. The distance between sequences is then defined to be the Euclidean distance between their corresponding vectors. This approach is effective and operates in linear time. There is no criterion yet to determine the dimension of the moment vector, and the method does not present the DNA or protein space accurately, as we will show in this paper. On the other hand, it is obvious that the correspondence between feature vectors and DNA sequences is not one-to-one. Thus, the feature vector method is not reliable due to loss of information about nucleotide. New methods on sequence comparisons are being continuously developed. For example, Liu et al developed the Python package for generating various modes of feature vectors for sequences [4]. This method depends on fifteen types of feature vectors of sequence, which can be extremely large for computing DNA sequences of long lengths. Zou et al proposed the centre star MSA strategy for sequence alignment [5]. It offers new tools to address large-scale data for multiple sequence alignment.

In this article, we establish a new approach to measure the distance between DNA (or protein) sequences: the Yau-Hausdorff method. This study arises from the graphical representation of DNA or protein sequences proposed by Yau [2, 6], in which each DNA or protein sequence is represented by a curve in two-dimensional plane. The graphical representation method results in one-to-one mapping between DNA sequences and the graphical curves. However the question on how to measure the true distance between two DNA curves has not been addressed up to now. The main contribution of this study is to introduce a new distance between two dimensional curves defined by the DNA (or protein) sequences.

Although many techniques for two dimensional distance are available, presently the most useful criterion to measure the similarity between two-dimensional point sets is the Hausdorff distance [7, 8]. This distance can be used to determine the degree of resemblance between two point sets that are superimposed. However the general Hausdorff distance does not satisfy our requirements, since we wish to measure the minimum distance between two point sets under rigid motions including translation and rotation. The minimum Hausdorff distance under rigid motions is a well-defined metric and not only measure the distance of two point sets, but also the similarity of their shapes. Mathematicians have tried to find efficient algorithms to compute this distance, but none of the existing algorithms reaches the level of efficiency required for analyzing long DNA (or protein) sequences.

In this article, we define the Yau-Hausdorff distance, a new metric which measures the similarity between two-dimensional point sets. This new metric possesses some advantages: it is a well-defined metric in mathematics it is a natural generalization of the minimum one-dimensional Hausdorff distance it takes translation and rotation into full consideration and it is much more efficient to compute than the existing two-dimensional minimum Hausdorff distance. These advantages enable it to be a powerful tool for comparing two-dimensional point sets, particularly for comparing DNA or protein sequences.

In the first section, we introduce two important methods: the Yau-Hausdorff distance and the graphical representation of DNA (or protein) sequences. In the second section, results from applying the Yau-Hausdorff method to several biological examples are presented and compared with results achieved by previous approaches. In the third section we discuss the advantages of the Yau-Hausdorff method and its broader applications.


INTRODUCTION TO PHYLOGENETICS.

From the time of Charles Darwin, it has been the dream of many biologists to reconstruct the evolutionary history of all organisms on Earth and express it in the form of a phylogenetic tree. Phylogeny uses evolutionary distance, or evolutionary relationship, as a way of classifying organisms (taxonomy).

Phylogenetic relationship between organisms is given by the degree and kind of evolutionary distance. To understand this concept better, let us define taxonomy. Taxonomy is the science of naming, classifying and describing organisms. Taxonomists arrange the different organisms in taxa (groups). These are then further grouped together depending on biological similarities. This grouping of taxa reflects the degree of biological similarity.

Systematics takes taxonomy one step further by elucidating new methods and theories that can be used to classify species. This classification is based on similarity traits and possible mechanisms of evolution. In the 1950s, William Hennig, a German biologist, proposed that systematics should reflect the known evolutionary history of lineages, an approach he called phylogenetic systematics. Therefore, phylogenetic systematics is the field that deals with identifying and understanding the evolutionary relationships among many different kinds of organisms

Phylogenic relationships have been traditionally studied based on morphological data. Scientists used to examine different traits or characteristics and tried to establish the degree of relatedness between organisms. Then scientists realized that not all shared characteristics are useful in studying relationships between organisms. This discovery led to a study of systematics called cladistics. Cladistics is the study of phylogenetic relationships based on shared, derived characteristics. There are two types of characteristics, primitive traits and derived traits, which are described below.

Primitive traits are characteristics of organisms that were present in the ancestor of the group that is under study. They do not indicate anything about the relationships of species within a group because they are inherited from the ancestor to all of the members of the group. Derived traits are characteristics of organisms that have evolved within the group under study. These characteristics were not present in the ancestor. They are useful because they can help explain why some species have common traits. The most likely explanation for the presence of a trait that was not present in the ancestor of the whole group is that it evolved from a more recent ancestor.

Two extensive groups of analyses exist to examine phylogenetic relationships: Phenetic methods and cladistic methods. Phenetic methods, or numerical taxonomy, use various measures of overall similarity for the ranking of species. They can use any number or type of characters, but the data has to be converted into a numerical value. The organisms are compared to each other for all of the characters and then the similarities are calculated. After this, the organisms are clustered based on the similarities. These clusters are called phenograms. They do not necessarily reflect evolutionary relatedness. The cladistic method is based on the idea that members of a group share a common evolutionary history and are more closely related to members of the same group than to any other organisms. The shared derived characteristics are called synapomorphies.

The introduction of two important tools has dramatically improved the study of phylogenetics. The first tool is the development of computer algorithms capable of constructing phylogenetic trees. The second tool is the use of molecular sequence data for phylogenetic studies.

Phylogenetics can use both molecular and morphological data in order to classify organisms. Molecular methods are based on studies of gene sequences. The assumption of this methodology is that the similarities between genomes of organisms will help to develop an understanding of the taxonomic relationship among these species. Morphological methods use the phenotype as the base of phylogeny. These two methods are related since the genome strongly contributes to the phenotype of the organisms. In general, organisms with more similar genes are more closely related. The advantage of molecular methods is that it makes possible the study of genes without a morphological expression.

As previously mentioned, closely related species share a more recent common ancestor than distantly related species. The relationships between species can be represented by a phylogenetic tree. This is a graphical representation that has nodes and branches. The nodes represent taxonomic units. Branches reflect the relationships of these nodes in terms of descendants. The branch length usually indicates some form of evolutionary distance. The actual existing species called the operational taxonomic units (OTUs) are at the tip of the branches on the external nodes.

Tree construction methods
Some methods have been proposed for the construction of phylogenetic trees. They can be classified into two groups, the cladistic methods (maximum parsimony and maximum likelihood) and the phenetic method (distance matrix method).

Maximum parsimony trees imply that simple hypotheses are more preferable than complicated ones. This means that the construction of the tree using this method requires the smallest number of evolutionary changes in order to explain the phylogeny of the species under study. In the procedure, this method compares different parsimonious trees and chooses the tree that has the least number of evolutionary steps (substitutions of nucleotides in the context of DNA sequence).

Maximum likelihood This method evaluates the topologies of different trees and chooses the best based on a specified model. This model is based on the evolutionary process that can account for the conversion of one sequence into another. The parameter considered in the topology is the branch length.

Distance matrix is a phenetic approach preferred by many molecular biologists for DNA and protein work. This method estimates the mean number of changes (per site in sequence) in two taxa that have descended from a common ancestor. There is much information in the gene sequences that must be simplified in order to compare only two species at a time. The relevant measure is the number of differences in these two sequences, a measure that can be interpreted as the distance between the species in terms of relatedness.

Molecular phylogeny was first suggested in 1962 by Pauling and Zuckerkandl. They noted that the rates of amino acid substitution in animal hemoglobin were roughly constant over time. They described the molecules as documents of evolutionary history. The molecular method has many advantages. Genotypes can be read directly, organisms can be compared even if they are morphologically very different and this method does not depend on phenotype.

Phylogeny is currently used in many fields such as molecular biology, genetics, evolution, development, behaviour, epidemiology, ecology, systematics, conservation biology, and forensics. Biologists can infer hypotheses from the structure of phylogenetic trees and establish models of different events in evolutionary history. Phylogeny is an exceptional way to organize evolutionary information. Through these methods, scientists can analyse and elucidate different processes of life on Earth.

Today, biologists calculate that there are about 5 to 10 million species of organisms. Different lines of evidence, including gene sequencing, suggest that all organisms are genetically related and may descend from a common ancestor. This relationship can be represented by an evolutionary tree, like the Tree of Life. The Tree of Life is a project that is focused on understanding the origin of diversity among species using phylogeny.

Referências:
1) Whelan S., Lio P., Goldman N., (2001)Molecular phylogenetics: state-of-the-art methods for looking into the past Trends in Genetics, Volume 17, Issue 5, 1, Pages 262-272

2) Berger J. Introduction to Molecular Phylogeny Construction. BIOL 334.

3) Wen-Hsiung Li. Molecular Evolution. Sinauer Associates, 1997.

4) Pagel, M. (1999) Inferring historical patterns of biological evolution. Nature 401, 877–884

5) Zuckerlandl, E. and Pauling, L. (1962) Molecular disease, evolution, and genetic heterogeneity. In Horizons in Biochemistry (Kasha,M. and Pullman, B., eds), pp. 189–225, Academic Press 1921–1930

6) Felsenstein, J. (1981), Evolutionary trees from DNA sequences: a maximum likelihood approach, Journal of Molecular Evolution 17:368-376

7) Endo T., Ogishima S., Tanaka H. (2003) Standardized phylogenetic tree: a reference to discover functional evolution J Mol Evol 57 Suppl 1:S174-81. Plant Species Biology

8) Murren C. (2002) Phenotypic integration in plants. Plant Species Biology. Volume 17 Issue 2-3 Page 89


Dtaidistance.dtw¶

Compute the optimal path from the nxm warping paths matrix.

dtaidistance.dtw. best_path2 ( caminhos ) ¶

Compute the optimal path from the nxm warping paths matrix.

dtaidistance.dtw. distance ( s1, s2, window=None, max_dist=None, max_step=None, max_length_diff=None, penalty=None, psi=None, use_c=False, use_pruning=False, only_ub=False ) ¶

This function keeps a compact matrix, not the full warping paths matrix.

  • s1 – First sequence
  • s2 – Second sequence
  • janela – Only allow for maximal shifts from the two diagonals smaller than this number. It includes the diagonal, meaning that an Euclidean distance is obtained by setting window=1.
  • max_dist – Stop if the returned values will be larger than this value
  • max_step – Do not allow steps larger than this value
  • max_length_diff – Return infinity if length of two series is larger
  • pena – Penalty to add if compression or expansion is applied
  • psi – Psi relaxation parameter (ignore start and end of matching). Useful for cyclical series.
  • use_c – Use fast pure c compiled functions
  • use_pruning – Prune values based on Euclidean distance. This is the same as passing ub_euclidean() to max_dist
  • only_ub – Only compute the upper bound (Euclidean).

dtaidistance.dtw. distance_fast ( s1, s2, window=None, max_dist=None, max_step=None, max_length_diff=None, penalty=None, psi=None, use_pruning=False, only_ub=False ) ¶

Same as distance() but with different defaults to chose the fast C-based version of the implementation (use_c = True).

Note: the series are expected to be arrays of the type double . Thus numpy.array([1,2,3], dtype=numpy.double) or array.array('d', [1,2,3])

dtaidistance.dtw. distance_matrix ( s, max_dist=None, use_pruning=False, max_length_diff=None, window=None, max_step=None, penalty=None, psi=None, block=None, compact=False, parallel=False, use_c=False, use_mp=False, show_progress=False, only_triu=False ) ¶

Distance matrix for all sequences in s.

  • s – Iterable of series
  • janela – see distance()
  • max_dist – see distance()
  • max_step – see distance()
  • max_length_diff – see distance()
  • pena – see distance()
  • psi – see distance()
  • bloquear – Only compute block in matrix. Expects tuple with begin and end, e.g. ((0,10),(20,25)) will only compare rows 0:10 with rows 20:25.
  • compactar – Return the distance matrix as an array representing the upper triangular matrix.
  • paralelo – Use parallel operations
  • use_c – Use c compiled Python functions
  • use_mp – Force use Multiprocessing for parallel operations (not OpenMP)
  • show_progress – Show progress using the tqdm library. This is only supported for the pure Python version (thus not the C-based implementations).

The distance matrix or the condensed distance matrix if the compact argument is true

Same as distance_matrix() but with different defaults to choose the fast parallized C version (use_c = True and parallel = True).

This method uses the C-compiled version of the DTW algorithm and uses parallelization. By default this is the OMP C parallelization. If the OMP functionality is not available the parallelization is changed to use Python’s multiprocessing library.

dtaidistance.dtw. distances_array_to_matrix ( dists, nb_series, block=None, only_triu=False ) ¶

Transform a condensed distances array to a full matrix representation.

The upper triangular matrix will contain all the distances.

dtaidistance.dtw. lb_keogh ( s1, s2, window=None, max_dist=None, max_step=None, max_length_diff=None ) ¶

dtaidistance.dtw. ub_euclidean ( s1, s2 ) ¶

dtaidistance.dtw. warp ( from_s, to_s, path=None, **kwargs ) ¶

Warp a function to optimally match a second function.

  • from_s – First sequence
  • to_s – Second sequence
  • caminho – (Optional) Path to use wrap the ‘from_s’ sequence to the ‘to_s’ sequence If provided, this function will use it. If not provided, this function will calculate it using the warping_path function
  • kwargs – Same options as warping_paths() .

Returns the number of compressions and expansions performed to obtain the best path. Can be used as a metric for the amount of warping.

Parameters:caminho – path to be tested

:returns number of compressions or expansions

dtaidistance.dtw. warping_path ( from_s, to_s, **kwargs ) ¶

Compute warping path between two sequences.

dtaidistance.dtw. warping_path_fast ( from_s, to_s, **kwargs ) ¶

Compute warping path between two sequences.

dtaidistance.dtw. warping_path_penalty ( s1, s2, penalty_post=0, **kwargs ) ¶

Dynamic Time Warping with an alternative penalty.

This function supports two different penalties. The traditional DTW penalty penalty is used in the matrix during calculation of the warping path (see distance() ).

The second penalty penalty_post measures the amount of warping. This penalty doesn’t affect the warping path and is added to the DTW distance after the warping for every compression or expansion.

  • s1 – First sequence
  • s2 – Second sequence
  • penalty_post – Penalty to be added after path calculation, for compression/extension

:returns [DTW distance, best path, DTW distance between 2 path elements, DTW matrix]

dtaidistance.dtw. warping_path_prob_fast ( from_s, to_s, média, **kwargs ) ¶

Compute warping path between two sequences.

dtaidistance.dtw. warping_paths ( s1, s2, window=None, max_dist=None, max_step=None, max_length_diff=None, penalty=None, psi=None ) ¶

The full matrix of all warping paths (or accumulated cost matrix) is built.


Assista o vídeo: uitleg berekeningen met schaal (Agosto 2022).