prolfquapp (ˌproʊˈlɛf.kə.ˌæp): Generating Dynamic DEA Reports using a command line interface to the prolfqua R Package
Read on JPR https://pubs.acs.org/doi/10.1021/acs.jproteome.4c00911 “prolfquapp ─ A User-Friendly Command-Line Tool Simplifying Differential Expression Analysis in Quantitative Proteomics”
Prolfquapp is a command-line interface to the prolfqua R package (doi) for protein differential expression analysis. It preprocesses outputs from DIA-NN, MaxQuant, FragPipe, and Spectronaut, and generates HTML reports, Excel tables, rank files, and SummarizedExperiment objects for downstream tools such as ExploreDE.

Using an LLM agent to set up the analysis
If you are using an LLM coding agent (such as Claude Code) to set up your differential expression analysis with prolfquapp, point it at the bundled prolfquapp-dea skill. The skill file captures the full CLI workflow — preparing the input directory, designing the annotation and contrasts, choosing the software key, and troubleshooting common failures — so the agent can drive prolfqua_dea.sh correctly.
Differential Expression Analysis Workflow with prolfquapp
After running your quantification software (DIA-NN, MaxQuant, FragPipe-TMT, FragPipe-DIA, or FragPipe-LFQ), place the quantification outputs and the .fasta file used for the search into a single data_dir.
Copy the shell scripts into your working directory:
or using the Docker container:
This places five scripts into your working directory:
[1] "/<working_directory>/prolfqua_dea.sh"
[2] "/<working_directory>/prolfqua_yaml.sh"
[3] "/<working_directory>/prolfqua_qc.sh"
[4] "/<working_directory>/prolfqua_dataset.sh"
[5] "/<working_directory>/prolfqua_contrasts.sh"On Linux, make them executable:
All scripts support --help. All commands can be prefixed with ./prolfquapp_docker.sh to run in the Docker container instead of a local R installation.
1. Create Dataset
Generate an experiment annotation template from the quantification output files.
- Input: directory containing identification/quantification software outputs
- Output: annotation file (CSV, TSV, or XLSX)
The generated annotation.xlsx contains five columns:
-
Relative.Path/Path/raw.file/channel— file identifier (must be unique) -
name— label used in tables and figures (must be unique) -
group/experiment— main factor -
subject/bioreplicate— blocking factor (optional; delete column if experiment is unpaired) -
control— reference condition marker (C= control,T= treatment) (optional)
The raw.file column is pre-filled from the input directory. Fill in the remaining columns before proceeding.
2. Generate Quality Control (QC)
Generate a QC report consisting of two HTML documents and an XLSX file.
- Input: annotation file from step 1 and quantification output directory
-
Output: subfolder starting with
QC_containing QC report and visualizations
./prolfqua_qc.sh -i data_dir/ -p ProjectName -O ordername -w WorkunitName -d annotation.xlsx -s DIANN -o where_to_write_resultsBy default the report is written into a dated subfolder starting with QC_. Pass --flat_outdir to write the report files (proteinAbundances.html, QC_sampleSizeEstimation.html, index.html) directly into the -o/--outdir directory instead — useful for pipelines that need a static, predictable path.
3. Generate prolfquapp YAML
Create a YAML configuration file with the DEA parameters.
- Output: YAML configuration file
Edit the generated YAML file to set any additional parameters not exposed via the command line.
5. Run Differential Expression Analysis
Run the DEA using the annotation and configuration files from the previous steps.
- Input: quantification output directory, annotation file (step 1 or 4), YAML config (step 3)
-
Output: subfolder starting with
DEA_containing HTML reports, Excel tables, rank files, andSummarizedExperiment.rds
As with QC, results go into a dated subfolder starting with DEA_ by default. Pass --flat_outdir to write results directly into -o/--outdir without the dated subfolder.
How to install
Linux
export R_LIBS_SITE="/scratch/PROLFQUA/r-site-library/"
R --vanilla << EOF
.libPaths()
install.packages(c("remotes","seqinr", "prozor", "logger", "arrow"), repos = "https://stat.ethz.ch/CRAN/")
remotes::install_gitlab("wolski/prolfquadata", host="gitlab.bfabric.org")
remotes::install_github("fgcz/prolfqua", build_vignettes = TRUE, dependencies = TRUE)
remotes::install_github("prolfqua/prolfquapp", dependencies = TRUE)
EOFDocker
Download prolfquapp_docker.sh and use it as a prefix to any command (see above).
Related software
- Einprot https://github.com/fmicompbio/einprot
- LFQAnalyst https://analyst-suite.monash-proteomics.cloud.edu.au/apps/lfq-analyst/ and https://github.com/MonashBioinformaticsPlatform/LFQ-Analyst
- POMAShiny https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009148
- MSDap https://github.com/ftwkoopmans/msdap
