saintexpress provides a pure-R implementation of the SAINTexpress scoring engines for spectral counts and intensities.
Documentation: https://prolfqua.github.io/saintexpress/
This package is intentionally focused on the R implementation. It does not ship or run native SAINTexpress binaries. Native execution is handled by the separate saintexpressbin package, and prolfqua integration is handled by prolfquasaint.
Usage
Prepare a SAINT input list with three data frames named inter, prey, and bait:
si <- list(
inter = inter,
prey = prey,
bait = bait
)Validate the input shape:
saintexpress::validate_saint_input(si)Run the spectral-count engine:
result <- saintexpress::run_saint(si, mode = "spc")Run the intensity engine:
result <- saintexpress::run_saint(si, mode = "int")result is a data frame in the SAINTexpress list.txt output shape.
Optimizers
The default optimizer is base R:
saintexpress::run_saint(si, mode = "spc", optimizer = "base")The optional nloptr optimizer can be used when the nloptr package is installed:
saintexpress::run_saint(si, mode = "spc", optimizer = "nloptr")Vignette
A worked example with simulated AP-MS data is included as a package vignette:
vignette("saintexpress", package = "saintexpress")It walks through validate_saint_input() and run_saint() for both spc and int modes on a 6-prey/4-bait synthetic experiment with known true interactors, and mirrors the structure of the companion saintexpressbin vignette so the two engines can be compared side by side.
Testing Scope
This package uses small synthetic inputs for unit tests. TIP49 reference fixtures and native-vs-R comparison tests live in prolfquasaint, where both saintexpress and saintexpressbin are integrated.
Origin, Attribution and AI Assistance
saintexpress is not an independent invention of the SAINT model. It is a port of the SAINTexpress reference implementation to pure R.
- The original SAINTexpress C++ sources (
SAINT-MRF-spcandSAINT-MRF-int) are Copyright (C) 2011 Hyungwon Choi and Damian Fermin, and are distributed under the GNU General Public License, version 3 or later. The upstream distribution used as the reference isSAINTexpress_v3.6.3__2018-03-09.tar.gzfrom https://sourceforge.net/projects/saint-apms/files/. - The scoring logic in this package was derived from those C++ sources so that the numerical output matches the native
list.txtresults. It is a derivative work of the upstream implementation, not a clean-room reimplementation from the publications alone. - The translation from C++ to R was carried out with the help of an AI coding assistant. Every ported routine was subsequently reviewed by the maintainer and checked against the output of the native SAINTexpress binaries; the comparison tests live in
tests/.
Because this package is a derivative work of GPL-3 licensed sources, saintexpress is released under the same terms: GNU General Public License, version 3 or later. It cannot be redistributed under a more permissive licence.
Credit for the SAINT model and its reference implementation belongs to the original authors listed in the References section below.
References
SAINTexpress and the SAINT model are described in the original publications:
- Teo G, Liu G, Zhang J, Nesvizhskii AI, Gingras AC, Choi H (2014). SAINTexpress: improvements and additional features in Significance Analysis of INTeractome software. Journal of Proteomics 100:37-43. https://doi.org/10.1016/j.jprot.2013.10.023
- Choi H, Glatter T, Gstaiger M, Nesvizhskii AI (2012). SAINT-MS1: protein-protein interaction scoring using label-free intensity data in affinity purification-mass spectrometry experiments. Journal of Proteome Research 11:2619-2624. https://doi.org/10.1021/pr201185r
- Choi H, Larsen B, Lin ZY, Breitkreutz A, Mellacheruvu D, Fermin D, Qin ZS, Tyers M, Gingras AC, Nesvizhskii AI (2011). SAINT: probabilistic scoring of affinity purification-mass spectrometry data. Nature Methods 8:70-73. https://doi.org/10.1038/nmeth.1541