{Part Mutual Information for Direct Association Networks}
Overview
PartMI implements Part Mutual Information (PMI) for inferring direct associations in biological networks. Unlike standard correlation or mutual information (MI), PMI conditions on background variables to remove indirect dependencies, substantially reducing false-positive edges.
Quick Start
library(PartMI)
# Simulate expression data
set.seed(42)
n <- 200
z <- rnorm(n) # hidden regulator
x <- 0.7 * z + rnorm(n, 0, 0.5) # gene X
y <- 0.7 * z + rnorm(n, 0, 0.5) # gene Y (indirect via Z)
# MI picks up the indirect association
mi(x, y) # > 0 (false positive)
# PMI removes the common cause Z
pmi(x, y, z) # ~ 0 (correct)Core Functions
| Function | Description |
|---|---|
mi() |
Mutual information (binning or kNN estimator) |
pmi() |
Part/conditional mutual information X vs Y given Z |
pmi_network() |
Build full network with significance testing |
normalize_data() |
Z-score, rank, minmax, or quantile normalization |
discretize_data() |
Quantile or equal-width discretization |
References
- Zhao et al. (2016) Part mutual information for quantifying direct associations in networks. PNAS 113(18):5130-5135.
- Frenzel & Pompe (2007) Partial Mutual Information for Coupling Analysis of Multivariate Time Series. Phys. Rev. Lett. 99:204101.
- Kraskov, Stögbauer & Grassberger (2004) Estimating mutual information. Phys. Rev. E 69:066138.
