Pārlūkot izejas kodu

Updating matlab scripts to rely on path supplied as argument and be robust to 2017a version where read/write matrix is replaced with dlmread/write

NIX Worker 1 gadu atpakaļ
vecāks
revīzija
05aa81223b

+ 1 - 1
matlab/analyze.m

@@ -4,7 +4,7 @@ rng shuffle
 %add nrrd processing capability
 addpath('nrrd_read_write_rensonnet')
 
-path='/home/studen/temp/dynamicSPECT';
+%path='/home/studen/temp/dynamicSPECT';
 [cax,cm]=loadTime(path,patientID);
 
 nclass=str2num(nclass);

+ 1 - 1
matlab/analyzeIVF.m

@@ -4,7 +4,7 @@ rng shuffle
 %add nrrd processing capability
 addpath('nrrd_read_write_rensonnet')
 
-path='/home/studen/temp/dynamicSPECT';
+%path='/home/studen/temp/dynamicSPECT';
 [cax,cm]=loadTime(path,patientID);
 
 nclass=str2num(nclass);

+ 5 - 1
matlab/fitCenters.m

@@ -153,7 +153,11 @@ function [globalPar, cPars] = ...
     %this is the result that will be used by k1 calculator
     code=sprintf('%s_%d_%d',patientID,nclass,realizationId);
     ofile=fullfile(path,patientID,sprintf('%s_fitParFinal.txt',code));
-    writematrix([fmin x qfitmin],ofile,'Delimiter','tab');
+    try
+      writematrix([fmin x qfitmin],ofile,'Delimiter','tab');
+    catch ME
+      dlmwrite(ofile,[fmin x qfitmin],'\t')
+    end
     %ofile=fullfile(path,sprintf('CIFinal_%d_%d.txt',nclass,realizationId));
     %writematrix(fci,ofile,'Delimiter','tab');
     disp(sprintf('Found min at %d',imin)); 

+ 5 - 1
matlab/fitCentersIVF.m

@@ -94,7 +94,11 @@ function [globalPar, cPars] = ...
     %this is the result that will be used by k1 calculator
     code=sprintf('%s_%d_%d_IVF',patientID,nclass,realizationId);
     ofile=fullfile(path,patientID,sprintf('%s_fitParFinal.txt',code));
-    writematrix([chi2 fp qfit],ofile,'Delimiter','tab');
+    try
+         writematrix([chi2 fp qfit],ofile,'Delimiter','tab');
+    catch ME
+         dlmwrite(ofile,[chi2 fp qfit],'\t');
+    end
     %ofile=fullfile(path,sprintf('CIFinal_%d_%d.txt',nclass,realizationId));
     %writematrix(fci,ofile,'Delimiter','tab');
     

+ 5 - 1
matlab/fitCentersPixel.m

@@ -161,7 +161,11 @@ function [globalPar, cPars] = ...
     sigmaCode=strrep(sigmaCode,'.','p');
     code=sprintf('%s_%d_%s_Pixel',patientID,nclass,sigmaCode);
     ofile=fullfile(path,patientID,sprintf('%s_fitParFinal.txt',code));
-    writematrix([fmin x qfitmin],ofile,'Delimiter','tab');
+    try
+      writematrix([fmin x qfitmin],ofile,'Delimiter','tab');
+    catch ME
+      dlmwrite(ofile,[fmin x qfitmin],'\t');
+    end
     %ofile=fullfile(path,sprintf('CIFinal_%d_%d.txt',nclass,realizationId));
     %writematrix(fci,ofile,'Delimiter','tab');
     disp(sprintf('Found min at %d',imin)); 

+ 5 - 1
matlab/fitCentersPixelIVF.m

@@ -97,7 +97,11 @@ function [globalPar, cPars] = ...
     sigmaCode=strrep(sigmaCode,'.','p');
     code=sprintf('%s_%d_%s_PixelIVF',patientID,nclass,sigmaCode);
     ofile=fullfile(path,patientID,sprintf('%s_fitParFinal.txt',code));
-    writematrix([chi2 fp qfit],ofile,'Delimiter','tab');
+    try
+      writematrix([chi2 fp qfit],ofile,'Delimiter','tab');
+    catch ME
+      dlmwrite(ofile,[chi2 fp qfit],'\t');
+    end
     %ofile=fullfile(path,sprintf('CIFinal_%d_%d.txt',nclass,realizationId));
     %writematrix(fci,ofile,'Delimiter','tab');
     

+ 5 - 1
matlab/fitFromClusters.m

@@ -145,7 +145,11 @@ function [globalPar, cPars, xa, U] = ...
         
     end
     ofile=fullfile(path,sprintf('fitParFinal_%d_%d.txt',nclass,realizationId));
-    writematrix([fmin x],ofile,'Delimiter','tab');
+    try 
+      writematrix([fmin x],ofile,'Delimiter','tab');
+    catch ME
+      dlmwrite(ofile,[fmin x],'\t');
+    end
     %ofile=fullfile(path,sprintf('CIFinal_%d_%d.txt',nclass,realizationId));
     %writematrix(fci,ofile,'Delimiter','tab');
     disp(sprintf('Found min at %d',imin)); 

+ 1 - 0
matlab/generateCenters.m

@@ -1,5 +1,6 @@
 rng shuffle
 loadData
+class(nclass)
 nclass=str2num(nclass);
 nRealizations=str2num(nRealizations);
 %sets cax, data, caspline, cm, path

+ 6 - 2
matlab/loadCenters.m

@@ -7,10 +7,14 @@ function centers=loadCenters(path, patientID, nclass,realizationId)
     for i=1:nclass
         code=sprintf('%s_%d_%d_center%d',patientID,nclass,realizationId,i);
         ofile=fullfile(path,patientID,sprintf('%s_center.txt',code));
-        fy=readmatrix(ofile,'Delimiter',',');
+        try
+           fy=readmatrix(ofile,'Delimiter',',');
+        catch ME
+           fy=dlmread(ofile,',')
+        end
         if size(centers,1)==1
             centers=zeros(nclass,size(fy,2));
         end  
         centers(i,:)=fy;
     end
-end
+end

+ 1 - 1
matlab/loadData.m

@@ -2,7 +2,7 @@ addpath('nrrd_read_write_rensonnet')
 
 %patientID='2SMobr';
 
-path='/home/studen/temp/dynamicSPECT';
+%path='/home/studen/temp/dynamicSPECT';
 
 %load ventricle data
 %caFile=[ patientID '_Ventricle.mcsv'];

+ 6 - 1
matlab/loadTime.m

@@ -1,7 +1,12 @@
 function [cax, cm]=loadTime(path,patientID)
     ofile=fullfile(path,patientID,sprintf('%s_Dummy.mcsv',patientID));
     opts = detectImportOptions(ofile,'FileType','text');
-    cma=readmatrix(ofile,opts);
+    try
+      cma=readmatrix(ofile,opts);
+    catch ME
+      cma=dlmread(ofile,',',2,0);
+    end
+
     %convert to seconds->multiply time by 1e-3 and value (integral/t) with 1e3
     cax=cma(:,1)*1e-3;
     %cay=ca(:,2)*1e3;

+ 6 - 2
matlab/readFitParameters.m

@@ -4,7 +4,11 @@ function p=readFitParameters(path,patientID,nclass)
     for realizationId=1:nr
         fname=sprintf('%s_%d_%d_fitParFinal.txt',patientID,nclass,realizationId);
         of=fullfile(path,patientID,fname);
-        fitPar=readmatrix(of,'Delimiter','\t');
+        try
+           fitPar=readmatrix(of,'Delimiter','\t');
+        catch ME
+           fitPar=dlmread(of,'\t') 
+        end 
         ft=[fitPar(3) 1/fitPar(4)];%rise and fall time; due to symmetry, they get confused, and max is always fall time and min is rise
         pf(realizationId,2)=max(ft);
         pf(realizationId,3)=1/min(ft);
@@ -18,4 +22,4 @@ function p=readFitParameters(path,patientID,nclass)
     p=pf;
     %fprintf('%.2f %.2f %.2f\n',median(pf(1,:)), median(pf(2,:)),median(pf(3,:)));
   
-end
+end

+ 6 - 2
matlab/rfp.m

@@ -1,8 +1,12 @@
 function [globalPar, cPars]=rfp(path,patientID,nclass,realizationId)
     code=sprintf('%s_%d_%d_IVF',patientID,nclass,realizationId);
     ofile=fullfile(path,patientID,sprintf('%s_fitParFinal.txt',code));
-    mat=readmatrix(ofile,'Delimiter','\t');
+    try
+      mat=readmatrix(ofile,'Delimiter','\t');
+    catch ME
+      mat=dlmread(ofile,'\t')
+    end
     globalPar=[mat(2:5) 0 0 0];
     qfit=mat(6:end);
     cPars=reshape(qfit,[],nclass)';
-end
+end

+ 7 - 3
matlab/saveCenters.m

@@ -30,12 +30,16 @@ function saveCenters(path, patientID, cax, cm, data, nclass, nRealizations)
         for i=1:nclass
             code=sprintf('%s_%d_%d_center%d',patientID,nclass,j,i);
             ofile=fullfile(path,patientID,sprintf('%s_center.txt',code));
-            writematrix(centers(i,:),ofile,'Delimiter',',');
+            try
+               writematrix(centers(i,:),ofile,'Delimiter',',');
+            catch ME
+               dlmwrite(ofile,centers(i,:),',');
+            end
             u=reshape(U(i,:),dt(1:3));
             headerInfoOut.data=single(u);
             headerInfoOut.content=sprintf('%s_centerWeight',code);
-            nhdr_nrrd_write(fullfile(path,patientID, sprintf('%s_centerWeigth.nrrd',code)),headerInfoOut,1);
+            nhdr_nrrd_write(fullfile(path,patientID, sprintf('%s_centerWeight.nrrd',code)),headerInfoOut,1);
         end
     end
 
-   
+