À partir des résultats de l'analyse de la flore ARNr 16S utilisant Qiime2, nous allons introduire une méthode pour visualiser la distribution du taux de composition de bactéries spécifiques. Dans la section précédente, nous avons comparé la flore intestinale du groupe CD (maladie de Clone), du groupe UC (colite ulcéreuse) et du groupe non IBD (maladie intestinale non inflammatoire). Je vais vous présenter comment le représenter avec un diagramme de barbe. En référence à cet article, vous pourrez créer les moustaches de boîte suivantes.
Cette fois, j'utiliserai Altair qui peut créer divers graphiques en entrant Python DataFrame. Des dessins autres que les moustaches de boîte sont également présentés à ici.
Pour créer un diagramme de moustaches de boîte, vous avez besoin de données de comptage qui récapitulent le nombre de lectures bactériennes pour chaque échantillon et de métadonnées d'échantillon. Pour plus de détails, reportez-vous à la section précédente.
Table.qza '' et
taxonomy.qza '' sont nécessaires pour obtenir les données de comptage. Pour savoir comment créer chaque fichier, consultez ici. Dans cet article, puisque nous utilisons les données de nombre de niveaux de phylum, exécutez la commande suivante, en faisant attention à `` --p-level 2 ''.
Terminal (dans l'environnement virtuel 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
Si vous obtenez le fichier suivant, vous réussissez.
Créez les métadonnées suivantes au format tsv.
Vous pouvez obtenir une boîte de moustaches en exécutant la commande suivante.
alt_comp_plot.py
import os
import altair as alt
import pandas as pd
#Désignation de la classe de classification. Le phylum est de niveau 2.
l_select = 'L2'
#Obtenir le répertoire actuel
cwd = os.getcwd()
#Acquisition des données de comptage
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=Note 1
#Convertir en données de composition
comp = count.apply(lambda x: x/sum(x), axis=1)
#Obtenir des métadonnées
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)
#Convertir le nom de la ligne en type str (Ce nom de ligne est un nombre, il a donc été traité par le type int)
comp.index = comp.index.astype(str)
md.index = md.index.astype(str)
#Combinez les données de comptage et les métadonnées. (Si le nom de la ligne n'est pas de type str, il ne sera pas combiné)
df = pd.concat([comp,md], axis=1)
#Cette fois, j'examinerai la flore de l'iléon (circonflexe) et du rectum (rectal). (Parce que le nombre d'échantillons était petit dans d'autres parties)
df = df[df['biopsy_location'].isin(['Ileum','Rectum'])]
#Exécutez Altair
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,
)
#Affichage de la figure
boxplot.show()
Une brève introduction aux commandes d'Altair.
ʻAlt.Chart (df)
`Entrez le DataFrame à visualiser..mark_boxplot ()
Définit le diagramme des moustaches de la boîte..encode ()
Paramètres qui dépendent du contenu du DataFrameʻAlt.X ()
`Spécifiez la colonne qui détermine le composant de l'axe XʻAlt.Sort ()
`Détermine l'ordre des axesʻAlt.Axis ()
ʻAxis setting. Il est également possible de saisir des caractères différents de DataFrame dans titre ''. La ligne sur l'axe disparaît avec
ticks = False ''.ʻAlt.Y ()
`Spécifiez la colonne qui détermine le composant de l'axe YʻAlt.Axis ()
ʻAxis setting. Vous pouvez afficher les pourcentages avec format = '%' ''. La ligne horizontale sur le graphique est effacée avec
grid = False``.ʻAlt.Color ()
`Spécifiez la colonne qui détermine la couleur.ʻAlt.Column ()
ʻArranger les graphes en parallèle.Vous pouvez enregistrer la figure au format png ou svg à partir de "..." en haut à droite.