[PYTHON] Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm

Zweck

Aus den Ergebnissen der 16S-rRNA-Flora-Analyse unter Verwendung von Qiime2 werden wir eine Methode zur Visualisierung der Verteilung der Zusammensetzungsrate spezifischer Bakterien vorstellen. Im vorherigen Abschnitt haben wir die Darmflora der CD-Gruppe (Clone's Disease), der UC-Gruppe (Colitis ulcerosa) und der NonIBD-Gruppe (Non-Inflammatory Intestinal Disease) verglichen. Ich werde vorstellen, wie man es mit einem Box-Bart-Diagramm darstellt. Mit Bezug auf diesen Artikel können Sie die folgenden Box-Whisker erstellen.

visualization-3.png

Umgebung

Paket

Dieses Mal verwende ich Altair, mit dem durch Eingabe von Python DataFrame verschiedene Diagramme erstellt werden können. Andere Zeichnungen als die Box-Whisker werden ebenfalls unter [hier] vorgestellt (https://qiita.com/keisuke-ota/items/80d64153c499c8cc4774).

Über Daten

Um ein Box-Whisker-Diagramm zu erstellen, benötigen Sie Zähldaten, die die Anzahl der Bakterienablesungen für jede Probe und die Probenmetadaten zusammenfassen. Weitere Informationen finden Sie unter Vorheriger Abschnitt.

Erfassung von Zähldaten

Table.qza und taxonomy.qza sind erforderlich, um die Zähldaten zu erhalten. Informationen zum Erstellen der einzelnen Dateien finden Sie unter hier. Führen Sie in diesem Dokument den folgenden Befehl aus, da wir Phylum-Level-Count-Daten verwenden, und achten Sie dabei auf --p-Level 2.

Terminal (in der virtuellen Umgebung von Qiime2)


qiime taxa collapse   --i-table table.qza   --i-taxonomy taxonomy.qza   --p-level 2   --o-collapsed-table L2_table.qza

qiime tools export  --input-path L2_table.qza   --output-path L2

biom convert  -i L2/feature-table.biom  -o L2/table.tsv  --to-tsv

Wenn Sie die folgende Datei erhalten, sind Sie erfolgreich.

スクリーンショット 2020-10-31 14.20.16.png

Metadaten abrufen

Erstellen Sie die folgenden Metadaten im tsv-Format.

スクリーンショット 2020-10-31 14.25.20.png

Führen Sie Altair aus

Sie können einen Box-Whisker erhalten, indem Sie den folgenden Befehl ausführen.

alt_comp_plot.py


import os
import altair as alt
import pandas as pd

#Bezeichnung der Klassifikationsklasse. Phylum ist Stufe 2.
l_select = 'L2' 

#Aktuelles Verzeichnis abrufen
cwd = os.getcwd()

#Erfassung von Zähldaten
count_path = [l_select,'table.tsv'] 
count_file = os.path.join(cwd, *count_path)
count = pd.read_table(count_file, sep='\t', index_col=0 ,header=1).T # header=Anmerkung 1

#In Kompositionsdaten konvertieren
comp = count.apply(lambda x: x/sum(x), axis=1)

#Metadaten abrufen
md_path = ['metadata.tsv']
md_file = os.path.join(cwd, *md_path)
md = pd.read_table(md_file, sep='\t', index_col=0 ,header=0)

#Konvertieren Sie den Zeilennamen in den Str-Typ (Dieser Zeilenname ist eine Zahl, wurde also vom Int-Typ verarbeitet.)
comp.index = comp.index.astype(str)
md.index = md.index.astype(str)

#Kombinieren Sie Zähldaten und Metadaten. (Wenn der Zeilenname nicht vom Typ str ist, wird er nicht kombiniert.)
df = pd.concat([comp,md], axis=1)

#Dieses Mal werde ich die Flora von Ileum (Zirkumflex) und Rektum (Rektal) untersuchen. (Weil die Anzahl der Proben in anderen Teilen gering war)
df = df[df['biopsy_location'].isin(['Ileum','Rectum'])]

#Führen Sie Altair aus
boxplot = alt.Chart(df).mark_boxplot(size=100,ticks=alt.MarkConfig(width=30), median=alt.MarkConfig(color='black',size=100)).encode(
	    alt.X('diagnosis',sort = alt.Sort(['CD','UC','nonIBD']), axis=alt.Axis(labelFontSize=15, ticks=True, titleFontSize=18, title='Diagnosis')),
	    alt.Y('D_0__Bacteria;D_1__Firmicutes', axis=alt.Axis(format='%', labelFontSize=15, ticks=True, titleFontSize=18, grid=False,domain=True, title='Firmicutes'), scale=alt.Scale(domain=[0,0.02])),
	    alt.Color('diagnosis'),
	    alt.Column('biopsy_location', header=alt.Header(labelFontSize=15, titleFontSize=18), sort = alt.Sort(['Ileum','Rectum']), title='Biopsy')
	).properties(
		width=600,
		height=500,
	)

#Anzeige der Figur
boxplot.show()

Über Altair

Eine kurze Einführung in die Befehle von Altair.

Abbildung speichern

Sie können die Figur im PNG- oder SVG-Format unter "..." oben rechts speichern.

スクリーンショット 2020-10-31 16.39.36.png

Recommended Posts

Darstellung der Verteilung der Bakterienzusammensetzung aus Qiime2-Analysedaten in einem Box-Whisker-Diagramm
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
So bestimmen Sie die Existenz eines Selenelements in Python
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Wie erstelle ich eine große Menge an Testdaten in MySQL? ??
So machen Sie einen Screenshot des Chrome-Bildschirms (verhindern Sie, dass er in der Mitte abgeschnitten wird)
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
So berechnen Sie die Volatilität einer Marke
Aufgezeichnete Umgebung für die Datenanalyse mit Python
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Ein Memorandum zur Ausführung des Befehls! Sudo magic in Jupyter Notebook
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
So ermitteln Sie die Anzahl der Stellen in Python
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
So zeigen Sie das Änderungsdatum einer Datei in C-Sprache bis zu Nanosekunden an
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (2: Rahmenanalyse von Videos, um Kandidatenbilder zu erhalten)
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
So finden Sie die optimale Anzahl von Clustern für k-means
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
Anzeigen des regionalen Netzes des Government Statistics Office (eStat) in einem Webbrowser
Verwendung der Methode __call__ in der Python-Klasse
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
Berechnen des aus ABC134-D gelernten Rechenaufwands
So melden Sie sich automatisch wie 1Password von der CLI an
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
So generieren Sie eine Abfrage mit dem IN-Operator in Django
So berechnen Sie die Summe oder den Durchschnitt von Zeitreihen-CSV-Daten in einem Augenblick
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Überprüfen Sie beim Lösen der einführenden Statistikübung 12.10, wie Sie ein Streudiagramm in Pandas zeichnen.
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
So erhalten Sie mit einer vielseitigen Methode nur die erforderlichen Daten aus der strukturierten Datengruppe
So erhalten Sie einen Überblick über Ihre Daten in Pandas
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
Übergeben des Ausführungsergebnisses eines Shell-Befehls in einer Liste in Python (nicht blockierende Version)
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
[Siehe im Bild] Wie ein Kaggle-Anfänger in 10 Minuten vom "Anfänger" zum "Mitwirkenden" aufsteigen kann.
[PyQt x pySerial] Zeigen Sie im Kombinationsfeld eine Liste der mit dem PC verbundenen COM-Ports an
Portiert von der R-Sprache von "Sazae-sans Janken Data Analysis" nach Python
So implementieren Sie Java-Code im Hintergrund von Red Hat (Linux ONE)
Eine einfache Datenanalyse von Bitcoin, die von CoinMetrics in Python bereitgestellt wird
Wie Sie die interne Struktur eines Objekts in Python kennen
[Python] PCA-Scratch im Beispiel "Einführung in die multivariate Analysemethode"
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
[Unerwartet bekannt? ] Einführung eines echten Tages in der Datenanalyse
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle