Commit cad2a0a2 authored by Antonio Politi's avatar Antonio Politi
Browse files

Minor changes addition of data 2018

parent de7a527c
......@@ -125,7 +125,8 @@ for iT = 1:dim.Nt
%% nucleus mask (J. Hossain segmentation)
binNuc = nucMaskNonIso==inuc;
%% find slice with largest perimeter avoiding smallest segmented parts
for iZ=1:dim.Nz
props = regionprops(binNuc(:,:,iZ));
......@@ -147,12 +148,12 @@ for iT = 1:dim.Nt
iZn = iZ;
% cytoplasmic slice is twice below nucleus slice
%iZc = (iZ-2)*(iZ-2>=iZglass + 2) + (iZglass+2)*(iZ-2<iZglass + 2);
iZc = iZ-2;
iZc = iZ-1;
% find slice that contains center of mass (this is more prone to be sometime close to lower or upper part of nucleus
% props = regionprops(binNuc);
% iZ = round(props.Centroid(3))+1;
%% find intensity inside 2D nucleus. Skeletonize nucleus and dilate skeleton
% use segmented nuclei instead
% get segmented slice. This is a labelled image
......@@ -210,19 +211,19 @@ for iT = 1:dim.Nt
% find labelled area containung nucleus of interest
labimg = bwlabel(bwerode.*(DL>0));
labNuc = (binNuc(:,:,iZ)).*labimg; % and o
labNuc = (binNuc(:,:,iZc)).*labimg; % and o
lab = max(labNuc(:));
%%
% cytoplasm is cytoplasm - 2 times dilated nucleus.
gfpC = getSlice(reader, iZc, iT, iC, dim);
gfpCf = imgaussian(gfpC,2);
gfpCM = (gfpCf).*(labimg==lab).*~(imdilate(imfill(binNuc(:,:,iZ), 'holes'), strel('disk',4)));
hb = prctile(gfpCM(gfpCM > 0), upfl(2));
lb = prctile(gfpCM(gfpCM > 0), upfl(1));
gfpCM = (gfpCf).*(labimg==lab).*~(imdilate(imfill(binNuc(:,:,iZc), 'holes'), strel('disk',4)));
hb = prctile(gfpCM(gfpCM > 0), 90);
lb = prctile(gfpCM(gfpCM > 0), 10);
gfpCM = (gfpCf <= hb).*(gfpCf >= lb);
cytIntM = (gfpCM).*(labimg==lab).*~(imdilate(imfill(binNuc(:,:,iZ), 'holes'), strel('disk',4)));
cytIntM = (gfpCM).*(labimg==lab).*~(imdilate(imfill(binNuc(:,:,iZc), 'holes'), strel('disk',4)));
cytInt = double(cytIntM).*double(gfpC);
bgVal(iT, 3+(inuc-1)*3) = sum(cytInt(:))/sum(cytIntM(:));
bgVal(iT, 3+(inuc-1)*3) = sum(cytInt(:))/sum(cytIntM(:))
% create output image
imgfinal(:,:,iT) = imgfinal(:,:,iT) + binNuc(:,:,iZ)*(1+(inuc-1)*3) + nucIntM*(2+(inuc-1)*3) + (labimg==lab)*(3+(inuc-1)*3) ;
......
%%
% Abstact class for model of pore maturation
%%
%% ABSPOREMATURATION
% Abstact class for model of pore maturation.
% Multi step process but with same rate constant. N1 steps rate constant k1 and N2 steps rate constant k2
classdef absPoreMaturation < handle
properties (Access = protected)
timeI = [0:150]; %intergration time points
timeI = [0 150]; %intergration time points
useStd = 1; % if == 1 scale by std
protA; %data structure containing array of all data
tpm; %time of postmitotic start for non-core NC and Core region [time_start_pm_NC time_start_pm_C]
ti; %time interphase assembly start [time_start_ip_NC time_start_ip_C]
......@@ -24,17 +25,25 @@ classdef absPoreMaturation < handle
end
methods
function MO = absPoreMaturation(N1, N2, tpm, ti, force, showplot)
function MO = absPoreMaturation(N1, N2, tpm, ti, force, showplot, date)
if nargin < 5
force = 0;
end
if nargin < 6
showplot = 0;
end
if nargin < 7
date = 2018;
end
MO.setTimeStart(tpm, ti);
MO.N1 = N1;
MO.N2 = N2;
MO.protA = MO.dataIn(force, showplot);
if date == 2016
MO.protA = MO.dataIn_2016(force, showplot);
end
if date == 2018
MO.protA = MO.dataIn_2018(force, showplot);
end
end
function setTimeStart(MO, tpm, ti)
......@@ -64,19 +73,25 @@ classdef absPoreMaturation < handle
parloc(ifit) = parfit;
end
function dist = distData(MO, parfit, ifit, par)
function dist = distData(MO, parfit, ifit, iprot, par)
%% calculate distance model to data
% parfit - vector of parameters that will be fitted
% ifit - index of parameters in vector par that will be fitted. par(ifit) = parfit;
% iprot - index of proteins to fit. length(iprot) == 2
% par - vector of parameters
if length(iprot) ~= 2 || any(iprot > length(MO.protF)) || any(iprot < 1)
error('index of proteins must be a vector of length 2, with values > 0 and < %d', length(MO.protF));
end
parloc = MO.getparset(parfit, ifit, par);
prot = MO.computeProteins(parloc, [1 2]);
prot = MO.computeProteins(parloc, iprot);
% if useStd == 0 do not divide by standard deviation
[idxm, idxd] = MO.findIdxs();
useStd = 1;
distNC = [];
distC = [];
for i=1:2
if useStd
distNC = [distNC (MO.protF(i).noncore(idxd(1):end,1)' - prot(i).NC(idxm(1):end))./MO.protF(i).noncore(idxd(1):end,2)'];
distC = [distC (MO.protF(i).core(idxd(2):end,1)' - prot(i).C(idxm(2):end))./MO.protF(i).core(idxd(2):end,2)'];
for i = 1:2
if MO.useStd
distNC = [distNC (MO.protF(iprot(i)).noncore(idxd(1):end,1)' - prot(i).NC(idxm(1):end))./MO.protF(iprot(i)).noncore(idxd(1):end,2)'];
distC = [distC (MO.protF(iprot(i)).core(idxd(2):end,1)' - prot(i).C(idxm(2):end))./MO.protF(iprot(i)).core(idxd(2):end,2)'];
else
distNC = [distNC MO.protF(i).noncore(idxd(1):end,1)' - prot(i).NC(idxm(1):end)];
distC = [distC MO.protF(i).core(idxd(2):end,1)' - prot(i).C(idxm(2):end)];
......@@ -91,36 +106,36 @@ classdef absPoreMaturation < handle
function showGraph(MO, par, iprot)
prot = MO.computeProteins(par, iprot);
[idxm, idxd] = MO.findIdxs()
for i=1:2
for i = 1:2
setupFigure(i, [200 200 500 700]);
clf
subplot(3,1,1)
title(MO.protF(i).name)
title(MO.protF(iprot(i)).name)
hold
plot(MO.protF(i).time, MO.protF(i).noncore(:,1), 'bo');
plot(MO.protF(i).time, MO.protF(i).core(:,1), 'go');
plot(MO.protF(i).time(idxd(1):end), prot(i).NC(idxm(1):end), 'c--');
plot(MO.protF(i).time(idxd(2):end), prot(i).C(idxm(2):end), 'r--');
plot(MO.protF(iprot(i)).time, MO.protF(iprot(i)).noncore(:,1), 'bo');
plot(MO.protF(iprot(i)).time, MO.protF(iprot(i)).core(:,1), 'go');
plot(MO.protF(iprot(i)).time(idxd(1):end), prot(i).NC(idxm(1):end), 'c--');
plot(MO.protF(iprot(i)).time(idxd(2):end), prot(i).C(idxm(2):end), 'r--');
ylabel('Relative fluorescence')
legend('Core data', 'Non-core data', 'Core model', 'Non-core model')
legend('Non-core data', 'core data', 'Non-Core model', 'core model')
ylim([0 1.2])
subplot(3,1,2)
hold
plot(MO.protF(i).time, MO.protF(i).noncore(:,1), 'bo');
plot(MO.protF(i).time(idxd(1):end), prot(i).NC_pm(idxm(1):end)', 'b--');
plot(MO.protF(1).time(idxd(1):end), prot(i).NC_ip(idxm(1):end)', 'b--', 'LineWidth', 2);
plot(MO.protF(iprot(i)).time, MO.protF(iprot(i)).noncore(:,1), 'bo');
plot(MO.protF(iprot(i)).time(idxd(1):end), prot(i).NC_pm(idxm(1):end)', 'b--');
plot(MO.protF(iprot(i)).time(idxd(1):end), prot(i).NC_ip(idxm(1):end)', 'b--', 'LineWidth', 2);
ylabel('Relative fluorescence')
legend('Non-Core data', 'Non-Core 2', 'Non-Core 2')
legend('Non-Core data', 'Non-Core pm', 'Non-Core ip')
ylim([0 1.2])
subplot(3,1,3)
hold
plot(MO.protF(i).time, MO.protF(i).core(:,1), 'go');
plot(MO.protF(i).time(idxd(2):end), prot(i).C_pm(idxm(2):end)', 'r--');
plot(MO.protF(i).time(idxd(2):end), prot(i).C_ip(idxm(2):end)', 'r--', 'LineWidth', 2);
legend('Core data', 'Core 1', 'Core 2')
plot(MO.protF(iprot(i)).time, MO.protF(iprot(i)).core(:,1), 'go');
plot(MO.protF(iprot(i)).time(idxd(2):end), prot(i).C_pm(idxm(2):end)', 'r--');
plot(MO.protF(iprot(i)).time(idxd(2):end), prot(i).C_ip(idxm(2):end)', 'r--', 'LineWidth', 2);
legend('Core data', 'Core pm', 'Core ip')
ylabel('Relative fluorescence')
xlabel('Time (min)')
ylim([0 1.2])
......@@ -140,7 +155,7 @@ classdef absPoreMaturation < handle
%%
% read in the experimental data
%
function protA = dataIn(MO, force, showplot)
function protA = dataIn_2016(MO, force, showplot)
if nargin < 1
force = 0;
end
......@@ -164,7 +179,7 @@ classdef absPoreMaturation < handle
MO.indir = indir;
MO.outdir = outdir;
matfile = fullfile(indir,'livecelldata.mat');
matfile = fullfile(indir, 'livecelldata_2016.mat');
%load matfile if matfile exists or reading is not forced
if exist(matfile) && ~force
......@@ -174,17 +189,17 @@ classdef absPoreMaturation < handle
end
% struct containing the experimental data
prot = struct('name','Nup107', 'time',[], 'd_core',[], 'd_noncore', [], ...
prot = struct('name', 'Nup107', 'time',[], 'd_core',[], 'd_noncore', [], ...
'd_core_cells', [],'d_noncore_cells', [], 'tot_core', [], 'tot_noncore', [])
protA = [prot;prot]
protA(2).name = 'Nup358';
% location of XLS files
xlsfile = fullfile(indir, 'HeLa4D.xls');
xlsfile = fullfile(indir, 'HeLa4D_2016.xls');
sheet = {'Nup107_AVG', 'Nup358_AVG'};
%% Raed Nup107 data
%% Read Nup107 data
protA(1).d_core_cells = xlsread(xlsfile, 'Nup107_AVG', 'C11:AF132');
protA(1).d_noncore_cells = xlsread(xlsfile, 'Nup107_AVG', 'AH11:BK132');
protA(1).d_core = [xlsread(xlsfile, 'Nup107_AVG', 'BN11:BN132') ...
......@@ -244,6 +259,88 @@ classdef absPoreMaturation < handle
end
end
end
%%
% read in the experimental data new set
%
function protA = dataIn_2018(MO, force, showplot)
if nargin < 1
force = 0;
end
if nargin < 2
showplot = 1;
end
if ispc
indir = fullfile([getenv('HOMEDRIVE') getenv('HOMEPATH') ], 'Dropbox', 'Shotaro_PoreMaturation',...
'ExpData', 'LiveCellImaging');
outdir = fullfile([getenv('HOMEDRIVE') getenv('HOMEPATH') ], 'Dropbox', 'Shotaro_PoreMaturation',...
'Simulations', 'LiveCellImaging');
end
if ismac
indir = fullfile(getenv('HOME'), 'Dropbox', 'Shotaro_PoreMaturation',...
'ExpData', 'LiveCellImaging');
outdir = fullfile(getenv('HOME'), 'Dropbox', 'Shotaro_PoreMaturation',...
'Simulations', 'LiveCellImaging');
end
MO.indir = indir;
MO.outdir = outdir;
matfile = fullfile(indir, 'livecelldata_2018.mat');
%load matfile if matfile exists or reading is not forced
if exist(matfile) && ~force
load(matfile)
MO.timeI = [0:protA(1).time(end)]
return
end
% struct containing the experimental data. First column is avg, second column is sd
prot = struct('name','Nup214', 'time',[], 'tot_core', [], 'tot_noncore', []);
protA = repmat(prot, 8,1);
protA(2).name = 'Nup358';
protA(3).name = 'Nup107';
protA(4).name = 'Nup205';
protA(5).name = 'Nup62';
protA(6).name = 'Seh1';
protA(7).name = 'Tpr';
protA(8).name = 'Nup153';
% location of XLS files
xlsfile = fullfile(indir, 'HeLa4D-core-noncore-normalized-summary-180104.xlsx');
sheet = {'SUM'};
tabl = readtable(xlsfile, 'Range', 'B16:AI249', 'ReadVariableNames', 0);
for i=1:length(protA)
idx = find(~isnan(tabl.(['Var' num2str(i*2)])));
protA(i).time = tabl.Var1(idx);
protA(i).tot_noncore = [tabl.(['Var' num2str(i*2)]) tabl.(['Var' num2str(i*2 + 1)])];
protA(i).tot_core = [tabl.(['Var' num2str(i*2 +17)]) tabl.(['Var' num2str(i*2 + 18)])];
protA(i).tot_core = protA(i).tot_core(idx, :);
protA(i).tot_noncore = protA(i).tot_noncore(idx, :);
end
save(matfile, 'protA');
%%
if showplot
figure(1)
clf
col = {'b', 'r'};
for i=1:length(protA)
subplot(ceil(sqrt(length(protA))),round(sqrt(length(protA))),i)
hold
title(protA(i).name)
errorbar(protA(i).time, protA(i).tot_core(:,1), protA(i).tot_core(:,2), 'g')
errorbar(protA(i).time, protA(i).tot_noncore(:,1), protA(i).tot_noncore(:,2), 'b')
legend('core', 'non-core')
end
end
end
end
end
%%
% Abstact class for model of pore maturation
%% ABSPOREMATURATIONMULTIPAR
% Abstact class for model of pore maturation
% Multi step process but with different rate for each step.
% N steps, N1 step where first protein binds
%%
classdef absPoreMaturationMultiPar < handle
properties (Access = protected)
......@@ -313,7 +315,7 @@ classdef absPoreMaturationMultiPar < handle
xlsfile = fullfile(indir, 'HeLa4D.xls');
sheet = {'Nup107_AVG', 'Nup358_AVG'};
%% Raed Nup107 data
%% Read Nup107 data
protA(1).d_core_cells = xlsread(xlsfile, 'Nup107_AVG', 'C11:AF132');
protA(1).d_noncore_cells = xlsread(xlsfile, 'Nup107_AVG', 'AH11:BK132');
protA(1).d_core = [xlsread(xlsfile, 'Nup107_AVG', 'BN11:BN132') ...
......
classdef poreMaturationReducedPara < absPoreMaturationMultiPar
%% Multi step maturation process N1 steps with rate equal k1 and N2 steps with rate equal k2
% Compute total number of pores so no need to use the surface area
% k1-kN-1 are the transition rates for postmitotic and interphase. The
% k1-k2 are the transition rates. The
% last transition is the accumulation of the 2nd protein (NUP358)
% N1 is the position where the first protein is present
% X_1 -k1> X_2 ... -k2> X_(N1+1) -k3> X_(N1+2) ... -kN-1> X_(N)
% X_1 -k1> X_2 ... -k1> X_(N1+1) -k2> X_(N1+2) ... -k2> X_(N)
% sum X_(i=N1)_end: protein1
% X_(N): protein2
% paramters are
......@@ -23,6 +23,7 @@ classdef poreMaturationReducedPara < absPoreMaturationMultiPar
end
MO.parnames = '';
% Post mitotic assembly
for i=1:2
MO.parnames = [MO.parnames 'kpm' num2str(i) ' '];
end
......
classdef poreMaturationReducedPara2 < absPoreMaturationMultiPar
%% Multi step maturation process N1 steps with rate equal k1 and N2 steps with rate equal k2
%% Multi step maturation process. N1 steps with rate equal k1 and N2 steps with rate equal k2 for
%% postmitotic. Multiple rates for interphase
% Compute total number of pores so no need to use the surface area
% k1-kN-1 are the transition rates for postmitotic and interphase. The
% last transition is the accumulation of the 2nd protein (NUP358)
% N1 is the position where the first protein is present
% k1-kN-1 are the transition rates for interphase.
% For postmitotic same as poreMaturationTotal, only 2 rate constants.
% k_{1}-k_{N1} = k1, k_{N1+1}-k_{N-1} = k2.
% Last transition is the accumulation of the 2nd protein (NUP358)
% N1 is the position where the first protein binds
% X_1 -k1> X_2 ... -k2> X_(N1+1) -k3> X_(N1+2) ... -kN-1> X_(N)
% sum X_(i=N1)_end: protein1
% X_(N): protein2
% paramters are 2 steps for post mitotic and several steps for
% interphase
% Parameters;
% k1, k2 (postmitotic); k1, kN-1 (interphase); kd; vproduction;
% fraction_maturePore_noncore; fraction_maturePore_core;
% scaling_factor_protein1_NC;scaling_factor_protein2_NC;scaling_factor_protein1_Core;
......@@ -23,10 +25,12 @@ classdef poreMaturationReducedPara2 < absPoreMaturationMultiPar
MO.protF(i).noncore = MO.protA(i).tot_noncore;
end
MO.parnames = '';
% k1 and k2 for postmitotic
for i=1:2
MO.parnames = [MO.parnames 'kpm' num2str(i) ' '];
end
% k1 to k_{N-1} for interphase
for i=1:MO.N-1
MO.parnames = [MO.parnames 'kip' num2str(i) ' '];
end
......
......@@ -8,8 +8,8 @@ classdef poreMaturationTotal < absPoreMaturation
% sum X_(i=N1+1)_end: protein1
% X_(N1+N2+1): protein2
methods
function MO = poreMaturationTotal(N1, N2, tpm, ti, force, showplot)
MO@absPoreMaturation(N1, N2, tpm, ti,force, showplot)
function MO = poreMaturationTotal(N1, N2, tpm, ti, force, showplot, date)
MO@absPoreMaturation(N1, N2, tpm, ti, force, showplot, date)
MO.protF = MO.protA;
% %invert order
% for i=1:2
......@@ -17,7 +17,7 @@ classdef poreMaturationTotal < absPoreMaturation
% MO.protF(3-i).noncore = MO.protA(i).tot_noncore;
% end
for i=1:2
for i = 1:length(MO.protA)
MO.protF(i).core = MO.protA(i).tot_core;
MO.protF(i).noncore = MO.protA(i).tot_noncore;
end
......@@ -46,52 +46,56 @@ classdef poreMaturationTotal < absPoreMaturation
%experimental data has 1 min time resolution
smoothedArea = fnval(MO.protF(1).surfspl, MO.protF(1).time');
PM = MO.solveModelN([par(1) par(2)], MO.timeI,1);
IP = MO.solveModelN([par(3) par(4)], MO.timeI,1);
%compute solution for specific time
PM_t = deval(PM, MO.timeI);
IP_t = deval(IP, MO.timeI);
%% compute protein amounts in non-core and core regions
baseN = 5;
tend = MO.protF(1).time(end);
iend = MO.protF(1).time(end) + 1;
p1NC_pm = [zeros(1,MO.tpm(1)-4) sum(PM_t(MO.N1+1:end,1:iend-MO.tpm(1)))]*par(baseN)*par(baseN+2);
p1NC_ip = [zeros(1,MO.ti(1)-4) sum(IP_t(MO.N1+1:end,1:iend-MO.ti(1)))]*(1-par(baseN))*par(baseN+2);
p1NC = (p1NC_pm+p1NC_ip);
p1NC_den = p1NC./smoothedArea;
p2NC_pm = [zeros(1,MO.tpm(1)-4) PM_t(end,1:iend-MO.tpm(1))]*par(baseN)*par(baseN+3);
p2NC_ip = [zeros(1,MO.ti(1)-4) IP_t(end,1:iend-MO.ti(1))]*(1-par(baseN))*par(baseN+3);
p2NC = (p2NC_pm + p2NC_ip);
p2NC_den = p2NC./smoothedArea;
p1C_pm = [zeros(1,MO.tpm(2)-4) sum(PM_t(MO.N1+1:end,1:iend-MO.tpm(2)))]*par(baseN+1)*par(baseN+4);
p1C_ip = [zeros(1,MO.ti(2)-4) , sum(IP_t(MO.N1+1:end,1:iend-MO.ti(2)))]*(1-par(baseN+1))*par(baseN+4);
p1C_ip_den = p1C_ip/(1-par(baseN+1))/par(baseN+4)./smoothedArea*max(smoothedArea);
p1C = (p1C_pm + p1C_ip);
p1C_den = p1C./smoothedArea;
p2C_pm = [zeros(1,MO.tpm(2)-4) PM_t(end,1:iend-MO.tpm(2))]*par(baseN+1)*par(baseN+5);
p2C_ip = [zeros(1,MO.ti(2)-4) IP_t(end,1:iend-MO.ti(2))]*(1-par(baseN+1))*par(baseN+5);
p2C_ip_den = p2C_ip/(1-par(baseN+1))/par(baseN+5)./smoothedArea*max(smoothedArea);
p2C = (p2C_pm+ p2C_ip);
p2C_den = p2C./smoothedArea;
%densities
p1 = struct('time_NC', [4:tend],'time_C', [4:tend], 'NC', p1NC, 'NC_pm', p1NC_pm, 'NC_ip', p1NC_ip,...
'C', p1C, 'C_pm', p1C_pm, 'C_ip', p1C_ip, 'C_pm_pure', p1C_pm/par(baseN+1)/par(baseN+4), 'C_ip_pure', p1C_ip/(1-par(baseN+1))/par(baseN+4), 'C_ip_den', p1C_ip_den);
p2 = struct('time_NC',[4:tend],'time_C',[4:tend], 'NC', p2NC, 'NC_pm', p2NC_pm, 'NC_ip', p2NC_ip, ...
'C', p2C, 'C_pm', p2C_pm, 'C_ip', p2C_ip, 'C_pm_pure', p2C_pm/par(baseN+1)/par(baseN+5), 'C_ip_pure', p2C_ip/(1-par(baseN+1))/par(baseN+5), 'C_ip_den', p2C_ip_den);
try
smoothedArea = fnval(MO.protF(1).surfspl, MO.protF(1).time');
catch
smoothedArea = 1;
end
PM = MO.solveModelN([par(1) par(2)], MO.timeI, 1);
IP = MO.solveModelN([par(3) par(4)], MO.timeI, 1);
prot = [p1;p2];
%compute solution for specific time
for i = 1:2
baseN = 5;
%evaluate at same time point as data
PM_t = deval(PM, MO.protF(iprot(i)).time - MO.protF(iprot(i)).time(1));
IP_t = deval(IP, MO.protF(iprot(i)).time - MO.protF(iprot(i)).time(1));
% time step
dt = MO.protF(iprot(i)).time(2) - MO.protF(iprot(i)).time(1);
iend = size(PM_t,2);
pend = size(PM_t,1);
if i == 1
prot_sum = MO.N1+1:pend;
end
if i == 2
prot_sum = pend;
end
% non-core region
zeropad_pm = 0*[MO.protF(iprot(i)).time(1):dt:MO.tpm(1)];
zeropad_ip = 0*[MO.protF(iprot(i)).time(1):dt:MO.ti(1)];
pNC_pm = [zeropad_pm sum(PM_t(prot_sum, 1:iend-length(zeropad_pm)),1)]*par(baseN)*par(baseN+2);
pNC_ip = [zeropad_ip sum(IP_t(prot_sum, 1:iend-length(zeropad_ip)),1)]*(1-par(baseN))*par(baseN+2);
pNC = (pNC_pm+pNC_ip);
% core region
zeropad_pm = 0*[MO.protF(iprot(i)).time(1):dt:MO.tpm(2)];
zeropad_ip = 0*[MO.protF(iprot(i)).time(1):dt:MO.ti(2)];
pC_pm = [zeropad_pm sum(PM_t(prot_sum,1:iend-length(zeropad_pm)),1)]*par(baseN+1)*par(baseN+4);
pC_ip = [zeropad_ip sum(IP_t(prot_sum,1:iend-length(zeropad_ip)),1)]*(1-par(baseN+1))*par(baseN+4);
pC_ip_den = pC_ip/(1-par(baseN+1))/par(baseN+4)./smoothedArea*max(smoothedArea);
pC = (pC_pm + pC_ip);
pC_den = pC./smoothedArea;
protl = struct('time_NC', MO.protF(iprot(i)).time,'time_C', MO.protF(iprot(i)).time, ...
'NC', pNC, 'NC_pm', pNC_pm, 'NC_ip', pNC_ip,...
'C', pC, 'C_pm', pC_pm, 'C_ip', pC_ip, ...
'C_pm_pure', pC_pm/par(baseN+1)/par(baseN+4), 'C_ip_pure', pC_ip/(1-par(baseN+1))/par(baseN+4), ...
'C_ip_den', pC_ip_den);
if ~exist('prot', 'var')
prot = protl;
else
prot = [prot; protl]';
end
end
end
......
classdef poreMaturationTotalProdDeg < absPoreMaturationMultiPar
%% Multi step maturation process N1 steps with rate equal k1 and N2 steps with rate equal k2
%% Multi step maturation process steps with rates equal k1-kN. First N1 steps
%% are for protein 1, last step is protein 2. Includes protein degradation
% Compute total number of pores so no need to use the surface area
% k1-kN-1 are the transition rates for postmitotic and interphase. The
% last transition is the accumulation of the 2nd protein (NUP358)
......@@ -12,7 +13,7 @@ classdef poreMaturationTotalProdDeg < absPoreMaturationMultiPar
% fraction_maturePore_noncore; fraction_maturePore_core;
% scaling_factor_protein1_NC;scaling_factor_protein2_NC;scaling_factor_protein1_Core;
% scaling_factor_protein2_Core;
% Author: Antonio Politi, EMBL August 2016
methods
function MO = poreMaturationTotalProdDeg(N, N1, tpm, ti, force, showplot)
MO@absPoreMaturationMultiPar(N, N1, tpm, ti,force, showplot)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment