Source code for ecoli.analysis.multivariant.utils

"""
File containing utility functions for multivariant analysis.
"""

from __future__ import annotations

from typing import Any


[docs] def create_variant_label( variant_id: int, per_variant_params: dict[int, Any], ) -> str | list[str]: """Return a human-readable label for a variant. Uses the first key/value pair from the variant's parameter dict when available (e.g. ``fraction_kinetic_target = 0.5``), marks the baseline variant explicitly, and falls back to ``'Variant {id}'`` otherwise. """ params = per_variant_params.get(variant_id, {}) if params == "baseline": return f"Variant {variant_id}: Baseline" if not params: return f"Variant {variant_id}" variant_name = list(params.keys()) if len(variant_name) == 1: return f"Variant {variant_id}: {params.get(variant_name[0])}" else: label = [f"Variant {variant_id}"] for key in variant_name: value = params[key] label.append(f"{key}={value}") return label