JoVE Logo

Accedi

È necessario avere un abbonamento a JoVE per visualizzare questo. Accedi o inizia la tua prova gratuita.

In questo articolo

  • Riepilogo
  • Abstract
  • Introduzione
  • Protocollo
  • Risultati
  • Discussione
  • Divulgazioni
  • Riconoscimenti
  • Materiali
  • Riferimenti
  • Ristampe e Autorizzazioni

Riepilogo

Questa piattaforma computazionale analitica fornisce una guida pratica per microbiologi, ecologi ed epidemiologi interessati alla genomica delle popolazioni batteriche. Nello specifico, il lavoro qui presentato ha dimostrato come eseguire: i) mappatura filogenetica di genotipi gerarchici; ii) analisi dei genotipi basata sulla frequenza; iii) analisi di parentela e clonalità; iv) identificazione del lignaggio differenziando i loci accessori.

Abstract

L'uso sistematico e sistematico del sequenziamento dell'intero genoma batterico (WGS) sta migliorando l'accuratezza e la risoluzione delle indagini epidemiologiche condotte dai laboratori di sanità pubblica e dalle agenzie di regolamentazione. Grandi volumi di dati WGS disponibili pubblicamente possono essere utilizzati per studiare le popolazioni patogene su larga scala. Recentemente, è stata pubblicata una piattaforma computazionale liberamente disponibile chiamata ProkEvo per consentire analisi genomiche di popolazione riproducibili, automatizzate e scalabili basate su gerarchia utilizzando dati WGS batterici. Questa implementazione di ProkEvo ha dimostrato l'importanza di combinare la mappatura genotipica standard delle popolazioni con l'estrazione di contenuti genomici accessori per l'inferenza ecologica. In particolare, il lavoro qui evidenziato ha utilizzato output derivati da ProkEvo per analisi gerarchiche su scala di popolazione utilizzando il linguaggio di programmazione R. L'obiettivo principale era quello di fornire una guida pratica per microbiologi, ecologi ed epidemiologi mostrando come: i) utilizzare una mappatura filogenica dei genotipi gerarchici; ii) valutare le distribuzioni di frequenza dei genotipi come proxy per l'idoneità ecologica; iii) determinare le relazioni di parentela e la diversità genetica utilizzando specifiche classificazioni genotipiche; e iv) mappare il lignaggio differenziando i loci accessori. Per migliorare la riproducibilità e la portabilità, sono stati utilizzati file di markdown R per dimostrare l'intero approccio analitico. Il set di dati di esempio conteneva dati genomici da 2.365 isolati del patogeno zoonotico di origine alimentare Salmonella Newport. La mappatura ancorata alla filogenesi dei genotipi gerarchici (Serovar -> BAPS1 -> ST -> cgMLST) ha rivelato la struttura genetica della popolazione, evidenziando i tipi di sequenza (ST) come genotipo differenziante chiave di volta. Attraverso i tre lignaggi più dominanti, ST5 e ST118 hanno condiviso un antenato comune più recentemente che con il filotipo ST45 altamente clonale. Le differenze basate sulla ST sono state ulteriormente evidenziate dalla distribuzione dei loci di resistenza antimicrobica accessoria (AMR). Infine, è stata utilizzata una visualizzazione ancorata alla filogenesi per combinare genotipi gerarchici e contenuto AMR per rivelare la struttura della parentela e le firme genomiche specifiche del lignaggio. Combinato, questo approccio analitico fornisce alcune linee guida per condurre analisi genomiche euristiche della popolazione batterica utilizzando informazioni pan-genomiche.

Introduzione

Il crescente uso del sequenziamento dell'intero genoma batterico (WGS) come base per la sorveglianza di routine e l'indagine epidemiologica da parte dei laboratori di sanità pubblica e delle agenzie di regolamentazione ha sostanzialmente migliorato le indagini sui focolai di patogeni 1,2,3,4. Di conseguenza, grandi volumi di dati WGS de-identificati sono ora disponibili al pubblico e possono essere utilizzati per studiare aspetti della biologia della popolazione di specie patogene su una scala senza precedenti, compresi studi basati su: strutture di popolazione, frequenze di genotipo e frequenze geniche / alleliche in più serbatoi, regioni geografiche e tipi di ambienti5 . Le indagini epidemiologiche guidate dal WGS più comunemente utilizzate si basano su analisi che utilizzano solo il contenuto genomico di base condiviso, in cui il contenuto condiviso (conservato) da solo viene utilizzato per la classificazione genotipica (ad esempio, la chiamata delle varianti) e queste varianti diventano la base per l'analisi epidemiologica e il tracciamento 1,2,6,7 . Tipicamente, la genotipizzazione basata sul genoma del nucleo batterico viene effettuata con approcci MLST (Multi-locus sequence typing) utilizzando da sette a poche migliaia di loci 8,9,10. Queste strategie basate su MLST comprendono la mappatura di sequenze genomiche preassemblate o assemblate su database altamente curati, combinando così le informazioni alleliche in unità genotipiche riproducibili per l'analisi epidemiologica ed ecologica11,12. Ad esempio, questa classificazione basata su MLST può generare informazioni genotipiche a due livelli di risoluzione: tipi di sequenza di livello inferiore (ST) o lignaggi ST (7 loci) e varianti MLST (cgMLST) del genoma centrale di livello superiore (~ 300-3.000 loci)10.

La classificazione genotipica basata su MLST è computazionalmente portatile e altamente riproducibile tra i laboratori, rendendola ampiamente accettata come un approccio accurato di sottostimolazione al di sotto del livello13,14 delle specie batteriche. Tuttavia, le popolazioni batteriche sono strutturate con vari gradi di clonalità specie-specifici (cioè omogeneità genotipica), modelli complessi di parentela gerarchica tra genotipi 15,16,17 e un'ampia gamma di variazioni nella distribuzione del contenuto genomico accessorio18,19 . Pertanto, un approccio più olistico va oltre le classificazioni discrete nei genotipi MLST e incorpora le relazioni gerarchiche dei genotipi a diverse scale di risoluzione, insieme alla mappatura del contenuto genomico accessorio su classificazioni genotipiche, che facilita l'inferenza basata sulla popolazione 18,20,21 . Inoltre, le analisi possono anche concentrarsi su modelli condivisi di ereditarietà di loci genomici accessori tra genotipi anche lontanamente correlati21,22. Nel complesso, l'approccio combinato consente un'interrogazione agnostica delle relazioni tra la struttura della popolazione e la distribuzione di specifiche composizioni genomiche (ad esempio, loci) tra gradienti geospaziali o ambientali. Un tale approccio può fornire informazioni sia fondamentali che pratiche sulle caratteristiche ecologiche di popolazioni specifiche che possono, a loro volta, spiegare il loro tropismo e i modelli di dispersione tra i bacini idrici, come gli animali alimentari o gli esseri umani.

Questo approccio gerarchico orientato alla popolazione basato su sistemi richiede grandi volumi di dati WGS per una potenza statistica sufficiente a prevedere firme genomiche distinguibili. Di conseguenza, l'approccio richiede una piattaforma computazionale in grado di elaborare molte migliaia di genomi batterici contemporaneamente. Recentemente, ProkEvo è stato sviluppato ed è una piattaforma bioinformatica liberamente disponibile, automatizzata, portatile e scalabile che consente analisi integrative della popolazione batterica basate su gerarchia, inclusa la mappatura pan-genomica20. ProkEvo consente lo studio di set di dati batterici su scala da moderata a grande, fornendo al contempo un quadro per generare ipotesi epidemiologiche ed ecologiche verificabili e deducibili e previsioni fenotipiche che possono essere personalizzate dall'utente. Questo lavoro integra questa pipeline nel fornire una guida su come utilizzare i file di output derivati da ProkEvo come input per l'analisi e l'interpretazione delle classificazioni gerarchiche della popolazione e dell'estrazione genomica accessoria. Il caso di studio qui presentato ha utilizzato la popolazione di Salmonella enterica lignaggio I sierotipo zoonotico S. Newport come esempio ed era specificamente finalizzato a fornire linee guida pratiche per microbiologi, ecologi ed epidemiologi su come: i) utilizzare un approccio automatizzato filogenesi-dipendente per mappare genotipi gerarchici; ii) valutare la distribuzione in frequenza dei genotipi come proxy per valutare l'idoneità ecologica; iii) determinare i gradi di clonalità specifici del lignaggio utilizzando approcci statistici indipendenti; e iv) mappare i loci AMR differenzianti il lignaggio come esempio di come estrarre il contenuto genomico accessorio nel contesto della struttura della popolazione. Più in generale, questo approccio analitico fornisce un quadro generalizzabile per eseguire un'analisi genomica basata sulla popolazione su una scala che può essere utilizzata per dedurre modelli evolutivi ed ecologici indipendentemente dalla specie bersaglio.

Protocollo

1. Preparare i file di input

NOTA: Il protocollo è disponibile qui - https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code. Il protocollo presuppone che il ricercatore abbia specificamente utilizzato ProkEvo (o una pipeline comparabile) per ottenere gli output necessari disponibili in questo repository Figshare (https://figshare.com/account/projects/116625/articles/15097503 - sono richieste le credenziali di accesso - L'utente deve creare un account gratuito per avere accesso ai file!). Da notare, ProkEvo scarica automaticamente le sequenze genomiche dal repository NCBI-SRA e richiede solo un file .txt contenente un elenco di identificazioni del genoma come input20 e quello utilizzato per questo lavoro su S. Gli isolati di Newport USA sono forniti qui (https://figshare.com/account/projects/116625/articles/15097503?file=29025729).  Informazioni dettagliate su come installare e utilizzare questa piattaforma di genomica batterica sono disponibili qui (https://github.com/npavlovikj/ProkEvo/wiki/2.-Quick-start)20

  1. Generare filogenesi nucleo-genoma utilizzando FastTree23 come descritto in precedenza20, che non fa parte della piattaforma di bioinformatica20. FastTree richiede l'allineamento nucleo-genoma roary24 come file di input. Il file phylogeny è denominato newport_phylogeny.tree (https://figshare.com/account/projects/116625/articles/15097503?file=29025690).
  2. Generare l'output SISTR25 contenente le informazioni relative alle classificazioni dei sierotipi per i dati di chiamata della variante Salmonella e cgMLST (sistr_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025699).
  3. Generare il file BAPS di fastbaps26,27 contenente la classificazione BAPS dei livelli 1-6 dei genomi in sottogruppi o aplotipi (fastbaps_partition_baps_prior_l6.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025684).
  4. Generare una classificazione basata su MLST dei genomi in ST utilizzando il programma MLST (https://github.com/tseemann/mlst)28 (salmonellast_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025696).
  5. Genera l'output ABRicate (https://github.com/tseemann/abricate)29 come file .csv contenente loci AMR mappati per genoma (sabricate_resfinder_output.csv - https://figshare.com/account/projects/116625/articles/15097503?file=29025693).
    NOTA: l'utente può disattivare parti specifiche della pipeline bioinformatica di ProkEvo (controlla qui per ulteriori informazioni - https://github.com/npavlovikj/ProkEvo/wiki/4.2.-Remove-existing-bioinformatics-tool-from-ProkEvo). L'approccio analitico qui presentato fornisce linee guida su come condurre un'analisi basata sulla popolazione dopo che la pipeline bioinformatica è stata eseguita.

2. Scaricare e installare il software statistico e l'applicazione IDE (Integrated Development Environment)

  1. Scarica la versione più aggiornata disponibile gratuitamente del software R per Linux, Mac o PC30. Seguire i passaggi di installazione predefiniti.
  2. Scarica la versione più aggiornata disponibile gratuitamente dell'IDE desktop RStudio qui31. Seguire i passaggi predefiniti per l'installazione.
    NOTA: i passaggi successivi sono inclusi nello script disponibile, incluse informazioni dettagliate sull'utilizzo del codice, e devono essere eseguiti in sequenza per generare gli output e le figure presentate in questo lavoro (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). L'utente può decidere di utilizzare un altro linguaggio di programmazione per condurre questa analisi analitica/ statistica come Python. In tal caso, utilizzare i passaggi negli script come framework per eseguire l'analisi.

3. Installare e attivare le librerie di data science

  1. Installare tutte le librerie di data science contemporaneamente come primo passo nell'analisi. Evitare di installare le librerie ogni volta che è necessario eseguire nuovamente lo script. Utilizzare la funzione install.packages() per l'installazione della libreria. In alternativa, l'utente può fare clic sulla scheda Pacchetti all'interno dell'IDE e installare automaticamente i pacchetti. Il codice utilizzato per installare tutte le librerie necessarie è presentato qui:
    # Installa Tidyverse
    install.packages("tidyverse")
    # Installare skimr

    install.packages("skimr")
    # Installa vegan
    install.packages("vegano")
    # Installa forcats
    install.packages("forcats")
    # Installare naniar
    install.packages("naniar")
    # Installare ggpubr
    install.packages("ggpubr")
    # Installa ggrepel
    install.packages("ggrepel")
    # Installa reshape2
    install.packages("reshape2")
    # Installa RColorBrewer
    install.packages("RColorBrewer")
    # Installa ggtree
    if (!requireNamespace("BiocManager", tranquillamente = TRUE))
    install.packages("BiocManager")
    BiocManager::install("ggtree")
    # L'installazione di ggtree richiederà una domanda sull'installazione - la risposta è "a" per installare / aggiornare tutte le dipendenze
  2. Attivare tutte le librerie o i pacchetti utilizzando la funzione library() all'inizio dello script, subito dopo l'installazione. Ecco una dimostrazione su come attivare tutti i pacchetti necessari:
    # Attiva le librerie e i pacchetti
    libreria(tidyverse)
    biblioteca(skimr)
    biblioteca(vegano)
    biblioteca(forcats)
    biblioteca(naniar)
    biblioteca(ggtree)
    biblioteca(ggpubr)
    biblioteca(ggrepel)
    libreria(reshape2)
    libreria(RColorBrewer)
  3. Sopprimere l'output del codice utilizzato per l'installazione e l'attivazione della libreria e del pacchetto utilizzando {r, include = FALSE} nel mandrino del codice, come indicato di seguito:
    ''' {r, include = FALSE}
    # Installa Tidyverse

    install.packages("tidyverse")
    ```

    NOTA: questo passaggio è facoltativo ma evita di visualizzare blocchi di codice non necessari nel report html, doc o pdf finale.
  4. Per una breve descrizione delle funzioni specifiche di tutte le librerie insieme ad alcuni link utili per raccogliere ulteriori informazioni, fare riferimento ai passaggi 3.4.1-3.4.11.
    1. Tidyverse - utilizza questa raccolta di pacchetti utilizzati per la scienza dei dati, tra cui l'immissione dei dati, la visualizzazione, l'analisi e l'aggregazione e la modellazione statistica. Tipicamente, ggplot2 (data visualization) e dplyr (data wrangling and modeling) sono pacchetti pratici presenti in questa libreria32.
    2. skimr - utilizzare questo pacchetto per generare statistiche di riepilogo dei frame di dati, inclusa l'identificazione dei valori mancanti33.
    3. vegano - utilizzare questo pacchetto per analisi statistiche sull'ecologia della comunità, come il calcolo di statistiche basate sulla diversità (ad esempio, alfa e beta-diversità)34.
    4. forcats - utilizzare questo pacchetto per lavorare con variabili categoriche come il riordino delle classificazioni. Questo pacchetto fa parte della libreria Tidyverse32.
    5. naniar - utilizzare questo pacchetto per visualizzare la distribuzione dei valori mancanti tra le variabili in un frame di dati, utilizzando la funzione viss_miss()35.
    6. ggtree - utilizzare questo pacchetto per la visualizzazione di alberi filogenetici36.
    7. ggpubr - utilizzare questo pacchetto per migliorare la qualità delle visualizzazioni basate su ggplot237.
    8. ggrepel - utilizzare questo pacchetto per l'etichettatura del testo all'interno dei grafici38.
    9. reshape2 - utilizzare la funzione melt() di questo pacchetto per la trasformazione di frame di dati da wide a long format39.
    10. RColorBrewer - utilizzare questo pacchetto per gestire i colori nelle visualizzazioni basate su ggplot240.
    11. Utilizzare le seguenti funzioni di base per l'analisi esplorativa dei dati: head() per controllare le prime osservazioni in un frame di dati, tail() per controllare le ultime osservazioni di un frame di dati, is.na() per contare il numero di righe con valori mancanti in un frame di dati, dim() per controllare il numero di righe e colonne in un set di dati, table() per contare le osservazioni su una variabile, e sum() per contare il numero totale di osservazioni o istanze.

4. Inserimento e analisi dei dati

NOTA: informazioni dettagliate su ogni fase di questa analisi sono disponibili nello script disponibile (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd). Tuttavia, ecco alcuni punti importanti da considerare:

  1. Eseguire l'immissione di tutti i dati genomici, comprese tutte le classificazioni genotipiche (sierotipo, BAPS, ST e cgMLST) utilizzando la funzione read_csv().
  2. Rinominare, creare nuove variabili e selezionare le colonne di interesse da ogni set di dati prima dell'aggregazione multiset.
  3. Non rimuovere i valori mancanti da alcun set di dati indipendente. Attendere che tutti i set di dati vengano aggregati per modificare o escludere i valori mancanti. Se vengono create nuove variabili per ogni set di dati, i valori mancanti vengono classificati per impostazione predefinita in una delle classificazioni appena generate.
  4. Verificare la presenza di caratteri errati come trattini o segni di interrogazione e sostituirli con NA (non applicabile). Fai lo stesso per i valori mancanti.
  5. Dati aggregati basati sull'ordine gerarchico dei genotipi (sierotipo -> BAPS1 -> ST -> cgMLST) e per raggruppamento in base alle identificazioni del genoma individuale.
  6. Verificare la presenza di valori mancanti utilizzando più strategie e gestire tali incongruenze in modo esplicito. Rimuovere un genoma o isolare dai dati solo se la classificazione è inaffidabile. In caso contrario, considerare l'analisi in corso e rimuovere le NA caso per caso.
    NOTA: Si consiglia vivamente di stabilire una strategia per affrontare tali valori a priori. Evitare di rimuovere tutti i genomi o gli isolati con valori mancanti in qualsiasi variabile. Ad esempio, un genoma può avere una classificazione ST senza avere il numero di variante cgMLST. In tal caso, il genoma può ancora essere utilizzato per l'analisi basata su ST.
  7. Una volta aggregati tutti i set di dati, assegnarli a un nome di frame di dati o a un oggetto che può essere utilizzato in più posizioni nell'analisi di follow-up, per evitare di dover generare lo stesso file di metadati per ogni figura nel documento.

5. Condurre analisi e generare visualizzazioni

NOTA: una descrizione dettagliata di ogni passaggio necessario per produrre tutte le analisi e le visualizzazioni è disponibile nel file di markdown per questo documento (https://github.com/jcgneto/jove_bacterial_population_genomics/tree/main/code). Il codice per ogni figura è separato in blocchi e l'intero script deve essere eseguito in sequenza. Inoltre, il codice per ogni figura principale e supplementare viene fornito come file separato (vedere il file supplementare 1 e il file supplementare 2). Ecco alcuni punti essenziali (con frammenti di codice) da considerare durante la generazione di ogni figura principale e supplementare.

  1. Usa ggtree per tracciare un albero filogenetico insieme a informazioni genotipiche (Figura 1).
    1. Ottimizza le dimensioni della figura ggtree, inclusi il diametro e la larghezza degli anelli, modificando i valori numerici all'interno delle funzioni xlim() e gheatmap(width = ) rispettivamente (vedi codice di esempio sotto).
      tree_plot <- ggtree(albero, layout = "circolare") + xlim(-250, NA)
      figure_1 <- gheatmap(tree_plot, d4, offset=.0, width=20, colnames = FALSE)
      NOTA: Per un confronto più dettagliato dei programmi che possono essere utilizzati per il plottaggio filogenetico, controllare questo lavoro20. Il lavoro ha evidenziato un tentativo di identificare strategie per migliorare le visualizzazioni basate su ggtree, come la diminuzione delle dimensioni del set di dati, ma le lunghezze dei rami e la topologia dell'albero non erano così chiaramente discriminanti rispetto a phandango41.
    2. Aggrega tutti i metadati nel minor numero possibile di categorie per facilitare la scelta del pannello da colorare quando si tracciano più livelli di dati con l'albero filogenetico (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_1.Rmd). Condurre l'aggregazione dei dati in base alla questione dell'interesse e della conoscenza del dominio.
  2. Utilizzare un grafico a barre per valutare le frequenze relative (Figura 2).
    1. Aggrega i dati sia per i lignaggi ST che per le varianti cgMLST per facilitare le visualizzazioni. Scegli una soglia empirica o statistica utilizzata per l'aggregazione dei dati, considerando la domanda che viene posta.
    2. Per un codice di esempio che può essere utilizzato per ispezionare la distribuzione di frequenza dei lignaggi ST per determinare il cut-off, vedere di seguito:
      st_dist <- d2 %>% group_by(ST) %>% # gruppo dalla colonna ST
      count() %>% # contare il numero di osservazioni
      arrange(desc(n)) # disporre i conteggi in ordine decrescente
    3. Per un codice di esempio che mostra come possono essere aggregati ST minori (a bassa frequenza), fare riferimento di seguito. Come dimostrato di seguito, gli ST che non sono numerati come 5, 31, 45, 46, 118, 132 o 350, sono raggruppati come "Altri ST". Utilizzare un codice simile per le varianti cgMLST (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_2.Rmd).
      d2$st <- ifelse(d2$ST == 5, "ST5", # creare una nuova colonna ST per la quale le S T minori sono aggregate come Altre
      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", "Other STs"))))))))
  3. Utilizzare un approccio nidificato per calcolare la proporzione di ciascun lignaggio ST all'interno di ciascun sottogruppo BAPS1 per identificare gli ST ancestralmente correlati (appartengono allo stesso sottogruppo BAPS1) (Figura 3). Il codice seguente esemplifica come la proporzione basata su ST può essere calcolata tra i sottogruppi BAPS1 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_3.Rmd):
    baps <- d2b %>% filter(serovar == "Newport") %>% # filter Newport serovars
    select(baps_1, ST) %>% # seleziona colonne baps_1 e ST
    mutate(ST = as.numeric(ST)) %>% # cambia la colonna ST in numerico
    drop_na(baps_1, ST) %>% # drop NO
    group_by(baps_1, ST) %>% # gruppo per baps_1 e ST
    summarise(n = n()) %>% # count osservazioni
    mutate(prop = n/sum(n)*100) # calcola le proporzioni
  4. Tracciare la distribuzione dei loci AMR tra i lignaggi ST utilizzando i risultati dell'annotazione genica basata su Resfinder (Figura 4).
    NOTA: Resfinder è stato ampiamente utilizzato negli studi ecologici ed epidemiologici42. L'annotazione dei geni che codificano le proteine può variare a seconda della frequenza con cui i database vengono curati e aggiornati. Se si utilizza la pipeline bioinformatica suggerita, il ricercatore può confrontare le classificazioni dei loci basate sulla resistenza antimicrobica in diversi database20. Assicurati di controllare quali database vengono continuamente aggiornati. Non utilizzare database obsoleti o mal curati, al fine di evitare chiamate errate.
    1. Utilizzare una soglia empirica o statistica per filtrare i loci AMR più importanti per facilitare le visualizzazioni. Fornire un file di .csv non elaborato contenente le proporzioni calcolate di tutti i loci AMR in tutti i lignaggi ST, come mostrato qui (https://figshare.com/account/projects/116625/articles/15097503?file=29025687).
    2. Calcolare la proporzione AMR per ogni ST utilizzando il seguente codice (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_4.Rmd):
      # Calcoli per ST45
      d2c <- data6 %>% filter(st == "ST45") # filtra prima i dati ST45
      # per ST45, calcolare la proporzione di loci AMR e mantenere solo la proporzione superiore al 10%

      d3c <- d2c %>% select(id, gene) %>% # select columns
      group_by(id, gene) %>% # gruppo per id e gene
      summarize(count = n()) %>% # count osservazioni
      mutate(count = replace(count, count == 2, 1)) %>% # replace counts pari a 2 con 1 per considerare solo una copia di ciascun gene (le duplicazioni potrebbero non essere affidabili), ma il ricercatore può decidere di escluderle o mantenerle. Se il ricercatore vuole escluderli, utilizzare la funzione filter(count != 2) oppure lasciare così com'è
      filter(count <= 1) # filter counts below or equal to 1
      d4c <- d3c %>% group_by(gene) %>% # gruppo per gene
      summarize(value = n()) %>% # count osservazioni
      mutate(total = table(data1$st)[6]) %>% # get the total counts of st mutate(prop = (value/total)*100) # calculate proportions
      d5c <- d4c %>% mutate(st = "ST45") # creare una colonna st e aggiungere informazioni ST
    3. Dopo aver eseguito i calcoli per tutti gli ST, combinare i set di dati in un unico frame di dati, utilizzando il codice seguente:
      # Combinare set di dati
      d6 <- rbind(d5a, d5b, d5c, d5d, d5e, d5f, d5g, d5h) # set di dati di binding di riga
    4. Per esportare il file .csv contenente le proporzioni calcolate, utilizzare il codice:
      # Esporta la tabella dati contenente le informazioni sui loci ST e AMR
      abx_newport_st <- d6 write.csv(abx_newport_st,"abx_newport_st.csv", row.names = FALSE)
    5. Prima di tracciare la distribuzione basata su AMR tra i lignaggi ST, filtrare i dati in base a una soglia per facilitare le visualizzazioni, come illustrato di seguito:
      # Filtro AMR loci con proporzione superiore o uguale al 10%
      d7 <- d6 %>% filter(prop >= 10) # determinare la soglia empiricamente o statisticamente
  5. Traccia la filogenesi nucleo-genoma insieme alle classificazioni genotipiche gerarchiche e ai dati AMR in un singolo grafico usando ggtree (Figura 5).
    1. Ottimizzare le dimensioni della figura all'interno di ggtree utilizzando i parametri sopra menzionati (vedere il passaggio 5.1.1.).
    2. Ottimizza le visualizzazioni aggregando variabili o utilizzando classificazioni binarie come la presenza o l'assenza di geni. Più feature vengono aggiunte alla trama, più difficile diventa il processo di selezione della colorazione (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/figure_5.Rmd).
      NOTA: cifre supplementari - la descrizione dettagliata dell'intero codice è disponibile qui (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/data_analysis_R_code.Rmd).
  6. Utilizzare un grafico a dispersione in ggplot2, senza aggregazione di dati, per visualizzare la distribuzione dei lignaggi ST o delle varianti cgMLST evidenziando i genotipi più frequenti (Figura supplementare 1) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s1.Rmd).
  7. Fare un'analisi nidificata per valutare la composizione dei lignaggi ST attraverso la proporzione di varianti cgMLST al fine di dare un'occhiata alla diversità genetica basata su ST, identificando le varianti più frequenti e le loro relazioni genetiche (cioè, le varianti cgMLST che appartengono allo stesso ST hanno condiviso un antenato più recentemente di quelle appartenenti a ST distinti) (Figura supplementare 2 ) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s2.Rmd).
  8. Utilizzare la metrica dell'ecologia della comunità, vale a dire l'indice D di diversità di Simpson, per misurare il grado di clonalità o diversità genotipica di ciascuno dei principali lignaggi ST43 (Figura supplementare 3).
    1. Calcola l'indice di diversità tra i lignaggi ST a diversi livelli di risoluzione genotipica, tra cui BAPS livello da 1 a 6 e cgMLST. Di seguito è riportato l'esempio di codice su come eseguire questo calcolo al livello BAPS 1 (BAPS1) di risoluzione genotipica:
      # BAPS livello 1 (BAPS1)
      # rilascia gli ST e BAPS1 con GLI AN, raggruppa per ST e BAPS1 e quindi calcola l'indice di Simpson
      baps1 <- dati6 %>%
      select(st, BAPS1) %>% # seleziona colonne
      drop_na(st, BAPS1) %>% # drop NO
      group_by(st, BAPS1) %>% # gruppo per colonne
      summarise(n = n()) %>% # conteggio osservazioni
      mutate(simpson = diversity(n, "simpson")) %>% # calculate diversity
      group_by(st) %>% # gruppo per colonna
      summarise(simpson = mean(simpson)) %>% # calcola la media dell'indice
      melt(id.vars=c("st"), measure.vars="simpson",
      variable.name="index", value.name="value") %>% # nascosto in formato lungo
      mutate(strat = "BAPS1") # creare una colonna strat
      NOTA: Una popolazione geneticamente più diversificata (cioè più varianti a diversi livelli di risoluzione genotipica) ha un indice più alto a livello cgMLST e produce valori crescenti basati sull'indice che vanno dal livello BAPS 2 al livello 6 (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s3.Rmd).
  9. Esaminare il grado di diversità genotipica dei lignaggi ST tracciando la frequenza relativa dei sottogruppi BAPS a tutti i livelli di risoluzione (BAPS1-6) (Figura supplementare 4). Più diversificata è la popolazione, più scarsa è la distribuzione dei sottogruppi BAPS (aplotipi) passando da BAPS1 (livello inferiore di risoluzione) a BAPS6 (livello superiore di risoluzione) (https://github.com/jcgneto/jove_bacterial_population_genomics/blob/main/code/supplementary_figure_s4.Rmd).

Risultati

Utilizzando la piattaforma computazionale ProkEvo per le analisi genomiche di popolazione, il primo passo nel data mining WGS batterico consiste nell'esaminare la struttura gerarchica della popolazione nel contesto di una filogenesi nucleo-genoma (Figura 1). Nel caso di S. enterica lignaggio I, come esemplificato dalla S. Set di dati newport, la popolazione è strutturata gerarchicamente come segue: sierotipo (livello più basso di risoluzione), sottogruppi o aplo...

Discussione

L'utilizzo di un'analisi euristica e gerarchica della struttura della popolazione basata su sistemi fornisce un quadro per identificare nuove firme genomiche in set di dati batterici che hanno il potenziale per spiegare modelli ecologici ed epidemiologici unici20. Inoltre, la mappatura dei dati del genoma accessorio sulla struttura della popolazione può essere utilizzata per dedurre tratti ancestrali acquisiti e / o di derivazione recente che facilitano la diffusione di lignaggi ST o varianti cgM...

Divulgazioni

Gli autori hanno dichiarato che non esistono interessi concorrenti.

Riconoscimenti

Questo lavoro è stato sostenuto da finanziamenti forniti dalla Divisione di ricerca agricola UNL-IANR e dall'Istituto nazionale per la ricerca e l'istruzione sulla resistenza antimicrobica e dal Nebraska Food for Health Center presso il Dipartimento di scienza e tecnologia alimentare (UNL). Questa ricerca potrebbe essere completata solo utilizzando l'Holland Computing Center (HCC) dell'UNL, che riceve il sostegno della Nebraska Research Initiative. Siamo anche grati di avere accesso, attraverso l'HCC, alle risorse fornite dall'Open Science Grid (OSG), che è supportato dalla National Science Foundation e dall'Office of Science del Dipartimento dell'Energia degli Stati Uniti. Questo lavoro ha utilizzato il software di gestione del flusso di lavoro Pegasus che è finanziato dalla National Science Foundation (sovvenzione n. 1664162).

Materiali

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

Riferimenti

  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).

Ristampe e Autorizzazioni

Richiedi autorizzazione per utilizzare il testo o le figure di questo articolo JoVE

Richiedi Autorizzazione

Esplora altri articoli

GeneticaNumero 178

This article has been published

Video Coming Soon

JoVE Logo

Riservatezza

Condizioni di utilizzo

Politiche

Ricerca

Didattica

CHI SIAMO

Copyright © 2025 MyJoVE Corporation. Tutti i diritti riservati