Version: 1.0.0
Commit Hash: 314dc446e35d98c5e9c58125980b3d058e910be2
Author: CauldronGO Team
Category: analysis
Analysis of Covariance (ANCOVA) for comparing group means while controlling for covariates, with FDR correction
ANCOVA Analysis
Installation
⬇️ Click here to install in Cauldron (requires Cauldron to be running)
Repository:
https://github.com/noatgnu/ancova-plugin
Manual installation:
- Open Cauldron
- Go to Plugins → Install from Repository
- Paste:
https://github.com/noatgnu/ancova-plugin - Click Install
ID: ancova-analysis
Version: 1.0.0
Category: analysis
Author: CauldronGO Team
Description
Analysis of Covariance (ANCOVA) for comparing group means while controlling for covariates, with FDR correction
Workflow Diagram
flowchart TD
Start([Start]) --> step1
step1[Running ANCOVA for {len(feature_names]
step1 --> step2
step2[Applying FDR correction (Benjamini-Hochberg]
step2 --> step3
step3[Generating plots...]
step3 --> step4
step4[Computing adjusted means for significant features...]
step4 --> End([End])
Runtime
-
Environments:
python -
Entrypoint:
ancova_analysis.py
Inputs
| Name | Label | Type | Required | Default | Visibility |
|---|---|---|---|---|---|
input_file |
Input Data File | file | Yes | - | Always visible |
annotation_file |
Annotation File | file | Yes | - | Always visible |
index_col |
Feature ID Column | column-selector (single) | No | - | Always visible |
metadata_col |
Metadata Column | column-selector (single) | No | - | Always visible |
factor_col |
Main Factor Column | column-selector (single) | Yes | - | Always visible |
covariate_cols |
Covariate Columns | column-selector (multiple) | Yes | - | Always visible |
ss_type |
Sum of Squares Type | select (Type I (Sequential), Type II (Hierarchical), Type III (Marginal)) | No | 2 | Always visible |
alpha |
FDR Threshold | number (min: 0, max: 0, step: 0) | No | 0.05 | Always visible |
log2 |
Log2 Transform | boolean | No | false | Always visible |
Input Details
Input Data File (input_file)
Data matrix with features as rows and samples as columns. Data should be log2 transformed or enable Log2 Transform option.
Annotation File (annotation_file)
Sample annotation file with Sample, Condition, and covariate columns
Feature ID Column (index_col)
Column containing feature identifiers (e.g., protein IDs)
- Column Source:
input_file
Metadata Column (metadata_col)
Optional column for display name (e.g., gene name). Features will be shown as 'ID (Name)'
- Column Source:
input_file
Main Factor Column (factor_col)
Column in annotation file containing the main grouping factor (e.g., Condition)
- Column Source:
annotation_file
Covariate Columns (covariate_cols)
Columns in annotation file containing covariates to control for (e.g., Batch, Age)
- Column Source:
annotation_file
Sum of Squares Type (ss_type)
Type of sum of squares for ANCOVA
- Options:
1(Type I (Sequential)),2(Type II (Hierarchical)),3(Type III (Marginal))
FDR Threshold (alpha)
False Discovery Rate threshold (Benjamini-Hochberg)
Log2 Transform (log2)
Apply log2 transformation to data before analysis. Enable if input data is not already log2 transformed.
Outputs
| Name | File | Type | Format | Description |
|---|---|---|---|---|
ancova_results |
ancova_results.txt |
data | tsv | ANCOVA results with F-statistics, p-values, adjusted p-values, and effect sizes |
adjusted_means |
adjusted_means.txt |
data | tsv | Covariate-adjusted means for significant features |
analysis_summary |
analysis_summary.txt |
data | tsv | Summary of analysis parameters and results |
volcano_plot |
volcano_plot.html |
html | html | Volcano plot showing effect size vs significance |
effect_size_plot |
effect_size_plot.html |
html | html | Bar plot of top features by effect size |
pvalue_histogram |
pvalue_histogram.html |
html | html | Distribution of raw and adjusted p-values |
boxplots |
boxplots.html |
html | html | Box plots showing group distributions for top significant features |
violin_plots |
violin_plots.html |
html | html | Violin plots showing group distributions for top significant features |
Sample Annotation
This plugin supports sample annotation:
- Annotation File:
annotation_file
Visualizations
This plugin generates 1 plot(s):
Volcano Plot (ancova-volcano)
- Type: scatter
- Data Source:
ancova_results - Default: Yes
Requirements
- Python Version: >=3.11
Package Dependencies (Inline)
Packages are defined inline in the plugin configuration:
numpy>=1.24.0pandas>=2.0.0statsmodels>=0.14.0plotly>=5.18.0click>=8.0.0
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:
input_file: diann/imputed.data.txt
metadata_col: Genes
covariate_cols: [Batch]
ss_type: 2
alpha: 0.05
annotation_file: diann/annotation.txt
index_col: Protein.Ids
factor_col: Condition
log2: true
Load example data by clicking the Load Example button in the UI.
Usage
Via UI
- Navigate to analysis → ANCOVA Analysis
- Fill in the required inputs
- Click Run Analysis
Via Plugin System
const jobId = await pluginService.executePlugin('ancova-analysis', {
// Add parameters here
});