The following content is descibed in more detail in Egloff et al. (2018) (under review NMETH-A35040).
aa_pool_x8 <- c(rep('A', 12), rep('S', 0), rep('T', 12), rep('N', 12),
rep('Q', 12), rep('D', 8), rep('E', 0), rep('V', 12), rep('L', 0),
rep('F', 0), rep('Y', 8), rep('W', 0), rep('G', 12), rep('P', 12))
aa_pool_1_2_9_10 <- c(rep('A', 8), rep('S', 7), rep('T', 7), rep('N', 6),
rep('Q', 6), rep('D', 8), rep('E', 8), rep('V', 9), rep('L', 6),
rep('F', 5), rep('Y', 9), rep('W', 6), rep('G', 15), rep('P', 0))
aa_pool_3_8 <- c(rep('A', 5), rep('S', 4), rep('T', 5), rep('N', 2),
rep('Q', 2), rep('D', 8), rep('E', 8), rep('V', 7), rep('L', 5),
rep('F', 4), rep('Y', 6), rep('W', 4), rep('G', 12), rep('P', 28))## aa_pool_x8
## A D G N P Q T V Y
## 12 8 12 12 12 12 12 12 8
## [1] 100
## aa_pool_1_2_9_10
## A D E F G L N Q S T V W Y
## 8 8 8 5 15 6 6 6 7 7 9 6 9
## [1] 100
## aa_pool_3_8
## A D E F G L N P Q S T V W Y
## 5 8 8 4 12 5 2 28 2 4 5 7 4 6
## [1] 100
## [1] "GPGGANDPYDYVSR" "GPGPPAPYAATVSR" "GPGGTPAPVDTVFR" "GPGTTDYTGDVVFR"
## [5] "GPGVPQGADAAVSR" "GPGPYAYDNQPVFR" "GPGGANTVPYVVSGER" "GPGVAPADAPNVFR"
## [9] "GPGVAAYYAYNVSGER" "GPGADGTVGNQVSGER"
## [1] 30000
## [1] "GPGPDDTDTYGVFR"
## [1] 1496.665
## [1] 1037.512
## [1] 1890.877
## [1] 1037.000 1048.554 1060.108 1071.662 1083.216 1094.770 1106.324 1117.878
## [9] 1129.432 1140.986 1152.541 1164.095 1175.649 1187.203 1198.757 1210.311
## [17] 1221.865 1233.419 1244.973 1256.527 1268.081 1279.635 1291.189 1302.743
## [25] 1314.297 1325.851 1337.405 1348.959 1360.514 1372.068 1383.622 1395.176
## [33] 1406.730 1418.284 1429.838 1441.392 1452.946 1464.500 1476.054 1487.608
## [41] 1499.162 1510.716 1522.270 1533.824 1545.378 1556.932 1568.486 1580.041
## [49] 1591.595 1603.149 1614.703 1626.257 1637.811 1649.365 1660.919 1672.473
## [57] 1684.027 1695.581 1707.135 1718.689 1730.243 1741.797 1753.351 1764.905
## [65] 1776.459 1788.014 1799.568 1811.122 1822.676 1834.230 1845.784 1857.338
## [73] 1868.892 1880.446 1892.000
hist(pim.GPGx8cTerm, breaks=pim.breaks, probability = TRUE,
col='#1111AAAA', xlab='peptide mass [Dalton]', ylim=c(0, 0.006))
hist(pim.GPx10R, breaks=pim.breaks,
probability = TRUE, add=TRUE, col='#11AA1188')
abline(v=pim.iRT, col='grey')
legend("topleft", c('GPGx8cTerm', 'GPx10R', 'iRT'),
fill=c('#1111AAAA', '#11AA1133', 'grey'))the SSRC model, see Krokhin et al.
(2004), is implemented as ssrc function in protViz.
For a sanity check we apply the ssrc function to a real
world LC-MS run peptideStd consits of a digest of the
FETUIN_BOVINE protein (400 amol) shipped with specL Panse et al. (2015).
library(specL)
ssrc <- sapply(peptideStd, function(x){ssrc(x$peptideSequence)})
rt <- unlist(lapply(peptideStd, function(x){x$rt}))
plot(ssrc, rt); abline(ssrc.lm <- lm(rt ~ ssrc), col='red');
legend("topleft", paste("spearman", round(cor(ssrc, rt, method='spearman'),2)))
here we apply
ssrc to the simulated flycodes and iRT
peptides Escher et al. (2012).
hyd.GPGx8cTerm <- ssrc(peptides.GPGx8cTerm)
hyd.GPx10R <- ssrc(peptides.GPx10R)
hyd.iRT <- ssrc(as.character(iRTpeptides$peptide))
(hyd.min <- min(hyd.GPGx8cTerm, hyd.GPx10R))## [1] -7.63055
## [1] 65.12112
hist(hyd.GPGx8cTerm, breaks = hyd.breaks, probability = TRUE,
col='#1111AAAA', xlab='hydrophobicity',
ylim=c(0, 0.06),
main='Histogram')
hist(hyd.GPx10R, breaks = hyd.breaks, probability = TRUE, add=TRUE, col='#11AA1188')
abline(v=hyd.iRT, col='grey')
legend("topleft", c('GPGx8cTerm', 'GPx10R', 'iRT'), fill=c('#1111AAAA', '#11AA1133', 'grey'))## aa_pool_x8
## A D G N P Q T V Y
## 0.12 0.08 0.12 0.12 0.12 0.12 0.12 0.12 0.08
peptide2aa <- function(seq, from=4, to=4+8){
unlist(lapply(seq, function(x){strsplit(substr(x, from, to), '')}))
}
peptides.GPGx8cTerm.aa <- peptide2aa(peptides.GPGx8cTerm)
round(table(peptides.GPGx8cTerm.aa)/length(peptides.GPGx8cTerm.aa), 2)## peptides.GPGx8cTerm.aa
## A D G N P Q T V Y
## 0.11 0.07 0.11 0.11 0.11 0.11 0.11 0.22 0.07
peptides.GPx10R.aa <- peptide2aa(peptides.GPx10R, from=3, to=12)
round(table(peptides.GPx10R.aa)/length(peptides.GPx10R.aa), 2)## peptides.GPx10R.aa
## A D E F G L N P Q S T V W Y
## 0.06 0.08 0.08 0.04 0.13 0.05 0.04 0.17 0.04 0.05 0.06 0.08 0.05 0.07
## [1] 30000
## [1] 6319
## [1] 5959
count the peptides having the same AA composition
## [1] 30000
table(table(tt<-unlist(lapply(peptides.GPGx8cTerm,
function(x){paste(sort(unlist(strsplit(x, ''))), collapse='')}))))##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17
## 9541 3606 1607 792 427 204 104 50 34 20 6 5 6 2 1 1
# write.table(tt, file='GPGx8cTerm.txt')
table(table(unlist(lapply(peptides.GPx10R,
function(x){paste(sort(unlist(strsplit(x, ''))), collapse='')}))))##
## 1 2 3 4 5
## 24844 2104 265 32 5
the NestLink
function plot_in_silico_LCMS_map graphs the LC-MS maps.
par(mfrow=c(2, 2))
h <- NestLink:::.plot_in_silico_LCMS_map(peptides.GPGx8cTerm, main='GPGx8cTerm')
h <- NestLink:::.plot_in_silico_LCMS_map(peptides.GPx10R, main='GPx10R')Here is the output of the sessionInfo() commmand.
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 26.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] specL_1.46.0 seqinr_4.2-44
## [3] RSQLite_3.53.3 DBI_1.3.0
## [5] knitr_1.52 scales_1.4.0
## [7] ggplot2_4.0.3 NestLink_1.28.0
## [9] ShortRead_1.70.0 GenomicAlignments_1.48.0
## [11] SummarizedExperiment_1.42.0 Biobase_2.72.0
## [13] MatrixGenerics_1.24.0 matrixStats_1.5.0
## [15] Rsamtools_2.28.0 GenomicRanges_1.64.0
## [17] BiocParallel_1.46.0 protViz_0.7.9
## [19] gplots_3.3.0 Biostrings_2.80.2
## [21] Seqinfo_1.2.0 XVector_0.52.0
## [23] IRanges_2.46.0 S4Vectors_0.50.3
## [25] ExperimentHub_3.2.2 AnnotationHub_4.2.2
## [27] BiocFileCache_3.2.0 dbplyr_2.6.0
## [29] BiocGenerics_0.58.1 generics_0.1.4
## [31] BiocStyle_2.40.0
##
## loaded via a namespace (and not attached):
## [1] bitops_1.1-0 deldir_2.0-4 httr2_1.3.0
## [4] rlang_1.3.0 magrittr_2.0.5 ade4_1.7-24
## [7] otel_0.2.0 compiler_4.6.1 mgcv_1.9-4
## [10] png_0.1-9 vctrs_0.7.3 pwalign_1.8.0
## [13] pkgconfig_2.0.3 crayon_1.5.3 fastmap_1.2.0
## [16] labeling_0.4.3 caTools_1.18.4 rmarkdown_2.32
## [19] purrr_1.2.2 bit_4.6.0 xfun_0.61
## [22] cachem_1.1.0 cigarillo_1.2.1 jsonlite_2.0.0
## [25] blob_1.3.0 DelayedArray_0.38.2 jpeg_0.1-11
## [28] parallel_4.6.1 R6_2.6.1 bslib_0.12.0
## [31] RColorBrewer_1.1-3 jquerylib_0.1.4 Rcpp_1.1.2
## [34] Matrix_1.7-6 splines_4.6.1 tidyselect_1.2.1
## [37] abind_1.4-8 yaml_2.3.12 codetools_0.2-20
## [40] hwriter_1.3.2.1 curl_8.0.0 lattice_0.23-1
## [43] tibble_3.3.1 withr_3.0.3 KEGGREST_1.52.2
## [46] S7_0.2.2 evaluate_1.0.5 pillar_1.11.1
## [49] BiocManager_1.30.27 filelock_1.0.3 KernSmooth_2.23-27
## [52] BiocVersion_3.23.1 gtools_3.9.5 glue_1.8.1
## [55] maketools_1.3.2 tools_4.6.1 interp_1.1-6
## [58] sys_3.4.3 buildtools_1.0.0 grid_4.6.1
## [61] latticeExtra_0.6-31 AnnotationDbi_1.74.0 nlme_3.1-171
## [64] cli_3.6.6 rappdirs_0.3.4 S4Arrays_1.12.1
## [67] dplyr_1.2.1 gtable_0.3.6 sass_0.4.10
## [70] digest_0.6.39 SparseArray_1.12.3 farver_2.1.2
## [73] memoise_2.0.1 htmltools_0.5.9 lifecycle_1.0.5
## [76] httr_1.4.9 MASS_7.3-66 bit64_4.8.6