Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Antonio Politi
NPCMaturation
Commits
cad2a0a2
Commit
cad2a0a2
authored
Jan 22, 2018
by
Antonio Politi
Browse files
Minor changes addition of data 2018
parent
de7a527c
Changes
7
Hide whitespace changes
Inline
Side-by-side
matlabcode/expDataExtraction/bgCompLiveCell.m
View file @
cad2a0a2
...
...
@@ -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
(:,:,
iZ
c
))
.*
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
(:,:,
iZ
c
),
'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
(:,:,
iZ
c
),
'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
)
;
...
...
matlabcode/odeModel/absPoreMaturation.m
View file @
cad2a0a2
%%
% 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
(
i
prot
(
i
)
)
.
noncore
(
idxd
(
1
):
end
,
1
)
' - prot(i).NC(idxm(1):end))./MO.protF(i
prot(i)
).noncore(idxd(1):end,2)'
];
distC
=
[
distC
(
MO
.
protF
(
i
prot
(
i
)
)
.
core
(
idxd
(
2
):
end
,
1
)
' - prot(i).C(idxm(2):end))./MO.protF(i
prot(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
(
i
prot
(
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
(
i
prot
(
i
)
)
.
time
,
MO
.
protF
(
i
prot
(
i
)
)
.
noncore
(:,
1
),
'bo'
);
plot
(
MO
.
protF
(
i
prot
(
i
)
)
.
time
,
MO
.
protF
(
i
prot
(
i
)
)
.
core
(:,
1
),
'go'
);
plot
(
MO
.
protF
(
i
prot
(
i
)
)
.
time
(
idxd
(
1
):
end
),
prot
(
i
)
.
NC
(
idxm
(
1
):
end
),
'c--'
);
plot
(
MO
.
protF
(
i
prot
(
i
)
)
.
time
(
idxd
(
2
):
end
),
prot
(
i
)
.
C
(
idxm
(
2
):
end
),
'r--'
);
ylabel
(
'Relative fluorescence'
)
legend
(
'
C
ore data'
,
'
Non-
core data'
,
'Core model'
,
'
Non-
core model'
)
legend
(
'
Non-c
ore 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
(
i
prot
(
i
)
)
.
time
,
MO
.
protF
(
i
prot
(
i
)
)
.
noncore
(:,
1
),
'bo'
);
plot
(
MO
.
protF
(
i
prot
(
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
(
i
prot
(
i
)
)
.
time
,
MO
.
protF
(
i
prot
(
i
)
)
.
core
(:,
1
),
'go'
);
plot
(
MO
.
protF
(
i
prot
(
i
)
)
.
time
(
idxd
(
2
):
end
),
prot
(
i
)
.
C_pm
(
idxm
(
2
):
end
)
', '
r
--'
);
plot
(
MO
.
protF
(
i
prot
(
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'
};
%% R
a
ed Nup107 data
%% Re
a
d 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
matlabcode/odeModel/absPoreMaturationMultiPar.m
View file @
cad2a0a2
%%
% 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'
};
%% R
a
ed Nup107 data
%% Re
a
d 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'
)
...
...
...
matlabcode/odeModel/poreMaturationReducedPara.m
View file @
cad2a0a2
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-k
N-1
are the transition rates
for postmitotic and interphase
. The
% k1-k
2
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 ... -k
2
> X_(N1+1) -k
3
> X_(N1+2) ... -k
N-1
> X_(N)
% X_1 -k1> X_2 ... -k
1
> X_(N1+1) -k
2
> X_(N1+2) ... -k
2
> 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
...
...
matlabcode/odeModel/poreMaturationReducedPara2.m
View file @
cad2a0a2
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
...
...
matlabcode/odeModel/poreMaturationTotal.m
View file @
cad2a0a2
...
...
@@ -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
...
...
matlabcode/odeModel/poreMaturationTotalProdDeg.m
View file @
cad2a0a2
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
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment