www.gusucode.com > simbio 案例源码程序 matlab代码 > simbio/ModelGeneRegulationPathwayExample.m

    %% Model Gene Regulation Pathway
% 

% Copyright 2015 The MathWorks, Inc.


%% Create a model.
% 
clear all
Mobj = sbiomodel('cell')

%% Add a compartment.
% 
compObj = addcompartment(Mobj,'comp');
compObj.CapacityUnits = 'liter';

%% Add a reaction for transcription.
% 
Robj1 = addreaction(Mobj,'DNA -> DNA + mRNA');

%% Display species.
% 
Mobj.Species

%% Set initial amount for species DNA.
% 
Mobj.Species(1).InitialAmount       = 50;
Mobj.Species(1).InitialAmountUnits  = 'molecule';
Mobj.Species(2).InitialAmountUnits  = 'molecule';
%% Add kinetic law.
% 
Kobj1 = addkineticlaw(Robj1,'MassAction');

%% Display parameterVariables.
% 
Kobj1.ParameterVariables

%% Display speciesVariables.
% 
Kobj1.SpeciesVariables

%% Create a parameter k1.
% 
Pobj1               = addparameter(Kobj1,'k1');
Pobj1.Value         = 0.2;
Pobj1.ValueUnits    = '1/second';
Kobj1.ParameterVariableNames = 'k1';

%% Display speciesVariableNames.
% 
Kobj1.SpeciesVariableNames 

%% Display reaction rate of Robj1.
% 
Robj1.ReactionRate

%% Add a reaction for translation and set its kinetic law.
% 
Robj2 = addreaction(Mobj,'mRNA -> mRNA + protein');
Mobj.Species(3).InitialAmountUnits = 'molecule';
Kobj2 = addkineticlaw(Robj2,'MassAction');
%% Define the reaction rate constant k2 for the reaction. 
%
Pobj2               = addparameter(Kobj2,'k2');
Pobj2.Value         = 20;
Pobj2.ValueUnits    = '1/second';
Kobj2.ParameterVariableNames = 'k2';

%% Display the reaction rate of Robj2.
% 
Robj2.ReactionRate

%% Add reactions for gene regulation.
% 
Robj3 = addreaction(Mobj,'DNA + protein <-> DNAProteinComplex');
Mobj.Species(4).InitialAmountUnits = 'molecule';
Kobj3 = addkineticlaw(Robj3,'MassAction');
Pobj3 = addparameter(Kobj3,'k3','Value',0.2,'ValueUnits','1/(molecule*second)');
Pobj3r = addparameter(Kobj3,'k3r','Value',1.0,'ValueUnits','1/second');
Kobj3.ParameterVariableNames = {'k3','k3r'};
%% Display the reaction rate of Robj3.
% 
Robj3.ReactionRate

%% Add reactions for mRNA degradation to nucleotides.
% 
Robj4 = addreaction(Mobj,'mRNA -> null');
Kobj4 = addkineticlaw(Robj4, 'MassAction');
Pobj4 = addparameter(Kobj4,'k4','Value',1.5,'ValueUnits','1/second');
Kobj4.ParameterVariableNames = 'k4';
%% Display the reaction rate of Robj4.
% 
Robj4.ReactionRate

%% Add reaction for protein degradation to amino acids.
% 
Robj5 = addreaction(Mobj,'protein -> null');
Kobj5 = addkineticlaw(Robj5,'MassAction');
Pobj5 = addparameter(Kobj5,'k5','Value',1.0,'ValueUnits','1/second');
Kobj5.ParameterVariableNames = 'k5';

%% Display the reaction rate of Robj5.
% 
Robj5.ReactionRate

%% Turn on unit conversion by using the configset object.
% 
configset = getconfigset(Mobj);
configset.CompileOptions.UnitConversion = true;

%% Simulate the model.
% 
[t, simdata, names] = sbiosimulate(Mobj);

%% Plot the results.
% 
plot(t,simdata)
legend(names,'Location','NorthEastOutside')
title('Gene Regulation');
xlabel('Time');
ylabel('Species Amount');

%%
%