This Julia Script contains the final and comprehensive Version of the signaling network workflow for optimization, simulation, and analysis of a phosphorylation-signaling ODE network based on measured protein fold change data and inferred dependency parameters.
The workflow can be run by performing the steps described in sections Setup and Run below or by executing Main_Net.jl in the IDE.
Depending on the selected settings in Main_Net.jl, the script can perform parameter optimization, independent simulation,
dependent simulation, knockdown scans, and MCA-based elasticity analysis.
For further explanations of the functionality of the Script and the Network Model, please consider reading my Master Thesis entitled "Data-driven Dynamic Simulation of Signaling Networks in Triple Negative Breast Cancer Cells" (Author: Luis Firl).
IMPORTANT:
The results will be saved in the folder OUTPUT, which will be created in the same directory where the script is executed in.
For future usage of the Network Workflow, it is important to note that the Input CSV Files need to be formatted exactly like the current
input files in the INPUT folder, because the Script and especially the data parsing and model construction logic are tailored
to reading the columns and cell contents exactly in the way they are defined in the current input tables.
-
Main_Net.jl: main entry point for optimization, independent simulation, dependent simulation, knockdown scans, and MCA analysis -
ODE_Net.jl: model construction, ODE system, exports, HTML generation, and SVG generation -
Optimizer.jl: optimization and high-level simulation helpers -
INPUT/alpha.csv: alpha weights -
INPUT/beta.csv: beta weights -
INPUT/network_dependencies.csv: network structure and regulators -
INPUT/parameters_generated.csv: initial/generated parameter table -
INPUT/fc_data.csv: measured fold-change data -
OUTPUT/: generated result tables, plots, and simulation outputs -
Project.toml/Manifest.toml: Julia environment
- Julia
1.12.x - Internet access is helpful on first setup for
Pkg.instantiate()to install required packages
Open a terminal in the NETWORK folder and run:
julia --project=. -e "import Pkg; Pkg.instantiate()"This installs all packages from the local project environment.
The standard entry point is Main_Net.jl. It reads the configured inputs, applies the selected workflow mode, and writes the resulting outputs.
Before running, make sure the required input files are present in INPUT/ and that the selected run mode in Main_Net.jl matches the files you have available.
For example:
RUN_DEPENDENT_SIM_ONLY = trueexpects an existingOUTPUT/parameters_optimized.csv- full optimization mode expects the standard input CSV files in
INPUT/
Run from the NETWORK folder with:
julia --project=. Main_Net.jlThe workflow behavior is controlled directly in Main_Net.jl, especially:
RUN_DEPENDENT_SIM_ONLYRUN_INDEPENDENT_SIM_FROM_OPTIMIZED_PARAMSRUN_KNOCKDOWN_SCANRUN_MCA_ELASTICITIES
Before running, check that the chosen mode matches the files you have available.
- All paths are resolved relative to the script directory via
@__DIR__, so the workflow can be moved to another machine without changing hard-coded paths. - Input file names are fixed in
Main_Net.jland are expected insideINPUT/. - Generated result files in
OUTPUT/are ignored by Git via.gitignore. Main_Net.jlstarts automatically when run directly or from the VS Code run button. To suppress autorun during manual includes, setSIGNALINGNETWORK_DISABLE_AUTORUN=1.
This repository is licensed under the MIT License. See LICENSE.