Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiband Siemens physiologs #268

Open
Ruwanmri opened this issue May 28, 2024 · 1 comment
Open

multiband Siemens physiologs #268

Ruwanmri opened this issue May 28, 2024 · 1 comment
Assignees
Labels
physio Issues related to PhysIO Toolbox

Comments

@Ruwanmri
Copy link

Hi,

I am trying to run the PhysIO toolbox on Siemens multiband fMRI data. Our parameters are TR = 2s, MB = 4, and nslices = 60. My input settings were as follows:

% Scan timing parameters
physio.scan_timing.sqpar.Nslices = 15;
physio.scan_timing.sqpar.TR = 2;
physio.scan_timing.sqpar.Ndummies = 0;
physio.scan_timing.sqpar.Nscans = 540;
physio.scan_timing.sqpar.onset_slice = 8;
physio.scan_timing.sqpar.Nprep = 0;

However, I encountered the following error:

Error using tapas_physio_log
Number of slice event bundles does not match Nscans. Check parameters sqpar.Nscans, Ndummies and Nprep.
(Matlab error: Index exceeds the number of array elements. Index must not exceed 539.)

Error in tapas_physio_get_onsets_from_locs (line 113)
verbose = tapas_physio_log(...

Error in tapas_physio_create_scan_timing (line 122)
tapas_physio_get_onsets_from_locs(...

Error in tapas_physio_main_create_regressors (line 165)
[ons_secs, VOLLOCS, LOCS, verbose] = tapas_physio_create_scan_timing(...

Error in siemens_for_mb (line 88)
physio = tapas_physio_main_create_regressors(physio);

I realized that in the info.log, the indices start from 0 and end at 539, as shown below:

UUID = 319eeb77-e979-4408-8b89-0b531114c1ca
ScanDate = 20230913_153809
LogVersion = EJA_1
LogDataType = ACQUISITION_INFO
NumSlices = 60
NumVolumes = 540
NumEchoes = 1

VOLUME SLICE ACQ_START_TICS ACQ_FINISH_TICS ECHO

 0       0         22520635         22520657     0
 0      15         22520635         22520657     0
 0      30         22520635         22520657     0
 0      45         22520635         22520657     0
 0       2         22520687         22520710     0
 0      17         22520687         22520710     0
 0      32         22520687         22520710     0
 0      47         22520687         22520710     0
 0       4         22520740         22520763     0
 0      19         22520740         22520763     0
 0      34         22520740         22520763     0
 0      49         22520740         22520763     0
 0       6         22520793         22520816     0

.......continues
539 58 22952574 22952596 0
FirstTime = 22515804
LastTime = 22952624

I am wondering how to input this correctly.

Thank you.

Best regards,
Ruwan

@mrikasper
Copy link
Member

Dear Ruwan,

This is a bug in PhysIO I recently also encountered in our own data. It always occurs for the last scan in the logfile. You can just set back the number of slices to 60 and it should run through. Not all slice timings will make sense then (for the scan_timing.sqpar.onset_slice), you will have to use multiples of 4 to match actual acquisition times of the multiband slice bundles. But this is only a small timing error and should not impact the regressor fidelity too much.

I hope that helps, and I am really sorry for the inconvenience created by that bug. We are actively working on a new release to fix it.

All the best,
Lars

@mrikasper mrikasper self-assigned this Jun 11, 2024
@mrikasper mrikasper added the physio Issues related to PhysIO Toolbox label Jun 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
physio Issues related to PhysIO Toolbox
Projects
None yet
Development

No branches or pull requests

2 participants