Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
T
Tsinghua
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package Registry
Model registry
Operate
Terraform modules
Analyze
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
Zhefu Li
Tsinghua
Commits
3243075a
Commit
3243075a
authored
5 months ago
by
Zhefu Li
Browse files
Options
Downloads
Patches
Plain Diff
Update model.html
parent
b1c54e77
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
wiki/pages/model.html
+535
-309
535 additions, 309 deletions
wiki/pages/model.html
with
535 additions
and
309 deletions
wiki/pages/model.html
+
535
−
309
View file @
3243075a
...
...
@@ -356,87 +356,85 @@
is more meaningful than the calculation results.
</p>
<button
id=
"Button1"
onclick=
"toggleCodeSnippet1()"
>
Inhalation.m
</button>
<div
id=
"codeSnippet1"
class=
"code-snippet"
>
% Define parameters
Q_inhale = 100; % mg
k_exhale = 10;
k_perm = 0.005;
k_adh = 0.001;
k_diffMC = 0.01;
k_diffLC = 0.05;
k_dist = 0.001;
k_excrete = 0.05;
k_move = 0.02;
% Define the time range
tspan = [0 300]; % From 0 to 5 minutes
initial_conditions = [0 0 0 0 0]; % The initial condition is 0
% solve ODE
[t, y] = ode45(@(t,y) odefun(t, y, Q_inhale, k_exhale, k_perm, k_adh, k_diffMC, k_diffLC, k_dist,
k_excrete, k_move), tspan, initial_conditions);
% calculate V_inhale
V_inhale = Q_inhale / 5 * (heaviside(t) - heaviside(t-5));
figure('Position', [100, 100, 1200, 1000]);
% V_inhale(t)
subplot(3,2,1)
plot(t, V_inhale)
title('V_{inhale}(t)')
xlabel('Time (s)')
ylabel('V_{inhale}')
% Q_A(t)
subplot(3,2,2)
plot(t, y(:,1))
title('Q_A(t)')
xlabel('Time (s)')
ylabel('Q_A')
% Q_L(t)
subplot(3,2,3)
plot(t, y(:,2))
title('Q_L(t)')
xlabel('Time (s)')
ylabel('Q_L')
% Q_M(t)
subplot(3,2,4)
plot(t, y(:,3))
title('Q_M(t)')
xlabel('Time (s)')
ylabel('Q_M')
% Q_C(t)
subplot(3,2,5)
plot(t, y(:,4))
title('Q_C(t)')
xlabel('Time (s)')
ylabel('Q_C')
% Q_I(t)
subplot(3,2,6)
plot(t, y(:,5))
title('Q_I(t)')
xlabel('Time (s)')
ylabel('Q_I')
sgtitle('Simulation Results')
% ODE
function dydt = odefun(t, y, Q_inhale, k_exhale, k_perm, k_adh, k_diffMC, k_diffLC, k_dist,
k_excrete, k_move)
V_inhale = Q_inhale / 5 * (heaviside(t) - heaviside(t-5));
dydt = zeros(5,1);
dydt(1) = V_inhale - (k_exhale + k_perm) * y(1); % dQ_A/dt
dydt(2) = k_perm * y(1) - k_diffLC * y(2); % dQ_L/dt
dydt(3) = 0.0005 * k_adh * V_inhale - k_diffMC * y(3); % dQ_M/dt
dydt(4) = k_diffMC * y(3) + k_diffLC * y(2) - k_dist * y(4) - k_excrete * y(4); % dQ_C/dt
dydt(5) = k_dist * y(4) - k_move * y(5); % dQ_I/dt
end
</div>
<div
id=
"codeSnippet1"
class=
"code-snippet"
>
% Define parameters
Q_inhale = 100; % mg
k_exhale = 10;
k_perm = 0.005;
k_adh = 0.001;
k_diffMC = 0.01;
k_diffLC = 0.05;
k_dist = 0.001;
k_excrete = 0.05;
k_move = 0.02;
% Define the time range
tspan = [0 300]; % From 0 to 5 minutes
initial_conditions = [0 0 0 0 0]; % The initial condition is 0
% solve ODE
[t, y] = ode45(@(t,y) odefun(t, y, Q_inhale, k_exhale, k_perm, k_adh, k_diffMC, k_diffLC, k_dist,
k_excrete, k_move), tspan, initial_conditions);
% calculate V_inhale
V_inhale = Q_inhale / 5 * (heaviside(t) - heaviside(t-5));
figure('Position', [100, 100, 1200, 1000]);
% V_inhale(t)
subplot(3,2,1)
plot(t, V_inhale)
title('V_{inhale}(t)')
xlabel('Time (s)')
ylabel('V_{inhale}')
% Q_A(t)
subplot(3,2,2)
plot(t, y(:,1))
title('Q_A(t)')
xlabel('Time (s)')
ylabel('Q_A')
% Q_L(t)
subplot(3,2,3)
plot(t, y(:,2))
title('Q_L(t)')
xlabel('Time (s)')
ylabel('Q_L')
% Q_M(t)
subplot(3,2,4)
plot(t, y(:,3))
title('Q_M(t)')
xlabel('Time (s)')
ylabel('Q_M')
% Q_C(t)
subplot(3,2,5)
plot(t, y(:,4))
title('Q_C(t)')
xlabel('Time (s)')
ylabel('Q_C')
% Q_I(t)
subplot(3,2,6)
plot(t, y(:,5))
title('Q_I(t)')
xlabel('Time (s)')
ylabel('Q_I')
sgtitle('Simulation Results')
% ODE
function dydt = odefun(t, y, Q_inhale, k_exhale, k_perm, k_adh, k_diffMC, k_diffLC, k_dist,
k_excrete, k_move)
V_inhale = Q_inhale / 5 * (heaviside(t) - heaviside(t-5));
dydt = zeros(5,1);
dydt(1) = V_inhale - (k_exhale + k_perm) * y(1); % dQ_A/dt
dydt(2) = k_perm * y(1) - k_diffLC * y(2); % dQ_L/dt
dydt(3) = 0.0005 * k_adh * V_inhale - k_diffMC * y(3); % dQ_M/dt
dydt(4) = k_diffMC * y(3) + k_diffLC * y(2) - k_dist * y(4) - k_excrete * y(4); % dQ_C/dt
dydt(5) = k_dist * y(4) - k_move * y(5); % dQ_I/dt
end
</div>
<script>
function
toggleCodeSnippet1
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet1
"
);
...
...
@@ -514,22 +512,21 @@
<button
id=
"Button2"
onclick=
"toggleCodeSnippet2()"
>
DNA sequence of Or5an6
</button>
<div
id=
"codeSnippet2"
class=
"code-snippet"
>
>
NC_000085.7:12371629-12372576 Mus musculus strain C57BL/6J chromosome 19, GRCm39
ATGCCTGGAGGGAGGAATAGCACAGTCATCACCAAGTTCATCCTTGTGGGATTCTCAGATTTTCCAAAGC
TCAAGCTGGTTCTCTTTGTTATCTTCCTGGGAAGTTATCTCTCCACAGTGGTGTGGAACTTGGGCCTCAT
CATCTTGATTAGGATTGACCCTTACCTACACACACCTATGTACTTCTTCCTCAGCAATTTGTCATTTTTA
GATTTCTGTTACATTTCATCTACAACCCCTAAAATGCTCTCGGGATTCTTCCAGAAGTCTAAATCTATCT
CCTTTGTTGGGTGCACCATGCAGTACTTCATCTTCTCAAGCCTGGGTCTGTCCGAATGCTGCCTTCTGGC
AGCCATGGCTTATGACCGGTATGCTGCCATTTGTAATCCTCTTCTCTACACAGCCATCATGTCCCCGTCA
CTCTGTGTGCACATGGTGGTTGGAGCCTATAGTACTGGTCTCTTGGGTTCATTGATTCAACTGTGTGCTA
TACTTCAGCTCCATTTCTGTGGGCCAAATATTATAAACCATTTCTTTTGTGACCTGCCTCAGCTATTAGT
TCTTTCCTGCTCTGAAACCTTTCCCCTGCAAGTCTTGAAATTTGTAATAGCAGTGATTTTTGGGGTGGCA
TCTGTCATTGTTATCCTGATATCCTATGGTTATATCATTGGCACAATCCTGAATATCAGCTCAGTAGAAG
GTAGGTCCAAGGCATTCAATACCTGTGCCTCTCACCTGACAGCAGTCACCCTCTTTTTTGGATCAGGACT
CTTTGTCTATATGCGCCCCAGCTCCAACAGTTCCCAGGGTTATGACAAGATGGCTTCCGTGTTCTATACA
GTGGTGATTCCCATGTTGAATCCTCTGATTTATAGTCTCAGGAACAAGGAAATAAAAGATGCTCTTCAGA
GATGTAAAAATAAGTGCTTTTCTCAGTGCCACTGTTAG
</div>
>
NC_000085.7:12371629-12372576 Mus musculus strain C57BL/6J chromosome 19, GRCm39
ATGCCTGGAGGGAGGAATAGCACAGTCATCACCAAGTTCATCCTTGTGGGATTCTCAGATTTTCCAAAGC
TCAAGCTGGTTCTCTTTGTTATCTTCCTGGGAAGTTATCTCTCCACAGTGGTGTGGAACTTGGGCCTCAT
CATCTTGATTAGGATTGACCCTTACCTACACACACCTATGTACTTCTTCCTCAGCAATTTGTCATTTTTA
GATTTCTGTTACATTTCATCTACAACCCCTAAAATGCTCTCGGGATTCTTCCAGAAGTCTAAATCTATCT
CCTTTGTTGGGTGCACCATGCAGTACTTCATCTTCTCAAGCCTGGGTCTGTCCGAATGCTGCCTTCTGGC
AGCCATGGCTTATGACCGGTATGCTGCCATTTGTAATCCTCTTCTCTACACAGCCATCATGTCCCCGTCA
CTCTGTGTGCACATGGTGGTTGGAGCCTATAGTACTGGTCTCTTGGGTTCATTGATTCAACTGTGTGCTA
TACTTCAGCTCCATTTCTGTGGGCCAAATATTATAAACCATTTCTTTTGTGACCTGCCTCAGCTATTAGT
TCTTTCCTGCTCTGAAACCTTTCCCCTGCAAGTCTTGAAATTTGTAATAGCAGTGATTTTTGGGGTGGCA
TCTGTCATTGTTATCCTGATATCCTATGGTTATATCATTGGCACAATCCTGAATATCAGCTCAGTAGAAG
GTAGGTCCAAGGCATTCAATACCTGTGCCTCTCACCTGACAGCAGTCACCCTCTTTTTTGGATCAGGACT
CTTTGTCTATATGCGCCCCAGCTCCAACAGTTCCCAGGGTTATGACAAGATGGCTTCCGTGTTCTATACA
GTGGTGATTCCCATGTTGAATCCTCTGATTTATAGTCTCAGGAACAAGGAAATAAAAGATGCTCTTCAGA
GATGTAAAAATAAGTGCTTTTCTCAGTGCCACTGTTAG
</div>
<script>
function
toggleCodeSnippet2
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet2
"
);
...
...
@@ -548,15 +545,14 @@
<button
id=
"Button3"
onclick=
"toggleCodeSnippet3()"
>
Protein sequence of Or5an6
</button>
<div
id=
"codeSnippet3"
class=
"code-snippet"
>
>
sp|Q8VFV4|O5AN6_MOUSE Olfactory receptor 5AN6 OS=Mus musculus OX=10090 GN=Or5an6
PE=2 SV=1
MPGGRNSTVITKFILVGFSDFPKLKLVLFVIFLGSYLSTVVWNLGLIILIRIDPYLHTPM
YFFLSNLSFLDFCYISSTTPKMLSGFFQKSKSISFVGCTMQYFIFSSLGLSECCLLAAMA
YDRYAAICNPLLYTAIMSPSLCVHMVVGAYSTGLLGSLIQLCAILQLHFCGPNIINHFFC
DLPQLLVLSCSETFPLQVLKFVIAVIFGVASVIVILISYGYIIGTILNISSVEGRSKAFN
TCASHLTAVTLFFGSGLFVYMRPSSNSSQGYDKMASVFYTVVIPMLNPLIYSLRNKEIKD
ALQRCKNKCFSQCHC
</div>
>
sp|Q8VFV4|O5AN6_MOUSE Olfactory receptor 5AN6 OS=Mus musculus OX=10090 GN=Or5an6
PE=2 SV=1
MPGGRNSTVITKFILVGFSDFPKLKLVLFVIFLGSYLSTVVWNLGLIILIRIDPYLHTPM
YFFLSNLSFLDFCYISSTTPKMLSGFFQKSKSISFVGCTMQYFIFSSLGLSECCLLAAMA
YDRYAAICNPLLYTAIMSPSLCVHMVVGAYSTGLLGSLIQLCAILQLHFCGPNIINHFFC
DLPQLLVLSCSETFPLQVLKFVIAVIFGVASVIVILISYGYIIGTILNISSVEGRSKAFN
TCASHLTAVTLFFGSGLFVYMRPSSNSSQGYDKMASVFYTVVIPMLNPLIYSLRNKEIKD
ALQRCKNKCFSQCHC
</div>
<script>
function
toggleCodeSnippet3
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet3
"
);
...
...
@@ -607,18 +603,16 @@
(
<code>
size_x, size_y, size_z
</code>
).
<button
id=
"Button4"
onclick=
"toggleCodeSnippet4()"
>
config.txt
</button>
<div
id=
"codeSnippet4"
class=
"code-snippet"
>
receptor = MOR215_1.pdbqt
ligand = muscone.pdbqt
center_x = -0.112
center_y = -0.219
center_z = -2.092
size_x = 40
size_y = 40
size_z = 40
exhaustiveness= 8
out=muscure.pdbqt
</div>
<div
id=
"codeSnippet4"
class=
"code-snippet"
>
receptor = MOR215_1.pdbqt
ligand = muscone.pdbqt
center_x = -0.112
center_y = -0.219
center_z = -2.092
size_x = 40
size_y = 40
size_z = 40
exhaustiveness= 8
out=muscure.pdbqt
</div>
<script>
function
toggleCodeSnippet4
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet4
"
);
...
...
@@ -724,15 +718,15 @@
<li>
Solvate the system in solvent (such as water). From
<code>
topol.top
</code>
, it is known that the
net charge is 9; add counterions to neutralize the system.
</li>
<pre><code>
gmx editconf -f complex.gro -o newbox.gro -bt dodecahedron -d 1.0
gmx solvate -cp newbox.gro -cs spc216.gro -p topol.top -o solv.gro
gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr
gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname NA -nname CL -neutral
</code></pre>
gmx solvate -cp newbox.gro -cs spc216.gro -p topol.top -o solv.gro
gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr
gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname NA -nname CL -neutral
</code></pre>
<pre><code>
[ molecules ]
; Compound #mols
Protein_chain_A 1
MUS 1
SOL 31227
CL 9
</code></pre>
; Compound #mols
Protein_chain_A 1
MUS 1
SOL 31227
CL 9
</code></pre>
</ul>
<h4>
3. Energy minimization:
</h4>
...
...
@@ -743,17 +737,17 @@
energy minimization results to ensure both the maximum force and potential energy are within
reasonable thresholds.
</li>
<pre><code>
gmx grompp -f em.mdp -c solv_ions.gro -p topol.top -o em.tpr
gmx mdrun -v -deffnm em
Steepest Descents converged to Fmax
<
1000 in 1182 steps
Potential Energy = -1.5345670e+06
Maximum force = 8.9675085e+02 on atom 4987
Norm of force = 1.3456365e+01
</code></pre>
gmx mdrun -v -deffnm em
Steepest Descents converged to Fmax
<
1000 in 1182 steps
Potential Energy = -1.5345670e+06
Maximum force = 8.9675085e+02 on atom 4987
Norm of force = 1.3456365e+01
</code></pre>
<pre><code>
gmx energy -f em.edr -o potential.xvg
#11 0
xmgrace potential.xvg
dit xvg_show -f potential.xvg
</code></pre>
#11 0
xmgrace potential.xvg
dit xvg_show -f potential.xvg
</code></pre>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/potential.png"
alt=
"potential"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
...
...
@@ -772,22 +766,20 @@
</ul>
<pre><code>
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -n index.ndx -o nvt.tpr
gmx mdrun -deffnm nvt
gmx energy -f nvt.edr -o temperature.xvg
#16 0
dit xvg_show -f temperature.xvg
</code></pre>
gmx mdrun -deffnm nvt
gmx energy -f nvt.edr -o temperature.xvg
#16 0
dit xvg_show -f temperature.xvg
</code></pre>
<img
src=
"2.temperature.png"
alt=
""
>
<img
src=
"temperature.png"
alt=
""
>
<pre><code>
gmx grompp -f npt.mdp -c nvt.gro -t nvt.cpt -r nvt.gro -p topol.top -n index.ndx -o npt.tpr -maxwarn 1
gmx mdrun -deffnm npt
gmx energy -f npt.edr -o pressure.xvg
#17 0
gmx energy -f npt.edr -o density.xvg
#23 0
dit xvg_show -f temperature.xvg
</code></pre>
gmx mdrun -deffnm npt
gmx energy -f npt.edr -o pressure.xvg
#17 0
gmx energy -f npt.edr -o density.xvg
#23 0
dit xvg_show -f temperature.xvg
</code></pre>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/pressure.png"
alt=
"pressure"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
...
...
@@ -851,10 +843,9 @@
</ul>
<pre><code>
gmx trjconv -s md_0_10.tpr -f md_0_10.xtc -o md_0_10_center.xtc -center -pbc mol -ur compact
#1 0
gmx trjconv -s md_0_10.tpr -f md_0_10_center.xtc -o start.pdb -dump 0
#0
</code></pre>
#1 0
gmx trjconv -s md_0_10.tpr -f md_0_10_center.xtc -o start.pdb -dump 0
#0
</code></pre>
<ul>
<li>
In PyMOL, key interactions of the protein-ligand system can be visualized through selection and
...
...
@@ -863,14 +854,13 @@
</ul>
<pre><code>
# Pymol
select water, resn SOL
select ions, resn CL
select protein, not water and not ions
select ligand, resn MUS
deselect
cmd.rotate('x', 45)
cmd.rotate('y', 45)
</code></pre>
select water, resn SOL
select ions, resn CL
select protein, not water and not ions
select ligand, resn MUS
deselect
cmd.rotate('x', 45)
cmd.rotate('y', 45)
</code></pre>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/start.png"
alt=
"start.pdb"
class=
"shadowed-image"
style=
"width: 100%; max-width: 1000px;"
>
...
...
@@ -883,10 +873,9 @@
</ul>
<pre><code>
gmx trjconv -s md_0_10.tpr -f md_0_10_center.xtc -o md_0_10_fit.xtc -fit rot+trans
#4 0
gmx trjconv -s md_0_10.tpr -f md_0_10_fit.xtc -o traj.pdb -dt 10
#0
</code></pre>
#4 0
gmx trjconv -s md_0_10.tpr -f md_0_10_fit.xtc -o traj.pdb -dt 10
#0
</code></pre>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/muscure.gif"
alt=
"Trajectory Analysis"
...
...
@@ -903,23 +892,22 @@
</ul>
<pre><code>
gmx distance -s md_0_10.tpr -f md_0_10_center.xtc -select 'resname "MUS" and name O plus resid 51 and name NH1' -oall
gmx make_ndx -f em.gro -o index.ndx
> 13
&
a O
> 1
&
r 51
&
a NH1
> 1
&
r 51
&
a CZ
> 20 | 21 | 22
> q
gmx angle -f md_0_10_center.xtc -n index.ndx -ov angle.xvg
gmx make_ndx -f em.gro -n index.ndx
> 13
&
! a H*
> name MUS_Heavy
> q
gmx rms -s em.tpr -f md_0_10_center.xtc -n index.ndx -tu ns -o rmsd_mus.xvg
xmgrace rmsd_mus.xvg
dit xvg_show -f rmsd_mus.xvg
xmgrace rmsd_mus.xvg
</code></pre>
gmx make_ndx -f em.gro -o index.ndx
> 13
&
a O
> 1
&
r 51
&
a NH1
> 1
&
r 51
&
a CZ
> 20 | 21 | 22
> q
gmx angle -f md_0_10_center.xtc -n index.ndx -ov angle.xvg
gmx make_ndx -f em.gro -n index.ndx
> 13
&
! a H*
> name MUS_Heavy
> q
gmx rms -s em.tpr -f md_0_10_center.xtc -n index.ndx -tu ns -o rmsd_mus.xvg
xmgrace rmsd_mus.xvg
dit xvg_show -f rmsd_mus.xvg
xmgrace rmsd_mus.xvg
</code></pre>
<ul>
<li>
From the RMSD curve, it can be observed that the system stabilizes after approximately 1
...
...
@@ -944,9 +932,8 @@
</ul>
<pre><code>
gmx gyrate -s md_0_10.tpr -f md_0_10_fit.xtc -o gyrate.xvg
#1
xmgrace gyrate.xvg
</code></pre>
#1
xmgrace gyrate.xvg
</code></pre>
<ul>
<li>
In the simulation, the Rg value of the protein remained between 2.2 and 2.25 nanometers,
...
...
@@ -968,21 +955,20 @@
</ul>
<pre><code>
gmx make_ndx -f em.gro -o index.ndx
> 1 | 13
gmx grompp -f ie.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o ie.tpr
gmx mdrun -deffnm ie -rerun md_0_10.xtc -nb cpu
gmx energy -f ie.edr -o interaction_energy.xvg
Energy Average Err.Est. RMSD Tot-Drift
-------------------------------------------------------------------------------
Coul-SR:Protein-MUS 0.0439222 0.38 2.88794 1.41131 (kJ/mol)
LJ-SR:Protein-MUS -81.3724 1.6 9.75743 1.99715 (kJ/mol)
#21 | 22
xmgrace interaction_energy.xvg
dit xvg_show -f interaction_energy.xvg
</code></pre>
> 1 | 13
gmx grompp -f ie.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o ie.tpr
gmx mdrun -deffnm ie -rerun md_0_10.xtc -nb cpu
gmx energy -f ie.edr -o interaction_energy.xvg
Energy Average Err.Est. RMSD Tot-Drift
-------------------------------------------------------------------------------
Coul-SR:Protein-MUS 0.0439222 0.38 2.88794 1.41131 (kJ/mol)
LJ-SR:Protein-MUS -81.3724 1.6 9.75743 1.99715 (kJ/mol)
#21 | 22
xmgrace interaction_energy.xvg
dit xvg_show -f interaction_energy.xvg
</code></pre>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/energy.png"
alt=
"Interaction Energy Plot"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
...
...
@@ -1213,58 +1199,56 @@
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 19 Receptor Activation
</p>
<button
id=
"Button5"
onclick=
"toggleCodeSnippet5()"
>
receptor.m
</button>
<div
id=
"codeSnippet5"
class=
"code-snippet"
>
% parameter setting
kon_PS = 0.185;
koff_PS = 1e-3;
kon_SG = 0.1;
koff_GS = 0.1;
koff_SG = 0.1;
kon_GS = 0.01;
% initial value setting
Pheromone = 0.3;
Ste2 = 0.287;
Pheromone_Ste2 = 0.0;
Gpa1_Ste4Ste18 = 1.0;
Pheromone_Ste2_Gpa1_Ste4Ste18 = 0.0;
Pheromone_Ste2_Gpa1 = 0.0;
Ste4Ste18 = 2e-4;
Gpa1 = 2e-4;
% time setting
tspan = [0 500];
% Define the systems of ordinary differential equations
odefun = @(t, y) [ koff_PS*y(3)-kon_PS*y(1)*y(2);
koff_PS*y(3)-kon_PS*y(1)*y(2);
kon_PS*y(1)*y(2)+koff_SG*y(6)-koff_PS*y(3)-kon_SG*y(3)*y(4);
kon_GS*y(7)*y(8)-kon_SG*y(3)*y(4);
kon_SG*y(3)*y(4)-koff_GS*y(5);
koff_GS*y(5)-koff_SG*y(6);
koff_GS*y(5)-kon_GS*y(7)*y(8);
koff_SG*y(6)-kon_GS*y(7)*y(8);
];
% Find the numerical solution of the system of ordinary differential equations
[t, Y] = ode45(odefun, tspan,
[Pheromone,Ste2,Pheromone_Ste2,Gpa1_Ste4Ste18,Pheromone_Ste2_Gpa1_Ste4Ste18,Pheromone_Ste2_Gpa1,Ste4Ste18,Gpa1,]);
% plot the results
figure;
plot(t, Y(:,1), 'DisplayName', 'Pheromone', 'LineWidth', 2); hold on;
plot(t, Y(:,2), 'DisplayName', 'Ste2', 'LineWidth', 2);
plot(t, Y(:,3), 'DisplayName', 'PS', 'LineWidth', 2);
plot(t, Y(:,4), 'DisplayName', 'GS', 'LineWidth', 2);
plot(t, Y(:,5), 'DisplayName', 'PSGS', 'LineWidth', 2);
plot(t, Y(:,6), 'DisplayName', 'PSG', 'LineWidth', 2);
plot(t, Y(:,7), 'DisplayName', 'Ste4Ste18', 'LineWidth', 2);
plot(t, Y(:,8), 'DisplayName', 'Gpa1', 'LineWidth', 2);
xlabel('Time');
ylabel('Concentration');
title('Dynamics of Variables Over Time');
legend('show');
grid on;
</div>
<div
id=
"codeSnippet5"
class=
"code-snippet"
>
% parameter setting
kon_PS = 0.185;
koff_PS = 1e-3;
kon_SG = 0.1;
koff_GS = 0.1;
koff_SG = 0.1;
kon_GS = 0.01;
% initial value setting
Pheromone = 0.3;
Ste2 = 0.287;
Pheromone_Ste2 = 0.0;
Gpa1_Ste4Ste18 = 1.0;
Pheromone_Ste2_Gpa1_Ste4Ste18 = 0.0;
Pheromone_Ste2_Gpa1 = 0.0;
Ste4Ste18 = 2e-4;
Gpa1 = 2e-4;
% time setting
tspan = [0 500];
% Define the systems of ordinary differential equations
odefun = @(t, y) [ koff_PS*y(3)-kon_PS*y(1)*y(2);
koff_PS*y(3)-kon_PS*y(1)*y(2);
kon_PS*y(1)*y(2)+koff_SG*y(6)-koff_PS*y(3)-kon_SG*y(3)*y(4);
kon_GS*y(7)*y(8)-kon_SG*y(3)*y(4);
kon_SG*y(3)*y(4)-koff_GS*y(5);
koff_GS*y(5)-koff_SG*y(6);
koff_GS*y(5)-kon_GS*y(7)*y(8);
koff_SG*y(6)-kon_GS*y(7)*y(8);
];
% Find the numerical solution of the system of ordinary differential equations
[t, Y] = ode45(odefun, tspan,
[Pheromone,Ste2,Pheromone_Ste2,Gpa1_Ste4Ste18,Pheromone_Ste2_Gpa1_Ste4Ste18,Pheromone_Ste2_Gpa1,Ste4Ste18,Gpa1,]);
% plot the results
figure;
plot(t, Y(:,1), 'DisplayName', 'Pheromone', 'LineWidth', 2); hold on;
plot(t, Y(:,2), 'DisplayName', 'Ste2', 'LineWidth', 2);
plot(t, Y(:,3), 'DisplayName', 'PS', 'LineWidth', 2);
plot(t, Y(:,4), 'DisplayName', 'GS', 'LineWidth', 2);
plot(t, Y(:,5), 'DisplayName', 'PSGS', 'LineWidth', 2);
plot(t, Y(:,6), 'DisplayName', 'PSG', 'LineWidth', 2);
plot(t, Y(:,7), 'DisplayName', 'Ste4Ste18', 'LineWidth', 2);
plot(t, Y(:,8), 'DisplayName', 'Gpa1', 'LineWidth', 2);
xlabel('Time');
ylabel('Concentration');
title('Dynamics of Variables Over Time');
legend('show');
grid on;
</div>
<script>
function
toggleCodeSnippet5
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet5
"
);
...
...
@@ -1433,60 +1417,58 @@
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 20 Scaffold Formation
</p>
<button
id=
"Button6"
onclick=
"toggleCodeSnippet6()"
>
scaffold.m
</button>
<div
id=
"codeSnippet6"
class=
"code-snippet"
>
% parameter setting
kon_S5S5 = 0.1;
koff_S5S5 = 0.01;
kon_S4S5_S5 = 0.05;
koff_S4S5_S5 = 0.01;
kon_S4S5_S5S4 = 0.03;
koff_S4S5_S5S4 = 0.01;
kon_S4S5 = 0.2;
koff_S4S5 = 0.1;
kon_S4_S5S5 = 0.1;
koff_S4_S5S5 = 0.05;
kon_S4_S5S5S4 = 0.05;
koff_S4_S5S5S4 = 0.02;
% initial value setting
Ste5 = 1.0;
Ste5_Ste5 = 0.0;
Ste4Ste18_Ste5 = 0.0;
Ste4Ste18_Ste5_Ste5 = 0.0;
Ste4Ste18_Ste5_Ste5_Ste4Ste18 = 0.0;
Ste4Ste18 = 1.0;
% time setting
tspan = [0 100];
% Define the systems of ordinary differential equations
odefun = @(t, y) [
-2*kon_S5S5*y(1)^2+2*koff_S5S5*y(2)-kon_S4S5*y(1)*y(6)+koff_S4S5*y(3)-kon_S4S5_S5*y(1)*y(3)+koff_S4S5_S5*y(4);
kon_S5S5*y(1)^2-koff_S5S5*y(2)-kon_S4_S5S5*y(2)*y(6)+koff_S4_S5S5*y(4);
kon_S4S5*y(1)*y(6)-koff_S4S5*y(3)-kon_S4S5_S5*y(1)*y(3)+koff_S4S5_S5*y(4)-2*kon_S4S5_S5S4*y(3)^2+2*koff_S4S5_S5S4*y(5);
kon_S4_S5S5*y(2)*y(6)-koff_S4_S5S5*y(4)+kon_S4S5_S5*y(1)*y(3)-koff_S4S5_S5*y(4)-kon_S4_S5S5S4*y(4)*y(6)+koff_S4_S5S5S4*y(5);
kon_S4_S5S5S4*y(4)*y(6)-koff_S4_S5S5S4*y(5)+kon_S4S5_S5S4*y(3)^2-koff_S4S5_S5S4*y(5);
-kon_S4S5*y(1)*y(6)+koff_S4S5*y(3)-kon_S4_S5S5*y(2)*y(6)+koff_S4_S5S5*y(4)-kon_S4_S5S5S4*y(4)*y(6)+koff_S4_S5S5S4*y(5);
];
% Find the numerical solution of the system of ordinary differential equations
[t, Y] = ode45(odefun, tspan, [Ste5, Ste5_Ste5, Ste4Ste18_Ste5, Ste4Ste18_Ste5_Ste5,
Ste4Ste18_Ste5_Ste5_Ste4Ste18, Ste4Ste18]);
% plot the results
figure;
plot(t, Y(:,1), 'DisplayName', 'Ste5', 'LineWidth', 2); hold on;
plot(t, Y(:,2), 'DisplayName', 'Ste5Ste5', 'LineWidth', 2);
plot(t, Y(:,3), 'DisplayName', 'Ste4Ste18Ste5', 'LineWidth', 2);
plot(t, Y(:,4), 'DisplayName', 'Ste4Ste18Ste5Ste5', 'LineWidth', 2);
plot(t, Y(:,5), 'DisplayName', 'Ste4Ste18Ste5Ste5Ste4Ste18', 'LineWidth', 2);
plot(t, Y(:,6), 'DisplayName', 'Ste4Ste18', 'LineWidth', 2);
xlabel('Time');
ylabel('Concentration');
title('Dynamics of Variables Over Time');
legend('show');
grid on
</div>
<div
id=
"codeSnippet6"
class=
"code-snippet"
>
% parameter setting
kon_S5S5 = 0.1;
koff_S5S5 = 0.01;
kon_S4S5_S5 = 0.05;
koff_S4S5_S5 = 0.01;
kon_S4S5_S5S4 = 0.03;
koff_S4S5_S5S4 = 0.01;
kon_S4S5 = 0.2;
koff_S4S5 = 0.1;
kon_S4_S5S5 = 0.1;
koff_S4_S5S5 = 0.05;
kon_S4_S5S5S4 = 0.05;
koff_S4_S5S5S4 = 0.02;
% initial value setting
Ste5 = 1.0;
Ste5_Ste5 = 0.0;
Ste4Ste18_Ste5 = 0.0;
Ste4Ste18_Ste5_Ste5 = 0.0;
Ste4Ste18_Ste5_Ste5_Ste4Ste18 = 0.0;
Ste4Ste18 = 1.0;
% time setting
tspan = [0 100];
% Define the systems of ordinary differential equations
odefun = @(t, y) [
-2*kon_S5S5*y(1)^2+2*koff_S5S5*y(2)-kon_S4S5*y(1)*y(6)+koff_S4S5*y(3)-kon_S4S5_S5*y(1)*y(3)+koff_S4S5_S5*y(4);
kon_S5S5*y(1)^2-koff_S5S5*y(2)-kon_S4_S5S5*y(2)*y(6)+koff_S4_S5S5*y(4);
kon_S4S5*y(1)*y(6)-koff_S4S5*y(3)-kon_S4S5_S5*y(1)*y(3)+koff_S4S5_S5*y(4)-2*kon_S4S5_S5S4*y(3)^2+2*koff_S4S5_S5S4*y(5);
kon_S4_S5S5*y(2)*y(6)-koff_S4_S5S5*y(4)+kon_S4S5_S5*y(1)*y(3)-koff_S4S5_S5*y(4)-kon_S4_S5S5S4*y(4)*y(6)+koff_S4_S5S5S4*y(5);
kon_S4_S5S5S4*y(4)*y(6)-koff_S4_S5S5S4*y(5)+kon_S4S5_S5S4*y(3)^2-koff_S4S5_S5S4*y(5);
-kon_S4S5*y(1)*y(6)+koff_S4S5*y(3)-kon_S4_S5S5*y(2)*y(6)+koff_S4_S5S5*y(4)-kon_S4_S5S5S4*y(4)*y(6)+koff_S4_S5S5S4*y(5);
];
% Find the numerical solution of the system of ordinary differential equations
[t, Y] = ode45(odefun, tspan, [Ste5, Ste5_Ste5, Ste4Ste18_Ste5, Ste4Ste18_Ste5_Ste5,
Ste4Ste18_Ste5_Ste5_Ste4Ste18, Ste4Ste18]);
% plot the results
figure;
plot(t, Y(:,1), 'DisplayName', 'Ste5', 'LineWidth', 2); hold on;
plot(t, Y(:,2), 'DisplayName', 'Ste5Ste5', 'LineWidth', 2);
plot(t, Y(:,3), 'DisplayName', 'Ste4Ste18Ste5', 'LineWidth', 2);
plot(t, Y(:,4), 'DisplayName', 'Ste4Ste18Ste5Ste5', 'LineWidth', 2);
plot(t, Y(:,5), 'DisplayName', 'Ste4Ste18Ste5Ste5Ste4Ste18', 'LineWidth', 2);
plot(t, Y(:,6), 'DisplayName', 'Ste4Ste18', 'LineWidth', 2);
xlabel('Time');
ylabel('Concentration');
title('Dynamics of Variables Over Time');
legend('show');
grid on
</div>
<script>
function
toggleCodeSnippet6
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet6
"
);
...
...
@@ -1669,9 +1651,194 @@
<p>
The concentrations of the three kinases are known, assuming their initial state has not undergone
phosphorylation. Some enzyme activity parameters are known, and other parameters are roughly
estimated to the same order of magnitude.
</p>
<p>
TODO: Insert result figure
</p>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/3-3.png"
alt=
"Combination of kinases and scaffold"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
</div>
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 21 Combination of kinases and
scaffold
</p>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/3-4.png"
alt=
"Ste11 phosphorylation"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
</div>
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 22 Ste11 phosphorylation
</p>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/3-5.png"
alt=
"Ste11 phosphorylation"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
</div>
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 23 Ste7 phosphorylation
</p>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/3-6.png"
alt=
"Fus3 phosphorylation"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
</div>
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 24 Fus3 phosphorylation
</p>
<button
id=
"Button7"
onclick=
"toggleCodeSnippet7()"
>
cascade.m
</button>
<div
id=
"codeSnippet7"
class=
"code-snippet"
>
% initial value setting
scaffold_Ste5 = 0.5;
Ste5_off_Ste11 = scaffold_Ste5;
Ste11_off = 0.2;
Ste5_Ste11 = 0.0;
Ste5_off_Ste7 = scaffold_Ste5;
Ste7_off = 0.05;
Ste5_Ste7 = 0.0;
Ste5_off_Fus3 = scaffold_Ste5;
Fus3_off = 0.088;
Ste5_Fus3 = 0.0;
Ste11 = Ste11_off;
Ste11_pS = 0;
Ste11_pSpS = 0;
Ste11_pSpSpT = 0;
Ste7 = Ste7_off;
Ste7_pS = 0;
Ste7_pSpT = 0;
Fus3 = Fus3_off;
Fus3_pY = 0;
Fus3_pT = 0;
Fus3_pYpT = 0;
% parameter setting
kon_Ste5_Ste11 = 0.1; % Ste5_off_Ste11 + Ste11_off -> Ste5_Ste11
koff_Ste5_Ste11 = 0.2; % Ste5_Ste11 -> Ste5_off_Ste11 + Ste11_off
kon_Ste5_Ste7 = 0.3; % Ste5_off_Ste7 + Ste7_off -> Ste5_Ste7
koff_Ste5_Ste7 = 0.4; % Ste5_Ste7 -> Ste5_off_Ste7 + Ste7_off
kon_Ste5_Fus3 = 0.5; % Ste5_off_Fus3 + Fus3_off -> Ste5_Fus3
koff_Ste5_Fus3 = 0.6; % Ste5_Fus3 -> Ste5_off_Fus3 + Fus3_off
kcat_Ste20Ste11_pS = 1.8438; % Ste11 -> Ste11_pS
kcat_Ste20Ste11pS_pS = 1.8438; % Ste11_pS -> Ste11_pSpS
kcat_Ste20Ste11pSpS_pT = 1.8438; % Ste11_pSpS -> Ste11_pSpSpT
kcat_Ste11pSSte7_pS = 1; % Ste11_pS + Ste7 -> Ste7_pS
kcat_Ste11pSSte7pS_pT = 0.5; % Ste11_pS + Ste7_pS -> Ste7_pSpT
kcat_Ste11pSpSSte7_pS = 2; % Ste11_pSpS + Ste7 -> Ste7_pS
kcat_Ste11pSpSSte7pS_pT = 1.5; % Ste11_pSpS + Ste7_pS -> Ste7_pSpT
kcat_Ste11pSpSpTSte7_pS = 3; % Ste11_pSpSpT + Ste7 -> Ste7_pS
kcat_Ste11pSpSpTSte7pS_pT = 2.5; % Ste11_pSpSpT + Ste7_pS -> Ste7_pSpT
kcat_Ste5Ste7pSFus3_pY = 2.6079; % Ste7_pS + Fus3 -> Fus3_pY
kcat_Ste5Ste7pSFus3_pT = 2.6079; % Ste7_pS + Fus3 -> Fus3_pT
kcat_Ste5Ste7pSFus3pY_pT = 2.6079; % Ste7_pS + Fus3_pY -> Fus3_pYpT
kcat_Ste5Ste7pSFus3pT_pY = 2.6079; % Ste7_pS + Fus3_pT -> Fus3_pYpT
kcat_Ste5Ste7pSpTFus3_pY = 0.86812; % Ste7_pSpT + Fus3 -> Fus3_pY
kcat_Ste5Ste7pSpTFus3_pT = 6.7879; % Ste7_pSpT + Fus3 -> Fus3_pT
kcat_Ste5Ste7pSpTFus3pY_pT = 3.5252; % Ste7_pSpT + Fus3_pY -> Fus3_pYpT
kcat_Ste5Ste7pSpTFus3pT_pY = 1.5; % Ste7_pSpT + Fus3_pT -> Fus3_pYpT
kcat_dephosph = 0.1;
% time setting
tspan = [0 40];
% Define the systems of ordinary differential equations
odefun = @(t, y) [
koff_Ste5_Ste11*y(3)-kon_Ste5_Ste11*y(1)*y(2); % Ste5_off_Ste11 y(1)
koff_Ste5_Ste11*y(3)-kon_Ste5_Ste11*y(1)*y(2); % Ste11_off y(2)
-koff_Ste5_Ste11*y(3)+kon_Ste5_Ste11*y(1)*y(2); % Ste5_Ste11 y(3)
koff_Ste5_Ste7*y(6)-kon_Ste5_Ste7*y(4)*y(5); % Ste5_off_Ste7 y(4)
koff_Ste5_Ste7*y(6)-kon_Ste5_Ste7*y(4)*y(5); % Ste7_off y(5)
-koff_Ste5_Ste7*y(6)+kon_Ste5_Ste7*y(4)*y(5); % Ste5_Ste7 y(6)
koff_Ste5_Fus3*y(9)-kon_Ste5_Fus3*y(7)*y(8); % Ste5_off_Fus3 y(7)
koff_Ste5_Fus3*y(9)-kon_Ste5_Fus3*y(7)*y(8); % Fus3_off y(8)
-koff_Ste5_Fus3*y(9)+kon_Ste5_Fus3*y(7)*y(8); % Ste5_Fus3 y(9)
-kcat_Ste20Ste11_pS*scaffold_Ste5*(y(3)*y(10)/(y(2)+y(3))^2)+kcat_dephosph*y(11); % Ste11 y(10)
kcat_Ste20Ste11_pS*scaffold_Ste5*(y(3)*y(10)/(y(2)+y(3))^2)-kcat_Ste20Ste11pS_pS*scaffold_Ste5*(y(3)*y(11)/(y(2)+y(3))^2)-kcat_dephosph*y(11)+kcat_dephosph*y(12);
% Ste11_pS y(11)
kcat_Ste20Ste11pS_pS*scaffold_Ste5*(y(3)*y(11)/(y(2)+y(3))^2)-kcat_Ste20Ste11pSpS_pT*scaffold_Ste5*(y(3)*y(12)/(y(2)+y(3))^2)-kcat_dephosph*y(12)+kcat_dephosph*y(13);
% Ste11_pSpS y(12)
kcat_Ste20Ste11pSpS_pT*scaffold_Ste5*(y(3)*y(12)/(y(2)+y(3))^2)-kcat_dephosph*y(13); % Ste11_pSpSpT
y(13)
-kcat_Ste11pSSte7_pS*y(11)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)-kcat_Ste11pSpSSte7_pS*y(12)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)-kcat_Ste11pSpSpTSte7_pS*y(13)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)+kcat_dephosph*y(15);
% Ste7 y(14)
kcat_Ste11pSSte7_pS*y(11)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)-kcat_Ste11pSSte7pS_pT*y(11)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)+kcat_Ste11pSpSSte7_pS*y(12)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)-kcat_Ste11pSpSSte7pS_pT*y(12)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)+kcat_Ste11pSpSpTSte7_pS*y(13)*(y(3)/(y(2)+y(3)))*(y(6)*y(14)/(y(5)+y(6))^2)-kcat_Ste11pSpSpTSte7pS_pT*y(13)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)-kcat_dephosph*y(15)+kcat_dephosph*y(16);
% Ste7_pS y(15)
kcat_Ste11pSSte7pS_pT*y(11)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)+kcat_Ste11pSpSSte7pS_pT*y(12)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)+kcat_Ste11pSpSpTSte7pS_pT*y(13)*(y(3)/(y(2)+y(3)))*(y(6)*y(15)/(y(5)+y(6))^2)-kcat_dephosph*y(16);
% Ste7_pSpT y(16)
-kcat_Ste5Ste7pSFus3_pY*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSFus3_pT*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSpTFus3_pY*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSpTFus3_pT*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)+kcat_dephosph*y(18)+kcat_dephosph*y(19);
% Fus3 y(17)
kcat_Ste5Ste7pSFus3_pY*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSFus3pY_pT*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(18)/(y(8)+y(9))^2)+kcat_Ste5Ste7pSpTFus3_pY*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSpTFus3pY_pT*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(18)/(y(8)+y(9))^2)-kcat_dephosph*y(18)+kcat_dephosph*y(20);
% Fus3_pY y(18)
kcat_Ste5Ste7pSFus3_pT*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSFus3pT_pY*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(19)/(y(8)+y(9))^2)+kcat_Ste5Ste7pSpTFus3_pT*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(17)/(y(8)+y(9))^2)-kcat_Ste5Ste7pSpTFus3pT_pY*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(19)/(y(8)+y(9))^2)-kcat_dephosph*y(19)+kcat_dephosph*y(20);
% Fus3_pT y(19)
kcat_Ste5Ste7pSFus3pY_pT*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(18)/(y(8)+y(9))^2)+kcat_Ste5Ste7pSFus3pT_pY*y(15)*(y(6)/(y(5)+y(6)))*(y(9)*y(19)/(y(8)+y(9))^2)+kcat_Ste5Ste7pSpTFus3pY_pT*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(18)/(y(8)+y(9))^2)+kcat_Ste5Ste7pSpTFus3pT_pY*y(16)*(y(6)/(y(5)+y(6)))*(y(9)*y(19)/(y(8)+y(9))^2)-2*kcat_dephosph*y(20);
% Fus3_pYpT y(20)
];
% Find the numerical solution of the system of ordinary differential equations
[t, Y] = ode45(odefun, tspan, [Ste5_off_Ste11; Ste11_off; Ste5_Ste11; Ste5_off_Ste7; Ste7_off;
Ste5_Ste7; Ste5_off_Fus3; Fus3_off; Ste5_Fus3; Ste11; Ste11_pS; Ste11_pSpS; Ste11_pSpSpT; Ste7;
Ste7_pS; Ste7_pSpT; Fus3; Fus3_pY; Fus3_pT; Fus3_pYpT]);
figure;
hold on;
plot(t, Y(:, 1), 'LineWidth', 2, 'DisplayName', 'Ste5_{off_{Ste11}}');
plot(t, Y(:, 2), 'LineWidth', 2, 'DisplayName', 'Ste11_{off}');
plot(t, Y(:, 3), 'LineWidth', 2, 'DisplayName', 'Ste5Ste11');
plot(t, Y(:, 4), 'LineWidth', 2, 'DisplayName', 'Ste5_{off_{Ste7}}');
plot(t, Y(:, 5), 'LineWidth', 2, 'DisplayName', 'Ste7_{off}');
plot(t, Y(:, 6), 'LineWidth', 2, 'DisplayName', 'Ste5Ste7');
plot(t, Y(:, 7), 'LineWidth', 2, 'DisplayName', 'Ste5_{off_{Fus3}}');
plot(t, Y(:, 8), 'LineWidth', 2, 'DisplayName', 'Fus3_{off}');
plot(t, Y(:, 9), 'LineWidth', 2, 'DisplayName', 'Ste5Fus3');
xlabel('Time (t)');
ylabel('Concentration');
title('Variable Change Graph');
legend show;
grid on;
hold off;
figure;
hold on;
plot(t, Y(:, 10), 'LineWidth', 2, 'DisplayName', 'Ste11');
plot(t, Y(:, 11), 'LineWidth', 2, 'DisplayName', 'Ste11_{pS}');
plot(t, Y(:, 12), 'LineWidth', 2, 'DisplayName', 'Ste11_{pSpS}');
plot(t, Y(:, 13), 'LineWidth', 2, 'DisplayName', 'Ste11_{pSpSpT}');
xlabel('Time (t)');
ylabel('Concentration');
title('Ste11 Variable Change Graph');
legend show;
grid on;
hold off;
figure;
hold on;
plot(t, Y(:, 14), 'LineWidth', 2, 'DisplayName', 'Ste7');
plot(t, Y(:, 15), 'LineWidth', 2, 'DisplayName', 'Ste7_{pS}');
plot(t, Y(:, 16), 'LineWidth', 2, 'DisplayName', 'Ste7_{pSpT}');
xlabel('Time (t)');
ylabel('Concentration');
title('Ste7 Variable Change Graph');
legend show;
grid on;
hold off;
figure;
hold on;
plot(t, Y(:, 17), 'LineWidth', 2, 'DisplayName', 'Fus3');
plot(t, Y(:, 18), 'LineWidth', 2, 'DisplayName', 'Fus3_{pY}');
plot(t, Y(:, 19), 'LineWidth', 2, 'DisplayName', 'Fus3_{pT}');
plot(t, Y(:, 20), 'LineWidth', 2, 'DisplayName', 'Fus3_{pYpT}');
xlabel('Time (t)');
ylabel('Concentration');
title('Fus3 Variable Change Graph');
legend show;
grid on;
hold off;
</div>
<script>
function
toggleCodeSnippet7
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet7
"
);
var
button
=
document
.
getElementById
(
"
Button7
"
);
// 注意变量名通常使用小写开头
if
(
codeSnippet
.
style
.
display
===
"
none
"
)
{
codeSnippet
.
style
.
display
=
"
block
"
;
button
.
textContent
=
"
Collapse the code
"
;
// 使用之前选中的按钮元素
}
else
{
codeSnippet
.
style
.
display
=
"
none
"
;
button
.
textContent
=
"
Expand the code
"
;
// 使用之前选中的按钮元素
}
}
</script>
</div>
</div>
...
...
@@ -1751,8 +1918,67 @@
\[ Q_{d_i} = \frac{a}{n} \sum_{m=1}^{i-1} e^{-(k_1 + k_2)\left(mt - \left(j \frac{(m+2)(m+1)}{2}
\frac{t_0}{n}\right)\right)} \]
</p>
<p>
TODO: Insert result graph
</p>
<div
class=
"image-container"
>
<img
src=
"https://static.igem.wiki/teams/5187/wiki-model-fig/4-1.png"
alt=
"lactate Absorption"
class=
"shadowed-image"
style=
"width: 80%; max-width: 800px;"
>
</div>
<p
style=
"text-align: center; font-size: 0.9em; margin-top: 10px;"
>
fig 25 lactate Absorption
</p>
<button
id=
"Button8"
onclick=
"toggleCodeSnippet8()"
>
lactate.m
</button>
<div
id=
"codeSnippet8"
class=
"code-snippet"
>
% Parameter settings
Qd0 = 0; % Initial lactic acid level
a = 50; % Total amount of lactic acid administered
k1 = 0.1; % Absorption rate of lactic acid
k2 = 0.05; % Metabolism and excretion rate of lactic acid
t0 = 20; % Total time
n = 10; % Number of induced secretions
time_step = 0.1; % Time step
% Time array
t = 0:time_step:t0;
% Direct administration simulation
Qd_direct = (Qd0 + a) * exp(-(k1 + k2) * t);
% Induced secretion simulation
Qd_induced = zeros(1, length(t));
for i = 1:n
% Calculate the time point for each induced secretion
current_time = (i-1) * (t0 / n);
if current_time
<
=
t0
%
Update
concentration
for
j =
1:length(t)
if
t
(
j
)
>
= current_time
Qd_induced(j) = Qd_induced(j) + a/n * exp(-(k1 + k2) * (t(j) - current_time));
end
end
end
end
% Plot results
figure;
hold on;
plot(t, Qd_direct, 'r-', 'LineWidth', 2, 'DisplayName', 'Direct Administration');
plot(t, Qd_induced, 'b-', 'LineWidth', 2, 'DisplayName', 'Induced Secretion');
xlabel('Time (t)');
ylabel('Intestinal Lactate Level (Qd)');
title('Lactate Concentration Change Curve');
legend;
grid on;
hold off;
</div>
<script>
function
toggleCodeSnippet8
()
{
var
codeSnippet
=
document
.
getElementById
(
"
codeSnippet8
"
);
var
button
=
document
.
getElementById
(
"
Button8
"
);
// 注意变量名通常使用小写开头
if
(
codeSnippet
.
style
.
display
===
"
none
"
)
{
codeSnippet
.
style
.
display
=
"
block
"
;
button
.
textContent
=
"
Collapse the code
"
;
// 使用之前选中的按钮元素
}
else
{
codeSnippet
.
style
.
display
=
"
none
"
;
button
.
textContent
=
"
Expand the code
"
;
// 使用之前选中的按钮元素
}
}
</script>
<p>
By simulating the absorption process of lactate, we can conclude that in the case of direct
administration, the concentration of lactate decreases exponentially over time, while in the
case of induced secretion, the concentration of lactate slowly increases over time and reaches
...
...
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