Skip to content

Eka38b/Information_dynamics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

204 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Information_dynamics

A Python framework for formulating, simulating, and estimating information dynamics on networks.

This repository implements two complementary approaches:

  • an equation-based approach, in which information-theoretic quantities evolve through explicit dynamical equations;
  • a model-based approach, in which those quantities are estimated from data generated by underlying dynamical models.

Repository structure

Information_dynamics/
├── Core/            # Core classes for networks, information-dynamic equations, estimators, and model basics
├── on_Equations/    # Equation-based examples and demonstrations
├── on_Model/        # Model-based simulations and estimation workflows
├── Utils/           # Utility scripts for plotting and postprocessing
├── Data/            # Saved results, figures, and related outputs
└── README.md

Reproducibility (Manuscript)

This repository includes data and scripts used to reproduce results reported in the manuscript.

Models used

  • Model 004: Gene regulatory network (GRN) simulation
  • Model 005: Three-node oscillatory system

How to reproduce main results

1. Run simulation (Model 004)

python -m on_Model.004_ABN_for_GRN.main

2. Plot link dynamics

python -m Utils.plot_results \
    --dir on_Model/004_ABN_for_GRN/Temporal_Results/ \
    --link B4 B5 --paper

3. Plot node dynamics

python -m Utils.plot_results \
    --dir on_Model/004_ABN_for_GRN/Temporal_Results/ \
    --node B1 --paper

Data

  • Results are saved in:

    • on_Model/.../Temporal_Results/
    • Data/ (if exported)
  • Figures used in the manuscript are generated directly from these outputs.

Notes on reproducibility

  • All simulations are deterministic given fixed initial conditions.
  • Random seeds (if used) should be set explicitly in model scripts.
  • The estimator configuration (k, metric, etc.) is defined in Core/Estimators.

Main directories

Core/

The core library of the repository.

It contains:

  • network data structures
  • information-dynamic update rules
  • estimator classes
  • model base classes
  • supporting utilities for simulation and analysis

on_Equations/

Examples in which the information variables themselves evolve according to dynamical equations.

This directory is intended for studying:

  • intrinsic information dynamics
  • the effect of control parameters
  • stationary solutions
  • blocked-flow conditions
  • network-topology dependence

on_Model/

Examples in which raw system trajectories are first generated from explicit models, and the information variables are then estimated from those data.

This directory is intended for studying:

  • model-based information dynamics
  • estimator behavior
  • comparisons between simulated mechanisms and information-theoretic observables

Utils/

Utility scripts for plotting and postprocessing results.

Typical uses include:

  • plotting temporal results
  • generating paper-style figures
  • comparing outputs across runs

Data/

Saved outputs from simulations and analyses.

This may include:

  • temporal results
  • processed data
  • figure source files
  • exported plots

Basic usage

1. Run an equation-based example

From the repository root:

python -m on_Equations.001_A_Single_Cycle.main

or

python -m on_Equations.002_Cycle_and_Source.main

2. Run a model-based example

From the repository root:

python -m on_Model.004_ABN_for_GRN.main

or

python -m on_Model.005_Three_Nodes_GRN.main

Plotting example results

Example commands from the repository root:

python -m Utils.plot_results --dir on_Model/004_ABN_for_GRN/Temporal_Results/ --link B4 B5 --paper
python -m Utils.plot_results --dir on_Model/004_ABN_for_GRN/Temporal_Results/ --node B1 --paper

Adjust the directory and arguments depending on the model and output you want to visualize.

Purpose of the repository

This repository is intended for developing and testing a unified framework for information dynamics on networks.

Its goals include:

  • deriving and studying dynamical equations for information variables
  • comparing equation-based and model-based approaches
  • examining the role of topology, control parameters, and constraints
  • exploring applications to biological and other complex systems

Requirements

Install dependencies with:

pip install -r requirements.txt

Notes

  • Run all commands from the repository root.
  • Some examples save outputs into subdirectories under Data/ or model-specific result folders.
  • The repository is organized so that the Core/ directory provides the shared framework used by both on_Equations/ and on_Model/.

License and data

Please check the repository files for license and data-use details if they are provided separately.