Skip to content

limpa

Bioc current

Quantification and Differential Analysis of Proteomics Data

v1.4.2 · Package record · software · GPL (>=2)

Release Lineage

Entered 3.21 · Apr 16, 2025

Current · Requires R 4.6

1.0 In 3 of 49 releases 3.23

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".

Advisories

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.

Loading 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

R 3,261 (54.4%)Tests 109 (1.8%)Docs 2,279 (38%)Vignettes 343 (5.7%)

API

Exported functions

59

Internal functions

7

Recent export changes

v3.21+1 pattern:^[^\\.]

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

v3.21: 4,812 LOCv3.22: 5,298 LOCv3.23: 5,992 LOC

Per-file churn detail lives in the source pipeline: https://github.com/r-observatory/bioc-code-metrics.

Documentation

In the Bioconductor 3.23 release
READMENoVignettesYes · 1 · dynamicNEWSYes · mentions 1.4.0Citation fileYes · cites a publication
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%
Changes in 1.4.0 (Bioconductor 3.23)
  • 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$NPeptides from dpcQuant() nas been renamed to genes$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 be NPrec and 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.column to 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 argument verbose to 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.column is renamed to feature.column, qty.column to intensity.column, and extra.columns to annotation.columns. Default setting for q.columns is updated.
  • readSpectronaut() has a new argument list to match EListFromLongFormatFile(). The old argument precursor.column is renamed to feature.column, qty.column to intensity.column, and extra.columns to annotation.columns. New arguments filter.columns and censor.value give more flexibility over filtering.
  • New function readSpectronautRunInfo(), which is called by readSpectronaut() to include run (sample) information in the targets component 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 y are reordered. The default value for subset is increased to 2000 and the default value for verbose is now FALSE.
  • 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.start for plotDPC() to control whether the starting curve from dpc() is shown on the plot as well as the final plot. Default is now FALSE, 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 las for 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

Upstream repositoryBeta

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.

Docs source (1)

GitHub Pages site last deployed 2026-09-07

How this is detected·Detection ruleset v4 (2026-10-20)

Topics

Maintainer
Gordon Smyth

Available on

CRANr2uBioconductorautoCRANCOPR

People

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.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for limpa version 1.4.2 [Data set]. HJJB, LLC. Data release v2026-10-25. https://doi.org/10.5281/zenodo.21843040

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.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy