This Julia Script contains the final and comprehensive Versions of the gradient-based and Interior Point dependency optimizers for estimating Alpha/Alpha0 and Beta/Beta0 values for every respective Protein by fitting the Protein Fold Change Values to the measured data from the protein dataset.
The workflow can be run by performing the steps described in sections Setup and Run below or by executing Main_Opt.jl in the IDE.
Additionally, the isolated optimizer scripts can be executed once via console or in the IDE to start the respective optimization process.
For further explanations of the functionality of the Script and the Optimizers, 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 Optimizer Workflow, it is important to note that the Input CSV File needs to be formatted exactly like the current
FC_Kinases.csv Data file, because the Script and especially the normalization logic are tailored to reading the columns and cell contents exactly in the way they are defined in the current input table.
-
Main_Opt.jl: runs both optimizers and creates comparison plots -
Flux_Opt.jl: gradient-based optimization with Flux/Adam -
JuMP_Opt.jl: interior-point optimization with JuMP/Ipopt -
INPUT/FC_Kinases.csv: measured kinase fold-change input table -
OUTPUT/Flux_RESULTS/: Flux optimizer outputs -
OUTPUT/JuMP_RESULTS/: JuMP optimizer outputs -
OUTPUT/COMPARISON/: comparison plots and optimizer logs -
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 DEPENDENCY_OPTIMIZER 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_Opt.jl. It launches both optimizer scripts and then writes the comparison outputs.
Before running, make sure INPUT/FC_Kinases.csv is present.
Run from the DEPENDENCY_OPTIMIZER folder with:
julia --project=. Main_Opt.jlIf you want to run a single optimizer only, you can also execute Flux_Opt.jl or JuMP_Opt.jl directly with the same --project=. setting.
- 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. - Generated result files in
OUTPUT/are ignored by Git via.gitignore. Main_Opt.jlstarts automatically when run directly or from the VS Code run button. To suppress autorun during manual includes, setDEPENDENCYOPTIMIZER_DISABLE_AUTORUN=1.
This repository is licensed under the MIT License. See LICENSE.