• Nenhum resultado encontrado

6. ΣΥΜΠΕΡΑΣΜΑΤΑ

6.2 Συμπεράσματα για τα δεδομένα με ομιλία

Στατιστική ανάλυση σε δεδομένα fMRI: εφαρμογή και ανάλυση της μεθόδου ICA

ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ

Ξενόγλωσση ορολογία Ελληνική ορολογία

action potential δυναμικό δράσης

artifacts ψευδείς/τεχνητές ενδείξεις

block design σχεδιασμός μπλοκ

Blood Oxygen

Level Dependent Εξαρτώμενη από το επίπεδο οξυγόνωσης του αίματος

contrast αντίθεση

coregistration από κοινού καταχώριση

correlation coefficient συντελεστής συσχέτισης

covariance συνδιασπορά

data driven analysis ανάλυση οδηγούμενη από τα δεδομένα

design matrix πίνακας σχεδιασμού

event related design

σχετικός με το γεγονός σχεδιασμός

flip angle γωνία εκτροπής

free induction decay φθορά ελεύθερης επαγωγής

full column rank στήλη πλήρης τάξης

functional Magnetic Resonance Imaging Λειτουργική Απεικόνιση Μαγνητικού Συντονισμού

General Linear Model Γενικό Γραμμικό Μοντέλο

grey matter φαιά ουσία

group analysis ανάλυση για πολλά άτομα

hemodynamic response αιμοδυναμική απόκριση

Hemodynamic Response Function Συνάρτηση Αιμοδυναμικής Απόκρισης Independent Components Analysis Ανάλυση Ανεξάρτητων Συνιστωσών

International Consortium of Brain Mapping Διεθνής Κοινοπραξία Χαρτογράφησης Εγκεφάλου

Least Squares Method Μέθοδος Ελάχιστων Τετραγώνων

longitudinal διαμήκης

Minimum Description Length Μήκος Ελάχιστης Περιγραφής

mixed design σύνθετος σχεδιασμός

Montreal Neurological Institute Νευρολογικό Ινστιτούτο του Μόντρεαλ

multivariate πολυμεταβλητός

normalization κανονικοποίηση

preprocess προεπεξεργασία

Principal Components Analysis Ανάλυση Κύριων Συνιστωσών radiofrequency pulse παλμός ραδιοσυχνότητας

Random Field Theory

Θεωρία Τυχαίων Πεδίων

realignment ευθυγράμμιση

residuals κατάλοιπα

Restricted Maximum Likelihood Περιορισμένη Μέγιστη Πιθανοφάνεια

sample δείγμα

scanner σαρωτής

session συνεδρία

smoothing εξομάλυνση

spatial χωρικός

spatial concatenation χωρική συνένωση

stimulus ερέθισμα

subject άτομο

temporal χρονικός

temporal concatenation χρονική συνένωση

univariate μονομεταβλητός

unmixing/separating matrix πίνακας διαχωρισμού

variance διακύμανση

voxel κυβίδιο

white matter λευκή ουσία

Στατιστική ανάλυση σε δεδομένα fMRI: εφαρμογή και ανάλυση της μεθόδου ICA

ΣΥΝΤΜΗΣΕΙΣ – ΑΡΚΤΙΚΟΛΕΞΑ – ΑΚΡΩΝΥΜΙΑ

ANCOVA Analysis Of Covariance ANOVA Analysis Of Variance FID Free Induction Decay

FWE Family

Wise Error

GIFT Group ICA of fMRI Toolbox GLM General Linear Model

HRF Hemodynamic Response Function ICA Independent Component Analysis

ICBM International Consortium of Brain Mapping MANCOVA Multivariate Analysis Of Covariance

MANOVA Multivariate Analysis Of Variance MDL Minimum Description Length

mm millimeter

MNI Montreal Neurological Institute

ms millisecond

PCA Principal Component Analysis ReML Restricted Maximum Likelihood

RF Radiofrequency

sec second

SPM Statistical Parametrical Mapping

Τ Tesla

ΠΑΡΑΡΤΗΜΑ

Ακολουθούν τα τμήματα κώδικα που υλοποιήθηκαν για την εφαρμογή των 2 μεθόδων ICA. Ο κώδικας είναι υλοποιημένος σε Matlab.

ICA APPLICATION- METHOD 1

% Initial parameters total_subjects = 6;

same_runs=[1 1 10 9 11 7];

total_runs=ones(6,1);

base_folder = '/path/to/the/base/folder';

frames = 121;

vol_size = [53 63 52];

voxels = vol_size(1) * vol_size(2) * vol_size(3);

% Number of componenets for PCA and ICA nPCs = 35;

nICs = 35;

% Seed selection rng(211);

indxs=[];

% ICA for every subject for subject=1:total_subjects

run = same_runs(subject);

fprintf('---%s---

\n',datestr(now));

fprintf('\tRuning for subject #%d, run #%d...\n', subject, run);

path = sprintf('%ssub%03d%sBOLD%stask001_run%03d%s',...

base_folder, subject, filesep, filesep, run, filesep');

cd(path);

input_file = sprintf('%sswbold.nii', path);

% Loading of the initial .nii file nii = load_untouch_nii('swbold.nii');

% Exporting 4d image Y = nii.img;

% Converting to 2D (frames x voxels) init_X = vxVectorize(YC);

% Creating the mask if subject == 1

volume_mean = mean(mean(init_X));

% Using the first scan to create the mask indxs = init_X(1,:) > volume_mean / 3;

end

% New number of voxels, after masking voxels=sum(indxs);

% Applying the mask

X=zeros(121, sum(indxs));

for i = 1:size(init_X, 1)

X(i, :) = init_X(i, indxs);

end

fprintf('\tCreated 2D matrix X[%d, %d].\n', size(X,1), size(X,2));

% Applying ICA

[icasig1, A1, W] = fastica(X, 'verbose', 'on', 'numOfIC', nICs, 'firstEig', 1, 'lastEig', nPCs);

% Saving results for each subject

Στατιστική ανάλυση σε δεδομένα fMRI: εφαρμογή και ανάλυση της μεθόδου ICA A(:, :, subject) = A1;

% Componenets

S(:, :, subject) = icasig1;

% Residuals

R(:,:,subject) = X-A(:,:,subject)*S(:,:,subject);

fprintf('---%s---

\n\n',datestr(now));

end

path = sprintf('%sgroup_ica%s', base_folder, filesep);

cd(path);

clear('A1', 'W', 'nii', 'Y', 'YC', 'X')

ICA APPLICATION - METHOD 2

% Initial parameters total_subjects = 6;

same_runs=[1 1 10 9 11 7];

total_runs=ones(6,1);

base_folder = '/path/to/the/base/folder';

frames = 121;

vol_size = [53 63 52];

% Number of componenets for every step of PCA and ICA nPCs = 50;

nICs = 35;

nPCs2 = 35;

GroupData = [];

newX = [];

Wm = [];

DWm = [];

% Seed selection rng('default');

rng(0781123581);

allMeans = zeros(121,total_subjects);

indxs=[];

X=[];

volume_mean=-1;

% 1st step of reduction per subject for subject=1:total_subjects

run = same_runs(subject);

fprintf('---%s---

\n',datestr(now));

fprintf('\tRuning for subject #%d, run #%d...\n', subject, run);

path = sprintf('%ssub%03d%sBOLD%stask001_run%03d%s',...

base_folder, subject, filesep, filesep, run, filesep');

cd(path);

input_file = sprintf('%sswbold.nii', path);

% Loading of the initial .nii file nii = load_untouch_nii('swbold.nii');

% Exporting 4d image Y = nii.img;

% Converting to 2D (frames x voxels)

init_X = vxVectorize(Y);

fprintf('\tCreated 2D matrix X[%d, %d].\n', size(init_X, 1), size(init_X, 2));

% Creating the mask if subject == 1

volume_mean = mean(mean(init_X));

% Using the first scan to create the mask indxs = init_X(1,:) > volume_mean / 3;

end

% New number of voxels, after masking voxels=sum(indxs);

% Applying the mask

X=zeros(121, sum(indxs));

for i = 1:size(init_X, 1)

X(i, :) = init_X(i, indxs);

end

% Saving the initial X, for the computation of the residuals normX=X;

allX(:,:,subject) = normX;

% Removing mean per row

[normX, allMeans(:,subject)] = remmean(X);

% Applying PCA

[E(:, :, subject), D(:, :, subject)] = pcamat(normX, 1, nPCs, 'off', 'on');

[newX(:, :, subject), Wm(:, :, subject), DWm(:, :, subject)] = whitenv(normX, E(:, :, subject), D(:, :, subject), 'on');

% Concatenating the reduced matrix to a new Group matrix GroupData = vertcat(GroupData, newX(:, :, subject));

end

path = sprintf('%sgroup_ica%s', base_folder, filesep);

cd(path);

fprintf('---%s---\n',datestr(now));

fprintf('Doing ICA in the concatenated matrix\n');

[S_group, Am, W] = fastica(GroupData, 'verbose', 'on', 'numOfIC', nICs, 'firstEig', 1, 'lastEig', nPCs2);

% Reconstructing the resulats after ICA per subject A = zeros(frames, nICs, total_subjects);

S = zeros(nICs, voxels, total_subjects);

R = zeros(frames,voxels,total_subjects);

for subject = 1:total_subjects % Normalizing W

tW = W(:, (1 + (subject - 1) * nPCs):(subject * nPCs));

for i = 1:size(tW, 1)

tW(i, :) = tW(i, :) / norm(tW(i, :));

end

W(:, (1 + (subject - 1) * nPCs):(subject * nPCs)) = tW;

% Reconstructing components

S(:, :, subject) = W(:, (1 + (subject - 1) * nPCs):(subject * nPCs)) * newX(:, :, subject)+ W(:, (1 + (subject - 1) * nPCs):(subject * nPCs))*Wm(:, :, subject)*allMeans(:,subject)*ones(1,voxels);

% Calculating the time courses

A(:, :, subject) =allX(:,:,subject) * pinv(S(:,:,subject));

% Calculating the residuals

R(:,:,subject) = allX(:,:,subject) - A(:,:,subject) * S(:,:,subject);

end

clear('X', 'Y', 'YC', 'nii', 'init_X', 'allX', 'normX', 'E', 'D', ...

Στατιστική ανάλυση σε δεδομένα fMRI: εφαρμογή και ανάλυση της μεθόδου ICA

fprintf('---%s---\n\n',datestr(now));

cd(base_folder);

COMPUTING RESULTS

% Initial Parameters total_subjects = 6;

same_runs = [1 1 10 9 11 7];

total_runs = ones(6,1);

base_folder = '/path/to/the/base/folder';

vol_size = [53 63 52];

path = sprintf('%sgroup_ica%s', base_folder, filesep);

cd(path);

% Loading the data from the ICA application

% load mask_indxs.mat

% load adali1_ica_decomp.mat

% Loading the ideal time course, as produced from the SPM load design_matrix.mat

IC_num = size(A,2);

% Calculate error variance for the standard error, needed for the T-statistic df = size(A,1)-size(A,2);

MRSS = zeros(size(S,2),total_subjects);

pinverA = zeros(size(A,2),size(A,2),total_subjects);

for subject = 1:total_subjects

MRSS(:,subject) = calc_err_var(R(:,:,subject),df);

pinverA(:,:,subject) = pinv(A(:,:,subject)'*A(:,:,subject));

end

n = zeros(size(A, 2), total_subjects);

allsorted=zeros(IC_num, 3, 6);

% For every subject normalizing the time course and the component for subject = 1:total_subjects

temp = zeros(size(S, 1), 2);

[a, ma] = remmean(A(:, :, subject)');

norA(:, :, subject) = a';

for t = 1:size(A, 2)

n(t, subject) = norm(A(:, t, subject));

A(:, t, subject) = A(:, t, subject) / n(t, subject);

S(t, :, subject) = S(t, :, subject) * n(t, subject);

norA(:, t, subject) = norA(:, t, subject) / std(norA(:, t, subject));

end end

% Computing and nomralizing the ideal time course stimulus = sum(des_mat(:, 1:3), 2);

[nst mst] = remmean(stimulus');

nst = nst'/std(nst');

normStim = nst;

contrast_average_best_fit = zeros(1, size(S, 2));

contrast_average_tmap_best_fit = zeros(1, size(S, 2));

X2nd = zeros(total_subjects,size(S,2));

% Starting the comparison for every subject

% Searching the best time course correlated componenets for subject = 1:total_subjects

% Computing correlations of estimated time courses and ideal cors = compare_correlations(norA(:, :, subject), stimulus);

sorted_cors = flipud(sortrows(cors, 1));

allsorted(:, :, subject) = sorted_cors;

% Selecting the best 3 (if the exists) TCs based on the p-value selected_cors = select_cors2(sorted_cors);

n_selected = size(selected_cors, 1);

best_fit = S(selected_cors(1, 2), :, subject);

% for every selected TC computing the tmap and saving for c = 1:n_selected

fit = S(selected_cors(c, 2), :, subject);

% Computing the tmap

cont = zeros(size(A, 2) ,1);

cont(selected_cors(c, 2)) = 1;

fit_tmap = convert_tstat(fit', pinverA(:, :, subject), cont', MRSS(:, subject))';

if c == 1

best_fit_tmap = fit_tmap;

end % Saving

path = sprintf('%sica1_results%ssub%03d', base_folder, filesep, subject);

name = sprintf('best_fit_ica1_sub%03d_comp%d.nii', subject, c);

volumize(fit, vol_size, base_folder, path, name, indxs);

name = sprintf('best_fit_tmap_ica1_sub%03d_comp%d.nii', subject, c);

volumize(fit_tmap, vol_size, base_folder, path, name, indxs);

end

% Adding the top component of each subject for the group results X2nd(subject,:) = best_fit;

contrast_average_best_fit = contrast_average_best_fit + best_fit/std(best_fit);

contrast_average_tmap_best_fit = contrast_average_tmap_best_fit + best_fit_tmap/sqrt(total_subjects);

% Printing the best time courses selected_cors

figure

plot(normStim,'-b','LineWidth',1) hold on

legends = ['1-None '; '2-None '; '3-None '];

line = ['--g'; ':r '; '--k'];

for i=1:3

if i>size(selected_cors,1) continue

end

legends(i,:) = sprintf('%d -p-val = %1.4f', i, selected_cors(i,3));

plot(norA(:,selected_cors(i,2),subject),line(i,:),'LineWidth',1) hold on

end

legend('Ideal',legends(1,:),legends(2,:),legends(3,:));

end

% Computing the group results

Στατιστική ανάλυση σε δεδομένα fMRI: εφαρμογή και ανάλυση της μεθόδου ICA

% Calculate t-map

xx = zeros(total_subjects,1)+1;

pinvX = pinv(xx'*xx);

Res = X2nd-xx*contrast_average_best_fit;

df = total_subjects-1;

mrss = calc_err_var(Res,df);

contrast_average_best_fit_tmap =

convert_tstat(contrast_average_best_fit',pinvX,[1],mrss)';

% Saving the group results

path = sprintf('%sica1_results%sgroup_average', base_folder, filesep);

name = sprintf('average_best_fit_ica1.nii');

volumize(contrast_average_best_fit, vol_size, base_folder, path, name, indxs);

name = sprintf('average_best_fit_tmap_ica1.nii');

volumize(contrast_average_tmap_best_fit, vol_size, base_folder, path, name, indxs);

cd(base_folder);

Documentos relacionados