Function optimizes Extraction windows for DIA/SWATH so we have the same number of precursor per window. This optimization is based on spectral library data or non redundant .blib files (Bibliospec).
data("masses")
cdsw <- Cdsw(masses , nbins = 25, digits = 1)
cdsw$plot()knitr::kable(cdsw$asTable())| from | to | mid | width | counts | 
|---|---|---|---|---|
| 349.63 | 384.62 | 367.125 | 34.99 | 6688 | 
| 383.62 | 418.62 | 401.120 | 35.00 | 8357 | 
| 417.62 | 452.61 | 435.115 | 34.99 | 9661 | 
| 451.61 | 486.61 | 469.110 | 35.00 | 10452 | 
| 485.61 | 520.60 | 503.105 | 34.99 | 10725 | 
| 519.60 | 554.59 | 537.095 | 34.99 | 10837 | 
| 553.59 | 588.59 | 571.090 | 35.00 | 10433 | 
| 587.59 | 622.58 | 605.085 | 34.99 | 9750 | 
| 621.58 | 656.58 | 639.080 | 35.00 | 9276 | 
| 655.58 | 690.57 | 673.075 | 34.99 | 8406 | 
| 689.57 | 724.56 | 707.065 | 34.99 | 7848 | 
| 723.56 | 758.56 | 741.060 | 35.00 | 7116 | 
| 757.56 | 792.55 | 775.055 | 34.99 | 6355 | 
| 791.55 | 826.55 | 809.050 | 35.00 | 5666 | 
| 825.55 | 860.54 | 843.045 | 34.99 | 4923 | 
| 859.54 | 894.53 | 877.035 | 34.99 | 4359 | 
| 893.53 | 928.53 | 911.030 | 35.00 | 3807 | 
| 927.53 | 962.52 | 945.025 | 34.99 | 3344 | 
| 961.52 | 996.52 | 979.020 | 35.00 | 2724 | 
| 995.52 | 1030.51 | 1013.015 | 34.99 | 2357 | 
| 1029.51 | 1064.50 | 1047.005 | 34.99 | 2042 | 
| 1063.50 | 1098.50 | 1081.000 | 35.00 | 1807 | 
| 1097.50 | 1132.49 | 1114.995 | 34.99 | 1313 | 
| 1131.49 | 1166.49 | 1148.990 | 35.00 | 1088 | 
| 1165.49 | 1200.48 | 1182.985 | 34.99 | 881 | 
constError <- cdsw$error()quantileSame number of MS1 precursors in each window
cdsw$quantile_breaks()cdsw$plot()knitr::kable(cdsw$asTable())| from | to | mid | width | counts | |
|---|---|---|---|---|---|
| 0% | 349.63 | 381.03 | 365.330 | 31.40 | 5956 | 
| 4% | 380.03 | 406.71 | 393.370 | 26.68 | 6131 | 
| 8% | 405.71 | 429.24 | 417.475 | 23.53 | 6070 | 
| 12% | 428.24 | 450.05 | 439.145 | 21.81 | 6086 | 
| 16% | 449.05 | 470.06 | 459.555 | 21.01 | 6095 | 
| 20% | 469.06 | 488.80 | 478.930 | 19.74 | 6107 | 
| 24% | 487.80 | 508.12 | 497.960 | 20.32 | 6173 | 
| 28% | 507.12 | 526.81 | 516.965 | 19.69 | 6150 | 
| 32% | 525.81 | 545.79 | 535.800 | 19.98 | 6166 | 
| 36% | 544.79 | 565.29 | 555.040 | 20.50 | 6123 | 
| 40% | 564.29 | 584.80 | 574.545 | 20.51 | 6139 | 
| 44% | 583.80 | 605.12 | 594.460 | 21.32 | 6121 | 
| 48% | 604.12 | 626.34 | 615.230 | 22.22 | 6113 | 
| 52% | 625.34 | 648.36 | 636.850 | 23.02 | 6108 | 
| 56% | 647.36 | 672.34 | 659.850 | 24.98 | 6074 | 
| 60% | 671.34 | 696.53 | 683.935 | 25.19 | 6082 | 
| 64% | 695.53 | 722.89 | 709.210 | 27.36 | 6054 | 
| 68% | 721.89 | 751.40 | 736.645 | 29.51 | 6053 | 
| 72% | 750.40 | 782.43 | 766.415 | 32.03 | 6023 | 
| 76% | 781.43 | 817.40 | 799.415 | 35.97 | 5982 | 
| 80% | 816.40 | 857.96 | 837.180 | 41.56 | 6026 | 
| 84% | 856.96 | 905.62 | 881.290 | 48.66 | 5971 | 
| 88% | 904.62 | 964.93 | 934.775 | 60.31 | 5943 | 
| 92% | 963.93 | 1049.48 | 1006.705 | 85.55 | 5903 | 
| 96% | 1048.48 | 1200.48 | 1124.480 | 152.00 | 5863 | 
quantileError <- cdsw$error()Using this method the window start and end is shifted to a mass range with as few MS1 peaks as possible.
knitr::kable(cdsw$optimizeWindows(maxbin = 10, plot = TRUE) )| from | to | mid | width | counts | 
|---|---|---|---|---|
| 350.13 | 380.95 | 365.54 | 30.82 | 5952 | 
| 380.45 | 406.35 | 393.40 | 25.90 | 5932 | 
| 406.05 | 429.05 | 417.55 | 23.00 | 5948 | 
| 428.65 | 449.65 | 439.15 | 21.00 | 5891 | 
| 449.45 | 469.65 | 459.55 | 20.20 | 5872 | 
| 469.45 | 488.35 | 478.90 | 18.90 | 5860 | 
| 488.15 | 508.05 | 498.10 | 19.90 | 6137 | 
| 507.45 | 526.45 | 516.95 | 19.00 | 5892 | 
| 526.15 | 545.45 | 535.80 | 19.30 | 6022 | 
| 545.15 | 565.05 | 555.10 | 19.90 | 5992 | 
| 564.55 | 584.45 | 574.50 | 19.90 | 5976 | 
| 584.15 | 605.05 | 594.60 | 20.90 | 6035 | 
| 604.55 | 626.05 | 615.30 | 21.50 | 5893 | 
| 625.55 | 648.15 | 636.85 | 22.60 | 5987 | 
| 647.55 | 672.15 | 659.85 | 24.60 | 6023 | 
| 671.75 | 696.15 | 683.95 | 24.40 | 5890 | 
| 695.55 | 722.55 | 709.05 | 27.00 | 5981 | 
| 722.25 | 751.15 | 736.70 | 28.90 | 5932 | 
| 750.65 | 782.15 | 766.40 | 31.50 | 5927 | 
| 781.65 | 817.15 | 799.40 | 35.50 | 5944 | 
| 816.65 | 857.55 | 837.10 | 40.90 | 5901 | 
| 857.35 | 905.25 | 881.30 | 47.90 | 5904 | 
| 905.05 | 964.65 | 934.85 | 59.60 | 5881 | 
| 964.35 | 1049.15 | 1006.75 | 84.80 | 5864 | 
| 1048.95 | 1200.05 | 1124.50 | 151.10 | 5843 | 
cdsw$sampling_breaks(maxwindow = 100,plot = TRUE)cdsw$plot()knitr::kable(cdsw$asTable())| from | to | mid | width | counts | |
|---|---|---|---|---|---|
| 0% | 349.63 | 381.71 | 365.670 | 32.08 | 6113 | 
| 4% | 380.71 | 408.41 | 394.560 | 27.70 | 6371 | 
| 8% | 407.41 | 432.26 | 419.835 | 24.85 | 6578 | 
| 12% | 431.26 | 454.93 | 443.095 | 23.67 | 6622 | 
| 16% | 453.93 | 476.38 | 465.155 | 22.45 | 6625 | 
| 20% | 475.38 | 497.11 | 486.245 | 21.73 | 6678 | 
| 24% | 496.11 | 518.13 | 507.120 | 22.02 | 6763 | 
| 28% | 517.13 | 538.79 | 527.960 | 21.66 | 6730 | 
| 32% | 537.79 | 560.07 | 548.930 | 22.28 | 6771 | 
| 36% | 559.07 | 581.30 | 570.185 | 22.23 | 6691 | 
| 40% | 580.30 | 603.26 | 591.780 | 22.96 | 6621 | 
| 44% | 602.26 | 626.18 | 614.220 | 23.92 | 6603 | 
| 48% | 625.18 | 649.87 | 637.525 | 24.69 | 6572 | 
| 52% | 648.87 | 675.24 | 662.055 | 26.37 | 6430 | 
| 56% | 674.24 | 701.24 | 687.740 | 27.00 | 6402 | 
| 60% | 700.24 | 728.90 | 714.570 | 28.66 | 6322 | 
| 64% | 727.90 | 758.92 | 743.410 | 31.02 | 6244 | 
| 68% | 757.92 | 791.39 | 774.655 | 33.47 | 6093 | 
| 72% | 790.39 | 826.91 | 808.650 | 36.52 | 5891 | 
| 76% | 825.91 | 866.98 | 846.445 | 41.07 | 5730 | 
| 80% | 865.98 | 912.46 | 889.220 | 46.48 | 5469 | 
| 84% | 911.46 | 963.54 | 937.500 | 52.08 | 5119 | 
| 88% | 962.54 | 1026.85 | 994.695 | 64.31 | 4672 | 
| 92% | 1025.85 | 1101.01 | 1063.430 | 75.16 | 4134 | 
| 96% | 1100.01 | 1200.48 | 1150.245 | 100.47 | 3118 | 
knitr::kable(cdsw$optimizeWindows(maxbin = 10, plot = TRUE) )| from | to | mid | width | counts | 
|---|---|---|---|---|
| 350.13 | 381.35 | 365.74 | 31.22 | 6053 | 
| 381.05 | 408.05 | 394.55 | 27.00 | 6191 | 
| 407.65 | 432.05 | 419.85 | 24.40 | 6448 | 
| 431.65 | 454.45 | 443.05 | 22.80 | 6448 | 
| 454.35 | 476.05 | 465.20 | 21.70 | 6389 | 
| 475.85 | 496.85 | 486.35 | 21.00 | 6526 | 
| 496.45 | 517.85 | 507.15 | 21.40 | 6587 | 
| 517.45 | 538.45 | 527.95 | 21.00 | 6492 | 
| 538.15 | 560.05 | 549.10 | 21.90 | 6688 | 
| 559.55 | 581.05 | 570.30 | 21.50 | 6482 | 
| 580.55 | 603.05 | 591.80 | 22.50 | 6526 | 
| 602.55 | 626.05 | 614.30 | 23.50 | 6452 | 
| 625.55 | 649.45 | 637.50 | 23.90 | 6335 | 
| 649.25 | 675.15 | 662.20 | 25.90 | 6392 | 
| 674.55 | 701.15 | 687.85 | 26.60 | 6293 | 
| 700.55 | 728.55 | 714.55 | 28.00 | 6160 | 
| 728.25 | 758.55 | 743.40 | 30.30 | 6119 | 
| 758.25 | 791.25 | 774.75 | 33.00 | 6038 | 
| 790.65 | 826.55 | 808.60 | 35.90 | 5815 | 
| 826.25 | 866.55 | 846.40 | 40.30 | 5622 | 
| 866.35 | 912.05 | 889.20 | 45.70 | 5408 | 
| 911.85 | 963.15 | 937.50 | 51.30 | 5055 | 
| 962.75 | 1026.35 | 994.55 | 63.60 | 4631 | 
| 1026.25 | 1100.65 | 1063.45 | 74.40 | 4105 | 
| 1100.45 | 1200.05 | 1150.25 | 99.60 | 3091 | 
mixedError <- cdsw$error()We compare the optimal number of MS1 peaks per SWATH window (same in each window) with the numbers obtained by using all of the 3 methods implemented.
barplot(c(const = constError$score1, quantile = quantileError$score1, mixed = mixedError$score1),ylab = "Manhattan distance")barplot(c(const = constError$score2, quantile = quantileError$score2, mixed = mixedError$score2),ylab = "Euclidean distance") We can see that Method 3 has a relatively small error although it is able to fulfill constraints such as maximum window size.
## R version 4.1.1 (2021-08-10)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 19044)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=C                          
## [2] LC_CTYPE=English_United States.1252   
## [3] LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] dplyr_1.0.7  Matrix_1.3-4 prozor_0.3.1
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.7            highr_0.9             bslib_0.3.1          
##  [4] compiler_4.1.1        pillar_1.6.4          jquerylib_0.1.4      
##  [7] tools_4.1.1           bit_4.0.4             digest_0.6.28        
## [10] docopt_0.7.1          jsonlite_1.7.2        evaluate_0.14        
## [13] lifecycle_1.0.1       tibble_3.1.4          lattice_0.20-44      
## [16] AhoCorasickTrie_0.1.2 pkgconfig_2.0.3       rlang_0.4.11         
## [19] DBI_1.1.1             cli_3.1.0             parallel_4.1.1       
## [22] yaml_2.2.1            xfun_0.26             fastmap_1.1.0        
## [25] stringr_1.4.0         knitr_1.36            generics_0.1.1       
## [28] sass_0.4.0            vctrs_0.3.8           hms_1.1.1            
## [31] tidyselect_1.1.1      bit64_4.0.5           ade4_1.7-18          
## [34] grid_4.1.1            glue_1.4.2            R6_2.5.1             
## [37] fansi_0.5.0           vroom_1.5.6           rmarkdown_2.11       
## [40] tzdb_0.1.2            purrr_0.3.4           readr_2.0.1          
## [43] seqinr_4.2-8          magrittr_2.0.1        htmltools_0.5.2      
## [46] ellipsis_0.3.2        MASS_7.3-54           assertthat_0.2.1     
## [49] utf8_1.2.2            stringi_1.7.4         crayon_1.4.2