Source code for mrsiprep.io.loaders

"""MRSI input loading helpers."""

from __future__ import annotations

from dataclasses import dataclass, field
from pathlib import Path

from mrsiprep.io.bids import BIDSLayout


[docs] @dataclass class MRSIInputs: metabolite_maps: dict[str, Path] = field(default_factory=dict) crlb_maps: dict[str, Path] = field(default_factory=dict) snr_map: Path | None = None linewidth_map: Path | None = None brainmask: Path | None = None water_map: Path | None = None
[docs] def load_mrsi_inputs(layout: BIDSLayout, subject: str, session: str | None, metabolites: list[str]) -> MRSIInputs: out = MRSIInputs() for met in metabolites: signal = layout.mrsi_map(subject, session, "signal", met=met, space="orig") if signal: out.metabolite_maps[met] = signal crlb = layout.mrsi_map(subject, session, "crlb", met=met, space="orig") if crlb: out.crlb_maps[met] = crlb out.snr_map = layout.mrsi_map(subject, session, "snr", space="orig") out.linewidth_map = layout.mrsi_map(subject, session, "fwhm", space="orig") or layout.mrsi_map(subject, session, "linewidth", space="orig") out.brainmask = layout.mrsi_map(subject, session, "brainmask", space="orig") out.water_map = layout.mrsi_map(subject, session, "signal", met="water", space="orig") return out