1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

microshadesをQIIME2データに適用する

Last updated at Posted at 2023-08-29

microshadesとは

色覚異常 (CVD) を持つ人に適したカラーパレットはいくつかあるが、多数の色を同時に表示するマイクロバイオームデータには不十分であることが多い。
R パッケージであるmicroshadesでは、CVDでアクセス可能なマイクロバイオーム図を作成することができる。

CVDフレンドリーなカラーパレットを出すだけではなく、マイクロバイオームデータを分類群ごとにlegend内で分けることが可能。

下記のように、Phylumごとに細菌属を分けて、グラデーションで示すことができる。(画像元

image.png

論文
microshades: An R Package for Improving Color Accessibility and Organization of Microbiome Data

GitHub
microshades

インストールとライブラリ読み込み

# install microshades
remotes::install_github("KarstensLab/microshades")

# install phyloseq and speedyseq
BiocManager::install("phyloseq")

# Import libraries
library(phyloseq)
library(speedyseq)
library(dplyr)
library(ggplot2)
library(microshades)
library(qiime2R)
library(cowplot)

データ入力と整形

selected_groupsに入れる細菌門は分類名の変更されている可能性があるため、
phyloseqの関数 tax_table(physeq) などで随時確認する。
group_level, subgroup_levelは適宜変更可能。こちらも tax_table(physeq)を見て表記揺れに注意する。
"PHYLUM", "Phylum", "phylum"など。phyloseqで読み込むと基本は"Phylum"になる。
top_n_subgroupsでsubgroupを何種類表示するか決められる。

# Import data
physeq <- qza_to_phyloseq(
		features="table.qza",
		taxonomy="taxonomy_SILVA.qza",
		metadata ="metadata.txt"
		)

# Use microshades function prep_mdf to agglomerate, normalize, and melt the phyloseq object
mdf_prep <- prep_mdf(physeq)

# Create a color object for the specified data
# Check tax_table(physeq) 
color_obj_physeq <- create_color_dfs(
					mdf_prep, selected_groups = c("Firmicutes", "Bacteroidota", "Actinobacteriota", "Proteobacteria"), 
					top_n_subgroups = 4, 
					cvd = TRUE, 
					top_orientation = TRUE
					)

# Extract
mdf_physeq <- color_obj_physeq$mdf
cdf_physeq <- color_obj_physeq$cdf

グラフの描画

凡例をPhylumごとに見出しと色分けをする場合は、custom_legend関数を用いる。
カスタムした凡例と棒グラフを組み合わせる場合は、plot_gridで組み合わせて表示する。

plot_1 <- plot_microshades(mdf_physeq, cdf_physeq, group_label = "Phylum  Genus")

plot_diff <- plot_1 +
	scale_y_continuous(labels = scales::percent, expand = expansion(0)) +
	theme(
		legend.position = "none",
		axis.title.y = element_text(face = "bold"),
		axis.title.x = element_text(face = "bold"),
		axis.text.y = element_text(face = "bold")
		)

# Custom legend
custom_legend <-custom_legend(mdf_physeq, cdf_physeq, legend_text_size = 12)

# Combine plot and legend
plot_grid(plot_diff, custom_legend, rel_widths = c(1, .25))

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?