flowchart LR
FIC[FIC<br/>Balance activity] --> EIB[EIB<br/>Match FC] --> OPT[Gradient<br/>Optimization]
Algorithms
TVBO provides built-in iterative tuning algorithms for balancing excitation-inhibition dynamics before optimization.
Feedback Inhibition Control (FIC)
FIC adjusts inhibitory weights to maintain a target firing rate across brain regions:
tuning_algorithms:
fic:
name: FIC
n_iterations: 200
objective:
type: activity_target
target_value: 3.0
label: "Mean excitatory firing rate"
update_rules:
- target_parameter: J_i
equation: {rhs: "J_i + delta * (mean_S_e - target)"}
parameters:
delta: {value: 0.01}How it works
At each iteration:
- Run a short simulation
- Measure mean excitatory activity per region
- If activity > target → increase inhibition (\(J_i\))
- If activity < target → decrease inhibition (\(J_i\))
Excitation-Inhibition Balance (EIB)
EIB tunes coupling weights to match empirical functional connectivity:
tuning_algorithms:
eib:
name: EIB
depends_on: fic
n_iterations: 2000
objective:
type: fc_target
label: "FC correlation"
observations:
- name: fc
pipeline:
- function: numpy.corrcoefThe depends_on: fic ensures FIC runs first — EIB starts from an already-balanced state.
Algorithm Chaining
A typical pipeline chains algorithms before gradient optimization:
Results Access
result = exp.run("tvboptim")
# FIC results
result.fic.pre_tuning # Simulation before FIC
result.fic.post_tuning # Simulation after FIC
result.fic.history.mean_S_e # Activity per iteration
# EIB results
result.fic_eib.post_tuning
result.fic_eib.post_tuning.observations.fcSee Also
- Model Fitting — gradient optimization after tuning
- EI Tuning tvboptim workflow — complete FIC+EIB example