QIIME + Phyloseq + MicrobiotaProcess (v2)

gene_x 0 like s 716 view s

Tags: R, scripts

diff_analysis_Group3_vs_Group7

PCoA2_labeled

1, MicrobiotaProcess_Group1_vs_Group5.R

  1. # https://bioconductor.org/packages/release/bioc/vignettes/MicrobiotaProcess/inst/doc//MicrobiotaProcess.html
  2. # -----------------------------------
  3. # ---- prepare the R environment ----
  4. #Rscript MicrobiotaProcess.R
  5. #NOTE: exit R script, then login again R-environment; rm -rf Phyloseq*_cache
  6. #mkdir figures
  7. rmarkdown::render('Phyloseq.Rmd',output_file='Phyloseq.html')
  8. # with #alpha = 2.0, running the following script further!
  9. # ("1","2","5","6","7", "15","16","17","18","19","20", "29","30","31","32", "40","41","42","43","44","46")
  10. #div.df2[div.df2 == "Group1"] <- "aged.post"
  11. #div.df2[div.df2 == "Group3"] <- "young.post"
  12. #div.df2[div.df2 == "Group5"] <- "aged.post"
  13. #div.df2[div.df2 == "Group7"] <- "young.post"
  14. # ("8","9","10","12","13","14", "21","22","23","24","25","26","27","28", "33","34","35","36","37","38","39","51", "47","48","49","50","52","53","55")
  15. #div.df2[div.df2 == "Group2"] <- "aged.pre"
  16. #div.df2[div.df2 == "Group4"] <- "young.pre"
  17. #div.df2[div.df2 == "Group6"] <- "aged.pre"
  18. #div.df2[div.df2 == "Group8"] <- "young.pre"
  19. #Group1: f.aged and post
  20. #Group2: f.aged and pre
  21. #Group3: f.young and post
  22. #Group4: f.young and pre
  23. #Group5: m.aged and post
  24. #Group6: m.aged and pre
  25. #Group7: m.young and post
  26. #Group8: m.young and pre
  27. #[,c("1","2","5","6","7", "8","9","10","12","13","14")]
  28. #[,c("15","16","17","18","19","20", "21","22","23","24","25","26","27","28")]
  29. #[,c("29","30","31","32", "33","34","35","36","37","38","39","51")]
  30. #[,c("40","41","42","43","44","46", "47","48","49","50","52","53","55")]
  31. #For the first set:
  32. #a6cee3: This is a light blue color, somewhat pastel and soft.
  33. #b2df8a: A soft, pale green, similar to a light lime.
  34. #fb9a99: A soft pink, slightly peachy or salmon-like.
  35. #cab2d6: A pale purple, reminiscent of lavender or a light mauve.
  36. #For the second set:
  37. #1f78b4: This is a strong, vivid blue, close to cobalt or a medium-dark blue.
  38. #33a02c: A medium forest green, vibrant and leafy.
  39. #e31a1c: A bright red, very vivid, similar to fire engine red.
  40. #6a3d9a: This would be described as a deep purple, akin to a dark lavender or plum.
  41. # -----------------------------
  42. # ---- 3.1. bridges other tools
  43. ##https://github.com/YuLab-SMU/MicrobiotaProcess
  44. ##https://www.bioconductor.org/packages/release/bioc/vignettes/MicrobiotaProcess/inst/doc/MicrobiotaProcess.html
  45. ##https://chiliubio.github.io/microeco_tutorial/intro.html#framework
  46. ##https://yiluheihei.github.io/microbiomeMarker/reference/plot_cladogram.html
  47. #BiocManager::install("MicrobiotaProcess")
  48. #install.packages("microeco")
  49. #install.packages("ggalluvial")
  50. #install.packages("ggh4x")
  51. library(MicrobiotaProcess)
  52. library(microeco)
  53. library(ggalluvial)
  54. library(ggh4x)
  55. library(gghalves)
  56. library(tidyr)
  57. ## Convert the phyloseq object to a MicrobiotaProcess object
  58. #mp <- as.MicrobiotaProcess(ps.ng.tax)
  59. #mt <- phyloseq2microeco(ps.ng.tax) #--> ERROR
  60. #abundance_table <- mt$abun_table
  61. #taxonomy_table <- mt$tax_table
  62. #ps.ng.tax_abund <- phyloseq::filter_taxa(ps.ng.tax, function(x) sum(x > total*0.01) > 0, TRUE)
  63. #ps.ng.tax_most = phyloseq::filter_taxa(ps.ng.tax_rel, function(x) mean(x) > 0.001, TRUE)
  64. ##OPTION1 (NOT_USED): take all samples, prepare ps.ng.tax_abund --> mpse_abund
  65. ##mpse <- ps.ng.tax %>% as.MPSE()
  66. #mpse_abund <- ps.ng.tax_abund %>% as.MPSE()
  67. ##OPTION2 (USED!): take partial samples, prepare ps.ng.tax or ps.ng.tax_abund (2 replacements!)--> ps.ng.tax_sel --> mpse_abund
  68. ps.ng.tax_sel <- ps.ng.tax_abund
  69. ##otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("1","2","5","6","7", "15","16","17","18","19","20", "29","30","31","32", "40","41","42","43","44","46")]
  70. ##NOTE: Only choose Group2, Group4, Group6, Group8
  71. #> ps.ng.tax_sel
  72. #otu_table() OTU Table: [ 37465 taxa and 29 samples ]
  73. #sample_data() Sample Data: [ 29 samples by 10 sample variables ]
  74. #tax_table() Taxonomy Table: [ 37465 taxa by 7 taxonomic ranks ]
  75. #phy_tree() Phylogenetic Tree: [ 37465 tips and 37461 internal nodes ]
  76. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax_abund)[,c("1","2","5","6","7", "29","30","31","32")]
  77. mpse_abund <- ps.ng.tax_sel %>% as.MPSE()
  78. # A MPSE-tibble (MPSE object) abstraction: 2,352 × 20
  79. # NOTE mpse_abund contains 20 variables: OTU, Sample, Abundance, BarcodeSequence, LinkerPrimerSequence, FileInput, Group,
  80. # Sex_age <chr>, pre_post_stroke <chr>, Conc <dbl>, Vol_50ng <dbl>, Vol_PCR <dbl>, Description <chr>,
  81. # Domain <chr>, Phylum <chr>, Class <chr>, Order <chr>, Family <chr>, Genus <chr>, Species <chr>
  82. # -----------------------------------
  83. # ---- 3.2. alpha diversity analysis
  84. # Rarefied species richness + RareAbundance
  85. mpse_abund %<>% mp_rrarefy()
  86. # 'chunks' represent the split number of each sample to calculate alpha
  87. # diversity, default is 400. e.g. If a sample has total 40000
  88. # reads, if chunks is 400, it will be split to 100 sub-samples
  89. # (100, 200, 300,..., 40000), then alpha diversity index was
  90. # calculated based on the sub-samples.
  91. # '.abundance' the column name of abundance, if the '.abundance' is not be
  92. # rarefied calculate rarecurve, user can specific 'force=TRUE'.
  93. mpse_abund %<>%
  94. mp_cal_rarecurve(
  95. .abundance = RareAbundance,
  96. chunks = 400
  97. )
  98. # The RareAbundanceRarecurve column will be added the colData slot
  99. # automatically (default action="add")
  100. #NOTE mpse_abund contains 22 varibles = 20 varibles + RareAbundance <dbl> + RareAbundanceRarecurve <list>
  101. # default will display the confidence interval around smooth.
  102. # se=TRUE
  103. # NOTE that two colors #c("#00A087FF", "#3C5488FF") for .group = pre_post_stroke; four colors c("#1f78b4", "#33a02c", "#e31a1c", "#6a3d9a") for .group = Group;
  104. p1 <- mpse_abund %>%
  105. mp_plot_rarecurve(
  106. .rare = RareAbundanceRarecurve,
  107. .alpha = Observe,
  108. )
  109. p2 <- mpse_abund %>%
  110. mp_plot_rarecurve(
  111. .rare = RareAbundanceRarecurve,
  112. .alpha = Observe,
  113. .group = Group
  114. ) +
  115. scale_color_manual(values=c("#1f78b4", "#e31a1c")) +
  116. scale_fill_manual(values=c("#1f78b4", "#e31a1c"), guide="none")
  117. # combine the samples belong to the same groups if plot.group=TRUE
  118. p3 <- mpse_abund %>%
  119. mp_plot_rarecurve(
  120. .rare = RareAbundanceRarecurve,
  121. .alpha = "Observe",
  122. .group = Group,
  123. plot.group = TRUE
  124. ) +
  125. scale_color_manual(values=c("#1f78b4", "#e31a1c")) +
  126. scale_fill_manual(values=c("#1f78b4", "#e31a1c"),guide="none")
  127. png("rarefaction_of_samples_or_groups.png", width=1080, height=600)
  128. p1 + p2 + p3
  129. dev.off()
  130. # ------------------------------------------
  131. # 3.3. calculate alpha index and visualization
  132. library(ggplot2)
  133. library(MicrobiotaProcess)
  134. mpse_abund %<>%
  135. mp_cal_alpha(.abundance=RareAbundance)
  136. mpse_abund
  137. #NOTE mpse_abund contains 28 varibles = 22 varibles + Observe <dbl>, Chao1 <dbl>, ACE <dbl>, Shannon <dbl>, Simpson <dbl>, Pielou <dbl>
  138. f1 <- mpse_abund %>%
  139. mp_plot_alpha(
  140. .group=Group,
  141. .alpha=c(Observe, Chao1, ACE, Shannon, Simpson, Pielou)
  142. ) +
  143. scale_fill_manual(values=c("#1f78b4", "#e31a1c"), guide="none") +
  144. scale_color_manual(values=c("#1f78b4", "#e31a1c"), guide="none")
  145. f2 <- mpse_abund %>%
  146. mp_plot_alpha(
  147. .alpha=c(Observe, Chao1, ACE, Shannon, Simpson, Pielou)
  148. )
  149. #ps.ng.tax_sel contais only pre samples --> f1 cannot be generated!
  150. png("alpha_diversity_comparison.png", width=1400, height=600)
  151. f1 / f2
  152. dev.off()
  153. # -------------------------------------------
  154. # 3.4. The visualization of taxonomy abundance (Class)
  155. mpse_abund %<>%
  156. mp_cal_abundance( # for each samples
  157. .abundance = RareAbundance
  158. ) %>%
  159. mp_cal_abundance( # for each groups
  160. .abundance=RareAbundance,
  161. .group=Group
  162. )
  163. mpse_abund
  164. #NOTE mpse_abund contains 29 varibles = 28 varibles + RelRareAbundanceBySample <dbl>
  165. # visualize the relative abundance of top 20 phyla for each sample.
  166. # .group=time,
  167. p1 <- mpse_abund %>%
  168. mp_plot_abundance(
  169. .abundance=RareAbundance,
  170. taxa.class = Class,
  171. topn = 20,
  172. relative = TRUE
  173. )
  174. # visualize the abundance (rarefied) of top 20 phyla for each sample.
  175. # .group=time,
  176. p2 <- mpse_abund %>%
  177. mp_plot_abundance(
  178. .abundance=RareAbundance,
  179. taxa.class = Class,
  180. topn = 20,
  181. relative = FALSE
  182. )
  183. png("relative_abundance_and_abundance.png", width= 1200, height=600) #NOT PRODUCED!
  184. p1 / p2
  185. dev.off()
  186. #----
  187. h1 <- mpse_abund %>%
  188. mp_plot_abundance(
  189. .abundance = RareAbundance,
  190. .group = Group,
  191. taxa.class = Class,
  192. relative = TRUE,
  193. topn = 20,
  194. geom = 'heatmap',
  195. features.dist = 'euclidean',
  196. features.hclust = 'average',
  197. sample.dist = 'bray',
  198. sample.hclust = 'average'
  199. )
  200. h2 <- mpse_abund %>%
  201. mp_plot_abundance(
  202. .abundance = RareAbundance,
  203. .group = Group,
  204. taxa.class = Class,
  205. relative = FALSE,
  206. topn = 20,
  207. geom = 'heatmap',
  208. features.dist = 'euclidean',
  209. features.hclust = 'average',
  210. sample.dist = 'bray',
  211. sample.hclust = 'average'
  212. )
  213. # the character (scale or theme) of figure can be adjusted by set_scale_theme
  214. # refer to the mp_plot_dist
  215. png("relative_abundance_and_abundance_heatmap.png", width= 1200, height=600)
  216. aplot::plot_list(gglist=list(h1, h2), tag_levels="A")
  217. dev.off()
  218. # visualize the relative abundance of top 20 class for each .group (Group)
  219. p3 <- mpse_abund %>%
  220. mp_plot_abundance(
  221. .abundance=RareAbundance,
  222. .group=Group,
  223. taxa.class = Class,
  224. topn = 20,
  225. plot.group = TRUE
  226. )
  227. # visualize the abundance of top 20 phyla for each .group (time)
  228. p4 <- mpse_abund %>%
  229. mp_plot_abundance(
  230. .abundance=RareAbundance,
  231. .group= Group,
  232. taxa.class = Class,
  233. topn = 20,
  234. relative = FALSE,
  235. plot.group = TRUE
  236. )
  237. png("relative_abundance_and_abundance_groups.png", width= 1000, height=1000)
  238. p3 / p4
  239. dev.off()
  240. # ---------------------------
  241. # 3.5. Beta diversity analysis
  242. # ---------------------------------------------
  243. # 3.5.1 The distance between samples or groups
  244. # standardization
  245. # mp_decostand wraps the decostand of vegan, which provides
  246. # many standardization methods for community ecology.
  247. # default is hellinger, then the abundance processed will
  248. # be stored to the assays slot.
  249. mpse_abund %<>%
  250. mp_decostand(.abundance=Abundance)
  251. mpse_abund
  252. #NOTE mpse_abund contains 30 varibles = 29 varibles + hellinger <dbl>
  253. # calculate the distance between the samples.
  254. # the distance will be generated a nested tibble and added to the
  255. # colData slot.
  256. mpse_abund %<>% mp_cal_dist(.abundance=hellinger, distmethod="bray")
  257. mpse_abund
  258. #NOTE mpse_abund contains 31 varibles = 30 varibles + bray <list>
  259. # mp_plot_dist provides there methods to visualize the distance between the samples or groups
  260. # when .group is not provided, the dot heatmap plot will be return
  261. p1 <- mpse_abund %>% mp_plot_dist(.distmethod = bray)
  262. png("distance_between_samples.png", width= 1000, height=1000)
  263. p1
  264. dev.off()
  265. # when .group is provided, the dot heatmap plot with group information will be return.
  266. p2 <- mpse_abund %>% mp_plot_dist(.distmethod = bray, .group = Group)
  267. # The scale or theme of dot heatmap plot can be adjusted using set_scale_theme function.
  268. p2 %>% set_scale_theme(
  269. x = scale_fill_manual(
  270. values=c("#1f78b4", "#e31a1c"), #c("orange", "deepskyblue"),
  271. guide = guide_legend(
  272. keywidth = 1,
  273. keyheight = 0.5,
  274. title.theme = element_text(size=8),
  275. label.theme = element_text(size=6)
  276. )
  277. ),
  278. aes_var = Group # specific the name of variable
  279. ) %>%
  280. set_scale_theme(
  281. x = scale_color_gradient(
  282. guide = guide_legend(keywidth = 0.5, keyheight = 0.5)
  283. ),
  284. aes_var = bray
  285. ) %>%
  286. set_scale_theme(
  287. x = scale_size_continuous(
  288. range = c(0.1, 3),
  289. guide = guide_legend(keywidth = 0.5, keyheight = 0.5)
  290. ),
  291. aes_var = bray
  292. )
  293. png("distance_between_samples_with_group_info.png", width= 1000, height=1000)
  294. p2
  295. dev.off()
  296. # when .group is provided and group.test is TRUE, the comparison of different groups will be returned
  297. # Assuming p3 is a ggplot object after mp_plot_dist call
  298. p3 <- mpse_abund %>%
  299. mp_plot_dist(.distmethod = bray, .group = Group, group.test = TRUE, textsize = 6) +
  300. theme(
  301. axis.title.x = element_text(size = 14), # Customize x-axis label face = "bold"
  302. axis.title.y = element_text(size = 14), # Customize y-axis label
  303. axis.text.x = element_text(size = 14), # Customize x-axis ticks
  304. axis.text.y = element_text(size = 14) # Customize y-axis ticks
  305. )
  306. # Save the plot with the new theme settings
  307. png("Comparison_of_Bray_Distances.png", width = 1000, height = 1000)
  308. print(p3) # Ensure that p3 is explicitly printed in the device
  309. dev.off()
  310. # Extract Bray-Curtis Distance Values and save them in a Excel-table.
  311. library(dplyr)
  312. library(openxlsx)
  313. # Define the sample numbers vector
  314. sample_numbers <- c("1","2","5","6","7", "29","30","31","32")
  315. # Consolidate the list of tibbles using the actual sample numbers
  316. bray_data <- bind_rows(
  317. lapply(seq_along(mpse_abund$bray), function(i) {
  318. tibble(
  319. Sample1 = sample_numbers[i], # Use actual sample number
  320. Sample2 = mpse_abund$bray[[i]]$braySampley,
  321. BrayDistance = mpse_abund$bray[[i]]$bray
  322. )
  323. }),
  324. .id = "PairID"
  325. )
  326. # Print the data frame to check the output
  327. print(bray_data)
  328. # Write the data frame to an Excel file
  329. write.xlsx(bray_data, file = "Bray_Curtis_Distances.xlsx")
  330. #DELETE the column "PairID" in Excel file
  331. # -----------------------
  332. # 3.5.2 The PCoA analysis
  333. #install.packages("corrr")
  334. library(corrr)
  335. #install.packages("ggside")
  336. library(ggside)
  337. mpse_abund %<>%
  338. mp_cal_pcoa(.abundance=hellinger, distmethod="bray")
  339. # The dimensions of ordination analysis will be added the colData slot (default).
  340. mpse_abund
  341. mpse_abund %>% print(width=380, n=2)
  342. #NOTE mpse_abund contains 34 varibles = 31 varibles + `PCo1 (30.16%)` <dbl>, `PCo2 (15.75%)` <dbl>, `PCo3 (10.53%)` <dbl>
  343. #BUG why 36 variables in mpse_abund %>% print(width=380, n=1) [RareAbundanceBySample <list>, RareAbundanceByGroup <list>]
  344. #> methods(class=class(mpse_abund))
  345. # We also can perform adonis or anosim to check whether it is significant to the dissimilarities of groups.
  346. mpse_abund %<>%
  347. mp_adonis(.abundance=hellinger, .formula=~Group, distmethod="bray", permutations=9999, action="add")
  348. mpse_abund %>% mp_extract_internal_attr(name=adonis)
  349. #PAUSE
  350. p1 <- mpse_abund %>%
  351. mp_plot_ord(
  352. .ord = pcoa,
  353. .group = Group,
  354. .color = Group,
  355. .size = 2.4,
  356. .alpha = 1,
  357. ellipse = TRUE,
  358. show.legend = FALSE # don't display the legend of stat_ellipse
  359. ) +
  360. scale_fill_manual(
  361. #values = c("#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#cab2d6", "#6a3d9a"),
  362. #values = c("#a6cee3", "#b2df8a", "#fb9a99", "#cab2d6"),
  363. values = c("#1f78b4", "#e31a1c"),
  364. guide = guide_legend(keywidth=1.6, keyheight=1.6, label.theme=element_text(size=12))
  365. ) +
  366. scale_color_manual(
  367. #values=c("#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99", "#e31a1c", "#cab2d6", "#6a3d9a"),
  368. #values = c("#a6cee3", "#b2df8a", "#fb9a99", "#cab2d6"),
  369. values = c("#1f78b4", "#e31a1c"),
  370. guide = guide_legend(keywidth=1.6, keyheight=1.6, label.theme=element_text(size=12))
  371. )
  372. #scale_fill_manual(values=c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#00FF00", "#FFFF00", "#00FFFF", "#FFA500")) +
  373. #scale_color_manual(values=c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#00FF00", "#FFFF00", "#00FFFF", "#FFA500"))
  374. #scale_fill_manual(values=c("#00A087FF", "#3C5488FF")) +
  375. #scale_color_manual(values=c("#00A087FF", "#3C5488FF"))
  376. #png("PCoA.png", width= 1000, height=1000)
  377. #svg("PCoA.svg", width= 11, height=10)
  378. #svg("PCoA_.svg", width=10, height=10)
  379. #svg("PCoA.svg")
  380. pdf("PCoA.pdf")
  381. p1
  382. dev.off()
  383. #FF0000: Red
  384. #000000: Black
  385. #0000FF: Blue
  386. #C0C0C0: Silver
  387. #00FF00: Lime (often referred to simply as Green in web colors)
  388. #FFFF00: Yellow
  389. #00FFFF: Aqua (also known as Cyan)
  390. #FFA500: Orange
  391. # The size of point also can be mapped to other variables such as Observe, or Shannon
  392. # Then the alpha diversity and beta diversity will be displayed simultaneously.
  393. p2 <- mpse_abund %>%
  394. mp_plot_ord(
  395. .ord = pcoa,
  396. .group = Group,
  397. .color = Group,
  398. .size = Shannon,
  399. .alpha = Observe,
  400. ellipse = TRUE,
  401. show.legend = FALSE # don't display the legend of stat_ellipse
  402. ) +
  403. scale_fill_manual(
  404. values = c("#1f78b4", "#e31a1c"), #only needs four colors.
  405. #values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#00FF00", "#FFFF00", "#00FFFF", "#FFA500"),
  406. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  407. ) +
  408. scale_color_manual(
  409. values = c("#1f78b4", "#e31a1c"), #only needs four colors.
  410. #values=c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#00FF00", "#FFFF00", "#00FFFF", "#FFA500"),
  411. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  412. ) +
  413. scale_size_continuous(
  414. range=c(0.5, 3),
  415. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  416. )
  417. pdf("PCoA2.pdf")
  418. p2
  419. dev.off()
  420. # Add the sample name as text labels
  421. library(ggrepel)
  422. p2 <- mpse_abund %>%
  423. mp_plot_ord(
  424. .ord = pcoa,
  425. .group = Group,
  426. .color = Group,
  427. .size = Shannon,
  428. .alpha = Observe,
  429. ellipse = TRUE,
  430. show.legend = FALSE # don't display the legend of stat_ellipse
  431. ) +
  432. geom_text_repel(aes(label = ifelse(Sample == "1", "1", Sample)), # Prioritize "1"
  433. size = 3,
  434. color = "black", # Set the label color to black for better visibility
  435. max.overlaps = Inf, # Allow maximum labels
  436. force = 2, # Increase the force to push labels apart
  437. box.padding = 0.5, # Add more padding around the labels
  438. segment.size = 0.2 # Line segment size connecting labels to points
  439. ) +
  440. scale_fill_manual(
  441. values = c("#1f78b4", "#e31a1c"), # only needs two colors
  442. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  443. ) +
  444. scale_color_manual(
  445. values = c("#1f78b4", "#e31a1c"), # only needs two colors
  446. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  447. ) +
  448. scale_size_continuous(
  449. range=c(0.5, 3),
  450. guide = guide_legend(keywidth=0.6, keyheight=0.6, label.theme=element_text(size=8))
  451. )
  452. #pdf("PCoA2_labeled.pdf")
  453. png("PCoA2_labeled.png", width=800, height=800)
  454. p2
  455. dev.off()
  456. # ------------------------------------------
  457. # 3.5.3 Hierarchical cluster (tree) analysis
  458. #input should contain hellinger!
  459. mpse_abund %<>%
  460. mp_cal_clust(
  461. .abundance = hellinger,
  462. distmethod = "bray",
  463. hclustmethod = "average", # (UPGAE)
  464. action = "add" # action is used to control which result will be returned
  465. )
  466. mpse_abund
  467. mpse_abund %>% print(width=380, n=2)
  468. #NOTE mpse_abund contains 34 varibles, no new variable, the column bray has been new calculated!
  469. # if action = 'add', the result of hierarchical cluster will be added to the MPSE object
  470. # mp_extract_internal_attr can extract it. It is a treedata object, so it can be visualized
  471. # by ggtree.
  472. sample.clust <- mpse_abund %>% mp_extract_internal_attr(name='SampleClust')
  473. #The object contained internal attribute: PCoA ADONIS SampleClust
  474. sample.clust
  475. #--> The associated data tibble abstraction: 27 × 30
  476. library(ggtree)
  477. p <- ggtree(sample.clust) +
  478. geom_tippoint(aes(color=Group)) +
  479. geom_tiplab(as_ylab = TRUE) +
  480. ggplot2::scale_x_continuous(expand=c(0, 0.01))
  481. png("hierarchical_cluster1.png", width= 1000, height=800)
  482. p
  483. dev.off()
  484. #https://bioconductor.org/packages/release/bioc/vignettes/MicrobiotaProcess/inst/doc//MicrobiotaProcess.html
  485. # mapping = aes(x = RelRareAbundanceBySample-->Group,
  486. # y = Sample-->Group,
  487. # fill = Phyla
  488. # ),
  489. library(ggtreeExtra)
  490. library(ggplot2)
  491. # Extract relative abundance of phyla
  492. phyla.tb <- mpse_abund %>%
  493. mp_extract_abundance(taxa.class=Phylum, topn=30)
  494. # The abundance of each samples is nested, it can be flatted using the unnest of tidyr.
  495. phyla.tb %<>% tidyr::unnest(cols=RareAbundanceBySample) %>% dplyr::rename(Phyla="label")
  496. phyla.tb
  497. phyla.tb %>% print(width=380, n=10)
  498. p1 <- p +
  499. geom_fruit(
  500. data=phyla.tb,
  501. geom=geom_col,
  502. mapping = aes(x = RelRareAbundanceBySample,
  503. y = Sample,
  504. fill = Phyla
  505. ),
  506. orientation = "y",
  507. #offset = 0.4,
  508. pwidth = 3,
  509. axis.params = list(axis = "x",
  510. title = "The relative abundance of phyla (%)",
  511. title.size = 4,
  512. text.size = 2,
  513. vjust = 1),
  514. grid.params = list()
  515. )
  516. png("hierarchical_cluster2_Phyla.png", width = 1000, height = 800)
  517. p1
  518. dev.off()
  519. # Extract relative abundance of classes
  520. class.tb <- mpse_abund %>%
  521. mp_extract_abundance(taxa.class = Class, topn = 30)
  522. # Flatten and rename the columns
  523. class.tb %<>% tidyr::unnest(cols = RareAbundanceBySample) %>% dplyr::rename(Class = "label")
  524. # View the data frame
  525. class.tb
  526. # Create the plot
  527. p1 <- p +
  528. geom_fruit(
  529. data = class.tb,
  530. geom = geom_col,
  531. mapping = aes(x = RelRareAbundanceBySample,
  532. y = Sample,
  533. fill = Class
  534. ),
  535. orientation = "y",
  536. pwidth = 3,
  537. axis.params = list(axis = "x",
  538. title = "The relative abundance of classes (%)",
  539. title.size = 4,
  540. text.size = 2,
  541. vjust = 1),
  542. grid.params = list()
  543. )
  544. # Save the plot to a file #ERROR-->NEED to be DEBUGGED!
  545. png("hierarchical_cluster2_Class.png", width = 1000, height = 800)
  546. print(p1)
  547. dev.off()
  548. # -----------------------
  549. # 3.6 Biomarker discovery
  550. library(ggtree)
  551. library(ggtreeExtra)
  552. library(ggplot2)
  553. library(MicrobiotaProcess)
  554. library(tidytree)
  555. library(ggstar)
  556. library(forcats)
  557. library(writexl)
  558. #----BUG: why resulting in 26 taxa != 16 in the end ----
  559. mpse_abund %>% print(width=150)
  560. #mpse_abund %<>%
  561. # mp_cal_abundance( # for each samples
  562. # .abundance = RareAbundance
  563. # ) %>%
  564. # mp_cal_abundance( # for each groups
  565. # .abundance=RareAbundance,
  566. # .group=Group
  567. # )
  568. #mpse_abund
  569. mpse_abund %<>%
  570. mp_diff_analysis(
  571. .abundance = RelRareAbundanceBySample,
  572. .group = Group,
  573. cl.min = 4,
  574. first.test.alpha = 0.01, filter.p="pvalue"
  575. )
  576. # The result is stored to the taxatree or otutree slot, you can use mp_extract_tree to extract the specific slot.
  577. taxa.tree <- mpse_abund %>%
  578. mp_extract_tree(type="taxatree")
  579. taxa.tree
  580. ## And the result tibble of different analysis can also be extracted with tidytree (>=0.3.5)
  581. #LDAupper, LDAmean, LDAlower,
  582. taxa.tree %>% select(label, nodeClass, Sign_Group, fdr) #%>% dplyr::filter(!is.na(fdr))
  583. taxa.tree %>% print(width=150, n=200)
  584. # -- replace the pvalue and fdr with pvalue and p-adjusted from DESeq enrichment results --
  585. #TODO: replace the values of pvalue and fdr in taxa.tree, with the values of pvalue and padj from sigtab, if the the tips in taxa.tree could be found in colnames(sigtab).
  586. #tree_data <- get.data(taxa.tree)
  587. #as.treedata(taxa.tree)
  588. #d <- tibble(label = paste0('t', 1:4), trait = rnorm(4))
  589. tree_data <- as_tibble(taxa.tree)
  590. #full_join(x, d, by = 'label') %>% as.treedata
  591. # -- NOTE that sigtab generated by Phyloseq.Rmd should take 'alpha = 2.0' --
  592. # Modify tree_data by joining with sigtab and updating Sign_Group
  593. sigtab$label <- rownames(sigtab)
  594. write.xlsx(sigtab, file = "sigtab.xlsx")
  595. sum(sigtab$padj<0.05)
  596. #taxa.tree <- left_join(tree_data, sigtab[, c("label", "log2FoldChange", "pvalue", "padj")], by = 'label') %>% as.treedata
  597. taxa.tree2 <- tree_data %>%
  598. left_join(sigtab[, c("label", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj")], by = "label") %>%
  599. mutate(Sign_Group = case_when(
  600. log2FoldChange > 0 & padj <= 0.05 ~ "Group1",
  601. log2FoldChange < 0 & padj <= 0.05 ~ "Group5",
  602. TRUE ~ NA_character_ # Sets Sign_Group to NA otherwise
  603. )) %>%
  604. as.treedata() # Convert the dataframe to a treedata object
  605. taxa.tree2 %>% print(width=380, n=20)
  606. # ---- print taxa_data2 to Excel, why resulting in 26 records? ----
  607. taxa_data2 <- as_tibble(taxa.tree2)
  608. sum(!is.na(taxa_data2$Sign_Group))
  609. sapply(taxa_data2, class)
  610. # Remove or transform list columns if not needed
  611. taxa_data2_simplified <- taxa_data2 %>%
  612. select(-RareAbundanceBySample, -RareAbundanceByGroup) %>%
  613. mutate(across(where(is.list), ~toString(.))) # Convert lists to character strings if needed
  614. # Replace NA with a placeholder, such as "NA" or another suitable representation
  615. taxa_data2_simplified <- taxa_data2_simplified %>%
  616. mutate(across(everything(), ~ifelse(is.na(.), "NA", .)))
  617. taxonomy_data <- as.data.frame(mp_extract_taxonomy(mpse_abund))
  618. colnames(taxa_data2_simplified)[colnames(taxa_data2_simplified) == "label"] <- "OTU"
  619. combined_data <- left_join(taxa_data2_simplified, taxonomy_data, by = "OTU")
  620. write_xlsx(combined_data, "taxa_data2.xlsx")
  621. #(UNDER HOST-ENV) cp sigtab.xlsx diff_analysis_Group1_vs_Group5.xlsx and then switch label as the 1st column and sort the columns by padj.
  622. # -- NOTE that sometimes the record in DESeq2 not occurs in the final list, since the statistics calculation of MicrobiotaProcess results in NA, e.g. the record FJ879443.1.1488, we can simply delete the record from diff_analysis_Group1_vs_Group5.xlsx --
  623. # Since taxa.tree is treedata object, it can be visualized by ggtree and ggtreeExtra
  624. p1 <- ggtree(
  625. taxa.tree2,
  626. layout="radial",
  627. size = 0.3
  628. ) +
  629. geom_point(
  630. data = td_filter(!isTip),
  631. fill="white",
  632. size=1,
  633. shape=21
  634. )
  635. # display the high light of phylum clade.
  636. p2 <- p1 +
  637. geom_hilight(
  638. data = td_filter(nodeClass == "Phylum"),
  639. mapping = aes(node = node, fill = label)
  640. )
  641. # display the relative abundance of features(OTU)
  642. p3 <- p2 +
  643. ggnewscale::new_scale("fill") +
  644. geom_fruit(
  645. data = td_unnest(RareAbundanceBySample),
  646. geom = geom_star,
  647. mapping = aes(
  648. x = fct_reorder(Sample, Group, .fun=min),
  649. size = RelRareAbundanceBySample,
  650. fill = Group,
  651. subset = RelRareAbundanceBySample > 0
  652. ),
  653. starshape = 13,
  654. starstroke = 0.25,
  655. offset = 0.03,
  656. pwidth = 0.4,
  657. grid.params = list(linetype=2)
  658. ) +
  659. scale_size_continuous(
  660. name="Relative Abundance (%)",
  661. range = c(.5, 3)
  662. ) +
  663. scale_fill_manual(values=c("#1B9E77", "#D95F02"))
  664. # display the tip labels of taxa tree
  665. p4 <- p3 + geom_tiplab(size=6, offset=4.0)
  666. # display the LDA of significant OTU.
  667. #p5 <- p4 +
  668. # ggnewscale::new_scale("fill") +
  669. # geom_fruit(
  670. # geom = geom_col,
  671. # mapping = aes(
  672. # x = LDAmean,
  673. # fill = Sign_Group,
  674. # subset = !is.na(LDAmean)
  675. # ),
  676. # orientation = "y",
  677. # offset = 0.3,
  678. # pwidth = 0.5,
  679. # axis.params = list(axis = "x",
  680. # title = "Log10(LDA)",
  681. # title.height = 0.01,
  682. # title.size = 2,
  683. # text.size = 1.8,
  684. # vjust = 1),
  685. # grid.params = list(linetype = 2)
  686. # )
  687. # display the significant (FDR-->pvalue-->padj) taxonomy after kruskal.test (default)
  688. #shape = 21,
  689. #scale_size_continuous(range=c(1, 3)) +
  690. p6 <- p4 +
  691. ggnewscale::new_scale("size") +
  692. geom_point(
  693. data=td_filter(!is.na(Sign_Group)),
  694. mapping = aes(size = -log10(padj),
  695. fill = Sign_Group,
  696. ),
  697. shape = 21,
  698. ) +
  699. scale_size_continuous(range=c(1, 4)) +
  700. scale_fill_manual(values=c("#1B9E77", "#D95F02"))
  701. svg("diff_analysis.svg",width=22, height=22)
  702. #png("differently_expressed_otu.png", width=2000, height=2000)
  703. p6 + theme(
  704. legend.key.height = unit(1.0, "cm"),
  705. legend.key.width = unit(1.0, "cm"),
  706. legend.spacing.y = unit(0.01, "cm"),
  707. legend.text = element_text(size = 20),
  708. legend.title = element_text(size = 20)
  709. #legend.position = c(0.99, 0.01)
  710. )
  711. dev.off()

2, Phyloseq.Rmd

  1. ---
  2. title: "Phyloseq microbiome"
  3. author: ""
  4. date: '`r format(Sys.time(), "%d %m %Y")`'
  5. header-includes:
  6. - \usepackage{color, fancyvrb}
  7. output:
  8. rmdformats::readthedown:
  9. highlight: kate
  10. number_sections : yes
  11. pdf_document:
  12. toc: yes
  13. toc_depth: 2
  14. number_sections : yes
  15. ---
  16. ```{r, echo=FALSE, warning=FALSE}
  17. ## Global options
  18. # TODO: reproduce the html with the additional figure/SVN-files for editing.
  19. # IMPORTANT NOTE: needs before "mkdir figures"
  20. #rmarkdown::render('Phyloseq.Rmd',output_file='Phyloseq.html')
  21. ```
  22. ```{r load-packages, include=FALSE}
  23. library(knitr)
  24. library(rmdformats)
  25. library(readxl)
  26. library(dplyr)
  27. library(kableExtra)
  28. options(max.print="75")
  29. knitr::opts_chunk$set(fig.width=8,
  30. fig.height=6,
  31. eval=TRUE,
  32. cache=TRUE,
  33. echo=TRUE,
  34. prompt=FALSE,
  35. tidy=TRUE,
  36. comment=NA,
  37. message=FALSE,
  38. warning=FALSE)
  39. opts_knit$set(width=85)
  40. # Phyloseq R library
  41. #* Phyloseq web site : https://joey711.github.io/phyloseq/index.html
  42. #* See in particular tutorials for
  43. # - importing data: https://joey711.github.io/phyloseq/import-data.html
  44. # - heat maps: https://joey711.github.io/phyloseq/plot_heatmap-examples.html
  45. ```
  46. # Data
  47. Import raw data and assign sample key:
  48. ```{r, echo=TRUE, warning=FALSE}
  49. #extend map_corrected.txt with Diet and Flora
  50. #setwd("~/DATA/Data_Laura_16S_2/core_diversity_e4753")
  51. map_corrected <- read.csv("../map_corrected.txt", sep="\t", row.names=1)
  52. knitr::kable(map_corrected) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  53. ```
  54. # Prerequisites to be installed
  55. * R : https://pbil.univ-lyon1.fr/CRAN/
  56. * R studio : https://www.rstudio.com/products/rstudio/download/#download
  57. ```R
  58. install.packages("dplyr") # To manipulate dataframes
  59. install.packages("readxl") # To read Excel files into R
  60. install.packages("ggplot2") # for high quality graphics
  61. install.packages("heatmaply")
  62. source("https://bioconductor.org/biocLite.R")
  63. biocLite("phyloseq")
  64. ```
  65. ```{r libraries, echo=TRUE, message=FALSE}
  66. library("readxl") # necessary to import the data from Excel file
  67. library("ggplot2") # graphics
  68. library("picante")
  69. library("microbiome") # data analysis and visualisation
  70. library("phyloseq") # also the basis of data object. Data analysis and visualisation
  71. library("ggpubr") # publication quality figures, based on ggplot2
  72. library("dplyr") # data handling, filter and reformat data frames
  73. library("RColorBrewer") # nice color options
  74. library("heatmaply")
  75. library(vegan)
  76. library(gplots)
  77. ```
  78. # Read the data and create phyloseq objects
  79. Three tables are needed
  80. * OTU
  81. * Taxonomy
  82. * Samples
  83. ```{r, echo=TRUE, warning=FALSE}
  84. #Change your working directory to where the files are located
  85. ps.ng.tax <- import_biom("./table_even42369.biom", "../clustering/rep_set.tre")
  86. sample <- read.csv("../map_corrected.txt", sep="\t", row.names=1)
  87. SAM = sample_data(sample, errorIfNULL = T)
  88. rownames(SAM) <-
  89. c("1","2","3","5","6","7","8","9","10","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","46","47","48","49","50","51","52","53","55")
  90. ps.ng.tax <- merge_phyloseq(ps.ng.tax, SAM)
  91. print(ps.ng.tax)
  92. colnames(tax_table(ps.ng.tax)) <- c("Domain","Phylum","Class","Order","Family","Genus","Species")
  93. saveRDS(ps.ng.tax, "./ps.ng.tax.rds")
  94. ```
  95. Visualize data
  96. ```{r, echo=TRUE, warning=FALSE}
  97. sample_names(ps.ng.tax)
  98. rank_names(ps.ng.tax)
  99. sample_variables(ps.ng.tax)
  100. ```
  101. Normalize number of reads in each sample using median sequencing depth.
  102. ```{r, echo=TRUE, warning=FALSE}
  103. # RAREFACTION
  104. #set.seed(9242) # This will help in reproducing the filtering and nomalisation.
  105. #ps.ng.tax <- rarefy_even_depth(ps.ng.tax, sample.size = 42369)
  106. #total <- 42369
  107. # NORMALIZE number of reads in each sample using median sequencing depth.
  108. total = median(sample_sums(ps.ng.tax))
  109. #> total
  110. #[1] 42369
  111. standf = function(x, t=total) round(t * (x / sum(x)))
  112. ps.ng.tax = transform_sample_counts(ps.ng.tax, standf)
  113. ps.ng.tax_rel <- microbiome::transform(ps.ng.tax, "compositional")
  114. saveRDS(ps.ng.tax, "./ps.ng.tax.rds")
  115. hmp.meta <- meta(ps.ng.tax)
  116. hmp.meta$sam_name <- rownames(hmp.meta)
  117. ```
  118. # Heatmaps
  119. ```{r, echo=TRUE, warning=FALSE}
  120. #MOVE_FROM_ABOVE: The number of reads used for normalization is **`r sprintf("%.0f", total)`**.
  121. #A basic heatmap using the default parameters.
  122. # plot_heatmap(ps.ng.tax, method = "NMDS", distance = "bray")
  123. #NOTE that giving the correct OTU numbers in the text (1%, 0.5%, ...)!!!
  124. ```
  125. We consider the most abundant OTUs for heatmaps. For example one can only take OTUs that represent at least 1% of reads in at least one sample. Remember we normalized all the sampples to median number of reads (total). We are left with only 168 OTUS which makes the reading much more easy.
  126. ```{r, echo=TRUE, warning=FALSE}
  127. # Custom function to plot a heatmap with the specified sample order
  128. #plot_heatmap_custom <- function(ps, sample_order, method = "NMDS", distance = "bray") {
  129. ps.ng.tax_abund <- phyloseq::filter_taxa(ps.ng.tax, function(x) sum(x > total*0.01) > 0, TRUE)
  130. kable(otu_table(ps.ng.tax_abund)) %>%
  131. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  132. # Calculate the relative abundance for each sample
  133. ps.ng.tax_abund_rel <- transform_sample_counts(ps.ng.tax_abund, function(x) x / sum(x))
  134. datamat_ = as.data.frame(otu_table(ps.ng.tax_abund))
  135. #datamat <- datamat_[c("1","2","5","6","7", "8","9","10","12","13","14", "15","16","17","18","19","20", "21","22","23","24","25","26","27","28", "29","30","31","32", "33","34","35","36","37","38","39","51", "40","41","42","43","44","46", "47","48","49","50","52","53","55")]
  136. datamat <- datamat_[c("8","9","10","12","13","14", "21","22","23","24","25","26","27","28", "33","34","35","36","37","38","39","51", "47","48","49","50","52","53","55")]
  137. hr <- hclust(as.dist(1-cor(t(datamat), method="pearson")), method="complete")
  138. hc <- hclust(as.dist(1-cor(datamat, method="spearman")), method="complete")
  139. mycl = cutree(hr, h=max(hr$height)/1.08)
  140. mycol = c("YELLOW", "DARKBLUE", "DARKORANGE", "DARKMAGENTA", "DARKCYAN", "DARKRED", "MAROON", "DARKGREEN", "LIGHTBLUE", "PINK", "MAGENTA", "LIGHTCYAN","LIGHTGREEN", "BLUE", "ORANGE", "CYAN", "RED", "GREEN");
  141. mycol = mycol[as.vector(mycl)]
  142. sampleCols <- rep('GREY',ncol(datamat))
  143. #names(sampleCols) <- c("Group1", "Group1", "Group1", "Group1", "Group1", "Group2", "Group2", "Group2", "Group2", "Group2","Group2", "Group3", "Group3", "Group3", "Group3", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1", "Group1")
  144. #sampleCols[colnames(datamat)=='1'] <- '#a6cee3'
  145. #sampleCols[colnames(datamat)=='2'] <- '#a6cee3'
  146. #sampleCols[colnames(datamat)=='5'] <- '#a6cee3'
  147. #sampleCols[colnames(datamat)=='6'] <- '#a6cee3'
  148. #sampleCols[colnames(datamat)=='7'] <- '#a6cee3'
  149. sampleCols[colnames(datamat)=='8'] <- '#1f78b4'
  150. sampleCols[colnames(datamat)=='9'] <- '#1f78b4'
  151. sampleCols[colnames(datamat)=='10'] <- '#1f78b4'
  152. sampleCols[colnames(datamat)=='12'] <- '#1f78b4'
  153. sampleCols[colnames(datamat)=='13'] <- '#1f78b4'
  154. sampleCols[colnames(datamat)=='14'] <- '#1f78b4'
  155. #sampleCols[colnames(datamat)=='15'] <- '#b2df8a'
  156. #sampleCols[colnames(datamat)=='16'] <- '#b2df8a'
  157. #sampleCols[colnames(datamat)=='17'] <- '#b2df8a'
  158. #sampleCols[colnames(datamat)=='18'] <- '#b2df8a'
  159. #sampleCols[colnames(datamat)=='19'] <- '#b2df8a'
  160. #sampleCols[colnames(datamat)=='20'] <- '#b2df8a'
  161. sampleCols[colnames(datamat)=='21'] <- '#33a02c'
  162. sampleCols[colnames(datamat)=='22'] <- '#33a02c'
  163. sampleCols[colnames(datamat)=='23'] <- '#33a02c'
  164. sampleCols[colnames(datamat)=='24'] <- '#33a02c'
  165. sampleCols[colnames(datamat)=='25'] <- '#33a02c'
  166. sampleCols[colnames(datamat)=='26'] <- '#33a02c'
  167. sampleCols[colnames(datamat)=='27'] <- '#33a02c'
  168. sampleCols[colnames(datamat)=='28'] <- '#33a02c'
  169. #sampleCols[colnames(datamat)=='29'] <- '#fb9a99'
  170. #sampleCols[colnames(datamat)=='30'] <- '#fb9a99'
  171. #sampleCols[colnames(datamat)=='31'] <- '#fb9a99'
  172. #sampleCols[colnames(datamat)=='32'] <- '#fb9a99'
  173. sampleCols[colnames(datamat)=='33'] <- '#e31a1c'
  174. sampleCols[colnames(datamat)=='34'] <- '#e31a1c'
  175. sampleCols[colnames(datamat)=='35'] <- '#e31a1c'
  176. sampleCols[colnames(datamat)=='36'] <- '#e31a1c'
  177. sampleCols[colnames(datamat)=='37'] <- '#e31a1c'
  178. sampleCols[colnames(datamat)=='38'] <- '#e31a1c'
  179. sampleCols[colnames(datamat)=='39'] <- '#e31a1c'
  180. sampleCols[colnames(datamat)=='51'] <- '#e31a1c'
  181. #sampleCols[colnames(datamat)=='40'] <- '#cab2d6'
  182. #sampleCols[colnames(datamat)=='41'] <- '#cab2d6'
  183. #sampleCols[colnames(datamat)=='42'] <- '#cab2d6'
  184. #sampleCols[colnames(datamat)=='43'] <- '#cab2d6'
  185. #sampleCols[colnames(datamat)=='44'] <- '#cab2d6'
  186. #sampleCols[colnames(datamat)=='46'] <- '#cab2d6'
  187. sampleCols[colnames(datamat)=='47'] <- '#6a3d9a'
  188. sampleCols[colnames(datamat)=='48'] <- '#6a3d9a'
  189. sampleCols[colnames(datamat)=='49'] <- '#6a3d9a'
  190. sampleCols[colnames(datamat)=='50'] <- '#6a3d9a'
  191. sampleCols[colnames(datamat)=='52'] <- '#6a3d9a'
  192. sampleCols[colnames(datamat)=='53'] <- '#6a3d9a'
  193. sampleCols[colnames(datamat)=='55'] <- '#6a3d9a'
  194. #bluered(75)
  195. #color_pattern <- colorRampPalette(c("blue", "white", "red"))(100)
  196. library(RColorBrewer)
  197. custom_palette <- colorRampPalette(brewer.pal(9, "Blues"))
  198. heatmap_colors <- custom_palette(100)
  199. #colors <- heatmap_color_default(100)
  200. png("figures/heatmap.png", width=1200, height=2400)
  201. #par(mar=c(2, 2, 2, 2)) , lwid=1 lhei=c(0.7, 10)) # Adjust height of color keys keysize=0.3,
  202. heatmap.2(as.matrix(datamat),Rowv=as.dendrogram(hr),Colv = NA, dendrogram = 'row',
  203. scale='row',trace='none',col=heatmap_colors, cexRow=1.2, cexCol=1.5,
  204. RowSideColors = mycol, ColSideColors = sampleCols, srtCol=15, labRow=row.names(datamat), key=TRUE, margins=c(10, 15), lhei=c(0.7, 15), lwid=c(1,8))
  205. dev.off()
  206. ```
  207. ```{r, echo=TRUE, warning=FALSE, fig.cap="Heatmap", out.width = '100%', fig.align= "center"}
  208. knitr::include_graphics("./figures/heatmap.png")
  209. ```
  210. ```{r, echo=FALSE, warning=FALSE}
  211. #It is possible to use different distances and different multivaraite methods. Many different built-in distances can be used.
  212. #dist_methods <- unlist(distanceMethodList)
  213. #print(dist_methods)
  214. ```
  215. \pagebreak
  216. # Taxonomic summary
  217. ## Bar plots in phylum level
  218. ```{r, echo=FALSE, warning=FALSE}
  219. #Make the bargraph nicer by removing OTUs boundaries. This is done by adding ggplot2 modifier.
  220. # 1: uniform color. Color is for the border, fill is for the inside
  221. #ggplot(mtcars, aes(x=as.factor(cyl) )) +
  222. # geom_bar(color="blue", fill=rgb(0.1,0.4,0.5,0.7) )
  223. # 2: Using Hue
  224. #ggplot(mtcars, aes(x=as.factor(cyl), fill=as.factor(cyl) )) +
  225. # geom_bar( ) +
  226. # scale_fill_hue(c = 40) +
  227. # theme(legend.position="none")
  228. # 3: Using RColorBrewer
  229. #ggplot(mtcars, aes(x=as.factor(cyl), fill=as.factor(cyl) )) +
  230. # geom_bar( ) +
  231. # scale_fill_brewer(palette = "Set1") +
  232. # theme(legend.position="none")
  233. # 4: Using greyscale:
  234. #ggplot(mtcars, aes(x=as.factor(cyl), fill=as.factor(cyl) )) +
  235. # geom_bar( ) +
  236. # scale_fill_grey(start = 0.25, end = 0.75) +
  237. # theme(legend.position="none")
  238. # 5: Set manualy
  239. #ggplot(mtcars, aes(x=as.factor(cyl), fill=as.factor(cyl) )) +
  240. # geom_bar( ) +
  241. # scale_fill_manual(values = c("red", "green", "blue") ) +
  242. # theme(legend.position="none")
  243. #NOT SUCCESSFUL!
  244. #allGroupsColors<- c(
  245. # "grey0", "grey50", "dodgerblu", "deepskyblue",
  246. # "red", "darkred", "green", "green4")
  247. # plot_bar(ps.ng.tax_rel, fill="Phylum") +
  248. # geom_bar(stat="identity", position="stack") + scale_color_manual(values = allGroupsColors) #, fill=Phylum + scale_fill_brewer(palette = "Set1")
  249. # ##### Keep only the most abundant phyla and
  250. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Actinobacteria")) #1.57
  251. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Bacteroidetes")) #27.27436
  252. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Cyanobacteria")) #0.02244249
  253. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Epsilonbacteraeota")) #0.01309145
  254. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Euryarchaeota")) #0.1210024
  255. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Firmicutes")) #32.50589
  256. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Lentisphaerae")) #0.0001870208
  257. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Patescibacteria")) #0.008789976
  258. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Planctomycetes")) #0.01365252
  259. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Proteobacteria")) #6.769216
  260. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Synergistetes")) #0.005049561
  261. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Tenericutes")) #0.0005610623
  262. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Verrucomicrobia")) #2.076304
  263. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c(NA)) #sum(otu_table(ps.ng.tax_most)) = 2.619413
  264. ```
  265. ```{r, echo=TRUE, warning=FALSE}
  266. library(ggplot2)
  267. geom.text.size = 6
  268. theme.size = 8 #(14/5) * geom.text.size
  269. #ps.ng.tax_most <- subset_taxa(ps.ng.tax_rel, Phylum %in% c("D_1__Actinobacteria", "D_1__Bacteroidetes", "D_1__Firmicutes", "D_1__Proteobacteria", "D_1__Verrucomicrobia", NA))
  270. ps.ng.tax_most = phyloseq::filter_taxa(ps.ng.tax_rel, function(x) mean(x) > 0.001, TRUE)
  271. #CONSOLE(OPTIONAL): for sampleid in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73; do
  272. #echo "otu_table(ps.ng.tax_most)[,${sampleid}]=otu_table(ps.ng.tax_most)[,${sampleid}]/sum(otu_table(ps.ng.tax_most)[,${sampleid}])" done
  273. #OR
  274. ps.ng.tax_most_ = transform_sample_counts(ps.ng.tax_most, function(x) x / sum(x))
  275. ```
  276. ```{r, echo=FALSE, warning=FALSE}
  277. ##--Creating 100% stacked bar plots with less abundant taxa in a sub-category #901--
  278. ##https://github.com/joey711/phyloseq/issues/901
  279. ##ps.ng.tax_most_df <- psmelt(ps.ng.tax_most_) #5986x19
  280. #glom <- tax_glom(ps.ng.tax_most_, taxrank = 'Phylum')
  281. #tax_table(glom) # should list # taxa as # phyla
  282. #data <- psmelt(glom) # create dataframe from phyloseq object
  283. #data$Phylum <- as.character(data$Phylum) #convert to character
  284. ##simple way to rename phyla with < 1% abundance
  285. #data$Phylum[data$Abundance < 0.001] <- "< 0.1% abund."
  286. #
  287. #library(plyr)
  288. #medians <- ddply(data, ~Phylum, function(x) c(median=median(x$Abundance)))
  289. #remainder <- medians[medians$median <= 0.001,]$Phylum
  290. #data[data$Phylum %in% remainder,]$Phylum <- "Phyla < 0.1% abund."
  291. #data$Phylum[data$Abundance < 0.001] <- "Phyla < 0.1% abund."
  292. ##--> data are not used!
  293. #
  294. ##in class level
  295. #glom <- tax_glom(ps.ng.tax_most_, taxrank = 'Class')
  296. #tax_table(glom) # should list # taxa as # phyla
  297. #data <- psmelt(glom) # create dataframe from phyloseq object
  298. #data$Class <- as.character(data$Class) #convert to character
  299. #
  300. ##simple way to rename phyla with < 1% abundance
  301. #data$Class[data$Abundance < 0.001] <- "< 0.1% abund."
  302. #Count = length(unique(data$Class))
  303. #
  304. ##unique(data$Class)
  305. ##data$Class <- factor(data$Class, levels = c("Bacilli", "Bacteroidia", "Verrucomicrobiae", "Clostridia", "Gammaproteobacteria", "Alphaproteobacteria", "Actinobacteria", "Negativicutes", "Erysipelotrichia", "Methanobacteria", "< 0.1% abund."))
  306. ##------- Creating 100% stacked bar plots END --------
  307. library(stringr)
  308. #FITTING1:
  309. # tax_table(ps.ng.tax_most_)[1,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Domain"], "__")[[1]][2]
  310. # ... ...
  311. # tax_table(ps.ng.tax_most_)[167,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Species"], "__")[[1]][2]
  312. #ps.ng.tax_most_
  313. #in total [ 89 taxa and 55 samples ]
  314. #otu_table() OTU Table: [ 166 taxa and 54 samples ]
  315. #otu_table() OTU Table: [ 168 taxa and 50 samples ]
  316. #for id in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166; do
  317. #echo "tax_table(ps.ng.tax_most_)[${id},\"Domain\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Domain\"], \"__\")[[1]][2]"
  318. #echo "tax_table(ps.ng.tax_most_)[${id},\"Phylum\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Phylum\"], \"__\")[[1]][2]"
  319. #echo "tax_table(ps.ng.tax_most_)[${id},\"Class\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Class\"], \"__\")[[1]][2]"
  320. #echo "tax_table(ps.ng.tax_most_)[${id},\"Order\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Order\"], \"__\")[[1]][2]"
  321. #echo "tax_table(ps.ng.tax_most_)[${id},\"Family\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Family\"], \"__\")[[1]][2]"
  322. #echo "tax_table(ps.ng.tax_most_)[${id},\"Genus\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Genus\"], \"__\")[[1]][2]"
  323. #echo "tax_table(ps.ng.tax_most_)[${id},\"Species\"] <- str_split(tax_table(ps.ng.tax_most_)[${id},\"Species\"], \"__\")[[1]][2]"
  324. #done
  325. tax_table(ps.ng.tax_most_)[1,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Domain"], "__")[[1]][2]
  326. tax_table(ps.ng.tax_most_)[1,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Phylum"], "__")[[1]][2]
  327. tax_table(ps.ng.tax_most_)[1,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Class"], "__")[[1]][2]
  328. tax_table(ps.ng.tax_most_)[1,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Order"], "__")[[1]][2]
  329. tax_table(ps.ng.tax_most_)[1,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Family"], "__")[[1]][2]
  330. tax_table(ps.ng.tax_most_)[1,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Genus"], "__")[[1]][2]
  331. tax_table(ps.ng.tax_most_)[1,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[1,"Species"], "__")[[1]][2]
  332. tax_table(ps.ng.tax_most_)[2,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Domain"], "__")[[1]][2]
  333. tax_table(ps.ng.tax_most_)[2,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Phylum"], "__")[[1]][2]
  334. tax_table(ps.ng.tax_most_)[2,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Class"], "__")[[1]][2]
  335. tax_table(ps.ng.tax_most_)[2,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Order"], "__")[[1]][2]
  336. tax_table(ps.ng.tax_most_)[2,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Family"], "__")[[1]][2]
  337. tax_table(ps.ng.tax_most_)[2,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Genus"], "__")[[1]][2]
  338. tax_table(ps.ng.tax_most_)[2,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[2,"Species"], "__")[[1]][2]
  339. tax_table(ps.ng.tax_most_)[3,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Domain"], "__")[[1]][2]
  340. tax_table(ps.ng.tax_most_)[3,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Phylum"], "__")[[1]][2]
  341. tax_table(ps.ng.tax_most_)[3,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Class"], "__")[[1]][2]
  342. tax_table(ps.ng.tax_most_)[3,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Order"], "__")[[1]][2]
  343. tax_table(ps.ng.tax_most_)[3,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Family"], "__")[[1]][2]
  344. tax_table(ps.ng.tax_most_)[3,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Genus"], "__")[[1]][2]
  345. tax_table(ps.ng.tax_most_)[3,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[3,"Species"], "__")[[1]][2]
  346. tax_table(ps.ng.tax_most_)[4,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Domain"], "__")[[1]][2]
  347. tax_table(ps.ng.tax_most_)[4,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Phylum"], "__")[[1]][2]
  348. tax_table(ps.ng.tax_most_)[4,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Class"], "__")[[1]][2]
  349. tax_table(ps.ng.tax_most_)[4,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Order"], "__")[[1]][2]
  350. tax_table(ps.ng.tax_most_)[4,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Family"], "__")[[1]][2]
  351. tax_table(ps.ng.tax_most_)[4,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Genus"], "__")[[1]][2]
  352. tax_table(ps.ng.tax_most_)[4,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[4,"Species"], "__")[[1]][2]
  353. tax_table(ps.ng.tax_most_)[5,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Domain"], "__")[[1]][2]
  354. tax_table(ps.ng.tax_most_)[5,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Phylum"], "__")[[1]][2]
  355. tax_table(ps.ng.tax_most_)[5,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Class"], "__")[[1]][2]
  356. tax_table(ps.ng.tax_most_)[5,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Order"], "__")[[1]][2]
  357. tax_table(ps.ng.tax_most_)[5,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Family"], "__")[[1]][2]
  358. tax_table(ps.ng.tax_most_)[5,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Genus"], "__")[[1]][2]
  359. tax_table(ps.ng.tax_most_)[5,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[5,"Species"], "__")[[1]][2]
  360. tax_table(ps.ng.tax_most_)[6,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Domain"], "__")[[1]][2]
  361. tax_table(ps.ng.tax_most_)[6,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Phylum"], "__")[[1]][2]
  362. tax_table(ps.ng.tax_most_)[6,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Class"], "__")[[1]][2]
  363. tax_table(ps.ng.tax_most_)[6,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Order"], "__")[[1]][2]
  364. tax_table(ps.ng.tax_most_)[6,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Family"], "__")[[1]][2]
  365. tax_table(ps.ng.tax_most_)[6,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Genus"], "__")[[1]][2]
  366. tax_table(ps.ng.tax_most_)[6,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[6,"Species"], "__")[[1]][2]
  367. tax_table(ps.ng.tax_most_)[7,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Domain"], "__")[[1]][2]
  368. tax_table(ps.ng.tax_most_)[7,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Phylum"], "__")[[1]][2]
  369. tax_table(ps.ng.tax_most_)[7,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Class"], "__")[[1]][2]
  370. tax_table(ps.ng.tax_most_)[7,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Order"], "__")[[1]][2]
  371. tax_table(ps.ng.tax_most_)[7,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Family"], "__")[[1]][2]
  372. tax_table(ps.ng.tax_most_)[7,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Genus"], "__")[[1]][2]
  373. tax_table(ps.ng.tax_most_)[7,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[7,"Species"], "__")[[1]][2]
  374. tax_table(ps.ng.tax_most_)[8,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Domain"], "__")[[1]][2]
  375. tax_table(ps.ng.tax_most_)[8,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Phylum"], "__")[[1]][2]
  376. tax_table(ps.ng.tax_most_)[8,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Class"], "__")[[1]][2]
  377. tax_table(ps.ng.tax_most_)[8,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Order"], "__")[[1]][2]
  378. tax_table(ps.ng.tax_most_)[8,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Family"], "__")[[1]][2]
  379. tax_table(ps.ng.tax_most_)[8,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Genus"], "__")[[1]][2]
  380. tax_table(ps.ng.tax_most_)[8,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[8,"Species"], "__")[[1]][2]
  381. tax_table(ps.ng.tax_most_)[9,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Domain"], "__")[[1]][2]
  382. tax_table(ps.ng.tax_most_)[9,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Phylum"], "__")[[1]][2]
  383. tax_table(ps.ng.tax_most_)[9,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Class"], "__")[[1]][2]
  384. tax_table(ps.ng.tax_most_)[9,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Order"], "__")[[1]][2]
  385. tax_table(ps.ng.tax_most_)[9,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Family"], "__")[[1]][2]
  386. tax_table(ps.ng.tax_most_)[9,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Genus"], "__")[[1]][2]
  387. tax_table(ps.ng.tax_most_)[9,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[9,"Species"], "__")[[1]][2]
  388. tax_table(ps.ng.tax_most_)[10,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Domain"], "__")[[1]][2]
  389. tax_table(ps.ng.tax_most_)[10,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Phylum"], "__")[[1]][2]
  390. tax_table(ps.ng.tax_most_)[10,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Class"], "__")[[1]][2]
  391. tax_table(ps.ng.tax_most_)[10,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Order"], "__")[[1]][2]
  392. tax_table(ps.ng.tax_most_)[10,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Family"], "__")[[1]][2]
  393. tax_table(ps.ng.tax_most_)[10,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Genus"], "__")[[1]][2]
  394. tax_table(ps.ng.tax_most_)[10,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[10,"Species"], "__")[[1]][2]
  395. tax_table(ps.ng.tax_most_)[11,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Domain"], "__")[[1]][2]
  396. tax_table(ps.ng.tax_most_)[11,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Phylum"], "__")[[1]][2]
  397. tax_table(ps.ng.tax_most_)[11,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Class"], "__")[[1]][2]
  398. tax_table(ps.ng.tax_most_)[11,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Order"], "__")[[1]][2]
  399. tax_table(ps.ng.tax_most_)[11,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Family"], "__")[[1]][2]
  400. tax_table(ps.ng.tax_most_)[11,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Genus"], "__")[[1]][2]
  401. tax_table(ps.ng.tax_most_)[11,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[11,"Species"], "__")[[1]][2]
  402. tax_table(ps.ng.tax_most_)[12,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Domain"], "__")[[1]][2]
  403. tax_table(ps.ng.tax_most_)[12,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Phylum"], "__")[[1]][2]
  404. tax_table(ps.ng.tax_most_)[12,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Class"], "__")[[1]][2]
  405. tax_table(ps.ng.tax_most_)[12,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Order"], "__")[[1]][2]
  406. tax_table(ps.ng.tax_most_)[12,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Family"], "__")[[1]][2]
  407. tax_table(ps.ng.tax_most_)[12,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Genus"], "__")[[1]][2]
  408. tax_table(ps.ng.tax_most_)[12,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[12,"Species"], "__")[[1]][2]
  409. tax_table(ps.ng.tax_most_)[13,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Domain"], "__")[[1]][2]
  410. tax_table(ps.ng.tax_most_)[13,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Phylum"], "__")[[1]][2]
  411. tax_table(ps.ng.tax_most_)[13,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Class"], "__")[[1]][2]
  412. tax_table(ps.ng.tax_most_)[13,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Order"], "__")[[1]][2]
  413. tax_table(ps.ng.tax_most_)[13,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Family"], "__")[[1]][2]
  414. tax_table(ps.ng.tax_most_)[13,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Genus"], "__")[[1]][2]
  415. tax_table(ps.ng.tax_most_)[13,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[13,"Species"], "__")[[1]][2]
  416. tax_table(ps.ng.tax_most_)[14,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Domain"], "__")[[1]][2]
  417. tax_table(ps.ng.tax_most_)[14,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Phylum"], "__")[[1]][2]
  418. tax_table(ps.ng.tax_most_)[14,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Class"], "__")[[1]][2]
  419. tax_table(ps.ng.tax_most_)[14,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Order"], "__")[[1]][2]
  420. tax_table(ps.ng.tax_most_)[14,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Family"], "__")[[1]][2]
  421. tax_table(ps.ng.tax_most_)[14,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Genus"], "__")[[1]][2]
  422. tax_table(ps.ng.tax_most_)[14,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[14,"Species"], "__")[[1]][2]
  423. tax_table(ps.ng.tax_most_)[15,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Domain"], "__")[[1]][2]
  424. tax_table(ps.ng.tax_most_)[15,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Phylum"], "__")[[1]][2]
  425. tax_table(ps.ng.tax_most_)[15,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Class"], "__")[[1]][2]
  426. tax_table(ps.ng.tax_most_)[15,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Order"], "__")[[1]][2]
  427. tax_table(ps.ng.tax_most_)[15,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Family"], "__")[[1]][2]
  428. tax_table(ps.ng.tax_most_)[15,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Genus"], "__")[[1]][2]
  429. tax_table(ps.ng.tax_most_)[15,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[15,"Species"], "__")[[1]][2]
  430. tax_table(ps.ng.tax_most_)[16,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Domain"], "__")[[1]][2]
  431. tax_table(ps.ng.tax_most_)[16,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Phylum"], "__")[[1]][2]
  432. tax_table(ps.ng.tax_most_)[16,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Class"], "__")[[1]][2]
  433. tax_table(ps.ng.tax_most_)[16,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Order"], "__")[[1]][2]
  434. tax_table(ps.ng.tax_most_)[16,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Family"], "__")[[1]][2]
  435. tax_table(ps.ng.tax_most_)[16,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Genus"], "__")[[1]][2]
  436. tax_table(ps.ng.tax_most_)[16,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[16,"Species"], "__")[[1]][2]
  437. tax_table(ps.ng.tax_most_)[17,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Domain"], "__")[[1]][2]
  438. tax_table(ps.ng.tax_most_)[17,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Phylum"], "__")[[1]][2]
  439. tax_table(ps.ng.tax_most_)[17,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Class"], "__")[[1]][2]
  440. tax_table(ps.ng.tax_most_)[17,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Order"], "__")[[1]][2]
  441. tax_table(ps.ng.tax_most_)[17,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Family"], "__")[[1]][2]
  442. tax_table(ps.ng.tax_most_)[17,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Genus"], "__")[[1]][2]
  443. tax_table(ps.ng.tax_most_)[17,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[17,"Species"], "__")[[1]][2]
  444. tax_table(ps.ng.tax_most_)[18,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Domain"], "__")[[1]][2]
  445. tax_table(ps.ng.tax_most_)[18,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Phylum"], "__")[[1]][2]
  446. tax_table(ps.ng.tax_most_)[18,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Class"], "__")[[1]][2]
  447. tax_table(ps.ng.tax_most_)[18,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Order"], "__")[[1]][2]
  448. tax_table(ps.ng.tax_most_)[18,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Family"], "__")[[1]][2]
  449. tax_table(ps.ng.tax_most_)[18,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Genus"], "__")[[1]][2]
  450. tax_table(ps.ng.tax_most_)[18,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[18,"Species"], "__")[[1]][2]
  451. tax_table(ps.ng.tax_most_)[19,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Domain"], "__")[[1]][2]
  452. tax_table(ps.ng.tax_most_)[19,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Phylum"], "__")[[1]][2]
  453. tax_table(ps.ng.tax_most_)[19,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Class"], "__")[[1]][2]
  454. tax_table(ps.ng.tax_most_)[19,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Order"], "__")[[1]][2]
  455. tax_table(ps.ng.tax_most_)[19,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Family"], "__")[[1]][2]
  456. tax_table(ps.ng.tax_most_)[19,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Genus"], "__")[[1]][2]
  457. tax_table(ps.ng.tax_most_)[19,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[19,"Species"], "__")[[1]][2]
  458. tax_table(ps.ng.tax_most_)[20,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Domain"], "__")[[1]][2]
  459. tax_table(ps.ng.tax_most_)[20,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Phylum"], "__")[[1]][2]
  460. tax_table(ps.ng.tax_most_)[20,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Class"], "__")[[1]][2]
  461. tax_table(ps.ng.tax_most_)[20,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Order"], "__")[[1]][2]
  462. tax_table(ps.ng.tax_most_)[20,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Family"], "__")[[1]][2]
  463. tax_table(ps.ng.tax_most_)[20,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Genus"], "__")[[1]][2]
  464. tax_table(ps.ng.tax_most_)[20,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[20,"Species"], "__")[[1]][2]
  465. tax_table(ps.ng.tax_most_)[21,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Domain"], "__")[[1]][2]
  466. tax_table(ps.ng.tax_most_)[21,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Phylum"], "__")[[1]][2]
  467. tax_table(ps.ng.tax_most_)[21,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Class"], "__")[[1]][2]
  468. tax_table(ps.ng.tax_most_)[21,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Order"], "__")[[1]][2]
  469. tax_table(ps.ng.tax_most_)[21,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Family"], "__")[[1]][2]
  470. tax_table(ps.ng.tax_most_)[21,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Genus"], "__")[[1]][2]
  471. tax_table(ps.ng.tax_most_)[21,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[21,"Species"], "__")[[1]][2]
  472. tax_table(ps.ng.tax_most_)[22,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Domain"], "__")[[1]][2]
  473. tax_table(ps.ng.tax_most_)[22,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Phylum"], "__")[[1]][2]
  474. tax_table(ps.ng.tax_most_)[22,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Class"], "__")[[1]][2]
  475. tax_table(ps.ng.tax_most_)[22,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Order"], "__")[[1]][2]
  476. tax_table(ps.ng.tax_most_)[22,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Family"], "__")[[1]][2]
  477. tax_table(ps.ng.tax_most_)[22,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Genus"], "__")[[1]][2]
  478. tax_table(ps.ng.tax_most_)[22,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[22,"Species"], "__")[[1]][2]
  479. tax_table(ps.ng.tax_most_)[23,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Domain"], "__")[[1]][2]
  480. tax_table(ps.ng.tax_most_)[23,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Phylum"], "__")[[1]][2]
  481. tax_table(ps.ng.tax_most_)[23,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Class"], "__")[[1]][2]
  482. tax_table(ps.ng.tax_most_)[23,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Order"], "__")[[1]][2]
  483. tax_table(ps.ng.tax_most_)[23,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Family"], "__")[[1]][2]
  484. tax_table(ps.ng.tax_most_)[23,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Genus"], "__")[[1]][2]
  485. tax_table(ps.ng.tax_most_)[23,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[23,"Species"], "__")[[1]][2]
  486. tax_table(ps.ng.tax_most_)[24,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Domain"], "__")[[1]][2]
  487. tax_table(ps.ng.tax_most_)[24,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Phylum"], "__")[[1]][2]
  488. tax_table(ps.ng.tax_most_)[24,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Class"], "__")[[1]][2]
  489. tax_table(ps.ng.tax_most_)[24,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Order"], "__")[[1]][2]
  490. tax_table(ps.ng.tax_most_)[24,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Family"], "__")[[1]][2]
  491. tax_table(ps.ng.tax_most_)[24,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Genus"], "__")[[1]][2]
  492. tax_table(ps.ng.tax_most_)[24,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[24,"Species"], "__")[[1]][2]
  493. tax_table(ps.ng.tax_most_)[25,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Domain"], "__")[[1]][2]
  494. tax_table(ps.ng.tax_most_)[25,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Phylum"], "__")[[1]][2]
  495. tax_table(ps.ng.tax_most_)[25,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Class"], "__")[[1]][2]
  496. tax_table(ps.ng.tax_most_)[25,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Order"], "__")[[1]][2]
  497. tax_table(ps.ng.tax_most_)[25,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Family"], "__")[[1]][2]
  498. tax_table(ps.ng.tax_most_)[25,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Genus"], "__")[[1]][2]
  499. tax_table(ps.ng.tax_most_)[25,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[25,"Species"], "__")[[1]][2]
  500. tax_table(ps.ng.tax_most_)[26,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Domain"], "__")[[1]][2]
  501. tax_table(ps.ng.tax_most_)[26,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Phylum"], "__")[[1]][2]
  502. tax_table(ps.ng.tax_most_)[26,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Class"], "__")[[1]][2]
  503. tax_table(ps.ng.tax_most_)[26,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Order"], "__")[[1]][2]
  504. tax_table(ps.ng.tax_most_)[26,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Family"], "__")[[1]][2]
  505. tax_table(ps.ng.tax_most_)[26,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Genus"], "__")[[1]][2]
  506. tax_table(ps.ng.tax_most_)[26,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[26,"Species"], "__")[[1]][2]
  507. tax_table(ps.ng.tax_most_)[27,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Domain"], "__")[[1]][2]
  508. tax_table(ps.ng.tax_most_)[27,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Phylum"], "__")[[1]][2]
  509. tax_table(ps.ng.tax_most_)[27,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Class"], "__")[[1]][2]
  510. tax_table(ps.ng.tax_most_)[27,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Order"], "__")[[1]][2]
  511. tax_table(ps.ng.tax_most_)[27,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Family"], "__")[[1]][2]
  512. tax_table(ps.ng.tax_most_)[27,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Genus"], "__")[[1]][2]
  513. tax_table(ps.ng.tax_most_)[27,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[27,"Species"], "__")[[1]][2]
  514. tax_table(ps.ng.tax_most_)[28,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Domain"], "__")[[1]][2]
  515. tax_table(ps.ng.tax_most_)[28,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Phylum"], "__")[[1]][2]
  516. tax_table(ps.ng.tax_most_)[28,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Class"], "__")[[1]][2]
  517. tax_table(ps.ng.tax_most_)[28,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Order"], "__")[[1]][2]
  518. tax_table(ps.ng.tax_most_)[28,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Family"], "__")[[1]][2]
  519. tax_table(ps.ng.tax_most_)[28,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Genus"], "__")[[1]][2]
  520. tax_table(ps.ng.tax_most_)[28,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[28,"Species"], "__")[[1]][2]
  521. tax_table(ps.ng.tax_most_)[29,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Domain"], "__")[[1]][2]
  522. tax_table(ps.ng.tax_most_)[29,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Phylum"], "__")[[1]][2]
  523. tax_table(ps.ng.tax_most_)[29,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Class"], "__")[[1]][2]
  524. tax_table(ps.ng.tax_most_)[29,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Order"], "__")[[1]][2]
  525. tax_table(ps.ng.tax_most_)[29,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Family"], "__")[[1]][2]
  526. tax_table(ps.ng.tax_most_)[29,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Genus"], "__")[[1]][2]
  527. tax_table(ps.ng.tax_most_)[29,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[29,"Species"], "__")[[1]][2]
  528. tax_table(ps.ng.tax_most_)[30,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Domain"], "__")[[1]][2]
  529. tax_table(ps.ng.tax_most_)[30,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Phylum"], "__")[[1]][2]
  530. tax_table(ps.ng.tax_most_)[30,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Class"], "__")[[1]][2]
  531. tax_table(ps.ng.tax_most_)[30,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Order"], "__")[[1]][2]
  532. tax_table(ps.ng.tax_most_)[30,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Family"], "__")[[1]][2]
  533. tax_table(ps.ng.tax_most_)[30,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Genus"], "__")[[1]][2]
  534. tax_table(ps.ng.tax_most_)[30,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[30,"Species"], "__")[[1]][2]
  535. tax_table(ps.ng.tax_most_)[31,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Domain"], "__")[[1]][2]
  536. tax_table(ps.ng.tax_most_)[31,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Phylum"], "__")[[1]][2]
  537. tax_table(ps.ng.tax_most_)[31,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Class"], "__")[[1]][2]
  538. tax_table(ps.ng.tax_most_)[31,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Order"], "__")[[1]][2]
  539. tax_table(ps.ng.tax_most_)[31,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Family"], "__")[[1]][2]
  540. tax_table(ps.ng.tax_most_)[31,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Genus"], "__")[[1]][2]
  541. tax_table(ps.ng.tax_most_)[31,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[31,"Species"], "__")[[1]][2]
  542. tax_table(ps.ng.tax_most_)[32,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Domain"], "__")[[1]][2]
  543. tax_table(ps.ng.tax_most_)[32,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Phylum"], "__")[[1]][2]
  544. tax_table(ps.ng.tax_most_)[32,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Class"], "__")[[1]][2]
  545. tax_table(ps.ng.tax_most_)[32,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Order"], "__")[[1]][2]
  546. tax_table(ps.ng.tax_most_)[32,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Family"], "__")[[1]][2]
  547. tax_table(ps.ng.tax_most_)[32,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Genus"], "__")[[1]][2]
  548. tax_table(ps.ng.tax_most_)[32,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[32,"Species"], "__")[[1]][2]
  549. tax_table(ps.ng.tax_most_)[33,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Domain"], "__")[[1]][2]
  550. tax_table(ps.ng.tax_most_)[33,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Phylum"], "__")[[1]][2]
  551. tax_table(ps.ng.tax_most_)[33,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Class"], "__")[[1]][2]
  552. tax_table(ps.ng.tax_most_)[33,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Order"], "__")[[1]][2]
  553. tax_table(ps.ng.tax_most_)[33,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Family"], "__")[[1]][2]
  554. tax_table(ps.ng.tax_most_)[33,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Genus"], "__")[[1]][2]
  555. tax_table(ps.ng.tax_most_)[33,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[33,"Species"], "__")[[1]][2]
  556. tax_table(ps.ng.tax_most_)[34,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Domain"], "__")[[1]][2]
  557. tax_table(ps.ng.tax_most_)[34,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Phylum"], "__")[[1]][2]
  558. tax_table(ps.ng.tax_most_)[34,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Class"], "__")[[1]][2]
  559. tax_table(ps.ng.tax_most_)[34,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Order"], "__")[[1]][2]
  560. tax_table(ps.ng.tax_most_)[34,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Family"], "__")[[1]][2]
  561. tax_table(ps.ng.tax_most_)[34,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Genus"], "__")[[1]][2]
  562. tax_table(ps.ng.tax_most_)[34,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[34,"Species"], "__")[[1]][2]
  563. tax_table(ps.ng.tax_most_)[35,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Domain"], "__")[[1]][2]
  564. tax_table(ps.ng.tax_most_)[35,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Phylum"], "__")[[1]][2]
  565. tax_table(ps.ng.tax_most_)[35,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Class"], "__")[[1]][2]
  566. tax_table(ps.ng.tax_most_)[35,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Order"], "__")[[1]][2]
  567. tax_table(ps.ng.tax_most_)[35,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Family"], "__")[[1]][2]
  568. tax_table(ps.ng.tax_most_)[35,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Genus"], "__")[[1]][2]
  569. tax_table(ps.ng.tax_most_)[35,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[35,"Species"], "__")[[1]][2]
  570. tax_table(ps.ng.tax_most_)[36,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Domain"], "__")[[1]][2]
  571. tax_table(ps.ng.tax_most_)[36,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Phylum"], "__")[[1]][2]
  572. tax_table(ps.ng.tax_most_)[36,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Class"], "__")[[1]][2]
  573. tax_table(ps.ng.tax_most_)[36,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Order"], "__")[[1]][2]
  574. tax_table(ps.ng.tax_most_)[36,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Family"], "__")[[1]][2]
  575. tax_table(ps.ng.tax_most_)[36,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Genus"], "__")[[1]][2]
  576. tax_table(ps.ng.tax_most_)[36,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[36,"Species"], "__")[[1]][2]
  577. tax_table(ps.ng.tax_most_)[37,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Domain"], "__")[[1]][2]
  578. tax_table(ps.ng.tax_most_)[37,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Phylum"], "__")[[1]][2]
  579. tax_table(ps.ng.tax_most_)[37,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Class"], "__")[[1]][2]
  580. tax_table(ps.ng.tax_most_)[37,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Order"], "__")[[1]][2]
  581. tax_table(ps.ng.tax_most_)[37,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Family"], "__")[[1]][2]
  582. tax_table(ps.ng.tax_most_)[37,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Genus"], "__")[[1]][2]
  583. tax_table(ps.ng.tax_most_)[37,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[37,"Species"], "__")[[1]][2]
  584. tax_table(ps.ng.tax_most_)[38,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Domain"], "__")[[1]][2]
  585. tax_table(ps.ng.tax_most_)[38,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Phylum"], "__")[[1]][2]
  586. tax_table(ps.ng.tax_most_)[38,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Class"], "__")[[1]][2]
  587. tax_table(ps.ng.tax_most_)[38,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Order"], "__")[[1]][2]
  588. tax_table(ps.ng.tax_most_)[38,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Family"], "__")[[1]][2]
  589. tax_table(ps.ng.tax_most_)[38,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Genus"], "__")[[1]][2]
  590. tax_table(ps.ng.tax_most_)[38,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[38,"Species"], "__")[[1]][2]
  591. tax_table(ps.ng.tax_most_)[39,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Domain"], "__")[[1]][2]
  592. tax_table(ps.ng.tax_most_)[39,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Phylum"], "__")[[1]][2]
  593. tax_table(ps.ng.tax_most_)[39,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Class"], "__")[[1]][2]
  594. tax_table(ps.ng.tax_most_)[39,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Order"], "__")[[1]][2]
  595. tax_table(ps.ng.tax_most_)[39,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Family"], "__")[[1]][2]
  596. tax_table(ps.ng.tax_most_)[39,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Genus"], "__")[[1]][2]
  597. tax_table(ps.ng.tax_most_)[39,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[39,"Species"], "__")[[1]][2]
  598. tax_table(ps.ng.tax_most_)[40,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Domain"], "__")[[1]][2]
  599. tax_table(ps.ng.tax_most_)[40,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Phylum"], "__")[[1]][2]
  600. tax_table(ps.ng.tax_most_)[40,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Class"], "__")[[1]][2]
  601. tax_table(ps.ng.tax_most_)[40,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Order"], "__")[[1]][2]
  602. tax_table(ps.ng.tax_most_)[40,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Family"], "__")[[1]][2]
  603. tax_table(ps.ng.tax_most_)[40,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Genus"], "__")[[1]][2]
  604. tax_table(ps.ng.tax_most_)[40,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[40,"Species"], "__")[[1]][2]
  605. tax_table(ps.ng.tax_most_)[41,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Domain"], "__")[[1]][2]
  606. tax_table(ps.ng.tax_most_)[41,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Phylum"], "__")[[1]][2]
  607. tax_table(ps.ng.tax_most_)[41,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Class"], "__")[[1]][2]
  608. tax_table(ps.ng.tax_most_)[41,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Order"], "__")[[1]][2]
  609. tax_table(ps.ng.tax_most_)[41,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Family"], "__")[[1]][2]
  610. tax_table(ps.ng.tax_most_)[41,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Genus"], "__")[[1]][2]
  611. tax_table(ps.ng.tax_most_)[41,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[41,"Species"], "__")[[1]][2]
  612. tax_table(ps.ng.tax_most_)[42,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Domain"], "__")[[1]][2]
  613. tax_table(ps.ng.tax_most_)[42,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Phylum"], "__")[[1]][2]
  614. tax_table(ps.ng.tax_most_)[42,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Class"], "__")[[1]][2]
  615. tax_table(ps.ng.tax_most_)[42,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Order"], "__")[[1]][2]
  616. tax_table(ps.ng.tax_most_)[42,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Family"], "__")[[1]][2]
  617. tax_table(ps.ng.tax_most_)[42,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Genus"], "__")[[1]][2]
  618. tax_table(ps.ng.tax_most_)[42,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[42,"Species"], "__")[[1]][2]
  619. tax_table(ps.ng.tax_most_)[43,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Domain"], "__")[[1]][2]
  620. tax_table(ps.ng.tax_most_)[43,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Phylum"], "__")[[1]][2]
  621. tax_table(ps.ng.tax_most_)[43,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Class"], "__")[[1]][2]
  622. tax_table(ps.ng.tax_most_)[43,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Order"], "__")[[1]][2]
  623. tax_table(ps.ng.tax_most_)[43,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Family"], "__")[[1]][2]
  624. tax_table(ps.ng.tax_most_)[43,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Genus"], "__")[[1]][2]
  625. tax_table(ps.ng.tax_most_)[43,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[43,"Species"], "__")[[1]][2]
  626. tax_table(ps.ng.tax_most_)[44,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Domain"], "__")[[1]][2]
  627. tax_table(ps.ng.tax_most_)[44,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Phylum"], "__")[[1]][2]
  628. tax_table(ps.ng.tax_most_)[44,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Class"], "__")[[1]][2]
  629. tax_table(ps.ng.tax_most_)[44,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Order"], "__")[[1]][2]
  630. tax_table(ps.ng.tax_most_)[44,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Family"], "__")[[1]][2]
  631. tax_table(ps.ng.tax_most_)[44,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Genus"], "__")[[1]][2]
  632. tax_table(ps.ng.tax_most_)[44,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[44,"Species"], "__")[[1]][2]
  633. tax_table(ps.ng.tax_most_)[45,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Domain"], "__")[[1]][2]
  634. tax_table(ps.ng.tax_most_)[45,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Phylum"], "__")[[1]][2]
  635. tax_table(ps.ng.tax_most_)[45,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Class"], "__")[[1]][2]
  636. tax_table(ps.ng.tax_most_)[45,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Order"], "__")[[1]][2]
  637. tax_table(ps.ng.tax_most_)[45,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Family"], "__")[[1]][2]
  638. tax_table(ps.ng.tax_most_)[45,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Genus"], "__")[[1]][2]
  639. tax_table(ps.ng.tax_most_)[45,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[45,"Species"], "__")[[1]][2]
  640. tax_table(ps.ng.tax_most_)[46,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Domain"], "__")[[1]][2]
  641. tax_table(ps.ng.tax_most_)[46,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Phylum"], "__")[[1]][2]
  642. tax_table(ps.ng.tax_most_)[46,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Class"], "__")[[1]][2]
  643. tax_table(ps.ng.tax_most_)[46,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Order"], "__")[[1]][2]
  644. tax_table(ps.ng.tax_most_)[46,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Family"], "__")[[1]][2]
  645. tax_table(ps.ng.tax_most_)[46,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Genus"], "__")[[1]][2]
  646. tax_table(ps.ng.tax_most_)[46,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[46,"Species"], "__")[[1]][2]
  647. tax_table(ps.ng.tax_most_)[47,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Domain"], "__")[[1]][2]
  648. tax_table(ps.ng.tax_most_)[47,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Phylum"], "__")[[1]][2]
  649. tax_table(ps.ng.tax_most_)[47,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Class"], "__")[[1]][2]
  650. tax_table(ps.ng.tax_most_)[47,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Order"], "__")[[1]][2]
  651. tax_table(ps.ng.tax_most_)[47,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Family"], "__")[[1]][2]
  652. tax_table(ps.ng.tax_most_)[47,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Genus"], "__")[[1]][2]
  653. tax_table(ps.ng.tax_most_)[47,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[47,"Species"], "__")[[1]][2]
  654. tax_table(ps.ng.tax_most_)[48,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Domain"], "__")[[1]][2]
  655. tax_table(ps.ng.tax_most_)[48,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Phylum"], "__")[[1]][2]
  656. tax_table(ps.ng.tax_most_)[48,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Class"], "__")[[1]][2]
  657. tax_table(ps.ng.tax_most_)[48,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Order"], "__")[[1]][2]
  658. tax_table(ps.ng.tax_most_)[48,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Family"], "__")[[1]][2]
  659. tax_table(ps.ng.tax_most_)[48,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Genus"], "__")[[1]][2]
  660. tax_table(ps.ng.tax_most_)[48,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[48,"Species"], "__")[[1]][2]
  661. tax_table(ps.ng.tax_most_)[49,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Domain"], "__")[[1]][2]
  662. tax_table(ps.ng.tax_most_)[49,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Phylum"], "__")[[1]][2]
  663. tax_table(ps.ng.tax_most_)[49,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Class"], "__")[[1]][2]
  664. tax_table(ps.ng.tax_most_)[49,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Order"], "__")[[1]][2]
  665. tax_table(ps.ng.tax_most_)[49,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Family"], "__")[[1]][2]
  666. tax_table(ps.ng.tax_most_)[49,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Genus"], "__")[[1]][2]
  667. tax_table(ps.ng.tax_most_)[49,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[49,"Species"], "__")[[1]][2]
  668. tax_table(ps.ng.tax_most_)[50,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Domain"], "__")[[1]][2]
  669. tax_table(ps.ng.tax_most_)[50,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Phylum"], "__")[[1]][2]
  670. tax_table(ps.ng.tax_most_)[50,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Class"], "__")[[1]][2]
  671. tax_table(ps.ng.tax_most_)[50,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Order"], "__")[[1]][2]
  672. tax_table(ps.ng.tax_most_)[50,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Family"], "__")[[1]][2]
  673. tax_table(ps.ng.tax_most_)[50,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Genus"], "__")[[1]][2]
  674. tax_table(ps.ng.tax_most_)[50,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[50,"Species"], "__")[[1]][2]
  675. tax_table(ps.ng.tax_most_)[51,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Domain"], "__")[[1]][2]
  676. tax_table(ps.ng.tax_most_)[51,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Phylum"], "__")[[1]][2]
  677. tax_table(ps.ng.tax_most_)[51,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Class"], "__")[[1]][2]
  678. tax_table(ps.ng.tax_most_)[51,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Order"], "__")[[1]][2]
  679. tax_table(ps.ng.tax_most_)[51,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Family"], "__")[[1]][2]
  680. tax_table(ps.ng.tax_most_)[51,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Genus"], "__")[[1]][2]
  681. tax_table(ps.ng.tax_most_)[51,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[51,"Species"], "__")[[1]][2]
  682. tax_table(ps.ng.tax_most_)[52,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Domain"], "__")[[1]][2]
  683. tax_table(ps.ng.tax_most_)[52,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Phylum"], "__")[[1]][2]
  684. tax_table(ps.ng.tax_most_)[52,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Class"], "__")[[1]][2]
  685. tax_table(ps.ng.tax_most_)[52,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Order"], "__")[[1]][2]
  686. tax_table(ps.ng.tax_most_)[52,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Family"], "__")[[1]][2]
  687. tax_table(ps.ng.tax_most_)[52,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Genus"], "__")[[1]][2]
  688. tax_table(ps.ng.tax_most_)[52,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[52,"Species"], "__")[[1]][2]
  689. tax_table(ps.ng.tax_most_)[53,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Domain"], "__")[[1]][2]
  690. tax_table(ps.ng.tax_most_)[53,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Phylum"], "__")[[1]][2]
  691. tax_table(ps.ng.tax_most_)[53,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Class"], "__")[[1]][2]
  692. tax_table(ps.ng.tax_most_)[53,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Order"], "__")[[1]][2]
  693. tax_table(ps.ng.tax_most_)[53,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Family"], "__")[[1]][2]
  694. tax_table(ps.ng.tax_most_)[53,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Genus"], "__")[[1]][2]
  695. tax_table(ps.ng.tax_most_)[53,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[53,"Species"], "__")[[1]][2]
  696. tax_table(ps.ng.tax_most_)[54,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Domain"], "__")[[1]][2]
  697. tax_table(ps.ng.tax_most_)[54,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Phylum"], "__")[[1]][2]
  698. tax_table(ps.ng.tax_most_)[54,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Class"], "__")[[1]][2]
  699. tax_table(ps.ng.tax_most_)[54,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Order"], "__")[[1]][2]
  700. tax_table(ps.ng.tax_most_)[54,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Family"], "__")[[1]][2]
  701. tax_table(ps.ng.tax_most_)[54,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Genus"], "__")[[1]][2]
  702. tax_table(ps.ng.tax_most_)[54,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[54,"Species"], "__")[[1]][2]
  703. tax_table(ps.ng.tax_most_)[55,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Domain"], "__")[[1]][2]
  704. tax_table(ps.ng.tax_most_)[55,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Phylum"], "__")[[1]][2]
  705. tax_table(ps.ng.tax_most_)[55,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Class"], "__")[[1]][2]
  706. tax_table(ps.ng.tax_most_)[55,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Order"], "__")[[1]][2]
  707. tax_table(ps.ng.tax_most_)[55,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Family"], "__")[[1]][2]
  708. tax_table(ps.ng.tax_most_)[55,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Genus"], "__")[[1]][2]
  709. tax_table(ps.ng.tax_most_)[55,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[55,"Species"], "__")[[1]][2]
  710. tax_table(ps.ng.tax_most_)[56,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Domain"], "__")[[1]][2]
  711. tax_table(ps.ng.tax_most_)[56,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Phylum"], "__")[[1]][2]
  712. tax_table(ps.ng.tax_most_)[56,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Class"], "__")[[1]][2]
  713. tax_table(ps.ng.tax_most_)[56,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Order"], "__")[[1]][2]
  714. tax_table(ps.ng.tax_most_)[56,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Family"], "__")[[1]][2]
  715. tax_table(ps.ng.tax_most_)[56,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Genus"], "__")[[1]][2]
  716. tax_table(ps.ng.tax_most_)[56,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[56,"Species"], "__")[[1]][2]
  717. tax_table(ps.ng.tax_most_)[57,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Domain"], "__")[[1]][2]
  718. tax_table(ps.ng.tax_most_)[57,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Phylum"], "__")[[1]][2]
  719. tax_table(ps.ng.tax_most_)[57,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Class"], "__")[[1]][2]
  720. tax_table(ps.ng.tax_most_)[57,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Order"], "__")[[1]][2]
  721. tax_table(ps.ng.tax_most_)[57,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Family"], "__")[[1]][2]
  722. tax_table(ps.ng.tax_most_)[57,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Genus"], "__")[[1]][2]
  723. tax_table(ps.ng.tax_most_)[57,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[57,"Species"], "__")[[1]][2]
  724. tax_table(ps.ng.tax_most_)[58,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Domain"], "__")[[1]][2]
  725. tax_table(ps.ng.tax_most_)[58,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Phylum"], "__")[[1]][2]
  726. tax_table(ps.ng.tax_most_)[58,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Class"], "__")[[1]][2]
  727. tax_table(ps.ng.tax_most_)[58,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Order"], "__")[[1]][2]
  728. tax_table(ps.ng.tax_most_)[58,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Family"], "__")[[1]][2]
  729. tax_table(ps.ng.tax_most_)[58,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Genus"], "__")[[1]][2]
  730. tax_table(ps.ng.tax_most_)[58,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[58,"Species"], "__")[[1]][2]
  731. tax_table(ps.ng.tax_most_)[59,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Domain"], "__")[[1]][2]
  732. tax_table(ps.ng.tax_most_)[59,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Phylum"], "__")[[1]][2]
  733. tax_table(ps.ng.tax_most_)[59,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Class"], "__")[[1]][2]
  734. tax_table(ps.ng.tax_most_)[59,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Order"], "__")[[1]][2]
  735. tax_table(ps.ng.tax_most_)[59,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Family"], "__")[[1]][2]
  736. tax_table(ps.ng.tax_most_)[59,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Genus"], "__")[[1]][2]
  737. tax_table(ps.ng.tax_most_)[59,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[59,"Species"], "__")[[1]][2]
  738. tax_table(ps.ng.tax_most_)[60,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Domain"], "__")[[1]][2]
  739. tax_table(ps.ng.tax_most_)[60,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Phylum"], "__")[[1]][2]
  740. tax_table(ps.ng.tax_most_)[60,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Class"], "__")[[1]][2]
  741. tax_table(ps.ng.tax_most_)[60,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Order"], "__")[[1]][2]
  742. tax_table(ps.ng.tax_most_)[60,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Family"], "__")[[1]][2]
  743. tax_table(ps.ng.tax_most_)[60,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Genus"], "__")[[1]][2]
  744. tax_table(ps.ng.tax_most_)[60,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[60,"Species"], "__")[[1]][2]
  745. tax_table(ps.ng.tax_most_)[61,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Domain"], "__")[[1]][2]
  746. tax_table(ps.ng.tax_most_)[61,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Phylum"], "__")[[1]][2]
  747. tax_table(ps.ng.tax_most_)[61,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Class"], "__")[[1]][2]
  748. tax_table(ps.ng.tax_most_)[61,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Order"], "__")[[1]][2]
  749. tax_table(ps.ng.tax_most_)[61,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Family"], "__")[[1]][2]
  750. tax_table(ps.ng.tax_most_)[61,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Genus"], "__")[[1]][2]
  751. tax_table(ps.ng.tax_most_)[61,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[61,"Species"], "__")[[1]][2]
  752. tax_table(ps.ng.tax_most_)[62,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Domain"], "__")[[1]][2]
  753. tax_table(ps.ng.tax_most_)[62,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Phylum"], "__")[[1]][2]
  754. tax_table(ps.ng.tax_most_)[62,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Class"], "__")[[1]][2]
  755. tax_table(ps.ng.tax_most_)[62,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Order"], "__")[[1]][2]
  756. tax_table(ps.ng.tax_most_)[62,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Family"], "__")[[1]][2]
  757. tax_table(ps.ng.tax_most_)[62,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Genus"], "__")[[1]][2]
  758. tax_table(ps.ng.tax_most_)[62,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[62,"Species"], "__")[[1]][2]
  759. tax_table(ps.ng.tax_most_)[63,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Domain"], "__")[[1]][2]
  760. tax_table(ps.ng.tax_most_)[63,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Phylum"], "__")[[1]][2]
  761. tax_table(ps.ng.tax_most_)[63,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Class"], "__")[[1]][2]
  762. tax_table(ps.ng.tax_most_)[63,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Order"], "__")[[1]][2]
  763. tax_table(ps.ng.tax_most_)[63,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Family"], "__")[[1]][2]
  764. tax_table(ps.ng.tax_most_)[63,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Genus"], "__")[[1]][2]
  765. tax_table(ps.ng.tax_most_)[63,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[63,"Species"], "__")[[1]][2]
  766. tax_table(ps.ng.tax_most_)[64,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Domain"], "__")[[1]][2]
  767. tax_table(ps.ng.tax_most_)[64,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Phylum"], "__")[[1]][2]
  768. tax_table(ps.ng.tax_most_)[64,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Class"], "__")[[1]][2]
  769. tax_table(ps.ng.tax_most_)[64,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Order"], "__")[[1]][2]
  770. tax_table(ps.ng.tax_most_)[64,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Family"], "__")[[1]][2]
  771. tax_table(ps.ng.tax_most_)[64,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Genus"], "__")[[1]][2]
  772. tax_table(ps.ng.tax_most_)[64,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[64,"Species"], "__")[[1]][2]
  773. tax_table(ps.ng.tax_most_)[65,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Domain"], "__")[[1]][2]
  774. tax_table(ps.ng.tax_most_)[65,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Phylum"], "__")[[1]][2]
  775. tax_table(ps.ng.tax_most_)[65,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Class"], "__")[[1]][2]
  776. tax_table(ps.ng.tax_most_)[65,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Order"], "__")[[1]][2]
  777. tax_table(ps.ng.tax_most_)[65,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Family"], "__")[[1]][2]
  778. tax_table(ps.ng.tax_most_)[65,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Genus"], "__")[[1]][2]
  779. tax_table(ps.ng.tax_most_)[65,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[65,"Species"], "__")[[1]][2]
  780. tax_table(ps.ng.tax_most_)[66,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Domain"], "__")[[1]][2]
  781. tax_table(ps.ng.tax_most_)[66,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Phylum"], "__")[[1]][2]
  782. tax_table(ps.ng.tax_most_)[66,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Class"], "__")[[1]][2]
  783. tax_table(ps.ng.tax_most_)[66,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Order"], "__")[[1]][2]
  784. tax_table(ps.ng.tax_most_)[66,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Family"], "__")[[1]][2]
  785. tax_table(ps.ng.tax_most_)[66,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Genus"], "__")[[1]][2]
  786. tax_table(ps.ng.tax_most_)[66,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[66,"Species"], "__")[[1]][2]
  787. tax_table(ps.ng.tax_most_)[67,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Domain"], "__")[[1]][2]
  788. tax_table(ps.ng.tax_most_)[67,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Phylum"], "__")[[1]][2]
  789. tax_table(ps.ng.tax_most_)[67,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Class"], "__")[[1]][2]
  790. tax_table(ps.ng.tax_most_)[67,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Order"], "__")[[1]][2]
  791. tax_table(ps.ng.tax_most_)[67,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Family"], "__")[[1]][2]
  792. tax_table(ps.ng.tax_most_)[67,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Genus"], "__")[[1]][2]
  793. tax_table(ps.ng.tax_most_)[67,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[67,"Species"], "__")[[1]][2]
  794. tax_table(ps.ng.tax_most_)[68,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Domain"], "__")[[1]][2]
  795. tax_table(ps.ng.tax_most_)[68,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Phylum"], "__")[[1]][2]
  796. tax_table(ps.ng.tax_most_)[68,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Class"], "__")[[1]][2]
  797. tax_table(ps.ng.tax_most_)[68,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Order"], "__")[[1]][2]
  798. tax_table(ps.ng.tax_most_)[68,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Family"], "__")[[1]][2]
  799. tax_table(ps.ng.tax_most_)[68,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Genus"], "__")[[1]][2]
  800. tax_table(ps.ng.tax_most_)[68,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[68,"Species"], "__")[[1]][2]
  801. tax_table(ps.ng.tax_most_)[69,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Domain"], "__")[[1]][2]
  802. tax_table(ps.ng.tax_most_)[69,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Phylum"], "__")[[1]][2]
  803. tax_table(ps.ng.tax_most_)[69,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Class"], "__")[[1]][2]
  804. tax_table(ps.ng.tax_most_)[69,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Order"], "__")[[1]][2]
  805. tax_table(ps.ng.tax_most_)[69,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Family"], "__")[[1]][2]
  806. tax_table(ps.ng.tax_most_)[69,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Genus"], "__")[[1]][2]
  807. tax_table(ps.ng.tax_most_)[69,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[69,"Species"], "__")[[1]][2]
  808. tax_table(ps.ng.tax_most_)[70,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Domain"], "__")[[1]][2]
  809. tax_table(ps.ng.tax_most_)[70,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Phylum"], "__")[[1]][2]
  810. tax_table(ps.ng.tax_most_)[70,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Class"], "__")[[1]][2]
  811. tax_table(ps.ng.tax_most_)[70,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Order"], "__")[[1]][2]
  812. tax_table(ps.ng.tax_most_)[70,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Family"], "__")[[1]][2]
  813. tax_table(ps.ng.tax_most_)[70,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Genus"], "__")[[1]][2]
  814. tax_table(ps.ng.tax_most_)[70,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[70,"Species"], "__")[[1]][2]
  815. tax_table(ps.ng.tax_most_)[71,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Domain"], "__")[[1]][2]
  816. tax_table(ps.ng.tax_most_)[71,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Phylum"], "__")[[1]][2]
  817. tax_table(ps.ng.tax_most_)[71,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Class"], "__")[[1]][2]
  818. tax_table(ps.ng.tax_most_)[71,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Order"], "__")[[1]][2]
  819. tax_table(ps.ng.tax_most_)[71,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Family"], "__")[[1]][2]
  820. tax_table(ps.ng.tax_most_)[71,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Genus"], "__")[[1]][2]
  821. tax_table(ps.ng.tax_most_)[71,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[71,"Species"], "__")[[1]][2]
  822. tax_table(ps.ng.tax_most_)[72,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Domain"], "__")[[1]][2]
  823. tax_table(ps.ng.tax_most_)[72,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Phylum"], "__")[[1]][2]
  824. tax_table(ps.ng.tax_most_)[72,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Class"], "__")[[1]][2]
  825. tax_table(ps.ng.tax_most_)[72,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Order"], "__")[[1]][2]
  826. tax_table(ps.ng.tax_most_)[72,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Family"], "__")[[1]][2]
  827. tax_table(ps.ng.tax_most_)[72,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Genus"], "__")[[1]][2]
  828. tax_table(ps.ng.tax_most_)[72,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[72,"Species"], "__")[[1]][2]
  829. tax_table(ps.ng.tax_most_)[73,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Domain"], "__")[[1]][2]
  830. tax_table(ps.ng.tax_most_)[73,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Phylum"], "__")[[1]][2]
  831. tax_table(ps.ng.tax_most_)[73,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Class"], "__")[[1]][2]
  832. tax_table(ps.ng.tax_most_)[73,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Order"], "__")[[1]][2]
  833. tax_table(ps.ng.tax_most_)[73,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Family"], "__")[[1]][2]
  834. tax_table(ps.ng.tax_most_)[73,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Genus"], "__")[[1]][2]
  835. tax_table(ps.ng.tax_most_)[73,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[73,"Species"], "__")[[1]][2]
  836. tax_table(ps.ng.tax_most_)[74,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Domain"], "__")[[1]][2]
  837. tax_table(ps.ng.tax_most_)[74,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Phylum"], "__")[[1]][2]
  838. tax_table(ps.ng.tax_most_)[74,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Class"], "__")[[1]][2]
  839. tax_table(ps.ng.tax_most_)[74,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Order"], "__")[[1]][2]
  840. tax_table(ps.ng.tax_most_)[74,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Family"], "__")[[1]][2]
  841. tax_table(ps.ng.tax_most_)[74,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Genus"], "__")[[1]][2]
  842. tax_table(ps.ng.tax_most_)[74,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[74,"Species"], "__")[[1]][2]
  843. tax_table(ps.ng.tax_most_)[75,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Domain"], "__")[[1]][2]
  844. tax_table(ps.ng.tax_most_)[75,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Phylum"], "__")[[1]][2]
  845. tax_table(ps.ng.tax_most_)[75,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Class"], "__")[[1]][2]
  846. tax_table(ps.ng.tax_most_)[75,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Order"], "__")[[1]][2]
  847. tax_table(ps.ng.tax_most_)[75,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Family"], "__")[[1]][2]
  848. tax_table(ps.ng.tax_most_)[75,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Genus"], "__")[[1]][2]
  849. tax_table(ps.ng.tax_most_)[75,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[75,"Species"], "__")[[1]][2]
  850. tax_table(ps.ng.tax_most_)[76,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Domain"], "__")[[1]][2]
  851. tax_table(ps.ng.tax_most_)[76,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Phylum"], "__")[[1]][2]
  852. tax_table(ps.ng.tax_most_)[76,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Class"], "__")[[1]][2]
  853. tax_table(ps.ng.tax_most_)[76,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Order"], "__")[[1]][2]
  854. tax_table(ps.ng.tax_most_)[76,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Family"], "__")[[1]][2]
  855. tax_table(ps.ng.tax_most_)[76,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Genus"], "__")[[1]][2]
  856. tax_table(ps.ng.tax_most_)[76,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[76,"Species"], "__")[[1]][2]
  857. tax_table(ps.ng.tax_most_)[77,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Domain"], "__")[[1]][2]
  858. tax_table(ps.ng.tax_most_)[77,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Phylum"], "__")[[1]][2]
  859. tax_table(ps.ng.tax_most_)[77,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Class"], "__")[[1]][2]
  860. tax_table(ps.ng.tax_most_)[77,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Order"], "__")[[1]][2]
  861. tax_table(ps.ng.tax_most_)[77,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Family"], "__")[[1]][2]
  862. tax_table(ps.ng.tax_most_)[77,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Genus"], "__")[[1]][2]
  863. tax_table(ps.ng.tax_most_)[77,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[77,"Species"], "__")[[1]][2]
  864. tax_table(ps.ng.tax_most_)[78,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Domain"], "__")[[1]][2]
  865. tax_table(ps.ng.tax_most_)[78,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Phylum"], "__")[[1]][2]
  866. tax_table(ps.ng.tax_most_)[78,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Class"], "__")[[1]][2]
  867. tax_table(ps.ng.tax_most_)[78,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Order"], "__")[[1]][2]
  868. tax_table(ps.ng.tax_most_)[78,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Family"], "__")[[1]][2]
  869. tax_table(ps.ng.tax_most_)[78,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Genus"], "__")[[1]][2]
  870. tax_table(ps.ng.tax_most_)[78,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[78,"Species"], "__")[[1]][2]
  871. tax_table(ps.ng.tax_most_)[79,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Domain"], "__")[[1]][2]
  872. tax_table(ps.ng.tax_most_)[79,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Phylum"], "__")[[1]][2]
  873. tax_table(ps.ng.tax_most_)[79,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Class"], "__")[[1]][2]
  874. tax_table(ps.ng.tax_most_)[79,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Order"], "__")[[1]][2]
  875. tax_table(ps.ng.tax_most_)[79,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Family"], "__")[[1]][2]
  876. tax_table(ps.ng.tax_most_)[79,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Genus"], "__")[[1]][2]
  877. tax_table(ps.ng.tax_most_)[79,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[79,"Species"], "__")[[1]][2]
  878. tax_table(ps.ng.tax_most_)[80,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Domain"], "__")[[1]][2]
  879. tax_table(ps.ng.tax_most_)[80,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Phylum"], "__")[[1]][2]
  880. tax_table(ps.ng.tax_most_)[80,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Class"], "__")[[1]][2]
  881. tax_table(ps.ng.tax_most_)[80,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Order"], "__")[[1]][2]
  882. tax_table(ps.ng.tax_most_)[80,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Family"], "__")[[1]][2]
  883. tax_table(ps.ng.tax_most_)[80,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Genus"], "__")[[1]][2]
  884. tax_table(ps.ng.tax_most_)[80,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[80,"Species"], "__")[[1]][2]
  885. tax_table(ps.ng.tax_most_)[81,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Domain"], "__")[[1]][2]
  886. tax_table(ps.ng.tax_most_)[81,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Phylum"], "__")[[1]][2]
  887. tax_table(ps.ng.tax_most_)[81,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Class"], "__")[[1]][2]
  888. tax_table(ps.ng.tax_most_)[81,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Order"], "__")[[1]][2]
  889. tax_table(ps.ng.tax_most_)[81,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Family"], "__")[[1]][2]
  890. tax_table(ps.ng.tax_most_)[81,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Genus"], "__")[[1]][2]
  891. tax_table(ps.ng.tax_most_)[81,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[81,"Species"], "__")[[1]][2]
  892. tax_table(ps.ng.tax_most_)[82,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Domain"], "__")[[1]][2]
  893. tax_table(ps.ng.tax_most_)[82,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Phylum"], "__")[[1]][2]
  894. tax_table(ps.ng.tax_most_)[82,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Class"], "__")[[1]][2]
  895. tax_table(ps.ng.tax_most_)[82,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Order"], "__")[[1]][2]
  896. tax_table(ps.ng.tax_most_)[82,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Family"], "__")[[1]][2]
  897. tax_table(ps.ng.tax_most_)[82,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Genus"], "__")[[1]][2]
  898. tax_table(ps.ng.tax_most_)[82,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[82,"Species"], "__")[[1]][2]
  899. tax_table(ps.ng.tax_most_)[83,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Domain"], "__")[[1]][2]
  900. tax_table(ps.ng.tax_most_)[83,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Phylum"], "__")[[1]][2]
  901. tax_table(ps.ng.tax_most_)[83,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Class"], "__")[[1]][2]
  902. tax_table(ps.ng.tax_most_)[83,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Order"], "__")[[1]][2]
  903. tax_table(ps.ng.tax_most_)[83,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Family"], "__")[[1]][2]
  904. tax_table(ps.ng.tax_most_)[83,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Genus"], "__")[[1]][2]
  905. tax_table(ps.ng.tax_most_)[83,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[83,"Species"], "__")[[1]][2]
  906. tax_table(ps.ng.tax_most_)[84,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Domain"], "__")[[1]][2]
  907. tax_table(ps.ng.tax_most_)[84,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Phylum"], "__")[[1]][2]
  908. tax_table(ps.ng.tax_most_)[84,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Class"], "__")[[1]][2]
  909. tax_table(ps.ng.tax_most_)[84,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Order"], "__")[[1]][2]
  910. tax_table(ps.ng.tax_most_)[84,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Family"], "__")[[1]][2]
  911. tax_table(ps.ng.tax_most_)[84,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Genus"], "__")[[1]][2]
  912. tax_table(ps.ng.tax_most_)[84,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[84,"Species"], "__")[[1]][2]
  913. tax_table(ps.ng.tax_most_)[85,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Domain"], "__")[[1]][2]
  914. tax_table(ps.ng.tax_most_)[85,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Phylum"], "__")[[1]][2]
  915. tax_table(ps.ng.tax_most_)[85,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Class"], "__")[[1]][2]
  916. tax_table(ps.ng.tax_most_)[85,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Order"], "__")[[1]][2]
  917. tax_table(ps.ng.tax_most_)[85,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Family"], "__")[[1]][2]
  918. tax_table(ps.ng.tax_most_)[85,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Genus"], "__")[[1]][2]
  919. tax_table(ps.ng.tax_most_)[85,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[85,"Species"], "__")[[1]][2]
  920. tax_table(ps.ng.tax_most_)[86,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Domain"], "__")[[1]][2]
  921. tax_table(ps.ng.tax_most_)[86,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Phylum"], "__")[[1]][2]
  922. tax_table(ps.ng.tax_most_)[86,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Class"], "__")[[1]][2]
  923. tax_table(ps.ng.tax_most_)[86,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Order"], "__")[[1]][2]
  924. tax_table(ps.ng.tax_most_)[86,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Family"], "__")[[1]][2]
  925. tax_table(ps.ng.tax_most_)[86,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Genus"], "__")[[1]][2]
  926. tax_table(ps.ng.tax_most_)[86,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[86,"Species"], "__")[[1]][2]
  927. tax_table(ps.ng.tax_most_)[87,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Domain"], "__")[[1]][2]
  928. tax_table(ps.ng.tax_most_)[87,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Phylum"], "__")[[1]][2]
  929. tax_table(ps.ng.tax_most_)[87,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Class"], "__")[[1]][2]
  930. tax_table(ps.ng.tax_most_)[87,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Order"], "__")[[1]][2]
  931. tax_table(ps.ng.tax_most_)[87,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Family"], "__")[[1]][2]
  932. tax_table(ps.ng.tax_most_)[87,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Genus"], "__")[[1]][2]
  933. tax_table(ps.ng.tax_most_)[87,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[87,"Species"], "__")[[1]][2]
  934. tax_table(ps.ng.tax_most_)[88,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Domain"], "__")[[1]][2]
  935. tax_table(ps.ng.tax_most_)[88,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Phylum"], "__")[[1]][2]
  936. tax_table(ps.ng.tax_most_)[88,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Class"], "__")[[1]][2]
  937. tax_table(ps.ng.tax_most_)[88,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Order"], "__")[[1]][2]
  938. tax_table(ps.ng.tax_most_)[88,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Family"], "__")[[1]][2]
  939. tax_table(ps.ng.tax_most_)[88,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Genus"], "__")[[1]][2]
  940. tax_table(ps.ng.tax_most_)[88,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[88,"Species"], "__")[[1]][2]
  941. tax_table(ps.ng.tax_most_)[89,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Domain"], "__")[[1]][2]
  942. tax_table(ps.ng.tax_most_)[89,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Phylum"], "__")[[1]][2]
  943. tax_table(ps.ng.tax_most_)[89,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Class"], "__")[[1]][2]
  944. tax_table(ps.ng.tax_most_)[89,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Order"], "__")[[1]][2]
  945. tax_table(ps.ng.tax_most_)[89,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Family"], "__")[[1]][2]
  946. tax_table(ps.ng.tax_most_)[89,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Genus"], "__")[[1]][2]
  947. tax_table(ps.ng.tax_most_)[89,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[89,"Species"], "__")[[1]][2]
  948. tax_table(ps.ng.tax_most_)[90,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Domain"], "__")[[1]][2]
  949. tax_table(ps.ng.tax_most_)[90,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Phylum"], "__")[[1]][2]
  950. tax_table(ps.ng.tax_most_)[90,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Class"], "__")[[1]][2]
  951. tax_table(ps.ng.tax_most_)[90,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Order"], "__")[[1]][2]
  952. tax_table(ps.ng.tax_most_)[90,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Family"], "__")[[1]][2]
  953. tax_table(ps.ng.tax_most_)[90,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Genus"], "__")[[1]][2]
  954. tax_table(ps.ng.tax_most_)[90,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[90,"Species"], "__")[[1]][2]
  955. tax_table(ps.ng.tax_most_)[91,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Domain"], "__")[[1]][2]
  956. tax_table(ps.ng.tax_most_)[91,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Phylum"], "__")[[1]][2]
  957. tax_table(ps.ng.tax_most_)[91,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Class"], "__")[[1]][2]
  958. tax_table(ps.ng.tax_most_)[91,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Order"], "__")[[1]][2]
  959. tax_table(ps.ng.tax_most_)[91,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Family"], "__")[[1]][2]
  960. tax_table(ps.ng.tax_most_)[91,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Genus"], "__")[[1]][2]
  961. tax_table(ps.ng.tax_most_)[91,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[91,"Species"], "__")[[1]][2]
  962. tax_table(ps.ng.tax_most_)[92,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Domain"], "__")[[1]][2]
  963. tax_table(ps.ng.tax_most_)[92,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Phylum"], "__")[[1]][2]
  964. tax_table(ps.ng.tax_most_)[92,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Class"], "__")[[1]][2]
  965. tax_table(ps.ng.tax_most_)[92,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Order"], "__")[[1]][2]
  966. tax_table(ps.ng.tax_most_)[92,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Family"], "__")[[1]][2]
  967. tax_table(ps.ng.tax_most_)[92,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Genus"], "__")[[1]][2]
  968. tax_table(ps.ng.tax_most_)[92,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[92,"Species"], "__")[[1]][2]
  969. tax_table(ps.ng.tax_most_)[93,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Domain"], "__")[[1]][2]
  970. tax_table(ps.ng.tax_most_)[93,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Phylum"], "__")[[1]][2]
  971. tax_table(ps.ng.tax_most_)[93,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Class"], "__")[[1]][2]
  972. tax_table(ps.ng.tax_most_)[93,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Order"], "__")[[1]][2]
  973. tax_table(ps.ng.tax_most_)[93,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Family"], "__")[[1]][2]
  974. tax_table(ps.ng.tax_most_)[93,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Genus"], "__")[[1]][2]
  975. tax_table(ps.ng.tax_most_)[93,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[93,"Species"], "__")[[1]][2]
  976. tax_table(ps.ng.tax_most_)[94,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Domain"], "__")[[1]][2]
  977. tax_table(ps.ng.tax_most_)[94,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Phylum"], "__")[[1]][2]
  978. tax_table(ps.ng.tax_most_)[94,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Class"], "__")[[1]][2]
  979. tax_table(ps.ng.tax_most_)[94,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Order"], "__")[[1]][2]
  980. tax_table(ps.ng.tax_most_)[94,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Family"], "__")[[1]][2]
  981. tax_table(ps.ng.tax_most_)[94,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Genus"], "__")[[1]][2]
  982. tax_table(ps.ng.tax_most_)[94,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[94,"Species"], "__")[[1]][2]
  983. tax_table(ps.ng.tax_most_)[95,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Domain"], "__")[[1]][2]
  984. tax_table(ps.ng.tax_most_)[95,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Phylum"], "__")[[1]][2]
  985. tax_table(ps.ng.tax_most_)[95,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Class"], "__")[[1]][2]
  986. tax_table(ps.ng.tax_most_)[95,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Order"], "__")[[1]][2]
  987. tax_table(ps.ng.tax_most_)[95,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Family"], "__")[[1]][2]
  988. tax_table(ps.ng.tax_most_)[95,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Genus"], "__")[[1]][2]
  989. tax_table(ps.ng.tax_most_)[95,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[95,"Species"], "__")[[1]][2]
  990. tax_table(ps.ng.tax_most_)[96,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Domain"], "__")[[1]][2]
  991. tax_table(ps.ng.tax_most_)[96,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Phylum"], "__")[[1]][2]
  992. tax_table(ps.ng.tax_most_)[96,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Class"], "__")[[1]][2]
  993. tax_table(ps.ng.tax_most_)[96,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Order"], "__")[[1]][2]
  994. tax_table(ps.ng.tax_most_)[96,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Family"], "__")[[1]][2]
  995. tax_table(ps.ng.tax_most_)[96,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Genus"], "__")[[1]][2]
  996. tax_table(ps.ng.tax_most_)[96,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[96,"Species"], "__")[[1]][2]
  997. tax_table(ps.ng.tax_most_)[97,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Domain"], "__")[[1]][2]
  998. tax_table(ps.ng.tax_most_)[97,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Phylum"], "__")[[1]][2]
  999. tax_table(ps.ng.tax_most_)[97,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Class"], "__")[[1]][2]
  1000. tax_table(ps.ng.tax_most_)[97,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Order"], "__")[[1]][2]
  1001. tax_table(ps.ng.tax_most_)[97,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Family"], "__")[[1]][2]
  1002. tax_table(ps.ng.tax_most_)[97,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Genus"], "__")[[1]][2]
  1003. tax_table(ps.ng.tax_most_)[97,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[97,"Species"], "__")[[1]][2]
  1004. tax_table(ps.ng.tax_most_)[98,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Domain"], "__")[[1]][2]
  1005. tax_table(ps.ng.tax_most_)[98,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Phylum"], "__")[[1]][2]
  1006. tax_table(ps.ng.tax_most_)[98,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Class"], "__")[[1]][2]
  1007. tax_table(ps.ng.tax_most_)[98,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Order"], "__")[[1]][2]
  1008. tax_table(ps.ng.tax_most_)[98,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Family"], "__")[[1]][2]
  1009. tax_table(ps.ng.tax_most_)[98,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Genus"], "__")[[1]][2]
  1010. tax_table(ps.ng.tax_most_)[98,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[98,"Species"], "__")[[1]][2]
  1011. tax_table(ps.ng.tax_most_)[99,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Domain"], "__")[[1]][2]
  1012. tax_table(ps.ng.tax_most_)[99,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Phylum"], "__")[[1]][2]
  1013. tax_table(ps.ng.tax_most_)[99,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Class"], "__")[[1]][2]
  1014. tax_table(ps.ng.tax_most_)[99,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Order"], "__")[[1]][2]
  1015. tax_table(ps.ng.tax_most_)[99,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Family"], "__")[[1]][2]
  1016. tax_table(ps.ng.tax_most_)[99,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Genus"], "__")[[1]][2]
  1017. tax_table(ps.ng.tax_most_)[99,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[99,"Species"], "__")[[1]][2]
  1018. tax_table(ps.ng.tax_most_)[100,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Domain"], "__")[[1]][2]
  1019. tax_table(ps.ng.tax_most_)[100,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Phylum"], "__")[[1]][2]
  1020. tax_table(ps.ng.tax_most_)[100,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Class"], "__")[[1]][2]
  1021. tax_table(ps.ng.tax_most_)[100,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Order"], "__")[[1]][2]
  1022. tax_table(ps.ng.tax_most_)[100,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Family"], "__")[[1]][2]
  1023. tax_table(ps.ng.tax_most_)[100,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Genus"], "__")[[1]][2]
  1024. tax_table(ps.ng.tax_most_)[100,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[100,"Species"], "__")[[1]][2]
  1025. tax_table(ps.ng.tax_most_)[101,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Domain"], "__")[[1]][2]
  1026. tax_table(ps.ng.tax_most_)[101,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Phylum"], "__")[[1]][2]
  1027. tax_table(ps.ng.tax_most_)[101,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Class"], "__")[[1]][2]
  1028. tax_table(ps.ng.tax_most_)[101,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Order"], "__")[[1]][2]
  1029. tax_table(ps.ng.tax_most_)[101,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Family"], "__")[[1]][2]
  1030. tax_table(ps.ng.tax_most_)[101,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Genus"], "__")[[1]][2]
  1031. tax_table(ps.ng.tax_most_)[101,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[101,"Species"], "__")[[1]][2]
  1032. tax_table(ps.ng.tax_most_)[102,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Domain"], "__")[[1]][2]
  1033. tax_table(ps.ng.tax_most_)[102,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Phylum"], "__")[[1]][2]
  1034. tax_table(ps.ng.tax_most_)[102,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Class"], "__")[[1]][2]
  1035. tax_table(ps.ng.tax_most_)[102,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Order"], "__")[[1]][2]
  1036. tax_table(ps.ng.tax_most_)[102,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Family"], "__")[[1]][2]
  1037. tax_table(ps.ng.tax_most_)[102,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Genus"], "__")[[1]][2]
  1038. tax_table(ps.ng.tax_most_)[102,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[102,"Species"], "__")[[1]][2]
  1039. tax_table(ps.ng.tax_most_)[103,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Domain"], "__")[[1]][2]
  1040. tax_table(ps.ng.tax_most_)[103,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Phylum"], "__")[[1]][2]
  1041. tax_table(ps.ng.tax_most_)[103,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Class"], "__")[[1]][2]
  1042. tax_table(ps.ng.tax_most_)[103,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Order"], "__")[[1]][2]
  1043. tax_table(ps.ng.tax_most_)[103,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Family"], "__")[[1]][2]
  1044. tax_table(ps.ng.tax_most_)[103,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Genus"], "__")[[1]][2]
  1045. tax_table(ps.ng.tax_most_)[103,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[103,"Species"], "__")[[1]][2]
  1046. tax_table(ps.ng.tax_most_)[104,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Domain"], "__")[[1]][2]
  1047. tax_table(ps.ng.tax_most_)[104,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Phylum"], "__")[[1]][2]
  1048. tax_table(ps.ng.tax_most_)[104,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Class"], "__")[[1]][2]
  1049. tax_table(ps.ng.tax_most_)[104,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Order"], "__")[[1]][2]
  1050. tax_table(ps.ng.tax_most_)[104,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Family"], "__")[[1]][2]
  1051. tax_table(ps.ng.tax_most_)[104,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Genus"], "__")[[1]][2]
  1052. tax_table(ps.ng.tax_most_)[104,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[104,"Species"], "__")[[1]][2]
  1053. tax_table(ps.ng.tax_most_)[105,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Domain"], "__")[[1]][2]
  1054. tax_table(ps.ng.tax_most_)[105,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Phylum"], "__")[[1]][2]
  1055. tax_table(ps.ng.tax_most_)[105,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Class"], "__")[[1]][2]
  1056. tax_table(ps.ng.tax_most_)[105,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Order"], "__")[[1]][2]
  1057. tax_table(ps.ng.tax_most_)[105,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Family"], "__")[[1]][2]
  1058. tax_table(ps.ng.tax_most_)[105,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Genus"], "__")[[1]][2]
  1059. tax_table(ps.ng.tax_most_)[105,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[105,"Species"], "__")[[1]][2]
  1060. tax_table(ps.ng.tax_most_)[106,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Domain"], "__")[[1]][2]
  1061. tax_table(ps.ng.tax_most_)[106,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Phylum"], "__")[[1]][2]
  1062. tax_table(ps.ng.tax_most_)[106,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Class"], "__")[[1]][2]
  1063. tax_table(ps.ng.tax_most_)[106,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Order"], "__")[[1]][2]
  1064. tax_table(ps.ng.tax_most_)[106,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Family"], "__")[[1]][2]
  1065. tax_table(ps.ng.tax_most_)[106,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Genus"], "__")[[1]][2]
  1066. tax_table(ps.ng.tax_most_)[106,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[106,"Species"], "__")[[1]][2]
  1067. tax_table(ps.ng.tax_most_)[107,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Domain"], "__")[[1]][2]
  1068. tax_table(ps.ng.tax_most_)[107,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Phylum"], "__")[[1]][2]
  1069. tax_table(ps.ng.tax_most_)[107,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Class"], "__")[[1]][2]
  1070. tax_table(ps.ng.tax_most_)[107,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Order"], "__")[[1]][2]
  1071. tax_table(ps.ng.tax_most_)[107,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Family"], "__")[[1]][2]
  1072. tax_table(ps.ng.tax_most_)[107,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Genus"], "__")[[1]][2]
  1073. tax_table(ps.ng.tax_most_)[107,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[107,"Species"], "__")[[1]][2]
  1074. tax_table(ps.ng.tax_most_)[108,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Domain"], "__")[[1]][2]
  1075. tax_table(ps.ng.tax_most_)[108,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Phylum"], "__")[[1]][2]
  1076. tax_table(ps.ng.tax_most_)[108,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Class"], "__")[[1]][2]
  1077. tax_table(ps.ng.tax_most_)[108,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Order"], "__")[[1]][2]
  1078. tax_table(ps.ng.tax_most_)[108,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Family"], "__")[[1]][2]
  1079. tax_table(ps.ng.tax_most_)[108,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Genus"], "__")[[1]][2]
  1080. tax_table(ps.ng.tax_most_)[108,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[108,"Species"], "__")[[1]][2]
  1081. tax_table(ps.ng.tax_most_)[109,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Domain"], "__")[[1]][2]
  1082. tax_table(ps.ng.tax_most_)[109,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Phylum"], "__")[[1]][2]
  1083. tax_table(ps.ng.tax_most_)[109,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Class"], "__")[[1]][2]
  1084. tax_table(ps.ng.tax_most_)[109,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Order"], "__")[[1]][2]
  1085. tax_table(ps.ng.tax_most_)[109,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Family"], "__")[[1]][2]
  1086. tax_table(ps.ng.tax_most_)[109,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Genus"], "__")[[1]][2]
  1087. tax_table(ps.ng.tax_most_)[109,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[109,"Species"], "__")[[1]][2]
  1088. tax_table(ps.ng.tax_most_)[110,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Domain"], "__")[[1]][2]
  1089. tax_table(ps.ng.tax_most_)[110,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Phylum"], "__")[[1]][2]
  1090. tax_table(ps.ng.tax_most_)[110,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Class"], "__")[[1]][2]
  1091. tax_table(ps.ng.tax_most_)[110,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Order"], "__")[[1]][2]
  1092. tax_table(ps.ng.tax_most_)[110,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Family"], "__")[[1]][2]
  1093. tax_table(ps.ng.tax_most_)[110,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Genus"], "__")[[1]][2]
  1094. tax_table(ps.ng.tax_most_)[110,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[110,"Species"], "__")[[1]][2]
  1095. tax_table(ps.ng.tax_most_)[111,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Domain"], "__")[[1]][2]
  1096. tax_table(ps.ng.tax_most_)[111,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Phylum"], "__")[[1]][2]
  1097. tax_table(ps.ng.tax_most_)[111,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Class"], "__")[[1]][2]
  1098. tax_table(ps.ng.tax_most_)[111,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Order"], "__")[[1]][2]
  1099. tax_table(ps.ng.tax_most_)[111,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Family"], "__")[[1]][2]
  1100. tax_table(ps.ng.tax_most_)[111,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Genus"], "__")[[1]][2]
  1101. tax_table(ps.ng.tax_most_)[111,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[111,"Species"], "__")[[1]][2]
  1102. tax_table(ps.ng.tax_most_)[112,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Domain"], "__")[[1]][2]
  1103. tax_table(ps.ng.tax_most_)[112,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Phylum"], "__")[[1]][2]
  1104. tax_table(ps.ng.tax_most_)[112,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Class"], "__")[[1]][2]
  1105. tax_table(ps.ng.tax_most_)[112,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Order"], "__")[[1]][2]
  1106. tax_table(ps.ng.tax_most_)[112,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Family"], "__")[[1]][2]
  1107. tax_table(ps.ng.tax_most_)[112,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Genus"], "__")[[1]][2]
  1108. tax_table(ps.ng.tax_most_)[112,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[112,"Species"], "__")[[1]][2]
  1109. tax_table(ps.ng.tax_most_)[113,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Domain"], "__")[[1]][2]
  1110. tax_table(ps.ng.tax_most_)[113,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Phylum"], "__")[[1]][2]
  1111. tax_table(ps.ng.tax_most_)[113,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Class"], "__")[[1]][2]
  1112. tax_table(ps.ng.tax_most_)[113,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Order"], "__")[[1]][2]
  1113. tax_table(ps.ng.tax_most_)[113,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Family"], "__")[[1]][2]
  1114. tax_table(ps.ng.tax_most_)[113,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Genus"], "__")[[1]][2]
  1115. tax_table(ps.ng.tax_most_)[113,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[113,"Species"], "__")[[1]][2]
  1116. tax_table(ps.ng.tax_most_)[114,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Domain"], "__")[[1]][2]
  1117. tax_table(ps.ng.tax_most_)[114,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Phylum"], "__")[[1]][2]
  1118. tax_table(ps.ng.tax_most_)[114,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Class"], "__")[[1]][2]
  1119. tax_table(ps.ng.tax_most_)[114,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Order"], "__")[[1]][2]
  1120. tax_table(ps.ng.tax_most_)[114,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Family"], "__")[[1]][2]
  1121. tax_table(ps.ng.tax_most_)[114,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Genus"], "__")[[1]][2]
  1122. tax_table(ps.ng.tax_most_)[114,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[114,"Species"], "__")[[1]][2]
  1123. tax_table(ps.ng.tax_most_)[115,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Domain"], "__")[[1]][2]
  1124. tax_table(ps.ng.tax_most_)[115,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Phylum"], "__")[[1]][2]
  1125. tax_table(ps.ng.tax_most_)[115,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Class"], "__")[[1]][2]
  1126. tax_table(ps.ng.tax_most_)[115,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Order"], "__")[[1]][2]
  1127. tax_table(ps.ng.tax_most_)[115,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Family"], "__")[[1]][2]
  1128. tax_table(ps.ng.tax_most_)[115,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Genus"], "__")[[1]][2]
  1129. tax_table(ps.ng.tax_most_)[115,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[115,"Species"], "__")[[1]][2]
  1130. tax_table(ps.ng.tax_most_)[116,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Domain"], "__")[[1]][2]
  1131. tax_table(ps.ng.tax_most_)[116,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Phylum"], "__")[[1]][2]
  1132. tax_table(ps.ng.tax_most_)[116,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Class"], "__")[[1]][2]
  1133. tax_table(ps.ng.tax_most_)[116,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Order"], "__")[[1]][2]
  1134. tax_table(ps.ng.tax_most_)[116,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Family"], "__")[[1]][2]
  1135. tax_table(ps.ng.tax_most_)[116,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Genus"], "__")[[1]][2]
  1136. tax_table(ps.ng.tax_most_)[116,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[116,"Species"], "__")[[1]][2]
  1137. tax_table(ps.ng.tax_most_)[117,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Domain"], "__")[[1]][2]
  1138. tax_table(ps.ng.tax_most_)[117,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Phylum"], "__")[[1]][2]
  1139. tax_table(ps.ng.tax_most_)[117,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Class"], "__")[[1]][2]
  1140. tax_table(ps.ng.tax_most_)[117,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Order"], "__")[[1]][2]
  1141. tax_table(ps.ng.tax_most_)[117,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Family"], "__")[[1]][2]
  1142. tax_table(ps.ng.tax_most_)[117,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Genus"], "__")[[1]][2]
  1143. tax_table(ps.ng.tax_most_)[117,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[117,"Species"], "__")[[1]][2]
  1144. tax_table(ps.ng.tax_most_)[118,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Domain"], "__")[[1]][2]
  1145. tax_table(ps.ng.tax_most_)[118,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Phylum"], "__")[[1]][2]
  1146. tax_table(ps.ng.tax_most_)[118,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Class"], "__")[[1]][2]
  1147. tax_table(ps.ng.tax_most_)[118,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Order"], "__")[[1]][2]
  1148. tax_table(ps.ng.tax_most_)[118,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Family"], "__")[[1]][2]
  1149. tax_table(ps.ng.tax_most_)[118,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Genus"], "__")[[1]][2]
  1150. tax_table(ps.ng.tax_most_)[118,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[118,"Species"], "__")[[1]][2]
  1151. tax_table(ps.ng.tax_most_)[119,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Domain"], "__")[[1]][2]
  1152. tax_table(ps.ng.tax_most_)[119,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Phylum"], "__")[[1]][2]
  1153. tax_table(ps.ng.tax_most_)[119,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Class"], "__")[[1]][2]
  1154. tax_table(ps.ng.tax_most_)[119,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Order"], "__")[[1]][2]
  1155. tax_table(ps.ng.tax_most_)[119,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Family"], "__")[[1]][2]
  1156. tax_table(ps.ng.tax_most_)[119,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Genus"], "__")[[1]][2]
  1157. tax_table(ps.ng.tax_most_)[119,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[119,"Species"], "__")[[1]][2]
  1158. tax_table(ps.ng.tax_most_)[120,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Domain"], "__")[[1]][2]
  1159. tax_table(ps.ng.tax_most_)[120,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Phylum"], "__")[[1]][2]
  1160. tax_table(ps.ng.tax_most_)[120,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Class"], "__")[[1]][2]
  1161. tax_table(ps.ng.tax_most_)[120,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Order"], "__")[[1]][2]
  1162. tax_table(ps.ng.tax_most_)[120,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Family"], "__")[[1]][2]
  1163. tax_table(ps.ng.tax_most_)[120,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Genus"], "__")[[1]][2]
  1164. tax_table(ps.ng.tax_most_)[120,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[120,"Species"], "__")[[1]][2]
  1165. tax_table(ps.ng.tax_most_)[121,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Domain"], "__")[[1]][2]
  1166. tax_table(ps.ng.tax_most_)[121,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Phylum"], "__")[[1]][2]
  1167. tax_table(ps.ng.tax_most_)[121,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Class"], "__")[[1]][2]
  1168. tax_table(ps.ng.tax_most_)[121,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Order"], "__")[[1]][2]
  1169. tax_table(ps.ng.tax_most_)[121,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Family"], "__")[[1]][2]
  1170. tax_table(ps.ng.tax_most_)[121,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Genus"], "__")[[1]][2]
  1171. tax_table(ps.ng.tax_most_)[121,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[121,"Species"], "__")[[1]][2]
  1172. tax_table(ps.ng.tax_most_)[122,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Domain"], "__")[[1]][2]
  1173. tax_table(ps.ng.tax_most_)[122,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Phylum"], "__")[[1]][2]
  1174. tax_table(ps.ng.tax_most_)[122,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Class"], "__")[[1]][2]
  1175. tax_table(ps.ng.tax_most_)[122,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Order"], "__")[[1]][2]
  1176. tax_table(ps.ng.tax_most_)[122,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Family"], "__")[[1]][2]
  1177. tax_table(ps.ng.tax_most_)[122,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Genus"], "__")[[1]][2]
  1178. tax_table(ps.ng.tax_most_)[122,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[122,"Species"], "__")[[1]][2]
  1179. tax_table(ps.ng.tax_most_)[123,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Domain"], "__")[[1]][2]
  1180. tax_table(ps.ng.tax_most_)[123,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Phylum"], "__")[[1]][2]
  1181. tax_table(ps.ng.tax_most_)[123,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Class"], "__")[[1]][2]
  1182. tax_table(ps.ng.tax_most_)[123,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Order"], "__")[[1]][2]
  1183. tax_table(ps.ng.tax_most_)[123,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Family"], "__")[[1]][2]
  1184. tax_table(ps.ng.tax_most_)[123,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Genus"], "__")[[1]][2]
  1185. tax_table(ps.ng.tax_most_)[123,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[123,"Species"], "__")[[1]][2]
  1186. tax_table(ps.ng.tax_most_)[124,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Domain"], "__")[[1]][2]
  1187. tax_table(ps.ng.tax_most_)[124,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Phylum"], "__")[[1]][2]
  1188. tax_table(ps.ng.tax_most_)[124,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Class"], "__")[[1]][2]
  1189. tax_table(ps.ng.tax_most_)[124,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Order"], "__")[[1]][2]
  1190. tax_table(ps.ng.tax_most_)[124,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Family"], "__")[[1]][2]
  1191. tax_table(ps.ng.tax_most_)[124,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Genus"], "__")[[1]][2]
  1192. tax_table(ps.ng.tax_most_)[124,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[124,"Species"], "__")[[1]][2]
  1193. tax_table(ps.ng.tax_most_)[125,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Domain"], "__")[[1]][2]
  1194. tax_table(ps.ng.tax_most_)[125,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Phylum"], "__")[[1]][2]
  1195. tax_table(ps.ng.tax_most_)[125,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Class"], "__")[[1]][2]
  1196. tax_table(ps.ng.tax_most_)[125,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Order"], "__")[[1]][2]
  1197. tax_table(ps.ng.tax_most_)[125,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Family"], "__")[[1]][2]
  1198. tax_table(ps.ng.tax_most_)[125,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Genus"], "__")[[1]][2]
  1199. tax_table(ps.ng.tax_most_)[125,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[125,"Species"], "__")[[1]][2]
  1200. tax_table(ps.ng.tax_most_)[126,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Domain"], "__")[[1]][2]
  1201. tax_table(ps.ng.tax_most_)[126,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Phylum"], "__")[[1]][2]
  1202. tax_table(ps.ng.tax_most_)[126,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Class"], "__")[[1]][2]
  1203. tax_table(ps.ng.tax_most_)[126,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Order"], "__")[[1]][2]
  1204. tax_table(ps.ng.tax_most_)[126,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Family"], "__")[[1]][2]
  1205. tax_table(ps.ng.tax_most_)[126,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Genus"], "__")[[1]][2]
  1206. tax_table(ps.ng.tax_most_)[126,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[126,"Species"], "__")[[1]][2]
  1207. tax_table(ps.ng.tax_most_)[127,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Domain"], "__")[[1]][2]
  1208. tax_table(ps.ng.tax_most_)[127,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Phylum"], "__")[[1]][2]
  1209. tax_table(ps.ng.tax_most_)[127,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Class"], "__")[[1]][2]
  1210. tax_table(ps.ng.tax_most_)[127,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Order"], "__")[[1]][2]
  1211. tax_table(ps.ng.tax_most_)[127,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Family"], "__")[[1]][2]
  1212. tax_table(ps.ng.tax_most_)[127,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Genus"], "__")[[1]][2]
  1213. tax_table(ps.ng.tax_most_)[127,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[127,"Species"], "__")[[1]][2]
  1214. tax_table(ps.ng.tax_most_)[128,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Domain"], "__")[[1]][2]
  1215. tax_table(ps.ng.tax_most_)[128,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Phylum"], "__")[[1]][2]
  1216. tax_table(ps.ng.tax_most_)[128,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Class"], "__")[[1]][2]
  1217. tax_table(ps.ng.tax_most_)[128,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Order"], "__")[[1]][2]
  1218. tax_table(ps.ng.tax_most_)[128,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Family"], "__")[[1]][2]
  1219. tax_table(ps.ng.tax_most_)[128,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Genus"], "__")[[1]][2]
  1220. tax_table(ps.ng.tax_most_)[128,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[128,"Species"], "__")[[1]][2]
  1221. tax_table(ps.ng.tax_most_)[129,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Domain"], "__")[[1]][2]
  1222. tax_table(ps.ng.tax_most_)[129,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Phylum"], "__")[[1]][2]
  1223. tax_table(ps.ng.tax_most_)[129,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Class"], "__")[[1]][2]
  1224. tax_table(ps.ng.tax_most_)[129,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Order"], "__")[[1]][2]
  1225. tax_table(ps.ng.tax_most_)[129,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Family"], "__")[[1]][2]
  1226. tax_table(ps.ng.tax_most_)[129,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Genus"], "__")[[1]][2]
  1227. tax_table(ps.ng.tax_most_)[129,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[129,"Species"], "__")[[1]][2]
  1228. tax_table(ps.ng.tax_most_)[130,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Domain"], "__")[[1]][2]
  1229. tax_table(ps.ng.tax_most_)[130,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Phylum"], "__")[[1]][2]
  1230. tax_table(ps.ng.tax_most_)[130,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Class"], "__")[[1]][2]
  1231. tax_table(ps.ng.tax_most_)[130,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Order"], "__")[[1]][2]
  1232. tax_table(ps.ng.tax_most_)[130,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Family"], "__")[[1]][2]
  1233. tax_table(ps.ng.tax_most_)[130,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Genus"], "__")[[1]][2]
  1234. tax_table(ps.ng.tax_most_)[130,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[130,"Species"], "__")[[1]][2]
  1235. tax_table(ps.ng.tax_most_)[131,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Domain"], "__")[[1]][2]
  1236. tax_table(ps.ng.tax_most_)[131,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Phylum"], "__")[[1]][2]
  1237. tax_table(ps.ng.tax_most_)[131,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Class"], "__")[[1]][2]
  1238. tax_table(ps.ng.tax_most_)[131,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Order"], "__")[[1]][2]
  1239. tax_table(ps.ng.tax_most_)[131,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Family"], "__")[[1]][2]
  1240. tax_table(ps.ng.tax_most_)[131,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Genus"], "__")[[1]][2]
  1241. tax_table(ps.ng.tax_most_)[131,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[131,"Species"], "__")[[1]][2]
  1242. tax_table(ps.ng.tax_most_)[132,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Domain"], "__")[[1]][2]
  1243. tax_table(ps.ng.tax_most_)[132,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Phylum"], "__")[[1]][2]
  1244. tax_table(ps.ng.tax_most_)[132,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Class"], "__")[[1]][2]
  1245. tax_table(ps.ng.tax_most_)[132,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Order"], "__")[[1]][2]
  1246. tax_table(ps.ng.tax_most_)[132,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Family"], "__")[[1]][2]
  1247. tax_table(ps.ng.tax_most_)[132,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Genus"], "__")[[1]][2]
  1248. tax_table(ps.ng.tax_most_)[132,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[132,"Species"], "__")[[1]][2]
  1249. tax_table(ps.ng.tax_most_)[133,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Domain"], "__")[[1]][2]
  1250. tax_table(ps.ng.tax_most_)[133,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Phylum"], "__")[[1]][2]
  1251. tax_table(ps.ng.tax_most_)[133,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Class"], "__")[[1]][2]
  1252. tax_table(ps.ng.tax_most_)[133,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Order"], "__")[[1]][2]
  1253. tax_table(ps.ng.tax_most_)[133,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Family"], "__")[[1]][2]
  1254. tax_table(ps.ng.tax_most_)[133,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Genus"], "__")[[1]][2]
  1255. tax_table(ps.ng.tax_most_)[133,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[133,"Species"], "__")[[1]][2]
  1256. tax_table(ps.ng.tax_most_)[134,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Domain"], "__")[[1]][2]
  1257. tax_table(ps.ng.tax_most_)[134,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Phylum"], "__")[[1]][2]
  1258. tax_table(ps.ng.tax_most_)[134,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Class"], "__")[[1]][2]
  1259. tax_table(ps.ng.tax_most_)[134,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Order"], "__")[[1]][2]
  1260. tax_table(ps.ng.tax_most_)[134,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Family"], "__")[[1]][2]
  1261. tax_table(ps.ng.tax_most_)[134,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Genus"], "__")[[1]][2]
  1262. tax_table(ps.ng.tax_most_)[134,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[134,"Species"], "__")[[1]][2]
  1263. tax_table(ps.ng.tax_most_)[135,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Domain"], "__")[[1]][2]
  1264. tax_table(ps.ng.tax_most_)[135,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Phylum"], "__")[[1]][2]
  1265. tax_table(ps.ng.tax_most_)[135,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Class"], "__")[[1]][2]
  1266. tax_table(ps.ng.tax_most_)[135,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Order"], "__")[[1]][2]
  1267. tax_table(ps.ng.tax_most_)[135,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Family"], "__")[[1]][2]
  1268. tax_table(ps.ng.tax_most_)[135,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Genus"], "__")[[1]][2]
  1269. tax_table(ps.ng.tax_most_)[135,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[135,"Species"], "__")[[1]][2]
  1270. tax_table(ps.ng.tax_most_)[136,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Domain"], "__")[[1]][2]
  1271. tax_table(ps.ng.tax_most_)[136,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Phylum"], "__")[[1]][2]
  1272. tax_table(ps.ng.tax_most_)[136,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Class"], "__")[[1]][2]
  1273. tax_table(ps.ng.tax_most_)[136,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Order"], "__")[[1]][2]
  1274. tax_table(ps.ng.tax_most_)[136,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Family"], "__")[[1]][2]
  1275. tax_table(ps.ng.tax_most_)[136,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Genus"], "__")[[1]][2]
  1276. tax_table(ps.ng.tax_most_)[136,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[136,"Species"], "__")[[1]][2]
  1277. tax_table(ps.ng.tax_most_)[137,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Domain"], "__")[[1]][2]
  1278. tax_table(ps.ng.tax_most_)[137,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Phylum"], "__")[[1]][2]
  1279. tax_table(ps.ng.tax_most_)[137,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Class"], "__")[[1]][2]
  1280. tax_table(ps.ng.tax_most_)[137,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Order"], "__")[[1]][2]
  1281. tax_table(ps.ng.tax_most_)[137,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Family"], "__")[[1]][2]
  1282. tax_table(ps.ng.tax_most_)[137,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Genus"], "__")[[1]][2]
  1283. tax_table(ps.ng.tax_most_)[137,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[137,"Species"], "__")[[1]][2]
  1284. tax_table(ps.ng.tax_most_)[138,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Domain"], "__")[[1]][2]
  1285. tax_table(ps.ng.tax_most_)[138,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Phylum"], "__")[[1]][2]
  1286. tax_table(ps.ng.tax_most_)[138,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Class"], "__")[[1]][2]
  1287. tax_table(ps.ng.tax_most_)[138,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Order"], "__")[[1]][2]
  1288. tax_table(ps.ng.tax_most_)[138,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Family"], "__")[[1]][2]
  1289. tax_table(ps.ng.tax_most_)[138,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Genus"], "__")[[1]][2]
  1290. tax_table(ps.ng.tax_most_)[138,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[138,"Species"], "__")[[1]][2]
  1291. tax_table(ps.ng.tax_most_)[139,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Domain"], "__")[[1]][2]
  1292. tax_table(ps.ng.tax_most_)[139,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Phylum"], "__")[[1]][2]
  1293. tax_table(ps.ng.tax_most_)[139,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Class"], "__")[[1]][2]
  1294. tax_table(ps.ng.tax_most_)[139,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Order"], "__")[[1]][2]
  1295. tax_table(ps.ng.tax_most_)[139,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Family"], "__")[[1]][2]
  1296. tax_table(ps.ng.tax_most_)[139,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Genus"], "__")[[1]][2]
  1297. tax_table(ps.ng.tax_most_)[139,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[139,"Species"], "__")[[1]][2]
  1298. tax_table(ps.ng.tax_most_)[140,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Domain"], "__")[[1]][2]
  1299. tax_table(ps.ng.tax_most_)[140,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Phylum"], "__")[[1]][2]
  1300. tax_table(ps.ng.tax_most_)[140,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Class"], "__")[[1]][2]
  1301. tax_table(ps.ng.tax_most_)[140,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Order"], "__")[[1]][2]
  1302. tax_table(ps.ng.tax_most_)[140,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Family"], "__")[[1]][2]
  1303. tax_table(ps.ng.tax_most_)[140,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Genus"], "__")[[1]][2]
  1304. tax_table(ps.ng.tax_most_)[140,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[140,"Species"], "__")[[1]][2]
  1305. tax_table(ps.ng.tax_most_)[141,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Domain"], "__")[[1]][2]
  1306. tax_table(ps.ng.tax_most_)[141,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Phylum"], "__")[[1]][2]
  1307. tax_table(ps.ng.tax_most_)[141,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Class"], "__")[[1]][2]
  1308. tax_table(ps.ng.tax_most_)[141,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Order"], "__")[[1]][2]
  1309. tax_table(ps.ng.tax_most_)[141,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Family"], "__")[[1]][2]
  1310. tax_table(ps.ng.tax_most_)[141,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Genus"], "__")[[1]][2]
  1311. tax_table(ps.ng.tax_most_)[141,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[141,"Species"], "__")[[1]][2]
  1312. tax_table(ps.ng.tax_most_)[142,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Domain"], "__")[[1]][2]
  1313. tax_table(ps.ng.tax_most_)[142,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Phylum"], "__")[[1]][2]
  1314. tax_table(ps.ng.tax_most_)[142,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Class"], "__")[[1]][2]
  1315. tax_table(ps.ng.tax_most_)[142,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Order"], "__")[[1]][2]
  1316. tax_table(ps.ng.tax_most_)[142,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Family"], "__")[[1]][2]
  1317. tax_table(ps.ng.tax_most_)[142,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Genus"], "__")[[1]][2]
  1318. tax_table(ps.ng.tax_most_)[142,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[142,"Species"], "__")[[1]][2]
  1319. tax_table(ps.ng.tax_most_)[143,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Domain"], "__")[[1]][2]
  1320. tax_table(ps.ng.tax_most_)[143,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Phylum"], "__")[[1]][2]
  1321. tax_table(ps.ng.tax_most_)[143,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Class"], "__")[[1]][2]
  1322. tax_table(ps.ng.tax_most_)[143,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Order"], "__")[[1]][2]
  1323. tax_table(ps.ng.tax_most_)[143,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Family"], "__")[[1]][2]
  1324. tax_table(ps.ng.tax_most_)[143,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Genus"], "__")[[1]][2]
  1325. tax_table(ps.ng.tax_most_)[143,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[143,"Species"], "__")[[1]][2]
  1326. tax_table(ps.ng.tax_most_)[144,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Domain"], "__")[[1]][2]
  1327. tax_table(ps.ng.tax_most_)[144,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Phylum"], "__")[[1]][2]
  1328. tax_table(ps.ng.tax_most_)[144,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Class"], "__")[[1]][2]
  1329. tax_table(ps.ng.tax_most_)[144,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Order"], "__")[[1]][2]
  1330. tax_table(ps.ng.tax_most_)[144,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Family"], "__")[[1]][2]
  1331. tax_table(ps.ng.tax_most_)[144,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Genus"], "__")[[1]][2]
  1332. tax_table(ps.ng.tax_most_)[144,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[144,"Species"], "__")[[1]][2]
  1333. tax_table(ps.ng.tax_most_)[145,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Domain"], "__")[[1]][2]
  1334. tax_table(ps.ng.tax_most_)[145,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Phylum"], "__")[[1]][2]
  1335. tax_table(ps.ng.tax_most_)[145,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Class"], "__")[[1]][2]
  1336. tax_table(ps.ng.tax_most_)[145,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Order"], "__")[[1]][2]
  1337. tax_table(ps.ng.tax_most_)[145,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Family"], "__")[[1]][2]
  1338. tax_table(ps.ng.tax_most_)[145,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Genus"], "__")[[1]][2]
  1339. tax_table(ps.ng.tax_most_)[145,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[145,"Species"], "__")[[1]][2]
  1340. tax_table(ps.ng.tax_most_)[146,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Domain"], "__")[[1]][2]
  1341. tax_table(ps.ng.tax_most_)[146,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Phylum"], "__")[[1]][2]
  1342. tax_table(ps.ng.tax_most_)[146,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Class"], "__")[[1]][2]
  1343. tax_table(ps.ng.tax_most_)[146,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Order"], "__")[[1]][2]
  1344. tax_table(ps.ng.tax_most_)[146,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Family"], "__")[[1]][2]
  1345. tax_table(ps.ng.tax_most_)[146,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Genus"], "__")[[1]][2]
  1346. tax_table(ps.ng.tax_most_)[146,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[146,"Species"], "__")[[1]][2]
  1347. tax_table(ps.ng.tax_most_)[147,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Domain"], "__")[[1]][2]
  1348. tax_table(ps.ng.tax_most_)[147,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Phylum"], "__")[[1]][2]
  1349. tax_table(ps.ng.tax_most_)[147,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Class"], "__")[[1]][2]
  1350. tax_table(ps.ng.tax_most_)[147,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Order"], "__")[[1]][2]
  1351. tax_table(ps.ng.tax_most_)[147,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Family"], "__")[[1]][2]
  1352. tax_table(ps.ng.tax_most_)[147,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Genus"], "__")[[1]][2]
  1353. tax_table(ps.ng.tax_most_)[147,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[147,"Species"], "__")[[1]][2]
  1354. tax_table(ps.ng.tax_most_)[148,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Domain"], "__")[[1]][2]
  1355. tax_table(ps.ng.tax_most_)[148,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Phylum"], "__")[[1]][2]
  1356. tax_table(ps.ng.tax_most_)[148,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Class"], "__")[[1]][2]
  1357. tax_table(ps.ng.tax_most_)[148,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Order"], "__")[[1]][2]
  1358. tax_table(ps.ng.tax_most_)[148,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Family"], "__")[[1]][2]
  1359. tax_table(ps.ng.tax_most_)[148,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Genus"], "__")[[1]][2]
  1360. tax_table(ps.ng.tax_most_)[148,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[148,"Species"], "__")[[1]][2]
  1361. tax_table(ps.ng.tax_most_)[149,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Domain"], "__")[[1]][2]
  1362. tax_table(ps.ng.tax_most_)[149,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Phylum"], "__")[[1]][2]
  1363. tax_table(ps.ng.tax_most_)[149,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Class"], "__")[[1]][2]
  1364. tax_table(ps.ng.tax_most_)[149,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Order"], "__")[[1]][2]
  1365. tax_table(ps.ng.tax_most_)[149,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Family"], "__")[[1]][2]
  1366. tax_table(ps.ng.tax_most_)[149,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Genus"], "__")[[1]][2]
  1367. tax_table(ps.ng.tax_most_)[149,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[149,"Species"], "__")[[1]][2]
  1368. tax_table(ps.ng.tax_most_)[150,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Domain"], "__")[[1]][2]
  1369. tax_table(ps.ng.tax_most_)[150,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Phylum"], "__")[[1]][2]
  1370. tax_table(ps.ng.tax_most_)[150,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Class"], "__")[[1]][2]
  1371. tax_table(ps.ng.tax_most_)[150,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Order"], "__")[[1]][2]
  1372. tax_table(ps.ng.tax_most_)[150,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Family"], "__")[[1]][2]
  1373. tax_table(ps.ng.tax_most_)[150,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Genus"], "__")[[1]][2]
  1374. tax_table(ps.ng.tax_most_)[150,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[150,"Species"], "__")[[1]][2]
  1375. tax_table(ps.ng.tax_most_)[151,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Domain"], "__")[[1]][2]
  1376. tax_table(ps.ng.tax_most_)[151,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Phylum"], "__")[[1]][2]
  1377. tax_table(ps.ng.tax_most_)[151,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Class"], "__")[[1]][2]
  1378. tax_table(ps.ng.tax_most_)[151,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Order"], "__")[[1]][2]
  1379. tax_table(ps.ng.tax_most_)[151,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Family"], "__")[[1]][2]
  1380. tax_table(ps.ng.tax_most_)[151,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Genus"], "__")[[1]][2]
  1381. tax_table(ps.ng.tax_most_)[151,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[151,"Species"], "__")[[1]][2]
  1382. tax_table(ps.ng.tax_most_)[152,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Domain"], "__")[[1]][2]
  1383. tax_table(ps.ng.tax_most_)[152,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Phylum"], "__")[[1]][2]
  1384. tax_table(ps.ng.tax_most_)[152,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Class"], "__")[[1]][2]
  1385. tax_table(ps.ng.tax_most_)[152,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Order"], "__")[[1]][2]
  1386. tax_table(ps.ng.tax_most_)[152,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Family"], "__")[[1]][2]
  1387. tax_table(ps.ng.tax_most_)[152,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Genus"], "__")[[1]][2]
  1388. tax_table(ps.ng.tax_most_)[152,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[152,"Species"], "__")[[1]][2]
  1389. tax_table(ps.ng.tax_most_)[153,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Domain"], "__")[[1]][2]
  1390. tax_table(ps.ng.tax_most_)[153,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Phylum"], "__")[[1]][2]
  1391. tax_table(ps.ng.tax_most_)[153,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Class"], "__")[[1]][2]
  1392. tax_table(ps.ng.tax_most_)[153,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Order"], "__")[[1]][2]
  1393. tax_table(ps.ng.tax_most_)[153,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Family"], "__")[[1]][2]
  1394. tax_table(ps.ng.tax_most_)[153,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Genus"], "__")[[1]][2]
  1395. tax_table(ps.ng.tax_most_)[153,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[153,"Species"], "__")[[1]][2]
  1396. tax_table(ps.ng.tax_most_)[154,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Domain"], "__")[[1]][2]
  1397. tax_table(ps.ng.tax_most_)[154,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Phylum"], "__")[[1]][2]
  1398. tax_table(ps.ng.tax_most_)[154,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Class"], "__")[[1]][2]
  1399. tax_table(ps.ng.tax_most_)[154,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Order"], "__")[[1]][2]
  1400. tax_table(ps.ng.tax_most_)[154,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Family"], "__")[[1]][2]
  1401. tax_table(ps.ng.tax_most_)[154,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Genus"], "__")[[1]][2]
  1402. tax_table(ps.ng.tax_most_)[154,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[154,"Species"], "__")[[1]][2]
  1403. tax_table(ps.ng.tax_most_)[155,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Domain"], "__")[[1]][2]
  1404. tax_table(ps.ng.tax_most_)[155,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Phylum"], "__")[[1]][2]
  1405. tax_table(ps.ng.tax_most_)[155,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Class"], "__")[[1]][2]
  1406. tax_table(ps.ng.tax_most_)[155,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Order"], "__")[[1]][2]
  1407. tax_table(ps.ng.tax_most_)[155,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Family"], "__")[[1]][2]
  1408. tax_table(ps.ng.tax_most_)[155,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Genus"], "__")[[1]][2]
  1409. tax_table(ps.ng.tax_most_)[155,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[155,"Species"], "__")[[1]][2]
  1410. tax_table(ps.ng.tax_most_)[156,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Domain"], "__")[[1]][2]
  1411. tax_table(ps.ng.tax_most_)[156,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Phylum"], "__")[[1]][2]
  1412. tax_table(ps.ng.tax_most_)[156,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Class"], "__")[[1]][2]
  1413. tax_table(ps.ng.tax_most_)[156,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Order"], "__")[[1]][2]
  1414. tax_table(ps.ng.tax_most_)[156,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Family"], "__")[[1]][2]
  1415. tax_table(ps.ng.tax_most_)[156,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Genus"], "__")[[1]][2]
  1416. tax_table(ps.ng.tax_most_)[156,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[156,"Species"], "__")[[1]][2]
  1417. tax_table(ps.ng.tax_most_)[157,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Domain"], "__")[[1]][2]
  1418. tax_table(ps.ng.tax_most_)[157,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Phylum"], "__")[[1]][2]
  1419. tax_table(ps.ng.tax_most_)[157,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Class"], "__")[[1]][2]
  1420. tax_table(ps.ng.tax_most_)[157,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Order"], "__")[[1]][2]
  1421. tax_table(ps.ng.tax_most_)[157,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Family"], "__")[[1]][2]
  1422. tax_table(ps.ng.tax_most_)[157,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Genus"], "__")[[1]][2]
  1423. tax_table(ps.ng.tax_most_)[157,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[157,"Species"], "__")[[1]][2]
  1424. tax_table(ps.ng.tax_most_)[158,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Domain"], "__")[[1]][2]
  1425. tax_table(ps.ng.tax_most_)[158,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Phylum"], "__")[[1]][2]
  1426. tax_table(ps.ng.tax_most_)[158,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Class"], "__")[[1]][2]
  1427. tax_table(ps.ng.tax_most_)[158,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Order"], "__")[[1]][2]
  1428. tax_table(ps.ng.tax_most_)[158,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Family"], "__")[[1]][2]
  1429. tax_table(ps.ng.tax_most_)[158,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Genus"], "__")[[1]][2]
  1430. tax_table(ps.ng.tax_most_)[158,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[158,"Species"], "__")[[1]][2]
  1431. tax_table(ps.ng.tax_most_)[159,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Domain"], "__")[[1]][2]
  1432. tax_table(ps.ng.tax_most_)[159,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Phylum"], "__")[[1]][2]
  1433. tax_table(ps.ng.tax_most_)[159,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Class"], "__")[[1]][2]
  1434. tax_table(ps.ng.tax_most_)[159,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Order"], "__")[[1]][2]
  1435. tax_table(ps.ng.tax_most_)[159,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Family"], "__")[[1]][2]
  1436. tax_table(ps.ng.tax_most_)[159,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Genus"], "__")[[1]][2]
  1437. tax_table(ps.ng.tax_most_)[159,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[159,"Species"], "__")[[1]][2]
  1438. tax_table(ps.ng.tax_most_)[160,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Domain"], "__")[[1]][2]
  1439. tax_table(ps.ng.tax_most_)[160,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Phylum"], "__")[[1]][2]
  1440. tax_table(ps.ng.tax_most_)[160,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Class"], "__")[[1]][2]
  1441. tax_table(ps.ng.tax_most_)[160,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Order"], "__")[[1]][2]
  1442. tax_table(ps.ng.tax_most_)[160,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Family"], "__")[[1]][2]
  1443. tax_table(ps.ng.tax_most_)[160,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Genus"], "__")[[1]][2]
  1444. tax_table(ps.ng.tax_most_)[160,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[160,"Species"], "__")[[1]][2]
  1445. tax_table(ps.ng.tax_most_)[161,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Domain"], "__")[[1]][2]
  1446. tax_table(ps.ng.tax_most_)[161,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Phylum"], "__")[[1]][2]
  1447. tax_table(ps.ng.tax_most_)[161,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Class"], "__")[[1]][2]
  1448. tax_table(ps.ng.tax_most_)[161,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Order"], "__")[[1]][2]
  1449. tax_table(ps.ng.tax_most_)[161,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Family"], "__")[[1]][2]
  1450. tax_table(ps.ng.tax_most_)[161,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Genus"], "__")[[1]][2]
  1451. tax_table(ps.ng.tax_most_)[161,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[161,"Species"], "__")[[1]][2]
  1452. tax_table(ps.ng.tax_most_)[162,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Domain"], "__")[[1]][2]
  1453. tax_table(ps.ng.tax_most_)[162,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Phylum"], "__")[[1]][2]
  1454. tax_table(ps.ng.tax_most_)[162,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Class"], "__")[[1]][2]
  1455. tax_table(ps.ng.tax_most_)[162,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Order"], "__")[[1]][2]
  1456. tax_table(ps.ng.tax_most_)[162,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Family"], "__")[[1]][2]
  1457. tax_table(ps.ng.tax_most_)[162,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Genus"], "__")[[1]][2]
  1458. tax_table(ps.ng.tax_most_)[162,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[162,"Species"], "__")[[1]][2]
  1459. tax_table(ps.ng.tax_most_)[163,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Domain"], "__")[[1]][2]
  1460. tax_table(ps.ng.tax_most_)[163,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Phylum"], "__")[[1]][2]
  1461. tax_table(ps.ng.tax_most_)[163,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Class"], "__")[[1]][2]
  1462. tax_table(ps.ng.tax_most_)[163,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Order"], "__")[[1]][2]
  1463. tax_table(ps.ng.tax_most_)[163,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Family"], "__")[[1]][2]
  1464. tax_table(ps.ng.tax_most_)[163,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Genus"], "__")[[1]][2]
  1465. tax_table(ps.ng.tax_most_)[163,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[163,"Species"], "__")[[1]][2]
  1466. tax_table(ps.ng.tax_most_)[164,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Domain"], "__")[[1]][2]
  1467. tax_table(ps.ng.tax_most_)[164,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Phylum"], "__")[[1]][2]
  1468. tax_table(ps.ng.tax_most_)[164,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Class"], "__")[[1]][2]
  1469. tax_table(ps.ng.tax_most_)[164,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Order"], "__")[[1]][2]
  1470. tax_table(ps.ng.tax_most_)[164,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Family"], "__")[[1]][2]
  1471. tax_table(ps.ng.tax_most_)[164,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Genus"], "__")[[1]][2]
  1472. tax_table(ps.ng.tax_most_)[164,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[164,"Species"], "__")[[1]][2]
  1473. tax_table(ps.ng.tax_most_)[165,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Domain"], "__")[[1]][2]
  1474. tax_table(ps.ng.tax_most_)[165,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Phylum"], "__")[[1]][2]
  1475. tax_table(ps.ng.tax_most_)[165,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Class"], "__")[[1]][2]
  1476. tax_table(ps.ng.tax_most_)[165,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Order"], "__")[[1]][2]
  1477. tax_table(ps.ng.tax_most_)[165,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Family"], "__")[[1]][2]
  1478. tax_table(ps.ng.tax_most_)[165,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Genus"], "__")[[1]][2]
  1479. tax_table(ps.ng.tax_most_)[165,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[165,"Species"], "__")[[1]][2]
  1480. tax_table(ps.ng.tax_most_)[166,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Domain"], "__")[[1]][2]
  1481. tax_table(ps.ng.tax_most_)[166,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Phylum"], "__")[[1]][2]
  1482. tax_table(ps.ng.tax_most_)[166,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Class"], "__")[[1]][2]
  1483. tax_table(ps.ng.tax_most_)[166,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Order"], "__")[[1]][2]
  1484. tax_table(ps.ng.tax_most_)[166,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Family"], "__")[[1]][2]
  1485. tax_table(ps.ng.tax_most_)[166,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Genus"], "__")[[1]][2]
  1486. tax_table(ps.ng.tax_most_)[166,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[166,"Species"], "__")[[1]][2]
  1487. tax_table(ps.ng.tax_most_)[167,"Domain"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Domain"], "__")[[1]][2]
  1488. tax_table(ps.ng.tax_most_)[167,"Phylum"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Phylum"], "__")[[1]][2]
  1489. tax_table(ps.ng.tax_most_)[167,"Class"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Class"], "__")[[1]][2]
  1490. tax_table(ps.ng.tax_most_)[167,"Order"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Order"], "__")[[1]][2]
  1491. tax_table(ps.ng.tax_most_)[167,"Family"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Family"], "__")[[1]][2]
  1492. tax_table(ps.ng.tax_most_)[167,"Genus"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Genus"], "__")[[1]][2]
  1493. tax_table(ps.ng.tax_most_)[167,"Species"] <- str_split(tax_table(ps.ng.tax_most_)[167,"Species"], "__")[[1]][2]
  1494. ```
  1495. ```{r, echo=TRUE, warning=FALSE}
  1496. #aes(color="Phylum", fill="Phylum") --> aes()
  1497. #ggplot(data=data, aes(x=Sample, y=Abundance, fill=Phylum))
  1498. plot_bar(ps.ng.tax_most_, fill="Phylum") + geom_bar(aes(), stat="identity", position="stack") +
  1499. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=2)) #6 instead of theme.size
  1500. ```
  1501. ```{r, echo=FALSE, warning=FALSE}
  1502. #png("abc.png")
  1503. #knitr::include_graphics("./Phyloseq_files/figure-html/unnamed-chunk-7-1.png")
  1504. #dev.off()
  1505. ```
  1506. \pagebreak
  1507. Regroup together pre vs post stroke samples and normalize number of reads in each group using median sequencing depth.
  1508. ```{r, echo=TRUE, warning=FALSE}
  1509. ps.ng.tax_most_pre_post_stroke <- merge_samples(ps.ng.tax_most_, "pre_post_stroke")
  1510. ps.ng.tax_most_pre_post_stroke_ = transform_sample_counts(ps.ng.tax_most_pre_post_stroke, function(x) x / sum(x))
  1511. #plot_bar(ps.ng.tax_most_SampleType_, fill = "Phylum") + geom_bar(aes(color=Phylum, fill=Phylum), stat="identity", position="stack")
  1512. plot_bar(ps.ng.tax_most_pre_post_stroke_, fill="Phylum") + geom_bar(aes(), stat="identity", position="stack") +
  1513. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = theme.size, colour="black"))
  1514. ```
  1515. \pagebreak
  1516. Use color according to phylum. Do separate panels Stroke and Sex_age.
  1517. ```{r, echo=TRUE, warning=FALSE}
  1518. ps.ng.tax_most_copied <- data.table::copy(ps.ng.tax_most_)
  1519. #FITTING6: regulate the bar height if it has replicates: 5+6+6+8+4+8+6+7=25+25=50
  1520. otu_table(ps.ng.tax_most_)[,c("1")] <- otu_table(ps.ng.tax_most_)[,c("1")]/5
  1521. otu_table(ps.ng.tax_most_)[,c("2")] <- otu_table(ps.ng.tax_most_)[,c("2")]/5
  1522. otu_table(ps.ng.tax_most_)[,c("5")] <- otu_table(ps.ng.tax_most_)[,c("5")]/5
  1523. otu_table(ps.ng.tax_most_)[,c("6")] <- otu_table(ps.ng.tax_most_)[,c("6")]/5
  1524. otu_table(ps.ng.tax_most_)[,c("7")] <- otu_table(ps.ng.tax_most_)[,c("7")]/5
  1525. otu_table(ps.ng.tax_most_)[,c("8")] <- otu_table(ps.ng.tax_most_)[,c("8")]/6
  1526. otu_table(ps.ng.tax_most_)[,c("9")] <- otu_table(ps.ng.tax_most_)[,c("9")]/6
  1527. otu_table(ps.ng.tax_most_)[,c("10")] <- otu_table(ps.ng.tax_most_)[,c("10")]/6
  1528. otu_table(ps.ng.tax_most_)[,c("12")] <- otu_table(ps.ng.tax_most_)[,c("12")]/6
  1529. otu_table(ps.ng.tax_most_)[,c("13")] <- otu_table(ps.ng.tax_most_)[,c("13")]/6
  1530. otu_table(ps.ng.tax_most_)[,c("14")] <- otu_table(ps.ng.tax_most_)[,c("14")]/6
  1531. otu_table(ps.ng.tax_most_)[,c("15")] <- otu_table(ps.ng.tax_most_)[,c("15")]/6
  1532. otu_table(ps.ng.tax_most_)[,c("16")] <- otu_table(ps.ng.tax_most_)[,c("16")]/6
  1533. otu_table(ps.ng.tax_most_)[,c("17")] <- otu_table(ps.ng.tax_most_)[,c("17")]/6
  1534. otu_table(ps.ng.tax_most_)[,c("18")] <- otu_table(ps.ng.tax_most_)[,c("18")]/6
  1535. otu_table(ps.ng.tax_most_)[,c("19")] <- otu_table(ps.ng.tax_most_)[,c("19")]/6
  1536. otu_table(ps.ng.tax_most_)[,c("20")] <- otu_table(ps.ng.tax_most_)[,c("20")]/6
  1537. otu_table(ps.ng.tax_most_)[,c("21")] <- otu_table(ps.ng.tax_most_)[,c("21")]/8
  1538. otu_table(ps.ng.tax_most_)[,c("22")] <- otu_table(ps.ng.tax_most_)[,c("22")]/8
  1539. otu_table(ps.ng.tax_most_)[,c("23")] <- otu_table(ps.ng.tax_most_)[,c("23")]/8
  1540. otu_table(ps.ng.tax_most_)[,c("24")] <- otu_table(ps.ng.tax_most_)[,c("24")]/8
  1541. otu_table(ps.ng.tax_most_)[,c("25")] <- otu_table(ps.ng.tax_most_)[,c("25")]/8
  1542. otu_table(ps.ng.tax_most_)[,c("26")] <- otu_table(ps.ng.tax_most_)[,c("26")]/8
  1543. otu_table(ps.ng.tax_most_)[,c("27")] <- otu_table(ps.ng.tax_most_)[,c("27")]/8
  1544. otu_table(ps.ng.tax_most_)[,c("28")] <- otu_table(ps.ng.tax_most_)[,c("28")]/8
  1545. otu_table(ps.ng.tax_most_)[,c("29")] <- otu_table(ps.ng.tax_most_)[,c("29")]/4
  1546. otu_table(ps.ng.tax_most_)[,c("30")] <- otu_table(ps.ng.tax_most_)[,c("30")]/4
  1547. otu_table(ps.ng.tax_most_)[,c("31")] <- otu_table(ps.ng.tax_most_)[,c("31")]/4
  1548. otu_table(ps.ng.tax_most_)[,c("32")] <- otu_table(ps.ng.tax_most_)[,c("32")]/4
  1549. otu_table(ps.ng.tax_most_)[,c("33")] <- otu_table(ps.ng.tax_most_)[,c("33")]/8
  1550. otu_table(ps.ng.tax_most_)[,c("34")] <- otu_table(ps.ng.tax_most_)[,c("34")]/8
  1551. otu_table(ps.ng.tax_most_)[,c("35")] <- otu_table(ps.ng.tax_most_)[,c("35")]/8
  1552. otu_table(ps.ng.tax_most_)[,c("36")] <- otu_table(ps.ng.tax_most_)[,c("36")]/8
  1553. otu_table(ps.ng.tax_most_)[,c("37")] <- otu_table(ps.ng.tax_most_)[,c("37")]/8
  1554. otu_table(ps.ng.tax_most_)[,c("38")] <- otu_table(ps.ng.tax_most_)[,c("38")]/8
  1555. otu_table(ps.ng.tax_most_)[,c("39")] <- otu_table(ps.ng.tax_most_)[,c("39")]/8
  1556. otu_table(ps.ng.tax_most_)[,c("51")] <- otu_table(ps.ng.tax_most_)[,c("51")]/8
  1557. otu_table(ps.ng.tax_most_)[,c("40")] <- otu_table(ps.ng.tax_most_)[,c("40")]/6
  1558. otu_table(ps.ng.tax_most_)[,c("41")] <- otu_table(ps.ng.tax_most_)[,c("41")]/6
  1559. otu_table(ps.ng.tax_most_)[,c("42")] <- otu_table(ps.ng.tax_most_)[,c("42")]/6
  1560. otu_table(ps.ng.tax_most_)[,c("43")] <- otu_table(ps.ng.tax_most_)[,c("43")]/6
  1561. otu_table(ps.ng.tax_most_)[,c("44")] <- otu_table(ps.ng.tax_most_)[,c("44")]/6
  1562. otu_table(ps.ng.tax_most_)[,c("46")] <- otu_table(ps.ng.tax_most_)[,c("46")]/6
  1563. otu_table(ps.ng.tax_most_)[,c("47")] <- otu_table(ps.ng.tax_most_)[,c("47")]/7
  1564. otu_table(ps.ng.tax_most_)[,c("48")] <- otu_table(ps.ng.tax_most_)[,c("48")]/7
  1565. otu_table(ps.ng.tax_most_)[,c("49")] <- otu_table(ps.ng.tax_most_)[,c("49")]/7
  1566. otu_table(ps.ng.tax_most_)[,c("50")] <- otu_table(ps.ng.tax_most_)[,c("50")]/7
  1567. otu_table(ps.ng.tax_most_)[,c("52")] <- otu_table(ps.ng.tax_most_)[,c("52")]/7
  1568. otu_table(ps.ng.tax_most_)[,c("53")] <- otu_table(ps.ng.tax_most_)[,c("53")]/7
  1569. otu_table(ps.ng.tax_most_)[,c("55")] <- otu_table(ps.ng.tax_most_)[,c("55")]/7
  1570. #plot_bar(ps.ng.tax_most_swab_, x="Phylum", fill = "Phylum", facet_grid = Patient~RoundDay) + geom_bar(aes(color=Phylum, fill=Phylum), stat="identity", position="stack") + theme(axis.text = element_text(size = theme.size, colour="black"))
  1571. plot_bar(ps.ng.tax_most_, x="Phylum", fill="Phylum", facet_grid = pre_post_stroke~Sex_age) + geom_bar(aes(), stat="identity", position="stack") +
  1572. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black"), axis.text.x=element_blank(), axis.ticks=element_blank()) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=2))
  1573. ```
  1574. ```{r, echo=FALSE, warning=FALSE}
  1575. #knitr::include_graphics("./Phyloseq_files/figure-html/unnamed-chunk-10-1.png")
  1576. #> tax_table(carbom)
  1577. #Taxonomy Table: [205 taxa by 7 taxonomic ranks]:
  1578. # Domain Supergroup Division Class
  1579. #Otu001 "Eukaryota" "Archaeplastida" "Chlorophyta" "Mamiellophyceae"
  1580. # Order Family Genus
  1581. #Otu001 "Mamiellales" "Bathycoccaceae" "Ostreococcus"
  1582. #sample_data(ps.ng.tax)
  1583. ```
  1584. ## Bar plots in class level
  1585. ```{r, echo=TRUE, warning=FALSE}
  1586. plot_bar(ps.ng.tax_most_copied, fill="Class") + geom_bar(aes(), stat="identity", position="stack") +
  1587. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=3))
  1588. ```
  1589. Regroup together pre vs post stroke samples and normalize number of reads in each group using median sequencing depth.
  1590. ```{r, echo=TRUE, warning=FALSE}
  1591. plot_bar(ps.ng.tax_most_pre_post_stroke_, fill="Class") + geom_bar(aes(), stat="identity", position="stack") +
  1592. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = theme.size, colour="black"))
  1593. ```
  1594. \pagebreak
  1595. Use color according to class. Do separate panels Stroke and Sex_age.
  1596. ```{r, echo=TRUE, warning=FALSE}
  1597. #-- If existing replicates, to be processed as follows --
  1598. plot_bar(ps.ng.tax_most_, x="Class", fill="Class", facet_grid = pre_post_stroke~Sex_age) + geom_bar(aes(), stat="identity", position="stack") +
  1599. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black"), axis.text.x=element_blank(), axis.ticks=element_blank()) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=3))
  1600. ```
  1601. ## Bar plots in order level
  1602. ```{r, echo=TRUE, warning=FALSE}
  1603. plot_bar(ps.ng.tax_most_copied, fill="Order") + geom_bar(aes(), stat="identity", position="stack") +
  1604. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=4))
  1605. ```
  1606. Regroup together pre vs post stroke and normalize number of reads in each group using median sequencing depth.
  1607. ```{r, echo=TRUE, warning=FALSE}
  1608. plot_bar(ps.ng.tax_most_pre_post_stroke_, fill="Order") + geom_bar(aes(), stat="identity", position="stack") +
  1609. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = theme.size, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=4))
  1610. ```
  1611. \pagebreak
  1612. Use color according to order. Do separate panels Stroke and Sex_age.
  1613. ```{r, echo=TRUE, warning=FALSE}
  1614. #FITTING7: regulate the bar height if it has replicates
  1615. plot_bar(ps.ng.tax_most_, x="Order", fill="Order", facet_grid = pre_post_stroke~Sex_age) + geom_bar(aes(), stat="identity", position="stack") +
  1616. scale_fill_manual(values = c("darkblue", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "lightskyblue", "darkgreen", "deeppink", "khaki2", "firebrick", "brown1", "darkorange1", "cyan1", "royalblue4", "darksalmon", "darkblue","royalblue4", "dodgerblue3", "steelblue1", "lightskyblue", "darkseagreen", "darkgoldenrod1", "darkseagreen", "darkorchid", "darkolivegreen1", "brown1", "darkorange1", "cyan1", "darkgrey")) + theme(axis.text = element_text(size = 5, colour="black"), axis.text.x=element_blank(), axis.ticks=element_blank()) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=4))
  1617. ```
  1618. ## Bar plots in family level
  1619. ```{r, echo=TRUE, warning=FALSE}
  1620. plot_bar(ps.ng.tax_most_copied, fill="Family") + geom_bar(aes(), stat="identity", position="stack") +
  1621. scale_fill_manual(values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#FFFFFF", "#FFFF00", "#00FFFF", "#FFA500", "#00FF00", "#808080", "#FF00FF", "#800080", "#FDD017", "#0000A0", "#3BB9FF", "#008000", "#800000", "#ADD8E6", "#F778A1", "#800517", "#736F6E", "#F52887", "#C11B17", "#5CB3FF", "#A52A2A", "#FF8040", "#2B60DE", "#736AFF", "#1589FF", "#98AFC7", "#8D38C9", "#307D7E", "#F6358A", "#151B54", "#6D7B8D", "#FDEEF4", "#FF0080", "#F88017", "#2554C7", "#FFF8C6", "#D4A017", "#306EFF", "#151B8D", "#9E7BFF", "#EAC117", "#E0FFFF", "#15317E", "#6C2DC7", "#FBB917", "#FCDFFF", "#15317E", "#254117", "#FAAFBE", "#357EC7")) + theme(axis.text = element_text(size = 5, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=8))
  1622. ```
  1623. Regroup together pre vs post stroke samples and normalize number of reads in each group using median sequencing depth.
  1624. ```{r, echo=TRUE, warning=FALSE}
  1625. plot_bar(ps.ng.tax_most_pre_post_stroke_, fill="Family") + geom_bar(aes(), stat="identity", position="stack") +
  1626. scale_fill_manual(values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#FFFFFF", "#FFFF00", "#00FFFF", "#FFA500", "#00FF00", "#808080", "#FF00FF", "#800080", "#FDD017", "#0000A0", "#3BB9FF", "#008000", "#800000", "#ADD8E6", "#F778A1", "#800517", "#736F6E", "#F52887", "#C11B17", "#5CB3FF", "#A52A2A", "#FF8040", "#2B60DE", "#736AFF", "#1589FF", "#98AFC7", "#8D38C9", "#307D7E", "#F6358A", "#151B54", "#6D7B8D", "#FDEEF4", "#FF0080", "#F88017", "#2554C7", "#FFF8C6", "#D4A017", "#306EFF", "#151B8D", "#9E7BFF", "#EAC117", "#E0FFFF", "#15317E", "#6C2DC7", "#FBB917", "#FCDFFF", "#15317E", "#254117", "#FAAFBE", "#357EC7")) + theme(axis.text = element_text(size = theme.size, colour="black")) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=8))
  1627. ```
  1628. \pagebreak
  1629. Use color according to family. Do separate panels Stroke and Sex_age.
  1630. ```{r, echo=TRUE, warning=FALSE}
  1631. #-- If existing replicates, to be processed as follows --
  1632. plot_bar(ps.ng.tax_most_, x="Family", fill="Family", facet_grid = pre_post_stroke~Sex_age) + geom_bar(aes(), stat="identity", position="stack") +
  1633. scale_fill_manual(values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#FFFFFF", "#FFFF00", "#00FFFF", "#FFA500", "#00FF00", "#808080", "#FF00FF", "#800080", "#FDD017", "#0000A0", "#3BB9FF", "#008000", "#800000", "#ADD8E6", "#F778A1", "#800517", "#736F6E", "#F52887", "#C11B17", "#5CB3FF", "#A52A2A", "#FF8040", "#2B60DE", "#736AFF", "#1589FF", "#98AFC7", "#8D38C9", "#307D7E", "#F6358A", "#151B54", "#6D7B8D", "#FDEEF4", "#FF0080", "#F88017", "#2554C7", "#FFF8C6", "#D4A017", "#306EFF", "#151B8D", "#9E7BFF", "#EAC117", "#E0FFFF", "#15317E", "#6C2DC7", "#FBB917", "#FCDFFF", "#15317E", "#254117", "#FAAFBE", "#357EC7")) + theme(axis.text = element_text(size = 5, colour="black"), axis.text.x=element_blank(), axis.ticks=element_blank()) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=8))
  1634. ```
  1635. ```{r, echo=FALSE, warning=FALSE}
  1636. #MOVE_FROM_ABOVE: ## Bar plots in genus level
  1637. #MOVE_FROM_ABOVE: Regroup together pre vs post stroke samples and normalize number of reads in each group using median sequencing depth.
  1638. #plot_bar(ps.ng.tax_most_pre_post_stroke_, fill="Genus") + geom_bar(aes(), stat="identity", position="stack") +
  1639. #scale_fill_manual(values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#FFFFFF", "#FFFF00", "#00FFFF", "#FFA500", "#00FF00", "#808080", "#FF00FF", "#800080", "#FDD017", "#0000A0", "#3BB9FF", "#008000", "#800000", "#ADD8E6", "#F778A1", "#800517", "#736F6E", "#F52887", "#C11B17", "#5CB3FF", "#A52A2A", "#FF8040", "#2B60DE", "#736AFF", "#1589FF", "#98AFC7", "#8D38C9", "#307D7E", "#F6358A", "#151B54", "#6D7B8D", "#FDEEF4", "#FF0080", "#F88017", "#2554C7", "#FFF8C6", "#D4A017", "#306EFF", "#151B8D", "#9E7BFF", "#EAC117", "#E0FFFF", "#15317E", "#6C2DC7", "#FBB917", "#FCDFFF", "#15317E", "#254117", "#FAAFBE", "#357EC7")) + theme(axis.text = element_text(size = theme.size, colour="black")) + theme(legend.position="bottom")
  1640. ```
  1641. \pagebreak
  1642. ```{r, echo=FALSE, warning=FALSE}
  1643. #MOVE_FROM_ABOVE: Use color according to genus. Do separate panels Stroke and Sex_age.
  1644. ##-- If existing replicates, to be processed as follows --
  1645. #plot_bar(ps.ng.tax_most_, x="Genus", fill="Genus", facet_grid = pre_post_stroke~Sex_age) + geom_bar(aes(), stat="identity", position="stack") +
  1646. #scale_fill_manual(values = c("#FF0000", "#000000", "#0000FF", "#C0C0C0", "#FFFFFF", "#FFFF00", "#00FFFF", "#FFA500", "#00FF00", "#808080", "#FF00FF", "#800080", "#FDD017", "#0000A0", "#3BB9FF", "#008000", "#800000", "#ADD8E6", "#F778A1", "#800517", "#736F6E", "#F52887", "#C11B17", "#5CB3FF", "#A52A2A", "#FF8040", "#2B60DE", "#736AFF", "#1589FF", "#98AFC7", "#8D38C9", "#307D7E", "#F6358A", "#151B54", "#6D7B8D", "#FDEEF4", "#FF0080", "#F88017", "#2554C7", "#FFF8C6", "#D4A017", "#306EFF", "#151B8D", "#9E7BFF", "#EAC117", "#E0FFFF", "#15317E", "#6C2DC7", "#FBB917", "#FCDFFF", "#15317E", "#254117", "#FAAFBE", "#357EC7")) + theme(axis.text = element_text(size = 6, colour="black"), axis.text.x=element_blank(), axis.ticks=element_blank()) + theme(legend.position="bottom") + guides(fill=guide_legend(nrow=18))
  1647. ```
  1648. \pagebreak
  1649. # Alpha diversity
  1650. Plot Chao1 richness estimator, Observed OTUs, Shannon index, and Phylogenetic diversity.
  1651. Regroup together samples from the same group.
  1652. ```{r, echo=FALSE, warning=FALSE}
  1653. # using rarefied data
  1654. #FITTING2: CONSOLE:
  1655. #gunzip table_even4753.biom.gz
  1656. #alpha_diversity.py -i table_even42369.biom --metrics chao1,observed_otus,shannon,PD_whole_tree -o adiv_even.txt -t ../clustering/rep_set.tre
  1657. #gunzip table_even4753.biom.gz
  1658. #alpha_diversity.py -i table_even4753.biom --metrics chao1,observed_otus,shannon,PD_whole_tree -o adiv_even.txt -t ../clustering_stool/rep_set.tre
  1659. #gunzip table_even4753.biom.gz
  1660. #alpha_diversity.py -i table_even4753.biom --metrics chao1,observed_otus,shannon,PD_whole_tree -o adiv_even.txt -t ../clustering_swab/rep_set.tre
  1661. ```
  1662. ```{r, echo=TRUE, warning=FALSE}
  1663. hmp.div_qiime <- read.csv("adiv_even.txt", sep="\t")
  1664. colnames(hmp.div_qiime) <- c("sam_name", "chao1", "observed_otus", "shannon", "PD_whole_tree")
  1665. row.names(hmp.div_qiime) <- hmp.div_qiime$sam_name
  1666. div.df <- merge(hmp.div_qiime, hmp.meta, by = "sam_name")
  1667. div.df2 <- div.df[, c("Group", "chao1", "shannon", "observed_otus", "PD_whole_tree")]
  1668. colnames(div.df2) <- c("Group", "Chao-1", "Shannon", "OTU", "Phylogenetic Diversity")
  1669. #colnames(div.df2)
  1670. options(max.print=999999)
  1671. #27 H47 830.5000 5.008482 319 10.60177
  1672. #FITTING4: if occuring "Computation failed in `stat_signif()`:not enough 'y' observations"
  1673. #means: the patient H47 contains only one sample, it should be removed for the statistical p-values calculations.
  1674. #delete H47(1)
  1675. #div.df2 <- div.df2[-c(3), ]
  1676. #div.df2 <- div.df2[-c(55,54, 45,40,39,27,26,25,1), ]
  1677. knitr::kable(div.df2) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1678. #https://uc-r.github.io/t_test
  1679. #We can perform the test with t.test and transform our data and we can also perform the nonparametric test with the wilcox.test function.
  1680. stat.test.Shannon <- compare_means(
  1681. Shannon ~ Group, data = div.df2,
  1682. method = "t.test"
  1683. )
  1684. knitr::kable(stat.test.Shannon) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1685. div_df_melt <- reshape2::melt(div.df2)
  1686. #head(div_df_melt)
  1687. #https://plot.ly/r/box-plots/#horizontal-boxplot
  1688. #http://www.sthda.com/english/wiki/print.php?id=177
  1689. #https://rpkgs.datanovia.com/ggpubr/reference/as_ggplot.html
  1690. #http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/82-ggplot2-easy-way-to-change-graphical-parameters/
  1691. #https://plot.ly/r/box-plots/#horizontal-boxplot
  1692. #library("gridExtra")
  1693. #par(mfrow=c(4,1))
  1694. p <- ggboxplot(div_df_melt, x = "Group", y = "value",
  1695. facet.by = "variable",
  1696. scales = "free",
  1697. width = 0.5,
  1698. fill = "gray", legend= "right")
  1699. #ggpar(p, xlab = FALSE, ylab = FALSE)
  1700. lev <- levels(factor(div_df_melt$Group)) # get the variables
  1701. #FITTING4: delete H47(1) in lev
  1702. #lev <- lev[-c(3)]
  1703. # make a pairwise list that we want to compare.
  1704. #my_stat_compare_means
  1705. #https://stackoverflow.com/questions/47839988/indicating-significance-with-ggplot2-in-a-boxplot-with-multiple-groups
  1706. L.pairs <- combn(seq_along(lev), 2, simplify = FALSE, FUN = function(i) lev[i]) #%>% filter(p.signif != "ns")
  1707. my_stat_compare_means <- function (mapping = NULL, data = NULL, method = NULL, paired = FALSE,
  1708. method.args = list(), ref.group = NULL, comparisons = NULL,
  1709. hide.ns = FALSE, label.sep = ", ", label = NULL, label.x.npc = "left",
  1710. label.y.npc = "top", label.x = NULL, label.y = NULL, tip.length = 0.03,
  1711. symnum.args = list(), geom = "text", position = "identity",
  1712. na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ...)
  1713. {
  1714. if (!is.null(comparisons)) {
  1715. method.info <- ggpubr:::.method_info(method)
  1716. method <- method.info$method
  1717. method.args <- ggpubr:::.add_item(method.args, paired = paired)
  1718. if (method == "wilcox.test")
  1719. method.args$exact <- FALSE
  1720. pms <- list(...)
  1721. size <- ifelse(is.null(pms$size), 0.3, pms$size)
  1722. color <- ifelse(is.null(pms$color), "black", pms$color)
  1723. map_signif_level <- FALSE
  1724. if (is.null(label))
  1725. label <- "p.format"
  1726. if (ggpubr:::.is_p.signif_in_mapping(mapping) | (label %in% "p.signif")) {
  1727. if (ggpubr:::.is_empty(symnum.args)) {
  1728. map_signif_level <- c(`****` = 1e-04, `***` = 0.001,
  1729. `**` = 0.01, `*` = 0.05, ns = 1)
  1730. } else {
  1731. map_signif_level <- symnum.args
  1732. }
  1733. if (hide.ns)
  1734. names(map_signif_level)[5] <- " "
  1735. }
  1736. step_increase <- ifelse(is.null(label.y), 0.12, 0)
  1737. ggsignif::geom_signif(comparisons = comparisons, y_position = label.y,
  1738. test = method, test.args = method.args, step_increase = step_increase,
  1739. size = size, color = color, map_signif_level = map_signif_level,
  1740. tip_length = tip.length, data = data)
  1741. } else {
  1742. mapping <- ggpubr:::.update_mapping(mapping, label)
  1743. layer(stat = StatCompareMeans, data = data, mapping = mapping,
  1744. geom = geom, position = position, show.legend = show.legend,
  1745. inherit.aes = inherit.aes, params = list(label.x.npc = label.x.npc,
  1746. label.y.npc = label.y.npc, label.x = label.x,
  1747. label.y = label.y, label.sep = label.sep, method = method,
  1748. method.args = method.args, paired = paired, ref.group = ref.group,
  1749. symnum.args = symnum.args, hide.ns = hide.ns,
  1750. na.rm = na.rm, ...))
  1751. }
  1752. }
  1753. p2 <- p +
  1754. stat_compare_means(
  1755. method="t.test",
  1756. #comparisons = L.pairs, # L.pairs
  1757. comparisons = list(c("Group1", "Group2"), c("Group1", "Group3"), c("Group1", "Group4"), c("Group1", "Group6"), c("Group1", "Group8"), c("Group2", "Group5"),c("Group4", "Group5"),c("Group4", "Group6"),c("Group4", "Group7"),c("Group6", "Group7")),
  1758. label = "p.signif",
  1759. symnum.args <- list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1), symbols = c("****", "***", "**", "*", "ns")),
  1760. #symnum.args <- list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05), symbols = c("****", "***", "**", "*")),
  1761. )
  1762. #stat_pvalue_manual
  1763. #print(p2)
  1764. #https://stackoverflow.com/questions/20500706/saving-multiple-ggplots-from-ls-into-one-and-separate-files-in-r
  1765. #FITTING3: mkdir figures
  1766. ggsave("./figures/alpha_diversity_Group.png", device="png", height = 10, width = 12)
  1767. ggsave("./figures/alpha_diversity_Group.svg", device="svg", height = 10, width = 12)
  1768. p3 <- p +
  1769. stat_compare_means(
  1770. method="t.test",
  1771. #comparisons = L.pairs, # L.pairs
  1772. comparisons = list(c("Group2", "Group4"), c("Group2", "Group6"), c("Group4", "Group8"), c("Group6", "Group8")),
  1773. label = "p.signif",
  1774. symnum.args <- list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05, 1), symbols = c("****", "***", "**", "*", "ns")),
  1775. #symnum.args <- list(cutpoints = c(0, 0.0001, 0.001, 0.01, 0.05), symbols = c("****", "***", "**", "*")),
  1776. )
  1777. #stat_pvalue_manual
  1778. #print(p2)
  1779. #https://stackoverflow.com/questions/20500706/saving-multiple-ggplots-from-ls-into-one-and-separate-files-in-r
  1780. #FITTING3: mkdir figures
  1781. ggsave("./figures/alpha_diversity_Group2.png", device="png", height = 10, width = 12)
  1782. ggsave("./figures/alpha_diversity_Group2.svg", device="svg", height = 10, width = 12)
  1783. ```
  1784. # Selected alpha diversity
  1785. ```{r, echo=TRUE, warning=FALSE, fig.cap="Alpha diversity", out.width = '100%', fig.align= "center"}
  1786. knitr::include_graphics("./figures/alpha_diversity_Group2.png")
  1787. selected_alpha_diversities<-read.csv("selected_alpha_diversities.txt",sep="\t")
  1788. knitr::kable(selected_alpha_diversities) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1789. ```
  1790. # Beta diversity
  1791. ```{r, echo=TRUE, warning=FALSE, fig.cap="Beta diversity", out.width = '100%', fig.align= "center"}
  1792. #file:///home/jhuang/DATA/Data_Marius_16S/core_diversity_e42369/bdiv_even42369_Group/unweighted_unifrac_boxplots/Group_Stats.txt
  1793. beta_diversity_group_stats<-read.csv("unweighted_unifrac_boxplots_Group_Stats.txt",sep="\t")
  1794. knitr::kable(beta_diversity_group_stats) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1795. knitr::include_graphics("./figures/PCoA.png")
  1796. ```
  1797. # Differential abundance analysis
  1798. Differential abundance analysis aims to find the differences in the abundance of each taxa between two groups of samples, assigning a significance value to each comparison.
  1799. ## Group2 vs Group4
  1800. ```{r, echo=TRUE, warning=FALSE}
  1801. library("DESeq2")
  1802. #ALTERNATIVE using ps.ng.tax_most_copied: ps.ng.tax (40594) vs. ps.ng.tax_most_copied (166)
  1803. ps.ng.tax_sel <- ps.ng.tax
  1804. #FITTING5: correct the id of the group members, see FITTING6
  1805. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("8","9","10","12","13","14", "21","22","23","24","25","26","27","28")]
  1806. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1807. diagdds$Group <- relevel(diagdds$Group, "Group4")
  1808. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1809. resultsNames(diagdds)
  1810. res = results(diagdds, cooksCutoff = FALSE)
  1811. alpha = 0.05
  1812. sigtab = res[which(res$padj < alpha), ]
  1813. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1814. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1815. kable(sigtab) %>%
  1816. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1817. #rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied))
  1818. write.xlsx(sigtab, file = "sigtab_Group2_vs_Group4.xlsx")
  1819. #subv %in% v
  1820. ### returns a vector TRUE FALSE
  1821. #is.element(subv, v)
  1822. ### returns a vector TRUE FALSE
  1823. library("ggplot2")
  1824. theme_set(theme_bw())
  1825. scale_fill_discrete <- function(palname = "Set1", ...) {
  1826. scale_fill_brewer(palette = palname, ...)
  1827. }
  1828. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1829. x = sort(x)
  1830. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1831. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1832. x = sort(x)
  1833. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1834. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+
  1835. theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1836. #Error in checkForExperimentalReplicates(object, modelMatrix) :
  1837. # The design matrix has the same number of samples and coefficients to fit,
  1838. # so estimation of dispersion is not possible. Treating samples
  1839. # as replicates was deprecated in v1.20 and no longer supported since v1.22.
  1840. ```
  1841. ## Group2 vs Group6
  1842. ```{r, echo=TRUE, warning=FALSE}
  1843. ps.ng.tax_sel <- ps.ng.tax
  1844. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("8","9","10","12","13","14", "33","34","35","36","37","38","39","51")]
  1845. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1846. diagdds$Group <- relevel(diagdds$Group, "Group6")
  1847. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1848. resultsNames(diagdds)
  1849. res = results(diagdds, cooksCutoff = FALSE)
  1850. alpha = 2.0
  1851. sigtab = res[which(res$padj < alpha), ]
  1852. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1853. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1854. kable(sigtab) %>%
  1855. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1856. library("ggplot2")
  1857. theme_set(theme_bw())
  1858. scale_fill_discrete <- function(palname = "Set1", ...) {
  1859. scale_fill_brewer(palette = palname, ...)
  1860. }
  1861. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1862. x = sort(x)
  1863. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1864. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1865. x = sort(x)
  1866. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1867. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+
  1868. theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1869. ```
  1870. ## Group4 vs Group8
  1871. ```{r, echo=TRUE, warning=FALSE}
  1872. ps.ng.tax_sel <- ps.ng.tax
  1873. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("21","22","23","24","25","26","27","28", "47","48","49","50","52","53","55")]
  1874. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1875. diagdds$Group <- relevel(diagdds$Group, "Group8")
  1876. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1877. resultsNames(diagdds)
  1878. res = results(diagdds, cooksCutoff = FALSE)
  1879. alpha = 0.05
  1880. sigtab = res[which(res$padj < alpha), ]
  1881. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1882. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1883. kable(sigtab) %>%
  1884. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1885. library("ggplot2")
  1886. theme_set(theme_bw())
  1887. scale_fill_discrete <- function(palname = "Set1", ...) {
  1888. scale_fill_brewer(palette = palname, ...)
  1889. }
  1890. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1891. x = sort(x)
  1892. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1893. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1894. x = sort(x)
  1895. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1896. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+
  1897. theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1898. ```
  1899. ## Group6 vs Group8
  1900. ```{r, echo=TRUE, warning=FALSE}
  1901. ps.ng.tax_sel <- ps.ng.tax
  1902. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("33","34","35","36","37","38","39","51", "47","48","49","50","52","53","55")]
  1903. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1904. diagdds$Group <- relevel(diagdds$Group, "Group8")
  1905. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1906. resultsNames(diagdds)
  1907. res = results(diagdds, cooksCutoff = FALSE)
  1908. alpha = 0.05
  1909. sigtab = res[which(res$padj < alpha), ]
  1910. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1911. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1912. kable(sigtab) %>%
  1913. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1914. library("ggplot2")
  1915. theme_set(theme_bw())
  1916. scale_fill_discrete <- function(palname = "Set1", ...) {
  1917. scale_fill_brewer(palette = palname, ...)
  1918. }
  1919. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1920. x = sort(x)
  1921. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1922. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1923. x = sort(x)
  1924. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1925. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+
  1926. theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1927. ```
  1928. ## Group1 vs Group5
  1929. ```{r, echo=TRUE, warning=FALSE}
  1930. ps.ng.tax_sel <- ps.ng.tax
  1931. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("1","2","5","6","7", "29","30","31","32")]
  1932. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1933. diagdds$Group <- relevel(diagdds$Group, "Group5")
  1934. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1935. resultsNames(diagdds)
  1936. res = results(diagdds, cooksCutoff = FALSE)
  1937. alpha = 2.0
  1938. sigtab = res[which(res$padj < alpha), ]
  1939. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1940. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1941. kable(sigtab) %>%
  1942. kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1943. library("ggplot2")
  1944. theme_set(theme_bw())
  1945. scale_fill_discrete <- function(palname = "Set1", ...) {
  1946. scale_fill_brewer(palette = palname, ...)
  1947. }
  1948. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1949. x = sort(x)
  1950. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1951. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1952. x = sort(x)
  1953. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1954. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+
  1955. theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1956. ```
  1957. ## Group4 vs Group8
  1958. ```{r, echo=TRUE, warning=FALSE}
  1959. ps.ng.tax_sel <- ps.ng.tax
  1960. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("21","22","23","24","25","26","27","28", "47","48","49","50","52","53","55")]
  1961. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1962. diagdds$Group <- relevel(diagdds$Group, "Group8")
  1963. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1964. resultsNames(diagdds)
  1965. res = results(diagdds, cooksCutoff = FALSE)
  1966. alpha = 2.0
  1967. sigtab = res[which(res$padj < alpha), ]
  1968. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1969. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1970. kable(sigtab) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1971. library("ggplot2")
  1972. theme_set(theme_bw())
  1973. scale_fill_discrete <- function(palname = "Set1", ...) {
  1974. scale_fill_brewer(palette = palname, ...)
  1975. }
  1976. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  1977. x = sort(x)
  1978. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  1979. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  1980. x = sort(x)
  1981. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  1982. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  1983. ```
  1984. ## Group3 vs Group7
  1985. ```{r, echo=TRUE, warning=FALSE}
  1986. ps.ng.tax_sel <- ps.ng.tax
  1987. otu_table(ps.ng.tax_sel) <- otu_table(ps.ng.tax)[,c("15","16","17","18","19","20", "40","41","42","43","44","46")]
  1988. diagdds = phyloseq_to_deseq2(ps.ng.tax_sel, ~Group)
  1989. diagdds$Group <- relevel(diagdds$Group, "Group7")
  1990. diagdds = DESeq(diagdds, test="Wald", fitType="parametric")
  1991. resultsNames(diagdds)
  1992. res = results(diagdds, cooksCutoff = FALSE)
  1993. alpha = 2.0
  1994. sigtab = res[which(res$padj < alpha), ]
  1995. sigtab = cbind(as(sigtab, "data.frame"), as(tax_table(ps.ng.tax_sel)[rownames(sigtab), ], "matrix"))
  1996. sigtab <- sigtab[rownames(sigtab) %in% rownames(tax_table(ps.ng.tax_most_copied)), ]
  1997. kable(sigtab) %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"))
  1998. library("ggplot2")
  1999. theme_set(theme_bw())
  2000. scale_fill_discrete <- function(palname = "Set1", ...) {
  2001. scale_fill_brewer(palette = palname, ...)
  2002. }
  2003. x = tapply(sigtab$log2FoldChange, sigtab$Order, function(x) max(x))
  2004. x = sort(x)
  2005. sigtab$Order = factor(as.character(sigtab$Order), levels=names(x))
  2006. x = tapply(sigtab$log2FoldChange, sigtab$Family, function(x) max(x))
  2007. x = sort(x)
  2008. sigtab$Family = factor(as.character(sigtab$Family), levels=names(x))
  2009. ggplot(sigtab, aes(x=log2FoldChange, y=Family, color=Order)) + geom_point(aes(size=padj)) + scale_size_continuous(name="padj",range=c(8,4))+theme(axis.text.x = element_text(angle = -25, hjust = 0, vjust=0.5))
  2010. ```

like unlike

点赞本文的读者

还没有人对此文章表态


本文有评论

没有评论

看文章,发评论,不要沉默


© 2023 XGenes.com Impressum