1 Compare OpenSwathWorkflow to EncyclopeDIA and DIA-Umpire

I currently have matrices returned from openms and encyclopedia. Lets see how similar they are.

I think I will just load an existing expressionset generated from openswath.

##  [1] "s2018_0817BrikenTrypsinDIA01" "s2018_0817BrikenTrypsinDIA02"
##  [3] "s2018_0817BrikenTrypsinDIA03" "s2018_0817BrikenTrypsinDIA11"
##  [5] "s2018_0817BrikenTrypsinDIA12" "s2018_0817BrikenTrypsinDIA13"
##  [7] "s2018_0817BrikenTrypsinDIA07" "s2018_0817BrikenTrypsinDIA08"
##  [9] "s2018_0817BrikenTrypsinDIA09" "s2018_0817BrikenTrypsinDIA17"
## [11] "s2018_0817BrikenTrypsinDIA18" "s2018_0817BrikenTrypsinDIA19"
##  [1] "X2018_0817BrikenTrypsinDIA01.mzML"
##  [2] "X2018_0817BrikenTrypsinDIA02.mzML"
##  [3] "X2018_0817BrikenTrypsinDIA03.mzML"
##  [4] "X2018_0817BrikenTrypsinDIA07.mzML"
##  [5] "X2018_0817BrikenTrypsinDIA08.mzML"
##  [6] "X2018_0817BrikenTrypsinDIA09.mzML"
##  [7] "X2018_0817BrikenTrypsinDIA11.mzML"
##  [8] "X2018_0817BrikenTrypsinDIA12.mzML"
##  [9] "X2018_0817BrikenTrypsinDIA13.mzML"
## [10] "X2018_0817BrikenTrypsinDIA17.mzML"
## [11] "X2018_0817BrikenTrypsinDIA18.mzML"
## [12] "X2018_0817BrikenTrypsinDIA19.mzML"
##  [1] "s2018_0817BrikenTrypsinDIA01.x" "s2018_0817BrikenTrypsinDIA02.x"
##  [3] "s2018_0817BrikenTrypsinDIA03.x" "s2018_0817BrikenTrypsinDIA07.x"
##  [5] "s2018_0817BrikenTrypsinDIA08.x" "s2018_0817BrikenTrypsinDIA09.x"
##  [7] "s2018_0817BrikenTrypsinDIA11.x" "s2018_0817BrikenTrypsinDIA12.x"
##  [9] "s2018_0817BrikenTrypsinDIA13.x" "s2018_0817BrikenTrypsinDIA17.x"
## [11] "s2018_0817BrikenTrypsinDIA18.x" "s2018_0817BrikenTrypsinDIA19.x"
## [13] "s2018_0817BrikenTrypsinDIA01.y" "s2018_0817BrikenTrypsinDIA02.y"
## [15] "s2018_0817BrikenTrypsinDIA03.y" "s2018_0817BrikenTrypsinDIA07.y"
## [17] "s2018_0817BrikenTrypsinDIA08.y" "s2018_0817BrikenTrypsinDIA09.y"
## [19] "s2018_0817BrikenTrypsinDIA11.y" "s2018_0817BrikenTrypsinDIA12.y"
## [21] "s2018_0817BrikenTrypsinDIA13.y" "s2018_0817BrikenTrypsinDIA17.y"
## [23] "s2018_0817BrikenTrypsinDIA18.y" "s2018_0817BrikenTrypsinDIA19.y"
## Warning in cor.test.default(all_counts[[1]], all_counts[[13]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[1]] and all_counts[[13]]
## S = 4.3e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8133
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## [1] 784
## [1] 622
## [1] 986
## [1] 572
## [1] 50
## Warning in cor.test.default(all_counts[[2]], all_counts[[14]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[2]] and all_counts[[14]]
## S = 3.8e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8327
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[3]], all_counts[[15]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[3]] and all_counts[[15]]
## S = 4.2e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8173
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[4]], all_counts[[16]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[4]] and all_counts[[16]]
## S = 5.2e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.7721
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0

## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0

## Warning in lmrob.S(x, y, control = control): find_scale(*, initial_scale =
## 0) -> final scale = 0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in outlierStats(ret, x, control): Detected possible local breakdown of SMDM-estimate in 2 coefficients 'Overall', ''.
## Use lmrob argument 'setting="KS2014"' to avoid this problem.
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[5]], all_counts[[17]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[5]] and all_counts[[17]]
## S = 4e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8254
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0

## Warning in lmrob.S(x, y, control = control): find_scale() did not converge
## in 'maxit.scale' (= 200) iterations with tol=1e-10, last rel.diff=0
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[6]], all_counts[[18]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[6]] and all_counts[[18]]
## S = 4e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8236

## Warning in cor.test.default(all_counts[[7]], all_counts[[19]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[7]] and all_counts[[19]]
## S = 1.6e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9318
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[8]], all_counts[[20]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[8]] and all_counts[[20]]
## S = 1.6e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##   rho 
## 0.929
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[9]], all_counts[[21]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[9]] and all_counts[[21]]
## S = 1.5e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9334
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[10]], all_counts[[22]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[10]] and all_counts[[22]]
## S = 2.3e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.8979
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[11]], all_counts[[23]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[11]] and all_counts[[23]]
## S = 1.7e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9269
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[12]], all_counts[[24]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[12]] and all_counts[[24]]
## S = 1.8e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9194
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

Ok so that was 100% weird. Let us next NA all the entries which are currently 0.

I think that somewhere along the way some set of samples got mis-ordered?

1.1 NA comparisons

## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[7]] and all_counts[[19]]
## S = 1.2e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9363
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[8]], all_counts[[20]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[8]] and all_counts[[20]]
## S = 1.2e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9347
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[9]] and all_counts[[21]]
## S = 1.2e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9374
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## Warning in cor.test.default(all_counts[[10]], all_counts[[22]], method =
## "spearman"): Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[10]] and all_counts[[22]]
## S = 1.4e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9078
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[11]] and all_counts[[23]]
## S = 1.4e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9273
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

## 
##  Spearman's rank correlation rho
## 
## data:  all_counts[[12]] and all_counts[[24]]
## S = 1.4e+08, p-value <2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##    rho 
## 0.9231
## Warning in plot_multihistogram(df): NAs introduced by coercion
## Used Bon Ferroni corrected t test(s) between columns.

1.2 Genefilter

Genefilter is a filtering package for rnaseq data. It has a large series of metrics for choosing parameters to help choose which data points to remove. I think some of these parameters are likely to be of interest for this data and might handle this observation bias.

## There were 12, now there are 6 samples.
## There were 12, now there are 6 samples.
## This function will replace the expt$expressionset slot with:
## pofa(data)
## It backs up the current data into a slot named:
##  expt$backup_expressionset. It will also save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep the libsizes in mind
##  when invoking limma.  The appropriate libsize is the non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Leaving the data in its current base format, keep in mind that
##  some metrics are easier to see when the data is log2 transformed, but
##  EdgeR/DESeq do not accept transformed data.
## Leaving the data unconverted.  It is often advisable to cpm/rpkm
##  the data to normalize for sampling differences, keep in mind though that rpkm
##  has some annoying biases, and voom() by default does a cpm (though hpgl_voom()
##  will try to detect this).
## Leaving the data unnormalized.  This is necessary for DESeq, but
##  EdgeR/limma might benefit from normalization.  Good choices include quantile,
##  size-factor, tmm, etc.
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: pofa
## Removing 621 low-count genes (1982 remaining).
## Step 2: not normalizing the data.
## Step 3: not converting the data.
## Step 4: not transforming the data.
## Step 5: not doing batch correction.
## This function will replace the expt$expressionset slot with:
## pofa(data)
## It backs up the current data into a slot named:
##  expt$backup_expressionset. It will also save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep the libsizes in mind
##  when invoking limma.  The appropriate libsize is the non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Leaving the data in its current base format, keep in mind that
##  some metrics are easier to see when the data is log2 transformed, but
##  EdgeR/DESeq do not accept transformed data.
## Leaving the data unconverted.  It is often advisable to cpm/rpkm
##  the data to normalize for sampling differences, keep in mind though that rpkm
##  has some annoying biases, and voom() by default does a cpm (though hpgl_voom()
##  will try to detect this).
## Leaving the data unnormalized.  This is necessary for DESeq, but
##  EdgeR/limma might benefit from normalization.  Good choices include quantile,
##  size-factor, tmm, etc.
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: pofa
## Removing 2025 low-count genes (578 remaining).
## Step 2: not normalizing the data.
## Step 3: not converting the data.
## Step 4: not transforming the data.
## Step 5: not doing batch correction.
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It backs up the current data into a slot named:
##  expt$backup_expressionset. It will also save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep the libsizes in mind
##  when invoking limma.  The appropriate libsize is the non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 0 low-count genes (1982 remaining).
## Step 2: normalizing the data with quant.
## Using normalize.quantiles.robust due to a thread error in preprocessCore.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## Step 5: not doing batch correction.
## Plotting a PCA before surrogates/batch inclusion.
## Assuming no batch in model for testing pca.
## Starting basic_pairwise().
## Starting basic pairwise comparison.
## Leaving the data alone, regardless of normalization state.
## Basic step 0/3: Transforming data.
## Basic step 1/3: Creating median and variance tables.
## Basic step 2/3: Performing 3 comparisons.
## Basic step 3/3: Creating faux DE Tables.
## Basic: Returning tables.
## Starting deseq_pairwise().
## Starting DESeq2 pairwise comparisons.
## About to round the data, this is a pretty terrible thing to do. But if you, like me, want to see what happens when you put non-standard data into deseq, then here you go.
## Warning in choose_binom_dataset(input, force = force): This data was
## inappropriately forced into integers.
## Choosing the non-intercept containing model.
## DESeq2 step 1/5: Including only condition in the deseq model.
## Warning in import_deseq(data, column_data, model_string, tximport =
## input[["tximport"]][["raw"]]): Converted down 233 elements because they are
## larger than the maximum integer size.
## converting counts to integer mode
## DESeq2 step 2/5: Estimate size factors.
## DESeq2 step 3/5: Estimate dispersions.
## gene-wise dispersion estimates
## mean-dispersion relationship
## final dispersion estimates
## Using a parametric fitting seems to have worked.
## DESeq2 step 4/5: nbinomWaldTest.
## Starting ebseq_pairwise().
## The data should be suitable for EdgeR/DESeq/EBSeq. If they freak out, check the state of the count table and ensure that it is in integer counts.
## Starting EBSeq pairwise subset.
## Choosing the non-intercept containing model.
## Starting EBTest of delta_whole vs. wt_whole.
## Copying ppee values as ajusted p-values until I figure out how to deal with them.
## Starting edger_pairwise().
## Starting edgeR pairwise comparisons.
## About to round the data, this is a pretty terrible thing to do. But if you, like me, want to see what happens when you put non-standard data into deseq, then here you go.
## Warning in choose_binom_dataset(input, force = force): This data was
## inappropriately forced into integers.
## Choosing the non-intercept containing model.
## EdgeR step 1/9: Importing and normalizing data.
## EdgeR step 2/9: Estimating the common dispersion.
## EdgeR step 3/9: Estimating dispersion across genes.
## EdgeR step 4/9: Estimating GLM Common dispersion.
## EdgeR step 5/9: Estimating GLM Trended dispersion.
## EdgeR step 6/9: Estimating GLM Tagged dispersion.
## EdgeR step 7/9: Running glmFit, switch to glmQLFit by changing the argument 'edger_test'.
## EdgeR step 8/9: Making pairwise contrasts.

## Starting limma_pairwise().
## Starting limma pairwise comparison.
## Leaving the data alone, regardless of normalization state.
## libsize was not specified, this parameter has profound effects on limma's result.
## Using the libsize from expt$best_libsize.
## Limma step 1/6: choosing model.
## Choosing the non-intercept containing model.
## Limma step 2/6: running limma::voom(), switch with the argument 'which_voom'.
## Using normalize.method=quantile for voom.

## Limma step 3/6: running lmFit with method: ls.
## Limma step 4/6: making and fitting contrasts with no intercept. (~ 0 + factors)
## Limma step 5/6: Running eBayes with robust=FALSE and trend=FALSE.
## Limma step 6/6: Writing limma outputs.
## Limma step 6/6: 1/1: Creating table: wt_whole_vs_delta_whole.  Adjust=BH
## Limma step 6/6: 1/2: Creating table: delta_whole.  Adjust=BH
## Limma step 6/6: 2/2: Creating table: wt_whole.  Adjust=BH
## Comparing analyses.

## Deleting the file excel/whole_filtered.xlsx before writing the tables.
## Writing a legend of columns.
## Printing a pca plot before/after surrogates/batch estimation.
## Working on table 1/1: wt_whole_vs_delta_whole
## 20181210 a pthread error in normalize.quantiles leads me to robust.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Adding venn plots for wt_whole_vs_delta_whole.

## Limma expression coefficients for wt_whole_vs_delta_whole; R^2: 0.908; equation: y = 0.966x + 0.24
## Edger expression coefficients for wt_whole_vs_delta_whole; R^2: 0.917; equation: y = 0.959x + 0.211
## DESeq2 expression coefficients for wt_whole_vs_delta_whole; R^2: 0.914; equation: y = 0.952x + 1.24
## Writing summary information.
## Attempting to add the comparison plot to pairwise_summary at row: 23 and column: 1
## Performing save of the workbook.
## Note: zip::zip() is deprecated, please use zip::zipr() instead

## Reading the sample metadata.
## Warning in `[<-.factor`(`*tmp*`, iseq, value = c("undefined",
## "undefined", : invalid factor level, NA generated
## Warning in `[<-.factor`(`*tmp*`, iseq, value = c("undefined",
## "undefined", : invalid factor level, NA generated
## The sample definitions comprises: 12 rows(samples) and 29 columns(metadata fields).
## Matched 2392 annotations and counts.
## Bringing together the count matrix and gene information.
## Some annotations were lost in merging, setting them to 'undefined'.
## There were 12, now there are 6 samples.
## This function will replace the expt$expressionset slot with:
## pofa(data)
## It backs up the current data into a slot named:
##  expt$backup_expressionset. It will also save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep the libsizes in mind
##  when invoking limma.  The appropriate libsize is the non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Leaving the data in its current base format, keep in mind that
##  some metrics are easier to see when the data is log2 transformed, but
##  EdgeR/DESeq do not accept transformed data.
## Leaving the data unconverted.  It is often advisable to cpm/rpkm
##  the data to normalize for sampling differences, keep in mind though that rpkm
##  has some annoying biases, and voom() by default does a cpm (though hpgl_voom()
##  will try to detect this).
## Leaving the data unnormalized.  This is necessary for DESeq, but
##  EdgeR/limma might benefit from normalization.  Good choices include quantile,
##  size-factor, tmm, etc.
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: pofa
## Removing 276 low-count genes (2235 remaining).
## Step 2: not normalizing the data.
## Step 3: not converting the data.
## Step 4: not transforming the data.
## Step 5: not doing batch correction.
## This function will replace the expt$expressionset slot with:
## log2(cpm(quant(cbcb(data))))
## It backs up the current data into a slot named:
##  expt$backup_expressionset. It will also save copies of each step along the way
##  in expt$normalized with the corresponding libsizes. Keep the libsizes in mind
##  when invoking limma.  The appropriate libsize is the non-log(cpm(normalized)).
##  This is most likely kept at:
##  'new_expt$normalized$intermediate_counts$normalization$libsizes'
##  A copy of this may also be found at:
##  new_expt$best_libsize
## Not correcting the count-data for batch effects.  If batch is
##  included in EdgerR/limma's model, then this is probably wise; but in extreme
##  batch effects this is a good parameter to play with.
## Step 1: performing count filter with option: cbcb
## Removing 8 low-count genes (2227 remaining).
## Step 2: normalizing the data with quant.
## Using normalize.quantiles.robust due to a thread error in preprocessCore.
## Step 3: converting the data with cpm.
## Step 4: transforming the data with log2.
## Step 5: not doing batch correction.
## Plotting a PCA before surrogates/batch inclusion.
## Assuming no batch in model for testing pca.
## Starting basic_pairwise().
## Starting basic pairwise comparison.
## Leaving the data alone, regardless of normalization state.
## Basic step 0/3: Transforming data.
## Basic step 1/3: Creating median and variance tables.
## Basic step 2/3: Performing 3 comparisons.
## Basic step 3/3: Creating faux DE Tables.
## Basic: Returning tables.
## Starting deseq_pairwise().
## Starting DESeq2 pairwise comparisons.
## About to round the data, this is a pretty terrible thing to do. But if you, like me, want to see what happens when you put non-standard data into deseq, then here you go.
## Warning in choose_binom_dataset(input, force = force): This data was
## inappropriately forced into integers.
## Choosing the non-intercept containing model.
## DESeq2 step 1/5: Including only condition in the deseq model.
## Warning in import_deseq(data, column_data, model_string, tximport =
## input[["tximport"]][["raw"]]): Converted down 603 elements because they are
## larger than the maximum integer size.
## converting counts to integer mode
## DESeq2 step 2/5: Estimate size factors.
## DESeq2 step 3/5: Estimate dispersions.
## gene-wise dispersion estimates
## mean-dispersion relationship
## final dispersion estimates
## Using a parametric fitting seems to have worked.
## DESeq2 step 4/5: nbinomWaldTest.
## Starting ebseq_pairwise().
## The data should be suitable for EdgeR/DESeq/EBSeq. If they freak out, check the state of the count table and ensure that it is in integer counts.
## Starting EBSeq pairwise subset.
## Choosing the non-intercept containing model.
## Starting EBTest of delta_whole vs. wt_whole.
## Copying ppee values as ajusted p-values until I figure out how to deal with them.
## Starting edger_pairwise().
## Starting edgeR pairwise comparisons.
## About to round the data, this is a pretty terrible thing to do. But if you, like me, want to see what happens when you put non-standard data into deseq, then here you go.
## Warning in choose_binom_dataset(input, force = force): This data was
## inappropriately forced into integers.
## Choosing the non-intercept containing model.
## EdgeR step 1/9: Importing and normalizing data.
## EdgeR step 2/9: Estimating the common dispersion.
## EdgeR step 3/9: Estimating dispersion across genes.
## EdgeR step 4/9: Estimating GLM Common dispersion.
## EdgeR step 5/9: Estimating GLM Trended dispersion.
## EdgeR step 6/9: Estimating GLM Tagged dispersion.
## EdgeR step 7/9: Running glmFit, switch to glmQLFit by changing the argument 'edger_test'.
## EdgeR step 8/9: Making pairwise contrasts.

## Starting limma_pairwise().
## Starting limma pairwise comparison.
## Leaving the data alone, regardless of normalization state.
## libsize was not specified, this parameter has profound effects on limma's result.
## Using the libsize from expt$best_libsize.
## Limma step 1/6: choosing model.
## Choosing the non-intercept containing model.
## Limma step 2/6: running limma::voom(), switch with the argument 'which_voom'.
## Using normalize.method=quantile for voom.

## Limma step 3/6: running lmFit with method: ls.
## Limma step 4/6: making and fitting contrasts with no intercept. (~ 0 + factors)
## Limma step 5/6: Running eBayes with robust=FALSE and trend=FALSE.
## Limma step 6/6: Writing limma outputs.
## Limma step 6/6: 1/1: Creating table: wt_whole_vs_delta_whole.  Adjust=BH
## Limma step 6/6: 1/2: Creating table: delta_whole.  Adjust=BH
## Limma step 6/6: 2/2: Creating table: wt_whole.  Adjust=BH
## Comparing analyses.

## Deleting the file excel/encyc_whole_filtered.xlsx before writing the tables.
## Writing a legend of columns.
## Printing a pca plot before/after surrogates/batch estimation.
## Working on table 1/1: wt_whole_vs_delta_whole
## 20181210 a pthread error in normalize.quantiles leads me to robust.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Used Bon Ferroni corrected t test(s) between columns.
## Adding venn plots for wt_whole_vs_delta_whole.

## Limma expression coefficients for wt_whole_vs_delta_whole; R^2: 0.947; equation: y = 0.977x + 0.154
## Edger expression coefficients for wt_whole_vs_delta_whole; R^2: 0.949; equation: y = 0.972x + 0.156
## DESeq2 expression coefficients for wt_whole_vs_delta_whole; R^2: 0.945; equation: y = 0.965x + 0.969
## Writing summary information.
## Attempting to add the comparison plot to pairwise_summary at row: 23 and column: 1
## Performing save of the workbook.

## Used Bon Ferroni corrected t test(s) between columns.

## Testing method: limma.
## Adding method: limma to the set.
## Testing method: deseq.
## Adding method: deseq to the set.
## Testing method: edger.
## Adding method: edger to the set.
## Testing method: ebseq.
## Adding method: ebseq to the set.
## Testing method: basic.
## Adding method: basic to the set.
LS0tCnRpdGxlOiAiQ29tcGFyZSBkaWZmZXJlbnQgRElBIHF1YW50aWZpY2F0aW9uIG1ldGhvZHMuIgphdXRob3I6ICJhdGIgYWJlbGV3QGdtYWlsLmNvbSIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246CiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cKICAgIGRmX3ByaW50OiBwYWdlZAogICAgZmlnX2NhcHRpb246IHRydWUKICAgIGZpZ19oZWlnaHQ6IDcKICAgIGZpZ193aWR0aDogNwogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgd2lkdGg6IDMwMAogICAga2VlcF9tZDogZmFsc2UKICAgIG1vZGU6IHNlbGZjb250YWluZWQKICAgIHRvY19mbG9hdDogdHJ1ZQogIEJpb2NTdHlsZTo6aHRtbF9kb2N1bWVudDoKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIGNvZGVfZm9sZGluZzogc2hvdwogICAgZmlnX2NhcHRpb246IHRydWUKICAgIGZpZ19oZWlnaHQ6IDcKICAgIGZpZ193aWR0aDogNwogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAga2VlcF9tZDogZmFsc2UKICAgIG1vZGU6IHNlbGZjb250YWluZWQKICAgIHRvY19mbG9hdDogdHJ1ZQogIGh0bWxfZG9jdW1lbnQ6CiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cKICAgIGZpZ19jYXB0aW9uOiB0cnVlCiAgICBmaWdfaGVpZ2h0OiA3CiAgICBmaWdfd2lkdGg6IDcKICAgIGhpZ2hsaWdodDogdGFuZ28KICAgIGtlZXBfbWQ6IGZhbHNlCiAgICBtb2RlOiBzZWxmY29udGFpbmVkCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCiAgICB0aGVtZTogcmVhZGFibGUKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgIHNtb290aF9zY3JvbGw6IGZhbHNlCi0tLQoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KYm9keSwgdGQgewogIGZvbnQtc2l6ZTogMTZweDsKfQpjb2RlLnJ7CiAgZm9udC1zaXplOiAxNnB4Owp9CnByZSB7CiBmb250LXNpemU6IDE2cHgKfQo8L3N0eWxlPgoKYGBge3Igb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0KbGlicmFyeSgiaHBnbHRvb2xzIikKdHQgPC0gZGV2dG9vbHM6OmxvYWRfYWxsKCJ+L2hwZ2x0b29scyIpCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHdpZHRoPTEyMCwKICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M9VFJVRSwKICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UUlVFLAogICAgICAgICAgICAgICAgICAgICBlY2hvPVRSVUUpCmtuaXRyOjpvcHRzX2NodW5rJHNldChlcnJvcj1UUlVFLAogICAgICAgICAgICAgICAgICAgICAgZHBpPTk2KQpvbGRfb3B0aW9ucyA8LSBvcHRpb25zKGRpZ2l0cz00LAogICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NBc0ZhY3RvcnM9RkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAga25pdHIuZHVwbGljYXRlLmxhYmVsPSJhbGxvdyIpCmdncGxvdDI6OnRoZW1lX3NldChnZ3Bsb3QyOjp0aGVtZV9idyhiYXNlX3NpemU9MTApKQpydW5kYXRlIDwtIGZvcm1hdChTeXMuRGF0ZSgpLCBmb3JtYXQ9IiVZJW0lZCIpCnZlciA8LSAiMjAxOTAzMTAiCmBgYAoKIyBDb21wYXJlIE9wZW5Td2F0aFdvcmtmbG93IHRvIEVuY3ljbG9wZURJQSBhbmQgRElBLVVtcGlyZQoKSSBjdXJyZW50bHkgaGF2ZSBtYXRyaWNlcyByZXR1cm5lZCBmcm9tIG9wZW5tcyBhbmQgZW5jeWNsb3BlZGlhLiAgTGV0cyBzZWUgaG93IHNpbWlsYXIgdGhleSBhcmUuCgpJIHRoaW5rIEkgd2lsbCBqdXN0IGxvYWQgYW4gZXhpc3RpbmcgZXhwcmVzc2lvbnNldCBnZW5lcmF0ZWQgZnJvbSBvcGVuc3dhdGguCgpgYGB7ciBsb2FkX29zd30Kb3N3X21hdHJpeCA8LSBuZXcuZW52KCkKbG9hZGVkIDwtIGxvYWQoInByb3RlaW5fZXhwdC12MjAxODExMTIucmRhIiwgZW52aXI9b3N3X21hdHJpeCkKb3N3X21hdHJpeCA8LSBvc3dfbWF0cml4W1siZXhwdCJdXQoKb3N3X2NvdW50cyA8LSBleHBycyhvc3dfbWF0cml4KQpjb2xuYW1lcyhvc3dfY291bnRzKQpgYGAKCmBgYHtyIGxvYWRfZW5jeWNsb3BlZGlhfQplbmNfbWF0cml4IDwtIHJlYWQudGFibGUoInJlc3VsdHMvZW5jeWNsb3BlZGlhX3F1YW50X3JlcG9ydC5lbGliLnByb3RlaW5zLnR4dCIsIGhlYWRlcj1UUlVFKQpyb3duYW1lcyhlbmNfbWF0cml4KSA8LSBlbmNfbWF0cml4W1siUHJvdGVpbiJdXQplbmNfbWF0cml4IDwtIGVuY19tYXRyaXhbLCAtMV0KZW5jX21hdHJpeCA8LSBlbmNfbWF0cml4WywgLTFdCmVuY19tYXRyaXggPC0gZW5jX21hdHJpeFssIC0xXQpjb2xuYW1lcyhlbmNfbWF0cml4KQpjb2xuYW1lcyhlbmNfbWF0cml4KSA8LSBnc3ViKHBhdHRlcm49IlgiLCByZXBsYWNlbWVudD0icyIsIHg9Y29sbmFtZXMoZW5jX21hdHJpeCkpCmNvbG5hbWVzKGVuY19tYXRyaXgpIDwtIGdzdWIocGF0dGVybj0iXFwubXpNTCIsIHJlcGxhY2VtZW50PSIiLCB4PWNvbG5hbWVzKGVuY19tYXRyaXgpKQpjb2xfaWR4IDwtIGNvbG5hbWVzKGVuY19tYXRyaXgpCm9zd19jb3VudHMgPC0gb3N3X2NvdW50c1ssIGNvbF9pZHhdCgphbGxfY291bnRzIDwtIG1lcmdlKG9zd19jb3VudHMsIGVuY19tYXRyaXgsIGJ5PSJyb3cubmFtZXMiKQpyb3duYW1lcyhhbGxfY291bnRzKSA8LSBhbGxfY291bnRzW1siUm93Lm5hbWVzIl1dCmFsbF9jb3VudHMgPC0gYWxsX2NvdW50c1ssIC0xXQpjb2xuYW1lcyhhbGxfY291bnRzKQoKZm9yIChpIGluIGNvbG5hbWVzKGFsbF9jb3VudHMpKSB7CiAgYWxsX2NvdW50c1tbaV1dIDwtIGFzLm51bWVyaWMoYWxsX2NvdW50c1tbaV1dKQp9CgphbGxfY291bnRzIDwtIGxvZzIoYWxsX2NvdW50cyArIDEpCgpjb3IudGVzdChhbGxfY291bnRzW1sxXV0sIGFsbF9jb3VudHNbWzEzXV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDEsIDEzKV0pCnR0JHNjYXR0ZXIKemVyb19tdHJ4IDwtIGFzLmRhdGEuZnJhbWUodHQkc2NhdHRlciRkYXRhID09IDApCmNvbG5hbWVzKHplcm9fbXRyeCkgPC0gYygib3N3IiwgImVuYyIpCnplcm9fbXRyeFtbImxhYmVsIl1dIDwtIE5VTEwKCm5vbmVfc2V0IDwtIHJvd1N1bXMoemVyb19tdHJ4KSA9PSAyCnN1bShub25lX3NldCkKb25lX3NldCA8LSByb3dTdW1zKHplcm9fbXRyeCkgPT0gMQpzdW0ob25lX3NldCkKYm90aF9zZXQgPC0gcm93U3Vtcyh6ZXJvX210cngpID09IDAKc3VtKGJvdGhfc2V0KQp6ZXJvX210cnhbWyJub25lIl1dIDwtIG5vbmVfc2V0Cnplcm9fbXRyeFtbIm9uZSJdXSA8LSBvbmVfc2V0Cnplcm9fbXRyeFtbImJvdGgiXV0gPC0gYm90aF9zZXQKb3N3X21pc3NpbmcgPC0gemVyb19tdHJ4W1sib3N3Il1dICYgemVyb19tdHJ4W1sib25lIl1dCnplcm9fbXRyeFtbIm9zd19taXNzaW5nIl1dIDwtIG9zd19taXNzaW5nCnN1bShvc3dfbWlzc2luZykKZW5jX21pc3NpbmcgPC0gemVyb19tdHJ4W1siZW5jIl1dICYgemVyb19tdHJ4W1sib25lIl1dCnplcm9fbXRyeFtbImVuY19taXNzaW5nIl1dIDwtIGVuY19taXNzaW5nCnN1bShlbmNfbWlzc2luZykKCmNvci50ZXN0KGFsbF9jb3VudHNbWzJdXSwgYWxsX2NvdW50c1tbMTRdXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoMiwgMTQpXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbM11dLCBhbGxfY291bnRzW1sxNV1dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcihhbGxfY291bnRzWywgYygzLCAxNSldKQp0dCRzY2F0dGVyCgpjb3IudGVzdChhbGxfY291bnRzW1s0XV0sIGFsbF9jb3VudHNbWzE2XV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDQsIDE2KV0pCnR0JHNjYXR0ZXIKCmNvci50ZXN0KGFsbF9jb3VudHNbWzVdXSwgYWxsX2NvdW50c1tbMTddXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoNSwgMTcpXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbNl1dLCBhbGxfY291bnRzW1sxOF1dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDYsIDE4KV0pCnR0Cgpjb3IudGVzdChhbGxfY291bnRzW1s3XV0sIGFsbF9jb3VudHNbWzE5XV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDcsIDE5KV0pCnR0JHNjYXR0ZXIKCmNvci50ZXN0KGFsbF9jb3VudHNbWzhdXSwgYWxsX2NvdW50c1tbMjBdXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoOCwgMjApXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbOV1dLCBhbGxfY291bnRzW1syMV1dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcihhbGxfY291bnRzWywgYyg5LCAyMSldKQp0dCRzY2F0dGVyCgpjb3IudGVzdChhbGxfY291bnRzW1sxMF1dLCBhbGxfY291bnRzW1syMl1dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcihhbGxfY291bnRzWywgYygxMCwgMjIpXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbMTFdXSwgYWxsX2NvdW50c1tbMjNdXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoMTEsIDIzKV0pCnR0JHNjYXR0ZXIKCmNvci50ZXN0KGFsbF9jb3VudHNbWzEyXV0sIGFsbF9jb3VudHNbWzI0XV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDEyLCAyNCldKQp0dCRzY2F0dGVyCmBgYAoKT2sgc28gdGhhdCB3YXMgMTAwJSB3ZWlyZC4gIExldCB1cyBuZXh0IE5BIGFsbCB0aGUgZW50cmllcyB3aGljaCBhcmUgY3VycmVudGx5IDAuCgpJIHRoaW5rIHRoYXQgc29tZXdoZXJlIGFsb25nIHRoZSB3YXkgc29tZSBzZXQgb2Ygc2FtcGxlcyBnb3QgbWlzLW9yZGVyZWQ/CgojIyBOQSBjb21wYXJpc29ucwoKYGBge3IgbmFfY29tcH0KbmFfaWR4IDwtIGFsbF9jb3VudHMgPT0gMAphbGxfY291bnRzW25hX2lkeF0gPC0gTkEKCmNvci50ZXN0KGFsbF9jb3VudHNbWzddXSwgYWxsX2NvdW50c1tbMTldXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoNywgMTkpXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbOF1dLCBhbGxfY291bnRzW1syMF1dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcihhbGxfY291bnRzWywgYyg4LCAyMCldKQp0dCRzY2F0dGVyCgpjb3IudGVzdChhbGxfY291bnRzW1s5XV0sIGFsbF9jb3VudHNbWzIxXV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDksIDIxKV0pCnR0JHNjYXR0ZXIKCmNvci50ZXN0KGFsbF9jb3VudHNbWzEwXV0sIGFsbF9jb3VudHNbWzIyXV0sIG1ldGhvZD0ic3BlYXJtYW4iKQp0dCA8LSBwbG90X2xpbmVhcl9zY2F0dGVyKGFsbF9jb3VudHNbLCBjKDEwLCAyMildKQp0dCRzY2F0dGVyCgpjb3IudGVzdChhbGxfY291bnRzW1sxMV1dLCBhbGxfY291bnRzW1syM11dLCBtZXRob2Q9InNwZWFybWFuIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcihhbGxfY291bnRzWywgYygxMCwgMjMpXSkKdHQkc2NhdHRlcgoKY29yLnRlc3QoYWxsX2NvdW50c1tbMTJdXSwgYWxsX2NvdW50c1tbMjRdXSwgbWV0aG9kPSJzcGVhcm1hbiIpCnR0IDwtIHBsb3RfbGluZWFyX3NjYXR0ZXIoYWxsX2NvdW50c1ssIGMoMTIsIDI0KV0pCnR0JHNjYXR0ZXIKYGBgCgojIyBHZW5lZmlsdGVyCgpHZW5lZmlsdGVyIGlzIGEgZmlsdGVyaW5nIHBhY2thZ2UgZm9yIHJuYXNlcSBkYXRhLiAgSXQgaGFzIGEgbGFyZ2Ugc2VyaWVzIG9mIG1ldHJpY3MgZm9yIGNob29zaW5nCnBhcmFtZXRlcnMgdG8gaGVscCBjaG9vc2Ugd2hpY2ggZGF0YSBwb2ludHMgdG8gcmVtb3ZlLiAgSSB0aGluayBzb21lIG9mIHRoZXNlIHBhcmFtZXRlcnMKYXJlIGxpa2VseSB0byBiZSBvZiBpbnRlcmVzdCBmb3IgdGhpcyBkYXRhIGFuZCBtaWdodCBoYW5kbGUgdGhpcyBvYnNlcnZhdGlvbiBiaWFzLgoKYGBge3IgcmVtb3ZlX29sZF9zdHVmZiwgZXZhbD1GQUxTRX0KZXhwcmVzc2lvbnNldCA8LSBleHB0W1siZXhwcmVzc2lvbnNldCJdXQpyZWFkeSA8LSBleHByZXNzaW9uc2V0X3RvX2Rlc2VxKGV4cHJlc3Npb25zZXQpCgpjZHMgPC0gREVTZXEyOjplc3RpbWF0ZVNpemVGYWN0b3JzKHJlYWR5KQpjZHMgPC0gREVTZXEyOjplc3RpbWF0ZURpc3BlcnNpb25zKGNkcykKZml0MSA8LSBERVNlcTI6OjpuYmlub21XYWxkVGVzdChjZHMpCgpmaWx0ZXJzdGF0IDwtIEJpb2NHZW5lcmljczo6cm93TWVhbnMoREVTZXEyOjpjb3VudHMoY2RzKSkKcHZhbHVlcyA8LSBERVNlcTI6OnJlc3VsdHMoZml0MSlbWyJwdmFsdWUiXV0KcmVzIDwtIGRhdGEuZnJhbWUoCiAgZmlsdGVyc3RhdCA9IGZpbHRlcnN0YXQsCiAgcHZhbHVlID0gcHZhbHVlcywKICByb3cubmFtZXMgPSBuYW1lcyhjZHMpKQoKd2l0aChyZXMsCiAgICAgcGxvdChyYW5rKGZpbHRlcnN0YXQpL2xlbmd0aChmaWx0ZXJzdGF0KSwgLWxvZzEwKHB2YWx1ZSksIHBjaD0xNiwgY2V4PTAuNDUpKQoKdHJzZiA9IGZ1bmN0aW9uKG4pIGxvZzEwKG4rMSkKcGxvdChlY2RmKHRyc2YocmVzJGZpbHRlcnN0YXQpKSwgeGxhYj1ib2R5KHRyc2YpLCBtYWluPSIiKQoKYmFkZmlsdGVyID0gYXMubnVtZXJpYyhnc3ViKCJbK10qRkJnbiIsICIiLCByb3duYW1lcyhyZXMpKSkKcGxvdChyYW5rKGJhZGZpbHRlcikvbGVuZ3RoKGJhZGZpbHRlciksIC1sb2cxMChyZXMkcHZhbHVlKSwgcGNoPTE2LCBjZXg9MC40NSkKCnRoZXRhID0gc2VxKGZyb209MCwgdG89MC41LCBieT0wLjEpCnBCSCA9IGdlbmVmaWx0ZXI6OmZpbHRlcmVkX3AoZmlsdGVyPXJlcyRmaWx0ZXJzdGF0LCB0ZXN0PXJlcyRwdmFsdWUsIHRoZXRhPXRoZXRhLCBtZXRob2Q9IkJIIikKZ2VuZWZpbHRlcjo6cmVqZWN0aW9uX3Bsb3QocEJILCBhdD0ic2FtcGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxpbT1jKDAsIDAuNSksIHlsaW09YygwLCAyMDAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgeGxhYj0iRkRSIGN1dG9mZiAoQmVuamFtaW5pICYgSG9jaGJlcmcgYWRqdXN0ZWQgcC12YWx1ZSkiLCBtYWluPSIiKQpgYGAKCmBgYHtyIGdlbmVmaWx0ZXJlZH0KbG9hZGVkIDwtIGxvYWQoInByb3RlaW5fZXhwdC12MjAxODExMTIucmRhIikKCndob2xlIDwtIHN1YnNldF9leHB0KGV4cHQsIHN1YnNldD0iY29sbGVjdGlvbnR5cGU9PSd3aG9sZSciKQpmaWx0cmF0ZSA8LSBzdWJzZXRfZXhwdChleHB0LCBzdWJzZXQ9ImNvbGxlY3Rpb250eXBlPT0nZmlsdHJhdGUnIikKCndob2xlX2ZpbHQgPC0gbm9ybWFsaXplX2V4cHQod2hvbGUsIGZpbHRlcj0icG9mYSIsIHA9MC45LCBBPTEwMDApCmZpbHRyYXRlX2ZpbHQgPC0gbm9ybWFsaXplX2V4cHQoZmlsdHJhdGUsIGZpbHRlcj0icG9mYSIsIHA9MC45LCBBPTEwMDApCgp3aG9sZV9kZSA8LSBhbGxfcGFpcndpc2Uod2hvbGVfZmlsdCwgcGFyYWxsZWw9RkFMU0UsIGZvcmNlPVRSVUUsIGRvX2Vic2VxPVRSVUUsIG1vZGVsX2JhdGNoPUZBTFNFKQp3aG9sZV90YWJsZSA8LSBjb21iaW5lX2RlX3RhYmxlcyh3aG9sZV9kZSwgZXhjZWw9ImV4Y2VsL3dob2xlX2ZpbHRlcmVkLnhsc3giKQoKbWV0YWRhdGEgPC0gcERhdGEoZXhwdCkKbXRiX2Fubm90YXRpb25zIDwtIGZEYXRhKGV4cHQpCmVuY3ljX2V4cHQgPC0gY3JlYXRlX2V4cHQobWV0YWRhdGEsIHNhdmVmaWxlPWdsdWU6OmdsdWUoImVuY3ljbG9wZWRpYV9leHB0LXZ7dmVyfS5yZGEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudF9kYXRhZnJhbWU9ZW5jX21hdHJpeCwgZ2VuZV9pbmZvPW10Yl9hbm5vdGF0aW9ucykKZW5jeWNfd2hvbGUgPC0gc3Vic2V0X2V4cHQoZW5jeWNfZXhwdCwgc3Vic2V0PSJjb2xsZWN0aW9udHlwZT09J3dob2xlJyIpCmVuY3ljX2ZpbHQgPC0gbm9ybWFsaXplX2V4cHQoZW5jeWNfd2hvbGUsIGZpbHRlcj0icG9mYSIsIHA9MC45LCBBPTEwMDApCmVuY3ljX2RlIDwtIGFsbF9wYWlyd2lzZShlbmN5Y19maWx0LCBwYXJhbGxlbD1GQUxTRSwgZm9yY2U9VFJVRSwgZG9fZWJzZXE9VFJVRSwgbW9kZWxfYmF0Y2g9RkFMU0UpCmVuY3ljX3RhYmxlIDwtIGNvbWJpbmVfZGVfdGFibGVzKGVuY3ljX2RlLCBleGNlbD0iZXhjZWwvZW5jeWNfd2hvbGVfZmlsdGVyZWQueGxzeCIpCgpvc3cgPC0gd2hvbGVfdGFibGVbWyJkYXRhIl1dW1sxXV1bLCBjKCJlZGdlcl9sb2dmYyIsICJkZXNlcV9sb2dmYyIpXQplbmMgPC0gZW5jeWNfdGFibGVbWyJkYXRhIl1dW1sxXV1bLCBjKCJlZGdlcl9sb2dmYyIsICJkZXNlcV9sb2dmYyIpXQp0ZXN0IDwtIG1lcmdlKG9zdywgZW5jLCBieT0icm93Lm5hbWVzIikKdHQgPC0gcGxvdF9saW5lYXJfc2NhdHRlcih0ZXN0WywgYygyLCA0KV0pCnR0JHNjYXR0ZXIKCnF1ZXJ5IDwtIGNvbXBhcmVfZGVfcmVzdWx0cyhlbmN5Y190YWJsZSwgd2hvbGVfdGFibGUpCgpgYGAK