find_common_differentially_abundant_organisms
Find common differentially abundant organisms across multiple assays, separating increased and decreased signals to reveal cross-method concordance.
Instructions
USE THIS TOOL (not the query tool) for any "common
differentially abundant organisms across assays", "organisms
increased in BOTH assays", "shared abundance signals across
methods" (e.g. DESeq2 vs ANCOM-BC concordance), or any cross-assay
abundance intersection question. Falling back to query for this
category reproduces the per-assay fetch + inner-join logic this
tool already does correctly (parallel fetches, method-aware
significance filtering, lnfc handling that doesn't drop DESeq2
rows, separate increased vs. decreased intersections) and loses
the formatted markdown + inline CSV side-channel and the
assay-reference legend.
Find common differentially abundant organisms across multiple assays.
Useful for comparing results from different analysis methods (e.g., DESeq2 vs ANCOM-BC 1 vs ANCOM-BC 2) to identify organisms consistently detected as differentially abundant.
Direction (increase vs. decrease) and ranking use log2fc, which is populated for BOTH DESeq2 and ANCOM-BC edges in the GeneLab KG. log2fc is therefore the universal magnitude filter (log2fc_threshold); lnfc is ANCOM-BC-only and would null-filter every DESeq2 row if used for direction.
Significance filtering is method-aware:
DESeq2 edges populate adj_p_value (not q_value); the adj_p_threshold applies.
ANCOM-BC edges populate q_value (not adj_p_value); the q_value_threshold applies. Each row is kept if its populated significance field meets the matching threshold.
Magnitude filtering:
log2fc_threshold (default 0.0) applies to every row, since log2fc is populated for both methods.
lnfc_threshold (default None = no filter) is method-aware: when set, it requires |lnfc| >= lnfc_threshold on rows where lnfc is populated. Rows where lnfc is null (i.e., DESeq2 rows) are not affected by this filter.
This function:
Takes a list of assay IDs as input (2 or more)
Gets ALL organisms passing the magnitude and method-aware significance filters for each assay
Inner joins among increased and among decreased abundance organisms
Returns markdown tables showing common organisms and their log2fc values
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assay_ids | Yes | List of assay identifiers for abundance comparisons (e.g., different methods like DESeq2, ANCOM-BC) | |
| session_id | No | Session id returned by `create_session()`. This server serves many users from one process; the session id is what keeps your output directory and generated plots private to you. Pass the SAME value on every tool call. If the server replies that the session is unknown or expired, call `create_session()` again and use the new id. | |
| lnfc_threshold | No | Optional minimum |lnfc| magnitude. Only applied to rows with lnfc populated (ANCOM-BC). DESeq2 rows are not filtered by this parameter. Leave unset (None) to skip lnfc filtering entirely. | |
| adj_p_threshold | No | Adjusted p-value threshold for DESeq2 abundance assays (default: 0.05). Applied to rows with adj_p_value populated. | |
| log2fc_threshold | No | Minimum |log2fc| magnitude for filtering organisms (default: 0.0 = any change). Applied to BOTH DESeq2 and ANCOM-BC rows since log2fc is populated for both methods. | |
| q_value_threshold | No | q-value threshold for ANCOM-BC abundance assays (default: 0.05). Applied to rows with q_value populated. |