第8章の内容

データの準備

まずは第6章までと同じデータを読み込む

###For chapter 08
phyto_metadata <- readRDS("phyto_metadata.obj")
species_ryuko_data <- readRDS("phyto_ryuko_data.obj")
metadata_ecoplate <- readRDS("metadata_ecopl.obj")
summary_ecoplate <- readRDS("summary_ecopl.obj")
species_richness <- apply(species_ryuko_data > 0, 1, sum) #種数を計算
total_abundance <- apply(species_ryuko_data, 1, sum) #総個体数を計算

エコプレートで使用されている31種類の有機炭素基質の名前リストをベクトルとして用意しておく

substrate_name <- c("Pyruvic-Acid-Methyl-Ester", "Tween-40", "Tween-80","alpha-Cyclodextrin", "Glycogen", "D-Cellobiose","alpha-D-Lactose", "beta-Methyl-D-Glucoside", "D-Xylose", "i-Erythritol", "D-Mannitol","N-Acetyl-D-Glucosamine", "D-Glucosaminic-Acid", "Glucose-1-Phosphate","alpha-Glycerol-Phosphate","D-Galactonic-Acid-gamma-Lactone", "D-Galacturonic-Acid", "2-Hydroxy-Benzoic-Acid", "4-Hydroxy-Benzoic-Acid", "gamma-Hydroxybutyric-Acid", "Itaconic-Acid", "alpha-Ketobutyric-Acid", "D-Malic-Acid", "L-Arginine", "L-Asparagine", "L-Phenylalanine", "L-Serine", "L-Threonine", "Glycyl-L-Glutamic-Acid", "Phenylethyl-amine", "Putrescine")

substrate_jpn <- c("Pyruvic-Acid-Methyl-Ester", "Tween-40", "Tween-80","alpha-Cyclodextrin", "Glycogen", "D-Cellobiose","alpha-D-Lactose", "beta-Methyl-D-Glucoside", "D-Xylose", "i-Erythritol", "D-Mannitol","N-Acetyl-D-Glucosamine", "D-Glucosaminic-Acid", "Glucose-1-Phosphate","alpha-Glycerol-Phosphate","D-Galactonic-Acid-gamma-Lactone", "D-Galacturonic-Acid", "2-Hydroxy-Benzoic-Acid", "4-Hydroxy-Benzoic-Acid", "gamma-Aminobutyric-acid", "Itaconic-Acid", "alpha-Ketobutyric-Acid", "D-Malic-Acid", "L-Arginine", "L-Asparagine", "L-Phenylalanine", "L-Serine", "L-Threonine", "Glycyl-L-Glutamic-Acid", "Phenylethyl-amine", "Putrescine")

パッケージの読み込み

library(rgl)
library(vegan)

8.1 多変量と次元削減

線形回帰の可視化(復習)

エコプレートデータの一部を使う

#散布図の描画
plot(
  s05 ~ s04, data = summary_ecoplate, #モデル式(Y ~ X):エコプレートデータの4番目と5番目の基質に注目
  type = "p", #グラフのタイプの指定, pは散布図
  cex = 3, #データの描画のマークの大きさの指定
  pch = c(1, 5)[as.factor(metadata_ecoplate$treatment)], #処理(treatment)の違いをマークの種類の違いに変換
  xlab = substrate_name[4], #基質4の名前をx軸名にする
  ylab = substrate_name[5], #基質5の名前をy軸名にする
  xlim = c(0, 4), #x軸の描画範囲(ただしこのHTMLでは縦横比aspの指定と両立しない)
  ylim = c(0, 4) #y軸の描画範囲
  #,asp = 1.0  #縦横比の指定(ここでは指定しない)
)
#線形回帰分析
model01 <- lm(s05 ~ s04, data = summary_ecoplate)
#回帰直線の追加
abline(model01, lty = 5)

次元削減の可視化

上の線形回帰に使ったのと同じデータを使う

#散布図
plot(
  s05 ~ s04, data = summary_ecoplate, #モデル式と使うデータフレームの指定
  type = "p", #グラフのタイプの指定, pは散布図
  cex = 3, #グラフ上のマークのサイズ指定
  pch = c(1, 5)[as.factor(metadata_ecoplate$treatment)],#処理(treatment)の違いをマークの種類の違いに指定
  xlab = substrate_name[4], #x軸の名前にベクトルsubstrate_nameの第4要素目を指定
  ylab = substrate_name[5], #y軸の名前にベクトルsubstrate_nameの第5要素目を指定 
  xlim = c(0, 4), #x軸の最小・最大指定
  ylim = c(0, 4)  #y軸の最小・最大指定
  #,asp = 1.0
)
#線形回帰分析
model01 <- lm(s05 ~ s04, data = summary_ecoplate)
#回帰直線の追加
abline(model01, lty = 5) #ltyは線種の指定
#主成分分析
model02 <- summary(capscale(summary_ecoplate[, 4:5] ~ 1, distance = "euclidean"))
#主成分分析の結果から、第1主成分軸の傾きを計算
slope_PC1 <- model02$species[2, 1]/model02$species[1, 1]
#第1主成分軸の切片を計算
intercept_PC1 <- mean(summary_ecoplate$s05) - slope_PC1*mean(summary_ecoplate$s04)
#第1主成分軸の追加
abline(intercept_PC1, slope_PC1)
par(new = T) #次のグラフを重ね合わせる
#観測データの平均値を示す点を追加
plot(
  mean(summary_ecoplate$s04), mean(summary_ecoplate$s05), #平均値の計算
  cex = 3, #グラフのタイプの指定, pは散布図
  pch = 3, #マークの種類の指定
  xlim = c(0, 4), #x軸の最小・最大指定
  ylim = c(0, 4), #y軸の最小・最大指定
  xlab = "", ylab = "" #x軸の名前とy軸の名前を空欄にするため(一つ上のグラフの軸名と文字が重ならないため)、""だけで指定する
  #,asp = 1.0
)

第1主成分軸上に移したデータをグラフ化する(図8.3B)

#グラフの縦軸用にダミーで値ゼロのベクトルを用意
y_dummy <- rep(0, length(summary_ecoplate[, 1]))
#横軸に第1主成分軸のsite score、縦軸0の散布図を描く
plot(
  y_dummy ~ model02$sites[, 1], #モデル式
  pch = c(1,5)[as.factor(metadata_ecoplate$treatment)], #処理(treatment)の違いをマークの種類の違いに指定
  cex = 3,
  xlim = c(-2, 2), ylim = c(-0.5, 0.5),
  xlab = "New axis",
  ylab = ""
)
par(new = T)
#平均値=原点(0, 0)を強調するためにマークを追加
plot(
  0.0, 0.0,
  cex = 3,
  pch = 3,
  xlim = c(-2, 2), ylim = c(-0.5, 0.5),
  xlab = "", ylab = ""
)

次元削減例をもう一つ

3次元空間上で,2次元へと次元削減した平面とベクトルを描画してみる(Rコードを実行すれば別ウィンドウに表示されますが、このHTML上にはあとから画像を埋め込みました

####Plot 3D data####
library(rgl) #rglパッケージを使います
#エコプレートデータの基質4, 5, 6を使って三次元散布図を描く
plot3d(
  x = summary_ecoplate$s04, y = summary_ecoplate$s05, z = summary_ecoplate$s06,
  xlab = substrate_name[4], ylab = substrate_name[5], zlab = substrate_name[6],
  type = "s",
  size = 3,
  col = c(2, 9)[as.factor(metadata_ecoplate$treatment)]
)
#この3次元データに対して主成分分析を実行
model03 <- summary(capscale(summary_ecoplate[,4:6] ~ 1, distance = "euclidean"))
#PC1-PC2 plane can be defined by the orthogonal vector (i.e, PC3)
#第1主成分軸ー第2主成分軸が張る平面は,この平面と直交するベクトル(すなわち第3主成分軸)で定義可能
PC1_coeff <- model03$species[1:3, 1]
PC2_coeff <- model03$species[1:3, 2]
PC3_coeff <- model03$species[1:3, 3]
#観測データの平均値を計算
new_origin <- c(mean(summary_ecoplate$s04), mean(summary_ecoplate$s05), mean(summary_ecoplate$s06))
#切片の計算
intercept_coeff <- (PC3_coeff %*% new_origin) * -1.0
##第1主成分軸ー第2主成分軸が張る平面の描画(法線ベクトルPC3_coeffと切片で定義される)
planes3d(PC3_coeff[1], PC3_coeff[2], PC3_coeff[3], intercept_coeff, col = "blue", alpha = 0.5)
#第1主成分軸をベクトルとして描画
arrow3d(
  p0 = new_origin,
  p1 = new_origin + PC1_coeff * 0.4,
  s = 1 / 4,
  type = "rotation"
)
#第2主成分軸をベクトルとして描画
arrow3d(
  p0 = new_origin,
  p1 = new_origin + PC2_coeff * 0.4,
  s = 1 / 4,
  type = "rotation"
)

あとから上の実行結果として表示されるウィンドウの画像を埋め込んだもの 別ウィンドウで表示される3Dグラフ

2次元平面へ移したデータの可視化(1次元への次元削減)

####Reduction to 2D####
plot(
  model03$sites[, 2] ~ model03$sites[, 1], #モデル式
  pch = c(1,5)[as.factor(metadata_ecoplate$treatment)], #処理(treatment)の違いをマークの種類の違いに指定
  cex = 3,
  xlim = c(-3, 3), ylim = c(-3, 3),
  xlab = "New axis 1",
  ylab = "New axis 2"
  #,asp = 1.0
)

1次元直線上へ移したデータの可視化(1次元への次元削減)

####Reduction to 1D####
y_dummy <- rep(0, length(summary_ecoplate[, 1]))
plot(
  y_dummy ~ model03$sites[, 1],
  pch = c(1,5)[as.factor(metadata_ecoplate$treatment)],
  cex = 3,
  xlim = c(-3, 3), ylim = c(-0.5, 0.5),
  xlab = "New axis 1",
  ylab = ""
)

8.2 多変量データの可視化1:主成分分析

8.2.1 主成分分析は座標軸の回転を意味する

次のものもHTML上では埋め込み画像として表示されますが、Rスクリプトとして実行すれば別ウィンドウに表示されます

####PCA for 3D data with 3 PC axes####
#3次元散布図
plot3d(
  x = summary_ecoplate$s04, y = summary_ecoplate$s05, z = summary_ecoplate$s06,
  xlab = substrate_name[4], ylab = substrate_name[5], zlab = substrate_name[6],
  type = "s",
  size = 3,
  col = c(2, 9)[as.factor(metadata_ecoplate$treatment)]
)
#3次元データに対する主成分分析
model03 <- summary(capscale(summary_ecoplate[, 4:6] ~ 1, distance = "euclidean"))
#主成分軸の方向を表すベクトルを抽出
PC1_coeff <- model03$species[1:3, 1]
PC2_coeff <- model03$species[1:3, 2]
PC3_coeff <- model03$species[1:3, 3]
new_origin <- c(mean(summary_ecoplate$s04), mean(summary_ecoplate$s05), mean(summary_ecoplate$s06))
intercept_coeff <- (PC3_coeff %*% new_origin) * -1.0
planes3d(PC3_coeff[1], PC3_coeff[2], PC3_coeff[3], intercept_coeff, col = "blue", alpha = 0.5)
#主成分軸のベクトルを重ね合わせ
arrow3d(
  p0 = new_origin,
  p1 = new_origin + PC1_coeff * 0.4,
  s = 1 / 4,
  type = "rotation"
)
arrow3d(
  p0 = new_origin,
  p1 = new_origin + PC2_coeff * 0.4,
  s = 1 / 4,
  type = "rotation"
)
arrow3d(
  p0 = new_origin,
  p1 = new_origin + PC3_coeff * 0.4,
  s = 1 / 4,
  type = "rotation"
)

あとから上の実行結果として表示されるウィンドウの画像を埋め込んだもの 別ウィンドウで表示される3Dグラフ

8.2.2 主成分分析のコーディング

31種類の有機炭素基質への反応データに対する主成分分析

####PCA for ecoplate#####
#capscale()関数を使って主成分分析を実行し、summary()関数を用いてその出力結果をまとめ,まとめた結果をオブジェクトPCA_model01に代入(<-)
PCA_model01 <- summary(capscale(summary_ecoplate ~ 1, distance = "euclidean"))
#結果を表示してみる: 主成分分析の結果のまとめを保存したオブジェクトの名前, PCA_model01, を書けば中身がみれる
PCA_model01

Call:
capscale(formula = summary_ecoplate ~ 1, distance = "euclidean") 

Partitioning of mean squared Euclidean distance:
              Inertia Proportion
Total           4.674          1
Unconstrained   4.674          1

Eigenvalues, and their contribution to the mean squared Euclidean distance 

Importance of components:
                        MDS1   MDS2   MDS3   MDS4    MDS5    MDS6    MDS7    MDS8    MDS9
Eigenvalue            0.9869 0.6444 0.5318 0.5155 0.40574 0.29533 0.26460 0.22005 0.19292
Proportion Explained  0.2112 0.1379 0.1138 0.1103 0.08681 0.06319 0.05661 0.04708 0.04128
Cumulative Proportion 0.2112 0.3490 0.4628 0.5731 0.65994 0.72313 0.77974 0.82682 0.86810
                        MDS10   MDS11   MDS12   MDS13  MDS14   MDS15    MDS16    MDS17
Eigenvalue            0.16005 0.13826 0.12168 0.06727 0.0645 0.02986 0.023712 0.011104
Proportion Explained  0.03425 0.02958 0.02603 0.01439 0.0138 0.00639 0.005074 0.002376
Cumulative Proportion 0.90235 0.93193 0.95797 0.97236 0.9862 0.99255 0.997624 1.000000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  3.219928 


Species scores

         MDS1     MDS2      MDS3      MDS4     MDS5      MDS6
s01 -0.274712 -0.19330  0.106203  0.085629 -0.03329 -0.152225
s02  0.042715 -0.17060 -0.029756 -0.094656  0.02136 -0.083495
s03  0.080601 -0.25744 -0.081888  0.198029 -0.09500  0.022155
s04  0.368526  0.14496 -0.295808  0.261178  0.39494  0.024974
s05  0.627787 -0.30164 -0.116183 -0.013603  0.39516 -0.005725
s06 -0.003327 -0.50125  0.187412  0.407381  0.14666  0.004573
s07  0.612858  0.15247  0.364576  0.291182 -0.06206  0.157574
s08  0.431115 -0.07705  0.167742 -0.037470 -0.11409  0.069767
s09  0.190835  0.07554 -0.474748  0.271889 -0.47303 -0.105723
s10  0.259458 -0.01910  0.467278 -0.172241 -0.26677 -0.170656
s11 -0.257191 -0.17395  0.028831 -0.044945  0.07033 -0.164299
s12 -0.223687 -0.32141 -0.078367  0.008574 -0.03459  0.146690
s13 -0.358688 -0.05287  0.249128 -0.069660  0.07393  0.179983
s14  0.224116  0.05741  0.171527  0.027891  0.02809  0.071799
s15 -0.009361 -0.11060  0.039767  0.093552  0.01966  0.007709
s16  0.090003 -0.16374  0.016603  0.113029 -0.14075 -0.018547
s17 -0.031650 -0.25110 -0.046778 -0.284592  0.08610 -0.029354
s18  0.056303  0.06956  0.166821  0.132455 -0.06077 -0.202151
s19 -0.001877 -0.17437  0.175454 -0.181692  0.01208  0.220625
s20  0.070077  0.03462  0.060498  0.061819 -0.04450 -0.030848
s21  0.393291 -0.22870  0.133523  0.185990 -0.01808 -0.097123
s22 -0.263268 -0.25846  0.128237  0.177254 -0.05816 -0.188226
s23  0.166550  0.01246 -0.068654 -0.188346 -0.11328  0.080317
s24 -0.033594 -0.32224 -0.067192 -0.053053 -0.13553  0.344529
s25 -0.136147 -0.40786 -0.232086  0.001869  0.04679 -0.134476
s26 -0.038401  0.03320 -0.196918  0.127277 -0.20129  0.378047
s27 -0.192091 -0.11821  0.119655  0.366020 -0.18687  0.054006
s28 -0.133800 -0.03836 -0.172690  0.289734  0.03221  0.027285
s29  0.062255 -0.09963 -0.002268 -0.050196 -0.19660 -0.056747
s30  0.510632 -0.38225 -0.234598 -0.392156 -0.21307 -0.077759
S31 -0.076608 -0.24078  0.140890 -0.067010  0.02492  0.179091


Site scores (weighted sums of species scores)

               MDS1    MDS2     MDS3     MDS4     MDS5     MDS6
20141216N1 -0.45758  0.5590  0.39964 -0.15099 -1.03040 -0.52122
20141216N2  0.32717 -0.1525  0.88592 -1.20633  0.06320 -1.05380
20141216N3 -0.01943 -0.4148 -0.47424 -0.03095 -0.99845 -0.33974
20141216T1 -0.60154  0.1765 -0.38177 -0.69810  0.07790 -0.07955
20141216T2  0.44788 -0.7660  0.28492 -0.26774 -1.19330 -0.20913
20141216T3 -0.43854  0.4941  0.08732 -1.01600 -0.06506  0.19632
20150228N1 -0.01239  0.2343 -0.42322 -0.49487  1.19911 -1.79360
20150228N2  0.40545 -0.1486 -1.23296  0.95115 -0.73759  0.84499
20150228N3 -0.13703  0.7409 -2.08781 -0.24126  0.42517 -0.04695
20150228T1  0.17469 -0.4203 -0.74754  0.15175  0.02181  0.14266
20150228T2 -0.39126 -0.2355 -0.57495 -0.24393  0.35960 -0.01005
20150228T3  0.50722  0.1531  0.73901 -0.17469  1.06940  1.32989
20150507N1  0.82384  1.0266  0.49776  0.34636 -0.65789 -0.18051
20150507N2  0.64832  0.8975  0.12386  0.19921  0.27915  0.36637
20150507N3 -0.14928 -0.7510  0.13698 -1.07049 -0.17716  0.98858
20150507T1  0.29341 -0.5139  0.39391  0.64083  1.07972  0.06165
20150507T2  0.23458 -1.1177  0.06872  0.80228 -0.09451 -0.60262
20150507T3 -1.75319  0.3484  0.54160  0.79279 -0.02502  0.13661
20150703N1  0.82384  1.0266  0.49776  0.34636 -0.65789 -0.18051
20150703N2  0.64832  0.8975  0.12386  0.19921  0.27915  0.36637
20150703N3 -0.14928 -0.7510  0.13698 -1.07049 -0.17716  0.98858
20150703T1  0.29341 -0.5139  0.39391  0.64083  1.07972  0.06165
20150703T2  0.23458 -1.1177  0.06872  0.80228 -0.09451 -0.60262
20150703T3 -1.75319  0.3484  0.54160  0.79279 -0.02502  0.13661
#各データの主成分軸上の座標の表示: 主成分分析の結果を保存したオブジェクトの中のsites列にその座標情報がある
PCA_model01$sites
                  MDS1       MDS2        MDS3        MDS4        MDS5        MDS6
20141216N1 -0.45758140  0.5589816  0.39963568 -0.15099118 -1.03040378 -0.52122280
20141216N2  0.32717188 -0.1525218  0.88592400 -1.20633329  0.06320048 -1.05379587
20141216N3 -0.01943224 -0.4147696 -0.47423580 -0.03095043 -0.99845214 -0.33973601
20141216T1 -0.60153647  0.1765396 -0.38177148 -0.69810122  0.07789807 -0.07955375
20141216T2  0.44787567 -0.7660001  0.28492363 -0.26773655 -1.19329503 -0.20912685
20141216T3 -0.43854264  0.4941251  0.08732414 -1.01599568 -0.06506097  0.19631712
20150228N1 -0.01238718  0.2342721 -0.42322128 -0.49486588  1.19911490 -1.79360415
20150228N2  0.40544811 -0.1486364 -1.23295536  0.95114661 -0.73759170  0.84498703
20150228N3 -0.13702624  0.7408609 -2.08780579 -0.24126057  0.42516627 -0.04694815
20150228T1  0.17469420 -0.4202571 -0.74753547  0.15175172  0.02181335  0.14265754
20150228T2 -0.39125659 -0.2354862 -0.57494902 -0.24393298  0.35960392 -0.01005146
20150228T3  0.50721864  0.1530751  0.73900623 -0.17468846  1.06940217  1.32989432
20150507N1  0.82383657  1.0266292  0.49776363  0.34635514 -0.65788638 -0.18051053
20150507N2  0.64831956  0.8975307  0.12385966  0.19920755  0.27915171  0.36637418
20150507N3 -0.14928157 -0.7509984  0.13698328 -1.07048549 -0.17715574  0.98858487
20150507T1  0.29340572 -0.5139238  0.39391181  0.64083197  1.07971960  0.06165433
20150507T2  0.23458489 -1.1177382  0.06871639  0.80228286 -0.09451101 -0.60262124
20150507T3 -1.75318803  0.3484089  0.54159550  0.79278693 -0.02501594  0.13660989
20150703N1  0.82383657  1.0266292  0.49776363  0.34635514 -0.65788638 -0.18051053
20150703N2  0.64831956  0.8975307  0.12385966  0.19920755  0.27915171  0.36637418
20150703N3 -0.14928157 -0.7509984  0.13698328 -1.07048549 -0.17715574  0.98858487
20150703T1  0.29340572 -0.5139238  0.39391181  0.64083197  1.07971960  0.06165433
20150703T2  0.23458489 -1.1177382  0.06871639  0.80228286 -0.09451101 -0.60262124
20150703T3 -1.75318803  0.3484089  0.54159550  0.79278693 -0.02501594  0.13660989

最初の二つの主成分軸に関して可視化→つまり二次元への次元削減

#最初の二つの主成分軸上の座標点をベクトルに格納: 主成分分析の結果を保存したオブジェクトの中のsites列の中で、さらに1列目(第1主成分)と2列目(第2主成分)を抜き出して、それぞれベクトルとしてPC1_01, PC2_01に保存
PC1_01 <- PCA_model01$sites[, 1]
PC2_01 <- PCA_model01$sites[, 2]
#散布図
plot(
  PC2_01 ~ PC1_01, #モデル式
  cex = 3, pch = c(1, 5)[as.factor(metadata_ecoplate$treatment)],#処理(treatment)の違いを因子に変換すれば,それによって各点のマークを指定できる
  xlab = "PC1 (21.1 %)", ylab = "PC2 (13.8 %)" #寄与率を軸名の中に含める
)

PCAの練習:植物プランクトンデータに対する主成分分析

####PCA for phytoplankton####
#PCAの実行
PCA_model02 <- summary(capscale(species_ryuko_data ~ 1, distance = "euclidean"))
#PCAの結果の表示(この結果を見て、寄与率の確認が必要)
PCA_model02

Call:
capscale(formula = species_ryuko_data ~ 1, distance = "euclidean") 

Partitioning of mean squared Euclidean distance:
              Inertia Proportion
Total           32768          1
Unconstrained   32768          1

Eigenvalues, and their contribution to the mean squared Euclidean distance 

Importance of components:
                           MDS1      MDS2      MDS3      MDS4      MDS5      MDS6
Eigenvalue            2.030e+04 9259.0918 1.520e+03 380.60436 2.969e+02 2.396e+02
Proportion Explained  6.195e-01    0.2826 4.638e-02   0.01162 9.061e-03 7.311e-03
Cumulative Proportion 6.195e-01    0.9021 9.485e-01   0.96010 9.692e-01 9.765e-01
                           MDS7      MDS8      MDS9     MDS10     MDS11     MDS12
Eigenvalue            1.863e+02 1.563e+02 1.327e+02 1.155e+02 71.719285 54.020636
Proportion Explained  5.686e-03 4.771e-03 4.051e-03 3.525e-03  0.002189  0.001649
Cumulative Proportion 9.822e-01 9.869e-01 9.910e-01 9.945e-01  0.996690  0.998339
                          MDS13     MDS14
Eigenvalue            3.077e+01 23.658246
Proportion Explained  9.391e-04  0.000722
Cumulative Proportion 9.993e-01  1.000000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  26.02529 


Species scores

                                             MDS1       MDS2       MDS3       MDS4
Acanthoceras sp.                        1.356e-01 -0.0436664 -0.0029062  1.977e-01
Acanthoceras zachariasii               -1.948e-02 -0.0499752 -0.1160193 -4.826e-02
Actinastrum hantzschii                  2.131e-02 -0.0234244 -0.0701410  1.524e-02
Anabaena affinis                        2.037e-01  0.0157999 -0.0318410  5.341e-02
Anabaena flos-aquae                     2.411e-02  0.0003644  0.0001992 -2.022e-02
Anabaena macrospora                     5.946e-02  0.0032665 -0.0205286  5.384e-02
Anabaena spiroides                      1.045e-01 -0.0079161 -0.0215709 -1.400e-02
Ankistrodesmus sp.                      2.457e-02 -0.0006230  0.0352587 -1.525e-02
Aphanizomenon flos-aquae                6.315e-02 -0.0047159 -0.0086647  5.916e-02
Aphanocapsa sp.                         8.159e-02 -0.0108285 -0.0006994 -1.223e-01
Aphanothece sp.                        -5.105e-03 -0.0039584 -0.0048955 -1.582e-02
Asterionella formosa                   -1.725e+00 -1.5734933  4.9309074  5.581e-01
Asterionella sp.                       -2.863e-02 -0.0323414  0.0206804  6.720e-02
Aulacoseira ambigua                     7.212e-01 -0.0672574 -0.1633408 -1.633e-01
Aulacoseira distans                    -3.177e-02 -0.1245160 -0.0010154 -5.368e-03
Aulacoseira granulata                   1.251e+00  0.0720452  1.4927074 -5.721e-01
Aulacoseira nipponica                  -4.801e-03 -0.0043896  0.0064600 -4.621e-03
Aulacoseira sp.                        -3.412e-01 -0.2790661  0.1606569 -3.655e-03
Botryococcus braunii                    3.792e-01 -0.1270379 -0.1829630  2.806e-01
Botryococcus sp.                       -3.587e-02  0.1439837  0.0045039 -2.330e-04
Ceratium hirundinella                  -3.529e-01  0.2852181 -0.3562425 -3.731e-01
Ceratium sp.                            2.569e-02 -0.0136772 -0.0631476  1.306e-01
Chlamydomonas sp.                      -6.262e-03 -0.0066176 -0.0197812 -1.689e-02
Chlorogonium elongatum                  8.488e-02  0.0047405 -0.0251821  7.981e-02
Chroococcus dispersus                  -1.716e-01 -0.2124640  0.0718139 -1.962e-01
Chroococcus sp.                        -9.049e-02 -0.0654754 -0.1552118 -4.405e-03
Cladophora glomerata                   -5.006e-02 -0.0438637  0.0956270  1.325e-01
Cladophora sp.                         -5.029e-03 -0.0043860  0.0099074  1.523e-02
Closterium aciculare                   -3.603e-02 -0.1842166  0.2349593  7.755e-01
Closterium aciculare var.subponum      -4.484e-02  0.1799796  0.0056298 -2.913e-04
Closterium moniliferum                 -1.989e-02 -0.0175476  0.0361823  4.108e-02
Cocconeis placentula                   -6.095e-02 -0.0492113  0.0004660 -6.565e-02
Coelastrum cambricum                   -1.447e-01  0.6702452 -0.0417542  1.295e-01
Coelastrum microporum                   1.245e-01  0.3533065  0.0547162 -1.074e-01
Coelosphaerium kuetzingianum            9.378e-02 -0.0558846  0.0073334 -2.917e-01
Coelosphaerium sp.                     -8.216e-02  0.0259450 -0.1140848  2.168e-02
Cosmarium sp.                           1.716e-01  0.0163459 -0.0033032 -1.382e-02
Cosmocladium constrictum                7.062e-02 -0.0306089 -0.1484430  3.093e-01
Crucigenia lauterbornei                -2.242e-01  0.8998979  0.0281491 -1.456e-03
Crucigenia lauterbornii                -5.105e-03 -0.0039584 -0.0048955 -1.582e-02
Cryptomonas sp.                         1.173e-01  0.0167676  0.0254757 -6.108e-02
Cyclotella meneghiniana                 6.059e-02  0.0022651 -0.0093189  3.109e-03
Cyclotella sp.                          3.468e-02 -0.0139895  0.0674676 -4.900e-02
Cymbella sp.                           -9.817e-05 -0.0189011 -0.0511745  5.056e-02
Diatoma vulgare                        -6.463e-03 -0.0102983 -0.0040091  1.807e-02
Dictyosphaerium sp.                    -4.551e-03 -0.0034389 -0.0019444 -1.664e-03
Dinobryon cylindricum                  -1.585e-01 -0.1639659  0.4719151 -4.999e-02
Dinobryon sp.                          -4.551e-03 -0.0034389 -0.0019444 -1.664e-03
Diploneis sp.                          -7.728e-03  0.9625512  0.0763378 -1.270e-01
Elakatothrix gelatinosa                -5.028e-02  0.1308149  0.0238838 -1.410e-02
Eudorina sp.                           -3.131e-03 -0.0033088 -0.0098906 -8.447e-03
Euglena proxima                         5.529e-02  0.2172719  0.0319482 -3.272e-02
Euglena sp.                            -2.214e-02 -0.0225684  0.1056684 -8.365e-03
Fragilaria crotonensis                 -1.875e-01 -0.1550741  0.1631101 -1.325e-02
Frustulia sp.                          -4.753e-03 -0.0048149  0.0288897  2.038e-05
Gloeocystis sp.                        -5.029e-03 -0.0043860  0.0099074  1.523e-02
Gonium sp.                              1.189e-02  0.0006533 -0.0041057  1.077e-02
Gyrosigma sp.                          -1.006e-02 -0.0087720  0.0198149  3.047e-02
Hydrodictyon sp.                        7.341e-03 -0.0039078 -0.0180422  3.731e-02
Lyngbya limnetica                      -1.646e-01  0.0919461 -0.1362750 -1.142e-01
Melosira sp.                           -1.620e-02 -0.0274533 -0.0365040 -4.156e-02
Melosira varians                       -1.091e-01 -0.1418918 -0.0871512 -2.254e-01
Merismopedia sp.                       -4.753e-03 -0.0048149  0.0288897  2.038e-05
Micrasterias hardyi                     1.169e+00  3.4598032  0.6997562  2.110e-01
Micrasterias mahabuleshwarensis         3.819e-01 -0.0316615 -0.2797469  6.978e-01
Microcystis aeruginosa                  1.152e+00 -0.3268271  1.4901294 -1.107e+00
Microcystis ichthyoblabe                7.142e-01 -0.0918249 -0.4372450 -7.823e-01
Microcystis novacekii                   7.242e-01 -0.0276506  0.1156811 -9.855e-01
Microcystis sp.                        -1.310e-01 -0.0999192 -0.0735180  3.592e-02
Microcystis viridis                     2.329e-01 -0.1463452 -0.2881972  2.373e-01
Microcystis wesenbergii                -1.179e-01 -0.1533863  0.1898638  2.049e-02
Mougeotia sp.                          -8.684e-02  0.6635202 -0.0752675 -3.115e-02
Navicula sp.                           -9.536e-03 -0.0073537  0.0028731 -2.144e-03
Nitzschia sp.                          -8.646e-02 -0.0370728 -0.1702480 -1.971e-01
Oedogonium sp.                          5.708e-01  0.9741357  0.1030034 -9.231e-02
Oocystis lacustris                      1.556e-02 -0.0013006 -0.0131268  2.942e-02
Oscillatoria kawamurae                 -1.042e-02 -0.0076551 -0.0123396 -9.905e-03
Oscillatoria sp.                       -2.515e-02 -0.0219300  0.0495372  7.617e-02
Oscillatoria tenuis                     1.070e-01  0.0058797 -0.0369514  9.690e-02
Paulschulzia pseudovolvox              -1.886e-01  0.7992564 -0.0800436  1.468e-01
Pediastrum biwae                        1.943e-01  0.0731965 -0.0368261 -4.748e-02
Pediastrum boryanum                    -1.372e-02  0.0311810  0.0300157 -3.787e-05
Pediastrum duplex                      -6.046e-03  0.0726451 -0.0018538  1.065e-02
Peridinium sp.                          3.525e-02 -0.0251810 -0.1074823  1.986e-01
Phormidium tenue                       -2.003e-02 -0.0166017  0.0294498  2.951e-02
Pleodorina californica                  4.399e-02 -0.0127747 -0.0999007  3.149e-01
Pleurotaenium sp.                       1.189e-01  0.0065330 -0.0410571  1.077e-01
Rhoicosphenia abbreviata               -5.208e-03 -0.0038275 -0.0061698 -4.953e-03
Scenedesmus opoliensis                 -2.454e-02 -0.0186578 -0.0486695 -1.182e-03
Schroederia ancora                      2.378e-02  0.0013066 -0.0082114  2.153e-02
Sphaerocystis schroeteri                3.215e-01  0.0700296 -0.1591411  4.444e-01
Spirogyra sp.                          -3.384e-01  1.2439218  0.0174355  9.639e-02
Spondylosium moniliforme                1.503e-01  0.0190056  0.0228236 -5.770e-02
Staurastrum arctiscon                   1.752e-02 -0.0053110 -0.0279927  4.641e-03
Staurastrum dorsidentiferum             1.992e+01  1.7653458  0.2873340  1.995e-01
Staurastrum dorsidentiferum var.ornatu -3.220e+00 12.9225334  0.4042216 -2.091e-02
Staurastrum sebaldi                     9.189e-02 -0.1219008 -0.5614978  1.018e+00
Staurastrum sp.                        -3.971e-02 -0.0336698  0.0623178  8.926e-02
Stauroneis sp.                         -1.021e-02 -0.0079168 -0.0097909 -3.165e-02
Stephanodiscus sp.                     -2.401e-02 -0.0219480  0.0323000 -2.310e-02
Stephanodiscus suzukii                  1.198e+00  0.1607672  0.2375347 -6.451e-01
Surirella sp.                           2.826e-02 -0.0051920 -0.0158655  2.528e-02
Synedra sp.                            -4.024e-01 -0.2527298 -0.3091717 -2.800e-01
Synedra ulna                            1.374e-01  0.2758599 -0.1426215  3.618e-01
Tabellaria sp.                         -4.484e-02  0.1799796  0.0056298 -2.913e-04
Tetraedron gracile                     -1.722e-02  0.0289989 -0.0170150 -1.508e-02
Tetraedron sp.                          1.308e-01  0.0071863 -0.0451629  1.184e-01
Tetraselmis cordiformis                 7.341e-03 -0.0039078 -0.0180422  3.731e-02
Tetraspora lacustris                    1.107e-01 -0.0216960 -0.1194575  2.256e-01
Tetraspora sp.                         -8.969e-03  0.0359959  0.0011260 -5.825e-05
Trachelomonas hispida                  -1.016e-01 -0.1113290  0.2997322  2.090e-01
Trachelomonas sp.                       3.178e-01  0.0381083  0.0222114 -4.679e-02
Treubaria setigerum                    -5.208e-03 -0.0038275 -0.0061698 -4.953e-03
Ulothrix zonata                         3.642e-01  0.0222139  0.1293564 -3.353e-02
Uroglena americana                      1.258e-01  0.0004571 -0.0225039 -1.344e-01
Uroglena sp.                           -1.559e-01 -0.1359663  0.3071309  4.723e-01
Xanthidium hastiferum                   7.754e-02  0.0049206  0.0067672 -5.572e-02
Xanthidium sp.                         -8.969e-03  0.0359959  0.0011260 -5.825e-05
                                             MDS5       MDS6
Acanthoceras sp.                       -0.2811044  0.0477793
Acanthoceras zachariasii                0.0739447  0.1997143
Actinastrum hantzschii                  0.0112894 -0.0600041
Anabaena affinis                       -0.1462028  0.0993157
Anabaena flos-aquae                    -0.0054877 -0.0025605
Anabaena macrospora                    -0.0920236  0.0362546
Anabaena spiroides                     -0.0841857  0.0528802
Ankistrodesmus sp.                      0.0106633 -0.0060507
Aphanizomenon flos-aquae               -0.0732780 -0.0530529
Aphanocapsa sp.                         0.0327147  0.0073708
Aphanothece sp.                         0.0018448 -0.0043480
Asterionella formosa                    0.1041921  0.1147098
Asterionella sp.                       -0.0192761  0.1095308
Aulacoseira ambigua                    -0.1656583 -0.4085896
Aulacoseira distans                    -0.1742205 -0.3028850
Aulacoseira granulata                  -0.1087391 -0.5511027
Aulacoseira nipponica                  -0.0038547 -0.0091255
Aulacoseira sp.                         0.0213617 -0.3012493
Botryococcus braunii                   -0.1521933 -0.2328000
Botryococcus sp.                        0.0021350 -0.0006161
Ceratium hirundinella                  -0.5302272 -0.2221242
Ceratium sp.                            0.1588305 -0.1100088
Chlamydomonas sp.                       0.0272746  0.0404374
Chlorogonium elongatum                 -0.0764966 -0.0406022
Chroococcus dispersus                  -0.3449307 -0.3289272
Chroococcus sp.                         0.0389472 -0.0729211
Cladophora glomerata                    0.0206746  0.1922469
Cladophora sp.                          0.0027255  0.0223747
Closterium aciculare                    0.1986827  0.6435643
Closterium aciculare var.subponum       0.0026687 -0.0007701
Closterium moniliferum                  0.0043217  0.0579986
Cocconeis placentula                    0.0256601  0.0547150
Coelastrum cambricum                    0.1689716 -0.1129352
Coelastrum microporum                   0.0612867  0.0139853
Coelosphaerium kuetzingianum            0.1226983  0.0623458
Coelosphaerium sp.                      0.0292736 -0.0516881
Cosmarium sp.                          -0.0645805  0.0418404
Cosmocladium constrictum                0.3446365 -0.2441977
Crucigenia lauterbornei                 0.0133435 -0.0038505
Crucigenia lauterbornii                 0.0018448 -0.0043480
Cryptomonas sp.                         0.0322760  0.0087837
Cyclotella meneghiniana                -0.0228705 -0.0195530
Cyclotella sp.                          0.0033134 -0.0403566
Cymbella sp.                            0.0851442 -0.0693748
Diatoma vulgare                         0.0272603  0.0023112
Dictyosphaerium sp.                    -0.0026279  0.0010333
Dinobryon cylindricum                  -0.0221472 -0.1583043
Dinobryon sp.                          -0.0026279  0.0010333
Diploneis sp.                           0.0731734  0.0156294
Elakatothrix gelatinosa                -0.0094293 -0.0279925
Eudorina sp.                            0.0136373  0.0202187
Euglena proxima                         0.0203355  0.0404129
Euglena sp.                             0.0240146 -0.0127677
Fragilaria crotonensis                 -0.0646353  0.0771723
Frustulia sp.                           0.0025943 -0.0082466
Gloeocystis sp.                         0.0027255  0.0223747
Gonium sp.                             -0.0184047  0.0072509
Gyrosigma sp.                           0.0054510  0.0447494
Hydrodictyon sp.                        0.0453801 -0.0314311
Lyngbya limnetica                      -0.3091358 -0.1101670
Melosira sp.                            0.0633854  0.1213497
Melosira varians                        0.0790901 -0.0899983
Merismopedia sp.                        0.0025943 -0.0082466
Micrasterias hardyi                    -0.6975677  0.1884092
Micrasterias mahabuleshwarensis         0.1740535 -0.4501650
Microcystis aeruginosa                  0.3865770 -0.6688313
Microcystis ichthyoblabe                1.1435250  0.8359385
Microcystis novacekii                   0.2645333 -0.1315873
Microcystis sp.                         0.0571474 -0.1160674
Microcystis viridis                    -0.8925179 -0.0494708
Microcystis wesenbergii                 0.0457180  0.2390828
Mougeotia sp.                          -0.0828928  0.0070654
Navicula sp.                           -0.0028680  0.0035856
Nitzschia sp.                           0.2073990  0.2850888
Oedogonium sp.                          0.1456436  0.0872396
Oocystis lacustris                      0.0042854 -0.0084646
Oscillatoria kawamurae                 -0.0271134 -0.0095128
Oscillatoria sp.                        0.0136274  0.1118735
Oscillatoria tenuis                    -0.1656424  0.0652583
Paulschulzia pseudovolvox               0.2019879 -0.1545761
Pediastrum biwae                        0.0219466 -0.0478263
Pediastrum boryanum                     0.0031281 -0.0084006
Pediastrum duplex                      -0.0173372  0.0069429
Peridinium sp.                          0.2447579 -0.1760689
Phormidium tenue                        0.0049708  0.0498541
Pleodorina californica                  0.2394806 -0.1023088
Pleurotaenium sp.                      -0.1840471  0.0725092
Rhoicosphenia abbreviata               -0.0135567 -0.0047564
Scenedesmus opoliensis                  0.0230393  0.0030920
Schroederia ancora                     -0.0368094  0.0145018
Sphaerocystis schroeteri               -0.1092589 -0.2612370
Spirogyra sp.                          -0.0527785  0.0570441
Spondylosium moniliforme                0.0630351 -0.0047359
Staurastrum arctiscon                  -0.0095349  0.0549392
Staurastrum dorsidentiferum            -0.0112146  0.0522507
Staurastrum dorsidentiferum var.ornatu  0.1916127 -0.0552938
Staurastrum sebaldi                     1.2452682 -0.9247717
Staurastrum sp.                         0.0134849  0.1378339
Stauroneis sp.                          0.0036895 -0.0086960
Stephanodiscus sp.                     -0.0192737 -0.0456274
Stephanodiscus suzukii                  0.3184644  0.0843066
Surirella sp.                          -0.0193871  0.0053701
Synedra sp.                            -0.4233281 -0.2655572
Synedra ulna                            0.0709610 -0.2031026
Tabellaria sp.                          0.0026687 -0.0007701
Tetraedron gracile                      0.0093381  0.0168668
Tetraedron sp.                         -0.2024518  0.0797601
Tetraselmis cordiformis                 0.0453801 -0.0314311
Tetraspora lacustris                    0.0534258 -0.1863960
Tetraspora sp.                          0.0005337 -0.0001540
Trachelomonas hispida                   0.1585878  0.2069078
Trachelomonas sp.                      -0.0642810  0.0683239
Treubaria setigerum                    -0.0135567 -0.0047564
Ulothrix zonata                         0.0422876  0.2119779
Uroglena americana                      0.1103762  0.1077251
Uroglena sp.                            0.0844901  0.6936160
Xanthidium hastiferum                  -0.0029064 -0.0029250
Xanthidium sp.                          0.0005337 -0.0001540


Site scores (weighted sums of species scores)

                       MDS1    MDS2    MDS3      MDS4     MDS5     MDS6
20180316_1_ryuko.csv -3.625 -2.5990 -6.5664   1.23009   1.5920  -2.9000
20180316_2_ryuko.csv -2.121 -2.2411 -6.6991  -5.72102   9.2367  13.6944
20181004_1_ryuko.csv  8.054  0.4425 -2.7809   7.29280 -12.4658   4.9112
20181004_2_ryuko.csv  2.486 -1.3234 -6.1101  12.63582  15.3683 -10.6444
20181004_3_ryuko.csv 19.859  2.8392  4.3138 -10.34274   5.4653   1.4873
20181025_1_ryuko.csv  8.213  0.4587 -2.4366   7.72205  -7.4018  -3.9286
20181025_2_ryuko.csv -6.075 24.3806  0.7626  -0.03946   0.3615  -0.1043
20190425_1_ryuko.csv -3.406 -2.9707  6.7105  10.31864   1.8460  15.1547
20190425_2_ryuko.csv -3.220 -3.2612 19.5675   0.01380   1.7572  -5.5855
20190425_3_ryuko.csv -3.377 -2.6516  3.2629  -0.32512  -0.1626   1.7288
20190425_4_ryuko.csv -3.252 -2.9731  4.3755  -3.12966  -2.6109  -6.1808
20190425_5_ryuko.csv -3.083 -2.3292 -1.3169  -1.12684  -1.7799   0.6998
20190520_1_ryuko.csv -3.457 -2.6811 -3.3158 -10.71737   1.2495  -2.9450
20190520_2_ryuko.csv -3.471 -2.4981 -5.5881  -4.45649  -3.2734  -2.1660
20190520_3_ryuko.csv -3.527 -2.5925 -4.1789  -3.35453  -9.1822  -3.2216
#主成分軸上の座標の表示
PCA_model02$sites
                          MDS1       MDS2      MDS3         MDS4        MDS5        MDS6
20180316_1_ryuko.csv -3.625009 -2.5990212 -6.566388   1.23009410   1.5920360  -2.9000447
20180316_2_ryuko.csv -2.120681 -2.2411032 -6.699069  -5.72101759   9.2367417  13.6944305
20181004_1_ryuko.csv  8.054392  0.4424877 -2.780865   7.29279794 -12.4657998   4.9111617
20181004_2_ryuko.csv  2.486019 -1.3233970 -6.110121  12.63582291  15.3683432 -10.6443827
20181004_3_ryuko.csv 19.859039  2.8392409  4.313775 -10.34273688   5.4652619   1.4873411
20181025_1_ryuko.csv  8.213051  0.4586884 -2.436604   7.72204944  -7.4017640  -3.9286448
20181025_2_ryuko.csv -6.074667 24.3805976  0.762634  -0.03945615   0.3615106  -0.1043213
20190425_1_ryuko.csv -3.406251 -2.9707125  6.710470  10.31863801   1.8460152  15.1547408
20190425_2_ryuko.csv -3.219595 -3.2612070 19.567476   0.01380347   1.7571843  -5.5855416
20190425_3_ryuko.csv -3.376515 -2.6515804  3.262944  -0.32511644  -0.1626037   1.7287579
20190425_4_ryuko.csv -3.251831 -2.9731434  4.375454  -3.12965731  -2.6108802  -6.1808305
20190425_5_ryuko.csv -3.082553 -2.3292117 -1.316942  -1.12684110  -1.7799381   0.6998468
20190520_1_ryuko.csv -3.457473 -2.6810952 -3.315780 -10.71736633   1.2494908  -2.9449521
20190520_2_ryuko.csv -3.470543 -2.4980889 -5.588099  -4.45648635  -3.2734198  -2.1659852
20190520_3_ryuko.csv -3.527384 -2.5924541 -4.178886  -3.35452773  -9.1821779  -3.2215758
#最初の2軸分の座標情報をベクトルに格納
PC1_02 <- PCA_model02$sites[, 1]
PC2_02 <- PCA_model02$sites[, 2]
#散布図
plot(
  PC2_02 ~ PC1_02, #モデル式
  cex = 3, pch = as.numeric(as.factor(phyto_metadata$month)),
  xlab = "PC1 (62.0%)", ylab = "PC2 (28.3 %)" #寄与率を軸名の中に書き込む
)

8.2.3 主成分分析はすべての次元削減可視化の基盤

主成分分析は主座標分析も含めすべての次元削減可視化の土台ですので,完璧に理解することがとても重要です.とくに、8.2.2の部分に書かれたこーどについては,1行1行の意味を確認しながら実行してみましょう.

8.2.4 主成分分析のスケール依存性

ニューヨークの大気データについて読み込んで前処理

####PCA for airquality data####
data("airquality") #データの読み込み
#基本的な統計量を表示する
summary(airquality)
     Ozone           Solar.R           Wind             Temp           Month      
 Min.   :  1.00   Min.   :  7.0   Min.   : 1.700   Min.   :56.00   Min.   :5.000  
 1st Qu.: 18.00   1st Qu.:115.8   1st Qu.: 7.400   1st Qu.:72.00   1st Qu.:6.000  
 Median : 31.50   Median :205.0   Median : 9.700   Median :79.00   Median :7.000  
 Mean   : 42.13   Mean   :185.9   Mean   : 9.958   Mean   :77.88   Mean   :6.993  
 3rd Qu.: 63.25   3rd Qu.:258.8   3rd Qu.:11.500   3rd Qu.:85.00   3rd Qu.:8.000  
 Max.   :168.00   Max.   :334.0   Max.   :20.700   Max.   :97.00   Max.   :9.000  
 NA's   :37       NA's   :7                                                       
      Day      
 Min.   : 1.0  
 1st Qu.: 8.0  
 Median :16.0  
 Mean   :15.8  
 3rd Qu.:23.0  
 Max.   :31.0  
               
#欠損データを取り除き、新しいオブジェクトair_dataに格納する
air_data <- na.omit(airquality)

データの標準化をしない場合の可視化(図8.9作成用のコード)

#PCAの実行
PCA_model03 <- summary(capscale(air_data[,1:4] ~ 1, distance = "euclidean"))
#PCAの結果の表示(寄与率の確認が必要)
PCA_model03

Call:
capscale(formula = air_data[, 1:4] ~ 1, distance = "euclidean") 

Partitioning of mean squared Euclidean distance:
              Inertia Proportion
Total            9520          1
Unconstrained    9520          1

Eigenvalues, and their contribution to the mean squared Euclidean distance 

Importance of components:
                           MDS1     MDS2      MDS3      MDS4
Eigenvalue            8470.5342 996.7931 44.569867 7.6127823
Proportion Explained     0.8898   0.1047  0.004682 0.0007997
Cumulative Proportion    0.8898   0.9945  0.999200 1.0000000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  31.98909 


Species scores

            MDS1    MDS2      MDS3      MDS4
Ozone    -4.3155 10.0103  0.443743  0.051685
Solar.R -29.8469 -1.5215  0.009984 -0.003849
Wind      0.1846 -0.7086  0.109543  0.901345
Temp     -1.0244  2.0318 -2.140570  0.056823


Site scores (weighted sums of species scores)

        MDS1     MDS2     MDS3     MDS4
1   -0.15356 -0.36435  4.67303 -3.64053
2    2.22474  0.28174  1.83968 -2.60964
3    1.32102 -2.39308 -1.10697  0.93422
4   -4.06994 -4.38152  5.12679 -1.50299
7   -3.63869 -3.63955  4.15405 -4.10720
8    2.94392 -1.32151  6.16638  1.89167
9    5.61742 -1.21695  4.23133  8.65110
12  -2.20028 -3.61436  1.65411 -2.85774
13  -3.28781 -4.61783  2.59080 -4.09247
14  -2.77946 -4.08369  1.98061 -1.81643
15   4.06416 -0.94715  6.43597  1.25813
16  -4.74159 -5.01547  3.90651 -1.71552
17  -3.95349 -2.72902  4.82048  0.36424
18   3.69708 -2.30616  5.91732  6.09710
19  -4.42857 -3.27447  3.57626 -0.37079
20   4.78049 -1.20393  3.87671 -2.66249
21   6.01131 -1.68386  4.21585 -3.33307
22  -4.27756 -4.96002 -0.30499  4.40310
23   5.43759 -1.60706  3.63557 -3.08467
24   3.10915  0.04220  6.42112  0.90195
28   5.73461  0.43693  2.74220  1.12170
29  -2.21906 -0.65516 -0.91080  5.55337
30  -1.59984  6.31912  6.19533 -0.16119
31  -3.06208 -1.83113  0.46696 -3.68683
38   1.95200 -0.32164 -3.21888 -0.52727
40  -3.63102  1.39798 -2.46765  6.42542
41  -4.52538 -2.08759 -4.07700  1.51223
44   1.29173 -1.16912 -3.76970 -2.87743
47  -0.10128 -2.10698 -1.47364  4.04672
48  -3.21878 -2.06593  2.56862 10.66098
49   4.96381 -0.20354  3.34391 -2.40354
50   2.27252 -1.99298 -0.74577 -0.21040
51   1.70691 -2.07613 -1.98552 -1.34061
62  -3.20842  7.63978  5.87306 -0.52949
63  -2.11255 -0.11113 -2.46613 -0.17561
64  -1.63413 -1.60476 -2.27852 -1.47061
66   0.21056  2.31927 -0.44057 -4.09036
67  -4.23073 -1.93826 -2.22972  0.67911
68  -3.16728  2.19112 -1.24854 -2.84643
69  -2.97132  4.25528 -1.17462  0.05854
70  -3.13533  4.18825 -1.17792 -0.62584
71   0.10484  4.37639 -1.11227  0.73661
73  -2.43765 -4.24306 -0.56690  2.07002
74   0.39025 -1.24340 -2.73841  4.77867
76   4.64901 -1.32352 -4.42239  3.38252
77  -2.49713 -0.43558 -0.79918 -3.10625
78  -2.89486 -1.85239 -2.34310 -0.17885
79  -3.38172  0.48478 -0.89711 -2.85532
80  -0.25829  3.62275 -0.80199 -2.37095
81  -1.26062  1.57916 -1.17522  3.37360
82   5.95555  0.03463 -1.16275 -4.42345
85  -3.76857  2.15473  0.04043  0.97453
86  -1.57294  5.76372  2.91887  2.34661
87   3.50228 -0.50199 -4.17347 -2.09093
88   3.31402  2.52669 -2.91698  3.94807
89  -1.12542  3.53759 -0.86415  0.29897
90  -3.00382 -0.37022 -2.80518 -2.15258
91  -2.34566  1.19319 -0.21400 -1.37320
92  -2.35212  0.66205  0.25971  0.15001
93   3.34745  1.23692 -2.00162 -2.84219
94   5.42501 -0.77362 -4.74539  3.14044
95   3.65211 -0.81095 -4.57972 -3.64647
99  -2.69354  6.71955  2.40362 -1.04766
100 -1.68473  3.98310 -1.00973  3.99886
101 -1.06358  6.27257  0.83683  2.89537
104 -0.25388  0.22068 -3.44012  2.37472
105 -2.82866 -2.50008 -2.96609  0.70547
106  0.80025  2.57767  1.07150  1.46646
108  3.82656 -0.27920 -1.73627 -0.39232
109  4.30372  3.52579  0.66393 -2.22825
110  2.38007 -0.81034 -1.17148 -3.79971
111 -1.88791 -1.87991 -0.97524  0.09273
112 -0.17956  0.10532  0.10255  0.50691
113 -2.33014 -3.07651 -1.31821  4.38775
114  5.04188 -1.11798 -0.68788  3.00978
116 -0.90669 -0.09071 -0.21948 -0.12483
117 -2.34543 11.11065 10.18924  0.72124
118 -1.14595  2.62649 -0.78626  0.24312
120 -0.77885  3.27449 -5.40918  3.12528
121 -1.69718  6.87790 -0.30217 -2.68445
122 -1.93083  3.54261 -4.22833 -0.34368
123 -0.32713  4.29388 -3.34425 -0.18893
124  0.31259  5.55887 -1.01513  1.05714
125 -0.58696  3.48214 -3.10770 -2.13396
126 -0.10595  3.24800 -4.09934 -4.84777
127 -0.38757  4.83250 -2.37854 -1.75655
128  2.90953  1.92437 -3.90494 -1.42603
129  3.08398  0.45518 -3.77492  6.35401
130 -2.10026 -2.98323 -2.87095 -0.50077
131 -1.06341 -2.28253 -1.77993 -0.96052
132 -1.37823 -2.67223 -0.59025 -0.68132
133 -2.34104 -2.83373  0.61418 -2.08883
134 -1.68985 -0.52139 -1.03676  5.56547
135 -2.32902 -3.09547 -0.87143  4.31832
136 -1.67682 -2.06352 -0.92399 -5.20456
137  5.43567 -0.94406 -0.34384 -0.74809
138  2.53226 -1.82389  0.22375 -0.24849
139 -1.73035 -0.35272  0.30800 -3.33270
140 -1.15775 -3.03817  2.75998  1.79609
141  5.31263 -0.51419 -2.21476 -0.82324
142 -1.64693 -2.63432  2.81806 -1.67639
143 -0.41239 -2.57564 -4.30759 -3.56882
144 -1.58983 -3.75303  3.63898 -0.11558
145  5.69676  0.51709  0.89312 -1.68927
146  1.52672  0.13900 -2.08504  0.44982
147  4.62779 -1.51985  0.40287 -1.79172
148  5.55324 -0.60954  3.81553  5.30920
149 -0.20324 -1.37440  2.30868 -4.69179
151 -0.06597 -2.79489 -1.24212  2.80487
152  1.87942 -1.50861 -1.58751 -3.52989
153 -1.13604 -2.80295  2.44376 -0.53675
#最初の主成分軸二つについて座標値をベクトルに格納
PC1_03 <- PCA_model03$sites[, 1]
PC2_03 <- PCA_model03$sites[, 2]
#散布図作成
plot(
  PC2_03 ~ PC1_03,#モデル式(Y ~ X)
  cex = 0.5, pch = air_data$Month, #pchの引数としてmonthの値を使う
  xlab = "PC1 (89.0 %)", ylab = "PC2 (10.5 %)",
  asp = 1
)
#散布図上の点のそばに、文字を追加する
text(PC1_03 + 0.5, PC2_03, labels = rownames(air_data), cex = 0.8)

データの標準化をする場合の可視化(図8.10作成用のコード)

#scale関数を使ってデータの標準化
air_data2 <- scale(air_data)
#標準化後のデータの基本統計量
summary(air_data2[, 1:4])
     Ozone            Solar.R             Wind               Temp        
 Min.   :-1.2351   Min.   :-1.9506   Min.   :-2.14735   Min.   :-2.1818  
 1st Qu.:-0.7242   1st Qu.:-0.7822   1st Qu.:-0.71384   1st Qu.:-0.7128  
 Median :-0.3335   Median : 0.2435   Median :-0.06736   Median : 0.1267  
 Mean   : 0.0000   Mean   : 0.0000   Mean   : 0.00000   Mean   : 0.0000  
 3rd Qu.: 0.5981   3rd Qu.: 0.7756   3rd Qu.: 0.43859   3rd Qu.: 0.7038  
 Max.   : 3.7835   Max.   : 1.6368   Max.   : 3.02452   Max.   : 2.0155  
#標準化されたデータに対してPCを実行
PCA_model04 <- summary(capscale(air_data2[, 1:4] ~ 1, distance = "euclidean"))
#PCAの結果の表示(寄与率の確認が必要)
PCA_model04

Call:
capscale(formula = air_data2[, 1:4] ~ 1, distance = "euclidean") 

Partitioning of mean squared Euclidean distance:
              Inertia Proportion
Total               4          1
Unconstrained       4          1

Eigenvalues, and their contribution to the mean squared Euclidean distance 

Importance of components:
                      MDS1   MDS2   MDS3    MDS4
Eigenvalue            2.36 0.8947 0.4757 0.26968
Proportion Explained  0.59 0.2237 0.1189 0.06742
Cumulative Proportion 0.59 0.8136 0.9326 1.00000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  4.579976 


Species scores

          MDS1    MDS2    MDS3    MDS4
Ozone    2.072  0.1360  0.1811 -0.9484
Solar.R  1.115 -1.9461 -0.4387  0.1467
Wind    -1.749 -0.9319  1.0907 -0.3588
Temp     1.945  0.1329  1.0392  0.6038


Site scores (weighted sums of species scores)

         MDS1     MDS2      MDS3      MDS4
1   -0.077501  0.08510 -0.796246 -0.274327
2   -0.115198  0.38974 -0.375988 -0.074318
3   -0.355023 -0.02310  0.164546  0.206209
4   -0.316940 -0.73840 -0.798403 -0.187157
7   -0.140981 -0.49952 -0.985727  0.037338
8   -0.664213  0.09896 -0.231909 -0.749328
9   -1.015840  0.10764  0.760003 -0.978377
12  -0.196426 -0.35947 -0.608040  0.230211
13  -0.217594 -0.49955 -0.877101  0.270941
14  -0.252846 -0.51309 -0.543373  0.160636
15  -0.695508  0.28333 -0.285943 -0.769891
16  -0.283334 -0.83150 -0.760219  0.006957
17  -0.196263 -0.71319 -0.515653 -0.372898
18  -0.966038 -0.07956  0.258091 -0.928872
19  -0.148730 -0.75107 -0.527337 -0.149958
20  -0.546529  0.58008 -0.515958 -0.223943
21  -0.681892  0.72627 -0.599452 -0.197788
22  -0.366399 -1.02839  0.280330  0.090977
23  -0.617017  0.65747 -0.538284 -0.149299
24  -0.501257  0.24857 -0.323823 -0.801329
28  -0.525681  0.61805  0.071192 -0.441092
29  -0.063100 -0.57065  0.626431 -0.192018
30   0.592837  0.12997 -0.382892 -1.069277
31   0.138735 -0.29664 -0.583272  0.310784
38  -0.044144  0.27750  0.237374  0.403752
40   0.298354 -0.63732  0.866119 -0.189974
41   0.210841 -0.69132  0.320834  0.520971
44   0.013933  0.27162 -0.025124  0.669805
47  -0.310103 -0.32587  0.516917  0.043022
48  -0.450470 -1.07378  0.866598 -0.811156
49  -0.438837  0.65660 -0.413140 -0.243238
50  -0.356488  0.16731  0.041607  0.206841
51  -0.237531  0.16673 -0.005338  0.426008
62   0.884920  0.04225 -0.406072 -1.081883
63   0.245397 -0.21886  0.117272  0.308483
64   0.082043 -0.19095 -0.071496  0.458231
66   0.398429  0.37726 -0.361875  0.161523
67   0.164848 -0.62789  0.091811  0.354166
68   0.626248 -0.08408 -0.248363  0.202843
69   0.736287 -0.08081  0.134917 -0.116843
70   0.765056 -0.07006  0.051542 -0.068365
71   0.491831  0.25706  0.290257 -0.192572
73  -0.335434 -0.64603  0.103541  0.211398
74  -0.229768 -0.23595  0.735704  0.083083
76  -0.448575  0.35507  0.819626  0.339561
77   0.277608 -0.15782 -0.365525  0.327119
78   0.107497 -0.41970  0.040626  0.407386
79   0.441023 -0.21785 -0.327999  0.270770
80   0.531863  0.31969 -0.116028  0.016425
81   0.196826 -0.20766  0.484453 -0.169549
82  -0.248868  0.94478 -0.253245  0.370424
85   0.487156 -0.36471  0.066132 -0.176312
86   0.565211  0.01329  0.146726 -0.823431
87  -0.091205  0.54039  0.171306  0.611208
88   0.001727  0.38579  0.831814 -0.095816
89   0.497802  0.07856  0.166702 -0.133654
90   0.365086 -0.23739 -0.110112  0.492224
91   0.364318 -0.13400 -0.168264  0.050643
92   0.235686 -0.24934 -0.047326 -0.065410
93   0.057396  0.63978 -0.043721  0.307007
94  -0.425885  0.49691  0.852552  0.352388
95  -0.067629  0.62210  0.022837  0.772840
99   0.892091  0.11507 -0.201165 -0.604708
100  0.466646 -0.14411  0.594886 -0.373718
101  0.641909  0.10270  0.400497 -0.657959
104  0.090043 -0.09382  0.540732  0.226283
105  0.023631 -0.48824  0.174747  0.461745
106  0.133665  0.16640  0.170608 -0.377203
108 -0.240985  0.47787  0.185316  0.214298
109  0.117252  0.83037 -0.099517 -0.179290
110 -0.093788  0.43745 -0.297451  0.406236
111 -0.032064 -0.33205 -0.011334  0.231867
112  0.003808 -0.04150  0.047458 -0.048807
113 -0.266727 -0.66880  0.459475  0.077643
114 -0.582287  0.38764  0.497465 -0.072792
116  0.070899 -0.10427 -0.022820  0.043669
117  0.998657  0.24223 -0.491440 -1.866700
118  0.397688  0.02218  0.129526 -0.082384
120  0.514793  0.01717  0.848918  0.215050
121  0.992275  0.35786 -0.142376 -0.213026
122  0.707184  0.05627  0.339268  0.290189
123  0.630811  0.27417  0.348553  0.124660
124  0.592108  0.33690  0.355658 -0.298110
125  0.619162  0.28817  0.081045  0.271953
126  0.687998  0.47890 -0.141777  0.565595
127  0.713012  0.36678  0.107100  0.081311
128  0.188588  0.58205  0.274276  0.392578
129 -0.260999  0.12152  1.111575 -0.020557
130 -0.046526 -0.37209  0.036659  0.552254
131 -0.072208 -0.19631 -0.056217  0.408558
132 -0.145684 -0.28597 -0.137266  0.283066
133 -0.087251 -0.35427 -0.421542  0.251596
134 -0.083945 -0.49872  0.655114 -0.190079
135 -0.283216 -0.67177  0.415766  0.032845
136  0.113104 -0.05352 -0.615276  0.568729
137 -0.475610  0.62909  0.059100  0.111208
138 -0.392341  0.19864 -0.028198  0.087984
139  0.195346 -0.06382 -0.456647  0.206848
140 -0.413793 -0.44695 -0.125545 -0.228494
141 -0.346243  0.66728  0.206853  0.300789
142 -0.214280 -0.30706 -0.525847 -0.039088
143  0.031092  0.02434 -0.142630  0.871209
144 -0.426926 -0.45694 -0.442044 -0.160614
145 -0.347537  0.78170 -0.099975 -0.061089
146 -0.037380  0.19252  0.259515  0.188756
147 -0.470116  0.54114 -0.154635  0.133163
148 -0.812686  0.30966  0.428487 -0.758971
149 -0.060559  0.09869 -0.756341  0.120822
151 -0.354475 -0.30441  0.340501  0.137283
152 -0.126962  0.32679 -0.265491  0.482428
153 -0.296887 -0.30928 -0.358177 -0.061125
#最初の主成分軸2つの上の座標値をベクトルに格納
PC1_04 <- PCA_model04$sites[, 1]
PC2_04 <- PCA_model04$sites[, 2]
#散布図
plot(
  PC2_04 ~ PC1_04,
  cex = 0.5, pch = air_data$Month,
  xlab = "PC1 (59.0 %)", ylab = "PC2 (22.4 %)",  
  asp = 1
)
#文字の追加
text(PC1_04 + 0.05, PC2_04, labels = rownames(air_data), cex = 0.8)

標準化はいつもしたほうがよいのか?

#Large variations between variables with the same unit
#個体数が大きく異なる2種類の植物プランクトンの比較
summary(species_ryuko_data$`Fragilaria crotonensis`)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   0.000   2.000   2.533   4.500   8.000 
summary(species_ryuko_data$`Micrasterias hardyi`)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00    0.50    6.00   18.73   28.00   96.00 

BOX8 R標準の主成分分析用関数を使う場合

####Standard way of PCA####
#標準化しない場合
PCA_s01 <- prcomp(air_data[, 1:4], scale. = F)
#標準化する場合
PCA_s02 <- prcomp(air_data[, 1:4], scale. = T)
#標準化しない場合の結果
summary(PCA_s01)
Importance of components:
                           PC1     PC2     PC3    PC4
Standard deviation     92.0355 31.5720 6.67607 2.7591
Proportion of Variance  0.8898  0.1047 0.00468 0.0008
Cumulative Proportion   0.8898  0.9945 0.99920 1.0000
#可視化(標準化無し)
biplot(PCA_s01)

#可視化(標準化有り)
biplot(PCA_s02)

8.3 主成分分析の弱点を克服する:さまざまな距離と非類似度

8.3.2 さまざまな距離を用いた(非)類似度 の定量化

(非)類似度の理解のための仮想データ

#数値ベクトルsp1, sp2を作る。特に数値に意味はない
sp1 <- c(3.0, 0.0, 0.1, 6.0)
sp2 <- c(3.5, 0.5, 0.0, 6.0)
#ベクトル(sp1, sp2)からデータフレームを作る (列の名前はsp.1, sp.2 [ベクトルとは変える])
comm <- data.frame(sp.1 = sp1, sp.2 = sp2) #data.frame関数でデータフレームが作り,新しいオブジェクトcommに代入する.これによりcommという名前のデータフレームができる
rownames(comm) <- c("A", "B", "C", "D") #rownames関数を使って,データフレームに列名を付ける

今作ったデータを単純に2次元散布図にする

plot(
  sp.2 ~ sp.1, data = comm, #モデル式(Y ~ X)とデータの指定
  cex = 3.0, #マークの大きさの指定
  xlim = c(0, 7), ylim = c(0, 7), #x軸とy軸の最小・最大を指定
  asp = 1.0 #縦横比の指定
)
text(comm$sp.1, comm$sp.2, labels = rownames(comm), cex = 0.8) #データフレームcommの行名(=サンプル名)をrownames関数を使って呼び出し,それをlabelsの引数とすることで各点にサンプル名を文字として追加する

実際に距離を計算してみる

#examples of distance: vegdist(ターゲットの多変量データフレーム, method = 距離名)の形式で計算できる
#ユークリッド距離
vegdist(comm, method = "euclidean")  #Euclidean 
         A        B        C
B 4.242641                  
C 4.545327 0.509902         
D 3.905125 8.139410 8.414868
#ジャッカード距離
vegdist(comm, method = "jaccard", binary = TRUE) #Jaccard, binaryというパラメータの引数をTRUEにするのが重要
    A   B   C
B 0.5        
C 0.5 1.0    
D 0.0 0.5 0.5
#ブレイ・カーティス距離
vegdist(comm, method = "bray") #Bray-Curtis
          A         B         C
B 0.8571429                    
C 0.9696970 1.0000000          
D 0.2972973 0.9200000 0.9834711

8.3.4 主座標分析(PCoA)

仮想二次元データ(comm)に対する主成分分析
####PCoA for comm####
#ブレイ・カーティス距離を用いて主座標分析を実行: distanceの引数で距離の種類を指定する
#主座標分析の実行結果は新しいオブジェクトを作って保存:ここではオブジェクト名をPCoA_comm_BCとした
PCoA_comm_BC <- summary(capscale(comm ~ 1, distance = "bray"))
#結果を確認(特に寄与率):PCoAの結果のフォーマットはPCAの結果のフォーマットとほぼ同じ
PCoA_comm_BC

Call:
capscale(formula = comm ~ 1, distance = "bray") 

Partitioning of squared Bray distance:
              Inertia Proportion
Total           1.144          1
Unconstrained   1.144          1

Eigenvalues, and their contribution to the squared Bray distance 

Importance of components:
                        MDS1   MDS2    MDS3
Eigenvalue            0.6267 0.4757 0.04187
Proportion Explained  0.5477 0.4157 0.03659
Cumulative Proportion 0.5477 0.9634 1.00000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  1.361165 


Species scores

        MDS1   MDS2   MDS3
sp.1 -0.6941 0.6827 0.2009
sp.2 -0.7301 0.5515 0.1656


Site scores (weighted sums of species scores)

     MDS1    MDS2     MDS3
A -0.5977  0.2128 -0.99348
B  0.2246 -1.1542  0.08387
C  1.0159  0.5977 -0.01691
D -0.6427  0.3436  0.92652
#主座標軸1, 2上の座標値には「PCoAの結果を格納したデータフレーム$sites」でアクセスし、それらの座標値を新しいベクトルに格納
PCoA1_comm_BC <- PCoA_comm_BC$sites[, 1] #主座標軸1の座標値を呼び出して(右辺)、ベクトル(左辺)に格納
PCoA2_comm_BC <- PCoA_comm_BC$sites[, 2] #主座標軸2の座標値を呼び出して(右辺)、ベクトル(左辺)に格納
#散布図
plot(
  PCoA2_comm_BC ~ PCoA1_comm_BC, #モデル式(Y ~ X)
  cex = 3, #ポイントの大きさの指定
  xlab = "PCoA1 (54.5 %)", ylab = "PCoA2 (41.8 %)", #寄与率を軸名の中に含める
  asp = 1 #縦横比を1に指定
)
#各データを示す文字を追加: labelsの引数にcommの行名(つまりサンプル名A,B,C,D)を指定
text(PCoA1_comm_BC, PCoA2_comm_BC, labels = rownames(comm), cex = 0.8)

植物プランクトンデータの主座標分析

ジャッカード距離を使う場合

#With Jaccard
#二値化するためにデータの中身を新しいオブジェクトにコピー(元のデータ自体は変更せずにとっておくため)
species_ryuko_data_b <- species_ryuko_data #copy(コピー先の新しいオブジェクト名 <- コピー元のオブジェクト名) 
#二値化する
species_ryuko_data_b[species_ryuko_data_b > 0] <- 1 #binalization
#二値化したデータに対してjaccard距離を選んで主座標分析を実行し,その結果をPCOA_ryuko_Jというオブジェクトに保存
PCoA_ryuko_J <- summary(capscale(species_ryuko_data_b ~ 1, distance = "jaccard"))
#結果の確認(特に寄与率),以降のステップにはPCOAの結果を保存したPCoA_ryuko_Jを使う
PCoA_ryuko_J

Call:
capscale(formula = species_ryuko_data_b ~ 1, distance = "jaccard") 

Partitioning of squared Jaccard distance:
              Inertia Proportion
Total           4.325          1
Unconstrained   4.325          1

Eigenvalues, and their contribution to the squared Jaccard distance 

Importance of components:
                        MDS1   MDS2   MDS3    MDS4    MDS5    MDS6    MDS7    MDS8
Eigenvalue            0.6887 0.5563 0.4763 0.41728 0.32594 0.32163 0.26783 0.25467
Proportion Explained  0.1592 0.1286 0.1101 0.09649 0.07537 0.07437 0.06193 0.05889
Cumulative Proportion 0.1592 0.2879 0.3980 0.49447 0.56984 0.64421 0.70614 0.76503
                         MDS9   MDS10   MDS11   MDS12   MDS13   MDS14
Eigenvalue            0.21913 0.21629 0.18028 0.16592 0.13473 0.09986
Proportion Explained  0.05067 0.05001 0.04168 0.03837 0.03115 0.02309
Cumulative Proportion 0.81570 0.86571 0.90739 0.94576 0.97691 1.00000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  2.789475 


Species scores

                                             MDS1      MDS2       MDS3       MDS4
Acanthoceras sp.                       -0.0232042 -0.111970 -0.1877136 -0.0241159
Acanthoceras zachariasii               -0.0303732  0.018031  0.1982710  0.1088844
Actinastrum hantzschii                  0.2084898  0.057155  0.0563786 -0.1113156
Anabaena affinis                        0.0450388 -0.159605  0.1396087 -0.1373159
Anabaena flos-aquae                     0.0724830  0.028733 -0.0082664 -0.0572594
Anabaena macrospora                     0.0562025 -0.013547  0.0120178 -0.0323947
Anabaena spiroides                      0.0839420  0.070483  0.0022651 -0.2019757
Ankistrodesmus sp.                     -0.0435654 -0.027814 -0.0227934 -0.0822358
Aphanizomenon flos-aquae               -0.0401653  0.080630  0.0377388  0.0387137
Aphanocapsa sp.                         0.0317202  0.116983  0.0206273 -0.1975353
Aphanothece sp.                         0.0047827  0.030468 -0.0366078 -0.0669889
Asterionella formosa                   -0.1840231  0.159988 -0.1736499 -0.0935899
Asterionella sp.                        0.0577446  0.077950  0.0570120 -0.0712508
Aulacoseira ambigua                     0.0470051  0.216666  0.0493471  0.0144066
Aulacoseira distans                     0.1437309  0.140283  0.0148888 -0.0199463
Aulacoseira granulata                   0.0470051  0.216666  0.0493471  0.0144066
Aulacoseira nipponica                  -0.0607295  0.048806  0.0006281 -0.0176131
Aulacoseira sp.                        -0.2652695  0.067835 -0.1591556  0.0586128
Botryococcus braunii                    0.0645538  0.228105  0.1443343 -0.1426641
Botryococcus sp.                        0.0679921 -0.046207 -0.0130758  0.0765959
Ceratium hirundinella                   0.1981711  0.127750  0.0239318  0.0291138
Ceratium sp.                            0.0758235  0.009017  0.0222473  0.0062928
Chlamydomonas sp.                      -0.0365592 -0.141075  0.1153500 -0.0132309
Chlorogonium elongatum                  0.0205642  0.031824  0.0371107  0.0563268
Chroococcus dispersus                  -0.0005463  0.068211  0.0430258 -0.0779621
Chroococcus sp.                        -0.0056632 -0.045123 -0.2013050 -0.0681646
Cladophora glomerata                   -0.0631682  0.107351  0.0152424 -0.0285149
Cladophora sp.                         -0.0024387  0.058545  0.0146143 -0.0109019
Closterium aciculare                    0.0913153  0.072916  0.0347503 -0.0921046
Closterium aciculare var.subponum       0.0679921 -0.046207 -0.0130758  0.0765959
Closterium moniliferum                 -0.0631682  0.107351  0.0152424 -0.0285149
Cocconeis placentula                    0.0023440  0.089013 -0.0219935 -0.0778908
Coelastrum cambricum                    0.1438156 -0.037190  0.0091715  0.0828886
Coelastrum microporum                   0.0933876 -0.051189 -0.0008350 -0.0150944
Coelosphaerium kuetzingianum           -0.0758882 -0.070210  0.0989746 -0.2404177
Coelosphaerium sp.                      0.0575463 -0.121798 -0.1777729  0.0754202
Cosmarium sp.                           0.0855787  0.014423  0.0546386 -0.1520393
Cosmocladium constrictum                0.1320261 -0.004531  0.0342650 -0.0261019
Crucigenia lauterbornei                 0.0679921 -0.046207 -0.0130758  0.0765959
Crucigenia lauterbornii                 0.0047827  0.030468 -0.0366078 -0.0669889
Cryptomonas sp.                         0.0253954 -0.004982  0.0122409 -0.0916903
Cyclotella meneghiniana                 0.0507423  0.057310  0.0127437 -0.1023524
Cyclotella sp.                         -0.1042949  0.020992 -0.0221653 -0.0998489
Cymbella sp.                            0.0255599  0.107460  0.0677226 -0.0463909
Diatoma vulgare                         0.0781675  0.098030  0.0002538 -0.0715980
Dictyosphaerium sp.                    -0.0590271  0.035022  0.0517032  0.0422595
Dinobryon cylindricum                  -0.2294768  0.205718  0.0060443  0.0491264
Dinobryon sp.                          -0.0590271  0.035022  0.0517032  0.0422595
Diploneis sp.                           0.0343605 -0.016167  0.0508682  0.0271651
Elakatothrix gelatinosa                 0.0072626  0.002599 -0.0124477  0.0589828
Eudorina sp.                           -0.0365592 -0.141075  0.1153500 -0.0132309
Euglena proxima                         0.1154938  0.072132  0.0812700  0.0023762
Euglena sp.                            -0.1055200 -0.163907  0.0803158 -0.0037764
Fragilaria crotonensis                 -0.1989727  0.240561 -0.0211937 -0.0007238
Frustulia sp.                          -0.0689608 -0.022832 -0.0350343  0.0094545
Gloeocystis sp.                        -0.0024387  0.058545  0.0146143 -0.0109019
Gonium sp.                              0.0562025 -0.013547  0.0120178 -0.0323947
Gyrosigma sp.                          -0.0024387  0.058545  0.0146143 -0.0109019
Hydrodictyon sp.                        0.0758235  0.009017  0.0222473  0.0062928
Lyngbya limnetica                       0.1150797 -0.012492 -0.0335831  0.1110267
Melosira sp.                           -0.1083446 -0.142432  0.1440367  0.0060884
Melosira varians                        0.0302341  0.232406 -0.0033745 -0.1378353
Merismopedia sp.                       -0.0689608 -0.022832 -0.0350343  0.0094545
Micrasterias hardyi                    -0.1172479  0.002391  0.1995649  0.0274410
Micrasterias mahabuleshwarensis         0.1972391  0.119554  0.0654828  0.0537539
Microcystis aeruginosa                 -0.0656359  0.170613  0.0683158 -0.0857183
Microcystis ichthyoblabe                0.0589966 -0.182163 -0.0514668 -0.1667930
Microcystis novacekii                  -0.0433097  0.037913 -0.0467553 -0.1992325
Microcystis sp.                        -0.1430743 -0.074538 -0.2261013  0.0448682
Microcystis viridis                    -0.0751669  0.056728 -0.2334598  0.0186292
Microcystis wesenbergii                -0.1031228  0.114083 -0.1698116 -0.1797346
Mougeotia sp.                           0.2299171  0.091216 -0.0545740 -0.0152000
Navicula sp.                           -0.1226946  0.058907  0.0253333  0.0788490
Nitzschia sp.                          -0.0234713 -0.099977  0.0696764  0.0050113
Oedogonium sp.                          0.2700625  0.036540  0.0275372 -0.0176673
Oocystis lacustris                      0.1320261 -0.004531  0.0342650 -0.0261019
Oscillatoria kawamurae                  0.0470875  0.033715 -0.0205073  0.0344309
Oscillatoria sp.                       -0.0024387  0.058545  0.0146143 -0.0109019
Oscillatoria tenuis                     0.0562025 -0.013547  0.0120178 -0.0323947
Paulschulzia pseudovolvox               0.1477964 -0.004238  0.0395514  0.0549343
Pediastrum biwae                        0.2874021 -0.035303 -0.1512714 -0.0186033
Pediastrum boryanum                    -0.0009687 -0.069039 -0.0481101  0.0860503
Pediastrum duplex                       0.1241947 -0.059754 -0.0010581  0.0442012
Peridinium sp.                          0.0798042  0.041969  0.0526272 -0.0216615
Phormidium tenue                       -0.0661062  0.082429 -0.0117556  0.0256877
Pleodorina californica                  0.2494497  0.071991 -0.0213115  0.0070341
Pleurotaenium sp.                       0.0562025 -0.013547  0.0120178 -0.0323947
Rhoicosphenia abbreviata                0.0470875  0.033715 -0.0205073  0.0344309
Scenedesmus opoliensis                 -0.0470051 -0.216666 -0.0493471 -0.0144066
Schroederia ancora                      0.0562025 -0.013547  0.0120178 -0.0323947
Sphaerocystis schroeteri                0.1569148  0.004971  0.0319300  0.1434102
Spirogyra sp.                           0.1692411 -0.023948 -0.1540551  0.0543474
Spondylosium moniliforme                0.1012190  0.004035  0.0344881 -0.0853975
Staurastrum arctiscon                   0.0196433 -0.154622  0.1273678 -0.0456256
Staurastrum dorsidentiferum            -0.0623289  0.091330  0.2143808 -0.0084313
Staurastrum dorsidentiferum var.ornatu  0.0679921 -0.046207 -0.0130758  0.0765959
Staurastrum sebaldi                     0.0823393 -0.130258 -0.1926712  0.0036719
Staurastrum sp.                        -0.1251333  0.117451  0.0399476  0.0679471
Stauroneis sp.                          0.0047827  0.030468 -0.0366078 -0.0669889
Stephanodiscus sp.                     -0.0607295  0.048806  0.0006281 -0.0176131
Stephanodiscus suzukii                  0.0759348 -0.063652 -0.1770463 -0.1922496
Surirella sp.                          -0.0796626 -0.085366  0.1260908  0.0796854
Synedra sp.                            -0.0056327  0.102018 -0.2015414  0.0563689
Synedra ulna                            0.2205823 -0.018913  0.0582999  0.1068207
Tabellaria sp.                          0.0679921 -0.046207 -0.0130758  0.0765959
Tetraedron gracile                      0.0354136 -0.154330  0.1326541  0.0354107
Tetraedron sp.                          0.0562025 -0.013547  0.0120178 -0.0323947
Tetraselmis cordiformis                 0.0758235  0.009017  0.0222473  0.0062928
Tetraspora lacustris                    0.1434752  0.074556  0.0388507  0.0970504
Tetraspora sp.                          0.0679921 -0.046207 -0.0130758  0.0765959
Trachelomonas hispida                  -0.0928647 -0.047539  0.1178055 -0.0259986
Trachelomonas sp.                       0.0815980 -0.018530  0.0242586 -0.1240850
Treubaria setigerum                     0.0470875  0.033715 -0.0205073  0.0344309
Ulothrix zonata                         0.0791593  0.040015  0.0388730 -0.1349868
Uroglena americana                     -0.0063811 -0.115589  0.0909830 -0.1719101
Uroglena sp.                           -0.0024387  0.058545  0.0146143 -0.0109019
Xanthidium hastiferum                   0.0724830  0.028733 -0.0082664 -0.0572594
Xanthidium sp.                          0.0679921 -0.046207 -0.0130758  0.0765959
                                            MDS5       MDS6
Acanthoceras sp.                        0.025544  0.1337098
Acanthoceras zachariasii                0.135601 -0.1317733
Actinastrum hantzschii                  0.010099  0.0671719
Anabaena affinis                        0.012894  0.0645994
Anabaena flos-aquae                     0.035941 -0.0169429
Anabaena macrospora                     0.011636  0.0846928
Anabaena spiroides                     -0.024662 -0.0031456
Ankistrodesmus sp.                     -0.041138  0.0966294
Aphanizomenon flos-aquae                0.081394  0.0439436
Aphanocapsa sp.                        -0.101463 -0.1218458
Aphanothece sp.                         0.023096 -0.0578132
Asterionella formosa                   -0.042251 -0.0792680
Asterionella sp.                       -0.080882  0.0017632
Aulacoseira ambigua                    -0.056303  0.0677057
Aulacoseira distans                     0.211795  0.0684130
Aulacoseira granulata                  -0.056303  0.0677057
Aulacoseira nipponica                   0.006269  0.0368791
Aulacoseira sp.                        -0.036124  0.0294955
Botryococcus braunii                    0.005805  0.0251344
Botryococcus sp.                       -0.105495 -0.0069286
Ceratium hirundinella                  -0.020174 -0.0917538
Ceratium sp.                            0.027686  0.0334296
Chlamydomonas sp.                       0.033298 -0.0389903
Chlorogonium elongatum                  0.075125  0.0070646
Chroococcus dispersus                  -0.047259  0.0875643
Chroococcus sp.                         0.046101 -0.0865286
Cladophora glomerata                   -0.021085 -0.0120430
Cladophora sp.                         -0.027354 -0.0489221
Closterium aciculare                   -0.035568  0.0957043
Closterium aciculare var.subponum      -0.105495 -0.0069286
Closterium moniliferum                 -0.021085 -0.0120430
Cocconeis placentula                   -0.004258 -0.1067352
Coelastrum cambricum                   -0.077809  0.0265010
Coelastrum microporum                  -0.137535  0.0119683
Coelosphaerium kuetzingianum           -0.032002  0.0873903
Coelosphaerium sp.                     -0.082490 -0.0356440
Cosmarium sp.                          -0.085569  0.0695822
Cosmocladium constrictum                0.039323  0.1181223
Crucigenia lauterbornei                -0.105495 -0.0069286
Crucigenia lauterbornii                 0.023096 -0.0578132
Cryptomonas sp.                        -0.032040  0.0188969
Cyclotella meneghiniana                 0.066181 -0.0318517
Cyclotella sp.                         -0.034868  0.1335084
Cymbella sp.                           -0.027831 -0.0734768
Diatoma vulgare                         0.023429 -0.0733057
Dictyosphaerium sp.                    -0.013450 -0.0150857
Dinobryon cylindricum                   0.039093  0.0074623
Dinobryon sp.                          -0.013450 -0.0150857
Diploneis sp.                          -0.150985 -0.0031174
Elakatothrix gelatinosa                -0.099226  0.0299505
Eudorina sp.                            0.033298 -0.0389903
Euglena proxima                        -0.154929 -0.0638967
Euglena sp.                             0.024201  0.0387422
Fragilaria crotonensis                 -0.033215 -0.0694495
Frustulia sp.                          -0.009097  0.0777324
Gloeocystis sp.                        -0.027354 -0.0489221
Gonium sp.                              0.011636  0.0846928
Gyrosigma sp.                          -0.027354 -0.0489221
Hydrodictyon sp.                        0.027686  0.0334296
Lyngbya limnetica                      -0.037514 -0.0427684
Melosira sp.                            0.022388  0.1083492
Melosira varians                       -0.015023 -0.0797698
Merismopedia sp.                       -0.009097  0.0777324
Micrasterias hardyi                    -0.141769  0.0889388
Micrasterias mahabuleshwarensis         0.155075  0.0404250
Microcystis aeruginosa                  0.008565  0.1593961
Microcystis ichthyoblabe                0.075045 -0.0731924
Microcystis novacekii                  -0.000136  0.1603880
Microcystis sp.                        -0.001590  0.0566242
Microcystis viridis                     0.182518  0.0916077
Microcystis wesenbergii                -0.087686 -0.1060750
Mougeotia sp.                          -0.014973 -0.0832284
Navicula sp.                           -0.028946 -0.0074785
Nitzschia sp.                          -0.129762 -0.1301323
Oedogonium sp.                         -0.057585  0.0453288
Oocystis lacustris                      0.039323  0.1181223
Oscillatoria kawamurae                  0.067981 -0.0358398
Oscillatoria sp.                       -0.027354 -0.0489221
Oscillatoria tenuis                     0.011636  0.0846928
Paulschulzia pseudovolvox              -0.142973 -0.0075065
Pediastrum biwae                        0.090995  0.0147869
Pediastrum boryanum                    -0.114592  0.0708039
Pediastrum duplex                      -0.093859  0.0777642
Peridinium sp.                         -0.037478 -0.0005779
Phormidium tenue                       -0.042851 -0.0413149
Pleodorina californica                 -0.002449 -0.0313813
Pleurotaenium sp.                       0.011636  0.0846928
Rhoicosphenia abbreviata                0.067981 -0.0358398
Scenedesmus opoliensis                  0.056303 -0.0677057
Schroederia ancora                      0.011636  0.0846928
Sphaerocystis schroeteri               -0.006544  0.1258655
Spirogyra sp.                          -0.076802  0.0414414
Spondylosium moniliforme               -0.004354  0.0523265
Staurastrum arctiscon                   0.044935  0.0457025
Staurastrum dorsidentiferum             0.059394  0.0934571
Staurastrum dorsidentiferum var.ornatu -0.105495 -0.0069286
Staurastrum sebaldi                    -0.099802  0.1867149
Staurastrum sp.                        -0.056300 -0.0564006
Stauroneis sp.                          0.023096 -0.0578132
Stephanodiscus sp.                      0.006269  0.0368791
Stephanodiscus suzukii                  0.025697  0.0170611
Surirella sp.                           0.092927 -0.0243185
Synedra sp.                            -0.015495  0.0017495
Synedra ulna                            0.008953  0.1182583
Tabellaria sp.                         -0.105495 -0.0069286
Tetraedron gracile                     -0.137361 -0.0799264
Tetraedron sp.                          0.011636  0.0846928
Tetraselmis cordiformis                 0.027686  0.0334296
Tetraspora lacustris                    0.170793  0.0046543
Tetraspora sp.                         -0.105495 -0.0069286
Trachelomonas hispida                   0.030803  0.0601287
Trachelomonas sp.                      -0.020404  0.1035897
Treubaria setigerum                     0.067981 -0.0358398
Ulothrix zonata                        -0.047758  0.0546676
Uroglena americana                      0.024354 -0.0779065
Uroglena sp.                           -0.027354 -0.0489221
Xanthidium hastiferum                   0.035941 -0.0169429
Xanthidium sp.                         -0.105495 -0.0069286


Site scores (weighted sums of species scores)

                         MDS1    MDS2      MDS3     MDS4     MDS5    MDS6
20180316_1_ryuko.csv -0.15736 -1.0499 -2.049225 -0.01932  0.36428 -0.4879
20180316_2_ryuko.csv -0.55074 -1.9595  1.435229 -0.21744  0.52728 -0.6625
20181004_1_ryuko.csv  0.84666 -0.1882  0.149530 -0.53239  0.18426  1.4390
20181004_2_ryuko.csv  1.14224  0.1252  0.276809  0.10342  0.43841  0.5680
20181004_3_ryuko.csv  0.38257 -0.0692  0.152306 -1.50687 -0.50736  0.3211
20181025_1_ryuko.csv  0.30979  0.4420  0.461745  0.92569  1.18960  0.1200
20181025_2_ryuko.csv  1.02426 -0.6418 -0.162694  1.25880 -1.67051 -0.1177
20190425_1_ryuko.csv -0.03674  0.8132  0.181837 -0.17916 -0.43315 -0.8312
20190425_2_ryuko.csv -1.03886 -0.3171 -0.435910  0.15538 -0.14405  1.3207
20190425_3_ryuko.csv -0.95912  0.3317 -0.328105  0.60132 -0.24539  0.1292
20190425_4_ryuko.csv -0.91486  0.6779  0.007815 -0.28946  0.09927  0.6266
20190425_5_ryuko.csv -0.88921  0.4865  0.643311  0.69451 -0.21297 -0.2563
20190520_1_ryuko.csv  0.07205  0.4232 -0.455489 -1.10092  0.36573 -0.9823
20190520_2_ryuko.csv  0.05997  0.4577  0.377999 -0.45941 -1.03188 -0.5778
20190520_3_ryuko.csv  0.70935  0.4683 -0.255159  0.56585  1.07648 -0.6089
#最初の二つの主座標軸上の座標値をベクトルに格納
PCoA1_ryuko_J <- PCoA_ryuko_J$sites[, 1]
PCoA2_ryuko_J <- PCoA_ryuko_J$sites[, 2]
#散布図の作成
plot(
  PCoA2_ryuko_J ~ PCoA1_ryuko_J, #モデル式(Y ~ X)
  cex = 3, pch = as.numeric(as.factor(phyto_metadata$month)), #cexはサイズの指定, pchはマークの種類をメタデータの中に保存されているmonthの違いによって指定する
  xlab = "PCoA1 (19.7 %)", ylab = "PCoA2 (12.3 %) ", #寄与率を軸名に書き込む
  asp = 1, #縦横比の指定
  main = "With Jaccard" #グラフのタイトルの指定
)

ブレイ・カーティス距離を使う場合

#With Bray-Curtis
#ブレイカーティス距離を選んで主座標分析を実行し,その結果をPCOA_ryuko_BCというオブジェクトに保存
PCoA_ryuko_BC <- summary(capscale(species_ryuko_data ~ 1, distance = "bray"))
PCoA_ryuko_BC #結果の中から寄与率を確認,以降のステップにはPCOAの結果を保存したPCoA_ryuko_BCを使う

Call:
capscale(formula = species_ryuko_data ~ 1, distance = "bray") 

Partitioning of squared Bray distance:
              Inertia Proportion
Total           4.626          1
Unconstrained   4.626          1

Eigenvalues, and their contribution to the squared Bray distance 

Importance of components:
                        MDS1   MDS2   MDS3   MDS4    MDS5    MDS6    MDS7    MDS8    MDS9
Eigenvalue            1.1755 0.6812 0.5467 0.4978 0.41824 0.31237 0.23651 0.20870 0.17344
Proportion Explained  0.2541 0.1473 0.1182 0.1076 0.09042 0.06753 0.05113 0.04512 0.03749
Cumulative Proportion 0.2541 0.4014 0.5196 0.6272 0.71760 0.78513 0.83626 0.88138 0.91887
                        MDS10   MDS11   MDS12    MDS13    MDS14
Eigenvalue            0.13421 0.10947 0.07416 0.040057 0.017385
Proportion Explained  0.02901 0.02366 0.01603 0.008659 0.003758
Cumulative Proportion 0.94789 0.97155 0.98758 0.996242 1.000000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  2.836793 


Species scores

                                             MDS1       MDS2       MDS3       MDS4
Acanthoceras sp.                        0.0166393 -3.686e-03 -0.0051492 -6.518e-04
Acanthoceras zachariasii                0.0060588  2.828e-03  0.0271364 -1.497e-02
Actinastrum hantzschii                  0.0027092 -9.744e-03 -0.0094957 -2.716e-03
Anabaena affinis                        0.0175968  8.345e-03 -0.0075391 -3.483e-04
Anabaena flos-aquae                     0.0007801 -9.740e-04 -0.0017054  5.520e-05
Anabaena macrospora                     0.0066002  2.745e-03 -0.0048282  4.082e-04
Anabaena spiroides                      0.0076487  3.024e-03 -0.0101374 -8.911e-04
Ankistrodesmus sp.                      0.0005606  2.673e-03  0.0001957  3.861e-04
Aphanizomenon flos-aquae                0.0059374  6.525e-03 -0.0088788 -4.636e-04
Aphanocapsa sp.                         0.0011468 -2.126e-03 -0.0072869 -1.696e-03
Aphanothece sp.                        -0.0005096 -9.083e-04 -0.0010641 -4.672e-04
Asterionella formosa                   -0.2855575  4.281e-01  0.0671326  5.571e-02
Asterionella sp.                       -0.0043856  2.598e-03 -0.0004925  5.752e-04
Aulacoseira ambigua                     0.0475788 -6.673e-03 -0.1007617 -8.275e-03
Aulacoseira distans                    -0.0080729  8.405e-03 -0.0315222 -5.634e-03
Aulacoseira granulata                   0.0321368  1.478e-01 -0.0585964  3.576e-02
Aulacoseira nipponica                  -0.0009497  9.890e-04 -0.0003966 -7.308e-05
Aulacoseira sp.                        -0.0412589 -3.048e-02  0.0295199 -9.011e-03
Botryococcus braunii                    0.0307418  2.770e-02 -0.0613925 -1.081e-02
Botryococcus sp.                        0.0022215 -5.395e-03  0.0067387  9.723e-03
Ceratium hirundinella                  -0.0147159 -1.071e-01 -0.0504380  2.279e-02
Ceratium sp.                            0.0079404 -6.553e-05 -0.0029868 -3.996e-03
Chlamydomonas sp.                       0.0011002  1.787e-04  0.0066918 -3.009e-03
Chlorogonium elongatum                  0.0091429  5.305e-03 -0.0094332 -3.703e-04
Chroococcus dispersus                  -0.0341168  9.866e-03 -0.0380313 -6.391e-03
Chroococcus sp.                        -0.0051318 -4.265e-02  0.0133230 -7.317e-03
Cladophora glomerata                   -0.0081258  1.466e-02  0.0061908  2.277e-03
Cladophora sp.                         -0.0007973  1.519e-03  0.0007319  2.611e-04
Closterium aciculare                   -0.0092800  6.367e-02  0.0097874  4.625e-03
Closterium aciculare var.subponum       0.0027769 -6.744e-03  0.0084234  1.215e-02
Closterium moniliferum                 -0.0033417  5.547e-03  0.0017992  7.103e-04
Cocconeis placentula                   -0.0072662 -1.190e-03 -0.0055852 -2.693e-03
Coelastrum cambricum                    0.0184924 -2.569e-02  0.0290221  4.219e-02
Coelastrum microporum                   0.0139732 -5.688e-03  0.0122955  2.267e-02
Coelosphaerium kuetzingianum            0.0034666  9.851e-04  0.0063703 -1.227e-02
Coelosphaerium sp.                     -0.0021793 -3.536e-02  0.0157303 -2.446e-04
Cosmarium sp.                           0.0111557  4.583e-03 -0.0075284  5.907e-04
Cosmocladium constrictum                0.0194694  3.993e-04 -0.0077926 -9.051e-03
Crucigenia lauterbornei                 0.0138843 -3.372e-02  0.0421170  6.077e-02
Crucigenia lauterbornii                -0.0005096 -9.083e-04 -0.0010641 -4.672e-04
Cryptomonas sp.                         0.0051285  3.686e-03 -0.0016380  4.532e-04
Cyclotella meneghiniana                 0.0046909  2.287e-03 -0.0055164 -5.126e-04
Cyclotella sp.                         -0.0019561  7.551e-03 -0.0018001  2.071e-04
Cymbella sp.                            0.0026752 -1.828e-03 -0.0040429 -2.975e-03
Diatoma vulgare                        -0.0001726  6.015e-04 -0.0007589 -7.768e-04
Dictyosphaerium sp.                    -0.0007796  9.664e-04 -0.0002099  4.602e-05
Dinobryon cylindricum                  -0.0273975  4.406e-02 -0.0017374  2.563e-03
Dinobryon sp.                          -0.0007796  9.664e-04 -0.0002099  4.602e-05
Diploneis sp.                           0.0231374 -2.576e-02  0.0401058  6.420e-02
Elakatothrix gelatinosa                -0.0006276 -2.428e-03  0.0055490  9.503e-03
Eudorina sp.                            0.0005501  8.933e-05  0.0033459 -1.505e-03
Euglena proxima                         0.0070262 -4.308e-03  0.0064619  1.497e-02
Euglena sp.                            -0.0023362  7.095e-03  0.0057668 -4.131e-04
Fragilaria crotonensis                 -0.0295788  2.040e-02 -0.0086405  1.360e-03
Frustulia sp.                          -0.0007216  1.752e-03  0.0006052  2.729e-04
Gloeocystis sp.                        -0.0007973  1.519e-03  0.0007319  2.611e-04
Gonium sp.                              0.0013200  5.491e-04 -0.0009656  8.164e-05
Gyrosigma sp.                          -0.0015947  3.038e-03  0.0014639  5.223e-04
Hydrodictyon sp.                        0.0022687 -1.872e-05 -0.0008534 -1.142e-03
Lyngbya limnetica                      -0.0087691 -5.034e-02 -0.0213817  1.082e-02
Melosira sp.                            0.0031194  3.803e-03  0.0195050 -8.627e-03
Melosira varians                       -0.0170731 -1.275e-02 -0.0286517 -9.114e-03
Merismopedia sp.                       -0.0007216  1.752e-03  0.0006052  2.729e-04
Micrasterias hardyi                     0.1707654  3.909e-02  0.0634528  2.467e-01
Micrasterias mahabuleshwarensis         0.0564951  1.892e-02 -0.0441800 -1.302e-02
Microcystis aeruginosa                 -0.0038423  1.487e-01 -0.0707525  3.431e-03
Microcystis ichthyoblabe                0.0718222  1.732e-02  0.1396916 -7.907e-02
Microcystis novacekii                   0.0178988  9.634e-03 -0.0488188 -1.113e-02
Microcystis sp.                        -0.0094108 -4.625e-02  0.0228028 -7.201e-03
Microcystis viridis                     0.0259379 -3.081e-02 -0.0598333 -5.176e-03
Microcystis wesenbergii                -0.0320906  3.517e-02 -0.0027945  4.593e-03
Mougeotia sp.                           0.0134863 -3.658e-02  0.0174826  4.552e-02
Navicula sp.                           -0.0018207  2.156e-03 -0.0004296  2.632e-04
Nitzschia sp.                           0.0051543 -4.302e-03  0.0463346 -2.206e-02
Oedogonium sp.                          0.0604855 -4.427e-03  0.0213816  6.149e-02
Oocystis lacustris                      0.0024544  5.397e-04 -0.0013923 -4.892e-04
Oscillatoria kawamurae                 -0.0010040 -3.791e-03 -0.0025917 -1.162e-04
Oscillatoria sp.                       -0.0039867  7.596e-03  0.0036596  1.306e-03
Oscillatoria tenuis                     0.0118803  4.942e-03 -0.0086908  7.348e-04
Paulschulzia pseudovolvox               0.0212636 -3.665e-02  0.0317209  4.996e-02
Pediastrum biwae                        0.0150515 -3.880e-03 -0.0083432  2.093e-03
Pediastrum boryanum                    -0.0001662  4.027e-04  0.0022899  2.704e-03
Pediastrum duplex                       0.0024308 -2.148e-03  0.0024037  4.943e-03
Peridinium sp.                          0.0119047 -1.952e-03 -0.0057557 -6.550e-03
Phormidium tenue                       -0.0036769  5.417e-03  0.0010244  9.566e-04
Pleodorina californica                  0.0150609  3.450e-03 -0.0061914 -4.226e-03
Pleurotaenium sp.                       0.0132003  5.491e-03 -0.0096565  8.164e-04
Rhoicosphenia abbreviata               -0.0005020 -1.896e-03 -0.0012959 -5.809e-05
Scenedesmus opoliensis                 -0.0005466 -1.080e-02  0.0074662 -3.207e-03
Schroederia ancora                      0.0026401  1.098e-03 -0.0019313  1.633e-04
Sphaerocystis schroeteri                0.0431177  1.791e-02 -0.0349195 -7.290e-04
Spirogyra sp.                           0.0189514 -5.605e-02  0.0572041  8.637e-02
Spondylosium moniliforme                0.0075450  4.598e-03 -0.0024742 -4.371e-06
Staurastrum arctiscon                   0.0037403  1.277e-03  0.0047605 -2.846e-03
Staurastrum dorsidentiferum             1.3614005  8.133e-01 -0.7064407 -4.743e-02
Staurastrum dorsidentiferum var.ornatu  0.1993779 -4.842e-01  0.6047998  8.726e-01
Staurastrum sebaldi                     0.0543766 -4.581e-02  0.0003277 -3.203e-02
Staurastrum sp.                        -0.0066048  1.127e-02  0.0039619  1.830e-03
Stauroneis sp.                         -0.0010192 -1.817e-03 -0.0021282 -9.343e-04
Stephanodiscus sp.                     -0.0047485  4.945e-03 -0.0019829 -3.654e-04
Stephanodiscus suzukii                  0.0525939  3.379e-02 -0.0188537  3.367e-03
Surirella sp.                           0.0034274  3.552e-03 -0.0009166 -1.446e-03
Synedra sp.                            -0.0400183 -1.111e-01 -0.0435312 -8.671e-03
Synedra ulna                            0.0352621 -1.118e-03 -0.0085547  1.296e-02
Tabellaria sp.                          0.0027769 -6.744e-03  0.0084234  1.215e-02
Tetraedron gracile                      0.0005325 -3.108e-03  0.0039684  6.554e-04
Tetraedron sp.                          0.0145204  6.040e-03 -0.0106221  8.980e-04
Tetraselmis cordiformis                 0.0022687 -1.872e-05 -0.0008534 -1.142e-03
Tetraspora lacustris                    0.0180178  3.015e-04 -0.0180819 -5.164e-03
Tetraspora sp.                          0.0005554 -1.349e-03  0.0016847  2.431e-03
Trachelomonas hispida                  -0.0112371  3.347e-02  0.0219860 -9.827e-04
Trachelomonas sp.                       0.0194973  1.122e-02 -0.0100356  1.478e-03
Treubaria setigerum                    -0.0005020 -1.896e-03 -0.0012959 -5.809e-05
Ulothrix zonata                         0.0150843  2.389e-02 -0.0036532  3.514e-03
Uroglena americana                      0.0086515  4.146e-03  0.0136177 -7.423e-03
Uroglena sp.                           -0.0247177  4.710e-02  0.0226897  8.095e-03
Xanthidium hastiferum                   0.0028424 -1.026e-03 -0.0038203  2.237e-04
Xanthidium sp.                          0.0005554 -1.349e-03  0.0016847  2.431e-03
                                             MDS5       MDS6
Acanthoceras sp.                        7.657e-02  4.464e-03
Acanthoceras zachariasii               -2.914e-02 -5.169e-04
Actinastrum hantzschii                 -7.869e-03 -6.990e-03
Anabaena affinis                        1.067e-02  3.800e-03
Anabaena flos-aquae                    -9.585e-04  1.832e-03
Anabaena macrospora                     6.656e-03 -1.366e-03
Anabaena spiroides                     -1.832e-03  5.148e-03
Ankistrodesmus sp.                      1.900e-03  3.267e-03
Aphanizomenon flos-aquae                3.860e-03  9.494e-04
Aphanocapsa sp.                        -1.411e-02  1.020e-02
Aphanothece sp.                        -2.610e-03  1.186e-03
Asterionella formosa                    2.828e-01  2.814e-02
Asterionella sp.                       -2.099e-03 -1.217e-02
Aulacoseira ambigua                    -5.931e-02  2.719e-02
Aulacoseira distans                     1.064e-02  3.836e-03
Aulacoseira granulata                   6.993e-02  1.459e-01
Aulacoseira nipponica                   9.956e-04  6.288e-04
Aulacoseira sp.                         1.914e-01  2.921e-02
Botryococcus braunii                   -1.150e-02 -1.499e-02
Botryococcus sp.                       -6.364e-03 -2.992e-04
Ceratium hirundinella                  -1.091e-01 -3.757e-04
Ceratium sp.                            3.128e-03 -1.571e-02
Chlamydomonas sp.                      -5.323e-03  4.971e-04
Chlorogonium elongatum                  2.180e-03 -3.596e-04
Chroococcus dispersus                   1.069e-02  1.451e-02
Chroococcus sp.                         7.816e-02  8.467e-03
Cladophora glomerata                    6.452e-03 -1.870e-02
Cladophora sp.                          6.063e-04 -2.147e-03
Closterium aciculare                    3.489e-02 -9.708e-02
Closterium aciculare var.subponum      -7.955e-03 -3.740e-04
Closterium moniliferum                  2.814e-03 -5.813e-03
Cocconeis placentula                   -1.846e-02  9.022e-04
Coelastrum cambricum                   -2.710e-02 -1.713e-02
Coelastrum microporum                  -1.427e-02  1.399e-02
Coelosphaerium kuetzingianum           -3.572e-02  2.783e-02
Coelosphaerium sp.                      6.352e-02  4.726e-03
Cosmarium sp.                           4.532e-03  6.624e-03
Cosmocladium constrictum                8.481e-03 -3.617e-02
Crucigenia lauterbornei                -3.977e-02 -1.870e-03
Crucigenia lauterbornii                -2.610e-03  1.186e-03
Cryptomonas sp.                         2.988e-05  8.379e-03
Cyclotella meneghiniana                -1.668e-03  3.127e-03
Cyclotella sp.                          5.890e-03  7.877e-03
Cymbella sp.                           -4.046e-03 -8.264e-03
Diatoma vulgare                        -1.557e-03 -3.205e-03
Dictyosphaerium sp.                    -1.069e-03 -8.754e-05
Dinobryon cylindricum                   2.292e-02  2.004e-02
Dinobryon sp.                          -1.069e-03 -8.754e-05
Diploneis sp.                          -4.344e-02  1.464e-02
Elakatothrix gelatinosa                -3.377e-03  1.587e-03
Eudorina sp.                           -2.661e-03  2.486e-04
Euglena proxima                        -1.230e-02  2.807e-03
Euglena sp.                             4.911e-03  4.936e-03
Fragilaria crotonensis                 -8.050e-03 -8.654e-03
Frustulia sp.                           1.893e-03  1.172e-03
Gloeocystis sp.                         6.063e-04 -2.147e-03
Gonium sp.                              1.331e-03 -2.733e-04
Gyrosigma sp.                           1.213e-03 -4.294e-03
Hydrodictyon sp.                        8.937e-04 -4.487e-03
Lyngbya limnetica                      -3.017e-02 -6.424e-03
Melosira sp.                           -1.381e-02  2.302e-03
Melosira varians                       -5.170e-02  4.706e-03
Merismopedia sp.                        1.893e-03  1.172e-03
Micrasterias hardyi                    -7.511e-02  8.095e-02
Micrasterias mahabuleshwarensis         1.814e-02 -5.109e-02
Microcystis aeruginosa                  1.339e-02  1.795e-01
Microcystis ichthyoblabe               -1.247e-01  6.186e-02
Microcystis novacekii                  -7.049e-02  1.070e-01
Microcystis sp.                         1.186e-01  1.261e-02
Microcystis viridis                     8.196e-02  1.866e-03
Microcystis wesenbergii                 4.415e-03 -1.332e-02
Mougeotia sp.                          -3.293e-02 -5.539e-04
Navicula sp.                           -1.168e-03 -2.947e-04
Nitzschia sp.                          -5.421e-02  7.804e-03
Oedogonium sp.                         -2.275e-02  2.341e-02
Oocystis lacustris                      1.778e-03 -2.517e-03
Oscillatoria kawamurae                 -1.932e-03 -5.261e-04
Oscillatoria sp.                        3.032e-03 -1.074e-02
Oscillatoria tenuis                     1.198e-02 -2.459e-03
Paulschulzia pseudovolvox              -3.903e-02 -2.308e-02
Pediastrum biwae                        3.675e-03  1.134e-02
Pediastrum boryanum                     3.021e-04  1.097e-03
Pediastrum duplex                      -1.851e-03 -4.229e-04
Peridinium sp.                          2.762e-03 -2.507e-02
Phormidium tenue                        1.014e-03 -4.709e-03
Pleodorina californica                  7.061e-03 -3.773e-02
Pleurotaenium sp.                       1.331e-02 -2.733e-03
Rhoicosphenia abbreviata               -9.659e-04 -2.631e-04
Scenedesmus opoliensis                  1.957e-02  1.874e-03
Schroederia ancora                      2.663e-03 -5.466e-04
Sphaerocystis schroeteri                9.410e-03 -1.986e-02
Spirogyra sp.                          -3.890e-02 -1.392e-02
Spondylosium moniliforme                4.842e-04  8.230e-03
Staurastrum arctiscon                  -2.660e-03 -4.942e-05
Staurastrum dorsidentiferum             3.992e-01  6.460e-01
Staurastrum dorsidentiferum var.ornatu -5.711e-01 -2.685e-02
Staurastrum sebaldi                     1.329e-01 -1.064e-01
Staurastrum sp.                         2.470e-03 -1.318e-02
Stauroneis sp.                         -5.220e-03  2.373e-03
Stephanodiscus sp.                      4.978e-03  3.144e-03
Stephanodiscus suzukii                  1.976e-03  8.839e-02
Surirella sp.                          -1.827e-03 -1.127e-04
Synedra sp.                             1.397e-02  1.771e-03
Synedra ulna                            6.275e-04 -2.689e-02
Tabellaria sp.                         -7.955e-03 -3.740e-04
Tetraedron gracile                     -6.406e-03 -2.147e-04
Tetraedron sp.                          1.464e-02 -3.006e-03
Tetraselmis cordiformis                 8.937e-04 -4.487e-03
Tetraspora lacustris                    3.168e-03 -1.915e-02
Tetraspora sp.                         -1.591e-03 -7.480e-05
Trachelomonas hispida                   1.677e-02 -2.175e-02
Trachelomonas sp.                       9.379e-03  1.485e-02
Treubaria setigerum                    -9.659e-04 -2.631e-04
Ulothrix zonata                         9.659e-03  9.013e-03
Uroglena americana                     -1.588e-02  1.290e-02
Uroglena sp.                            1.880e-02 -6.656e-02
Xanthidium hastiferum                  -1.909e-03  5.758e-03
Xanthidium sp.                         -1.591e-03 -7.480e-05


Site scores (weighted sums of species scores)

                        MDS1      MDS2    MDS3     MDS4      MDS5     MDS6
20180316_1_ryuko.csv -0.2278 -1.472568  0.6056 -0.39810  2.017976  0.27328
20180316_2_ryuko.csv  0.4571  0.048321  1.9670 -1.40767 -0.966174  0.16718
20181004_1_ryuko.csv  1.0969  0.297025 -0.5677  0.07638  0.483289 -0.18380
20181004_2_ryuko.csv  0.9426 -0.005064 -0.2508 -0.53406  0.162224 -1.50907
20181004_3_ryuko.csv  1.0654  0.498509 -0.2407  0.10599  0.002712  1.40891
20181025_1_ryuko.csv  1.0853  0.409973 -0.7922 -0.04950  0.113045 -0.03455
20181025_2_ryuko.csv  0.4615 -0.729606  0.9904  2.27416 -0.577534 -0.05031
20190425_1_ryuko.csv -0.6625  0.821786  0.4303  0.24432  0.220102 -1.44420
20190425_2_ryuko.csv -0.5996  0.947451  0.3558  0.25529  0.687200  0.78812
20190425_3_ryuko.csv -0.8651  0.643307 -0.1292  0.20320 -0.036043 -0.13935
20190425_4_ryuko.csv -0.7891  0.534991 -0.2331 -0.06838  0.361412  0.42294
20190425_5_ryuko.csv -0.6478  0.522753 -0.1234  0.04306 -0.388039 -0.05888
20190520_1_ryuko.csv -0.4234 -0.491356 -0.6256 -0.43709 -0.947546  0.79795
20190520_2_ryuko.csv -0.4761 -1.000132 -0.6244 -0.25327 -0.781967 -0.26129
20190520_3_ryuko.csv -0.4171 -1.025388 -0.7618 -0.05435 -0.350659 -0.17693
#最初の二つの主座標軸上の座標値をベクトルに格納
PCoA1_ryuko_BC <- PCoA_ryuko_BC$sites[, 1] #主座標軸1の座標値を呼び出して(右辺)、ベクトル(左辺)に格納
PCoA2_ryuko_BC <- PCoA_ryuko_BC$sites[, 2] #主座標軸2の座標値を呼び出して(右辺)、ベクトル(左辺)に格納

#散布図の作成
plot(
  PCoA2_ryuko_BC ~ PCoA1_ryuko_BC, #モデル式(Y ~ X)
  cex = 3, pch = as.numeric(as.factor(phyto_metadata$month)), #cexはサイズの指定, pchはマークの種類をメタデータの中に保存されているmonthの違いによって指定する
  xlab = "PCoA1 (25.4 %)", ylab = "PCoA2 (14.7 %)", #寄与率を軸名に書き込む
  asp = 1, #縦横比の指定
  main = "With Bray-Curtis" #グラフのタイトルの指定
)

Hellinger距離を使う場合

#Hellinger
#decostand関数を使ってまずは、データをhellinger変換
species_ryuko_data_H <- decostand(species_ryuko_data, method = "hellinger")
#hellinger変換後のデータに対してユークリッド距離を計算すれば、hellinger距離となる。これを用いて主座標分析を実行し、その結果のまとめをPCoA_ryuko_Hに保存する
PCoA_ryuko_H <- summary(capscale(species_ryuko_data_H ~ 1, distance = "euclidean"))
PCoA_ryuko_H #結果を表示して寄与率を確認

Call:
capscale(formula = species_ryuko_data_H ~ 1, distance = "euclidean") 

Partitioning of squared Euclidean distance:
              Inertia Proportion
Total           8.805          1
Unconstrained   8.805          1

Eigenvalues, and their contribution to the squared Euclidean distance 

Importance of components:
                       MDS1   MDS2   MDS3   MDS4    MDS5    MDS6    MDS7    MDS8    MDS9
Eigenvalue            1.973 1.3093 0.9774 0.9355 0.75598 0.61053 0.48260 0.38291 0.35922
Proportion Explained  0.224 0.1487 0.1110 0.1062 0.08585 0.06934 0.05481 0.04349 0.04079
Cumulative Proportion 0.224 0.3727 0.4837 0.5900 0.67582 0.74516 0.79996 0.84345 0.88424
                        MDS10   MDS11   MDS12   MDS13   MDS14
Eigenvalue            0.33132 0.22305 0.20145 0.14163 0.12183
Proportion Explained  0.03763 0.02533 0.02288 0.01608 0.01384
Cumulative Proportion 0.92187 0.94720 0.97008 0.98616 1.00000

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  3.332112 


Species scores

                                            MDS1       MDS2       MDS3       MDS4
Acanthoceras sp.                       -0.003869 -0.0802948  0.1631017 -4.332e-02
Acanthoceras zachariasii                0.091847  0.0146502  0.0722028 -5.284e-02
Actinastrum hantzschii                  0.012333 -0.0421981 -0.1420595 -7.030e-02
Anabaena affinis                        0.112679  0.0192194  0.0194854 -2.512e-02
Anabaena flos-aquae                    -0.002318 -0.0120337 -0.0318648 -1.737e-02
Anabaena macrospora                     0.038434  0.0098821 -0.0091956  1.956e-03
Anabaena spiroides                      0.013042  0.0221580 -0.0418076 -4.415e-02
Ankistrodesmus sp.                     -0.003568  0.0228817  0.0126153  7.869e-03
Aphanizomenon flos-aquae                0.016262  0.0476980 -0.0184064 -3.774e-04
Aphanocapsa sp.                        -0.043480 -0.0028267 -0.0965299 -7.413e-02
Aphanothece sp.                        -0.017064 -0.0041714 -0.0196482 -2.943e-02
Asterionella formosa                   -0.802558  0.4630038  0.1805479  1.469e-01
Asterionella sp.                       -0.038678  0.0007870 -0.0625319 -2.733e-03
Aulacoseira ambigua                    -0.067859  0.0726769 -0.3377268 -1.136e-01
Aulacoseira distans                    -0.044299  0.0446420 -0.1408458 -1.149e-01
Aulacoseira granulata                  -0.176418  0.2984912 -0.1472109  1.085e-01
Aulacoseira nipponica                  -0.018829  0.0170700  0.0006449 -3.802e-03
Aulacoseira sp.                        -0.295438 -0.0101242  0.3875873 -5.499e-03
Botryococcus braunii                    0.012639  0.1840646 -0.1928387 -4.729e-02
Botryococcus sp.                        0.006040 -0.0471166 -0.0120043  5.852e-02
Ceratium hirundinella                  -0.143080 -0.2271561 -0.4365870 -1.427e-01
Ceratium sp.                            0.052978  0.0001919 -0.0038786 -1.225e-02
Chlamydomonas sp.                       0.051209 -0.0117054  0.0484913 -3.792e-02
Chlorogonium elongatum                  0.046327  0.0254450 -0.0208662  5.400e-03
Chroococcus dispersus                  -0.129438  0.0611295 -0.1885599 -9.821e-02
Chroococcus sp.                        -0.076451 -0.1869573  0.1769612 -1.319e-01
Cladophora glomerata                   -0.057796  0.0429769  0.0277372  3.650e-02
Cladophora sp.                         -0.012989  0.0086357  0.0090308  1.343e-02
Closterium aciculare                   -0.007786  0.1153508  0.0646159  8.761e-02
Closterium aciculare var.subponum       0.006753 -0.0526780 -0.0134212  6.542e-02
Closterium moniliferum                 -0.041327  0.0320274  0.0162866  1.947e-02
Cocconeis placentula                   -0.074243  0.0054728 -0.0375121 -5.637e-02
Coelastrum cambricum                    0.066142 -0.1024964 -0.0300414  1.153e-01
Coelastrum microporum                   0.042843 -0.0500214 -0.0207540  8.615e-02
Coelosphaerium kuetzingianum            0.016945  0.0152015 -0.0215047 -1.712e-01
Coelosphaerium sp.                     -0.042525 -0.1952598  0.1746438 -3.933e-02
Cosmarium sp.                           0.048486  0.0122490 -0.0566597 -1.870e-02
Cosmocladium constrictum                0.097283  0.0047096 -0.0099763 -1.764e-02
Crucigenia lauterbornei                 0.015100 -0.1177916 -0.0300108  1.463e-01
Crucigenia lauterbornii                -0.017064 -0.0041714 -0.0196482 -2.943e-02
Cryptomonas sp.                         0.025537  0.0156127 -0.0020769 -1.229e-03
Cyclotella meneghiniana                 0.026033  0.0202926 -0.0343469 -2.651e-02
Cyclotella sp.                         -0.035936  0.0602552  0.0134749  9.708e-06
Cymbella sp.                           -0.005698  0.0135499 -0.0594840 -3.076e-02
Diatoma vulgare                        -0.010030  0.0045368 -0.0120834 -2.062e-02
Dictyosphaerium sp.                    -0.013196  0.0308220  0.0084834  2.735e-02
Dinobryon cylindricum                  -0.214625  0.2236807  0.0534683  6.097e-02
Dinobryon sp.                          -0.013196  0.0308220  0.0084834  2.735e-02
Diploneis sp.                           0.032851 -0.0544559 -0.0215451  1.861e-01
Elakatothrix gelatinosa                -0.026572 -0.0175506 -0.0108874  5.193e-02
Eudorina sp.                            0.036210 -0.0082769  0.0342886 -2.682e-02
Euglena proxima                         0.010176 -0.0389955 -0.0760816  6.400e-02
Euglena sp.                             0.003538  0.0218739  0.0615961 -9.850e-03
Fragilaria crotonensis                 -0.283306  0.1363576 -0.0673707  6.862e-03
Frustulia sp.                          -0.016336  0.0150754  0.0136538  8.483e-03
Gloeocystis sp.                        -0.012989  0.0086357  0.0090308  1.343e-02
Gonium sp.                              0.017188  0.0044194 -0.0041124  8.747e-04
Gyrosigma sp.                          -0.018370  0.0122127  0.0127715  1.900e-02
Hydrodictyon sp.                        0.028318  0.0001026 -0.0020732 -6.546e-03
Lyngbya limnetica                      -0.065600 -0.1478273 -0.1612592 -1.492e-02
Melosira sp.                            0.076352  0.0300425  0.1020142 -2.897e-02
Melosira varians                       -0.179508  0.0182899 -0.1909402 -1.573e-01
Merismopedia sp.                       -0.016336  0.0150754  0.0136538  8.483e-03
Micrasterias hardyi                     0.108112  0.1766259  0.0201038  4.510e-01
Micrasterias mahabuleshwarensis         0.168422  0.0416340 -0.0720594 -1.345e-02
Microcystis aeruginosa                 -0.250973  0.3817265 -0.1246971 -5.309e-02
Microcystis ichthyoblabe                0.315583 -0.1063659  0.2668160 -3.220e-01
Microcystis novacekii                  -0.072881  0.0848962 -0.1039312 -1.680e-01
Microcystis sp.                        -0.116128 -0.1618346  0.2751712 -7.818e-02
Microcystis viridis                    -0.094693 -0.1069312 -0.0196391 -1.872e-01
Microcystis wesenbergii                -0.222383  0.0573919  0.0714141 -3.277e-02
Mougeotia sp.                          -0.036469 -0.1334726 -0.1090140  5.654e-02
Navicula sp.                           -0.036239  0.0479044  0.0199244  3.640e-02
Nitzschia sp.                           0.070606 -0.0601209  0.0535542 -1.438e-01
Oedogonium sp.                          0.142153 -0.0710833 -0.0667711  1.413e-01
Oocystis lacustris                      0.037212  0.0044919 -0.0055784 -3.754e-03
Oscillatoria kawamurae                 -0.021336 -0.0280580 -0.0435950 -2.369e-02
Oscillatoria sp.                       -0.029045  0.0193099  0.0201934  3.004e-02
Oscillatoria tenuis                     0.051564  0.0132582 -0.0123372  2.624e-03
Paulschulzia pseudovolvox               0.047734 -0.1357064 -0.1117962  9.278e-02
Pediastrum biwae                        0.054754 -0.0843629 -0.0226759 -6.258e-02
Pediastrum boryanum                    -0.013316 -0.0084829  0.0076516  3.774e-02
Pediastrum duplex                       0.021459 -0.0288971 -0.0126007  4.225e-02
Peridinium sp.                          0.050926 -0.0130051 -0.0502493 -3.478e-02
Phormidium tenue                       -0.050956  0.0363708  0.0289515  3.179e-02
Pleodorina californica                  0.046858 -0.0223822 -0.0508237 -5.230e-03
Pleurotaenium sp.                       0.054353  0.0139754 -0.0130045  2.766e-03
Rhoicosphenia abbreviata               -0.015087 -0.0198400 -0.0308263 -1.675e-02
Scenedesmus opoliensis                  0.009193 -0.1017749  0.1400200 -7.341e-02
Schroederia ancora                      0.024308  0.0062500 -0.0058158  1.237e-03
Sphaerocystis schroeteri                0.142602  0.0364770 -0.0447396  4.841e-02
Spirogyra sp.                          -0.041350 -0.2320638 -0.0446303  1.103e-01
Spondylosium moniliforme                0.048575  0.0175280 -0.0037881 -6.003e-03
Staurastrum arctiscon                   0.075516 -0.0054554  0.0426756 -3.669e-02
Staurastrum dorsidentiferum             0.938827  0.5703789 -0.0140508 -4.514e-02
Staurastrum dorsidentiferum var.ornatu  0.057221 -0.4463665 -0.1137247  5.544e-01
Staurastrum sebaldi                     0.060237 -0.1740672  0.2459537 -6.613e-02
Staurastrum sp.                        -0.068056  0.0690573  0.0420452  6.931e-02
Stauroneis sp.                         -0.024132 -0.0058992 -0.0277868 -4.162e-02
Stephanodiscus sp.                     -0.042102  0.0381696  0.0014420 -8.502e-03
Stephanodiscus suzukii                  0.061306  0.0017561  0.0143171 -6.798e-02
Surirella sp.                           0.043496  0.0254631  0.0320694 -1.424e-02
Synedra sp.                            -0.330791 -0.2578882 -0.1452311 -2.396e-01
Synedra ulna                            0.164700 -0.0271410 -0.0550035  7.561e-02
Tabellaria sp.                          0.006753 -0.0526780 -0.0134212  6.542e-02
Tetraedron gracile                      0.023745 -0.0450810 -0.0171008 -1.699e-02
Tetraedron sp.                          0.057006  0.0146575 -0.0136392  2.901e-03
Tetraselmis cordiformis                 0.028318  0.0001026 -0.0020732 -6.546e-03
Tetraspora lacustris                    0.080030 -0.0069568 -0.0798461 -3.633e-02
Tetraspora sp.                          0.003020 -0.0235583 -0.0060022  2.926e-02
Trachelomonas hispida                  -0.012631  0.0754141  0.1273975  1.227e-02
Trachelomonas sp.                       0.081590  0.0337723 -0.0138176  5.759e-04
Treubaria setigerum                    -0.015087 -0.0198400 -0.0308263 -1.675e-02
Ulothrix zonata                         0.044242  0.0587285  0.0120711  3.516e-02
Uroglena americana                      0.092456 -0.0052237  0.0547012 -9.077e-02
Uroglena sp.                           -0.072321  0.0480813  0.0502813  7.480e-02
Xanthidium hastiferum                   0.000780 -0.0145370 -0.0453937 -2.476e-02
Xanthidium sp.                          0.003020 -0.0235583 -0.0060022  2.926e-02
                                             MDS5      MDS6
Acanthoceras sp.                       -0.1623392 -0.069715
Acanthoceras zachariasii                0.1686748  0.048302
Actinastrum hantzschii                 -0.0470401  0.030890
Anabaena affinis                        0.0214756 -0.008117
Anabaena flos-aquae                    -0.0128552  0.008465
Anabaena macrospora                    -0.0323509 -0.002481
Anabaena spiroides                      0.0211719  0.031763
Ankistrodesmus sp.                      0.0024312 -0.017557
Aphanizomenon flos-aquae               -0.0331171 -0.041974
Aphanocapsa sp.                         0.0690496  0.023945
Aphanothece sp.                         0.0246162 -0.005468
Asterionella formosa                    0.0282028  0.134930
Asterionella sp.                        0.0082585  0.111092
Aulacoseira ambigua                    -0.0544720  0.032551
Aulacoseira distans                    -0.0919568 -0.041767
Aulacoseira granulata                  -0.0717560 -0.167458
Aulacoseira nipponica                  -0.0024659 -0.019978
Aulacoseira sp.                        -0.1869277 -0.169315
Botryococcus braunii                   -0.0397522 -0.029867
Botryococcus sp.                        0.0175267 -0.011156
Ceratium hirundinella                   0.0256185  0.064877
Ceratium sp.                           -0.0444499  0.041831
Chlamydomonas sp.                       0.0893866  0.008350
Chlorogonium elongatum                 -0.0320039 -0.014820
Chroococcus dispersus                  -0.0217362 -0.142547
Chroococcus sp.                        -0.1061337 -0.061757
Cladophora glomerata                    0.0098194  0.142025
Cladophora sp.                          0.0040951  0.054001
Closterium aciculare                   -0.0716531  0.373827
Closterium aciculare var.subponum       0.0195955 -0.012473
Closterium moniliferum                  0.0046270  0.073554
Cocconeis placentula                    0.0778153  0.092536
Coelastrum cambricum                   -0.0062513  0.017518
Coelastrum microporum                   0.0324319 -0.032793
Coelosphaerium kuetzingianum            0.2286929 -0.064774
Coelosphaerium sp.                     -0.1136730 -0.056209
Cosmarium sp.                          -0.0198738 -0.019556
Cosmocladium constrictum               -0.0816696  0.062134
Crucigenia lauterbornei                 0.0438168 -0.027890
Crucigenia lauterbornii                 0.0246162 -0.005468
Cryptomonas sp.                         0.0046428 -0.012139
Cyclotella meneghiniana                 0.0059861 -0.021240
Cyclotella sp.                         -0.0015391 -0.060028
Cymbella sp.                            0.0038838 -0.003690
Diatoma vulgare                         0.0119108  0.064344
Dictyosphaerium sp.                     0.0050343 -0.024907
Dinobryon cylindricum                   0.0426303 -0.076283
Dinobryon sp.                           0.0050343 -0.024907
Diploneis sp.                           0.0583699 -0.080834
Elakatothrix gelatinosa                 0.0132557 -0.045759
Eudorina sp.                            0.0632059  0.005905
Euglena proxima                         0.0308828  0.037985
Euglena sp.                             0.0634255 -0.017070
Fragilaria crotonensis                  0.0461545  0.058235
Frustulia sp.                           0.0001098 -0.011487
Gloeocystis sp.                         0.0040951  0.054001
Gonium sp.                             -0.0144677 -0.001109
Gyrosigma sp.                           0.0057913  0.076369
Hydrodictyon sp.                       -0.0237595  0.022360
Lyngbya limnetica                      -0.0531891  0.057235
Melosira sp.                            0.1454985 -0.023041
Melosira varians                        0.0686223  0.095294
Merismopedia sp.                        0.0001098 -0.011487
Micrasterias hardyi                     0.0574824 -0.137633
Micrasterias mahabuleshwarensis        -0.1630204  0.111874
Microcystis aeruginosa                  0.0643748 -0.276729
Microcystis ichthyoblabe                0.3995856  0.019033
Microcystis novacekii                   0.1291001 -0.129695
Microcystis sp.                        -0.1628552 -0.077652
Microcystis viridis                    -0.2504074 -0.078095
Microcystis wesenbergii                 0.0175641  0.132538
Mougeotia sp.                          -0.0324543 -0.034168
Navicula sp.                            0.0047103 -0.017203
Nitzschia sp.                           0.3103015  0.009123
Oedogonium sp.                         -0.0400376  0.086288
Oocystis lacustris                     -0.0312682  0.014701
Oscillatoria kawamurae                 -0.0214630  0.020556
Oscillatoria sp.                        0.0091569  0.120750
Oscillatoria tenuis                    -0.0434032 -0.003328
Paulschulzia pseudovolvox               0.0051955  0.012133
Pediastrum biwae                       -0.0710984 -0.026330
Pediastrum boryanum                     0.0088731 -0.017065
Pediastrum duplex                      -0.0020745 -0.008998
Peridinium sp.                         -0.0478866  0.047503
Phormidium tenue                        0.0053332  0.087265
Pleodorina californica                 -0.0592407  0.166576
Pleurotaenium sp.                      -0.0457510 -0.003508
Rhoicosphenia abbreviata               -0.0151766  0.014535
Scenedesmus opoliensis                 -0.0095785 -0.021993
Schroederia ancora                     -0.0204605 -0.001569
Sphaerocystis schroeteri               -0.1103990  0.015420
Spirogyra sp.                          -0.0557826  0.064485
Spondylosium moniliforme               -0.0116097  0.002239
Staurastrum arctiscon                   0.0689262  0.006781
Staurastrum dorsidentiferum            -0.1983255 -0.005363
Staurastrum dorsidentiferum var.ornatu  0.1660419 -0.105687
Staurastrum sebaldi                    -0.2809603  0.030234
Staurastrum sp.                         0.0147412  0.115072
Stauroneis sp.                          0.0348126 -0.007733
Stephanodiscus sp.                     -0.0055139 -0.044673
Stephanodiscus suzukii                 -0.0011833 -0.061657
Surirella sp.                           0.0419305  0.003907
Synedra sp.                            -0.1401973  0.015016
Synedra ulna                           -0.0981218  0.016730
Tabellaria sp.                          0.0195955 -0.012473
Tetraedron gracile                      0.0798035 -0.004609
Tetraedron sp.                         -0.0479841 -0.003680
Tetraselmis cordiformis                -0.0237595  0.022360
Tetraspora lacustris                   -0.1080192  0.054052
Tetraspora sp.                          0.0087634 -0.005578
Trachelomonas hispida                   0.0924070  0.172208
Trachelomonas sp.                      -0.0317122 -0.020103
Treubaria setigerum                    -0.0151766  0.014535
Ulothrix zonata                        -0.0100594  0.119628
Uroglena americana                      0.1711397 -0.005837
Uroglena sp.                            0.0228005  0.300665
Xanthidium hastiferum                  -0.0174422  0.010043
Xanthidium sp.                          0.0087634 -0.005578


Site scores (weighted sums of species scores)

                        MDS1      MDS2     MDS3     MDS4      MDS5     MDS6
20180316_1_ryuko.csv -0.4893 -1.693325  1.91488 -0.84391 -1.318185 -0.50525
20180316_2_ryuko.csv  1.2438 -0.284313  1.17781 -0.92115  2.171126  0.20282
20181004_1_ryuko.csv  1.1359  0.292065 -0.27178  0.05780 -0.956129 -0.07332
20181004_2_ryuko.csv  1.1628  0.004213 -0.08513 -0.26881 -0.975654  0.91818
20181004_3_ryuko.csv  1.1246  0.687559 -0.09147 -0.05413  0.204460 -0.53460
20181025_1_ryuko.csv  1.1288  0.620011 -0.50844  0.13159 -0.779830 -0.36110
20181025_2_ryuko.csv  0.2405 -1.875796 -0.47791  2.32960  0.697769 -0.44414
20190425_1_ryuko.csv -0.6357  0.422625  0.44196  0.65747  0.200412  2.64278
20190425_2_ryuko.csv -0.8766  0.808944  0.73266  0.45521  0.005891 -0.61641
20190425_3_ryuko.csv -0.8967  0.664796  0.44525  0.35202 -0.012608  0.29984
20190425_4_ryuko.csv -0.8710  0.789606  0.02983 -0.17588 -0.114064 -0.92414
20190425_5_ryuko.csv -0.4163  0.972242  0.26760  0.86286  0.158800 -0.78568
20190520_1_ryuko.csv -0.7390 -0.180653 -0.85092 -1.27457  1.066071 -0.23682
20190520_2_ryuko.csv -0.5096 -0.435917 -1.49369 -0.63934  0.257826 -0.16243
20190520_3_ryuko.csv -0.6023 -0.792056 -1.23065 -0.66878 -0.605884  0.58027
#最初の二つの主座標軸上の座標値をベクトルに格納
PCoA1_ryuko_H <- PCoA_ryuko_H$sites[, 1] #主座標軸1の座標値を呼び出して(右辺)、ベクトル(左辺)に格納
PCoA2_ryuko_H <- PCoA_ryuko_H$sites[, 2] #主座標軸2の座標値を呼び出して(右辺)、ベクトル(左辺)に格納

#散布図の作成
plot(
  PCoA2_ryuko_H ~ PCoA1_ryuko_H, #モデル式(Y ~ X)
  cex = 3, pch = as.numeric(as.factor(phyto_metadata$month)), #cexはサイズの指定, pchはマークの種類をメタデータの中に保存されているmonthの違いによって指定する
  xlab = "PCoA1 (22.4 %)", ylab = "PCoA2 (14.9 %)", #寄与率を軸名に書き込む
  asp = 1, #縦横比の指定
  main = "With Hellinger" #グラフのタイトルの指定
)

微生物データの主座標分析

とくにデータの前処理(閾値を用いた二値化)が必要なジャッカード距離の場合についてのコード

####PCoA for ecoplate####
#With Jaccard
#データを大幅にいじる場合は、データを丸々新しいオブジェクトにコピーするのがよい
summary_ecoplate_b <- summary_ecoplate #copy
#代謝を「アリ」と判定する時に吸光度の最小値の設定(ここでは0.2)
minimum_strength <- 0.2
#minimum_strengthより吸光度が小さい値をゼロに転換する
summary_ecoplate_b[summary_ecoplate_b < minimum_strength] <- 0 #binalization, ゼロより大きい値を1に転換する
summary_ecoplate_b[summary_ecoplate_b > 0] <- 1 #binalization
#二値化したデータに対してjaccard距離を選んで主座標分析を実行し、その結果をPCoA_ecoplate_Jに保存
PCoA_ecoplate_J <- summary(capscale(summary_ecoplate_b ~ 1, distance = "jaccard"))
PCoA_ecoplate_J #結果の中身を表示して、寄与率を確認

Call:
capscale(formula = summary_ecoplate_b ~ 1, distance = "jaccard") 

Partitioning of squared Jaccard distance:
              Inertia Proportion
Total           0.025          1
Unconstrained   0.025          1

Eigenvalues, and their contribution to the squared Jaccard distance 

Importance of components:
                         MDS1     MDS2     MDS3      MDS4
Eigenvalue            0.01297 0.007556 0.004444 3.042e-05
Proportion Explained  0.51872 0.302274 0.177786 1.217e-03
Cumulative Proportion 0.51872 0.820997 0.998783 1.000e+00

Scaling 2 for species and site scores
* Species are scaled proportional to eigenvalues
* Sites are unscaled: weighted dispersion equal on all dimensions
* General scaling constant of scores:  0.8412527 


Species scores

       MDS1    MDS2       MDS3       MDS4
s01 0.00000  0.0000  0.000e+00  0.0000000
s02 0.00000  0.0000  0.000e+00  0.0000000
s03 0.00000  0.0000  0.000e+00  0.0000000
s04 0.00000  0.0000  0.000e+00  0.0000000
s05 0.00000  0.0000  0.000e+00  0.0000000
s06 0.00000  0.0000  0.000e+00  0.0000000
s07 0.00000  0.0000  0.000e+00  0.0000000
s08 0.00000  0.0000  0.000e+00  0.0000000
s09 0.00000  0.0000  0.000e+00  0.0000000
s10 0.00000  0.0000  0.000e+00  0.0000000
s11 0.00000  0.0000  0.000e+00  0.0000000
s12 0.00000  0.0000  0.000e+00  0.0000000
s13 0.00000  0.0000  0.000e+00  0.0000000
s14 0.15320 -0.1678  0.000e+00  0.0223799
s15 0.06601  0.2104  2.687e-01  0.0005259
s16 0.00000  0.0000  0.000e+00  0.0000000
s17 0.00000  0.0000  0.000e+00  0.0000000
s18 0.24219 -0.2450 -4.475e-17 -0.0220736
s19 0.00000  0.0000  0.000e+00  0.0000000
s20 0.57497  0.2623  7.459e-18  0.0002748
s21 0.00000  0.0000  0.000e+00  0.0000000
s22 0.00000  0.0000  0.000e+00  0.0000000
s23 0.00000  0.0000  0.000e+00  0.0000000
s24 0.00000  0.0000  0.000e+00  0.0000000
s25 0.00000  0.0000  0.000e+00  0.0000000
s26 0.00000  0.0000  0.000e+00  0.0000000
s27 0.00000  0.0000  0.000e+00  0.0000000
s28 0.00000  0.0000  0.000e+00  0.0000000
s29 0.00000  0.0000  0.000e+00  0.0000000
s30 0.06601  0.2104 -2.687e-01  0.0005259
S31 0.00000  0.0000  0.000e+00  0.0000000


Site scores (weighted sums of species scores)

               MDS1     MDS2       MDS3      MDS4
20141216N1 -0.06765 -0.02743  5.955e-18 -0.039595
20141216N2  0.19374  0.08319 -2.511e-17  0.000511
20141216N3  0.19374  0.08319 -1.762e-18  0.000511
20141216T1 -0.06765 -0.02743  1.360e-16 -0.039595
20141216T2  0.19374  0.08319  4.317e-17  0.000511
20141216T3 -0.10009 -0.30029 -4.206e-01 -0.004400
20150228N1 -0.06765 -0.02743 -2.439e-18 -0.039595
20150228N2 -0.06765 -0.02743  6.761e-17 -0.039595
20150228N3 -0.46457  0.47895 -2.130e-18 -0.374477
20150228T1 -0.06765 -0.02743  4.426e-17 -0.039595
20150228T2 -0.10009 -0.30029 -4.206e-01 -0.004400
20150228T3 -0.26986  0.22036  1.341e-16  0.743830
20150507N1  0.19374  0.08319 -3.292e-18  0.000511
20150507N2  0.19374  0.08319 -3.292e-18  0.000511
20150507N3 -0.06765 -0.02743  2.091e-17 -0.039595
20150507T1 -0.06765 -0.02743  2.091e-17 -0.039595
20150507T2  0.19374  0.08319  1.386e-17  0.000511
20150507T3 -0.10009 -0.30029  4.206e-01 -0.004400
20150703N1  0.19374  0.08319 -1.351e-17  0.000511
20150703N2  0.19374  0.08319 -1.351e-17  0.000511
20150703N3 -0.06765 -0.02743 -2.579e-17 -0.039595
20150703T1 -0.06765 -0.02743 -7.249e-17 -0.039595
20150703T2  0.19374  0.08319 -6.211e-18  0.000511
20150703T3 -0.10009 -0.30029  4.206e-01 -0.004400
#最初の二つの主座標軸上の座標値をベクトルに格納
PCoA1_ecoplate_J <- PCoA_ecoplate_J$sites[, 1] #主座標軸1の座標値を呼び出して(右辺)、ベクトル(左辺)に格納
PCoA2_ecoplate_J <- PCoA_ecoplate_J$sites[, 2] #主座標軸2の座標値を呼び出して(右辺)、ベクトル(左辺)に格納

#散布図の作成
plot(
  PCoA2_ecoplate_J ~ PCoA1_ecoplate_J, #モデル式(Y ~ X)
  cex = 3, pch = c(1, 5)[as.factor(metadata_ecoplate$treatment)],#cexはサイズの指定, pchはマークの種類をメタデータの中に保存されているtreatmentの違いによって指定する
  xlab = "PCoA1 (51.9 %)", ylab = "PCoA2 (30.2 %) ", #寄与率を軸名に書き込む
  asp = 1, #縦横比の指定
  main = "With Jaccard" #グラフのタイトルの指定
)

BOX10 可視化関数の一貫性の無さについて

####BOX10 Inconsistent behavior of visualization####
summary(prcomp(comm, scale. = T))
Importance of components:
                          PC1     PC2
Standard deviation     1.4120 0.07931
Proportion of Variance 0.9969 0.00315
Cumulative Proportion  0.9969 1.00000
summary(prcomp(comm, scale. = F))
Importance of components:
                          PC1     PC2
Standard deviation     3.9857 0.22384
Proportion of Variance 0.9969 0.00314
Cumulative Proportion  0.9969 1.00000
biplot(prcomp(comm, scale. = T))

biplot(prcomp(comm, scale. = F))

ordiplot(capscale(comm ~ 1, distance = "euclidean"), type = "text")

ordiplot(capscale(scale(comm) ~ 1, distance = "euclidean"), type = "text")

ordiplot(prcomp(comm, scale. = T), type = "text")

ordiplot(prcomp(comm, scale. = F), type="text")

ordiplot(prcomp(scale(comm), scale. = F), type = "text")

8.4 多変量データの可視化2:階層的クラスター分析

8.4.2 階層クラスタリングによる可視化

####Hierarchical clustering####
#植物プランクトンのデータに対してブレイ・カーティス距離を計算し、距離行列species_b.dに保存
species_b.d <- vegdist(species_ryuko_data, method = "bray")
#計算済みの距離行列(species_b.d)をhclust関数の第一引数として,階層クラスタリングを実行,その結果を新しいオブジェクトに保存する。なぜなら次のところで可視化に使うから
hclust_model <- hclust(species_b.d, method = "ward.D2")

階層クラスタリングと非階層クラスタリングを比較

#階層クラスタリングの結果を可視化
plot(
  hclust_model, #階層クラスタリングの結果を保存したオブジェクトを指定
  hang = -1, #枝の末端の位置指定
  main = "phytoplankton composition with Bray-Curtis", #グラフのタイトルの指定
  label = phyto_metadata$YYMMDD #各枝に使うラベルの指定、メタデータ中の観測日情報を使う
)


#非階層クラスタリングの結果を可視化(主座標分析の結果)
plot(
  PCoA2_ryuko_BC ~ PCoA1_ryuko_BC,
  cex = 2, pch = as.numeric(as.factor(phyto_metadata$month)),
  xlab = "PCoA1 (25.4 %)", ylab = "PCoA2 (14.7 %)",
  asp = 1,
  main = "With Bray-Curtis"
)
#各サンプルに文字を追加: メタデータ中の観測日情報をlabelの引数に使う
text(PCoA1_ryuko_BC + 0.25, PCoA2_ryuko_BC, label = phyto_metadata$YYMMDD, cex = 0.8)

LS0tDQp0aXRsZTogIm11bHRpdmFyaWF0ZV9wbG90LlLjgavlr77lv5zjgZfjgZ9SIE5vdGVib29rIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyMg56ysOOeroOOBruWGheWuuQ0KDQojIyMg44OH44O844K/44Gu5rqW5YKZDQrjgb7jgZrjga/nrKw256ug44G+44Gn44Go5ZCM44GY44OH44O844K/44KS6Kqt44G/6L6844KADQpgYGB7cn0NCiMjI0ZvciBjaGFwdGVyIDA4DQpwaHl0b19tZXRhZGF0YSA8LSByZWFkUkRTKCJwaHl0b19tZXRhZGF0YS5vYmoiKQ0Kc3BlY2llc19yeXVrb19kYXRhIDwtIHJlYWRSRFMoInBoeXRvX3J5dWtvX2RhdGEub2JqIikNCm1ldGFkYXRhX2Vjb3BsYXRlIDwtIHJlYWRSRFMoIm1ldGFkYXRhX2Vjb3BsLm9iaiIpDQpzdW1tYXJ5X2Vjb3BsYXRlIDwtIHJlYWRSRFMoInN1bW1hcnlfZWNvcGwub2JqIikNCnNwZWNpZXNfcmljaG5lc3MgPC0gYXBwbHkoc3BlY2llc19yeXVrb19kYXRhID4gMCwgMSwgc3VtKSAj56iu5pWw44KS6KiI566XDQp0b3RhbF9hYnVuZGFuY2UgPC0gYXBwbHkoc3BlY2llc19yeXVrb19kYXRhLCAxLCBzdW0pICPnt4/lgIvkvZPmlbDjgpLoqIjnrpcNCmBgYA0K44Ko44Kz44OX44Os44O844OI44Gn5L2/55So44GV44KM44Gm44GE44KLMzHnqK7poZ7jga7mnInmqZ/ngq3ntKDln7ros6rjga7lkI3liY3jg6rjgrnjg4jjgpLjg5njgq/jg4jjg6vjgajjgZfjgabnlKjmhI/jgZfjgabjgYrjgY8NCmBgYHtyfQ0Kc3Vic3RyYXRlX25hbWUgPC0gYygiUHlydXZpYy1BY2lkLU1ldGh5bC1Fc3RlciIsICJUd2Vlbi00MCIsICJUd2Vlbi04MCIsImFscGhhLUN5Y2xvZGV4dHJpbiIsICJHbHljb2dlbiIsICJELUNlbGxvYmlvc2UiLCJhbHBoYS1ELUxhY3Rvc2UiLCAiYmV0YS1NZXRoeWwtRC1HbHVjb3NpZGUiLCAiRC1YeWxvc2UiLCAiaS1Fcnl0aHJpdG9sIiwgIkQtTWFubml0b2wiLCJOLUFjZXR5bC1ELUdsdWNvc2FtaW5lIiwgIkQtR2x1Y29zYW1pbmljLUFjaWQiLCAiR2x1Y29zZS0xLVBob3NwaGF0ZSIsImFscGhhLUdseWNlcm9sLVBob3NwaGF0ZSIsIkQtR2FsYWN0b25pYy1BY2lkLWdhbW1hLUxhY3RvbmUiLCAiRC1HYWxhY3R1cm9uaWMtQWNpZCIsICIyLUh5ZHJveHktQmVuem9pYy1BY2lkIiwgIjQtSHlkcm94eS1CZW56b2ljLUFjaWQiLCAiZ2FtbWEtSHlkcm94eWJ1dHlyaWMtQWNpZCIsICJJdGFjb25pYy1BY2lkIiwgImFscGhhLUtldG9idXR5cmljLUFjaWQiLCAiRC1NYWxpYy1BY2lkIiwgIkwtQXJnaW5pbmUiLCAiTC1Bc3BhcmFnaW5lIiwgIkwtUGhlbnlsYWxhbmluZSIsICJMLVNlcmluZSIsICJMLVRocmVvbmluZSIsICJHbHljeWwtTC1HbHV0YW1pYy1BY2lkIiwgIlBoZW55bGV0aHlsLWFtaW5lIiwgIlB1dHJlc2NpbmUiKQ0KDQpzdWJzdHJhdGVfanBuIDwtIGMoIlB5cnV2aWMtQWNpZC1NZXRoeWwtRXN0ZXIiLCAiVHdlZW4tNDAiLCAiVHdlZW4tODAiLCJhbHBoYS1DeWNsb2RleHRyaW4iLCAiR2x5Y29nZW4iLCAiRC1DZWxsb2Jpb3NlIiwiYWxwaGEtRC1MYWN0b3NlIiwgImJldGEtTWV0aHlsLUQtR2x1Y29zaWRlIiwgIkQtWHlsb3NlIiwgImktRXJ5dGhyaXRvbCIsICJELU1hbm5pdG9sIiwiTi1BY2V0eWwtRC1HbHVjb3NhbWluZSIsICJELUdsdWNvc2FtaW5pYy1BY2lkIiwgIkdsdWNvc2UtMS1QaG9zcGhhdGUiLCJhbHBoYS1HbHljZXJvbC1QaG9zcGhhdGUiLCJELUdhbGFjdG9uaWMtQWNpZC1nYW1tYS1MYWN0b25lIiwgIkQtR2FsYWN0dXJvbmljLUFjaWQiLCAiMi1IeWRyb3h5LUJlbnpvaWMtQWNpZCIsICI0LUh5ZHJveHktQmVuem9pYy1BY2lkIiwgImdhbW1hLUFtaW5vYnV0eXJpYy1hY2lkIiwgIkl0YWNvbmljLUFjaWQiLCAiYWxwaGEtS2V0b2J1dHlyaWMtQWNpZCIsICJELU1hbGljLUFjaWQiLCAiTC1BcmdpbmluZSIsICJMLUFzcGFyYWdpbmUiLCAiTC1QaGVueWxhbGFuaW5lIiwgIkwtU2VyaW5lIiwgIkwtVGhyZW9uaW5lIiwgIkdseWN5bC1MLUdsdXRhbWljLUFjaWQiLCAiUGhlbnlsZXRoeWwtYW1pbmUiLCAiUHV0cmVzY2luZSIpDQpgYGANCuODkeODg+OCseODvOOCuOOBruiqreOBv+i+vOOBvw0KYGBge3J9DQpsaWJyYXJ5KHJnbCkNCmxpYnJhcnkodmVnYW4pDQpgYGANCg0KDQojIyMgOC4xIOWkmuWkiemHj+OBqOasoeWFg+WJiua4mw0KIyMjIyDnt5rlvaLlm57luLDjga7lj6/oppbljJYo5b6p57+SKQ0K44Ko44Kz44OX44Os44O844OI44OH44O844K/44Gu5LiA6YOo44KS5L2/44GGDQpgYGB7cn0NCiPmlaPluIPlm7Pjga7mj4/nlLsNCnBsb3QoDQogIHMwNSB+IHMwNCwgZGF0YSA9IHN1bW1hcnlfZWNvcGxhdGUsICPjg6Ljg4fjg6vlvI8oWSB+IFgpOuOCqOOCs+ODl+ODrOODvOODiOODh+ODvOOCv+OBrjTnlarnm67jgag155Wq55uu44Gu5Z+66LOq44Gr5rOo55uuDQogIHR5cGUgPSAicCIsICPjgrDjg6njg5Xjga7jgr/jgqTjg5fjga7mjIflrposIHDjga/mlaPluIPlm7MNCiAgY2V4ID0gMywgI+ODh+ODvOOCv+OBruaPj+eUu+OBruODnuODvOOCr+OBruWkp+OBjeOBleOBruaMh+Wumg0KICBwY2ggPSBjKDEsIDUpW2FzLmZhY3RvcihtZXRhZGF0YV9lY29wbGF0ZSR0cmVhdG1lbnQpXSwgI+WHpueQhih0cmVhdG1lbnQp44Gu6YGV44GE44KS44Oe44O844Kv44Gu56iu6aGe44Gu6YGV44GE44Gr5aSJ5o+bDQogIHhsYWIgPSBzdWJzdHJhdGVfbmFtZVs0XSwgI+Wfuuizqu+8lOOBruWQjeWJjeOCknjou7jlkI3jgavjgZnjgosNCiAgeWxhYiA9IHN1YnN0cmF0ZV9uYW1lWzVdLCAj5Z+66LOqNeOBruWQjeWJjeOCknnou7jlkI3jgavjgZnjgosNCiAgeGxpbSA9IGMoMCwgNCksICN46Lu444Gu5o+P55S756+E5ZuyKOOBn+OBoOOBl+OBk+OBrkhUTUzjgafjga/nuKbmqKrmr5Rhc3Djga7mjIflrprjgajkuKHnq4vjgZfjgarjgYQpDQogIHlsaW0gPSBjKDAsIDQpICN56Lu444Gu5o+P55S756+E5ZuyDQogICMsYXNwID0gMS4w44CA44CAI+e4puaoquavlOOBruaMh+WumijjgZPjgZPjgafjga/mjIflrprjgZfjgarjgYQpDQopDQoj57ea5b2i5Zue5biw5YiG5p6QDQptb2RlbDAxIDwtIGxtKHMwNSB+IHMwNCwgZGF0YSA9IHN1bW1hcnlfZWNvcGxhdGUpDQoj5Zue5biw55u057ea44Gu6L+95YqgDQphYmxpbmUobW9kZWwwMSwgbHR5ID0gNSkNCmBgYA0KIyMjIyDmrKHlhYPliYrmuJvjga7lj6/oppbljJYNCuS4iuOBrue3muW9ouWbnuW4sOOBq+S9v+OBo+OBn+OBruOBqOWQjOOBmOODh+ODvOOCv+OCkuS9v+OBhg0KYGBge3J9DQoj5pWj5biD5ZuzDQpwbG90KA0KICBzMDUgfiBzMDQsIGRhdGEgPSBzdW1tYXJ5X2Vjb3BsYXRlLCAj44Oi44OH44Or5byP44Go5L2/44GG44OH44O844K/44OV44Os44O844Og44Gu5oyH5a6aDQogIHR5cGUgPSAicCIsICPjgrDjg6njg5Xjga7jgr/jgqTjg5fjga7mjIflrposIHDjga/mlaPluIPlm7MNCiAgY2V4ID0gMyzjgIAj44Kw44Op44OV5LiK44Gu44Oe44O844Kv44Gu44K144Kk44K65oyH5a6aDQogIHBjaCA9IGMoMSwgNSlbYXMuZmFjdG9yKG1ldGFkYXRhX2Vjb3BsYXRlJHRyZWF0bWVudCldLCPlh6bnkIYodHJlYXRtZW50KeOBrumBleOBhOOCkuODnuODvOOCr+OBrueorumhnuOBrumBleOBhOOBq+aMh+Wumg0KICB4bGFiID0gc3Vic3RyYXRlX25hbWVbNF0sICN46Lu444Gu5ZCN5YmN44Gr44OZ44Kv44OI44Orc3Vic3RyYXRlX25hbWXjga7nrKw06KaB57Sg55uu44KS5oyH5a6aDQogIHlsYWIgPSBzdWJzdHJhdGVfbmFtZVs1XSwgI3nou7jjga7lkI3liY3jgavjg5njgq/jg4jjg6tzdWJzdHJhdGVfbmFtZeOBruesrDXopoHntKDnm67jgpLmjIflrprjgIANCiAgeGxpbSA9IGMoMCwgNCksICN46Lu444Gu5pyA5bCP44O75pyA5aSn5oyH5a6aDQogIHlsaW0gPSBjKDAsIDQpICAjeei7uOOBruacgOWwj+ODu+acgOWkp+aMh+Wumg0KICAjLGFzcCA9IDEuMA0KKQ0KI+e3muW9ouWbnuW4sOWIhuaekA0KbW9kZWwwMSA8LSBsbShzMDUgfiBzMDQsIGRhdGEgPSBzdW1tYXJ5X2Vjb3BsYXRlKQ0KI+WbnuW4sOebtOe3muOBrui/veWKoA0KYWJsaW5lKG1vZGVsMDEsIGx0eSA9IDUpICNsdHnjga/nt5rnqK7jga7mjIflrpoNCiPkuLvmiJDliIbliIbmnpANCm1vZGVsMDIgPC0gc3VtbWFyeShjYXBzY2FsZShzdW1tYXJ5X2Vjb3BsYXRlWywgNDo1XSB+IDEsIGRpc3RhbmNlID0gImV1Y2xpZGVhbiIpKQ0KI+S4u+aIkOWIhuWIhuaekOOBrue1kOaenOOBi+OCieOAgeesrDHkuLvmiJDliIbou7jjga7lgr7jgY3jgpLoqIjnrpcNCnNsb3BlX1BDMSA8LSBtb2RlbDAyJHNwZWNpZXNbMiwgMV0vbW9kZWwwMiRzcGVjaWVzWzEsIDFdDQoj56ysMeS4u+aIkOWIhui7uOOBruWIh+eJh+OCkuioiOeulw0KaW50ZXJjZXB0X1BDMSA8LSBtZWFuKHN1bW1hcnlfZWNvcGxhdGUkczA1KSAtIHNsb3BlX1BDMSptZWFuKHN1bW1hcnlfZWNvcGxhdGUkczA0KQ0KI+esrDHkuLvmiJDliIbou7jjga7ov73liqANCmFibGluZShpbnRlcmNlcHRfUEMxLCBzbG9wZV9QQzEpDQpwYXIobmV3ID0gVCnjgIAj5qyh44Gu44Kw44Op44OV44KS6YeN44Gt5ZCI44KP44Gb44KLDQoj6Kaz5ris44OH44O844K/44Gu5bmz5Z2H5YCk44KS56S644GZ54K544KS6L+95YqgDQpwbG90KA0KICBtZWFuKHN1bW1hcnlfZWNvcGxhdGUkczA0KSwgbWVhbihzdW1tYXJ5X2Vjb3BsYXRlJHMwNSksICPlubPlnYflgKTjga7oqIjnrpcNCiAgY2V4ID0gMywgI+OCsOODqeODleOBruOCv+OCpOODl+OBruaMh+WumiwgcOOBr+aVo+W4g+Wbsw0KICBwY2ggPSAzLCAj44Oe44O844Kv44Gu56iu6aGe44Gu5oyH5a6aDQogIHhsaW0gPSBjKDAsIDQpLCAjeOi7uOOBruacgOWwj+ODu+acgOWkp+aMh+Wumg0KICB5bGltID0gYygwLCA0KSwgI3nou7jjga7mnIDlsI/jg7vmnIDlpKfmjIflrpoNCiAgeGxhYiA9ICIiLCB5bGFiID0gIiIgI3jou7jjga7lkI3liY3jgah56Lu444Gu5ZCN5YmN44KS56m65qyE44Gr44GZ44KL44Gf44KB77yI5LiA44Gk5LiK44Gu44Kw44Op44OV44Gu6Lu45ZCN44Go5paH5a2X44GM6YeN44Gq44KJ44Gq44GE44Gf44KB77yJ44CBIiLjgaDjgZHjgafmjIflrprjgZnjgosNCiAgIyxhc3AgPSAxLjANCikNCmBgYA0K56ysMeS4u+aIkOWIhui7uOS4iuOBq+enu+OBl+OBn+ODh+ODvOOCv+OCkuOCsOODqeODleWMluOBmeOCiyjlm7M4LjNCKQ0KYGBge3J9DQoj44Kw44Op44OV44Gu57im6Lu455So44Gr44OA44Of44O844Gn5YCk44K844Ot44Gu44OZ44Kv44OI44Or44KS55So5oSPDQp5X2R1bW15IDwtIHJlcCgwLCBsZW5ndGgoc3VtbWFyeV9lY29wbGF0ZVssIDFdKSkNCiPmqKrou7jjgavnrKwx5Li75oiQ5YiG6Lu444Guc2l0ZSBzY29yZeOAgee4pui7uDDjga7mlaPluIPlm7PjgpLmj4/jgY8NCnBsb3QoDQogIHlfZHVtbXkgfiBtb2RlbDAyJHNpdGVzWywgMV0sICPjg6Ljg4fjg6vlvI8NCiAgcGNoID0gYygxLDUpW2FzLmZhY3RvcihtZXRhZGF0YV9lY29wbGF0ZSR0cmVhdG1lbnQpXSwgI+WHpueQhih0cmVhdG1lbnQp44Gu6YGV44GE44KS44Oe44O844Kv44Gu56iu6aGe44Gu6YGV44GE44Gr5oyH5a6aDQogIGNleCA9IDMsDQogIHhsaW0gPSBjKC0yLCAyKSwgeWxpbSA9IGMoLTAuNSwgMC41KSwNCiAgeGxhYiA9ICJOZXcgYXhpcyIsDQogIHlsYWIgPSAiIg0KKQ0KcGFyKG5ldyA9IFQpDQoj5bmz5Z2H5YCk77yd5Y6f54K5KDAsIDAp44KS5by36Kq/44GZ44KL44Gf44KB44Gr44Oe44O844Kv44KS6L+95YqgDQpwbG90KA0KICAwLjAsIDAuMCwNCiAgY2V4ID0gMywNCiAgcGNoID0gMywNCiAgeGxpbSA9IGMoLTIsIDIpLCB5bGltID0gYygtMC41LCAwLjUpLA0KICB4bGFiID0gIiIsIHlsYWIgPSAiIg0KKQ0KYGBgDQojIyMjIOasoeWFg+WJiua4m+S+i+OCkuOCguOBhuS4gOOBpA0KM+asoeWFg+epuumWk+S4iuOBp++8jDLmrKHlhYPjgbjjgajmrKHlhYPliYrmuJvjgZfjgZ/lubPpnaLjgajjg5njgq/jg4jjg6vjgpLmj4/nlLvjgZfjgabjgb/jgosoUuOCs+ODvOODieOCkuWun+ihjOOBmeOCjOOBsOWIpeOCpuOCo+ODs+ODieOCpuOBq+ihqOekuuOBleOCjOOBvuOBmeOBjOOAgeOBk+OBrkhUTUzkuIrjgavjga/jgYLjgajjgYvjgonnlLvlg4/jgpLln4vjgoHovrzjgb/jgb7jgZfjgZ8NCmBgYHtyfQ0KIyMjI1Bsb3QgM0QgZGF0YSMjIyMNCmxpYnJhcnkocmdsKSAjcmds44OR44OD44Kx44O844K444KS5L2/44GE44G+44GZDQoj44Ko44Kz44OX44Os44O844OI44OH44O844K/44Gu5Z+66LOqNCwgNSwgNuOCkuS9v+OBo+OBpuS4ieasoeWFg+aVo+W4g+Wbs+OCkuaPj+OBjw0KcGxvdDNkKA0KICB4ID0gc3VtbWFyeV9lY29wbGF0ZSRzMDQsIHkgPSBzdW1tYXJ5X2Vjb3BsYXRlJHMwNSwgeiA9IHN1bW1hcnlfZWNvcGxhdGUkczA2LA0KICB4bGFiID0gc3Vic3RyYXRlX25hbWVbNF0sIHlsYWIgPSBzdWJzdHJhdGVfbmFtZVs1XSwgemxhYiA9IHN1YnN0cmF0ZV9uYW1lWzZdLA0KICB0eXBlID0gInMiLA0KICBzaXplID0gMywNCiAgY29sID0gYygyLCA5KVthcy5mYWN0b3IobWV0YWRhdGFfZWNvcGxhdGUkdHJlYXRtZW50KV0NCikNCiPjgZPjga4z5qyh5YWD44OH44O844K/44Gr5a++44GX44Gm5Li75oiQ5YiG5YiG5p6Q44KS5a6f6KGMDQptb2RlbDAzIDwtIHN1bW1hcnkoY2Fwc2NhbGUoc3VtbWFyeV9lY29wbGF0ZVssNDo2XSB+IDEsIGRpc3RhbmNlID0gImV1Y2xpZGVhbiIpKQ0KI1BDMS1QQzIgcGxhbmUgY2FuIGJlIGRlZmluZWQgYnkgdGhlIG9ydGhvZ29uYWwgdmVjdG9yIChpLmUsIFBDMykNCiPnrKwx5Li75oiQ5YiG6Lu444O856ysMuS4u+aIkOWIhui7uOOBjOW8teOCi+W5s+mdouOBr++8jOOBk+OBruW5s+mdouOBqOebtOS6pOOBmeOCi+ODmeOCr+ODiOODqyjjgZnjgarjgo/jgaHnrKwz5Li75oiQ5YiG6Lu4KeOBp+Wumue+qeWPr+iDvQ0KUEMxX2NvZWZmIDwtIG1vZGVsMDMkc3BlY2llc1sxOjMsIDFdDQpQQzJfY29lZmYgPC0gbW9kZWwwMyRzcGVjaWVzWzE6MywgMl0NClBDM19jb2VmZiA8LSBtb2RlbDAzJHNwZWNpZXNbMTozLCAzXQ0KI+ims+a4rOODh+ODvOOCv+OBruW5s+Wdh+WApOOCkuioiOeulw0KbmV3X29yaWdpbiA8LSBjKG1lYW4oc3VtbWFyeV9lY29wbGF0ZSRzMDQpLCBtZWFuKHN1bW1hcnlfZWNvcGxhdGUkczA1KSwgbWVhbihzdW1tYXJ5X2Vjb3BsYXRlJHMwNikpDQoj5YiH54mH44Gu6KiI566XDQppbnRlcmNlcHRfY29lZmYgPC0gKFBDM19jb2VmZiAlKiUgbmV3X29yaWdpbikgKiAtMS4wDQojI+esrDHkuLvmiJDliIbou7jjg7znrKwy5Li75oiQ5YiG6Lu444GM5by144KL5bmz6Z2i44Gu5o+P55S7KOazlee3muODmeOCr+ODiOODq1BDM19jb2VmZuOBqOWIh+eJh+OBp+Wumue+qeOBleOCjOOCiykNCnBsYW5lczNkKFBDM19jb2VmZlsxXSwgUEMzX2NvZWZmWzJdLCBQQzNfY29lZmZbM10sIGludGVyY2VwdF9jb2VmZiwgY29sID0gImJsdWUiLCBhbHBoYSA9IDAuNSkNCiPnrKwx5Li75oiQ5YiG6Lu444KS44OZ44Kv44OI44Or44Go44GX44Gm5o+P55S7DQphcnJvdzNkKA0KICBwMCA9IG5ld19vcmlnaW4sDQogIHAxID0gbmV3X29yaWdpbiArIFBDMV9jb2VmZiAqIDAuNCwNCiAgcyA9IDEgLyA0LA0KICB0eXBlID0gInJvdGF0aW9uIg0KKQ0KI+esrDLkuLvmiJDliIbou7jjgpLjg5njgq/jg4jjg6vjgajjgZfjgabmj4/nlLsNCmFycm93M2QoDQogIHAwID0gbmV3X29yaWdpbiwNCiAgcDEgPSBuZXdfb3JpZ2luICsgUEMyX2NvZWZmICogMC40LA0KICBzID0gMSAvIDQsDQogIHR5cGUgPSAicm90YXRpb24iDQopDQoNCmBgYA0K44GC44Go44GL44KJ5LiK44Gu5a6f6KGM57WQ5p6c44Go44GX44Gm6KGo56S644GV44KM44KL44Km44Kj44Oz44OJ44Km44Gu55S75YOP44KS5Z+L44KB6L6844KT44Gg44KC44GuDQohW+WIpeOCpuOCo+ODs+ODieOCpuOBp+ihqOekuuOBleOCjOOCi++8k0TjgrDjg6njg5VdKC4vcmdsX291dHB1dDAxLnBuZykNCg0KMuasoeWFg+W5s+mdouOBuOenu+OBl+OBn+ODh+ODvOOCv+OBruWPr+imluWMligx5qyh5YWD44G444Gu5qyh5YWD5YmK5ribKQ0KYGBge3J9DQojIyMjUmVkdWN0aW9uIHRvIDJEIyMjIw0KcGxvdCgNCiAgbW9kZWwwMyRzaXRlc1ssIDJdIH4gbW9kZWwwMyRzaXRlc1ssIDFdLCAj44Oi44OH44Or5byPDQogIHBjaCA9IGMoMSw1KVthcy5mYWN0b3IobWV0YWRhdGFfZWNvcGxhdGUkdHJlYXRtZW50KV0sICPlh6bnkIYodHJlYXRtZW50KeOBrumBleOBhOOCkuODnuODvOOCr+OBrueorumhnuOBrumBleOBhOOBq+aMh+Wumg0KICBjZXggPSAzLA0KICB4bGltID0gYygtMywgMyksIHlsaW0gPSBjKC0zLCAzKSwNCiAgeGxhYiA9ICJOZXcgYXhpcyAxIiwNCiAgeWxhYiA9ICJOZXcgYXhpcyAyIg0KICAjLGFzcCA9IDEuMA0KKQ0KYGBgDQox5qyh5YWD55u057ea5LiK44G456e744GX44Gf44OH44O844K/44Gu5Y+v6KaW5YyWKDHmrKHlhYPjgbjjga7mrKHlhYPliYrmuJspDQpgYGB7cn0NCiMjIyNSZWR1Y3Rpb24gdG8gMUQjIyMjDQp5X2R1bW15IDwtIHJlcCgwLCBsZW5ndGgoc3VtbWFyeV9lY29wbGF0ZVssIDFdKSkNCnBsb3QoDQogIHlfZHVtbXkgfiBtb2RlbDAzJHNpdGVzWywgMV0sDQogIHBjaCA9IGMoMSw1KVthcy5mYWN0b3IobWV0YWRhdGFfZWNvcGxhdGUkdHJlYXRtZW50KV0sDQogIGNleCA9IDMsDQogIHhsaW0gPSBjKC0zLCAzKSwgeWxpbSA9IGMoLTAuNSwgMC41KSwNCiAgeGxhYiA9ICJOZXcgYXhpcyAxIiwNCiAgeWxhYiA9ICIiDQopDQpgYGANCiMjIyA4LjIg5aSa5aSJ6YeP44OH44O844K/44Gu5Y+v6KaW5YyW77yR77ya5Li75oiQ5YiG5YiG5p6QDQojIyMjIDguMi4xIOS4u+aIkOWIhuWIhuaekOOBr+W6p+aomei7uOOBruWbnui7ouOCkuaEj+WRs+OBmeOCiw0K5qyh44Gu44KC44Gu44KCSFRNTOS4iuOBp+OBr+Wfi+OCgei+vOOBv+eUu+WDj+OBqOOBl+OBpuihqOekuuOBleOCjOOBvuOBmeOBjOOAgVLjgrnjgq/jg6rjg5fjg4jjgajjgZfjgablrp/ooYzjgZnjgozjgbDliKXjgqbjgqPjg7Pjg4njgqbjgavooajnpLrjgZXjgozjgb7jgZkNCmBgYHtyfQ0KIyMjI1BDQSBmb3IgM0QgZGF0YSB3aXRoIDMgUEMgYXhlcyMjIyMNCiMz5qyh5YWD5pWj5biD5ZuzDQpwbG90M2QoDQogIHggPSBzdW1tYXJ5X2Vjb3BsYXRlJHMwNCwgeSA9IHN1bW1hcnlfZWNvcGxhdGUkczA1LCB6ID0gc3VtbWFyeV9lY29wbGF0ZSRzMDYsDQogIHhsYWIgPSBzdWJzdHJhdGVfbmFtZVs0XSwgeWxhYiA9IHN1YnN0cmF0ZV9uYW1lWzVdLCB6bGFiID0gc3Vic3RyYXRlX25hbWVbNl0sDQogIHR5cGUgPSAicyIsDQogIHNpemUgPSAzLA0KICBjb2wgPSBjKDIsIDkpW2FzLmZhY3RvcihtZXRhZGF0YV9lY29wbGF0ZSR0cmVhdG1lbnQpXQ0KKQ0KIzPmrKHlhYPjg4fjg7zjgr/jgavlr77jgZnjgovkuLvmiJDliIbliIbmnpANCm1vZGVsMDMgPC0gc3VtbWFyeShjYXBzY2FsZShzdW1tYXJ5X2Vjb3BsYXRlWywgNDo2XSB+IDEsIGRpc3RhbmNlID0gImV1Y2xpZGVhbiIpKQ0KI+S4u+aIkOWIhui7uOOBruaWueWQkeOCkuihqOOBmeODmeOCr+ODiOODq+OCkuaKveWHug0KUEMxX2NvZWZmIDwtIG1vZGVsMDMkc3BlY2llc1sxOjMsIDFdDQpQQzJfY29lZmYgPC0gbW9kZWwwMyRzcGVjaWVzWzE6MywgMl0NClBDM19jb2VmZiA8LSBtb2RlbDAzJHNwZWNpZXNbMTozLCAzXQ0KbmV3X29yaWdpbiA8LSBjKG1lYW4oc3VtbWFyeV9lY29wbGF0ZSRzMDQpLCBtZWFuKHN1bW1hcnlfZWNvcGxhdGUkczA1KSwgbWVhbihzdW1tYXJ5X2Vjb3BsYXRlJHMwNikpDQppbnRlcmNlcHRfY29lZmYgPC0gKFBDM19jb2VmZiAlKiUgbmV3X29yaWdpbikgKiAtMS4wDQpwbGFuZXMzZChQQzNfY29lZmZbMV0sIFBDM19jb2VmZlsyXSwgUEMzX2NvZWZmWzNdLCBpbnRlcmNlcHRfY29lZmYsIGNvbCA9ICJibHVlIiwgYWxwaGEgPSAwLjUpDQoj5Li75oiQ5YiG6Lu444Gu44OZ44Kv44OI44Or44KS6YeN44Gt5ZCI44KP44GbDQphcnJvdzNkKA0KICBwMCA9IG5ld19vcmlnaW4sDQogIHAxID0gbmV3X29yaWdpbiArIFBDMV9jb2VmZiAqIDAuNCwNCiAgcyA9IDEgLyA0LA0KICB0eXBlID0gInJvdGF0aW9uIg0KKQ0KYXJyb3czZCgNCiAgcDAgPSBuZXdfb3JpZ2luLA0KICBwMSA9IG5ld19vcmlnaW4gKyBQQzJfY29lZmYgKiAwLjQsDQogIHMgPSAxIC8gNCwNCiAgdHlwZSA9ICJyb3RhdGlvbiINCikNCmFycm93M2QoDQogIHAwID0gbmV3X29yaWdpbiwNCiAgcDEgPSBuZXdfb3JpZ2luICsgUEMzX2NvZWZmICogMC40LA0KICBzID0gMSAvIDQsDQogIHR5cGUgPSAicm90YXRpb24iDQopDQoNCmBgYA0K44GC44Go44GL44KJ5LiK44Gu5a6f6KGM57WQ5p6c44Go44GX44Gm6KGo56S644GV44KM44KL44Km44Kj44Oz44OJ44Km44Gu55S75YOP44KS5Z+L44KB6L6844KT44Gg44KC44GuDQohW+WIpeOCpuOCo+ODs+ODieOCpuOBp+ihqOekuuOBleOCjOOCi++8k0TjgrDjg6njg5VdKC4vcmdsX291dHB1dDAyLnBuZykNCg0KIyMjIyA4LjIuMiDkuLvmiJDliIbliIbmnpDjga7jgrPjg7zjg4fjgqPjg7PjgrANCjMx56iu6aGe44Gu5pyJ5qmf54Kt57Sg5Z+66LOq44G444Gu5Y+N5b+c44OH44O844K/44Gr5a++44GZ44KL5Li75oiQ5YiG5YiG5p6QDQpgYGB7cn0NCiMjIyNQQ0EgZm9yIGVjb3BsYXRlIyMjIyMNCiNjYXBzY2FsZSgp6Zai5pWw44KS5L2/44Gj44Gm5Li75oiQ5YiG5YiG5p6Q44KS5a6f6KGM44GX44CBc3VtbWFyeSgp6Zai5pWw44KS55So44GE44Gm44Gd44Gu5Ye65Yqb57WQ5p6c44KS44G+44Go44KB77yM44G+44Go44KB44Gf57WQ5p6c44KS44Kq44OW44K444Kn44Kv44OIUENBX21vZGVsMDHjgavku6PlhaUoPC0pDQpQQ0FfbW9kZWwwMSA8LSBzdW1tYXJ5KGNhcHNjYWxlKHN1bW1hcnlfZWNvcGxhdGUgfiAxLCBkaXN0YW5jZSA9ICJldWNsaWRlYW4iKSkNCmBgYA0KYGBge3J9DQoj57WQ5p6c44KS6KGo56S644GX44Gm44G/44KLOiDkuLvmiJDliIbliIbmnpDjga7ntZDmnpzjga7jgb7jgajjgoHjgpLkv53lrZjjgZfjgZ/jgqrjg5bjgrjjgqfjgq/jg4jjga7lkI3liY0sIFBDQV9tb2RlbDAxLCDjgpLmm7jjgZHjgbDkuK3ouqvjgYzjgb/jgozjgosNClBDQV9tb2RlbDAxDQoNCmBgYA0KYGBge3J9DQoj5ZCE44OH44O844K/44Gu5Li75oiQ5YiG6Lu45LiK44Gu5bqn5qiZ44Gu6KGo56S6OiDkuLvmiJDliIbliIbmnpDjga7ntZDmnpzjgpLkv53lrZjjgZfjgZ/jgqrjg5bjgrjjgqfjgq/jg4jjga7kuK3jga5zaXRlc+WIl+OBq+OBneOBruW6p+aomeaDheWgseOBjOOBguOCiw0KUENBX21vZGVsMDEkc2l0ZXMNCmBgYA0KDQrmnIDliJ3jga7kuozjgaTjga7kuLvmiJDliIbou7jjgavplqLjgZfjgablj6/oppbljJbihpLjgaTjgb7jgorkuozmrKHlhYPjgbjjga7mrKHlhYPliYrmuJsNCmBgYHtyfQ0KI+acgOWIneOBruS6jOOBpOOBruS4u+aIkOWIhui7uOS4iuOBruW6p+aomeeCueOCkuODmeOCr+ODiOODq+OBq+agvOe0jTog5Li75oiQ5YiG5YiG5p6Q44Gu57WQ5p6c44KS5L+d5a2Y44GX44Gf44Kq44OW44K444Kn44Kv44OI44Gu5Lit44Guc2l0ZXPliJfjga7kuK3jgafjgIHjgZXjgonjgasx5YiX55uuKOesrDHkuLvmiJDliIYp44GoMuWIl+ebrijnrKwy5Li75oiQ5YiGKeOCkuaKnOOBjeWHuuOBl+OBpuOAgeOBneOCjOOBnuOCjOODmeOCr+ODiOODq+OBqOOBl+OBplBDMV8wMSwgUEMyXzAx44Gr5L+d5a2YDQpQQzFfMDEgPC0gUENBX21vZGVsMDEkc2l0ZXNbLCAxXQ0KUEMyXzAxIDwtIFBDQV9tb2RlbDAxJHNpdGVzWywgMl0NCiPmlaPluIPlm7MNCnBsb3QoDQogIFBDMl8wMSB+IFBDMV8wMSzjgIAj44Oi44OH44Or5byPDQogIGNleCA9IDMsIHBjaCA9IGMoMSwgNSlbYXMuZmFjdG9yKG1ldGFkYXRhX2Vjb3BsYXRlJHRyZWF0bWVudCldLCPlh6bnkIYodHJlYXRtZW50KeOBrumBleOBhOOCkuWboOWtkOOBq+WkieaPm+OBmeOCjOOBsO+8jOOBneOCjOOBq+OCiOOBo+OBpuWQhOeCueOBruODnuODvOOCr+OCkuaMh+WumuOBp+OBjeOCiw0KICB4bGFiID0gIlBDMSAoMjEuMSAlKSIsIHlsYWIgPSAiUEMyICgxMy44ICUpIuOAgCPlr4TkuI7njofjgpLou7jlkI3jga7kuK3jgavlkKvjgoHjgosNCikNCmBgYA0KDQpQQ0Hjga7nt7Tnv5LvvJrmpI3nianjg5fjg6njg7Pjgq/jg4jjg7Pjg4fjg7zjgr/jgavlr77jgZnjgovkuLvmiJDliIbliIbmnpANCmBgYHtyfQ0KIyMjI1BDQSBmb3IgcGh5dG9wbGFua3RvbiMjIyMNCiNQQ0Hjga7lrp/ooYwNClBDQV9tb2RlbDAyIDwtIHN1bW1hcnkoY2Fwc2NhbGUoc3BlY2llc19yeXVrb19kYXRhIH4gMSwgZGlzdGFuY2UgPSAiZXVjbGlkZWFuIikpDQojUENB44Gu57WQ5p6c44Gu6KGo56S6KOOBk+OBrue1kOaenOOCkuimi+OBpuOAgeWvhOS4jueOh+OBrueiuuiqjeOBjOW/heimgSkNClBDQV9tb2RlbDAyDQoj5Li75oiQ5YiG6Lu45LiK44Gu5bqn5qiZ44Gu6KGo56S6DQpQQ0FfbW9kZWwwMiRzaXRlcw0KDQoj5pyA5Yid44GuMui7uOWIhuOBruW6p+aomeaDheWgseOCkuODmeOCr+ODiOODq+OBq+agvOe0jQ0KUEMxXzAyIDwtIFBDQV9tb2RlbDAyJHNpdGVzWywgMV0NClBDMl8wMiA8LSBQQ0FfbW9kZWwwMiRzaXRlc1ssIDJdDQoj5pWj5biD5ZuzDQpwbG90KA0KICBQQzJfMDIgfiBQQzFfMDIs44CAI+ODouODh+ODq+W8jw0KICBjZXggPSAzLCBwY2ggPSBhcy5udW1lcmljKGFzLmZhY3RvcihwaHl0b19tZXRhZGF0YSRtb250aCkpLA0KICB4bGFiID0gIlBDMSAoNjIuMCUpIiwgeWxhYiA9ICJQQzIgKDI4LjMgJSkiICPlr4TkuI7njofjgpLou7jlkI3jga7kuK3jgavmm7jjgY3ovrzjgoANCikNCmBgYA0KIyMjIyA4LjIuMyDkuLvmiJDliIbliIbmnpDjga/jgZnjgbnjgabjga7mrKHlhYPliYrmuJvlj6/oppbljJbjga7ln7rnm6QNCuS4u+aIkOWIhuWIhuaekOOBr+S4u+W6p+aomeWIhuaekOOCguWQq+OCgeOBmeOBueOBpuOBruasoeWFg+WJiua4m+WPr+imluWMluOBruWcn+WPsOOBp+OBmeOBruOBp++8jOWujOeSp+OBq+eQhuino+OBmeOCi+OBk+OBqOOBjOOBqOOBpuOCgumHjeimgeOBp+OBme+8juOBqOOBj+OBq+OAgTguMi4y44Gu6YOo5YiG44Gr5pu444GL44KM44Gf44GT44O844Gp44Gr44Gk44GE44Gm44Gv77yMMeihjDHooYzjga7mhI/lkbPjgpLnorroqo3jgZfjgarjgYzjgonlrp/ooYzjgZfjgabjgb/jgb7jgZfjgofjgYbvvI4NCg0KIyMjIyA4LjIuNCDkuLvmiJDliIbliIbmnpDjga7jgrnjgrHjg7zjg6vkvp3lrZjmgKcNCuODi+ODpeODvOODqOODvOOCr+OBruWkp+awl+ODh+ODvOOCv+OBq+OBpOOBhOOBpuiqreOBv+i+vOOCk+OBp+WJjeWHpueQhg0KYGBge3J9DQojIyMjUENBIGZvciBhaXJxdWFsaXR5IGRhdGEjIyMjDQpkYXRhKCJhaXJxdWFsaXR5IikgI+ODh+ODvOOCv+OBruiqreOBv+i+vOOBvw0KI+WfuuacrOeahOOBque1seioiOmHj+OCkuihqOekuuOBmeOCiw0Kc3VtbWFyeShhaXJxdWFsaXR5KQ0KI+asoOaQjeODh+ODvOOCv+OCkuWPluOCiumZpOOBjeOAgeaWsOOBl+OBhOOCquODluOCuOOCp+OCr+ODiGFpcl9kYXRh44Gr5qC857SN44GZ44KLDQphaXJfZGF0YSA8LSBuYS5vbWl0KGFpcnF1YWxpdHkpDQpgYGANCuODh+ODvOOCv+OBruaomea6luWMluOCkuOBl+OBquOBhOWgtOWQiOOBruWPr+imluWMlijlm7M4LjnkvZzmiJDnlKjjga7jgrPjg7zjg4kpDQpgYGB7cn0NCiNQQ0Hjga7lrp/ooYwNClBDQV9tb2RlbDAzIDwtIHN1bW1hcnkoY2Fwc2NhbGUoYWlyX2RhdGFbLDE6NF0gfiAxLCBkaXN0YW5jZSA9ICJldWNsaWRlYW4iKSkNCiNQQ0Hjga7ntZDmnpzjga7ooajnpLoo5a+E5LiO546H44Gu56K66KqN44GM5b+F6KaBKQ0KUENBX21vZGVsMDMNCiPmnIDliJ3jga7kuLvmiJDliIbou7jkuozjgaTjgavjgaTjgYTjgabluqfmqJnlgKTjgpLjg5njgq/jg4jjg6vjgavmoLzntI0NClBDMV8wMyA8LSBQQ0FfbW9kZWwwMyRzaXRlc1ssIDFdDQpQQzJfMDMgPC0gUENBX21vZGVsMDMkc2l0ZXNbLCAyXQ0KI+aVo+W4g+Wbs+S9nOaIkA0KcGxvdCgNCiAgUEMyXzAzIH4gUEMxXzAzLCPjg6Ljg4fjg6vlvI8oWSB+IFgpDQogIGNleCA9IDAuNSwgcGNoID0gYWlyX2RhdGEkTW9udGgsICNwY2jjga7lvJXmlbDjgajjgZfjgaZtb250aOOBruWApOOCkuS9v+OBhg0KICB4bGFiID0gIlBDMSAoODkuMCAlKSIsIHlsYWIgPSAiUEMyICgxMC41ICUpIiwNCiAgYXNwID0gMQ0KKQ0KI+aVo+W4g+Wbs+S4iuOBrueCueOBruOBneOBsOOBq+OAgeaWh+Wtl+OCkui/veWKoOOBmeOCiw0KdGV4dChQQzFfMDMgKyAwLjUsIFBDMl8wMywgbGFiZWxzID0gcm93bmFtZXMoYWlyX2RhdGEpLCBjZXggPSAwLjgpDQpgYGANCuODh+ODvOOCv+OBruaomea6luWMluOCkuOBmeOCi+WgtOWQiOOBruWPr+imluWMlijlm7M4LjEw5L2c5oiQ55So44Gu44Kz44O844OJKQ0KYGBge3J9DQojc2NhbGXplqLmlbDjgpLkvb/jgaPjgabjg4fjg7zjgr/jga7mqJnmupbljJYNCmFpcl9kYXRhMiA8LSBzY2FsZShhaXJfZGF0YSkNCiPmqJnmupbljJblvozjga7jg4fjg7zjgr/jga7ln7rmnKzntbHoqIjph48NCnN1bW1hcnkoYWlyX2RhdGEyWywgMTo0XSkNCiPmqJnmupbljJbjgZXjgozjgZ/jg4fjg7zjgr/jgavlr77jgZfjgaZQQ+OCkuWun+ihjA0KUENBX21vZGVsMDQgPC0gc3VtbWFyeShjYXBzY2FsZShhaXJfZGF0YTJbLCAxOjRdIH4gMSwgZGlzdGFuY2UgPSAiZXVjbGlkZWFuIikpDQojUENB44Gu57WQ5p6c44Gu6KGo56S6KOWvhOS4jueOh+OBrueiuuiqjeOBjOW/heimgSkNClBDQV9tb2RlbDA0DQoj5pyA5Yid44Gu5Li75oiQ5YiG6Lu4MuOBpOOBruS4iuOBruW6p+aomeWApOOCkuODmeOCr+ODiOODq+OBq+agvOe0jQ0KUEMxXzA0IDwtIFBDQV9tb2RlbDA0JHNpdGVzWywgMV0NClBDMl8wNCA8LSBQQ0FfbW9kZWwwNCRzaXRlc1ssIDJdDQoj5pWj5biD5ZuzDQpwbG90KA0KICBQQzJfMDQgfiBQQzFfMDQsDQogIGNleCA9IDAuNSwgcGNoID0gYWlyX2RhdGEkTW9udGgsDQogIHhsYWIgPSAiUEMxICg1OS4wICUpIiwgeWxhYiA9ICJQQzIgKDIyLjQgJSkiLCAgDQogIGFzcCA9IDENCikNCiPmloflrZfjga7ov73liqANCnRleHQoUEMxXzA0ICsgMC4wNSwgUEMyXzA0LCBsYWJlbHMgPSByb3duYW1lcyhhaXJfZGF0YSksIGNleCA9IDAuOCkNCmBgYA0K5qiZ5rqW5YyW44Gv44GE44Gk44KC44GX44Gf44G744GG44GM44KI44GE44Gu44GL77yfDQpgYGB7cn0NCiNMYXJnZSB2YXJpYXRpb25zIGJldHdlZW4gdmFyaWFibGVzIHdpdGggdGhlIHNhbWUgdW5pdA0KI+WAi+S9k+aVsOOBjOWkp+OBjeOBj+eVsOOBquOCizLnqK7poZ7jga7mpI3nianjg5fjg6njg7Pjgq/jg4jjg7Pjga7mr5TovIMNCnN1bW1hcnkoc3BlY2llc19yeXVrb19kYXRhJGBGcmFnaWxhcmlhIGNyb3RvbmVuc2lzYCkNCnN1bW1hcnkoc3BlY2llc19yeXVrb19kYXRhJGBNaWNyYXN0ZXJpYXMgaGFyZHlpYCkNCmBgYA0KDQpCT1g4IFLmqJnmupbjga7kuLvmiJDliIbliIbmnpDnlKjplqLmlbDjgpLkvb/jgYbloLTlkIgNCmBgYHtyfQ0KIyMjI1N0YW5kYXJkIHdheSBvZiBQQ0EjIyMjDQoj5qiZ5rqW5YyW44GX44Gq44GE5aC05ZCIDQpQQ0FfczAxIDwtIHByY29tcChhaXJfZGF0YVssIDE6NF0sIHNjYWxlLiA9IEYpDQoj5qiZ5rqW5YyW44GZ44KL5aC05ZCIDQpQQ0FfczAyIDwtIHByY29tcChhaXJfZGF0YVssIDE6NF0sIHNjYWxlLiA9IFQpDQoj5qiZ5rqW5YyW44GX44Gq44GE5aC05ZCI44Gu57WQ5p6cDQpzdW1tYXJ5KFBDQV9zMDEpDQoj5Y+v6KaW5YyWKOaomea6luWMlueEoeOBlykNCmJpcGxvdChQQ0FfczAxKQ0KI+WPr+imluWMlijmqJnmupbljJbmnInjgoopDQpiaXBsb3QoUENBX3MwMikNCmBgYA0KIyMjIDguMyDkuLvmiJDliIbliIbmnpDjga7lvLHngrnjgpLlhYvmnI3jgZnjgovvvJrjgZXjgb7jgZbjgb7jgarot53pm6LjgajpnZ7poZ7kvLzluqYNCiMjIyMgOC4zLjLjgIDjgZXjgb7jgZbjgb7jgarot53pm6LjgpLnlKjjgYTjgZ/vvIjpnZ7vvInpoZ7kvLzluqYg44Gu5a6a6YeP5YyWDQoo6Z2eKemhnuS8vOW6puOBrueQhuino+OBruOBn+OCgeOBruS7ruaDs+ODh+ODvOOCvw0KYGBge3J9DQoj5pWw5YCk44OZ44Kv44OI44Orc3AxLCBzcDLjgpLkvZzjgovjgILnibnjgavmlbDlgKTjgavmhI/lkbPjga/jgarjgYQNCnNwMSA8LSBjKDMuMCwgMC4wLCAwLjEsIDYuMCkNCnNwMiA8LSBjKDMuNSwgMC41LCAwLjAsIDYuMCkNCiPjg5njgq/jg4jjg6soc3AxLCBzcDIp44GL44KJ44OH44O844K/44OV44Os44O844Og44KS5L2c44KLICjliJfjga7lkI3liY3jga9zcC4xLCBzcC4yIFvjg5njgq/jg4jjg6vjgajjga/lpInjgYjjgotdKQ0KY29tbSA8LSBkYXRhLmZyYW1lKHNwLjEgPSBzcDEsIHNwLjIgPSBzcDIp44CAI2RhdGEuZnJhbWXplqLmlbDjgafjg4fjg7zjgr/jg5Xjg6zjg7zjg6DjgYzkvZzjgorvvIzmlrDjgZfjgYTjgqrjg5bjgrjjgqfjgq/jg4hjb21t44Gr5Luj5YWl44GZ44KL77yO44GT44KM44Gr44KI44KKY29tbeOBqOOBhOOBhuWQjeWJjeOBruODh+ODvOOCv+ODleODrOODvOODoOOBjOOBp+OBjeOCiw0Kcm93bmFtZXMoY29tbSkgPC0gYygiQSIsICJCIiwgIkMiLCAiRCIp44CAI3Jvd25hbWVz6Zai5pWw44KS5L2/44Gj44Gm77yM44OH44O844K/44OV44Os44O844Og44Gr5YiX5ZCN44KS5LuY44GR44KLDQpgYGANCuS7iuS9nOOBo+OBn+ODh+ODvOOCv+OCkuWNmOe0lOOBqzLmrKHlhYPmlaPluIPlm7PjgavjgZnjgosNCmBgYHtyfQ0KcGxvdCgNCiAgc3AuMiB+IHNwLjEsIGRhdGEgPSBjb21tLCAj44Oi44OH44Or5byPKFkgfiBYKeOBqOODh+ODvOOCv+OBruaMh+Wumg0KICBjZXggPSAzLjAsICPjg57jg7zjgq/jga7lpKfjgY3jgZXjga7mjIflrpoNCiAgeGxpbSA9IGMoMCwgNyksIHlsaW0gPSBjKDAsIDcpLOOAgCN46Lu444Goeei7uOOBruacgOWwj+ODu+acgOWkp+OCkuaMh+Wumg0KICBhc3AgPSAxLjAgI+e4puaoquavlOOBruaMh+Wumg0KKQ0KdGV4dChjb21tJHNwLjEsIGNvbW0kc3AuMiwgbGFiZWxzID0gcm93bmFtZXMoY29tbSksIGNleCA9IDAuOCnjgIAj44OH44O844K/44OV44Os44O844OgY29tbeOBruihjOWQjSg944K144Oz44OX44Or5ZCNKeOCknJvd25hbWVz6Zai5pWw44KS5L2/44Gj44Gm5ZG844Gz5Ye644GX77yM44Gd44KM44KSbGFiZWxz44Gu5byV5pWw44Go44GZ44KL44GT44Go44Gn5ZCE54K544Gr44K144Oz44OX44Or5ZCN44KS5paH5a2X44Go44GX44Gm6L+95Yqg44GZ44KLDQpgYGANCuWun+mam+OBq+i3nembouOCkuioiOeul+OBl+OBpuOBv+OCiw0KYGBge3J9DQojZXhhbXBsZXMgb2YgZGlzdGFuY2U6IHZlZ2Rpc3Qo44K/44O844Ky44OD44OI44Gu5aSa5aSJ6YeP44OH44O844K/44OV44Os44O844OgLCBtZXRob2QgPSDot53pm6LlkI0p44Gu5b2i5byP44Gn6KiI566X44Gn44GN44KLDQoj44Om44O844Kv44Oq44OD44OJ6Led6ZuiDQp2ZWdkaXN0KGNvbW0sIG1ldGhvZCA9ICJldWNsaWRlYW4iKSAgI0V1Y2xpZGVhbiANCiPjgrjjg6Pjg4Pjgqvjg7zjg4not53pm6INCnZlZ2Rpc3QoY29tbSwgbWV0aG9kID0gImphY2NhcmQiLCBiaW5hcnkgPSBUUlVFKSAjSmFjY2FyZCwgYmluYXJ544Go44GE44GG44OR44Op44Oh44O844K/44Gu5byV5pWw44KSVFJVReOBq+OBmeOCi+OBruOBjOmHjeimgQ0KI+ODluODrOOCpOODu+OCq+ODvOODhuOCo+OCuei3nembog0KdmVnZGlzdChjb21tLCBtZXRob2QgPSAiYnJheSIpICNCcmF5LUN1cnRpcw0KYGBgDQojIyMjIDguMy4044CA5Li75bqn5qiZ5YiG5p6Q77yIUENvQe+8iQ0KIyMjIyMg5Luu5oOz5LqM5qyh5YWD44OH44O844K/KGNvbW0p44Gr5a++44GZ44KL5Li75oiQ5YiG5YiG5p6QDQpgYGB7cn0NCiMjIyNQQ29BIGZvciBjb21tIyMjIw0KI+ODluODrOOCpOODu+OCq+ODvOODhuOCo+OCuei3nembouOCkueUqOOBhOOBpuS4u+W6p+aomeWIhuaekOOCkuWun+ihjDogZGlzdGFuY2Xjga7lvJXmlbDjgafot53pm6Ljga7nqK7poZ7jgpLmjIflrprjgZnjgosNCiPkuLvluqfmqJnliIbmnpDjga7lrp/ooYzntZDmnpzjga/mlrDjgZfjgYTjgqrjg5bjgrjjgqfjgq/jg4jjgpLkvZzjgaPjgabkv53lrZjvvJrjgZPjgZPjgafjga/jgqrjg5bjgrjjgqfjgq/jg4jlkI3jgpJQQ29BX2NvbW1fQkPjgajjgZfjgZ8NClBDb0FfY29tbV9CQyA8LSBzdW1tYXJ5KGNhcHNjYWxlKGNvbW0gfiAxLCBkaXN0YW5jZSA9ICJicmF5IikpDQoj57WQ5p6c44KS56K66KqNKOeJueOBq+WvhOS4jueOhyk6UENvQeOBrue1kOaenOOBruODleOCqeODvOODnuODg+ODiOOBr1BDQeOBrue1kOaenOOBruODleOCqeODvOODnuODg+ODiOOBqOOBu+OBvOWQjOOBmA0KUENvQV9jb21tX0JDDQoj5Li75bqn5qiZ6Lu4MSwgMuS4iuOBruW6p+aomeWApOOBq+OBr+OAjFBDb0Hjga7ntZDmnpzjgpLmoLzntI3jgZfjgZ/jg4fjg7zjgr/jg5Xjg6zjg7zjg6Akc2l0ZXPjgI3jgafjgqLjgq/jgrvjgrnjgZfjgIHjgZ3jgozjgonjga7luqfmqJnlgKTjgpLmlrDjgZfjgYTjg5njgq/jg4jjg6vjgavmoLzntI0NClBDb0ExX2NvbW1fQkMgPC0gUENvQV9jb21tX0JDJHNpdGVzWywgMV0gI+S4u+W6p+aomei7uO+8keOBruW6p+aomeWApOOCkuWRvOOBs+WHuuOBl+OBpu+8iOWPs+i+uu+8ieOAgeODmeOCr+ODiOODq++8iOW3pui+uu+8ieOBq+agvOe0jQ0KUENvQTJfY29tbV9CQyA8LSBQQ29BX2NvbW1fQkMkc2l0ZXNbLCAyXSAj5Li75bqn5qiZ6Lu477yS44Gu5bqn5qiZ5YCk44KS5ZG844Gz5Ye644GX44Gm77yI5Y+z6L6677yJ44CB44OZ44Kv44OI44Or77yI5bem6L6677yJ44Gr5qC857SNDQoj5pWj5biD5ZuzDQpwbG90KA0KICBQQ29BMl9jb21tX0JDIH4gUENvQTFfY29tbV9CQywgI+ODouODh+ODq+W8jyhZIH4gWCkNCiAgY2V4ID0gMywgI+ODneOCpOODs+ODiOOBruWkp+OBjeOBleOBruaMh+Wumg0KICB4bGFiID0gIlBDb0ExICg1NC41ICUpIiwgeWxhYiA9ICJQQ29BMiAoNDEuOCAlKSIsICPlr4TkuI7njofjgpLou7jlkI3jga7kuK3jgavlkKvjgoHjgosNCiAgYXNwID0gMeOAgCPnuKbmqKrmr5TjgpIx44Gr5oyH5a6aDQopDQoj5ZCE44OH44O844K/44KS56S644GZ5paH5a2X44KS6L+95YqgOiBsYWJlbHPjga7lvJXmlbDjgatjb21t44Gu6KGM5ZCNKOOBpOOBvuOCiuOCteODs+ODl+ODq+WQjUEsQixDLEQp44KS5oyH5a6aDQp0ZXh0KFBDb0ExX2NvbW1fQkMsIFBDb0EyX2NvbW1fQkMsIGxhYmVscyA9IHJvd25hbWVzKGNvbW0pLCBjZXggPSAwLjgpDQpgYGANCiMjIyMjIOakjeeJqeODl+ODqeODs+OCr+ODiOODs+ODh+ODvOOCv+OBruS4u+W6p+aomeWIhuaekA0K44K444Oj44OD44Kr44O844OJ6Led6Zui44KS5L2/44GG5aC05ZCIDQpgYGB7cn0NCiNXaXRoIEphY2NhcmQNCiPkuozlgKTljJbjgZnjgovjgZ/jgoHjgavjg4fjg7zjgr/jga7kuK3ouqvjgpLmlrDjgZfjgYTjgqrjg5bjgrjjgqfjgq/jg4jjgavjgrPjg5Tjg7wo5YWD44Gu44OH44O844K/6Ieq5L2T44Gv5aSJ5pu044Gb44Ga44Gr44Go44Gj44Gm44GK44GP44Gf44KBKQ0Kc3BlY2llc19yeXVrb19kYXRhX2IgPC0gc3BlY2llc19yeXVrb19kYXRhICNjb3B5KOOCs+ODlOODvOWFiOOBruaWsOOBl+OBhOOCquODluOCuOOCp+OCr+ODiOWQjSA8LSDjgrPjg5Tjg7zlhYPjga7jgqrjg5bjgrjjgqfjgq/jg4jlkI0pIA0KI+S6jOWApOWMluOBmeOCiw0Kc3BlY2llc19yeXVrb19kYXRhX2Jbc3BlY2llc19yeXVrb19kYXRhX2IgPiAwXSA8LSAxICNiaW5hbGl6YXRpb24NCiPkuozlgKTljJbjgZfjgZ/jg4fjg7zjgr/jgavlr77jgZfjgaZqYWNjYXJk6Led6Zui44KS6YG444KT44Gn5Li75bqn5qiZ5YiG5p6Q44KS5a6f6KGM44GX77yM44Gd44Gu57WQ5p6c44KSUENPQV9yeXVrb19K44Go44GE44GG44Kq44OW44K444Kn44Kv44OI44Gr5L+d5a2YDQpQQ29BX3J5dWtvX0ogPC0gc3VtbWFyeShjYXBzY2FsZShzcGVjaWVzX3J5dWtvX2RhdGFfYiB+IDEsIGRpc3RhbmNlID0gImphY2NhcmQiKSkNCiPntZDmnpzjga7norroqo0o54m544Gr5a+E5LiO546HKe+8jOS7pemZjeOBruOCueODhuODg+ODl+OBq+OBr1BDT0Hjga7ntZDmnpzjgpLkv53lrZjjgZfjgZ9QQ29BX3J5dWtvX0rjgpLkvb/jgYYNClBDb0Ffcnl1a29fSg0KI+acgOWIneOBruS6jOOBpOOBruS4u+W6p+aomei7uOS4iuOBruW6p+aomeWApOOCkuODmeOCr+ODiOODq+OBq+agvOe0jQ0KUENvQTFfcnl1a29fSiA8LSBQQ29BX3J5dWtvX0okc2l0ZXNbLCAxXQ0KUENvQTJfcnl1a29fSiA8LSBQQ29BX3J5dWtvX0okc2l0ZXNbLCAyXQ0KI+aVo+W4g+Wbs+OBruS9nOaIkA0KcGxvdCgNCiAgUENvQTJfcnl1a29fSiB+IFBDb0ExX3J5dWtvX0osICPjg6Ljg4fjg6vlvI8oWSB+IFgpDQogIGNleCA9IDMsIHBjaCA9IGFzLm51bWVyaWMoYXMuZmFjdG9yKHBoeXRvX21ldGFkYXRhJG1vbnRoKSksICNjZXjjga/jgrXjgqTjgrrjga7mjIflrposIHBjaOOBr+ODnuODvOOCr+OBrueorumhnuOCkuODoeOCv+ODh+ODvOOCv+OBruS4reOBq+S/neWtmOOBleOCjOOBpuOBhOOCi21vbnRo44Gu6YGV44GE44Gr44KI44Gj44Gm5oyH5a6a44GZ44KLDQogIHhsYWIgPSAiUENvQTEgKDE5LjcgJSkiLCB5bGFiID0gIlBDb0EyICgxMi4zICUpICIsICPlr4TkuI7njofjgpLou7jlkI3jgavmm7jjgY3ovrzjgoANCiAgYXNwID0gMSwgI+e4puaoquavlOOBruaMh+Wumg0KICBtYWluID0gIldpdGggSmFjY2FyZCLjgIAj44Kw44Op44OV44Gu44K/44Kk44OI44Or44Gu5oyH5a6aDQopDQpgYGANCuODluODrOOCpOODu+OCq+ODvOODhuOCo+OCuei3nembouOCkuS9v+OBhuWgtOWQiA0KYGBge3J9DQojV2l0aCBCcmF5LUN1cnRpcw0KI+ODluODrOOCpOOCq+ODvOODhuOCo+OCuei3nembouOCkumBuOOCk+OBp+S4u+W6p+aomeWIhuaekOOCkuWun+ihjOOBl++8jOOBneOBrue1kOaenOOCklBDT0Ffcnl1a29fQkPjgajjgYTjgYbjgqrjg5bjgrjjgqfjgq/jg4jjgavkv53lrZgNClBDb0Ffcnl1a29fQkMgPC0gc3VtbWFyeShjYXBzY2FsZShzcGVjaWVzX3J5dWtvX2RhdGEgfiAxLCBkaXN0YW5jZSA9ICJicmF5IikpDQpQQ29BX3J5dWtvX0JDICPntZDmnpzjga7kuK3jgYvjgonlr4TkuI7njofjgpLnorroqo3vvIzku6XpmY3jga7jgrnjg4bjg4Pjg5fjgavjga9QQ09B44Gu57WQ5p6c44KS5L+d5a2Y44GX44GfUENvQV9yeXVrb19CQ+OCkuS9v+OBhg0KDQoj5pyA5Yid44Gu5LqM44Gk44Gu5Li75bqn5qiZ6Lu45LiK44Gu5bqn5qiZ5YCk44KS44OZ44Kv44OI44Or44Gr5qC857SNDQpQQ29BMV9yeXVrb19CQyA8LSBQQ29BX3J5dWtvX0JDJHNpdGVzWywgMV0gI+S4u+W6p+aomei7uO+8keOBruW6p+aomeWApOOCkuWRvOOBs+WHuuOBl+OBpu+8iOWPs+i+uu+8ieOAgeODmeOCr+ODiOODq++8iOW3pui+uu+8ieOBq+agvOe0jQ0KUENvQTJfcnl1a29fQkMgPC0gUENvQV9yeXVrb19CQyRzaXRlc1ssIDJdICPkuLvluqfmqJnou7jvvJLjga7luqfmqJnlgKTjgpLlkbzjgbPlh7rjgZfjgabvvIjlj7PovrrvvInjgIHjg5njgq/jg4jjg6vvvIjlt6bovrrvvInjgavmoLzntI0NCg0KI+aVo+W4g+Wbs+OBruS9nOaIkA0KcGxvdCgNCiAgUENvQTJfcnl1a29fQkMgfiBQQ29BMV9yeXVrb19CQywgI+ODouODh+ODq+W8jyhZIH4gWCkNCiAgY2V4ID0gMywgcGNoID0gYXMubnVtZXJpYyhhcy5mYWN0b3IocGh5dG9fbWV0YWRhdGEkbW9udGgpKSwgI2NleOOBr+OCteOCpOOCuuOBruaMh+WumiwgcGNo44Gv44Oe44O844Kv44Gu56iu6aGe44KS44Oh44K/44OH44O844K/44Gu5Lit44Gr5L+d5a2Y44GV44KM44Gm44GE44KLbW9udGjjga7pgZXjgYTjgavjgojjgaPjgabmjIflrprjgZnjgosNCiAgeGxhYiA9ICJQQ29BMSAoMjUuNCAlKSIsIHlsYWIgPSAiUENvQTIgKDE0LjcgJSkiLCAj5a+E5LiO546H44KS6Lu45ZCN44Gr5pu444GN6L6844KADQogIGFzcCA9IDEsICPnuKbmqKrmr5Tjga7mjIflrpoNCiAgbWFpbiA9ICJXaXRoIEJyYXktQ3VydGlzIiAj44Kw44Op44OV44Gu44K/44Kk44OI44Or44Gu5oyH5a6aDQopDQpgYGANCkhlbGxpbmdlcui3nembouOCkuS9v+OBhuWgtOWQiA0KYGBge3J9DQojSGVsbGluZ2VyDQojZGVjb3N0YW5k6Zai5pWw44KS5L2/44Gj44Gm44G+44Ga44Gv44CB44OH44O844K/44KSaGVsbGluZ2Vy5aSJ5o+bDQpzcGVjaWVzX3J5dWtvX2RhdGFfSCA8LSBkZWNvc3RhbmQoc3BlY2llc19yeXVrb19kYXRhLCBtZXRob2QgPSAiaGVsbGluZ2VyIikNCiNoZWxsaW5nZXLlpInmj5vlvozjga7jg4fjg7zjgr/jgavlr77jgZfjgabjg6bjg7zjgq/jg6rjg4Pjg4not53pm6LjgpLoqIjnrpfjgZnjgozjgbDjgIFoZWxsaW5nZXLot53pm6LjgajjgarjgovjgILjgZPjgozjgpLnlKjjgYTjgabkuLvluqfmqJnliIbmnpDjgpLlrp/ooYzjgZfjgIHjgZ3jga7ntZDmnpzjga7jgb7jgajjgoHjgpJQQ29BX3J5dWtvX0jjgavkv53lrZjjgZnjgosNClBDb0Ffcnl1a29fSCA8LSBzdW1tYXJ5KGNhcHNjYWxlKHNwZWNpZXNfcnl1a29fZGF0YV9IIH4gMSwgZGlzdGFuY2UgPSAiZXVjbGlkZWFuIikpDQpQQ29BX3J5dWtvX0jjgIAj57WQ5p6c44KS6KGo56S644GX44Gm5a+E5LiO546H44KS56K66KqNDQoNCiPmnIDliJ3jga7kuozjgaTjga7kuLvluqfmqJnou7jkuIrjga7luqfmqJnlgKTjgpLjg5njgq/jg4jjg6vjgavmoLzntI0NClBDb0ExX3J5dWtvX0ggPC0gUENvQV9yeXVrb19IJHNpdGVzWywgMV0gI+S4u+W6p+aomei7uO+8keOBruW6p+aomeWApOOCkuWRvOOBs+WHuuOBl+OBpu+8iOWPs+i+uu+8ieOAgeODmeOCr+ODiOODq++8iOW3pui+uu+8ieOBq+agvOe0jQ0KUENvQTJfcnl1a29fSCA8LSBQQ29BX3J5dWtvX0gkc2l0ZXNbLCAyXSAj5Li75bqn5qiZ6Lu477yS44Gu5bqn5qiZ5YCk44KS5ZG844Gz5Ye644GX44Gm77yI5Y+z6L6677yJ44CB44OZ44Kv44OI44Or77yI5bem6L6677yJ44Gr5qC857SNDQoNCiPmlaPluIPlm7Pjga7kvZzmiJANCnBsb3QoDQogIFBDb0EyX3J5dWtvX0ggfiBQQ29BMV9yeXVrb19ILCAj44Oi44OH44Or5byPKFkgfiBYKQ0KICBjZXggPSAzLCBwY2ggPSBhcy5udW1lcmljKGFzLmZhY3RvcihwaHl0b19tZXRhZGF0YSRtb250aCkpLCAjY2V444Gv44K144Kk44K644Gu5oyH5a6aLCBwY2jjga/jg57jg7zjgq/jga7nqK7poZ7jgpLjg6Hjgr/jg4fjg7zjgr/jga7kuK3jgavkv53lrZjjgZXjgozjgabjgYTjgottb250aOOBrumBleOBhOOBq+OCiOOBo+OBpuaMh+WumuOBmeOCiw0KICB4bGFiID0gIlBDb0ExICgyMi40ICUpIiwgeWxhYiA9ICJQQ29BMiAoMTQuOSAlKSIsICPlr4TkuI7njofjgpLou7jlkI3jgavmm7jjgY3ovrzjgoANCiAgYXNwID0gMSwgI+e4puaoquavlOOBruaMh+Wumg0KICBtYWluID0gIldpdGggSGVsbGluZ2VyIiAj44Kw44Op44OV44Gu44K/44Kk44OI44Or44Gu5oyH5a6aDQopDQpgYGANCg0KIyMjIyMg5b6u55Sf54mp44OH44O844K/44Gu5Li75bqn5qiZ5YiG5p6QDQrjgajjgY/jgavjg4fjg7zjgr/jga7liY3lh6bnkIYo6Za+5YCk44KS55So44GE44Gf5LqM5YCk5YyWKeOBjOW/heimgeOBquOCuOODo+ODg+OCq+ODvOODiei3nembouOBruWgtOWQiOOBq+OBpOOBhOOBpuOBruOCs+ODvOODiQ0KYGBge3J9DQojIyMjUENvQSBmb3IgZWNvcGxhdGUjIyMjDQojV2l0aCBKYWNjYXJkDQoj44OH44O844K/44KS5aSn5bmF44Gr44GE44GY44KL5aC05ZCI44Gv44CB44OH44O844K/44KS5Li444CF5paw44GX44GE44Kq44OW44K444Kn44Kv44OI44Gr44Kz44OU44O844GZ44KL44Gu44GM44KI44GEDQpzdW1tYXJ5X2Vjb3BsYXRlX2IgPC0gc3VtbWFyeV9lY29wbGF0ZSAjY29weQ0KI+S7o+isneOCkuOAjOOCouODquOAjeOBqOWIpOWumuOBmeOCi+aZguOBq+WQuOWFieW6puOBruacgOWwj+WApOOBruioreWumijjgZPjgZPjgafjga8wLjIpDQptaW5pbXVtX3N0cmVuZ3RoIDwtIDAuMg0KI21pbmltdW1fc3RyZW5ndGjjgojjgorlkLjlhYnluqbjgYzlsI/jgZXjgYTlgKTjgpLjgrzjg63jgavou6Lmj5vjgZnjgosNCnN1bW1hcnlfZWNvcGxhdGVfYltzdW1tYXJ5X2Vjb3BsYXRlX2IgPCBtaW5pbXVtX3N0cmVuZ3RoXSA8LSAwICNiaW5hbGl6YXRpb24sIOOCvOODreOCiOOCiuWkp+OBjeOBhOWApOOCku+8keOBq+i7ouaPm+OBmeOCiw0Kc3VtbWFyeV9lY29wbGF0ZV9iW3N1bW1hcnlfZWNvcGxhdGVfYiA+IDBdIDwtIDEgI2JpbmFsaXphdGlvbg0KI+S6jOWApOWMluOBl+OBn+ODh+ODvOOCv+OBq+WvvuOBl+OBpmphY2NhcmTot53pm6LjgpLpgbjjgpPjgafkuLvluqfmqJnliIbmnpDjgpLlrp/ooYzjgZfjgIHjgZ3jga7ntZDmnpzjgpJQQ29BX2Vjb3BsYXRlX0rjgavkv53lrZgNClBDb0FfZWNvcGxhdGVfSiA8LSBzdW1tYXJ5KGNhcHNjYWxlKHN1bW1hcnlfZWNvcGxhdGVfYiB+IDEsIGRpc3RhbmNlID0gImphY2NhcmQiKSkNClBDb0FfZWNvcGxhdGVfSiAj57WQ5p6c44Gu5Lit6Lqr44KS6KGo56S644GX44Gm44CB5a+E5LiO546H44KS56K66KqNDQoNCiPmnIDliJ3jga7kuozjgaTjga7kuLvluqfmqJnou7jkuIrjga7luqfmqJnlgKTjgpLjg5njgq/jg4jjg6vjgavmoLzntI0NClBDb0ExX2Vjb3BsYXRlX0ogPC0gUENvQV9lY29wbGF0ZV9KJHNpdGVzWywgMV0gI+S4u+W6p+aomei7uO+8keOBruW6p+aomeWApOOCkuWRvOOBs+WHuuOBl+OBpu+8iOWPs+i+uu+8ieOAgeODmeOCr+ODiOODq++8iOW3pui+uu+8ieOBq+agvOe0jQ0KUENvQTJfZWNvcGxhdGVfSiA8LSBQQ29BX2Vjb3BsYXRlX0okc2l0ZXNbLCAyXSAj5Li75bqn5qiZ6Lu477yS44Gu5bqn5qiZ5YCk44KS5ZG844Gz5Ye644GX44Gm77yI5Y+z6L6677yJ44CB44OZ44Kv44OI44Or77yI5bem6L6677yJ44Gr5qC857SNDQoNCiPmlaPluIPlm7Pjga7kvZzmiJANCnBsb3QoDQogIFBDb0EyX2Vjb3BsYXRlX0ogfiBQQ29BMV9lY29wbGF0ZV9KLCAj44Oi44OH44Or5byPKFkgfiBYKQ0KICBjZXggPSAzLCBwY2ggPSBjKDEsIDUpW2FzLmZhY3RvcihtZXRhZGF0YV9lY29wbGF0ZSR0cmVhdG1lbnQpXSwjY2V444Gv44K144Kk44K644Gu5oyH5a6aLCBwY2jjga/jg57jg7zjgq/jga7nqK7poZ7jgpLjg6Hjgr/jg4fjg7zjgr/jga7kuK3jgavkv53lrZjjgZXjgozjgabjgYTjgot0cmVhdG1lbnTjga7pgZXjgYTjgavjgojjgaPjgabmjIflrprjgZnjgosNCiAgeGxhYiA9ICJQQ29BMSAoNTEuOSAlKSIsIHlsYWIgPSAiUENvQTIgKDMwLjIgJSkgIiwgI+WvhOS4jueOh+OCkui7uOWQjeOBq+abuOOBjei+vOOCgA0KICBhc3AgPSAxLCAj57im5qiq5q+U44Gu5oyH5a6aDQogIG1haW4gPSAiV2l0aCBKYWNjYXJkIiAj44Kw44Op44OV44Gu44K/44Kk44OI44Or44Gu5oyH5a6aDQopDQpgYGANCg0KIyMjIyBCT1gxMCDlj6/oppbljJbplqLmlbDjga7kuIDosqvmgKfjga7nhKHjgZXjgavjgaTjgYTjgaYNCmBgYHtyfQ0KIyMjI0JPWDEwIEluY29uc2lzdGVudCBiZWhhdmlvciBvZiB2aXN1YWxpemF0aW9uIyMjIw0Kc3VtbWFyeShwcmNvbXAoY29tbSwgc2NhbGUuID0gVCkpDQpzdW1tYXJ5KHByY29tcChjb21tLCBzY2FsZS4gPSBGKSkNCg0KYmlwbG90KHByY29tcChjb21tLCBzY2FsZS4gPSBUKSkNCmJpcGxvdChwcmNvbXAoY29tbSwgc2NhbGUuID0gRikpDQpvcmRpcGxvdChjYXBzY2FsZShjb21tIH4gMSwgZGlzdGFuY2UgPSAiZXVjbGlkZWFuIiksIHR5cGUgPSAidGV4dCIpDQpvcmRpcGxvdChjYXBzY2FsZShzY2FsZShjb21tKSB+IDEsIGRpc3RhbmNlID0gImV1Y2xpZGVhbiIpLCB0eXBlID0gInRleHQiKQ0Kb3JkaXBsb3QocHJjb21wKGNvbW0sIHNjYWxlLiA9IFQpLCB0eXBlID0gInRleHQiKQ0Kb3JkaXBsb3QocHJjb21wKGNvbW0sIHNjYWxlLiA9IEYpLCB0eXBlPSJ0ZXh0IikNCm9yZGlwbG90KHByY29tcChzY2FsZShjb21tKSwgc2NhbGUuID0gRiksIHR5cGUgPSAidGV4dCIpDQpgYGANCiMjIyA4LjQg5aSa5aSJ6YeP44OH44O844K/44Gu5Y+v6KaW5YyW77yS77ya6ZqO5bGk55qE44Kv44Op44K544K/44O85YiG5p6QDQojIyMjIDguNC4yIOmajuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOBq+OCiOOCi+WPr+imluWMlg0KYGBge3J9DQojIyMjSGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcjIyMjDQoj5qSN54mp44OX44Op44Oz44Kv44OI44Oz44Gu44OH44O844K/44Gr5a++44GX44Gm44OW44Os44Kk44O744Kr44O844OG44Kj44K56Led6Zui44KS6KiI566X44GX44CB6Led6Zui6KGM5YiXc3BlY2llc19iLmTjgavkv53lrZgNCnNwZWNpZXNfYi5kIDwtIHZlZ2Rpc3Qoc3BlY2llc19yeXVrb19kYXRhLCBtZXRob2QgPSAiYnJheSIpDQoj6KiI566X5riI44G/44Gu6Led6Zui6KGM5YiXKHNwZWNpZXNfYi5kKeOCkmhjbHVzdOmWouaVsOOBruesrOS4gOW8leaVsOOBqOOBl+OBpu+8jOmajuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOCkuWun+ihjO+8jOOBneOBrue1kOaenOOCkuaWsOOBl+OBhOOCquODluOCuOOCp+OCr+ODiOOBq+S/neWtmOOBmeOCi+OAguOBquOBnOOBquOCieasoeOBruOBqOOBk+OCjeOBp+WPr+imluWMluOBq+S9v+OBhuOBi+OCiQ0KaGNsdXN0X21vZGVsIDwtIGhjbHVzdChzcGVjaWVzX2IuZCwgbWV0aG9kID0gIndhcmQuRDIiKQ0KYGBgDQoNCumajuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOBqOmdnumajuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOCkuavlOi8gw0KYGBge3J9DQoj6ZqO5bGk44Kv44Op44K544K/44Oq44Oz44Kw44Gu57WQ5p6c44KS5Y+v6KaW5YyWDQpwbG90KA0KICBoY2x1c3RfbW9kZWws44CAI+majuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOBrue1kOaenOOCkuS/neWtmOOBl+OBn+OCquODluOCuOOCp+OCr+ODiOOCkuaMh+Wumg0KICBoYW5nID0gLTEs44CAI+aeneOBruacq+err+OBruS9jee9ruaMh+Wumg0KICBtYWluID0gInBoeXRvcGxhbmt0b24gY29tcG9zaXRpb24gd2l0aCBCcmF5LUN1cnRpcyIs44CAI+OCsOODqeODleOBruOCv+OCpOODiOODq+OBruaMh+Wumg0KICBsYWJlbCA9IHBoeXRvX21ldGFkYXRhJFlZTU1EROOAgCPlkITmnp3jgavkvb/jgYbjg6njg5njg6vjga7mjIflrprjgIHjg6Hjgr/jg4fjg7zjgr/kuK3jga7oprPmuKzml6Xmg4XloLHjgpLkvb/jgYYNCikNCg0KI+mdnumajuWxpOOCr+ODqeOCueOCv+ODquODs+OCsOOBrue1kOaenOOCkuWPr+imluWMlijkuLvluqfmqJnliIbmnpDjga7ntZDmnpwpDQpwbG90KA0KICBQQ29BMl9yeXVrb19CQyB+IFBDb0ExX3J5dWtvX0JDLA0KICBjZXggPSAyLCBwY2ggPSBhcy5udW1lcmljKGFzLmZhY3RvcihwaHl0b19tZXRhZGF0YSRtb250aCkpLA0KICB4bGFiID0gIlBDb0ExICgyNS40ICUpIiwgeWxhYiA9ICJQQ29BMiAoMTQuNyAlKSIsDQogIGFzcCA9IDEsDQogIG1haW4gPSAiV2l0aCBCcmF5LUN1cnRpcyINCikNCiPlkITjgrXjg7Pjg5fjg6vjgavmloflrZfjgpLov73liqA6IOODoeOCv+ODh+ODvOOCv+S4reOBruims+a4rOaXpeaDheWgseOCkmxhYmVs44Gu5byV5pWw44Gr5L2/44GGDQp0ZXh0KFBDb0ExX3J5dWtvX0JDICsgMC4yNSwgUENvQTJfcnl1a29fQkMsIGxhYmVsID0gcGh5dG9fbWV0YWRhdGEkWVlNTURELCBjZXggPSAwLjgpDQpgYGANCg0K