JoVE Logo

Entrar

É necessária uma assinatura da JoVE para visualizar este conteúdo. Faça login ou comece sua avaliação gratuita.

Neste Artigo

  • Resumo
  • Resumo
  • Introdução
  • Protocolo
  • Resultados
  • Discussão
  • Divulgações
  • Agradecimentos
  • Materiais
  • Referências
  • Reimpressões e Permissões

Resumo

Esta plataforma computacional analítica fornece orientação prática para microbiologistas, ecologistas e epidemiologistas interessados em genômica populacional bacteriana. Especificamente, o trabalho aqui apresentado demonstrou como realizar: i) mapeamento guiado por filogenia de genótipos hierárquicos; ii) análise baseada em frequência de genótipos; iii) análises de parentesco e clonalidade; iv) identificação da linhagem diferenciando loci acessório.

Resumo

O uso rotineiro e sistemático do sequenciamento de genomas integrais bacterianos (WGS) está aumentando a precisão e a resolução das investigações epidemiológicas realizadas por laboratórios e agências reguladoras de Saúde Pública. Grandes volumes de dados WGS disponíveis publicamente podem ser usados para estudar populações patogênicas em larga escala. Recentemente, uma plataforma computacional livremente disponível chamada ProkEvo foi publicada para permitir análises genômicas populacionais hierárquicas reprodutíveis, automatizadas e escaláveis usando dados wgs bacterianos. Esta implementação do ProkEvo demonstrou a importância de combinar mapeamento genotipado padrão de populações com mineração de conteúdo genômico acessório para inferência ecológica. Em particular, o trabalho aqui destacado utilizou saídas derivadas do ProkEvo para análises hierárquicas em escala populacional usando a linguagem de programação R. O objetivo principal foi fornecer um guia prático para microbiologistas, ecologistas e epidemiologistas, mostrando como: i) utilizar um mapeamento guiado por filogenia de genótipos hierárquicos; ii) avaliar as distribuições de frequência dos genótipos como proxy para a aptidão ecológica; iii) determinar relações de parentesco e diversidade genética utilizando classificações genotipas específicas; e iv) linhagem de mapa diferenciando loci acessório. Para melhorar a reprodutibilidade e a portabilidade, os arquivos de marcação R foram usados para demonstrar toda a abordagem analítica. O conjunto de dados do exemplo continha dados genômicos de 2.365 isolados do patógeno zoonótico Salmonella Newport. O mapeamento ancorado em filogenia de genótipos hierárquicos (Serovar -> BAPS1 -> ST-> cgMLST) revelou a estrutura genética populacional, destacando os tipos de sequência (STs) como o genótipo de diferenciação de pedra-chave. Através das três linhagens mais dominantes, ST5 e ST118 compartilharam um ancestral comum mais recentemente do que com o filotipo st45 altamente clonal. As diferenças baseadas em ST foram ainda destacadas pela distribuição de loci de resistência antimicrobiana acessória (AMR). Por fim, uma visualização ancorada em filogenia foi usada para combinar genótipos hierárquicos e conteúdo AMR para revelar a estrutura de parentesco e assinaturas genômicas específicas da linhagem. Combinada, essa abordagem analítica fornece algumas diretrizes para a realização de análises genômicas populacionais heurísticas da população bacteriana utilizando informações pan-genômicas.

Introdução

O uso crescente do sequenciamento do genoma bacteriano (WGS) como base para vigilância de rotina e inquérito epidemiológico por laboratórios e agências reguladoras de Saúde Pública aprimorou substancialmente as investigações de surtosde patógenos 1,2,3,4. Como consequência, grandes volumes de dados WGS não identificados estão agora disponíveis publicamente e podem ser usados para estudar aspectos da biologia populacional de espécies patogênicas em escala sem precedentes, incluindo estudos baseados em: estruturas populacionais, frequências de genótipos e frequências de genes/alelos em vários reservatórios, regiões geográficas e tipos de ambientes5 . Os inquéritos epidemiológicos mais utilizados pelo WGS baseiam-se apenas em análises utilizando apenas o conteúdo núcleo-genômico compartilhado, onde o conteúdo compartilhado (conservado) é usado apenas para classificação genotípica (por exemplo, chamada de variante), e essas variantes se tornam a base para análise epidemiológica e rastreamento 1,2,6,7 . Normalmente, o genotipagem baseado em núcleo bacteriano é realizado com abordagens de digitação de sequência de vários lócus (MLST) usando sete a alguns milhares de loci 8,9,10. Essas estratégias baseadas em MLST englobam o mapeamento de sequências genômicas pré-montadas ou montadas em bancos de dados altamente curados, combinando informações alélicas em unidades genotípicas reprodutíveis para análise epidemiológica e ecológica11,12. Por exemplo, esta classificação baseada em MLST pode gerar informações genotípicas em dois níveis de resolução: tipos de sequência de nível inferior (STs) ou linhagens ST (7 loci), e variantes MLST (cgMLST) de genoma-núcleo de nível superior (~ 300-3.000 loci)10.

A classificação genotípica baseada em MLST é computacionalmente portátil e altamente reprodutível entre laboratórios, tornando-a amplamente aceita como uma abordagem de sub-digitação precisa abaixo do nívelde espécies bacterianas 13,14. No entanto, as populações bacterianas são estruturadas com diferentes graus de clonalidade específicos das espécies (ou seja, homogeneidade genotípica), padrões complexos de parentesco hierárquico entre genótipos 15,16,17 e uma ampla gama de variações na distribuição do conteúdo genômico acessório 18,19 . Assim, uma abordagem mais holística vai além de classificações discretas em genótipos MLST e incorpora as relações hierárquicas de genótipos em diferentes escalas de resolução, juntamente com o mapeamento de conteúdo genômico acessório em classificações genotipas genotipas, o que facilita a inferência de base populacional 18,20,21 . Além disso, as análises também podem focar em padrões compartilhados de herança de loci genômico acessório entre mesmo genótipos distantes21,22. No geral, a abordagem combinada permite o interrogatório agnóstico das relações entre a estrutura populacional e a distribuição de composições genômicas específicas (por exemplo, loci) entre gradientes geoespaciais ou ambientais. Tal abordagem pode produzir informações fundamentais e práticas sobre as características ecológicas de populações específicas que podem, por sua vez, explicar seus padrões de tropismo e dispersão entre reservatórios, como animais alimentícios ou humanos.

Esta abordagem hierárquica orientada à população baseada em sistemas exige grandes volumes de dados do WGS para poder estatístico suficiente para prever assinaturas genômicas distintas. Consequentemente, a abordagem requer uma plataforma computacional capaz de processar milhares de genomas bacterianos ao mesmo tempo. Recentemente, o ProkEvo foi desenvolvido e é uma plataforma de bioinformática livremente disponível, automatizada, portátil e escalável que permite análises populacionais bacterianas de base hierárquica integrativa, incluindo mapeamento pan-genômico20. O ProkEvo permite o estudo de conjuntos de dados bacterianos de forma moderada a grande, ao mesmo tempo em que fornece uma estrutura para gerar hipóteses epidemiológicas e ecológicas testáveis e inferíveis e previsões fenotípicas que podem ser personalizadas pelo usuário. Este trabalho complementa esse pipeline ao fornecer um guia sobre como utilizar arquivos de saída derivados do ProkEvo como entrada para análises e interpretação de classificações populacionais hierárquicas e mineração genômica acessório. O estudo de caso aqui apresentado utilizou a população da linhagem Salmonella enterica I zoonotic serovar S. Newport como exemplo e foi especificamente destinada a fornecer diretrizes práticas para microbiologistas, ecologistas e epidemiologistas sobre como: i) usar uma abordagem automatizada dependente de filogenia para mapear genótipos hierárquicos; ii) avaliar a distribuição de frequência dos genótipos como proxy para avaliação da aptidão ecológica; iii) determinar graus específicos de clonalidade de linhagem utilizando abordagens estatísticas independentes; e iv) mapear a linhagem de linhagem amr loci como exemplo de como extrair conteúdo genômico acessório no contexto da estrutura populacional. De forma mais ampla, essa abordagem analítica fornece uma estrutura generalizável para realizar uma análise genômica baseada na população em uma escala que pode ser usada para inferir padrões evolutivos e ecológicos, independentemente das espécies-alvo.

Protocolo

1. Prepare arquivos de entrada

NOTA: O protocolo está disponível aqui - https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code. O protocolo pressupõe que o pesquisador tenha usado especificamente o ProkEvo (ou um pipeline comparável) para obter as saídas necessárias disponíveis neste repositório Figshare (https://figshare.com/account/projects/116625/articles/15097503 - credenciais de login são necessárias - O usuário deve criar uma conta gratuita para ter acesso ao arquivo!). Note-se que o ProkEvo baixa automaticamente sequências genômicas do repositório NCBI-SRA e requer apenas um arquivo .txt contendo uma lista de identificações de genoma como uma entrada20, e a usada para este trabalho em S. Os isolados de Newport USA são fornecidos aqui (https://figshare.com/account/projects/116625/articles/15097503?file=29025729).  Informações detalhadas sobre como instalar e usar esta plataforma de genômica bacteriana estão disponíveis aqui (https://github.com/npavlovikj/ProkEvo/wiki/2.-Quick-start)20

  1. Gerar filogenia de genoma-núcleo usando FastTree23 como descrito anteriormente20, que não faz parte da plataforma de bioinformática20. FastTree requer o alinhamento roary24 núcleo-genoma como um arquivo de entrada. O arquivo filogenia é chamado newport_phylogeny.tree (https://figshare.com/account/projects/116625/articles/15097503?file=29025690).
  2. Gerar saída SISTR25 contendo as informações relativas às classificações serovars para Salmonella e dados de chamada variante cgMLST (sistr_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025699).
  3. Gerar arquivo BAPS por fastbaps 26,27 contendo os níveis BAPS 1-6 classificação de genomas em subgrupos ou haplotipos (fastbaps_partition_baps_prior_l6.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025684).
  4. Gerar classificação baseada em MLST de genomas em STs usando o programa MLST (https://github.com/tseemann/mlst)28 (salmonellast_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025696).
  5. Gerar saída ABRicate (https://github.com/tseemann/abricate)29 como um arquivo .csv contendo loci AMR mapeado por genoma (sabricate_resfinder_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025693).
    NOTA: O usuário pode desativar partes específicas do pipeline de bioinformática ProkEvo (verifique aqui para obter mais informações - https://github.com/npavlovikj/ProkEvo/wiki/4.2.-Remove-existing-bioinformatics-tool-from-ProkEvo). A abordagem analítica aqui apresentada fornece diretrizes para como realizar uma análise de base populacional após a execução do gasoduto bioinforático.

2. Baixe e instale o software estatístico e o aplicativo IDE (Integrated Development Environment, ambiente de desenvolvimento integrado)

  1. Baixe a versão mais atualizada e gratuitamente disponível do software R para Linux, Mac ou PC30. Siga as etapas padrão de instalação.
  2. Baixe a versão mais atualizada e gratuitamente disponível do RStudio desktop IDE aqui31. Siga as etapas padrão para instalação.
    NOTA: Os próximos passos estão incluídos no script disponível, incluindo informações detalhadas sobre a utilização do código, e devem ser executados sequencialmente para gerar as saídas e figuras apresentadas neste trabalho (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). O usuário pode decidir usar outra linguagem de programação para conduzir essa análise analítica/estatística, como python. Nesse caso, use as etapas nos scripts como uma estrutura para realizar a análise.

3. Instale e ative bibliotecas de ciência de dados

  1. Instale todas as bibliotecas de ciência de dados de uma só vez como um primeiro passo na análise. Evite instalar as bibliotecas sempre que o script precisar ser re-executado. Use a função install.packages() para instalação da biblioteca. Alternativamente, o usuário pode clicar na guia Pacotes dentro do IDE e instalar automaticamente os pacotes. O código usado para instalar todas as bibliotecas necessárias é apresentado aqui:
    # Instalar Tidyverse
    install.packages("tidyverse")
    # Instalar skimr

    install.packages("skimr")
    # Instalar vegan
    install.packages("vegan")
    # Instalar forcats
    install.packages("forcats")
    # Instalar naniar
    install.packages("naniar")
    # Instalar ggpubr
    install.packages("ggpubr")
    # Instalar ggrepel
    install.packages("ggrepel")
    # Instalar remodele2
    install.packages("remodele2")
    # Instalar RColorBrewer
    install.packages("RColorBrewer")
    # Instalar ggtree
    se (!requeronospace("BiocManager", silenciosamente = TRUE))
    install.packages("BiocManager")
    BiocManager::install("ggtree")
    # A instalação do ggtree solicitará uma pergunta sobre a instalação - a resposta é "a" para instalar/atualizar todas as dependências
  2. Ative todas as bibliotecas ou pacotes usando a função biblioteca no início do script, logo após a instalação. Aqui está uma demonstração sobre como ativar todos os pacotes necessários:
    Ative as bibliotecas e pacotes
    biblioteca (tidyverse)
    biblioteca (skimr)
    biblioteca (vegan)
    biblioteca (forcats)
    biblioteca (naniar)
    biblioteca (ggtree)
    biblioteca (ggpubr)
    biblioteca (ggrepel)
    biblioteca (remodele2)
    biblioteca (RColorBrewer)
  3. Suprimir a saída do código usado para instalação e ativação de bibliotecas e pacotes usando {r, incluir = FALSE} no mandril de código, da seguinte forma:
    ''' {r, include = FALSE}
    # Instalar Tidyverse

    install.packages("tidyverse")
    ```

    NOTA: Esta etapa é opcional, mas evita mostrar pedaços de código desnecessário no relatório final html, doc ou pdf.
  4. Para obter uma breve descrição das funções específicas de todas as bibliotecas, juntamente com alguns links úteis para coletar mais informações, consulte as etapas 3.4.1-3.4.11.
    1. Tidyverse - use esta coleção de pacotes utilizados para ciência de dados, incluindo entrada de dados, visualização, análise e agregação e modelagem estatística. Normalmente, ggplot2 (visualização de dados) e dplyr (disputa de dados e modelagem) são pacotes práticos presentes nesta biblioteca32.
    2. escaramuça - use este pacote para gerar estatísticas sumárias de quadros de dados, incluindo a identificação de valores faltantes33.
    3. vegan - use este pacote para análises estatísticas de ecologia comunitária, como o cálculo de estatísticas baseadas na diversidade (por exemplo, alfa e beta-diversidade)34.
    4. forcats - use este pacote para trabalhar com variáveis categóricas, como reordenar classificações. Este pacote faz parte da biblioteca Tidyverse32.
    5. naniar - use este pacote para visualizar a distribuição de valores ausentes entre variáveis em um quadro de dados, utilizando a função viss_miss()35.
    6. ggtree - use este pacote para a visualização de árvores filogenéticas36.
    7. ggpubr - use este pacote para melhorar a qualidade das visualizações baseadas em ggplot237.
    8. ggrepel - use este pacote para rotulagem de texto dentro dos gráficos38.
    9. remodele2 - use a função melt() deste pacote para a transformação de quadros de dados de amplo para longo formato39.
    10. RColorBrewer - use este pacote para gerenciar cores em visualizações baseadas em ggplot240.
    11. Use as seguintes funções básicas para análise de dados exploratórios: head() para verificar as primeiras observações em um quadro de dados, cauda() para verificar as últimas observações de um quadro de dados, is.na() para contar o número de linhas com valores faltantes em um quadro de dados, dim() para verificar o número de linhas e colunas em um conjunto de dados, tabela() para contar observações em uma variável, e soma() para contar o número total de observações ou instâncias.

4. Entrada e análise de dados

NOTA: Uma informação detalhada sobre cada etapa desta análise pode ser encontrada no script disponível (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). No entanto, aqui estão alguns pontos importantes a serem considerados:

  1. Faça toda a entrada de dados genômicos, incluindo todas as classificações genotipíticas (serovar, BAPS, ST e cgMLST) usando a função read_csv().
  2. Renomeie, crie novas variáveis e selecione colunas de interesse de cada conjunto de dados antes da agregação de vários conjuntos de dados.
  3. Não remova valores ausentes de nenhum conjunto de dados independente. Aguarde até que todos os conjuntos de dados sejam agregados para modificar ou excluir valores faltantes. Se novas variáveis forem criadas para cada conjunto de dados, os valores ausentes ão por padrão categorizados em uma das classificações recém-geradas.
  4. Verifique se há caracteres errados, como hífens ou marcas de interrogatórios e substitua-os por NA (Não aplicável). Faça o mesmo por valores perdidos.
  5. Dados agregados com base na ordem hierárquica dos genótipos (sorovar -> BAPS1 -> ST -> cgMLST), e por agrupamento com base nas identificações individuais do genoma.
  6. Verifique se faltam valores usando várias estratégias e lide com essas inconsistências de forma explícita. Remova apenas um genoma ou isole dos dados se a classificação não for confiável. Caso contrário, considere a análise que está sendo feita e remova as NAs caso a caso.
    NOTA: É altamente recomendável estabelecer uma estratégia para lidar com tais valores a priori. Evite remover todos os genomas ou isolados com valores perdidos em quaisquer variáveis. Por exemplo, um genoma pode ter classificação ST sem ter o número da variante cgMLST. Nesse caso, o genoma ainda pode ser usado para a análise baseada em ST.
  7. Uma vez que todos os conjuntos de dados são agregados, atribua-os a um nome ou objeto de quadro de dados que pode ser usado em vários locais na análise de acompanhamento, para evitar ter que gerar o mesmo arquivo de metadados para cada figura do papel.

5. Realizar análises e gerar visualizações

NOTA: Uma descrição detalhada de cada etapa necessária para produzir todas as análises e visualizações pode ser encontrada no arquivo de marcação deste papel (https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code). O código para cada figura é separado em pedaços e todo o script deve ser executado sequencialmente. Além disso, o código para cada figura principal e suplementar é fornecido como um arquivo separado (ver Arquivo Suplementar 1 e Arquivo Suplementar 2). Aqui estão alguns pontos essenciais (com trechos de código) a serem considerados ao gerar cada número principal e suplementar.

  1. Use ggtree para traçar uma árvore filogenética juntamente com informações genotipópicas (Figura 1).
    1. Otimize o tamanho da figura ggtree, incluindo diâmetro e largura dos anéis, alterando os valores numéricos dentro das funções xlim() e gheatmap(largura =), respectivamente (veja o código do exemplo abaixo).
      tree_plot <-ggtree (árvore, layout = "circular") + xlim (-250, NA)
      figure_1 <-gheatmap(tree_plot, d4, offset=.0, largura=20, colnames = FALSE)
      NOTA: Para uma comparação mais detalhada de programas que podem ser usados para plotagem filogenética, verifique este trabalho20. O trabalho destacou uma tentativa de identificar estratégias para melhorar as visualizações baseadas em ggtree, como a diminuição do tamanho do conjunto de dados, mas os comprimentos dos galhos e a topologia das árvores não foram tão claramente discriminantes em comparação com o phandango41.
    2. Agrego todos os metadados em as poucas categorias possíveis para facilitar a escolha do painel de coloração ao traçar várias camadas de dados com a árvore filogenética (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_1.Rmd). Conduzir a agregação de dados com base na questão do interesse e conhecimento do domínio.
  2. Use um gráfico de barras para avaliar frequências relativas (Figura 2).
    1. Dados agregados para ambas as linhagens ST e variantes cgMLST para facilitar visualizações. Escolha um limiar empírico ou estatístico utilizado para agregação de dados, considerando a pergunta que está sendo feita.
    2. Para um código de exemplo que pode ser usado para inspecionar a distribuição de frequência de linhagens ST para determinar o corte ver abaixo:
      st_dist <- d2 %>% group_by(ST) %>% # grupo pela coluna ST
      contagem() %>% # conte o número de observações
      organizar(desc(n)) # organizar as contagens em ordem decrescente
    3. Para um código de exemplo que mostra como STs menores (de baixa frequência) podem ser agregados, consulte abaixo. Como demonstrado abaixo, as STs que não são numeradas como 5, 31, 45, 46, 118, 132 ou 350, são agrupadas como "Outras STs". Use um código semelhante para variantes cgMLST (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_2.Rmd).
      d2$st <-ifelse(d2$ST == 5, "ST5", # criar uma nova coluna ST para a qual S Ts menores são agregados como Outros
      ifelse(d2$ST == 31, "ST31",
      ifelse(d2$ST == 45, "ST45",
      ifelse(d2$ST == 46, "ST46",
      ifelse(d2$ST == 118, "ST118",
      ifelse(d2$ST == 132, "ST132", ifelse(d2$ST == 350, "ST350", "Outros STs"))))))
  3. Use uma abordagem aninhada para calcular a proporção de cada linhagem ST dentro de cada subgrupe BAPS1 para identificar STs que estejam relacionadas ancestralmente (pertencem ao mesmo subgrupe BAPS1) (Figura 3). O código abaixo exemplifica como a proporção baseada em ST pode ser calculada entre subgrupos BAPS1 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_3.Rmd):
    baps <- d2b %>% filtro (serovar == "Newport") %>% # filtro Newport serovars
    selecionar (baps_1, ST) %>% # selecionar baps_1 e ST colunas
    mutação(ST = as.numérico(ST)) %>% # alterar coluna ST para numérica
    drop_na(baps_1, ST) %>% # queda NAs
    group_by(baps_1, ST) %>% # grupo por baps_1 e ST
    summarise(n = n()) %>% # observações de contagem
    mutação (prop = n/sum(n)*100) # proporções de cálculo
  4. Plote a distribuição de loci AMR através das linhagens ST usando os resultados de anotação genética baseada em Resfinder (Figura 4).
    NOTA: O Resfinder tem sido amplamente utilizado em estudos ecológicos e epidemiológicos42. A anotação de genes codificadores de proteínas pode variar dependendo da frequência com que os bancos de dados são curados e atualizados. Se usar o pipeline de bioinformática sugerido, o pesquisador pode comparar classificações loci baseadas em AMR em diferentes bancos de dados20. Certifique-se de verificar quais bancos de dados estão sendo continuamente atualizados. Não use bancos de dados desatualizados ou mal curados, a fim de evitar erros de chamadas.
    1. Use um limiar empírico ou estatístico para filtrar o loci AMR mais importante para facilitar visualizações. Forneça um arquivo de .csv bruto contendo as proporções calculadas de todos os loci AMR em todas as linhagens ST, como mostrado aqui (https://figshare.com/account/projects/116625/articles/15097503?file=29025687).
    2. Calcule a proporção AMR para cada ST usando o seguinte código (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_4.Rmd):
      # Cálculos para ST45
      d2c <- data6 %>% filtro(st == "ST45") # filtrar os dados ST45 primeiro
      # para ST45, calcule a proporção de AMR loci e só mantenha proporção superior a 10%

      d3c <- d2c %>% selecionar (id, gene) %>% # colunas selecionadas
      group_by(id, gene) %>% # grupo por id e gene
      summarize (contagem = n()) %>% # observações de contagem
      mutação (contagem = substituição(contagem, contagem == 2, 1)) %>% # substituir contagens iguais a 2 por 1 considerar apenas uma cópia de cada gene (duplicações podem não ser confiáveis), mas o pesquisador pode decidir excluí-las ou mantê-las. Se o pesquisador quiser excluí-los, use a função filter (contagem != 2) ou então deixe como está
      filtro (contagem <= 1) # contagem de filtros abaixo ou igual a 1
      d4c <- d3c %>% group_by%>% # grupo por gene
      summarize (valor = n()) %>% # observações de contagem
      mutação (total = tabela(data1$st)[6]) %>% # obter as contagens totais de st mutate(prop = (valor/total)*100) # proporções de cálculo
      d5c <- d4c %>% mutação (st = "ST45") # crie uma coluna st e adicione informações st
    3. Após os cálculos serem feitos para todos os STs, combine conjuntos de dados como um quadro de dados, usando o seguinte código:
      Combine conjuntos de dados
      d6 <-rbind(d5a, d5b, d5c, d5d, d5e, d5f, d5g, d5h) # conjuntos de dados de ligação de linha
    4. Para exportar o arquivo .csv contendo as proporções calculadas, use o código:
      # Tabela de dados de exportação contendo informações de loci ST e AMR
      abx_newport_st <- d6 escrever.csv(abx_newport_st,"abx_newport_st.csv", row.names = FALSE)
    5. Antes de traçar a distribuição baseada em AMR através de linhagens ST, filtrar os dados com base em um limiar para facilitar visualizações, como mostrado abaixo:
      # Filtro AMR loci com proporção maior ou igual a 10%
      d7 <- d6 % >% filtro (prop >= 10) # determinar o limiar empiricamente ou estatisticamente
  5. Plote a filogenia do genoma-núcleo juntamente com as classificações genotiplicas hierárquicas e dados AMR em um único plot usando ggtree (Figura 5).
    1. Otimize o tamanho da figura dentro do ggtree usando os parâmetros acima mencionados (ver passo 5.1.1.).
    2. Otimizar visualizações através de variáveis agregando, ou usando classificação binária, como presença genética ou ausência. Quanto mais recursos são adicionados ao enredo, mais difícil fica o processo de seleção de coloração (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_5.Rmd).
      NOTA: Figuras suplementares - descrição detalhada de todo o código podem ser encontradas aqui (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd).
  6. Use um gráfico de dispersão em ggplot2, sem agregação de dados, para exibir a distribuição de linhagens ST ou variantes cgMLST, destacando os genótipos mais frequentes (Figura Suplementar 1) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s1.Rmd).
  7. Faça uma análise aninhada para avaliar a composição das linhagens ST através da proporção de variantes cgMLST, a fim de obter um vislumbre da diversidade genética baseada em ST, ao mesmo tempo em que identifica as variantes mais frequentes e suas relações genéticas (ou seja, variantes cgMLST que pertencem ao mesmo ST compartilharam um ancestral mais recentemente do que aquelas pertencentes a STs distintas) (Figura Suplementar 2 ) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s2.Rmd).
  8. Use a métrica de ecologia comunitária, ou seja, o índice D de diversidade de Simpson, para medir o grau de clonalidade ou diversidade genotipada de cada uma das principais linhagens ST43 (Figura Suplementar 3).
    1. Calcule o índice de diversidade entre as linhagens ST em diferentes níveis de resolução genotipítica, incluindo o BAPS nível 1 a 6 e o cgMLST. Abaixo está o exemplo de código sobre como fazer este cálculo no baps nível 1 (BAPS1) de resolução genotipa:
      # BAPS nível 1 (BAPS1)
      # solte os STs e BAPS1 com NAs, grupo por ST e BAPS1 e, em seguida, calcule o índice de Simpson
      baps1 <- dados6 %>%
      selecionar (st, BAPS1) %>% # selecionar colunas
      drop_na(st, BAPS1) %>% # queda NAs
      group_by(st, BAPS1) %>% # grupo por colunas
      summarise(n = n()) %>% # observações de contagem
      mutação (simpson = diversidade(n, "simpson")) %>% # calcular diversidade
      group_by(st) %>% # grupo por coluna
      summarise(simpson = média(simpson)) %>% # calcular a média do índice
      melt (id.vars=c("st"), measure.vars="simpson",
      variable.name="índice", value.name="valor") %>% # encoberto em formato longo
      mutação (estratos = "BAPS1") # criar uma coluna de estratos
      NOTA: Uma população mais geneticamente diversificada (ou seja, mais variantes em diferentes camadas de resolução genotipítica) tem um índice mais elevado no nível cgMLST e produz um aumento dos valores baseados em índices indo do nível BAPS 2 para 6 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s3.Rmd).
  9. Examine o grau de diversidade genotipípica das linhagens ST, traçando a frequência relativa dos subgrupos BAPS em todos os níveis de resolução (BAPS1-6) (Figura Suplementar 4). Quanto mais diversificada for a população, menor é a distribuição de subgrupos baps (haplotipos) passando de BAPS1 (menor nível de resolução) para BAPS6 (maior nível de resolução) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s4.Rmd).

Resultados

Utilizando a plataforma computacional ProkEvo para análises de genômica populacional, o primeiro passo na mineração de dados bacterianas do WGS é composto por examinar a estrutura populacional hierárquica no contexto de uma filogenia núcleo-genoma (Figura 1). No caso de S. linhagem enterica I, como exemplificado pelo S. O conjunto de dados de Newport, a população é hierarquicamente estruturada da seguinte forma: sorovar (nível mais baixo de resolução)...

Discussão

A utilização de uma análise heurística e hierárquica da estrutura populacional baseada em sistemas fornece uma estrutura para identificar novas assinaturas genômicas em conjuntos de dados bacterianos que têm o potencial de explicar padrões ecológicos e epidemiológicos únicos20. Além disso, o mapeamento de dados do genoma acessório na estrutura populacional pode ser usado para inferir traços adquiridos ancestralmente e/ou recém-derivados que facilitem a disseminação de linhagens ST...

Divulgações

Os autores declararam que não existem interesses concorrentes.

Agradecimentos

Este trabalho foi apoiado por financiamento da Divisão de Pesquisa Agrícola da UNL-IANR e do Instituto Nacional de Pesquisa e Educação de Resistência Antimicrobiana e pelo Nebraska Food for Health Center do Departamento de Ciência e Tecnologia de Alimentos (UNL). Esta pesquisa só poderia ser concluída utilizando o Holland Computing Center (HCC) na UNL, que recebe apoio da Iniciativa de Pesquisa do Nebraska. Também somos gratos por ter acesso, através do HCC, aos recursos fornecidos pela Open Science Grid (OSG), que é apoiada pela National Science Foundation e pelo Escritório de Ciência do Departamento de Energia dos EUA. Este trabalho utilizou o Software de Gestão de Fluxo de Trabalho pegasus, que é financiado pela Fundação Nacional de Ciência (grant #1664162).

Materiais

NameCompanyCatalog NumberComments
amr_data_filteredhttps://figshare.com/account/projects/116625/articles/14829225?file=28758762
amr_data_rawhttps://figshare.com/account/projects/116625/articles/14829225?file=28547994
baps_outputhttps://figshare.com/account/projects/116625/articles/14829225?file=28548003
Core-genome phylogenyhttps://figshare.com/account/projects/116625/articles/14829225?file=28548006
genome_srahttps://figshare.com/account/projects/116625/articles/14829225?file=28639209
Linux, Mac, or PCany high-performance platform
mlst_outputhttps://figshare.com/account/projects/116625/articles/14829225?file=28547997
sistr_outputhttps://figshare.com/account/projects/116625/articles/14829225?file=28548000
figshare credentials are required for login and have access to the files

Referências

  1. Grad, Y. H., et al. Genomic epidemiology of the Escherichia coli O104:H4 outbreaks in Europe, 2011. Proceedings of the National Academy of Sciences of the United States of America. 109 (8), 3065-3070 (2012).
  2. Worby, C. J., Chang, H. -. H., Hanage, W. P., Lipsitch, M. The distribution of pairwise genetic distances: a tool for investigating disease transmission. Genetics. 198 (4), 1395-1404 (2014).
  3. Leekitcharoenphon, P., et al. Global genomic epidemiology of Salmonella enterica serovar Typhimurium DT104. Applied and Environmental Microbiology. 82 (8), 2516-2526 (2016).
  4. Alba, P., et al. Molecular epidemiology of Salmonella Infantis in Europe: insights into the success of the bacterial host and its parasitic pESI-like megaplasmid. Microbial Genomics. 6 (5), (2020).
  5. Zhou, Z., Alikhan, N. -. F., Mohamed, K., Fan, Y. the Agama Study Group, Achtman, M. The EnteroBase user's guide, with case studies on Salmonella transmissions, Yersinia pestis phylogeny, and Escherichia core genomic diversity. Genome Research. 30 (1), 138-152 (2020).
  6. Azarian, T., et al. Global emergence and population dynamics of divergent serotype 3 CC180 pneumococci. PLOS Pathogens. 14 (11), 1007438 (2018).
  7. Saltykova, A., et al. Comparison of SNP-based subtyping workflows for bacterial isolates using WGS data, applied to Salmonella enterica serotype Typhimurium and serotype 1,4,[5],12:i. PLOS ONE. 13 (2), 0192504 (2018).
  8. Achtman, M., et al. Multi-locus sequence typing as a replacement for serotyping in Salmonella enterica. PLoS Pathogens. 8 (6), 1002776 (2012).
  9. Maiden, M. C. J., et al. Multi-locus sequence typing: A portable approach to the identification of clones within populations of pathogenic microorganisms. Proceedings of the National Academy of Sciences of the United States of America. 95 (6), 3140-3145 (1998).
  10. Alikhan, N. -. F., Zhou, Z., Sergeant, M. J., Achtman, M. A genomic overview of the population structure of Salmonella. PLOS Genetics. 14 (4), 1007261 (2018).
  11. Gupta, A., Jordan, I. K., Rishishwar, L. stringMLST: a fast k-mer based tool for multi-locus sequence typing. Bioinformatics. 33 (1), 119-121 (2017).
  12. Jolley, K. A., Maiden, M. C. BIGSdb: Scalable analysis of bacterial genome variation at the population level. BMC Bioinformatics. 11 (1), 595 (2010).
  13. Maiden, M. C. J., et al. MLST revisited: the gene-by-gene approach to bacterial genomics. Nature Reviews Microbiology. 11 (10), 728-736 (2013).
  14. Maiden, M. C. J. Multilocus sequence typing of bacteria. Annual Review of Microbiology. 60 (1), 561-588 (2006).
  15. Shapiro, B. J., Polz, M. F. Ordering microbial diversity into ecologically and genetically cohesive units. Trends in Microbiology. 22 (5), 235-247 (2014).
  16. Cordero, O. X., Polz, M. F. Explaining microbial genomic diversity in light of evolutionary ecology. Nature Reviews Microbiology. 12 (4), 263-273 (2014).
  17. Achtman, M., Wagner, M. Microbial diversity and the genetic nature of microbial species. Nature Reviews Microbiology. 6 (6), 431-440 (2008).
  18. Abudahab, K., et al. PANINI: Pangenome neighbour identification for bacterial populations. Microbial Genomics. 5 (4), (2019).
  19. Laing, C. R., Whiteside, M. D., Gannon, V. P. J. Pan-genome analyses of the species Salmonella enterica, and identification of genomic markers predictive for species, subspecies, and serovar. Frontiers in Microbiology. 8, 1345 (2017).
  20. Pavlovikj, N., Gomes-Neto, J. C., Deogun, J. S., Benson, A. K. ProkEvo: an automated, reproducible, and scalable framework for high-throughput bacterial population genomics analyses. PeerJ. 9, 11376 (2021).
  21. McNally, A., et al. Combined analysis of variation in core, accessory and regulatory genome regions provides a super-resolution view into the evolution of bacterial populations. PLOS Genetics. 12 (9), 1006280 (2016).
  22. Langridge, G. C., et al. Patterns of genome evolution that have accompanied host adaptation in Salmonella. Proceedings of the National Academy of Sciences of the United States of America. 112 (3), 863-868 (2015).
  23. Price, M. N., Dehal, P. S., Arkin, A. P. FastTree 2 - Approximately maximum-likelihood trees for large alignments. PLoS ONE. 5 (3), 9490 (2010).
  24. Page, A. J., et al. Roary: rapid large-scale prokaryote pan genome analysis. Bioinformatics. 31 (22), 3691-3693 (2015).
  25. Yoshida, C. E., et al. The Salmonella In silico typing resource (SISTR): An open web-accessible tool for rapidly typing and subtyping draft Salmonella genome assemblies. PLOS ONE. 11 (1), 0147101 (2016).
  26. Cheng, L., Connor, T. R., Siren, J., Aanensen, D. M., Corander, J. Hierarchical and spatially explicit clustering of DNA sequences with BAPS software. Molecular Biology and Evolution. 30 (5), 1224-1228 (2013).
  27. Tonkin-Hill, G., Lees, J. A., Bentley, S. D., Frost, S. D. W., Corander, J. Fast hierarchical Bayesian analysis of population structure. Nucleic Acids Research. 47 (11), 5539-5549 (2019).
  28. MLST. GitHub Available from: https://github.com/tseemann/mist (2020)
  29. ABRicate. GitHub Available from: https://github.com/tseemann/abricate (2020)
  30. R: A language and environment for statistical computing. R Foundation for Statistical Computing Available from: https://cran.r-project.org (2021)
  31. Wickham, H., et al. Welcome to the Tidyverse. Journal of Open Source Software. 4 (43), 1686 (2019).
  32. rOpenSci: The skimr package. GitHub Available from: https://github.com/ropensci/skimr/ (2021)
  33. . vegan: Community ecology package. R package version 2.5-5 Available from: https://CRAN.R-project.org/package=vegan (2019)
  34. Yu, G. Using ggtree to visualize data on tree-like structures. Current Protocols in Bioinformatics. 69 (1), (2020).
  35. . ggpubr: "ggplot2" Based Publication Ready Plots. R package version 0.4.0 Available from: https://CRAN.R-project.org/package=ggpubr (2020)
  36. . ggrepel: Automatically Position Non-Overlapping Text Labels with "ggplot2”. R package version 0.9.1 Available from: https://CRAN.R-project.org/package=ggrepel (2021)
  37. Wickham, H. Reshaping Data with the reshape Package. Journal of Statistical Software. 21 (12), (2007).
  38. . RColorBrewer: ColorBrewer Palettes. R package version 1.1-2 Available from: https://CRAN.R-project.org/package=RColorBrewer (2014)
  39. Hadfield, J., Croucher, N. J., Goater, R. J., Abudahab, K., Aanensen, D. M., Harris, S. R. Phandango: an interactive viewer for bacterial population genomics. Bioinformatics. 34 (2), 292-293 (2018).
  40. Perron, G. G., et al. Functional characterization of bacteria isolated from ancient arctic soil exposes diverse resistance mechanisms to modern antibiotics. PLOS ONE. 10 (3), 0069533 (2015).
  41. Mitchell, P. K., et al. Population genomics of pneumococcal carriage in Massachusetts children following introduction of PCV-13. Microbial Genomics. 5 (2), (2019).
  42. Klemm, E. J., et al. Emergence of host-adapted Salmonella Enteritidis through rapid evolution in an immunocompromised host. Nature Microbiology. 1 (3), 15023 (2016).
  43. Břinda, K., et al. Rapid inference of antibiotic resistance and susceptibility by genomic neighbour typing. Nature Microbiology. 5 (3), 455-464 (2020).
  44. MacFadden, D. R., et al. Using genetic distance from archived samples for the prediction of antibiotic resistance in Escherichia coli. Antimicrobial Agents and Chemotherapy. 64 (5), (2020).
  45. Mageiros, L., et al. Genome evolution and the emergence of pathogenicity in avian Escherichia coli. Nature Communications. 12 (1), 765 (2021).
  46. Yahara, K., et al. Genome-wide association of functional traits linked with Campylobacter jejuni survival from farm to fork. Environmental Microbiology. 19 (1), 361-380 (2017).
  47. Walter, J., Maldonado-Gómez, M. X., Martínez, I. To engraft or not to engraft: an ecological framework for gut microbiome modulation with live microbes. Current Opinion in Biotechnology. 49, 129-139 (2018).
  48. Maldonado-Gómez, M. X., et al. Stable engraftment of Bifidobacterium longum AH1206 in the human gut depends on individualized features of the resident microbiome. Cell Host & Microbe. 20 (4), 515-526 (2016).
  49. Zhao, S., et al. Adaptive evolution within gut microbiomes of healthy people. Cell Host & Microbe. 25 (5), 656-667 (2019).
  50. Treangen, T. J., Ondov, B. D., Koren, S., Phillippy, A. M. The Harvest suite for rapid core-genome alignment and visualization of thousands of intraspecific microbial genomes. Genome Biology. 15 (11), 524 (2014).
  51. Letunic, I., Bork, P. Interactive Tree Of Life (iTOL) v5: an online tool for phylogenetic tree display and annotation. Nucleic Acids Research. 49, 293-296 (2021).
  52. Croucher, N. J., et al. Rapid phylogenetic analysis of large samples of recombinant bacterial whole genome sequences using Gubbins. Nucleic Acids Research. 43 (3), 15 (2015).
  53. Fenske, G. J., Thachil, A., McDonough, P. L., Glaser, A., Scaria, J. Geography shapes the population genomics of Salmonella enterica Dublin. Genome Biology and Evolution. 11 (8), 2220-2231 (2019).
  54. Lees, J. A., et al. Fast and flexible bacterial genomic epidemiology with PopPUNK. Genome Research. 29 (2), 304-316 (2019).
  55. Cohan, F. M. Towards a conceptual and operational union of bacterial systematics, ecology, and evolution. Philosophical Transactions of the Royal Society B: Biological Sciences. 361 (1475), 1985-1996 (2006).
  56. Cohan, F. M., Koeppel, A. F. The origins of ecological diversity in prokaryotes. Current Biology. 18 (21), 1024-1034 (2008).
  57. Cohan, F. M. Transmission in the origins of bacterial diversity, from ecotypes to phyla. Microbial Transmission. 5 (5), 311-343 (2019).
  58. Davis, J. J., et al. The PATRIC bioinformatics resource center: expanding data and analysis capabilities. Nucleic Acids Research. 48, 606-612 (2019).
  59. Feng, Y., Zou, S., Chen, H., Yu, Y., Ruan, Z. BacWGSTdb 2.0: a one-stop repository for bacterial whole-genome sequence typing and source tracking. Nucleic Acids Research. 49, 644-650 (2021).

Reimpressões e Permissões

Solicitar permissão para reutilizar o texto ou figuras deste artigo JoVE

Solicitar Permissão

Explore Mais Artigos

Gen ticaEdi o 178

This article has been published

Video Coming Soon

JoVE Logo

Privacidade

Termos de uso

Políticas

Pesquisa

Educação

SOBRE A JoVE

Copyright © 2025 MyJoVE Corporation. Todos os direitos reservados