// Created by libAntimony v2.13.0
function EMM(St, Et, Km, kcat)
  0.5*kcat*(St + Et + Km - sqrt((St + Et + Km)^2 - 4*St*Et));
end

EMM is "EMM"

function Gamma(v, u, J, K)
  (v - u) + v*J + u*K;
end

Gamma is "Gamma"

function fGK(v, u, J, K)
  piecewise(0, (v == 0) && (u == 0), 2*u*K/(Gamma(v, u, J, K) + sqrt(Gamma(v, u, J, K)^2 - 4*(v - u)*u*K)));
end

fGK is "fGK"


model *MODEL1302180000()

  // Compartments and Species:
  compartment ERlumen, cytoplasm, Golgi, mitochondria;
  substanceOnly species UFPT in ERlumen, BiUFP in ERlumen, BiRE1 in ERlumen;
  substanceOnly species BiATF in ERlumen, BiPER in ERlumen, IRE1A in ERlumen;
  substanceOnly species PERKA in ERlumen, mXbp1u in cytoplasm, mXbp1s in cytoplasm;
  substanceOnly species Xbp1s in cytoplasm, mBiPT in cytoplasm, BiPT in ERlumen;
  substanceOnly species ATF6T in ERlumen, ATF6GB in Golgi, ATF6p50 in cytoplasm;
  substanceOnly species mWFS1 in cytoplasm, WFS1 in ERlumen, ATF4 in cytoplasm;
  substanceOnly species mCHOP in cytoplasm, CHOP in cytoplasm, mGADD34 in cytoplasm;
  substanceOnly species GADD34 in cytoplasm, BCL2T in mitochondria, BAXmT in mitochondria;
  substanceOnly species BH3T in cytoplasm, BAXmBCL2 in mitochondria, BH3BCL2 in mitochondria;

  // Assignment Rules:
  UFP := UFPT - BiUFP;
  BiP := BiPT - BiRE1 - BiATF - BiPER - BiUFP;
  IRE1 := IRE1T - BiRE1 - n*IRE1A;
  PERK := PERKT - BiPER - n*PERKA;
  ATF6 := ATF6T - BiATF;
  eIF2a := eIF2aT*fGK(kphos*0.5*n*PERKA, kdephos*(GADD34 + CReP), J/eIF2aT, K/eIF2aT);
  spliceRate := EMM(mXbp1u, 0.5*n*IRE1A, krcSplice, ksplice);
  BCL2 := BCL2T - BH3BCL2 - BAXmBCL2;
  BH3 := BH3T - BH3BCL2;
  BAXm := BAXmT - BAXmBCL2;
  mUFPT := 13;

  // Reactions:
  re2:  => UFPT; ktrUFP*mUFPT*piecewise(eIF2a/eIF2aT, extATT == 1, 1);
  re3: UFPT => ; kdUFP*UFPT;
  re4: UFPT => ; kbu*BiUFP*UFPT;
  reu1:  => BiUFP; tmr*kf*BiP*UFP;
  reu2: BiUFP => ; tmr*kr*BiUFP;
  reu3:  => BiRE1; tmr*kf*BiP*IRE1;
  reu4: BiRE1 => ; tmr*kr*BiRE1;
  reu5:  => BiATF; tmr*kf*BiP*ATF6;
  reu6: BiATF => ; tmr*kr*BiATF;
  reu7:  => BiPER; tmr*kf*BiP*PERK;
  reu8: BiPER => ; kr*tmr*BiPER;
  reu9:  => IRE1A; tmr*kff*IRE1^n;
  reu10: IRE1A => ; tmr*kr*IRE1A;
  reu11:  => PERKA; tmr*kff*piecewise(UFP, switch == 1, 1)*PERK^n;
  reu12: PERKA => ; tmr*kr*PERKA/(1 + extPERK*UFP);
  re5:  => ATF6T; ktrATF6*mATF6T;
  re6: ATF6T => ; kdATF6*ATF6T;
  re8: ATF6T => ATF6GB; ktrans*ATF6;
  rew1: ATF6T => ; kdeAW*WFS1*ATF6T;
  re9: ATF6GB => ; kdATF6GB*ATF6GB;
  re10: ATF6GB => ATF6p50; kcleave*ATF6GB;
  re11: ATF6p50 => ; kdATF6p50*ATF6p50;
  rew2:  => mWFS1; trcWFS*ATF6p50/(krcWFS + ATF6p50);
  rew3: mWFS1 => ; kdmWFS*mWFS1;
  rew4:  => WFS1; ktrWFS*mWFS1;
  rew5: WFS1 => ; kdWFS*WFS1;
  re12:  => mXbp1u; trcXU*(basalXBP + kmAtfsXBP*ATF6p50)/(krcXU + basalXBP + kmAtfsXBP*ATF6p50);
  re13: mXbp1u => ; kdmXU*mXbp1u;
  re14: mXbp1u => mXbp1s; spliceRate;
  re15: mXbp1s => ; kdmXS*mXbp1s;
  re16:  => Xbp1s; ktrXS*mXbp1s;
  re17: Xbp1s => ; kdXS*Xbp1s;
  re18:  => mBiPT; trcBiP*(basalBiP + kmXbp*Xbp1s + kmAtfsBiP*ATF6p50)/(krcBiP + basalBiP + kmXbp*Xbp1s + kmAtfsBiP*ATF6p50);
  re19: mBiPT => ; kdmBiP*mBiPT;
  re20:  => BiPT; ktrBiP*mBiPT;
  re21: BiPT => ; kdBiP*BiPT;
  re23:  => ATF4; ktrATF4*mATF4/(1 + (eIF2a/kATF4)^nh);
  re24: ATF4 => ; kdATF4*ATF4;
  re25:  => mCHOP; trcCHOP*(kmAtff*ATF4 + kmAtfs*ATF6p50)/(krcCHOP + kmAtff*ATF4 + kmAtfs*ATF6p50);
  re26: mCHOP => ; kdmCHOP*mCHOP;
  re27:  => CHOP; ktrCHOP*mCHOP;
  re28: CHOP => ; kdCHOP*CHOP;
  re29:  => mGADD34; trcGADD34*kmChop*CHOP/(krcGADD34 + kmChop*CHOP);
  re30: mGADD34 => ; kdmGADD34*mGADD34;
  re31:  => GADD34; ktrGADD34*mGADD34;
  re32: GADD34 => ; kdGADD34*GADD34;
  rea1:  => BCL2T; kfbc/(1 + kmbc*CHOP);
  rea2: BCL2T => ; kdbc*BCL2T;
  rea3:  => BAXmT; kfx*BAXT;
  rea4:  => BAXmT; kfxp*BH3*BAXT;
  rea5: BAXmT => ; kfx*BAXmT;
  rea6: BAXmT => ; kfxp*BH3*BAXmT;
  rea7: BAXmT => ; kbx*BAXmT;
  rea8:  => BH3T; ks3;
  rea9:  => BH3T; ks3p*kstr*CHOP;
  rea10: BH3T => ; kd3*BH3T;
  rea11:  => BAXmBCL2; kasx*BAXm*BCL2;
  rea12: BAXmBCL2 => ; kdsx*BAXmBCL2;
  rea13: BAXmBCL2 => ; kbx*BAXmBCL2;
  rea14:  => BH3BCL2; kas3*BH3*BCL2;
  rea15: BH3BCL2 => ; kds3*BH3BCL2;
  rea16: BH3BCL2 => ; kd3*BH3BCL2;

  // Species initializations:
  UFPT = 0;
  UFPT has substance_per_volume;
  BiUFP = 0;
  BiUFP has substance_per_volume;
  BiRE1 = 0;
  BiRE1 has substance_per_volume;
  BiATF = 0;
  BiATF has substance_per_volume;
  BiPER = 0;
  BiPER has substance_per_volume;
  IRE1A = 0;
  IRE1A has substance_per_volume;
  PERKA = 0;
  PERKA has substance_per_volume;
  mXbp1u = 0;
  mXbp1u has substance_per_volume;
  mXbp1s = 0;
  mXbp1s has substance_per_volume;
  Xbp1s = 0;
  Xbp1s has substance_per_volume;
  mBiPT = 0;
  mBiPT has substance_per_volume;
  BiPT = 0;
  BiPT has substance_per_volume;
  ATF6T = 0;
  ATF6T has substance_per_volume;
  ATF6GB = 0;
  ATF6GB has substance_per_volume;
  ATF6p50 = 0;
  ATF6p50 has substance_per_volume;
  mWFS1 = 0;
  mWFS1 has substance_per_volume;
  WFS1 = 0;
  WFS1 has substance_per_volume;
  ATF4 = 0;
  ATF4 has substance_per_volume;
  mCHOP = 0;
  mCHOP has substance_per_volume;
  CHOP = 0;
  CHOP has substance_per_volume;
  mGADD34 = 0;
  mGADD34 has substance_per_volume;
  GADD34 = 0;
  GADD34 has substance_per_volume;
  BCL2T = 0;
  BCL2T has substance_per_volume;
  BAXmT = 0;
  BAXmT has substance_per_volume;
  BH3T = 0;
  BH3T has substance_per_volume;
  BAXmBCL2 = 0;
  BAXmBCL2 has substance_per_volume;
  BH3BCL2 = 0;
  BH3BCL2 has substance_per_volume;

  // Compartment initializations:
  ERlumen = 1;
  ERlumen has volume;
  cytoplasm = 1;
  cytoplasm has volume;
  Golgi = 1;
  Golgi has volume;
  mitochondria = 1;
  mitochondria has volume;
  UFP has substance;
  BiP has substance;
  IRE1 has substance;

  // Variable initializations:
  IRE1T = 1;
  IRE1T has substance;
  n = 4;
  n has dimensionless;
  PERK has substance;
  PERKT = 1;
  PERKT has substance;
  ATF6 has substance;
  eIF2a has substance;
  eIF2aT = 1;
  eIF2aT has substance;
  kphos = 5;
  kphos has rate1;
  kdephos = 0.5;
  kdephos has rate1;
  CReP = 0.1;
  CReP has substance;
  J = 0.001;
  J has substance;
  K = 0.001;
  K has substance;
  spliceRate has rate;
  krcSplice = 1;
  krcSplice has substance;
  ksplice = 10;
  ksplice has rate1;
  BCL2 has substance;
  BH3 has substance;
  BAXm has substance;
  tmr = 10;
  tmr has dimensionless;
  kf = 10;
  kf has rate2;
  kr = 1;
  kr has rate1;
  nh = 2;
  nh has dimensionless;
  extATT = 0;
  extATT has dimensionless;
  extPERK = 0;
  extPERK has substance1;
  basalXBP = 1;
  basalXBP has substance;
  basalBiP = 1;
  basalBiP has substance;
  krcXU = 5;
  krcXU has substance;
  krcBiP = 5;
  krcBiP has substance;
  krcWFS = 1;
  krcWFS has substance;
  krcCHOP = 1;
  krcCHOP has substance;
  krcGADD34 = 1;
  krcGADD34 has substance;
  kmXbp = 10;
  kmXbp has dimensionless;
  kmAtfsXBP = 10;
  kmAtfsXBP has dimensionless;
  kmAtfsBiP = 1;
  kmAtfsBiP has dimensionless;
  kmAtff = 0.05;
  kmAtff has dimensionless;
  kmChop = 0.05;
  kmChop has dimensionless;
  kmAtfs = 0.1;
  kmAtfs has dimensionless;
  trcXU = 1;
  trcXU has rate;
  trcBiP = 1;
  trcBiP has rate;
  trcWFS = 1;
  trcWFS has rate;
  trcCHOP = 1;
  trcCHOP has rate;
  trcGADD34 = 1;
  trcGADD34 has rate;
  ktrUFP = 1;
  ktrUFP has rate1;
  ktrXS = 1;
  ktrXS has rate1;
  ktrBiP = 1;
  ktrBiP has rate1;
  ktrATF6 = 1;
  ktrATF6 has rate1;
  ktrWFS = 1;
  ktrWFS has rate1;
  ktrATF4 = 1;
  ktrATF4 has rate1;
  ktrCHOP = 1;
  ktrCHOP has rate1;
  ktrGADD34 = 1;
  ktrGADD34 has rate1;
  kdmXU = 1;
  kdmXU has rate1;
  kdmXS = 1;
  kdmXS has rate1;
  kdmBiP = 1;
  kdmBiP has rate1;
  kdmWFS = 1;
  kdmWFS has rate1;
  kdmCHOP = 1;
  kdmCHOP has rate1;
  kdmGADD34 = 1;
  kdmGADD34 has rate1;
  kdUFP = 0.1;
  kdUFP has rate1;
  kdXS = 0.1;
  kdXS has rate1;
  kdBiP = 0.01;
  kdBiP has rate1;
  kdATF6 = 0.1;
  kdATF6 has rate1;
  kdATF6GB = 0.1;
  kdATF6GB has rate1;
  kdATF6p50 = 0.1;
  kdATF6p50 has rate1;
  kdWFS = 0.1;
  kdWFS has rate1;
  kdATF4 = 0.1;
  kdATF4 has rate1;
  kdCHOP = 0.1;
  kdCHOP has rate1;
  kdGADD34 = 0.1;
  kdGADD34 has rate1;
  mATF6T = 5;
  mATF6T has substance;
  mUFPT has substance;
  mATF4 = 1;
  mATF4 has substance;
  ktrans = 1;
  ktrans has rate1;
  kcleave = 10;
  kcleave has rate1;
  kdeAW = 1;
  kdeAW has rate2;
  kbu = 0;
  kbu has rate2;
  switch = 0;
  switch has dimensionless;
  kATF4 = 0.1;
  kATF4 has substance;
  kfbc = 10;
  kfbc has rate;
  kdbc = 0.1;
  kdbc has rate1;
  kmbc = 0.03;
  kmbc has substance1;
  kstr = 0.2;
  kstr has dimensionless;
  BAXT = 100;
  BAXT has substance;
  kfx = 1;
  kfx has rate1;
  kfxp = 3;
  kfxp has rate2;
  kbx = 2;
  kbx has rate1;
  kasx = 90;
  kasx has rate2;
  kdsx = 0.05;
  kdsx has rate1;
  ks3 = 0.1;
  ks3 has rate;
  ks3p = 0.6;
  ks3p has rate1;
  kd3 = 0.01;
  kd3 has rate1;
  kas3 = 10;
  kas3 has rate2;
  kds3 = 0.01;
  kds3 has rate1;
  kff = 10;
  kff has rate3;

  // Other declarations:
  var UFP, BiP, IRE1, PERK, ATF6, eIF2a, spliceRate, BCL2, BH3, BAXm, mUFPT;
  const ERlumen, cytoplasm, Golgi, mitochondria, IRE1T, n, PERKT, eIF2aT;
  const kphos, kdephos, CReP, J, K, krcSplice, ksplice, tmr, kf, kr, nh, extATT;
  const extPERK, basalXBP, basalBiP, krcXU, krcBiP, krcWFS, krcCHOP, krcGADD34;
  const kmXbp, kmAtfsXBP, kmAtfsBiP, kmAtff, kmChop, kmAtfs, trcXU, trcBiP;
  const trcWFS, trcCHOP, trcGADD34, ktrUFP, ktrXS, ktrBiP, ktrATF6, ktrWFS;
  const ktrATF4, ktrCHOP, ktrGADD34, kdmXU, kdmXS, kdmBiP, kdmWFS, kdmCHOP;
  const kdmGADD34, kdUFP, kdXS, kdBiP, kdATF6, kdATF6GB, kdATF6p50, kdWFS;
  const kdATF4, kdCHOP, kdGADD34, mATF6T, mATF4, ktrans, kcleave, kdeAW, kbu;
  const switch, kATF4, kfbc, kdbc, kmbc, kstr, BAXT, kfx, kfxp, kbx, kasx;
  const kdsx, ks3, ks3p, kd3, kas3, kds3, kff;

  // Unit definitions:
  unit substance = mole;
  unit volume = litre;
  unit time_unit = second;
  unit rate = mole / second;
  unit rate2 = 1 / (mole * second);
  unit rate1 = 1 / second;
  unit substance1 = 1 / mole;
  unit rate3 = 1 / (mole^3 * second);
  unit substance_per_volume = mole / litre;

  // Display Names:
  substance is "acu";
  time_unit is "atu";
  rate is "aru = acu.atu^-1";
  rate2 is "aru2 = acu^-1.atu^-1";
  rate1 is "aru1 = atu^-1";
  substance1 is "acu1 = acu^-1";
  rate3 is "aru3 = acu^-3.atu^-1";

  // CV terms:
  Xbp1s identity "http://identifiers.org/uniprot/P17861"
  WFS1 identity "http://identifiers.org/uniprot/O76024"
  ATF4 identity "http://identifiers.org/uniprot/P18848"
  CHOP identity "http://identifiers.org/uniprot/P35638"
  GADD34 identity "http://identifiers.org/uniprot/O75807"
  BiP identity "http://identifiers.org/uniprot/P11021"
  IRE1 identity "http://identifiers.org/uniprot/O75460"
  PERK identity "http://identifiers.org/uniprot/Q9NZJ5"
  ATF6 identity "http://identifiers.org/uniprot/Q99941",
                "http://identifiers.org/uniprot/P18850"
  eIF2a identity "http://identifiers.org/uniprot/Q9BY44"
  CReP identity "http://identifiers.org/uniprot/Q5SWA1"
end

MODEL1302180000 is "Erguler2013 - Unfolded protein stress response"

MODEL1302180000 model_entity_is "http://identifiers.org/biomodels.db/MODEL1302180000"
MODEL1302180000 model_entity_is "http://identifiers.org/biomodels.db/BIOMD0000000446"
MODEL1302180000 description "http://identifiers.org/pubmed/23433609"
MODEL1302180000 taxon "http://identifiers.org/taxonomy/131567"
MODEL1302180000 hypernym "http://identifiers.org/obo.go/GO:0030968"
