Updated createCelloProductionKineticLaw
This update adds roadblocking effects to when creating the kinetic model of the genetic circuit. This is only added if there are 2 tandem promoters.
This commit is contained in:
parent
4f86b52eee
commit
97d125c54f
1 changed files with 74 additions and 15 deletions
|
|
@ -2311,9 +2311,11 @@ public class BioModel extends CoreObservable{
|
||||||
String kineticLaw = "";
|
String kineticLaw = "";
|
||||||
//boolean activated = false;
|
//boolean activated = false;
|
||||||
String promoter = "";
|
String promoter = "";
|
||||||
|
int promoterCnt = 0;
|
||||||
|
|
||||||
for (Object it : promoters.toArray()) {
|
for (Object it : promoters.toArray()) {
|
||||||
promoter = it.toString();
|
promoter = it.toString();
|
||||||
|
promoterCnt++;
|
||||||
|
|
||||||
String numerator = "";
|
String numerator = "";
|
||||||
String denominator = "";
|
String denominator = "";
|
||||||
|
|
@ -2403,6 +2405,16 @@ public class BioModel extends CoreObservable{
|
||||||
}
|
}
|
||||||
in_parentesis = "(" + numerator + "/(" + denominator + ") +" + ymin + ")";
|
in_parentesis = "(" + numerator + "/(" + denominator + ") +" + ymin + ")";
|
||||||
|
|
||||||
|
if(promoters.toArray().length == 2 && promoterCnt == 2) {
|
||||||
|
|
||||||
|
String top = "";
|
||||||
|
String bottom = "";
|
||||||
|
|
||||||
|
top = "(" + K + "^" + n + "+ " + beta + "*" + activator + "^" + n + ")";
|
||||||
|
bottom = "(" + K + "^" + n + "+ " + activator + "^" + n + ")";
|
||||||
|
kineticLaw += "*" + alpha + "*(" + top + "/" + bottom + ")";
|
||||||
|
}
|
||||||
|
|
||||||
} else if (interaction.equals("repression")) {
|
} else if (interaction.equals("repression")) {
|
||||||
String repressor = promInter.get(entry).toString();
|
String repressor = promInter.get(entry).toString();
|
||||||
String K = "K_" + repressor;
|
String K = "K_" + repressor;
|
||||||
|
|
@ -2432,6 +2444,7 @@ public class BioModel extends CoreObservable{
|
||||||
LocalParameter beta_para = reaction.getKineticLaw().createLocalParameter();
|
LocalParameter beta_para = reaction.getKineticLaw().createLocalParameter();
|
||||||
beta_para.setId(beta);
|
beta_para.setId(beta);
|
||||||
|
|
||||||
|
|
||||||
if (celloParameters.get(repressor) != null) {
|
if (celloParameters.get(repressor) != null) {
|
||||||
if (celloParameters.get(repressor).get(0) != null && !celloParameters.get(repressor).get(0).equals("")) {
|
if (celloParameters.get(repressor).get(0) != null && !celloParameters.get(repressor).get(0).equals("")) {
|
||||||
double n_value = Double.parseDouble(celloParameters.get(repressor).get(0));
|
double n_value = Double.parseDouble(celloParameters.get(repressor).get(0));
|
||||||
|
|
@ -2482,20 +2495,37 @@ public class BioModel extends CoreObservable{
|
||||||
|
|
||||||
in_parentesis = "(" + numerator + "/(" + denominator + ") +" + ymin + ")";
|
in_parentesis = "(" + numerator + "/(" + denominator + ") +" + ymin + ")";
|
||||||
|
|
||||||
|
if(promoters.toArray().length == 2 && promoterCnt == 2) {
|
||||||
|
|
||||||
|
String top = "";
|
||||||
|
String bottom = "";
|
||||||
|
|
||||||
|
top = "(" + K + "^" + n + "+ " + beta + "*" + repressor + "^" + n + ")";
|
||||||
|
bottom = "(" + K + "^" + n + "+ " + repressor + "^" + n + ")";
|
||||||
|
kineticLaw += "*" + alpha + "*(" + top + "/" + bottom + ")";
|
||||||
|
}
|
||||||
|
|
||||||
} else if (interaction.equals("sensor")) {
|
} else if (interaction.equals("sensor")) {
|
||||||
String sensor = promInter.get(entry).toString();
|
String sensor = promInter.get(entry).toString();
|
||||||
String ymax = "ymax_" + promoter;
|
String ymax = "ymax_" + promoter;
|
||||||
String ymin = "ymin_" + promoter;
|
String ymin = "ymin_" + promoter;
|
||||||
|
String alpha = "alpha_" + promoter;
|
||||||
|
String beta = "beta_" + promoter;
|
||||||
|
|
||||||
LocalParameter ymax_p = reaction.getKineticLaw().createLocalParameter();
|
LocalParameter ymax_p = reaction.getKineticLaw().createLocalParameter();
|
||||||
ymax_p.setId(ymax);
|
ymax_p.setId(ymax);
|
||||||
LocalParameter ymin_p = reaction.getKineticLaw().createLocalParameter();
|
LocalParameter ymin_p = reaction.getKineticLaw().createLocalParameter();
|
||||||
ymin_p.setId(ymin);
|
ymin_p.setId(ymin);
|
||||||
|
LocalParameter alpha_para = reaction.getKineticLaw().createLocalParameter();
|
||||||
|
alpha_para.setId(alpha);
|
||||||
|
LocalParameter beta_para = reaction.getKineticLaw().createLocalParameter();
|
||||||
|
beta_para.setId(beta);
|
||||||
|
|
||||||
//numerator = "piecewise(piece(" + ymin_p + " ," + sensor + " == 0.0), otherwise(" + ymax_p + "))";
|
//numerator = "piecewise(piece(" + ymin_p + " ," + sensor + " == 0.0), otherwise(" + ymax_p + "))";
|
||||||
numerator = "piecewise(" + ymin + ", (" + sensor + " == 0), " + ymax + ")";
|
numerator = "piecewise(" + ymin + ", (" + sensor + " == 0), " + ymax + ")";
|
||||||
|
|
||||||
if (celloParameters.get(sensor) != null) {
|
if (celloParameters.get(sensor) != null) {
|
||||||
|
if (celloParameters.get(sensor).get(0) != null && !celloParameters.get(sensor).get(0).equals("")) {
|
||||||
double ymax_value = Double.parseDouble(celloParameters.get(sensor).get(0));
|
double ymax_value = Double.parseDouble(celloParameters.get(sensor).get(0));
|
||||||
ymax_p.setValue(ymax_value);
|
ymax_p.setValue(ymax_value);
|
||||||
}
|
}
|
||||||
|
|
@ -2503,17 +2533,46 @@ public class BioModel extends CoreObservable{
|
||||||
ymax_p.setValue(GlobalConstants.CELLO_PARAMETER_YMAX);
|
ymax_p.setValue(GlobalConstants.CELLO_PARAMETER_YMAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (celloParameters.get(sensor) != null) {
|
if (celloParameters.get(sensor).get(1) != null && !celloParameters.get(sensor).get(1).equals("")) {
|
||||||
double ymin_value = Double.parseDouble(celloParameters.get(sensor).get(1));
|
double ymin_value = Double.parseDouble(celloParameters.get(sensor).get(1));
|
||||||
ymin_p.setValue(ymin_value);
|
ymin_p.setValue(ymin_value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ymin_p.setValue(GlobalConstants.CELLO_PARAMETER_YMIN);
|
ymin_p.setValue(GlobalConstants.CELLO_PARAMETER_YMIN);
|
||||||
}
|
}
|
||||||
|
if (celloParameters.get(sensor).get(2) != null && !celloParameters.get(sensor).get(2).equals("")) {
|
||||||
|
double alpha_value = Double.parseDouble(celloParameters.get(sensor).get(2));
|
||||||
|
alpha_para.setValue(alpha_value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
alpha_para.setValue(GlobalConstants.CELLO_PARAMETER_ALPHA);
|
||||||
|
}
|
||||||
|
if (celloParameters.get(sensor).get(3) != null && !celloParameters.get(sensor).get(3).equals("")) {
|
||||||
|
double beta_value = Double.parseDouble(celloParameters.get(sensor).get(3));
|
||||||
|
beta_para.setValue(beta_value);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
beta_para.setValue(GlobalConstants.CELLO_PARAMETER_BETA);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
in_parentesis = "(" + numerator + ")";
|
in_parentesis = "(" + numerator + ")";
|
||||||
|
|
||||||
|
// if(promoters.toArray().length == 2 && promoterCnt == 2) {
|
||||||
|
//
|
||||||
|
// String top = "";
|
||||||
|
// String bottom = "";
|
||||||
|
//
|
||||||
|
// top = "(" + K + "^" + n + "+ " + beta + "*" + sensor + "^" + n + ")";
|
||||||
|
// bottom = "(" + K + "^" + n + "+ " + sensor + "^" + n + ")";
|
||||||
|
// kineticLaw += "*" + alpha + "*(" + top + "/" + bottom + ")";
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if(promoters.toArray().length == 2 && promoterCnt == 2) {
|
||||||
|
// kineticLaw += "*" + alpha + "*(" + ")";
|
||||||
|
// }
|
||||||
kineticLaw += " + " + "kdegrad" + "*" + in_parentesis;
|
kineticLaw += " + " + "kdegrad" + "*" + in_parentesis;
|
||||||
}
|
}
|
||||||
return kineticLaw;
|
return kineticLaw;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue