This Julia repository contains the final and comprehensive workflow of my Master Thesis project for data-driven modeling, optimization, and simulation of the kinase signaling network in Triple Negative Breast Cancer Cells.
The repository is divided into two connected workflow parts:
DEPENDENCY_OPTIMIZER: estimates Alpha/Alpha0 and Beta/Beta0 dependency parameters from measured protein fold change dataNETWORK: uses these inferred dependencies together with network input tables to optimize, simulate, and analyze the signaling ODE network
The overall workflow can be run by performing the steps described in sections Setup and Run below. For the actual execution details of each part, please use the dedicated README files inside the two subfolders.
For further explanations of the functionality of the Scripts, the mathematical background, and the modeling decisions, 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 intended execution order is to run the DEPENDENCY_OPTIMIZER first and the NETWORK second.
The generated dependency outputs, especially alpha.csv and beta.csv, are needed later as inputs for the network workflow.
- DEPENDENCY_OPTIMIZER/: dependency fitting workflow with its own Julia environment, input data, and generated outputs
- NETWORK/: signaling network ODE workflow with its own Julia environment, input tables, and generated outputs
Each subproject contains its own:
Project.tomlManifest.toml- local
README.md
- Run the dependency optimizer in
DEPENDENCY_OPTIMIZER/. - Inspect the generated dependency outputs, for example in
OUTPUT/Flux_RESULTS/orOUTPUT/JuMP_RESULTS/. - Transfer the selected
alpha.csvandbeta.csvfiles intoNETWORK/INPUT/. - Run the signaling network workflow in
NETWORK/.
- Julia
1.12.x - Internet access is helpful on first setup for
Pkg.instantiate()to install required packages
The two workflow parts use separate Julia environments, so setup is performed individually inside each subfolder.
For the dependency optimizer:
cd DEPENDENCY_OPTIMIZER
julia --project=. -e "import Pkg; Pkg.instantiate()"For the signaling network workflow:
cd NETWORK
julia --project=. -e "import Pkg; Pkg.instantiate()"This installs all packages from the respective local project environments.
Dependency optimizer:
cd DEPENDENCY_OPTIMIZER
julia --project=. Main_Opt.jlSignaling network workflow:
cd NETWORK
julia --project=. Main_Net.jlBefore running the second stage, make sure the required dependency outputs from the first stage are present in NETWORK/INPUT/.
For detailed configuration options, input expectations, and output descriptions, please use the dedicated README files in:
- The repository is organized so both workflow parts can be cloned and run on another machine without hard-coded local paths.
- The two stages are intentionally separated because they depend on different Julia environments and represent different parts of the overall methodology.
- Generated result files are ignored through
.gitignorerules.
This project was developed in the context of my master's thesis within the Klipp-Linding Lab (Theoretical Biophysics Group) at Humboldt-Universität zu Berlin.
The conceptual basis of the workflow and the mathematical modeling strategy were developed under the supervision of Prof. Dr. Dr. h.c. Edda Klipp. The experimental dataset used for constructing the model was provided by Prof. ret. Dr. Rune Linding and Dr. James Longden.
This repository is licensed under the MIT License. See LICENSE.