Network and Systems Biology - iffatAGheyas/bioinformatics-tutorial-wiki GitHub Wiki
6.3 Network & Systems Biology
In this module we will cover:
- Overview – principles of biological networks and system‐level analysis
- Network Types & Data Sources – PPI, GRN, metabolic, co‐expression; STRING, BioGRID, KEGG, Reactome
- Network Inference from Omics – WGCNA for co‐expression; ARACNe, GENIE3 for regulatory networks
- Network Topology & Module Detection – centrality metrics, community detection (Louvain, MCL)
- Pathway & Functional Integration – overlay expression/proteomics onto pathways; enrichment analysis
- Tools & Workflows – Cytoscape, R igraph, Python networkx, Bioconductor packages (WGCNA, igraph)
- Hands-On Example – construct a small co-expression network in R and visualize in Cytoscape
6.3.1 Overview
Biological functions arise from complex interactions—genes, proteins, and metabolites form networks whose topology and dynamics underlie cellular behavior. Systems biology uses these networks to model pathways, predict key regulators, and understand emergent properties.
6.3.2 Network Types & Data Sources
- Protein–Protein Interactions (PPI)
– Databases: STRING, BioGRID, IntAct - Gene Regulatory Networks (GRN)
– Sources: TRRUST, RegulonDB, ChIP-seq repositories - Metabolic Networks
– Pathway maps: KEGG, MetaCyc - Co-Expression Networks
– Derived from transcriptomic or proteomic data via correlation
6.3.3 Co-Expression Network Inference (WGCNA)
# install.packages("WGCNA")
library(WGCNA)
options(stringsAsFactors=FALSE)
# 1) Load expression matrix (genes × samples)
datExpr <- read.csv("data/expression_matrix.csv", row.names=1)
# 2) Pick soft‐threshold power
powers <- c(1:10, seq(12,20,2))
sft <- pickSoftThreshold(datExpr, powerVector=powers, verbose=5)
# 3) Build network & detect modules
net <- blockwiseModules(
datExpr,
power = sft$powerEstimate,
TOMType = "signed",
minModuleSize = 30,
mergeCutHeight = 0.25,
numericLabels = TRUE,
pamRespectsDendro= FALSE,
verbose = 3
)
# 4) Extract module colors
moduleColors <- labels2colors(net$colors)
- Outputs: module assignment per gene; module–trait correlations
6.3.4 Gene Regulatory Network Inference (GENIE3)
# BiocManager::install("GENIE3")
library(GENIE3)
# 1) Prepare expression matrix
exprMatrix <- as.matrix(datExpr) # genes × samples
# 2) Run GENIE3 (uses random forests)
weightMat <- GENIE3(
exprMatrix,
regulators = rownames(exprMatrix), # or a TF list
nCores = 4
)
# 3) Extract top edges
linkList <- getLinkList(weightMat, threshold=0.01)
- Outputs: ranked list of gene–gene regulatory links
6.3.5 Network Topology & Module Detection
library(igraph)
# 1) Create igraph object from link list
g <- graph_from_data_frame(linkList, directed=FALSE)
# 2) Compute centrality measures
V(g)$degree <- degree(g)
V(g)$betweenness<- betweenness(g)
# 3) Community detection (Louvain)
clusters <- cluster_louvain(g)
# 4) Plot
plot(
clusters, g,
vertex.size = 5,
vertex.label = NA,
edge.arrow.size = 0.2
)
-
Metrics: degree centrality, betweenness, clustering coefficient
-
Modules: network subcommunities representing functional units
6.3.6 Pathway & Functional Integration
Enrichment of modules using clusterProfiler or gProfiler2:
library(clusterProfiler)
moduleGenes <- names(moduleColors[moduleColors == "blue"])
enrich <- enrichKEGG(
gene = moduleGenes,
organism = "hsa",
pvalueCutoff = 0.05
)
dotplot(enrich)
- Overlay expression or proteomics data on KEGG pathways with pathview.
6.3.7 Tools & Visualization
-
Cytoscape: interactive network visualization
-
R igraph + ggraph: static, publication-quality plots
-
Python networkx + pyvis: web-based interactive networks
-
NetworkAnalyst: web platform for quick network analysis and visualization