Deborah.DeborahEstherMiriam.MiriamDependencyManager

Deborah.DeborahEstherMiriam.MiriamDependencyManager.ensure_ensemble_existsFunction
ensure_ensemble_exists(
    toml_path::String, 
    jobid::Union{Nothing, String}=nothing
) -> Nothing

Ensures that all necessary outputs for each ensemble exist by invoking the Deborah.Esther pipeline. For each ensemble listed in the configuration, this function checks or generates data by calling MiriamDependencyManager.run_Esther_from_Miriam.

Arguments

  • toml_path::String : Path to the TOML configuration file.
  • jobid::Union{Nothing, String} : Optional job ID for logging purposes.

Behavior

Returns

  • Nothing : All effects are side-effectual (file generation/logging).
source
Deborah.DeborahEstherMiriam.MiriamDependencyManager.generate_toml_dictMethod
generate_toml_dict(
    location::String,
    ensemble::String,
    TrM1_X::Vector{String},
    TrM1_Y::String,
    TrM1_model::String,
    TrM1_read_column_X::Vector{Int},
    TrM1_read_column_Y::Int,
    TrM1_index_column::Int,
    TrM2_X::Vector{String},
    TrM2_Y::String,
    TrM2_model::String,
    TrM2_read_column_X::Vector{Int},
    TrM2_read_column_Y::Int,
    TrM2_index_column::Int,
    TrM3_X::Vector{String},
    TrM3_Y::String,
    TrM3_model::String,
    TrM3_read_column_X::Vector{Int},
    TrM3_read_column_Y::Int,
    TrM3_index_column::Int,
    TrM4_X::Vector{String},
    TrM4_Y::String,
    TrM4_model::String,
    TrM4_read_column_X::Vector{Int},
    TrM4_read_column_Y::Int,
    TrM4_index_column::Int,
    LBP::Int,
    TRP::Int,
    ns::Int,
    nt::Int,
    nf::Int,
    beta::Float64,
    kappa::Float64,
    ranseed::Int,
    N_bs::Int,
    blk_size::Int,
    method::String,
    bin_size::Int,
    analysis_header::String,
    IDX_shift::Int,
    dump_X::Bool,
    abbreviation::Dict{String,String},
    use_abbreviation::Bool
) -> Dict

Generate a TOML-ready nested dictionary capturing all parameters needed for the Deborah.DeborahCore-Deborah.Esther-Deborah.Miriam pipeline.

Arguments

  • location::String : Root path for outputs.
  • ensemble::String : Ensemble identifier (e.g., "L8T4b1.60k13570").
  • TrMi_X, TrMi_Y, TrMi_model : Input–output specs and model for $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$.
  • TrM*_read_column_X::Vector{Int} : $1$-based value-column indices for each X file.
  • TrM*_read_column_Y::Int : $1$-based value-column index for each Y file.
  • TrM*_index_column::Int : $1$-based column index of configuration IDs.
  • LBP::Int, TRP::Int : Label/training partition identifiers used across the pipeline.
  • ns::Int, nt::Int, nf::Int : Lattice/meta parameters consumed downstream.
  • beta::Float64, kappa::Float64 : Simulation parameters.
  • ranseed::Int, N_bs::Int, blk_size::Int : Bootstrap configuration.
  • method::String : Block-bootstrap scheme to encode in TOML:
    • "nonoverlapping" — Nonoverlapping Block Bootstrap (NBB)
    • "moving" — Moving Block Bootstrap (MBB)
    • "circular" — Circular Block Bootstrap (CBB; wrap-around windows)
  • bin_size::Int : Jackknife bin size.
  • analysis_header::String : Analysis group/prefix (e.g., "analysis").
  • IDX_shift::Int : Index offset/shift propagated to Deborah.DeborahCore.
  • dump_X::Bool : Whether to dump/save input X matrices.
  • abbreviation::Dict{String,String} : Abbreviation map for feature/path encoding.
  • use_abbreviation::Bool : If true, use abbreviation-based names/paths.

Returns

  • Dict : A nested TOML-compatible dictionary including sections/keys for:
    • data/paths (location, ensemble, analysis_header, abbreviation, use_abbreviation),
    • IO columns (read_column_X, read_column_Y, index_column, IDX_shift, dump_X),
    • bootstrap (ranseed, N_bs, blk_size, method),
    • jackknife (bin_size),
    • partitions (LBP, TRP),
    • model & targets (per-$\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ X, Y, model),
    • lattice/meta (ns, nt, nf, beta, kappa).

Notes

  • All column indices are $1$-based.
  • method must be one of the three literal strings above; callers should validate before writing TOML.
source
Deborah.DeborahEstherMiriam.MiriamDependencyManager.run_Esther_from_MiriamFunction
run_Esther_from_Miriam(
    location::String,
    ensemble::String,
    TrM1_X::Vector{String},
    TrM1_Y::String,
    TrM1_model::String,
    TrM1_read_column_X::Vector{Int},
    TrM1_read_column_Y::Int,
    TrM1_index_column::Int,
    TrM2_X::Vector{String},
    TrM2_Y::String,
    TrM2_model::String,
    TrM2_read_column_X::Vector{Int},
    TrM2_read_column_Y::Int,
    TrM2_index_column::Int,
    TrM3_X::Vector{String},
    TrM3_Y::String,
    TrM3_model::String,
    TrM3_read_column_X::Vector{Int},
    TrM3_read_column_Y::Int,
    TrM3_index_column::Int,
    TrM4_X::Vector{String},
    TrM4_Y::String,
    TrM4_model::String,
    TrM4_read_column_X::Vector{Int},
    TrM4_read_column_Y::Int,
    TrM4_index_column::Int,
    LBP::Int,
    TRP::Int,
    ns::Int,
    nt::Int,
    nf::Int,
    beta::Float64,
    kappa::Float64,
    ranseed::Int,
    N_bs::Int,
    blk_size::Int,
    method::String,
    bin_size::Int,
    analysis_header::String,
    IDX_shift::Int,
    dump_X::Bool,
    overall_name::String,
    abbreviation::Dict{String,String},
    use_abbreviation::Bool,
    good_flag::Bool,
    jobid::Union{Nothing, String}=nothing
) -> Nothing

Run the full Deborah.Esther pipeline for a single ensemble, using four $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ inputs (as configured by Deborah.Miriam). Creates/reads required $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$, performs modeling and error estimation, and writes results to disk.

Arguments

  • location::String : Root directory containing ensemble data.
  • ensemble::String : Ensemble identifier (e.g., "L8T4b1.60k13580").
  • TrM*_X::Vector{String} : X-observable names for each $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ input.
  • TrM*_Y::String : Y observable name for each $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ input.
  • TrM*_model::String : Model name used for each $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ input.
  • TrM*_read_column_X::Vector{Int} : $1$-based value-column indices for each X file.
  • TrM*_read_column_Y::Int : $1$-based value-column index for each Y trace file.
  • TrM*_index_column::Int : $1$-based column index of configuration IDs in files.
  • LBP::Int : Labeled set partition/group identifier.
  • TRP::Int : Training set partition/group identifier.
  • ns, nt, nf (::Int) : Lattice meta (spatial size, temporal size, and an integer meta parameter used by downstream transforms).
  • beta::Float64, kappa::Float64 : Simulation parameters.
  • ranseed::Int : Random seed for bootstrap.
  • N_bs::Int : Number of bootstrap replicates.
  • blk_size::Int : Block length for block bootstrap ($\ge 1$).
  • method::String : Block-bootstrap scheme:
    • "nonoverlapping" — Nonoverlapping Block Bootstrap (NBB)
    • "moving" — Moving Block Bootstrap (MBB)
    • "circular" — Circular Block Bootstrap (CBB; wrap-around windows)
  • bin_size::Int : Jackknife bin size.
  • analysis_header::String : Analysis prefix (e.g., "analysis").
  • IDX_shift::Int : Optional index shift applied to real datasets.
  • dump_X::Bool : Whether to save/dump input X matrices.
  • overall_name::String : Directory-safe tag for output labeling.
  • abbreviation::Dict{String,String} : Mapping of variable names to encoded tokens.
  • use_abbreviation::Bool : If true, use abbreviation-based paths/filenames.
  • good_flag::Bool : Caller-provided gate to proceed or skip (e.g., sanity check outcome).
  • jobid::Union{Nothing,String} : Optional job identifier for structured logging.

Behavior

  • Resolves paths (respecting use_abbreviation) and prepares per-$\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ inputs.
  • If required $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$ files are missing, may trigger Deborah.DeborahCore generation with a TOML that includes ranseed, N_bs, blk_size, method, and bin_size.
  • Runs modeling per $\text{Tr} \, M^{-n} \; (n=1,2,3,4)$, assembles outputs, and performs uncertainty estimates via block bootstrap (N_bs, blk_size, method) and jackknife (bin_size).

Returns

  • Nothing — side-effecting orchestration routine.

Notes

  • method must be one of "nonoverlapping", "moving", "circular"; invalid values should be rejected early.
  • All column indices are $1$-based.
  • Downstream components assume consistency between lattice meta (ns, nt, nf) and the loaded traces.
source