Version: 1.0.0
Commit Hash: bf525a21e9734b0dbea1642c597040a57efe5eaa
Author: CauldronGO Team
Category: analysis
Group-wise or Perseus-default imputation and limma differential expression for normalised total proteomics data
Total Proteomics Differential Expression
Installation
⬇️ Click here to install in Cauldron (requires Cauldron to be running)
Repository:
https://github.com/noatgnu/total-proteomics-differential-expression-plugin
Manual installation:
- Open Cauldron
- Go to Plugins → Install from Repository
- Paste:
https://github.com/noatgnu/total-proteomics-differential-expression-plugin - Click Install
ID: total-proteomics-differential-expression
Version: 1.0.0
Category: analysis
Author: CauldronGO Team
Description
Group-wise or Perseus-default imputation and limma differential expression for normalised total proteomics data
Workflow Diagram
flowchart TD
Start([Start]) --> step1
step1["Loading normalised matrix"]
step1 --> step2
step2["Loading annotation file"]
step2 --> step3
step3["Loading comparison file"]
step3 --> step4
step4["Imputing missing values"]
step4 --> step5
step5{"Running PCA (requires no missing values remaining)"}
step5 --> step6
step6["Fitting limma design"]
step6 --> step7
step7["Running differential expression comparisons"]
step7 --> step8
step8{"Generating target gene marker panels (requires target genes)"}
step8 --> step9
step9["Writing curtain exports"]
step9 --> step10
step10["Differential expression complete"]
step10 --> End([End])
Runtime
-
Environments:
r -
Entrypoint:
total_proteomics_differential_expression.R
Inputs
| Name | Label | Type | Required | Default | Visibility |
|---|---|---|---|---|---|
normalized_matrix_file |
Normalised Matrix File | file | Yes | - | Always visible |
annotation_file |
Sample Annotation File | file | Yes | - | Always visible |
comparison_file |
Comparison File | file | Yes | - | Always visible |
impute_method |
Imputation Method | select (none, group_downshift, perseus_default) | No | none | Always visible |
impute_downshift |
Imputation Downshift (SD units) | number (min: 0, step: 0) | No | 1.8 | Always visible |
impute_width |
Imputation Width (SD units) | number (min: 0, step: 0) | No | 0.3 | Always visible |
fdr_cutoff |
FDR Cutoff | number (min: 0, max: 1, step: 0) | No | 0.05 | Always visible |
fc_threshold_log2 |
Log2 Fold Change Threshold | number (min: 0, step: 0) | No | 0.585 | Always visible |
target_genes |
Target Genes (comma-separated) | text | No | - | Always visible |
top_n_genes |
Top Genes per Direction | number (min: 1, step: 1) | No | 15 | Always visible |
Input Details
Normalised Matrix File (normalized_matrix_file)
One of the QC & Normalisation plugin's normalized_
Sample Annotation File (annotation_file)
Cauldron sample annotation file. Sample is matched against the matrix's sample columns by exact string, falling back to basename.
- Table Editor: Enabled with 3 columns
- Columns:
Sample: Sample (required)- Sample identifier matching a normalised-matrix column (full raw-file path or basename)
Condition: Condition (required)- Experimental group label
BioReplicate: BioReplicate- Biological replicate identifier (optional)
Comparison File (comparison_file)
Pairwise comparisons: columns condition_A, condition_B, comparison_label. Positive log2FC means condition_A > condition_B.
Imputation Method (impute_method)
'group_downshift' pools each Condition group's own samples to compute one mean/sd, then downshifts (group-wise, MNAR-aware). 'perseus_default' computes mean/sd separately for each sample column, matching Perseus's own default mode. 'none' leaves missing values as-is.
- Options:
none,group_downshift,perseus_default
Imputation Downshift (SD units) (impute_downshift)
How far below the observed mean to centre imputed values, in standard deviations. Perseus default: 1.8.
Imputation Width (SD units) (impute_width)
Width of the imputed-value distribution, as a fraction of the observed standard deviation. Perseus default: 0.3.
FDR Cutoff (fdr_cutoff)
Adjusted p-value (BH) threshold for significance
Log2 Fold Change Threshold (fc_threshold_log2)
Minimum |log2 fold change| for significance (default 0.585 = log2(1.5))
Target Genes (comma-separated) (target_genes)
Optional gene symbols always labelled on every volcano plot and given their own marker abundance panel, regardless of significance. Leave empty to skip marker panels.
Top Genes per Direction (top_n_genes)
Number of top up- and down-regulated genes shown in the per-comparison top-genes bar chart
Outputs
| Name | File | Type | Format | Description |
|---|---|---|---|---|
differential_results_all |
DE/DE_all_contrasts.xlsx |
data | xlsx | Multi-sheet Excel workbook, one sheet per comparison |
de_summary_plot |
DE/DE_up_down_by_contrast.png |
plot | png | Significant proteins up/down, summarised across all comparisons |
pca_plot |
DE/PCA_after_imputation.png |
plot | png | PCA of the (imputed, if requested) intensity matrix |
target_markers_plot |
DE/target_markers_panel.png |
plot | png | Per-gene abundance panel for Target Genes, one facet per gene. Present only when target_genes is set. |
curtain_intensity_matrix |
curtain/curtain_intensity_matrix.tsv |
data | tsv | Intensity matrix in Curtain's expected column format (Protein IDs, Gene names, ...) |
Requirements
- R Version: >=4.0
R Dependencies (External File)
Dependencies are defined in: r-packages.txt
SummarizedExperimentlimmatidyverseggplot2ggrepelpatchworkpheatmapsvglitescaleswritexl
Note: When you create a custom environment for this plugin, these dependencies will be automatically installed.
Example Data
This plugin includes example data for testing:
annotation_file: examples/annotation.txt
comparison_file: examples/comparison.txt
impute_method: group_downshift
normalized_matrix_file: examples/normalized_matrix.tsv
Load example data by clicking the Load Example button in the UI.
Usage
Via UI
- Navigate to analysis → Total Proteomics Differential Expression
- Fill in the required inputs
- Click Run Analysis
Via Plugin System
const jobId = await pluginService.executePlugin('total-proteomics-differential-expression', {
// Add parameters here
});