% --------------------------------- analyzeCollagen.m ------------------------------------%
%% initialization
ch_folder = {'S12-19756C8','S12-25601A6','S13-6151A4','S13-10481C8','S13-29859A9','S13-29883A8','S13-33982B4','S13-36836C5','S14-7163A3','S14-9425B4','S14-17795B2'};
on_folder = {'S12-20431B4','S12-28537A2','S12-38438B6','S13-10677A5','S13-12911A2','S13-19695B2','S13-19695B3','S13-37948A2','S14-12554B2','S14-19568A3','S14-20995C4'};
mix_folder = {'S13-3375B1'};
ch_fileNumber = [4 4 6 4 4 4 4 3 4 5 5];
on_fileNumber = [4 4 4 4 5 4 4 4 4 4 4];
mix_fileNumber = [4];
ch_fileCode = {
'Ta','Tb','Tc','Td', ...
'Ta','Tb','Tc','Td', ...
'T1a','T1b','T2a','T2b','T2c','T2d', ...
'Ta','Tb','Tc','Td', ...
'T1a','T1b','T1c','T1d', ...
'Ta','Tb','Tc','Td', ...
'T1b','T1c','T1d','T2d', ...
'Tb','Tc','Td', ...
'Ta','Tb','Tb2','Tc', ...
'T1a','T1b','T1c','T1d','T2a', ... %S14-9425B4
'T1a','T1b','T2a','T2b','T2d'
};
on_fileCode = {
'Ta','Ta2','Tb','Tc', ...
'Ta','Ta2','Ta3','Ta4', ...
'Ta','Ta2','Tb','Tc', ...
'Ta','Tb','Tc','Td', ...
'T1a','T1b','T1c','T2a','T2b', ...
'T1a','T1b','T2a','T2b', ...
'T1a','T1b','T2a','T2b', ...
'T1a','T1b','T2a','T2b', ...
'T1a','T1b','T2a','T2b', ...
'Ta','Tb','Tc','Td', ...
'T1a','T1b','T2a','T2b'
};
mix_fileCode = {'T1a','T1b','T1c','T1d'};
for i = 1:length(ch_fileCode)
ch_fileName{i} = ['25x_',ch_fileCode{i},'_power2_stepsize1_PMT700_zoom2_kalman3_Ch1.stk'];
ch_fileName1{i} = ['25x_',ch_fileCode{i},'_780nm_power2_stepsize1_zoom2_kalman3_Ch1.stk'];
end
for i = 1:length(on_fileCode)
on_fileName{i} = ['25x_',on_fileCode{i},'_power2_stepsize1_PMT700_zoom2_kalman3_Ch1.stk'];
on_fileName1{i} = ['25x_',on_fileCode{i},'_780nm_power2_stepsize1_zoom2_kalman3_Ch1.stk'];
if i == 22
on_fileName1{i} = ['25x_',on_fileCode{i},'_780nm_power2_stepsize1_zoom2_Ch1.stk'];
end
end
for i = 1:length(mix_fileCode)
mix_fileName{i} = ['25x_',mix_fileCode{i},'_power2_stepsize1_PMT700_zoom2_kalman3_Ch1.stk'];
mix_fileName1{i} = ['25x_',mix_fileCode{i},'_780nm_power2_stepsize1_zoom2_kalman3_Ch1.stk'];
end
%% load Ch1 maxImages (the maximum plane)
I_ch_col = zeros(800,800,length(ch_fileCode));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_ch_col(:,:,i) = I(:,:,ind);
figure(1);subplot(7,7,i);imagesc(I_ch_col(:,:,i),[130 2700]);axis off
end
I_on_col = zeros(800,800,length(on_fileCode));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_on_col(:,:,i) = I(:,:,ind);
% I_on_col(i) = mean(I(:));
figure(2);subplot(7,7,i);imagesc(I_on_col(:,:,i),[130 2000]);axis off
end
I_mix_col = zeros(800,800,length(mix_fileCode));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_mix_col(:,:,i) = I(:,:,ind);
% I_mix_col(i) = mean(I(:));
figure(3);subplot(7,7,i);imagesc(I_mix_col(:,:,i));axis off
end
%% load Ch1 max projection Images (the maximum plane)
I_ch_col = zeros(800,800,length(ch_fileCode));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_ch_col(:,:,i) = max(I,[],3);
figure(1);subplot(7,7,i);imagesc(I_ch_col(:,:,i));axis off
end
I_on_col = zeros(800,800,length(on_fileCode));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_on_col(:,:,i) = max(I,[],3);
% I_on_col(i) = mean(I(:));
figure(2);subplot(7,7,i);imagesc(I_on_col(:,:,i));axis off
end
I_mix_col = zeros(800,800,length(mix_fileCode));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_mix_col(:,:,i) = max(I,[],3);
% I_mix_col(i) = mean(I(:));
figure(3);subplot(7,7,i);imagesc(I_mix_col(:,:,i));axis off
end
%% quantify the Ch1 intensity
I_ch_col = zeros(length(ch_fileCode),1);
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_ch_col(i) = mean(I(:));
end
I_on_col = zeros(length(on_fileCode),1);
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_on_col(i) = mean(I(:));
end
I_mix_col = zeros(length(mix_fileCode),1);
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_mix_col(i) = mean(I(:));
end
%% load Ch1 maxImages (the maximum plane), calculate covariance image and intensity histogram
I_ch_col = zeros(800,800,length(ch_fileCode));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_ch_col(:,:,i) = I(:,:,ind);
% I_ch_col(i) = mean(I(:));
end
I_on_col = zeros(800,800,length(on_fileCode));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_on_col(:,:,i) = I(:,:,ind);
% I_on_col(i) = mean(I(:));
end
I_mix_col = zeros(800,800,length(mix_fileCode));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_mix_col(:,:,i) = I(:,:,ind);
% I_mix_col(i) = mean(I(:));
end
% calculate covariance images
for i = 1:size(I_ch_col,3)
ch_col_cov(:,:,i) = cov(double(I_ch_col(:,:,i)));
end
for i = 1:size(I_on_col,3)
on_col_cov(:,:,i) = cov(double(I_on_col(:,:,i)));
end
for i = 1:size(I_mix_col,3)
mix_col_cov(:,:,i) = cov(double(I_mix_col(:,:,i)));
end
save maxImage_cov ch_col_cov on_col_cov mix_col_cov
figure;
for i = 1:size(ch_col_cov,3);
1:subplot(7,7,i);
imagesc(ch_col_cov(:,:,i));
axis off
end
figure;
for i = 1:size(on_col_cov,3);
1:subplot(7,7,i);
imagesc(on_col_cov(:,:,i));
axis off
end
% calculate histgram in the max images
I_ch_col = reshape(I_ch_col,800*800,47);
I_on_col = reshape(I_on_col,800*800,45);
I_mix_col = reshape(I_mix_col,800*800,4);
X = 0:4095;
H_ch = zeros(length(X),size(I_ch_col,2));
for i = 1:size(I_ch_col,2)
H_ch(:,i) = hist(I_ch_col(:,i),X);
end
H_on = zeros(length(X),size(I_on_col,2));
for i = 1:size(I_on_col,2)
H_on(:,i) = hist(I_on_col(:,i),X);
end
H_mix = zeros(length(X),size(I_mix_col,2));
for i = 1:size(I_mix_col,2)
H_mix(:,i) = hist(I_mix_col(:,i),X);
end
save maxImage_hist H_ch H_on H_mix X
%% load Ch1 all image planes, find collagen volume per plane without smoothing
I_ch_col = uint16(zeros(800,800,length(ch_fileCode)));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
ch_col_vol(i) = sum(BW(:))/size(BW,3);
end
I_on_col = uint16(zeros(800,800,length(on_fileCode)));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
on_col_vol(i) = sum(BW(:))/size(BW,3);
end
I_mix_col = uint16(zeros(800,800,length(mix_fileCode)));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
mix_col_vol(i) = sum(BW(:))/size(BW,3);
end
save totalImage_col_vol ch_col_vol on_col_vol mix_col_vol
%% load Ch1 all image planes, find collagen volume per plane after smoothing
I_ch_col = uint16(zeros(800,800,length(ch_fileCode)));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
H = fspecial('gaussian',[2,2],1);
for i = 1:size(I,3)
I(:,:,i) = filter2(H,I(:,:,i));
end
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
ch_col_vol(i) = sum(BW(:))/size(BW,3);
end
I_on_col = uint16(zeros(800,800,length(on_fileCode)));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
H = fspecial('gaussian',[2,2],1);
for i = 1:size(I,3)
I(:,:,i) = filter2(H,I(:,:,i));
end
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
on_col_vol(i) = sum(BW(:))/size(BW,3);
end
I_mix_col = uint16(zeros(800,800,length(mix_fileCode)));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
H = fspecial('gaussian',[2,2],1);
for i = 1:size(I,3)
I(:,:,i) = filter2(H,I(:,:,i));
end
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
mix_col_vol(i) = sum(BW(:))/size(BW,3);
end
save totalImage_col_vol ch_col_vol on_col_vol mix_col_vol
%% load Ch1 all image planes, find collagen volume using global threshold without smoothing
I_ch_col = uint16(zeros(800,800,length(ch_fileCode)));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
planes = size(I,3);
I = reshape(I,size(I,1),size(I,2)*size(I,3));
% I = I - min(I(:));
BW = zeros(size(I));
level = graythresh(I);
BW = im2bw(I,level);
ch_col_vol(i) = sum(BW(:))/planes;
end
I_on_col = uint16(zeros(800,800,length(on_fileCode)));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
planes = size(I,3);
I = reshape(I,size(I,1),size(I,2)*size(I,3));
% I = I - min(I(:));
BW = zeros(size(I));
level = graythresh(I);
BW = im2bw(I,level);
on_col_vol(i) = sum(BW(:))/planes;
end
I_mix_col = uint16(zeros(800,800,length(mix_fileCode)));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
planes = size(I,3);
I = reshape(I,size(I,1),size(I,2)*size(I,3));
% I = I - min(I(:));
BW = zeros(size(I));
level = graythresh(I);
BW = im2bw(I,level);
mix_col_vol(i) = sum(BW(:))/planes;
end
save totalImage_col_vol ch_col_vol on_col_vol mix_col_vol
%% load Ch1 maxImages (the maximum plane), find collagen volume without smoothing
I_ch_col = uint16(zeros(800,800,length(ch_fileCode)));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_ch_col(:,:,i) = I(:,:,ind);
end
I_on_col = uint16(zeros(800,800,length(on_fileCode)));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_on_col(:,:,i) = I(:,:,ind);
end
I_mix_col = uint16(zeros(800,800,length(mix_fileCode)));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I_mix_col(:,:,i) = I(:,:,ind);
end
for i = 1:size(I_ch_col,3)
level = graythresh(I_ch_col(:,:,i));
BW = im2bw(I_ch_col(:,:,i),level);
ch_col_vol(i) = sum(BW(:));
end
for i = 1:size(I_on_col,3)
level = graythresh(I_on_col(:,:,i));
BW = im2bw(I_on_col(:,:,i),level);
on_col_vol(i) = sum(BW(:));
end
for i = 1:size(I_mix_col,3)
level = graythresh(I_mix_col(:,:,i));
BW = im2bw(I_mix_col(:,:,i),level);
mix_col_vol(i) = sum(BW(:));
end
save maxImage_col_vol ch_col_vol on_col_vol mix_col_vol
%% load Ch1 max projection image, find collagen volume
I_ch_col = uint16(zeros(800,800,length(ch_fileCode)));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_ch_col(:,:,i) = max(I,[],3);
end
I_on_col = uint16(zeros(800,800,length(on_fileCode)));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_on_col(:,:,i) = max(I,[],3);
end
I_mix_col = uint16(zeros(800,800,length(mix_fileCode)));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = [];
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I_mix_col(:,:,i) = max(I,[],3);
end
for i = 1:size(I_ch_col,3)
level = graythresh(I_ch_col(:,:,i));
BW = im2bw(I_ch_col(:,:,i),level);
ch_col_vol(i) = sum(BW(:));
end
for i = 1:size(I_on_col,3)
level = graythresh(I_on_col(:,:,i));
BW = im2bw(I_on_col(:,:,i),level);
on_col_vol(i) = sum(BW(:));
end
for i = 1:size(I_mix_col,3)
level = graythresh(I_mix_col(:,:,i));
BW = im2bw(I_mix_col(:,:,i),level);
mix_col_vol(i) = sum(BW(:));
end
save maxProjImage_col_vol ch_col_vol on_col_vol mix_col_vol
%% FFT
ch_col_fft = zeros(800,800,length(ch_fileCode));
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I0 = tiffread2(filePath);
I1 = [];
k1 = 1;
for k = 1:length(I0)
if mean(I0(k).data(:)) > 100
I1(:,:,k1) = uint16(I0(k).data);
k1 = k1+1;
end
end
I = zeros(800,800,size(I1,3));
for k = 1:size(I1,3)
I(:,:,k) = log(abs(fftshift(fft2(I1(:,:,k)))));
end
% I2 = mean(I,3);
% [i0,j0]=find(I2==max(I2(:)));
ch_col_fft(:,:,i) = mean(I,3);
end
on_col_fft = zeros(800,800,length(on_fileCode));
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I0 = tiffread2(filePath);
k1 = 1;
I1 = [];
for k = 1:length(I0)
if mean(I0(k).data(:)) > 100
I1(:,:,k1) = uint16(I0(k).data);
k1 = k1+1;
end
end
I = zeros(800,800,size(I1,3));
for k = 1:size(I1,3)
I(:,:,k) = log(abs(fftshift(fft2(I1(:,:,k)))));
end
on_col_fft(:,:,i) = mean(I,3);
end
mix_col_fft = zeros(800,800,length(mix_fileCode));
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I0 = tiffread2(filePath);
k1 = 1;
I1 = [];
for k = 1:length(I0)
if mean(I0(k).data(:)) > 100
I1(:,:,k1) = uint16(I0(k).data);
k1 = k1+1;
end
end
I = zeros(800,800,size(I1,3));
for k = 1:size(I1,3)
I(:,:,k) = log(abs(fftshift(fft2(I1(:,:,k)))));
end
mix_col_fft(:,:,i) = mean(I,3);
end
save data_fft ch_col_fft on_col_fft mix_col_fft
% plot
figure; hold on;
for i = 1:size(ch_col_fft,3)
I = ch_col_fft(:,:,i);
[i0,j0] = find(I==max(I(:)));
plot(I(i0,:),'b');
end
figure; hold on;
for i = 1:size(on_col_fft,3)
I = on_col_fft(:,:,i);
[i0,j0] = find(I==max(I(:)));
plot(I(i0,:),'r');
end
%% fit FFT to Lorentz
a_ch_x = zeros(size(ch_col_fft,3),1);
x0_ch_x = a_ch_x;
gamma_ch_x = a_ch_x;
a_ch_y = a_ch_x;
x0_ch_y = a_ch_x;
gamma_ch_y = a_ch_x;
for i = 1:size(ch_col_fft,3)
I = ch_col_fft(:,:,i);
[i0,j0] = find(I==max(I(:)));
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,1),I(i0,:));
a_ch_x(i) = a_tmp;
x0_ch_x(i) = x0_tmp;
gamma_ch_x(i) = gamma_tmp;
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,2),I(:,j0)');
a_ch_y(i) = a_tmp;
x0_ch_y(i) = x0_tmp;
gamma_ch_y(i) = gamma_tmp;
end
a_on_x = zeros(size(on_col_fft,3),1);
x0_on_x = a_on_x;
gamma_on_x = a_on_x;
a_on_y = a_on_x;
x0_on_y = a_on_x;
gamma_on_y = a_on_x;
for i = 1:size(on_col_fft,3)
I = on_col_fft(:,:,i);
[i0,j0] = find(I==max(I(:)));
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,1),I(i0,:));
a_on_x(i) = a_tmp;
x0_on_x(i) = x0_tmp;
gamma_on_x(i) = gamma_tmp;
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,2),I(:,j0)');
a_on_y(i) = a_tmp;
x0_on_y(i) = x0_tmp;
gamma_on_y(i) = gamma_tmp;
end
a_mix_x = zeros(size(mix_col_fft,3),1);
x0_mix_x = a_mix_x;
gamma_mix_x = a_mix_x;
a_mix_y = a_mix_x;
x0_mix_y = a_mix_x;
gamma_mix_y = a_mix_x;
for i = 1:size(mix_col_fft,3)
I = mix_col_fft(:,:,i);
[i0,j0] = find(I==max(I(:)));
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,1),I(i0,:));
a_mix_x(i) = a_tmp;
x0_mix_x(i) = x0_tmp;
gamma_mix_x(i) = gamma_tmp;
[a_tmp,x0_tmp,gamma_tmp]=fitlorentz(1:size(I,2),I(:,j0)');
a_mix_y(i) = a_tmp;
x0_mix_y(i) = x0_tmp;
gamma_mix_y(i) = gamma_tmp;
end
save fft_width a_ch_x x0_ch_x gamma_ch_x a_on_x x0_on_x gamma_on_x a_mix_x x0_mix_x gamma_mix_x a_ch_y x0_ch_y gamma_ch_y a_on_y x0_on_y gamma_on_y a_mix_y x0_mix_y gamma_mix_y
%% load Ch1 all image planes, find collagen area in each plane without smoothing
% and find perimeter using smoothed thresholded image, calculate average of area/perimeter of each plane
ch_col_shape = zeros(length(ch_fileCode),1);
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = uint16(zeros(size(I)));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
for k = 1:size(I,3)
I(:,:,k) = uint16(filter2(H,I(:,:,k)));
stats = regionprops(I(:,:,k)>0,'Area','Perimeter');
for k1 = 1:length(stats)
Area(k,k1) = stats(k1).Area;
Perimeter(k,k1) = stats(k1).Perimeter;
end
end
Area_ch(i) = sum(Area(:));
Perimeter_ch(i) = sum(Perimeter(:));
% ch_col_shape(i) = Area_ch(i)./Perimeter_ch(i);
ch_col_shape(i) = squeeze(sum(sum(sum(BW))))./Perimeter_ch(i);
end
on_col_shape = zeros(length(on_fileCode),1);
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
Area = [];
Perimeter = [];
for k = 1:size(I,3)
I(:,:,k) = uint16(filter2(H,I(:,:,k)));
stats = regionprops(I(:,:,k)>0,'Area','Perimeter');
for k1 = 1:length(stats)
Area(k,k1) = stats(k1).Area;
Perimeter(k,k1) = stats(k1).Perimeter;
end
end
Area_on(i) = sum(Area(:));
Perimeter_on(i) = sum(Perimeter(:));
% on_col_shape(i) = Area_on(i)./Perimeter_on(i);
on_col_shape(i) = squeeze(sum(sum(sum(BW))))./Perimeter_on(i);
end
mix_col_shape = zeros(length(mix_fileCode),1);
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
% I = I - min(I(:));
BW = zeros(size(I));
for k = 1:size(I,3)
level = graythresh(I(:,:,k));
BW(:,:,k) = im2bw(I(:,:,k),level);
end
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
Area = [];
Perimeter = [];
for k = 1:size(I,3)
I(:,:,k) = uint16(filter2(H,I(:,:,k)));
stats = regionprops(I(:,:,k)>0,'Area','Perimeter');
for k1 = 1:length(stats)
Area(k,k1) = stats(k1).Area;
Perimeter(k,k1) = stats(k1).Perimeter;
end
end
Area_mix(i) = sum(Area(:));
Perimeter_mix(i) = sum(Perimeter(:));
% mix_col_shape(i) = Area_mix(i)./Perimeter_mix(i);
mix_col_shape(i) = squeeze(sum(sum(sum(BW))))./Perimeter_mix(i);
end
save totalImage_col_shape ch_col_shape on_col_shape mix_col_shape
%% load Ch1 max image plane, find collagen area without smoothing
% and find perimeter using smoothed thresholded image, calculate area/perimeter
ch_col_shape = zeros(length(ch_fileCode),1);
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I = I(:,:,ind);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_ch(i) = sum(Area);
Perimeter_ch(i) = sum(Perimeter);
% boundaries = bwboundaries(I);
% B = [];
% for k = 1:length(boundaries)
% B(k) = length(boundaries{k});
% end
% Perimeter_ch(i) = sum(B);
ch_col_shape(i) = mean(Area_ch(i)./Perimeter_ch(i));
% ch_col_shape(i) = squeeze(sum(sum(BW)))./Perimeter_ch(i);
% figure(3);subplot(7,7,i);imagesc(I);axis off
end
on_col_shape = zeros(length(on_fileCode),1);
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I = I(:,:,ind);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_on(i) = sum(Area);
Perimeter_on(i) = sum(Perimeter);
% boundaries = bwboundaries(I);
% B = [];
% for k = 1:length(boundaries)
% B(k) = length(boundaries{k});
% end
% Perimeter_on(i) = sum(B);
on_col_shape(i) = Area_on(i)./Perimeter_on(i);
% on_col_shape(i) = squeeze(sum(sum(BW)))./Perimeter_on(i);
% figure(3); subplot(7,7,i); imagesc(BW); axis off
% figure(4); subplot(7,7,i); imagesc(I>0); axis off
% figure(6);subplot(7,7,i);imagesc(I);axis off
end
mix_col_shape = zeros(length(mix_fileCode),1);
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
[MAX,ind] = max(sum(sum(I)));
I = I(:,:,ind);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_mix(i) = sum(Area);
Perimeter_mix(i) = sum(Perimeter);
% boundaries = bwboundaries(I);
% B = [];
% for k = 1:length(boundaries)
% B(k) = length(boundaries{k});
% end
% Perimeter_mix(i) = sum(B);
mix_col_shape(i) = Area_mix(i)./Perimeter_mix(i);
% mix_col_shape(i) = squeeze(sum(sum(BW)))./Perimeter_mix(i);
end
save totalImage_col_shape ch_col_shape on_col_shape mix_col_shape
%% load Ch1 max Projection image, find collagen area without smoothing
% and find perimeter using smoothed thresholded image, calculate area/perimeter
ch_col_shape = zeros(length(ch_fileCode),1);
for i = 1:length(ch_fileCode)
i
for j = 1:length(ch_fileNumber)
if sum(ch_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' ch_folder{folderNo} '\Processed images\tumor\' ch_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I = max(I,[],3);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_ch(i) = sum(Area);
Perimeter_ch(i) = sum(Perimeter);
% ch_col_shape(i) = mean(Area_ch(i)./Perimeter_ch(i));
ch_col_shape(i) = mean(squeeze(sum(sum(BW)))./Perimeter_ch(i));
% figure(3);subplot(7,7,i);imagesc(I);axis off
end
on_col_shape = zeros(length(on_fileCode),1);
for i = 1:length(on_fileCode)
i
for j = 1:length(on_fileNumber)
if sum(on_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' on_folder{folderNo} '\Processed images\tumor\' on_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I = max(I,[],3);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_on(i) = sum(Area);
Perimeter_on(i) = sum(Perimeter);
% on_col_shape(i) = mean(Area_on(i)./Perimeter_on(i));
on_col_shape(i) = mean(squeeze(sum(sum(BW)))./Perimeter_on(i));
% figure(3); subplot(7,7,i); imagesc(BW); axis off
% figure(4); subplot(7,7,i); imagesc(I>0); axis off
% figure(6);subplot(7,7,i);imagesc(I);axis off
end
mix_col_shape = zeros(length(mix_fileCode),1);
for i = 1:length(mix_fileCode)
i
for j = 1:length(mix_fileNumber)
if sum(mix_fileNumber(1:j)) >= i
folderNo = j;
break
end
end
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName{i}];
if ~exist(filePath)
filePath = ['Onco-chromo\' mix_folder{folderNo} '\Processed images\tumor\' mix_fileName1{i}];
end
I1 = tiffread2(filePath);
k1 = 1;
I = uint16([]);
for k = 1:length(I1)
if mean(I1(k).data(:)) > 100
I(:,:,k1) = uint16(I1(k).data);
k1 = k1+1;
end
end
I = max(I,[],3);
BW = uint16(zeros(size(I)));
level = graythresh(I);
BW = im2bw(I,level);
I = I.*uint16(BW);
H = fspecial('gaussian',[10,10],3);
pars = struct([]);
I = uint16(filter2(H,I));
stats = regionprops(I>0,'Area','Perimeter');
for k = 1:length(stats)
Area(k) = stats(k).Area;
Perimeter(k) = stats(k).Perimeter;
end
Area_mix(i) = sum(Area);
Perimeter_mix(i) = sum(Perimeter);
% mix_col_shape(i) = mean(Area_mix(i)./Perimeter_mix(i));
mix_col_shape(i) = mean(squeeze(sum(sum(BW)))./Perimeter_ch(i));
end
save totalImage_col_shape ch_col_shape on_col_shape mix_col_shape
%
% boundaries = bwboundaries(Ibw_smooth(:,:,1)>0);
% hold on;
% for k=1:length(boundaries)
% b = boundaries{k};
% plot(b(:,2),b(:,1),'b','LineWidth',1);
% end
% --------------------------------- lorentz.m ---------------------------------------%
function y = lorentz(x,x0,gamma)
y = 1/pi*0.5*gamma./((x-x0).^2+(0.5*gamma)^2);
plot(x,y);
drawnow
% --------------------------------- fitlorentz.m ---------------------------------------%
function [a,x0,gamma] = fitlorentz(x,y)
err = @(pars,x,y) sqrt(sum((y - pars(1)*lorentz(x,pars(2),pars(3))-pars(4)).^2));
[MAX,ind] = max(y);
a = sum(y(:));
x0 = x(ind);
gamma = (x(end)-x(1))/10;
y0 = min(y);
pars = fminsearch(@(pars)err(pars,x,y),[a,x0,gamma,y0]);
a = pars(1)
x0 = pars(2);
gamma = pars(3);
y0 = pars(4);
yfit = lorentz(x,x0,gamma);
plot(x,y,'r.',x,a*yfit+y0)
drawnow
% --------------------------------- gaussian.m ---------------------------------------%
function y = gaussian(x,a,mu,sigma)
y = a*exp(-(x-mu).^2/2/sigma^2);
% --------------------------------- fitgaussian.m ---------------------------------------%
function [mu,sigma,yfit] = fitgaussian(x,y)
err = @(pars,x,y) sqrt(sum((y - gaussian(x,pars(1),pars(2),pars(3))).^2));
[MAX,ind] = max(y);
pars = fminsearch(@(pars)err(pars,x,y),[1,x(ind),x(2)-x(1)]);
a = pars(1)
mu = pars(2);
sigma = pars(3);
yfit = gaussian(x,a,mu,sigma);
bar(x,y)
hold on
plot(x,yfit)
Filed under: Uncategorized | Leave a comment »