Skip to content

Latest commit

 

History

History
70 lines (44 loc) · 3.04 KB

File metadata and controls

70 lines (44 loc) · 3.04 KB

Dependency Optimizer

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.

Repository structure

  • 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

Requirements

  • Julia 1.12.x
  • Internet access is helpful on first setup for Pkg.instantiate() to install required packages

Setup

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.

Run

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.jl

If 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.

Notes for reuse

  • 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.jl starts automatically when run directly or from the VS Code run button. To suppress autorun during manual includes, set DEPENDENCYOPTIMIZER_DISABLE_AUTORUN=1.

License

This repository is licensed under the MIT License. See LICENSE.