MATLAB Для цикла / кодирования для сбора и обработки сканирований МРТ, чтобы быть гибким к изменению количества сканирований на пациента - PullRequest
0 голосов
/ 05 апреля 2019

Я прикрепил свой код ниже.По сути, я пытаюсь написать скрипт MATLAB, который анализирует большие наборы сканирований fMRI.У каждого пациента есть 1 структурное МРТ-сканирование и 1-2 функциональных МРТ-сканирования (часть «f» МРТ).Здесь скрипт предназначен для поиска сканов и начала их обработки.Я написал это только для 2 пациентов (1 = 1: 2), но в конечном итоге это будет для> 1000. У меня проблема в том, чтобы позволить мне признать, что у некоторых пациентов есть 1 функциональный скан, а у других 2 (либоХорошо).Мой текущий скрипт работает только если их 2 .... Любая помощь будет принята с благодарностью!Спасибо!(полный код см. ниже) Бен

Я успешно написал код (ниже), который работает, если ВСЕ пациенты имеют по 2 функциональных МРТ-сканирования каждый.Но у некоторых есть только 1, и мой код не подходит для этого (мой вопрос, как я могу сделать его более гибким).

BATCH.filename= '/media/nir/SharedDrive/Ben/BATCHtester1/conn_2.mat';
BATCH.Setup.isnew=1;
BATCH.Setup.nsubjects=2;
for i = 1:2 
    for j = 1:2 
        filename = sprintf('/media/nir/SharedDrive/Ben/BATCHtester1/Sub014%d_Ses1/Sub014%d_Ses1_Scan_0%d_BOLD%d.nii', i, i, j + 1, j)
        BATCH.Setup.functionals{i}{j}= filename;
        clear filename;
    end
end
for i = 1:2
    filename = sprintf('/media/nir/SharedDrive/Ben/BATCHtester1/Sub014%d_Ses1/Sub014%d_Ses1_Scan_01_ANAT1.nii', i, i)
    BATCH.Setup.structurals{i}= filename;
    clear filename;
end
BATCH.Setup.preprocessing.steps={'default_mni'};
BATCH.Setup.preprocessing.fwhm=8;
BATCH.Setup.preprocessing.voxelsize_func=2;
BATCH.Setup.preprocessing.sliceorder=[1:2:47,2:2:47];
BATCH.Setup.RT=3.0;
BATCH.Setup.analyses=[1,2];
BATCH.Setup.voxelmask=1;
BATCH.Setup.voxelresolution=1;
BATCH.Setup.outputfiles=[0,1,0];
BATCH.Setup.roi.names={'LeftVentralStriatum','RightVentralStriatum', 'LeftDorsalPutamen', 'RightDorsalPutamen', 'LeftMedialDorsalThalamus', 'RightMedialDorsalThalamus', 'LeftVentralPutamen', 'RightVentralPutamen', 'LeftDorsalStriatum', 'RightDorsalStriatum'};
conn_batch(BATCH);

Часть кода, о которой я специально спрашиваю:

for i = 1:2 
    for j = 1:2 
        filename = sprintf('/media/nir/SharedDrive/Ben/BATCHtester1/Sub014%d_Ses1/Sub014%d_Ses1_Scan_0%d_BOLD%d.nii', i, i, j + 1, j)
```
This is written for a 2 patients which each have 2 functional MRI scans, but I want to do many more patients (i = 1:100) where many patients have 1 or functional mri's (j = 1 or 2)
Thanks!
...