Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
Frap Theory
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
hubatsch
Frap Theory
Commits
16cecaea
Commit
16cecaea
authored
4 years ago
by
Lars Hubatsch
Browse files
Options
Downloads
Patches
Plain Diff
WIP: Rearrange plotting notebook, introduce Partitioning instead of phi
as titles for artificial data plot.
parent
e3839e8a
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Plots_Droplet_FRAP.ipynb
+40
-16
40 additions, 16 deletions
Plots_Droplet_FRAP.ipynb
with
40 additions
and
16 deletions
Plots_Droplet_FRAP.ipynb
+
40
−
16
View file @
16cecaea
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### FRAP geometries"
]
},
{
"cell_type": "code",
"execution_count": null,
...
...
@@ -22,11 +15,26 @@
"import pandas as pd\n",
"import seaborn as sns\n",
"fol = '/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/'\n",
"sns.set_style(\"ticks\")\n",
"
#
sns.set_style(\"ticks\")\n",
"rcParams['axes.linewidth'] = 0.75\n",
"rcParams['xtick.major.width'] = 0.75\n",
"rcParams['ytick.major.width'] = 0.75\n",
"rcParams['text.usetex']=True"
"# rcParams['text.usetex']=True"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Define colors\n",
"sns.set_palette(sns.color_palette(\"Set2\"))\n",
"grey = (0.6, 0.6, 0.6)\n",
"dark_grey = (0.2, 0.2, 0.2)\n",
"green = pa[0]\n",
"blue = pa[2]\n",
"red = pa[1]"
]
},
{
...
...
@@ -55,6 +63,25 @@
" transparent=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### FRAP geometries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# For radial average: define angles and radial spacing\n",
"alphas = np.linspace(0,2*np.pi, 20)\n",
"ns = np.c_[np.cos(alphas), np.sin(alphas), np.zeros(len(alphas))]\n",
"eps = np.linspace(0, 0.23, 100)"
]
},
{
"cell_type": "code",
"execution_count": null,
...
...
@@ -91,9 +118,6 @@
"metadata": {},
"outputs": [],
"source": [
"alphas = np.linspace(0,2*np.pi, 20)\n",
"ns = np.c_[np.cos(alphas), np.sin(alphas), np.zeros(len(alphas))]\n",
"eps = np.linspace(0, 0.23, 100)\n",
"profs = []\n",
"for i in range(len(f_i)):\n",
"# if i>2:\n",
...
...
@@ -150,7 +174,7 @@
"plt.plot([np.mean(x)/f_i[2].phi_tot_int for x in profs[2]],\n",
" lw=2, label='d=1.5', ls=':')\n",
"plt.plot(range(0, 100), np.ones(100), linestyle='--', color='k')\n",
"plt.title('$
\\Phi_{out}=0.01
}$', size=12)\n",
"plt.title('$
P=99
}$', size=12)\n",
"plt.gca().get_yaxis().set_visible(False)\n",
"save_nice_fig(fol+'Fig3/tot_recov_neighbours_bad.pdf')"
]
...
...
@@ -169,7 +193,7 @@
"plt.plot([np.mean(x)/f_i[5].phi_tot_int for x in profs[5]],\n",
" lw=2, label='d=1.5', ls=':')\n",
"plt.plot(range(0, 100), np.ones(100), linestyle='--', color='k')\n",
"plt.title('$
\\Phi_{out}=0.1}
$', size=12)\n",
"
#
plt.title('$
P=9
$', size=12)\n",
"plt.legend(prop={'size': 9}, frameon=False)\n",
"save_nice_fig(fol+'Fig3/tot_recov_neighbours_good.pdf')"
]
...
...
@@ -255,7 +279,7 @@
" plt.plot([np.mean(x)/f.phi_tot_int for x in profs_cs[i]],\n",
" label='d='+str(z[i]), ls=ls[i], lw=2)\n",
"plt.plot(range(0, 100), np.ones(100), linestyle='--', color='k')\n",
"plt.title('$
\\Phi_{out}=0.01}
$', size=12)\n",
"plt.title('$
P=99
$', size=12)\n",
"plt.gca().get_yaxis().set_visible(False)\n",
"save_nice_fig(fol+'Fig3/tot_recov_cs_bad.pdf')"
]
...
...
@@ -272,7 +296,7 @@
" plt.plot([np.mean(x)/f.phi_tot_int for x in profs_cs[i+3]],\n",
" label='h='+str(z[i]), lw=2, ls=ls[i])\n",
"plt.plot(range(0, 100), np.ones(100), linestyle='--', color='k')\n",
"plt.title('$
\\Phi_{out}=0.1}
$', size=12)\n",
"plt.title('$
P=9
$', size=12)\n",
"plt.legend(prop={'size': 9}, frameon=False)\n",
"save_nice_fig(fol+'Fig3/tot_recov_cs_good.pdf')"
]
...
...
%% Cell type:markdown id: tags:
### FRAP geometries
%% Cell type:code id: tags:
```
python
from
fem_sol
import
frap_solver
from
matplotlib
import
cm
,
rc
,
rcParams
from
matplotlib.ticker
import
MaxNLocator
import
fem_utils
import
matplotlib.pyplot
as
plt
import
numpy
as
np
import
pandas
as
pd
import
seaborn
as
sns
fol
=
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/
'
sns
.
set_style
(
"
ticks
"
)
#
sns.set_style("ticks")
rcParams
[
'
axes.linewidth
'
]
=
0.75
rcParams
[
'
xtick.major.width
'
]
=
0.75
rcParams
[
'
ytick.major.width
'
]
=
0.75
rcParams
[
'
text.usetex
'
]
=
True
# rcParams['text.usetex']=True
```
%% Cell type:code id: tags:
```
python
# Define colors
sns
.
set_palette
(
sns
.
color_palette
(
"
Set2
"
))
grey
=
(
0.6
,
0.6
,
0.6
)
dark_grey
=
(
0.2
,
0.2
,
0.2
)
green
=
pa
[
0
]
blue
=
pa
[
2
]
red
=
pa
[
1
]
```
%% Cell type:code id: tags:
```
python
import
pylab
as
pl
params
=
{
'
legend.fontsize
'
:
9
,
'
legend.handlelength
'
:
1
}
pl
.
rcParams
.
update
(
params
)
def
nice_fig
(
xla
,
yla
,
xli
,
yli
,
size
,
fs
=
12
):
rc
(
'
font
'
,
**
{
'
family
'
:
'
sans-serif
'
,
'
sans-serif
'
:[
'
Helvetica
'
]})
# rc('font',**{'family':'serif','serif':['Palatino']})
plt
.
gcf
().
set_size_inches
(
size
[
0
],
size
[
1
])
plt
.
xlabel
(
xla
,
fontsize
=
fs
)
plt
.
ylabel
(
yla
,
fontsize
=
fs
)
plt
.
xlim
(
xli
)
plt
.
ylim
(
yli
)
plt
.
tick_params
(
axis
=
'
both
'
,
which
=
'
major
'
,
labelsize
=
fs
)
def
save_nice_fig
(
name
):
plt
.
savefig
(
name
,
format
=
'
pdf
'
,
dpi
=
300
,
bbox_inches
=
'
tight
'
,
transparent
=
True
)
```
%% Cell type:markdown id: tags:
### FRAP geometries
%% Cell type:code id: tags:
```
python
# For radial average: define angles and radial spacing
alphas
=
np
.
linspace
(
0
,
2
*
np
.
pi
,
20
)
ns
=
np
.
c_
[
np
.
cos
(
alphas
),
np
.
sin
(
alphas
),
np
.
zeros
(
len
(
alphas
))]
eps
=
np
.
linspace
(
0
,
0.23
,
100
)
```
%% Cell type:code id: tags:
```
python
me
=
[
'
Meshes/multi_drop_gauss.xml
'
,
'
Meshes/multi_drop_gauss_med.xml
'
,
'
Meshes/multi_drop_gauss_far.xml
'
,
'
Meshes/multi_drop_gauss.xml
'
,
'
Meshes/multi_drop_gauss_med.xml
'
,
'
Meshes/multi_drop_gauss_far.xml
'
]
point_lists
=
[[[
4
,
4.5
,
0.5
],
[
4
,
3.5
,
0.5
],
[
3.5
,
4
,
0.5
],
[
4.5
,
4
,
0.5
]],
[[
4
,
5
,
0.5
],
[
4
,
3
,
0.5
],
[
3
,
4
,
0.5
],
[
5
,
4
,
0.5
]],
[[
4
,
5.5
,
0.5
],
[
4
,
2.5
,
0.5
],
[
2.5
,
4
,
0.5
],
[
5.5
,
4
,
0.5
]],
[[
4
,
4.5
,
0.5
],
[
4
,
3.5
,
0.5
],
[
3.5
,
4
,
0.5
],
[
4.5
,
4
,
0.5
]],
[[
4
,
5
,
0.5
],
[
4
,
3
,
0.5
],
[
3
,
4
,
0.5
],
[
5
,
4
,
0.5
]],
[[
4
,
5.5
,
0.5
],
[
4
,
2.5
,
0.5
],
[
2.5
,
4
,
0.5
],
[
5.5
,
4
,
0.5
]]]
phi_tot_int
=
[.
99
,
.
99
,
.
99
,
.
9
,
.
9
,
.
9
]
phi_tot_ext
=
[.
01
,
.
01
,
.
01
,
.
1
,
.
1
,
.
1
]
G_in
=
[
1
,
1
,
1
,
.
1
,
.
1
,
.
1
]
G_out
=
[
1
,
1
,
1
,
0.99
/
0.9
,
0.99
/
0.9
,
0.99
/
0.9
]
f_i
=
[]
for
p
,
m
,
p_i
,
p_e
,
G_i
,
G_o
in
zip
(
point_lists
,
me
,
phi_tot_int
,
phi_tot_ext
,
G_in
,
G_out
):
f
=
frap_solver
([
4
,
4
,
0.5
],
m
,
name
=
'
FRAP_multi_
'
+
m
[:
-
4
]
+
str
(
G_i
),
point_list
=
p
,
T
=
50
,
phi_tot_int
=
p_i
,
phi_tot_ext
=
p_e
,
G_in
=
G_i
,
G_out
=
G_o
)
f
.
solve_frap
()
f_i
.
append
(
f
)
```
%% Cell type:code id: tags:
```
python
alphas
=
np
.
linspace
(
0
,
2
*
np
.
pi
,
20
)
ns
=
np
.
c_
[
np
.
cos
(
alphas
),
np
.
sin
(
alphas
),
np
.
zeros
(
len
(
alphas
))]
eps
=
np
.
linspace
(
0
,
0.23
,
100
)
profs
=
[]
for
i
in
range
(
len
(
f_i
)):
# if i>2:
profs
.
append
([])
for
j
in
range
(
50
):
values
=
[]
fs
=
fem_utils
.
load_time_point
(
f_i
[
i
].
name
+
'
t_p_
'
+
str
(
j
)
+
'
.h5
'
,
f_i
[
i
].
mesh
)
for
n
in
ns
:
values
.
append
([
fs
([
4
,
4
,
0.5
]
+
e
*
n
)
for
e
in
eps
])
profs
[
i
].
append
(
np
.
mean
(
np
.
transpose
(
values
),
1
))
```
%% Cell type:code id: tags:
```
python
np
.
savetxt
(
'
t_p.csv
'
,
profs
,
delimiter
=
'
,
'
)
```
%% Cell type:code id: tags:
```
python
ft
=
f_i
[
1
]
meta_data
=
np
.
r_
[
ft
.
dt
,
ft
.
T
,
eps
]
np
.
savetxt
(
'
meta_data.csv
'
,
meta_data
,
delimiter
=
'
,
'
)
```
%% Cell type:code id: tags:
```
python
plt
.
plot
(
eps
,
np
.
transpose
(
profs
)[:,:])
```
%% Cell type:code id: tags:
```
python
nice_fig
(
'
t [s]
'
,
'
intensity (a.u)
'
,
[
0
,
50
],
[
0
,
1.1
],
[
1.5
,
2
])
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
0
].
phi_tot_int
for
x
in
profs
[
0
]],
lw
=
2
,
label
=
'
d=0.5
'
,
ls
=
'
-
'
)
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
1
].
phi_tot_int
for
x
in
profs
[
1
]],
lw
=
2
,
label
=
'
d=1
'
,
ls
=
'
--
'
)
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
2
].
phi_tot_int
for
x
in
profs
[
2
]],
lw
=
2
,
label
=
'
d=1.5
'
,
ls
=
'
:
'
)
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
plt
.
title
(
'
$
\Phi_{out}=0.01
}$
'
,
size
=
12
)
plt
.
title
(
'
$
P=99
}$
'
,
size
=
12
)
plt
.
gca
().
get_yaxis
().
set_visible
(
False
)
save_nice_fig
(
fol
+
'
Fig3/tot_recov_neighbours_bad.pdf
'
)
```
%% Cell type:code id: tags:
```
python
nice_fig
(
'
t [s]
'
,
'
intensity (a.u)
'
,
[
0
,
30
],
[
0
,
1.1
],
[
1.5
,
2
])
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
3
].
phi_tot_int
for
x
in
profs
[
3
]],
lw
=
2
,
label
=
'
d=0.5
'
,
ls
=
'
-
'
)
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
4
].
phi_tot_int
for
x
in
profs
[
4
]],
lw
=
2
,
label
=
'
d=1
'
,
ls
=
'
--
'
)
plt
.
plot
([
np
.
mean
(
x
)
/
f_i
[
5
].
phi_tot_int
for
x
in
profs
[
5
]],
lw
=
2
,
label
=
'
d=1.5
'
,
ls
=
'
:
'
)
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
plt
.
title
(
'
$
\Phi_{out}=0.1}
$
'
,
size
=
12
)
#
plt.title('$
P=9
$', size=12)
plt
.
legend
(
prop
=
{
'
size
'
:
9
},
frameon
=
False
)
save_nice_fig
(
fol
+
'
Fig3/tot_recov_neighbours_good.pdf
'
)
```
%% Cell type:code id: tags:
```
python
nice_fig
(
'
x [$\mu m$]
'
,
'
intensity (a.u)
'
,
[
0
,
0.25
],
[
0
,
1.1
],
[
3.8
,
2
])
l_sim
=
plt
.
plot
(
eps
,
np
.
transpose
(
profs
[
0
])[:,::
8
]
/
f_i
[
0
].
phi_tot_int
,
'
#1f77b4
'
,
lw
=
2.5
)
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
l_fit
=
plt
.
plot
(
np
.
linspace
(
0
,
0.23
,
100
),
np
.
transpose
(
ml
)[:,::
8
],
ls
=
'
--
'
,
c
=
'
orange
'
,
lw
=
1.5
)
plt
.
legend
([
l_sim
[
0
],
l_fit
[
0
]],
[
'
Simulation
'
,
'
Fit
'
],
prop
=
{
'
size
'
:
9
},
frameon
=
False
)
save_nice_fig
(
fol
+
'
Fig3/spat_recov_neighbours.pdf
'
)
```
%% Cell type:code id: tags:
```
python
# Define parameters for all simulations
point_list
=
[[
4
,
4
,
0.5
],
[
4
,
4
,
1.5
],
[
4
,
4
,
4
],
[
4
,
4
,
0.5
],
[
4
,
4
,
1.5
],
[
4
,
4
,
4
]]
me
=
[
'
coverslip.xml
'
,
'
1_5.xml
'
,
'
symmetric.xml
'
,
'
coverslip.xml
'
,
'
1_5.xml
'
,
'
symmetric.xml
'
]
phi_tot_int
=
[.
99
,
.
99
,
.
99
,
.
9
,
.
9
,
.
9
]
phi_tot_ext
=
[.
01
,
.
01
,
.
01
,
.
1
,
.
1
,
.
1
]
G_in
=
[
1
,
1
,
1
,
.
1
,
.
1
,
.
1
]
G_out
=
[
1
,
1
,
1
,
0.99
/
0.9
,
0.99
/
0.9
,
0.99
/
0.9
]
f_cs
=
[]
# Zip all parameters, iterate
for
p
,
m
,
p_i
,
p_e
,
G_i
,
G_o
in
zip
(
point_list
,
me
,
phi_tot_int
,
phi_tot_ext
,
G_in
,
G_out
):
f_cs
.
append
(
frap_solver
(
p
,
'
Meshes/single_drop_
'
+
m
,
name
=
'
FRAP_
'
+
m
[:
-
4
]
+
str
(
G_i
),
T
=
60
,
phi_tot_int
=
p_i
,
phi_tot_ext
=
p_e
,
G_in
=
G_i
,
G_out
=
G_o
))
f_cs
[
-
1
].
solve_frap
()
```
%% Cell type:code id: tags:
```
python
z
=
[
0.5
,
1.5
,
4
,
0.5
,
1.5
,
4
]
profs_cs
=
[]
for
i
,
z_i
in
enumerate
(
z
):
profs_cs
.
append
([])
for
j
in
range
(
50
):
values
=
[]
fs
=
fem_utils
.
load_time_point
(
f_cs
[
i
].
name
+
'
t_p_
'
+
str
(
j
)
+
'
.h5
'
,
f_cs
[
i
].
mesh
)
for
n
in
ns
:
values
.
append
([
fs
([
4
,
4
,
z_i
]
+
e
*
n
)
for
e
in
eps
])
profs_cs
[
i
].
append
(
np
.
mean
(
np
.
transpose
(
values
),
1
))
```
%% Cell type:code id: tags:
```
python
np
.
savetxt
(
'
t_p_neighbours.csv
'
,
profs_cs
[
0
],
delimiter
=
'
,
'
)
```
%% Cell type:code id: tags:
```
python
nice_fig
(
'
t [s]
'
,
''
,
[
0
,
50
],
[
0
,
1.1
],
[
1.5
,
2
])
ls
=
[
'
-
'
,
'
--
'
,
'
:
'
]
for
i
,
f
in
enumerate
(
f_cs
[
0
:
3
]):
plt
.
plot
([
np
.
mean
(
x
)
/
f
.
phi_tot_int
for
x
in
profs_cs
[
i
]],
label
=
'
d=
'
+
str
(
z
[
i
]),
ls
=
ls
[
i
],
lw
=
2
)
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
plt
.
title
(
'
$
\Phi_{out}=0.01}
$
'
,
size
=
12
)
plt
.
title
(
'
$
P=99
$
'
,
size
=
12
)
plt
.
gca
().
get_yaxis
().
set_visible
(
False
)
save_nice_fig
(
fol
+
'
Fig3/tot_recov_cs_bad.pdf
'
)
```
%% Cell type:code id: tags:
```
python
nice_fig
(
'
t [s]
'
,
'
intensity (a.u)
'
,
[
0
,
30
],
[
0
,
1.1
],
[
1.5
,
2
])
ls
=
[
'
-
'
,
'
--
'
,
'
:
'
]
for
i
,
f
in
enumerate
(
f_cs
[
3
:]):
plt
.
plot
([
np
.
mean
(
x
)
/
f
.
phi_tot_int
for
x
in
profs_cs
[
i
+
3
]],
label
=
'
h=
'
+
str
(
z
[
i
]),
lw
=
2
,
ls
=
ls
[
i
])
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
plt
.
title
(
'
$
\Phi_{out}=0.1}
$
'
,
size
=
12
)
plt
.
title
(
'
$
P=9
$
'
,
size
=
12
)
plt
.
legend
(
prop
=
{
'
size
'
:
9
},
frameon
=
False
)
save_nice_fig
(
fol
+
'
Fig3/tot_recov_cs_good.pdf
'
)
```
%% Cell type:code id: tags:
```
python
ml_neigh
=
np
.
loadtxt
(
'
/Users/hubatsch/Desktop/DropletFRAP/matlab_fit_neigh.csv
'
,
delimiter
=
'
,
'
)
nice_fig
(
'
x [$\mu m$]
'
,
'
intensity (a.u)
'
,
[
0
,
0.25
],
[
0
,
1.1
],
[
3.8
,
2
])
l_sim
=
plt
.
plot
(
eps
,
np
.
transpose
(
profs_cs
[
0
])[:,::
8
]
/
f_cs
[
0
].
phi_tot_int
,
'
#1f77b4
'
,
lw
=
2.5
,
label
=
'
Simulation
'
)
plt
.
plot
(
range
(
0
,
100
),
np
.
ones
(
100
),
linestyle
=
'
--
'
,
color
=
'
k
'
)
l_fit
=
plt
.
plot
(
np
.
linspace
(
0
,
0.23
,
100
),
np
.
transpose
(
ml_neigh
)[:,::
8
],
ls
=
'
--
'
,
c
=
'
orange
'
,
lw
=
1.5
)
plt
.
legend
([
l_sim
[
0
],
l_fit
[
0
]],
[
'
Simulation
'
,
'
Fit
'
],
frameon
=
False
)
save_nice_fig
(
fol
+
'
Fig3/spat_recov_coverslip.pdf
'
)
```
%% Cell type:markdown id: tags:
### Figure 1: Fitting $D_{in}$ and data analysis.
%% Cell type:markdown id: tags:
**Panel: comparison PGL-3 diffusivity with Louise's viscosity**
%% Cell type:code id: tags:
```
python
louise
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig1/Louise.csv
'
)
lars
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig1/Lars.csv
'
)
```
%% Cell type:code id: tags:
```
python
fig
,
ax1
=
plt
.
subplots
()
ax2
=
ax1
.
twinx
()
plt
.
sca
(
ax1
)
sns
.
lineplot
(
x
=
"
conc
"
,
y
=
"
D
"
,
data
=
lars
,
color
=
sns
.
color_palette
()[
1
])
sns
.
scatterplot
(
x
=
"
conc
"
,
y
=
"
D
"
,
data
=
lars
,
color
=
sns
.
color_palette
()[
1
],
alpha
=
0.7
)
plt
.
xlabel
(
'
$c_{salt}\; [mM]$
'
)
plt
.
ylabel
(
'
$D_{in} \;[\mu m^2\cdot s^{-1}]$
'
,
color
=
sns
.
color_palette
()[
1
])
plt
.
yticks
([
0
,
0.05
,
0.1
],
rotation
=
90
,
color
=
sns
.
color_palette
()[
1
])
plt
.
ylim
(
0
,
0.1
)
ax1
.
set_zorder
(
1
)
ax1
.
patch
.
set_visible
(
False
)
plt
.
sca
(
ax2
)
sns
.
lineplot
(
x
=
"
conc
"
,
y
=
"
vis
"
,
data
=
louise
,
color
=
sns
.
color_palette
()[
0
],
label
=
'
data from ref[xxx]
'
)
nice_fig
(
'
c_{salt} [mM]
'
,
'
$\eta^{-1} \;[Pa\cdot s]^{-1}$
'
,
[
40
,
190
],
[
0
,
7.24
],
[
2.3
,
2
])
plt
.
yticks
(
color
=
sns
.
color_palette
()[
0
])
plt
.
ylabel
(
'
$\eta^{-1} \;[Pa\cdot s]^{-1}$
'
,
color
=
sns
.
color_palette
()[
0
])
plt
.
legend
(
frameon
=
False
,
fontsize
=
9
)
save_nice_fig
(
fol
+
'
Fig1/Lars_vs_Louise.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel:coacervates PLYS/ATP, CMD/PLYS**
m
%% Cell type:code id: tags:
```
python
coacervates
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig1/Coacervates.csv
'
)
sns
.
stripplot
(
data
=
coacervates
,
jitter
=
0.35
,
alpha
=
0.8
,
**
{
'
marker
'
:
'
.
'
,
'
size
'
:
8
,
'
edgecolor
'
:
'
black
'
,
'
color
'
:
'
k
'
})
ax
=
sns
.
barplot
(
data
=
coacervates
,
facecolor
=
(
1
,
1
,
1
,
0
),
edgecolor
=
(
0.6
,
0.6
,
0.6
),
errcolor
=
(
0.6
,
0.6
,
0.6
),
capsize
=
.
2
,
ci
=
'
sd
'
,
errwidth
=
1.5
)
plt
.
setp
(
ax
.
lines
,
zorder
=
100
)
nice_fig
(
None
,
'
$D_{in} \;[\mu m^2\cdot s^{-1}]$
'
,
[
None
,
None
],
[
0
,
6
],
[
2.3
,
2
])
plt
.
xticks
([
0
,
1
],
(
'
CMD/PLYS
'
,
'
PLYS/ATP
'
),
rotation
=
20
)
plt
.
xlim
(
-
0.7
,
1.7
)
save_nice_fig
(
fol
+
'
Fig1/Coacervates.pdf
'
)
```
%% Cell type:code id: tags:
```
python
ax
.
patches
```
%% Cell type:markdown id: tags:
**Panel: time course CMD**
%% Cell type:code id: tags:
```
python
CMD
=
np
.
loadtxt
(
fol
+
'
/Fig1/CMD_timecourse.csv
'
,
delimiter
=
'
,
'
)
CMD_fit
=
np
.
loadtxt
(
fol
+
'
/Fig1/CMD_fit_timecourse.csv
'
,
delimiter
=
'
,
'
)
l_sim
=
plt
.
plot
(
CMD
[:,
0
],
CMD
[:,
1
:],
'
#1f77b4
'
,
lw
=
3
,
label
=
'
Simulation
'
)
l_fit
=
plt
.
plot
(
CMD_fit
[:,
0
],
CMD_fit
[:,
1
:],
'
--
'
,
lw
=
2
,
c
=
sns
.
color_palette
()[
1
],
label
=
'
Simulation
'
)
plt
.
plot
(
range
(
0
,
10
),
np
.
ones
(
10
)
*
np
.
min
(
CMD_fit
[:,
1
]),
linestyle
=
'
--
'
,
color
=
'
k
'
,
lw
=
2
)
nice_fig
(
'
x [$\mu m$]
'
,
'
intensity (a.u)
'
,
[
0
,
np
.
max
(
CMD_fit
[:,
0
])],
[
0
,
0.6
],
[
2.3
,
2
])
save_nice_fig
(
fol
+
'
Fig1/CMD_spat_recov.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: time course PGL-3**
%% Cell type:code id: tags:
```
python
PGL
=
np
.
loadtxt
(
fol
+
'
/Fig1/PGL_timecourse.csv
'
,
delimiter
=
'
,
'
)
PGL_fit
=
np
.
loadtxt
(
fol
+
'
/Fig1/PGL_fit_timecourse.csv
'
,
delimiter
=
'
,
'
)
l_sim
=
plt
.
plot
(
PGL
[:,
0
],
PGL
[:,
1
:],
'
#1f77b4
'
,
lw
=
3
,
label
=
'
Simulation
'
)
l_fit
=
plt
.
plot
(
PGL_fit
[:,
0
],
PGL_fit
[:,
1
:],
'
--
'
,
lw
=
2
,
c
=
sns
.
color_palette
()[
1
],
label
=
'
Simulation
'
)
plt
.
plot
(
range
(
0
,
10
),
np
.
ones
(
10
)
*
np
.
min
(
PGL_fit
[:,
1
]),
linestyle
=
'
--
'
,
color
=
'
k
'
,
lw
=
2
)
nice_fig
(
'
x [$\mu m$]
'
,
'
intensity (a.u)
'
,
[
0
,
np
.
max
(
PGL_fit
[:,
0
])],
[
0
,
None
],
[
2.3
,
2
])
save_nice_fig
(
fol
+
'
Fig1/PGL_spat_recov.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: time course total intensity**
%% Cell type:code id: tags:
```
python
PGL
=
np
.
loadtxt
(
fol
+
'
/Fig1/PGL_tot.csv
'
,
delimiter
=
'
,
'
)
ATP
=
np
.
loadtxt
(
fol
+
'
/Fig1/ATP_tot.csv
'
,
delimiter
=
'
,
'
)
CMD
=
np
.
loadtxt
(
fol
+
'
/Fig1/CMD_tot.csv
'
,
delimiter
=
'
,
'
)
# fig, ax1 = plt.subplots()
# ax2 = ax1.twiny()
# plt.sca(ax1)
nice_fig
(
'
$t/T_{max}$
'
,
'
intensity (a.u)
'
,
[
0
,
200
],
[
0
,
0.62
],
[
2.3
,
2
])
# plt.sca(ax2)
# ax2.tick_params(axis="x",direction="in")
plt
.
plot
(
PGL
[::
10
,
0
]
/
np
.
max
(
PGL
[
1
:
-
1
:
2
,
0
]),
PGL
[::
10
,
1
],
label
=
'
PGL-3
'
,
c
=
'
#CC406E
'
,
markersize
=
3
,
alpha
=
0.7
,
lw
=
2
)
plt
.
plot
(
ATP
[::
1
,
0
]
/
np
.
max
(
ATP
[:,
0
]),
ATP
[::
1
,
1
],
label
=
'
PLYS/ATP
'
,
c
=
'
#FF508A
'
,
markersize
=
3
,
alpha
=
0.7
,
lw
=
2
)
plt
.
plot
(
CMD
[::
5
,
0
]
/
np
.
max
(
CMD
[:,
0
]),
CMD
[::
5
,
1
],
label
=
'
CMD/PLYS
'
,
c
=
'
#7F2845
'
,
markersize
=
3
,
alpha
=
0.7
,
lw
=
2
)
plt
.
legend
(
frameon
=
False
,
fontsize
=
9
)
plt
.
xlim
(
0
,
1
)
save_nice_fig
(
fol
+
'
Fig1/tot_recov.pdf
'
)
```
%% Cell type:markdown id: tags:
### Figure 4: Obtaining info about outside: experiments.
%% Cell type:markdown id: tags:
**Panel: data time course with full model.**
%% Cell type:code id: tags:
```
python
PLYS
=
np
.
loadtxt
(
fol
+
'
Fig4/PLYS_timecourse.csv
'
,
delimiter
=
'
,
'
)
PLYS_fit
=
np
.
loadtxt
(
fol
+
'
Fig4/PLYS_fit_timecourse.csv
'
,
delimiter
=
'
,
'
)
l_data
=
plt
.
plot
(
PLYS
[:,
0
],
PLYS
[:,
1
:],
'
#1f77b4
'
,
lw
=
3
,
label
=
'
Experiment
'
)
l_fit
=
plt
.
plot
(
PLYS_fit
[:,
0
],
PLYS_fit
[:,
1
:],
'
--
'
,
lw
=
2
,
c
=
sns
.
color_palette
()[
1
],
label
=
'
Simulation
'
)
nice_fig
(
'
x [$\mu m$]
'
,
'
intensity (a.u)
'
,
[
0
,
2.4
*
np
.
max
(
PLYS
[:,
0
])],
[
0
,
0.5
],
[
2.3
,
2
])
plt
.
legend
([
l_data
[
0
],
l_fit
[
0
]],
[
'
ATP/PLYS
'
,
'
Full model
'
],
frameon
=
False
,
fontsize
=
9
,
handletextpad
=
0.4
,
handlelength
=
0.8
)
save_nice_fig
(
fol
+
'
Fig4/PLYS_spat_recov.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: Experimental Partitioning vs $D_{out}$ for CMD**
%% Cell type:code id: tags:
```
python
PLYS
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PLYS.csv
'
)
CMD
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/CMD.csv
'
)
```
%% Cell type:code id: tags:
```
python
fig
,
ax1
=
plt
.
subplots
()
plt
.
sca
(
ax1
)
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
CMD
,
color
=
sns
.
color_palette
()[
1
],
ci
=
'
sd
'
)
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PLYS
,
color
=
sns
.
color_palette
()[
2
],
ci
=
'
sd
'
)
plt
.
plot
(
np
.
logspace
(
0
,
2
,
10
),
2
*
np
.
logspace
(
0
,
2
,
10
),
'
--
'
,
c
=
'
grey
'
)
ax1
.
set_yscale
(
'
log
'
)
ax1
.
set_xscale
(
'
log
'
)
nice_fig
(
'
Partitioning P
'
,
'
$D_{out} \;[\mu m^2s^{-1}]$
'
,
[
1
,
100
],
[
0.1
,
100
],
[
2.3
,
2
])
plt
.
legend
([
'
CMD/PLYS
'
,
'
PLYS/ATP
'
],
frameon
=
False
,
fontsize
=
9
)
plt
.
xticks
([
1
,
10
,
100
]);
save_nice_fig
(
fol
+
'
Fig4/PLYS_CMD.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: Experimental Partitioning vs $D_out$ for PGL-3**
%% Cell type:code id: tags:
```
python
PGL_50
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_50.csv
'
)
PGL_60
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_60.csv
'
)
PGL_75
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_75.csv
'
)
PGL_90
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_90.csv
'
)
PGL_100
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_100.csv
'
)
PGL_120
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_120.csv
'
)
PGL_150
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_150.csv
'
)
PGL_180
=
pd
.
read_csv
(
'
/Users/hubatsch/Desktop/DropletFRAP/Latex/Figures/Fig4/PGL_180.csv
'
)
```
%% Cell type:code id: tags:
```
python
fig
,
ax1
=
plt
.
subplots
()
plt
.
sca
(
ax1
)
sns
.
set_palette
(
sns
.
color_palette
(
"
Oranges
"
,
9
))
# sns.color_palette("flare", as_cmap=True)
l50
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_50
,
color
=
sns
.
color_palette
()[
1
],
ci
=
None
)
l60
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_60
,
color
=
sns
.
color_palette
()[
2
],
ci
=
None
)
l75
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_75
,
color
=
sns
.
color_palette
()[
3
],
ci
=
None
)
l90
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_90
,
color
=
sns
.
color_palette
()[
4
],
ci
=
None
)
leg1
=
plt
.
legend
([
'
50 mM
'
,
'
60 mM
'
,
'
75 mM
'
,
'
90 mM
'
],
labelspacing
=
0.3
,
loc
=
(
0.65
,
0.0
),
handletextpad
=
0.4
,
handlelength
=
0.5
,
frameon
=
0
)
l100
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_100
,
color
=
sns
.
color_palette
()[
5
],
ci
=
None
)
l120
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_120
,
color
=
sns
.
color_palette
()[
6
],
ci
=
None
)
l150
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_150
,
color
=
sns
.
color_palette
()[
7
],
ci
=
None
)
l180
=
sns
.
lineplot
(
x
=
"
P
"
,
y
=
"
D_out
"
,
data
=
PGL_180
,
color
=
sns
.
color_palette
()[
8
],
ci
=
None
)
plt
.
plot
(
np
.
logspace
(
0
,
3
,
10
),
0.07
*
np
.
logspace
(
0
,
3
,
10
),
'
--
'
,
c
=
'
grey
'
)
ax1
.
set_yscale
(
'
log
'
)
ax1
.
set_xscale
(
'
log
'
)
nice_fig
(
'
Partitioning P
'
,
'
$D_{out} \;[\mu m^2 s^{-1}]$
'
,
[
1
,
1000
],
[
0.0003
,
200
],
[
2.3
,
2
])
plt
.
xticks
([
1
,
10
,
100
,
1000
]);
plt
.
legend
(
loc
=
1
)
plt
.
legend
([
'
50 mM
'
,
'
60 mM
'
,
'
75 mM
'
,
'
90 mM
'
,
'
100 mM
'
,
'
120 mM
'
,
'
150 mM
'
,
'
180 mM
'
],
labelspacing
=
0.3
,
loc
=
(
0
,
0.56
),
handletextpad
=
0.4
,
handlelength
=
0.5
,
frameon
=
0
)
plt
.
gca
().
add_artist
(
leg1
)
save_nice_fig
(
fol
+
'
Fig4/PGL-3.pdf
'
)
```
%% Cell type:markdown id: tags:
### Figure 5: Obtaining info about outside: theory.
%% Cell type:markdown id: tags:
**Panel: Partitioning vs. $D_{out}$, showcasing four different simulation start cases.**
%% Cell type:code id: tags:
```
python
P_Do
=
np
.
loadtxt
(
fol
+
'
/Fig4/Part_vs_Do.csv
'
,
delimiter
=
'
,
'
)
P
=
[
5
,
150
,
5
,
150
]
D_o
=
[
0.1
,
0.1
,
1
,
1
]
plt
.
gca
().
set_prop_cycle
(
None
)
nice_fig
(
'
Partitioning P
'
,
'
$D_{out}$ [$\mu m^2/s$]
'
,
[
0.9
,
320
],
[
0.000001
,
340
],
[
2.3
,
2
])
lines
=
plt
.
loglog
(
P_Do
[
0
,
:],
P_Do
[
1
:,
:].
transpose
())
plt
.
plot
(
P_Do
[
0
,
:],
P_Do
[
0
,
:],
'
--
'
,
c
=
'
grey
'
)
plt
.
legend
([
lines
[
2
],
lines
[
0
],
lines
[
3
],
lines
[
1
]],
[
'
0.2
'
,
'
0.02
'
,
'
0.0067
'
,
'
0.00067
'
],
ncol
=
2
,
frameon
=
False
,
title
=
r
'
\underline{$D_{out}$/P [$\mu m^2/s$]:}
'
,
columnspacing
=
0.5
,
labelspacing
=
0.3
,
loc
=
(
0.4
,
0
),
handletextpad
=
0.4
,
handlelength
=
0.5
)
plt
.
gca
().
set_prop_cycle
(
None
)
plt
.
plot
(
P
[
0
],
D_o
[
0
],
'
d
'
)
plt
.
plot
(
P
[
1
],
D_o
[
1
],
'
d
'
)
plt
.
plot
(
P
[
2
],
D_o
[
2
],
'
d
'
)
plt
.
plot
(
P
[
3
],
D_o
[
3
],
'
d
'
)
plt
.
annotate
(
'
$D_{out}$/P = 1 $\mu m^2/s$
'
,
[
1
,
40
],
c
=
'
grey
'
)
plt
.
xticks
([
1
,
10
,
100
]);
save_nice_fig
(
fol
+
'
Fig4/D_vs_P.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: Cost function**
%% Cell type:code id: tags:
```
python
P_Cost
=
np
.
loadtxt
(
fol
+
'
/Fig4/Part_vs_Cost.csv
'
,
delimiter
=
'
,
'
)
nice_fig
(
'
Partitioning P
'
,
'
Cost function [a.u.]
'
,
[
0.9
,
320
],
[
0.000000001
,
0.01
],
[
2.3
,
2
])
lines
=
plt
.
loglog
(
P_Cost
[
0
,
:],
P_Cost
[
1
:,
:].
transpose
())
plt
.
legend
([
lines
[
2
],
lines
[
0
],
lines
[
3
],
lines
[
1
]],
[
'
0.2
'
,
'
0.02
'
,
'
0.0067
'
,
'
0.00067
'
],
ncol
=
2
,
frameon
=
False
,
title
=
r
'
\underline{$D_{out}$/P set to:}
'
,
columnspacing
=
0.5
,
labelspacing
=
0.3
,
loc
=
(
0.081
,
0
),
handletextpad
=
0.4
,
handlelength
=
0.5
)
plt
.
xticks
([
1
,
10
,
100
]);
save_nice_fig
(
fol
+
'
Fig4/D_vs_Cost.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: Valley in parameter space**
%% Cell type:code id: tags:
```
python
con
=
np
.
loadtxt
(
fol
+
'
Fig4/Valley.csv
'
,
delimiter
=
'
,
'
)
levels
=
MaxNLocator
(
nbins
=
15
).
tick_values
(
np
.
log10
(
con
[:,
2
:].
min
()),
np
.
log10
(
con
[:,
2
:].
max
()))
nice_fig
(
'
Partitioning P
'
,
'
$D_{out} \;[\mu m^2 s^{-1}]$
'
,
[
1
,
3
],
[
-
2
,
1
],
[
2.3
,
2
])
CS
=
plt
.
contourf
(
np
.
log10
(
con
[:,
0
]),
np
.
log10
(
con
[:,
1
]),
np
.
log10
(
con
[:,
2
:]),
levels
=
levels
,
cmap
=
cm
.
coolwarm
)
plt
.
plot
(
np
.
log10
(
150
),
np
.
log10
(
10
**-
1
),
'
y*
'
,
label
=
'
Initial Simul.
'
,
markersize
=
3
)
plt
.
legend
(
loc
=
(
0
,
0.83
),
frameon
=
False
,
handletextpad
=
0.4
)
plt
.
xticks
([
1
,
2
,
3
],
[
'
$10^1$
'
,
'
$10^2$
'
,
'
$10^3$
'
])
plt
.
yticks
([
-
2
,
-
1
,
0
,
1
],
[
'
$10^{-2}$
'
,
'
$10^{-1}$
'
,
'
$10^0$
'
,
'
$10^1$
'
])
plt
.
tick_params
(
'
x
'
,
pad
=
5
)
fig1
=
plt
.
gcf
()
clb
=
fig1
.
colorbar
(
CS
,
ticks
=
[
0
,
-
2
,
-
4
,
-
6
])
clb
.
ax
.
set_title
(
'
Cost
'
)
save_nice_fig
(
fol
+
'
Fig4/Sim_D_out_P.pdf
'
)
```
%% Cell type:markdown id: tags:
**Panel: Zoom in for valley in parameter space**
%% Cell type:code id: tags:
```
python
levels
=
MaxNLocator
(
nbins
=
15
).
tick_values
(
np
.
log10
(
con
[:,
2
:].
min
()),
np
.
log10
(
con
[:,
2
:].
max
()))
nice_fig
(
'
Partitioning P
'
,
''
,
[
1.9
,
2.4
],
[
-
1.5
,
-
0.5
],
[
2.3
,
2
])
CS
=
plt
.
contourf
(
np
.
log10
(
con
[
16
:
-
27
,
0
]),
np
.
log10
(
con
[
16
:
-
27
,
1
]),
np
.
log10
(
con
[
16
:
-
27
,
2
+
16
:
-
27
]),
levels
=
levels
,
cmap
=
cm
.
coolwarm
,
vmax
=-
1.5
)
plt
.
plot
(
np
.
log10
(
150
),
np
.
log10
(
10
**-
1
),
'
y*
'
,
label
=
'
Initial Simul.
'
,
markersize
=
3
)
plt
.
legend
(
loc
=
(
0
,
0.83
),
frameon
=
False
,
handletextpad
=
0.4
)
plt
.
xticks
([
2
,
2.25
],
[
'
$10^2$
'
,
'
$10^{2.25}$
'
])
plt
.
yticks
([
-
1.5
,
-
1
,
-
0.5
],
[
'
$10^{-1.5}$
'
,
'
$10^{-1}$
'
,
'
$10^{-0.5}$
'
])
plt
.
tick_params
(
'
x
'
,
pad
=
5
)
fig1
=
plt
.
gcf
()
clb
=
fig1
.
colorbar
(
CS
,
ticks
=
[
-
2
,
-
4
,
-
6
])
clb
.
ax
.
set_title
(
'
Cost
'
)
save_nice_fig
(
fol
+
'
Fig4/Sim_D_out_P_inset.pdf
'
)
```
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment