analyzer
tit.analyzer ¶
TI-Toolbox analyzer — unified field analysis for mesh and voxel spaces.
Analyzer ¶
Analyzer(subject_id: str, simulation: str, space: str = 'mesh', tissue_type: str = 'GM', output_dir: str | None = None)
Unified analyzer for mesh and voxel field data.
Lazily loads the field file on first analysis call. All coordinate transforms and ROI masking are handled internally.
Parameters¶
subject_id:
Subject identifier (without sub- prefix).
simulation:
Simulation (montage) folder name.
space:
"mesh" or "voxel".
output_dir:
Override output directory. If None, derived from PathManager.
Source code in tit/analyzer/analyzer.py
analyze_sphere ¶
analyze_sphere(center: tuple[float, float, float], radius: float, coordinate_space: str = 'subject', visualize: bool = False) -> AnalysisResult
Analyze a spherical ROI.
Parameters¶
center:
(x, y, z) coordinates of the sphere centre.
radius:
Radius in mm.
coordinate_space:
"subject" (default) or "MNI".
visualize:
Generate overlay, histogram and CSV artifacts.
Source code in tit/analyzer/analyzer.py
analyze_cortex ¶
Analyze a cortical atlas region.
Parameters¶
atlas:
Atlas name recognised by SimNIBS (e.g. "DK40", "HCP_MMP1").
region:
Region name within the atlas, or a list of region names whose
masks will be unioned into a single combined ROI.
visualize:
Generate overlay, histogram and CSV artifacts.
Source code in tit/analyzer/analyzer.py
AnalysisResult
dataclass
¶
AnalysisResult(field_name: str, region_name: str, space: str, analysis_type: str, roi_mean: float, roi_max: float, roi_min: float, roi_focality: float, gm_mean: float, gm_max: float, normal_mean: float | None = None, normal_max: float | None = None, normal_focality: float | None = None, percentile_95: float | None = None, percentile_99: float | None = None, percentile_99_9: float | None = None, focality_50_area: float | None = None, focality_75_area: float | None = None, focality_90_area: float | None = None, focality_95_area: float | None = None, n_elements: int = 0, total_area_or_volume: float = 0.0)
Immutable container for ROI analysis statistics.
GroupResult
dataclass
¶
GroupResult(subject_results: dict[str, AnalysisResult], summary_csv_path: Path, comparison_plot_path: Path | None)
Outcome of a multi-subject group analysis.
select_field_file ¶
select_field_file(subject_id: str, simulation: str, space: str, tissue_type: str = 'GM') -> tuple[Path, str]
Return (field_path, field_name) for a given subject/simulation/space.
Detects whether the simulation is TI (2-pair) or mTI (4-pair) by checking for the existence of the mTI mesh directory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
subject_id
|
str
|
Subject identifier (without |
required |
simulation
|
str
|
Simulation (montage) folder name. |
required |
space
|
str
|
|
required |
Returns:
| Type | Description |
|---|---|
tuple[Path, str]
|
Tuple of (resolved field path, SimNIBS field name). |
Raises:
| Type | Description |
|---|---|
FileNotFoundError
|
If the expected field file does not exist. |
ValueError
|
If space is not |
Source code in tit/analyzer/field_selector.py
run_group_analysis ¶
run_group_analysis(subject_ids: list[str], simulation: str, space: str = 'mesh', tissue_type: str = 'GM', analysis_type: str = 'spherical', center: tuple[float, float, float] | None = None, radius: float | None = None, coordinate_space: str = 'subject', atlas: str | None = None, region: str | list[str] | None = None, visualize: bool = False, output_dir: str | Path | None = None) -> GroupResult
Run the same ROI analysis across subject_ids and summarise.
Dispatches to analyze_sphere or analyze_cortex on each subject,
builds a summary CSV (with an AVERAGE row), and generates a 2x2
comparison bar-chart PDF. Returns a :class:GroupResult.