flex_search
tit.reporting.generators.flex_search ¶
Flex-search optimization report generator for TI-Toolbox.
This module provides a report generator for electrode placement optimization results from the flex-search algorithm.
FlexSearchReportGenerator ¶
Bases: BaseReportGenerator
Report generator for flex-search optimization results.
Creates comprehensive HTML reports including: - Optimization configuration - Target ROI specification - Search results and rankings - Best solution details - Visualization of optimal electrode placement
Initialize the flex-search report generator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project_dir
|
str | Path
|
Path to the project directory |
required |
subject_id
|
str
|
BIDS subject ID |
required |
session_id
|
str | None
|
Optional session identifier |
None
|
Source code in tit/reporting/generators/flex_search.py
set_configuration ¶
set_configuration(electrode_net: str | None = None, optimization_target: str | None = None, n_candidates: int = 100, selection_method: str = 'best', intensity_ch1: float = 1.0, intensity_ch2: float = 1.0, **kwargs) -> None
Set the optimization configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
electrode_net
|
str | None
|
EEG net used |
None
|
optimization_target
|
str | None
|
Target metric to optimize |
None
|
n_candidates
|
int
|
Number of candidate solutions evaluated |
100
|
selection_method
|
str
|
Method for selecting best solution |
'best'
|
intensity_ch1
|
float
|
Channel 1 intensity |
1.0
|
intensity_ch2
|
float
|
Channel 2 intensity |
1.0
|
**kwargs
|
Additional configuration |
{}
|
Source code in tit/reporting/generators/flex_search.py
set_roi_info ¶
set_roi_info(roi_name: str, roi_type: str = 'mask', coordinates: list[float] | None = None, radius: float | None = None, volume_mm3: float | None = None, n_voxels: int | None = None, **kwargs) -> None
Set the target ROI information.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
roi_name
|
str
|
Name of the target ROI |
required |
roi_type
|
str
|
Type of ROI (mask, sphere, coordinates) |
'mask'
|
coordinates
|
list[float] | None
|
Center coordinates (if applicable) |
None
|
radius
|
float | None
|
Radius in mm (if sphere) |
None
|
volume_mm3
|
float | None
|
ROI volume in mm³ |
None
|
n_voxels
|
int | None
|
Number of voxels in ROI |
None
|
**kwargs
|
Additional ROI info |
{}
|
Source code in tit/reporting/generators/flex_search.py
add_search_result ¶
add_search_result(rank: int, electrode_1a: str, electrode_1b: str, electrode_2a: str, electrode_2b: str, score: float, mean_field_roi: float | None = None, max_field_roi: float | None = None, focality: float | None = None, **metrics) -> None
Add a search result entry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rank
|
int
|
Ranking of this solution |
required |
electrode_1a
|
str
|
First electrode of pair 1 |
required |
electrode_1b
|
str
|
Second electrode of pair 1 |
required |
electrode_2a
|
str
|
First electrode of pair 2 |
required |
electrode_2b
|
str
|
Second electrode of pair 2 |
required |
score
|
float
|
Optimization score |
required |
mean_field_roi
|
float | None
|
Mean field in ROI (V/m) |
None
|
max_field_roi
|
float | None
|
Max field in ROI (V/m) |
None
|
focality
|
float | None
|
Focality metric |
None
|
**metrics
|
Additional metrics |
{}
|
Source code in tit/reporting/generators/flex_search.py
set_best_solution ¶
set_best_solution(electrode_pairs: list[dict[str, str]], score: float, metrics: dict[str, Any], montage_image_base64: str | None = None, field_map_base64: str | None = None, electrode_coordinates: list[list[float]] | None = None, channel_array_indices: list[list[int]] | None = None) -> None
Set the best (selected) solution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
electrode_pairs
|
list[dict[str, str]]
|
List of electrode pair specs |
required |
score
|
float
|
Final optimization score |
required |
metrics
|
dict[str, Any]
|
Solution metrics |
required |
montage_image_base64
|
str | None
|
Base64 montage visualization |
None
|
field_map_base64
|
str | None
|
Base64 field map visualization |
None
|
Source code in tit/reporting/generators/flex_search.py
populate_from_data ¶
Populate the report from a data dictionary.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
dict[str, Any]
|
Dictionary containing all optimization data |
required |
Source code in tit/reporting/generators/flex_search.py
load_from_output_dir ¶
Load optimization data from an output directory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
output_dir
|
str | Path
|
Path to the flex-search output directory |
required |
Source code in tit/reporting/generators/flex_search.py
create_flex_search_report ¶
create_flex_search_report(project_dir: str | Path, subject_id: str, data: dict[str, Any], output_path: str | Path | None = None) -> Path
Convenience function to create a flex-search report.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
project_dir
|
str | Path
|
Path to project directory |
required |
subject_id
|
str
|
BIDS subject ID |
required |
data
|
dict[str, Any]
|
Dictionary containing optimization data |
required |
output_path
|
str | Path | None
|
Optional custom output path |
None
|
Returns:
| Type | Description |
|---|---|
Path
|
Path to the generated report |