Hi all,
I am using Tedana to denoise a multi-echo run (3 echoes) acquired with a 3T Siemens Prisma. I ran tedana in the following format:
tedana -d e1.nii.gz e2.nii.gz e3.nii.gz -e 13.6 30.84 48.08 --tedpca kundu --verbose --debug
However, I received the following output:
INFO tedana:tedana_workflow:454 Using output directory: /Users/erizor1/Gdrive/Documents/grafton_lab/asap/liz_multi_echo/liz_multiecho_sess2/ses2_denoise_loglin
INFO tedana:tedana_workflow:467 Loading input data: [‘liz_multiecho_test_epi_mb_3x3x3_3000TR_multi-echo_20220317145041_14_e1_mcf_brain_st.nii.gz’, ‘liz_multiecho_test_epi_mb_3x3x3_3000TR_multi-echo_20220317145041_14_e2_mcf_brain_st.nii.gz’, ‘liz_multiecho_test_epi_mb_3x3x3_3000TR_multi-echo_20220317145041_14_e3_mcf_brain_st.nii.gz’]
DEBUG tedana:tedana_workflow:479 Resulting data shape: (196608, 3, 1)
INFO tedana:tedana_workflow:536 Using user-defined mask
WARNING utils:make_adaptive_mask:110 1889 voxels in user-defined mask do not have good signal. Removing voxels from mask.
DEBUG tedana:tedana_workflow:567 Retaining 58895/196608 samples for denoising
DEBUG tedana:tedana_workflow:581 Retaining 46021/196608 samples for classification
INFO tedana:tedana_workflow:584 Computing T2* map
/opt/anaconda3/lib/python3.7/site-packages/tedana/decay.py:283: RuntimeWarning: divide by zero encountered in true_divide
t2s = 1.0 / betas[1, :].T
DEBUG decay:fit_decay:404 Setting cap on T2* map at 2525.53424
DEBUG tedana:tedana_workflow:592 Setting cap on T2* map at 0.25798s
INFO combine:make_optcom:242 Optimally combining data with voxel-wise T2* estimates
INFO tedana:tedana_workflow:609 Writing optimally combined data set: /Users/erizor1/Gdrive/Documents/grafton_lab/asap/liz_multi_echo/liz_multiecho_sess2/ses2_denoise_loglin/desc-optcom_bold.nii.gz
INFO pca:tedpca:227 Computing PCA of optimally combined multi-echo data
/opt/anaconda3/lib/python3.7/site-packages/tedana/decomposition/pca.py:230: RuntimeWarning: invalid value encountered in true_divide
data_z = ((data.T - data.T.mean(axis=0)) / data.T.std(axis=0)).T # var normalize ts
Traceback (most recent call last):
File “/opt/anaconda3/bin/tedana”, line 8, in
sys.exit(_main())
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/workflows/tedana.py”, line 905, in _main
tedana_workflow(**kwargs)
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/workflows/tedana.py”, line 626, in tedana_workflow
low_mem=low_mem,
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/decomposition/pca.py”, line 251, in tedpca
ppca.fit(data_z)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/decomposition/_pca.py”, line 359, in fit
self._fit(X)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/decomposition/_pca.py”, line 405, in _fit
ensure_2d=True, copy=self.copy)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/base.py”, line 421, in _validate_data
X = check_array(X, **check_params)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py”, line 63, in inner_f
return f(*args, **kwargs)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py”, line 721, in check_array
allow_nan=force_all_finite == ‘allow-nan’)
File “/opt/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py”, line 106, in _assert_all_finite
msg_dtype if msg_dtype is not None else X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64’).
I am wondering if this has to do with masking, but I also tried the above command with my own mask and it gave the same output. Before trying --tedpca kundu, I tried --tedpca mdl it gave me the following:
INFO pca:tedpca:227 Computing PCA of optimally combined multi-echo data
/opt/anaconda3/lib/python3.7/site-packages/tedana/decomposition/pca.py:230: RuntimeWarning: invalid value encountered in true_divide
data_z = ((data.T - data.T.mean(axis=0)) / data.T.std(axis=0)).T # var normalize ts
/opt/anaconda3/lib/python3.7/site-packages/mapca/utils.py:264: RuntimeWarning: invalid value encountered in double_scalars
retained = (sumUsed / sumAll) * 100
/opt/anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py:3420: RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
/opt/anaconda3/lib/python3.7/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File “/opt/anaconda3/bin/tedana”, line 8, in
sys.exit(_main())
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/workflows/tedana.py”, line 905, in _main
tedana_workflow(**kwargs)
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/workflows/tedana.py”, line 626, in tedana_workflow
low_mem=low_mem,
File “/opt/anaconda3/lib/python3.7/site-packages/tedana/decomposition/pca.py”, line 237, in tedpca
data_img, mask_img, algorithm, normalize=True
File “/opt/anaconda3/lib/python3.7/site-packages/mapca/mapca.py”, line 501, in ma_pca
_ = pca.fit_transform(img, mask)
File “/opt/anaconda3/lib/python3.7/site-packages/mapca/mapca.py”, line 398, in fit_transform
self._fit(img, mask)
File “/opt/anaconda3/lib/python3.7/site-packages/mapca/mapca.py”, line 207, in _fit
sub_iid_sp_median = int(np.round(np.median(sub_iid_sp)))
ValueError: cannot convert float NaN to integer
I am running this on Python 3.7 and tedana v0.0.11. Any help would be appreciated. Thanks!