Skip to content

Commit e86cc0a

Browse files
committed
Expanded statistics
1 parent 59ea183 commit e86cc0a

5 files changed

+309
-14
lines changed

cosa/cva_comparison.json

+132
Original file line numberDiff line numberDiff line change
@@ -1436,5 +1436,137 @@
14361436
"defective_mus": [],
14371437
"min_differences": []
14381438
}
1439+
},
1440+
"nad_tcosa_c": {
1441+
"OPTMDF": {
1442+
"is_partly_inside_everywhere": true,
1443+
"is_partly_inside_at_least_once": true,
1444+
"defective_mus": [],
1445+
"min_differences": []
1446+
},
1447+
"OPTSUBMDF": {
1448+
"is_partly_inside_everywhere": true,
1449+
"is_partly_inside_at_least_once": true,
1450+
"defective_mus": [],
1451+
"min_differences": []
1452+
}
1453+
},
1454+
"nadh_tcosa_c": {
1455+
"OPTMDF": {
1456+
"is_partly_inside_everywhere": false,
1457+
"is_partly_inside_at_least_once": false,
1458+
"defective_mus": [
1459+
"0,868",
1460+
"0,818",
1461+
"0,768",
1462+
"0,718",
1463+
"0,668",
1464+
"0,618",
1465+
"0,568",
1466+
"0,518",
1467+
"0,468",
1468+
"0,418",
1469+
"0,368",
1470+
"0,318",
1471+
"0,268",
1472+
"0,218",
1473+
"0,168",
1474+
"0,118",
1475+
"0,068",
1476+
"0,05"
1477+
],
1478+
"min_differences": [
1479+
5.256006633025602e-05,
1480+
4.595791666153432e-05,
1481+
4.595791666153432e-05,
1482+
4.595791666153432e-05,
1483+
4.595791666153432e-05,
1484+
4.595791666153432e-05,
1485+
4.595791666153411e-05,
1486+
4.595791666153432e-05,
1487+
4.595791666153432e-05,
1488+
4.595791666153432e-05,
1489+
4.595791666153432e-05,
1490+
4.595791666153432e-05,
1491+
4.595791666153432e-05,
1492+
4.595791666153432e-05,
1493+
4.595791666153432e-05,
1494+
4.595791666153432e-05,
1495+
4.595791666153432e-05,
1496+
4.595791666153432e-05
1497+
]
1498+
},
1499+
"OPTSUBMDF": {
1500+
"is_partly_inside_everywhere": false,
1501+
"is_partly_inside_at_least_once": false,
1502+
"defective_mus": [
1503+
"0,868",
1504+
"0,818",
1505+
"0,768",
1506+
"0,718",
1507+
"0,668",
1508+
"0,618",
1509+
"0,568",
1510+
"0,518",
1511+
"0,468",
1512+
"0,418",
1513+
"0,368",
1514+
"0,318",
1515+
"0,268",
1516+
"0,218",
1517+
"0,168",
1518+
"0,118",
1519+
"0,068",
1520+
"0,05"
1521+
],
1522+
"min_differences": [
1523+
4.5997627531043405e-05,
1524+
4.523948525756911e-05,
1525+
5.3500000000000006e-05,
1526+
5.3500000000000006e-05,
1527+
5.3500000000000006e-05,
1528+
5.3500000000000006e-05,
1529+
5.3500000000000006e-05,
1530+
5.3500000000000006e-05,
1531+
5.3500000000000006e-05,
1532+
5.3500000000000006e-05,
1533+
5.3500000000000006e-05,
1534+
5.3500000000000006e-05,
1535+
5.3500000000000006e-05,
1536+
5.3500000000000006e-05,
1537+
5.3500000000000006e-05,
1538+
5.3500000000000006e-05,
1539+
5.3500000000000006e-05,
1540+
5.3500000000000006e-05
1541+
]
1542+
}
1543+
},
1544+
"nadp_tcosa_c": {
1545+
"OPTMDF": {
1546+
"is_partly_inside_everywhere": true,
1547+
"is_partly_inside_at_least_once": true,
1548+
"defective_mus": [],
1549+
"min_differences": []
1550+
},
1551+
"OPTSUBMDF": {
1552+
"is_partly_inside_everywhere": true,
1553+
"is_partly_inside_at_least_once": true,
1554+
"defective_mus": [],
1555+
"min_differences": []
1556+
}
1557+
},
1558+
"nadph_tcosa_c": {
1559+
"OPTMDF": {
1560+
"is_partly_inside_everywhere": true,
1561+
"is_partly_inside_at_least_once": true,
1562+
"defective_mus": [],
1563+
"min_differences": []
1564+
},
1565+
"OPTSUBMDF": {
1566+
"is_partly_inside_everywhere": true,
1567+
"is_partly_inside_at_least_once": true,
1568+
"defective_mus": [],
1569+
"min_differences": []
1570+
}
14391571
}
14401572
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
{
2+
"OPTMDF": {
3+
"max_absolute_min_difference": 0.07239999999999999,
4+
"max_abs_min_log10_difference": 1.068721513064376,
5+
"adp_c": {
6+
"name": "ADP",
7+
"min_cva": 1.0000000000000004e-06,
8+
"max_cva": 8.765956264771173e-05,
9+
"min_measurement": 0.000437,
10+
"max_measurement": 0.000704,
11+
"min_difference": 0.00034934043735228824,
12+
"min_log10_difference": 0.6976821374350424
13+
},
14+
"glu__L_c": {
15+
"name": "glutamate",
16+
"min_cva": 0.001604717737114385,
17+
"max_cva": 0.02,
18+
"min_measurement": 0.0924,
19+
"max_measurement": 0.0998,
20+
"min_difference": 0.07239999999999999,
21+
"min_log10_difference": 0.6646419755561255
22+
},
23+
"pep_c": {
24+
"name": "phosphoenolpyruvate",
25+
"min_cva": 1.0000000000000004e-06,
26+
"max_cva": 1.2463251036262684e-05,
27+
"min_measurement": 0.000146,
28+
"max_measurement": 0.000231,
29+
"min_difference": 0.00013353674896373732,
30+
"min_log10_difference": 1.068721513064376
31+
},
32+
"nadh_tcosa_c": {
33+
"name": "NADH",
34+
"min_cva": 1.0000000000000004e-06,
35+
"max_cva": 8.542083338465686e-06,
36+
"min_measurement": 5.45e-05,
37+
"max_measurement": 0.000127,
38+
"min_difference": 4.595791666153432e-05,
39+
"min_log10_difference": 0.8048326980915714
40+
}
41+
},
42+
"OPTSUBMDF": {
43+
"max_absolute_min_difference": 0.08710414484225579,
44+
"max_abs_min_log10_difference": 1.24173587263073,
45+
"3pg_c": {
46+
"name": "3-phosphoglycerate",
47+
"min_cva": 5.500726811128712e-06,
48+
"max_cva": 0.00030138484441201365,
49+
"min_measurement": 0.00151,
50+
"max_measurement": 0.00158,
51+
"min_difference": 0.0012086151555879864,
52+
"min_log10_difference": 0.6998555379135021
53+
},
54+
"akg_c": {
55+
"name": "alpha-ketoglutarate",
56+
"min_cva": 1.0000000000000004e-06,
57+
"max_cva": 5.479000407769235e-05,
58+
"min_measurement": 0.000312,
59+
"max_measurement": 0.000631,
60+
"min_difference": 0.0002572099959223076,
61+
"min_log10_difference": 0.7554532612617906
62+
},
63+
"glu__L_c": {
64+
"name": "glutamate",
65+
"min_cva": 9.553681988856925e-06,
66+
"max_cva": 0.005295855157744216,
67+
"min_measurement": 0.0924,
68+
"max_measurement": 0.0998,
69+
"min_difference": 0.08710414484225579,
70+
"min_log10_difference": 1.24173587263073
71+
},
72+
"nadh_tcosa_c": {
73+
"name": "NADH",
74+
"min_cva": 1.0000000000000004e-06,
75+
"max_cva": 9.260514742430894e-06,
76+
"min_measurement": 5.45e-05,
77+
"max_measurement": 0.000127,
78+
"min_difference": 4.523948525756911e-05,
79+
"min_log10_difference": 0.769761374818871
80+
}
81+
}
82+
}

cosa_cva_comparison.py

+16
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,22 @@
77

88

99
paper_data = json_load("resources/in_vivo_concentration_data/final_concentration_values_paper.json")
10+
paper_data["nad_tcosa_c"] = {
11+
"min": 2.32e-3,
12+
"max": 2.8e-3,
13+
}
14+
paper_data["nadh_tcosa_c"] = {
15+
"min": 5.45e-5,
16+
"max": 1.27e-4,
17+
}
18+
paper_data["nadp_tcosa_c"] = {
19+
"min": 1.4e-7,
20+
"max": 3.11e-5,
21+
}
22+
paper_data["nadph_tcosa_c"] = {
23+
"min": 1.1e-4,
24+
"max": 1.34e-4,
25+
}
1026
comparison = {}
1127
for target in ("OPTMDF", "OPTSUBMDF"):
1228
cva_data = json_load(f"cosa/results_aerobic/cva_{target}_STANDARDCONC.json")

cosa_cva_metastatistics.py

+39-14
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,31 @@
33

44

55
measurementjson = json_load("resources/in_vivo_concentration_data/2009_Bennet_full_data.json")
6+
measurementjson["nad_tcosa_c"] = {
7+
"lb": 2.32e-3,
8+
"ub": 2.8e-3,
9+
"name": "NAD",
10+
}
11+
measurementjson["nadh_tcosa_c"] = {
12+
"lb": 5.45e-5,
13+
"ub": 1.27e-4,
14+
"name": "NADH",
15+
}
16+
measurementjson["nadp_tcosa_c"] = {
17+
"lb": 1.4e-7,
18+
"ub": 3.11e-5,
19+
"name": "NADP",
20+
}
21+
measurementjson["nadph_tcosa_c"] = {
22+
"lb": 1.1e-4,
23+
"ub": 1.34e-4,
24+
"name": "NADPH",
25+
}
26+
27+
outjson = {}
628
for target in "OPTMDF", "OPTSUBMDF":
7-
outjson = {}
29+
outjson[target] = {}
30+
831
cvajson = json_load(f"cosa/results_aerobic/cva_{target}_STANDARDCONC.json")
932
comparisonjson = json_load("cosa/cva_comparison.json")
1033

@@ -13,6 +36,8 @@
1336
if "0,818" in comparisonjson[metabolite_id][target]["defective_mus"]:
1437
defective_ids.append(metabolite_id)
1538

39+
outjson[target]["max_absolute_min_difference"] = 0.0
40+
outjson[target]["max_abs_min_log10_difference"] = 0.0
1641
for defective_id in defective_ids:
1742
data = cvajson["x_"+defective_id]["0,818"]
1843
min_cva = data["min"]
@@ -29,26 +54,26 @@
2954
abs(max_measurement - max_cva),
3055
)
3156

32-
outjson[defective_id] = {
57+
min_log10_difference = min(
58+
log10(min_measurement) - log10(min_cva),
59+
log10(min_measurement) - log10(max_cva),
60+
log10(max_measurement) - log10(min_cva),
61+
log10(max_measurement) - log10(max_cva),
62+
)
63+
64+
outjson[target][defective_id] = {
3365
"name": name_measurement,
3466
"min_cva": min_cva,
3567
"max_cva": max_cva,
3668

37-
"min_cva_ln": log(min_cva),
38-
"max_cva_ln": log(max_cva),
39-
"min_cva_log10": log10(min_cva),
40-
"max_cva_log10": log10(max_cva),
41-
4269
"min_measurement": min_measurement,
4370
"max_measurement": max_measurement,
4471
"min_difference": min_difference,
4572

46-
"min_measurement_ln": log(min_measurement),
47-
"max_measurement_ln": log(max_measurement),
48-
"min_difference_ln": log(min_difference),
49-
"min_measurement_log10": log10(min_measurement),
50-
"max_measurement_log10": log10(max_measurement),
51-
"min_difference_log10": log10(min_difference),
73+
"min_log10_difference": min_log10_difference,
5274
}
5375

54-
json_write("./cosa/results_aerobic/cva_metastatistics_"+target+".json", outjson)
76+
outjson[target]["max_absolute_min_difference"] = max(outjson[target]["max_absolute_min_difference"], min_difference)
77+
outjson[target]["max_abs_min_log10_difference"] = max(outjson[target]["max_abs_min_log10_difference"], min_log10_difference)
78+
79+
json_write("./cosa/results_aerobic/cva_metastatistics.json", outjson)

cosa_get_active_nadz_reactions.py

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from math import exp
2+
from helper import json_zip_load, get_files
3+
4+
files = [
5+
"cosa/results_anaerobic_expanded_nadz_change_30/runs/OPTMDF_STANDARDCONC_FLEXIBLE.json",
6+
"cosa/results_anaerobic_expanded_nadz_change_30/runs/OPTSUBMDF_STANDARDCONC_FLEXIBLE.json",
7+
]
8+
9+
for file in files:
10+
data = json_zip_load(file)
11+
12+
print("===")
13+
print("FILE:", file)
14+
15+
for growth_rate in data.keys():
16+
print("~")
17+
print("GROWTH RATE:", growth_rate)
18+
for reac_id in data[growth_rate]["values"].keys():
19+
if reac_id.startswith("f_var_") or reac_id.startswith("dG0_") or reac_id.startswith("var_z_") or reac_id.startswith("z_var_"):
20+
continue
21+
if "NADZ" not in reac_id:
22+
continue
23+
reac_v = data[growth_rate]["values"][reac_id]
24+
if abs(reac_v) < 1e-7:
25+
continue
26+
print(reac_id, reac_v)
27+
print("|")
28+
print("[NAD]:", exp(data[growth_rate]["values"]["x_nad_tcosa_c"]))
29+
print("[NADH]:", exp(data[growth_rate]["values"]["x_nadh_tcosa_c"]))
30+
31+
print("[NADP]:", exp(data[growth_rate]["values"]["x_nadp_tcosa_c"]))
32+
print("[NADPH]:", exp(data[growth_rate]["values"]["x_nadph_tcosa_c"]))
33+
34+
print("[NADZ]:", exp(data[growth_rate]["values"]["x_nadz_tcosa_c"]))
35+
print("[NADZH]:", exp(data[growth_rate]["values"]["x_nadzh_tcosa_c"]))
36+
37+
print("|")
38+
print("[NAD]/[NADH]:", exp(data[growth_rate]["values"]["x_nad_tcosa_c"]) / exp(data[growth_rate]["values"]["x_nadh_tcosa_c"]))
39+
print("[NADP]/[NADPH]:", exp(data[growth_rate]["values"]["x_nadp_tcosa_c"]) / exp(data[growth_rate]["values"]["x_nadph_tcosa_c"]))
40+
print("[NADZ]/[NADZH]:", exp(data[growth_rate]["values"]["x_nadz_tcosa_c"]) / exp(data[growth_rate]["values"]["x_nadzh_tcosa_c"]))

0 commit comments

Comments
 (0)