if (FALSE) {
# Load test data and build networks by donor and region
# Note: T = Tumor, N = Normal, B = Border regions
data(scorpionTest)
nets <- runSCORPION(
gexMatrix = scorpionTest$gex,
tfMotifs = scorpionTest$tf,
ppiNet = scorpionTest$ppi,
cellsMetadata = scorpionTest$metadata,
groupBy = c("donor", "region")
)
# Define ordered progression: Normal -> Border -> Tumor
normal_nets <- grep("--N$", colnames(nets), value = TRUE)
border_nets <- grep("--B$", colnames(nets), value = TRUE)
tumor_nets <- grep("--T$", colnames(nets), value = TRUE)
ordered_conditions <- list(
Normal = normal_nets,
Border = border_nets,
Tumor = tumor_nets
)
# Perform regression analysis
results_regression <- regressEdges(
networksDF = nets,
orderedGroups = ordered_conditions
)
# View top edges with strongest trends
head(results_regression[order(results_regression$pAdj), ])
# Edges with positive slopes (increasing from N to T)
increasing <- results_regression[results_regression$pAdj < 0.05 &
results_regression$slope > 0, ]
print(paste("Edges increasing along N->B->T:", nrow(increasing)))
# Edges with negative slopes (decreasing from N to T)
decreasing <- results_regression[results_regression$pAdj < 0.05 &
results_regression$slope < 0, ]
print(paste("Edges decreasing along N->B->T:", nrow(decreasing)))
# Filter by minimum edge weight and R-squared
strong_trends <- results_regression[results_regression$pAdj < 0.05 &
results_regression$rSquared > 0.7 &
abs(results_regression$meanEdge) > 0.1, ]
}
Run the code above in your browser using DataLab