Can Simbiology simulate one-to-many scenarios?

our design has a reaction containing cDNA and AuNP which has many DNA probes on it. cDNA has many bind sites so two AuNPs maybe can bind one cDNA at the same time. so I wonder can simbiology such a reaction like this? If yes, how can it be configured? If not, how can it be resolved?

Risposte (2)

Hello @Lo,
Yes, SimBiology in MATLAB can simulate one-to-many scenarios, including the reaction you described where two AuNPs can bind to one cDNA at the same time. SimBiology allows for the modeling and simulation of complex reaction networks, including multi-component reactions.
To configure this reaction in SimBiology, you can use the following steps:
1. Define the species: Create species objects for cDNA, AuNP, and the bound complex (e.g., cDNA-AuNP). Specify the initial amounts or concentrations for each species.
2. Define the reactions: Create a reaction object that represents the binding reaction between cDNA and AuNP. Set the reaction rate and stoichiometry appropriately. In this case, the stoichiometry would be 2 AuNP and 1 cDNA, resulting in the formation of 1 cDNA-AuNP complex.
3. Create a model: Create a SimBiology model and add the species and reaction objects to the model.
4. Configure simulation settings: Set the simulation time span, solver options, and any other desired simulation settings.
5. Run the simulation: Use the `simulate` function in SimBiology to run the simulation and obtain the results.
Here's a simplified example to illustrate the configuration of the reaction you described:
% Create species objects
cDNA = sbioselect(m, 'Name', 'cDNA');
AuNP = sbioselect(m, 'Name', 'AuNP');
complex = addspecies(m, 'cDNA-AuNP', 'InitialAmount', 0);
% Create the binding reaction
reaction = addreaction(m, '2 AuNP + cDNA -> cDNA-AuNP');
kineticLaw = addkineticlaw(reaction, 'MassAction');
parameter = addparameter(kineticLaw, 'k', 1); % Set the reaction rate constant
% Set the stoichiometry of the reaction
addstoichiometry(reaction, 'cDNA', -1);
addstoichiometry(reaction, 'AuNP', -2);
addstoichiometry(reaction, 'cDNA-AuNP', 1);
% Configure simulation settings
configset = getconfigset(m);
set(configset, 'StopTime', 10); % Set simulation time span
% Run the simulation
simData = sbiosimulate(m);
% Plot the results
plot(simData.Time, simData.Data(:, [cDNA, AuNP, complex]));
legend('cDNA', 'AuNP', 'cDNA-AuNP');
xlabel('Time');
ylabel('Amount');
This example demonstrates a simple binding reaction between cDNA and AuNP, where two AuNPs bind to one cDNA to form the cDNA-AuNP complex. You can adjust the reaction rate constant and other parameters as needed.
SimBiology provides various analysis and visualization tools to further analyze the simulation results, such as plotting concentrations, calculating reaction rates, and performing parameter estimations.
I hope this helps!

5 Commenti

Hello Nandini
I think that I didn't express my idea clearly. My idea is that one cDNA has 50 bind sites, so maybe two or more AuNPs will bind on cDNA at the same time. In other words, I am not sure about the exact number of AuNP that will bind on cDNA at the same time. So I don't know can simbiology can simbiology simulate such a reaction or not. if yes, how can it be configured? If not, how can it be resolved?
Thanks for your help!
Hello @Lo,
Thank you for providing additional clarification. In SimBiology, it is not directly possible to model an arbitrary number of AuNPs binding to one cDNA simultaneously, as the reaction stoichiometry needs to be predefined. However, you can approximate this scenario by modeling multiple reactions with different stoichiometries and reaction rates.
Here's an example of how you can approach this approximation:
% Create species objects
cDNA = sbioselect(m, 'Name', 'cDNA');
AuNP = sbioselect(m, 'Name', 'AuNP');
% Define the maximum number of AuNPs that can bind to one cDNA
maxNumAuNPs = 5;
% Create reaction objects for each possible binding scenario
for numAuNPs = 1:maxNumAuNPs
reaction = addreaction(m, [num2str(numAuNPs) ' AuNP + cDNA -> cDNA_AuNP' num2str(numAuNPs)]);
kineticLaw = addkineticlaw(reaction, 'MassAction');
parameter = addparameter(kineticLaw, ['k' num2str(numAuNPs)], 1); % Set the reaction rate constant
addstoichiometry(reaction, 'cDNA', -1);
for i = 1:numAuNPs
addstoichiometry(reaction, 'AuNP', -1);
end
addstoichiometry(reaction, ['cDNA_AuNP' num2str(numAuNPs)], 1);
end
% Configure simulation settings
configset = getconfigset(m);
set(configset, 'StopTime', 10); % Set simulation time span
% Run the simulation
simData = sbiosimulate(m);
% Plot the results
figure;
for numAuNPs = 1:maxNumAuNPs
subplot(maxNumAuNPs, 1, numAuNPs);
plot(simData.Time, simData.Data(:, numAuNPs+2));
title(['Number of AuNPs bound: ' num2str(numAuNPs)]);
xlabel('Time');
ylabel('Amount');
end
In this example, we create multiple reactions, each representing a different number of AuNPs binding to the cDNA. The `maxNumAuNPs` variable determines the maximum number of AuNPs that can bind to one cDNA.
During the simulation, the resulting cDNA-AuNP complexes are tracked separately for each binding scenario. The simulation results are then plotted for each scenario, showing the amount of cDNA-AuNP complexes formed over time.
While this approach does not capture the exact number of AuNPs binding to one cDNA, it provides an approximation by considering multiple possible binding scenarios.
I hope this helps! Let me know if you have any further questions.
Hello Nandini
thank you ! it is very helpful fo me !
But I still have a little question where can I put those codes into my model or view my model in code form?
( I build the model with the diagram instead of coding)
my interface like this ⇊
If you have built your SimBiology model using the graphical interface (diagram) in SimBiology, you can access and modify your model using the code form by following these steps:
1. Open your SimBiology model in the SimBiology graphical interface.
2. Click on the "Export" button in the toolbar at the top of the SimBiology window.
3. From the drop-down menu, select "Export to MATLAB".
4. A dialog box will appear. Choose a location to save the exported MATLAB code file and provide a name for the file.
5. Click "Save" to export the model to a MATLAB code file.
The exported MATLAB code file will contain the code representation of your SimBiology model. You can open the file in MATLAB and modify it as needed, including adding the code provided earlier to configure the reaction you described.
Once you have made the necessary modifications to the code file, you can run the code in MATLAB to simulate and analyze your model.
I hope this helps! Let me know if you have any further questions.
I tried to follow your steps and click accordingly. And I still can't access and modify my model using the code form
those are how I did
I click the first one (export model to matlab workspace)
then this dialog box shows up and it just disappears directly after clicking the OK button.

Accedi per commentare.

Fulden Buyukozturk
Fulden Buyukozturk il 21 Lug 2023
Modificato: Fulden Buyukozturk il 21 Lug 2023
You can set the stociometry of your reaction either on the Model Builder App or programmatically. On the app, you can simply modify the Reaction, please see the screenshot below.
If I understand correctly, you're looking to parametrize stochiometry so that you can vary it to simulate different scenarios. Currently a Reaction's stochiometry cannot be parametrized but instead of using a Reaction you can use a Rate Rule to incorporate stociometric coefficients as parameters.
For example if we assume a reversible reaction cDNA + n AuNP <-> Complex, you can write rate rules for this reaction as follows, where k1 and k2 are forward and reverse rate parameters:
In your simulations you can vary n to simulate different scenarios.
Fulden

7 Commenti

Do I need to set a reaction after I set a rate rule like this or I just pick one ?
You either use a Rate Rue or a Reaction.
Hello @Lo,
If you still have other questions, and it's easier for you, we could also set up a video call with a SimBiology-focused engineer to more efficiently answer them. Please feel free to reach either myself or @Fulden Buyukozturk directly from our community profiles and we can set up a time.
I already sent you a letter this morning. I wonder if you have received it?
Hello @Lo
Yes, I just replied. Looking forward to our discussion.
Due to issues with the school system, I cannot use Matlab's email to contact you. This is my Google email, and I hope we can successfully schedule an online meeting time.
this is my email:
ericlo0325@gmail.com
Sounds good. I'll email you shortly.

Accedi per commentare.

Community

Più risposte nel  SimBiology Community

Categorie

Richiesto:

Lo
il 19 Lug 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by