ANCOVA Analysis

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

README

ANCOVA Analysis

Installation

⬇️ Click here to install in Cauldron (requires Cauldron to be running)

Repository: https://github.com/noatgnu/ancova-plugin

Manual installation:

  1. Open Cauldron
  2. Go to PluginsInstall from Repository
  3. Paste: https://github.com/noatgnu/ancova-plugin
  4. 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.0
  • pandas>=2.0.0
  • statsmodels>=0.14.0
  • plotly>=5.18.0
  • click>=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

  1. Navigate to analysisANCOVA Analysis
  2. Fill in the required inputs
  3. Click Run Analysis

Via Plugin System

const jobId = await pluginService.executePlugin('ancova-analysis', {
  // Add parameters here
});