limpa
Bioc currentQuantification and Differential Analysis of Proteomics Data
Release Lineage
Entered 3.21 · Apr 16, 2025
Current · Requires R 4.6
Description
Quantification and differential analysis of mass-spectrometry proteomics data, with probabilistic recovery of information from missing values. Avoids the need for imputation. Estimates the detection probability curve (DPC), which relates the probability of successful detection to the underlying log-intensity of each precursor ion, and uses it to incorporate missing values into protein quantification and into subsequent differential expression analyses. The package produces objects suitable for downstream analysis in limma. The package accepts precursor (or peptide) intensities including missing values and produces complete protein quantifications without the need for imputation. The uncertainty of the protein quantifications is propagated through to the limma analyses using variance modeling and precision weights, ensuring accurate error rate control. The analysis pipeline can alternatively work with PTM or protein level data. The package name "limpa" is an acronym for "Linear Models for Proteomics Data".
None published for Bioconductor
Test coverage
Line coverage
–
Expression
–
Tests / Examples
–
Functions
66 0 exported
Complexity
6.3 avg / 65 max
Call network
66 nodes / 44 edges
Test coverage is not measured for Bioconductor packages; nodes fall back to a neutral fill.
Call graph
Open call graph →Lowest coverage
Per-function coverage is not measured for this package yet.
Code
Structure
Lines of code
5,992
Files
78
Compiled share
0%
Has compiled src
No
Language breakdown
API
Exported functions
59
Internal functions
7
Recent export changes
Testing
Has tests
Yes
Test-to-code ratio
0.03
testthat edition
–
Docs
Roxygen coverage
–
Health & Security signals
Informational signals; not verdicts.
on.exit coverage
–
Unsafe pattern score
0
Dep constraint coverage
0%
Secret pattern count
0
Bundled 3rd-party code
2 items
Portability & License
Min R version
–
System requirements
–
C++ standard
–
License
GPL (>=2)
License flags
not SPDX, not OSI
History
Versions
3
First release
2025-09-06
Latest release
2026-04-28
Avg cadence
117 days
Cold removal rate
–
Dep drift
0
LOC over versions
Per-file churn detail lives in the source pipeline: https://github.com/r-observatory/bioc-code-metrics.
Documentation
- Help pages
- 33includes a package overview page
- Examples that run
- 79%23 run in a plain check · 5 never run · 1 hold no code
- Exported functions with examples
- 91%
- Documented parameters
- not tracked
- Return-value docs
- not tracked
- Help pages citing references
- 58%
- A limpa documentation page has been created at https://github.com/SmythLab/limpa/ containing a number of case study analyses of real datasets. This URL has been addded to the package DESCRIPTION file and the package vignette now has a "Further documentation" section that links out to this site.
- Change of terminology from "peptides" to "precursors" as the default unit of input data throughout the package. More discussion of precursors vs peptides and other levels of data in the vignette.
- Further clarification in the vignette that limpa can process any level of data for which intensities are available, including fragments, precursors, peptides, proteins, or PTMs. limpa can summarize precursors to either peptides or proteins and can conduct differential analyses at any level. The vignette now cites the Corso et al (2026) preprint as an IP-MS example. limpa can also explore isoform-specific expression by conducting differential usage analyses of peptides or PTMs within proteins, and there is a case study of such an analysis at https://github.com/SmythLab/limpa/.
- As part of the above change, the output column
genes$NPeptidesfrom dpcQuant() nas been renamed togenes$NPrec, and the progress message from dpcQuant() and dpcQuantByRows() now says "Precursors" instead of "Peptides" for the number of rows. (The column name and message are generic: the column name will still beNPrecand the message will still say "Precursors" even if fragments are being processed instead of precursors.) Percentage progress has also been added to the progress message. - A new function EListFromLongFormatFile() has been added to read intensities from any long format file, and readDIANN() and readSpectronaut() now call this function instead of handling their own read code. The input file can be either an uncompressed delimited text file or a Parquet file, and the file type is detected automatically from the file name. The new function uses the nanoparquet package to read Parquet files whereas readDIANN() previously used arrow. The new function adds a number of new arguments and changes the names of some existing arguments. It allows filtering by any number of columns and allows reading of observation-level covariates. All three functions now allow
feature.columnto be a vector of arbitrary length, which allows columns to be combined to created a unique precursor or fragment ID. Amongst other things, this functionality facilitates reading of fragment level data and reading of MSstats format files. All three functions have a new argumentverboseto optionally output progress information and the number of intensity values that have been filtered. - readDIAN() has a new argument list to match EListFromLongFormatFile(). The old argument
precursor.columnis renamed tofeature.column,qty.columntointensity.column, andextra.columnstoannotation.columns. Default setting forq.columnsis updated. - readSpectronaut() has a new argument list to match EListFromLongFormatFile(). The old argument
precursor.columnis renamed tofeature.column,qty.columntointensity.column, andextra.columnstoannotation.columns. New argumentsfilter.columnsandcensor.valuegive more flexibility over filtering. - New function readSpectronautRunInfo(), which is called by readSpectronaut() to include run (sample) information in the
targetscomponent of the output. - New function plotAveVsMis() to plot average observed log-intensity per row vs the number of missing values.
- dpc() has been replaced by a new function that combines the functionalities of dpcON() and dpcCN(), with the CN method as the default. The original dpc() function has been renamed to dpcLegacy().
- dpcCN() now uses a systematic rather than a random sample of rows. Amongst other things, this ensures that the result does not change if the rows of
yare reordered. The default value forsubsetis increased to 2000 and the default value forverboseis nowFALSE. - The upper limit of the y-axis in the plot from plotDPC() is now extended slightly to allow for jittering of the detection proportions. Previously some of the jittered proportions above 1 were not shown on the plot.
Show all changes in 1.4.0Hide the rest of the changes in 1.4.0
- New argument
show.startfor plotDPC() to control whether the starting curve from dpc() is shown on the plot as well as the final plot. Default is nowFALSE, whereas previously the starting curve was always shown. - dpcImpute() renamed to dpcQuantByRow() (although old function name will continue to work for backward compatibility).
- When operating on an EList, dpcQuant() now removes the protein ID annotation column from the output object so that the IDs appear only as row.names. dpcQuant() also stores the DPC and the hyperparameters in the output EList object.
- New function filterByDetection(), to choose proteins detected in at least a specified number of samples.
- Axis labels produced by plotPeptides() and plotProtein() are now user-settable. plotPeptides() now plots sample names, in the same style as plotProtein(), and the y-axis is now labelled "Log-intensities" instead of "Log-expression".
- New argument
lasfor plotProtein() and plotPeptides() to allow vertical orientation of sample names on x-axis. - readFragPipe() and readMaxQuant() are now mentioned in the vignette.
- Acknowledgement section added to vignette.
- A number of programming efficiencies have been introduced to various functions.
From inst/NEWS.Rd in the release
Repository practices
1 development-tooling and community-health practice detected across 1 family in the upstream repository
Checks run against github.com/smythlab/limpa on 2026-10-21.
GitHub Pages site last deployed 2026-09-07
Topics
People
- Gordon Smyth maintainer author
- Pedro Baldoni contributor
- Mengbo Li author
Cite
Cite this package
Run in R for the authors' entry:
citation("limpa")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.1101/2025.04.28.651125, 10.1093/bioinformatics/btad200.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.