Infer gene regulatory networks from bulk (or general) expression data and read transcription-factor protein activity from the resulting regulons. Edge inference uses mutual information (ARACNe-AP) or tree ensembles (GENIE3, GRNBoost2); activity inference uses VIPER/msVIPER. The central claim is the Califano-lab "activity, not edges" paradigm: an expression-derived GRN is an undirected association graph whose individual edges are unreliable, but a regulon read as a multiplexed reporter gives a robust estimate of a TF's protein activity -- which can be high even when the TF's own mRNA is unchanged. DREAM5 showed no single inference method dominates (ensembles win) and that synthetic-benchmark accuracy does not transfer to real eukaryotic data. This is the bulk counterpart to the single-cell scenic-regulons skill.
BiocManager::install(c('viper', 'GENIE3'))
# ARACNe-AP is a Java tool built from source (https://github.com/califano-lab/ARACNe-AP)
# Python tree-ensemble alternative:
pip install arboreto
A candidate TF list matched to the expression matrix's gene namespace is required for edge inference.
Tell your AI agent what you want to do: - "Infer a TF-target network from my bulk RNA-seq with GENIE3" - "Build an ARACNe network and find master regulators with VIPER" - "Score per-sample TF activity for patient stratification" - "Which transcription factors are the master regulators of my tumor vs normal contrast?"
"I have a bulk RNA-seq matrix and a TF list. Reverse-engineer a regulatory network with GENIE3."
"Run ARACNe-AP with bootstrapping and consolidation to build a mutual-information network."
"Build a regulon from my ARACNe network and run msVIPER to rank master regulators of disease."
"Compute a per-sample VIPER activity matrix and cluster patients by TF activity."
"Infer the network with multiple methods and combine them into a consensus (wisdom of crowds)."
aracne2regulon so target signs are assigned, or VIPER degrades to plain enrichment.--consolidate.