How to introduce a delay in a simbiology model?
조회 수: 6 (최근 30일)
이전 댓글 표시
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/962840/image.jpeg)
I have a model here for transcription and translation which I am trying to fit to data containing a column for mRNA and for protein.
TsR and TlR are transcription and translation resources.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/962845/image.jpeg)
The data has a delay and is pretty sigmoidal. The michaelis-menten based ODEs I used don't fit. How do a introduce that delay time factor so that it fits by recognizing the t-t0 time delay? (mS or GDmS is the protein)
Data attached.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/962850/image.jpeg)
댓글 수: 0
답변 (1개)
Arthur Goldsipe
2022년 4월 13일
SimBiology does not directly support delays. One approach would be a more mechanistic model of the delay. For exampe, you might try switching to Hill kinetics to see if that can reproduce the sigmoidal response. Alternatively, you could implement the model with basic MATLAB code and use dde23 to solve the equations.
댓글 수: 2
Jeremy Huard
2022년 4월 14일
One way to do this in SimBiology would be to approximate the delay with a chain of reactions of type
with a reaction rate
where ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/964535/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/964525/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/964530/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/964535/image.png)
sbioloadproject('timeDelay_reactionchain.sbproj')
cs = getconfigset(m1);
cs.SolverOptions.OutputTimes = 0:0.05:25;
simdata = sbiosimulate(m1);
[time,data] = selectbyname(simdata,{'y','ydelay'});
plot(time, data(:,1), time, data(:,2));
xlabel('Time [hrs]');
legend('y','y_{delay}');
title('Delay = 2.5 hrs');
grid on;
set(gca, XLimitMethod="padded", YLimitMethod="padded");
Alternatively, one could write a function that keep tracks of the previous values of y and interpolate between them to find
.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/964545/image.png)
I hope this helps.
Jérémy
커뮤니티
더 많은 답변 보기: SimBiology Community
참고 항목
카테고리
Help Center 및 File Exchange에서 Scan Parameter Ranges에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!