Можно визуализировать модель системной биологии с различными уровнями детализации. Эскизы представления только главные разновидности и процессы. Эта модель является примером простой регуляции генов, где продукт белка от перевода управляет записью. Вы могли создать более сложную модель путем добавления ферментов, коэнзимов, кофакторов, нуклеотидов и аминокислот, которые не включены в эту модель. Пример регуляции генов упрощает регулирующий механизм, не показывая вклады полимеразы RNA и любых кофакторов. Продукт белка от экспрессии гена связывает с регулирующей областью на ДНК и подавляет запись.
Другой способ посмотреть на модель системной биологии состоит в том, чтобы перечислить реакции в модели с процессами, которые они представляют.
DNA -> DNA + mRNA (transcription) mRNA -> mRNA + protein (translation) DNA + protein -> DNAProteinComplex (binding) DNAProteinComplex -> DNA + protein (unbinding) mRNA -> null (degradation) protein -> null (degradation)
Рисование трасс реакции поможет вам визуализировать отношения между реакциями и разновидностями. В примере регуляции генов, когда сумма белка увеличивается, белок формирует комплекс с геном, ответственным за его выражение, и замедляет производство белка.
Уравнения реакции задают модель системной биологии в уровне детализации, необходимом для программы, чтобы симулировать динамическое поведение модели. Следующие реакции для записи, перевод, привязка и ухудшение описывают простой регулирующий ген механизм.
Запись. Запись - то, где RNApolymerase и кофакторы связывают с Молекулой ДНК. RNApolymerase затем проходит ДНК и комбинирует нуклеотиды, чтобы создать mRNA. Простая модель записи показывает только ДНК и mRNA.
Эта модель упрощает запись и синтез mRNA при помощи одной реакции.
Реакция | DNA -> DNA + mRNA |
Скорость реакции | v = k1 * DNA молекула/секунда |
Разновидности | DNA = 50 молекула |
mRNA = 0 молекула | |
Параметры | k1 = 0.20 второй 1 |
Перевод. После того, как mRNA перемещается от ядра до цитоплазмы, это может связать с рибосомами. Рибосомы проходят mRNA и создают белки с помощью тРНК, связанных с аминокислотами. Простая модель перевода показывает только продукт белка и mRNA.
Синтез белка моделируется как одна реакция.
Реакция | mRNA -> mRNA + protein |
Скорость реакции | v = k2 * mRNA молекула/секунда |
Разновидности | mRNA = 0 молекула |
protein = 0 молекула | |
Параметры | k2 = 20 второй 1 |
Генная Репрессия. Запись ДНК к mRNA отрегулирована привязкой продукта белка от перевода до ДНК. Когда больше белка производится, ДНК связывается с белком чаще, и меньше времени доступно для записи с несвязанной ДНК.
Прямая реакция (привязка)
Реакция | DNA + protein -> DNAProteinComplex |
Скорость реакции | v = k3 * DNA * protein молекула/секунда |
Разновидности | DNA = 50 молекула |
protein = 0 молекула | |
Параметры | k3 = 0.2 1/(molecule*second) |
Противоположная реакция (развязывание)
Реакция | DNAProteinComplex -> DNA + protein |
Скорость реакции | v = k3r * DNA_protein молекула/секунда |
Разновидности | DNAProteinComplex = 0 молекула |
Параметры | k3r = 1 второй 1 |
Для этого примера смоделируйте привязку и развязывание реакций как одна обратимая реакция.
Реакция | DNA + protein <-> DNA_protein |
Скорость реакции | v = k3 * DNA * protein - k3r * DNA_protein молекула/секунда |
Разновидности | DNA = 50 молекула |
protein = 0 молекула | |
Параметры | k3 = 0.2 1/(second*molecule) |
k3r = 1 второй 1 |
Ухудшение. Белок и mRNA ухудшение являются важными реакциями для регулирования экспрессии гена. Установившийся уровень этих составных объектов обеспечен балансом между реакциями ухудшения и синтезом. Белки гидролизируются к аминокислотам с помощью протеаз, и нуклеиновые кислоты ухудшаются к нуклеотидам.
ухудшение mRNA моделируется как преобразование к null
разновидности.
Реакция | mRNA -> null |
Скорость реакции | v = k4 * mRNA молекула/секунда |
Разновидности | mRNA = 0 молекула |
Параметры | k4 = 1.5 второй 1 |
Аналогично, ухудшение белка также моделируется как преобразование к null
разновидности. Разновидности null
предопределенное имя разновидностей в моделях SimBiology®.
Реакция | protein -> null |
Скорость реакции | v = k5 * protein молекула/секунда |
Разновидности | protein = 0 молекула |
Параметры | k5 = 1 второй 1 |
Модель SimBiology является набором объектов, которые структурированы иерархически. Объект модели необходим, чтобы содержать все другие объекты.
Создайте модель SimBiology с именем cell
.
Mobj = sbiomodel('cell')
Mobj = SimBiology Model - cell Model Components: Compartments: 0 Events: 0 Parameters: 0 Reactions: 0 Rules: 0 Species: 0 Observables: 0
Добавьте отсек под названием comp
к модели и набору единица способности отсека.
compObj = addcompartment(Mobj,'comp'); compObj.CapacityUnits = 'liter';
Добавьте реакцию DNA -> DNA + mRNA
к модели. SimBiology автоматически добавляет разновидности DNA
и mRNA
к модели с начальной суммой по умолчанию 0.
Robj1 = addreaction(Mobj,'DNA -> DNA + mRNA');
Примечание
Поскольку этот пример имеет только один отсек, вы не должны задавать отсек, которому принадлежит каждая разновидность. Если существует несколько отсеков, вот пример синтаксиса реакции:
Robj1 = addreaction(Mobj, 'nucleus.DNA -> nucleus.DNA + cytoplasm.mRNA');
nucleus
и cytoplasm
имена отсеков.Отобразите добавленные разновидности модели.
Mobj.Species
ans = SimBiology Species Array Index: Compartment: Name: Value: Units: 1 comp DNA 0 2 comp mRNA 0
Установите начальную сумму DNA
к 50
также модули суммы для обеих разновидностей.
Mobj.Species(1).InitialAmount = 50; Mobj.Species(1).InitialAmountUnits = 'molecule'; Mobj.Species(2).InitialAmountUnits = 'molecule';
Задайте кинетику реакции быть массовой акцией путем создания массовой акции кинетический объект закона, Kobj1
.
Kobj1 = addkineticlaw(Robj1,'MassAction');
Для необратимой реакции, MassAction
кинетика задает выражение скорости реакции как forward rate constant * reactants.
Кинетический закон служит картой между параметрами и разновидностями, необходимыми выражению скорости реакции и параметрам и разновидностям в модели. Чтобы видеть параметры и разновидности, которые должны быть сопоставлены, получите ParameterVariables
и SpeciesVariables
свойства Kobj1
.
Kobj1.ParameterVariables
ans = 1x1 cell array
{'Forward Rate Parameter'}
Kobj1.SpeciesVariables
ans = 1x1 cell array
{'MassAction Species'}
Поскольку кинетический закон требует параметра форвардного курса, создайте параметр, k1
, и установленный его значение к 0.2
. Сопоставьте параметр k1
к параметру форвардного курса, путем установки ParameterVariablesNames
свойство Kobj1
к k1
.
Pobj1 = addparameter(Kobj1,'k1'); Pobj1.Value = 0.2; Pobj1.ValueUnits = '1/second'; Kobj1.ParameterVariableNames = 'k1';
Для кинетики действующих масс, SpeciesVariables
автоматически присвоены разновидностям реагента. Поэтому SpeciesVariablesNames
свойство Kobj1
автоматически установлен в DNA
. Выражение скорости реакции теперь задано можно следующим образом.
Robj1.ReactionRate
ans = 'k1*DNA'
Простая модель перевода показывает только продукт белка и mRNA. Для получения дополнительной информации смотрите Перевод.
Введите реакцию mRNA -> mRNA + protein
и набор его кинетический закон к массовой акции. Также установите модуль суммы разновидностей protein
.
Robj2 = addreaction(Mobj,'mRNA -> mRNA + protein'); Mobj.Species(3).InitialAmountUnits = 'molecule'; Kobj2 = addkineticlaw(Robj2,'MassAction');
Задайте скорость реакции постоянный k2
для реакции.
Pobj2 = addparameter(Kobj2,'k2'); Pobj2.Value = 20; Pobj2.ValueUnits = '1/second'; Kobj2.ParameterVariableNames = 'k2';
Скорость реакции теперь задана можно следующим образом.
Robj2.ReactionRate
ans = 'k2*mRNA'
Запись ДНК к mRNA отрегулирована привязкой продукта белка от перевода до ДНК. Когда больше белка производится, ДНК связывается с белком чаще, и меньше времени доступно для записи с несвязанной ДНК. Для получения дополнительной информации смотрите Генную Репрессию.
Введите обратимую реакцию для привязки и развязывания ДНК и белка. Добавьте параметр k3
как постоянный форвардный курс, и k3r
как противоположная константа скорости.
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'};
Отобразите скорость реакции.
Robj3.ReactionRate
ans = 'k3*DNA*protein - k3r*DNAProteinComplex'
Белок и mRNA ухудшение являются важными реакциями для регулирования экспрессии гена. Установившийся уровень составных объектов обеспечен балансом между реакциями ухудшения и синтезом. Белки гидролизируются к аминокислотам с помощью протеаз, в то время как нуклеиновые кислоты ухудшаются к нуклеотидам.
Введите реакцию для mRNA ухудшения к нуклеотидам. Добавьте параметр k4
как постоянный форвардный курс.
Robj4 = addreaction(Mobj,'mRNA -> null'); Kobj4 = addkineticlaw(Robj4, 'MassAction'); Pobj4 = addparameter(Kobj4,'k4','Value',1.5,'ValueUnits','1/second'); Kobj4.ParameterVariableNames = 'k4';
Отобразите скорость реакции mRNA ухудшения.
Robj4.ReactionRate
ans = 'k4*mRNA'
Введите реакцию для ухудшения белка к аминокислотам. Добавьте параметр k5
как форвардный курс, постоянный для реакции.
Robj5 = addreaction(Mobj,'protein -> null'); Kobj5 = addkineticlaw(Robj5,'MassAction'); Pobj5 = addparameter(Kobj5,'k5','Value',1.0,'ValueUnits','1/second'); Kobj5.ParameterVariableNames = 'k5';
Отобразите скорость реакции ухудшения белка.
Robj5.ReactionRate
ans = 'k5*protein'
Симулируйте модель, чтобы видеть ее динамическое поведение.
Сначала включите дополнительную модульную функцию преобразования. Эта функция автоматически преобразовывает единицы физических количеств в одну сопоставимую систему. Это преобразование при подготовке к правильной симуляции, но суммы разновидностей возвращены в модуле, который вы задали (molecule
в этом примере).
configset = getconfigset(Mobj); configset.CompileOptions.UnitConversion = true;
Запустите симуляцию.
[t, simdata, names] = sbiosimulate(Mobj);
Постройте график результатов.
plot(t,simdata) legend(names,'Location','NorthEastOutside') title('Gene Regulation'); xlabel('Time'); ylabel('Species Amount');