Image Reconstruction Options
This notebook is a test bed to run and check all implemented image reconstruction methods.
[1]:
# This cells setups the environment when executed in Google Colab.
try:
import google.colab
!curl -s https://raw.githubusercontent.com/ibs-lab/cedalion/dev/scripts/colab_setup.py -o colab_setup.py
# Select branch with --branch "branch name" (default is "dev")
%run colab_setup.py
except ImportError:
pass
Notebook configuration
Decide for an example dataset with a sparse probe or a high-density probe for DOT. The notebook will load example data accordingly.
Also specify, if precomputed results of the photon propagation should be used and if the 3D visualizations should be interactive.
[2]:
DATASET = "fingertappingDOT" # high-density montage
HEAD_MODEL = "colin27"
FORWARD_MODEL = "MCX" # photon monte carlo
PRECOMPUTED_FLUENCE = True
# set this flag to True to enable interactive 3D plots
INTERACTIVE_PLOTS = False
[3]:
import pyvista as pv
if INTERACTIVE_PLOTS:
pv.set_jupyter_backend("server")
else:
pv.set_jupyter_backend("static")
import itertools
import traceback
from pathlib import Path
from tempfile import TemporaryDirectory
import xarray as xr
from IPython.display import Image
import cedalion
import cedalion.dot as dot
import cedalion.sigproc.motion as motion
import cedalion.xrutils as xrutils
from cedalion import units
from cedalion.io.forward_model import load_Adot
from cedalion.sigproc.quality import measurement_variance
from cedalion.vis.anatomy import image_recon_multi_view
from tqdm import tqdm
import pickle
import numpy as np
# fail on unit errors
xrutils.unit_stripping_is_error()
xr.set_options(display_expand_data=False);
[4]:
# helper function to display gifs in rendered notbooks
def display_image(fname : str):
display(Image(data=open(fname,'rb').read(), format='png'))
Working Directory
In this notebook the output of the fluence and sensitivity calculations are stored in a temporary directory. This will be deleted when the notebook ends.
[5]:
#temporary_directory = TemporaryDirectory()
#tmp_dir_path = Path(temporary_directory.name)
temporary_directory = TemporaryDirectory()
tmp_dir_path = Path(temporary_directory.name)
Load a finger-tapping dataset
[6]:
rec = cedalion.data.get_fingertappingDOT()
[7]:
geo3d_meas = rec.geo3d
display(geo3d_meas)
<xarray.DataArray (label: 346, digitized: 3)> Size: 8kB
[mm] -77.82 15.68 23.17 -61.91 21.23 56.49 ... 14.23 -38.28 81.95 -0.678 -37.03
Coordinates:
type (label) object 3kB PointType.SOURCE ... PointType.LANDMARK
* label (label) <U6 8kB 'S1' 'S2' 'S3' 'S4' ... 'FFT10h' 'FT10h' 'FTT10h'
Dimensions without coordinates: digitizedThe measurement list is a pandas.DataFrame that describes which source-detector pairs form channels.
[8]:
meas_list = rec._measurement_lists["amp"]
display(meas_list.head(5))
| sourceIndex | detectorIndex | wavelengthIndex | wavelengthActual | wavelengthEmissionActual | dataType | dataUnit | dataTypeLabel | dataTypeIndex | sourcePower | detectorGain | moduleIndex | sourceModuleIndex | detectorModuleIndex | channel | source | detector | wavelength | chromo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 1 | None | None | 1 | None | raw-DC | 1 | None | None | None | None | None | S1D1 | S1 | D1 | 760.0 | None |
| 1 | 1 | 2 | 1 | None | None | 1 | None | raw-DC | 1 | None | None | None | None | None | S1D2 | S1 | D2 | 760.0 | None |
| 2 | 1 | 4 | 1 | None | None | 1 | None | raw-DC | 1 | None | None | None | None | None | S1D4 | S1 | D4 | 760.0 | None |
| 3 | 1 | 5 | 1 | None | None | 1 | None | raw-DC | 1 | None | None | None | None | None | S1D5 | S1 | D5 | 760.0 | None |
| 4 | 1 | 6 | 1 | None | None | 1 | None | raw-DC | 1 | None | None | None | None | None | S1D6 | S1 | D6 | 760.0 | None |
Event/stimulus information is also stored in a pandas.DataFrame.
[9]:
rec.stim
[9]:
| onset | duration | value | trial_type | |
|---|---|---|---|---|
| 0 | 23.855104 | 10.0 | 1.0 | 1 |
| 1 | 54.132736 | 10.0 | 1.0 | 1 |
| 2 | 84.410368 | 10.0 | 1.0 | 1 |
| 3 | 114.688000 | 10.0 | 1.0 | 1 |
| 4 | 146.112512 | 10.0 | 1.0 | 1 |
| ... | ... | ... | ... | ... |
| 125 | 1431.535616 | 10.0 | 1.0 | 5 |
| 126 | 1526.038528 | 10.0 | 1.0 | 5 |
| 127 | 1650.819072 | 10.0 | 1.0 | 5 |
| 128 | 1805.418496 | 10.0 | 1.0 | 5 |
| 129 | 1931.116544 | 10.0 | 1.0 | 5 |
130 rows × 4 columns
For clarity, events are given more descriptive names:
[10]:
rec.stim.cd.rename_events(
{
"1": "Control",
"2": "FTapping/Left",
"3": "FTapping/Right",
"4": "BallSqueezing/Left",
"5": "BallSqueezing/Right",
}
)
# count number of trials per trial_type
display(
rec.stim.groupby("trial_type")[["onset"]]
.count()
.rename({"onset": "#trials"}, axis=1)
)
| #trials | |
|---|---|
| trial_type | |
| BallSqueezing/Left | 17 |
| BallSqueezing/Right | 16 |
| Control | 65 |
| FTapping/Left | 16 |
| FTapping/Right | 16 |
Preprocessing
Perform motion correction, conversion to optical density and bandpass filtering.
[11]:
rec["od"] = cedalion.nirs.cw.int2od(rec["amp"])
rec["od_tddr"] = motion.tddr(rec["od"])
rec["od_wavelet"] = motion.wavelet(rec["od_tddr"])
# bandpass filter the data
rec["od_freqfiltered"] = rec["od_wavelet"].cd.freq_filter(
fmin=0.01, fmax=0.5, butter_order=4
)
Calculate block averages in optical density
[12]:
# segment data into epochs
epochs = rec["od_freqfiltered"].cd.to_epochs(
rec.stim, # stimulus dataframe
["FTapping/Left", "FTapping/Right"], # select fingertapping events, discard others
before=5 * units.s, # seconds before stimulus
after=30 * units.s, # seconds after stimulus
)
# calculate baseline
baseline = epochs.sel(reltime=(epochs.reltime < 0)).mean("reltime")
# subtract baseline
epochs_blcorrected = epochs - baseline
# group trials by trial_type. For each group individually average the epoch dimension
blockaverage = epochs_blcorrected.groupby("trial_type").mean("epoch")
The TwoSurfaceHeadModel
Use the get_standard_headmodel function to construct a TSHM
[13]:
head = dot.get_standard_headmodel(HEAD_MODEL)
[14]:
head
[14]:
TwoSurfaceHeadModel(
crs: ijk
tissue_types: csf, gm, scalp, skull, wm
brain faces: 49992 vertices: 25000 units: dimensionless
scalp faces: 20096 vertices: 10050 units: dimensionless
landmarks: 73
)
[15]:
head.landmarks
[15]:
<xarray.DataArray (label: 73, ijk: 3)> Size: 2kB
[] 90.0 7.435 48.92 3.924 106.0 24.01 ... 127.4 25.63 109.0 139.8 26.66 93.47
Coordinates:
* label (label) <U3 876B 'Iz' 'LPA' 'RPA' 'Nz' ... 'PO1' 'PO2' 'PO4' 'PO6'
type (label) object 584B PointType.LANDMARK ... PointType.LANDMARK
Dimensions without coordinates: ijkChanging between coordinate systems:
[16]:
head_ras = head.apply_transform(head.t_ijk2ras)
head_ras
[16]:
TwoSurfaceHeadModel(
crs: mni
tissue_types: csf, gm, scalp, skull, wm
brain faces: 49992 vertices: 25000 units: millimeter
scalp faces: 20096 vertices: 10050 units: millimeter
landmarks: 73
)
Optode Registration
The optode coordinates from the recording must be aligned with the scalp surface. Currently, cedaĺion offers a simple registration method, which finds an affine transformation (scaling, rotating, translating) that matches the landmark positions of the head model and their digitized counter parts. Afterwards, optodes are snapped to the nearest vertex on the scalp.
[17]:
geo3d_snapped_ijk = head.align_and_snap_to_scalp(geo3d_meas)
display(geo3d_snapped_ijk)
<xarray.DataArray (label: 346, ijk: 3)> Size: 8kB
[] 15.1 140.9 100.2 30.75 144.6 130.6 ... 172.5 137.6 42.28 172.7 126.0 43.07
Coordinates:
type (label) object 3kB PointType.SOURCE ... PointType.LANDMARK
* label (label) <U6 8kB 'S1' 'S2' 'S3' 'S4' ... 'FFT10h' 'FT10h' 'FTT10h'
Dimensions without coordinates: ijkLight propagation in tissue
construct forward model
load Adot via
cedalion.datalogic for running MCX/Nirfaster is kept in the notebook to facilitate adaption to other heads
[18]:
fwm = dot.ForwardModel(head, geo3d_snapped_ijk, meas_list)
[19]:
if PRECOMPUTED_FLUENCE:
if FORWARD_MODEL == "MCX":
fluence_fname = cedalion.data.get_precomputed_fluence(DATASET, HEAD_MODEL)
elif FORWARD_MODEL == "NIRFASTER":
raise NotImplementedError(
"Currently there are no precomputed NIRFASTER results available"
)
else:
fluence_fname = tmp_dir_path / "fluence.h5"
if FORWARD_MODEL == "MCX":
fwm.compute_fluence_mcx(fluence_fname)
elif FORWARD_MODEL == "NIRFASTER":
fwm.compute_fluence_nirfaster(fluence_fname)
Calculate the sensitivity matrices
The forward model’s function compute_sensitivity calculates the sensitivity matrix from the fluence file and saves the result in a new file.
[20]:
if PRECOMPUTED_FLUENCE:
Adot = cedalion.data.get_precomputed_sensitivity(DATASET, HEAD_MODEL)
else:
sensitivity_fname = tmp_dir_path / "sensitivity.h5"
fwm.compute_sensitivity(fluence_fname, sensitivity_fname)
Adot = load_Adot(sensitivity_fname)
The sensitivity matrix describes how an absorption change at a given surface vertex changes the optical density in a given channel and wavelength.
The coordinate is_brain holds a mask to distinguish brain and scalp voxels.
[21]:
# load and display sensitivity matrix
display(Adot)
<xarray.DataArray (channel: 100, vertex: 35050, wavelength: 2)> Size: 28MB
3.656e-17 3.656e-17 1.758e-18 1.758e-18 ... 8.413e-17 2.986e-15 2.986e-15
Coordinates:
parcel (vertex) object 280kB 'VisCent_ExStr_8_LH' ... 'scalp'
is_brain (vertex) bool 35kB True True True True ... False False False
* channel (channel) object 800B 'S1D1' 'S1D2' 'S1D4' ... 'S14D31' 'S14D32'
source (channel) object 800B 'S1' 'S1' 'S1' 'S1' ... 'S14' 'S14' 'S14'
detector (channel) object 800B 'D1' 'D2' 'D4' 'D5' ... 'D29' 'D31' 'D32'
* wavelength (wavelength) float64 16B 760.0 850.0
Dimensions without coordinates: vertex
Attributes:
units: mmReconstruct the Image
Gaussian Spatial Basis Functions
After constructing the SBFs once, the prepared GaussianSpatialBasisFunctions object can be stored in an hdf5 file. If the file already exists, load it.
[22]:
# previous SFB implementation. uncomment for testing
#fname = tmp_dir_path / "sbf.h5"
#
#if fname.exists():
# sbf = dot.OriginalGaussianSpatialBasisFunctions.from_file(fname)
#else:
# sbf = dot.OriginalGaussianSpatialBasisFunctions(
# head_ras,
# Adot,
# mask_threshold=-2,
# threshold_brain=1 * units.mm,
# threshold_scalp=5 * units.mm,
# sigma_brain=1 * units.mm,
# sigma_scalp=5 * units.mm,
# )
# sbf.to_file(fname)
# explicit parameters
sbf = dot.GaussianSpatialBasisFunctions(
head_ras,
Adot,
mask_threshold=-2,
threshold_brain=1 * units.mm,
threshold_scalp=5 * units.mm,
sigma_brain=1 * units.mm,
sigma_scalp=5 * units.mm,
)
# alternatively: using predefined parameter sets
sbf = dot.GaussianSpatialBasisFunctions(head_ras, Adot, **dot.SBF_GAUSSIANS_DENSE)
100%|██████████| 4161/4161 [00:00<00:00, 5184.21it/s]
100%|██████████| 1973/1973 [00:00<00:00, 25185.61it/s]
100%|██████████| 3952/3952 [00:05<00:00, 674.19it/s]
100%|██████████| 576/576 [00:00<00:00, 1583.08it/s]
100%|██████████| 4161/4161 [00:00<00:00, 5192.90it/s]
100%|██████████| 1973/1973 [00:00<00:00, 26152.51it/s]
100%|██████████| 3952/3952 [00:06<00:00, 599.34it/s]
100%|██████████| 576/576 [00:00<00:00, 1598.95it/s]
Test default parameter sets
[23]:
c_meas = measurement_variance(rec["od"].pint.dequantify(), calc_covariance=False)
recon = dot.ImageRecon(
Adot,
recon_mode="mua2conc",
spatial_basis_functions=sbf,
**dot.REG_TIKHONOV_ONLY,
)
recon_result = recon.reconstruct(blockaverage, c_meas)
recon.get_image_noise_posterior()
recon = dot.ImageRecon(
Adot,
recon_mode="mua2conc",
spatial_basis_functions=sbf,
**dot.REG_PAPER_MUA_SBF
)
recon_result = recon.reconstruct(blockaverage, c_meas)
Create combinations of ImageRecon parameters
[24]:
timeseries = [
# ('channel', 'wavelength', 'time')
blockaverage.isel(reltime=[40], trial_type=0).rename({"reltime" : "time"}),
# ('channel', 'wavelength')
blockaverage.isel(reltime=40, trial_type=0),
# ('trial_type', 'channel', 'wavelength', 'reltime')
blockaverage.isel(reltime=[40], trial_type=[0]),
]
c_meas = measurement_variance(rec["od"].pint.dequantify(), calc_covariance=False)
c_meas_with_time = xr.concat([c_meas, c_meas, c_meas], dim="time").assign_coords(
{"time": [0.0, 1.0, 2.0], "sample": ("time", [0, 1, 2])}
)
sbfs = [sbf, None]
recon_modes = ["mua", "conc", "mua2conc"]
brainonly_modes = [False, True]
alpha_meas_params = [0.01]
alpha_spatial_params = [None, 0.01]
c_meas_params = [None, c_meas, c_meas_with_time]
lambda_R_conc_params = [None, 1e-6]
combinations = list(
itertools.product(
timeseries,
sbfs,
recon_modes,
brainonly_modes,
alpha_meas_params,
alpha_spatial_params,
c_meas_params,
lambda_R_conc_params,
)
)
print(f"generated {len(combinations)} combinations")
generated 432 combinations
[25]:
def describe_combination(i):
ts, sbf_, recon_mode, brainonly_mode, alpha_meas, alpha_spatial, c_meas_, lambda_R_conc = combinations[i]
print(
f"{i}/{len(combinations)}: {' x '.join(ts.dims)} sbf_={sbf_ is not None} "
f"{recon_mode=} {brainonly_mode=} {alpha_meas=} {alpha_spatial=} "
f"c_meas_={c_meas_ is not None}"
)
def run_comb(i, catch, silent=False):
ts, sbf_, recon_mode, brainonly_mode, alpha_meas, alpha_spatial, c_meas_, lambda_R_conc = combinations[i]
def msg(m):
if not silent:
print(m)
msg(
f"{i}/{len(combinations)}: {' x '.join(ts.dims)} sbf_={sbf_ is not None} "
f"{recon_mode=} {brainonly_mode=} {alpha_meas=} {alpha_spatial=} "
f"c_meas_={c_meas_ is not None}"
)
# construct ImageRecon object
recon = dot.ImageRecon(
Adot,
recon_mode=recon_mode,
brain_only=brainonly_mode,
alpha_meas=alpha_meas,
alpha_spatial=alpha_spatial,
apply_c_meas=(c_meas_ is not None),
spatial_basis_functions=sbf_,
lambda_R_conc=lambda_R_conc,
)
recon_result = None
noise = None
if catch:
# run reconstruction, catch any exception
try:
recon_result = recon.reconstruct(ts, c_meas=c_meas_)
if c_meas_ is not None:
noise = recon.get_image_noise(c_meas_)
msg(f"recon_result dims:{recon_result.dims} shape: {recon_result.shape}")
except Exception:
msg("Error")
msg(traceback.format_exc())
return None
else:
msg("OK")
else:
# run reconstruction, don't catch any exception. jump into debugger
recon_result = recon.reconstruct(ts, c_meas=c_meas_)
if c_meas_ is not None:
noise = recon.get_image_noise(c_meas_)
msg(f"recon_result dims:{recon_result.dims} shape: {recon_result.shape}")
return (recon_result, noise)
Run a single combination of recon settings. Entry point for debugging
[ ]:
Run all combinations. Catch and count combinations that throw errors.
[26]:
def load_previous(comb):
result_path: Path = tmp_dir_path / f"run_com_{comb:06d}.pickle"
with open(result_path, "rb") as fin:
return pickle.load(fin)
def cmp(a, b):
if (a is None) and (b is None):
return True
if (a is not None) and (b is not None) and (np.abs(a - b).pint.dequantify() < 1e-4).all():
return True
else:
return False
[27]:
error_free = 0
img_unchanged = 0
noise_unchanged = 0
errors = []
differences = []
for i in (pbar := tqdm(range(len(combinations)))):
result_path: Path = tmp_dir_path / f"run_com_{i:06d}.pickle"
if (result := run_comb(i, catch=True, silent=True)) is not None:
error_free += 1
if result_path.exists():
with open(result_path, "rb") as fin:
previous_img, previous_noise = pickle.load(fin)
if cmp(result[0], previous_img):
img_unchanged += 1
else:
differences.append(i)
if cmp(result[1], previous_noise):
noise_unchanged += 1
else:
differences.append(i)
else:
with open(result_path, "wb") as fout:
pickle.dump(result, fout)
else:
errors.append(i)
pbar.set_description(f"OK={error_free}/{i + 1} IUC={img_unchanged} NUC={noise_unchanged}")
# print(80*"-")
print("=" * 80)
print(f"OK={error_free} / {len(combinations)}")
print("=" * 80)
OK=378/432 IUC=0 NUC=0: 100%|██████████| 432/432 [02:55<00:00, 2.46it/s]
================================================================================
OK=378 / 432
================================================================================
[28]:
sorted(set(differences))
[28]:
[]
[29]:
for i in differences:
describe_combination(i)
for i in [j for j in np.arange(len(combinations)) if j not in differences]:
describe_combination(i)
0/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
1/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
2/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
3/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
4/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
5/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
6/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
7/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
8/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
9/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
10/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
11/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
12/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
13/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
14/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
15/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
16/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
17/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
18/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
19/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
20/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
21/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
22/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
23/432: channel x wavelength x time sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
24/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
25/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
26/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
27/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
28/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
29/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
30/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
31/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
32/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
33/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
34/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
35/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
36/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
37/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
38/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
39/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
40/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
41/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
42/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
43/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
44/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
45/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
46/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
47/432: channel x wavelength x time sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
48/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
49/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
50/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
51/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
52/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
53/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
54/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
55/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
56/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
57/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
58/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
59/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
60/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
61/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
62/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
63/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
64/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
65/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
66/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
67/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
68/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
69/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
70/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
71/432: channel x wavelength x time sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
72/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
73/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
74/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
75/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
76/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
77/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
78/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
79/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
80/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
81/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
82/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
83/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
84/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
85/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
86/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
87/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
88/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
89/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
90/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
91/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
92/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
93/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
94/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
95/432: channel x wavelength x time sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
96/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
97/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
98/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
99/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
100/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
101/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
102/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
103/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
104/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
105/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
106/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
107/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
108/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
109/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
110/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
111/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
112/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
113/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
114/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
115/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
116/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
117/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
118/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
119/432: channel x wavelength x time sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
120/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
121/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
122/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
123/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
124/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
125/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
126/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
127/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
128/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
129/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
130/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
131/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
132/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
133/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
134/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
135/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
136/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
137/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
138/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
139/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
140/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
141/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
142/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
143/432: channel x wavelength x time sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
144/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
145/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
146/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
147/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
148/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
149/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
150/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
151/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
152/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
153/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
154/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
155/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
156/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
157/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
158/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
159/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
160/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
161/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
162/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
163/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
164/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
165/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
166/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
167/432: channel x wavelength sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
168/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
169/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
170/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
171/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
172/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
173/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
174/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
175/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
176/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
177/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
178/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
179/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
180/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
181/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
182/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
183/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
184/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
185/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
186/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
187/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
188/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
189/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
190/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
191/432: channel x wavelength sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
192/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
193/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
194/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
195/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
196/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
197/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
198/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
199/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
200/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
201/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
202/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
203/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
204/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
205/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
206/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
207/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
208/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
209/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
210/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
211/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
212/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
213/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
214/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
215/432: channel x wavelength sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
216/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
217/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
218/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
219/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
220/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
221/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
222/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
223/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
224/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
225/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
226/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
227/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
228/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
229/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
230/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
231/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
232/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
233/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
234/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
235/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
236/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
237/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
238/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
239/432: channel x wavelength sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
240/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
241/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
242/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
243/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
244/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
245/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
246/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
247/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
248/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
249/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
250/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
251/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
252/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
253/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
254/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
255/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
256/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
257/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
258/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
259/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
260/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
261/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
262/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
263/432: channel x wavelength sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
264/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
265/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
266/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
267/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
268/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
269/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
270/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
271/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
272/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
273/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
274/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
275/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
276/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
277/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
278/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
279/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
280/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
281/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
282/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
283/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
284/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
285/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
286/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
287/432: channel x wavelength sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
288/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
289/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
290/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
291/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
292/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
293/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
294/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
295/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
296/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
297/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
298/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
299/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
300/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
301/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
302/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
303/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
304/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
305/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
306/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
307/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
308/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
309/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
310/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
311/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
312/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
313/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
314/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
315/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
316/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
317/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
318/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
319/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
320/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
321/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
322/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
323/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
324/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
325/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
326/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
327/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
328/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
329/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
330/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
331/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
332/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
333/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
334/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
335/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
336/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
337/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
338/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
339/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
340/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
341/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
342/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
343/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
344/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
345/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
346/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
347/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
348/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
349/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
350/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
351/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
352/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
353/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
354/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
355/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
356/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
357/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
358/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
359/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
360/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
361/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
362/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
363/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
364/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
365/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
366/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
367/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
368/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
369/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
370/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
371/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
372/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
373/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
374/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
375/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
376/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
377/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
378/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
379/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
380/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
381/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
382/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
383/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
384/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
385/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
386/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
387/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
388/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
389/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
390/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
391/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
392/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
393/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
394/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
395/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
396/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
397/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
398/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
399/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
400/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
401/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
402/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
403/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
404/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
405/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
406/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
407/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
408/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
409/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
410/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
411/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
412/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
413/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
414/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
415/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
416/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
417/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
418/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
419/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
420/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
421/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=False
422/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
423/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
424/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
425/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=None c_meas_=True
426/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
427/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
428/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
429/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
430/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
431/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='mua2conc' brainonly_mode=True alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
Inspect Reconstruction results
[30]:
plot_combinations = [
i
for i, (
ts,
sbf_,
recon_mode,
brainonly_mode,
alpha_meas,
alpha_spatial,
c_meas_,
lambda_R_conc
) in enumerate(combinations)
if (recon_mode == "conc")
and (brainonly_mode == False)
and (ts.dims == ("trial_type", "channel", "wavelength", "reltime"))
]
display(plot_combinations)
[312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395]
[31]:
for i_comb in plot_combinations:
recon_result, _ = run_comb(i_comb, catch=False)
#display(recon_result)
# reduce recon_result to vertex x chromo
X_ts = recon_result.sel(vertex=recon_result.is_brain).isel(trial_type=0, reltime=0)
image_recon_multi_view(
X_ts, # time series data; can be 2D (static) or 3D (dynamic)
head,
cmap="seismic",
#clim=(-1e-6, 1e-6),
view_type="hbr_brain",
title_str="HbO / uM",
# filename=filename_multiview,
SAVE=False,
# time_range=(-5,30,0.5)*units.s,
# fps=6,
geo3d_plot=None, # geo3d_plot
wdw_size=(1024, 768),
)
312/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
313/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
314/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
315/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
316/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
317/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
318/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
319/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
320/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
321/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
322/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
323/432: trial_type x channel x wavelength x reltime sbf_=True recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
384/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
385/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
386/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
387/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
388/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
389/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=None c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
390/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
391/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=False
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
392/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
393/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
394/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
395/432: trial_type x channel x wavelength x reltime sbf_=False recon_mode='conc' brainonly_mode=False alpha_meas=0.01 alpha_spatial=0.01 c_meas_=True
recon_result dims:('trial_type', 'reltime', 'chromo', 'vertex') shape: (1, 1, 2, 35050)
References
[32]:
cedalion.bib.dump_to_notebook()
Methods used
| [1] | Tucker2022 | cedalion.io.snirf.read_snirf | Stephen Tucker, Jay Dubb, Sreekanth Kura, Alexander von Lühmann, Robert Franke, Jörn M. Horschig, Samuel Powell, Robert Oostenveld, Michael Lührs, Édouard Delaire, Zahra M. Aghajan, Hanseok Yun, Meryem A. Yücel, Qianqian Fang, Theodore J. Huppert, Blaise deB. Frederick, Luca Pollonini, David A. Boas, and Robert Luke. Introduction to the shared near infrared spectroscopy format. Neurophotonics, 10(1):013507, 2022. doi:10.1117/1.NPh.10.1.013507. |
| [2] | Delpy1988 | cedalion.nirs.cw.int2od | D. T. Delpy, M. Cope, P. van der Zee, S. Arridge, S. Wray, and J. Wyatt. Estimation of optical pathlength through tissue from direct time of flight measurement. Physics in Medicine and Biology, 33(12):1433–1442, 1988. doi:10.1088/0031-9155/33/12/008. |
| [3] | Villringer1997 | cedalion.nirs.cw.int2od | Arno Villringer and Britton Chance. Non-invasive optical spectroscopy and imaging of human brain function. Trends in Neurosciences, 20(10):435–442, 1997. doi:10.1016/S0166-2236(97)01132-6. |
| [4] | Fishburn2019 | cedalion.sigproc.motion.tddr | Frank A. Fishburn, Ruth S. Ludlum, Chandan J. Vaidya, and Andrei V. Medvedev. Temporal derivative distribution repair (tddr): a motion correction method for fnirs. NeuroImage, 184:171–179, 2019. doi:https://doi.org/10.1016/j.neuroimage.2018.09.025. |
| [5] | Fishburn2018 | cedalion.sigproc.motion.tddr | Frank Fishburn. Tddr. 2018. URL: https://github.com/frankfishburn/TDDR/. |
| [6] | Molavi2012 | cedalion.sigproc.motion.wavelet | Behnam Molavi and Guy A Dumont. Wavelet-based motion artifact removal for functional near-infrared spectroscopy. Physiological Measurement, 33(2):259, 2012. doi:10.1088/0967-3334/33/2/259. |
| [7] | Huppert2009 | cedalion.sigproc.motion.wavelet | Theodore J. Huppert, Solomon G. Diamond, Maria A. Franceschini, and David A. Boas. Homer: a review of time-series analysis methods for near-infrared spectroscopy of the brain. Appl. Opt., 48(10):D280–D298, Apr 2009. doi:https://doi.org/10.1364/AO.48.00D280. |
| [8] | Holmes1998 | cedalion.data.get_colin27_headmodel_files | Colin J. Holmes, Rick Hoge, Louis Collins, Roger Woods, Arthur W. Toga, and Alan C. Evans. Enhancement of mr images using registration for signal averaging. Journal of Computer Assisted Tomography, 22(2):324–333, March 1998. doi:10.1097/00004728-199803000-00032. |
| [9] | Fischl2012 | cedalion.data.get_colin27_headmodel_files | Bruce Fischl. FreeSurfer. NeuroImage, 62(2):774–781, 2012. doi:10.1016/j.neuroimage.2012.01.021. |
| [10] | Schaefer2018 | cedalion.data.get_colin27_headmodel_files | Alexander Schaefer, Ru Kong, Evan M Gordon, Timothy O Laumann, Xi-Nian Zuo, Avram J Holmes, Simon B Eickhoff, and BT Thomas Yeo. Local-global parcellation of the human cerebral cortex from intrinsic functional connectivity mri. Cerebral cortex, 28(9):3095–3114, 2018. doi:10.1093/cercor/bhx179. |
| [11] | Fang2009 | cedalion.data.get_precomputed_fluence, cedalion.data.get_precomputed_sensitivity | Qianqian Fang and David A Boas. Monte carlo simulation of photon migration in 3d turbid media accelerated by graphics processing units. Optics express, 17(22):20178–20190, 2009. doi:10.1364/OE.17.020178. |
| [12] | Yu2018 | cedalion.data.get_precomputed_fluence, cedalion.data.get_precomputed_sensitivity | Leiming Yu, Fanny Nina-Paravecino, David Kaeli, and Qianqian Fang. Scalable and massively parallel monte carlo photon transport simulations for heterogeneous computing platforms. Journal of biomedical optics, 23(1):010504–010504, 2018. doi:10.1117/1.JBO.23.1.010504. |
| [13] | Yan2020 | cedalion.data.get_precomputed_fluence, cedalion.data.get_precomputed_sensitivity | Shijie Yan and Qianqian Fang. Hybrid mesh and voxel based monte carlo algorithm for accurate and efficient photon transport modeling in complex bio-tissues. Biomedical Optics Express, 11(11):6262–6270, 2020. doi:10.1364/BOE.409468. |
| [14] | Carlton2026 | cedalion.dot.image_recon.GaussianSpatialBasisFunctions.__init__, cedalion.dot.image_recon.ImageRecon.__init__ | Laura B. Carlton, Miray Altınkaynak, Shannon Kelley, Bernhard B. Zimmermann, Sreekanth Kura, Eike Middell, Alexander von Lühmann, Emily P. Stephen, Meryem A. Yücel, and David A. Boas. Surface-based image reconstruction optimization for high-density functional near-infrared spectroscopy. Neurophotonics, 13(2):025001, 2026. doi:10.1117/1.NPh.13.2.025001. |
| [15] | Markow2025 | cedalion.dot.image_recon.ImageRecon.__init__ | Zachary E. Markow, Jason W. Trobaugh, Edward J. Richter, Kalyan Tripathy, Sean M. Rafferty, Alexandra M. Svoboda, Mariel L. Schroeder, Tracy M. Burns-Yocum, Karla M. Bergonzi, Mark A. Chevillet, Emily M. Mugler, Adam T. Eggebrecht, and Joseph P. Culver. Ultra high density imaging arrays in diffuse optical tomography for human brain mapping improve image quality and decoding performance. Scientific Reports, 15(1):3175, January 2025. doi:10.1038/s41598-025-85858-7. |
| [16] | Prahl1998 | cedalion.nirs.common.get_extinction_coefficients | Scott A. Prahl. Optical absorption of hemoglobin. Oregon Medical Laser Center, online resource, 1998. URL: https://omlc.org/spectra/hemoglobin/. |