-
Notifications
You must be signed in to change notification settings - Fork 1
/
LTD_LTP_Model.m
6015 lines (4587 loc) · 339 KB
/
LTD_LTP_Model.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Model of Cerebellar PF-PC %
% Long-Term Depression & Potentiation %
% %
% developed by Andrew R. Gallimore %
% December 2017 %
% for Matlab Simbiology %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%TO SIMULATE THIS MODEL %%%%%%%%%%%%%%%%%%%%%%
%To simulate a standard LTD or LTP protocol, run the RUN_LTD_LTP.m file
global pfpc_model;
% Create model object
pfpc_model = sbiomodel('pfpc_model');
% Add a compartment named cell to model
cytosol = addcompartment(pfpc_model, 'cytosol');
cytosol.Capacity = 1;
cytosol.CapacityUnits = 'microliter';
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CALCIUM MODEL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add species
Ca = addspecies(cytosol, 'Ca', 'InitialAmount', 0.06, 'InitialAmountUnits', 'micromolarity');
PMCA = addspecies(cytosol, 'PMCA', 'InitialAmount', 0.2076, 'InitialAmountUnits', 'micromolarity');
CaPMCA = addspecies(cytosol, 'CaPMCA', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
NCX = addspecies(cytosol, 'NCX', 'InitialAmount', 0.0623, 'InitialAmountUnits', 'micromolarity');
CaNCX = addspecies(cytosol, 'CaNCX', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
Ca2NCX = addspecies(cytosol, 'Ca2NCX', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
SERCA = addspecies(cytosol, 'SERCA', 'InitialAmount', 2.0757, 'InitialAmountUnits', 'micromolarity');
CaSERCA = addspecies(cytosol, 'CaSERCA', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
Ca2SERCA = addspecies(cytosol, 'Ca2SERCA', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PV = addspecies(cytosol, 'PV', 'InitialAmount', 1.15, 'InitialAmountUnits', 'micromolarity');
CaPV = addspecies(cytosol, 'CaPV', 'InitialAmount', 8.4, 'InitialAmountUnits', 'micromolarity');
Ca2PV = addspecies(cytosol, 'Ca2PV', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
MgPV = addspecies(cytosol, 'MgPV', 'InitialAmount', 30.45, 'InitialAmountUnits', 'micromolarity');
Mg2PV = addspecies(cytosol, 'Mg2PV', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
Mg = addspecies(cytosol, 'Mg', 'InitialAmount', 590, 'InitialAmountUnits', 'micromolarity');
CBs = addspecies(cytosol, 'CBs', 'InitialAmount', 36.25, 'InitialAmountUnits', 'micromolarity');
CaCBs = addspecies(cytosol, 'CaCBs', 'InitialAmount', 3.4, 'InitialAmountUnits', 'micromolarity');
Ca2CBs = addspecies(cytosol, 'Ca2CBs', 'InitialAmount', 0.125, 'InitialAmountUnits', 'micromolarity');
CBf = addspecies(cytosol, 'CBf', 'InitialAmount', 37.77, 'InitialAmountUnits', 'micromolarity');
CaCBf = addspecies(cytosol, 'CaCBf', 'InitialAmount', 2.1, 'InitialAmountUnits', 'micromolarity');
Ca2CBf = addspecies(cytosol, 'Ca2CBf', 'InitialAmount', 0.125, 'InitialAmountUnits', 'micromolarity');
Ca_ER = addspecies(cytosol, 'Ca_ER', 'InitialAmount', 100, 'InitialAmountUnits', 'micromolarity');
%%%%%%Ca model parameters%%%%%%
kon_pmca_ca = addparameter(pfpc_model,'kon_pmca_ca', 'Value', 25000, 'ValueUnits', '1/(micromolarity*second)');
koff_pmca_ca = addparameter(pfpc_model,'koff_pmca_ca', 'Value', 2000, 'ValueUnits', '1/second');
kflux_pmca = addparameter(pfpc_model,'kflux_pmca', 'Value', 500, 'ValueUnits', '1/second');
kon_ncx_ca = addparameter(pfpc_model,'kon_ncx_ca', 'Value', 93.827, 'ValueUnits', '1/(micromolarity*second)');
koff_ncx_ca = addparameter(pfpc_model,'koff_ncx_ca', 'Value', 612.6, 'ValueUnits', '1/second');
kflux_ncx = addparameter(pfpc_model,'kflux_ncx', 'Value', 1000, 'ValueUnits', '1/second');
kon_serca_ca = addparameter(pfpc_model,'kon_serca_ca', 'Value', 17147, 'ValueUnits', '1/(micromolarity*second)');
koff_serca_ca = addparameter(pfpc_model,'koff_serca_ca', 'Value', 8426.3, 'ValueUnits', '1/second');
kflux_serca = addparameter(pfpc_model,'kflux_serca', 'Value', 2.60, 'ValueUnits', '1/second');
kleak = addparameter(pfpc_model,'kleak', 'Value', 39.4378, 'ValueUnits', 'micromole/second');
kon_pv_ca = addparameter(pfpc_model,'kon_pv_ca', 'Value', 107, 'ValueUnits', '1/(micromolarity*second)');
koff_pv_ca = addparameter(pfpc_model,'koff_pv_ca', 'Value', 0.95, 'ValueUnits', '1/second');
kon_pv_mg = addparameter(pfpc_model,'kon_pv_mg', 'Value', 472, 'ValueUnits', '1/(micromolarity*second)');
koff_pv_mg = addparameter(pfpc_model,'koff_pv_mg', 'Value', 25, 'ValueUnits', '1/second');
kon_cbs_ca = addparameter(pfpc_model,'kon_cbs_ca', 'Value', 5.5, 'ValueUnits', '1/(micromolarity*second)');
koff_cbs_ca = addparameter(pfpc_model,'koff_cbs_ca', 'Value', 2.6, 'ValueUnits', '1/second');
kon_cbf_ca = addparameter(pfpc_model,'kon_cbf_ca', 'Value', 43.5, 'ValueUnits', '1/(micromolarity*second)');
koff_cbf_ca = addparameter(pfpc_model,'koff_cbf_ca', 'Value', 35.8, 'ValueUnits', '1/second');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INPUTS FOR CALCIUM & GLUTAMATE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
kinflux = addparameter(pfpc_model,'kinflux', 'Value', 0, 'ValueUnits', 'micromole/second', 'ConstantValue', false);
kinflux_pf = addparameter(pfpc_model,'kinflux_pf', 'Value', 0, 'ValueUnits', 'micromole/second', 'ConstantValue', false);
kinflux_glu = addparameter(pfpc_model,'kinflux_glu', 'Value', 0, 'ValueUnits', 'micromole/second', 'ConstantValue', false);
%%%%Calcium Influx and Buffering Reactions%%%%
% Ca + PMCA <-> Ca1PMCA -> PMCA (efflux pump)
ca_reac_1 = addreaction(pfpc_model, 'Ca + PMCA -> CaPMCA')
ca_reac_1_k = addkineticlaw(ca_reac_1,'MassAction');
set(ca_reac_1_k, 'ParameterVariableNames', {'kon_pmca_ca'});
ca_reac_2 = addreaction(pfpc_model, 'CaPMCA -> Ca + PMCA')
ca_reac_2_k = addkineticlaw(ca_reac_2,'MassAction');
set(ca_reac_2_k, 'ParameterVariableNames', {'koff_pmca_ca'});
ca_reac_3 = addreaction(pfpc_model, 'CaPMCA -> PMCA')
ca_reac_3_k = addkineticlaw(ca_reac_3,'MassAction');
set(ca_reac_3_k, 'ParameterVariableNames', {'kflux_pmca'});
% Ca + NCX <-> Ca1NCX + Ca <-> Ca2NCX -> NCX
ca_reac_4 = addreaction(pfpc_model, 'Ca + NCX -> CaNCX')
ca_reac_4_k = addkineticlaw(ca_reac_4,'MassAction');
set(ca_reac_4_k, 'ParameterVariableNames', {'kon_ncx_ca'});
ca_reac_5 = addreaction(pfpc_model, 'CaNCX -> Ca + NCX')
ca_reac_5_k = addkineticlaw(ca_reac_5,'MassAction');
set(ca_reac_5_k, 'ParameterVariableNames', {'koff_ncx_ca'});
ca_reac_6 = addreaction(pfpc_model, 'CaNCX + Ca -> Ca2NCX')
ca_reac_6_k = addkineticlaw(ca_reac_6,'MassAction');
set(ca_reac_6_k, 'ParameterVariableNames', {'kon_ncx_ca'});
ca_reac_7 = addreaction(pfpc_model, 'Ca2NCX -> CaNCX + Ca')
ca_reac_7_k = addkineticlaw(ca_reac_7,'MassAction');
set(ca_reac_7_k, 'ParameterVariableNames', {'koff_ncx_ca'});
ca_reac_8 = addreaction(pfpc_model, 'Ca2NCX -> NCX')
ca_reac_8_k = addkineticlaw(ca_reac_8,'MassAction');
set(ca_reac_8_k, 'ParameterVariableNames', {'kflux_ncx'});
% Ca + SERCA <-> Ca1SERCA +Ca <-> Ca2SERCA -> SERCA
ca_reac_9 = addreaction(pfpc_model, 'Ca + SERCA -> CaSERCA')
ca_reac_9_k = addkineticlaw(ca_reac_9,'MassAction');
set(ca_reac_9_k, 'ParameterVariableNames', {'kon_serca_ca'});
ca_reac_10 = addreaction(pfpc_model, 'CaSERCA -> Ca + SERCA')
ca_reac_10_k = addkineticlaw(ca_reac_10,'MassAction');
set(ca_reac_10_k, 'ParameterVariableNames', {'koff_serca_ca'});
ca_reac_11 = addreaction(pfpc_model, 'CaSERCA + Ca -> Ca2SERCA')
ca_reac_11_k = addkineticlaw(ca_reac_11,'MassAction');
set(ca_reac_11_k, 'ParameterVariableNames', {'kon_serca_ca'});
ca_reac_12 = addreaction(pfpc_model, 'Ca2SERCA -> CaSERCA + Ca')
ca_reac_12_k = addkineticlaw(ca_reac_12,'MassAction');
set(ca_reac_12_k, 'ParameterVariableNames', {'koff_serca_ca'});
ca_reac_13 = addreaction(pfpc_model, 'Ca2SERCA -> SERCA + Ca_ER + Ca_ER')
ca_reac_13_k = addkineticlaw(ca_reac_13,'MassAction');
set(ca_reac_13_k, 'ParameterVariableNames', {'kflux_serca'});
% Leak
ca_reac_14 = addreaction(pfpc_model, 'null -> Ca')
ca_reac_14_k = addkineticlaw(ca_reac_14,'MassAction');
set(ca_reac_14_k, 'ParameterVariableNames', {'kleak'});
% PV + Ca <-> CaPV + Ca <-> Ca2PV
ca_reac_15 = addreaction(pfpc_model, 'Ca + PV -> CaPV')
ca_reac_15_k = addkineticlaw(ca_reac_15,'MassAction');
set(ca_reac_15_k, 'ParameterVariableNames', {'kon_pv_ca'});
ca_reac_16 = addreaction(pfpc_model, 'CaPV -> Ca + PV')
ca_reac_16_k = addkineticlaw(ca_reac_16,'MassAction');
set(ca_reac_16_k, 'ParameterVariableNames', {'koff_pv_ca'});
ca_reac_17 = addreaction(pfpc_model, 'CaPV + Ca -> Ca2PV')
ca_reac_17_k = addkineticlaw(ca_reac_17,'MassAction');
set(ca_reac_17_k, 'ParameterVariableNames', {'kon_pv_ca'});
ca_reac_18 = addreaction(pfpc_model, 'Ca2PV -> CaPV + Ca')
ca_reac_18_k = addkineticlaw(ca_reac_18,'MassAction');
set(ca_reac_18_k, 'ParameterVariableNames', {'koff_pv_ca'});
% PV + Mg <-> MgPV <-> Mg2PV, apparent rate constants, [Mg] = 590uM
ca_reac_19 = addreaction(pfpc_model, 'PV + Mg -> MgPV')
ca_reac_19_k = addkineticlaw(ca_reac_19,'MassAction');
set(ca_reac_19_k, 'ParameterVariableNames', {'kon_pv_mg'});
ca_reac_20 = addreaction(pfpc_model, 'MgPV -> PV + Mg')
ca_reac_20_k = addkineticlaw(ca_reac_20,'MassAction');
set(ca_reac_20_k, 'ParameterVariableNames', {'koff_pv_mg'});
ca_reac_21 = addreaction(pfpc_model, 'MgPV + Mg -> Mg2PV')
ca_reac_21_k = addkineticlaw(ca_reac_21,'MassAction');
set(ca_reac_21_k, 'ParameterVariableNames', {'kon_pv_mg'});
ca_reac_22 = addreaction(pfpc_model, 'Mg2PV -> MgPV')
ca_reac_22_k = addkineticlaw(ca_reac_22,'MassAction');
set(ca_reac_22_k, 'ParameterVariableNames', {'koff_pv_mg'});
% CBs + Ca <-> CaCBs + Ca <-> Ca2CBs, CBs - high affinity site
ca_reac_23 = addreaction(pfpc_model, 'Ca + CBs -> CaCBs')
ca_reac_23_k = addkineticlaw(ca_reac_23,'MassAction');
set(ca_reac_23_k, 'ParameterVariableNames', {'kon_cbs_ca'});
ca_reac_24 = addreaction(pfpc_model, 'CaCBs -> Ca + CBs')
ca_reac_24_k = addkineticlaw(ca_reac_24,'MassAction');
set(ca_reac_24_k, 'ParameterVariableNames', {'koff_cbs_ca'});
ca_reac_25 = addreaction(pfpc_model, 'CaCBs + Ca -> Ca2CBs')
ca_reac_25_k = addkineticlaw(ca_reac_25,'MassAction');
set(ca_reac_25_k, 'ParameterVariableNames', {'kon_cbs_ca'});
ca_reac_26 = addreaction(pfpc_model, 'Ca2CBs -> CaCBs + Ca')
ca_reac_26_k = addkineticlaw(ca_reac_26,'MassAction');
set(ca_reac_26_k, 'ParameterVariableNames', {'koff_cbs_ca'});
% CBf + Ca <-> CaCBf + Ca <-> Ca2CBf, CBf - medium affinity site
ca_reac_27 = addreaction(pfpc_model, 'Ca + CBf -> CaCBf')
ca_reac_27_k = addkineticlaw(ca_reac_27,'MassAction');
set(ca_reac_27_k, 'ParameterVariableNames', {'kon_cbf_ca'});
ca_reac_28 = addreaction(pfpc_model, 'CaCBf -> Ca + CBf')
ca_reac_28_k = addkineticlaw(ca_reac_28,'MassAction');
set(ca_reac_28_k, 'ParameterVariableNames', {'koff_cbf_ca'});
ca_reac_29 = addreaction(pfpc_model, 'CaCBf + Ca -> Ca2CBf')
ca_reac_29_k = addkineticlaw(ca_reac_29,'MassAction');
set(ca_reac_29_k, 'ParameterVariableNames', {'kon_cbf_ca'});
ca_reac_30 = addreaction(pfpc_model, 'Ca2CBf -> CaCBf + Ca')
ca_reac_30_k = addkineticlaw(ca_reac_30,'MassAction');
set(ca_reac_30_k, 'ParameterVariableNames', {'koff_cbf_ca'});
%%%mGluR Model%%%
%%%%%mGluR Model%%%%%
%Species (uM)
Ca_deg = addspecies(cytosol, 'Ca_deg', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
glu = addspecies(cytosol, 'glu', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');%250 when released
glu_deg = addspecies(cytosol, 'glu_deg', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');%250 when released
mGLUR = addspecies(cytosol, 'mGLUR', 'InitialAmount', 8.3333, 'InitialAmountUnits', 'micromolarity');
mGLUR_gq = addspecies(cytosol, 'mGLUR_gq', 'InitialAmount', 6.6667, 'InitialAmountUnits', 'micromolarity');
mGLUR_glu = addspecies(cytosol, 'mGLUR_glu', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
mGLUR_gq_glu = addspecies(cytosol, 'mGLUR_gq_glu', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
gq_gdp = addspecies(cytosol, 'gq_gdp', 'InitialAmount', 43.333, 'InitialAmountUnits', 'micromolarity');
ga_gdp = addspecies(cytosol, 'ga_gdp', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
ga_gtp = addspecies(cytosol, 'ga_gtp', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
gbc = addspecies(cytosol, 'gbc', 'InitialAmount', 250, 'InitialAmountUnits', 'micromolarity');
mglur_tot = addspecies(cytosol, 'mglur_tot', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
mglur_tot_Rule = addrule(pfpc_model,'mglur_tot = mGLUR + mGLUR_gq + mGLUR_glu + mGLUR_gq_glu + gq_gdp + ga_gdp + ga_gtp + gbc','repeatedAssignment');
%Parameters
kon_mglur_glu = addparameter(pfpc_model,'kon_mglur_glu', 'Value', 11.11, 'ValueUnits', '1/(micromolarity*second)');
koff_mglur_glu = addparameter(pfpc_model,'koff_mglur_glu', 'Value', 100, 'ValueUnits', '1/second');
kon_mglur_gq = addparameter(pfpc_model,'kon_mglur_gq', 'Value', 2, 'ValueUnits', '1/(micromolarity*second)');
koff_mglur_gq = addparameter(pfpc_model,'koff_mglur_gq', 'Value', 100, 'ValueUnits', '1/second');
kact_gq = addparameter(pfpc_model,'kact_gq', 'Value', 116, 'ValueUnits', '1/second');
kact_gq_basal = addparameter(pfpc_model,'kact_gq_basal', 'Value', 0.0001, 'ValueUnits', '1/second');
kdeact_ga = addparameter(pfpc_model,'kdeact_ga', 'Value', 0.02, 'ValueUnits', '1/second');
ktrimer = addparameter(pfpc_model,'ktrimer', 'Value', 6, 'ValueUnits', '1/(micromolarity*second)');
kdeg_glu = addparameter(pfpc_model,'kdeg_glu', 'Value', 9000, 'ValueUnits', '1/second', 'ConstantValue', false);
kdeg_ca = addparameter(pfpc_model,'kdeg_ca', 'Value', 0, 'ValueUnits', '1/second', 'ConstantValue', false);
%Reactions
%A1
mglur_reac_1 = addreaction(pfpc_model, 'mGLUR + glu -> mGLUR_glu')
mglur_reac_1_k = addkineticlaw(mglur_reac_1,'MassAction');
set(mglur_reac_1_k, 'ParameterVariableNames', {'kon_mglur_glu'});
mglur_reac_2 = addreaction(pfpc_model, 'mGLUR_glu -> mGLUR + glu')
mglur_reac_2_k = addkineticlaw(mglur_reac_2,'MassAction');
set(mglur_reac_2_k, 'ParameterVariableNames', {'koff_mglur_glu'});
%A2
mglur_reac_3 = addreaction(pfpc_model, 'mGLUR_gq + glu -> mGLUR_gq_glu')
mglur_reac_3_k = addkineticlaw(mglur_reac_3,'MassAction');
set(mglur_reac_3_k, 'ParameterVariableNames', {'kon_mglur_glu'});
mglur_reac_4 = addreaction(pfpc_model, 'mGLUR_gq_glu -> mGLUR_gq + glu')
mglur_reac_4_k = addkineticlaw(mglur_reac_4,'MassAction');
set(mglur_reac_4_k, 'ParameterVariableNames', {'koff_mglur_glu'});
%A3
mglur_reac_5 = addreaction(pfpc_model, 'mGLUR + gq_gdp -> mGLUR_gq')
mglur_reac_5_k = addkineticlaw(mglur_reac_5,'MassAction');
set(mglur_reac_5_k, 'ParameterVariableNames', {'kon_mglur_gq'});
mglur_reac_6 = addreaction(pfpc_model, 'mGLUR_gq -> mGLUR + gq_gdp')
mglur_reac_6_k = addkineticlaw(mglur_reac_6,'MassAction');
set(mglur_reac_6_k, 'ParameterVariableNames', {'koff_mglur_gq'});
%A4
mglur_reac_7 = addreaction(pfpc_model, 'mGLUR_glu + gq_gdp -> mGLUR_gq_glu')
mglur_reac_7_k = addkineticlaw(mglur_reac_7,'MassAction');
set(mglur_reac_7_k, 'ParameterVariableNames', {'kon_mglur_gq'});
mglur_reac_8 = addreaction(pfpc_model, 'mGLUR_gq_glu -> mGLUR_glu + gq_gdp')
mglur_reac_8_k = addkineticlaw(mglur_reac_8,'MassAction');
set(mglur_reac_8_k, 'ParameterVariableNames', {'koff_mglur_gq'});
%A5
mglur_reac_9 = addreaction(pfpc_model, 'mGLUR_gq_glu -> mGLUR_glu + ga_gtp + gbc')
mglur_reac_9_k = addkineticlaw(mglur_reac_9,'MassAction');
set(mglur_reac_9_k, 'ParameterVariableNames', {'kact_gq'});
%A7
mglur_reac_11 = addreaction(pfpc_model, 'ga_gtp -> ga_gdp')
mglur_reac_11_k = addkineticlaw(mglur_reac_11,'MassAction');
set(mglur_reac_11_k, 'ParameterVariableNames', {'kdeact_ga'});
%A8
mglur_reac_12 = addreaction(pfpc_model, 'ga_gdp + gbc -> gq_gdp')
mglur_reac_12_k = addkineticlaw(mglur_reac_12,'MassAction');
set(mglur_reac_12_k, 'ParameterVariableNames', {'ktrimer'});
%A9 CLEAR GLUTAMATE
mglur_reac_13 = addreaction(pfpc_model, 'glu -> glu_deg')
mglur_reac_13_k = addkineticlaw(mglur_reac_13,'MassAction');
set(mglur_reac_13_k, 'ParameterVariableNames', {'kdeg_glu'});
%%%%%PLC Model%%%%%
%Species (uM)
IP3 = addspecies(cytosol, 'IP3', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
DAG = addspecies(cytosol, 'DAG', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PLC = addspecies(cytosol, 'PLC', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PLC_Ca = addspecies(cytosol, 'PLC_Ca', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PLC_pip2 = addspecies(cytosol, 'PLC_pip2', 'InitialAmount', 35, 'InitialAmountUnits', 'micromolarity');
PLC_gq_Ca = addspecies(cytosol, 'PLC_gq_Ca', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
pip2 = addspecies(cytosol, 'pip2', 'InitialAmount', 4166.7, 'InitialAmountUnits', 'micromolarity');
PLC_pip2_Ca = addspecies(cytosol, 'PLC_pip2_Ca', 'InitialAmount', 6.25, 'InitialAmountUnits', 'micromolarity');
PLC_gq_pip2 = addspecies(cytosol, 'PLC_gq_pip2', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PLC_gq_pip2_Ca = addspecies(cytosol, 'PLC_gq_pip2_Ca', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%Parameters
kon_plc_ca = addparameter(pfpc_model,'kon_plc_ca', 'Value', 300, 'ValueUnits', '1/(micromolarity*second)');
koff_plc_ca = addparameter(pfpc_model,'koff_plc_ca', 'Value', 100, 'ValueUnits', '1/second');
kon_plc_gq_ca = addparameter(pfpc_model,'kon_plc_gq_ca', 'Value', 900, 'ValueUnits', '1/(micromolarity*second)');
koff_plc_gq_ca = addparameter(pfpc_model,'koff_plc_gq_ca', 'Value', 30, 'ValueUnits', '1/second');
kon_plc_ga = addparameter(pfpc_model,'kon_plc_ga', 'Value', 800, 'ValueUnits', '1/(micromolarity*second)');
koff_plc_ga = addparameter(pfpc_model,'koff_plc_ga', 'Value', 40, 'ValueUnits', '1/second');
kon_plc_ca_ga = addparameter(pfpc_model,'kon_plc_ca_ga', 'Value', 1200, 'ValueUnits', '1/(micromolarity*second)');
koff_plc_ca_ga = addparameter(pfpc_model,'koff_plc_ca_ga', 'Value', 6, 'ValueUnits', '1/second');
kcat_plc_basal = addparameter(pfpc_model,'kcat_plc_basal', 'Value', 0, 'ValueUnits', '1/second');
kcat_plc_ga = addparameter(pfpc_model,'kcat_plc_ga', 'Value', 160, 'ValueUnits', '1/second');
kon_plc_ca_pip2 = addparameter(pfpc_model,'kon_plc_ca_pip2', 'Value', 1, 'ValueUnits', '1/(micromolarity*second)');
koff_plc_ca_pip2 = addparameter(pfpc_model,'koff_plc_ca_pip2', 'Value', 170, 'ValueUnits', '1/second');
kdeact_plc_ga = addparameter(pfpc_model,'kdeact_plc_ga', 'Value', 8, 'ValueUnits', '1/second');
%Reactions
%B1
plc_reac_1 = addreaction(pfpc_model, 'PLC_pip2 + Ca -> PLC_pip2_Ca')
plc_reac_1_k = addkineticlaw(plc_reac_1,'MassAction');
set(plc_reac_1_k, 'ParameterVariableNames', {'kon_plc_ca'});
plc_reac_2 = addreaction(pfpc_model, 'PLC_pip2_Ca -> PLC_pip2 + Ca')
plc_reac_2_k = addkineticlaw(plc_reac_2,'MassAction');
set(plc_reac_2_k, 'ParameterVariableNames', {'koff_plc_ca'});
%B2
plc_reac_3 = addreaction(pfpc_model, 'PLC_gq_pip2 + Ca -> PLC_gq_pip2_Ca')
plc_reac_3_k = addkineticlaw(plc_reac_3,'MassAction');
set(plc_reac_3_k, 'ParameterVariableNames', {'kon_plc_gq_ca'});
plc_reac_4 = addreaction(pfpc_model, 'PLC_gq_pip2_Ca -> PLC_gq_pip2 + Ca')
plc_reac_4_k = addkineticlaw(plc_reac_4,'MassAction');
set(plc_reac_4_k, 'ParameterVariableNames', {'koff_plc_gq_ca'});
%B3
plc_reac_5 = addreaction(pfpc_model, 'PLC_pip2 + ga_gtp -> PLC_gq_pip2')
plc_reac_5_k = addkineticlaw(plc_reac_5,'MassAction');
set(plc_reac_5_k, 'ParameterVariableNames', {'kon_plc_ga'});
plc_reac_6 = addreaction(pfpc_model, 'PLC_gq_pip2 -> PLC_pip2 + ga_gtp')
plc_reac_6_k = addkineticlaw(plc_reac_6,'MassAction');
set(plc_reac_6_k, 'ParameterVariableNames', {'koff_plc_ga'});
%B4
plc_reac_7 = addreaction(pfpc_model, 'PLC_pip2_Ca + ga_gtp -> PLC_gq_pip2_Ca')
plc_reac_7_k = addkineticlaw(plc_reac_7,'MassAction');
set(plc_reac_7_k, 'ParameterVariableNames', {'kon_plc_ca_ga'});
plc_reac_8 = addreaction(pfpc_model, 'PLC_gq_pip2_Ca -> PLC_pip2_Ca + ga_gtp')
plc_reac_8_k = addkineticlaw(plc_reac_8,'MassAction');
set(plc_reac_8_k, 'ParameterVariableNames', {'koff_plc_ca_ga'});
%B5
plc_reac_9 = addreaction(pfpc_model, 'PLC_Ca + ga_gtp -> PLC_gq_Ca')
plc_reac_9_k = addkineticlaw(plc_reac_9,'MassAction');
set(plc_reac_9_k, 'ParameterVariableNames', {'kon_plc_ca_ga'});
plc_reac_10 = addreaction(pfpc_model, 'PLC_gq_Ca -> PLC_Ca + ga_gtp')
plc_reac_10_k = addkineticlaw(plc_reac_10,'MassAction');
set(plc_reac_10_k, 'ParameterVariableNames', {'koff_plc_ca_ga'});
%B6
plc_reac_11 = addreaction(pfpc_model, 'PLC_pip2_Ca -> PLC_Ca + IP3 + DAG')
plc_reac_11_k = addkineticlaw(plc_reac_11,'MassAction');
set(plc_reac_11_k, 'ParameterVariableNames', {'kcat_plc_basal'});
%B7
plc_reac_12 = addreaction(pfpc_model, 'PLC_gq_pip2_Ca -> PLC_Ca + ga_gtp + IP3 + DAG + pip2')
plc_reac_12_k = addkineticlaw(plc_reac_12,'MassAction');
set(plc_reac_12_k, 'ParameterVariableNames', {'kcat_plc_ga'});
%B8
plc_reac_13 = addreaction(pfpc_model, 'PLC_Ca + pip2 -> PLC_pip2_Ca')
plc_reac_13_k = addkineticlaw(plc_reac_13,'MassAction');
set(plc_reac_13_k, 'ParameterVariableNames', {'kon_plc_ca_pip2'});
plc_reac_14 = addreaction(pfpc_model, 'PLC_pip2_Ca -> PLC_Ca + pip2')
plc_reac_14_k = addkineticlaw(plc_reac_14,'MassAction');
set(plc_reac_14_k, 'ParameterVariableNames', {'koff_plc_ca_pip2'});
%B9
plc_reac_15 = addreaction(pfpc_model, 'PLC_gq_Ca + pip2 -> PLC_gq_pip2_Ca')
plc_reac_15_k = addkineticlaw(plc_reac_15,'MassAction');
set(plc_reac_15_k, 'ParameterVariableNames', {'kon_plc_ca_pip2'});
plc_reac_16 = addreaction(pfpc_model, 'PLC_gq_pip2_Ca -> PLC_gq_Ca + pip2')
plc_reac_16_k = addkineticlaw(plc_reac_16,'MassAction');
set(plc_reac_16_k, 'ParameterVariableNames', {'koff_plc_ca_pip2'});
%B10
plc_reac_17 = addreaction(pfpc_model, 'PLC_gq_pip2 -> PLC_pip2 + ga_gdp')
plc_reac_17_k = addkineticlaw(plc_reac_17,'MassAction');
set(plc_reac_17_k, 'ParameterVariableNames', {'kdeact_plc_ga'});
%B11
plc_reac_18 = addreaction(pfpc_model, 'PLC_gq_pip2_Ca -> PLC_pip2_Ca + ga_gdp')
plc_reac_18_k = addkineticlaw(plc_reac_18,'MassAction');
set(plc_reac_18_k, 'ParameterVariableNames', {'kdeact_plc_ga'});
%B12
plc_reac_19 = addreaction(pfpc_model, 'PLC_gq_Ca -> PLC_Ca + ga_gdp')
plc_reac_19_k = addkineticlaw(plc_reac_19,'MassAction');
set(plc_reac_19_k, 'ParameterVariableNames', {'kdeact_plc_ga'});
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% IP3R MODEL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Species
IP3R = addspecies(cytosol, 'IP3R', 'InitialAmount', 0.337, 'InitialAmountUnits', 'micromolarity');
IP3R_IP3 = addspecies(cytosol, 'IP3R_IP3', 'InitialAmount', 0.1, 'InitialAmountUnits', 'micromolarity');
IP3R_open = addspecies(cytosol, 'IP3R_open', 'InitialAmount', 0.00016667, 'InitialAmountUnits', 'micromolarity');
IP3R_Ca = addspecies(cytosol, 'IP3R_Ca', 'InitialAmount', 0.025, 'InitialAmountUnits', 'micromolarity');
IP3R_2Ca = addspecies(cytosol, 'IP3R_2Ca', 'InitialAmount', 0.003, 'InitialAmountUnits', 'micromolarity');
IP3R_3Ca = addspecies(cytosol, 'IP3R_3Ca', 'InitialAmount', 0.0005, 'InitialAmountUnits', 'micromolarity');
IP3R_4Ca = addspecies(cytosol, 'IP3R_4Ca', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%Parameters
kon_ip3r_ip3 = addparameter(pfpc_model,'kon_ip3r_ip3', 'Value', 1000, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3r_ip3 = addparameter(pfpc_model,'koff_ip3r_ip3', 'Value', 25800, 'ValueUnits', '1/second');
kopen_ip3r = addparameter(pfpc_model,'kopen_ip3r', 'Value', 8000, 'ValueUnits', '1/(micromolarity*second)');
kclose_ip3r = addparameter(pfpc_model,'kclose_ip3r', 'Value', 2000, 'ValueUnits', '1/second');
kon_ip3r_ca = addparameter(pfpc_model,'kon_ip3r_ca', 'Value', 8.889/4, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3r_ca = addparameter(pfpc_model,'koff_ip3r_ca', 'Value', 5, 'ValueUnits', '1/second');
kon_ip3r_ca2 = addparameter(pfpc_model,'kon_ip3r_ca2', 'Value', 20/4, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3r_ca2 = addparameter(pfpc_model,'koff_ip3r_ca2', 'Value', 10, 'ValueUnits', '1/second');
kon_ip3r_ca3 = addparameter(pfpc_model,'kon_ip3r_ca3', 'Value', 40/4, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3r_ca3 = addparameter(pfpc_model,'koff_ip3r_ca3', 'Value', 15, 'ValueUnits', '1/second');
kon_ip3r_ca4 = addparameter(pfpc_model,'kon_ip3r_ca4', 'Value', 60/4, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3r_ca4 = addparameter(pfpc_model,'koff_ip3r_ca4', 'Value', 20, 'ValueUnits', '1/second');
%Reactions
%D1
ip3r_reac_1 = addreaction(pfpc_model, 'IP3R + IP3 -> IP3R_IP3')
ip3r_reac_1_k = addkineticlaw(ip3r_reac_1,'MassAction');
set(ip3r_reac_1_k, 'ParameterVariableNames', {'kon_ip3r_ip3'});
ip3r_reac_2 = addreaction(pfpc_model, 'IP3R_IP3 -> IP3R + IP3')
ip3r_reac_2_k = addkineticlaw(ip3r_reac_2,'MassAction');
set(ip3r_reac_2_k, 'ParameterVariableNames', {'koff_ip3r_ip3'});
%D2
ip3r_reac_3 = addreaction(pfpc_model, 'IP3R_IP3 + Ca -> IP3R_open')
ip3r_reac_3_k = addkineticlaw(ip3r_reac_3,'MassAction');
set(ip3r_reac_3_k, 'ParameterVariableNames', {'kopen_ip3r'});
ip3r_reac_4 = addreaction(pfpc_model, 'IP3R_open -> IP3R_IP3 + Ca')
ip3r_reac_4_k = addkineticlaw(ip3r_reac_4,'MassAction');
set(ip3r_reac_4_k, 'ParameterVariableNames', {'kclose_ip3r'});
%D3
ip3r_reac_5 = addreaction(pfpc_model, 'IP3R + Ca -> IP3R_Ca')
ip3r_reac_5_k = addkineticlaw(ip3r_reac_5,'MassAction');
set(ip3r_reac_5_k, 'ParameterVariableNames', {'kon_ip3r_ca'});
ip3r_reac_6 = addreaction(pfpc_model, 'IP3R_Ca -> IP3R + Ca')
ip3r_reac_6_k = addkineticlaw(ip3r_reac_6,'MassAction');
set(ip3r_reac_6_k, 'ParameterVariableNames', {'koff_ip3r_ca'});
%D4
ip3r_reac_7 = addreaction(pfpc_model, 'IP3R_Ca + Ca -> IP3R_2Ca')
ip3r_reac_7_k = addkineticlaw(ip3r_reac_7,'MassAction');
set(ip3r_reac_7_k, 'ParameterVariableNames', {'kon_ip3r_ca2'});
ip3r_reac_8 = addreaction(pfpc_model, 'IP3R_2Ca -> IP3R_Ca + Ca')
ip3r_reac_8_k = addkineticlaw(ip3r_reac_8,'MassAction');
set(ip3r_reac_8_k, 'ParameterVariableNames', {'koff_ip3r_ca2'});
%D5
ip3r_reac_9 = addreaction(pfpc_model, 'IP3R_2Ca + Ca -> IP3R_3Ca')
ip3r_reac_9_k = addkineticlaw(ip3r_reac_9,'MassAction');
set(ip3r_reac_9_k, 'ParameterVariableNames', {'kon_ip3r_ca3'});
ip3r_reac_10 = addreaction(pfpc_model, 'IP3R_3Ca -> IP3R_2Ca + Ca')
ip3r_reac_10_k = addkineticlaw(ip3r_reac_10,'MassAction');
set(ip3r_reac_10_k, 'ParameterVariableNames', {'koff_ip3r_ca3'});
%D6
ip3r_reac_11 = addreaction(pfpc_model, 'IP3R_3Ca + Ca -> IP3R_4Ca')
ip3r_reac_11_k = addkineticlaw(ip3r_reac_11,'MassAction');
set(ip3r_reac_11_k, 'ParameterVariableNames', {'kon_ip3r_ca4'});
ip3r_reac_12 = addreaction(pfpc_model, 'IP3R_4Ca -> IP3R_3Ca + Ca')
ip3r_reac_12_k = addkineticlaw(ip3r_reac_12,'MassAction');
set(ip3r_reac_12_k, 'ParameterVariableNames', {'koff_ip3r_ca4'});
%%%%%Calcium Regulation Model%%%%%
%Species (uM)
Ca_EXT = addspecies(cytosol, 'Ca_EXT', 'InitialAmount', 2000, 'InitialAmountUnits', 'micromolarity');
%%%%%%IP3 DEGRADATION MODEL%%%%%%
%Species
IP3K = addspecies(cytosol, 'IP3K', 'InitialAmount', 0.86667, 'InitialAmountUnits', 'micromolarity');
IP3K_Ca = addspecies(cytosol, 'IP3K_Ca', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
IP3K_2Ca = addspecies(cytosol, 'IP3K_2Ca', 'InitialAmount', 0.033333, 'InitialAmountUnits', 'micromolarity');
IP3K_2Ca_IP3 = addspecies(cytosol, 'IP3K_2Ca_IP3', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
IP2 = addspecies(cytosol, 'IP2', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
IP4 = addspecies(cytosol, 'IP4', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
IP3P = addspecies(cytosol, 'IP3P', 'InitialAmount', 0.98, 'InitialAmountUnits', 'micromolarity');
IP3P_IP3 = addspecies(cytosol, 'IP3P_IP3', 'InitialAmount', 0.02, 'InitialAmountUnits', 'micromolarity');
%Parameters
kon_ip3k_ca = addparameter(pfpc_model,'kon_ip3k_ca', 'Value', 1111.1, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3k_ca = addparameter(pfpc_model,'koff_ip3k_ca', 'Value', 100, 'ValueUnits', '1/second');
kon_ip3k_ip3 = addparameter(pfpc_model,'kon_ip3k_ip3', 'Value', 100, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3k_ip3 = addparameter(pfpc_model,'koff_ip3k_ip3', 'Value', 80, 'ValueUnits', '1/second');
kcat_ip3k = addparameter(pfpc_model,'kcat_ip3k', 'Value', 3, 'ValueUnits', '1/second');
kon_ip3p_ip3 = addparameter(pfpc_model,'kon_ip3p_ip3', 'Value', 9, 'ValueUnits', '1/(micromolarity*second)');
koff_ip3p_ip3 = addparameter(pfpc_model,'koff_ip3p_ip3', 'Value', 72, 'ValueUnits', '1/second');
kcat_ip3p = addparameter(pfpc_model,'kcat_ip3p', 'Value', 10, 'ValueUnits', '1/second');
%Reactions
%C1
ip3_deg_reac_1 = addreaction(pfpc_model, 'IP3K + Ca -> IP3K_Ca')
ip3_deg_reac_1_k = addkineticlaw(ip3_deg_reac_1,'MassAction');
set(ip3_deg_reac_1_k, 'ParameterVariableNames', {'kon_ip3k_ca'});
ip3_deg_reac_2 = addreaction(pfpc_model, 'IP3K_Ca -> IP3K + Ca')
ip3_deg_reac_2_k = addkineticlaw(ip3_deg_reac_2,'MassAction');
set(ip3_deg_reac_2_k, 'ParameterVariableNames', {'koff_ip3k_ca'});
ip3_deg_reac_3 = addreaction(pfpc_model, 'IP3K_Ca + Ca -> IP3K_2Ca')
ip3_deg_reac_3_k = addkineticlaw(ip3_deg_reac_3,'MassAction');
set(ip3_deg_reac_3_k, 'ParameterVariableNames', {'kon_ip3k_ca'});
ip3_deg_reac_4 = addreaction(pfpc_model, 'IP3K_2Ca -> IP3K_Ca + Ca')
ip3_deg_reac_4_k = addkineticlaw(ip3_deg_reac_4,'MassAction');
set(ip3_deg_reac_4_k, 'ParameterVariableNames', {'koff_ip3k_ca'});
%C2
ip3_deg_reac_5 = addreaction(pfpc_model, 'IP3K_2Ca + IP3 -> IP3K_2Ca_IP3')
ip3_deg_reac_5_k = addkineticlaw(ip3_deg_reac_5,'MassAction');
set(ip3_deg_reac_5_k, 'ParameterVariableNames', {'kon_ip3k_ip3'});
ip3_deg_reac_6 = addreaction(pfpc_model, 'IP3K_2Ca_IP3 -> IP3K_2Ca + IP3')
ip3_deg_reac_6_k = addkineticlaw(ip3_deg_reac_6,'MassAction');
set(ip3_deg_reac_6_k, 'ParameterVariableNames', {'koff_ip3k_ip3'});
%C3
ip3_deg_reac_7 = addreaction(pfpc_model, 'IP3K_2Ca_IP3 -> IP3K_2Ca + IP4')
ip3_deg_reac_7_k = addkineticlaw(ip3_deg_reac_7,'MassAction');
set(ip3_deg_reac_7_k, 'ParameterVariableNames', {'kcat_ip3k'});
%C4
ip3_deg_reac_8 = addreaction(pfpc_model, 'IP3P + IP3 -> IP3P_IP3')
ip3_deg_reac_8_k = addkineticlaw(ip3_deg_reac_8,'MassAction');
set(ip3_deg_reac_8_k, 'ParameterVariableNames', {'kon_ip3p_ip3'});
ip3_deg_reac_9 = addreaction(pfpc_model, 'IP3P_IP3 -> IP3P + IP3')
ip3_deg_reac_9_k = addkineticlaw(ip3_deg_reac_9,'MassAction');
set(ip3_deg_reac_9_k, 'ParameterVariableNames', {'koff_ip3p_ip3'});
%C5
ip3_deg_reac_10 = addreaction(pfpc_model, 'IP3P_IP3 -> IP3P + IP2')
ip3_deg_reac_10_k = addkineticlaw(ip3_deg_reac_10,'MassAction');
set(ip3_deg_reac_10_k, 'ParameterVariableNames', {'kcat_ip3p'});
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CAMKII MODEL%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Add species
PP2A = addspecies(cytosol, 'PP2A', 'InitialAmount', 0.5, 'InitialAmountUnits', 'micromolarity');
PP1 = addspecies(cytosol, 'PP1', 'InitialAmount', 0.5, 'InitialAmountUnits', 'micromolarity');
CaM = addspecies(cytosol, 'CaM', 'InitialAmount', 60, 'InitialAmountUnits', 'micromolarity');
Ca2CaM = addspecies(cytosol, 'Ca2CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
Ca3CaM = addspecies(cytosol, 'Ca3CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
Ca4CaM = addspecies(cytosol, 'Ca4CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_00 = addspecies(cytosol, 'CaMKII_00_00', 'InitialAmount', 20, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_10 = addspecies(cytosol, 'CaMKII_00_10', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_11 = addspecies(cytosol, 'CaMKII_00_11', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_00 = addspecies(cytosol, 'CaMKII_10_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_00_PP2A = addspecies(cytosol, 'CaMKII_10_00_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_00 = addspecies(cytosol, 'CaMKII_11_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_00_PP2A = addspecies(cytosol, 'CaMKII_11_00_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10a_00 = addspecies(cytosol, 'CaMKII_10a_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_00 = addspecies(cytosol, 'CaMKII_12_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_00_PP2A = addspecies(cytosol, 'CaMKII_12_00_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20a_00 = addspecies(cytosol, 'CaMKII_20a_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_22_00 = addspecies(cytosol, 'CaMKII_22_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_22_00_PP2A = addspecies(cytosol, 'CaMKII_22_00_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_00 = addspecies(cytosol, 'CaMKII_20_00', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_00_PP2A = addspecies(cytosol, 'CaMKII_20_00_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_10 = addspecies(cytosol, 'CaMKII_10_10', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_10_PP2A = addspecies(cytosol, 'CaMKII_10_10_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_01 = addspecies(cytosol, 'CaMKII_10_01', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_01_PP2A = addspecies(cytosol, 'CaMKII_10_01_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_10 = addspecies(cytosol, 'CaMKII_11_10', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_10_PP2A = addspecies(cytosol, 'CaMKII_11_10_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10a_10 = addspecies(cytosol, 'CaMKII_10a_10', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_01 = addspecies(cytosol, 'CaMKII_20_01', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_01_PP2A = addspecies(cytosol, 'CaMKII_20_01_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_10 = addspecies(cytosol, 'CaMKII_12_10', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_10_PP2A = addspecies(cytosol, 'CaMKII_12_10_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20a_01 = addspecies(cytosol, 'CaMKII_20a_01', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_11 = addspecies(cytosol, 'CaMKII_10_11', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_11_PP2A = addspecies(cytosol, 'CaMKII_10_11_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_11 = addspecies(cytosol, 'CaMKII_11_11', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_11_PP2A = addspecies(cytosol, 'CaMKII_11_11_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%%PDE1 Activation and Regulation%%%%%
PDE1 = addspecies(cytosol, 'PDE1', 'InitialAmount', 0.6, 'InitialAmountUnits', 'micromolarity');
PDE5 = addspecies(cytosol, 'PDE5', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE1_CaM = addspecies(cytosol, 'PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE1p = addspecies(cytosol, 'PDE1p', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE1p_CaM = addspecies(cytosol, 'PDE1p_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE_active = addspecies(cytosol, 'PDE_active', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE_Active_Rule = addrule(pfpc_model,'PDE_active = PDE1_CaM + PDE1p_CaM','repeatedAssignment');
%%phosphorylation of PDE1 by CaMKII
CaMKII_00_10_PDE1 = addspecies(cytosol, 'CaMKII_00_10_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_11_PDE1 = addspecies(cytosol, 'CaMKII_00_11_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_00_PDE1 = addspecies(cytosol, 'CaMKII_10_00_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_00_PDE1 = addspecies(cytosol, 'CaMKII_20_00_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_10_PDE1 = addspecies(cytosol, 'CaMKII_10_10_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_01_PDE1 = addspecies(cytosol, 'CaMKII_10_01_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_01_PDE1 = addspecies(cytosol, 'CaMKII_20_01_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_11_PDE1 = addspecies(cytosol, 'CaMKII_10_11_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_11_PDE1 = addspecies(cytosol, 'CaMKII_11_11_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_00_PDE1 = addspecies(cytosol, 'CaMKII_11_00_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_00_PDE1 = addspecies(cytosol, 'CaMKII_12_00_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_22_00_PDE1 = addspecies(cytosol, 'CaMKII_22_00_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_10_PDE1 = addspecies(cytosol, 'CaMKII_11_10_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_10_PDE1 = addspecies(cytosol, 'CaMKII_12_10_PDE1', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_10_PDE1_CaM = addspecies(cytosol, 'CaMKII_00_10_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_00_11_PDE1_CaM = addspecies(cytosol, 'CaMKII_00_11_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_00_PDE1_CaM = addspecies(cytosol, 'CaMKII_10_00_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_00_PDE1_CaM = addspecies(cytosol, 'CaMKII_20_00_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_10_PDE1_CaM = addspecies(cytosol, 'CaMKII_10_10_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_01_PDE1_CaM = addspecies(cytosol, 'CaMKII_10_01_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_20_01_PDE1_CaM = addspecies(cytosol, 'CaMKII_20_01_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_10_11_PDE1_CaM = addspecies(cytosol, 'CaMKII_10_11_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_11_PDE1_CaM = addspecies(cytosol, 'CaMKII_11_11_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_00_PDE1_CaM = addspecies(cytosol, 'CaMKII_11_00_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_00_PDE1_CaM = addspecies(cytosol, 'CaMKII_12_00_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_22_00_PDE1_CaM = addspecies(cytosol, 'CaMKII_22_00_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_11_10_PDE1_CaM = addspecies(cytosol, 'CaMKII_11_10_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_12_10_PDE1_CaM = addspecies(cytosol, 'CaMKII_12_10_PDE1_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%cGMP Production by GC%%%%
GC = addspecies(cytosol, 'GC', 'InitialAmount', 0.04, 'InitialAmountUnits', 'micromolarity');
NO = addspecies(cytosol, 'NO', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity', 'ConstantAmount', false);
GC_NO = addspecies(cytosol, 'GC_NO', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
GTP = addspecies(cytosol, 'GTP', 'InitialAmount', 100, 'InitialAmountUnits', 'micromolarity');
GC_NO_GTP = addspecies(cytosol, 'GC_NO_GTP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
cGMP = addspecies(cytosol, 'cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Hydrolysis of cGMP by PDE1%%%%
%Basal hydrolysis
PDE1_cGMP = addspecies(cytosol, 'PDE1_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE1p_cGMP = addspecies(cytosol, 'PDE1p_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%Active hydrolysis
PDE1_CaM_cGMP = addspecies(cytosol, 'PDE1_CaM_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE1p_CaM_cGMP = addspecies(cytosol, 'PDE1p_CaM_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PDE5_cGMP = addspecies(cytosol, 'PDE5_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Activation of PKG by cGMP%%%%
PKG = addspecies(cytosol, 'PKG', 'InitialAmount', 0.2, 'InitialAmountUnits', 'micromolarity');
PKG_cGMP = addspecies(cytosol, 'PKG_cGMP', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Phosphorylation of Gsubstrate by PKG
Gsub = addspecies(cytosol, 'Gsub', 'InitialAmount', 3.5, 'InitialAmountUnits', 'micromolarity');
PKG_cGMP_Gsub = addspecies(cytosol, 'PKG_cGMP_Gsub', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
pGsub = addspecies(cytosol, 'pGsub', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Inhibition of PP2A by pGsub%%%%
PP2A_pGsub = addspecies(cytosol, 'PP2A_pGsub', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Inhibition of PP1 by pGsub%%%%
PP1_pGsub = addspecies(cytosol, 'PP1_pGsub', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Dephosphorylation of Gsubstrate by PP2A
pGsub_PP2A = addspecies(cytosol, 'pGsub_PP2A', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Calcineurin binding to CaM
CaN = addspecies(cytosol, 'CaN', 'InitialAmount', 1, 'InitialAmountUnits', 'micromolarity');
CaN_CaM = addspecies(cytosol, 'CaN_CaM', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Dephosphorylation of Gsubstrate by CaN
CaN_pGsub = addspecies(cytosol, 'CaN_pGsub', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%%%%Autonomous CaMKII Percentage%%%%%
CaMKII_Auton = addspecies(cytosol, 'CaMKII_Auton', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
%Each CaMKII has two subunits, each with a single T286 site. So this percentage is of the total number of phosphorylated sites (i.e. 2*[CaMKII]_t0)
CaMKII_Auton_Rule = addrule(pfpc_model, 'CaMKII_Auton = 100*((CaMKII_10_00 + CaMKII_20_00 + CaMKII_10_10 + CaMKII_10_01 + CaMKII_20_01 + CaMKII_10_11 + CaMKII_10a_00 + CaMKII_20a_00 + CaMKII_10a_10 + CaMKII_20a_01 + CaMKII_10_10_PP2A + CaMKII_10_01_PP2A + CaMKII_20_00_PP2A + CaMKII_20_01_PP2A + CaMKII_10_11_PP2A + CaMKII_10_10_PP1 + CaMKII_10_01_PP1 + CaMKII_20_00_PP1 + CaMKII_20_01_PP1 + CaMKII_10_11_PP1 + (2*(CaMKII_11_11 + CaMKII_11_00 + CaMKII_12_00 + CaMKII_22_00 + CaMKII_11_10 + CaMKII_12_10 + CaMKII_11_00_PP2A + CaMKII_12_00_PP2A + CaMKII_22_00_PP2A + CaMKII_11_10_PP2A + CaMKII_12_10_PP2A + CaMKII_11_11_PP2A + CaMKII_11_00_PP1 + CaMKII_12_00_PP1 + CaMKII_22_00_PP1 + CaMKII_11_10_PP1 + CaMKII_12_10_PP1 + CaMKII_11_11_PP1)))/40)', 'repeatedAssignment');
CaMKII_305p = addspecies(cytosol, 'CaMKII_305p', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
CaMKII_305p_Rule = addrule(pfpc_model, 'CaMKII_305p = CaMKII_20a_00 + CaMKII_22_00 + CaMKII_22_00_PP2A + CaMKII_20_00 + CaMKII_20_00_PP2A + CaMKII_20_01 + CaMKII_20_01_PP2A + CaMKII_20a_01 + CaMKII_20_00_PDE1 + CaMKII_20_01_PDE1 + CaMKII_22_00_PDE1 + CaMKII_20_00_PDE1_CaM + CaMKII_20_01_PDE1_CaM + CaMKII_22_00_PDE1_CaM', 'repeatedAssignment');
%%%%Active PP2A%%%%%
PP2A_active = addspecies(cytosol, 'PP2A_active', 'InitialAmount', 0, 'InitialAmountUnits', 'micromolarity');
PP2A_active_rule = addrule(pfpc_model, 'PP2A_active = PP2A+CaMKII_10_00_PP2A+CaMKII_11_00_PP2A+CaMKII_12_00_PP2A+CaMKII_22_00_PP2A+CaMKII_20_00_PP2A+CaMKII_10_10_PP2A+CaMKII_10_01_PP2A+CaMKII_11_10_PP2A+CaMKII_20_01_PP2A+CaMKII_12_10_PP2A+CaMKII_10_11_PP2A+CaMKII_11_11_PP2A+pGsub_PP2A', 'repeatedAssignment');
%%%%%%CaM Activation model parameters%%%%%%
kon_cam_ca1 = addparameter(pfpc_model,'kon_cam_ca1', 'Value', 16.7788, 'ValueUnits', '1/(micromolarity*micromolarity*second)');
koff_cam_ca1 = addparameter(pfpc_model,'koff_cam_ca1', 'Value', 34.9426, 'ValueUnits', '1/second');
kon_cam_ca3 = addparameter(pfpc_model,'kon_cam_ca3', 'Value', 13.5158, 'ValueUnits', '1/(micromolarity*second)');
koff_cam_ca3 = addparameter(pfpc_model,'koff_cam_ca3', 'Value', 228.3048, 'ValueUnits', '1/second');
kon_cam_ca4 = addparameter(pfpc_model,'kon_cam_ca4', 'Value', 26.2878, 'ValueUnits', '1/(micromolarity*second)');
koff_cam_ca4 = addparameter(pfpc_model,'koff_cam_ca4', 'Value', 64.0459, 'ValueUnits', '1/second');
%%%%%%%%%%CaM Activation Model Reactions%%%%%%%%%%%%%
%CaM Reactions
cam_reac_1 = addreaction(pfpc_model, 'CaM + Ca + Ca -> Ca2CaM');
cam_reac_1_k = addkineticlaw(cam_reac_1,'MassAction');
set(cam_reac_1_k, 'ParameterVariableNames', {'kon_cam_ca1'});
cam_reac_2 = addreaction(pfpc_model, 'Ca2CaM -> CaM + Ca + Ca');
cam_reac_2_k = addkineticlaw(cam_reac_2,'MassAction');
set(cam_reac_2_k, 'ParameterVariableNames', {'koff_cam_ca1'});
cam_reac_3 = addreaction(pfpc_model, 'Ca2CaM + Ca -> Ca3CaM');
cam_reac_3_k = addkineticlaw(cam_reac_3,'MassAction');
set(cam_reac_3_k, 'ParameterVariableNames', {'kon_cam_ca3'});
cam_reac_4 = addreaction(pfpc_model, 'Ca3CaM -> Ca2CaM + Ca');
cam_reac_4_k = addkineticlaw(cam_reac_4,'MassAction');
set(cam_reac_4_k, 'ParameterVariableNames', {'koff_cam_ca3'});
cam_reac_5 = addreaction(pfpc_model, 'Ca3CaM + Ca -> Ca4CaM');
cam_reac_5_k = addkineticlaw(cam_reac_5,'MassAction');
set(cam_reac_5_k, 'ParameterVariableNames', {'kon_cam_ca4'});
cam_reac_6 = addreaction(pfpc_model, 'Ca4CaM -> Ca3CaM + Ca');
cam_reac_6_k = addkineticlaw(cam_reac_6,'MassAction');
set(cam_reac_6_k, 'ParameterVariableNames', {'koff_cam_ca4'});
%%%%%CaMKII Activation Model Parameters%%%%
%binding of CaM to CamKII
k1 = addparameter(pfpc_model,'k1', 'Value', 0.0590, 'ValueUnits', '1/(micromolarity*second)');
k1_2 = addparameter(pfpc_model,'k1_2', 'Value', 1.3150, 'ValueUnits', '1/(micromolarity*second)');
%unbinding of CaM to CamKII
k1r = addparameter(pfpc_model,'k1r', 'Value', 2.848, 'ValueUnits', '1/second');
k1r_2 = addparameter(pfpc_model,'k1r_2', 'Value', 5.696, 'ValueUnits', '1/second');
%autophosphorylation at T286
k2 = addparameter(pfpc_model,'k2', 'Value', 4.5176, 'ValueUnits', '1/second');
k2_2 = addparameter(pfpc_model,'k2_2', 'Value', 16.3875, 'ValueUnits', '1/second');
%binding of CaM to CamKIIpT286
k10 = addparameter(pfpc_model,'k10', 'Value', 38.4349, 'ValueUnits', '1/(micromolarity*second)');
k10_2 = addparameter(pfpc_model,'k10_2', 'Value', 8.4000, 'ValueUnits', '1/(micromolarity*second)');
%unbinding of CaM to CamKIIpT286
k10r = addparameter(pfpc_model,'k10r', 'Value', 0.33, 'ValueUnits', '1/second');
k10r_2 = addparameter(pfpc_model,'k10r_2', 'Value', 0.62, 'ValueUnits', '1/second');
%autophosphorylation at T305
k3 = addparameter(pfpc_model,'k3', 'Value', 0.1, 'ValueUnits', '1/second');
k3_2 = addparameter(pfpc_model,'k3_2', 'Value', 0.2, 'ValueUnits', '1/second');
%Deactivation of CaMKII after dephosphorylation
kdeact_cam = addparameter(pfpc_model,'kdeact_cam', 'Value', 2, 'ValueUnits', '1/second');
%dephosporylation by PP2A
kon_camkii_pp2a = addparameter(pfpc_model,'kon_camkii_pp2a', 'Value', 2, 'ValueUnits', '1/(micromolarity*second)', 'ConstantValue', false);
kon_camkii_pp2a_2 = addparameter(pfpc_model,'kon_camkii_pp2a_2', 'Value', 4, 'ValueUnits', '1/(micromolarity*second)', 'ConstantValue', false);
koff_camkii_pp2a = addparameter(pfpc_model,'koff_camkii_pp2a', 'Value', 0.8, 'ValueUnits', '1/second');
kcat_pp2a_cam = addparameter(pfpc_model,'kcat_pp2a_cam', 'Value', 0.2, 'ValueUnits', '1/second');
%dephosporylation by PP1
kon_camkii_pp1 = addparameter(pfpc_model,'kon_camkii_pp1', 'Value', 2, 'ValueUnits', '1/(micromolarity*second)', 'ConstantValue', false);
kon_camkii_pp1_2 = addparameter(pfpc_model,'kon_camkii_pp1_2', 'Value', 4, 'ValueUnits', '1/(micromolarity*second)', 'ConstantValue', false);
koff_camkii_pp1 = addparameter(pfpc_model,'koff_camkii_pp1', 'Value', 0.8, 'ValueUnits', '1/second');
kcat_pp1_cam = addparameter(pfpc_model,'kcat_pp1_cam', 'Value', 0.2, 'ValueUnits', '1/second');
%%%%%CaMKII Activation Model Reactions%%%%
%1
camkii_reac_1 = addreaction(pfpc_model, 'CaMKII_00_00 + Ca4CaM -> CaMKII_00_10');
camkii_reac_1_k = addkineticlaw(camkii_reac_1,'MassAction');
set(camkii_reac_1_k, 'ParameterVariableNames', {'k1_2'});
%2
camkii_reac_2a = addreaction(pfpc_model, 'CaMKII_00_10 -> CaMKII_00_00 + Ca4CaM');
camkii_reac_2a_k = addkineticlaw(camkii_reac_2a,'MassAction');
set(camkii_reac_2a_k, 'ParameterVariableNames', {'k1r'});
camkii_reac_2b = addreaction(pfpc_model, 'CaMKII_00_10 + Ca4CaM -> CaMKII_00_11');
camkii_reac_2b_k = addkineticlaw(camkii_reac_2b,'MassAction');
set(camkii_reac_2b_k, 'ParameterVariableNames', {'k1'});
%3
camkii_reac_3a = addreaction(pfpc_model, 'CaMKII_00_11 -> CaMKII_00_10 + Ca4CaM');
camkii_reac_3a_k = addkineticlaw(camkii_reac_3a,'MassAction');
set(camkii_reac_3a_k, 'ParameterVariableNames', {'k1r_2'});
camkii_reac_3b = addreaction(pfpc_model, 'CaMKII_00_11 -> CaMKII_10_11');
camkii_reac_3b_k = addkineticlaw(camkii_reac_3b,'MassAction');
set(camkii_reac_3b_k, 'ParameterVariableNames', {'k2_2'});
%4
camkii_reac_4a = addreaction(pfpc_model, 'CaMKII_10_00 + Ca4CaM -> CaMKII_10_10');
camkii_reac_4a_k = addkineticlaw(camkii_reac_4a,'MassAction');
set(camkii_reac_4a_k, 'ParameterVariableNames', {'k10'});
camkii_reac_4b = addreaction(pfpc_model, 'CaMKII_10_00 + Ca4CaM -> CaMKII_10_01');
camkii_reac_4b_k = addkineticlaw(camkii_reac_4b,'MassAction');
set(camkii_reac_4b_k, 'ParameterVariableNames', {'k1'});
camkii_reac_4c = addreaction(pfpc_model, 'CaMKII_10_00 + PP2A -> CaMKII_10_00_PP2A');
camkii_reac_4c_k = addkineticlaw(camkii_reac_4c,'MassAction');
set(camkii_reac_4c_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_4d = addreaction(pfpc_model, 'CaMKII_10_00_PP2A -> CaMKII_10_00 + PP2A');
camkii_reac_4d_k = addkineticlaw(camkii_reac_4d,'MassAction');
set(camkii_reac_4d_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_4e = addreaction(pfpc_model, 'CaMKII_10_00_PP2A -> CaMKII_00_00 + PP2A');
camkii_reac_4e_k = addkineticlaw(camkii_reac_4e,'MassAction');
set(camkii_reac_4e_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
camkii_reac_4f = addreaction(pfpc_model, 'CaMKII_10_00 -> CaMKII_20_00');
camkii_reac_4f_k = addkineticlaw(camkii_reac_4f,'MassAction');
set(camkii_reac_4f_k, 'ParameterVariableNames', {'k3'});
%5
camkii_reac_5a = addreaction(pfpc_model, 'CaMKII_11_00 + Ca4CaM -> CaMKII_11_10');
camkii_reac_5a_k = addkineticlaw(camkii_reac_5a,'MassAction');
set(camkii_reac_5a_k, 'ParameterVariableNames', {'k10_2'});
camkii_reac_5b = addreaction(pfpc_model, 'CaMKII_11_00 + PP2A -> CaMKII_11_00_PP2A');
camkii_reac_5b_k = addkineticlaw(camkii_reac_5b,'MassAction');
set(camkii_reac_5b_k, 'ParameterVariableNames', {'kon_camkii_pp2a_2'});
camkii_reac_5c = addreaction(pfpc_model, 'CaMKII_11_00_PP2A -> CaMKII_11_00 + PP2A');
camkii_reac_5c_k = addkineticlaw(camkii_reac_5c,'MassAction');
set(camkii_reac_5c_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_5d = addreaction(pfpc_model, 'CaMKII_11_00_PP2A -> CaMKII_10a_00 + PP2A');
camkii_reac_5d_k = addkineticlaw(camkii_reac_5d,'MassAction');
set(camkii_reac_5d_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
camkii_reac_5e = addreaction(pfpc_model, 'CaMKII_10a_00 -> CaMKII_11_00');
camkii_reac_5e_k = addkineticlaw(camkii_reac_5e,'MassAction');
set(camkii_reac_5e_k, 'ParameterVariableNames', {'k2'});
camkii_reac_5f = addreaction(pfpc_model, 'CaMKII_10a_00 -> CaMKII_10_00');
camkii_reac_5f_k = addkineticlaw(camkii_reac_5f,'MassAction');
set(camkii_reac_5f_k, 'ParameterVariableNames', {'kdeact_cam'});
camkii_reac_5g = addreaction(pfpc_model, 'CaMKII_11_00 -> CaMKII_12_00');
camkii_reac_5g_k = addkineticlaw(camkii_reac_5g,'MassAction');
set(camkii_reac_5g_k, 'ParameterVariableNames', {'k3_2'});
%6
camkii_reac_6a = addreaction(pfpc_model, 'CaMKII_12_00 + Ca4CaM -> CaMKII_12_10');
camkii_reac_6a_k = addkineticlaw(camkii_reac_6a,'MassAction');
set(camkii_reac_6a_k, 'ParameterVariableNames', {'k10'});
camkii_reac_6b = addreaction(pfpc_model, 'CaMKII_12_00 + PP2A -> CaMKII_12_00_PP2A');
camkii_reac_6b_k = addkineticlaw(camkii_reac_6b,'MassAction');
set(camkii_reac_6b_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_6c = addreaction(pfpc_model, 'CaMKII_12_00_PP2A -> CaMKII_12_00 + PP2A');
camkii_reac_6c_k = addkineticlaw(camkii_reac_6c,'MassAction');
set(camkii_reac_6c_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_6d = addreaction(pfpc_model, 'CaMKII_12_00_PP2A -> CaMKII_10a_00 + PP2A');
camkii_reac_6d_k = addkineticlaw(camkii_reac_6d,'MassAction');
set(camkii_reac_6d_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
camkii_reac_6e = addreaction(pfpc_model, 'CaMKII_12_00 + PP2A -> CaMKII_12_00_PP2A');
camkii_reac_6e_k = addkineticlaw(camkii_reac_6e,'MassAction');
set(camkii_reac_6e_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_6f = addreaction(pfpc_model, 'CaMKII_12_00_PP2A -> CaMKII_12_00 + PP2A');
camkii_reac_6f_k = addkineticlaw(camkii_reac_6f,'MassAction');
set(camkii_reac_6f_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_6g = addreaction(pfpc_model, 'CaMKII_12_00_PP2A -> CaMKII_20a_00 + PP2A');
camkii_reac_6g_k = addkineticlaw(camkii_reac_6g,'MassAction');
set(camkii_reac_6g_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
camkii_reac_6h = addreaction(pfpc_model, 'CaMKII_20a_00 -> CaMKII_12_00');
camkii_reac_6h_k = addkineticlaw(camkii_reac_6h,'MassAction');
set(camkii_reac_6h_k, 'ParameterVariableNames', {'k2'});
camkii_reac_6i = addreaction(pfpc_model, 'CaMKII_20a_00 -> CaMKII_20_00');
camkii_reac_6i_k = addkineticlaw(camkii_reac_6i,'MassAction');
set(camkii_reac_6i_k, 'ParameterVariableNames', {'kdeact_cam'});
camkii_reac_6j = addreaction(pfpc_model, 'CaMKII_12_00 -> CaMKII_22_00');
camkii_reac_6j_k = addkineticlaw(camkii_reac_6j,'MassAction');
set(camkii_reac_6j_k, 'ParameterVariableNames', {'k3'});
%7
camkii_reac_7a = addreaction(pfpc_model, 'CaMKII_22_00 + PP2A -> CaMKII_22_00_PP2A');
camkii_reac_7a_k = addkineticlaw(camkii_reac_7a,'MassAction');
set(camkii_reac_7a_k, 'ParameterVariableNames', {'kon_camkii_pp2a_2'});
camkii_reac_7b = addreaction(pfpc_model, 'CaMKII_22_00_PP2A -> CaMKII_22_00 + PP2A');
camkii_reac_7b_k = addkineticlaw(camkii_reac_7b,'MassAction');
set(camkii_reac_7b_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_7c = addreaction(pfpc_model, 'CaMKII_22_00_PP2A -> CaMKII_20a_00 + PP2A');
camkii_reac_7c_k = addkineticlaw(camkii_reac_7c,'MassAction');
set(camkii_reac_7c_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
%8
camkii_reac_8a = addreaction(pfpc_model, 'CaMKII_20_00 + Ca4CaM -> CaMKII_20_01');
camkii_reac_8a_k = addkineticlaw(camkii_reac_8a,'MassAction');
set(camkii_reac_8a_k, 'ParameterVariableNames', {'k1'});
camkii_reac_8b = addreaction(pfpc_model, 'CaMKII_20_00 + PP2A -> CaMKII_20_00_PP2A');
camkii_reac_8b_k = addkineticlaw(camkii_reac_8b,'MassAction');
set(camkii_reac_8b_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_8c = addreaction(pfpc_model, 'CaMKII_20_00_PP2A -> CaMKII_20_00 + PP2A');
camkii_reac_8c_k = addkineticlaw(camkii_reac_8c,'MassAction');
set(camkii_reac_8c_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_8d = addreaction(pfpc_model, 'CaMKII_20_00_PP2A -> CaMKII_00_00 + PP2A');
camkii_reac_8d_k = addkineticlaw(camkii_reac_8d,'MassAction');
set(camkii_reac_8d_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
%9
camkii_reac_9a = addreaction(pfpc_model, 'CaMKII_10_10 -> CaMKII_10_00 + Ca4CaM');
camkii_reac_9a_k = addkineticlaw(camkii_reac_9a,'MassAction');
set(camkii_reac_9a_k, 'ParameterVariableNames', {'k10r'});
camkii_reac_9b = addreaction(pfpc_model, 'CaMKII_10_10 + Ca4CaM -> CaMKII_10_11');
camkii_reac_9b_k = addkineticlaw(camkii_reac_9b,'MassAction');
set(camkii_reac_9b_k, 'ParameterVariableNames', {'k1'});
camkii_reac_9c = addreaction(pfpc_model, 'CaMKII_10_10 + PP2A -> CaMKII_10_10_PP2A');
camkii_reac_9c_k = addkineticlaw(camkii_reac_9c,'MassAction');
set(camkii_reac_9c_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_9d = addreaction(pfpc_model, 'CaMKII_10_10_PP2A -> CaMKII_10_10 + PP2A');
camkii_reac_9d_k = addkineticlaw(camkii_reac_9d,'MassAction');
set(camkii_reac_9d_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_9e = addreaction(pfpc_model, 'CaMKII_10_10_PP2A -> CaMKII_00_10 + PP2A');
camkii_reac_9e_k = addkineticlaw(camkii_reac_9e,'MassAction');
set(camkii_reac_9e_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
%10
camkii_reac_10a = addreaction(pfpc_model, 'CaMKII_10_01 -> CaMKII_10_00 + Ca4CaM');
camkii_reac_10a_k = addkineticlaw(camkii_reac_10a,'MassAction');
set(camkii_reac_10a_k, 'ParameterVariableNames', {'k1r'});
camkii_reac_10b = addreaction(pfpc_model, 'CaMKII_10_01 + Ca4CaM -> CaMKII_10_11');
camkii_reac_10b_k = addkineticlaw(camkii_reac_10b,'MassAction');
set(camkii_reac_10b_k, 'ParameterVariableNames', {'k10'});
camkii_reac_10c = addreaction(pfpc_model, 'CaMKII_10_01 + PP2A -> CaMKII_10_01_PP2A');
camkii_reac_10c_k = addkineticlaw(camkii_reac_10c,'MassAction');
set(camkii_reac_10c_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_10d = addreaction(pfpc_model, 'CaMKII_10_01_PP2A -> CaMKII_10_01 + PP2A');
camkii_reac_10d_k = addkineticlaw(camkii_reac_10d,'MassAction');
set(camkii_reac_10d_k, 'ParameterVariableNames', {'koff_camkii_pp2a'});
camkii_reac_10e = addreaction(pfpc_model, 'CaMKII_10_01_PP2A -> CaMKII_00_10 + PP2A');
camkii_reac_10e_k = addkineticlaw(camkii_reac_10e,'MassAction');
set(camkii_reac_10e_k, 'ParameterVariableNames', {'kcat_pp2a_cam'});
camkii_reac_10f = addreaction(pfpc_model, 'CaMKII_10_01 -> CaMKII_20_01');
camkii_reac_10f_k = addkineticlaw(camkii_reac_10f,'MassAction');
set(camkii_reac_10f_k, 'ParameterVariableNames', {'k3'});
%%%%%%%%%%%%NEW%%%%%%%%%%%%
camkii_reac_10g = addreaction(pfpc_model, 'CaMKII_10_01 -> CaMKII_11_10');
camkii_reac_10g_k = addkineticlaw(camkii_reac_10g,'MassAction');
set(camkii_reac_10g_k, 'ParameterVariableNames', {'k2'});
%11
camkii_reac_11a = addreaction(pfpc_model, 'CaMKII_11_10 -> CaMKII_11_00 + Ca4CaM');
camkii_reac_11a_k = addkineticlaw(camkii_reac_11a,'MassAction');
set(camkii_reac_11a_k, 'ParameterVariableNames', {'k10r'});
camkii_reac_11b = addreaction(pfpc_model, 'CaMKII_11_10 + Ca4CaM -> CaMKII_11_11');
camkii_reac_11b_k = addkineticlaw(camkii_reac_11b,'MassAction');
set(camkii_reac_11b_k, 'ParameterVariableNames', {'k10'});
camkii_reac_11c = addreaction(pfpc_model, 'CaMKII_11_10 + PP2A -> CaMKII_11_10_PP2A');
camkii_reac_11c_k = addkineticlaw(camkii_reac_11c,'MassAction');
set(camkii_reac_11c_k, 'ParameterVariableNames', {'kon_camkii_pp2a'});
camkii_reac_11d = addreaction(pfpc_model, 'CaMKII_11_10_PP2A -> CaMKII_11_10 + PP2A');
camkii_reac_11d_k = addkineticlaw(camkii_reac_11d,'MassAction');