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.
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).
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.
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.
Erstellen Sie die folgenden Metadaten im tsv-Format.
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()
Eine kurze Einführung in die Befehle von Altair.
alt.Chart (df)
Geben Sie den zu visualisierenden DataFrame ein..mark_boxplot ()
Legen Sie das Box-Whisker-Diagramm fest. size
Boxbreite Zecken
Barteinstellung.encode ()
Einstellungen, die vom Inhalt des DataFrame abhängenalt.X ()
Geben Sie die Spalte an, die die X-Achsen-Komponente bestimmtalt.Sort ()
Bestimmen Sie die Reihenfolge der Achsenalt.Axis ()
Achseneinstellungen. Es ist auch möglich, andere Zeichen als DataFrame in title
einzugeben. Die Linie auf der Achse verschwindet mit ticks = False
.alt.Y ()
Geben Sie die Spalte an, die die Y-Achsenkomponente bestimmtalt.Axis ()
Achseneinstellungen. Sie können Prozentsätze mit format = '%'
anzeigen. Die horizontale Linie im Diagramm wird mit grid = False
gelöscht.alt.Color ()
Geben Sie die Spalte an, die die Farbe bestimmt.alt.Column ()
Ordnen Sie Diagramme parallel an.property ()
Einstellungen, die nicht vom Inhalt von DataFrame abhängen. Hier wird die Größe der Figur angegeben.Sie können die Figur im PNG- oder SVG-Format unter "..." oben rechts speichern.
Recommended Posts