https://github.com/Tanentzapf-Lab/ActinOrganization_CellMorphology_Haage
Raw File
Tip revision: 9cb24da5652e47684e73fe36b37e88b1956f0a6b authored by Tanentzapf-Lab on 27 July 2021, 19:45:34 UTC
Existing Documentation and Sample Files Uploaded
Tip revision: 9cb24da
actin_extravaganza.m
function []=actin_extravaganza_max(file,filename)

%file=uigetfile('*.tif');
image=imread(file);
image=im2double(image(:,:,1));
image=image(10:end-10,10:end-10);
[ys xs]=size(image);
se=strel('disk',12);
im2=imtophat(image,se);
[mask Ccell_cent Carea Car Ccirc Cang coords]=actin_mask(image);

w=32;
x=w+1:w/2:xs-w;
y=w+1:w/2:ys-w;

sigma=w/2;
hsize=[w*2,w*2];
h=fspecial('gaussian',hsize,sigma);

w1=cos(linspace(-pi/2,pi/2,w*2));
w2=cos(linspace(-pi/2,pi/2,w*2));
window=w1'*w2;

l=5;
figure(1);imshow(image);hold on
plot(coords(:,2),coords(:,1),'w')
stdev=zeros(length(y),length(x));
theta=zeros(length(y),length(x));
ar=zeros(length(y),length(x));
ecc=zeros(length(y),length(x));
for i=1:length(x)
    for j=1:length(y)
        I=inpolygon(x(i),y(j),coords(:,2),coords(:,1));
        if I==1
            idx(j,i)=1;
        temp=im2(y(j)-w:y(j)+w-1,x(i)-w:x(i)+w-1);
        temp2=temp.*h;
        temp3=fft2(temp2);
        temp4=abs(fftshift(temp3));
        temp4=mat2gray(log(temp4+1));
        temp5=(temp4>0.07);
        temp5=bwareaopen(temp5,2);
        temp5=imfill(temp5,'holes');
        cc=bwconncomp(temp5,4);
        r=regionprops(cc,'Orientation','Eccentricity','MinorAxisLength','MajorAxisLength','Area');
        for k=1:cc.NumObjects
            areatemp(k)=r(k).Area;
        end
        [~,ind]=max(areatemp);clear areatemp
        theta(j,i)=90+r(ind).Orientation;
        ecc(j,i)=r(ind).Eccentricity;
        ar(j,i)=r(ind).MajorAxisLength./r(ind).MinorAxisLength;
        stdev(j,i)=std(temp4(:));
        line([x(i)-l*cos(theta(j,i)*pi/180),x(i)+l*cos(theta(j,i)*pi/180)],...
          [y(j)+l*sin(theta(j,i)*pi/180),y(j)-l*sin(theta(j,i)*pi/180)],'Color','g','LineWidth',1)
        end
    end
end

theta2=theta(:);
stdev2=stdev(:);
ar2=ar(:);
ecc2=ecc(:);
theta2=theta2(theta2~=0);
stdev2=stdev2(stdev2~=0);
ecc2=ecc2(ecc2~=0);
ar2=ar2(ar2~=0);

saveas(gcf,sprintf([filename(1:end-4) '_directors.fig']));
close all
save(sprintf([filename(1:end-4) 'actin_data.mat']),'coords','Cang','Ccell_cent','mask',...
    'Carea','Car','Ccirc','theta','stdev','ar','ecc','theta2','stdev2','ar2',...
    'ecc2','x','y');
back to top