#metacoderパッケージについて
metabarcoderはphyloseqと同様に微生物データの可視化に有効です。系統樹がきれいに書けます。
とりあえずビジュアルがかっこいいです。
#phyloseqオブジェクトからmetacoderオブジェクトに変換する
今回はphyloseqオブジェクトにインプットしたデータを使用してmetabarcoderの系統樹を描く方法を紹介します。phyloseqオブジェクトの作成については前回の記事を参照してください。(metacoderに直接OTU table, rooted tree, metadataをインプットしてもOK。)
library(metacoder)
library(phyloseq)
obj <- parse_phyloseq(physeq) #physeq = phyloseqオブジェクトを入れます
#プロットする
obj%>%
filter_taxa(grepl(pattern = "^[a-zA-Z]+$", taxon_names)) %>%
filter_taxa(taxon_ranks == "Order", supertaxa = TRUE) %>% # Orderレベルに指定
heat_tree(node_label = gsub(pattern = "\\[|\\]", replacement = "", taxon_names),
node_size = n_obs,
node_color = n_obs,
node_color_axis_label = "OTU count",
layout = "davidson-harel", initial_layout = "reingold-tilford") # 系統樹のアルゴリズム
#サンプルごとにプロットする
上のプロットはサンプルすべての平均値なのでサンプルの処理事のプロットをつくります。
obj$data$type_abund <- calc_taxon_abund(x, "otu_table",
cols = metadata$X.SampleID,
groups = metadata$plant) # plant = 各サンプルの処理
plantという処理区の中のVignaMaize処理の平均をとってみます。
obj %>%
taxa::filter_taxa(VignaMaize > 50) %>% # abundanceが50以上のバクテリア
filter_taxa(taxon_ranks == "Order", supertaxa = TRUE) %>% # taxa:: needed because of phyloseq::filter_taxa
heat_tree(node_label = taxon_names,
node_size = VignaMaize,
node_color =VignaMaize,
layout = "da", initial_layout = "re",
title = "Taxa in VignaMaize") ->p
p
最初に貼った図が描けます。
#参考URL
https://grunwaldlab.github.io/metacoder_documentation/index.html