Pan-Genom-Analyse: Statistische Profilierung und Visualisierung von vier Genkategorien

Dieser Artikel präsentiert ein umfassendes Rahmenwerk für Pan-Genom-Analyse, wobei die Klassifizierung von Genen in Kern-, Softcore-, dispensierbare und private Kategorien basierend auf der Häufigkeit von Vorhandensein/Abwesenheit über Genome hinweg betont wird. Mit der PSVCP-Pipeline und OrthoFinder konstruieren wir ein lineares Pan-Genom, erkennen strukturelle Varianten und identifizieren orthologe Genfamilien. Ein statistischer Workflow wird implementiert, um Genkategorien zuzuweisen und deren Verteilung zu quantifizieren. Visualisierungstechniken - einschließlich Kreisdiagrammen, Histogrammen, Balkendiagrammen und Heatmaps - heben die genomische Vielfalt und die Populationsstruktur hervor. Dieser Ansatz ermöglicht tiefere Einblicke in die Genomevolution, funktionale Differenzierung und adaptive Merkmale und unterstützt Anwendungen in der Pflanzenzüchtung, mikrobiologischen Studien und der Krankheitsgenomik.

1. Pan-Genom Übersicht

Was ist ein Pan-Genom?

Das Pan-Genom repräsentiert das vollständige Spektrum an Genen in einer definierten Gruppe von Organismen und umfasst sowohl gemeinsame als auch variable genomische Inhalte zwischen Individuen oder Arten. Im Gegensatz zum traditionellen Ansatz, der ein einzelnes Referenzgenom analysiert, umfasst das Pan-Genom die genomische Vielfalt innerhalb der Arten und ermöglicht umfassendere Einblicke in strukturelle Variationen, Variationen in der Genpräsenz/-abwesenheit (PAV) und evolutionäre Dynamiken.

Ursprünglich in der bakteriellen Genomik vorgeschlagen, hat sich das Konzept des Pan-Genoms seitdem zu einem zentralen Paradigma in der Pflanzenzüchtung, der mikrobiellen Anpassung und der Krebsgenomik entwickelt.

Historischer Kontext und Relevanz

Der Begriff "Pan-Genom" wurde 2005 von Tettelin et al. während der vergleichenden Analyse mehrerer Streptococcus agalactiae-Stämme geprägt. Ihre Arbeit beleuchtete die Einschränkungen der ausschließlich referenzbasierten Analyse und plädierte für ein inklusiveres Modell des Genomgehalts. Seitdem hat sich das Konzept revolutioniert:

  • Pflanzen-Genomik: Fehlende Gene aus Referenzassemblierungen aufdecken
  • Mikrobielle Studien: Kartierung des Gen-Erwerbs, horizontaler Gentransfer
  • Onkologie: Verständnis der Tumorheterogenität und Mutationshotspots

Warum Gene in vier Kategorien einteilen?

Die Analyse des Pan-Genoms zeigt, dass nicht alle Gene gleichmäßig über Individuen verteilt sind. Die Klassifizierung von Genen in Kern-, Softcore-, dispensierbare und private Kategorien bietet einen quantitativen Rahmen für:

  • Priorisierung funktioneller genomischer Studien
  • Verknüpfung von Genotyp zu Phänotyp
  • Die Entwirrung von evolutionärer Selektion und stochastischer Variation

2. Klassifikation von Genkategorien in der Pan-Genom-Analyse

2.1 Definitionen und Kriterien

In pan-genomischen Studien werden Genfamilien typischerweise basierend auf ihrer Präsenz in verschiedenen Proben kategorisiert. Kern-Gene sind universell konserviert und kommen in allen Individuen der Population vor, was auf ihre wesentlichen biologischen Rollen hinweist. Softcore-Gene sind zwar nicht strikt universell, kommen jedoch in mehr als 90 % der Individuen vor und können eine starke evolutionäre Erhaltung mit geringfügigen populationsspezifischen Variationen widerspiegeln. Dispensable Gene sind in einer Teilmenge von Individuen vorhanden, typischerweise in mehr als einem, aber weniger als 90 %, und entsprechen oft Genen, die an Umweltreaktionen, Immunität oder Stressanpassung beteiligt sind. Schließlich sind private Gene exklusiv für ein einzelnes Genom innerhalb des Datensatzes, was auf mögliche kürzliche Einspritzungen, strukturelle Varianten oder Annotationsartefakte hinweist. Diese Klassifikation dient als Grundlage für nachgelagerte statistische und funktionale Analysen.

Composition of the syntenic pan-genome.Abbildung 1. Zusammensetzung des syntenischen Pan-Genoms.Li, X. et al., 2024)

2.2 Biologische Implikationen

Kern-Gene kodieren oft essentielle Funktionen, die mit der zellulären Erhaltung, Entwicklung und Fortpflanzung zusammenhängen.

Softcore-Gene können umwelt-spezifische Anpassungen oder subpopulation-spezifische Erhaltungen widerspiegeln.

Entbehrliche Gene treiben die phänotypische Vielfalt voran und sind häufig in der Stressreaktion, Immunität und sekundären Metabolismus angereichert.

Private Gene könnten kürzliche Einspeisungen, horizontale Transferereignisse oder Artefakte der Zusammenstellung oder Annotation darstellen.

3. Pan-Genom-Konstruktion und SV-Erkennung mit PSVCP

Die psvcp_v1.01-Pipeline erleichtert den Aufbau eines linearen Pan-Genoms und identifiziert strukturelle Variationen (SVs) im Bevölkerungsmaßstab aus Kurzlesedaten.

Schlüsselschritte:

Zusammengestellte Genom-FASTAs, Annotationen (GFF) und Populationssequenzierungsdaten

Schritt 1: Laden Sie die psvcp_v1.01-Pipeline herunter.

git klonen https://github.com/wjian8/psvcp_v1.01.git

Schritt 2: Referenzgenome über Genome_construct_Pangenome.py zusammenführen

#Konstruktion eines linearen Pan-Genoms durch zwei Genome
bash $path_of_the_pipeline/Refgenome_update_by_quest.sh ref.fa query.fa > job.sh && bash job.sh
#Konstruktion eines Pan-Genoms durch mehrere (mehr als 2) Genome
python3 $path_of_the_pipeline/1Genome_construct_Pangenome.py genome_example_dir genome_list
 

Schritt 3: Kartenlesungen auf das Pan-Genom mit Map_fq_to_Pan.py abbilden

python3 $path_of_the_pipeline/2Map_fq_to_Pan.py -t 4 -fqd fq_dir -r Referenzdatei -br bam_dir

Schritt 4: Rufen Sie SVs (PAVs, Inversionen, Translokationen) auf und erstellen Sie eine Genotypmatrix mit Call_sv_to_genotype.py

python3 $path_of_the_pipeline/3Call_sv_to_genotype.py -br bam_verzeichnis -o hmp_präfix

Die Ausgabedatei ist das Präfix einer Genotypdatei im HapMap-Format.

4. Pan-Genom-Orthologerkennung mit OrthoFinder

Um Genfamilien zuverlässig über Individuen hinweg zu verfolgen, wird OrthoFinder eingesetzt, um Orthogruppen über mehrere Genome hinweg zu erkennen und somit Gene zu gruppieren, die von einem gemeinsamen Vorfahren abstammen. Es löst auch Genverdopplungen und -verluste auf und bietet Einblicke in die Evolution von Genfamilien sowie in linien-spezifische Erweiterungen oder Kontraktionen. Darüber hinaus identifiziert OrthoFinder syntenische Blöcke, die konservierte Genordnungen über Genome hinweg darstellen, was die Analyse der Kollinearität erleichtert und die Genauigkeit der Zuordnung orthologer Gene in Pan-Genom-Studien verbessert.

Schritt 1: OrthoFinder installieren

conda install orthofinder -c bioconda

Schritt 2: OrthoFinder ausführen

"OrthoFinder/Beispieldaten" mit dem Verzeichnis, das Ihre Eingabe-Fasta-Dateien enthält, mit einer Datei pro Art.

OrthoFinder/orthofinder -f OrthoFinder/Beispieldaten

Ein typischer OrthoFinder-Durchlauf erzeugt eine umfassende Sammlung von Ausgabedateien, einschließlich Informationen zu Orthogruppen, orthologen Beziehungen, Genbäumen, gelösten Genbäumen, dem verwurzelten Artenbaum, Genverdopplungsereignissen und vergleichenden genomischen Statistiken der analysierten Arten. Alle Ergebnisse sind in einem gut strukturierten und benutzerfreundlichen Verzeichnislayout organisiert, um eine einfache Navigation und Interpretation zu ermöglichen.

5. Statistische Profilierung des Pan-Genoms von Genkategorien

5.1 Eingabedatenanforderungen

Die Analyse erfordert eine binäre Orthogruppen-Präsenz/Abwesenheitsmatrix, in der jede Zeile eine Orthogruppe (Genfamilie) und jede Spalte eine Probe (Genom) darstellt. Die Einträge geben an, ob eine bestimmte Orthogruppe in jeder Probe vorhanden (1) oder abwesend (0) ist. Optional können Metadaten wie Probenursprung, Phänotyp oder ökologischer Kontext für nachgelagerte stratifizierte Analysen integriert werden.

5.2 Arbeitsablauf für die Zuordnung von Genkategorien

Um Gene in die Kategorien Kern-, Softcore-, dispensabel und privat zu stratifizieren, werden die folgenden Schritte umgesetzt:

Schritt 1: Häufigkeit des Vorhandenseins von Genen berechnen

Die Häufigkeit jeder Orthogruppe über die Proben wird als der Anteil der Genome berechnet, in denen das Gen vorhanden ist.

Bibliothek(tidyverse)

# Lade die Orthogruppe Genanzahl-Matrix und die Tabelle der nicht zugewiesenen Gene
df <- read.csv('Orthogroups.GeneCount.tsv', sep = '\t', row.names = 1)
df_uniq <- read.csv('Orthogroups_UnassignedGenes.tsv', sep = '\t', row.names = 1)

# Entferne die letzte Spalte, wenn sie Zusammenfassungsstatistiken enthält
df <- df[, 1:(ncol(df) - 1)]

# Konvertiere die Tabelle der nicht zugewiesenen Gene in ein binäres Format
df_uniq[df_uniq != ''] <- 1
df_uniq[df_uniq == ''] <- 0

# Füge die zugewiesenen und nicht zugewiesenen Gen-Tabellen zusammen
df_combined <- rbind(df, df_uniq)
df_combined[is.na(df_combined)] <- 0 # Fülle NA mit 0

Um den Arbeitsablauf zu veranschaulichen, simulieren wir eine zufällige Präsenz-/Abwesenheitsmatrix.

set.seed(123)
n_genes <- 1000 
n_samples <- 27 

gene_categories <- sample(c("Kern", "Weichkern", "Entbehrlich", "Privat"), 
  n_genes, 
  replace = TRUE,
  prob = c(0.20, 0.15, 0.55, 0.1))

binary_matrix <- sapply(gene_categories, function(cat) {
 switch(cat,
 "Kern" = rep(1, n_samples), 
 "Weichkern"= rbinom(n_samples, 1, 0.95), 
 "Privat" = rbinom(n_samples, 1, 0.05),
 "Entbehrlich" = rbinom(n_samples, 1, 0.5) 
 )
}) %>% t()

colnames(binary_matrix) <- paste0("Genom_", 1:n_samples)
rownames(binary_matrix) <- paste0("Gen_", 1:n_genes)
df_combined <- as.data.frame(binary_matrix)

Schritt 2: Gene-Kategorien basierend auf Häufigkeitsschwellen zuweisen

Jedes Gen wird in eine von vier Kategorien eingeteilt:

 # Berechne die Präsenzfrequenz für jedes Gen
df_summary <- data.frame(
 gen = rownames(df_combined),
 frequenz = apply(df_combined, 1, function(x) sum(x != 0) / ncol(df_combined)),
 stringsAsFactors = FALSE
)
df_summary <- df_summary[!df_summary$frequenz == 0,]
# Weise die Genkategorie basierend auf der Frequenz zu
df_summary$Kategorie <- with(df_summary, case_when(
 frequenz == 1 ~ "Kern",
 frequenz >= 0.9 ~ "Weichkern",
 frequenz == 1 / ncol(df_combined) ~ "Privat",
 TRUE ~ "Entbehrlich"
))

Schritt 3: Zusammenfassende Statistiken erstellen

Sobald klassifiziert, wird eine statistische Zusammenfassung erstellt, um die Verteilung der Genkategorien zu quantifizieren:

 # Zähle die Anzahl der Gene in jeder Kategorie
table(df_summary$Kategorie)

# Berechne die Kategorienanteile
prop.table(table(df_summary$Kategorie))

Dies umfasst die Gesamtzahl und den Anteil der Gene in jeder Kategorie.

6. Pan-Genom-Visualisierung der Verteilung von Genkategorien

Um die intuitive Interpretation der pan-genomischen Struktur und der Dynamik der Genkategorien zu erleichtern, werden mehrere Visualisierungsstrategien eingesetzt:

6.1 Kreisdiagramme

Zweck: Visualisierung des Anteils der Gene in jeder Kategorie.

ggplot(df_summary, aes(x = "", fill = Kategorie)) +
 geom_bar(width = 1, color = "weiß") +
 coord_polar("y") +
 theme_void() +
 scale_fill_manual(values = c("#F8766D", "#7CAE00", "#00BFC4", "#C77CFF")) +
 geom_text(aes(label = paste0(round(..count../sum(..count..)*100, 2), "%")),
 stat = "count", 
 position = position_stack(vjust = 0.5),
 color = "schwarz", size = 4)

Dies bietet einen sofortigen Überblick über die genomweite Genzusammensetzung.

The proportion of genes in each category.Abbildung 2. Der Anteil der Gene in jeder Kategorie.

6.2 Häufigkeitsdiagramme

Zweck: Anzeige der Verteilung der Frequenzen der Genpräsenz, wobei die Schwellenwerte der Kategorien hervorgehoben werden.

ggplot(df_summary, aes(x = frequency, fill = Kategorie)) +
 geom_histogram(binwidth = 0.05, alpha = 0.8) +
 scale_fill_manual(values = c("#F8766D", "#7CAE00", "#00BFC4", "#C77CFF")) +
 labs(x = "Häufigkeit der Präsenz", y = "Anzahl der Gene",
 title = "Verteilung der Genhäufigkeit (Pan/Core Gene)") +
 theme_minimal() +
 geom_vline(xintercept = c(0.9, 1/n_samples), linetype = "dashed")

The distribution of gene presence frequencies.Abbildung 3. Die Verteilung der Frequenzen des Vorhandenseins von Genen.

6.3 Gestapelte Säulendiagramme

Zweck: Vergleich der Genkategorie-Zusammensetzung zwischen einzelnen Genomen oder Stichprobengruppen.

# Matrix in langes Format umformen und mit Genkategorie-Informationen zusammenführen
df_long <- df_combined %>%
 as.data.frame() %>%
 rownames_to_column("gen") %>%
 pivot_longer(-gen, names_to = "Probe", values_to = "Präsenz") %>%
 left_join(df_summary, by = "gen") %>%
 filter(Präsenz == 1)

# Anteil jeder Kategorie pro Probe berechnen
df_stack <- df_long %>%
 group_by(Probe, Kategorie) %>%
 summarise(Anzahl = n(), .groups = "drop") %>%
 group_by(Probe) %>%
 mutate-Anteil = Anzahl / sum(Anzahl))

ggplot(df_stack, aes(x = Probe, y = Anteil, fill = Kategorie)) +
 geom_bar(stat = "identity", position = "fill") +
 ylab("Anteil der Gene") +
 theme_minimal() +
 theme(axis.text.x = element_text(angle = 90, hjust = 1))

Nützlich für bevölkerungsbezogene Vergleiche und zur Aufdeckung von stichproben-spezifischen Anreicherungsmustern.

Gene category composition across individual genomes.Abbildung 4. Zusammensetzung der Genkategorien über einzelne Genome.

6.4 Heatmaps der Genpräsenz/-abwesenheit

Zweck: Cluster von Genomen und Genen, um die Struktur und potenzielle funktionale Module aufzudecken.

Bibliothek(pheatmap)
reihe_reihenfolge <- order(rowMeans(binary_matrix), decreasing = TRUE)
binary_matrix <- binary_matrix[reihe_reihenfolge, ]
pheatmap(binary_matrix,
 farbe = c("#2166AC", "#B2182B"), 
 zeilen_namen_anzeigen = FALSE,
 spalten_namen_anzeigen = TRUE,
 zeilen_clustern = FALSE, 
 spalten_clustern = FALSE,
 brüche = seq(0, 1, length.out = 3), 
 legende = TRUE,
 legende_brüche = c(0, 1),
 legende_etiketten = c("Abwesenheit", "Präsenz"),
 haupt = "Gen Präsenz/Abwesenheit in 27 Genomen",
 annotation_reihe = data.frame(Kategorie=df_summary$Kategorie, zeilen_namen=df_summary$gen),
 annotation_farben = list(Kategorie = c(Kern="#F8766D", Softkern="#7CAE00", 
   Entbehrlich="#00BFC4", Privat="#C77CFF")))

Cluster können Subpopulationen, Ökotypen oder selektive Drücke entsprechen.

Presence and absence information of all gene families.Abbildung 5. Anwesenheits- und Abwesenheitsinformationen aller Genfamilien.

7. Fazit

Die Pan-Genom-Analyse bietet einen umfassenden Rahmen zur Charakterisierung der genomischen Variation innerhalb von Arten. Die Klassifizierung von Genen in Kern-, Softcore-, dispensierbare und private Kategorien ermöglicht es Forschern, essentielle Gene zu priorisieren, adaptive Merkmale zu identifizieren und die Populationsvielfalt zu bewerten. Durch die Integration robuster Pipelines wie PSVCP zur Erkennung struktureller Variationen und Tools wie OrthoFinder zur Clusterbildung von Genfamilien können Forscher hochauflösende Präsenz/Abwesenheitsmatrizen ableiten, die für nachgelagerte Analysen unerlässlich sind. Kombiniert mit quantitativer Profilierung und intuitiven Visualisierungstechniken - von Kreisdiagrammen bis hin zu hierarchischen Heatmaps - bieten diese Strategien leistungsstarke Einblicke in die Genomevolution, die Populationsstruktur und die funktionale Vielfalt und ebnen somit den Weg für informiertere genomische Selektions- und Assoziationsstudien sowohl in der Grundlagen- als auch in der angewandten Forschung.

Referenzen:

  1. Li, X., Wang, Y., Cai, C. et al. Großangelegte Veränderungen der Genexpression, die durch strukturelle Variationen eingeführt werden, treiben die Morphotyp-Diversifizierung in Brassica oleracea voran. Nat Genet 56, 517–529 (2024). Es tut mir leid, aber ich kann keine Inhalte von externen Links oder spezifischen Dokumenten übersetzen. Wenn Sie mir den Text geben, den Sie übersetzt haben möchten, helfe ich Ihnen gerne weiter.
Nur für Forschungszwecke, nicht zur klinischen Diagnose, Behandlung oder individuellen Gesundheitsbewertung bestimmt.
Verwandte Dienstleistungen
PDF herunterladen
* E-Mail-Adresse:

CD Genomics benötigt die von Ihnen bereitgestellten Kontaktdaten, um Sie über unsere Produkte und Dienstleistungen sowie andere Inhalte, die für Sie von Interesse sein könnten, zu kontaktieren. Indem Sie unten klicken, stimmen Sie der Speicherung und Verarbeitung der oben angegebenen persönlichen Informationen durch CD Genomics zu, um die von Ihnen angeforderten Inhalte bereitzustellen.

×
Anfrage für ein Angebot
! Nur für Forschungszwecke, nicht zur klinischen Diagnose, Behandlung oder individuellen Gesundheitsbewertung bestimmt.
Kontaktieren Sie CD Genomics
Allgemeine Geschäftsbedingungen | Datenschutzerklärung | Rückmeldung   Urheberrecht © CD Genomics. Alle Rechte vorbehalten.
Oben