# This cell isn't exported to the .py file, so define here if running in notebook rather than as .py on e.g.a cluster
# This is where to adjust whether fva is run if running in notebook
= {
args "run_fva": "True",
"no_processes": 4,
"output_dir": "../outputs/model_solutions/",
"model_file": "../models/4_stage_GC.xml",
"map_file": "../inputs/map.json",
"parameters_file": "../inputs/arabidopsis_parameters.csv",
}
= ["script_name"] + list(args.values()) sys.argv
Solving guard cell models for different parameters
Setup
Instantiate and apply base constraints to model
Import FBA model
Decrease tolerance
Define reactions to use for FVA
Instantiate Supermodel
Import parameters from csv, created in parameters notebook
This is a little different to Jezek and Blatt (2017), where they have closed as 0.3-0.4pL and open as 0.5-0.65. Open apertures are on the small side but still within their range (2-6). Wang used a volume of 0.4pL.
Constrain SuperModel
Constrain osmolarity of the model using the equation from the OnGuard model (Hills et al 2012)
import numpy as np
np.array(arabidopsis_supermodel.get_osmolarities())
array([0.03935933, 0.05492236, 0.03935933, 0.03935933])
help(arabidopsis_supermodel.get_osmolarities)
Help on method get_osmolarities in module mmon_gcm.supermodel:
get_osmolarities(apertures='default', equation='onguard', printouts=False) method of mmon_gcm.supermodel.SuperModel instance
Calculates the osmolarities at each phase of the model using the equation
specified, default is onguard. Adds these as an attribute to the SuperModel
= np.array(arabidopsis_supermodel.get_osmolarities())
mmoles_per_m2 = mmoles_per_m2 / arabidopsis_supermodel.N_gcs
mmoles_per_gc = mmoles_per_gc * 10**-3
moles_per_gc = moles_per_gc / 10**-15
fmoles_per_gc print(f"Closed fmoles: {fmoles_per_gc[0]}")
print(f"Open fmoles: {fmoles_per_gc[1]}")
print(f"Increase in fmoles: {fmoles_per_gc[1] - fmoles_per_gc[0]}")
Closed fmoles: 67.86090968309483
Open fmoles: 94.69373119804636
Increase in fmoles: 26.832821514951533
Constrain photons using a PPFD of 150µmolm\(^{-2}\)s\(^{-1}\), same as used in Horrer et al (2016)
Add maintenance constraint to model
gc_ratio is the ratio of gc vs me maintenance obtained from 2.0_compute_maintenance
Test blocking Complex III in blue light WT
"SUCCINATE_DEHYDROGENASE_UBIQUINONE_RXN_mc_gc_2").bounds = 0, 0
arabidopsis_supermodel.fba_model.reactions.get_by_id("SUCCINATE_DEHYDROGENASE_UBIQUINONE_RXN_mi_gc_2").bounds = 0, 0
arabidopsis_supermodel.fba_model.reactions.get_by_id(
=False)
arabidopsis_supermodel.constrain_photons(PPFD, printoutswith arabidopsis_supermodel.fba_model as m:
= 0
m.reactions.Photon_tx_gc_2.upper_bound = 0
m.reactions.Photon_tx_me_2.upper_bound # Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= mmon_gcm.solving.get_pfba_fva_solution(m, rxn_list=[], processes=no_processes) (no_CIII, no_CIII_sol)
Started running pFBA (and FVA) @ 2024-06-20 18:29:37.018698
Running pFBA
FVA list is empty
Finished running pFBA (and FVA) @ 2024-06-20 18:29:48.834174, that took 0.19692460695902506 minutes
"SUCCINATE_DEHYDROGENASE_UBIQUINONE_RXN_mc_gc_2").bounds = 0, cobra.Configuration().upper_bound
arabidopsis_supermodel.fba_model.reactions.get_by_id("SUCCINATE_DEHYDROGENASE_UBIQUINONE_RXN_mi_gc_2").bounds = 0, cobra.Configuration().upper_bound
arabidopsis_supermodel.fba_model.reactions.get_by_id(
=False)
arabidopsis_supermodel.constrain_photons(PPFD, printoutswith arabidopsis_supermodel.fba_model as m:
= 0
m.reactions.Photon_tx_gc_2.upper_bound = 0
m.reactions.Photon_tx_me_2.upper_bound # Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= mmon_gcm.solving.get_pfba_fva_solution(m, rxn_list=[], processes=no_processes) (CIII, CIII_sol)
Started running pFBA (and FVA) @ 2024-06-20 18:29:25.458722
Running pFBA
FVA list is empty
Finished running pFBA (and FVA) @ 2024-06-20 18:29:37.003048, that took 0.19240544239679971 minutes
'Phloem_tx_overall'].loc['fluxes'] CIII_sol.loc[
14.25882479432091
'Phloem_tx_overall'].loc['fluxes'] no_CIII_sol.loc[
14.258823306193605
Phloem_tx_overall: 14.258823306193605 without Complex III; 14.25882479432091 with Complex III
Test for maltose degradation pathways
"RXN_2141_p_gc_2").bounds = 0, 0
arabidopsis_supermodel.fba_model.reactions.get_by_id("RXN_2141_p_gc_2").bounds = 0, 0
arabidopsis_supermodel.fba_model.reactions.get_by_id(
=False)
arabidopsis_supermodel.constrain_photons(PPFD, printoutswith arabidopsis_supermodel.fba_model as m:
= 0
m.reactions.Photon_tx_gc_2.upper_bound = 0
m.reactions.Photon_tx_me_2.upper_bound # Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= mmon_gcm.solving.get_pfba_fva_solution(m, rxn_list=[], processes=no_processes) (maltose_c, maltose_c_sol)
Started running pFBA (and FVA) @ 2024-06-20 21:03:53.851992
Running pFBA
FVA list is empty
Finished running pFBA (and FVA) @ 2024-06-20 21:04:05.724912, that took 0.19788201252619425 minutes
"RXN_2141_p_gc_2").bounds = 0, cobra.Configuration().upper_bound
arabidopsis_supermodel.fba_model.reactions.get_by_id("RXN_2141_p_gc_2").bounds = 0, cobra.Configuration().upper_bound
arabidopsis_supermodel.fba_model.reactions.get_by_id(
=False)
arabidopsis_supermodel.constrain_photons(PPFD, printoutswith arabidopsis_supermodel.fba_model as m:
= 0
m.reactions.Photon_tx_gc_2.upper_bound = 0
m.reactions.Photon_tx_me_2.upper_bound # Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= mmon_gcm.solving.get_pfba_fva_solution(m, rxn_list=[], processes=no_processes) (maltose_pc, maltose_pc_sol)
Started running pFBA (and FVA) @ 2024-06-20 21:03:40.588376
Running pFBA
FVA list is empty
Finished running pFBA (and FVA) @ 2024-06-20 21:03:53.784066, that took 0.21992816925048828 minutes
'Phloem_tx_overall', 'RXN_2141_p_gc_2', 'MALTODEG_RXN_c_gc_2']]['fluxes'] maltose_pc_sol.loc[[
Phloem_tx_overall 1.425882e+01
RXN_2141_p_gc_2 5.259830e-03
MALTODEG_RXN_c_gc_2 -2.062496e-13
Name: fluxes, dtype: float64
'Phloem_tx_overall'].loc['fluxes'] maltose_pc_sol.loc[
14.258823306193605
'Phloem_tx_overall', 'RXN_2141_p_gc_2', 'MALTODEG_RXN_c_gc_2']]['fluxes'] maltose_c_sol.loc[[
Phloem_tx_overall 14.258821
RXN_2141_p_gc_2 0.000000
MALTODEG_RXN_c_gc_2 0.006945
Name: fluxes, dtype: float64
'Phloem_tx_overall'].loc['fluxes'] maltose_c_sol.loc[
14.258821433564357
'Phloem_tx_overall'].loc['fluxes']-maltose_c_sol.loc['Phloem_tx_overall'].loc['fluxes'])/maltose_pc_sol.loc['Phloem_tx_overall'].loc['fluxes'] (maltose_pc_sol.loc[
1.3133126120572098e-07
'GLC_c_gc_Linker_2', 'MALTOSE_c_gc_Linker_2', 'GLC_c_gc_Linker_1', 'MALTOSE_c_gc_Linker_1']]['fluxes'] maltose_c_sol.loc[[
GLC_c_gc_Linker_2 0.003473
MALTOSE_c_gc_Linker_2 0.006744
GLC_c_gc_Linker_1 0.000000
MALTOSE_c_gc_Linker_1 0.006744
Name: fluxes, dtype: float64
print(maltose_c_sol[maltose_c_sol.index.str.contains("gc_2") & (maltose_c_sol['fluxes'].abs() > 0.0000001)].sort_values(by='fluxes').to_string())
fluxes minimum maximum
Pi_PROTON_mc_gc_2 -0.010418 NaN NaN
H2O_pc_gc_2 -0.007739 NaN NaN
EX_X_O2_t_gc_2 -0.001810 NaN NaN
CO2_tx_gc_2 -0.001810 NaN NaN
CO2_ec_gc_2 -0.001810 NaN NaN
ISOCITDEH_RXN_c_gc_2 -0.001736 NaN NaN
OAA_MAL_pc_gc_2 -0.001736 NaN NaN
O2_mc_gc_2 -0.001736 NaN NaN
PGLUCISOM_RXN_p_gc_2 -0.001207 NaN NaN
X5P_Pi_pc_gc_2 -0.000868 NaN NaN
RIB5PISOM_RXN_p_gc_2 -0.000603 NaN NaN
1TRANSKETO_RXN_p_gc_2 -0.000603 NaN NaN
F16ALDOLASE_RXN_c_gc_2 -0.000302 NaN NaN
2_PERIOD_7_PERIOD_1_PERIOD_90_RXN_c_gc_2 -0.000302 NaN NaN
GLUC1PURIDYLTRANS_RXN_c_gc_2 -0.000138 NaN NaN
UDPKIN_RXN_c_gc_2 -0.000138 NaN NaN
O2_pc_gc_2 -0.000074 NaN NaN
NADPHox_p_tx_gc_2 0.000148 NaN NaN
PROTON_PPi_rev_vc_gc_2 0.000164 NaN NaN
G6P_Pi_pc_gc_2 0.000265 NaN NaN
TRIOSEPISOMERIZATION_RXN_p_gc_2 0.000302 NaN NaN
DHAP_Pi_pc_gc_2 0.000302 NaN NaN
GAP_Pi_pc_gc_2 0.000302 NaN NaN
RIBULP3EPIM_RXN_p_gc_2 0.000339 NaN NaN
ATPase_tx_gc_2 0.000444 NaN NaN
2TRANSKETO_RXN_p_gc_2 0.000603 NaN NaN
TRANSALDOL_RXN_p_gc_2 0.000603 NaN NaN
GLU6PDEHYDROG_RXN_c_gc_2 0.000868 NaN NaN
6PGLUCONOLACT_RXN_c_gc_2 0.000868 NaN NaN
RIBULP3EPIM_RXN_c_gc_2 0.000868 NaN NaN
6PGLUCONDEHYDROG_RXN_c_gc_2 0.000868 NaN NaN
CO2_pc_gc_2 0.000942 NaN NaN
6PGLUCONDEHYDROG_RXN_p_gc_2 0.000942 NaN NaN
GLU6PDEHYDROG_RXN_p_gc_2 0.000942 NaN NaN
6PGLUCONOLACT_RXN_p_gc_2 0.000942 NaN NaN
MALATE_DEHYDROGENASE_NADPs_RXN_p_gc_2 0.001736 NaN NaN
2KG_MAL_mc_gc_2 0.001736 NaN NaN
CO2_mc_gc_2 0.001736 NaN NaN
MALATE_DEH_RXN_m_gc_2 0.001736 NaN NaN
CYTOCHROME_C_OXIDASE_RXN_mi_gc_2 0.001736 NaN NaN
ISOCITRATE_DEHYDROGENASE_NAD_RXN_m_gc_2 0.001736 NaN NaN
OAA_ISOCITRATE_mc_gc_2 0.001736 NaN NaN
EX_X_CO2_t_gc_2 0.001810 NaN NaN
O2_ec_gc_2 0.001810 NaN NaN
O2_tx_gc_2 0.001810 NaN NaN
Mitochondrial_ATP_Synthase_m_gc_2 0.003473 NaN NaN
1_PERIOD_10_PERIOD_2_PERIOD_2_RXN_mi_gc_2 0.003473 NaN NaN
NADH_DEHYDROG_A_RXN_mi_gc_2 0.003473 NaN NaN
Cl_PROTON_ec_gc_2 0.004350 NaN NaN
PROTON_ATPase_c_gc_2 0.004350 NaN NaN
PROTONATP_rev_vc_gc_2 0.005762 NaN NaN
PGLUCISOM_RXN_c_gc_2 0.006479 NaN NaN
SUCROSE_PHOSPHATE_SYNTHASE_RXN_c_gc_2 0.006781 NaN NaN
SUCROSE_PHOSPHATASE_RXN_c_gc_2 0.006781 NaN NaN
SUCROSE_SYNTHASE_RXN_c_gc_2 0.006919 NaN NaN
RXN_14351_pc_gc_2 0.006945 NaN NaN
RXN_1827_p_gc_2 0.006945 NaN NaN
MALTODEG_RXN_c_gc_2 0.006945 NaN NaN
RXN0_5184_c_gc_2 0.006945 NaN NaN
PHOSPHOGLUCMUT_RXN_c_gc_2 0.007083 NaN NaN
Cl_ae_gc_2 0.008700 NaN NaN
K_ec_gc_2 0.008700 NaN NaN
K_ae_gc_2 0.008700 NaN NaN
ATP_ADP_mc_gc_2 0.010418 NaN NaN
K_PROTON_cv_gc_2 0.011688 NaN NaN
Cl_cv_gc_2 0.011688 NaN NaN
H2O_ec_gc_2 0.012217 NaN NaN
WATER_ae_gc_2 0.012217 NaN NaN
pseudoOs_constraint_c_gc_2 0.013676 NaN NaN
H2O_mc_gc_2 0.013891 NaN NaN
pseudoOs_constraint_v_gc_2 0.041247 NaN NaN
Test blocking hexose accumulation - See maltose accumulation
#for i in range(4):
#arabidopsis_supermodel.fba_model.reactions.get_by_id("GLC_c_gc_Linker_" + str(i+1)).bounds = 0, 0
#arabidopsis_supermodel.fba_model.reactions.get_by_id("GLC_v_gc_Linker_" + str(i+1)).bounds = 0, 0
#arabidopsis_supermodel.fba_model.reactions.get_by_id("FRU_c_gc_Linker_" + str(i+1)).bounds = 0, 0
#arabidopsis_supermodel.fba_model.reactions.get_by_id("FRU_v_gc_Linker_" + str(i+1)).bounds = 0, 0
Blue Light
ATPase unconstrained
WT
Starch KO
Constrained ATPase
WT
Starch KO
White Light
Unconstrained ATPase
WT
Starch KO
Constrained ATPase
WT
Starch KO
Guard cell has no photosynthetic capacity
Unconstrained ATPase
WT
Starch KO
Constrained ATPase
WT
Starch KO
Scan GC photon influx to look at switch of glycolysis
= arabidopsis_supermodel.get_photons(PPFD=PPFD, printouts=False)
P_gc, P_me
for i, p in enumerate([0, P_me, P_me, 0], start=1):
"Photon_tx_me_" + str(i)).bounds = 0, p
arabidopsis_supermodel.fba_model.reactions.get_by_id(
with arabidopsis_supermodel.fba_model as m:
# Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= pd.DataFrame()
scan_df for photon in range(PPFD+1):
= arabidopsis_supermodel.get_photons(PPFD=photon, printouts=False)
P_gc, P_me for i, p in enumerate([0, P_gc, P_gc, 0], start=1):
"Photon_tx_gc_" + str(i)).bounds = 0, p
m.reactions.get_by_id(= mmon_gcm.solving.pfba_Weighted(m, objective="Phloem_tx_overall")
cobra_model, solution = solution.fluxes
scan_df[photon] print(photon, solution.fluxes['Photon_tx_gc_2'], solution.fluxes['Photon_tx_me_2'])
"../outputs/scans/gc_photon_scan.csv") scan_df.to_csv(
0 0.0 485.98162812525
1 0.000122479164998293 485.98162812525
2 0.000244958329996587 485.98162812525
3 0.00036743749499488 485.98162812525
4 0.000489916659993173 485.98162812525
5 0.000612395824991467 485.98162812525
6 0.00073487498998976 485.98162812525
7 0.000857354154988053 485.98162812525
8 0.000979833319986346 485.98162812525
9 0.00110231248498464 485.98162812525
10 0.00122479164998293 485.98162812525
11 0.00134727081498123 485.98162812525
12 0.00146974997997952 485.98162812525
13 0.00159222914497781 485.98162812525
14 0.00171470830997611 485.98162812525
15 0.0018371874749744 485.98162812525
16 0.00195966663997269 485.98162812525
17 0.00208214580497099 485.98162812525
18 0.00220462496996928 485.98162812525
19 0.00232710413496757 485.98162812525
20 0.00244958329996587 485.98162812525
21 0.00257206246496416 485.98162812525
22 0.00269454162996245 485.98162812525
23 0.00281702079496075 485.98162812525
24 0.00293949995995904 485.98162812525
25 0.00306197912495733 485.98162812525
26 0.00318445828995563 485.98162812525
27 0.00330693745495392 485.98162812525
28 0.00342941661995221 485.98162812525
29 0.00355189578495051 485.98162812525
30 0.0036743749499488 485.98162812525
31 0.00379685411494709 485.98162812525
32 0.00391933327994539 485.98162812525
33 0.00404181244494368 485.98162812525
34 0.00416429160994197 485.98162812525
35 0.00428677077494027 485.98162812525
36 0.00440924993993856 485.98162812525
37 0.00453172910493685 485.98162812525
38 0.00465420826993515 485.98162812525
39 0.00477668743493344 485.98162812525
40 0.00489916659993173 485.98162812525
41 0.00502164576493003 485.98162812525
42 0.00514412492992832 485.98162812525
43 0.00526660409492661 485.98162812525
44 0.00538908325992491 485.98162812525
45 0.0055115624249232 485.98162812525
46 0.00563404158992149 485.98162812525
47 0.00575652075491979 485.98162812525
48 0.00587899991991808 485.98162812525
49 0.00600147908491637 485.98162812525
50 0.00612395824991467 485.98162812525
51 0.00624643741491296 485.98162812525
52 0.00636891657991125 485.98162812525
53 0.00649139574490955 485.98162812525
54 0.00661387490990784 485.98162812525
55 0.00673635407490613 485.98162812525
56 0.00685883323990443 485.98162812525
57 0.00698131240490272 485.98162812525
58 0.00710379156990101 485.98162812525
59 0.00722627073489931 485.98162812525
60 0.0073487498998976 485.98162812525
61 0.00747122906489589 485.98162812525
62 0.00759370822989419 485.98162812525
63 0.00771618739489248 485.98162812525
64 0.00783866655989077 485.98162812525
65 0.00796114572488907 485.98162812525
66 0.00808362488988736 485.98162812525
67 0.00820610405488565 485.98162812525
68 0.00832858321988395 485.98162812525
69 0.00845106238488224 485.98162812525
70 0.00857354154988053 485.98162812525
71 0.00869602071487883 485.98162812525
72 0.00881849987987712 485.98162812525
73 0.00894097904487541 485.98162812525
74 0.00906345820987371 485.98162812525
75 0.009185937374872 485.98162812525
76 0.00930841653987029 485.98162812525
77 0.00943089570486859 485.98162812525
78 0.00955337486986688 485.98162812525
79 0.00967585403486517 485.98162812525
80 0.00979833319986347 485.98162812525
81 0.00992081236486176 485.98162812525
82 0.0100432915298601 485.98162812525
83 0.0101657706948583 485.98162812525
84 0.0102882498598566 485.98162812525
85 0.0104107290248549 485.98162812525
86 0.0105332081898532 485.98162812525
87 0.0106556873548515 485.98162812525
88 0.0107781665198498 485.98162812525
89 0.0109006456848481 485.98162812525
90 0.0110231248498464 485.98162812525
91 0.0111456040148447 485.98162812525
92 0.011268083179843 485.98162812525
93 0.0113905623448413 485.98162812525
94 0.0115130415098396 485.98162812525
95 0.0116355206748379 485.98162812525
96 0.0117579998398362 485.98162812525
97 0.0118804790048345 485.98162812525
98 0.0120029581698327 485.98162812525
99 0.012125437334831 485.98162812525
100 0.0122479164998293 485.98162812525
101 0.0123703956648276 485.98162812525
102 0.0124928748298259 485.98162812525
103 0.0126153539948242 485.98162812525
104 0.0127378331598225 485.98162812525
105 0.0128603123248208 485.98162812525
106 0.0129827914898191 485.98162812525
107 0.0131052706548174 485.98162812525
108 0.0132277498198157 485.98162812525
109 0.013350228984814 485.98162812525
110 0.0134727081498123 485.98162812525
111 0.0135951873148106 485.98162812525
112 0.0137176664798089 485.98162812525
113 0.0138401456448071 485.98162812525
114 0.0139626248098054 485.98162812525
115 0.0140851039748037 485.98162812525
116 0.014207583139802 485.98162812525
117 0.0143300623048003 485.98162812525
118 0.0144525414697986 485.98162812525
119 0.0145750206347969 485.98162812525
120 0.0146974997997952 485.98162812525
121 0.0148199789647935 485.98162812525
122 0.0149424581297918 485.98162812525
123 0.0150649372947901 485.98162812525
124 0.0151874164597884 485.98162812525
125 0.0153098956247867 485.98162812525
126 0.015432374789785 485.98162812525
127 0.0155548539547832 485.98162812525
128 0.0156773331197815 485.98162812525
129 0.0157998122847798 485.98162812525
130 0.0159222914497781 485.98162812525
131 0.0160447706147764 485.98162812525
132 0.0161672497797747 485.98162812525
133 0.016289728944773 485.98162812525
134 0.0164122081097713 485.98162812525
135 0.0165346872747696 485.98162812525
136 0.0166571664397679 485.98162812525
137 0.0167796456047662 485.98162812525
138 0.0169021247697645 485.98162812525
139 0.0170246039347628 485.98162812525
140 0.0171470830997611 485.98162812525
141 0.0172695622647594 485.98162812525
142 0.0173920414297577 485.98162812525
143 0.0175145205947559 485.98162812525
144 0.0176369997597542 485.98162812525
145 0.0177594789247525 485.98162812525
146 0.0178819580897508 485.98162812525
147 0.0180044372547491 485.98162812525
148 0.0181269164197474 485.98162812525
149 0.0182493955847457 485.98162812525
150 0.018371874749744 485.98162812525
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4142017668.py:19: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
Scan GC & ME photosynthesis (photon influx) during Opening
Increase upper bound of photon influx in GC & ME during blue light
= arabidopsis_supermodel.get_photons(PPFD=PPFD, printouts=False)
P_gc_day, P_me_day
with arabidopsis_supermodel.fba_model as m:
# Added this line to explictly set bounds for starch degradation
"RXN_1827_p_gc", 0, cobra.Configuration().upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= arabidopsis_supermodel.get_atpase_constraint_value(7.5)
gc_atpase_upper_bound "PROTON_ATPase_c_gc", 0, gc_atpase_upper_bound)
mmon_gcm.buildingediting.set_bounds_multi(m,
= pd.DataFrame()
scan_df for photon in range(PPFD+1):
= arabidopsis_supermodel.get_photons(PPFD=photon, printouts=False)
P_gc_open, P_me_open for i, p in enumerate([0, P_me_open, P_me_day, 0], start=1):
"Photon_tx_me_" + str(i)).bounds = 0, p
m.reactions.get_by_id(for i, p in enumerate([0, P_gc_open, P_gc_day, 0], start=1):
"Photon_tx_gc_" + str(i)).bounds = 0, p
m.reactions.get_by_id(= mmon_gcm.solving.pfba_Weighted(m, objective="Phloem_tx_overall")
cobra_model, solution = solution.fluxes
scan_df[photon] print(photon, solution.fluxes['Photon_tx_gc_2'], solution.fluxes['Photon_tx_me_2'],
'Photon_tx_gc_3'], solution.fluxes['Photon_tx_me_3'])
solution.fluxes["../outputs/scans/opening_photon_scan.csv") scan_df.to_csv(
0 0.0 0.0 0.018371874749744 485.98162812525
1 0.000122479164998293 3.239877520835 0.018371874749744 485.98162812525
2 0.000244958329996587 6.47975504167 0.018371874749744 485.98162812525
3 0.00036743749499488 9.71963256250501 0.018371874749744 485.98162812525
4 0.000489916659993173 12.95951008334 0.018371874749744 485.98162812525
5 0.000612395824991467 16.199387604175 0.018371874749744 485.98162812525
6 0.00073487498998976 19.43926512501 0.018371874749744 485.98162812525
7 0.000857354154988053 22.679142645845 0.018371874749744 485.98162812525
8 0.000979833319986346 25.91902016668 0.018371874749744 485.98162812525
9 0.00110231248498464 29.158897687515 0.018371874749744 485.98162812525
10 0.00122479164998293 32.39877520835 0.018371874749744 485.98162812525
11 0.00134727081498123 35.638652729185 0.018371874749744 485.98162812525
12 0.00146974997997952 38.87853025002 0.018371874749744 485.98162812525
13 0.00159222914497781 42.118407770855 0.018371874749744 485.98162812525
14 0.00171470830997611 45.35828529169 0.018371874749744 485.98162812525
15 0.0018371874749744 48.598162812525 0.018371874749744 485.98162812525
16 0.00195966663997269 51.83804033336 0.018371874749744 485.98162812525
17 0.00208214580497099 55.077917854195 0.018371874749744 485.98162812525
18 0.00220462496996928 58.31779537503 0.018371874749744 485.98162812525
19 0.00232710413496757 61.557672895865 0.018371874749744 485.98162812525
20 0.00244958329996587 64.7975504167 0.018371874749744 485.98162812525
21 0.00257206246496416 68.037427937535 0.018371874749744 485.98162812525
22 0.00269454162996245 71.2773054583701 0.018371874749744 485.98162812525
23 0.00281702079496075 74.517182979205 0.018371874749744 485.98162812525
24 0.00293949995995904 77.75706050004 0.018371874749744 485.98162812525
25 0.00306197912495733 80.996938020875 0.018371874749744 485.98162812525
26 0.00318445828995563 84.2368155417101 0.018371874749744 485.98162812525
27 0.00330693745495392 87.4766930625451 0.018371874749744 485.98162812525
28 0.00342941661995221 90.71657058338 0.018371874749744 485.98162812525
29 0.00355189578495051 93.9564481042151 0.018371874749744 485.98162812525
30 0.0036743749499488 97.19632562505 0.018371874749744 485.98162812525
31 0.00379685411494709 100.436203145885 0.018371874749744 485.98162812525
32 0.00391933327994539 103.67608066672 0.018371874749744 485.98162812525
33 0.00404181244494368 106.915958187555 0.018371874749744 485.98162812525
34 0.00416429160994197 110.15583570839 0.018371874749744 485.98162812525
35 0.00428677077494027 113.395713229225 0.018371874749744 485.98162812525
36 0.00440924993993856 116.63559075006 0.018371874749744 485.98162812525
37 0.00453172910493685 119.875468270895 0.018371874749744 485.98162812525
38 0.00465420826993515 123.11534579173 0.018371874749744 485.98162812525
39 0.00477668743493344 126.355223312565 0.018371874749744 485.98162812525
40 0.00489916659993173 129.5951008334 0.018371874749744 485.98162812525
41 0.00502164576493003 132.834978354235 0.018371874749744 485.98162812525
42 0.00514412492992832 136.07485587507 0.018371874749744 485.98162812525
43 0.00526660409492661 139.314733395905 0.018371874749744 485.98162812525
44 0.00538908325992491 142.55461091674 0.018371874749744 485.98162812525
45 0.0055115624249232 145.794488437575 0.018371874749744 485.98162812525
46 0.00563404158992149 149.03436595841 0.018371874749744 485.98162812525
47 0.00575652075491979 152.274243479245 0.018371874749744 485.98162812525
48 0.00587899991991808 155.51412100008 0.018371874749744 485.98162812525
49 0.00600147908491637 158.753998520915 0.018371874749744 485.98162812525
50 0.00612395824991467 161.99387604175 0.018371874749744 485.98162812525
51 0.00624643741491296 165.233753562585 0.018371874749744 485.98162812525
52 0.00636891657991125 168.47363108342 0.018371874749744 485.98162812525
53 0.00649139574490955 171.713508604255 0.018371874749744 485.98162812525
54 0.00661387490990784 174.95338612509 0.018371874749744 485.98162812525
55 0.00673635407490613 178.193263645925 0.018371874749744 485.98162812525
56 0.00685883323990443 181.43314116676 0.018371874749744 485.98162812525
57 0.00698131240490272 184.673018687595 0.018371874749744 485.98162812525
58 0.00710379156990101 187.91289620843 0.018371874749744 485.98162812525
59 0.00722627073489931 191.152773729265 0.018371874749744 485.98162812525
60 0.0073487498998976 194.3926512501 0.018371874749744 485.98162812525
61 0.00747122906489589 197.632528770935 0.018371874749744 485.98162812525
62 0.00759370822989419 200.87240629177 0.018371874749744 485.98162812525
63 0.00771618739489248 204.112283812605 0.018371874749744 485.98162812525
64 0.00783866655989077 207.35216133344 0.018371874749744 485.98162812525
65 0.00796114572488907 210.592038854275 0.018371874749744 485.98162812525
66 0.00808362488988736 213.83191637511 0.018371874749744 485.98162812525
67 0.00820610405488565 217.071793895945 0.018371874749744 485.98162812525
68 0.00832858321988395 220.31167141678 0.018371874749744 485.98162812525
69 0.00845106238488224 223.551548937615 0.018371874749744 485.98162812525
70 0.00857354154988053 226.79142645845 0.018371874749744 485.98162812525
71 0.00869602071487883 230.031303979285 0.018371874749744 485.98162812525
72 0.00881849987987712 233.27118150012 0.018371874749744 485.98162812525
73 0.00894097904487541 236.511059020955 0.018371874749744 485.98162812525
74 0.00906345820987371 239.75093654179 0.018371874749744 485.98162812525
75 0.009185937374872 242.990814062625 0.018371874749744 485.98162812525
76 0.00930841653987029 246.23069158346 0.018371874749744 485.98162812525
77 0.00943089570486859 249.470569104295 0.018371874749744 485.98162812525
78 0.00955337486986688 252.71044662513 0.018371874749744 485.98162812525
79 0.00967585403486517 255.950324145965 0.018371874749744 485.98162812525
80 0.00979833319986347 259.1902016668 0.018371874749744 485.98162812525
81 0.00992081236486176 262.430079187635 0.018371874749744 485.98162812525
82 0.0100432915298601 265.66995670847 0.018371874749744 485.98162812525
83 0.0101657706948583 268.909834229305 0.018371874749744 485.98162812525
84 0.0102882498598566 272.14971175014 0.018371874749744 485.98162812525
85 0.0104107290248549 275.389589270975 0.018371874749744 485.98162812525
86 0.0105332081898532 278.62946679181 0.018371874749744 485.98162812525
87 0.0106556873548515 281.869344312645 0.018371874749744 485.98162812525
88 0.0107781665198498 285.10922183348 0.018371874749744 485.98162812525
89 0.0109006456848481 288.349099354315 0.018371874749744 485.98162812525
90 0.0110231248498464 291.58897687515 0.018371874749744 485.98162812525
91 0.0111456040148447 294.828854395985 0.018371874749744 485.98162812525
92 0.011268083179843 298.06873191682 0.018371874749744 485.98162812525
93 0.0113905623448413 301.308609437655 0.018371874749744 485.98162812525
94 0.0115130415098396 304.54848695849 0.018371874749744 485.98162812525
95 0.0116355206748379 307.788364479325 0.018371874749744 485.98162812525
96 0.0117579998398362 311.02824200016 0.018371874749744 485.98162812525
97 0.0118804790048345 314.268119520995 0.018371874749744 485.98162812525
98 0.0120029581698327 317.50799704183 0.018371874749744 485.98162812525
99 0.012125437334831 320.747874562665 0.018371874749744 485.98162812525
100 0.0122479164998293 323.9877520835 0.018371874749744 485.98162812525
101 0.0123703956648276 327.227629604335 0.018371874749744 485.98162812525
102 0.0124928748298259 330.46750712517 0.018371874749744 485.98162812525
103 0.0126153539948242 333.707384646005 0.018371874749744 485.98162812525
104 0.0127378331598225 336.94726216684 0.018371874749744 485.98162812525
105 0.0128603123248208 340.187139687675 0.018371874749744 485.98162812525
106 0.0129827914898191 343.42701720851 0.018371874749744 485.98162812525
107 0.0131052706548174 346.666894729345 0.018371874749744 485.98162812525
108 0.0132277498198157 349.90677225018 0.018371874749744 485.98162812525
109 0.013350228984814 353.146649771015 0.018371874749744 485.98162812525
110 0.0134727081498123 356.38652729185 0.018371874749744 485.98162812525
111 0.0135951873148106 359.626404812685 0.018371874749744 485.98162812525
112 0.0137176664798089 362.86628233352 0.018371874749744 485.98162812525
113 0.0138401456448071 366.106159854355 0.018371874749744 485.98162812525
114 0.0139626248098054 369.34603737519 0.018371874749744 485.98162812525
115 0.0140851039748037 372.585914896025 0.018371874749744 485.98162812525
116 0.014207583139802 375.82579241686 0.018371874749744 485.98162812525
117 0.0143300623048003 379.065669937695 0.018371874749744 485.98162812525
118 0.0144525414697986 382.30554745853 0.018371874749744 485.98162812525
119 0.0145750206347969 385.545424979365 0.018371874749744 485.98162812525
120 0.0146974997997952 388.7853025002 0.018371874749744 485.98162812525
121 0.0148199789647935 392.025180021035 0.018371874749744 485.98162812525
122 0.0149424581297918 395.26505754187 0.018371874749744 485.98162812525
123 0.0150649372947901 398.504935062705 0.018371874749744 485.98162812525
124 0.0151874164597884 401.74481258354 0.018371874749744 485.98162812525
125 0.0153098956247867 404.984690104375 0.018371874749744 485.98162812525
126 0.015432374789785 408.22456762521 0.018371874749744 485.98162812525
127 0.0155548539547832 411.464445146045 0.018371874749744 485.98162812525
128 0.0156773331197815 414.70432266688 0.018371874749744 485.98162812525
129 0.0157998122847798 417.944200187715 0.018371874749744 485.98162812525
130 0.0159222914497781 421.18407770855 0.018371874749744 485.98162812525
131 0.0160447706147764 424.423955229385 0.018371874749744 485.98162812525
132 0.0161672497797747 427.66383275022 0.018371874749744 485.98162812525
133 0.016289728944773 430.903710271055 0.018371874749744 485.98162812525
134 0.0164122081097713 434.14358779189 0.018371874749744 485.98162812525
135 0.0165346872747696 437.383465312725 0.018371874749744 485.98162812525
136 0.0166571664397679 440.62334283356 0.018371874749744 485.98162812525
137 0.0167796456047662 443.863220354395 0.018371874749744 485.98162812525
138 0.0169021247697645 447.10309787523 0.018371874749744 485.98162812525
139 0.0170246039347628 450.342975396065 0.018371874749744 485.98162812525
140 0.0171470830997611 453.5828529169 0.018371874749744 485.98162812525
141 0.0172695622647594 456.822730437735 0.018371874749744 485.98162812525
142 0.0173920414297577 460.06260795857 0.018371874749744 485.98162812525
143 0.0175145205947559 463.302485479405 0.018371874749744 485.98162812525
144 0.0176369997597542 466.54236300024 0.018371874749744 485.98162812525
145 0.0177594789247525 469.782240521075 0.018371874749744 485.98162812525
146 0.0178819580897508 473.02211804191 0.018371874749744 485.98162812525
147 0.0180044372547491 476.261995562745 0.018371874749744 485.98162812525
148 0.0181269164197474 479.50187308358 0.018371874749744 485.98162812525
149 0.0182493955847457 482.741750604415 0.018371874749744 485.98162812525
150 0.018371874749744 485.98162812525 0.018371874749744 485.98162812525
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes
/tmp/ipykernel_4680/4218495784.py:18: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling `frame.insert` many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use `newframe = frame.copy()`
scan_df[photon] = solution.fluxes