R packages for the analysis of mass-spectrometry proteomics data, developed at the Functional Genomics Center Zurich (ETH Zurich / University of Zurich) and used in its proteomics service.
The statistical core is prolfqua, which lives under the fgcz organization. Most of the packages here build on it. A few, noted below, are independent and can be used on their own.
fgcz/prolfqua · documentation · J. Proteome Res. 2023
Covers the label-free quantification workflow: quality control, normalization, protein aggregation, linear modelling, hypothesis testing and sample-size estimation.
Models are specified as R formulas and fitted per protein, with contrasts, variance moderation and handling of missing values. Two-group comparisons and multi-factor designs with interactions use the same interface.
remotes::install_github("fgcz/prolfqua", dependencies = TRUE)Citation: Wolski et al., Journal of Proteome Research 22(4):1092-1104 (2023). doi:10.1021/acs.jproteome.2c00441
prolfquapp runs a differential expression analysis from the command line, given a quantification table and a sample annotation. It reads MaxQuant, FragPipe, DIA-NN, Spectronaut and MSstats-formatted input, and writes an HTML report with quality-control plots and results, together with XLSX tables, ranked files for gene-set enrichment, Bioconductor SummarizedExperiment objects and AnnData .h5ad files.
prophosqua handles TMT experiments in which phospho-enriched and total-proteome samples are searched separately. Each dataset is modelled on its own, the phospho data at site level and the total proteome aggregated to proteins. Combining the two gives Differential PTM Abundance and Differential PTM Usage, which aim to distinguish a change in site occupancy from a change in the abundance of the underlying protein.
prolfquasaint scores protein-protein interactions in affinity-purification experiments, wrapping SAINTexpress behind the contrast interface the other prolfqua packages use.
prolfquappPTMreaders reads PTM output from FragPipe and Spectronaut into the site-level tables prolfquapp expects, so the differences between the two formats are resolved before the statistics.
protsea defines a JSON format for exchanging enrichment results between STRING and clusterProfiler. Native GSEA statistics and ranked inputs are kept, so running-score curves and enrichment plots can be regenerated without repeating the analysis. Independent of prolfqua.
saintexpress is a reimplementation of the SAINTexpress spectral-count and intensity scoring models in R, producing the same list.txt output as the original. It requires no external binary and is independent of prolfqua. The method is described in Teo et al. 2014.
saintexpressbin packages the native SAINTexpress binaries for Linux, macOS and Windows with a runner and a Docker fallback, for comparison against the reference implementation.
proptm3d maps differential PTM results onto AlphaFold structures, rendering sites, fold changes and significance on the predicted model with pLDDT confidence colouring and PyMOL export. Predicted structures carry their own uncertainty, which the confidence colouring is there to make visible.
prolfquabenchmark compares prolfqua with MSstats, proDA and msqrob on spike-in datasets with known ground truth.
integration_test exercises the prolfquapp command-line pipelines end to end. The packages are separate repositories with dependencies between them, so a change in prolfqua can break a downstream package without any single repository's tests failing.
Each package below depends on the one to its left.
prolfqua (fgcz/prolfqua)
├── prolfquapp ──── prolfquappPTMreaders
├── prophosqua ──── protsea*
├── prolfquasaint ─ saintexpress*, saintexpressbin*
└── prolfquabenchmark
* independent of prolfqua; usable on their own
proptm3d is a Python package and is not in this graph. It reads prophosqua output from disk rather than depending on it.
Issues and pull requests are welcome on the individual repositories. The R packages run R CMD check and lint on GitHub Actions and publish documentation with pkgdown or altdoc. proptm3d and integration_test currently have no continuous integration.
Licences are MIT, except saintexpress and saintexpressbin, which are GPL-3.