diff --git a/.DS_Store b/.DS_Store index 8076d3b..7cb0ef0 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Examples/ADM_Parameters/e_adm_2_base_parameters.json b/Examples/ADM_Parameters/e_adm_2_base_parameters.json new file mode 100644 index 0000000..694d724 --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_base_parameters.json @@ -0,0 +1 @@ +{"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 3400, "V_gas": 300, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 170,"K_W":1e-14} \ No newline at end of file diff --git a/Examples/ADM_Parameters/e_adm_2_initial_conditions.json b/Examples/ADM_Parameters/e_adm_2_initial_conditions.json new file mode 100644 index 0000000..a0682f7 --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_initial_conditions.json @@ -0,0 +1 @@ +{"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 12.0, "TDS": 3.0, "S_ac": 0.001, "X_chain_lac": 0.01, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.001, "X_Me_ac": 0.1, "X_Me_CO2": 0.1, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.01, "X_lac": 0.01, "X_chain_et": 0.01, "X_ch": 5.0, "X_pr": 20.0, "X_ac_lac": 0.001, "X_VFA_deg": 0.01, "X_li": 5.0, "X_su": 0.1, "X_aa": 0.01, "X_fa": 0.01, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0} \ No newline at end of file diff --git a/Examples/ADM_Parameters/e_adm_2_inlet_conditions.json b/Examples/ADM_Parameters/e_adm_2_inlet_conditions.json new file mode 100644 index 0000000..b1cce3e --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_inlet_conditions.json @@ -0,0 +1 @@ +{"S_su_in": 0.01, "S_aa_in": 0.001, "S_fa_in": 0.001, "S_va_in": 0.001, "S_bu_in": 0.001, "S_et_in": 0.0, "S_lac_in": 0.0, "S_pro_in": 0.001, "S_cap_in": 0.0, "TSS_in": 12.0, "TDS_in": 3.0, "S_ac_in": 0.001, "X_chain_lac_in": 0.01, "S_h2_in": 1e-08, "S_ch4_in": 1e-05, "S_IC_in": 0.04, "S_IN_in": 0.01, "S_I_in": 0.02, "X_ac_et_in": 0.001, "X_Me_ac_in": 0.1, "X_Me_CO2_in": 0.1, "S_cap_ion_in": 0.001, "S_lac_ion_in": 0.0, "X_et_in": 0.01, "X_lac_in": 0.01, "X_chain_et_in": 0.01, "X_ac_lac_in": 0.01, "X_ch_in": 5.0, "X_pr_in": 20.0, "X_VFA_deg_in": 0.01, "X_li_in": 5.0, "X_su_in": 0.0, "X_aa_in": 0.01, "X_fa_in": 0.01, "X_I_in": 25.0, "S_cation_in": 0.04, "S_anion_in": 0.02, "S_H_ion_in": 3.423e-08, "S_va_ion_in": 0, "S_bu_ion_in": 0.0, "S_pro_ion_in": 0.0, "S_ac_ion_in": 0, "S_hco3_ion_in": 0, "S_nh3_in": 0.0, "S_gas_h2_in": 0, "S_gas_ch4_in": 0, "S_gas_co2_in": 0.0, "S_nh4_ion_in": 0, "S_co2_in": 0} \ No newline at end of file diff --git a/Examples/ADM_Parameters/e_adm_2_model_parameters.json b/Examples/ADM_Parameters/e_adm_2_model_parameters.json new file mode 100644 index 0000000..67d8e6f --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_model_parameters.json @@ -0,0 +1 @@ +{"f_sI_TDS": 0.7, "f_xI_TSS": 0.8, "f_ch_TSS": 0.05, "f_ch_TDS": 0.1, "f_pr_TSS": 0.05, "f_pr_TDS": 0.1, "f_li_TSS": 0.1, "f_li_TDS": 0.1, "N_aa": 0.007, "C_su": 0.0313, "C_et": 0.0208, "C_lac": 0.034, "C_aa": 0.03, "C_fa": 0.0217, "f_pro_su": 0.2003306746482849, "f_et_su": 0.09224545955657959, "f_lac_su": 0.25179609656333923, "f_ac_su": 0.41, "N_bac": 0.005714285714285714, "C_bu": 0.025, "C_pro": 0.0268, "C_ac": 0.0313, "C_bac": 0.0313, "k_m_bu_deg": 1.9767358303070068, "Y_su": 0.011714371852576733, "K_I_h2_ox": 474.67657470703125, "f_pro_aa": 0.6809548735618591, "f_ac_aa": 0.2, "f_et_aa": 0.005842878948897123, "f_lac_aa": 0.01188918761909008, "Y_ac_et": 0.16654299199581146, "f_et_ac": -0.2900020480155945, "f_bu_ac": 0.9618726968765259, "Y_ac_lac": 0.39503395557403564, "f_lac_ac": -0.023403070867061615, "f_h2_ac": 0.12396841496229172, "Y_ac_et_ox": 0.10000000149011612, "Y_pro_lac_ox": 0.018363816663622856, "Y_pro_et": 0.06936532258987427, "f_et_pro": -0.48498010635375977, "f_va_pro": 1.0, "Y_pro_lac": 0.10840124636888504, "f_lac_pro": -0.30524370074272156, "f_h2_pro": 0.07729185372591019, "Y_chain_et_pro": 0.009999999776482582, "Y_chain_lac_pro": 0.023025453090667725, "Y_bu": 0.12348975986242294, "Y_bu_et": 0.053466036915779114, "f_et_bu": -0.19345103204250336, "f_cap_bu": 1.0, "C_cap": 0.0241, "Y_bu_lac": 0.13504824042320251, "f_lac_bu": -0.11503596603870392, "f_h2_bu": 0.058134790509939194, "Y_va": 0.10542991012334824, "Y_cap": 0.6000000238418579, "Y_h2_ac": 0.1298234462738037, "Y_h2_CO2": 0.11287706345319748, "f_ac_h2": -1.56, "Y_Me_ac": 0.16423171758651733, "Y_Me_CO2": 0.1794177144765854, "C_ch4": 0.0156, "Y_Me_h2": 0.24171334505081177, "C_va": 0.024, "Y_aa": 0.044384412467479706, "Y_fa": 0.04147692024707794, "Y_ac": 0.048393364995718, "k_dis_TSS": 0.453651487827301, "k_dis_TDS": 3.0502877235412598, "k_hyd_ch": 1.9502079486846924, "k_hyd_pr": 3.724907636642456, "k_hyd_li": 8.882577896118164, "K_S_IN": 6.1387224197387695, "k_m_su": 25.0, "K_S_su": 2.760401487350464, "k_m_aa": 6.667466640472412, "K_S_aa": 25.657630920410156, "k_m_fa": 0.7610880136489868, "K_S_fa": 0.3085835874080658, "K_I_h2_fa": 3.1387853622436523, "k_m_bu": 1.6656396389007568, "K_S_bu": 8.78583812713623, "k_m_va": 0.23803304135799408, "K_S_va": 4.571810722351074, "k_m_cap": 2.315437078475952, "K_S_cap": 6.921456813812256, "K_I_h2_c4": 4.192772388458252, "k_m_pro": 3.2757725715637207, "K_S_pro": 3.0495388507843018, "k_m_et": 17.410297393798828, "K_S_et": 59.054527282714844, "k_m_lac": 5.009902477264404, "K_S_lac": 40.0, "K_I_h2_pro": 37.437564849853516, "k_m_ac": 10.0, "K_S_ac": 1.177742838859558, "K_I_nh3": 0.0018, "k_m_h2_Me_ac": 25.82659149169922, "K_S_h2_Me_ac": 0.005097816698253155, "K_S_ac_Me": 0.5, "k_m_h2_Me_CO2": 1.3759146928787231, "K_S_h2_Me_CO2": 0.0012022653827443719, "K_S_CO2_Me": 0.04876235872507095, "k_dec_X_su": 0.02, "k_dec_X_aa": 0.02, "k_dec_X_fa": 0.02, "k_dec_X_ac": 0.02, "f_pro_fa": 0.6000000238418579, "f_et_fa": 0.02676902338862419, "f_lac_fa": 0.0034169757273048162, "f_ac_fa": 0.1, "K_S_ac_lac": 40.92828369140625, "K_S_pro_et": 0.18028509616851807, "K_S_bu_et": 0.3648880124092102, "K_S_bu_lac": 0.13413147628307343, "K_S_pro_lac": 0.13037194311618805, "K_S_ac_et": 0.2780764400959015, "k_dec_X_chain_et": 0.001, "k_dec_X_chain_lac": 0.001, "k_dec_X_VFA_deg": 0.001, "k_dec_X_Me_ac": 0.001, "k_dec_X_Me_CO2": 0.001, "k_dec_X_et": 0.001, "k_dec_X_lac": 0.001, "K_w": 2.0787710559543604e-14, "K_a_va": 1.3803842646028839e-05, "K_a_bu": 1.5135612484362071e-05, "K_a_pro": 1.3182567385564074e-05, "K_a_cap": 1.3182567385564074e-05, "f_co2_ch4": -0.005453469697386026, "K_a_ac": 1.7378008287493764e-05, "K_a_lac": 1.7378008287493764e-05, "K_a_co2": 4.937073397534363e-07, "K_a_IN": 1.1102866527080678e-09, "k_A_B_va": 10000000000, "k_A_B_bu": 10000000000, "k_A_B_lac": 10000000000, "k_A_B_cap": 10000000000, "k_A_B_pro": 10000000000, "k_A_B_ac": 10000000000, "k_A_B_co2": 10000000000, "k_A_B_IN": 10000000000, "k_p": 0, "k_L_a": 20.915611267089844, "K_H_co2": 0.027146692900075386, "K_H_ch4": 0.0011619027336733539, "K_H_h2": 0.0007384654293536963, "K_pH_aa": 0.22437971830368042, "nn_aa": 0.6890156865119934, "K_pH_ac": 0.050145335495471954, "n_ac": 4.402726650238037, "K_pH_h2": 3.162277660168379e-06, "n_h2": 3.0, "K_pH_pro": 0.06130869314074516, "n_pro": 3.101494550704956, "K_pH_bu": 0.04155443236231804, "n_bu": 6.484157085418701, "K_pH_va": 0.02009737305343151, "n_va": 1.139792561531067, "K_b_nh3":1.8e-5,"K_pH_cap": 0.05653519555926323, "n_cap": 0.10086186230182648} \ No newline at end of file diff --git a/Examples/ADM_Parameters/e_adm_2_reactions.json b/Examples/ADM_Parameters/e_adm_2_reactions.json new file mode 100644 index 0000000..cbfb388 --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_reactions.json @@ -0,0 +1 @@ +["TSS_Disintegration", "TDS_Disintegration", "Hydrolysis carbohydrates", "Hydrolysis proteins", "Hydrolysis lipids", "Uptake of sugars", "Uptake of amino acids", "Uptake of LCFA", "Uptake of acetate_et", "Uptake of acetate_lac", "Uptake of propionate_et", "Uptake of propionate_lac", "Uptake of butyrate_et", "Uptake of butyrate_lac", "Uptake of valerate", "Uptake of caproate","Uptake of butyrate", "Methanogenessis from acetate and h2", "Methanogenessis from CO2 and h2", "Uptake of ethanol", "Uptake of lactate", "Decay of Xsu", "Decay of Xaa", "Decay of Xfa", "Decay of X_ac_et", "Decay of X_ac_lac", "Decay of Xpro", "Decay of X_chain_et", "Decay of X_chain_lac", "Decay of X_VFA_deg", "Decay of X_Me_ac", "Decay of X_Me_CO2", "Decay of Xet", "Decay of Xlac", "Acid Base Equilibrium (Va)", "Acid Base Equilibrium (Bu)", "Acid Base Equilibrium (Pro)", "Acid Base Equilibrium (Cap)", "Acid Base Equilibrium (Lac)", "Acid Base Equilibrium (Ac)", "Acid Base Equilibrium (CO2)", "Acid Base Equilibrium (In)", "Gas Transfer H2", "Gas Transfer CH4", "Gas Transfer CO2"] \ No newline at end of file diff --git a/Examples/ADM_Parameters/e_adm_2_species.json b/Examples/ADM_Parameters/e_adm_2_species.json new file mode 100644 index 0000000..d592c64 --- /dev/null +++ b/Examples/ADM_Parameters/e_adm_2_species.json @@ -0,0 +1 @@ +["S_su", "S_aa", "S_fa", "S_va", "S_bu", "S_pro", "S_et", "S_lac", "S_cap", "S_ac", "S_h2", "S_ch4", "S_IC", "S_IN", "S_I", "TSS", "TDS", "X_ch", "X_pr", "X_li", "X_su", "X_aa", "X_ac_et", "X_ac_lac", "X_fa", "X_VFA_deg", "X_et", "X_lac", "X_chain_et", "X_chain_lac", "X_Me_ac", "X_Me_CO2", "X_I", "S_cation", "S_anion", "S_H_ion", "S_va_ion", "S_bu_ion", "S_pro_ion", "S_cap_ion", "S_lac_ion", "S_ac_ion", "S_hco3_ion", "S_co2", "S_nh3", "S_nh4_ion", "S_gas_h2", "S_gas_ch4", "S_gas_co2"] \ No newline at end of file diff --git a/Examples/Studies/experimental_data_references.json b/Examples/Studies/experimental_data_references.json new file mode 100644 index 0000000..00bbeb9 --- /dev/null +++ b/Examples/Studies/experimental_data_references.json @@ -0,0 +1 @@ +[{"name": "A_35_F_5_A_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.11308610346666666, 0.055799507199999994, 0.9259020853333334, 0.7152932629333333, 1.2933062453333333], [0.0, 0.0, 0.39413831459459464, 0.5101812043243243, 0.7129449115675676], [0.0, 1.7972753781818183, 1.9695040963636365, 2.0933212254545457, 2.240047520909091], [0.0, 0.0, 0.2382131154509804, 0.36097795576470587, 0.48710568807843135], [0.0, 0.28586602593103444, 0.2856460336551724, 0.3038620424827586, 0.36398058924137927]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.11308610346666666, "X_chain_lac": 0.8016883463363069, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.689672650375607, "X_Me_ac": 0.011208193027445999, "X_Me_CO2": 0.0041037209146459995, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6835476602756719, "X_lac": 0.8155127947574301, "X_chain_et": 0.6835476602756719, "X_ch": 0.961752546470807, "X_pr": 0.601357051279784, "X_ac_lac": 0.8078133364362421, "X_VFA_deg": 1.0, "X_li": 0.043606314689665006, "X_su": 0.6605065387019721, "X_aa": 2.143445112718733, "X_fa": 1.092238073740008, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_5_C_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.1371567328, 0.18754801813333333, 0.6216862549333333, 1.3593329514666666, 1.258283592533333], [0.0, 0.0, 0.5030510088648649, 0.6017463578378379, 1.0294909164324324], [0.0, 2.142675570909091, 2.175979610909091, 2.1198713472727273, 2.6098008100000007], [0.0, 0.0, 0.25873747058823526, 0.5852730142745097, 0.8657902046274507], [0.0, 0.42681589627586203, 0.3056858659310345, 0.332580268137931, 0.8508725892413793]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.1371567328, "X_chain_lac": 0.7988334851456159, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.685559512311708, "X_Me_ac": 0.011455090316207001, "X_Me_CO2": 0.003745433367489, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.679703194886549, "X_lac": 0.812580476534896, "X_chain_et": 0.679703194886549, "X_ch": 0.985602819038319, "X_pr": 0.600324044985622, "X_ac_lac": 0.8046898025707749, "X_VFA_deg": 1.0, "X_li": 0.044825012960621996, "X_su": 0.658001756600891, "X_aa": 2.149034497428087, "X_fa": 1.085941678966666, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_7_A_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.14920617173333334, 2.409501104, 2.9760569738666667, 0.2008538912, 0.042357030399999995], [0.0, 0.21602504756756757, 0.8879325597837838, 0.2867161450810811, 0.32330897124324326], [0.0, 1.9191215818181822, 2.056227327272728, 1.4221642345454548, 0.10332739636363637], [0.0, 0.145527271372549, 0.6710997443137254, 0.6235210575686274, 0.19385374666666663], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.14920617173333334, "X_chain_lac": 0.7793331006777229, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.679270179203913, "X_Me_ac": 0.012561946565109, "X_Me_CO2": 0.007281494522858, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.666851361540039, "X_lac": 0.797094895114388, "X_chain_et": 0.666851361540039, "X_ch": 1.023715906507398, "X_pr": 0.5861706043268821, "X_ac_lac": 0.7917519183415971, "X_VFA_deg": 1.0, "X_li": 0.045968985423501, "X_su": 0.624200957798518, "X_aa": 2.194629843802173, "X_fa": 1.124317444635857, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_7_B_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.24057294293333334, 1.7823687882666666, 2.3560823872, 2.3003993792, 2.0370759530666667], [0.0, 0.25930147675675674, 0.48680839502702705, 0.7803230944864865, 0.8655048988108108], [0.0, 2.1143913199999997, 1.8187705127272729, 1.8031735381818181, 1.9470111090909092], [0.0, 0.1684806525490196, 0.5747059535686274, 0.4022438404705882, 0.46062696486274507], [0.0, 0.0, 0.0, 0.01196249820689655, 0.040087552]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.24057294293333334, "X_chain_lac": 0.7525595236336811, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.661322568929386, "X_Me_ac": 0.01407801683976, "X_Me_CO2": 0.009667344451121, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.643128010154393, "X_lac": 0.766823352142697, "X_chain_et": 0.643128010154393, "X_ch": 1.3155508997031, "X_pr": 0.530730360166807, "X_ac_lac": 0.7707540824086739, "X_VFA_deg": 1.0, "X_li": 0.037680380210063, "X_su": 0.6439448964791381, "X_aa": 2.155440623474358, "X_fa": 1.055191931252422, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_7_C_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.1976291648, 2.3391742272, 2.8589343594666667, 0.13831920106666665, 0.01815820693333333], [0.0, 0.036302744648648654, 0.7466588503783784, 0.28263525405405404, 0.4600697602162162], [0.0, 1.8230187890909093, 1.9225356472727273, 1.120446190909091, 0.0], [0.0, 0.22542493490196078, 0.3963256246274509, 0.3727108095686274, 0.17116298180392156], [0.0, 0.0, 0.0, 0.01691073103448276, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.1976291648, "X_chain_lac": 0.743816596747358, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.654984896044303, "X_Me_ac": 0.014506435411256, "X_Me_CO2": 0.010682235266606999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6347662440521761, "X_lac": 0.757837140405383, "X_chain_et": 0.6347662440521761, "X_ch": 1.4003885516730592, "X_pr": 0.517901190923499, "X_ac_lac": 0.764035248739485, "X_VFA_deg": 1.0, "X_li": 0.035529164421937, "X_su": 0.6441117496185029, "X_aa": 2.1458249047931672, "X_fa": 1.0408493978510849, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_9_A_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.13278117973333334, 0.5963548458666666, 1.6299339018666668, 2.622774119466667, 3.1684364576], [0.0, 0.12586062205405407, 0.2412475141621622, 0.841003112864865, 0.8534254369729729], [0.0, 0.0, 0.1725887654545455, 0.12392016727272728, 0.19800377090909094], [0.0, 0.06557809317647058, 0.24225629286274508, 0.23828372533333333, 0.30161836925490193], [0.0, 0.0, 0.0, 0.2968975051034483, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.13278117973333334, "X_chain_lac": 0.802538594655089, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6879532578623521, "X_Me_ac": 0.011901976970732, "X_Me_CO2": 0.003158784924409, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6818744288047771, "X_lac": 0.813811414788171, "X_chain_et": 0.6818744288047771, "X_ch": 1.033694047293841, "X_pr": 0.59355767035948, "X_ac_lac": 0.8086174237126651, "X_VFA_deg": 1.0, "X_li": 0.039193673857544, "X_su": 0.683709896373102, "X_aa": 2.093650369547895, "X_fa": 1.06446403204516, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_9_B_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.17377972586666665, 0.6445645013333333, 1.6190619136, 2.552368362666667, 3.1987647925333333], [0.0, 0.05095491005405406, 0.0672999494054054, 0.6646304378378379, 0.6256923377297298], [0.0, 0.0, 0.09824823272727275, 0.10673527636363637, 0.11323652000000001], [0.0, 0.0, 0.14499501976470586, 0.17936996643137254, 0.1949141979607843], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.17377972586666665, "X_chain_lac": 0.799527824632711, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.685154548401664, "X_Me_ac": 0.011935299072141001, "X_Me_CO2": 0.0031936934833440003, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6787505158991409, "X_lac": 0.811019992548198, "X_chain_et": 0.6787505158991409, "X_ch": 1.0449010179959841, "X_pr": 0.590869284766518, "X_ac_lac": 0.8059318571352341, "X_VFA_deg": 1.0, "X_li": 0.040176924950496996, "X_su": 0.681268940482852, "X_aa": 2.108954299546404, "X_fa": 1.059565285186166, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_F_9_C_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.041134432, 0.39456985706666664, 1.6362829557333332, 2.7445083925333336, 2.9550597248], [0.0, 0.0, 0.0, 0.19120801340540539, 0.2337323974054054], [0.45917165272727284, 0.0, 0.57949434, 0.6713503490909092, 0.6947658036363636], [0.0, 0.0, 0.16267375952941174, 0.5609873176470588, 0.3056920064313725], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.45917165272727284, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.041134432, "X_chain_lac": 0.7916891439033551, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.676014126407011, "X_Me_ac": 0.012651828032679, "X_Me_CO2": 0.003594099986154, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6689437879872071, "X_lac": 0.804677848250857, "X_chain_et": 0.6689437879872071, "X_ch": 1.073141176554528, "X_pr": 0.591893039873421, "X_ac_lac": 0.7987594823231601, "X_VFA_deg": 1.0, "X_li": 0.043133264025321, "X_su": 0.6631947633705799, "X_aa": 2.138750051592653, "X_fa": 1.0646135997058601, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_5_B_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.2673333397333333, 0.5673743317333333, 0.8351660010666666, 0.6381158442666667, 0.7145327018666666, 0.10027418773333333], [0.0, 0.03518898789189189, 0.26902201881081084, 0.2129902895135135, 0.3862118142702703, 0.1266466758918919], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.2673333397333333, "X_chain_lac": 0.810687665684279, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.730974256249793, "X_Me_ac": 0.011905613777419, "X_Me_CO2": 0.011609875288219999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.72036190403286, "X_lac": 0.834230256187032, "X_chain_et": 0.72036190403286, "X_ch": 0.8181296252227831, "X_pr": 0.49810492012326796, "X_ac_lac": 0.821300017901212, "X_VFA_deg": 1.0, "X_li": 0.039740216084037, "X_su": 0.640164947904619, "X_aa": 2.179064425108386, "X_fa": 1.163364372403225, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_5_C_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.16750788586666668, 0.35953637866666666, 0.8612024085333334, 0.8111057333333334, 0.8564714485333332, 0.1384994496], [0.0, 0.0923079254054054, 0.26661429124324326, 0.3452536473513514, 0.5841741662702703, 0.2390298869189189], [0.38173473090909094, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.3456084082758621]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.38173473090909094, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.16750788586666668, "X_chain_lac": 0.805747773172884, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7287659941341871, "X_Me_ac": 0.011938660740698, "X_Me_CO2": 0.011082207352340001, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.715903735605254, "X_lac": 0.8283005626797311, "X_chain_et": 0.715903735605254, "X_ch": 0.815971594923922, "X_pr": 0.483797138508559, "X_ac_lac": 0.818610031701817, "X_VFA_deg": 1.0, "X_li": 0.038944718035063004, "X_su": 0.6475072617393041, "X_aa": 2.218997305142604, "X_fa": 1.158529280658374, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_7_A_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.14461420586666665, 0.2842665536, 1.7065343871999998, 1.3687734570666668, 0.8438431157333334], [0.0, 0.11614060821621622, 1.4005689221621622, 1.1225795461621622, 0.7953623803243245], [0.0, 0.0, 0.15029333090909092, 0.0, 0.06920679272727273], [0.0, 0.0, 0.0, 0.0, 0.08190682117647058], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.14461420586666665, "X_chain_lac": 0.823225576125865, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7386679772446141, "X_Me_ac": 0.013051320625673999, "X_Me_CO2": 0.010344116965237002, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7297173660993419, "X_lac": 0.8495062184204839, "X_chain_et": 0.7297173660993419, "X_ch": 0.758257702389274, "X_pr": 0.500443665511136, "X_ac_lac": 0.832176187271137, "X_VFA_deg": 1.0, "X_li": 0.040548721225462, "X_su": 0.638021758245835, "X_aa": 2.1782472362622047, "X_fa": 1.158074787514388, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_9_A_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.6052078816, 1.2370075818666666, 1.1837605493333332, 1.5781806378666665, 1.2870459861333332, 1.9652469013333334], [0.045836448, 0.1656586051891892, 0.0780367930810811, 0.07566917664864865, 0.30826051200000004, 0.43744608713513516], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.045836448, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.6052078816, "X_chain_lac": 0.8179294076562429, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7333594961333869, "X_Me_ac": 0.013087634882032, "X_Me_CO2": 0.01246583446854, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7240228848839659, "X_lac": 0.842449070628287, "X_chain_et": 0.7240228848839659, "X_ch": 0.81196770661859, "X_pr": 0.49843470592657096, "X_ac_lac": 0.827266018905664, "X_VFA_deg": 1.0, "X_li": 0.038940882805939, "X_su": 0.6373211584475349, "X_aa": 2.145650225539142, "X_fa": 1.173082088220133, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_9_B_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.7030676522666667, 0.6429123125333334, 1.2209353002666667, 1.3674313269333331, 2.617178688, 2.6425402208], [0.014569421621621623, 0.0, 0.2327725074594595, 0.6309611052972973, 0.4085352123243244, 0.511420675027027], [0.0, 0.0, 0.06790306545454546, 0.0, 0.0, 0.0], [0.0, 0.0, 0.09161461960784313, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.014569421621621623, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.7030676522666667, "X_chain_lac": 0.815462717824593, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.729091428007515, "X_Me_ac": 0.013280526204098, "X_Me_CO2": 0.011384441180632001, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.72004494406974, "X_lac": 0.838973718913298, "X_chain_et": 0.72004494406974, "X_ch": 0.828401076310084, "X_pr": 0.501612210447649, "X_ac_lac": 0.824509201762368, "X_VFA_deg": 1.0, "X_li": 0.038859262678418, "X_su": 0.6415593738602671, "X_aa": 2.152400368861332, "X_fa": 1.164375785810259, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_35_M_9_C_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.39577406719999997, 0.9309431392, 1.2660481621333333, 1.7219145152, 1.9504612810666666, 2.412877797333333], [0.0, 0.0, 0.2863643258378379, 0.2156720054054054, 0.5907312032432432, 1.1873523366486487], [0.0, 0.0, 0.0, 0.0, 0.09517463090909092, 0.5046846581818183], [0.0, 0.0, 0.0, 0.0, 0.20459063325490195, 0.03433521662745098], [0.0, 0.0, 0.0, 0.0, 0.0667782444137931, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.39577406719999997, "X_chain_lac": 0.8174654635888221, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.730642226473725, "X_Me_ac": 0.013034829852066, "X_Me_CO2": 0.011327638296849999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.721891097208744, "X_lac": 0.841142958889113, "X_chain_et": 0.721891097208744, "X_ch": 0.8253423430794091, "X_pr": 0.5068694268503561, "X_ac_lac": 0.826216592853803, "X_VFA_deg": 1.0, "X_li": 0.03961991467001601, "X_su": 0.643968807902478, "X_aa": 2.146455210020011, "X_fa": 1.154132393105856, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_7_A_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.20593167573333335, 2.781821746133333, 2.7626743232, 0.18647520106666665, 0.24530875626666668], [0.0, 0.12597543113513515, 0.4575387206486487, 0.4416468726486487, 0.5283258384864865], [0.0, 1.621298692727273, 1.570505732727273, 0.18911899090909093, 0.0], [0.0, 0.17236867215686275, 0.6126522989803921, 0.22053332752941174, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.20593167573333335, "X_chain_lac": 0.785750182049102, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.683009632452659, "X_Me_ac": 0.008684819485286, "X_Me_CO2": 0.026829031735405996, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.659123876519057, "X_lac": 0.794092628852176, "X_chain_et": 0.659123876519057, "X_ch": 1.289937843959108, "X_pr": 0.514334879853495, "X_ac_lac": 0.809635937982704, "X_VFA_deg": 1.0, "X_li": 0.04442503705209, "X_su": 0.6177576083025009, "X_aa": 2.13969503525476, "X_fa": 0.9675996099825911, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_7_B_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.050919575466666665, 1.7667057712, 2.0675142954666668, 0.0, 0.0], [0.0, 0.5628937561081081, 1.3079501104864866, 0.8580787645405407, 0.42071978313513514], [0.0, 1.786256590909091, 1.9369819600000002, 0.13002444363636365, 0.0], [0.31803690431372544, 0.5185492693333333, 0.44091377505882345, 0.19943662572549017, 0.0], [0.0, 0.5109334377931034, 0.023634129655172413, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.31803690431372544, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.050919575466666665, "X_chain_lac": 0.79184490645069, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6837126337766509, "X_Me_ac": 0.013917478018011, "X_Me_CO2": 0.006951339244002, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.671869556547869, "X_lac": 0.806990745459233, "X_chain_et": 0.671869556547869, "X_ch": 0.9904333864768, "X_pr": 0.5921074895784171, "X_ac_lac": 0.803687983679473, "X_VFA_deg": 1.0, "X_li": 0.043947697671649, "X_su": 0.6497398193293109, "X_aa": 2.177767119923649, "X_fa": 1.0951602872963688, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_7_C_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.025180946133333333, 1.2115978042666666, 2.0403489941333333, 0.44652835733333335, 0.7466915349333333], [0.0, 0.22063100897297297, 0.782977449081081, 0.8848882105945947, 1.354623775135135], [0.0, 1.67803645, 1.584204941818182, 1.6242918400000002, 0.17552403272727274], [0.0, 0.2577340847058823, 0.5756027496470588, 0.6627889595294117, 0.40845546070588234], [0.0, 0.2052768, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.025180946133333333, "X_chain_lac": 0.797438177697108, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6888704543720909, "X_Me_ac": 0.012690480203331, "X_Me_CO2": 0.006078378691769, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.679667671739683, "X_lac": 0.813582899394901, "X_chain_et": 0.679667671739683, "X_ch": 0.939414351775135, "X_pr": 0.599205807848921, "X_ac_lac": 0.806640960329516, "X_VFA_deg": 1.0, "X_li": 0.047141579739252, "X_su": 0.6352844471044861, "X_aa": 2.172523067571121, "X_fa": 1.121794051792997, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_9_A_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.2571878069333333, 0.4995178037333333, 1.8569752842666667, 2.7713158677333336, 2.4883232672], [0.0, 0.0, 0.02763081167567568, 0.0, 0.033462918054054054], [0.0, 0.0, 0.0, 0.16397756363636365, 0.09471109090909093], [0.0, 0.0, 0.1349632674509804, 0.2810705468235294, 0.2238014581960784], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.2571878069333333, "X_chain_lac": 0.802285496182683, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.687153446318764, "X_Me_ac": 0.011475504645583001, "X_Me_CO2": 0.003031997151884, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.681719121852406, "X_lac": 0.8133714496516791, "X_chain_et": 0.681719121852406, "X_ch": 1.026977245990674, "X_pr": 0.597953641470785, "X_ac_lac": 0.807719820649041, "X_VFA_deg": 1.0, "X_li": 0.040201909565037997, "X_su": 0.6858604558102379, "X_aa": 2.1011249758883217, "X_fa": 1.059405812970491, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_9_B_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.33274806293333337, 0.5215629482666667, 1.0990153216, 1.5301171914666667, 1.4426706944], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.062213173176470585, 0.06971719121568627], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.33274806293333337, "X_chain_lac": 0.8001901174259201, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.685681992516622, "X_Me_ac": 0.011560028728952001, "X_Me_CO2": 0.003235169983355, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6799261102971379, "X_lac": 0.8118803134824131, "X_chain_et": 0.6799261102971379, "X_ch": 1.023423062132998, "X_pr": 0.598908649337373, "X_ac_lac": 0.805945999645403, "X_VFA_deg": 1.0, "X_li": 0.041259752083161, "X_su": 0.679764498053395, "X_aa": 2.114963491172551, "X_fa": 1.063334704843573, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_F_9_C_Delong_BETO", "time": [0.0, 1.2, 3.3, 7.2, 11.3], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.3346851317333333, 0.8827131935999999, 1.5502653791999998, 1.6656390986666667, 1.8242860832], [0.0, 0.0, 0.0, 0.03327626854054054, 0.0], [0.0, 0.0, 0.0, 0.12956618545454546, 0.19705435272727276], [0.0, 0.0, 0.2516571301960784, 0.24431491780392156, 0.3688445585882353], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.3346851317333333, "X_chain_lac": 0.798239888864028, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6831583429824619, "X_Me_ac": 0.011393361742844, "X_Me_CO2": 0.003468702968013, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6772868092366301, "X_lac": 0.810889871387333, "X_chain_et": 0.6772868092366301, "X_ch": 1.01518247078883, "X_pr": 0.599106523292464, "X_ac_lac": 0.80411142260986, "X_VFA_deg": 1.0, "X_li": 0.042756038739492, "X_su": 0.668523114433, "X_aa": 2.143030768263146, "X_fa": 1.065565875455261, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_M_5_C_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.5325236426666666, 0.9429811178666667, 0.6461696, 0.4665611328, 0.17005517226666667, 0.41286763519999997], [0.1136599625945946, 0.44549248043243245, 0.2179635602162162, 0.24049706118918923, 0.1506080361081081, 0.3833148676756757], [0.0, 0.11672602, 0.0, 0.0, 0.0, 0.013394861818181818], [0.40847688266666665, 0.0, 0.0, 0.0, 0.0, 0.017646601725490194], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.40847688266666665, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.1136599625945946, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.5325236426666666, "X_chain_lac": 0.811430400886711, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7312161051242649, "X_Me_ac": 0.011466504187279, "X_Me_CO2": 0.010709446752345999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7205644323734329, "X_lac": 0.834457700792043, "X_chain_et": 0.7205644323734329, "X_ch": 0.802048666093685, "X_pr": 0.488488993480421, "X_ac_lac": 0.8220820736375429, "X_VFA_deg": 1.0, "X_li": 0.03902415787171, "X_su": 0.6504360601771809, "X_aa": 2.2046024840749507, "X_fa": 1.152908542174994, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_M_7_A_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.24754231359999998, 0.5464041002666666, 1.3580949717333333, 0.40728394240000004], [0.0, 0.21463287697297298, 0.5834606067027027, 0.8460884577297297], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.24754231359999998, "X_chain_lac": 0.827280053542431, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.743704597774466, "X_Me_ac": 0.012665256508616999, "X_Me_CO2": 0.011443654294034, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7354633802537169, "X_lac": 0.8546996377016811, "X_chain_et": 0.7354633802537169, "X_ch": 0.7390162723720011, "X_pr": 0.48870183458907, "X_ac_lac": 0.83552127106318, "X_VFA_deg": 1.0, "X_li": 0.041291731113844994, "X_su": 0.630617334183393, "X_aa": 2.16596903109658, "X_fa": 1.178162565253262, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_M_7_B_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 11.29, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.20158842346666667, 1.0393766112, 1.9365582026666668, 0.4307488341333333, 0.2980785365333333, 0.4657300842666666], [0.0, 0.10214089881081082, 0.5910506196756757, 0.9619700977297297, 0.47003608324324325, 0.0], [0.0, 0.0, 0.0, 0.0, 0.17175673636363636, 0.0], [0.0, 0.0, 0.0, 0.0, 0.33172458494117646, 0.0], [0.0, 0.0, 0.0, 0.0, 0.4979079017931035, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.20158842346666667, "X_chain_lac": 0.824683655906221, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7401560044771629, "X_Me_ac": 0.013250113455278, "X_Me_CO2": 0.010540178304525, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7317657374895841, "X_lac": 0.850616921750796, "X_chain_et": 0.7317657374895841, "X_ch": 0.762891206288815, "X_pr": 0.498093900861149, "X_ac_lac": 0.833073922893799, "X_VFA_deg": 1.0, "X_li": 0.04103625094819299, "X_su": 0.637893003662606, "X_aa": 2.168836716978838, "X_fa": 1.155396649493443, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "A_45_M_7_C_Delong_BETO", "time": [0.0, 0.54, 3.48, 6.47, 23.29], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.09258750613333333, 1.0741177621333333, 0.4330222389333333, 0.5099574688, 0.0], [0.0, 0.17392158983783784, 0.40906145189189186, 0.8739167027027027, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.3392671580689655]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.09258750613333333, "X_chain_lac": 0.819438875230452, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.735709934350942, "X_Me_ac": 0.012488200436773, "X_Me_CO2": 0.010606688320179, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7272136353423759, "X_lac": 0.8448173449084471, "X_chain_et": 0.7272136353423759, "X_ch": 0.774235865169718, "X_pr": 0.50428677548039, "X_ac_lac": 0.8279351742390171, "X_VFA_deg": 1.0, "X_li": 0.04075052277203, "X_su": 0.638520182933755, "X_aa": 2.183210484482055, "X_fa": 1.153572680991485, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_5_A_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.3076478784, 0.1915646517333333, 0.4860565141333333, 1.1317258624, 0.681456448, 1.3016388490666666, 1.26392], [0.28026118551351353, 0.23377024886486486, 0.3027250648648649, 0.4892729383783784, 0.41406777470270273, 0.4638789876756757, 0.625190819891892], [0.1424721781818182, 1.8232858181818181, 2.0277944400000005, 2.5628868345454547, 1.9127986636363639, 2.3070161236363638, 2.605883305454546], [0.11410960549019607, 0.0034953482352941176, 0.1840359896470588, 0.2073447836862745, 0.17626639027450977, 0.25396237380392156, 0.2140312536470588], [0.0, 0.0, 0.0, 0.31056256662068965, 0.0, 0.3859821726896551, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.11410960549019607, "S_bu": 0.1424721781818182, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.28026118551351353, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.3076478784, "X_chain_lac": 0.827452255962825, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.71598640308649, "X_Me_ac": 0.008800327743192, "X_Me_CO2": 0.002554100987981, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.710403527598764, "X_lac": 0.835267983733395, "X_chain_et": 0.710403527598764, "X_ch": 0.8749777000270941, "X_pr": 0.615615298767005, "X_ac_lac": 0.8330351314505511, "X_VFA_deg": 1.0, "X_li": 0.025451636206049, "X_su": 0.734420716340918, "X_aa": 2.06190229183394, "X_fa": 1.043729098663024, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_5_B_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.23857650773333333, 0.31604808533333334, 0.982131376, 1.7847287445333333, 1.3865953418666666, 1.2498111285333333, 1.6239871274666666], [0.09196020778378379, 0.29281227178378383, 0.4088931840000001, 0.6314035022702703, 0.5898720527567568, 0.6054636227027027, 0.6650832916756757], [0.0, 2.1948643800000003, 2.2798083690909094, 2.512822096363637, 2.8131161654545456, 2.40352976, 2.8177364327272727], [0.0, 0.051878636078431364, 0.11271890117647058, 0.23310803074509803, 0.2695015705098039, 0.12364125647058823, 0.2656318773333333], [0.0, 0.0, 0.0, 0.41955412303448275, 0.3184715895172414, 0.4258254035862069, 0.38144032662068966]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.09196020778378379, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.23857650773333333, "X_chain_lac": 0.819597131106651, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.709631539975625, "X_Me_ac": 0.009445848105992, "X_Me_CO2": 0.0028165472300700004, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.703539083668207, "X_lac": 0.8284241237119321, "X_chain_et": 0.703539083668207, "X_ch": 0.8989610724292869, "X_pr": 0.615154946071775, "X_ac_lac": 0.8256895874140691, "X_VFA_deg": 1.0, "X_li": 0.027920948907741997, "X_su": 0.724979659527841, "X_aa": 2.0834736449819182, "X_fa": 1.0468267832006801, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_5_C_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.32646426026666664, 0.27366528106666665, 0.4688386602666667, 0.8775539818666667, 0.9618128757333333, 1.4722434986666668, 0.9618128757333333], [0.07433291524324324, 0.27049428151351357, 0.35863871891891896, 0.48674392843243247, 0.4990398423783784, 0.6055173236756757, 0.4765759630270271], [0.0, 1.581195052727273, 1.5072317436363638, 1.4631507363636365, 1.4740229, 1.3677464000000001, 1.3171933727272729], [0.0, 0.0, 0.05810712470588235, 0.26763197474509803, 0.3257604785882353, 0.4244320549019608, 0.4223049898039215], [0.0, 0.0, 0.509688428137931, 0.8409476899310345, 0.4041143326896552, 0.624461267862069, 0.6961064849655173]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.07433291524324324, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.32646426026666664, "X_chain_lac": 0.7549422695001851, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.668807902069925, "X_Me_ac": 0.01840418336114, "X_Me_CO2": 0.013454475005423, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.643376761379142, "X_lac": 0.7691087956551359, "X_chain_et": 0.643376761379142, "X_ch": 1.379721675491004, "X_pr": 0.535597165118208, "X_ac_lac": 0.7803734101909681, "X_VFA_deg": 1.0, "X_li": 0.035883219973259, "X_su": 0.6520006363415751, "X_aa": 2.121246718403563, "X_fa": 0.983706026131324, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_7_A_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.1285569376, 2.4096992384, 2.0662472874666666, 0.31614352746666663, 0.0, 0.1973212053333333], [0.0, 0.4843700021621622, 0.792046972972973, 0.7607928795675676, 0.7520026655135136, 0.08144806637837838], [0.0, 1.1384428254545456, 1.7540218600000002, 0.17282680727272728, 0.15006083454545457, 0.0], [0.0, 0.10910897145098039, 0.2306535777254902, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.1285569376, "X_chain_lac": 0.774443356433918, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.667660535520141, "X_Me_ac": 0.01555211771445, "X_Me_CO2": 0.007758523269724001, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.653669920121223, "X_lac": 0.7887512824638, "X_chain_et": 0.653669920121223, "X_ch": 1.006503754564124, "X_pr": 0.604147750963483, "X_ac_lac": 0.788433971832836, "X_VFA_deg": 1.0, "X_li": 0.035366218219531, "X_su": 0.6892387717963171, "X_aa": 2.297041718554377, "X_fa": 1.0177621584248469, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_7_B_Delong_BETO", "time": [0, 1.7, 4.8, 10.7, 13.7, 20.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 1.8158722549333333, 1.8963343008, 0.13897311253333333, 0.17022163626666667, 0.0], [0.0, 0.5554075656216217, 0.8164642337297298, 0.6842113100540541, 0.2472525954594595, 0.7601892086486486], [0.0, 1.3953160836363638, 1.8289347963636367, 0.09878705454545456, 0.0, 0.0], [0.0, 0.0, 0.2384231770980392, 0.0, 0.0, 0.0471847694117647], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0, "X_chain_lac": 0.7601013926516751, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6643049302563051, "X_Me_ac": 0.016744530029856, "X_Me_CO2": 0.009064336122575, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.64523452640114, "X_lac": 0.774351350172126, "X_chain_et": 0.64523452640114, "X_ch": 1.256463056614196, "X_pr": 0.538037691486556, "X_ac_lac": 0.779171796506839, "X_VFA_deg": 1.0, "X_li": 0.033774967066493, "X_su": 0.647949287956052, "X_aa": 2.126182008671518, "X_fa": 1.103385599663524, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_7_C_Delong_BETO", "time": [0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 2.3211167669333337, 2.0972139914666665, 0.0, 0.0, 0.0, 0.105451424], [0.0, 0.5420142211891892, 0.818819443891892, 0.6842113100540541, 0.793023662918919, 0.14450121491891893, 0.0], [0.0, 1.9345909981818183, 1.0546454545454544, 0.0, 0.0, 0.0, 0.0], [0.0, 0.1840359896470588, 0.14726252972549017, 0.07095541521568627, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0, "X_chain_lac": 0.780566908270066, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.669684504757117, "X_Me_ac": 0.016334682432611, "X_Me_CO2": 0.006050004849703, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6562860972233241, "X_lac": 0.7920061458967089, "X_chain_et": 0.6562860972233241, "X_ch": 1.1351761103616111, "X_pr": 0.5899691602959191, "X_ac_lac": 0.79396531580386, "X_VFA_deg": 1.0, "X_li": 0.032660547222883, "X_su": 0.698062433316579, "X_aa": 2.158792512058125, "X_fa": 1.014159480288159, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_9_A_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.27366528106666665, 1.2166823552, 3.3797360426666665, 3.4513167274666667, 3.972125472, 2.7458992330666665, 3.533244144], [0.019289501189189193, 0.11910726421621623, 1.0145511645405407, 1.223679296, 1.0994256332972974, 1.1690494797837838, 1.130106596972973], [0.0, 0.38196682181818187, 0.2575214181818182, 0.3984225145454546, 0.3065103563636364, 0.4744703054545455, 0.1360115381818182], [0.0, 0.1840359896470588, 0.15640832235294116, 0.17587769537254902, 0.23310803074509803, 0.33942795466666664, 0.18917539027450977], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.019289501189189193, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.27366528106666665, "X_chain_lac": 0.83506604524738, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.719761355248844, "X_Me_ac": 0.008974854732103, "X_Me_CO2": 0.005283599886087, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.712927209379987, "X_lac": 0.841900191116237, "X_chain_et": 0.712927209379987, "X_ch": 0.8626001790293419, "X_pr": 0.613732572716551, "X_ac_lac": 0.841900191116237, "X_VFA_deg": 1.0, "X_li": 0.023751816703967997, "X_su": 0.7339745275549581, "X_aa": 2.036103239093543, "X_fa": 1.0510970087947689, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_9_B_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.3076478784, 0.8513694346666667, 3.5554784768, 3.0007687125333335, 4.076287221333334, 3.1706816992, 3.1706816992], [0.05952914724324325, 0.25193716345945943, 0.9503212380540541, 1.1299818622702702, 1.0890711606486487, 1.149515671783784, 1.0518466287567567], [0.0, 0.3779974018181818, 0.23848030909090911, 0.6387919454545455, 0.1953902890909091, 0.5362489327272728, 0.4260198981818182], [0.0, 0.16849679294117645, 0.10910897145098039, 0.21511438305882352, 0.15680091827450982, 0.2617319711372549, 0.25396237380392156], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.05952914724324325, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.3076478784, "X_chain_lac": 0.8202034792028761, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.703155574953235, "X_Me_ac": 0.012846898053216, "X_Me_CO2": 0.010829785423381, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.691725929237975, "X_lac": 0.8277491943250039, "X_chain_et": 0.691725929237975, "X_ch": 0.988609312244354, "X_pr": 0.592713384972735, "X_ac_lac": 0.8316331249181361, "X_VFA_deg": 1.0, "X_li": 0.026503937094035, "X_su": 0.7127388375063499, "X_aa": 2.045306722739762, "X_fa": 1.044257890090959, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_F_9_C_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.17171748906666667, 1.2166823552, 3.0857252053333335, 3.0055600437333334, 2.7458992330666665, 3.3471549792, 4.1804489696], [0.04390210054054054, 0.5635014105945946, 1.0420797232432433, 1.1103048683243244, 0.9737113937297298, 1.1615524646486486, 1.3065150711351352], [0.0, 0.3186119636363637, 0.34011302363636364, 0.14531766000000002, 0.5384866654545455, 0.16392990181818184, 0.33300626000000005], [0.0, 0.1451879968627451, 0.17626639027450977, 0.06902948, 0.25396237380392156, 0.10910897145098039, 0.12818575058823528], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.04390210054054054, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.17171748906666667, "X_chain_lac": 0.8343402906742969, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.718950646917567, "X_Me_ac": 0.009622084946219, "X_Me_CO2": 0.006006005615741, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.71169639540895, "X_lac": 0.842192348649048, "X_chain_et": 0.71169639540895, "X_ch": 0.876028194632269, "X_pr": 0.605141941347908, "X_ac_lac": 0.841594542182914, "X_VFA_deg": 1.0, "X_li": 0.023633498891068, "X_su": 0.730657257019613, "X_aa": 2.032365242076529, "X_fa": 1.056075156228922, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_5_A_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.32, 0.0, 0.4266666666666667, 0.5333333333333333, 0.21333333333333335], [0.0, 0.0, 0.0, 0.3027027027027027, 0.15135135135135136], [0.0, 0.0, 0.0, 0.09090909090909093, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.32, "X_chain_lac": 0.815944348706505, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7372383576174429, "X_Me_ac": 0.011797796974435, "X_Me_CO2": 0.012085573054180999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7281169292993971, "X_lac": 0.8397909161103589, "X_chain_et": 0.7281169292993971, "X_ch": 0.783922998277125, "X_pr": 0.49085296318889, "X_ac_lac": 0.82506577702455, "X_VFA_deg": 1.0, "X_li": 0.039610869491656, "X_su": 0.641617982416728, "X_aa": 2.176113644869596, "X_fa": 1.169724913669732, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_5_B_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.32, 0.32, 0.48, 0.4266666666666667], [0.0, 0.0, 0.15135135135135136, 0.15135135135135136, 0.15135135135135136], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.0, "X_chain_lac": 0.811219507858099, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.732588504173335, "X_Me_ac": 0.011534655945385, "X_Me_CO2": 0.011725724732029, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.722675154509248, "X_lac": 0.834564950478561, "X_chain_et": 0.722675154509248, "X_ch": 0.786554963949978, "X_pr": 0.49267791923612103, "X_ac_lac": 0.821132857522185, "X_VFA_deg": 1.0, "X_li": 0.039636300778346, "X_su": 0.646080080647271, "X_aa": 2.212959114357276, "X_fa": 1.153975111302911, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_5_C_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.0, 0.4266666666666667, 0.4266666666666667], [0.15135135135135136, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.15135135135135136, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.0, "X_chain_lac": 0.810380347736285, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7318999839399081, "X_Me_ac": 0.011805068649003, "X_Me_CO2": 0.011637932523878, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7213756662722, "X_lac": 0.8333534898248279, "X_chain_et": 0.7213756662722, "X_ch": 0.801898471076285, "X_pr": 0.490196733867157, "X_ac_lac": 0.8209046654039941, "X_VFA_deg": 1.0, "X_li": 0.038893890870401, "X_su": 0.647276898061686, "X_aa": 2.205959856381617, "X_fa": 1.153041329120551, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_7_A_Delong_BETO", "time": [0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.64, 0.8533333333333334, 1.0666666666666667, 0.10666666666666667], [0.0, 0.4540540540540541, 0.6054054054054054, 1.2864864864864867, 0.0], [0.0, 0.3636363636363637, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0, "X_chain_lac": 0.8051007891141849, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7223244531592831, "X_Me_ac": 0.012687962716433, "X_Me_CO2": 0.010101920562885, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.712101408570744, "X_lac": 0.8277841362979479, "X_chain_et": 0.712101408570744, "X_ch": 0.907392239070888, "X_pr": 0.510152293127568, "X_ac_lac": 0.815323833702724, "X_VFA_deg": 1.0, "X_li": 0.038842795204779, "X_su": 0.644594656900946, "X_aa": 2.131133467580602, "X_fa": 1.150358635420263, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_7_B_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.21333333333333335, 1.0666666666666667, 1.3866666666666667, 0.48], [0.0, 0.6054054054054054, 1.2108108108108109, 0.9081081081081082], [0.0, 0.18181818181818185, 0.0, 0.18181818181818185], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.21333333333333335, "X_chain_lac": 0.8142699578194069, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.734101838881101, "X_Me_ac": 0.01233039584145, "X_Me_CO2": 0.010813371564221, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.725526570666143, "X_lac": 0.838469168831686, "X_chain_et": 0.725526570666143, "X_ch": 0.7930974776192461, "X_pr": 0.50107171151073, "X_ac_lac": 0.8228452260343649, "X_VFA_deg": 1.0, "X_li": 0.039254621520174, "X_su": 0.640200006282, "X_aa": 2.178964733097733, "X_fa": 1.163528349665596, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_7_C_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.21333333333333335, 0.8533333333333334, 0.96, 0.48], [0.0, 0.3027027027027027, 0.9081081081081082, 0.6054054054054054], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.21333333333333335, "X_chain_lac": 0.810438008174726, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7322338200981781, "X_Me_ac": 0.012055381211624, "X_Me_CO2": 0.012003260359749, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7223428861308869, "X_lac": 0.8343746525873159, "X_chain_et": 0.7223428861308869, "X_ch": 0.8555838300040031, "X_pr": 0.492768861834666, "X_ac_lac": 0.8203289421420169, "X_VFA_deg": 1.0, "X_li": 0.03835693768345, "X_su": 0.637158513199434, "X_aa": 2.132193601128742, "X_fa": 1.177818419314315, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_9_A_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.64, 0.5333333333333333, 1.1733333333333333, 1.3333333333333335, 1.8133333333333332], [0.0, 0.15135135135135136, 0.3027027027027027, 0.4540540540540541, 0.7567567567567568], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.10196078431372549, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.64, "X_chain_lac": 0.80701408848678, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.714238038367207, "X_Me_ac": 0.013717423773585, "X_Me_CO2": 0.010124581266821, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.703291518748336, "X_lac": 0.828281501978091, "X_chain_et": 0.703291518748336, "X_ch": 0.969726987093895, "X_pr": 0.522947817213011, "X_ac_lac": 0.8179606081056511, "X_VFA_deg": 1.0, "X_li": 0.037453870560478, "X_su": 0.633061810472086, "X_aa": 2.111645231582899, "X_fa": 1.127245003602819, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_35_M_9_C_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.8533333333333334, 0.96, 0.64, 1.9733333333333332, 3.4133333333333336], [0.0, 0.15135135135135136, 1.0594594594594595, 0.5297297297297298, 0.9081081081081082], [0.0, 0.0, 0.7272727272727274, 0.0, 0.0], [0.0, 0.0, 0.20392156862745098, 0.10196078431372549, 0.20392156862745098], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.8533333333333334, "X_chain_lac": 0.8076786654627239, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.718812835877748, "X_Me_ac": 0.013446357478358002, "X_Me_CO2": 0.010323422595972, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.708401501553012, "X_lac": 0.8286750890584591, "X_chain_et": 0.708401501553012, "X_ch": 0.929321607425624, "X_pr": 0.51519479248152, "X_ac_lac": 0.81808999978746, "X_VFA_deg": 1.0, "X_li": 0.037666038752834, "X_su": 0.6399554980486439, "X_aa": 2.126018463841827, "X_fa": 1.138014226082799, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 308.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_F_5_A_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.2, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.27366528106666665, 0.2827100864, 0.2952157354666667, 0.5412782346666667, 0.4605695658666667, 0.3416304757333333, 0.6597818570666667], [0.12887416821621622, 0.1865109104864865, 0.37564804691891895, 0.30858520832432434, 0.35253627783783786, 0.3437460637837838, 0.43052674832432436], [0.010163780000000002, 0.0, 0.4909303381818182, 0.6594662290909091, 0.7026143927272728, 0.6179724309090909, 0.5439709981818183], [0.28253300094117645, 0.07982761443137255, 1.276410122509804, 1.3222893911372546, 1.4444271818039214, 1.2041363665882352, 1.341285866980392], [0.3679887183448276, 0.3847107310344828, 0.808492716137931, 1.3276125097931035, 1.4375932424827584, 0.7794441997241379, 1.256845307586207]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.28253300094117645, "S_bu": 0.010163780000000002, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.12887416821621622, "S_cap": 0.3679887183448276, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.27366528106666665, "X_chain_lac": 0.8445320669965729, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.730110127668711, "X_Me_ac": 0.00619590457975, "X_Me_CO2": 0.001630380728522, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.726935205842863, "X_lac": 0.850225523601721, "X_chain_et": 0.726935205842863, "X_ch": 0.7875568701863279, "X_pr": 0.637934387161687, "X_ac_lac": 0.847706988822421, "X_VFA_deg": 1.0, "X_li": 0.020954598503437, "X_su": 0.7523952404556911, "X_aa": 2.018037081118337, "X_fa": 1.048850418491092, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_F_7_B_Delong_BETO", "time": [0, 1.7, 4.8, 10.2, 10.7, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.7494216426666667, 1.1317258624, 0.5561501776, 0.0, 0.1020531648, 0.0, 0.0], [0.0, 0.6826576445405406, 1.0713804367567568, 1.0308285831351354, 0.0, 0.5703382447567568, 0.0956666934054054, 0.0], [0.0, 0.8206259945454546, 0.8572070054545455, 0.2952536627272727, 0.0, 0.15006083454545457, 0.1424721781818182, 0.12670541818181819], [0.0, 0.0, 0.15295759623529412, 0.0, 0.09087419058823529, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0, "X_chain_lac": 0.8061729085651349, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6920490857376981, "X_Me_ac": 0.024939383082061003, "X_Me_CO2": 0.023959820982793, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.667695876784188, "X_lac": 0.819465104756387, "X_chain_et": 0.667695876784188, "X_ch": 0.997911024275461, "X_pr": 0.5750040687928, "X_ac_lac": 0.830526117518645, "X_VFA_deg": 1.0, "X_li": 0.038305269735188996, "X_su": 0.683876515776513, "X_aa": 2.147941864478105, "X_fa": 1.024457082730829, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_F_9_B_Delong_BETO", "time": [0.0, 1.7, 4.8, 10.2, 13.7, 20.7, 26.8], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.6389495072, 1.4715518346666667, 1.6805669962666667, 1.7749397877333335, 1.8254665109333332, 1.811377808, 1.9885688693333332], [0.0, 0.07613288540540541, 0.16648771394594597, 0.239351668972973, 0.3293834668108108, 0.22654321124324325, 0.23788623372972975], [0.0, 0.6170961563636364, 0.5327378872727273, 0.4038460190909091, 0.23153508727272729, 0.36083598909090914, 0.30885119636363634], [0.0, 0.22288398039215684, 0.2044928630588235, 0.224757312, 0.05810712470588235, 0.32388875796078426, 0.25470952203921565], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.6389495072, "X_chain_lac": 0.8368625136917409, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.72148128072057, "X_Me_ac": 0.008686002284438, "X_Me_CO2": 0.0030195405103630004, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7160613120493831, "X_lac": 0.8440326985771179, "X_chain_et": 0.7160613120493831, "X_ch": 0.8268801189432871, "X_pr": 0.633817851617948, "X_ac_lac": 0.8422824823629289, "X_VFA_deg": 1.0, "X_li": 0.023212969637751, "X_su": 0.741682772706464, "X_aa": 2.042866302428952, "X_fa": 1.043052842419665, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_M_5_A_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.32, 0.4266666666666667, 0.4266666666666667, 0.5333333333333333, 0.7466666666666666], [0.0, 0.15135135135135136, 0.15135135135135136, 0.22702702702702704, 0.0], [0.0, 0.18181818181818185, 0.0, 0.09090909090909093, 0.18181818181818185], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.32, "X_chain_lac": 0.8154146557993041, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.737089498308384, "X_Me_ac": 0.011617613460972, "X_Me_CO2": 0.011320328924485, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.727252929816756, "X_lac": 0.838748829663991, "X_chain_et": 0.727252929816756, "X_ch": 0.798476980259996, "X_pr": 0.487749858224116, "X_ac_lac": 0.8252512242909329, "X_VFA_deg": 1.0, "X_li": 0.039003287478894, "X_su": 0.642713194388457, "X_aa": 2.172568260190169, "X_fa": 1.16554040937678, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_M_5_B_Delong_BETO", "time": [0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.4266666666666667, 0.5333333333333333, 0.26666666666666666, 0.64], [0.0, 0.4540540540540541, 0.3027027027027027, 0.22702702702702704, 0.6054054054054054], [0.0, 0.18181818181818185, 0.5454545454545455, 0.3636363636363637, 0.5454545454545455], [0.0, 0.0, 0.0, 0.20392156862745098, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0, "X_chain_lac": 0.8175017753451019, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.738447475438415, "X_Me_ac": 0.011891835902333, "X_Me_CO2": 0.011999405106044, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.729895119422061, "X_lac": 0.84139301635348, "X_chain_et": 0.729895119422061, "X_ch": 0.791184184039546, "X_pr": 0.492272331140069, "X_ac_lac": 0.826054131361456, "X_VFA_deg": 1.0, "X_li": 0.039282097638147995, "X_su": 0.638790047092951, "X_aa": 2.160215022377717, "X_fa": 1.171178439360611, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_M_5_C_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.4266666666666667, 0.4266666666666667, 0.5333333333333333, 0.4266666666666667], [0.0, 0.15135135135135136, 0.15135135135135136, 0.0], [0.0, 0.18181818181818185, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.4266666666666667, "X_chain_lac": 0.8147174050987729, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.734562141185017, "X_Me_ac": 0.011721401298531999, "X_Me_CO2": 0.011660486766989001, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.724497305409561, "X_lac": 0.838430709513879, "X_chain_et": 0.724497305409561, "X_ch": 0.7997391412620369, "X_pr": 0.489489042714715, "X_ac_lac": 0.824782240874229, "X_VFA_deg": 1.0, "X_li": 0.039514430652522, "X_su": 0.643550668810583, "X_aa": 2.183608374488498, "X_fa": 1.1592293465151, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_M_7_A_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.32, 0.4266666666666667, 1.7066666666666668, 0.64], [0.0, 0.15135135135135136, 0.6054054054054054, 0.4540540540540541], [0.0, 0.18181818181818185, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.32, "X_chain_lac": 0.8181200167433369, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7319000146893879, "X_Me_ac": 0.012197914304139001, "X_Me_CO2": 0.010458667030234, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.723504175821227, "X_lac": 0.841560887120681, "X_chain_et": 0.723504175821227, "X_ch": 0.846779122205945, "X_pr": 0.506834215798264, "X_ac_lac": 0.8265158556114991, "X_VFA_deg": 1.0, "X_li": 0.039593278554114, "X_su": 0.646715866088417, "X_aa": 2.122348301481496, "X_fa": 1.149967508730024, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "B_45_M_9_A_Delong_BETO", "time": [0.0, 1.5, 5.7, 11.7, 24.7], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[1.0666666666666667, 0.64, 1.28, 2.24, 4.8], [0.0, 0.0, 0.3027027027027027, 0.3027027027027027, 0.4540540540540541], [0.0, 0.0, 0.0, 0.0, 0.18181818181818185], [0.0, 0.0, 0.20392156862745098, 0.20392156862745098, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 1.0666666666666667, "X_chain_lac": 0.80531975951231, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7324822540968929, "X_Me_ac": 0.01124629252259, "X_Me_CO2": 0.010934265792958, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.723107134525732, "X_lac": 0.8280088424030501, "X_chain_et": 0.723107134525732, "X_ch": 0.893959542673482, "X_pr": 0.512480698900377, "X_ac_lac": 0.81469487908347, "X_VFA_deg": 1.0, "X_li": 0.038369413481084996, "X_su": 0.638296097073885, "X_aa": 2.135893565312699, "X_fa": 1.132100120095731, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 318.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_5_A_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 23.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.3881006869333333, 0.10705396586666667, 0.0, 0.0660816064, 0.23561092693333333], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.9977910654545455, 0.0, 1.1034563727272728, 1.783417292727273, 1.8714991581818181], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.8162735428731229, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.702198722822399, "X_Me_ac": 0.010006123136113, "X_Me_CO2": 0.0031978906276809997, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.697336628546354, "X_lac": 0.826141717786082, "X_chain_et": 0.697336628546354, "X_ch": 0.946889608954873, "X_pr": 0.608316828703189, "X_ac_lac": 0.821135637149168, "X_VFA_deg": 1.0, "X_li": 0.036024458545095, "X_su": 0.6995224343987689, "X_aa": 2.06786894658696, "X_fa": 1.067750831323833, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_5_B_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 13.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.1386074944, 0.2701554304, 0.08679618986666666, 0.17656539093333334, 0.09721252586666668], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.40398190000000006, 0.44544912727272734, 1.2076917400000002, 1.41840154, 1.7203393727272729, 1.644629661818182], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.40398190000000006, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.812965701014351, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7009720958475061, "X_Me_ac": 0.009747865887627, "X_Me_CO2": 0.004446037086962, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6949762112245481, "X_lac": 0.8238350328877541, "X_chain_et": 0.6949762112245481, "X_ch": 0.9519186879362811, "X_pr": 0.598550535569219, "X_ac_lac": 0.8189615856373079, "X_VFA_deg": 1.0, "X_li": 0.037609180226335, "X_su": 0.687009382915891, "X_aa": 2.094538076951509, "X_fa": 1.069493395590156, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_5_C_Delong_BETO", "time": [0.0, 2.666666667, 5.5625, 8.75, 13.375, 23.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.20799173546666666, 0.08684504746666667, 0.3447672704, 0.19275754879999998, 0.20216329600000002], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.421376001818182, 1.6428357672727274, 1.7523680454545456, 1.7922206581818185, 1.7040572672727274], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.812940513050481, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.699039048571589, "X_Me_ac": 0.010315552834693001, "X_Me_CO2": 0.0033774591681710003, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6937909966333521, "X_lac": 0.824105810468433, "X_chain_et": 0.6937909966333521, "X_ch": 0.9524776011736651, "X_pr": 0.6023350708221951, "X_ac_lac": 0.8181885649887171, "X_VFA_deg": 1.0, "X_li": 0.038804302825245, "X_su": 0.684176653658594, "X_aa": 2.086367010721372, "X_fa": 1.080290418450133, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_7_A_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 13.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.07257748373333334, 1.4465205216, 0.9416062879999999, 0.1073063392, 0.07046814613333334], [0.0, 0.0, 0.0, 0.3663702787027027, 0.0, 0.0], [0.0, 0.35215066000000006, 1.1755268090909092, 1.2441600490909093, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.8178990007202851, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7426813186208139, "X_Me_ac": 0.008699774052426, "X_Me_CO2": 0.010764295332167, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7343807244844219, "X_lac": 0.8391215264591401, "X_chain_et": 0.7343807244844219, "X_ch": 0.82921571085512, "X_pr": 0.5566806837790019, "X_ac_lac": 0.8261995948566759, "X_VFA_deg": 1.0, "X_li": 0.047608480127935, "X_su": 0.600412543941419, "X_aa": 2.068514495868455, "X_fa": 1.183441126417708, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_7_B_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 13.375, 23.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.25749326186666666, 0.7616440416, 0.2848528490666667, 0.1990996352, 0.0914774176, 0.08723616853333334], [0.0, 0.0, 0.0, 0.12098054594594597, 0.26005449967567573, 0.2075366023783784, 0.0], [0.0, 0.9290309327272729, 1.1207661563636364, 1.0051536854545455, 0.2499751981818182, 0.0, 0.17696807454545457], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.8114979975386539, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7332842036124649, "X_Me_ac": 0.008939962715883, "X_Me_CO2": 0.010202567891954999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.725225507757949, "X_lac": 0.8324476692041891, "X_chain_et": 0.725225507757949, "X_ch": 0.847326391380296, "X_pr": 0.5630054942636871, "X_ac_lac": 0.8195566933931691, "X_VFA_deg": 1.0, "X_li": 0.049056100632405994, "X_su": 0.598649202858764, "X_aa": 2.10377194728479, "X_fa": 1.171810753707835, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_9_A_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 13.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.34554307413333335, 0.2602004117333333, 0.49534462186666667, 0.3091966101333333, 1.4651002282666667], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.0, "X_chain_lac": 0.813179494153899, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.727272164300701, "X_Me_ac": 0.009486728226790999, "X_Me_CO2": 0.008612208924605999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.719528123199008, "X_lac": 0.832187089808567, "X_chain_et": 0.719528123199008, "X_ch": 0.880773921397744, "X_pr": 0.566397530671889, "X_ac_lac": 0.820923535255592, "X_VFA_deg": 1.0, "X_li": 0.046205820797299, "X_su": 0.619196186952934, "X_aa": 2.08229913387259, "X_fa": 1.154409939239367, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_F_9_B_Delong_BETO", "time": [0.0, 0.75, 2.666666667, 5.5625, 8.75, 13.375, 23.375], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.17225553173333333, 0.17818279466666667, 0.39292031146666667, 0.8849340170666666, 0.5277898261333334, 0.5833291797333333, 0.6783268352], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.21842264181818183, 0.17820558, 0.1732011272727273, 0.27331663272727275, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "foodwaste", "carbohydrates": 50.1, "lipids": 21, "proteins": 20.5, "tss": 65, "si": 50, "xi": 60, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 9.75, "TDS": 5.25, "S_ac": 0.17225553173333333, "X_chain_lac": 0.8134862819151629, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.6998744360167051, "X_Me_ac": 0.010375715164137999, "X_Me_CO2": 0.0031554135999090002, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.6950336687923531, "X_lac": 0.8247308790850739, "X_chain_et": 0.6950336687923531, "X_ch": 0.96182257840504, "X_pr": 0.600668252988638, "X_ac_lac": 0.818327049139516, "X_VFA_deg": 1.0, "X_li": 0.038101837595522, "X_su": 0.686802155053458, "X_aa": 2.072067262463151, "X_fa": 1.080520800988973, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_5_A_Delong_BETO", "time": [0.0, 3.541666667], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 0.1055963456], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0], [0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.0, "X_chain_lac": 0.812307948544245, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.732116991851965, "X_Me_ac": 0.011446360332508, "X_Me_CO2": 0.01141267530251, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.721345267814702, "X_lac": 0.8355384552045241, "X_chain_et": 0.721345267814702, "X_ch": 0.800333856075094, "X_pr": 0.48934243078662004, "X_ac_lac": 0.823079672581508, "X_VFA_deg": 1.0, "X_li": 0.039210310613404, "X_su": 0.649139534622596, "X_aa": 2.193850797773793, "X_fa": 1.159530430681822, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_5_B_Delong_BETO", "time": [0.0, 1.5, 3.541666667, 6.416666667, 10.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.19838171733333332, 0.15296761386666666, 0.27440953386666667, 0.27274418986666665, 0.14858431146666667, 0.32951243199999997], [0.0, 0.0, 0.0, 0.0, 0.0, 0.19016368756756757], [0.0, 0.0, 0.23697960727272732, 0.2887300963636364, 0.0, 0.20801232181818183], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.19838171733333332, "X_chain_lac": 0.814471484969916, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.733877243613069, "X_Me_ac": 0.01176763657998, "X_Me_CO2": 0.011848444384821001, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.724039855371345, "X_lac": 0.8376234020557211, "X_chain_et": 0.724039855371345, "X_ch": 0.814154025736612, "X_pr": 0.491296061470881, "X_ac_lac": 0.82430887321164, "X_VFA_deg": 1.0, "X_li": 0.03913935647454, "X_su": 0.6463465180085239, "X_aa": 2.1677679696235748, "X_fa": 1.159319273128023, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_5_C_Delong_BETO", "time": [0.0, 3.541666667, 6.416666667, 10.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.07001943146666667, 0.16408602133333333, 0.2709644256, 0.15026174933333333, 0.31255498986666663], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.07001943146666667, "X_chain_lac": 0.8126407456272811, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.733111849390919, "X_Me_ac": 0.0116596989302, "X_Me_CO2": 0.011799230281482, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7230510207866391, "X_lac": 0.8358179628069471, "X_chain_et": 0.7230510207866391, "X_ch": 0.808551064059019, "X_pr": 0.493717115198143, "X_ac_lac": 0.822701574231562, "X_VFA_deg": 1.0, "X_li": 0.038743793945752, "X_su": 0.645060501853647, "X_aa": 2.180031209100976, "X_fa": 1.160063213000789, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-05, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_7_A_Delong_BETO", "time": [0.0, 1.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.28432440853333335, 0.5692218261333333, 0.0], [0.0, 0.16163095200000002, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.28432440853333335, "X_chain_lac": 0.8198858412793699, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.755739148474121, "X_Me_ac": 0.010006898265092, "X_Me_CO2": 0.013943134082347, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.746596503828096, "X_lac": 0.846981945966533, "X_chain_et": 0.746596503828096, "X_ch": 0.727151782640332, "X_pr": 0.501763660645713, "X_ac_lac": 0.829028485925395, "X_VFA_deg": 1.0, "X_li": 0.044460784561001006, "X_su": 0.6022523560665001, "X_aa": 2.1592767793299212, "X_fa": 1.1963161751074771, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_7_B_Delong_BETO", "time": [0.0, 1.5, 3.541666667, 10.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.12536209493333333, 0.45070357440000003, 0.09750317973333332, 0.0, 0.08639867733333334], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.12536209493333333, "X_chain_lac": 0.818228363063636, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.758041379258728, "X_Me_ac": 0.009732398294132999, "X_Me_CO2": 0.013942803745773, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.7475345328775119, "X_lac": 0.84440124004792, "X_chain_et": 0.7475345328775119, "X_ch": 0.724907596751589, "X_pr": 0.48913310599456095, "X_ac_lac": 0.828735209444853, "X_VFA_deg": 1.0, "X_li": 0.043279189356847, "X_su": 0.607128509414701, "X_aa": 2.1625744060012817, "X_fa": 1.2048267328709499, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_7_C_Delong_BETO", "time": [0, 1.5, 6.416666667], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0, 1.1197526805333333, 0.08905229546666667], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0, "S_bu": 0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0, "S_cap": 0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0, "X_chain_lac": 0.822654058656304, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7552688244968541, "X_Me_ac": 0.010683430360223999, "X_Me_CO2": 0.014007976917008, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.746492021586945, "X_lac": 0.849124098341417, "X_chain_et": 0.746492021586945, "X_ch": 0.749398229368667, "X_pr": 0.499393436480714, "X_ac_lac": 0.831430861566213, "X_VFA_deg": 1.0, "X_li": 0.044075730067653, "X_su": 0.609123420133919, "X_aa": 2.125521136525053, "X_fa": 1.1963347539120759, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-07, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_9_B_Delong_BETO", "time": [0.0, 1.5, 3.541666667, 6.416666667, 10.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.0989964416, 0.17399684053333334, 0.214769984, 0.5084216394666666, 0.4474682794666667, 0.8440842272], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.32030442727272734, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.0989964416, "X_chain_lac": 0.8155307227306601, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.7301376738287451, "X_Me_ac": 0.012166200462968, "X_Me_CO2": 0.010748169877804999, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.722251917902052, "X_lac": 0.838389250274053, "X_chain_et": 0.722251917902052, "X_ch": 0.8300636538870949, "X_pr": 0.5105267751468421, "X_ac_lac": 0.823416478657353, "X_VFA_deg": 1.0, "X_li": 0.03961701378193899, "X_su": 0.650319492957439, "X_aa": 2.149682288992501, "X_fa": 1.144898443598492, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "T_55_M_9_C_Delong_BETO", "time": [0.0, 1.5, 3.541666667, 6.416666667, 10.5, 14.5], "variables": ["S_ac", "S_pro", "S_bu", "S_va", "S_cap"], "data": [[0.21703890879999999, 0.2714377248, 0.5284301205333334, 0.9555559637333333, 0.7643989013333333, 0.8699431573333333], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], "feed": {"name": "Manure", "carbohydrates": 59.3, "lipids": 10.7, "proteins": 30, "tss": 95, "si": 50, "xi": 80, "reference": ""}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.0, "S_bu": 0.0, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.0, "S_cap": 0.0, "TSS": 14.25, "TDS": 0.75, "S_ac": 0.21703890879999999, "X_chain_lac": 0.818351247416455, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.734551145758915, "X_Me_ac": 0.011796698995641, "X_Me_CO2": 0.011069209077183, "S_cap_ion": 0.001, "S_lac_ion": 0.0, "X_et": 0.72648993404326, "X_lac": 0.842827487354395, "X_chain_et": 0.72648993404326, "X_ch": 0.794379273123445, "X_pr": 0.502965514363526, "X_ac_lac": 0.8264124591321099, "X_VFA_deg": 1.0, "X_li": 0.040400074206988004, "X_su": 0.6409598442658759, "X_aa": 2.164792303387931, "X_fa": 1.158514874831011, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 1e-09, "S_va_ion": 0, "S_bu_ion": 0.0, "S_pro_ion": 0.0, "S_ac_ion": 0, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {"R": 0.083145, "T_base": 298.15, "P_atm": 1.013, "T_op": 328.15, "V_liq": 0.00025, "V_gas": 0.0001, "pH_UL_ac": 7, "pH_LL_ac": 6, "pH_UL_aa": 5.5, "pH_LL_aa": 4, "pH_UL_h2": 6, "pH_LL_h2": 5, "pH_UL_pro": 5.5, "pH_LL_pro": 4, "pH_UL_bu": 5.5, "pH_LL_bu": 4, "pH_UL_va": 5.5, "pH_LL_va": 4, "q_in": 0, "K_W": 1e-14}, "constants": ["S_H_ion"], "reference": "Delong_Lab_BETO_Experiment", "model_name": "e_adm"}, {"name": "fw_twas_rep_1", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.024213333333333333, 0.40282666666666667, 1.9601066666666667, 2.566154666666667, 0.09518933333333333, 0.468896], [0.0045556756756756755, 0.5898162162162163, 1.6846162162162162, 2.2168281081081083, 2.626596756756757, 2.685926486486487], [0.031418181818181824, 0.1431636363636364, 1.6581272727272727, 2.1375454545454544, 2.4280909090909093, 1.9475090909090913], [0.004098823529411763, 0.08438274509803921, 1.8707764705882353, 3.1536266666666664, 4.099659607843137, 4.225479215686274], [0.0, 0.01595586206896552, 0.18220137931034483, 0.23421793103448277, 0.27147034482758625, 0.2759062068965517]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0, "S_aa": 0, "S_fa": 0, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.25736217483886864, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.20501732571909873, "X_Me_ac": 0.0038266069840550343, "X_Me_CO2": 0.00020896147353201557, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.2016217017742035, "X_lac": 0.258655123956348, "X_chain_et": 0.2016217017742035, "X_ch": 0.13920752164860958, "X_pr": 0.21414633009402864, "X_ac_lac": 0.26075779878376387, "X_VFA_deg": 0.2954545454545455, "X_li": 0.0028732202610652134, "X_su": 0.24462858504551147, "X_aa": 0.5636996950368033, "X_fa": 0.40091870715536326, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}, {"name": "fw_twas_rep_2", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.026784000000000002, 0.29739733333333335, 1.7407040000000003, 2.4199360000000003, 0.10076800000000001, 0.7484693333333334], [0.004252972972972973, 0.4359675675675676, 1.5395913513513515, 2.17728, 2.316614054054054, 2.6606810810810813], [0.04127272727272727, 0.10300000000000001, 1.4893818181818186, 2.0695636363636365, 2.115618181818182, 1.3163636363636366], [0.004098823529411763, 0.05693490196078431, 1.7503403921568625, 3.243821176470588, 3.6614933333333326, 4.257454117647058], [0.0, 0.007084137931034483, 0.1706593103448276, 0.22843586206896555, 0.23510068965517242, 0.26083310344827587]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.2470846105395759, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.22694184337602352, "X_Me_ac": 0.007172790258240605, "X_Me_CO2": 0.0009061515851354189, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.210773042200294, "X_lac": 0.24731387780810413, "X_chain_et": 0.210773042200294, "X_ch": 0.20051060256141084, "X_pr": 0.15974469871929456, "X_ac_lac": 0.2632534117153055, "X_VFA_deg": 0.2954545454545455, "X_li": 0.00557883686752047, "X_su": 0.2312214990552173, "X_aa": 0.5529598992231788, "X_fa": 0.3903111484358598, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}, {"name": "fw_twas_as_rep_1", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.025930666666666668, 0.7563626666666667, 1.8870506666666667, 1.8178986666666668, 0.08490666666666666, 0.4592426666666667], [0.0018313513513513514, 0.8579654054054054, 1.340761081081081, 1.7741859459459461, 2.177582702702703, 3.2499372972972975], [0.032872727272727276, 0.27392727272727274, 1.2063454545454546, 1.767345454545455, 0.8310545454545456, 0.5149272727272728], [0.003690980392156862, 0.17000941176470585, 1.0826399999999998, 2.1039403921568622, 2.6580768627450975, 2.3986478431372547], [0.0, 0.07004689655172414, 0.11480275862068966, 0.1818703448275862, 0.20093793103448276, 0.22002758620689652]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.312174257823643, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.25440407907696894, "X_Me_ac": 0.005540196023904654, "X_Me_CO2": 0.0015501066595380898, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.2486844725600622, "X_lac": 0.31312872164641414, "X_chain_et": 0.2486844725600622, "X_ch": 0.18621373889673315, "X_pr": 0.2624057870648623, "X_ac_lac": 0.3178938643405498, "X_VFA_deg": 0.3636363636363637, "X_li": 0.0063367786128339515, "X_su": 0.29224534026097054, "X_aa": 0.6642063507726313, "X_fa": 0.5228954700644621, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}, {"name": "fw_twas_as_rep_2", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.013930666666666668, 0.840992, 2.3025066666666665, 2.143146666666667, 0.7666986666666666, 0.305952], [0.003647567567567568, 0.9847372972972973, 1.6447805405405407, 2.031558918918919, 2.5663740540540543, 3.0899286486486486], [0.03541818181818182, 0.3214000000000001, 1.4262181818181818, 1.9288727272727277, 1.0667636363636366, 0.49263636363636365], [0.004098823529411763, 0.20031215686274506, 1.3255513725490193, 2.28428862745098, 3.109375686274509, 2.161711372549019], [0.0, 0.08291310344827586, 0.1458537931034483, 0.1965241379310345, 0.23909517241379313, 0.20449103448275863]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.30161046614903625, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.24299959969034615, "X_Me_ac": 0.0053644530088255375, "X_Me_CO2": 0.0009109448505552796, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.23440972713659156, "X_lac": 0.3029937527739535, "X_chain_et": 0.23440972713659156, "X_ch": 0.21206796120926913, "X_pr": 0.2755709389024228, "X_ac_lac": 0.31020033870279085, "X_VFA_deg": 0.36363636363636354, "X_li": 0.006322632036817016, "X_su": 0.2931960348257589, "X_aa": 0.6973181614906161, "X_fa": 0.518988898450061, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}, {"name": "fw_as_rep_1", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.04477866666666667, 0.44181333333333334, 1.3035946666666667, 2.0372266666666667, 0.34304000000000007, 1.594496], [0.00668972972972973, 0.12009729729729729, 0.5350875675675676, 0.9114378378378379, 1.439548108108108, 1.4465556756756757], [0.043090909090909096, 0.7976545454545455, 1.5796000000000001, 2.138654545454546, 3.276672727272728, 1.2794545454545456], [0.006138039215686273, 0.041783529411764705, 0.2801882352941176, 1.0050478431372547, 2.24246431372549, 2.3236250980392152], [0.0, 0.018604137931034482, 0.04744827586206897, 0.1911834482758621, 0.2989903448275862, 0.30430896551724135]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.05664970658028151, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.054510771503043925, "X_Me_ac": 0.0017695429801345209, "X_Me_CO2": 0.000557406038742374, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.04955162730121691, "X_lac": 0.05702131060610976, "X_chain_et": 0.04955162730121691, "X_ch": 0.05110661319501013, "X_pr": 0.038770686694747356, "X_ac_lac": 0.06160885078210851, "X_VFA_deg": 0.06818181818181819, "X_li": 0.0006989694771531356, "X_su": 0.05494652146190203, "X_aa": 0.12680544995643978, "X_fa": 0.07826909794007503, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}, {"name": "fw_as_rep_2", "time": [0, 1, 5, 11, 18, 24], "variables": [9, 5, 4, 3, 8], "data": [[0.053568000000000005, 0.3985386666666667, 1.334026666666667, 2.0749653333333336, 0.07911466666666667, 1.105664], [0.008505945945945946, 0.10823135135135137, 0.5806897297297298, 0.9896108108108109, 1.495532972972973, 1.549989189189189], [0.048945454545454556, 0.7563818181818184, 1.6785818181818184, 2.088218181818182, 2.7580727272727277, 0.7908363636363638], [0.006953725490196077, 0.035645490196078426, 0.25847058823529406, 0.8726415686274509, 1.027581176470588, 1.721505882352941], [0.0, 0.01728, 0.04700689655172413, 0.16324413793103448, 0.23688827586206898, 0.23777103448275863]], "feed": {"name": "Foodwaste_for_16s_analysis", "carbohydrates": 50.1, "lipids": 21.5, "proteins": 20.5, "tss": 30, "si": 47, "xi": 22.5, "reference": "https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034"}, "initial_concentrations": {"S_su": 0.1, "S_aa": 0.01, "S_fa": 0.01, "S_va": 0.001, "S_bu": 0.001, "S_et": 0.0, "S_lac": 0.0, "S_pro": 0.001, "S_cap": 0.0, "TSS": 5.4, "TDS": 12.6, "S_ac": 0.001, "X_chain_lac": 0.05516598740113875, "S_h2": 1e-08, "S_ch4": 1e-05, "S_IC": 0.04, "S_IN": 0.01, "S_I": 0.02, "X_ac_et": 0.051272108578647696, "X_Me_ac": 0.002176786425073118, "X_Me_CO2": 0.0005137756779675683, "S_cap_ion": 0.0, "S_lac_ion": 0.0, "X_et": 0.045447514840004845, "X_lac": 0.05540665074502882, "X_chain_et": 0.045447514840004845, "X_ch": 0.0575347636848208, "X_pr": 0.041356237993873626, "X_ac_lac": 0.06099058113978159, "X_VFA_deg": 0.06818181818181819, "X_li": 0.0015818882716369868, "X_su": 0.05455756883512451, "X_aa": 0.13239458404721113, "X_fa": 0.07797221933786755, "X_I": 25.0, "S_cation": 0.04, "S_anion": 0.02, "S_H_ion": 3.423e-08, "S_va_ion": 0.0009776043775428294, "S_bu_ion": 0.0009795346210617803, "S_pro_ion": 0.0009765736302784177, "S_ac_ion": 0.0009821282046277382, "S_hco3_ion": 0, "S_nh3": 0.0, "S_gas_h2": 0, "S_gas_ch4": 0, "S_gas_co2": 0.0, "S_nh4_ion": 0, "S_co2": 0}, "base_parameters": {}, "constants": [], "reference": "https://doi.org/10.1021/acssuschemeng.2c04080", "model_name": "e_adm"}] \ No newline at end of file diff --git a/Examples/Studies/metagenomics_studies.tsv b/Examples/Studies/metagenomics_studies.tsv new file mode 100644 index 0000000..b6d4291 --- /dev/null +++ b/Examples/Studies/metagenomics_studies.tsv @@ -0,0 +1,5751 @@ +Name Type Microbiome Sample_accession Comments Study_accession +Muegge_mammals_animals_illumina amplicon kangaroo ERR3861428 Found this study from SRA and I was not able to find the paper PRJEB36536 +Muegge_mammals_animals_illumina amplicon kangaroo ERR3861429 Found this study from SRA and I was not able to find the paper PRJEB36536 +gut microbiome of farm animals amplicon cow SRR20217702 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon sheep SRR20217712 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon rabbit SRR20217714 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217721 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon pig SRR20217749 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon compost SRR20217780 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217786 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217787 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217788 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217817 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR20217827 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon camel SRR20217833 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon deer SRR20218138 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218139 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218140 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218141 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218142 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218143 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218145 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218146 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218147 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218148 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218149 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218150 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218151 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218152 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218153 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218154 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218156 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218157 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218158 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon yak SRR20218159 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214158 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214159 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214163 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214164 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214166 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214168 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22214172 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22727855 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22727856 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22727859 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22727860 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +gut microbiome of farm animals amplicon cow SRR22727861 Could not find the paper for this study. This is an immense study that includes a lot of farm animals PRJNA785979 +not implemented amplicon Unknown ERR227180 not implemented PRJEB1400 + amplicon Unknown ERR227181 PRJEB1400 + amplicon Unknown ERR227182 PRJEB1400 + amplicon Unknown ERR227183 PRJEB1400 + amplicon Unknown ERR227184 PRJEB1400 + amplicon Unknown ERR227185 PRJEB1400 + amplicon Unknown ERR227186 PRJEB1400 + amplicon Unknown ERR227187 PRJEB1400 + amplicon Unknown ERR227188 PRJEB1400 + amplicon Unknown ERR227189 PRJEB1400 + amplicon Unknown ERR227190 PRJEB1400 + amplicon Unknown ERR227191 PRJEB1400 + amplicon Unknown ERR227192 PRJEB1400 + amplicon Unknown ERR227193 PRJEB1400 + amplicon Unknown ERR227194 PRJEB1400 + amplicon Unknown ERR227195 PRJEB1400 + amplicon Unknown ERR227196 PRJEB1400 + amplicon Unknown ERR227197 PRJEB1400 + amplicon Unknown ERR227198 PRJEB1400 + amplicon Unknown ERR227199 PRJEB1400 + amplicon Unknown ERR227200 PRJEB1400 + amplicon Unknown ERR227201 PRJEB1400 + amplicon Unknown ERR227202 PRJEB1400 + amplicon Unknown ERR227203 PRJEB1400 + amplicon Unknown ERR227204 PRJEB1400 + amplicon Unknown ERR227205 PRJEB1400 + amplicon Unknown ERR227206 PRJEB1400 + amplicon Unknown ERR227207 PRJEB1400 + amplicon Unknown ERR227208 PRJEB1400 + amplicon Unknown ERR227209 PRJEB1400 + amplicon Unknown ERR227210 PRJEB1400 + amplicon Unknown ERR227211 PRJEB1400 + amplicon Unknown ERR227212 PRJEB1400 + amplicon Unknown ERR227213 PRJEB1400 + amplicon Unknown ERR227214 PRJEB1400 + amplicon Unknown ERR227215 PRJEB1400 + amplicon Unknown ERR227216 PRJEB1400 + amplicon Unknown ERR227217 PRJEB1400 + amplicon Unknown ERR227218 PRJEB1400 + amplicon Unknown ERR227219 PRJEB1400 + amplicon Unknown ERR227220 PRJEB1400 + amplicon Unknown ERR227221 PRJEB1400 + amplicon Unknown ERR227222 PRJEB1400 + amplicon Unknown ERR227223 PRJEB1400 + amplicon Unknown ERR227224 PRJEB1400 + amplicon Unknown ERR227225 PRJEB1400 + amplicon Unknown ERR227226 PRJEB1400 + amplicon Unknown ERR227227 PRJEB1400 + amplicon Unknown ERR227228 PRJEB1400 + amplicon Unknown ERR227229 PRJEB1400 + amplicon Unknown ERR227230 PRJEB1400 + amplicon Unknown ERR227231 PRJEB1400 + amplicon Unknown ERR227232 PRJEB1400 + amplicon Unknown ERR227233 PRJEB1400 + amplicon Unknown ERR227234 PRJEB1400 + amplicon Unknown ERR227235 PRJEB1400 + amplicon Unknown ERR227236 PRJEB1400 + amplicon Unknown ERR227237 PRJEB1400 + amplicon Unknown ERR227238 PRJEB1400 + amplicon Unknown ERR227239 PRJEB1400 + amplicon Unknown ERR227240 PRJEB1400 + amplicon Unknown ERR227241 PRJEB1400 + amplicon Unknown ERR227242 PRJEB1400 + amplicon Unknown ERR227243 PRJEB1400 + amplicon Unknown ERR227244 PRJEB1400 + amplicon Unknown ERR227245 PRJEB1400 + amplicon Unknown ERR227246 PRJEB1400 + amplicon Unknown ERR227247 PRJEB1400 + amplicon Unknown ERR227248 PRJEB1400 + amplicon Unknown ERR227249 PRJEB1400 + amplicon Unknown ERR227250 PRJEB1400 + amplicon Unknown ERR227251 PRJEB1400 + amplicon Unknown ERR227252 PRJEB1400 + amplicon Unknown ERR227253 PRJEB1400 + amplicon Unknown ERR227254 PRJEB1400 + amplicon Unknown ERR227255 PRJEB1400 + amplicon Unknown ERR227256 PRJEB1400 + amplicon Unknown ERR227257 PRJEB1400 + amplicon Unknown ERR227258 PRJEB1400 + amplicon Unknown ERR227259 PRJEB1400 + amplicon Unknown ERR227260 PRJEB1400 + amplicon Unknown ERR227261 PRJEB1400 + amplicon Unknown ERR227262 PRJEB1400 + amplicon Unknown ERR227263 PRJEB1400 + amplicon Unknown ERR227264 PRJEB1400 + amplicon Unknown ERR227265 PRJEB1400 + amplicon Unknown ERR227266 PRJEB1400 + amplicon Unknown ERR227267 PRJEB1400 + amplicon Unknown ERR227268 PRJEB1400 + amplicon Unknown ERR227269 PRJEB1400 + amplicon Unknown ERR227270 PRJEB1400 + amplicon Unknown ERR227271 PRJEB1400 + amplicon Unknown ERR227272 PRJEB1400 + amplicon Unknown ERR227273 PRJEB1400 + amplicon Unknown ERR227274 PRJEB1400 + amplicon Unknown ERR227275 PRJEB1400 + amplicon Unknown ERR227276 PRJEB1400 + amplicon Unknown ERR227277 PRJEB1400 + amplicon Unknown ERR227278 PRJEB1400 + amplicon Unknown ERR227279 PRJEB1400 + amplicon Unknown ERR227280 PRJEB1400 + amplicon Unknown ERR227281 PRJEB1400 + amplicon Unknown ERR227282 PRJEB1400 + amplicon Unknown ERR227283 PRJEB1400 + amplicon Unknown ERR227284 PRJEB1400 + amplicon Unknown ERR227285 PRJEB1400 + amplicon Unknown ERR227286 PRJEB1400 + amplicon Unknown ERR227287 PRJEB1400 + amplicon Unknown ERR227288 PRJEB1400 + amplicon Unknown ERR227289 PRJEB1400 + amplicon Unknown ERR227290 PRJEB1400 + amplicon Unknown ERR227291 PRJEB1400 + amplicon Unknown ERR227292 PRJEB1400 + amplicon Unknown ERR227293 PRJEB1400 + amplicon Unknown ERR227294 PRJEB1400 + amplicon Unknown ERR227295 PRJEB1400 + amplicon Unknown ERR227296 PRJEB1400 + amplicon Unknown ERR227297 PRJEB1400 + amplicon Unknown ERR227298 PRJEB1400 + amplicon Unknown ERR227299 PRJEB1400 + amplicon Unknown ERR227300 PRJEB1400 + amplicon Unknown ERR227301 PRJEB1400 + amplicon Unknown ERR227302 PRJEB1400 + amplicon Unknown ERR227303 PRJEB1400 + amplicon Unknown ERR227304 PRJEB1400 + amplicon Unknown ERR227305 PRJEB1400 + amplicon Unknown ERR227306 PRJEB1400 + amplicon Unknown ERR227307 PRJEB1400 + amplicon Unknown ERR227308 PRJEB1400 + amplicon Unknown ERR227309 PRJEB1400 + amplicon Unknown ERR227310 PRJEB1400 + amplicon Unknown ERR227311 PRJEB1400 + amplicon Unknown ERR227312 PRJEB1400 + amplicon Unknown ERR227313 PRJEB1400 + amplicon Unknown ERR227314 PRJEB1400 + amplicon Unknown ERR227315 PRJEB1400 + amplicon Unknown ERR227316 PRJEB1400 + amplicon Unknown ERR227317 PRJEB1400 + amplicon Unknown ERR227318 PRJEB1400 + amplicon Unknown ERR227319 PRJEB1400 + amplicon Unknown ERR227320 PRJEB1400 + amplicon Unknown ERR227321 PRJEB1400 + amplicon Unknown ERR227322 PRJEB1400 + amplicon Unknown ERR227323 PRJEB1400 + amplicon Unknown ERR227324 PRJEB1400 + amplicon Unknown ERR227325 PRJEB1400 + amplicon Unknown ERR227326 PRJEB1400 + amplicon Unknown ERR227327 PRJEB1400 + amplicon Unknown ERR227328 PRJEB1400 + amplicon Unknown ERR227329 PRJEB1400 + amplicon Unknown ERR227330 PRJEB1400 + amplicon Unknown ERR227331 PRJEB1400 + amplicon Unknown ERR227332 PRJEB1400 + amplicon Unknown ERR227333 PRJEB1400 + amplicon Unknown ERR227334 PRJEB1400 + amplicon Unknown ERR227335 PRJEB1400 + amplicon Unknown ERR227336 PRJEB1400 + amplicon Unknown ERR227337 PRJEB1400 + amplicon Unknown ERR227338 PRJEB1400 + amplicon Unknown ERR227339 PRJEB1400 + amplicon Unknown ERR227340 PRJEB1400 + amplicon Unknown ERR227341 PRJEB1400 + amplicon Unknown ERR227342 PRJEB1400 + amplicon Unknown ERR227343 PRJEB1400 + amplicon Unknown ERR227344 PRJEB1400 + amplicon Unknown ERR227345 PRJEB1400 + amplicon Unknown ERR227346 PRJEB1400 + amplicon Unknown ERR227347 PRJEB1400 + amplicon Unknown ERR227348 PRJEB1400 + amplicon Unknown ERR227349 PRJEB1400 + amplicon Unknown ERR227350 PRJEB1400 + amplicon Unknown ERR227351 PRJEB1400 + amplicon Unknown ERR227352 PRJEB1400 + amplicon Unknown ERR227353 PRJEB1400 + amplicon Unknown ERR227354 PRJEB1400 + amplicon Unknown ERR227355 PRJEB1400 + amplicon Unknown ERR227356 PRJEB1400 + amplicon Unknown ERR227357 PRJEB1400 + amplicon Unknown ERR227358 PRJEB1400 + amplicon Unknown ERR227359 PRJEB1400 + amplicon Unknown ERR227360 PRJEB1400 + amplicon Unknown ERR227361 PRJEB1400 + amplicon Unknown ERR227362 PRJEB1400 + amplicon Unknown ERR227363 PRJEB1400 + amplicon Unknown ERR227364 PRJEB1400 + amplicon Unknown ERR227365 PRJEB1400 + amplicon Unknown ERR227366 PRJEB1400 + amplicon Unknown ERR227367 PRJEB1400 + amplicon Unknown ERR227368 PRJEB1400 + amplicon Unknown ERR227369 PRJEB1400 + amplicon Unknown ERR227370 PRJEB1400 + amplicon Unknown ERR227371 PRJEB1400 + amplicon Unknown ERR227372 PRJEB1400 + amplicon Unknown ERR227373 PRJEB1400 + amplicon Unknown ERR227374 PRJEB1400 + amplicon Unknown ERR227375 PRJEB1400 + amplicon Unknown ERR227376 PRJEB1400 + amplicon Unknown ERR227377 PRJEB1400 + amplicon Unknown ERR227378 PRJEB1400 + amplicon Unknown ERR227379 PRJEB1400 + amplicon Unknown ERR227380 PRJEB1400 + amplicon Unknown ERR227381 PRJEB1400 + amplicon Unknown ERR227382 PRJEB1400 + amplicon Unknown ERR227383 PRJEB1400 + amplicon Unknown ERR227384 PRJEB1400 + amplicon Unknown ERR227385 PRJEB1400 + amplicon Unknown ERR227386 PRJEB1400 + amplicon Unknown ERR227387 PRJEB1400 + amplicon Unknown ERR227388 PRJEB1400 + amplicon Unknown ERR227389 PRJEB1400 + amplicon Unknown ERR227390 PRJEB1400 + amplicon Unknown ERR227391 PRJEB1400 + amplicon Unknown ERR227392 PRJEB1400 + amplicon Unknown ERR227393 PRJEB1400 + amplicon Unknown ERR227394 PRJEB1400 + amplicon Unknown ERR227395 PRJEB1400 + amplicon Unknown ERR227396 PRJEB1400 + amplicon Unknown ERR227397 PRJEB1400 + amplicon Unknown ERR227398 PRJEB1400 + amplicon Unknown ERR227399 PRJEB1400 + amplicon Unknown ERR227400 PRJEB1400 + amplicon Unknown ERR227401 PRJEB1400 + amplicon Unknown ERR227402 PRJEB1400 + amplicon Unknown ERR227403 PRJEB1400 + amplicon Unknown ERR227404 PRJEB1400 + amplicon Unknown ERR227405 PRJEB1400 + amplicon Unknown ERR227406 PRJEB1400 + amplicon Unknown ERR227407 PRJEB1400 + amplicon Unknown ERR227408 PRJEB1400 + amplicon Unknown ERR227409 PRJEB1400 + amplicon Unknown ERR227410 PRJEB1400 + amplicon Unknown ERR227411 PRJEB1400 + amplicon Unknown ERR227412 PRJEB1400 + amplicon Unknown ERR227413 PRJEB1400 + amplicon Unknown ERR227414 PRJEB1400 + amplicon Unknown ERR227415 PRJEB1400 + amplicon Unknown ERR227416 PRJEB1400 + amplicon Unknown ERR227417 PRJEB1400 + amplicon Unknown ERR227418 PRJEB1400 + amplicon Unknown ERR227419 PRJEB1400 + amplicon Unknown ERR1229946 PRJEB12535 + amplicon Unknown ERR1229947 PRJEB12535 + amplicon Unknown ERR1229948 PRJEB12535 + amplicon Unknown ERR1229949 PRJEB12535 + amplicon Unknown ERR1229950 PRJEB12535 + amplicon Unknown ERR1229951 PRJEB12535 + amplicon Unknown ERR1229952 PRJEB12535 + amplicon Unknown ERR1229953 PRJEB12535 + amplicon Unknown ERR1229954 PRJEB12535 + amplicon Unknown ERR1229955 PRJEB12535 + amplicon Unknown ERR1229956 PRJEB12535 + amplicon Unknown ERR1229957 PRJEB12535 + amplicon Unknown ERR1229958 PRJEB12535 + amplicon Unknown ERR1229959 PRJEB12535 + amplicon Unknown ERR1229960 PRJEB12535 + amplicon Unknown ERR1229961 PRJEB12535 + amplicon Unknown ERR1229962 PRJEB12535 + amplicon Unknown ERR1229963 PRJEB12535 + amplicon Unknown ERR1229964 PRJEB12535 + amplicon Unknown ERR1229965 PRJEB12535 + amplicon Unknown ERR1229966 PRJEB12535 + amplicon Unknown ERR1229967 PRJEB12535 + amplicon Unknown ERR1229968 PRJEB12535 + amplicon Unknown ERR1229969 PRJEB12535 + amplicon Unknown ERR1229970 PRJEB12535 + amplicon Unknown ERR1229971 PRJEB12535 + amplicon Unknown ERR1229972 PRJEB12535 + amplicon Unknown ERR1229973 PRJEB12535 + amplicon Unknown ERR1229974 PRJEB12535 + amplicon Unknown ERR1229975 PRJEB12535 + amplicon Unknown ERR1229976 PRJEB12535 + amplicon Unknown ERR1229977 PRJEB12535 + amplicon Unknown ERR1229978 PRJEB12535 + amplicon Unknown ERR1229979 PRJEB12535 + amplicon Unknown ERR1229980 PRJEB12535 + amplicon Unknown ERR1229981 PRJEB12535 + amplicon Unknown ERR1229982 PRJEB12535 + amplicon Unknown ERR1229983 PRJEB12535 + amplicon Unknown ERR1229984 PRJEB12535 + amplicon Unknown ERR1229985 PRJEB12535 + amplicon Unknown ERR1229986 PRJEB12535 + amplicon Unknown ERR1229987 PRJEB12535 + amplicon Unknown ERR5953297 PRJEB37781 + amplicon Unknown ERR5953298 PRJEB37781 + amplicon Unknown ERR5953299 PRJEB37781 + amplicon Unknown ERR5953300 PRJEB37781 + amplicon Unknown ERR5953302 PRJEB37781 + amplicon Unknown ERR5953303 PRJEB37781 + amplicon Unknown ERR5953304 PRJEB37781 + amplicon Unknown ERR5953305 PRJEB37781 + amplicon Unknown ERR5953296 PRJEB37781 + amplicon Unknown ERR5953117 PRJEB37781 + amplicon Unknown ERR5953118 PRJEB37781 + amplicon Unknown ERR5953119 PRJEB37781 + amplicon Unknown ERR5953120 PRJEB37781 + amplicon Unknown ERR5953121 PRJEB37781 + amplicon Unknown ERR5953122 PRJEB37781 + amplicon Unknown ERR5953123 PRJEB37781 + amplicon Unknown ERR5953124 PRJEB37781 + amplicon Unknown ERR5953125 PRJEB37781 + amplicon Unknown ERR5953126 PRJEB37781 + amplicon Unknown ERR5953127 PRJEB37781 + amplicon Unknown ERR5953128 PRJEB37781 + amplicon Unknown ERR5953129 PRJEB37781 + amplicon Unknown ERR5953130 PRJEB37781 + amplicon Unknown ERR5953131 PRJEB37781 + amplicon Unknown ERR5953132 PRJEB37781 + amplicon Unknown ERR5953133 PRJEB37781 + amplicon Unknown ERR5953134 PRJEB37781 + amplicon Unknown ERR5953135 PRJEB37781 + amplicon Unknown ERR5953136 PRJEB37781 + amplicon Unknown ERR5953137 PRJEB37781 + amplicon Unknown ERR5953138 PRJEB37781 + amplicon Unknown ERR5953139 PRJEB37781 + amplicon Unknown ERR5953140 PRJEB37781 + amplicon Unknown ERR5953141 PRJEB37781 + amplicon Unknown ERR5953142 PRJEB37781 + amplicon Unknown ERR5953143 PRJEB37781 + amplicon Unknown ERR5953144 PRJEB37781 + amplicon Unknown ERR5953145 PRJEB37781 + amplicon Unknown ERR5953146 PRJEB37781 + amplicon Unknown ERR5953147 PRJEB37781 + amplicon Unknown ERR5953148 PRJEB37781 + amplicon Unknown ERR5953149 PRJEB37781 + amplicon Unknown ERR5953150 PRJEB37781 + amplicon Unknown ERR5953151 PRJEB37781 + amplicon Unknown ERR5953152 PRJEB37781 + amplicon Unknown ERR5953153 PRJEB37781 + amplicon Unknown ERR5953154 PRJEB37781 + amplicon Unknown ERR5953155 PRJEB37781 + amplicon Unknown ERR5953156 PRJEB37781 + amplicon Unknown ERR5953157 PRJEB37781 + amplicon Unknown ERR5953158 PRJEB37781 + amplicon Unknown ERR5953159 PRJEB37781 + amplicon Unknown ERR5953160 PRJEB37781 + amplicon Unknown ERR5953161 PRJEB37781 + amplicon Unknown ERR5953162 PRJEB37781 + amplicon Unknown ERR5953163 PRJEB37781 + amplicon Unknown ERR5953164 PRJEB37781 + amplicon Unknown ERR5953165 PRJEB37781 + amplicon Unknown ERR5953166 PRJEB37781 + amplicon Unknown ERR5953167 PRJEB37781 + amplicon Unknown ERR5953168 PRJEB37781 + amplicon Unknown ERR5953169 PRJEB37781 + amplicon Unknown ERR5953170 PRJEB37781 + amplicon Unknown ERR5953171 PRJEB37781 + amplicon Unknown ERR5953172 PRJEB37781 + amplicon Unknown ERR5953173 PRJEB37781 + amplicon Unknown ERR5953174 PRJEB37781 + amplicon Unknown ERR5953175 PRJEB37781 + amplicon Unknown ERR5953176 PRJEB37781 + amplicon Unknown ERR5953177 PRJEB37781 + amplicon Unknown ERR5953178 PRJEB37781 + amplicon Unknown ERR5953179 PRJEB37781 + amplicon Unknown ERR5953180 PRJEB37781 + amplicon Unknown ERR5953181 PRJEB37781 + amplicon Unknown ERR5953182 PRJEB37781 + amplicon Unknown ERR5953183 PRJEB37781 + amplicon Unknown ERR5953184 PRJEB37781 + amplicon Unknown ERR5953185 PRJEB37781 + amplicon Unknown ERR5953186 PRJEB37781 + amplicon Unknown ERR5953187 PRJEB37781 + amplicon Unknown ERR5953188 PRJEB37781 + amplicon Unknown ERR5953189 PRJEB37781 + amplicon Unknown ERR5953190 PRJEB37781 + amplicon Unknown ERR5953191 PRJEB37781 + amplicon Unknown ERR5953192 PRJEB37781 + amplicon Unknown ERR5953193 PRJEB37781 + amplicon Unknown ERR5953194 PRJEB37781 + amplicon Unknown ERR5953195 PRJEB37781 + amplicon Unknown ERR5953196 PRJEB37781 + amplicon Unknown ERR5953197 PRJEB37781 + amplicon Unknown ERR5953198 PRJEB37781 + amplicon Unknown ERR5953199 PRJEB37781 + amplicon Unknown ERR5953200 PRJEB37781 + amplicon Unknown ERR5953201 PRJEB37781 + amplicon Unknown ERR5953202 PRJEB37781 + amplicon Unknown ERR5953203 PRJEB37781 + amplicon Unknown ERR5953204 PRJEB37781 + amplicon Unknown ERR5953205 PRJEB37781 + amplicon Unknown ERR5953206 PRJEB37781 + amplicon Unknown ERR5953207 PRJEB37781 + amplicon Unknown ERR5953208 PRJEB37781 + amplicon Unknown ERR5953209 PRJEB37781 + amplicon Unknown ERR5953210 PRJEB37781 + amplicon Unknown ERR5953211 PRJEB37781 + amplicon Unknown ERR5953212 PRJEB37781 + amplicon Unknown ERR5953213 PRJEB37781 + amplicon Unknown ERR5953214 PRJEB37781 + amplicon Unknown ERR5953215 PRJEB37781 + amplicon Unknown ERR5953216 PRJEB37781 + amplicon Unknown ERR5953217 PRJEB37781 + amplicon Unknown ERR5953218 PRJEB37781 + amplicon Unknown ERR5953219 PRJEB37781 + amplicon Unknown ERR5953220 PRJEB37781 + amplicon Unknown ERR5953221 PRJEB37781 + amplicon Unknown ERR5953222 PRJEB37781 + amplicon Unknown ERR5953223 PRJEB37781 + amplicon Unknown ERR5953224 PRJEB37781 + amplicon Unknown ERR5953225 PRJEB37781 + amplicon Unknown ERR5953226 PRJEB37781 + amplicon Unknown ERR5953227 PRJEB37781 + amplicon Unknown ERR5953228 PRJEB37781 + amplicon Unknown ERR5953229 PRJEB37781 + amplicon Unknown ERR5953230 PRJEB37781 + amplicon Unknown ERR5953231 PRJEB37781 + amplicon Unknown ERR5953232 PRJEB37781 + amplicon Unknown ERR5953233 PRJEB37781 + amplicon Unknown ERR5953234 PRJEB37781 + amplicon Unknown ERR5953235 PRJEB37781 + amplicon Unknown ERR5953236 PRJEB37781 + amplicon Unknown ERR5953237 PRJEB37781 + amplicon Unknown ERR5953238 PRJEB37781 + amplicon Unknown ERR5953239 PRJEB37781 + amplicon Unknown ERR5953240 PRJEB37781 + amplicon Unknown ERR5953241 PRJEB37781 + amplicon Unknown ERR5953242 PRJEB37781 + amplicon Unknown ERR5953243 PRJEB37781 + amplicon Unknown ERR5953244 PRJEB37781 + amplicon Unknown ERR5953245 PRJEB37781 + amplicon Unknown ERR5953246 PRJEB37781 + amplicon Unknown ERR5953247 PRJEB37781 + amplicon Unknown ERR5953248 PRJEB37781 + amplicon Unknown ERR5953249 PRJEB37781 + amplicon Unknown ERR5953250 PRJEB37781 + amplicon Unknown ERR5953251 PRJEB37781 + amplicon Unknown ERR5953252 PRJEB37781 + amplicon Unknown ERR5953253 PRJEB37781 + amplicon Unknown ERR5953254 PRJEB37781 + amplicon Unknown ERR5953255 PRJEB37781 + amplicon Unknown ERR5953256 PRJEB37781 + amplicon Unknown ERR5953257 PRJEB37781 + amplicon Unknown ERR5953258 PRJEB37781 + amplicon Unknown ERR5953259 PRJEB37781 + amplicon Unknown ERR5953260 PRJEB37781 + amplicon Unknown ERR5953261 PRJEB37781 + amplicon Unknown ERR5953262 PRJEB37781 + amplicon Unknown ERR5953263 PRJEB37781 + amplicon Unknown ERR5953264 PRJEB37781 + amplicon Unknown ERR5953265 PRJEB37781 + amplicon Unknown ERR5953266 PRJEB37781 + amplicon Unknown ERR5953267 PRJEB37781 + amplicon Unknown ERR5953268 PRJEB37781 + amplicon Unknown ERR5953269 PRJEB37781 + amplicon Unknown ERR5953270 PRJEB37781 + amplicon Unknown ERR5953271 PRJEB37781 + amplicon Unknown ERR5953272 PRJEB37781 + amplicon Unknown ERR5953273 PRJEB37781 + amplicon Unknown ERR5953274 PRJEB37781 + amplicon Unknown ERR5953275 PRJEB37781 + amplicon Unknown ERR5953276 PRJEB37781 + amplicon Unknown ERR5953277 PRJEB37781 + amplicon Unknown ERR5953278 PRJEB37781 + amplicon Unknown ERR5953279 PRJEB37781 + amplicon Unknown ERR5953280 PRJEB37781 + amplicon Unknown ERR5953281 PRJEB37781 + amplicon Unknown ERR5953282 PRJEB37781 + amplicon Unknown ERR5953283 PRJEB37781 + amplicon Unknown ERR5953284 PRJEB37781 + amplicon Unknown ERR5953285 PRJEB37781 + amplicon Unknown ERR5953286 PRJEB37781 + amplicon Unknown ERR5953287 PRJEB37781 + amplicon Unknown ERR5953288 PRJEB37781 + amplicon Unknown ERR5953289 PRJEB37781 + amplicon Unknown ERR5953290 PRJEB37781 + amplicon Unknown ERR5953291 PRJEB37781 + amplicon Unknown ERR5953292 PRJEB37781 + amplicon Unknown ERR5953293 PRJEB37781 + amplicon Unknown ERR5953294 PRJEB37781 + amplicon Unknown ERR5953295 PRJEB37781 + amplicon Unknown ERR5953301 PRJEB37781 + amplicon Unknown ERR5953306 PRJEB37781 + amplicon Unknown ERR4371490 PRJEB37783 + amplicon Unknown ERR4371491 PRJEB37783 + amplicon Unknown ERR4371492 PRJEB37783 + amplicon Unknown ERR4371493 PRJEB37783 + amplicon Unknown ERR4371494 PRJEB37783 + amplicon Unknown ERR4371495 PRJEB37783 + amplicon Unknown ERR4371496 PRJEB37783 + amplicon Unknown ERR4371497 PRJEB37783 + amplicon Unknown ERR4371498 PRJEB37783 + amplicon Unknown ERR4371499 PRJEB37783 + amplicon Unknown ERR4371500 PRJEB37783 + amplicon Unknown ERR4371501 PRJEB37783 + amplicon Unknown ERR4371502 PRJEB37783 + amplicon Unknown ERR4371503 PRJEB37783 + amplicon Unknown ERR4371504 PRJEB37783 + amplicon Unknown ERR4371505 PRJEB37783 + amplicon Unknown ERR4371506 PRJEB37783 + amplicon Unknown ERR4371507 PRJEB37783 + amplicon Unknown ERR4371508 PRJEB37783 + amplicon Unknown ERR4371509 PRJEB37783 + amplicon Unknown ERR4371510 PRJEB37783 + amplicon Unknown ERR4371511 PRJEB37783 + amplicon Unknown ERR4371512 PRJEB37783 + amplicon Unknown ERR4371513 PRJEB37783 + amplicon Unknown ERR4371514 PRJEB37783 + amplicon Unknown ERR4371515 PRJEB37783 + amplicon Unknown ERR4371516 PRJEB37783 + amplicon Unknown ERR4371517 PRJEB37783 + amplicon Unknown ERR4371518 PRJEB37783 + amplicon Unknown ERR4371519 PRJEB37783 + amplicon Unknown ERR4371520 PRJEB37783 + amplicon Unknown ERR4371521 PRJEB37783 + amplicon Unknown ERR4371522 PRJEB37783 + amplicon Unknown ERR4371523 PRJEB37783 + amplicon Unknown ERR4371524 PRJEB37783 + amplicon Unknown ERR4371525 PRJEB37783 + amplicon Unknown ERR4371526 PRJEB37783 + amplicon Unknown ERR4371527 PRJEB37783 + amplicon Unknown ERR4371528 PRJEB37783 + amplicon Unknown ERR4371529 PRJEB37783 + amplicon Unknown ERR4371530 PRJEB37783 + amplicon Unknown ERR4371531 PRJEB37783 + amplicon Unknown ERR4371532 PRJEB37783 + amplicon Unknown ERR4371533 PRJEB37783 + amplicon Unknown ERR4371534 PRJEB37783 + amplicon Unknown ERR4371537 PRJEB37783 + amplicon Unknown ERR5523667 PRJEB37783 + amplicon Unknown ERR5523668 PRJEB37783 + amplicon Unknown ERR5523669 PRJEB37783 + amplicon Unknown ERR5523670 PRJEB37783 + amplicon Unknown ERR5523671 PRJEB37783 + amplicon Unknown ERR5523672 PRJEB37783 + amplicon Unknown ERR5523673 PRJEB37783 + amplicon Unknown ERR5523674 PRJEB37783 + amplicon Unknown ERR5523675 PRJEB37783 + amplicon Unknown ERR5523676 PRJEB37783 + amplicon Unknown ERR5523677 PRJEB37783 + amplicon Unknown ERR5523678 PRJEB37783 + amplicon Unknown ERR5523679 PRJEB37783 + amplicon Unknown ERR5523680 PRJEB37783 + amplicon Unknown ERR5523681 PRJEB37783 + amplicon Unknown ERR5523682 PRJEB37783 + amplicon Unknown ERR5523683 PRJEB37783 + amplicon Unknown ERR5523684 PRJEB37783 + amplicon Unknown ERR5523685 PRJEB37783 + amplicon Unknown ERR5523686 PRJEB37783 + amplicon Unknown ERR5523689 PRJEB37783 + amplicon Unknown ERR4371535 PRJEB37783 + amplicon Unknown ERR4371536 PRJEB37783 + amplicon Unknown ERR4371538 PRJEB37783 + amplicon Unknown ERR5523687 PRJEB37783 + amplicon Unknown ERR5523688 PRJEB37783 + amplicon horse SRR831198 PRJNA177883 + amplicon horse SRR831199 PRJNA177883 + amplicon horse SRR831200 PRJNA177883 + amplicon horse SRR831203 PRJNA177883 + amplicon horse SRR831204 PRJNA177883 + amplicon horse SRR831205 PRJNA177883 + amplicon horse SRR831206 PRJNA177883 + amplicon horse SRR831207 PRJNA177883 + amplicon horse SRR831201 PRJNA177883 + amplicon horse SRR831202 PRJNA177883 + amplicon horse SRR831208 PRJNA177883 + amplicon horse SRR831209 PRJNA177883 + amplicon horse SRR831210 PRJNA177883 + amplicon horse SRR831211 PRJNA177883 + amplicon horse SRR831212 PRJNA177883 + amplicon horse SRR831213 PRJNA177883 + amplicon horse SRR831214 PRJNA177883 + amplicon horse SRR831215 PRJNA177883 + amplicon horse SRR952154 PRJNA210516 + amplicon horse SRR952155 PRJNA210516 + amplicon horse SRR952156 PRJNA210516 + amplicon horse SRR952157 PRJNA210516 + amplicon horse SRR952158 PRJNA210516 + amplicon horse SRR952159 PRJNA210516 + amplicon horse SRR952160 PRJNA210516 + amplicon horse SRR952161 PRJNA210516 + amplicon horse SRR952162 PRJNA210516 + amplicon horse SRR952163 PRJNA210516 + amplicon horse SRR952164 PRJNA210516 + amplicon horse SRR952165 PRJNA210516 + amplicon horse SRR952166 PRJNA210516 + amplicon horse SRR952167 PRJNA210516 + amplicon horse SRR952168 PRJNA210516 + amplicon horse SRR952169 PRJNA210516 + amplicon horse SRR952170 PRJNA210516 + amplicon horse SRR952171 PRJNA210516 + amplicon horse SRR952172 PRJNA210516 + amplicon horse SRR952173 PRJNA210516 + amplicon horse SRR952174 PRJNA210516 + amplicon horse SRR952175 PRJNA210516 + amplicon horse SRR952176 PRJNA210516 + amplicon horse SRR952177 PRJNA210516 + amplicon horse SRR952178 PRJNA210516 + amplicon horse SRR952179 PRJNA210516 + amplicon horse SRR952180 PRJNA210516 + amplicon horse SRR952181 PRJNA210516 + amplicon horse SRR952182 PRJNA210516 + amplicon horse SRR952183 PRJNA210516 + amplicon horse SRR952184 PRJNA210516 + amplicon horse SRR952185 PRJNA210516 + amplicon horse SRR952186 PRJNA210516 + amplicon horse SRR952187 PRJNA210516 + amplicon horse SRR952188 PRJNA210516 + amplicon horse SRR952189 PRJNA210516 + amplicon horse SRR952190 PRJNA210516 + amplicon horse SRR952191 PRJNA210516 + amplicon horse SRR952192 PRJNA210516 + amplicon horse SRR952193 PRJNA210516 + amplicon horse SRR952194 PRJNA210516 + amplicon horse SRR952195 PRJNA210516 + amplicon horse SRR952196 PRJNA210516 + amplicon horse SRR952197 PRJNA210516 + amplicon horse SRR952198 PRJNA210516 + amplicon horse SRR952199 PRJNA210516 + amplicon horse SRR952200 PRJNA210516 + amplicon horse SRR952153 PRJNA210516 + amplicon rabbit SRR1136914 PRJNA231773 + amplicon rabbit SRR1136915 PRJNA231773 + amplicon rabbit SRR1136916 PRJNA231773 + amplicon rabbit SRR1136917 PRJNA231773 + amplicon rabbit SRR1136918 PRJNA231773 + amplicon rabbit SRR1136919 PRJNA231773 + amplicon rabbit SRR1136920 PRJNA231773 + amplicon rabbit SRR1136921 PRJNA231773 + amplicon rabbit SRR1136922 PRJNA231773 + amplicon rabbit SRR1136923 PRJNA231773 + amplicon rabbit SRR1136924 PRJNA231773 + amplicon rabbit SRR1136925 PRJNA231773 + amplicon rabbit SRR1136926 PRJNA231773 + amplicon rabbit SRR1136927 PRJNA231773 + amplicon rabbit SRR1136928 PRJNA231773 + amplicon rabbit SRR1136929 PRJNA231773 + amplicon rabbit SRR1136930 PRJNA231773 + amplicon rabbit SRR1136931 PRJNA231773 + amplicon rabbit SRR1136932 PRJNA231773 + amplicon rabbit SRR1136933 PRJNA231773 + amplicon rabbit SRR1136934 PRJNA231773 + amplicon rabbit SRR1136935 PRJNA231773 + amplicon rabbit SRR1136936 PRJNA231773 + amplicon rabbit SRR1136937 PRJNA231773 + amplicon rabbit SRR1136938 PRJNA231773 + amplicon rabbit SRR1136939 PRJNA231773 + amplicon rabbit SRR1136940 PRJNA231773 + amplicon rabbit SRR1136941 PRJNA231773 + amplicon rabbit SRR1136942 PRJNA231773 + amplicon rabbit SRR1136943 PRJNA231773 + amplicon rabbit SRR1136944 PRJNA231773 + amplicon rabbit SRR1136945 PRJNA231773 + amplicon rabbit SRR1136946 PRJNA231773 + amplicon rabbit SRR1136947 PRJNA231773 + amplicon rabbit SRR1136948 PRJNA231773 + amplicon rabbit SRR1136949 PRJNA231773 + amplicon rabbit SRR1136950 PRJNA231773 + amplicon rabbit SRR1136951 PRJNA231773 + amplicon rabbit SRR1136952 PRJNA231773 + amplicon rabbit SRR1136953 PRJNA231773 + amplicon rabbit SRR1136954 PRJNA231773 + amplicon rabbit SRR1136955 PRJNA231773 + amplicon rabbit SRR1136956 PRJNA231773 + amplicon rabbit SRR1136957 PRJNA231773 + amplicon rabbit SRR1136958 PRJNA231773 + amplicon rabbit SRR1136959 PRJNA231773 + amplicon rabbit SRR1136960 PRJNA231773 + amplicon rabbit SRR1136961 PRJNA231773 + amplicon rabbit SRR1136962 PRJNA231773 + amplicon rabbit SRR1136963 PRJNA231773 + amplicon rabbit SRR1136964 PRJNA231773 + amplicon rabbit SRR1136965 PRJNA231773 + amplicon rabbit SRR1136966 PRJNA231773 + amplicon rabbit SRR1136967 PRJNA231773 + amplicon rabbit SRR1136968 PRJNA231773 + amplicon rabbit SRR1136969 PRJNA231773 + amplicon rabbit SRR1136970 PRJNA231773 + amplicon rabbit SRR1136971 PRJNA231773 + amplicon rabbit SRR1136972 PRJNA231773 + amplicon rabbit SRR1136973 PRJNA231773 + amplicon rabbit SRR1136974 PRJNA231773 + amplicon rabbit SRR1136975 PRJNA231773 + amplicon rabbit SRR1136976 PRJNA231773 + amplicon rabbit SRR1136977 PRJNA231773 + amplicon rabbit SRR1136978 PRJNA231773 + amplicon rabbit SRR1136979 PRJNA231773 + amplicon rabbit SRR1136980 PRJNA231773 + amplicon rabbit SRR1136981 PRJNA231773 + amplicon rabbit SRR1136982 PRJNA231773 + amplicon rabbit SRR1136983 PRJNA231773 + amplicon rabbit SRR1136984 PRJNA231773 + amplicon rabbit SRR1136985 PRJNA231773 + amplicon rabbit SRR1803649 PRJNA274503 + amplicon rabbit SRR1803625 PRJNA274503 + amplicon rabbit SRR1803626 PRJNA274503 + amplicon rabbit SRR1803627 PRJNA274503 + amplicon rabbit SRR1803628 PRJNA274503 + amplicon rabbit SRR1803629 PRJNA274503 + amplicon rabbit SRR1803630 PRJNA274503 + amplicon rabbit SRR1803631 PRJNA274503 + amplicon rabbit SRR1803632 PRJNA274503 + amplicon rabbit SRR1803633 PRJNA274503 + amplicon rabbit SRR1803634 PRJNA274503 + amplicon rabbit SRR1803635 PRJNA274503 + amplicon rabbit SRR1803636 PRJNA274503 + amplicon rabbit SRR1803637 PRJNA274503 + amplicon rabbit SRR1803638 PRJNA274503 + amplicon rabbit SRR1803639 PRJNA274503 + amplicon rabbit SRR1803640 PRJNA274503 + amplicon rabbit SRR1803641 PRJNA274503 + amplicon rabbit SRR1803642 PRJNA274503 + amplicon rabbit SRR1803643 PRJNA274503 + amplicon rabbit SRR1803644 PRJNA274503 + amplicon rabbit SRR1803645 PRJNA274503 + amplicon rabbit SRR1803646 PRJNA274503 + amplicon rabbit SRR1803647 PRJNA274503 + amplicon rabbit SRR1803648 PRJNA274503 + amplicon rabbit SRR1803650 PRJNA274503 + amplicon rabbit SRR1803651 PRJNA274503 + amplicon rabbit SRR1803652 PRJNA274503 + amplicon rabbit SRR1803653 PRJNA274503 + amplicon rabbit SRR1803654 PRJNA274503 + amplicon rabbit SRR1803655 PRJNA274503 + amplicon rabbit SRR1803656 PRJNA274503 + amplicon rabbit SRR1803657 PRJNA274503 + amplicon rabbit SRR1803658 PRJNA274503 + amplicon rabbit SRR1803659 PRJNA274503 + amplicon rabbit SRR1803660 PRJNA274503 + amplicon rabbit SRR1803661 PRJNA274503 + amplicon rabbit SRR1803662 PRJNA274503 + amplicon rabbit SRR1803663 PRJNA274503 + amplicon rabbit SRR1803664 PRJNA274503 + amplicon rabbit SRR1803665 PRJNA274503 + amplicon rabbit SRR1803666 PRJNA274503 + amplicon rabbit SRR1803667 PRJNA274503 + amplicon rabbit SRR1803668 PRJNA274503 + amplicon rabbit SRR1803669 PRJNA274503 + amplicon rabbit SRR1803670 PRJNA274503 + amplicon rabbit SRR1803671 PRJNA274503 + amplicon rabbit SRR1803672 PRJNA274503 + amplicon rabbit SRR1803673 PRJNA274503 + amplicon rabbit SRR1803674 PRJNA274503 + amplicon rabbit SRR1803675 PRJNA274503 + amplicon rabbit SRR1803676 PRJNA274503 + amplicon rabbit SRR1803677 PRJNA274503 + amplicon rabbit SRR1803678 PRJNA274503 + amplicon rabbit SRR1803679 PRJNA274503 + amplicon rabbit SRR1803680 PRJNA274503 + amplicon rabbit SRR1803681 PRJNA274503 + amplicon rabbit SRR1803682 PRJNA274503 + amplicon rabbit SRR1803683 PRJNA274503 + amplicon rabbit SRR1803684 PRJNA274503 + amplicon rabbit SRR1803685 PRJNA274503 + amplicon rabbit SRR1803686 PRJNA274503 + amplicon rabbit SRR1803687 PRJNA274503 + amplicon rabbit SRR1803688 PRJNA274503 + amplicon rabbit SRR1803689 PRJNA274503 + amplicon rabbit SRR1803690 PRJNA274503 + amplicon rabbit SRR1803691 PRJNA274503 + amplicon rabbit SRR1803692 PRJNA274503 + amplicon rabbit SRR1803693 PRJNA274503 + amplicon rabbit SRR1803694 PRJNA274503 + amplicon rabbit SRR1803695 PRJNA274503 + amplicon rabbit SRR1803696 PRJNA274503 + amplicon rabbit SRR1803697 PRJNA274503 + amplicon rabbit SRR1803698 PRJNA274503 + amplicon rabbit SRR1803699 PRJNA274503 + amplicon rabbit SRR1803700 PRJNA274503 + amplicon rabbit SRR1803701 PRJNA274503 + amplicon rabbit SRR1803702 PRJNA274503 + amplicon rabbit SRR1803704 PRJNA274503 + amplicon rabbit SRR1803705 PRJNA274503 + amplicon rabbit SRR1803706 PRJNA274503 + amplicon rabbit SRR1803707 PRJNA274503 + amplicon rabbit SRR1803708 PRJNA274503 + amplicon rabbit SRR1803709 PRJNA274503 + amplicon rabbit SRR1803710 PRJNA274503 + amplicon rabbit SRR1803711 PRJNA274503 + amplicon rabbit SRR1803712 PRJNA274503 + amplicon rabbit SRR1803713 PRJNA274503 + amplicon rabbit SRR1803714 PRJNA274503 + amplicon rabbit SRR1803715 PRJNA274503 + amplicon rabbit SRR1803716 PRJNA274503 + amplicon rabbit SRR1803717 PRJNA274503 + amplicon rabbit SRR1803718 PRJNA274503 + amplicon rabbit SRR1803719 PRJNA274503 + amplicon rabbit SRR1803720 PRJNA274503 + amplicon rabbit SRR1803722 PRJNA274503 + amplicon rabbit SRR1803723 PRJNA274503 + amplicon rabbit SRR1803724 PRJNA274503 + amplicon rabbit SRR1803725 PRJNA274503 + amplicon rabbit SRR1803726 PRJNA274503 + amplicon rabbit SRR1803727 PRJNA274503 + amplicon rabbit SRR1803728 PRJNA274503 + amplicon rabbit SRR1803729 PRJNA274503 + amplicon rabbit SRR1803730 PRJNA274503 + amplicon rabbit SRR1803731 PRJNA274503 + amplicon rabbit SRR1803732 PRJNA274503 + amplicon rabbit SRR1803733 PRJNA274503 + amplicon rabbit SRR1803734 PRJNA274503 + amplicon rabbit SRR1803735 PRJNA274503 + amplicon rabbit SRR1803736 PRJNA274503 + amplicon rabbit SRR1803737 PRJNA274503 + amplicon rabbit SRR1803738 PRJNA274503 + amplicon rabbit SRR1803739 PRJNA274503 + amplicon rabbit SRR1803740 PRJNA274503 + amplicon rabbit SRR1803741 PRJNA274503 + amplicon rabbit SRR1803742 PRJNA274503 + amplicon rabbit SRR1803743 PRJNA274503 + amplicon rabbit SRR1803744 PRJNA274503 + amplicon rabbit SRR1803745 PRJNA274503 + amplicon rabbit SRR1803746 PRJNA274503 + amplicon rabbit SRR1803747 PRJNA274503 + amplicon rabbit SRR1803748 PRJNA274503 + amplicon rabbit SRR1803749 PRJNA274503 + amplicon rabbit SRR1803750 PRJNA274503 + amplicon rabbit SRR1803751 PRJNA274503 + amplicon rabbit SRR1803752 PRJNA274503 + amplicon rabbit SRR1803753 PRJNA274503 + amplicon rabbit SRR1803754 PRJNA274503 + amplicon rabbit SRR1803755 PRJNA274503 + amplicon rabbit SRR1803756 PRJNA274503 + amplicon rabbit SRR1803757 PRJNA274503 + amplicon rabbit SRR1803758 PRJNA274503 + amplicon rabbit SRR1803759 PRJNA274503 + amplicon rabbit SRR1803760 PRJNA274503 + amplicon rabbit SRR1803761 PRJNA274503 + amplicon rabbit SRR1803762 PRJNA274503 + amplicon rabbit SRR1803763 PRJNA274503 + amplicon rabbit SRR1803764 PRJNA274503 + amplicon rabbit SRR1803765 PRJNA274503 + amplicon rabbit SRR1803766 PRJNA274503 + amplicon rabbit SRR1803767 PRJNA274503 + amplicon rabbit SRR1803768 PRJNA274503 + amplicon rabbit SRR1803769 PRJNA274503 + amplicon horse SRR2060369 PRJNA286058 + amplicon horse SRR2060370 PRJNA286058 + amplicon horse SRR2060371 PRJNA286058 + amplicon horse SRR2060372 PRJNA286058 + amplicon horse SRR2060373 PRJNA286058 + amplicon horse SRR2060374 PRJNA286058 + amplicon horse SRR2060375 PRJNA286058 + amplicon horse SRR2060377 PRJNA286058 + amplicon horse SRR2060378 PRJNA286058 + amplicon horse SRR2060379 PRJNA286058 + amplicon horse SRR2060380 PRJNA286058 + amplicon horse SRR2060381 PRJNA286058 + amplicon horse SRR2060382 PRJNA286058 + amplicon horse SRR2060383 PRJNA286058 + amplicon horse SRR2060384 PRJNA286058 + amplicon horse SRR2060385 PRJNA286058 + amplicon horse SRR2060386 PRJNA286058 + amplicon horse SRR2060387 PRJNA286058 + amplicon horse SRR2060388 PRJNA286058 + amplicon horse SRR2060389 PRJNA286058 + amplicon horse SRR2060390 PRJNA286058 + amplicon horse SRR2060391 PRJNA286058 + amplicon horse SRR2060392 PRJNA286058 + amplicon horse SRR2060393 PRJNA286058 + amplicon horse SRR2060394 PRJNA286058 + amplicon horse SRR2060395 PRJNA286058 + amplicon horse SRR2060396 PRJNA286058 + amplicon horse SRR2060397 PRJNA286058 + amplicon horse SRR2060398 PRJNA286058 + amplicon horse SRR2060399 PRJNA286058 + amplicon horse SRR2060400 PRJNA286058 + amplicon horse SRR2060401 PRJNA286058 + amplicon horse SRR2060402 PRJNA286058 + amplicon horse SRR2060403 PRJNA286058 + amplicon horse SRR2060404 PRJNA286058 + amplicon horse SRR2060405 PRJNA286058 + amplicon horse SRR2060406 PRJNA286058 + amplicon horse SRR2060407 PRJNA286058 + amplicon horse SRR2060408 PRJNA286058 + amplicon horse SRR2060409 PRJNA286058 + amplicon horse SRR2060410 PRJNA286058 + amplicon horse SRR2060411 PRJNA286058 + amplicon horse SRR2060412 PRJNA286058 + amplicon horse SRR2060413 PRJNA286058 + amplicon horse SRR2060414 PRJNA286058 + amplicon horse SRR2060415 PRJNA286058 + amplicon horse SRR2060416 PRJNA286058 + amplicon horse SRR2060417 PRJNA286058 + amplicon horse SRR2060418 PRJNA286058 + amplicon horse SRR2060419 PRJNA286058 + amplicon horse SRR2060420 PRJNA286058 + amplicon horse SRR2060421 PRJNA286058 + amplicon horse SRR2060422 PRJNA286058 + amplicon horse SRR2060423 PRJNA286058 + amplicon horse SRR2060424 PRJNA286058 + amplicon horse SRR2060425 PRJNA286058 + amplicon horse SRR2060426 PRJNA286058 + amplicon horse SRR2060427 PRJNA286058 + amplicon horse SRR2060428 PRJNA286058 + amplicon horse SRR2060429 PRJNA286058 + amplicon horse SRR2060430 PRJNA286058 + amplicon horse SRR2060431 PRJNA286058 + amplicon horse SRR2060432 PRJNA286058 + amplicon horse SRR2060433 PRJNA286058 + amplicon horse SRR2060434 PRJNA286058 + amplicon horse SRR2060435 PRJNA286058 + amplicon horse SRR2060436 PRJNA286058 + amplicon horse SRR2060437 PRJNA286058 + amplicon horse SRR2060438 PRJNA286058 + amplicon horse SRR2060439 PRJNA286058 + amplicon horse SRR2060440 PRJNA286058 + amplicon horse SRR2060441 PRJNA286058 + amplicon horse SRR2060442 PRJNA286058 + amplicon horse SRR2060443 PRJNA286058 + amplicon horse SRR2060444 PRJNA286058 + amplicon horse SRR2060445 PRJNA286058 + amplicon horse SRR2060446 PRJNA286058 + amplicon horse SRR2060447 PRJNA286058 + amplicon horse SRR2060448 PRJNA286058 + amplicon horse SRR2060449 PRJNA286058 + amplicon horse SRR2060450 PRJNA286058 + amplicon horse SRR2060451 PRJNA286058 + amplicon horse SRR2060452 PRJNA286058 + amplicon horse SRR2060453 PRJNA286058 + amplicon horse SRR2060454 PRJNA286058 + amplicon horse SRR2060455 PRJNA286058 + amplicon horse SRR2060456 PRJNA286058 + amplicon horse SRR2060457 PRJNA286058 + amplicon horse SRR2060458 PRJNA286058 + amplicon horse SRR2060459 PRJNA286058 + amplicon horse SRR2060460 PRJNA286058 + amplicon horse SRR2060461 PRJNA286058 + amplicon horse SRR2060462 PRJNA286058 + amplicon horse SRR2060463 PRJNA286058 + amplicon horse SRR2060464 PRJNA286058 + amplicon horse SRR2060465 PRJNA286058 + amplicon horse SRR2060466 PRJNA286058 + amplicon horse SRR2060467 PRJNA286058 + amplicon horse SRR2060468 PRJNA286058 + amplicon horse SRR2060469 PRJNA286058 + amplicon horse SRR2060470 PRJNA286058 + amplicon horse SRR2060471 PRJNA286058 + amplicon horse SRR2060472 PRJNA286058 + amplicon horse SRR2060473 PRJNA286058 + amplicon horse SRR2060474 PRJNA286058 + amplicon horse SRR2060475 PRJNA286058 + amplicon horse SRR2060476 PRJNA286058 + amplicon horse SRR2060477 PRJNA286058 + amplicon horse SRR2060478 PRJNA286058 + amplicon horse SRR2060479 PRJNA286058 + amplicon horse SRR2060480 PRJNA286058 + amplicon horse SRR2060481 PRJNA286058 + amplicon horse SRR2060482 PRJNA286058 + amplicon horse SRR2060483 PRJNA286058 + amplicon horse SRR2060484 PRJNA286058 + amplicon horse SRR2060485 PRJNA286058 + amplicon horse SRR2060486 PRJNA286058 + amplicon horse SRR2060487 PRJNA286058 + amplicon horse SRR2060488 PRJNA286058 + amplicon rabbit SRR2177375 PRJNA291670 + amplicon rabbit SRR2177376 PRJNA291670 + amplicon rabbit SRR2177378 PRJNA291670 + amplicon rabbit SRR2177379 PRJNA291670 + amplicon rabbit SRR2177380 PRJNA291670 + amplicon rabbit SRR2177381 PRJNA291670 + amplicon rabbit SRR2177383 PRJNA291670 + amplicon rabbit SRR2177386 PRJNA291670 + amplicon rabbit SRR2177391 PRJNA291670 + amplicon rabbit SRR2177396 PRJNA291670 + amplicon rabbit SRR2177400 PRJNA291670 + amplicon horse SRR3131271 PRJNA254186 + amplicon horse SRR3131273 PRJNA254186 + amplicon horse SRR3131276 PRJNA254186 + amplicon horse SRR3131281 PRJNA254186 + amplicon horse SRR3131284 PRJNA254186 + amplicon horse SRR3131285 PRJNA254186 + amplicon horse SRR3131288 PRJNA254186 + amplicon horse SRR3131290 PRJNA254186 + amplicon horse SRR3131292 PRJNA254186 + amplicon horse SRR3131294 PRJNA254186 + amplicon horse SRR3131297 PRJNA254186 + amplicon horse SRR3131300 PRJNA254186 + amplicon horse SRR3131307 PRJNA254186 + amplicon horse SRR3131308 PRJNA254186 + amplicon horse SRR3131309 PRJNA254186 + amplicon horse SRR3131311 PRJNA254186 + amplicon horse SRR3131313 PRJNA254186 + amplicon horse SRR3131314 PRJNA254186 + amplicon horse SRR3131316 PRJNA254186 + amplicon horse SRR3131318 PRJNA254186 + amplicon horse SRR3131320 PRJNA254186 + amplicon horse SRR3131322 PRJNA254186 + amplicon horse SRR3131325 PRJNA254186 + amplicon horse SRR3131329 PRJNA254186 + amplicon horse SRR3131331 PRJNA254186 + amplicon horse SRR3131333 PRJNA254186 + amplicon horse SRR3131335 PRJNA254186 + amplicon horse SRR3131338 PRJNA254186 + amplicon horse SRR3131339 PRJNA254186 + amplicon horse SRR3131341 PRJNA254186 + amplicon horse SRR3131343 PRJNA254186 + amplicon horse SRR3131346 PRJNA254186 + amplicon horse SRR3131349 PRJNA254186 + amplicon horse SRR3131366 PRJNA254186 + amplicon horse SRR3131367 PRJNA254186 + amplicon horse SRR3131369 PRJNA254186 + amplicon horse SRR3131371 PRJNA254186 + amplicon horse SRR3131373 PRJNA254186 + amplicon horse SRR3131375 PRJNA254186 + amplicon horse SRR3131272 PRJNA254186 + amplicon horse SRR3131275 PRJNA254186 + amplicon horse SRR3131277 PRJNA254186 + amplicon horse SRR3131278 PRJNA254186 + amplicon horse SRR3131282 PRJNA254186 + amplicon horse SRR3131283 PRJNA254186 + amplicon horse SRR3131286 PRJNA254186 + amplicon horse SRR3131287 PRJNA254186 + amplicon horse SRR3131289 PRJNA254186 + amplicon horse SRR3131291 PRJNA254186 + amplicon horse SRR3131293 PRJNA254186 + amplicon horse SRR3131295 PRJNA254186 + amplicon horse SRR3131296 PRJNA254186 + amplicon horse SRR3131298 PRJNA254186 + amplicon horse SRR3131299 PRJNA254186 + amplicon horse SRR3131301 PRJNA254186 + amplicon horse SRR3131306 PRJNA254186 + amplicon horse SRR3131310 PRJNA254186 + amplicon horse SRR3131312 PRJNA254186 + amplicon horse SRR3131315 PRJNA254186 + amplicon horse SRR3131317 PRJNA254186 + amplicon horse SRR3131319 PRJNA254186 + amplicon horse SRR3131321 PRJNA254186 + amplicon horse SRR3131323 PRJNA254186 + amplicon horse SRR3131324 PRJNA254186 + amplicon horse SRR3131326 PRJNA254186 + amplicon horse SRR3131330 PRJNA254186 + amplicon horse SRR3131332 PRJNA254186 + amplicon horse SRR3131334 PRJNA254186 + amplicon horse SRR3131336 PRJNA254186 + amplicon horse SRR3131337 PRJNA254186 + amplicon horse SRR3131340 PRJNA254186 + amplicon horse SRR3131342 PRJNA254186 + amplicon horse SRR3131344 PRJNA254186 + amplicon horse SRR3131345 PRJNA254186 + amplicon horse SRR3131347 PRJNA254186 + amplicon horse SRR3131348 PRJNA254186 + amplicon horse SRR3131365 PRJNA254186 + amplicon horse SRR3131368 PRJNA254186 + amplicon horse SRR3131370 PRJNA254186 + amplicon horse SRR3131372 PRJNA254186 + amplicon horse SRR3131374 PRJNA254186 + amplicon rabbit SRR3271403 PRJNA315608 + amplicon rabbit SRR3271404 PRJNA315608 + amplicon rabbit SRR3271405 PRJNA315608 + amplicon rabbit SRR3271406 PRJNA315608 + amplicon rabbit SRR3271407 PRJNA315608 + amplicon rabbit SRR3271408 PRJNA315608 + amplicon rabbit SRR3271409 PRJNA315608 + amplicon rabbit SRR3271410 PRJNA315608 + amplicon rabbit SRR3271411 PRJNA315608 + amplicon rabbit SRR3271412 PRJNA315608 + amplicon rabbit SRR3271413 PRJNA315608 + amplicon rabbit SRR3271414 PRJNA315608 + amplicon rabbit SRR3271415 PRJNA315608 + amplicon rabbit SRR3271416 PRJNA315608 + amplicon rabbit SRR3271417 PRJNA315608 + amplicon rabbit SRR3271418 PRJNA315608 + amplicon rabbit SRR3271419 PRJNA315608 + amplicon rabbit SRR3271420 PRJNA315608 + amplicon rabbit SRR3271421 PRJNA315608 + amplicon rabbit SRR3271422 PRJNA315608 + amplicon rabbit SRR3271423 PRJNA315608 + amplicon rabbit SRR3271424 PRJNA315608 + amplicon rabbit SRR3271425 PRJNA315608 + amplicon rabbit SRR3271426 PRJNA315608 + amplicon rabbit SRR3271427 PRJNA315608 + amplicon rabbit SRR3271428 PRJNA315608 + amplicon rabbit SRR3271429 PRJNA315608 + amplicon rabbit SRR3271430 PRJNA315608 + amplicon rabbit SRR3271431 PRJNA315608 + amplicon rabbit SRR3271432 PRJNA315608 + amplicon rabbit SRR3271433 PRJNA315608 + amplicon rabbit SRR3271434 PRJNA315608 + amplicon rabbit SRR3271435 PRJNA315608 + amplicon rabbit SRR3271436 PRJNA315608 + amplicon rabbit SRR3271437 PRJNA315608 + amplicon rabbit SRR3271438 PRJNA315608 + amplicon rabbit SRR3271439 PRJNA315608 + amplicon rabbit SRR3271440 PRJNA315608 + amplicon rabbit SRR3271441 PRJNA315608 + amplicon rabbit SRR3271442 PRJNA315608 + amplicon rabbit SRR3271443 PRJNA315608 + amplicon rabbit SRR3271444 PRJNA315608 + amplicon rabbit SRR3271445 PRJNA315608 + amplicon rabbit SRR3271446 PRJNA315608 + amplicon rabbit SRR3271447 PRJNA315608 + amplicon rabbit SRR3271448 PRJNA315608 + amplicon rabbit SRR3271449 PRJNA315608 + amplicon rabbit SRR3271464 PRJNA315608 + amplicon rabbit SRR3271483 PRJNA315608 + amplicon rabbit SRR3271484 PRJNA315608 + amplicon rabbit SRR3271485 PRJNA315608 + amplicon rabbit SRR3271486 PRJNA315608 + amplicon rabbit SRR3271487 PRJNA315608 + amplicon rabbit SRR3271488 PRJNA315608 + amplicon rabbit SRR3271489 PRJNA315608 + amplicon rabbit SRR3271490 PRJNA315608 + amplicon rabbit SRR3271491 PRJNA315608 + amplicon rabbit SRR3271492 PRJNA315608 + amplicon rabbit SRR3271493 PRJNA315608 + amplicon rabbit SRR3271494 PRJNA315608 + amplicon rabbit SRR3271495 PRJNA315608 + amplicon rabbit SRR3271496 PRJNA315608 + amplicon rabbit SRR3271497 PRJNA315608 + amplicon rabbit SRR3271498 PRJNA315608 + amplicon rabbit SRR3271499 PRJNA315608 + amplicon rabbit SRR3271500 PRJNA315608 + amplicon rabbit SRR3271501 PRJNA315608 + amplicon rabbit SRR3271502 PRJNA315608 + amplicon rabbit SRR3271503 PRJNA315608 + amplicon rabbit SRR3271504 PRJNA315608 + amplicon rabbit SRR3271505 PRJNA315608 + amplicon rabbit SRR3271506 PRJNA315608 + amplicon rabbit SRR3271507 PRJNA315608 + amplicon rabbit SRR3271508 PRJNA315608 + amplicon rabbit SRR3271509 PRJNA315608 + amplicon rabbit SRR3271510 PRJNA315608 + amplicon rabbit SRR3271511 PRJNA315608 + amplicon rabbit SRR3271512 PRJNA315608 + amplicon rabbit SRR3271513 PRJNA315608 + amplicon rabbit SRR3271514 PRJNA315608 + amplicon rabbit SRR3271515 PRJNA315608 + amplicon rabbit SRR3271516 PRJNA315608 + amplicon rabbit SRR3271517 PRJNA315608 + amplicon rabbit SRR3271518 PRJNA315608 + amplicon rabbit SRR3271519 PRJNA315608 + amplicon rabbit SRR3271520 PRJNA315608 + amplicon rabbit SRR3271521 PRJNA315608 + amplicon rabbit SRR3271522 PRJNA315608 + amplicon rabbit SRR3271523 PRJNA315608 + amplicon rabbit SRR3271524 PRJNA315608 + amplicon rabbit SRR3271525 PRJNA315608 + amplicon rabbit SRR3271526 PRJNA315608 + amplicon rabbit SRR3271527 PRJNA315608 + amplicon rabbit SRR3271528 PRJNA315608 + amplicon rabbit SRR3271529 PRJNA315608 + amplicon rabbit SRR3271530 PRJNA315608 + amplicon rabbit SRR3271531 PRJNA315608 + amplicon rabbit SRR3271532 PRJNA315608 + amplicon rabbit SRR3271533 PRJNA315608 + amplicon rabbit SRR3271534 PRJNA315608 + amplicon rabbit SRR3271535 PRJNA315608 + amplicon rabbit SRR3271536 PRJNA315608 + amplicon rabbit SRR3271537 PRJNA315608 + amplicon rabbit SRR3271538 PRJNA315608 + amplicon rabbit SRR3271539 PRJNA315608 + amplicon rabbit SRR3271540 PRJNA315608 + amplicon rabbit SRR3271541 PRJNA315608 + amplicon rabbit SRR3271542 PRJNA315608 + amplicon rabbit SRR3271543 PRJNA315608 + amplicon rabbit SRR3271544 PRJNA315608 + amplicon rabbit SRR3271545 PRJNA315608 + amplicon rabbit SRR3271546 PRJNA315608 + amplicon rabbit SRR3271547 PRJNA315608 + amplicon rabbit SRR3271548 PRJNA315608 + amplicon rabbit SRR3271549 PRJNA315608 + amplicon rabbit SRR3271550 PRJNA315608 + amplicon rabbit SRR3271551 PRJNA315608 + amplicon rabbit SRR3271552 PRJNA315608 + amplicon rabbit SRR3271553 PRJNA315608 + amplicon rabbit SRR3271554 PRJNA315608 + amplicon rabbit SRR3271555 PRJNA315608 + amplicon rabbit SRR3271556 PRJNA315608 + amplicon rabbit SRR3271557 PRJNA315608 + amplicon rabbit SRR3271558 PRJNA315608 + amplicon rabbit SRR3271559 PRJNA315608 + amplicon rabbit SRR3271560 PRJNA315608 + amplicon rabbit SRR3271561 PRJNA315608 + amplicon rabbit SRR3271562 PRJNA315608 + amplicon rabbit SRR3271563 PRJNA315608 + amplicon rabbit SRR3271564 PRJNA315608 + amplicon rabbit SRR3271565 PRJNA315608 + amplicon rabbit SRR3271566 PRJNA315608 + amplicon rabbit SRR3271567 PRJNA315608 + amplicon rabbit SRR3271568 PRJNA315608 + amplicon rabbit SRR3271569 PRJNA315608 + amplicon rabbit SRR3271570 PRJNA315608 + amplicon rabbit SRR3271571 PRJNA315608 + amplicon rabbit SRR3271572 PRJNA315608 + amplicon rabbit SRR3271573 PRJNA315608 + amplicon rabbit SRR3271574 PRJNA315608 + amplicon rabbit SRR3271575 PRJNA315608 + amplicon rabbit SRR3271576 PRJNA315608 + amplicon rabbit SRR3271577 PRJNA315608 + amplicon rabbit SRR3271578 PRJNA315608 + amplicon rabbit SRR3271579 PRJNA315608 + amplicon rabbit SRR3271580 PRJNA315608 + amplicon rabbit SRR3271581 PRJNA315608 + amplicon rabbit SRR3271582 PRJNA315608 + amplicon rabbit SRR3271583 PRJNA315608 + amplicon rabbit SRR3271584 PRJNA315608 + amplicon rabbit SRR3271585 PRJNA315608 + amplicon Unknown SRR5282642 PRJNA376544 + amplicon Unknown SRR5282643 PRJNA376544 + amplicon Unknown SRR5282644 PRJNA376544 + amplicon Unknown SRR5282645 PRJNA376544 + amplicon Unknown SRR5282646 PRJNA376544 + amplicon Unknown SRR5282647 PRJNA376544 + amplicon Unknown SRR5282648 PRJNA376544 + amplicon Unknown SRR5282649 PRJNA376544 + amplicon Unknown SRR5282650 PRJNA376544 + amplicon Unknown SRR5282651 PRJNA376544 + amplicon Unknown SRR5282652 PRJNA376544 + amplicon Unknown SRR5282653 PRJNA376544 + amplicon Unknown SRR5282654 PRJNA376544 + amplicon Unknown SRR5282655 PRJNA376544 + amplicon Unknown SRR5282656 PRJNA376544 + amplicon Unknown SRR5282657 PRJNA376544 + amplicon rabbit SRR5627587 PRJNA387719 + amplicon rabbit SRR5627588 PRJNA387719 + amplicon rabbit SRR5627589 PRJNA387719 + amplicon rabbit SRR5627590 PRJNA387719 + amplicon rabbit SRR5627592 PRJNA387719 + amplicon rabbit SRR5627593 PRJNA387719 + amplicon rabbit SRR5627594 PRJNA387719 + amplicon rabbit SRR5627595 PRJNA387719 + amplicon rabbit SRR5627596 PRJNA387719 + amplicon rabbit SRR5627597 PRJNA387719 + amplicon sheep SRR5627598 PRJNA387719 + amplicon sheep SRR5627599 PRJNA387719 + amplicon sheep SRR5627600 PRJNA387719 + amplicon rabbit SRR5627601 PRJNA387719 + amplicon rabbit SRR5627602 PRJNA387719 + amplicon rabbit SRR5627603 PRJNA387719 + amplicon rabbit SRR5627604 PRJNA387719 + amplicon sheep SRR5627605 PRJNA387719 + amplicon sheep SRR5627606 PRJNA387719 + amplicon goat SRR5874491 PRJNA395955 + amplicon goat SRR5874492 PRJNA395955 + amplicon goat SRR5874493 PRJNA395955 + amplicon goat SRR5874494 PRJNA395955 + amplicon goat SRR5874495 PRJNA395955 + amplicon goat SRR5874496 PRJNA395955 + amplicon goat SRR5874497 PRJNA395955 + amplicon goat SRR5874498 PRJNA395955 + amplicon goat SRR5874499 PRJNA395955 + amplicon goat SRR5874500 PRJNA395955 + amplicon goat SRR5874501 PRJNA395955 + amplicon goat SRR5874502 PRJNA395955 + amplicon goat SRR5874503 PRJNA395955 + amplicon goat SRR5874504 PRJNA395955 + amplicon goat SRR5874505 PRJNA395955 + amplicon goat SRR5874506 PRJNA395955 + amplicon goat SRR5874507 PRJNA395955 + amplicon goat SRR5874508 PRJNA395955 + amplicon goat SRR5874509 PRJNA395955 + amplicon goat SRR5874510 PRJNA395955 + amplicon goat SRR5874511 PRJNA395955 + amplicon goat SRR5874512 PRJNA395955 + amplicon goat SRR5874513 PRJNA395955 + amplicon goat SRR5874514 PRJNA395955 + amplicon goat SRR5874515 PRJNA395955 + amplicon goat SRR5874516 PRJNA395955 + amplicon goat SRR5874517 PRJNA395955 + amplicon goat SRR5874518 PRJNA395955 + amplicon goat SRR5874519 PRJNA395955 + amplicon goat SRR5874520 PRJNA395955 + amplicon goat SRR5874521 PRJNA395955 + amplicon goat SRR5874522 PRJNA395955 + amplicon goat SRR5874523 PRJNA395955 + amplicon goat SRR5874524 PRJNA395955 + amplicon goat SRR5874525 PRJNA395955 + amplicon goat SRR5874526 PRJNA395955 + amplicon goat SRR5874527 PRJNA395955 + amplicon goat SRR5874528 PRJNA395955 + amplicon goat SRR5874529 PRJNA395955 + amplicon goat SRR5874530 PRJNA395955 + amplicon goat SRR5874531 PRJNA395955 + amplicon goat SRR5874532 PRJNA395955 + amplicon goat SRR5874533 PRJNA395955 + amplicon goat SRR5874534 PRJNA395955 + amplicon goat SRR5874535 PRJNA395955 + amplicon goat SRR5874536 PRJNA395955 + amplicon goat SRR5874537 PRJNA395955 + amplicon goat SRR5874538 PRJNA395955 + amplicon goat SRR5874539 PRJNA395955 + amplicon goat SRR5874540 PRJNA395955 + amplicon goat SRR5874541 PRJNA395955 + amplicon goat SRR5874542 PRJNA395955 + amplicon goat SRR5874543 PRJNA395955 + amplicon goat SRR5874544 PRJNA395955 + amplicon goat SRR5874545 PRJNA395955 + amplicon goat SRR5874546 PRJNA395955 + amplicon goat SRR5874547 PRJNA395955 + amplicon goat SRR5874548 PRJNA395955 + amplicon goat SRR5874549 PRJNA395955 + amplicon goat SRR5874550 PRJNA395955 + amplicon horse SRR5937810 PRJNA322656 + amplicon horse SRR5937811 PRJNA322656 + amplicon horse SRR5937812 PRJNA322656 + amplicon horse SRR5937813 PRJNA322656 + amplicon horse SRR5937814 PRJNA322656 + amplicon horse SRR5937815 PRJNA322656 + amplicon horse SRR5937816 PRJNA322656 + amplicon horse SRR5937817 PRJNA322656 + amplicon horse SRR5937818 PRJNA322656 + amplicon horse SRR5937819 PRJNA322656 + amplicon horse SRR5937820 PRJNA322656 + amplicon horse SRR5937821 PRJNA322656 + amplicon horse SRR5937822 PRJNA322656 + amplicon horse SRR5937823 PRJNA322656 + amplicon horse SRR5937824 PRJNA322656 + amplicon horse SRR5937825 PRJNA322656 + amplicon horse SRR5937826 PRJNA322656 + amplicon horse SRR5937827 PRJNA322656 + amplicon horse SRR5937828 PRJNA322656 + amplicon horse SRR5937829 PRJNA322656 + amplicon horse SRR5937830 PRJNA322656 + amplicon horse SRR5937831 PRJNA322656 + amplicon horse SRR5937832 PRJNA322656 + amplicon horse SRR5937833 PRJNA322656 + amplicon horse SRR5937834 PRJNA322656 + amplicon horse SRR5937835 PRJNA322656 + amplicon horse SRR5937836 PRJNA322656 + amplicon horse SRR5937837 PRJNA322656 + amplicon horse SRR5937838 PRJNA322656 + amplicon horse SRR5937839 PRJNA322656 + amplicon horse SRR5937840 PRJNA322656 + amplicon horse SRR5937841 PRJNA322656 + amplicon horse SRR5937842 PRJNA322656 + amplicon horse SRR5937843 PRJNA322656 + amplicon horse SRR5937844 PRJNA322656 + amplicon horse SRR5937845 PRJNA322656 + amplicon horse SRR5937846 PRJNA322656 + amplicon horse SRR5937847 PRJNA322656 + amplicon horse SRR5937848 PRJNA322656 + amplicon horse SRR5937849 PRJNA322656 + amplicon horse SRR5937850 PRJNA322656 + amplicon horse SRR5937851 PRJNA322656 + amplicon horse SRR5937852 PRJNA322656 + amplicon horse SRR5937853 PRJNA322656 + amplicon horse SRR5937854 PRJNA322656 + amplicon horse SRR5937855 PRJNA322656 + amplicon horse SRR5937856 PRJNA322656 + amplicon horse SRR5937857 PRJNA322656 + amplicon horse SRR5937858 PRJNA322656 + amplicon horse SRR5937859 PRJNA322656 + amplicon horse SRR5937860 PRJNA322656 + amplicon horse SRR5937861 PRJNA322656 + amplicon horse SRR5937862 PRJNA322656 + amplicon horse SRR5937863 PRJNA322656 + amplicon horse SRR5937864 PRJNA322656 + amplicon horse SRR5937865 PRJNA322656 + amplicon horse SRR5937866 PRJNA322656 + amplicon horse SRR5937867 PRJNA322656 + amplicon horse SRR5937868 PRJNA322656 + amplicon horse SRR5937869 PRJNA322656 + amplicon horse SRR5937870 PRJNA322656 + amplicon horse SRR5937871 PRJNA322656 + amplicon horse SRR5937872 PRJNA322656 + amplicon horse SRR5937873 PRJNA322656 + amplicon horse SRR5937874 PRJNA322656 + amplicon horse SRR5937875 PRJNA322656 + amplicon horse SRR5937876 PRJNA322656 + amplicon horse SRR5937877 PRJNA322656 + amplicon horse SRR5937878 PRJNA322656 + amplicon horse SRR5937879 PRJNA322656 + amplicon horse SRR5937880 PRJNA322656 + amplicon horse SRR5937773 PRJNA322656 + amplicon horse SRR5937774 PRJNA322656 + amplicon horse SRR5937775 PRJNA322656 + amplicon horse SRR5937776 PRJNA322656 + amplicon horse SRR5937777 PRJNA322656 + amplicon horse SRR5937778 PRJNA322656 + amplicon horse SRR5937779 PRJNA322656 + amplicon horse SRR5937780 PRJNA322656 + amplicon horse SRR5937781 PRJNA322656 + amplicon horse SRR5937782 PRJNA322656 + amplicon horse SRR5937783 PRJNA322656 + amplicon horse SRR5937784 PRJNA322656 + amplicon horse SRR5937785 PRJNA322656 + amplicon horse SRR5937786 PRJNA322656 + amplicon horse SRR5937787 PRJNA322656 + amplicon horse SRR5937788 PRJNA322656 + amplicon horse SRR5937789 PRJNA322656 + amplicon horse SRR5937791 PRJNA322656 + amplicon horse SRR5937792 PRJNA322656 + amplicon horse SRR5937793 PRJNA322656 + amplicon horse SRR5937794 PRJNA322656 + amplicon horse SRR5937795 PRJNA322656 + amplicon horse SRR5937796 PRJNA322656 + amplicon horse SRR5937797 PRJNA322656 + amplicon horse SRR5937798 PRJNA322656 + amplicon horse SRR5937799 PRJNA322656 + amplicon horse SRR5937800 PRJNA322656 + amplicon horse SRR5937801 PRJNA322656 + amplicon horse SRR5937802 PRJNA322656 + amplicon horse SRR5937803 PRJNA322656 + amplicon horse SRR5937804 PRJNA322656 + amplicon horse SRR5937805 PRJNA322656 + amplicon horse SRR5937807 PRJNA322656 + amplicon horse SRR5937808 PRJNA322656 + amplicon horse SRR5937809 PRJNA322656 + amplicon goat SRR5969147 PRJNA393234 + amplicon goat SRR5969148 PRJNA393234 + amplicon goat SRR5969120 PRJNA393234 + amplicon goat SRR5969119 PRJNA393234 + amplicon goat SRR5969104 PRJNA393234 + amplicon goat SRR5969126 PRJNA393234 + amplicon goat SRR5969125 PRJNA393234 + amplicon goat SRR5969123 PRJNA393234 + amplicon goat SRR5969116 PRJNA393234 + amplicon goat SRR5969115 PRJNA393234 + amplicon goat SRR5969145 PRJNA393234 + amplicon goat SRR5969146 PRJNA393234 + amplicon goat SRR5969110 PRJNA393234 + amplicon goat SRR5969122 PRJNA393234 + amplicon goat SRR5969121 PRJNA393234 + amplicon rabbit SRR7224781 PRJNA473064 + amplicon rabbit SRR7224782 PRJNA473064 + amplicon rabbit SRR7224783 PRJNA473064 + amplicon rabbit SRR7224784 PRJNA473064 + amplicon rabbit SRR7224785 PRJNA473064 + amplicon rabbit SRR7224786 PRJNA473064 + amplicon rabbit SRR7224787 PRJNA473064 + amplicon rabbit SRR7224788 PRJNA473064 + amplicon rabbit SRR7224789 PRJNA473064 + amplicon rabbit SRR7224790 PRJNA473064 + amplicon rabbit SRR7224791 PRJNA473064 + amplicon rabbit SRR7224792 PRJNA473064 + amplicon rabbit SRR7224793 PRJNA473064 + amplicon rabbit SRR7224794 PRJNA473064 + amplicon rabbit SRR7224795 PRJNA473064 + amplicon rabbit SRR7224796 PRJNA473064 + amplicon rabbit SRR7224797 PRJNA473064 + amplicon rabbit SRR7224798 PRJNA473064 + amplicon rabbit SRR7224799 PRJNA473064 + amplicon rabbit SRR7224800 PRJNA473064 + amplicon rabbit SRR7224801 PRJNA473064 + amplicon rabbit SRR7224802 PRJNA473064 + amplicon rabbit SRR7224803 PRJNA473064 + amplicon rabbit SRR7224804 PRJNA473064 + amplicon rabbit SRR7224805 PRJNA473064 + amplicon rabbit SRR7224806 PRJNA473064 + amplicon rabbit SRR7224807 PRJNA473064 + amplicon rabbit SRR7224808 PRJNA473064 + amplicon rabbit SRR7224809 PRJNA473064 + amplicon rabbit SRR7224810 PRJNA473064 + amplicon rabbit SRR7224811 PRJNA473064 + amplicon rabbit SRR7224812 PRJNA473064 + amplicon rabbit SRR7224813 PRJNA473064 + amplicon rabbit SRR7224814 PRJNA473064 + amplicon rabbit SRR7224815 PRJNA473064 + amplicon rabbit SRR7224816 PRJNA473064 + amplicon rabbit SRR7224817 PRJNA473064 + amplicon rabbit SRR7224818 PRJNA473064 + amplicon rabbit SRR7224819 PRJNA473064 + amplicon rabbit SRR7224820 PRJNA473064 + amplicon rabbit SRR7224821 PRJNA473064 + amplicon rabbit SRR7224822 PRJNA473064 + amplicon goat SRR7870731 PRJNA491591 + amplicon goat SRR7870732 PRJNA491591 + amplicon goat SRR7870733 PRJNA491591 + amplicon goat SRR7870734 PRJNA491591 + amplicon goat SRR7870735 PRJNA491591 + amplicon goat SRR7870736 PRJNA491591 + amplicon goat SRR7870737 PRJNA491591 + amplicon goat SRR7870738 PRJNA491591 + amplicon goat SRR7870739 PRJNA491591 + amplicon goat SRR7870740 PRJNA491591 + amplicon goat SRR7870741 PRJNA491591 + amplicon goat SRR7870742 PRJNA491591 + amplicon goat SRR7870743 PRJNA491591 + amplicon goat SRR7870744 PRJNA491591 + amplicon goat SRR7870745 PRJNA491591 + amplicon goat SRR7870746 PRJNA491591 + amplicon goat SRR7870747 PRJNA491591 + amplicon goat SRR7870748 PRJNA491591 + amplicon goat SRR7870749 PRJNA491591 + amplicon goat SRR7870750 PRJNA491591 + amplicon goat SRR7870751 PRJNA491591 + amplicon goat SRR7870752 PRJNA491591 + amplicon goat SRR7870753 PRJNA491591 + amplicon goat SRR7870754 PRJNA491591 + amplicon goat SRR7870755 PRJNA491591 + amplicon goat SRR7870756 PRJNA491591 + amplicon goat SRR7870757 PRJNA491591 + amplicon goat SRR7870758 PRJNA491591 + amplicon goat SRR7870759 PRJNA491591 + amplicon goat SRR7870760 PRJNA491591 + amplicon goat SRR7870761 PRJNA491591 + amplicon goat SRR7870762 PRJNA491591 + amplicon goat SRR7870763 PRJNA491591 + amplicon goat SRR7870764 PRJNA491591 + amplicon goat SRR7870765 PRJNA491591 + amplicon goat SRR7870766 PRJNA491591 + amplicon goat SRR7870767 PRJNA491591 + amplicon goat SRR7870768 PRJNA491591 + amplicon goat SRR7870769 PRJNA491591 + amplicon goat SRR7870770 PRJNA491591 + amplicon goat SRR7870771 PRJNA491591 + amplicon goat SRR7870772 PRJNA491591 + amplicon goat SRR7870773 PRJNA491591 + amplicon goat SRR7870774 PRJNA491591 + amplicon goat SRR7870775 PRJNA491591 + amplicon goat SRR7870776 PRJNA491591 + amplicon goat SRR7870777 PRJNA491591 + amplicon goat SRR7870778 PRJNA491591 + amplicon goat SRR7870779 PRJNA491591 + amplicon goat SRR7870780 PRJNA491591 + amplicon goat SRR7870781 PRJNA491591 + amplicon horse SRR8304266 PRJNA509648 + amplicon horse SRR8304267 PRJNA509648 + amplicon horse SRR8304268 PRJNA509648 + amplicon horse SRR8304269 PRJNA509648 + amplicon horse SRR8304270 PRJNA509648 + amplicon horse SRR8304271 PRJNA509648 + amplicon horse SRR8304272 PRJNA509648 + amplicon horse SRR8304273 PRJNA509648 + amplicon horse SRR8304274 PRJNA509648 + amplicon horse SRR8304275 PRJNA509648 + amplicon horse SRR8304276 PRJNA509648 + amplicon horse SRR8304277 PRJNA509648 + amplicon horse SRR8304278 PRJNA509648 + amplicon horse SRR8304279 PRJNA509648 + amplicon horse SRR8304280 PRJNA509648 + amplicon horse SRR8304281 PRJNA509648 + amplicon horse SRR8304282 PRJNA509648 + amplicon horse SRR8304283 PRJNA509648 + amplicon horse SRR8304284 PRJNA509648 + amplicon horse SRR8304285 PRJNA509648 + amplicon horse SRR8304286 PRJNA509648 + amplicon horse SRR8304287 PRJNA509648 + amplicon horse SRR8304288 PRJNA509648 + amplicon horse SRR8304289 PRJNA509648 + amplicon horse SRR8304290 PRJNA509648 + amplicon horse SRR8304291 PRJNA509648 + amplicon horse SRR8304292 PRJNA509648 + amplicon horse SRR8304293 PRJNA509648 + amplicon horse SRR8304294 PRJNA509648 + amplicon horse SRR8304295 PRJNA509648 + amplicon horse SRR8304296 PRJNA509648 + amplicon horse SRR8304297 PRJNA509648 + amplicon horse SRR8304298 PRJNA509648 + amplicon horse SRR8304299 PRJNA509648 + amplicon horse SRR8304300 PRJNA509648 + amplicon horse SRR8304301 PRJNA509648 + amplicon horse SRR8304302 PRJNA509648 + amplicon horse SRR8304303 PRJNA509648 + amplicon horse SRR8304304 PRJNA509648 + amplicon horse SRR8304305 PRJNA509648 + amplicon horse SRR8304306 PRJNA509648 + amplicon horse SRR8304307 PRJNA509648 + amplicon horse SRR8304308 PRJNA509648 + amplicon horse SRR8304309 PRJNA509648 + amplicon horse SRR8304310 PRJNA509648 + amplicon horse SRR8304311 PRJNA509648 + amplicon horse SRR8304312 PRJNA509648 + amplicon horse SRR8304313 PRJNA509648 + amplicon horse SRR8304314 PRJNA509648 + amplicon horse SRR8304315 PRJNA509648 + amplicon horse SRR8304316 PRJNA509648 + amplicon horse SRR8304317 PRJNA509648 + amplicon horse SRR8304318 PRJNA509648 + amplicon horse SRR8304319 PRJNA509648 + amplicon horse SRR8304320 PRJNA509648 + amplicon horse SRR8304321 PRJNA509648 + amplicon horse SRR8304322 PRJNA509648 + amplicon horse SRR8304323 PRJNA509648 + amplicon horse SRR8304324 PRJNA509648 + amplicon horse SRR8304325 PRJNA509648 + amplicon horse SRR8304326 PRJNA509648 + amplicon horse SRR8304327 PRJNA509648 + amplicon horse SRR8304328 PRJNA509648 + amplicon horse SRR8304329 PRJNA509648 + amplicon horse SRR8304330 PRJNA509648 + amplicon horse SRR8304331 PRJNA509648 + amplicon horse SRR8304332 PRJNA509648 + amplicon horse SRR8304333 PRJNA509648 + amplicon horse SRR8304334 PRJNA509648 + amplicon horse SRR8304335 PRJNA509648 + amplicon horse SRR8304336 PRJNA509648 + amplicon horse SRR8304337 PRJNA509648 + amplicon horse SRR8304338 PRJNA509648 + amplicon horse SRR8304339 PRJNA509648 + amplicon horse SRR8304340 PRJNA509648 + amplicon horse SRR8304341 PRJNA509648 + amplicon horse SRR8304342 PRJNA509648 + amplicon horse SRR8304343 PRJNA509648 + amplicon horse SRR8304344 PRJNA509648 + amplicon horse SRR8304345 PRJNA509648 + amplicon horse SRR8304346 PRJNA509648 + amplicon horse SRR8304347 PRJNA509648 + amplicon horse SRR8304348 PRJNA509648 + amplicon horse SRR8304349 PRJNA509648 + amplicon horse SRR8304350 PRJNA509648 + amplicon horse SRR8304351 PRJNA509648 + amplicon horse SRR8304352 PRJNA509648 + amplicon horse SRR8304353 PRJNA509648 + amplicon horse SRR8304354 PRJNA509648 + amplicon horse SRR8304355 PRJNA509648 + amplicon horse SRR8304356 PRJNA509648 + amplicon horse SRR8304357 PRJNA509648 + amplicon horse SRR8304358 PRJNA509648 + amplicon horse SRR8304359 PRJNA509648 + amplicon horse SRR8304360 PRJNA509648 + amplicon horse SRR8304361 PRJNA509648 + amplicon horse SRR8304362 PRJNA509648 + amplicon horse SRR8304363 PRJNA509648 + amplicon horse SRR8304364 PRJNA509648 + amplicon horse SRR8304365 PRJNA509648 + amplicon horse SRR8304366 PRJNA509648 + amplicon horse SRR8304367 PRJNA509648 + amplicon horse SRR8304368 PRJNA509648 + amplicon horse SRR8304369 PRJNA509648 + amplicon horse SRR8304370 PRJNA509648 + amplicon horse SRR8304371 PRJNA509648 + amplicon horse SRR8304372 PRJNA509648 + amplicon horse SRR8304373 PRJNA509648 + amplicon horse SRR8304374 PRJNA509648 + amplicon horse SRR8304375 PRJNA509648 + amplicon horse SRR8304376 PRJNA509648 + amplicon horse SRR8304377 PRJNA509648 + amplicon horse SRR8304378 PRJNA509648 + amplicon horse SRR8304379 PRJNA509648 + amplicon horse SRR8304380 PRJNA509648 + amplicon horse SRR8304381 PRJNA509648 + amplicon horse SRR8304382 PRJNA509648 + amplicon horse SRR8304383 PRJNA509648 + amplicon horse SRR8304384 PRJNA509648 + amplicon horse SRR8304385 PRJNA509648 + amplicon horse SRR8304386 PRJNA509648 + amplicon horse SRR8304387 PRJNA509648 + amplicon horse SRR8304388 PRJNA509648 + amplicon horse SRR8304389 PRJNA509648 + amplicon horse SRR8304390 PRJNA509648 + amplicon horse SRR8304391 PRJNA509648 + amplicon horse SRR8304392 PRJNA509648 + amplicon horse SRR8304393 PRJNA509648 + amplicon horse SRR8304394 PRJNA509648 + amplicon horse SRR8304395 PRJNA509648 + amplicon horse SRR8304396 PRJNA509648 + amplicon horse SRR8304397 PRJNA509648 + amplicon horse SRR8304398 PRJNA509648 + amplicon horse SRR8304399 PRJNA509648 + amplicon horse SRR8304400 PRJNA509648 + amplicon horse SRR8304401 PRJNA509648 + amplicon horse SRR8304402 PRJNA509648 + amplicon horse SRR8304403 PRJNA509648 + amplicon horse SRR8304404 PRJNA509648 + amplicon horse SRR8304405 PRJNA509648 + amplicon horse SRR8304406 PRJNA509648 + amplicon horse SRR8304407 PRJNA509648 + amplicon horse SRR8304408 PRJNA509648 + amplicon horse SRR8304409 PRJNA509648 + amplicon horse SRR8304410 PRJNA509648 + amplicon horse SRR8304411 PRJNA509648 + amplicon horse SRR8304412 PRJNA509648 + amplicon horse SRR8304413 PRJNA509648 + amplicon horse SRR8304414 PRJNA509648 + amplicon horse SRR8304415 PRJNA509648 + amplicon horse SRR8304416 PRJNA509648 + amplicon horse SRR8304417 PRJNA509648 + amplicon horse SRR8304418 PRJNA509648 + amplicon horse SRR8304419 PRJNA509648 + amplicon horse SRR8304420 PRJNA509648 + amplicon horse SRR8304421 PRJNA509648 + amplicon horse SRR8304422 PRJNA509648 + amplicon horse SRR8304423 PRJNA509648 + amplicon horse SRR8304424 PRJNA509648 + amplicon horse SRR8304425 PRJNA509648 + amplicon horse SRR8304426 PRJNA509648 + amplicon horse SRR8304427 PRJNA509648 + amplicon horse SRR8304428 PRJNA509648 + amplicon horse SRR8304429 PRJNA509648 + amplicon horse SRR8304430 PRJNA509648 + amplicon horse SRR8304431 PRJNA509648 + amplicon horse SRR8304432 PRJNA509648 + amplicon horse SRR8304433 PRJNA509648 + amplicon horse SRR8304434 PRJNA509648 + amplicon horse SRR8304435 PRJNA509648 + amplicon horse SRR8304436 PRJNA509648 + amplicon horse SRR8304437 PRJNA509648 + amplicon horse SRR8304438 PRJNA509648 + amplicon horse SRR8304439 PRJNA509648 + amplicon horse SRR8304440 PRJNA509648 + amplicon horse SRR8304441 PRJNA509648 + amplicon horse SRR8304442 PRJNA509648 + amplicon horse SRR8304443 PRJNA509648 + amplicon horse SRR8304444 PRJNA509648 + amplicon horse SRR8304445 PRJNA509648 + amplicon horse SRR8304446 PRJNA509648 + amplicon horse SRR8304447 PRJNA509648 + amplicon horse SRR8304448 PRJNA509648 + amplicon horse SRR8304449 PRJNA509648 + amplicon horse SRR8304450 PRJNA509648 + amplicon horse SRR8304451 PRJNA509648 + amplicon horse SRR8304452 PRJNA509648 + amplicon horse SRR8304453 PRJNA509648 + amplicon horse SRR8304454 PRJNA509648 + amplicon horse SRR8304455 PRJNA509648 + amplicon horse SRR8304456 PRJNA509648 + amplicon horse SRR8304457 PRJNA509648 + amplicon horse SRR8304458 PRJNA509648 + amplicon horse SRR8304459 PRJNA509648 + amplicon horse SRR8304460 PRJNA509648 + amplicon horse SRR8304461 PRJNA509648 + amplicon horse SRR8304462 PRJNA509648 + amplicon horse SRR8304463 PRJNA509648 + amplicon horse SRR8304464 PRJNA509648 + amplicon horse SRR8304465 PRJNA509648 + amplicon horse SRR8304466 PRJNA509648 + amplicon horse SRR8304467 PRJNA509648 + amplicon horse SRR8304468 PRJNA509648 + amplicon rabbit SRR8375806 PRJNA512067 + amplicon rabbit SRR8375807 PRJNA512067 + amplicon rabbit SRR8375808 PRJNA512067 + amplicon rabbit SRR8375809 PRJNA512067 + amplicon rabbit SRR8375810 PRJNA512067 + amplicon rabbit SRR8375811 PRJNA512067 + amplicon rabbit SRR8375812 PRJNA512067 + amplicon rabbit SRR8375813 PRJNA512067 + amplicon rabbit SRR8375814 PRJNA512067 + amplicon rabbit SRR8375815 PRJNA512067 + amplicon rabbit SRR8375816 PRJNA512067 + amplicon rabbit SRR8375817 PRJNA512067 + amplicon rabbit SRR8375818 PRJNA512067 + amplicon rabbit SRR8375819 PRJNA512067 + amplicon rabbit SRR8375820 PRJNA512067 + amplicon rabbit SRR8375821 PRJNA512067 + amplicon rabbit SRR8375822 PRJNA512067 + amplicon rabbit SRR8375823 PRJNA512067 + amplicon rabbit SRR8375824 PRJNA512067 + amplicon rabbit SRR8375825 PRJNA512067 + amplicon rabbit SRR8375826 PRJNA512067 + amplicon rabbit SRR8375827 PRJNA512067 + amplicon rabbit SRR8375828 PRJNA512067 + amplicon rabbit SRR8375829 PRJNA512067 + amplicon rabbit SRR8375830 PRJNA512067 + amplicon rabbit SRR8375831 PRJNA512067 + amplicon rabbit SRR8375832 PRJNA512067 + amplicon rabbit SRR8375833 PRJNA512067 + amplicon rabbit SRR8375834 PRJNA512067 + amplicon rabbit SRR8375835 PRJNA512067 + amplicon rabbit SRR8375836 PRJNA512067 + amplicon rabbit SRR8375837 PRJNA512067 + amplicon rabbit SRR8375838 PRJNA512067 + amplicon rabbit SRR8375839 PRJNA512067 + amplicon rabbit SRR8375840 PRJNA512067 + amplicon rabbit SRR8375841 PRJNA512067 + amplicon rabbit SRR8375842 PRJNA512067 + amplicon rabbit SRR8375843 PRJNA512067 + amplicon rabbit SRR8375844 PRJNA512067 + amplicon rabbit SRR8375845 PRJNA512067 + amplicon rabbit SRR8375846 PRJNA512067 + amplicon rabbit SRR8375847 PRJNA512067 + amplicon rabbit SRR8375848 PRJNA512067 + amplicon rabbit SRR8375849 PRJNA512067 + amplicon rabbit SRR8375850 PRJNA512067 + amplicon rabbit SRR8375851 PRJNA512067 + amplicon rabbit SRR8375852 PRJNA512067 + amplicon rabbit SRR8375853 PRJNA512067 + amplicon rabbit SRR8375854 PRJNA512067 + amplicon rabbit SRR8375855 PRJNA512067 + amplicon rabbit SRR8375856 PRJNA512067 + amplicon rabbit SRR8375857 PRJNA512067 + amplicon rabbit SRR8375858 PRJNA512067 + amplicon rabbit SRR8375859 PRJNA512067 + amplicon rabbit SRR8375860 PRJNA512067 + amplicon rabbit SRR8375861 PRJNA512067 + amplicon rabbit SRR8375862 PRJNA512067 + amplicon rabbit SRR8375863 PRJNA512067 + amplicon rabbit SRR8375864 PRJNA512067 + amplicon rabbit SRR8375865 PRJNA512067 + amplicon rabbit SRR8375866 PRJNA512067 + amplicon rabbit SRR8375867 PRJNA512067 + amplicon rabbit SRR8375868 PRJNA512067 + amplicon rabbit SRR8375869 PRJNA512067 + amplicon rabbit SRR8375870 PRJNA512067 + amplicon rabbit SRR8375871 PRJNA512067 + amplicon rabbit SRR8375872 PRJNA512067 + amplicon rabbit SRR8375873 PRJNA512067 + amplicon rabbit SRR8375874 PRJNA512067 + amplicon rabbit SRR8375875 PRJNA512067 + amplicon rabbit SRR8375876 PRJNA512067 + amplicon rabbit SRR8375877 PRJNA512067 + amplicon rabbit SRR8375878 PRJNA512067 + amplicon rabbit SRR8375879 PRJNA512067 + amplicon rabbit SRR8375880 PRJNA512067 + amplicon rabbit SRR8375881 PRJNA512067 + amplicon rabbit SRR8375882 PRJNA512067 + amplicon rabbit SRR8375883 PRJNA512067 + amplicon rabbit SRR8375884 PRJNA512067 + amplicon rabbit SRR8375885 PRJNA512067 + amplicon rabbit SRR8375886 PRJNA512067 + amplicon rabbit SRR8375887 PRJNA512067 + amplicon Unknown SRR8561258 PRJNA521585 + amplicon Unknown SRR8561260 PRJNA521585 + amplicon Unknown SRR8561262 PRJNA521585 + amplicon Unknown SRR8561266 PRJNA521585 + amplicon Unknown SRR8561268 PRJNA521585 + amplicon Unknown SRR8561269 PRJNA521585 + amplicon Unknown SRR8561271 PRJNA521585 + amplicon Unknown SRR8561273 PRJNA521585 + amplicon Unknown SRR8561276 PRJNA521585 + amplicon Unknown SRR8561279 PRJNA521585 + amplicon Unknown SRR8561282 PRJNA521585 + amplicon Unknown SRR8561283 PRJNA521585 + amplicon Unknown SRR8561285 PRJNA521585 + amplicon Unknown SRR8561288 PRJNA521585 + amplicon Unknown SRR8561290 PRJNA521585 + amplicon Unknown SRR8561291 PRJNA521585 + amplicon Unknown SRR8561293 PRJNA521585 + amplicon Unknown SRR8561294 PRJNA521585 + amplicon Unknown SRR8561297 PRJNA521585 + amplicon Unknown SRR8561299 PRJNA521585 + amplicon Unknown SRR8561300 PRJNA521585 + amplicon Unknown SRR8561301 PRJNA521585 + amplicon Unknown SRR8561303 PRJNA521585 + amplicon Unknown SRR8561305 PRJNA521585 + amplicon Unknown SRR8561307 PRJNA521585 + amplicon Unknown SRR8561312 PRJNA521585 + amplicon Unknown SRR8561313 PRJNA521585 + amplicon Unknown SRR8561314 PRJNA521585 + amplicon Unknown SRR8561316 PRJNA521585 + amplicon Unknown SRR8561317 PRJNA521585 + amplicon Unknown SRR8561318 PRJNA521585 + amplicon Unknown SRR8561321 PRJNA521585 + amplicon Unknown SRR8561324 PRJNA521585 + amplicon Unknown SRR8561326 PRJNA521585 + amplicon Unknown SRR8561328 PRJNA521585 + amplicon Unknown SRR8561331 PRJNA521585 + amplicon Unknown SRR8561257 PRJNA521585 + amplicon Unknown SRR8561259 PRJNA521585 + amplicon Unknown SRR8561261 PRJNA521585 + amplicon Unknown SRR8561263 PRJNA521585 + amplicon Unknown SRR8561264 PRJNA521585 + amplicon Unknown SRR8561265 PRJNA521585 + amplicon Unknown SRR8561267 PRJNA521585 + amplicon Unknown SRR8561270 PRJNA521585 + amplicon Unknown SRR8561272 PRJNA521585 + amplicon Unknown SRR8561274 PRJNA521585 + amplicon Unknown SRR8561275 PRJNA521585 + amplicon Unknown SRR8561277 PRJNA521585 + amplicon Unknown SRR8561278 PRJNA521585 + amplicon Unknown SRR8561280 PRJNA521585 + amplicon Unknown SRR8561281 PRJNA521585 + amplicon Unknown SRR8561284 PRJNA521585 + amplicon Unknown SRR8561286 PRJNA521585 + amplicon Unknown SRR8561287 PRJNA521585 + amplicon Unknown SRR8561289 PRJNA521585 + amplicon Unknown SRR8561292 PRJNA521585 + amplicon Unknown SRR8561295 PRJNA521585 + amplicon Unknown SRR8561296 PRJNA521585 + amplicon Unknown SRR8561298 PRJNA521585 + amplicon Unknown SRR8561302 PRJNA521585 + amplicon Unknown SRR8561304 PRJNA521585 + amplicon Unknown SRR8561306 PRJNA521585 + amplicon Unknown SRR8561308 PRJNA521585 + amplicon Unknown SRR8561309 PRJNA521585 + amplicon Unknown SRR8561310 PRJNA521585 + amplicon Unknown SRR8561311 PRJNA521585 + amplicon Unknown SRR8561315 PRJNA521585 + amplicon Unknown SRR8561319 PRJNA521585 + amplicon Unknown SRR8561320 PRJNA521585 + amplicon Unknown SRR8561322 PRJNA521585 + amplicon Unknown SRR8561323 PRJNA521585 + amplicon Unknown SRR8561325 PRJNA521585 + amplicon Unknown SRR8561327 PRJNA521585 + amplicon Unknown SRR8561329 PRJNA521585 + amplicon Unknown SRR8561330 PRJNA521585 + amplicon rabbit SRR8640196 PRJNA524130 + amplicon rabbit SRR8640197 PRJNA524130 + amplicon rabbit SRR8640198 PRJNA524130 + amplicon rabbit SRR8640199 PRJNA524130 + amplicon rabbit SRR8640200 PRJNA524130 + amplicon rabbit SRR8640201 PRJNA524130 + amplicon rabbit SRR8640202 PRJNA524130 + amplicon rabbit SRR8640203 PRJNA524130 + amplicon rabbit SRR8640204 PRJNA524130 + amplicon rabbit SRR8640205 PRJNA524130 + amplicon rabbit SRR8640206 PRJNA524130 + amplicon rabbit SRR8640207 PRJNA524130 + amplicon rabbit SRR8640208 PRJNA524130 + amplicon rabbit SRR8640209 PRJNA524130 + amplicon rabbit SRR8640210 PRJNA524130 + amplicon rabbit SRR8640211 PRJNA524130 + amplicon rabbit SRR8640212 PRJNA524130 + amplicon rabbit SRR8640213 PRJNA524130 + amplicon rabbit SRR8640214 PRJNA524130 + amplicon rabbit SRR8640215 PRJNA524130 + amplicon rabbit SRR8640216 PRJNA524130 + amplicon rabbit SRR8640217 PRJNA524130 + amplicon rabbit SRR8640218 PRJNA524130 + amplicon rabbit SRR8640219 PRJNA524130 + amplicon rabbit SRR8640220 PRJNA524130 + amplicon rabbit SRR8640221 PRJNA524130 + amplicon rabbit SRR8640222 PRJNA524130 + amplicon rabbit SRR8640223 PRJNA524130 + amplicon rabbit SRR8640224 PRJNA524130 + amplicon rabbit SRR8640225 PRJNA524130 + amplicon rabbit SRR8640226 PRJNA524130 + amplicon rabbit SRR8640227 PRJNA524130 + amplicon rabbit SRR8640228 PRJNA524130 + amplicon rabbit SRR8640229 PRJNA524130 + amplicon rabbit SRR8640230 PRJNA524130 + amplicon rabbit SRR8640231 PRJNA524130 + amplicon rabbit SRR8640232 PRJNA524130 + amplicon rabbit SRR8640233 PRJNA524130 + amplicon rabbit SRR8640234 PRJNA524130 + amplicon rabbit SRR8640235 PRJNA524130 + amplicon rabbit SRR8640236 PRJNA524130 + amplicon rabbit SRR8640237 PRJNA524130 + amplicon rabbit SRR8640238 PRJNA524130 + amplicon rabbit SRR8640239 PRJNA524130 + amplicon rabbit SRR8640240 PRJNA524130 + amplicon rabbit SRR8640241 PRJNA524130 + amplicon rabbit SRR8640242 PRJNA524130 + amplicon rabbit SRR8640243 PRJNA524130 + amplicon rabbit SRR8640244 PRJNA524130 + amplicon rabbit SRR8640245 PRJNA524130 + amplicon rabbit SRR8640246 PRJNA524130 + amplicon rabbit SRR8640247 PRJNA524130 + amplicon rabbit SRR8640248 PRJNA524130 + amplicon rabbit SRR8640249 PRJNA524130 + amplicon rabbit SRR8640250 PRJNA524130 + amplicon rabbit SRR8640251 PRJNA524130 + amplicon rabbit SRR8640252 PRJNA524130 + amplicon rabbit SRR8640253 PRJNA524130 + amplicon rabbit SRR8640254 PRJNA524130 + amplicon rabbit SRR8640255 PRJNA524130 + amplicon rabbit SRR8640256 PRJNA524130 + amplicon rabbit SRR8640257 PRJNA524130 + amplicon rabbit SRR8640258 PRJNA524130 + amplicon rabbit SRR8640259 PRJNA524130 + amplicon rabbit SRR8640260 PRJNA524130 + amplicon rabbit SRR8640261 PRJNA524130 + amplicon rabbit SRR8640262 PRJNA524130 + amplicon rabbit SRR8640263 PRJNA524130 + amplicon rabbit SRR8640264 PRJNA524130 + amplicon rabbit SRR8640265 PRJNA524130 + amplicon rabbit SRR8640266 PRJNA524130 + amplicon rabbit SRR8640267 PRJNA524130 + amplicon rabbit SRR8640268 PRJNA524130 + amplicon rabbit SRR8640269 PRJNA524130 + amplicon rabbit SRR8640270 PRJNA524130 + amplicon rabbit SRR8640271 PRJNA524130 + amplicon rabbit SRR8640272 PRJNA524130 + amplicon rabbit SRR8640273 PRJNA524130 + amplicon rabbit SRR8640274 PRJNA524130 + amplicon rabbit SRR8640275 PRJNA524130 + amplicon rabbit SRR8640276 PRJNA524130 + amplicon rabbit SRR8640277 PRJNA524130 + amplicon rabbit SRR8640278 PRJNA524130 + amplicon rabbit SRR8640279 PRJNA524130 + amplicon rabbit SRR8640280 PRJNA524130 + amplicon rabbit SRR8640281 PRJNA524130 + amplicon rabbit SRR8640282 PRJNA524130 + amplicon rabbit SRR8640283 PRJNA524130 + amplicon rabbit SRR8640284 PRJNA524130 + amplicon rabbit SRR8640285 PRJNA524130 + amplicon rabbit SRR8640286 PRJNA524130 + amplicon rabbit SRR8640287 PRJNA524130 + amplicon rabbit SRR8640288 PRJNA524130 + amplicon rabbit SRR8640289 PRJNA524130 + amplicon rabbit SRR8640290 PRJNA524130 + amplicon rabbit SRR8640291 PRJNA524130 + amplicon rabbit SRR8640292 PRJNA524130 + amplicon rabbit SRR8640293 PRJNA524130 + amplicon rabbit SRR8640294 PRJNA524130 + amplicon rabbit SRR8640295 PRJNA524130 + amplicon rabbit SRR8640296 PRJNA524130 + amplicon rabbit SRR8640297 PRJNA524130 + amplicon rabbit SRR8640298 PRJNA524130 + amplicon rabbit SRR8640299 PRJNA524130 + amplicon rabbit SRR8640300 PRJNA524130 + amplicon rabbit SRR8640301 PRJNA524130 + amplicon rabbit SRR8640302 PRJNA524130 + amplicon rabbit SRR8640303 PRJNA524130 + amplicon rabbit SRR8640304 PRJNA524130 + amplicon rabbit SRR8640305 PRJNA524130 + amplicon rabbit SRR8640306 PRJNA524130 + amplicon rabbit SRR8640307 PRJNA524130 + amplicon rabbit SRR8640308 PRJNA524130 + amplicon rabbit SRR8640309 PRJNA524130 + amplicon rabbit SRR8640310 PRJNA524130 + amplicon rabbit SRR8640311 PRJNA524130 + amplicon rabbit SRR8640312 PRJNA524130 + amplicon rabbit SRR8640313 PRJNA524130 + amplicon rabbit SRR8640314 PRJNA524130 + amplicon rabbit SRR8640315 PRJNA524130 + amplicon rabbit SRR8640316 PRJNA524130 + amplicon rabbit SRR8640317 PRJNA524130 + amplicon rabbit SRR8640318 PRJNA524130 + amplicon rabbit SRR8640319 PRJNA524130 + amplicon rabbit SRR8640320 PRJNA524130 + amplicon rabbit SRR8640321 PRJNA524130 + amplicon rabbit SRR8640322 PRJNA524130 + amplicon rabbit SRR8640323 PRJNA524130 + amplicon rabbit SRR8640324 PRJNA524130 + amplicon rabbit SRR8640325 PRJNA524130 + amplicon rabbit SRR8640326 PRJNA524130 + amplicon rabbit SRR8640327 PRJNA524130 + amplicon rabbit SRR8640328 PRJNA524130 + amplicon rabbit SRR8640329 PRJNA524130 + amplicon rabbit SRR8640330 PRJNA524130 + amplicon rabbit SRR8640331 PRJNA524130 + amplicon rabbit SRR8640332 PRJNA524130 + amplicon rabbit SRR8640333 PRJNA524130 + amplicon rabbit SRR8640334 PRJNA524130 + amplicon rabbit SRR8640335 PRJNA524130 + amplicon rabbit SRR8640336 PRJNA524130 + amplicon rabbit SRR8640337 PRJNA524130 + amplicon rabbit SRR8640338 PRJNA524130 + amplicon rabbit SRR8640339 PRJNA524130 + amplicon rabbit SRR8640340 PRJNA524130 + amplicon rabbit SRR8640341 PRJNA524130 + amplicon rabbit SRR8640342 PRJNA524130 + amplicon rabbit SRR8640343 PRJNA524130 + amplicon rabbit SRR8640344 PRJNA524130 + amplicon rabbit SRR8640345 PRJNA524130 + amplicon rabbit SRR8640346 PRJNA524130 + amplicon rabbit SRR8640347 PRJNA524130 + amplicon rabbit SRR8640348 PRJNA524130 + amplicon rabbit SRR8640349 PRJNA524130 + amplicon rabbit SRR8640350 PRJNA524130 + amplicon rabbit SRR8640351 PRJNA524130 + amplicon rabbit SRR8640352 PRJNA524130 + amplicon rabbit SRR8640353 PRJNA524130 + amplicon rabbit SRR8640354 PRJNA524130 + amplicon rabbit SRR8640355 PRJNA524130 + amplicon rabbit SRR8640356 PRJNA524130 + amplicon rabbit SRR8640357 PRJNA524130 + amplicon rabbit SRR8640358 PRJNA524130 + amplicon rabbit SRR8640359 PRJNA524130 + amplicon rabbit SRR8640360 PRJNA524130 + amplicon rabbit SRR8640361 PRJNA524130 + amplicon rabbit SRR8640362 PRJNA524130 + amplicon rabbit SRR8640363 PRJNA524130 + amplicon rabbit SRR8640364 PRJNA524130 + amplicon rabbit SRR8640365 PRJNA524130 + amplicon rabbit SRR8640366 PRJNA524130 + amplicon rabbit SRR8640367 PRJNA524130 + amplicon rabbit SRR8640368 PRJNA524130 + amplicon rabbit SRR8640369 PRJNA524130 + amplicon rabbit SRR8640370 PRJNA524130 + amplicon rabbit SRR8640371 PRJNA524130 + amplicon rabbit SRR8640372 PRJNA524130 + amplicon rabbit SRR8640373 PRJNA524130 + amplicon rabbit SRR8640374 PRJNA524130 + amplicon rabbit SRR8640375 PRJNA524130 + amplicon rabbit SRR8640376 PRJNA524130 + amplicon rabbit SRR8640377 PRJNA524130 + amplicon rabbit SRR8640378 PRJNA524130 + amplicon rabbit SRR8640379 PRJNA524130 + amplicon rabbit SRR8640380 PRJNA524130 + amplicon rabbit SRR8640381 PRJNA524130 + amplicon rabbit SRR8640382 PRJNA524130 + amplicon rabbit SRR8640383 PRJNA524130 + amplicon rabbit SRR8640384 PRJNA524130 + amplicon rabbit SRR8640385 PRJNA524130 + amplicon rabbit SRR8640386 PRJNA524130 + amplicon rabbit SRR8640387 PRJNA524130 + amplicon rabbit SRR8640388 PRJNA524130 + amplicon rabbit SRR8640389 PRJNA524130 + amplicon rabbit SRR8640390 PRJNA524130 + amplicon rabbit SRR8640391 PRJNA524130 + amplicon rabbit SRR8640392 PRJNA524130 + amplicon rabbit SRR8640393 PRJNA524130 + amplicon rabbit SRR8640394 PRJNA524130 + amplicon rabbit SRR8640395 PRJNA524130 + amplicon rabbit SRR8640396 PRJNA524130 + amplicon rabbit SRR8640397 PRJNA524130 + amplicon rabbit SRR8640398 PRJNA524130 + amplicon rabbit SRR8640399 PRJNA524130 + amplicon rabbit SRR8640400 PRJNA524130 + amplicon rabbit SRR8640401 PRJNA524130 + amplicon rabbit SRR8640402 PRJNA524130 + amplicon rabbit SRR8640403 PRJNA524130 + amplicon rabbit SRR8640404 PRJNA524130 + amplicon rabbit SRR8640405 PRJNA524130 + amplicon rabbit SRR8640406 PRJNA524130 + amplicon rabbit SRR8640407 PRJNA524130 + amplicon rabbit SRR8640408 PRJNA524130 + amplicon rabbit SRR8640409 PRJNA524130 + amplicon rabbit SRR8640410 PRJNA524130 + amplicon rabbit SRR8640411 PRJNA524130 + amplicon rabbit SRR8640412 PRJNA524130 + amplicon rabbit SRR8640413 PRJNA524130 + amplicon rabbit SRR8640414 PRJNA524130 + amplicon rabbit SRR8640415 PRJNA524130 + amplicon rabbit SRR8640416 PRJNA524130 + amplicon rabbit SRR8640417 PRJNA524130 + amplicon rabbit SRR8640418 PRJNA524130 + amplicon rabbit SRR8640419 PRJNA524130 + amplicon rabbit SRR8640420 PRJNA524130 + amplicon rabbit SRR8640421 PRJNA524130 + amplicon rabbit SRR8640422 PRJNA524130 + amplicon rabbit SRR8640423 PRJNA524130 + amplicon rabbit SRR8640424 PRJNA524130 + amplicon rabbit SRR8640425 PRJNA524130 + amplicon rabbit SRR8640426 PRJNA524130 + amplicon rabbit SRR8640427 PRJNA524130 + amplicon rabbit SRR8640428 PRJNA524130 + amplicon rabbit SRR8640429 PRJNA524130 + amplicon rabbit SRR8640430 PRJNA524130 + amplicon rabbit SRR8640431 PRJNA524130 + amplicon rabbit SRR8640432 PRJNA524130 + amplicon rabbit SRR8640433 PRJNA524130 + amplicon rabbit SRR8640434 PRJNA524130 + amplicon rabbit SRR8640435 PRJNA524130 + amplicon rabbit SRR8640436 PRJNA524130 + amplicon rabbit SRR8640437 PRJNA524130 + amplicon rabbit SRR8640438 PRJNA524130 + amplicon rabbit SRR8640439 PRJNA524130 + amplicon rabbit SRR8640440 PRJNA524130 + amplicon rabbit SRR8640441 PRJNA524130 + amplicon rabbit SRR8640442 PRJNA524130 + amplicon rabbit SRR8640443 PRJNA524130 + amplicon rabbit SRR8640444 PRJNA524130 + amplicon rabbit SRR8640445 PRJNA524130 + amplicon rabbit SRR8640446 PRJNA524130 + amplicon rabbit SRR8640447 PRJNA524130 + amplicon rabbit SRR8640448 PRJNA524130 + amplicon rabbit SRR8640449 PRJNA524130 + amplicon rabbit SRR8640450 PRJNA524130 + amplicon rabbit SRR8640451 PRJNA524130 + amplicon rabbit SRR8640452 PRJNA524130 + amplicon rabbit SRR8640453 PRJNA524130 + amplicon rabbit SRR8640454 PRJNA524130 + amplicon rabbit SRR8640455 PRJNA524130 + amplicon rabbit SRR8640456 PRJNA524130 + amplicon rabbit SRR8640457 PRJNA524130 + amplicon rabbit SRR8640458 PRJNA524130 + amplicon rabbit SRR8640459 PRJNA524130 + amplicon rabbit SRR8640460 PRJNA524130 + amplicon rabbit SRR8640461 PRJNA524130 + amplicon rabbit SRR8640462 PRJNA524130 + amplicon rabbit SRR8640463 PRJNA524130 + amplicon rabbit SRR8640464 PRJNA524130 + amplicon rabbit SRR8640465 PRJNA524130 + amplicon rabbit SRR8640466 PRJNA524130 + amplicon rabbit SRR8640467 PRJNA524130 + amplicon rabbit SRR8640468 PRJNA524130 + amplicon rabbit SRR8640469 PRJNA524130 + amplicon rabbit SRR8640470 PRJNA524130 + amplicon rabbit SRR8640471 PRJNA524130 + amplicon rabbit SRR8640472 PRJNA524130 + amplicon rabbit SRR8640473 PRJNA524130 + amplicon rabbit SRR8640474 PRJNA524130 + amplicon rabbit SRR8640475 PRJNA524130 + amplicon rabbit SRR8640476 PRJNA524130 + amplicon rabbit SRR8640477 PRJNA524130 + amplicon rabbit SRR8640478 PRJNA524130 + amplicon rabbit SRR8640479 PRJNA524130 + amplicon rabbit SRR8640480 PRJNA524130 + amplicon rabbit SRR8640481 PRJNA524130 + amplicon rabbit SRR8640482 PRJNA524130 + amplicon rabbit SRR8640483 PRJNA524130 + amplicon rabbit SRR8640484 PRJNA524130 + amplicon rabbit SRR8640485 PRJNA524130 + amplicon rabbit SRR8640486 PRJNA524130 + amplicon rabbit SRR8640487 PRJNA524130 + amplicon rabbit SRR8640488 PRJNA524130 + amplicon rabbit SRR8640489 PRJNA524130 + amplicon rabbit SRR8640490 PRJNA524130 + amplicon rabbit SRR8640491 PRJNA524130 + amplicon rabbit SRR8640492 PRJNA524130 + amplicon rabbit SRR8640493 PRJNA524130 + amplicon rabbit SRR8640494 PRJNA524130 + amplicon rabbit SRR8640495 PRJNA524130 + amplicon rabbit SRR8640496 PRJNA524130 + amplicon rabbit SRR8640497 PRJNA524130 + amplicon rabbit SRR8640498 PRJNA524130 + amplicon rabbit SRR8640499 PRJNA524130 + amplicon rabbit SRR8640500 PRJNA524130 + amplicon rabbit SRR8640501 PRJNA524130 + amplicon rabbit SRR8640502 PRJNA524130 + amplicon rabbit SRR8640503 PRJNA524130 + amplicon rabbit SRR8640504 PRJNA524130 + amplicon rabbit SRR8640505 PRJNA524130 + amplicon rabbit SRR8640506 PRJNA524130 + amplicon rabbit SRR8640507 PRJNA524130 + amplicon rabbit SRR8640508 PRJNA524130 + amplicon rabbit SRR8640509 PRJNA524130 + amplicon rabbit SRR8640510 PRJNA524130 + amplicon rabbit SRR8640511 PRJNA524130 + amplicon rabbit SRR8640512 PRJNA524130 + amplicon rabbit SRR8640513 PRJNA524130 + amplicon rabbit SRR8640514 PRJNA524130 + amplicon rabbit SRR8640515 PRJNA524130 + amplicon rabbit SRR8640516 PRJNA524130 + amplicon rabbit SRR8640517 PRJNA524130 + amplicon rabbit SRR8640518 PRJNA524130 + amplicon rabbit SRR8640519 PRJNA524130 + amplicon rabbit SRR8640520 PRJNA524130 + amplicon rabbit SRR8640521 PRJNA524130 + amplicon rabbit SRR8640522 PRJNA524130 + amplicon rabbit SRR8640523 PRJNA524130 + amplicon rabbit SRR8640524 PRJNA524130 + amplicon rabbit SRR8640525 PRJNA524130 + amplicon rabbit SRR8640526 PRJNA524130 + amplicon rabbit SRR8640527 PRJNA524130 + amplicon rabbit SRR8640528 PRJNA524130 + amplicon rabbit SRR8640529 PRJNA524130 + amplicon rabbit SRR8640530 PRJNA524130 + amplicon rabbit SRR8640531 PRJNA524130 + amplicon rabbit SRR8640532 PRJNA524130 + amplicon rabbit SRR8640533 PRJNA524130 + amplicon rabbit SRR8640534 PRJNA524130 + amplicon rabbit SRR8640535 PRJNA524130 + amplicon rabbit SRR8640536 PRJNA524130 + amplicon rabbit SRR8640537 PRJNA524130 + amplicon rabbit SRR8640538 PRJNA524130 + amplicon rabbit SRR8640539 PRJNA524130 + amplicon rabbit SRR8640540 PRJNA524130 + amplicon rabbit SRR8640541 PRJNA524130 + amplicon rabbit SRR8640542 PRJNA524130 + amplicon rabbit SRR8640543 PRJNA524130 + amplicon rabbit SRR8640544 PRJNA524130 + amplicon rabbit SRR8640545 PRJNA524130 + amplicon rabbit SRR8640546 PRJNA524130 + amplicon rabbit SRR8640547 PRJNA524130 + amplicon rabbit SRR8640548 PRJNA524130 + amplicon rabbit SRR8640549 PRJNA524130 + amplicon rabbit SRR8640550 PRJNA524130 + amplicon rabbit SRR8640551 PRJNA524130 + amplicon rabbit SRR8640552 PRJNA524130 + amplicon rabbit SRR8640553 PRJNA524130 + amplicon rabbit SRR8640554 PRJNA524130 + amplicon rabbit SRR8640555 PRJNA524130 + amplicon rabbit SRR8640556 PRJNA524130 + amplicon rabbit SRR8640557 PRJNA524130 + amplicon rabbit SRR8640558 PRJNA524130 + amplicon rabbit SRR8640559 PRJNA524130 + amplicon rabbit SRR8640560 PRJNA524130 + amplicon rabbit SRR8640561 PRJNA524130 + amplicon rabbit SRR8640562 PRJNA524130 + amplicon rabbit SRR8640563 PRJNA524130 + amplicon rabbit SRR8640564 PRJNA524130 + amplicon rabbit SRR8640565 PRJNA524130 + amplicon rabbit SRR8640566 PRJNA524130 + amplicon rabbit SRR8640567 PRJNA524130 + amplicon rabbit SRR8640568 PRJNA524130 + amplicon rabbit SRR8640569 PRJNA524130 + amplicon rabbit SRR8640570 PRJNA524130 + amplicon rabbit SRR8640571 PRJNA524130 + amplicon rabbit SRR8640572 PRJNA524130 + amplicon rabbit SRR8640573 PRJNA524130 + amplicon rabbit SRR8640574 PRJNA524130 + amplicon rabbit SRR8640575 PRJNA524130 + amplicon rabbit SRR8640576 PRJNA524130 + amplicon rabbit SRR8640577 PRJNA524130 + amplicon rabbit SRR8640578 PRJNA524130 + amplicon rabbit SRR8640579 PRJNA524130 + amplicon rabbit SRR8640580 PRJNA524130 + amplicon rabbit SRR8640581 PRJNA524130 + amplicon rabbit SRR8640582 PRJNA524130 + amplicon rabbit SRR8640583 PRJNA524130 + amplicon rabbit SRR8640584 PRJNA524130 + amplicon rabbit SRR8640585 PRJNA524130 + amplicon rabbit SRR8640586 PRJNA524130 + amplicon rabbit SRR8640587 PRJNA524130 + amplicon rabbit SRR8640588 PRJNA524130 + amplicon rabbit SRR8640589 PRJNA524130 + amplicon rabbit SRR8640590 PRJNA524130 + amplicon rabbit SRR8640591 PRJNA524130 + amplicon rabbit SRR8640592 PRJNA524130 + amplicon rabbit SRR8640593 PRJNA524130 + amplicon rabbit SRR8640594 PRJNA524130 + amplicon rabbit SRR8640595 PRJNA524130 + amplicon rabbit SRR8640596 PRJNA524130 + amplicon rabbit SRR8640597 PRJNA524130 + amplicon rabbit SRR8640598 PRJNA524130 + amplicon rabbit SRR8640599 PRJNA524130 + amplicon rabbit SRR8640600 PRJNA524130 + amplicon rabbit SRR8640601 PRJNA524130 + amplicon rabbit SRR8640602 PRJNA524130 + amplicon rabbit SRR8640603 PRJNA524130 + amplicon rabbit SRR8640604 PRJNA524130 + amplicon rabbit SRR8640605 PRJNA524130 + amplicon rabbit SRR8640606 PRJNA524130 + amplicon rabbit SRR8640607 PRJNA524130 + amplicon rabbit SRR8640608 PRJNA524130 + amplicon rabbit SRR8640609 PRJNA524130 + amplicon rabbit SRR8640610 PRJNA524130 + amplicon rabbit SRR8640611 PRJNA524130 + amplicon rabbit SRR8640612 PRJNA524130 + amplicon rabbit SRR8640613 PRJNA524130 + amplicon rabbit SRR8640614 PRJNA524130 + amplicon rabbit SRR8640615 PRJNA524130 + amplicon rabbit SRR8640616 PRJNA524130 + amplicon rabbit SRR8640617 PRJNA524130 + amplicon rabbit SRR8640618 PRJNA524130 + amplicon rabbit SRR8640619 PRJNA524130 + amplicon rabbit SRR8640620 PRJNA524130 + amplicon rat SRR8727181 PRJNA526908 + amplicon rat SRR8727182 PRJNA526908 + amplicon rat SRR8727183 PRJNA526908 + amplicon rat SRR8727184 PRJNA526908 + amplicon rat SRR8727185 PRJNA526908 + amplicon rat SRR8727186 PRJNA526908 + amplicon rat SRR8727187 PRJNA526908 + amplicon rat SRR8727188 PRJNA526908 + amplicon rat SRR8727189 PRJNA526908 + amplicon rat SRR8727190 PRJNA526908 + amplicon rat SRR8727191 PRJNA526908 + amplicon rat SRR8727192 PRJNA526908 + amplicon rat SRR8727193 PRJNA526908 + amplicon rat SRR8727194 PRJNA526908 + amplicon rat SRR8727195 PRJNA526908 + amplicon rat SRR8727196 PRJNA526908 + amplicon rat SRR8727197 PRJNA526908 + amplicon rat SRR8727198 PRJNA526908 + amplicon rat SRR8727199 PRJNA526908 + amplicon rat SRR8727200 PRJNA526908 + amplicon rat SRR8727201 PRJNA526908 + amplicon rat SRR8727202 PRJNA526908 + amplicon rat SRR8727203 PRJNA526908 + amplicon rat SRR8727204 PRJNA526908 + amplicon rat SRR8727205 PRJNA526908 + amplicon rat SRR8727206 PRJNA526908 + amplicon rat SRR8727207 PRJNA526908 + amplicon rat SRR8727208 PRJNA526908 + amplicon rat SRR8727209 PRJNA526908 + amplicon rat SRR8727210 PRJNA526908 + amplicon rat SRR8727211 PRJNA526908 + amplicon rat SRR8727212 PRJNA526908 + amplicon rat SRR8727213 PRJNA526908 + amplicon rat SRR8727214 PRJNA526908 + amplicon rat SRR8727215 PRJNA526908 + amplicon rat SRR8727216 PRJNA526908 + amplicon rat SRR8727217 PRJNA526908 + amplicon rat SRR8727218 PRJNA526908 + amplicon rat SRR8727219 PRJNA526908 + amplicon rat SRR8727220 PRJNA526908 + amplicon rat SRR8727221 PRJNA526908 + amplicon rat SRR8727222 PRJNA526908 + amplicon rat SRR8727223 PRJNA526908 + amplicon rat SRR8727224 PRJNA526908 + amplicon rat SRR8727225 PRJNA526908 + amplicon rat SRR8727226 PRJNA526908 + amplicon rat SRR8727227 PRJNA526908 + amplicon rat SRR8727228 PRJNA526908 + amplicon rat SRR8727229 PRJNA526908 + amplicon rat SRR8727230 PRJNA526908 + amplicon rat SRR8727231 PRJNA526908 + amplicon rat SRR8727232 PRJNA526908 + amplicon rat SRR8727233 PRJNA526908 + amplicon rat SRR8727234 PRJNA526908 + amplicon rat SRR8727235 PRJNA526908 + amplicon rat SRR8727236 PRJNA526908 + amplicon rat SRR8727237 PRJNA526908 + amplicon rat SRR8727238 PRJNA526908 + amplicon rat SRR8727239 PRJNA526908 + amplicon rat SRR8727240 PRJNA526908 + amplicon goat SRR9157190 PRJNA544381 + amplicon goat SRR9157191 PRJNA544381 + amplicon goat SRR9157192 PRJNA544381 + amplicon goat SRR9157193 PRJNA544381 + amplicon goat SRR9157194 PRJNA544381 + amplicon goat SRR9157195 PRJNA544381 + amplicon goat SRR9157196 PRJNA544381 + amplicon goat SRR9157197 PRJNA544381 + amplicon goat SRR9157198 PRJNA544381 + amplicon goat SRR9157199 PRJNA544381 + amplicon goat SRR9157200 PRJNA544381 + amplicon goat SRR9157201 PRJNA544381 + amplicon goat SRR9157202 PRJNA544381 + amplicon goat SRR9157203 PRJNA544381 + amplicon goat SRR9157204 PRJNA544381 + amplicon goat SRR9157205 PRJNA544381 + amplicon goat SRR9157206 PRJNA544381 + amplicon goat SRR9157207 PRJNA544381 + amplicon rabbit SRR9720314 PRJNA555393 + amplicon rabbit SRR9720315 PRJNA555393 + amplicon rabbit SRR9720317 PRJNA555393 + amplicon rabbit SRR9720318 PRJNA555393 + amplicon rabbit SRR9720319 PRJNA555393 + amplicon horse SRR9905045 PRJNA558670 + amplicon horse SRR9905046 PRJNA558670 + amplicon horse SRR9905047 PRJNA558670 + amplicon horse SRR9905048 PRJNA558670 + amplicon horse SRR9905049 PRJNA558670 + amplicon horse SRR9905050 PRJNA558670 + amplicon horse SRR9905051 PRJNA558670 + amplicon horse SRR9905052 PRJNA558670 + amplicon horse SRR9905053 PRJNA558670 + amplicon horse SRR9905054 PRJNA558670 + amplicon horse SRR9905055 PRJNA558670 + amplicon horse SRR9905056 PRJNA558670 + amplicon horse SRR9905057 PRJNA558670 + amplicon horse SRR9905058 PRJNA558670 + amplicon horse SRR9905059 PRJNA558670 + amplicon horse SRR9905060 PRJNA558670 + amplicon horse SRR9905061 PRJNA558670 + amplicon horse SRR9905062 PRJNA558670 + amplicon horse SRR9905063 PRJNA558670 + amplicon horse SRR9905064 PRJNA558670 + amplicon horse SRR9905065 PRJNA558670 + amplicon horse SRR9905066 PRJNA558670 + amplicon horse SRR9905067 PRJNA558670 + amplicon goat SRR10341801 PRJNA579264 + amplicon goat SRR10341802 PRJNA579264 + amplicon goat SRR10341803 PRJNA579264 + amplicon goat SRR10341804 PRJNA579264 + amplicon goat SRR10341805 PRJNA579264 + amplicon goat SRR10341806 PRJNA579264 + amplicon goat SRR10341807 PRJNA579264 + amplicon goat SRR10341808 PRJNA579264 + amplicon goat SRR10341809 PRJNA579264 + amplicon goat SRR10341810 PRJNA579264 + amplicon goat SRR10341811 PRJNA579264 + amplicon goat SRR10341812 PRJNA579264 + amplicon goat SRR10341813 PRJNA579264 + amplicon goat SRR10341814 PRJNA579264 + amplicon goat SRR10341815 PRJNA579264 + amplicon goat SRR10341816 PRJNA579264 + amplicon goat SRR10341817 PRJNA579264 + amplicon goat SRR10341818 PRJNA579264 + amplicon goat SRR10341819 PRJNA579264 + amplicon goat SRR10341820 PRJNA579264 + amplicon goat SRR10341821 PRJNA579264 + amplicon goat SRR10341822 PRJNA579264 + amplicon goat SRR10341823 PRJNA579264 + amplicon goat SRR10341824 PRJNA579264 + amplicon goat SRR10341825 PRJNA579264 + amplicon goat SRR10341826 PRJNA579264 + amplicon goat SRR10341827 PRJNA579264 + amplicon goat SRR10341828 PRJNA579264 + amplicon goat SRR10341829 PRJNA579264 + amplicon goat SRR10341830 PRJNA579264 + amplicon goat SRR10341831 PRJNA579264 + amplicon goat SRR10341832 PRJNA579264 + amplicon goat SRR10341833 PRJNA579264 + amplicon goat SRR10341834 PRJNA579264 + amplicon goat SRR10341835 PRJNA579264 + amplicon goat SRR10341836 PRJNA579264 + amplicon rabbit SRR10993853 PRJNA604120 + amplicon rabbit SRR10993854 PRJNA604120 + amplicon buffalo SRR10993871 PRJNA604120 + amplicon buffalo SRR10993872 PRJNA604120 + amplicon buffalo SRR10993873 PRJNA604120 + amplicon cow SRR10993883 PRJNA604120 + amplicon cow SRR10993885 PRJNA604120 + amplicon cow SRR10993889 PRJNA604120 + amplicon cow SRR10993890 PRJNA604120 + amplicon cow SRR10993891 PRJNA604120 + amplicon goat SRR10993879 PRJNA604120 + amplicon goat SRR11620593 PRJNA628143 + amplicon goat SRR11620594 PRJNA628143 + amplicon goat SRR11620595 PRJNA628143 + amplicon goat SRR11620596 PRJNA628143 + amplicon goat SRR11620597 PRJNA628143 + amplicon goat SRR11620598 PRJNA628143 + amplicon goat SRR11620599 PRJNA628143 + amplicon goat SRR11620600 PRJNA628143 + amplicon goat SRR11620601 PRJNA628143 + amplicon goat SRR11620602 PRJNA628143 + amplicon goat SRR11620603 PRJNA628143 + amplicon goat SRR11620604 PRJNA628143 + amplicon goat SRR11620605 PRJNA628143 + amplicon goat SRR11620606 PRJNA628143 + amplicon goat SRR11620607 PRJNA628143 + amplicon goat SRR11620608 PRJNA628143 + amplicon goat SRR11620609 PRJNA628143 + amplicon goat SRR11620610 PRJNA628143 + amplicon goat SRR11620611 PRJNA628143 + amplicon goat SRR11620612 PRJNA628143 + amplicon goat SRR11620613 PRJNA628143 + amplicon goat SRR11620614 PRJNA628143 + amplicon goat SRR11620615 PRJNA628143 + amplicon goat SRR11620616 PRJNA628143 + amplicon goat SRR11620617 PRJNA628143 + amplicon goat SRR11620618 PRJNA628143 + amplicon goat SRR11620619 PRJNA628143 + amplicon goat SRR11620620 PRJNA628143 + amplicon goat SRR11620621 PRJNA628143 + amplicon goat SRR11620622 PRJNA628143 + amplicon goat SRR11620623 PRJNA628143 + amplicon goat SRR11620624 PRJNA628143 + amplicon goat SRR11620625 PRJNA628143 + amplicon goat SRR11620626 PRJNA628143 + amplicon goat SRR11620627 PRJNA628143 + amplicon goat SRR11620628 PRJNA628143 + amplicon goat SRR11620629 PRJNA628143 + amplicon goat SRR11620630 PRJNA628143 + amplicon goat SRR11620631 PRJNA628143 + amplicon goat SRR11620632 PRJNA628143 + amplicon goat SRR11620633 PRJNA628143 + amplicon goat SRR11620634 PRJNA628143 + amplicon goat SRR11620635 PRJNA628143 + amplicon goat SRR11620636 PRJNA628143 + amplicon goat SRR11620637 PRJNA628143 + amplicon goat SRR11620638 PRJNA628143 + amplicon goat SRR11620639 PRJNA628143 + amplicon goat SRR11620640 PRJNA628143 + amplicon goat SRR11620641 PRJNA628143 + amplicon goat SRR11620642 PRJNA628143 + amplicon goat SRR11620643 PRJNA628143 + amplicon goat SRR11620644 PRJNA628143 + amplicon goat SRR11620645 PRJNA628143 + amplicon goat SRR11620646 PRJNA628143 + amplicon goat SRR11620647 PRJNA628143 + amplicon goat SRR11620648 PRJNA628143 + amplicon goat SRR11620649 PRJNA628143 + amplicon goat SRR11620650 PRJNA628143 + amplicon goat SRR11620651 PRJNA628143 + amplicon goat SRR11620652 PRJNA628143 + amplicon goat SRR11620653 PRJNA628143 + amplicon goat SRR11620654 PRJNA628143 + amplicon goat SRR11620655 PRJNA628143 + amplicon goat SRR11620656 PRJNA628143 + amplicon goat SRR11620657 PRJNA628143 + amplicon goat SRR11620658 PRJNA628143 + amplicon goat SRR11620659 PRJNA628143 + amplicon goat SRR11620660 PRJNA628143 + amplicon goat SRR11620661 PRJNA628143 + amplicon goat SRR11620662 PRJNA628143 + amplicon goat SRR11620663 PRJNA628143 + amplicon goat SRR11620664 PRJNA628143 + amplicon goat SRR11620665 PRJNA628143 + amplicon goat SRR11620666 PRJNA628143 + amplicon goat SRR11620667 PRJNA628143 + amplicon goat SRR11620668 PRJNA628143 + amplicon goat SRR11620669 PRJNA628143 + amplicon goat SRR11620670 PRJNA628143 + amplicon goat SRR11620671 PRJNA628143 + amplicon goat SRR11620672 PRJNA628143 + amplicon goat SRR11620673 PRJNA628143 + amplicon goat SRR11620674 PRJNA628143 + amplicon goat SRR11620675 PRJNA628143 + amplicon goat SRR11620676 PRJNA628143 + amplicon goat SRR11620677 PRJNA628143 + amplicon goat SRR11620678 PRJNA628143 + amplicon goat SRR11620679 PRJNA628143 + amplicon goat SRR11620680 PRJNA628143 + amplicon goat SRR11620681 PRJNA628143 + amplicon goat SRR11620682 PRJNA628143 + amplicon rabbit SRR11789818 PRJNA632844 + amplicon rabbit SRR11789819 PRJNA632844 + amplicon rabbit SRR11789820 PRJNA632844 + amplicon rabbit SRR11789821 PRJNA632844 + amplicon rabbit SRR11789822 PRJNA632844 + amplicon rabbit SRR11789823 PRJNA632844 + amplicon rabbit SRR11789824 PRJNA632844 + amplicon rabbit SRR11789825 PRJNA632844 + amplicon rabbit SRR11789826 PRJNA632844 + amplicon rabbit SRR11789827 PRJNA632844 + amplicon rabbit SRR11789828 PRJNA632844 + amplicon rabbit SRR11789829 PRJNA632844 + amplicon rabbit SRR11789830 PRJNA632844 + amplicon rabbit SRR11789831 PRJNA632844 + amplicon rabbit SRR11789832 PRJNA632844 + amplicon rabbit SRR11789833 PRJNA632844 + amplicon rabbit SRR11789834 PRJNA632844 + amplicon rabbit SRR11789835 PRJNA632844 + amplicon rabbit SRR11789836 PRJNA632844 + amplicon rabbit SRR11789837 PRJNA632844 + amplicon rabbit SRR11789838 PRJNA632844 + amplicon rabbit SRR11789839 PRJNA632844 + amplicon rabbit SRR11789840 PRJNA632844 + amplicon rabbit SRR11789841 PRJNA632844 + amplicon rabbit SRR11789842 PRJNA632844 + amplicon rabbit SRR11789843 PRJNA632844 + amplicon rabbit SRR11789844 PRJNA632844 + amplicon rabbit SRR11789845 PRJNA632844 + amplicon rabbit SRR11789846 PRJNA632844 + amplicon rabbit SRR11789847 PRJNA632844 + amplicon rabbit SRR11789848 PRJNA632844 + amplicon rabbit SRR11789849 PRJNA632844 + amplicon rabbit SRR11789850 PRJNA632844 + amplicon rabbit SRR11789851 PRJNA632844 + amplicon rabbit SRR11789852 PRJNA632844 + amplicon rabbit SRR11789853 PRJNA632844 + amplicon rabbit SRR11789854 PRJNA632844 + amplicon rabbit SRR11789855 PRJNA632844 + amplicon rabbit SRR11789856 PRJNA632844 + amplicon rabbit SRR11789857 PRJNA632844 + amplicon rabbit SRR11789858 PRJNA632844 + amplicon rabbit SRR11789859 PRJNA632844 + amplicon rabbit SRR11789860 PRJNA632844 + amplicon rabbit SRR11789861 PRJNA632844 + amplicon rabbit SRR11789862 PRJNA632844 + amplicon rabbit SRR11789863 PRJNA632844 + amplicon rabbit SRR11789864 PRJNA632844 + amplicon rabbit SRR11789865 PRJNA632844 + amplicon rabbit SRR11789866 PRJNA632844 + amplicon rabbit SRR11789867 PRJNA632844 + amplicon rabbit SRR11789868 PRJNA632844 + amplicon rabbit SRR11789869 PRJNA632844 + amplicon rabbit SRR11789870 PRJNA632844 + amplicon rabbit SRR11789871 PRJNA632844 + amplicon rabbit SRR11789872 PRJNA632844 + amplicon rabbit SRR11789873 PRJNA632844 + amplicon rabbit SRR11789874 PRJNA632844 + amplicon rabbit SRR11789875 PRJNA632844 + amplicon rabbit SRR11789876 PRJNA632844 + amplicon rabbit SRR11789877 PRJNA632844 + amplicon rabbit SRR11789878 PRJNA632844 + amplicon rabbit SRR11789879 PRJNA632844 + amplicon rabbit SRR11789880 PRJNA632844 + amplicon rabbit SRR11789881 PRJNA632844 + amplicon rabbit SRR11789882 PRJNA632844 + amplicon rabbit SRR11789883 PRJNA632844 + amplicon rabbit SRR11789884 PRJNA632844 + amplicon rabbit SRR11789885 PRJNA632844 + amplicon rabbit SRR11789886 PRJNA632844 + amplicon rabbit SRR11789887 PRJNA632844 + amplicon rabbit SRR11789888 PRJNA632844 + amplicon rabbit SRR11789889 PRJNA632844 + amplicon Unknown SRR12036745 PRJNA640129 + amplicon Unknown SRR12036746 PRJNA640129 + amplicon Unknown SRR12036747 PRJNA640129 + amplicon Unknown SRR12036748 PRJNA640129 + amplicon Unknown SRR12036749 PRJNA640129 + amplicon Unknown SRR12036750 PRJNA640129 + amplicon Unknown SRR12036751 PRJNA640129 + amplicon Unknown SRR12036752 PRJNA640129 + amplicon Unknown SRR12036753 PRJNA640129 + amplicon Unknown SRR12036754 PRJNA640129 + amplicon Unknown SRR12036755 PRJNA640129 + amplicon Unknown SRR12036756 PRJNA640129 + amplicon Unknown SRR12036757 PRJNA640129 + amplicon Unknown SRR12036758 PRJNA640129 + amplicon Unknown SRR12036759 PRJNA640129 + amplicon Unknown SRR12036760 PRJNA640129 + amplicon Unknown SRR12036761 PRJNA640129 + amplicon Unknown SRR12036762 PRJNA640129 + amplicon Unknown SRR12036763 PRJNA640129 + amplicon Unknown SRR12036764 PRJNA640129 + amplicon Unknown SRR12036765 PRJNA640129 + amplicon Unknown SRR12036766 PRJNA640129 + amplicon Unknown SRR12036767 PRJNA640129 + amplicon Unknown SRR12036768 PRJNA640129 + amplicon Unknown SRR12036769 PRJNA640129 + amplicon Unknown SRR12036770 PRJNA640129 + amplicon Unknown SRR12036771 PRJNA640129 + amplicon Unknown SRR12036772 PRJNA640129 + amplicon Unknown SRR12036773 PRJNA640129 + amplicon Unknown SRR12036774 PRJNA640129 + amplicon Unknown SRR12036775 PRJNA640129 + amplicon Unknown SRR12036776 PRJNA640129 + amplicon Unknown SRR12036777 PRJNA640129 + amplicon Unknown SRR12036778 PRJNA640129 + amplicon Unknown SRR12036779 PRJNA640129 + amplicon Unknown SRR12036780 PRJNA640129 + amplicon Unknown SRR12036781 PRJNA640129 + amplicon Unknown SRR12036782 PRJNA640129 + amplicon Unknown SRR12036783 PRJNA640129 + amplicon Unknown SRR12036784 PRJNA640129 + amplicon Unknown SRR12036785 PRJNA640129 + amplicon Unknown SRR12036786 PRJNA640129 + amplicon Unknown SRR12036787 PRJNA640129 + amplicon Unknown SRR12036788 PRJNA640129 + amplicon Unknown SRR12036789 PRJNA640129 + amplicon Unknown SRR12036790 PRJNA640129 + amplicon horse SRR12290233 PRJNA647744 + amplicon horse SRR12290234 PRJNA647744 + amplicon horse SRR12290235 PRJNA647744 + amplicon horse SRR12290236 PRJNA647744 + amplicon horse SRR12290237 PRJNA647744 + amplicon horse SRR12290238 PRJNA647744 + amplicon horse SRR12290239 PRJNA647744 + amplicon horse SRR12290240 PRJNA647744 + amplicon horse SRR12290241 PRJNA647744 + amplicon horse SRR12290242 PRJNA647744 + amplicon horse SRR12290243 PRJNA647744 + amplicon horse SRR12290244 PRJNA647744 + amplicon horse SRR12290245 PRJNA647744 + amplicon horse SRR12290246 PRJNA647744 + amplicon horse SRR12290247 PRJNA647744 + amplicon horse SRR12290248 PRJNA647744 + amplicon horse SRR12290249 PRJNA647744 + amplicon horse SRR12290250 PRJNA647744 + amplicon horse SRR12290251 PRJNA647744 + amplicon horse SRR12290252 PRJNA647744 + amplicon horse SRR12290253 PRJNA647744 + amplicon horse SRR12290254 PRJNA647744 + amplicon horse SRR12290255 PRJNA647744 + amplicon horse SRR12290256 PRJNA647744 + amplicon horse SRR12290257 PRJNA647744 + amplicon horse SRR12290258 PRJNA647744 + amplicon horse SRR12290259 PRJNA647744 + amplicon horse SRR12290260 PRJNA647744 + amplicon horse SRR12290261 PRJNA647744 + amplicon horse SRR12290262 PRJNA647744 + amplicon horse SRR12290263 PRJNA647744 + amplicon horse SRR12290264 PRJNA647744 + amplicon horse SRR12290265 PRJNA647744 + amplicon horse SRR12290266 PRJNA647744 + amplicon horse SRR12290267 PRJNA647744 + amplicon horse SRR12290268 PRJNA647744 + amplicon horse SRR12290269 PRJNA647744 + amplicon horse SRR12290270 PRJNA647744 + amplicon horse SRR12290271 PRJNA647744 + amplicon horse SRR12290272 PRJNA647744 + amplicon horse SRR12290273 PRJNA647744 + amplicon horse SRR12290274 PRJNA647744 + amplicon horse SRR12290275 PRJNA647744 + amplicon horse SRR12290276 PRJNA647744 + amplicon horse SRR12290277 PRJNA647744 + amplicon horse SRR12290278 PRJNA647744 + amplicon horse SRR12290279 PRJNA647744 + amplicon horse SRR12290280 PRJNA647744 + amplicon horse SRR12290281 PRJNA647744 + amplicon horse SRR12290282 PRJNA647744 + amplicon horse SRR12290283 PRJNA647744 + amplicon horse SRR12290284 PRJNA647744 + amplicon horse SRR12290285 PRJNA647744 + amplicon horse SRR12290286 PRJNA647744 + amplicon horse SRR12290287 PRJNA647744 + amplicon horse SRR12290288 PRJNA647744 + amplicon horse SRR12290289 PRJNA647744 + amplicon horse SRR12290290 PRJNA647744 + amplicon horse SRR12290291 PRJNA647744 + amplicon horse SRR12290292 PRJNA647744 + amplicon horse SRR12290293 PRJNA647744 + amplicon horse SRR12290294 PRJNA647744 + amplicon horse SRR12290295 PRJNA647744 + amplicon horse SRR12290296 PRJNA647744 + amplicon horse SRR12290297 PRJNA647744 + amplicon horse SRR12290298 PRJNA647744 + amplicon horse SRR12290299 PRJNA647744 + amplicon horse SRR12290300 PRJNA647744 + amplicon horse SRR12290301 PRJNA647744 + amplicon horse SRR12290302 PRJNA647744 + amplicon horse SRR12290303 PRJNA647744 + amplicon horse SRR12290304 PRJNA647744 + amplicon horse SRR12290305 PRJNA647744 + amplicon horse SRR12290306 PRJNA647744 + amplicon horse SRR12290307 PRJNA647744 + amplicon horse SRR12290308 PRJNA647744 + amplicon horse SRR12290309 PRJNA647744 + amplicon horse SRR12290310 PRJNA647744 + amplicon horse SRR12290311 PRJNA647744 + amplicon horse SRR12290312 PRJNA647744 + amplicon horse SRR12290313 PRJNA647744 + amplicon horse SRR12290314 PRJNA647744 + amplicon horse SRR12290315 PRJNA647744 + amplicon horse SRR12290316 PRJNA647744 + amplicon horse SRR12290317 PRJNA647744 + amplicon horse SRR12290318 PRJNA647744 + amplicon horse SRR12290319 PRJNA647744 + amplicon horse SRR12290320 PRJNA647744 + amplicon horse SRR12290321 PRJNA647744 + amplicon horse SRR12290322 PRJNA647744 + amplicon horse SRR12290323 PRJNA647744 + amplicon horse SRR12290324 PRJNA647744 + amplicon horse SRR12290325 PRJNA647744 + amplicon horse SRR12290326 PRJNA647744 + amplicon horse SRR12290327 PRJNA647744 + amplicon horse SRR12290328 PRJNA647744 + amplicon horse SRR12290329 PRJNA647744 + amplicon horse SRR12290330 PRJNA647744 + amplicon horse SRR12290341 PRJNA647744 + amplicon horse SRR12290352 PRJNA647744 + amplicon horse SRR12290356 PRJNA647744 + amplicon horse SRR12290358 PRJNA647744 + amplicon horse SRR12290359 PRJNA647744 + amplicon horse SRR12290360 PRJNA647744 + amplicon horse SRR12290361 PRJNA647744 + amplicon horse SRR12290362 PRJNA647744 + amplicon horse SRR12290363 PRJNA647744 + amplicon horse SRR12290364 PRJNA647744 + amplicon horse SRR12290365 PRJNA647744 + amplicon horse SRR12290366 PRJNA647744 + amplicon horse SRR12290367 PRJNA647744 + amplicon horse SRR12290368 PRJNA647744 + amplicon horse SRR12290369 PRJNA647744 + amplicon horse SRR12290370 PRJNA647744 + amplicon horse SRR12290371 PRJNA647744 + amplicon horse SRR12290372 PRJNA647744 + amplicon horse SRR12290373 PRJNA647744 + amplicon horse SRR12290374 PRJNA647744 + amplicon horse SRR12290375 PRJNA647744 + amplicon horse SRR12290376 PRJNA647744 + amplicon horse SRR12290377 PRJNA647744 + amplicon horse SRR12290378 PRJNA647744 + amplicon horse SRR12290379 PRJNA647744 + amplicon horse SRR12290380 PRJNA647744 + amplicon horse SRR12290381 PRJNA647744 + amplicon horse SRR12290382 PRJNA647744 + amplicon horse SRR12290383 PRJNA647744 + amplicon horse SRR12290384 PRJNA647744 + amplicon horse SRR12290385 PRJNA647744 + amplicon horse SRR12290386 PRJNA647744 + amplicon horse SRR12290387 PRJNA647744 + amplicon horse SRR12290388 PRJNA647744 + amplicon horse SRR12290389 PRJNA647744 + amplicon horse SRR12290390 PRJNA647744 + amplicon horse SRR12290391 PRJNA647744 + amplicon horse SRR12290392 PRJNA647744 + amplicon horse SRR12290393 PRJNA647744 + amplicon cow SRR13069847 PRJNA678648 + amplicon cow SRR13069848 PRJNA678648 + amplicon cow SRR13069849 PRJNA678648 + amplicon cow SRR13069850 PRJNA678648 + amplicon cow SRR13069851 PRJNA678648 + amplicon cow SRR13069852 PRJNA678648 + amplicon cow SRR13069853 PRJNA678648 + amplicon cow SRR13069854 PRJNA678648 + amplicon cow SRR13070759 PRJNA678648 + amplicon cow SRR13070761 PRJNA678648 + amplicon cow SRR13070763 PRJNA678648 + amplicon cow SRR13070766 PRJNA678648 + amplicon termite SRR13144400 PRJNA680366 + amplicon termite SRR13144401 PRJNA680366 + amplicon termite SRR13144402 PRJNA680366 + amplicon termite SRR13144403 PRJNA680366 + amplicon termite SRR13144404 PRJNA680366 + amplicon termite SRR13144405 PRJNA680366 + amplicon termite SRR13144406 PRJNA680366 + amplicon termite SRR13144407 PRJNA680366 + amplicon termite SRR13144408 PRJNA680366 + amplicon termite SRR13144409 PRJNA680366 + amplicon termite SRR13144410 PRJNA680366 + amplicon termite SRR13144411 PRJNA680366 + amplicon termite SRR13144412 PRJNA680366 + amplicon termite SRR13144413 PRJNA680366 + amplicon termite SRR13144414 PRJNA680366 + amplicon termite SRR13144415 PRJNA680366 + amplicon termite SRR13144416 PRJNA680366 + amplicon termite SRR13144417 PRJNA680366 + amplicon termite SRR13144418 PRJNA680366 + amplicon termite SRR13144419 PRJNA680366 + amplicon termite SRR13144420 PRJNA680366 + amplicon termite SRR13144421 PRJNA680366 + amplicon termite SRR13144422 PRJNA680366 + amplicon termite SRR13144423 PRJNA680366 + amplicon termite SRR13144424 PRJNA680366 + amplicon termite SRR13144425 PRJNA680366 + amplicon termite SRR13144426 PRJNA680366 + amplicon termite SRR13144427 PRJNA680366 + amplicon termite SRR13144428 PRJNA680366 + amplicon termite SRR13144429 PRJNA680366 + amplicon termite SRR13144430 PRJNA680366 + amplicon termite SRR13144431 PRJNA680366 + amplicon termite SRR13144432 PRJNA680366 + amplicon termite SRR13144433 PRJNA680366 + amplicon termite SRR13144434 PRJNA680366 + amplicon termite SRR13144435 PRJNA680366 + amplicon termite SRR13144436 PRJNA680366 + amplicon termite SRR13144437 PRJNA680366 + amplicon termite SRR13144438 PRJNA680366 + amplicon termite SRR13144439 PRJNA680366 + amplicon termite SRR13144440 PRJNA680366 + amplicon horse SRR13718027 PRJNA701711 + amplicon horse SRR13718028 PRJNA701711 + amplicon horse SRR13718029 PRJNA701711 + amplicon horse SRR13718030 PRJNA701711 + amplicon horse SRR13718031 PRJNA701711 + amplicon horse SRR13718032 PRJNA701711 + amplicon horse SRR13718033 PRJNA701711 + amplicon horse SRR13718034 PRJNA701711 + amplicon horse SRR13718035 PRJNA701711 + amplicon horse SRR13718036 PRJNA701711 + amplicon horse SRR13718037 PRJNA701711 + amplicon horse SRR13718038 PRJNA701711 + amplicon horse SRR13718039 PRJNA701711 + amplicon horse SRR13718040 PRJNA701711 + amplicon horse SRR13718041 PRJNA701711 + amplicon horse SRR13718042 PRJNA701711 + amplicon horse SRR13718043 PRJNA701711 + amplicon horse SRR13718044 PRJNA701711 + amplicon horse SRR13718045 PRJNA701711 + amplicon horse SRR13718046 PRJNA701711 + amplicon horse SRR13718047 PRJNA701711 + amplicon horse SRR13718048 PRJNA701711 + amplicon horse SRR13718049 PRJNA701711 + amplicon horse SRR13718050 PRJNA701711 + amplicon horse SRR13718051 PRJNA701711 + amplicon horse SRR13718052 PRJNA701711 + amplicon horse SRR13718053 PRJNA701711 + amplicon horse SRR13718054 PRJNA701711 + amplicon horse SRR13718055 PRJNA701711 + amplicon horse SRR13718056 PRJNA701711 + amplicon horse SRR13718057 PRJNA701711 + amplicon horse SRR13718058 PRJNA701711 + amplicon horse SRR13718059 PRJNA701711 + amplicon horse SRR13718060 PRJNA701711 + amplicon horse SRR13718061 PRJNA701711 + amplicon horse SRR13718062 PRJNA701711 + amplicon horse SRR13718063 PRJNA701711 + amplicon horse SRR13718064 PRJNA701711 + amplicon horse SRR13718065 PRJNA701711 + amplicon horse SRR13718066 PRJNA701711 + amplicon horse SRR13718067 PRJNA701711 + amplicon horse SRR13718068 PRJNA701711 + amplicon horse SRR13718069 PRJNA701711 + amplicon horse SRR13718070 PRJNA701711 + amplicon horse SRR13718071 PRJNA701711 + amplicon horse SRR13718072 PRJNA701711 + amplicon horse SRR13718073 PRJNA701711 + amplicon horse SRR13718074 PRJNA701711 + amplicon horse SRR13718075 PRJNA701711 + amplicon horse SRR13718076 PRJNA701711 + amplicon horse SRR13718077 PRJNA701711 + amplicon horse SRR13718078 PRJNA701711 + amplicon horse SRR13718079 PRJNA701711 + amplicon horse SRR13718080 PRJNA701711 + amplicon horse SRR13718081 PRJNA701711 + amplicon horse SRR13718082 PRJNA701711 + amplicon horse SRR13718083 PRJNA701711 + amplicon horse SRR13718084 PRJNA701711 + amplicon horse SRR13718085 PRJNA701711 + amplicon horse SRR13718086 PRJNA701711 + amplicon horse SRR13718087 PRJNA701711 + amplicon horse SRR13718088 PRJNA701711 + amplicon horse SRR13718089 PRJNA701711 + amplicon horse SRR13718090 PRJNA701711 + amplicon horse SRR13718091 PRJNA701711 + amplicon horse SRR13718092 PRJNA701711 + amplicon horse SRR13718093 PRJNA701711 + amplicon horse SRR13718094 PRJNA701711 + amplicon horse SRR13718095 PRJNA701711 + amplicon horse SRR13718096 PRJNA701711 + amplicon horse SRR13718097 PRJNA701711 + amplicon horse SRR13718098 PRJNA701711 + amplicon horse SRR13718099 PRJNA701711 + amplicon horse SRR13718100 PRJNA701711 + amplicon horse SRR13718101 PRJNA701711 + amplicon horse SRR13718102 PRJNA701711 + amplicon horse SRR13718103 PRJNA701711 + amplicon horse SRR13718104 PRJNA701711 + amplicon horse SRR13718105 PRJNA701711 + amplicon horse SRR13718106 PRJNA701711 + amplicon horse SRR13718107 PRJNA701711 + amplicon horse SRR13718108 PRJNA701711 + amplicon horse SRR13718109 PRJNA701711 + amplicon horse SRR13718110 PRJNA701711 + amplicon horse SRR13718111 PRJNA701711 + amplicon horse SRR13718112 PRJNA701711 + amplicon horse SRR13718113 PRJNA701711 + amplicon horse SRR13718114 PRJNA701711 + amplicon horse SRR13718115 PRJNA701711 + amplicon horse SRR13718116 PRJNA701711 + amplicon horse SRR13718117 PRJNA701711 + amplicon horse SRR13718118 PRJNA701711 + amplicon horse SRR13718119 PRJNA701711 + amplicon horse SRR13718120 PRJNA701711 + amplicon horse SRR13718121 PRJNA701711 + amplicon horse SRR13718122 PRJNA701711 + amplicon horse SRR13718123 PRJNA701711 + amplicon horse SRR13718124 PRJNA701711 + amplicon horse SRR13718125 PRJNA701711 + amplicon horse SRR13718126 PRJNA701711 + amplicon horse SRR13718127 PRJNA701711 + amplicon horse SRR13718128 PRJNA701711 + amplicon horse SRR13718129 PRJNA701711 + amplicon horse SRR13718130 PRJNA701711 + amplicon horse SRR13718131 PRJNA701711 + amplicon horse SRR13718132 PRJNA701711 + amplicon horse SRR13718133 PRJNA701711 + amplicon horse SRR13718134 PRJNA701711 + amplicon horse SRR13718135 PRJNA701711 + amplicon horse SRR13718136 PRJNA701711 + amplicon horse SRR13718137 PRJNA701711 + amplicon horse SRR13718138 PRJNA701711 + amplicon horse SRR13718139 PRJNA701711 + amplicon horse SRR13718140 PRJNA701711 + amplicon horse SRR13718141 PRJNA701711 + amplicon horse SRR13718142 PRJNA701711 + amplicon horse SRR13718143 PRJNA701711 + amplicon horse SRR13718144 PRJNA701711 + amplicon horse SRR13718145 PRJNA701711 + amplicon horse SRR13718146 PRJNA701711 + amplicon horse SRR13718147 PRJNA701711 + amplicon horse SRR13718148 PRJNA701711 + amplicon horse SRR13718149 PRJNA701711 + amplicon horse SRR13718150 PRJNA701711 + amplicon horse SRR13718151 PRJNA701711 + amplicon horse SRR13718152 PRJNA701711 + amplicon horse SRR13718153 PRJNA701711 + amplicon horse SRR13718154 PRJNA701711 + amplicon horse SRR13718155 PRJNA701711 + amplicon horse SRR13718156 PRJNA701711 + amplicon horse SRR13718157 PRJNA701711 + amplicon horse SRR13718158 PRJNA701711 + amplicon horse SRR13718159 PRJNA701711 + amplicon horse SRR13718160 PRJNA701711 + amplicon horse SRR13718161 PRJNA701711 + amplicon horse SRR13718162 PRJNA701711 + amplicon horse SRR13718163 PRJNA701711 + amplicon horse SRR13718164 PRJNA701711 + amplicon horse SRR13718165 PRJNA701711 + amplicon horse SRR13718166 PRJNA701711 + amplicon horse SRR13718167 PRJNA701711 + amplicon horse SRR13718168 PRJNA701711 + amplicon horse SRR13718169 PRJNA701711 + amplicon horse SRR13718170 PRJNA701711 + amplicon horse SRR13718171 PRJNA701711 + amplicon horse SRR13718172 PRJNA701711 + amplicon horse SRR13718173 PRJNA701711 + amplicon horse SRR13718174 PRJNA701711 + amplicon horse SRR13718175 PRJNA701711 + amplicon horse SRR13718176 PRJNA701711 + amplicon horse SRR13718177 PRJNA701711 + amplicon horse SRR13718178 PRJNA701711 + amplicon horse SRR13718179 PRJNA701711 + amplicon horse SRR13718180 PRJNA701711 + amplicon horse SRR13718181 PRJNA701711 + amplicon horse SRR13718182 PRJNA701711 + amplicon horse SRR13718183 PRJNA701711 + amplicon horse SRR13718184 PRJNA701711 + amplicon horse SRR13718185 PRJNA701711 + amplicon horse SRR13718186 PRJNA701711 + amplicon horse SRR13718187 PRJNA701711 + amplicon horse SRR13718188 PRJNA701711 + amplicon horse SRR13718189 PRJNA701711 + amplicon horse SRR13718190 PRJNA701711 + amplicon horse SRR13718191 PRJNA701711 + amplicon horse SRR14024384 PRJNA715971 + amplicon horse SRR14024385 PRJNA715971 + amplicon horse SRR14024386 PRJNA715971 + amplicon horse SRR14024387 PRJNA715971 + amplicon horse SRR14024388 PRJNA715971 + amplicon horse SRR14024389 PRJNA715971 + amplicon horse SRR14024390 PRJNA715971 + amplicon horse SRR14024391 PRJNA715971 + amplicon horse SRR14024392 PRJNA715971 + amplicon horse SRR14024393 PRJNA715971 + amplicon horse SRR14024394 PRJNA715971 + amplicon horse SRR14024395 PRJNA715971 + amplicon horse SRR14024396 PRJNA715971 + amplicon horse SRR14024397 PRJNA715971 + amplicon horse SRR14024398 PRJNA715971 + amplicon horse SRR14024399 PRJNA715971 + amplicon horse SRR14024400 PRJNA715971 + amplicon horse SRR14024401 PRJNA715971 + amplicon horse SRR14024402 PRJNA715971 + amplicon horse SRR14024403 PRJNA715971 + amplicon horse SRR14024404 PRJNA715971 + amplicon horse SRR14024405 PRJNA715971 + amplicon horse SRR14024406 PRJNA715971 + amplicon horse SRR14024407 PRJNA715971 + amplicon horse SRR14024408 PRJNA715971 + amplicon horse SRR14024409 PRJNA715971 + amplicon horse SRR14024410 PRJNA715971 + amplicon horse SRR14024411 PRJNA715971 + amplicon horse SRR14024412 PRJNA715971 + amplicon horse SRR14024413 PRJNA715971 + amplicon horse SRR14024414 PRJNA715971 + amplicon horse SRR14024415 PRJNA715971 + amplicon horse SRR14024416 PRJNA715971 + amplicon horse SRR14024417 PRJNA715971 + amplicon horse SRR14024418 PRJNA715971 + amplicon horse SRR14024419 PRJNA715971 + amplicon horse SRR14024420 PRJNA715971 + amplicon horse SRR14024421 PRJNA715971 + amplicon horse SRR14024422 PRJNA715971 + amplicon horse SRR14024423 PRJNA715971 + amplicon horse SRR14024424 PRJNA715971 + amplicon horse SRR14024425 PRJNA715971 + amplicon horse SRR14024426 PRJNA715971 + amplicon horse SRR14024427 PRJNA715971 + amplicon horse SRR14024428 PRJNA715971 + amplicon horse SRR14024429 PRJNA715971 + amplicon horse SRR14024430 PRJNA715971 + amplicon horse SRR14024431 PRJNA715971 + amplicon horse SRR14024432 PRJNA715971 + amplicon horse SRR14024433 PRJNA715971 + amplicon horse SRR14024434 PRJNA715971 + amplicon horse SRR14024435 PRJNA715971 + amplicon horse SRR14024436 PRJNA715971 + amplicon horse SRR14024437 PRJNA715971 + amplicon horse SRR14024438 PRJNA715971 + amplicon horse SRR14024439 PRJNA715971 + amplicon horse SRR14024440 PRJNA715971 + amplicon horse SRR14024441 PRJNA715971 + amplicon horse SRR14024442 PRJNA715971 + amplicon horse SRR14024443 PRJNA715971 + amplicon horse SRR14024444 PRJNA715971 + amplicon horse SRR14024445 PRJNA715971 + amplicon horse SRR14024446 PRJNA715971 + amplicon horse SRR14024447 PRJNA715971 + amplicon horse SRR14024448 PRJNA715971 + amplicon horse SRR14024449 PRJNA715971 + amplicon horse SRR14024450 PRJNA715971 + amplicon horse SRR14024451 PRJNA715971 + amplicon horse SRR14024452 PRJNA715971 + amplicon horse SRR14024453 PRJNA715971 + amplicon horse SRR14024454 PRJNA715971 + amplicon horse SRR14024455 PRJNA715971 + amplicon horse SRR14024456 PRJNA715971 + amplicon horse SRR14024457 PRJNA715971 + amplicon horse SRR14024458 PRJNA715971 + amplicon horse SRR14024459 PRJNA715971 + amplicon horse SRR14024460 PRJNA715971 + amplicon horse SRR14024461 PRJNA715971 + amplicon horse SRR14024462 PRJNA715971 + amplicon horse SRR14024463 PRJNA715971 + amplicon horse SRR14024464 PRJNA715971 + amplicon horse SRR14024465 PRJNA715971 + amplicon horse SRR14024466 PRJNA715971 + amplicon horse SRR14024467 PRJNA715971 + amplicon horse SRR14024468 PRJNA715971 + amplicon horse SRR14024469 PRJNA715971 + amplicon horse SRR14024470 PRJNA715971 + amplicon horse SRR14024471 PRJNA715971 + amplicon horse SRR14024472 PRJNA715971 + amplicon horse SRR14024473 PRJNA715971 + amplicon horse SRR14024474 PRJNA715971 + amplicon horse SRR14024475 PRJNA715971 + amplicon horse SRR14024476 PRJNA715971 + amplicon horse SRR14024477 PRJNA715971 + amplicon horse SRR14024478 PRJNA715971 + amplicon horse SRR14024479 PRJNA715971 + amplicon horse SRR14024480 PRJNA715971 + amplicon horse SRR14024481 PRJNA715971 + amplicon horse SRR14024482 PRJNA715971 + amplicon horse SRR14024483 PRJNA715971 + amplicon horse SRR14024484 PRJNA715971 + amplicon horse SRR14024485 PRJNA715971 + amplicon horse SRR14024486 PRJNA715971 + amplicon horse SRR14024487 PRJNA715971 + amplicon horse SRR14024488 PRJNA715971 + amplicon horse SRR14024489 PRJNA715971 + amplicon horse SRR14024490 PRJNA715971 + amplicon horse SRR14024491 PRJNA715971 + amplicon horse SRR14024492 PRJNA715971 + amplicon horse SRR14024493 PRJNA715971 + amplicon horse SRR14024494 PRJNA715971 + amplicon horse SRR14024495 PRJNA715971 + amplicon horse SRR14024496 PRJNA715971 + amplicon horse SRR14024497 PRJNA715971 + amplicon horse SRR14024498 PRJNA715971 + amplicon horse SRR14024499 PRJNA715971 + amplicon horse SRR14024500 PRJNA715971 + amplicon horse SRR14024501 PRJNA715971 + amplicon horse SRR14024502 PRJNA715971 + amplicon horse SRR14024503 PRJNA715971 + amplicon horse SRR14024504 PRJNA715971 + amplicon horse SRR14024505 PRJNA715971 + amplicon horse SRR14024506 PRJNA715971 + amplicon horse SRR14024507 PRJNA715971 + amplicon horse SRR14024508 PRJNA715971 + amplicon horse SRR14024509 PRJNA715971 + amplicon horse SRR14024510 PRJNA715971 + amplicon horse SRR14024511 PRJNA715971 + amplicon horse SRR14024512 PRJNA715971 + amplicon horse SRR14024513 PRJNA715971 + amplicon horse SRR14024514 PRJNA715971 + amplicon horse SRR14024515 PRJNA715971 + amplicon horse SRR14024516 PRJNA715971 + amplicon horse SRR14024517 PRJNA715971 + amplicon horse SRR14024518 PRJNA715971 + amplicon horse SRR14024519 PRJNA715971 + amplicon horse SRR14024520 PRJNA715971 + amplicon horse SRR14024521 PRJNA715971 + amplicon horse SRR14024522 PRJNA715971 + amplicon horse SRR14024523 PRJNA715971 + amplicon horse SRR14024524 PRJNA715971 + amplicon horse SRR14024525 PRJNA715971 + amplicon horse SRR14024526 PRJNA715971 + amplicon horse SRR14024527 PRJNA715971 + amplicon horse SRR14024528 PRJNA715971 + amplicon horse SRR14024529 PRJNA715971 + amplicon horse SRR14024530 PRJNA715971 + amplicon horse SRR14024531 PRJNA715971 + amplicon horse SRR14024532 PRJNA715971 + amplicon horse SRR14024533 PRJNA715971 + amplicon horse SRR14024534 PRJNA715971 + amplicon horse SRR14024535 PRJNA715971 + amplicon horse SRR14024536 PRJNA715971 + amplicon horse SRR14024537 PRJNA715971 + amplicon horse SRR14024538 PRJNA715971 + amplicon horse SRR14024539 PRJNA715971 + amplicon horse SRR14024540 PRJNA715971 + amplicon horse SRR14024541 PRJNA715971 + amplicon horse SRR14024542 PRJNA715971 + amplicon horse SRR14024543 PRJNA715971 + amplicon horse SRR14024544 PRJNA715971 + amplicon horse SRR14024545 PRJNA715971 + amplicon horse SRR14024546 PRJNA715971 + amplicon horse SRR14024547 PRJNA715971 + amplicon horse SRR14024548 PRJNA715971 + amplicon horse SRR14024549 PRJNA715971 + amplicon horse SRR14024550 PRJNA715971 + amplicon horse SRR14024551 PRJNA715971 + amplicon horse SRR14024552 PRJNA715971 + amplicon horse SRR14024553 PRJNA715971 + amplicon horse SRR14024554 PRJNA715971 + amplicon horse SRR14024555 PRJNA715971 + amplicon horse SRR14024556 PRJNA715971 + amplicon horse SRR14024557 PRJNA715971 + amplicon horse SRR14024558 PRJNA715971 + amplicon horse SRR14024559 PRJNA715971 + amplicon horse SRR14024560 PRJNA715971 + amplicon horse SRR14024561 PRJNA715971 + amplicon horse SRR14024562 PRJNA715971 + amplicon horse SRR14024563 PRJNA715971 + amplicon horse SRR14024564 PRJNA715971 + amplicon horse SRR14024565 PRJNA715971 + amplicon horse SRR14024566 PRJNA715971 + amplicon horse SRR14024567 PRJNA715971 + amplicon horse SRR14024568 PRJNA715971 + amplicon horse SRR14024569 PRJNA715971 + amplicon horse SRR14024573 PRJNA715971 + amplicon horse SRR14024574 PRJNA715971 + amplicon horse SRR14024576 PRJNA715971 + amplicon horse SRR14024577 PRJNA715971 + amplicon horse SRR14024578 PRJNA715971 + amplicon horse SRR14024583 PRJNA715971 + amplicon horse SRR14024587 PRJNA715971 + amplicon horse SRR14024588 PRJNA715971 + amplicon horse SRR14024589 PRJNA715971 + amplicon horse SRR14024590 PRJNA715971 + amplicon horse SRR14024591 PRJNA715971 + amplicon horse SRR14024592 PRJNA715971 + amplicon horse SRR14024593 PRJNA715971 + amplicon horse SRR14024594 PRJNA715971 + amplicon horse SRR14024595 PRJNA715971 + amplicon horse SRR14024596 PRJNA715971 + amplicon horse SRR14024597 PRJNA715971 + amplicon horse SRR14024598 PRJNA715971 + amplicon horse SRR14024599 PRJNA715971 + amplicon horse SRR14024600 PRJNA715971 + amplicon horse SRR14024601 PRJNA715971 + amplicon horse SRR14024602 PRJNA715971 + amplicon horse SRR14024603 PRJNA715971 + amplicon horse SRR14024604 PRJNA715971 + amplicon horse SRR14024605 PRJNA715971 + amplicon horse SRR14024606 PRJNA715971 + amplicon horse SRR14024607 PRJNA715971 + amplicon horse SRR14024608 PRJNA715971 + amplicon horse SRR14024609 PRJNA715971 + amplicon horse SRR14024610 PRJNA715971 + amplicon horse SRR14024611 PRJNA715971 + amplicon horse SRR14024612 PRJNA715971 + amplicon horse SRR14024613 PRJNA715971 + amplicon horse SRR14024614 PRJNA715971 + amplicon horse SRR14024615 PRJNA715971 + amplicon horse SRR14024616 PRJNA715971 + amplicon horse SRR14024617 PRJNA715971 + amplicon horse SRR14024618 PRJNA715971 + amplicon horse SRR14024619 PRJNA715971 + amplicon horse SRR14024620 PRJNA715971 + amplicon horse SRR14024621 PRJNA715971 + amplicon horse SRR14024622 PRJNA715971 + amplicon horse SRR14024623 PRJNA715971 + amplicon horse SRR14024624 PRJNA715971 + amplicon horse SRR14024625 PRJNA715971 + amplicon horse SRR14024626 PRJNA715971 + amplicon horse SRR14024627 PRJNA715971 + amplicon horse SRR14024628 PRJNA715971 + amplicon horse SRR14024629 PRJNA715971 + amplicon horse SRR14024630 PRJNA715971 + amplicon horse SRR14024631 PRJNA715971 + amplicon horse SRR14024632 PRJNA715971 + amplicon horse SRR14024633 PRJNA715971 + amplicon horse SRR14024634 PRJNA715971 + amplicon horse SRR14024635 PRJNA715971 + amplicon horse SRR14024636 PRJNA715971 + amplicon horse SRR14024637 PRJNA715971 + amplicon sheep SRR14342142 PRJNA723543 + amplicon sheep SRR14342143 PRJNA723543 + amplicon sheep SRR14342144 PRJNA723543 + amplicon sheep SRR14342145 PRJNA723543 + amplicon sheep SRR14342146 PRJNA723543 + amplicon sheep SRR14342147 PRJNA723543 + amplicon sheep SRR14342148 PRJNA723543 + amplicon sheep SRR14342149 PRJNA723543 + amplicon sheep SRR14342150 PRJNA723543 + amplicon sheep SRR14342151 PRJNA723543 + amplicon sheep SRR14342152 PRJNA723543 + amplicon sheep SRR14342153 PRJNA723543 + amplicon sheep SRR14342154 PRJNA723543 + amplicon sheep SRR14342155 PRJNA723543 + amplicon sheep SRR14342156 PRJNA723543 + amplicon sheep SRR14342157 PRJNA723543 + amplicon sheep SRR14342158 PRJNA723543 + amplicon sheep SRR14342159 PRJNA723543 + amplicon sheep SRR14342160 PRJNA723543 + amplicon sheep SRR14342161 PRJNA723543 + amplicon sheep SRR14342162 PRJNA723543 + amplicon sheep SRR14342163 PRJNA723543 + amplicon sheep SRR14342164 PRJNA723543 + amplicon sheep SRR14342165 PRJNA723543 + amplicon sheep SRR14342166 PRJNA723543 + amplicon sheep SRR14342167 PRJNA723543 + amplicon sheep SRR14342168 PRJNA723543 + amplicon sheep SRR14342169 PRJNA723543 + amplicon sheep SRR14342170 PRJNA723543 + amplicon sheep SRR14342171 PRJNA723543 + amplicon sheep SRR14342172 PRJNA723543 + amplicon sheep SRR14342173 PRJNA723543 + amplicon sheep SRR14342174 PRJNA723543 + amplicon sheep SRR14342175 PRJNA723543 + amplicon sheep SRR14342176 PRJNA723543 + amplicon sheep SRR14342177 PRJNA723543 + amplicon sheep SRR14342178 PRJNA723543 + amplicon sheep SRR14342179 PRJNA723543 + amplicon sheep SRR14342180 PRJNA723543 + amplicon sheep SRR14342181 PRJNA723543 + amplicon sheep SRR14342182 PRJNA723543 + amplicon sheep SRR14342183 PRJNA723543 + amplicon sheep SRR14342184 PRJNA723543 + amplicon sheep SRR14342185 PRJNA723543 + amplicon sheep SRR14342186 PRJNA723543 + amplicon sheep SRR14342187 PRJNA723543 + amplicon sheep SRR14342188 PRJNA723543 + amplicon sheep SRR14342189 PRJNA723543 + amplicon sheep SRR14342190 PRJNA723543 + amplicon sheep SRR14342191 PRJNA723543 + amplicon sheep SRR14342192 PRJNA723543 + amplicon sheep SRR14342193 PRJNA723543 + amplicon sheep SRR14342194 PRJNA723543 + amplicon sheep SRR14342195 PRJNA723543 + amplicon sheep SRR14342196 PRJNA723543 + amplicon sheep SRR14342197 PRJNA723543 + amplicon sheep SRR14342198 PRJNA723543 + amplicon sheep SRR14342199 PRJNA723543 + amplicon sheep SRR14342200 PRJNA723543 + amplicon sheep SRR14342201 PRJNA723543 + amplicon sheep SRR14342202 PRJNA723543 + amplicon sheep SRR14342203 PRJNA723543 + amplicon sheep SRR14342204 PRJNA723543 + amplicon sheep SRR14342205 PRJNA723543 + amplicon sheep SRR14342206 PRJNA723543 + amplicon sheep SRR14342207 PRJNA723543 + amplicon sheep SRR14342208 PRJNA723543 + amplicon sheep SRR14342209 PRJNA723543 + amplicon sheep SRR14342210 PRJNA723543 + amplicon sheep SRR14342211 PRJNA723543 + amplicon sheep SRR14342212 PRJNA723543 + amplicon sheep SRR14342213 PRJNA723543 + amplicon sheep SRR14342214 PRJNA723543 + amplicon sheep SRR14342215 PRJNA723543 + amplicon sheep SRR14342216 PRJNA723543 + amplicon sheep SRR14342217 PRJNA723543 + amplicon sheep SRR14342218 PRJNA723543 + amplicon sheep SRR14342219 PRJNA723543 + amplicon sheep SRR14342220 PRJNA723543 + amplicon sheep SRR14342221 PRJNA723543 + amplicon sheep SRR14342222 PRJNA723543 + amplicon sheep SRR14342223 PRJNA723543 + amplicon sheep SRR14342224 PRJNA723543 + amplicon sheep SRR14342225 PRJNA723543 + amplicon sheep SRR14342226 PRJNA723543 + amplicon sheep SRR14342227 PRJNA723543 + amplicon sheep SRR14342228 PRJNA723543 + amplicon sheep SRR14342229 PRJNA723543 + amplicon sheep SRR14342230 PRJNA723543 + amplicon sheep SRR14342231 PRJNA723543 + amplicon sheep SRR14342232 PRJNA723543 + amplicon sheep SRR14342233 PRJNA723543 + amplicon sheep SRR14342234 PRJNA723543 + amplicon sheep SRR14342235 PRJNA723543 + amplicon sheep SRR14342236 PRJNA723543 + amplicon sheep SRR14342237 PRJNA723543 + amplicon sheep SRR14342238 PRJNA723543 + amplicon sheep SRR14342239 PRJNA723543 + amplicon sheep SRR14342240 PRJNA723543 + amplicon sheep SRR14342241 PRJNA723543 + amplicon sheep SRR14342242 PRJNA723543 + amplicon sheep SRR14342243 PRJNA723543 + amplicon sheep SRR14342244 PRJNA723543 + amplicon sheep SRR14342245 PRJNA723543 + amplicon sheep SRR14342246 PRJNA723543 + amplicon sheep SRR14342247 PRJNA723543 + amplicon sheep SRR14342248 PRJNA723543 + amplicon sheep SRR14342249 PRJNA723543 + amplicon sheep SRR14342250 PRJNA723543 + amplicon sheep SRR14342251 PRJNA723543 + amplicon sheep SRR14342252 PRJNA723543 + amplicon sheep SRR14342253 PRJNA723543 + amplicon sheep SRR14342254 PRJNA723543 + amplicon sheep SRR14342255 PRJNA723543 + amplicon sheep SRR14342256 PRJNA723543 + amplicon sheep SRR14342257 PRJNA723543 + amplicon sheep SRR14342258 PRJNA723543 + amplicon sheep SRR14342259 PRJNA723543 + amplicon sheep SRR14342260 PRJNA723543 + amplicon sheep SRR14342261 PRJNA723543 + amplicon sheep SRR14342262 PRJNA723543 + amplicon sheep SRR14342263 PRJNA723543 + amplicon sheep SRR14342264 PRJNA723543 + amplicon sheep SRR14342265 PRJNA723543 + amplicon sheep SRR14342266 PRJNA723543 + amplicon sheep SRR14342267 PRJNA723543 + amplicon sheep SRR14342268 PRJNA723543 + amplicon sheep SRR14342269 PRJNA723543 + amplicon sheep SRR14342270 PRJNA723543 + amplicon sheep SRR14342271 PRJNA723543 + amplicon sheep SRR14342272 PRJNA723543 + amplicon sheep SRR14342273 PRJNA723543 + amplicon sheep SRR14342274 PRJNA723543 + amplicon sheep SRR14342275 PRJNA723543 + amplicon sheep SRR14342276 PRJNA723543 + amplicon sheep SRR14342277 PRJNA723543 + amplicon sheep SRR14342278 PRJNA723543 + amplicon sheep SRR14342279 PRJNA723543 + amplicon sheep SRR14342280 PRJNA723543 + amplicon sheep SRR14342281 PRJNA723543 + amplicon sheep SRR14342282 PRJNA723543 + amplicon sheep SRR14342283 PRJNA723543 + amplicon sheep SRR14342284 PRJNA723543 + amplicon sheep SRR14342285 PRJNA723543 + amplicon sheep SRR14342286 PRJNA723543 + amplicon sheep SRR14342287 PRJNA723543 + amplicon sheep SRR14342288 PRJNA723543 + amplicon sheep SRR14342289 PRJNA723543 + amplicon sheep SRR14342290 PRJNA723543 + amplicon sheep SRR14342291 PRJNA723543 + amplicon sheep SRR14342292 PRJNA723543 + amplicon sheep SRR14342293 PRJNA723543 + amplicon sheep SRR14342294 PRJNA723543 + amplicon sheep SRR14342295 PRJNA723543 + amplicon sheep SRR14342296 PRJNA723543 + amplicon sheep SRR14342297 PRJNA723543 + amplicon sheep SRR14342298 PRJNA723543 + amplicon sheep SRR14342299 PRJNA723543 + amplicon sheep SRR14342300 PRJNA723543 + amplicon sheep SRR14342301 PRJNA723543 + amplicon sheep SRR14342302 PRJNA723543 + amplicon sheep SRR14342303 PRJNA723543 + amplicon sheep SRR14342304 PRJNA723543 + amplicon sheep SRR14342305 PRJNA723543 + amplicon sheep SRR14342306 PRJNA723543 + amplicon sheep SRR14342307 PRJNA723543 + amplicon sheep SRR14342308 PRJNA723543 + amplicon sheep SRR14342309 PRJNA723543 + amplicon sheep SRR14342310 PRJNA723543 + amplicon sheep SRR14342311 PRJNA723543 + amplicon sheep SRR14342312 PRJNA723543 + amplicon sheep SRR14342313 PRJNA723543 + amplicon sheep SRR14342314 PRJNA723543 + amplicon sheep SRR14342315 PRJNA723543 + amplicon sheep SRR14342316 PRJNA723543 + amplicon sheep SRR14342317 PRJNA723543 + amplicon sheep SRR14342318 PRJNA723543 + amplicon sheep SRR14342319 PRJNA723543 + amplicon sheep SRR14342320 PRJNA723543 + amplicon sheep SRR14342321 PRJNA723543 + amplicon sheep SRR14342322 PRJNA723543 + amplicon sheep SRR14342323 PRJNA723543 + amplicon sheep SRR14342324 PRJNA723543 + amplicon sheep SRR14342325 PRJNA723543 + amplicon sheep SRR14342326 PRJNA723543 + amplicon sheep SRR14342327 PRJNA723543 + amplicon sheep SRR14342328 PRJNA723543 + amplicon sheep SRR14342329 PRJNA723543 + amplicon sheep SRR14342330 PRJNA723543 + amplicon sheep SRR14342331 PRJNA723543 + amplicon sheep SRR14342332 PRJNA723543 + amplicon sheep SRR14342333 PRJNA723543 + amplicon sheep SRR14342334 PRJNA723543 + amplicon sheep SRR14342335 PRJNA723543 + amplicon sheep SRR14342336 PRJNA723543 + amplicon sheep SRR14342337 PRJNA723543 + amplicon sheep SRR14342338 PRJNA723543 + amplicon sheep SRR14342339 PRJNA723543 + amplicon sheep SRR14342340 PRJNA723543 + amplicon sheep SRR14342341 PRJNA723543 + amplicon sheep SRR14342342 PRJNA723543 + amplicon sheep SRR14342343 PRJNA723543 + amplicon sheep SRR14342344 PRJNA723543 + amplicon sheep SRR14342345 PRJNA723543 + amplicon sheep SRR14342346 PRJNA723543 + amplicon sheep SRR14342347 PRJNA723543 + amplicon sheep SRR14342348 PRJNA723543 + amplicon sheep SRR14342349 PRJNA723543 + amplicon sheep SRR14342350 PRJNA723543 + amplicon sheep SRR14342351 PRJNA723543 + amplicon sheep SRR14342352 PRJNA723543 + amplicon sheep SRR14342353 PRJNA723543 + amplicon sheep SRR14342354 PRJNA723543 + amplicon sheep SRR14342355 PRJNA723543 + amplicon sheep SRR14342356 PRJNA723543 + amplicon sheep SRR14342357 PRJNA723543 + amplicon sheep SRR14342358 PRJNA723543 + amplicon sheep SRR14342359 PRJNA723543 + amplicon sheep SRR14342360 PRJNA723543 + amplicon sheep SRR14342361 PRJNA723543 + amplicon sheep SRR14342362 PRJNA723543 + amplicon sheep SRR14342363 PRJNA723543 + amplicon sheep SRR14342364 PRJNA723543 + amplicon sheep SRR14342365 PRJNA723543 + amplicon sheep SRR14342366 PRJNA723543 + amplicon sheep SRR14342367 PRJNA723543 + amplicon sheep SRR14342368 PRJNA723543 + amplicon sheep SRR14342369 PRJNA723543 + amplicon sheep SRR14342370 PRJNA723543 + amplicon sheep SRR14342371 PRJNA723543 + amplicon sheep SRR14342372 PRJNA723543 + amplicon sheep SRR14342373 PRJNA723543 + amplicon sheep SRR14342374 PRJNA723543 + amplicon sheep SRR14342375 PRJNA723543 + amplicon sheep SRR14342376 PRJNA723543 + amplicon sheep SRR14342377 PRJNA723543 + amplicon sheep SRR14342378 PRJNA723543 + amplicon sheep SRR14342379 PRJNA723543 + amplicon sheep SRR14342380 PRJNA723543 + amplicon sheep SRR14342381 PRJNA723543 + amplicon sheep SRR14342382 PRJNA723543 + amplicon sheep SRR14342383 PRJNA723543 + amplicon sheep SRR14342384 PRJNA723543 + amplicon sheep SRR14342385 PRJNA723543 + amplicon sheep SRR14342386 PRJNA723543 + amplicon sheep SRR14342387 PRJNA723543 + amplicon sheep SRR14342388 PRJNA723543 + amplicon sheep SRR14342389 PRJNA723543 + amplicon sheep SRR14342390 PRJNA723543 + amplicon sheep SRR14342391 PRJNA723543 + amplicon sheep SRR14342392 PRJNA723543 + amplicon sheep SRR14342393 PRJNA723543 + amplicon sheep SRR14342394 PRJNA723543 + amplicon sheep SRR14342395 PRJNA723543 + amplicon sheep SRR14342396 PRJNA723543 + amplicon sheep SRR14342397 PRJNA723543 + amplicon sheep SRR14342398 PRJNA723543 + amplicon sheep SRR14342399 PRJNA723543 + amplicon sheep SRR14342400 PRJNA723543 + amplicon sheep SRR14342401 PRJNA723543 + amplicon sheep SRR14342402 PRJNA723543 + amplicon sheep SRR14342403 PRJNA723543 + amplicon sheep SRR14342404 PRJNA723543 + amplicon sheep SRR14342405 PRJNA723543 + amplicon sheep SRR14342406 PRJNA723543 + amplicon sheep SRR14342407 PRJNA723543 + amplicon sheep SRR14342408 PRJNA723543 + amplicon sheep SRR14342409 PRJNA723543 + amplicon sheep SRR14342410 PRJNA723543 + amplicon sheep SRR14342411 PRJNA723543 + amplicon sheep SRR14342412 PRJNA723543 + amplicon sheep SRR14342413 PRJNA723543 + amplicon sheep SRR14342414 PRJNA723543 + amplicon sheep SRR14342415 PRJNA723543 + amplicon sheep SRR14342416 PRJNA723543 + amplicon sheep SRR14342417 PRJNA723543 + amplicon sheep SRR14342418 PRJNA723543 + amplicon sheep SRR14342419 PRJNA723543 + amplicon sheep SRR14342420 PRJNA723543 + amplicon sheep SRR14342421 PRJNA723543 + amplicon sheep SRR14342422 PRJNA723543 + amplicon sheep SRR14342423 PRJNA723543 + amplicon sheep SRR14342424 PRJNA723543 + amplicon sheep SRR14342425 PRJNA723543 + amplicon sheep SRR14342426 PRJNA723543 + amplicon sheep SRR14342427 PRJNA723543 + amplicon sheep SRR14342428 PRJNA723543 + amplicon sheep SRR14342429 PRJNA723543 + amplicon sheep SRR14342430 PRJNA723543 + amplicon sheep SRR14342431 PRJNA723543 + amplicon sheep SRR14342432 PRJNA723543 + amplicon sheep SRR14342433 PRJNA723543 + amplicon sheep SRR14342434 PRJNA723543 + amplicon sheep SRR14342435 PRJNA723543 + amplicon sheep SRR14342436 PRJNA723543 + amplicon sheep SRR14342437 PRJNA723543 + amplicon sheep SRR14342438 PRJNA723543 + amplicon sheep SRR14342439 PRJNA723543 + amplicon sheep SRR14342440 PRJNA723543 + amplicon sheep SRR14342441 PRJNA723543 + amplicon sheep SRR14342442 PRJNA723543 + amplicon sheep SRR14342443 PRJNA723543 + amplicon sheep SRR14342444 PRJNA723543 + amplicon sheep SRR14342445 PRJNA723543 + amplicon sheep SRR14342446 PRJNA723543 + amplicon sheep SRR14342447 PRJNA723543 + amplicon sheep SRR14342448 PRJNA723543 + amplicon sheep SRR14342449 PRJNA723543 + amplicon sheep SRR14342450 PRJNA723543 + amplicon sheep SRR14342451 PRJNA723543 + amplicon sheep SRR14342452 PRJNA723543 + amplicon sheep SRR14342453 PRJNA723543 + amplicon sheep SRR14342454 PRJNA723543 + amplicon sheep SRR14342455 PRJNA723543 + amplicon sheep SRR14342456 PRJNA723543 + amplicon sheep SRR14342457 PRJNA723543 + amplicon sheep SRR14342458 PRJNA723543 + amplicon sheep SRR14342459 PRJNA723543 + amplicon sheep SRR14342460 PRJNA723543 + amplicon sheep SRR14342461 PRJNA723543 + amplicon sheep SRR14342462 PRJNA723543 + amplicon sheep SRR14342463 PRJNA723543 + amplicon sheep SRR14342464 PRJNA723543 + amplicon sheep SRR14342465 PRJNA723543 + amplicon sheep SRR14342466 PRJNA723543 + amplicon sheep SRR14342467 PRJNA723543 + amplicon sheep SRR14342468 PRJNA723543 + amplicon sheep SRR14342469 PRJNA723543 + amplicon sheep SRR14342470 PRJNA723543 + amplicon sheep SRR14342471 PRJNA723543 + amplicon sheep SRR14342472 PRJNA723543 + amplicon sheep SRR14342473 PRJNA723543 + amplicon sheep SRR14342474 PRJNA723543 + amplicon sheep SRR14342475 PRJNA723543 + amplicon sheep SRR14342476 PRJNA723543 + amplicon sheep SRR14342477 PRJNA723543 + amplicon sheep SRR14342478 PRJNA723543 + amplicon sheep SRR14342479 PRJNA723543 + amplicon sheep SRR14342480 PRJNA723543 + amplicon sheep SRR14342481 PRJNA723543 + amplicon sheep SRR14342482 PRJNA723543 + amplicon sheep SRR14342483 PRJNA723543 + amplicon sheep SRR14342484 PRJNA723543 + amplicon sheep SRR14342485 PRJNA723543 + amplicon sheep SRR14342486 PRJNA723543 + amplicon sheep SRR14342487 PRJNA723543 + amplicon sheep SRR14342488 PRJNA723543 + amplicon sheep SRR14342489 PRJNA723543 + amplicon sheep SRR14342490 PRJNA723543 + amplicon sheep SRR14342491 PRJNA723543 + amplicon sheep SRR14342492 PRJNA723543 + amplicon sheep SRR14342493 PRJNA723543 + amplicon sheep SRR14342494 PRJNA723543 + amplicon sheep SRR14342495 PRJNA723543 + amplicon sheep SRR14342496 PRJNA723543 + amplicon sheep SRR14342497 PRJNA723543 + amplicon sheep SRR14342498 PRJNA723543 + amplicon sheep SRR14342499 PRJNA723543 + amplicon sheep SRR14342500 PRJNA723543 + amplicon sheep SRR14342501 PRJNA723543 + amplicon sheep SRR14342502 PRJNA723543 + amplicon sheep SRR14342503 PRJNA723543 + amplicon sheep SRR14342504 PRJNA723543 + amplicon sheep SRR14342505 PRJNA723543 + amplicon sheep SRR14342506 PRJNA723543 + amplicon sheep SRR14342507 PRJNA723543 + amplicon sheep SRR14342508 PRJNA723543 + amplicon sheep SRR14342509 PRJNA723543 + amplicon sheep SRR14342510 PRJNA723543 + amplicon sheep SRR14342511 PRJNA723543 + amplicon sheep SRR14342512 PRJNA723543 + amplicon sheep SRR14342513 PRJNA723543 + amplicon sheep SRR14342514 PRJNA723543 + amplicon sheep SRR14342515 PRJNA723543 + amplicon sheep SRR14342516 PRJNA723543 + amplicon sheep SRR14342517 PRJNA723543 + amplicon sheep SRR14342518 PRJNA723543 + amplicon sheep SRR14342519 PRJNA723543 + amplicon sheep SRR14342520 PRJNA723543 + amplicon sheep SRR14342521 PRJNA723543 + amplicon sheep SRR14342522 PRJNA723543 + amplicon sheep SRR14342523 PRJNA723543 + amplicon sheep SRR14342524 PRJNA723543 + amplicon sheep SRR14342525 PRJNA723543 + amplicon sheep SRR14342526 PRJNA723543 + amplicon sheep SRR14342527 PRJNA723543 + amplicon sheep SRR14342528 PRJNA723543 + amplicon sheep SRR14342529 PRJNA723543 + amplicon sheep SRR14342530 PRJNA723543 + amplicon sheep SRR14342531 PRJNA723543 + amplicon sheep SRR14342532 PRJNA723543 + amplicon sheep SRR14342533 PRJNA723543 + amplicon sheep SRR14342534 PRJNA723543 + amplicon sheep SRR14342535 PRJNA723543 + amplicon sheep SRR14342536 PRJNA723543 + amplicon sheep SRR14342537 PRJNA723543 + amplicon sheep SRR14342538 PRJNA723543 + amplicon sheep SRR14342539 PRJNA723543 + amplicon sheep SRR14342540 PRJNA723543 + amplicon sheep SRR14342541 PRJNA723543 + amplicon sheep SRR14342542 PRJNA723543 + amplicon sheep SRR14342543 PRJNA723543 + amplicon sheep SRR14342544 PRJNA723543 + amplicon sheep SRR14342545 PRJNA723543 + amplicon sheep SRR14342546 PRJNA723543 + amplicon sheep SRR14342547 PRJNA723543 + amplicon sheep SRR14342548 PRJNA723543 + amplicon sheep SRR14342549 PRJNA723543 + amplicon sheep SRR14342550 PRJNA723543 + amplicon sheep SRR14342551 PRJNA723543 + amplicon sheep SRR14342552 PRJNA723543 + amplicon sheep SRR14342553 PRJNA723543 + amplicon sheep SRR14342554 PRJNA723543 + amplicon sheep SRR14342555 PRJNA723543 + amplicon sheep SRR14342556 PRJNA723543 + amplicon sheep SRR14342557 PRJNA723543 + amplicon sheep SRR14342558 PRJNA723543 + amplicon sheep SRR14342559 PRJNA723543 + amplicon sheep SRR14342560 PRJNA723543 + amplicon sheep SRR14342561 PRJNA723543 + amplicon sheep SRR14342562 PRJNA723543 + amplicon sheep SRR14342563 PRJNA723543 + amplicon sheep SRR14342564 PRJNA723543 + amplicon sheep SRR14342565 PRJNA723543 + amplicon sheep SRR14342566 PRJNA723543 + amplicon sheep SRR14342567 PRJNA723543 + amplicon sheep SRR14342568 PRJNA723543 + amplicon sheep SRR14342569 PRJNA723543 + amplicon sheep SRR14342570 PRJNA723543 + amplicon sheep SRR14342571 PRJNA723543 + amplicon sheep SRR14342572 PRJNA723543 + amplicon sheep SRR14342573 PRJNA723543 + amplicon sheep SRR14342574 PRJNA723543 + amplicon sheep SRR14342575 PRJNA723543 + amplicon sheep SRR14342576 PRJNA723543 + amplicon sheep SRR14342577 PRJNA723543 + amplicon sheep SRR14342578 PRJNA723543 + amplicon sheep SRR14342579 PRJNA723543 + amplicon sheep SRR14342580 PRJNA723543 + amplicon sheep SRR14342581 PRJNA723543 + amplicon sheep SRR14342582 PRJNA723543 + amplicon sheep SRR14342583 PRJNA723543 + amplicon sheep SRR14342584 PRJNA723543 + amplicon sheep SRR14342585 PRJNA723543 + amplicon sheep SRR14342586 PRJNA723543 + amplicon sheep SRR14342587 PRJNA723543 + amplicon sheep SRR14342588 PRJNA723543 + amplicon sheep SRR14342589 PRJNA723543 + amplicon sheep SRR14342590 PRJNA723543 + amplicon sheep SRR14342591 PRJNA723543 + amplicon sheep SRR14342592 PRJNA723543 + amplicon sheep SRR14342593 PRJNA723543 + amplicon sheep SRR14342594 PRJNA723543 + amplicon sheep SRR14342595 PRJNA723543 + amplicon sheep SRR14342596 PRJNA723543 + amplicon sheep SRR14342597 PRJNA723543 + amplicon sheep SRR14342598 PRJNA723543 + amplicon sheep SRR14342599 PRJNA723543 + amplicon sheep SRR14342600 PRJNA723543 + amplicon sheep SRR14342601 PRJNA723543 + amplicon sheep SRR14342602 PRJNA723543 + amplicon sheep SRR14342603 PRJNA723543 + amplicon sheep SRR14342604 PRJNA723543 + amplicon sheep SRR14342605 PRJNA723543 + amplicon sheep SRR14342606 PRJNA723543 + amplicon sheep SRR14342607 PRJNA723543 + amplicon sheep SRR14342608 PRJNA723543 + amplicon sheep SRR14342609 PRJNA723543 + amplicon sheep SRR14342610 PRJNA723543 + amplicon sheep SRR14342611 PRJNA723543 + amplicon sheep SRR14342612 PRJNA723543 + amplicon sheep SRR14342613 PRJNA723543 + amplicon sheep SRR14342614 PRJNA723543 + amplicon sheep SRR14342615 PRJNA723543 + amplicon sheep SRR14342616 PRJNA723543 + amplicon sheep SRR14342617 PRJNA723543 + amplicon sheep SRR14342618 PRJNA723543 + amplicon sheep SRR14342619 PRJNA723543 + amplicon sheep SRR14342620 PRJNA723543 + amplicon sheep SRR14342621 PRJNA723543 + amplicon sheep SRR14342622 PRJNA723543 + amplicon sheep SRR14342623 PRJNA723543 + amplicon sheep SRR14342624 PRJNA723543 + amplicon sheep SRR14342625 PRJNA723543 + amplicon sheep SRR14342626 PRJNA723543 + amplicon sheep SRR14342627 PRJNA723543 + amplicon sheep SRR14342628 PRJNA723543 + amplicon sheep SRR14342629 PRJNA723543 + amplicon sheep SRR14342630 PRJNA723543 + amplicon sheep SRR14342631 PRJNA723543 + amplicon sheep SRR14342632 PRJNA723543 + amplicon sheep SRR14342633 PRJNA723543 + amplicon sheep SRR14342634 PRJNA723543 + amplicon sheep SRR14342635 PRJNA723543 + amplicon sheep SRR14342636 PRJNA723543 + amplicon sheep SRR14342637 PRJNA723543 + amplicon sheep SRR14342638 PRJNA723543 + amplicon sheep SRR14342639 PRJNA723543 + amplicon sheep SRR14342640 PRJNA723543 + amplicon sheep SRR14342641 PRJNA723543 + amplicon sheep SRR14342642 PRJNA723543 + amplicon sheep SRR14342643 PRJNA723543 + amplicon sheep SRR14342644 PRJNA723543 + amplicon sheep SRR14342645 PRJNA723543 + amplicon sheep SRR14342646 PRJNA723543 + amplicon sheep SRR14342647 PRJNA723543 + amplicon sheep SRR14342648 PRJNA723543 + amplicon sheep SRR14342649 PRJNA723543 + amplicon sheep SRR14342650 PRJNA723543 + amplicon sheep SRR14342651 PRJNA723543 + amplicon sheep SRR14342652 PRJNA723543 + amplicon sheep SRR14342653 PRJNA723543 + amplicon sheep SRR14342654 PRJNA723543 + amplicon sheep SRR14342655 PRJNA723543 + amplicon sheep SRR14342656 PRJNA723543 + amplicon sheep SRR14342657 PRJNA723543 + amplicon sheep SRR14342658 PRJNA723543 + amplicon sheep SRR14342659 PRJNA723543 + amplicon sheep SRR14342660 PRJNA723543 + amplicon sheep SRR14342661 PRJNA723543 + amplicon sheep SRR14342662 PRJNA723543 + amplicon sheep SRR14342663 PRJNA723543 + amplicon sheep SRR14342664 PRJNA723543 + amplicon sheep SRR14342665 PRJNA723543 + amplicon sheep SRR14342666 PRJNA723543 + amplicon sheep SRR14342667 PRJNA723543 + amplicon sheep SRR14342668 PRJNA723543 + amplicon sheep SRR14342669 PRJNA723543 + amplicon sheep SRR14342670 PRJNA723543 + amplicon sheep SRR14342671 PRJNA723543 + amplicon sheep SRR14342672 PRJNA723543 + amplicon sheep SRR14342673 PRJNA723543 + amplicon sheep SRR14342674 PRJNA723543 + amplicon sheep SRR14342675 PRJNA723543 + amplicon sheep SRR14342676 PRJNA723543 + amplicon sheep SRR14342677 PRJNA723543 + amplicon sheep SRR14342678 PRJNA723543 + amplicon sheep SRR14342679 PRJNA723543 + amplicon sheep SRR14342680 PRJNA723543 + amplicon sheep SRR14342681 PRJNA723543 + amplicon sheep SRR14342682 PRJNA723543 + amplicon sheep SRR14342683 PRJNA723543 + amplicon sheep SRR14342684 PRJNA723543 + amplicon sheep SRR14342685 PRJNA723543 + amplicon sheep SRR14342686 PRJNA723543 + amplicon sheep SRR14342687 PRJNA723543 + amplicon sheep SRR14342688 PRJNA723543 + amplicon sheep SRR14342689 PRJNA723543 + amplicon sheep SRR14342690 PRJNA723543 + amplicon sheep SRR14342691 PRJNA723543 + amplicon sheep SRR14342692 PRJNA723543 + amplicon sheep SRR14342693 PRJNA723543 + amplicon sheep SRR14342694 PRJNA723543 + amplicon sheep SRR14342695 PRJNA723543 + amplicon sheep SRR14342696 PRJNA723543 + amplicon sheep SRR14342697 PRJNA723543 + amplicon sheep SRR14342698 PRJNA723543 + amplicon sheep SRR14342699 PRJNA723543 + amplicon sheep SRR14342700 PRJNA723543 + amplicon sheep SRR14342701 PRJNA723543 + amplicon sheep SRR14342702 PRJNA723543 + amplicon sheep SRR14342703 PRJNA723543 + amplicon sheep SRR14342704 PRJNA723543 + amplicon sheep SRR14342705 PRJNA723543 + amplicon sheep SRR14342706 PRJNA723543 + amplicon sheep SRR14342707 PRJNA723543 + amplicon sheep SRR14342708 PRJNA723543 + amplicon sheep SRR14342709 PRJNA723543 + amplicon sheep SRR14342710 PRJNA723543 + amplicon sheep SRR14342711 PRJNA723543 + amplicon sheep SRR14342712 PRJNA723543 + amplicon sheep SRR14342713 PRJNA723543 + amplicon sheep SRR14342714 PRJNA723543 + amplicon sheep SRR14342715 PRJNA723543 + amplicon sheep SRR14342716 PRJNA723543 + amplicon sheep SRR14342717 PRJNA723543 + amplicon sheep SRR14342718 PRJNA723543 + amplicon sheep SRR14342719 PRJNA723543 + amplicon sheep SRR14342720 PRJNA723543 + amplicon sheep SRR14342721 PRJNA723543 + amplicon sheep SRR14342722 PRJNA723543 + amplicon sheep SRR14342723 PRJNA723543 + amplicon sheep SRR14342724 PRJNA723543 + amplicon sheep SRR14342725 PRJNA723543 + amplicon sheep SRR14342726 PRJNA723543 + amplicon sheep SRR14342727 PRJNA723543 + amplicon sheep SRR14342728 PRJNA723543 + amplicon sheep SRR14342729 PRJNA723543 + amplicon sheep SRR14342730 PRJNA723543 + amplicon sheep SRR14342731 PRJNA723543 + amplicon sheep SRR14342732 PRJNA723543 + amplicon sheep SRR14342733 PRJNA723543 + amplicon sheep SRR14342734 PRJNA723543 + amplicon sheep SRR14342735 PRJNA723543 + amplicon sheep SRR14342736 PRJNA723543 + amplicon sheep SRR14342737 PRJNA723543 + amplicon sheep SRR14342738 PRJNA723543 + amplicon sheep SRR14342739 PRJNA723543 + amplicon sheep SRR14342740 PRJNA723543 + amplicon sheep SRR14342741 PRJNA723543 + amplicon sheep SRR14342742 PRJNA723543 + amplicon sheep SRR14342743 PRJNA723543 + amplicon sheep SRR14342744 PRJNA723543 + amplicon sheep SRR14342745 PRJNA723543 + amplicon sheep SRR14342746 PRJNA723543 + amplicon sheep SRR14342747 PRJNA723543 + amplicon sheep SRR14342748 PRJNA723543 + amplicon sheep SRR14342749 PRJNA723543 + amplicon sheep SRR14342750 PRJNA723543 + amplicon sheep SRR14342751 PRJNA723543 + amplicon sheep SRR14342752 PRJNA723543 + amplicon sheep SRR14342753 PRJNA723543 + amplicon sheep SRR14342754 PRJNA723543 + amplicon sheep SRR14342755 PRJNA723543 + amplicon sheep SRR14342756 PRJNA723543 + amplicon sheep SRR14342757 PRJNA723543 + amplicon sheep SRR14342758 PRJNA723543 + amplicon sheep SRR14342759 PRJNA723543 + amplicon sheep SRR14342760 PRJNA723543 + amplicon sheep SRR14342761 PRJNA723543 + amplicon sheep SRR14342762 PRJNA723543 + amplicon sheep SRR14342763 PRJNA723543 + amplicon sheep SRR14342764 PRJNA723543 + amplicon sheep SRR14342765 PRJNA723543 + amplicon sheep SRR14342766 PRJNA723543 + amplicon sheep SRR14342767 PRJNA723543 + amplicon sheep SRR14342768 PRJNA723543 + amplicon sheep SRR14342769 PRJNA723543 + amplicon sheep SRR14342770 PRJNA723543 + amplicon sheep SRR14342771 PRJNA723543 + amplicon sheep SRR14342772 PRJNA723543 + amplicon sheep SRR14342773 PRJNA723543 + amplicon sheep SRR14342774 PRJNA723543 + amplicon sheep SRR14342775 PRJNA723543 + amplicon sheep SRR14342776 PRJNA723543 + amplicon sheep SRR14342777 PRJNA723543 + amplicon sheep SRR14342778 PRJNA723543 + amplicon sheep SRR14342779 PRJNA723543 + amplicon sheep SRR14342780 PRJNA723543 + amplicon sheep SRR14342781 PRJNA723543 + amplicon sheep SRR14342782 PRJNA723543 + amplicon sheep SRR14342783 PRJNA723543 + amplicon sheep SRR14342784 PRJNA723543 + amplicon sheep SRR14342785 PRJNA723543 + amplicon sheep SRR14342786 PRJNA723543 + amplicon sheep SRR14342787 PRJNA723543 + amplicon sheep SRR14342788 PRJNA723543 + amplicon sheep SRR14342789 PRJNA723543 + amplicon sheep SRR14342790 PRJNA723543 + amplicon sheep SRR14342791 PRJNA723543 + amplicon sheep SRR14342792 PRJNA723543 + amplicon sheep SRR14342793 PRJNA723543 + amplicon sheep SRR14342794 PRJNA723543 + amplicon sheep SRR14342795 PRJNA723543 + amplicon sheep SRR14342796 PRJNA723543 + amplicon sheep SRR14342797 PRJNA723543 + amplicon sheep SRR14342798 PRJNA723543 + amplicon sheep SRR14342799 PRJNA723543 + amplicon sheep SRR14342800 PRJNA723543 + amplicon sheep SRR14342801 PRJNA723543 + amplicon sheep SRR14342802 PRJNA723543 + amplicon sheep SRR14342803 PRJNA723543 + amplicon sheep SRR14342804 PRJNA723543 + amplicon sheep SRR14342805 PRJNA723543 + amplicon sheep SRR14342806 PRJNA723543 + amplicon sheep SRR14342807 PRJNA723543 + amplicon sheep SRR14342808 PRJNA723543 + amplicon sheep SRR14342809 PRJNA723543 + amplicon sheep SRR14342810 PRJNA723543 + amplicon sheep SRR14342811 PRJNA723543 + amplicon sheep SRR14342812 PRJNA723543 + amplicon sheep SRR14342813 PRJNA723543 + amplicon sheep SRR14342814 PRJNA723543 + amplicon sheep SRR14342815 PRJNA723543 + amplicon sheep SRR14342816 PRJNA723543 + amplicon sheep SRR14342817 PRJNA723543 + amplicon sheep SRR14342818 PRJNA723543 + amplicon sheep SRR14342819 PRJNA723543 + amplicon sheep SRR14342820 PRJNA723543 + amplicon sheep SRR14342821 PRJNA723543 + amplicon sheep SRR14342822 PRJNA723543 + amplicon sheep SRR14342823 PRJNA723543 + amplicon sheep SRR14342824 PRJNA723543 + amplicon sheep SRR14342825 PRJNA723543 + amplicon sheep SRR14342826 PRJNA723543 + amplicon sheep SRR14342827 PRJNA723543 + amplicon sheep SRR14342828 PRJNA723543 + amplicon sheep SRR14342829 PRJNA723543 + amplicon sheep SRR14342830 PRJNA723543 + amplicon sheep SRR14342831 PRJNA723543 + amplicon sheep SRR14342832 PRJNA723543 + amplicon sheep SRR14342833 PRJNA723543 + amplicon sheep SRR14342834 PRJNA723543 + amplicon sheep SRR14342835 PRJNA723543 + amplicon sheep SRR14342836 PRJNA723543 + amplicon sheep SRR14342837 PRJNA723543 + amplicon sheep SRR14342838 PRJNA723543 + amplicon sheep SRR14342839 PRJNA723543 + amplicon sheep SRR14342840 PRJNA723543 + amplicon sheep SRR14342841 PRJNA723543 + amplicon sheep SRR18749674 PRJNA723543 + amplicon sheep SRR18749675 PRJNA723543 + amplicon sheep SRR18749677 PRJNA723543 + amplicon sheep SRR18749679 PRJNA723543 + amplicon sheep SRR18749681 PRJNA723543 + amplicon sheep SRR18749683 PRJNA723543 + amplicon sheep SRR18749685 PRJNA723543 + amplicon sheep SRR18749686 PRJNA723543 + amplicon sheep SRR18749689 PRJNA723543 + amplicon sheep SRR18749690 PRJNA723543 + amplicon sheep SRR18749692 PRJNA723543 + amplicon sheep SRR18749693 PRJNA723543 + amplicon sheep SRR18749695 PRJNA723543 + amplicon sheep SRR18749697 PRJNA723543 + amplicon sheep SRR18749699 PRJNA723543 + amplicon sheep SRR18749702 PRJNA723543 + amplicon sheep SRR18749703 PRJNA723543 + amplicon sheep SRR18749705 PRJNA723543 + amplicon sheep SRR18749707 PRJNA723543 + amplicon sheep SRR18749708 PRJNA723543 + amplicon sheep SRR18749711 PRJNA723543 + amplicon sheep SRR18749712 PRJNA723543 + amplicon sheep SRR18749714 PRJNA723543 + amplicon sheep SRR18749715 PRJNA723543 + amplicon sheep SRR18749719 PRJNA723543 + amplicon sheep SRR18749720 PRJNA723543 + amplicon sheep SRR18749721 PRJNA723543 + amplicon sheep SRR18749723 PRJNA723543 + amplicon sheep SRR18749724 PRJNA723543 + amplicon sheep SRR18749725 PRJNA723543 + amplicon sheep SRR18749728 PRJNA723543 + amplicon sheep SRR18749729 PRJNA723543 + amplicon sheep SRR18749730 PRJNA723543 + amplicon sheep SRR18749731 PRJNA723543 + amplicon sheep SRR18749735 PRJNA723543 + amplicon sheep SRR18749740 PRJNA723543 + amplicon sheep SRR18749741 PRJNA723543 + amplicon sheep SRR18749743 PRJNA723543 + amplicon sheep SRR18749745 PRJNA723543 + amplicon sheep SRR18749746 PRJNA723543 + amplicon sheep SRR18749749 PRJNA723543 + amplicon sheep SRR18749751 PRJNA723543 + amplicon sheep SRR18749753 PRJNA723543 + amplicon sheep SRR18749755 PRJNA723543 + amplicon sheep SRR18749757 PRJNA723543 + amplicon sheep SRR18749758 PRJNA723543 + amplicon sheep SRR18749760 PRJNA723543 + amplicon sheep SRR18749762 PRJNA723543 + amplicon sheep SRR18749670 PRJNA723543 + amplicon sheep SRR18749671 PRJNA723543 + amplicon sheep SRR18749672 PRJNA723543 + amplicon sheep SRR18749673 PRJNA723543 + amplicon sheep SRR18749676 PRJNA723543 + amplicon sheep SRR18749678 PRJNA723543 + amplicon sheep SRR18749680 PRJNA723543 + amplicon sheep SRR18749682 PRJNA723543 + amplicon sheep SRR18749684 PRJNA723543 + amplicon sheep SRR18749687 PRJNA723543 + amplicon sheep SRR18749688 PRJNA723543 + amplicon sheep SRR18749691 PRJNA723543 + amplicon sheep SRR18749694 PRJNA723543 + amplicon sheep SRR18749698 PRJNA723543 + amplicon sheep SRR18749700 PRJNA723543 + amplicon sheep SRR18749701 PRJNA723543 + amplicon sheep SRR18749704 PRJNA723543 + amplicon sheep SRR18749706 PRJNA723543 + amplicon sheep SRR18749709 PRJNA723543 + amplicon sheep SRR18749710 PRJNA723543 + amplicon sheep SRR18749713 PRJNA723543 + amplicon sheep SRR18749716 PRJNA723543 + amplicon sheep SRR18749717 PRJNA723543 + amplicon sheep SRR18749718 PRJNA723543 + amplicon sheep SRR18749722 PRJNA723543 + amplicon sheep SRR18749726 PRJNA723543 + amplicon sheep SRR18749727 PRJNA723543 + amplicon sheep SRR18749732 PRJNA723543 + amplicon sheep SRR18749733 PRJNA723543 + amplicon sheep SRR18749734 PRJNA723543 + amplicon sheep SRR18749736 PRJNA723543 + amplicon sheep SRR18749737 PRJNA723543 + amplicon sheep SRR18749738 PRJNA723543 + amplicon sheep SRR18749739 PRJNA723543 + amplicon sheep SRR18749742 PRJNA723543 + amplicon sheep SRR18749744 PRJNA723543 + amplicon sheep SRR18749747 PRJNA723543 + amplicon sheep SRR18749748 PRJNA723543 + amplicon sheep SRR18749750 PRJNA723543 + amplicon sheep SRR18749752 PRJNA723543 + amplicon sheep SRR18749754 PRJNA723543 + amplicon sheep SRR18749756 PRJNA723543 + amplicon sheep SRR18749759 PRJNA723543 + amplicon sheep SRR18749761 PRJNA723543 + amplicon sheep SRR18749763 PRJNA723543 + amplicon sheep SRR18749764 PRJNA723543 + amplicon sheep SRR14474973 PRJNA728434 + amplicon sheep SRR14474980 PRJNA728434 + amplicon sheep SRR14474983 PRJNA728434 + amplicon sheep SRR14474984 PRJNA728434 + amplicon sheep SRR15091371 PRJNA744569 + amplicon sheep SRR15091372 PRJNA744569 + amplicon sheep SRR15091373 PRJNA744569 + amplicon sheep SRR15091374 PRJNA744569 + amplicon sheep SRR15091375 PRJNA744569 + amplicon sheep SRR15091376 PRJNA744569 + amplicon sheep SRR15091377 PRJNA744569 + amplicon sheep SRR15091378 PRJNA744569 + amplicon sheep SRR15091379 PRJNA744569 + amplicon rabbit SRR15193834 PRJNA747914 + amplicon rabbit SRR15193665 PRJNA747914 + amplicon rabbit SRR15193666 PRJNA747914 + amplicon rabbit SRR15193667 PRJNA747914 + amplicon rabbit SRR15193668 PRJNA747914 + amplicon rabbit SRR15193669 PRJNA747914 + amplicon rabbit SRR15193670 PRJNA747914 + amplicon rabbit SRR15193671 PRJNA747914 + amplicon rabbit SRR15193672 PRJNA747914 + amplicon rabbit SRR15193673 PRJNA747914 + amplicon rabbit SRR15193674 PRJNA747914 + amplicon rabbit SRR15193675 PRJNA747914 + amplicon rabbit SRR15193676 PRJNA747914 + amplicon rabbit SRR15193677 PRJNA747914 + amplicon rabbit SRR15193678 PRJNA747914 + amplicon rabbit SRR15193679 PRJNA747914 + amplicon rabbit SRR15193680 PRJNA747914 + amplicon rabbit SRR15193681 PRJNA747914 + amplicon rabbit SRR15193682 PRJNA747914 + amplicon rabbit SRR15193683 PRJNA747914 + amplicon rabbit SRR15193684 PRJNA747914 + amplicon rabbit SRR15193685 PRJNA747914 + amplicon rabbit SRR15193686 PRJNA747914 + amplicon rabbit SRR15193687 PRJNA747914 + amplicon rabbit SRR15193688 PRJNA747914 + amplicon rabbit SRR15193689 PRJNA747914 + amplicon rabbit SRR15193690 PRJNA747914 + amplicon rabbit SRR15193691 PRJNA747914 + amplicon rabbit SRR15193692 PRJNA747914 + amplicon rabbit SRR15193693 PRJNA747914 + amplicon rabbit SRR15193694 PRJNA747914 + amplicon rabbit SRR15193695 PRJNA747914 + amplicon rabbit SRR15193696 PRJNA747914 + amplicon rabbit SRR15193697 PRJNA747914 + amplicon rabbit SRR15193698 PRJNA747914 + amplicon rabbit SRR15193699 PRJNA747914 + amplicon rabbit SRR15193700 PRJNA747914 + amplicon rabbit SRR15193701 PRJNA747914 + amplicon rabbit SRR15193702 PRJNA747914 + amplicon rabbit SRR15193703 PRJNA747914 + amplicon rabbit SRR15193704 PRJNA747914 + amplicon rabbit SRR15193705 PRJNA747914 + amplicon rabbit SRR15193706 PRJNA747914 + amplicon rabbit SRR15193707 PRJNA747914 + amplicon rabbit SRR15193708 PRJNA747914 + amplicon rabbit SRR15193709 PRJNA747914 + amplicon rabbit SRR15193710 PRJNA747914 + amplicon rabbit SRR15193711 PRJNA747914 + amplicon rabbit SRR15193712 PRJNA747914 + amplicon rabbit SRR15193713 PRJNA747914 + amplicon rabbit SRR15193714 PRJNA747914 + amplicon rabbit SRR15193715 PRJNA747914 + amplicon rabbit SRR15193716 PRJNA747914 + amplicon rabbit SRR15193717 PRJNA747914 + amplicon rabbit SRR15193718 PRJNA747914 + amplicon rabbit SRR15193719 PRJNA747914 + amplicon rabbit SRR15193720 PRJNA747914 + amplicon rabbit SRR15193721 PRJNA747914 + amplicon rabbit SRR15193722 PRJNA747914 + amplicon rabbit SRR15193723 PRJNA747914 + amplicon rabbit SRR15193724 PRJNA747914 + amplicon rabbit SRR15193725 PRJNA747914 + amplicon rabbit SRR15193726 PRJNA747914 + amplicon rabbit SRR15193727 PRJNA747914 + amplicon rabbit SRR15193728 PRJNA747914 + amplicon rabbit SRR15193729 PRJNA747914 + amplicon rabbit SRR15193730 PRJNA747914 + amplicon rabbit SRR15193731 PRJNA747914 + amplicon rabbit SRR15193732 PRJNA747914 + amplicon rabbit SRR15193733 PRJNA747914 + amplicon rabbit SRR15193734 PRJNA747914 + amplicon rabbit SRR15193735 PRJNA747914 + amplicon rabbit SRR15193736 PRJNA747914 + amplicon rabbit SRR15193737 PRJNA747914 + amplicon rabbit SRR15193738 PRJNA747914 + amplicon rabbit SRR15193739 PRJNA747914 + amplicon rabbit SRR15193740 PRJNA747914 + amplicon rabbit SRR15193741 PRJNA747914 + amplicon rabbit SRR15193742 PRJNA747914 + amplicon rabbit SRR15193743 PRJNA747914 + amplicon rabbit SRR15193744 PRJNA747914 + amplicon rabbit SRR15193745 PRJNA747914 + amplicon rabbit SRR15193746 PRJNA747914 + amplicon rabbit SRR15193747 PRJNA747914 + amplicon rabbit SRR15193748 PRJNA747914 + amplicon rabbit SRR15193749 PRJNA747914 + amplicon rabbit SRR15193750 PRJNA747914 + amplicon rabbit SRR15193751 PRJNA747914 + amplicon rabbit SRR15193752 PRJNA747914 + amplicon rabbit SRR15193753 PRJNA747914 + amplicon rabbit SRR15193754 PRJNA747914 + amplicon rabbit SRR15193755 PRJNA747914 + amplicon rabbit SRR15193756 PRJNA747914 + amplicon rabbit SRR15193757 PRJNA747914 + amplicon rabbit SRR15193758 PRJNA747914 + amplicon rabbit SRR15193759 PRJNA747914 + amplicon rabbit SRR15193760 PRJNA747914 + amplicon rabbit SRR15193761 PRJNA747914 + amplicon rabbit SRR15193762 PRJNA747914 + amplicon rabbit SRR15193763 PRJNA747914 + amplicon rabbit SRR15193764 PRJNA747914 + amplicon rabbit SRR15193765 PRJNA747914 + amplicon rabbit SRR15193766 PRJNA747914 + amplicon rabbit SRR15193767 PRJNA747914 + amplicon rabbit SRR15193768 PRJNA747914 + amplicon rabbit SRR15193769 PRJNA747914 + amplicon rabbit SRR15193770 PRJNA747914 + amplicon rabbit SRR15193771 PRJNA747914 + amplicon rabbit SRR15193772 PRJNA747914 + amplicon rabbit SRR15193773 PRJNA747914 + amplicon rabbit SRR15193774 PRJNA747914 + amplicon rabbit SRR15193775 PRJNA747914 + amplicon rabbit SRR15193776 PRJNA747914 + amplicon rabbit SRR15193777 PRJNA747914 + amplicon rabbit SRR15193778 PRJNA747914 + amplicon rabbit SRR15193779 PRJNA747914 + amplicon rabbit SRR15193780 PRJNA747914 + amplicon rabbit SRR15193781 PRJNA747914 + amplicon rabbit SRR15193782 PRJNA747914 + amplicon rabbit SRR15193783 PRJNA747914 + amplicon rabbit SRR15193784 PRJNA747914 + amplicon rabbit SRR15193785 PRJNA747914 + amplicon rabbit SRR15193786 PRJNA747914 + amplicon rabbit SRR15193787 PRJNA747914 + amplicon rabbit SRR15193788 PRJNA747914 + amplicon rabbit SRR15193789 PRJNA747914 + amplicon rabbit SRR15193790 PRJNA747914 + amplicon rabbit SRR15193791 PRJNA747914 + amplicon rabbit SRR15193792 PRJNA747914 + amplicon rabbit SRR15193793 PRJNA747914 + amplicon rabbit SRR15193794 PRJNA747914 + amplicon rabbit SRR15193795 PRJNA747914 + amplicon rabbit SRR15193796 PRJNA747914 + amplicon rabbit SRR15193797 PRJNA747914 + amplicon rabbit SRR15193798 PRJNA747914 + amplicon rabbit SRR15193799 PRJNA747914 + amplicon rabbit SRR15193800 PRJNA747914 + amplicon rabbit SRR15193801 PRJNA747914 + amplicon rabbit SRR15193802 PRJNA747914 + amplicon rabbit SRR15193803 PRJNA747914 + amplicon rabbit SRR15193804 PRJNA747914 + amplicon rabbit SRR15193805 PRJNA747914 + amplicon rabbit SRR15193806 PRJNA747914 + amplicon rabbit SRR15193807 PRJNA747914 + amplicon rabbit SRR15193808 PRJNA747914 + amplicon rabbit SRR15193809 PRJNA747914 + amplicon rabbit SRR15193810 PRJNA747914 + amplicon rabbit SRR15193811 PRJNA747914 + amplicon rabbit SRR15193812 PRJNA747914 + amplicon rabbit SRR15193813 PRJNA747914 + amplicon rabbit SRR15193814 PRJNA747914 + amplicon rabbit SRR15193815 PRJNA747914 + amplicon rabbit SRR15193816 PRJNA747914 + amplicon rabbit SRR15193817 PRJNA747914 + amplicon rabbit SRR15193818 PRJNA747914 + amplicon rabbit SRR15193819 PRJNA747914 + amplicon rabbit SRR15193820 PRJNA747914 + amplicon rabbit SRR15193821 PRJNA747914 + amplicon rabbit SRR15193822 PRJNA747914 + amplicon rabbit SRR15193823 PRJNA747914 + amplicon rabbit SRR15193824 PRJNA747914 + amplicon rabbit SRR15193825 PRJNA747914 + amplicon rabbit SRR15193826 PRJNA747914 + amplicon rabbit SRR15193827 PRJNA747914 + amplicon rabbit SRR15193828 PRJNA747914 + amplicon rabbit SRR15193829 PRJNA747914 + amplicon rabbit SRR15193830 PRJNA747914 + amplicon rabbit SRR15193831 PRJNA747914 + amplicon rabbit SRR15193832 PRJNA747914 + amplicon rabbit SRR15193833 PRJNA747914 + amplicon rabbit SRR15193835 PRJNA747914 + amplicon rabbit SRR15193836 PRJNA747914 + amplicon rabbit SRR15193837 PRJNA747914 + amplicon rabbit SRR15193838 PRJNA747914 + amplicon rabbit SRR15193839 PRJNA747914 + amplicon rabbit SRR15193840 PRJNA747914 + amplicon rabbit SRR15193841 PRJNA747914 + amplicon rabbit SRR15193842 PRJNA747914 + amplicon rabbit SRR15193843 PRJNA747914 + amplicon rabbit SRR15193844 PRJNA747914 + amplicon rabbit SRR15193845 PRJNA747914 + amplicon rabbit SRR15193846 PRJNA747914 + amplicon rabbit SRR15193847 PRJNA747914 + amplicon rabbit SRR15193848 PRJNA747914 + amplicon rabbit SRR15193849 PRJNA747914 + amplicon rabbit SRR15193850 PRJNA747914 + amplicon rabbit SRR15193851 PRJNA747914 + amplicon rabbit SRR15193852 PRJNA747914 + amplicon rabbit SRR15193853 PRJNA747914 + amplicon rabbit SRR15193854 PRJNA747914 + amplicon rabbit SRR15193855 PRJNA747914 + amplicon rabbit SRR15193856 PRJNA747914 + amplicon rabbit SRR15193857 PRJNA747914 + amplicon rabbit SRR15193858 PRJNA747914 + amplicon rabbit SRR15193859 PRJNA747914 + amplicon rabbit SRR15193860 PRJNA747914 + amplicon rabbit SRR15193861 PRJNA747914 + amplicon rabbit SRR15193862 PRJNA747914 + amplicon rabbit SRR15193863 PRJNA747914 + amplicon rabbit SRR15193864 PRJNA747914 + amplicon rabbit SRR15193865 PRJNA747914 + amplicon rabbit SRR15193866 PRJNA747914 + amplicon rabbit SRR15193867 PRJNA747914 + amplicon rabbit SRR15193868 PRJNA747914 + amplicon rabbit SRR15193869 PRJNA747914 + amplicon rabbit SRR15193870 PRJNA747914 + amplicon rabbit SRR15193871 PRJNA747914 + amplicon rabbit SRR15193872 PRJNA747914 + amplicon rabbit SRR15193873 PRJNA747914 + amplicon rabbit SRR15193874 PRJNA747914 + amplicon rabbit SRR15193875 PRJNA747914 + amplicon rabbit SRR15193876 PRJNA747914 + amplicon rabbit SRR15193877 PRJNA747914 + amplicon rabbit SRR15193878 PRJNA747914 + amplicon rabbit SRR15193879 PRJNA747914 + amplicon rabbit SRR15193880 PRJNA747914 + amplicon rabbit SRR15193881 PRJNA747914 + amplicon rabbit SRR15193882 PRJNA747914 + amplicon rabbit SRR15193883 PRJNA747914 + amplicon rabbit SRR15193884 PRJNA747914 + amplicon rabbit SRR15193885 PRJNA747914 + amplicon rabbit SRR15193886 PRJNA747914 + amplicon rabbit SRR15193887 PRJNA747914 + amplicon rabbit SRR15193888 PRJNA747914 + amplicon rabbit SRR15193889 PRJNA747914 + amplicon rabbit SRR15193890 PRJNA747914 + amplicon rabbit SRR15193891 PRJNA747914 + amplicon rabbit SRR15193892 PRJNA747914 + amplicon rabbit SRR15193893 PRJNA747914 + amplicon rabbit SRR15193894 PRJNA747914 + amplicon rabbit SRR15193895 PRJNA747914 + amplicon rabbit SRR15193896 PRJNA747914 + amplicon rabbit SRR15193897 PRJNA747914 + amplicon rabbit SRR15193898 PRJNA747914 + amplicon rabbit SRR15193899 PRJNA747914 + amplicon rabbit SRR15193900 PRJNA747914 + amplicon rabbit SRR15193901 PRJNA747914 + amplicon rabbit SRR15193902 PRJNA747914 + amplicon rabbit SRR15193903 PRJNA747914 + amplicon rabbit SRR15193904 PRJNA747914 + amplicon rabbit SRR15193905 PRJNA747914 + amplicon rabbit SRR15193906 PRJNA747914 + amplicon rabbit SRR15193907 PRJNA747914 + amplicon rabbit SRR15193908 PRJNA747914 + amplicon rabbit SRR15193909 PRJNA747914 + amplicon rabbit SRR15193910 PRJNA747914 + amplicon rabbit SRR15193911 PRJNA747914 + amplicon rabbit SRR15193912 PRJNA747914 + amplicon rabbit SRR15193913 PRJNA747914 + amplicon rabbit SRR15193914 PRJNA747914 + amplicon rabbit SRR15193915 PRJNA747914 + amplicon rabbit SRR15193916 PRJNA747914 + amplicon rabbit SRR15193917 PRJNA747914 + amplicon rabbit SRR15193918 PRJNA747914 + amplicon rabbit SRR15193919 PRJNA747914 + amplicon rabbit SRR15193920 PRJNA747914 + amplicon rabbit SRR15193921 PRJNA747914 + amplicon rabbit SRR15193922 PRJNA747914 + amplicon rabbit SRR15193923 PRJNA747914 + amplicon rabbit SRR15193924 PRJNA747914 + amplicon rabbit SRR15193925 PRJNA747914 + amplicon rabbit SRR15193926 PRJNA747914 + amplicon rabbit SRR15193927 PRJNA747914 + amplicon rabbit SRR15193928 PRJNA747914 + amplicon rabbit SRR15193929 PRJNA747914 + amplicon rabbit SRR15193930 PRJNA747914 + amplicon rabbit SRR15193931 PRJNA747914 + amplicon rabbit SRR15193932 PRJNA747914 + amplicon rabbit SRR15193933 PRJNA747914 + amplicon rabbit SRR15193934 PRJNA747914 + amplicon rabbit SRR15193935 PRJNA747914 + amplicon rabbit SRR15193936 PRJNA747914 + amplicon rabbit SRR15689818 PRJNA759375 + amplicon rabbit SRR15689819 PRJNA759375 + amplicon rabbit SRR15689820 PRJNA759375 + amplicon rabbit SRR15689821 PRJNA759375 + amplicon rabbit SRR15689822 PRJNA759375 + amplicon rabbit SRR15689823 PRJNA759375 + amplicon rabbit SRR15689824 PRJNA759375 + amplicon rabbit SRR15689825 PRJNA759375 + amplicon rabbit SRR15689826 PRJNA759375 + amplicon rabbit SRR15689827 PRJNA759375 + amplicon rabbit SRR15689828 PRJNA759375 + amplicon rabbit SRR15689829 PRJNA759375 + amplicon rabbit SRR15689830 PRJNA759375 + amplicon rabbit SRR15689831 PRJNA759375 + amplicon rabbit SRR15689832 PRJNA759375 + amplicon rabbit SRR15689833 PRJNA759375 + amplicon rabbit SRR15689834 PRJNA759375 + amplicon rabbit SRR15689835 PRJNA759375 + amplicon rabbit SRR15689836 PRJNA759375 + amplicon rabbit SRR15689837 PRJNA759375 + amplicon rabbit SRR15689838 PRJNA759375 + amplicon rabbit SRR15689839 PRJNA759375 + amplicon rabbit SRR15689840 PRJNA759375 + amplicon rabbit SRR15689841 PRJNA759375 + amplicon rabbit SRR15689842 PRJNA759375 + amplicon rabbit SRR15689843 PRJNA759375 + amplicon rabbit SRR15689844 PRJNA759375 + amplicon rabbit SRR15689845 PRJNA759375 + amplicon rabbit SRR15689846 PRJNA759375 + amplicon rabbit SRR15689847 PRJNA759375 + amplicon rabbit SRR15689848 PRJNA759375 + amplicon rabbit SRR15689849 PRJNA759375 + amplicon rabbit SRR15689850 PRJNA759375 + amplicon rabbit SRR15689851 PRJNA759375 + amplicon rabbit SRR15689852 PRJNA759375 + amplicon rabbit SRR15689853 PRJNA759375 + amplicon rabbit SRR15689854 PRJNA759375 + amplicon rabbit SRR15689855 PRJNA759375 + amplicon rabbit SRR15689856 PRJNA759375 + amplicon rabbit SRR15689857 PRJNA759375 + amplicon rabbit SRR15689858 PRJNA759375 + amplicon rabbit SRR15689859 PRJNA759375 + amplicon rabbit SRR15689860 PRJNA759375 + amplicon rabbit SRR15689861 PRJNA759375 + amplicon rabbit SRR15689862 PRJNA759375 + amplicon rabbit SRR15689863 PRJNA759375 + amplicon rabbit SRR15689864 PRJNA759375 + amplicon rabbit SRR15689865 PRJNA759375 + amplicon rabbit SRR15689866 PRJNA759375 + amplicon rabbit SRR15689867 PRJNA759375 + amplicon rabbit SRR15689868 PRJNA759375 + amplicon rabbit SRR15689869 PRJNA759375 + amplicon rabbit SRR15689870 PRJNA759375 + amplicon rabbit SRR15689871 PRJNA759375 + amplicon rabbit SRR15689872 PRJNA759375 + amplicon rabbit SRR15689873 PRJNA759375 + amplicon rabbit SRR15689874 PRJNA759375 + amplicon rabbit SRR15689875 PRJNA759375 + amplicon rabbit SRR15689876 PRJNA759375 + amplicon rabbit SRR15689877 PRJNA759375 + amplicon rabbit SRR15689878 PRJNA759375 + amplicon rabbit SRR15689879 PRJNA759375 + amplicon rabbit SRR15689880 PRJNA759375 + amplicon rabbit SRR15689881 PRJNA759375 + amplicon rabbit SRR15689882 PRJNA759375 + amplicon rabbit SRR15689883 PRJNA759375 + amplicon rabbit SRR15689884 PRJNA759375 + amplicon rabbit SRR15689885 PRJNA759375 + amplicon rabbit SRR15689886 PRJNA759375 + amplicon rabbit SRR15689887 PRJNA759375 + amplicon rabbit SRR15689888 PRJNA759375 + amplicon rabbit SRR15689889 PRJNA759375 + amplicon rabbit SRR15689890 PRJNA759375 + amplicon rabbit SRR15689891 PRJNA759375 + amplicon rabbit SRR15689892 PRJNA759375 + amplicon rabbit SRR15689893 PRJNA759375 + amplicon rabbit SRR15689894 PRJNA759375 + amplicon rabbit SRR15689895 PRJNA759375 + amplicon rabbit SRR15689896 PRJNA759375 + amplicon rabbit SRR15689897 PRJNA759375 + amplicon rabbit SRR15689898 PRJNA759375 + amplicon rabbit SRR15689899 PRJNA759375 + amplicon rabbit SRR15689900 PRJNA759375 + amplicon rabbit SRR15689901 PRJNA759375 + amplicon rabbit SRR15689902 PRJNA759375 + amplicon rabbit SRR15689903 PRJNA759375 + amplicon rabbit SRR15689904 PRJNA759375 + amplicon rabbit SRR15689905 PRJNA759375 + amplicon rabbit SRR15689906 PRJNA759375 + amplicon rabbit SRR15689907 PRJNA759375 + amplicon rabbit SRR15689908 PRJNA759375 + amplicon rabbit SRR15689909 PRJNA759375 + amplicon rabbit SRR15689910 PRJNA759375 + amplicon rabbit SRR15689911 PRJNA759375 + amplicon rabbit SRR15689912 PRJNA759375 + amplicon rabbit SRR15689913 PRJNA759375 + amplicon rabbit SRR15689914 PRJNA759375 + amplicon rabbit SRR15689915 PRJNA759375 + amplicon rabbit SRR15689916 PRJNA759375 + amplicon rabbit SRR15689917 PRJNA759375 + amplicon rabbit SRR15689918 PRJNA759375 + amplicon rabbit SRR15689919 PRJNA759375 + amplicon rabbit SRR15689920 PRJNA759375 + amplicon rabbit SRR15689921 PRJNA759375 + amplicon rabbit SRR15689922 PRJNA759375 + amplicon rabbit SRR15689923 PRJNA759375 + amplicon rabbit SRR15689924 PRJNA759375 + amplicon rabbit SRR15689925 PRJNA759375 + amplicon rabbit SRR15689926 PRJNA759375 + amplicon rabbit SRR15689927 PRJNA759375 + amplicon rabbit SRR15689928 PRJNA759375 + amplicon rabbit SRR15689929 PRJNA759375 + amplicon rabbit SRR15689930 PRJNA759375 + amplicon rabbit SRR15689931 PRJNA759375 + amplicon rabbit SRR15689932 PRJNA759375 + amplicon rabbit SRR15689933 PRJNA759375 + amplicon rabbit SRR15689934 PRJNA759375 + amplicon rabbit SRR15689935 PRJNA759375 + amplicon rabbit SRR15689936 PRJNA759375 + amplicon rabbit SRR15689937 PRJNA759375 + amplicon rabbit SRR15689938 PRJNA759375 + amplicon rabbit SRR15689939 PRJNA759375 + amplicon rabbit SRR15689940 PRJNA759375 + amplicon rabbit SRR15689941 PRJNA759375 + amplicon rabbit SRR15689942 PRJNA759375 + amplicon rabbit SRR15689943 PRJNA759375 + amplicon rabbit SRR15689944 PRJNA759375 + amplicon rabbit SRR15689945 PRJNA759375 + amplicon rabbit SRR15689946 PRJNA759375 + amplicon rabbit SRR15689947 PRJNA759375 + amplicon rabbit SRR15689948 PRJNA759375 + amplicon rabbit SRR15689949 PRJNA759375 + amplicon rabbit SRR15689950 PRJNA759375 + amplicon rabbit SRR15689951 PRJNA759375 + amplicon rabbit SRR15689952 PRJNA759375 + amplicon rabbit SRR15689953 PRJNA759375 + amplicon rabbit SRR15689954 PRJNA759375 + amplicon rabbit SRR15689955 PRJNA759375 + amplicon rabbit SRR15689956 PRJNA759375 + amplicon rabbit SRR15689957 PRJNA759375 + amplicon rabbit SRR15689958 PRJNA759375 + amplicon rabbit SRR15689959 PRJNA759375 + amplicon rabbit SRR15689960 PRJNA759375 + amplicon rabbit SRR15689961 PRJNA759375 + amplicon rabbit SRR15689962 PRJNA759375 + amplicon rabbit SRR15689963 PRJNA759375 + amplicon rabbit SRR15689964 PRJNA759375 + amplicon rabbit SRR15689965 PRJNA759375 + amplicon rabbit SRR15689966 PRJNA759375 + amplicon rabbit SRR15689967 PRJNA759375 + amplicon rabbit SRR15689968 PRJNA759375 + amplicon rabbit SRR15689969 PRJNA759375 + amplicon rabbit SRR15689970 PRJNA759375 + amplicon rabbit SRR15689971 PRJNA759375 + amplicon rabbit SRR15689972 PRJNA759375 + amplicon rabbit SRR15689973 PRJNA759375 + amplicon rabbit SRR15689974 PRJNA759375 + amplicon rabbit SRR15689975 PRJNA759375 + amplicon rabbit SRR15689976 PRJNA759375 + amplicon rabbit SRR15689977 PRJNA759375 + amplicon rabbit SRR15689978 PRJNA759375 + amplicon rabbit SRR15689979 PRJNA759375 + amplicon rabbit SRR15689980 PRJNA759375 + amplicon rabbit SRR15689981 PRJNA759375 + amplicon rabbit SRR15689982 PRJNA759375 + amplicon rabbit SRR15689983 PRJNA759375 + amplicon rabbit SRR15689984 PRJNA759375 + amplicon rabbit SRR15689985 PRJNA759375 + amplicon rabbit SRR15689986 PRJNA759375 + amplicon rabbit SRR15689987 PRJNA759375 + amplicon rabbit SRR15689988 PRJNA759375 + amplicon rabbit SRR15689989 PRJNA759375 + amplicon rabbit SRR15689990 PRJNA759375 + amplicon rabbit SRR15689991 PRJNA759375 + amplicon rabbit SRR15689992 PRJNA759375 + amplicon rabbit SRR15689993 PRJNA759375 + amplicon rabbit SRR15689994 PRJNA759375 + amplicon rabbit SRR15689995 PRJNA759375 + amplicon rabbit SRR15689996 PRJNA759375 + amplicon rabbit SRR15689997 PRJNA759375 + amplicon rabbit SRR15689998 PRJNA759375 + amplicon rabbit SRR15689999 PRJNA759375 + amplicon rabbit SRR15690000 PRJNA759375 + amplicon rabbit SRR15690001 PRJNA759375 + amplicon rabbit SRR15690002 PRJNA759375 + amplicon rabbit SRR15690003 PRJNA759375 + amplicon rabbit SRR15690004 PRJNA759375 + amplicon rabbit SRR15690005 PRJNA759375 + amplicon rabbit SRR15690006 PRJNA759375 + amplicon rabbit SRR15690007 PRJNA759375 + amplicon rabbit SRR15690008 PRJNA759375 + amplicon rabbit SRR15690009 PRJNA759375 + amplicon rabbit SRR15690010 PRJNA759375 + amplicon rabbit SRR15690011 PRJNA759375 + amplicon rabbit SRR15690012 PRJNA759375 + amplicon rabbit SRR15690013 PRJNA759375 + amplicon rabbit SRR15690014 PRJNA759375 + amplicon rabbit SRR15690015 PRJNA759375 + amplicon rabbit SRR15690016 PRJNA759375 + amplicon rabbit SRR15690017 PRJNA759375 + amplicon rabbit SRR15690018 PRJNA759375 + amplicon rabbit SRR15690019 PRJNA759375 + amplicon rabbit SRR15690020 PRJNA759375 + amplicon rabbit SRR15690021 PRJNA759375 + amplicon rabbit SRR15690022 PRJNA759375 + amplicon rabbit SRR15690023 PRJNA759375 + amplicon rabbit SRR15690024 PRJNA759375 + amplicon rabbit SRR15690025 PRJNA759375 + amplicon rabbit SRR15690026 PRJNA759375 + amplicon rabbit SRR15690027 PRJNA759375 + amplicon rabbit SRR15690028 PRJNA759375 + amplicon rabbit SRR15690029 PRJNA759375 + amplicon rabbit SRR15690030 PRJNA759375 + amplicon rabbit SRR15690031 PRJNA759375 + amplicon rabbit SRR15690032 PRJNA759375 + amplicon rabbit SRR15690033 PRJNA759375 + amplicon rabbit SRR15690034 PRJNA759375 + amplicon rabbit SRR15690035 PRJNA759375 + amplicon rabbit SRR15690036 PRJNA759375 + amplicon rabbit SRR15690037 PRJNA759375 + amplicon rabbit SRR15690038 PRJNA759375 + amplicon rabbit SRR15690039 PRJNA759375 + amplicon rabbit SRR15690040 PRJNA759375 + amplicon rabbit SRR15690041 PRJNA759375 + amplicon rabbit SRR15690042 PRJNA759375 + amplicon rabbit SRR15690043 PRJNA759375 + amplicon rabbit SRR15690044 PRJNA759375 + amplicon rabbit SRR15690045 PRJNA759375 + amplicon rabbit SRR15690046 PRJNA759375 + amplicon rabbit SRR15690047 PRJNA759375 + amplicon rabbit SRR15690048 PRJNA759375 + amplicon rabbit SRR15690049 PRJNA759375 + amplicon rabbit SRR15690050 PRJNA759375 + amplicon rabbit SRR15690051 PRJNA759375 + amplicon rabbit SRR15690052 PRJNA759375 + amplicon rabbit SRR15690053 PRJNA759375 + amplicon rabbit SRR15690054 PRJNA759375 + amplicon rabbit SRR15690055 PRJNA759375 + amplicon rabbit SRR15690056 PRJNA759375 + amplicon rabbit SRR15690057 PRJNA759375 + amplicon rabbit SRR15690058 PRJNA759375 + amplicon rabbit SRR15690059 PRJNA759375 + amplicon rabbit SRR15690060 PRJNA759375 + amplicon rabbit SRR15690061 PRJNA759375 + amplicon rabbit SRR15690062 PRJNA759375 + amplicon rabbit SRR15690063 PRJNA759375 + amplicon rabbit SRR15690064 PRJNA759375 + amplicon rabbit SRR15690065 PRJNA759375 + amplicon rabbit SRR15690066 PRJNA759375 + amplicon rabbit SRR15690067 PRJNA759375 + amplicon rabbit SRR15690068 PRJNA759375 + amplicon rabbit SRR15690069 PRJNA759375 + amplicon rabbit SRR15690070 PRJNA759375 + amplicon rabbit SRR15690071 PRJNA759375 + amplicon rabbit SRR15690072 PRJNA759375 + amplicon rabbit SRR15690073 PRJNA759375 + amplicon rabbit SRR15690074 PRJNA759375 + amplicon rabbit SRR15690075 PRJNA759375 + amplicon rabbit SRR15690076 PRJNA759375 + amplicon rabbit SRR15690077 PRJNA759375 + amplicon rabbit SRR15690078 PRJNA759375 + amplicon rabbit SRR15690079 PRJNA759375 + amplicon rabbit SRR15690080 PRJNA759375 + amplicon rabbit SRR15690081 PRJNA759375 + amplicon rabbit SRR15690082 PRJNA759375 + amplicon rabbit SRR15690083 PRJNA759375 + amplicon rabbit SRR15690084 PRJNA759375 + amplicon rabbit SRR15690085 PRJNA759375 + amplicon rabbit SRR15690086 PRJNA759375 + amplicon rabbit SRR15690087 PRJNA759375 + amplicon rabbit SRR15690088 PRJNA759375 + amplicon rabbit SRR15690089 PRJNA759375 + amplicon rabbit SRR15690090 PRJNA759375 + amplicon rabbit SRR15690091 PRJNA759375 + amplicon rabbit SRR15690092 PRJNA759375 + amplicon rabbit SRR15690093 PRJNA759375 + amplicon rabbit SRR15690094 PRJNA759375 + amplicon rabbit SRR15690095 PRJNA759375 + amplicon rabbit SRR15690096 PRJNA759375 + amplicon rabbit SRR15690097 PRJNA759375 + amplicon rabbit SRR15690098 PRJNA759375 + amplicon rabbit SRR15690099 PRJNA759375 + amplicon rabbit SRR15690100 PRJNA759375 + amplicon rabbit SRR15690101 PRJNA759375 + amplicon rabbit SRR15690102 PRJNA759375 + amplicon rabbit SRR15690103 PRJNA759375 + amplicon rabbit SRR15690104 PRJNA759375 + amplicon rabbit SRR15690105 PRJNA759375 + amplicon rabbit SRR15690106 PRJNA759375 + amplicon rabbit SRR15690107 PRJNA759375 + amplicon rabbit SRR15690108 PRJNA759375 + amplicon rabbit SRR15690109 PRJNA759375 + amplicon rabbit SRR15690110 PRJNA759375 + amplicon rabbit SRR15690111 PRJNA759375 + amplicon rabbit SRR15690112 PRJNA759375 + amplicon rabbit SRR15690113 PRJNA759375 + amplicon rabbit SRR15690114 PRJNA759375 + amplicon rabbit SRR15690115 PRJNA759375 + amplicon rabbit SRR15690116 PRJNA759375 + amplicon rabbit SRR15690117 PRJNA759375 + amplicon rabbit SRR15690118 PRJNA759375 + amplicon rabbit SRR15690119 PRJNA759375 + amplicon rabbit SRR15690120 PRJNA759375 + amplicon rabbit SRR15690121 PRJNA759375 + amplicon rabbit SRR15690122 PRJNA759375 + amplicon rabbit SRR15690123 PRJNA759375 + amplicon rabbit SRR15690124 PRJNA759375 + amplicon rabbit SRR15690125 PRJNA759375 + amplicon rabbit SRR15690126 PRJNA759375 + amplicon rabbit SRR15690127 PRJNA759375 + amplicon rabbit SRR15690128 PRJNA759375 + amplicon rabbit SRR15690129 PRJNA759375 + amplicon rabbit SRR15690130 PRJNA759375 + amplicon rabbit SRR15690131 PRJNA759375 + amplicon rabbit SRR15690132 PRJNA759375 + amplicon rabbit SRR15690133 PRJNA759375 + amplicon rabbit SRR15690134 PRJNA759375 + amplicon rabbit SRR15690135 PRJNA759375 + amplicon rabbit SRR15690136 PRJNA759375 + amplicon rabbit SRR15690137 PRJNA759375 + amplicon rabbit SRR15690138 PRJNA759375 + amplicon rabbit SRR15690139 PRJNA759375 + amplicon rabbit SRR15690140 PRJNA759375 + amplicon rabbit SRR15690141 PRJNA759375 + amplicon rabbit SRR15690142 PRJNA759375 + amplicon rabbit SRR15690143 PRJNA759375 + amplicon rabbit SRR15690144 PRJNA759375 + amplicon rabbit SRR15690145 PRJNA759375 + amplicon rabbit SRR15690146 PRJNA759375 + amplicon rabbit SRR15690147 PRJNA759375 + amplicon rabbit SRR15690148 PRJNA759375 + amplicon rabbit SRR15690149 PRJNA759375 + amplicon rabbit SRR15690150 PRJNA759375 + amplicon rabbit SRR15690151 PRJNA759375 + amplicon rabbit SRR15690152 PRJNA759375 + amplicon rabbit SRR15690153 PRJNA759375 + amplicon rabbit SRR15690154 PRJNA759375 + amplicon rabbit SRR15690155 PRJNA759375 + amplicon rabbit SRR15690156 PRJNA759375 + amplicon rabbit SRR15690157 PRJNA759375 + amplicon rabbit SRR15690158 PRJNA759375 + amplicon rabbit SRR15690159 PRJNA759375 + amplicon rabbit SRR15690160 PRJNA759375 + amplicon rabbit SRR15690161 PRJNA759375 + amplicon rabbit SRR15690162 PRJNA759375 + amplicon rabbit SRR15690163 PRJNA759375 + amplicon rabbit SRR15690164 PRJNA759375 + amplicon rabbit SRR15690165 PRJNA759375 + amplicon rabbit SRR15690166 PRJNA759375 + amplicon rabbit SRR15690167 PRJNA759375 + amplicon rabbit SRR15690168 PRJNA759375 + amplicon rabbit SRR15690169 PRJNA759375 + amplicon rabbit SRR15690170 PRJNA759375 + amplicon rabbit SRR15690171 PRJNA759375 + amplicon rabbit SRR15690172 PRJNA759375 + amplicon rabbit SRR15690173 PRJNA759375 + amplicon rabbit SRR15690174 PRJNA759375 + amplicon rabbit SRR15690175 PRJNA759375 + amplicon rabbit SRR15690176 PRJNA759375 + amplicon rabbit SRR15690177 PRJNA759375 + amplicon rabbit SRR15690178 PRJNA759375 + amplicon rabbit SRR15690179 PRJNA759375 + amplicon rabbit SRR15690180 PRJNA759375 + amplicon rabbit SRR15690181 PRJNA759375 + amplicon rabbit SRR15690182 PRJNA759375 + amplicon rabbit SRR15690183 PRJNA759375 + amplicon rabbit SRR15690184 PRJNA759375 + amplicon rabbit SRR15690185 PRJNA759375 + amplicon rabbit SRR15690186 PRJNA759375 + amplicon rabbit SRR15690187 PRJNA759375 + amplicon rabbit SRR15690188 PRJNA759375 + amplicon rabbit SRR15690189 PRJNA759375 + amplicon rabbit SRR15690190 PRJNA759375 + amplicon rabbit SRR15690191 PRJNA759375 + amplicon rabbit SRR15690192 PRJNA759375 + amplicon rabbit SRR15690193 PRJNA759375 + amplicon rabbit SRR15690194 PRJNA759375 + amplicon rabbit SRR15690195 PRJNA759375 + amplicon rabbit SRR15690196 PRJNA759375 + amplicon rabbit SRR15690197 PRJNA759375 + amplicon rabbit SRR15690198 PRJNA759375 + amplicon rabbit SRR15690199 PRJNA759375 + amplicon rabbit SRR15690200 PRJNA759375 + amplicon rabbit SRR15690201 PRJNA759375 + amplicon rabbit SRR15690202 PRJNA759375 + amplicon rabbit SRR15690203 PRJNA759375 + amplicon rabbit SRR15690204 PRJNA759375 + amplicon rabbit SRR15690205 PRJNA759375 + amplicon rabbit SRR15690206 PRJNA759375 + amplicon rabbit SRR15690207 PRJNA759375 + amplicon rabbit SRR15690208 PRJNA759375 + amplicon rabbit SRR15690209 PRJNA759375 + amplicon rabbit SRR15690210 PRJNA759375 + amplicon rabbit SRR15690211 PRJNA759375 + amplicon rabbit SRR15690212 PRJNA759375 + amplicon rabbit SRR15690213 PRJNA759375 + amplicon rabbit SRR15690214 PRJNA759375 + amplicon rabbit SRR15690215 PRJNA759375 + amplicon rabbit SRR15690216 PRJNA759375 + amplicon rabbit SRR15690217 PRJNA759375 + amplicon rabbit SRR15690218 PRJNA759375 + amplicon rabbit SRR15690219 PRJNA759375 + amplicon rabbit SRR15690220 PRJNA759375 + amplicon rabbit SRR15690221 PRJNA759375 + amplicon rabbit SRR15690222 PRJNA759375 + amplicon rabbit SRR15690223 PRJNA759375 + amplicon rabbit SRR15690224 PRJNA759375 + amplicon rabbit SRR15690225 PRJNA759375 + amplicon rabbit SRR15690226 PRJNA759375 + amplicon rabbit SRR15690227 PRJNA759375 + amplicon rabbit SRR15690228 PRJNA759375 + amplicon rabbit SRR15690229 PRJNA759375 + amplicon rabbit SRR15690230 PRJNA759375 + amplicon rabbit SRR15690231 PRJNA759375 + amplicon rabbit SRR15690232 PRJNA759375 + amplicon rabbit SRR15690233 PRJNA759375 + amplicon rabbit SRR15690234 PRJNA759375 + amplicon rabbit SRR15690235 PRJNA759375 + amplicon rabbit SRR15690236 PRJNA759375 + amplicon rabbit SRR15690237 PRJNA759375 + amplicon rabbit SRR15690238 PRJNA759375 + amplicon rabbit SRR15690239 PRJNA759375 + amplicon rabbit SRR15690240 PRJNA759375 + amplicon rabbit SRR15690241 PRJNA759375 + amplicon rabbit SRR15690242 PRJNA759375 + amplicon rabbit SRR15690243 PRJNA759375 + amplicon rabbit SRR15690244 PRJNA759375 + amplicon rabbit SRR15690245 PRJNA759375 + amplicon rabbit SRR15690246 PRJNA759375 + amplicon rabbit SRR15690247 PRJNA759375 + amplicon rabbit SRR15690248 PRJNA759375 + amplicon rabbit SRR15690249 PRJNA759375 + amplicon rabbit SRR15690250 PRJNA759375 + amplicon rabbit SRR15690251 PRJNA759375 + amplicon rabbit SRR15690252 PRJNA759375 + amplicon rabbit SRR15690253 PRJNA759375 + amplicon rabbit SRR15690254 PRJNA759375 + amplicon rabbit SRR15690255 PRJNA759375 + amplicon rabbit SRR15690256 PRJNA759375 + amplicon rabbit SRR15690257 PRJNA759375 + amplicon rabbit SRR15690258 PRJNA759375 + amplicon rabbit SRR15690260 PRJNA759375 + amplicon rabbit SRR15690261 PRJNA759375 + amplicon rabbit SRR15690262 PRJNA759375 + amplicon rabbit SRR15690263 PRJNA759375 + amplicon rabbit SRR15690264 PRJNA759375 + amplicon rabbit SRR15690265 PRJNA759375 + amplicon rabbit SRR15690266 PRJNA759375 + amplicon rabbit SRR15690267 PRJNA759375 + amplicon rabbit SRR15690268 PRJNA759375 + amplicon rabbit SRR15690269 PRJNA759375 + amplicon rabbit SRR15690270 PRJNA759375 + amplicon rabbit SRR15690271 PRJNA759375 + amplicon rabbit SRR15690272 PRJNA759375 + amplicon rabbit SRR15690273 PRJNA759375 + amplicon rabbit SRR15690274 PRJNA759375 + amplicon rabbit SRR15690275 PRJNA759375 + amplicon rabbit SRR15690276 PRJNA759375 + amplicon rabbit SRR15690277 PRJNA759375 + amplicon rabbit SRR15690278 PRJNA759375 + amplicon rabbit SRR15690279 PRJNA759375 + amplicon rabbit SRR15690280 PRJNA759375 + amplicon rabbit SRR15690281 PRJNA759375 + amplicon rabbit SRR15690282 PRJNA759375 + amplicon rabbit SRR15690283 PRJNA759375 + amplicon rabbit SRR15690284 PRJNA759375 + amplicon rabbit SRR15690285 PRJNA759375 + amplicon rabbit SRR15690286 PRJNA759375 + amplicon rabbit SRR15690287 PRJNA759375 + amplicon rabbit SRR15690288 PRJNA759375 + amplicon rabbit SRR15690289 PRJNA759375 + amplicon rabbit SRR15690290 PRJNA759375 + amplicon rabbit SRR15690291 PRJNA759375 + amplicon rabbit SRR15690292 PRJNA759375 + amplicon rabbit SRR15690293 PRJNA759375 + amplicon rabbit SRR15690294 PRJNA759375 + amplicon rabbit SRR15690295 PRJNA759375 + amplicon rabbit SRR15690296 PRJNA759375 + amplicon rabbit SRR15690297 PRJNA759375 + amplicon rabbit SRR15690298 PRJNA759375 + amplicon rabbit SRR15690299 PRJNA759375 + amplicon rabbit SRR15690300 PRJNA759375 + amplicon rabbit SRR15690301 PRJNA759375 + amplicon rabbit SRR15690302 PRJNA759375 + amplicon rabbit SRR15690303 PRJNA759375 + amplicon rabbit SRR15690304 PRJNA759375 + amplicon rabbit SRR15690305 PRJNA759375 + amplicon rabbit SRR15690306 PRJNA759375 + amplicon rabbit SRR15690307 PRJNA759375 + amplicon rabbit SRR15690308 PRJNA759375 + amplicon rabbit SRR15690309 PRJNA759375 + amplicon rabbit SRR15690310 PRJNA759375 + amplicon rabbit SRR15690311 PRJNA759375 + amplicon rabbit SRR15690312 PRJNA759375 + amplicon rabbit SRR15690313 PRJNA759375 + amplicon rabbit SRR15690314 PRJNA759375 + amplicon rabbit SRR15690315 PRJNA759375 + amplicon rabbit SRR15690316 PRJNA759375 + amplicon rabbit SRR15690317 PRJNA759375 + amplicon rabbit SRR15690318 PRJNA759375 + amplicon rabbit SRR15690319 PRJNA759375 + amplicon rabbit SRR15690320 PRJNA759375 + amplicon rabbit SRR15690321 PRJNA759375 + amplicon rabbit SRR15690322 PRJNA759375 + amplicon rabbit SRR15690323 PRJNA759375 + amplicon rabbit SRR15690324 PRJNA759375 + amplicon rabbit SRR15690325 PRJNA759375 + amplicon rabbit SRR15690326 PRJNA759375 + amplicon rabbit SRR15690327 PRJNA759375 + amplicon rabbit SRR15690328 PRJNA759375 + amplicon rabbit SRR15690329 PRJNA759375 + amplicon rabbit SRR15690330 PRJNA759375 + amplicon rabbit SRR15690331 PRJNA759375 + amplicon rabbit SRR15690332 PRJNA759375 + amplicon rabbit SRR15690333 PRJNA759375 + amplicon rabbit SRR15690334 PRJNA759375 + amplicon rabbit SRR15690335 PRJNA759375 + amplicon rabbit SRR15690336 PRJNA759375 + amplicon rabbit SRR15690337 PRJNA759375 + amplicon rabbit SRR15690338 PRJNA759375 + amplicon rabbit SRR15690339 PRJNA759375 + amplicon rabbit SRR15690340 PRJNA759375 + amplicon rabbit SRR15690341 PRJNA759375 + amplicon rabbit SRR15690342 PRJNA759375 + amplicon rabbit SRR15690343 PRJNA759375 + amplicon rabbit SRR15690344 PRJNA759375 + amplicon rabbit SRR15690345 PRJNA759375 + amplicon rabbit SRR15690346 PRJNA759375 + amplicon rabbit SRR15690347 PRJNA759375 + amplicon rabbit SRR15690348 PRJNA759375 + amplicon rabbit SRR15690349 PRJNA759375 + amplicon rabbit SRR15690350 PRJNA759375 + amplicon rabbit SRR15690351 PRJNA759375 + amplicon rabbit SRR15690352 PRJNA759375 + amplicon rabbit SRR15690353 PRJNA759375 + amplicon rabbit SRR15690354 PRJNA759375 + amplicon rabbit SRR15690355 PRJNA759375 + amplicon rabbit SRR15690356 PRJNA759375 + amplicon rabbit SRR15690357 PRJNA759375 + amplicon rabbit SRR15690358 PRJNA759375 + amplicon rabbit SRR15690359 PRJNA759375 + amplicon rabbit SRR15690360 PRJNA759375 + amplicon rabbit SRR15690361 PRJNA759375 + amplicon rabbit SRR15690362 PRJNA759375 + amplicon rabbit SRR15690363 PRJNA759375 + amplicon rabbit SRR15690364 PRJNA759375 + amplicon rabbit SRR15690365 PRJNA759375 + amplicon rabbit SRR15690366 PRJNA759375 + amplicon rabbit SRR15690367 PRJNA759375 + amplicon rabbit SRR15690368 PRJNA759375 + amplicon rabbit SRR15690369 PRJNA759375 + amplicon rabbit SRR15690370 PRJNA759375 + amplicon rabbit SRR15690371 PRJNA759375 + amplicon rabbit SRR15690372 PRJNA759375 + amplicon rabbit SRR15690373 PRJNA759375 + amplicon rabbit SRR15690374 PRJNA759375 + amplicon rabbit SRR15690375 PRJNA759375 + amplicon rabbit SRR15690376 PRJNA759375 + amplicon rabbit SRR15690377 PRJNA759375 + amplicon rabbit SRR15690378 PRJNA759375 + amplicon rabbit SRR15690379 PRJNA759375 + amplicon rabbit SRR15690380 PRJNA759375 + amplicon rabbit SRR15690381 PRJNA759375 + amplicon rabbit SRR15690382 PRJNA759375 + amplicon rabbit SRR15690383 PRJNA759375 + amplicon rabbit SRR15690384 PRJNA759375 + amplicon rabbit SRR15690385 PRJNA759375 + amplicon rabbit SRR15690386 PRJNA759375 + amplicon rabbit SRR15690387 PRJNA759375 + amplicon rabbit SRR15690388 PRJNA759375 + amplicon rabbit SRR15690389 PRJNA759375 + amplicon rabbit SRR15690390 PRJNA759375 + amplicon rabbit SRR15690391 PRJNA759375 + amplicon rabbit SRR15690392 PRJNA759375 + amplicon rabbit SRR15690393 PRJNA759375 + amplicon rabbit SRR15690394 PRJNA759375 + amplicon rabbit SRR15690395 PRJNA759375 + amplicon rabbit SRR15690396 PRJNA759375 + amplicon rabbit SRR15690397 PRJNA759375 + amplicon rabbit SRR15690398 PRJNA759375 + amplicon rabbit SRR15690399 PRJNA759375 + amplicon rabbit SRR15690400 PRJNA759375 + amplicon rabbit SRR15690401 PRJNA759375 + amplicon rabbit SRR15690402 PRJNA759375 + amplicon rabbit SRR15690403 PRJNA759375 + amplicon rabbit SRR15690404 PRJNA759375 + amplicon rabbit SRR15690405 PRJNA759375 + amplicon rabbit SRR15690406 PRJNA759375 + amplicon rabbit SRR15690407 PRJNA759375 + amplicon rabbit SRR15690408 PRJNA759375 + amplicon rabbit SRR15690409 PRJNA759375 + amplicon rabbit SRR15690410 PRJNA759375 + amplicon rabbit SRR15690411 PRJNA759375 + amplicon rabbit SRR15690412 PRJNA759375 + amplicon rabbit SRR15690413 PRJNA759375 + amplicon rabbit SRR15690414 PRJNA759375 + amplicon rabbit SRR15690415 PRJNA759375 + amplicon rabbit SRR15690416 PRJNA759375 + amplicon rabbit SRR15690417 PRJNA759375 + amplicon rabbit SRR15690418 PRJNA759375 + amplicon rabbit SRR15690419 PRJNA759375 + amplicon rabbit SRR15690420 PRJNA759375 + amplicon rabbit SRR15690421 PRJNA759375 + amplicon rabbit SRR15690422 PRJNA759375 + amplicon rabbit SRR15690423 PRJNA759375 + amplicon rabbit SRR15690424 PRJNA759375 + amplicon rabbit SRR15690425 PRJNA759375 + amplicon rabbit SRR15690426 PRJNA759375 + amplicon rabbit SRR15690427 PRJNA759375 + amplicon rabbit SRR15690428 PRJNA759375 + amplicon rabbit SRR15690429 PRJNA759375 + amplicon rabbit SRR15690430 PRJNA759375 + amplicon rabbit SRR15690431 PRJNA759375 + amplicon rabbit SRR15690432 PRJNA759375 + amplicon rabbit SRR15690433 PRJNA759375 + amplicon rabbit SRR15690434 PRJNA759375 + amplicon rabbit SRR15690435 PRJNA759375 + amplicon rabbit SRR15690436 PRJNA759375 + amplicon rabbit SRR15690437 PRJNA759375 + amplicon rabbit SRR15690438 PRJNA759375 + amplicon rabbit SRR15690439 PRJNA759375 + amplicon rabbit SRR15690440 PRJNA759375 + amplicon rabbit SRR15690441 PRJNA759375 + amplicon rabbit SRR15690442 PRJNA759375 + amplicon rabbit SRR15690443 PRJNA759375 + amplicon rabbit SRR15690444 PRJNA759375 + amplicon rabbit SRR15690445 PRJNA759375 + amplicon yak SRR16020673 PRJNA765392 + amplicon yak SRR16020674 PRJNA765392 + amplicon yak SRR16020675 PRJNA765392 + amplicon yak SRR16020676 PRJNA765392 + amplicon yak SRR16020677 PRJNA765392 + amplicon yak SRR16020678 PRJNA765392 + amplicon yak SRR16020679 PRJNA765392 + amplicon yak SRR16020680 PRJNA765392 + amplicon yak SRR16020681 PRJNA765392 + amplicon yak SRR16020682 PRJNA765392 + amplicon yak SRR16020683 PRJNA765392 + amplicon yak SRR16020684 PRJNA765392 + amplicon yak SRR16020685 PRJNA765392 + amplicon yak SRR16020686 PRJNA765392 + amplicon yak SRR16020687 PRJNA765392 + amplicon yak SRR16020688 PRJNA765392 + amplicon yak SRR16020689 PRJNA765392 + amplicon yak SRR16020690 PRJNA765392 + amplicon yak SRR16020691 PRJNA765392 + amplicon yak SRR16020692 PRJNA765392 + amplicon yak SRR16020693 PRJNA765392 + amplicon yak SRR16020694 PRJNA765392 + amplicon yak SRR16020695 PRJNA765392 + amplicon yak SRR16020696 PRJNA765392 + amplicon yak SRR16020697 PRJNA765392 + amplicon yak SRR16020698 PRJNA765392 + amplicon yak SRR16020699 PRJNA765392 + amplicon yak SRR16020700 PRJNA765392 + amplicon yak SRR16020701 PRJNA765392 + amplicon yak SRR16020702 PRJNA765392 + amplicon yak SRR16020703 PRJNA765392 + amplicon yak SRR16020704 PRJNA765392 + amplicon yak SRR16020705 PRJNA765392 + amplicon yak SRR16020706 PRJNA765392 + amplicon yak SRR16020707 PRJNA765392 + amplicon yak SRR16020708 PRJNA765392 + amplicon yak SRR16020709 PRJNA765392 + amplicon yak SRR16020710 PRJNA765392 + amplicon yak SRR16020711 PRJNA765392 + amplicon yak SRR16020712 PRJNA765392 + amplicon yak SRR16020713 PRJNA765392 + amplicon yak SRR16020714 PRJNA765392 + amplicon yak SRR16020715 PRJNA765392 + amplicon yak SRR16020716 PRJNA765392 + amplicon yak SRR16020717 PRJNA765392 + amplicon yak SRR16020718 PRJNA765392 + amplicon yak SRR16020719 PRJNA765392 + amplicon yak SRR16020720 PRJNA765392 + amplicon yak SRR16020721 PRJNA765392 + amplicon yak SRR16020722 PRJNA765392 + amplicon yak SRR16020723 PRJNA765392 + amplicon yak SRR16020724 PRJNA765392 + amplicon yak SRR16020725 PRJNA765392 + amplicon yak SRR16020726 PRJNA765392 + amplicon yak SRR16020727 PRJNA765392 + amplicon yak SRR16020728 PRJNA765392 + amplicon yak SRR16020729 PRJNA765392 + amplicon yak SRR16020730 PRJNA765392 + amplicon yak SRR16020731 PRJNA765392 + amplicon yak SRR16020732 PRJNA765392 + amplicon yak SRR16020733 PRJNA765392 + amplicon yak SRR16020734 PRJNA765392 + amplicon yak SRR16020735 PRJNA765392 + amplicon yak SRR16020736 PRJNA765392 + amplicon yak SRR16020737 PRJNA765392 + amplicon yak SRR16020738 PRJNA765392 + amplicon yak SRR16020739 PRJNA765392 + amplicon yak SRR16020740 PRJNA765392 + amplicon yak SRR16020741 PRJNA765392 + amplicon yak SRR16020742 PRJNA765392 + amplicon yak SRR16020743 PRJNA765392 + amplicon yak SRR16020744 PRJNA765392 + amplicon yak SRR16020745 PRJNA765392 + amplicon yak SRR16020746 PRJNA765392 + amplicon yak SRR16020747 PRJNA765392 + amplicon yak SRR16020748 PRJNA765392 + amplicon yak SRR16020749 PRJNA765392 + amplicon yak SRR16020750 PRJNA765392 + amplicon yak SRR16020751 PRJNA765392 + amplicon yak SRR16020752 PRJNA765392 + amplicon Unknown SRR16167502 PRJNA767940 + amplicon Unknown SRR16167503 PRJNA767940 + amplicon Unknown SRR16167504 PRJNA767940 + amplicon Unknown SRR16167505 PRJNA767940 + amplicon Unknown SRR16167506 PRJNA767940 + amplicon Unknown SRR16167507 PRJNA767940 + amplicon Unknown SRR16167508 PRJNA767940 + amplicon Unknown SRR16167509 PRJNA767940 + amplicon Unknown SRR16167510 PRJNA767940 + amplicon Unknown SRR16167511 PRJNA767940 + amplicon Unknown SRR16167512 PRJNA767940 + amplicon Unknown SRR16167513 PRJNA767940 + amplicon Unknown SRR16167514 PRJNA767940 + amplicon Unknown SRR16167515 PRJNA767940 + amplicon Unknown SRR16167516 PRJNA767940 + amplicon Unknown SRR16167517 PRJNA767940 + amplicon Unknown SRR16167518 PRJNA767940 + amplicon Unknown SRR16167519 PRJNA767940 + amplicon Unknown SRR16167520 PRJNA767940 + amplicon Unknown SRR16167521 PRJNA767940 + amplicon Unknown SRR16167522 PRJNA767940 + amplicon Unknown SRR16167523 PRJNA767940 + amplicon Unknown SRR16167524 PRJNA767940 + amplicon Unknown SRR16167525 PRJNA767940 + amplicon Unknown SRR16167526 PRJNA767940 + amplicon Unknown SRR16167527 PRJNA767940 + amplicon Unknown SRR16167528 PRJNA767940 + amplicon Unknown SRR16167529 PRJNA767940 + amplicon Unknown SRR16167530 PRJNA767940 + amplicon Unknown SRR16167531 PRJNA767940 + amplicon Unknown SRR16167532 PRJNA767940 + amplicon Unknown SRR16167533 PRJNA767940 + amplicon Unknown SRR16167534 PRJNA767940 + amplicon Unknown SRR16167535 PRJNA767940 + amplicon Unknown SRR16167536 PRJNA767940 + amplicon Unknown SRR16167537 PRJNA767940 + amplicon Unknown SRR16167538 PRJNA767940 + amplicon Unknown SRR16167539 PRJNA767940 + amplicon Unknown SRR16167540 PRJNA767940 + amplicon Unknown SRR16167541 PRJNA767940 + amplicon rabbit SRR16940605 PRJNA780246 + amplicon rabbit SRR16940606 PRJNA780246 + amplicon rabbit SRR16940607 PRJNA780246 + amplicon rabbit SRR16940608 PRJNA780246 + amplicon rabbit SRR16940609 PRJNA780246 + amplicon rabbit SRR16940610 PRJNA780246 + amplicon rabbit SRR16940611 PRJNA780246 + amplicon rabbit SRR16940612 PRJNA780246 + amplicon rabbit SRR16940613 PRJNA780246 + amplicon rabbit SRR16940614 PRJNA780246 + amplicon rabbit SRR16940615 PRJNA780246 + amplicon rabbit SRR16940616 PRJNA780246 + amplicon rabbit SRR16940617 PRJNA780246 + amplicon rabbit SRR16940618 PRJNA780246 + amplicon rabbit SRR16940619 PRJNA780246 + amplicon rabbit SRR16940620 PRJNA780246 + amplicon rabbit SRR16940621 PRJNA780246 + amplicon rabbit SRR16940622 PRJNA780246 + amplicon rabbit SRR16940623 PRJNA780246 + amplicon rabbit SRR16940624 PRJNA780246 + amplicon rabbit SRR16940625 PRJNA780246 + amplicon rabbit SRR16940626 PRJNA780246 + amplicon rabbit SRR16940627 PRJNA780246 + amplicon rabbit SRR16940628 PRJNA780246 + amplicon rabbit SRR16940629 PRJNA780246 + amplicon rabbit SRR16940630 PRJNA780246 + amplicon rabbit SRR16940631 PRJNA780246 + amplicon rabbit SRR16940632 PRJNA780246 + amplicon rabbit SRR16940633 PRJNA780246 + amplicon rabbit SRR16940634 PRJNA780246 + amplicon rabbit SRR16940635 PRJNA780246 + amplicon rabbit SRR16940636 PRJNA780246 + amplicon rabbit SRR16940637 PRJNA780246 + amplicon rabbit SRR16940638 PRJNA780246 + amplicon rabbit SRR16940639 PRJNA780246 + amplicon rabbit SRR16940640 PRJNA780246 + amplicon rabbit SRR16940641 PRJNA780246 + amplicon rabbit SRR16940642 PRJNA780246 + amplicon rabbit SRR16940643 PRJNA780246 + amplicon rabbit SRR16940644 PRJNA780246 + amplicon rabbit SRR16940645 PRJNA780246 + amplicon rabbit SRR16940646 PRJNA780246 + amplicon goat SRR16966210 PRJNA781070 + amplicon goat SRR16966211 PRJNA781070 + amplicon goat SRR16966212 PRJNA781070 + amplicon goat SRR16966213 PRJNA781070 + amplicon goat SRR16966214 PRJNA781070 + amplicon goat SRR16966215 PRJNA781070 + amplicon goat SRR16966216 PRJNA781070 + amplicon goat SRR16966217 PRJNA781070 + amplicon goat SRR16966218 PRJNA781070 + amplicon goat SRR16966219 PRJNA781070 + amplicon goat SRR16966220 PRJNA781070 + amplicon goat SRR16966221 PRJNA781070 + amplicon sheep SRR17574353 PRJNA796449 + amplicon sheep SRR17574354 PRJNA796449 + amplicon sheep SRR17574355 PRJNA796449 + amplicon sheep SRR17574356 PRJNA796449 + amplicon sheep SRR17574357 PRJNA796449 + amplicon sheep SRR17574358 PRJNA796449 + amplicon sheep SRR17574359 PRJNA796449 + amplicon sheep SRR17574360 PRJNA796449 + amplicon sheep SRR17574361 PRJNA796449 + amplicon sheep SRR17574362 PRJNA796449 + amplicon sheep SRR17574363 PRJNA796449 + amplicon sheep SRR17574364 PRJNA796449 + amplicon sheep SRR17574365 PRJNA796449 + amplicon sheep SRR17574366 PRJNA796449 + amplicon sheep SRR17574367 PRJNA796449 + amplicon horse SRR18218215 PRJNA812711 + amplicon horse SRR18218216 PRJNA812711 + amplicon horse SRR18218217 PRJNA812711 + amplicon horse SRR18218218 PRJNA812711 + amplicon horse SRR18218219 PRJNA812711 + amplicon horse SRR18218220 PRJNA812711 + amplicon horse SRR18218221 PRJNA812711 + amplicon horse SRR18218222 PRJNA812711 + amplicon horse SRR18218223 PRJNA812711 + amplicon horse SRR18218224 PRJNA812711 + amplicon horse SRR18218225 PRJNA812711 + amplicon horse SRR18218226 PRJNA812711 + amplicon horse SRR18218227 PRJNA812711 + amplicon horse SRR18218228 PRJNA812711 + amplicon horse SRR18218229 PRJNA812711 + amplicon horse SRR18399649 PRJNA817386 + amplicon horse SRR18399650 PRJNA817386 + amplicon horse SRR18399651 PRJNA817386 + amplicon horse SRR18399652 PRJNA817386 + amplicon horse SRR18399653 PRJNA817386 + amplicon horse SRR18399654 PRJNA817386 + amplicon horse SRR18399655 PRJNA817386 + amplicon horse SRR18399656 PRJNA817386 + amplicon horse SRR18399657 PRJNA817386 + amplicon horse SRR18399658 PRJNA817386 + amplicon horse SRR18399659 PRJNA817386 + amplicon horse SRR18399660 PRJNA817386 + amplicon horse SRR18399661 PRJNA817386 + amplicon horse SRR18399662 PRJNA817386 + amplicon horse SRR18399663 PRJNA817386 + amplicon horse SRR18399664 PRJNA817386 + amplicon horse SRR18399665 PRJNA817386 + amplicon horse SRR18399666 PRJNA817386 + amplicon horse SRR18399667 PRJNA817386 + amplicon horse SRR18399668 PRJNA817386 + amplicon horse SRR18399669 PRJNA817386 + amplicon horse SRR18399670 PRJNA817386 + amplicon horse SRR18399671 PRJNA817386 + amplicon horse SRR18399672 PRJNA817386 + amplicon horse SRR18399673 PRJNA817386 + amplicon horse SRR18399674 PRJNA817386 + amplicon horse SRR18399675 PRJNA817386 + amplicon horse SRR18399676 PRJNA817386 + amplicon horse SRR18399677 PRJNA817386 + amplicon horse SRR18399678 PRJNA817386 + amplicon horse SRR18399679 PRJNA817386 + amplicon horse SRR18399680 PRJNA817386 + amplicon horse SRR18399681 PRJNA817386 + amplicon horse SRR18399682 PRJNA817386 + amplicon horse SRR18399683 PRJNA817386 + amplicon horse SRR18399684 PRJNA817386 + amplicon horse SRR18399685 PRJNA817386 + amplicon horse SRR18399686 PRJNA817386 + amplicon horse SRR18399687 PRJNA817386 + amplicon horse SRR18399688 PRJNA817386 + amplicon horse SRR18399689 PRJNA817386 + amplicon horse SRR18399690 PRJNA817386 + amplicon horse SRR18399691 PRJNA817386 + amplicon horse SRR18399692 PRJNA817386 + amplicon horse SRR18399695 PRJNA817386 + amplicon horse SRR18399696 PRJNA817386 + amplicon horse SRR18399697 PRJNA817386 + amplicon horse SRR18399698 PRJNA817386 + amplicon horse SRR18399699 PRJNA817386 + amplicon horse SRR19181686 PRJNA837113 + amplicon horse SRR19181687 PRJNA837113 + amplicon horse SRR19181688 PRJNA837113 + amplicon horse SRR19181689 PRJNA837113 + amplicon horse SRR19181690 PRJNA837113 + amplicon horse SRR19181691 PRJNA837113 + amplicon horse SRR19181692 PRJNA837113 + amplicon horse SRR19181693 PRJNA837113 + amplicon horse SRR19181694 PRJNA837113 + amplicon horse SRR19181695 PRJNA837113 + amplicon horse SRR19181696 PRJNA837113 + amplicon horse SRR19181697 PRJNA837113 + amplicon horse SRR19181698 PRJNA837113 + amplicon horse SRR19181699 PRJNA837113 + amplicon horse SRR19181700 PRJNA837113 + amplicon horse SRR19181701 PRJNA837113 + amplicon horse SRR19181702 PRJNA837113 + amplicon horse SRR19181703 PRJNA837113 + amplicon horse SRR19181704 PRJNA837113 + amplicon horse SRR19181705 PRJNA837113 + amplicon horse SRR19181706 PRJNA837113 + amplicon horse SRR19181707 PRJNA837113 + amplicon horse SRR19181708 PRJNA837113 + amplicon horse SRR19181709 PRJNA837113 + amplicon horse SRR19181710 PRJNA837113 + amplicon horse SRR19181711 PRJNA837113 + amplicon horse SRR19181712 PRJNA837113 + amplicon horse SRR19181713 PRJNA837113 + amplicon horse SRR19181714 PRJNA837113 + amplicon horse SRR19181715 PRJNA837113 + amplicon horse SRR19181716 PRJNA837113 + amplicon horse SRR19181717 PRJNA837113 + amplicon horse SRR19181718 PRJNA837113 + amplicon horse SRR19181719 PRJNA837113 + amplicon horse SRR19181720 PRJNA837113 + amplicon Unknown SRR19630746 PRJNA848144 + amplicon Unknown SRR19630747 PRJNA848144 + amplicon Unknown SRR19630748 PRJNA848144 + amplicon Unknown SRR19630749 PRJNA848144 + amplicon Unknown SRR19630750 PRJNA848144 + amplicon Unknown SRR19630751 PRJNA848144 + amplicon Unknown SRR19630752 PRJNA848144 + amplicon Unknown SRR19630753 PRJNA848144 + amplicon Unknown SRR19630754 PRJNA848144 + amplicon Unknown SRR19630755 PRJNA848144 + amplicon Unknown SRR19630756 PRJNA848144 + amplicon Unknown SRR19630757 PRJNA848144 + amplicon Unknown SRR19630758 PRJNA848144 + amplicon Unknown SRR19630759 PRJNA848144 + amplicon Unknown SRR19630760 PRJNA848144 + amplicon Unknown SRR19630761 PRJNA848144 + amplicon rabbit SRR19741826 PRJNA849408 + amplicon rabbit SRR19741827 PRJNA849408 + amplicon rabbit SRR19741828 PRJNA849408 + amplicon rabbit SRR19741829 PRJNA849408 + amplicon rabbit SRR19741831 PRJNA849408 + amplicon rabbit SRR19741832 PRJNA849408 + amplicon rabbit SRR19741833 PRJNA849408 + amplicon rabbit SRR19741834 PRJNA849408 + amplicon rabbit SRR19741835 PRJNA849408 + amplicon rabbit SRR19741836 PRJNA849408 + amplicon rabbit SRR19741837 PRJNA849408 + amplicon rabbit SRR19741838 PRJNA849408 + amplicon rabbit SRR19741839 PRJNA849408 + amplicon rabbit SRR19741841 PRJNA849408 + amplicon rabbit SRR19741842 PRJNA849408 + amplicon rabbit SRR19741843 PRJNA849408 + amplicon rabbit SRR19741844 PRJNA849408 + amplicon rabbit SRR19741845 PRJNA849408 + amplicon rabbit SRR19741846 PRJNA849408 + amplicon rabbit SRR19741847 PRJNA849408 + amplicon rabbit SRR19741848 PRJNA849408 + amplicon rabbit SRR19741851 PRJNA849408 + amplicon rabbit SRR19741852 PRJNA849408 + amplicon rabbit SRR19741853 PRJNA849408 + amplicon rabbit SRR19741854 PRJNA849408 + amplicon rabbit SRR19741855 PRJNA849408 + amplicon rabbit SRR19741857 PRJNA849408 + amplicon rabbit SRR19741858 PRJNA849408 + amplicon rabbit SRR19741859 PRJNA849408 + amplicon termite SRR20306932 PRJNA860052 + amplicon termite SRR20306935 PRJNA860052 + amplicon termite SRR20306937 PRJNA860052 + amplicon termite SRR20306938 PRJNA860052 + amplicon termite SRR20306940 PRJNA860052 + amplicon termite SRR20306942 PRJNA860052 + amplicon termite SRR20306943 PRJNA860052 + amplicon termite SRR20306945 PRJNA860052 + amplicon termite SRR20306946 PRJNA860052 + amplicon termite SRR20306947 PRJNA860052 + amplicon termite SRR20306948 PRJNA860052 + amplicon termite SRR20306950 PRJNA860052 + amplicon termite SRR20306954 PRJNA860052 + amplicon termite SRR20306955 PRJNA860052 + amplicon termite SRR20306957 PRJNA860052 + amplicon termite SRR20306959 PRJNA860052 + amplicon termite SRR20306961 PRJNA860052 + amplicon termite SRR20306962 PRJNA860052 + amplicon termite SRR20306964 PRJNA860052 + amplicon termite SRR20306966 PRJNA860052 + amplicon termite SRR20306967 PRJNA860052 + amplicon termite SRR20306969 PRJNA860052 + amplicon termite SRR20306971 PRJNA860052 + amplicon termite SRR20306973 PRJNA860052 + amplicon termite SRR20306975 PRJNA860052 + amplicon termite SRR20306978 PRJNA860052 + amplicon termite SRR20306980 PRJNA860052 + amplicon termite SRR20306982 PRJNA860052 + amplicon termite SRR20306984 PRJNA860052 + amplicon termite SRR20306985 PRJNA860052 + amplicon termite SRR20306987 PRJNA860052 + amplicon termite SRR20306988 PRJNA860052 + amplicon termite SRR20306990 PRJNA860052 + amplicon termite SRR20306993 PRJNA860052 + amplicon termite SRR20306995 PRJNA860052 + amplicon termite SRR20306930 PRJNA860052 + amplicon termite SRR20306931 PRJNA860052 + amplicon Unknown SRR20306933 PRJNA860052 + amplicon Unknown SRR20306934 PRJNA860052 + amplicon termite SRR20306936 PRJNA860052 + amplicon termite SRR20306939 PRJNA860052 + amplicon termite SRR20306941 PRJNA860052 + amplicon termite SRR20306944 PRJNA860052 + amplicon termite SRR20306949 PRJNA860052 + amplicon termite SRR20306951 PRJNA860052 + amplicon termite SRR20306952 PRJNA860052 + amplicon termite SRR20306953 PRJNA860052 + amplicon termite SRR20306956 PRJNA860052 + amplicon termite SRR20306958 PRJNA860052 + amplicon termite SRR20306960 PRJNA860052 + amplicon termite SRR20306963 PRJNA860052 + amplicon termite SRR20306965 PRJNA860052 + amplicon termite SRR20306968 PRJNA860052 + amplicon termite SRR20306970 PRJNA860052 + amplicon termite SRR20306972 PRJNA860052 + amplicon termite SRR20306974 PRJNA860052 + amplicon termite SRR20306976 PRJNA860052 + amplicon termite SRR20306977 PRJNA860052 + amplicon termite SRR20306979 PRJNA860052 + amplicon termite SRR20306981 PRJNA860052 + amplicon termite SRR20306983 PRJNA860052 + amplicon termite SRR20306986 PRJNA860052 + amplicon termite SRR20306989 PRJNA860052 + amplicon termite SRR20306991 PRJNA860052 + amplicon termite SRR20306992 PRJNA860052 + amplicon termite SRR20306994 PRJNA860052 + amplicon termite SRR20306996 PRJNA860052 + amplicon goat SRR21146891 PRJNA871392 + amplicon goat SRR21146892 PRJNA871392 + amplicon goat SRR21146893 PRJNA871392 + amplicon goat SRR21146894 PRJNA871392 + amplicon goat SRR21146895 PRJNA871392 + amplicon goat SRR21146896 PRJNA871392 + amplicon goat SRR21146897 PRJNA871392 + amplicon goat SRR21146898 PRJNA871392 + amplicon goat SRR21146899 PRJNA871392 + amplicon goat SRR21146900 PRJNA871392 + amplicon goat SRR21146901 PRJNA871392 + amplicon goat SRR21146902 PRJNA871392 + amplicon goat SRR21146903 PRJNA871392 + amplicon goat SRR21146904 PRJNA871392 + amplicon goat SRR21146905 PRJNA871392 + amplicon goat SRR21146906 PRJNA871392 + amplicon goat SRR21146907 PRJNA871392 + amplicon goat SRR21146908 PRJNA871392 + amplicon goat SRR21146909 PRJNA871392 + amplicon goat SRR21146910 PRJNA871392 + amplicon goat SRR21146911 PRJNA871392 + amplicon goat SRR21146912 PRJNA871392 + amplicon goat SRR21146913 PRJNA871392 + amplicon goat SRR21146914 PRJNA871392 + amplicon goat SRR21146915 PRJNA871392 + amplicon goat SRR21146916 PRJNA871392 + amplicon goat SRR21146917 PRJNA871392 + amplicon goat SRR21146918 PRJNA871392 + amplicon goat SRR21146919 PRJNA871392 + amplicon goat SRR21146920 PRJNA871392 + amplicon goat SRR21146921 PRJNA871392 + amplicon goat SRR21146922 PRJNA871392 + amplicon goat SRR21146923 PRJNA871392 + amplicon goat SRR21146924 PRJNA871392 + amplicon goat SRR21146925 PRJNA871392 + amplicon goat SRR21146926 PRJNA871392 + amplicon goat SRR21146927 PRJNA871392 + amplicon goat SRR21146928 PRJNA871392 + amplicon goat SRR21146929 PRJNA871392 + amplicon goat SRR21146930 PRJNA871392 + amplicon goat SRR21146931 PRJNA871392 + amplicon goat SRR21146932 PRJNA871392 + amplicon goat SRR21146933 PRJNA871392 + amplicon goat SRR21146934 PRJNA871392 + amplicon goat SRR21146935 PRJNA871392 + amplicon goat SRR21146936 PRJNA871392 + amplicon goat SRR21146937 PRJNA871392 + amplicon goat SRR21146938 PRJNA871392 + amplicon goat SRR21146939 PRJNA871392 + amplicon goat SRR21146940 PRJNA871392 + amplicon goat SRR21146941 PRJNA871392 + amplicon goat SRR21146942 PRJNA871392 + amplicon goat SRR21146943 PRJNA871392 + amplicon goat SRR21146944 PRJNA871392 + amplicon goat SRR21146945 PRJNA871392 + amplicon goat SRR21146946 PRJNA871392 + amplicon goat SRR21146947 PRJNA871392 + amplicon goat SRR21146948 PRJNA871392 + amplicon goat SRR21146949 PRJNA871392 + amplicon goat SRR21146950 PRJNA871392 + amplicon goat SRR21146951 PRJNA871392 + amplicon goat SRR21146952 PRJNA871392 + amplicon goat SRR21146953 PRJNA871392 + amplicon goat SRR21146954 PRJNA871392 + amplicon goat SRR21146955 PRJNA871392 + amplicon goat SRR21146956 PRJNA871392 + amplicon goat SRR21146957 PRJNA871392 + amplicon goat SRR21146958 PRJNA871392 + amplicon goat SRR21146959 PRJNA871392 + amplicon goat SRR21146960 PRJNA871392 + amplicon goat SRR21146961 PRJNA871392 + amplicon goat SRR21146962 PRJNA871392 + amplicon goat SRR21146963 PRJNA871392 + amplicon goat SRR21146964 PRJNA871392 + amplicon goat SRR21146965 PRJNA871392 + amplicon goat SRR21146966 PRJNA871392 + amplicon goat SRR21146967 PRJNA871392 + amplicon goat SRR21146968 PRJNA871392 + amplicon goat SRR21146969 PRJNA871392 + amplicon goat SRR21146970 PRJNA871392 + amplicon goat SRR21146971 PRJNA871392 + amplicon goat SRR21146972 PRJNA871392 + amplicon goat SRR21146973 PRJNA871392 + amplicon goat SRR21146974 PRJNA871392 + amplicon goat SRR21146975 PRJNA871392 + amplicon goat SRR21146976 PRJNA871392 + amplicon goat SRR21146977 PRJNA871392 + amplicon goat SRR21146978 PRJNA871392 + amplicon goat SRR21146979 PRJNA871392 + amplicon goat SRR21146980 PRJNA871392 + amplicon goat SRR21146981 PRJNA871392 + amplicon goat SRR21146982 PRJNA871392 + amplicon sheep SRR21511402 PRJNA878668 + amplicon sheep SRR21511403 PRJNA878668 + amplicon sheep SRR21511404 PRJNA878668 + amplicon sheep SRR21511405 PRJNA878668 + amplicon sheep SRR21511406 PRJNA878668 + amplicon sheep SRR21511407 PRJNA878668 + amplicon sheep SRR21511408 PRJNA878668 + amplicon sheep SRR21511409 PRJNA878668 + amplicon sheep SRR21511410 PRJNA878668 + amplicon sheep SRR21511411 PRJNA878668 + amplicon sheep SRR21511412 PRJNA878668 + amplicon sheep SRR21511413 PRJNA878668 + amplicon sheep SRR21511414 PRJNA878668 + amplicon sheep SRR21511415 PRJNA878668 + amplicon sheep SRR21511416 PRJNA878668 + amplicon sheep SRR21511417 PRJNA878668 + amplicon sheep SRR21511418 PRJNA878668 + amplicon sheep SRR21511419 PRJNA878668 + amplicon sheep SRR21511420 PRJNA878668 + amplicon sheep SRR21511421 PRJNA878668 + amplicon sheep SRR21511422 PRJNA878668 + amplicon sheep SRR21511423 PRJNA878668 + amplicon sheep SRR21511424 PRJNA878668 + amplicon sheep SRR21511425 PRJNA878668 + amplicon sheep SRR21511426 PRJNA878668 + amplicon sheep SRR21511387 PRJNA878668 + amplicon sheep SRR21511388 PRJNA878668 + amplicon sheep SRR21511389 PRJNA878668 + amplicon sheep SRR21511390 PRJNA878668 + amplicon sheep SRR21511391 PRJNA878668 + amplicon sheep SRR21511392 PRJNA878668 + amplicon sheep SRR21511393 PRJNA878668 + amplicon sheep SRR21511394 PRJNA878668 + amplicon sheep SRR21511395 PRJNA878668 + amplicon sheep SRR21511396 PRJNA878668 + amplicon sheep SRR21511397 PRJNA878668 + amplicon sheep SRR21511398 PRJNA878668 + amplicon sheep SRR21511399 PRJNA878668 + amplicon sheep SRR21511400 PRJNA878668 + amplicon sheep SRR21511401 PRJNA878668 + amplicon Unknown SRR21615994 PRJNA881595 + amplicon Unknown SRR21615995 PRJNA881595 + amplicon Unknown SRR21615996 PRJNA881595 + amplicon Unknown SRR21615997 PRJNA881595 + amplicon Unknown SRR21615998 PRJNA881595 + amplicon Unknown SRR21615999 PRJNA881595 + amplicon Unknown SRR21616000 PRJNA881595 + amplicon Unknown SRR21616001 PRJNA881595 + amplicon Unknown SRR21616002 PRJNA881595 + amplicon Unknown SRR21616003 PRJNA881595 + amplicon Unknown SRR21616004 PRJNA881595 + amplicon Unknown SRR21616005 PRJNA881595 + amplicon Unknown SRR21616006 PRJNA881595 + amplicon Unknown SRR21616007 PRJNA881595 + amplicon Unknown SRR21616008 PRJNA881595 + amplicon Unknown SRR21616009 PRJNA881595 + amplicon goat SRR21639781 PRJNA881241 + amplicon goat SRR21639782 PRJNA881241 + amplicon goat SRR21639783 PRJNA881241 + amplicon goat SRR21639784 PRJNA881241 + amplicon goat SRR21639785 PRJNA881241 + amplicon sheep SRR21639786 PRJNA881241 + amplicon sheep SRR21639787 PRJNA881241 + amplicon sheep SRR21639788 PRJNA881241 + amplicon goat SRR21639789 PRJNA881241 + amplicon goat SRR21639790 PRJNA881241 + amplicon goat SRR21639791 PRJNA881241 + amplicon goat SRR21639792 PRJNA881241 + amplicon goat SRR21639793 PRJNA881241 + amplicon sheep SRR21639794 PRJNA881241 + amplicon sheep SRR21639795 PRJNA881241 + amplicon sheep SRR21639796 PRJNA881241 + amplicon sheep SRR21639797 PRJNA881241 + amplicon sheep SRR21639798 PRJNA881241 + amplicon sheep SRR21639799 PRJNA881241 + amplicon sheep SRR21639800 PRJNA881241 + amplicon sheep SRR21763344 PRJNA882625 + amplicon sheep SRR21763345 PRJNA882625 + amplicon sheep SRR21763346 PRJNA882625 + amplicon sheep SRR21763347 PRJNA882625 + amplicon sheep SRR21763348 PRJNA882625 + amplicon sheep SRR21763349 PRJNA882625 + amplicon deer SRR21763350 PRJNA882625 + amplicon deer SRR21763351 PRJNA882625 + amplicon sheep SRR21763352 PRJNA882625 + amplicon deer SRR21763353 PRJNA882625 + amplicon deer SRR21763354 PRJNA882625 + amplicon deer SRR21763355 PRJNA882625 + amplicon deer SRR21763356 PRJNA882625 + amplicon deer SRR21763357 PRJNA882625 + amplicon deer SRR21763358 PRJNA882625 + amplicon deer SRR21763359 PRJNA882625 + amplicon deer SRR21763360 PRJNA882625 + amplicon deer SRR21763361 PRJNA882625 + amplicon deer SRR21763362 PRJNA882625 + amplicon sheep SRR21763363 PRJNA882625 + amplicon deer SRR21763364 PRJNA882625 + amplicon deer SRR21763365 PRJNA882625 + amplicon deer SRR21763366 PRJNA882625 + amplicon deer SRR21763367 PRJNA882625 + amplicon sheep SRR21763368 PRJNA882625 + amplicon sheep SRR21763369 PRJNA882625 + amplicon sheep SRR21763370 PRJNA882625 + amplicon sheep SRR21763371 PRJNA882625 + amplicon sheep SRR21763372 PRJNA882625 + amplicon sheep SRR21763373 PRJNA882625 + amplicon sheep SRR21763374 PRJNA882625 + amplicon sheep SRR21763375 PRJNA882625 + amplicon horse SRR21813342 PRJNA887344 + amplicon horse SRR21813343 PRJNA887344 + amplicon horse SRR21813344 PRJNA887344 + amplicon horse SRR21813345 PRJNA887344 + amplicon horse SRR21813346 PRJNA887344 + amplicon horse SRR21813347 PRJNA887344 + amplicon horse SRR21813348 PRJNA887344 + amplicon horse SRR21813349 PRJNA887344 + amplicon horse SRR21813350 PRJNA887344 + amplicon horse SRR21813351 PRJNA887344 + amplicon horse SRR21813352 PRJNA887344 + amplicon horse SRR21813353 PRJNA887344 + amplicon horse SRR21813354 PRJNA887344 + amplicon horse SRR21813355 PRJNA887344 + amplicon horse SRR21813356 PRJNA887344 + amplicon horse SRR21813357 PRJNA887344 + amplicon horse SRR21813358 PRJNA887344 + amplicon horse SRR21813359 PRJNA887344 + amplicon horse SRR21813360 PRJNA887344 + amplicon horse SRR21813361 PRJNA887344 + amplicon sheep SRR22063393 PRJNA894949 + amplicon sheep SRR22063395 PRJNA894949 + amplicon sheep SRR22063396 PRJNA894949 + amplicon sheep SRR22063397 PRJNA894949 + amplicon sheep SRR22063398 PRJNA894949 + amplicon sheep SRR22063400 PRJNA894949 + amplicon sheep SRR22063403 PRJNA894949 + amplicon sheep SRR22063404 PRJNA894949 + amplicon sheep SRR22063406 PRJNA894949 + amplicon sheep SRR22063408 PRJNA894949 + amplicon sheep SRR22063409 PRJNA894949 + amplicon sheep SRR22063411 PRJNA894949 + amplicon sheep SRR22063414 PRJNA894949 + amplicon sheep SRR22063392 PRJNA894949 + amplicon sheep SRR22063394 PRJNA894949 + amplicon sheep SRR22063399 PRJNA894949 + amplicon sheep SRR22063401 PRJNA894949 + amplicon sheep SRR22063402 PRJNA894949 + amplicon sheep SRR22063405 PRJNA894949 + amplicon sheep SRR22063407 PRJNA894949 + amplicon sheep SRR22063410 PRJNA894949 + amplicon sheep SRR22063412 PRJNA894949 + amplicon sheep SRR22063413 PRJNA894949 + amplicon sheep SRR22063415 PRJNA894949 + amplicon termite SRR22137823 PRJNA896747 + amplicon termite SRR22137825 PRJNA896747 + amplicon termite SRR22137822 PRJNA896747 + amplicon termite SRR22137824 PRJNA896747 + amplicon termite SRR22137826 PRJNA896747 + amplicon termite SRR22137827 PRJNA896747 + amplicon rabbit SRR22348340 PRJNA901541 + amplicon rabbit SRR22348341 PRJNA901541 + amplicon rabbit SRR22348342 PRJNA901541 + amplicon rabbit SRR22348343 PRJNA901541 + amplicon rabbit SRR22348344 PRJNA901541 + amplicon rabbit SRR22348345 PRJNA901541 + amplicon rabbit SRR22348346 PRJNA901541 + amplicon rabbit SRR22348347 PRJNA901541 + amplicon rabbit SRR22348348 PRJNA901541 + amplicon rabbit SRR22348349 PRJNA901541 + amplicon rabbit SRR22348350 PRJNA901541 + amplicon rabbit SRR22348351 PRJNA901541 + amplicon rabbit SRR22348352 PRJNA901541 + amplicon rabbit SRR22348353 PRJNA901541 + amplicon rabbit SRR22348354 PRJNA901541 + amplicon rabbit SRR22348355 PRJNA901541 + amplicon rabbit SRR22348356 PRJNA901541 + amplicon rabbit SRR22348357 PRJNA901541 + amplicon rabbit SRR22348358 PRJNA901541 + amplicon rabbit SRR22348359 PRJNA901541 + amplicon rabbit SRR22348360 PRJNA901541 + amplicon rabbit SRR22348361 PRJNA901541 + amplicon rabbit SRR22348362 PRJNA901541 + amplicon rabbit SRR22348363 PRJNA901541 + amplicon cow SRR22395696 PRJNA749669 + amplicon cow SRR22395697 PRJNA749669 + amplicon cow SRR22395698 PRJNA749669 + amplicon cow SRR22395699 PRJNA749669 + amplicon cow SRR22395700 PRJNA749669 + amplicon cow SRR22395701 PRJNA749669 + amplicon cow SRR22395702 PRJNA749669 + amplicon cow SRR22395703 PRJNA749669 + amplicon cow SRR22395704 PRJNA749669 + amplicon cow SRR22395705 PRJNA749669 + amplicon cow SRR22395706 PRJNA749669 + amplicon cow SRR22395707 PRJNA749669 + amplicon cow SRR22395708 PRJNA749669 + amplicon cow SRR22395709 PRJNA749669 + amplicon cow SRR22395710 PRJNA749669 + amplicon cow SRR22395711 PRJNA749669 + amplicon cow SRR22395712 PRJNA749669 + amplicon cow SRR22395713 PRJNA749669 + amplicon cow SRR22395714 PRJNA749669 + amplicon cow SRR22395715 PRJNA749669 + amplicon cow SRR22395716 PRJNA749669 + amplicon cow SRR22395717 PRJNA749669 + amplicon cow SRR22395718 PRJNA749669 + amplicon cow SRR22395719 PRJNA749669 + amplicon cow SRR22395720 PRJNA749669 + amplicon cow SRR22395721 PRJNA749669 + amplicon cow SRR22395722 PRJNA749669 + amplicon cow SRR22395723 PRJNA749669 + amplicon cow SRR22395724 PRJNA749669 + amplicon cow SRR22395725 PRJNA749669 + amplicon cow SRR22395726 PRJNA749669 + amplicon cow SRR22395727 PRJNA749669 + amplicon cow SRR22395728 PRJNA749669 + amplicon cow SRR22395729 PRJNA749669 + amplicon cow SRR22395730 PRJNA749669 + amplicon cow SRR22395731 PRJNA749669 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765500 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765501 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765502 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765503 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765504 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765505 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765506 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765507 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765508 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765509 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765510 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765511 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765512 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765513 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765514 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765515 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765516 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765517 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765518 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765519 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765520 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765521 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765522 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765523 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765524 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765525 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765526 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765527 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765528 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765529 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765530 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765531 SRP238737 +Metagenome of rumen samples: dairy cattle WGS cow SRR10765532 SRP238737 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746273 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746275 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746277 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746278 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746281 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746282 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746284 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746285 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746271 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746272 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746274 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746276 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746279 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746280 SRP389284 +Integrated omics analysis on the bacterial community in the anaerobic digestion of chicken manure materials in biogas production farm amplicon Chicken SRR20746283 SRP389284 \ No newline at end of file diff --git a/Examples/feed_db.tsv b/Examples/feed_db.tsv new file mode 100644 index 0000000..7f9c6dd --- /dev/null +++ b/Examples/feed_db.tsv @@ -0,0 +1,14 @@ +name carbohydrates lipids proteins tss si xi reference +Foodwaste_for_16s_analysis 50.1 21.5 20.5 30 47 22.5 https://doi.org/10.1021/acssuschemeng.2c04080|http://dx.doi.org/10.1016/B978-0-12-819148-4.00002-6|https://doi.org/10.1016/j.biortech.2015.02.034 +Cellulosic Medium 100 0 0 100 0 0 https://doi.org/10.1016/j.biortech.2020.124532 +Slurry 20.89552239 10.64676617 68.45771144 32.5 0 3 https://doi.org/10.1016/j.dib.2020.105212 +Greases 29.52952953 64.06406406 6.406406406 26.5138154 0 11 https://doi.org/10.1016/j.dib.2020.105213 +I Sludge 54.9 26 19.1 1.624548736 0 3 https://doi.org/10.1016/j.dib.2020.105214 +II Sludge 40.2 13.7 46.1 39.61054967 0 8 https://doi.org/10.1016/j.dib.2020.105215 +Vinasses 61.4 15.2 23.4 25.35866615 0 37 https://doi.org/10.1016/j.dib.2020.105216 +Biowaste 40.45954046 40.15984016 19.38061938 43.65626267 0 3 https://doi.org/10.1016/j.dib.2020.105217 +Feed-residues 72.1 9.6 18.3 21.93664077 0 27 https://doi.org/10.1016/j.dib.2020.105218 +Silage 85.11488511 7.092907093 7.792207792 3.306120086 0 17 https://doi.org/10.1016/j.dib.2020.105219 +Horse-feed 72 10.7 17.3 60.45772409 0 28 https://doi.org/10.1016/j.dib.2020.105220 +Manure 79.1 4.7 16.2 3.382641978 0 29 https://doi.org/10.1016/j.dib.2020.105221 +Grape-marc 63.26326326 22.52252252 14.21421421 98.86189538 0 60 https://doi.org/10.1016/j.dib.2020.105222 \ No newline at end of file diff --git a/Examples/metagenomics_notebook.ipynb b/Examples/metagenomics_notebook.ipynb index 4b8da56..c65fbac 100644 --- a/Examples/metagenomics_notebook.ipynb +++ b/Examples/metagenomics_notebook.ipynb @@ -45,11 +45,16 @@ "outputs": [], "source": [ "import pandas as pd\n", - "from adtoolbox import core,configs,utils\n", + "from adtoolbox import core, configs, utils\n", "import os\n", "import pathlib\n", "import numpy as np\n", - "import json" + "import json\n", + "\n", + "WORK_DIR = pathlib.Path.cwd() / \"adtoolbox_metagenomics_work\"\n", + "DATABASE_DIR = pathlib.Path(\"/Users/parsaghadermarzi/Desktop/Academics/Projects/Database/ADToolbox\")\n", + "if not DATABASE_DIR.exists():\n", + " DATABASE_DIR = WORK_DIR / \"database\"\n" ] }, { @@ -69,7 +74,7 @@ "outputs": [], "source": [ "sra_metadatatable = pd.read_table(\"SraRunTable.txt\",delimiter=\",\",header='infer')\n", - "dmc = configs.Metagenomics(adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", + "dmc = configs.Metagenomics(database_dir=DATABASE_DIR, adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", "mo = core.Metagenomics(dmc) # metadata object\n", "sample_accesions = sra_metadatatable[\"Run\"]\n", "base_seq_dir=pathlib.Path(\"./16s_samples_sequences/\")" @@ -334,8 +339,8 @@ "outputs": [], "source": [ "sra_metadatatable = pd.read_table(\"SraRunTable_Shotgun.txt\",delimiter=\"\\t\")\n", - "# dmc = configs.Metagenomics(adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", - "dmc = configs.Metagenomics(adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", + "# dmc = configs.Metagenomics(database_dir=DATABASE_DIR, adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", + "dmc = configs.Metagenomics(database_dir=DATABASE_DIR, adtoolbox_docker=configs.ADTOOLBOX_CONTAINERS[\"docker_arm64\"]) # \n", "mo = core.Metagenomics(dmc) # metadata object\n", "sample_accesions = sra_metadatatable[\"run_accession\"]\n", "base_seq_dir=pathlib.Path(\"./Shotgun_samples_sequences/\")" diff --git a/Examples/modeling.ipynb b/Examples/modeling.ipynb index abb972e..ccbac1d 100644 --- a/Examples/modeling.ipynb +++ b/Examples/modeling.ipynb @@ -78,7 +78,160 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: adtoolbox in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (0.6.18)\n", + "Requirement already satisfied: dash<3.0.0,>=2.4.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (2.18.2)\n", + "Requirement already satisfied: dash-bootstrap-components<2.0.0,>=1.3.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (1.7.1)\n", + "Requirement already satisfied: dash-escher<0.0.5,>=0.0.4 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (0.0.4)\n", + "Requirement already satisfied: matplotlib<4.0.0,>=3.5.2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (3.10.9)\n", + "Requirement already satisfied: numpy<2.0.0,>=1.22.4 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (1.26.4)\n", + "Requirement already satisfied: pandas<3.0.0,>=2.2.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (2.3.3)\n", + "Requirement already satisfied: plotly<6.0.0,>=5.8.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (5.24.1)\n", + "Requirement already satisfied: polars<0.21.0,>=0.20.27 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (0.20.31)\n", + "Requirement already satisfied: requests<3.0.0,>=2.27.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (2.34.0)\n", + "Requirement already satisfied: rich<13.0.0,>=12.4.4 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (12.6.0)\n", + "Requirement already satisfied: scipy<2.0.0,>=1.8.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (1.17.1)\n", + "Requirement already satisfied: sympy<2.0.0,>=1.10.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from adtoolbox) (1.14.0)\n", + "Requirement already satisfied: Flask<3.1,>=1.0.4 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (3.0.3)\n", + "Requirement already satisfied: Werkzeug<3.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (3.0.6)\n", + "Requirement already satisfied: dash-html-components==2.0.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (2.0.0)\n", + "Requirement already satisfied: dash-core-components==2.0.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (2.0.0)\n", + "Requirement already satisfied: dash-table==5.0.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (5.0.0)\n", + "Requirement already satisfied: importlib-metadata in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (9.0.0)\n", + "Requirement already satisfied: typing-extensions>=4.1.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (4.15.0)\n", + "Requirement already satisfied: retrying in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (1.4.2)\n", + "Requirement already satisfied: nest-asyncio in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (1.6.0)\n", + "Requirement already satisfied: setuptools in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from dash<3.0.0,>=2.4.1->adtoolbox) (82.0.1)\n", + "Requirement already satisfied: Jinja2>=3.1.2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from Flask<3.1,>=1.0.4->dash<3.0.0,>=2.4.1->adtoolbox) (3.1.6)\n", + "Requirement already satisfied: itsdangerous>=2.1.2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from Flask<3.1,>=1.0.4->dash<3.0.0,>=2.4.1->adtoolbox) (2.2.0)\n", + "Requirement already satisfied: click>=8.1.3 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from Flask<3.1,>=1.0.4->dash<3.0.0,>=2.4.1->adtoolbox) (8.3.3)\n", + "Requirement already satisfied: blinker>=1.6.2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from Flask<3.1,>=1.0.4->dash<3.0.0,>=2.4.1->adtoolbox) (1.9.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (1.3.3)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (4.62.1)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (1.5.0)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (26.2)\n", + "Requirement already satisfied: pillow>=8 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (12.2.0)\n", + "Requirement already satisfied: pyparsing>=3 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (3.3.2)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from matplotlib<4.0.0,>=3.5.2->adtoolbox) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pandas<3.0.0,>=2.2.0->adtoolbox) (2026.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pandas<3.0.0,>=2.2.0->adtoolbox) (2026.2)\n", + "Requirement already satisfied: tenacity>=6.2.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from plotly<6.0.0,>=5.8.0->adtoolbox) (9.1.4)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from requests<3.0.0,>=2.27.1->adtoolbox) (3.4.7)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from requests<3.0.0,>=2.27.1->adtoolbox) (3.15)\n", + "Requirement already satisfied: urllib3<3,>=1.26 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from requests<3.0.0,>=2.27.1->adtoolbox) (2.7.0)\n", + "Requirement already satisfied: certifi>=2023.5.7 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from requests<3.0.0,>=2.27.1->adtoolbox) (2026.4.22)\n", + "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from rich<13.0.0,>=12.4.4->adtoolbox) (0.9.1)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from rich<13.0.0,>=12.4.4->adtoolbox) (2.20.0)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from sympy<2.0.0,>=1.10.1->adtoolbox) (1.3.0)\n", + "Requirement already satisfied: MarkupSafe>=2.1.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from Werkzeug<3.1->dash<3.0.0,>=2.4.1->adtoolbox) (3.0.3)\n", + "Requirement already satisfied: six>=1.5 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from python-dateutil>=2.7->matplotlib<4.0.0,>=3.5.2->adtoolbox) (1.17.0)\n", + "Requirement already satisfied: zipp>=3.20 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from importlib-metadata->dash<3.0.0,>=2.4.1->adtoolbox) (3.23.1)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m26.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Collecting cobra\n", + " Downloading cobra-0.31.1-py2.py3-none-any.whl.metadata (9.3 kB)\n", + "Collecting appdirs~=1.4 (from cobra)\n", + " Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)\n", + "Collecting depinfo~=2.2 (from cobra)\n", + " Downloading depinfo-2.2.0-py3-none-any.whl.metadata (3.8 kB)\n", + "Collecting future (from cobra)\n", + " Downloading future-1.0.0-py3-none-any.whl.metadata (4.0 kB)\n", + "Collecting httpx~=0.24 (from cobra)\n", + " Using cached httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)\n", + "Requirement already satisfied: numpy>=1.13 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from cobra) (1.26.4)\n", + "Collecting optlang~=1.9 (from cobra)\n", + " Downloading optlang-1.9.0-py2.py3-none-any.whl.metadata (8.2 kB)\n", + "Requirement already satisfied: pandas<3.0,>=1.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from cobra) (2.3.3)\n", + "Collecting pydantic>=1.6 (from cobra)\n", + " Downloading pydantic-2.13.4-py3-none-any.whl.metadata (109 kB)\n", + "Collecting python-libsbml~=5.19 (from cobra)\n", + " Downloading python_libsbml-5.21.1-cp314-cp314-macosx_11_0_arm64.whl.metadata (666 bytes)\n", + "Requirement already satisfied: rich>=8.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from cobra) (12.6.0)\n", + "Collecting ruamel.yaml~=0.16 (from cobra)\n", + " Downloading ruamel_yaml-0.19.1-py3-none-any.whl.metadata (16 kB)\n", + "Collecting swiglpk (from cobra)\n", + " Downloading swiglpk-5.0.13-cp314-cp314-macosx_11_0_arm64.whl.metadata (5.7 kB)\n", + "Collecting anyio (from httpx~=0.24->cobra)\n", + " Using cached anyio-4.13.0-py3-none-any.whl.metadata (4.5 kB)\n", + "Requirement already satisfied: certifi in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from httpx~=0.24->cobra) (2026.4.22)\n", + "Collecting httpcore==1.* (from httpx~=0.24->cobra)\n", + " Using cached httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)\n", + "Requirement already satisfied: idna in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from httpx~=0.24->cobra) (3.15)\n", + "Collecting h11>=0.16 (from httpcore==1.*->httpx~=0.24->cobra)\n", + " Using cached h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)\n", + "Requirement already satisfied: sympy>=1.12.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from optlang~=1.9->cobra) (1.14.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pandas<3.0,>=1.0->cobra) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pandas<3.0,>=1.0->cobra) (2026.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pandas<3.0,>=1.0->cobra) (2026.2)\n", + "Collecting annotated-types>=0.6.0 (from pydantic>=1.6->cobra)\n", + " Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)\n", + "Collecting pydantic-core==2.46.4 (from pydantic>=1.6->cobra)\n", + " Downloading pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl.metadata (6.6 kB)\n", + "Requirement already satisfied: typing-extensions>=4.14.1 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from pydantic>=1.6->cobra) (4.15.0)\n", + "Collecting typing-inspection>=0.4.2 (from pydantic>=1.6->cobra)\n", + " Using cached typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB)\n", + "Requirement already satisfied: six>=1.5 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from python-dateutil>=2.8.2->pandas<3.0,>=1.0->cobra) (1.17.0)\n", + "Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from rich>=8.0->cobra) (0.9.1)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from rich>=8.0->cobra) (2.20.0)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from sympy>=1.12.0->optlang~=1.9->cobra) (1.3.0)\n", + "Downloading cobra-0.31.1-py2.py3-none-any.whl (1.2 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m32.7 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)\n", + "Downloading depinfo-2.2.0-py3-none-any.whl (24 kB)\n", + "Using cached httpx-0.28.1-py3-none-any.whl (73 kB)\n", + "Using cached httpcore-1.0.9-py3-none-any.whl (78 kB)\n", + "Downloading optlang-1.9.0-py2.py3-none-any.whl (141 kB)\n", + "Downloading python_libsbml-5.21.1-cp314-cp314-macosx_11_0_arm64.whl (6.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.1/6.1 MB\u001b[0m \u001b[31m64.4 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "\u001b[?25hDownloading ruamel_yaml-0.19.1-py3-none-any.whl (118 kB)\n", + "Using cached h11-0.16.0-py3-none-any.whl (37 kB)\n", + "Downloading pydantic-2.13.4-py3-none-any.whl (472 kB)\n", + "Downloading pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl (2.0 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m55.9 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached annotated_types-0.7.0-py3-none-any.whl (13 kB)\n", + "Downloading swiglpk-5.0.13-cp314-cp314-macosx_11_0_arm64.whl (764 kB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m764.3/764.3 kB\u001b[0m \u001b[31m38.0 MB/s\u001b[0m \u001b[33m0:00:00\u001b[0m\n", + "\u001b[?25hUsing cached typing_inspection-0.4.2-py3-none-any.whl (14 kB)\n", + "Using cached anyio-4.13.0-py3-none-any.whl (114 kB)\n", + "Downloading future-1.0.0-py3-none-any.whl (491 kB)\n", + "Installing collected packages: swiglpk, python-libsbml, appdirs, typing-inspection, ruamel.yaml, pydantic-core, h11, future, depinfo, anyio, annotated-types, pydantic, optlang, httpcore, httpx, cobra\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m16/16\u001b[0m [cobra]m15/16\u001b[0m [cobra]g]]bsbml]\n", + "\u001b[1A\u001b[2KSuccessfully installed annotated-types-0.7.0 anyio-4.13.0 appdirs-1.4.4 cobra-0.31.1 depinfo-2.2.0 future-1.0.0 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 optlang-1.9.0 pydantic-2.13.4 pydantic-core-2.46.4 python-libsbml-5.21.1 ruamel.yaml-0.19.1 swiglpk-5.0.13 typing-inspection-0.4.2\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m26.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Collecting kaleido\n", + " Downloading kaleido-1.3.0-py3-none-any.whl.metadata (5.6 kB)\n", + "Collecting choreographer>=1.3.0 (from kaleido)\n", + " Downloading choreographer-1.3.0-py3-none-any.whl.metadata (6.9 kB)\n", + "Collecting logistro>=1.0.8 (from kaleido)\n", + " Downloading logistro-2.0.1-py3-none-any.whl.metadata (3.9 kB)\n", + "Collecting orjson>=3.10.15 (from kaleido)\n", + " Downloading orjson-3.11.9-cp314-cp314-macosx_15_0_arm64.whl.metadata (41 kB)\n", + "Requirement already satisfied: packaging in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from kaleido) (26.2)\n", + "Requirement already satisfied: platformdirs>=4.3.6 in /Users/parsaghadermarzi/.pyenv/versions/miniconda3-latest/envs/adtoolbox/lib/python3.14/site-packages (from choreographer>=1.3.0->kaleido) (4.9.6)\n", + "Collecting simplejson>=3.19.3 (from choreographer>=1.3.0->kaleido)\n", + " Downloading simplejson-4.1.1-cp314-cp314-macosx_11_0_arm64.whl.metadata (3.8 kB)\n", + "Downloading kaleido-1.3.0-py3-none-any.whl (55 kB)\n", + "Downloading choreographer-1.3.0-py3-none-any.whl (52 kB)\n", + "Downloading logistro-2.0.1-py3-none-any.whl (8.6 kB)\n", + "Downloading orjson-3.11.9-cp314-cp314-macosx_15_0_arm64.whl (128 kB)\n", + "Downloading simplejson-4.1.1-cp314-cp314-macosx_11_0_arm64.whl (90 kB)\n", + "Installing collected packages: simplejson, orjson, logistro, choreographer, kaleido\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5/5\u001b[0m [kaleido]\n", + "\u001b[1A\u001b[2KSuccessfully installed choreographer-1.3.0 kaleido-1.3.0 logistro-2.0.1 orjson-3.11.9 simplejson-4.1.1\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m26.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m26.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], "source": [ "!pip install adtoolbox\n", "!pip install cobra\n", @@ -159,7 +312,7 @@ { "data": { "image/svg+xml": [ - "024681000.20.40.60.81variableABCConcentration of speciesTime (Days)Concentrations (kg COD/m^3)" + "024681000.20.40.60.81variableABCConcentration of speciesTime (Days)Concentrations (kg COD/m^3)" ] }, "metadata": {}, @@ -195,7 +348,7 @@ " ADM\n", " \n", " Memory address\n", - " 1036ac1f0\n", + " 139b4cc20\n", " \n", " Number of metabolites\n", " 3\n", @@ -218,7 +371,7 @@ " " ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -255,9 +408,39 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "drop_down_escher\n", + "drop_down_escher\n" + ] + } + ], "source": [ "model.dash_app(sol=model.solve_model(np.linspace(0, 10, 1000)),\n", " escher_map=\"./Toymap.json\",\n", @@ -270,45 +453,102 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You built your first model successfully! Now lets use a prebuilt ADM model to analyze. Here we will use e-adm2 which is an extended version of ADM1 that includes more details on VFA metabolism" + "You built your first model successfully! Now let's use a prebuilt ADM model. Here we use e-ADM, the current extended ADM implementation." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ - "from adtoolbox import configs,utils,core\n", - "import pandas as pd" + "from pathlib import Path\n", + "from types import SimpleNamespace\n", + "from adtoolbox import configs, utils, core\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "import plotly.graph_objects as go\n", + "import plotly.subplots as tls\n", + "\n", + "NOTEBOOK_DIR = Path.cwd()\n", + "REPO_DIR = NOTEBOOK_DIR.parent if NOTEBOOK_DIR.name == \"Examples\" else NOTEBOOK_DIR\n", + "EXAMPLES_DIR = REPO_DIR / \"Examples\"\n", + "MODEL_DB = REPO_DIR / \"reference_data\" / \"models.json\"\n" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
Feed database downloaded to /Users/parsaghadermarzi/Desktop/Academics/Projects/ADToolbox/Examples/feed_db.tsv\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32mFeed database downloaded to \u001b[0m\u001b[32m/Users/parsaghadermarzi/Desktop/Academics/Projects/ADToolbox/Examples/\u001b[0m\u001b[32mfeed_db.tsv\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Downloaded https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Kbase/metagenomics_studies.tsv\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1;32mDownloaded \u001b[0m\u001b[1;4;32mhttps://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Kbase/metagenomics_studies.tsv\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Downloaded \n",
+       "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/experimental_data_references.json\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1;32mDownloaded \u001b[0m\n", + "\u001b[1;4;32mhttps://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/experimental_data_references.json\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "db=core.Database(configs.Database(adm_parameters_urls=configs.E_ADM_2_REMOTE,adm_parameters=configs.E_ADM_2_LOCAL)) #To make sure the parameters are up to date\n", - "db.download_adm_parameters(verbose=False)\n", - "db.download_feed_database()\n", - "db.download_studies_database()" + "db = core.Database(\n", + " configs.Database(\n", + " feed_db=EXAMPLES_DIR / \"feed_db.tsv\",\n", + " studies_local={\n", + " \"metagenomics_studies\": EXAMPLES_DIR / \"Studies\" / \"metagenomics_studies.tsv\",\n", + " \"experimental_data_db\": EXAMPLES_DIR / \"Studies\" / \"experimental_data_references.json\",\n", + " },\n", + " )\n", + ")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "As an example, we want to compare gas production between three microbiomes explored in Ding et al. The data for this study is added to the database before (see Parameter Tuning notebook). First lets load the model parameters.The address to the parameter files are in E_ADM_2_LOCAL variable in the configs module and they are in json format. You can either load the files one by one or use a helper function like below:" + "As an example, we compare gas production between three microbiomes explored in Ding et al. The model requirements are loaded from the consolidated `reference_data/models.json` file." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "params=utils.load_multiple_json_files(configs.E_ADM_2_LOCAL)" + "params = SimpleNamespace(**utils.load_model_json(MODEL_DB, \"e_adm\"))\n" ] }, { @@ -320,7 +560,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -336,7 +576,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -347,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -365,7 +605,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -377,7 +617,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -392,8 +632,8 @@ " inlet_conditions=params.inlet_conditions,\n", " species=params.species,\n", " reactions=params.reactions,\n", - " build_stoichiometric_matrix=adm.build_e_adm_2_stoichiometric_matrix,\n", - " ode_system=adm.e_adm_2_ode_sys,\n", + " build_stoichiometric_matrix=adm.build_e_adm_stoichiometric_matrix,\n", + " ode_system=adm.e_adm_ode_sys,\n", " feed=feed,\n", " control_state={'S_H_ion':10**(-6.5)},\n", " )\n", @@ -418,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -437,7 +677,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -453,7 +693,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -462,7 +702,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -471,7 +711,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -551,7 +791,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -562,7 +802,7 @@ ], "metadata": { "kernelspec": { - "display_name": "ADTInstall", + "display_name": "adtoolbox", "language": "python", "name": "python3" }, @@ -576,7 +816,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.14.0" } }, "nbformat": 4, diff --git a/Examples/parameter_tuning.ipynb b/Examples/parameter_tuning.ipynb index f854cad..5cc2fa2 100644 --- a/Examples/parameter_tuning.ipynb +++ b/Examples/parameter_tuning.ipynb @@ -48,14 +48,24 @@ "metadata": {}, "outputs": [], "source": [ - "from adtoolbox import core,configs\n", + "from pathlib import Path\n", + "from types import SimpleNamespace\n", + "from adtoolbox import core, configs, utils\n", "import pandas as pd\n", "import numpy as np\n", "from sklearn import manifold\n", "import scipy.spatial.distance as distance\n", "from scipy.stats import spearmanr\n", "from threading import Thread\n", - "import plotly.express as px" + "import plotly.express as px\n", + "\n", + "NOTEBOOK_DIR = Path.cwd()\n", + "REPO_DIR = NOTEBOOK_DIR.parent if NOTEBOOK_DIR.name == \"Examples\" else NOTEBOOK_DIR\n", + "EXAMPLES_DIR = REPO_DIR / \"Examples\"\n", + "MODEL_DB = REPO_DIR / \"reference_data\" / \"models.json\"\n", + "DATABASE_DIR = Path(\"/Users/parsaghadermarzi/Desktop/Academics/Projects/Database/ADToolbox\")\n", + "if not DATABASE_DIR.exists():\n", + " DATABASE_DIR = REPO_DIR / \"reference_data\"\n" ] }, { @@ -89,7 +99,16 @@ "metadata": {}, "outputs": [], "source": [ - "db=core.Database(config=configs.Database())" + "db = core.Database(\n", + " config=configs.Database(\n", + " database_dir=DATABASE_DIR,\n", + " feed_db=EXAMPLES_DIR / \"feed_db.tsv\",\n", + " studies_local={\n", + " \"metagenomics_studies\": EXAMPLES_DIR / \"Studies\" / \"metagenomics_studies.tsv\",\n", + " \"experimental_data_db\": EXAMPLES_DIR / \"Studies\" / \"experimental_data_references.json\",\n", + " },\n", + " )\n", + ")\n" ] }, { @@ -144,7 +163,7 @@ "metadata": {}, "outputs": [], "source": [ - "seed_db=core.SeedDB(configs.Database())" + "seed_db = core.SeedDB(configs.Database(database_dir=DATABASE_DIR))" ] }, { @@ -484,17 +503,8 @@ "metadata": {}, "outputs": [], "source": [ - "from adtoolbox import utils\n", - "local_params=dict(\n", - " model_parameters=\"./Database/ADM_Parameters/Modified_ADM_Model_Parameters.json\",\n", - " base_parameters=\"./Database/ADM_Parameters/Modified_ADM_Base_Parameters.json\",\n", - " initial_conditions=\"./Database/ADM_Parameters/Modified_ADM_Initial_Conditions.json\",\n", - " inlet_conditions=\"./Database/ADM_Parameters/Modified_ADM_Inlet_Conditions.json\",\n", - " species=\"./Database/ADM_Parameters/Modified_ADM_Species.json\",\n", - " reactions=\"./Database/ADM_Parameters/Modified_ADM_Reactions.json\",\n", - ")\n", - "params=utils.load_multiple_json_files(local_params) #just a helper function to load multiple json files.\n", - "initial_conditions=params.initial_conditions" + "params = SimpleNamespace(**utils.load_model_json(MODEL_DB, \"e_adm\"))\n", + "initial_conditions = params.initial_conditions\n" ] }, { @@ -799,7 +809,7 @@ "metadata": {}, "outputs": [], "source": [ - "cellulose=SeedDB(config=configs.Database()).instantiate_metabs(\"cpd11746\")" + "cellulose = SeedDB(config=configs.Database(database_dir=DATABASE_DIR)).instantiate_metabs(\"cpd11746\")" ] }, { @@ -1317,28 +1327,23 @@ "metadata": {}, "outputs": [], "source": [ - "local_params=dict(\n", - " model_parameters=\"./Database/ADM_Parameters/Modified_ADM_Model_Parameters.json\",\n", - " base_parameters=\"./Database/ADM_Parameters/Modified_ADM_Base_Parameters.json\",\n", - " initial_conditions=\"./Database/ADM_Parameters/Modified_ADM_Initial_Conditions.json\",\n", - " inlet_conditions=\"./Database/ADM_Parameters/Modified_ADM_Inlet_Conditions.json\",\n", - " species=\"./Database/ADM_Parameters/Modified_ADM_Species.json\",\n", - " reactions=\"./Database/ADM_Parameters/Modified_ADM_Reactions.json\",\n", + "params = SimpleNamespace(**utils.load_model_json(MODEL_DB, \"e_adm\"))\n", + "\n", + "base_model = adm.Model(\n", + " model_parameters=params.model_parameters,\n", + " base_parameters=params.base_parameters,\n", + " initial_conditions=params.initial_conditions,\n", + " inlet_conditions=params.inlet_conditions,\n", + " species=params.species,\n", + " reactions=params.reactions,\n", + " feed=feed,\n", + " build_stoichiometric_matrix=adm.build_e_adm_stoichiometric_matrix,\n", + " ode_system=adm.e_adm_ode_sys,\n", + " control_state={\"S_H_ion\": 10 ** (-6.5)},\n", + " simulation_time=30,\n", ")\n", - "params=utils.load_multiple_json_files(local_params)\n", "\n", - "base_model=adm.Model(model_parameters=params.model_parameters,\n", - " base_parameters=params.base_parameters,\n", - " initial_conditions=params.initial_conditions,\n", - " inlet_conditions=params.inlet_conditions,\n", - " species=params.species,\n", - " reactions=params.reactions,\n", - " feed=feed,\n", - " build_stoichiometric_matrix=adm.build_e_adm_2_stoichiometric_matrix,\n", - " ode_system=adm.e_adm_2_ode_sys,\n", - " simulation_time=30) \n", - " \n", - "base_model.update_parameters(base_parameters={\"q_in\":0,\"V_liq\":0.0001,\"V_gas\":0.00007},model_parameters={\"k_p\":0})" + "base_model.update_parameters(base_parameters={\"q_in\": 0, \"V_liq\": 0.0001, \"V_gas\": 0.00007}, model_parameters={\"k_p\": 0})\n" ] }, { @@ -3666,8 +3671,7 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" - }, - "orig_nbformat": 4 + } }, "nbformat": 4, "nbformat_minor": 2 diff --git a/Examples/pipeline.ipynb b/Examples/pipeline.ipynb index c34900f..dcd10e8 100644 --- a/Examples/pipeline.ipynb +++ b/Examples/pipeline.ipynb @@ -145,17 +145,23 @@ "source": [ "import os\n", "import pathlib\n", - "from adtoolbox import core,configs,utils\n", + "from adtoolbox import core, configs, utils\n", "import pandas as pd\n", - "db=core.Database(config=configs.Database())\n", + "\n", + "WORK_DIR = pathlib.Path.cwd() / \"adtoolbox_pipeline_work\"\n", + "DATABASE_DIR = pathlib.Path(\"/Users/parsaghadermarzi/Desktop/Academics/Projects/Database/ADToolbox\")\n", + "if not DATABASE_DIR.exists():\n", + " DATABASE_DIR = WORK_DIR / \"database\"\n", + "\n", + "db = core.Database(config=configs.Database(database_dir=DATABASE_DIR))\n", "#db.download_qiime_classifier_db() # downloads the qiime classifier if not already installed (only needs to download once)\n", "metadata=pd.read_table(\"/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/wastewater_16s.csv\",delimiter=\",\")\n", "accessions=metadata[\"Run\"].to_list()\n", - "metag_class=core.Metagenomics(configs.Metagenomics())\n", + "metag_class=core.Metagenomics(configs.Metagenomics(database_dir=DATABASE_DIR))\n", "alignment_to_gtdb={}\n", - "base=pathlib.Path(os.path.join(core.Main_Dir,\"sra_wastewater\")) # base directory\n", + "base=pathlib.Path(os.path.join(WORK_DIR,\"sra_wastewater\")) # base directory\n", "for i in accessions:\n", - " mg_config=configs.Metagenomics(top_repseq_dir=str(base/i/\"seqs\"/i/\"dna-sequences.fasta\"),\n", + " mg_config=configs.Metagenomics(database_dir=DATABASE_DIR, top_repseq_dir=str(base/i/\"seqs\"/i/\"dna-sequences.fasta\"),\n", " vsearch_similarity=0.90,\n", " align_to_gtdb_outputs_dir=str(base/i/\"seqs\"/i))\n", " \n", @@ -174,7 +180,7 @@ "genome_ids=set()\n", "for sample in alignment_to_gtdb:\n", " genome_ids.update(tuple(alignment_to_gtdb[sample].values()))\n", - "mg_config=configs.Metagenomics(genomes_base_dir=os.path.join(core.Main_Dir,\"genomes\"))\n", + "mg_config=configs.Metagenomics(database_dir=DATABASE_DIR, genomes_base_dir=os.path.join(WORK_DIR,\"genomes\"))\n", "mg=core.Metagenomics(mg_config)\n", "genome_address=mg.extract_genome_info(save=False)" ] @@ -76693,11 +76699,11 @@ } ], "source": [ - "mg.config.genomes_json_info=os.path.join(core.Main_Dir,\"sra_wastewater\",\"genome_address.json\")\n", + "mg.config.genomes_json_info=os.path.join(WORK_DIR,\"sra_wastewater\",\"genome_address.json\")\n", "genome_address=mg.extract_genome_info(save=False)\n", "genome_address={k:v for k,v in genome_address.items() if k in genome_ids}\n", - "mg=core.Metagenomics(configs.Metagenomics(genome_alignment_output=os.path.join(core.Main_Dir,\"genomes\")\n", - " ,genomes_base_dir=os.path.join(core.Main_Dir,\"genomes\")))\n", + "mg=core.Metagenomics(configs.Metagenomics(database_dir=DATABASE_DIR, genome_alignment_output=os.path.join(WORK_DIR,\"genomes\")\n", + " ,genomes_base_dir=os.path.join(WORK_DIR,\"genomes\")))\n", "for i in enumerate(genome_address):\n", " os.system(mg.align_genome_to_protein_db(genome_address[i[1]],i[1],container=\"None\")[0])\n" ] @@ -76708,7 +76714,7 @@ "metadata": {}, "outputs": [], "source": [ - "base=pathlib.Path(os.path.join(core.Main_Dir))" + "base=pathlib.Path(os.path.join(WORK_DIR))" ] }, { @@ -80776,7 +80782,7 @@ "outputs": [], "source": [ "normalized_cods={}\n", - "samples=pathlib.Path(os.path.join(core.Main_Dir,\"sra_wastewater\"))\n", + "samples=pathlib.Path(os.path.join(WORK_DIR,\"sra_wastewater\"))\n", "for i in samples.iterdir():\n", " sample_basedir=i/\"seqs\"/i.name\n", " if \"SRR\" in i.name:\n", @@ -85021,8 +85027,7 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" - }, - "orig_nbformat": 4 + } }, "nbformat": 4, "nbformat_minor": 2 diff --git a/Examples/toy_model.json b/Examples/toy_model.json new file mode 100644 index 0000000..eba10b2 --- /dev/null +++ b/Examples/toy_model.json @@ -0,0 +1,51 @@ +{ +"metabolites":[ +{ +"id":"A", +"name":"A", +"compartment":"Model" +}, +{ +"id":"B", +"name":"B", +"compartment":"Model" +}, +{ +"id":"C", +"name":"C", +"compartment":"Model" +} +], +"reactions":[ +{ +"id":"r1", +"name":"r1", +"metabolites":{ +"A":-1.0, +"B":-1.0, +"C":1.0 +}, +"lower_bound":0.0, +"upper_bound":1000.0, +"gene_reaction_rule":"" +}, +{ +"id":"r2", +"name":"r2", +"metabolites":{ +"A":-1.0, +"B":1.0, +"C":-1.0 +}, +"lower_bound":0.0, +"upper_bound":1000.0, +"gene_reaction_rule":"" +} +], +"genes":[], +"id":"ADM", +"compartments":{ +"Model":"" +}, +"version":"1" +} \ No newline at end of file diff --git a/adtoolbox/.DS_Store b/adtoolbox/.DS_Store index a471cfc..a753771 100644 Binary files a/adtoolbox/.DS_Store and b/adtoolbox/.DS_Store differ diff --git a/adtoolbox/__init__.py b/adtoolbox/__init__.py index 177514e..5c53136 100644 --- a/adtoolbox/__init__.py +++ b/adtoolbox/__init__.py @@ -1,39 +1,11 @@ -import json import os -import rich -from rich.prompt import Prompt import sys """Project Setup for ADToolBox.""" __version__ = "1.0.0" -__all__=["adm","configs","__main__","cli","core","optimize","pipeline","utils","Main_Dir","PKG_DATA"] +__all__=["adm","configs","__main__","cli","core","optimize","pipeline","utils","PKG_DATA"] sys.path.append(os.path.join(os.path.dirname(__file__))) PKG_DATA=os.path.join(os.path.dirname(os.path.realpath(__file__)),"pkg_data") - -if not os.path.exists(os.path.join(PKG_DATA,"ADToolbox_Configs.json")): - with open(os.path.join(PKG_DATA,"ADToolbox_Configs.json"),"w") as f: - json.dump({"Base_Dir":""},f) - -with open(os.path.join(PKG_DATA,"ADToolbox_Configs.json"),"r") as f: - conf = json.load(f) - Main_Dir=conf["Base_Dir"] -if Main_Dir and os.path.exists(Main_Dir): - pass -elif Main_Dir and not os.path.exists(Main_Dir): - Main_Dir=input(f"Base directory is not configured properly.\nPlease input the correct path for the base directory:") - if not os.path.exists(Main_Dir): - os.makedirs(Main_Dir) - rich.print(f"[green]Base directory is set to {Main_Dir}") -else: - Main_Dir=Prompt.ask("No Base Directory Found: \nWhere do you want to store your ADToolBox Data?") - -if not os.path.exists(Main_Dir): - os.mkdir(Main_Dir) - rich.print(f"\nDirectory did not exist. Created directory: {Main_Dir}") - -with open(os.path.join(os.path.dirname(os.path.realpath(__file__)),"pkg_data","ADToolbox_Configs.json"),"w") as f: - conf["Base_Dir"]=Main_Dir - json.dump(conf,f) diff --git a/adtoolbox/__main__.py b/adtoolbox/__main__.py index 669be75..71b440f 100644 --- a/adtoolbox/__main__.py +++ b/adtoolbox/__main__.py @@ -1,7 +1,4 @@ -import sys -import os -from cli import main as main -import adtoolbox +from .cli import main if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/adtoolbox/adm.py b/adtoolbox/adm.py index 37be67e..b8368d7 100644 --- a/adtoolbox/adm.py +++ b/adtoolbox/adm.py @@ -16,7 +16,7 @@ import pandas as pd import dash_bootstrap_components as dbc import utils -from adtoolbox import Main_Dir,PKG_DATA +from adtoolbox import PKG_DATA import dash_escher import configs import time @@ -35,13 +35,24 @@ si=30, xi=50, tss=80) -RT = SeedDB(config=configs.Database()) - class _Fake_Sol: def __init__(self, y,t): self.y = y self.t=t + +def _require_model_parameters(model_parameters: dict, required: list[str], model_name: str) -> None: + missing = sorted(set(required) - set(model_parameters)) + if missing: + raise ValueError( + f"{model_name} model_parameters is missing required keys: {', '.join(missing)}" + ) + + +def _monod_limitation(concentration: float, half_saturation: float, eps: float = 10**-9) -> float: + return concentration / (half_saturation + concentration + eps) + + class Model: """Any kinetic model could be an instance of this class. @@ -899,14 +910,14 @@ def adm1_ode_sys(t: float, c: np.ndarray, model:Model)-> np.ndarray: return dCdt[:, 0] -def build_e_adm_2_stoichiometric_matrix(base_parameters: dict, - model_parameters: dict, - reactions: list, - species: list, - feed:Feed, - nitrogen_limited:bool=False)->np.ndarray: +def build_e_adm_stoichiometric_matrix(base_parameters: dict, + model_parameters: dict, + reactions: list, + species: list, + feed:Feed, + nitrogen_limited:bool=False)->np.ndarray: """ - This function builds the stoichiometric matrix for e-ADM2 Model. + This function builds the stoichiometric matrix for the e-ADM model. Model Parameters (dict): a dictionary which contains model parameters base_parameters (dict): a dictionary which contains base paramters @@ -918,6 +929,15 @@ def build_e_adm_2_stoichiometric_matrix(base_parameters: dict, Returns: np.ndarray: Returns an matrix of stochiometic values. """ + _require_model_parameters( + model_parameters, + [ + 'Y_su', 'Y_aa', 'Y_fa', 'Y_ac_et', 'Y_ac_lac', 'Y_pro_et', + 'Y_pro_lac', 'Y_bu_et', 'Y_bu_lac', 'Y_va', 'Y_cap', 'Y_bu', + 'Y_Me_ac', 'Y_Me_CO2', 'Y_ac_et_ox', 'Y_pro_lac_ox', + ], + "e-ADM", + ) S = np.zeros((len(species), len(reactions))) S[list(map(species.index, ["TSS", "X_ch", "X_pr", "X_li", "X_I"])), reactions.index('TSS_Disintegration')] = [-1,feed.ch_tss, feed.prot_tss, feed.lip_tss, feed.xi_tss] @@ -1025,7 +1045,7 @@ def build_e_adm_2_stoichiometric_matrix(base_parameters: dict, Y_ac_lac] Y_pro_et=0 if nitrogen_limited else model_parameters['Y_pro_et'] - Y_pro_lac=0 if nitrogen_limited else model_parameters['Y_pro_et'] + Y_pro_lac=0 if nitrogen_limited else model_parameters['Y_pro_lac'] f_IC_pro_et = -(-model_parameters['C_pro'] + model_parameters['f_et_pro']*model_parameters['C_et'] + @@ -1104,20 +1124,22 @@ def build_e_adm_2_stoichiometric_matrix(base_parameters: dict, (1 - Y_cap), Y_cap] - Y_cap=0 if nitrogen_limited else model_parameters['Y_bu'] + Y_bu=0 if nitrogen_limited else model_parameters['Y_bu'] S[list(map(species.index, ["S_bu", "S_ac", "X_VFA_deg"])), reactions.index('Uptake of butyrate')] = [-1, - (1 - Y_cap), - Y_cap] + (1 - Y_bu), + Y_bu] Y_Me_ac=0 if nitrogen_limited else model_parameters["Y_Me_ac"] - f_IC_Me_ach2 =0 + f_IC_Me_ach2 = -(model_parameters['f_ac_h2']*model_parameters['C_ac'] + + (1 - Y_Me_ac)*model_parameters['C_ch4'] + + Y_Me_ac*model_parameters['C_bac']) S[list(map(species.index, ["S_gas_h2", "S_ac", "S_ch4", "X_Me_ac", 'S_IC', 'S_IN'])), reactions.index('Methanogenessis from acetate and h2')] = [-1, model_parameters['f_ac_h2'], - (1 +model_parameters['f_ac_h2']- Y_Me_ac), + (1 - Y_Me_ac), Y_Me_ac, f_IC_Me_ach2, -Y_Me_ac *model_parameters['N_bac'] @@ -1208,362 +1230,18 @@ def build_e_adm_2_stoichiometric_matrix(base_parameters: dict, reactions.index('Acid Base Equilibrium (In)')] = [-1, 1] # I don't think this is right، should look at the reaction in ADM1 S[list(map(species.index, ["S_h2", "S_gas_h2"])), - reactions.index('Gas Transfer H2')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] + reactions.index('Gas Transfer H2')] = [-1, base_parameters['V_liq']/base_parameters['V_gas']] S[list(map(species.index, ["S_ch4", "S_gas_ch4"])), - reactions.index('Gas Transfer CH4')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] + reactions.index('Gas Transfer CH4')] = [-1, base_parameters['V_liq']/base_parameters['V_gas']] S[list(map(species.index, ["S_co2", "S_gas_co2"])), - reactions.index('Gas Transfer CO2')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] + reactions.index('Gas Transfer CO2')] = [-1, base_parameters['V_liq']/base_parameters['V_gas']] return S -def build_e_adm_stoiciometric_matrix(base_parameters: dict, - model_parameters: dict, - reactions: list, - species: list, - feed:Feed, - nitrogen_limited:bool=False)->np.ndarray: - """ - This function builds the stoichiometric matrix for the e_ADM Model. - - Model Parameters (dict): a dictionary which contains model parameters - base_parameters (dict): a dictionary which contains base paramters - Initial Conditions (dict): a dictionary containing inlet conditions for all species - Inlet Conditions (dict): a dictionary containing inlet conditions for all species - reactions (list): a list containing all of the reaction names - species (list): a list containing all species - - Returns: - np.ndarray: Returns an matrix of stochiometic values. - """ - S = np.zeros((len(species), len(reactions))) - S[list(map(species.index, ["TSS", "X_ch", "X_pr", "X_li", "X_I"])), - reactions.index('TSS_Disintegration')] = [-1,feed.ch_tss, feed.prot_tss, feed.lip_tss,feed.xi_tss] - S[list(map(species.index, ["TDS", "X_ch", "X_pr", "X_li", "S_I"])), reactions.index('TDS_Disintegration')] = [-1, - feed.ch_tds, feed.prot_tds, feed.lip_tds, feed.si_tds] - S[list(map(species.index, ["X_ch", "S_su"])),reactions.index('Hydrolysis carbohydrates')] = [-1, 1] - S[list(map(species.index, ["X_pr", "S_aa"])),reactions.index('Hydrolysis proteins')] = [-1, 1] - S[list(map(species.index, ["X_li", "S_fa"])),reactions.index('Hydrolysis lipids')] = [-1, 1] - - f_IC_su_et=-(-model_parameters['C_su']+ - (1-model_parameters['Y_su_et']) * model_parameters['C_et']+ - (1-model_parameters['Y_su_et']) * model_parameters['C_bac'] - ) - - f_IC_su_lac=-(-model_parameters['C_su']+ - (1-model_parameters['Y_su_lac']) * model_parameters['C_lac']+ - (1-model_parameters['Y_su_lac']) * model_parameters['C_bac'] - ) - - f_IC_su_ac=-(-model_parameters['C_su']+ - (1-model_parameters['Y_su_ac']) * model_parameters['C_ac']+ - (1-model_parameters['Y_su_ac']) * model_parameters['C_bac'] - ) - f_IC_su_pro=-(-model_parameters['C_su']+ - (1-model_parameters['Y_su_pro']) * model_parameters['C_pro']+ - (1-model_parameters['Y_su_pro']) * model_parameters['C_bac'] - ) - - S[list(map(species.index, ["S_su","S_et","S_IN","S_IC","X_su"])), - reactions.index('Su_to_et')] = [-1, - (1-model_parameters['Y_su_et']), - -model_parameters['N_bac']* model_parameters['Y_su_et'], - f_IC_su_et, - model_parameters['Y_su_et']] - - S[list(map(species.index, ["S_su","S_lac","S_IN","S_IC","X_su"])), - reactions.index('Su_to_lac')] = [-1, - (1-model_parameters['Y_su_lac']), - -model_parameters['N_bac']* model_parameters['Y_su_lac'], - f_IC_su_lac, - model_parameters['Y_su_lac']] - - S[list(map(species.index, ["S_su","S_ac","S_IN","S_IC","X_su"])), - reactions.index('Su_to_ac')] = [-1, - (1-model_parameters['Y_su_ac']), - -model_parameters['N_bac']* model_parameters['Y_su_ac'], - f_IC_su_ac, - model_parameters['Y_su_ac']] - - S[list(map(species.index, ["S_su","S_pro","S_IN","S_IC","X_su"])), - reactions.index('Su_to_pro')] = [-1, - (1-model_parameters['Y_su_pro']), - -model_parameters['N_bac']* model_parameters['Y_su_pro'], - f_IC_su_pro, - model_parameters['Y_su_pro']] - - f_IC_aa_lac=-(-model_parameters['C_aa']+ - (1-model_parameters['Y_aa_lac']) * model_parameters['C_lac']+ - (1-model_parameters['Y_aa_lac']) * model_parameters['C_bac'] - ) - - f_IC_aa_ac=-(-model_parameters['C_aa']+ - (1-model_parameters['Y_aa_ac']) * model_parameters['C_ac']+ - (1-model_parameters['Y_aa_ac']) * model_parameters['C_bac'] - ) - - f_IC_aa_pro=-(-model_parameters['C_aa']+ - (1-model_parameters['Y_aa_pro']) * model_parameters['C_pro']+ - (1-model_parameters['Y_aa_pro']) * model_parameters['C_bac'] - ) - - - S[list(map(species.index, ["S_aa","S_lac","S_IN", "S_IC", "X_aa"])), - reactions.index('aas_to_lac')] = [-1, - (1-model_parameters['Y_aa_lac']), - model_parameters['N_aa']- model_parameters['Y_aa_lac'] * model_parameters['N_bac'], - f_IC_aa_lac, - model_parameters['Y_aa_lac']] - - S[list(map(species.index, ["S_aa","S_pro","S_IN", "S_IC", "X_aa"])), - reactions.index('aas_to_pro')] = [-1, - (1-model_parameters['Y_aa_pro']), - model_parameters['N_aa']- model_parameters['Y_aa_pro'] * model_parameters['N_bac'], - f_IC_aa_pro, - model_parameters['Y_aa_pro']] - - - S[list(map(species.index, ["S_aa","S_ac","S_IN", "S_IC", "X_aa"])), - reactions.index('aas_to_ac')] = [-1, - (1-model_parameters['Y_aa_ac']), - model_parameters['N_aa']- model_parameters['Y_aa_ac'] * model_parameters['N_bac'], - f_IC_aa_ac, - model_parameters['Y_aa_ac']] - - Y_fa=0 if nitrogen_limited else model_parameters['Y_fa'] - f_IC_fa = -(-model_parameters['C_fa'] + - (1-Y_fa)*model_parameters['f_pro_fa']*model_parameters['C_pro'] + - (1-Y_fa)*model_parameters['f_ac_fa']*model_parameters['C_ac'] + - (1-Y_fa)*model_parameters['C_bac']) - - S[list(map(species.index, ["S_fa", "S_pro", "S_ac", "S_IN", "S_IC", "X_fa"])), - reactions.index('Uptake of LCFA')] = [-1, - (1-Y_fa) * model_parameters['f_pro_fa'], - (1-Y_fa) * model_parameters['f_ac_fa'], - -Y_fa * model_parameters['N_bac'], - f_IC_fa, - Y_fa] -#HERE - Y_ac_et=0 if nitrogen_limited else model_parameters['Y_ac_et'] - Y_ac_lac=0 if nitrogen_limited else model_parameters['Y_ac_lac'] - f_IC_ac_et = -((-1-(1-Y_ac_et) * model_parameters['f_et_ac'])*model_parameters['C_ac'] + - (1-Y_ac_et)* model_parameters['f_et_ac']*model_parameters['C_et'] + - (1-Y_ac_et) * model_parameters['f_bu_ac']*model_parameters['C_bu'] + - (1-Y_ac_et)* model_parameters['C_bac']) - - f_IC_ac_lac = -((-1-(1-Y_ac_lac) * model_parameters['f_lac_ac'])*model_parameters['C_ac'] + - (1-Y_ac_lac)* model_parameters['f_lac_ac']* model_parameters['C_lac'] + - (1-Y_ac_lac)* model_parameters['f_bu_ac']* model_parameters['C_bu'] + - (1-Y_ac_lac)* model_parameters['C_bac']) - - S[list(map(species.index, ["S_ac", "S_et", "S_bu", "S_IN", "S_IC", "S_h2", "X_ac_et"])), - reactions.index('Uptake of acetate_et')] = [-1-(1-Y_ac_et) * model_parameters['f_et_ac'], - (1-Y_ac_et) * model_parameters['f_et_ac'], - (1-model_parameters['Y_ac']) * model_parameters['f_bu_ac'], - -Y_ac_et * model_parameters['N_bac'], - f_IC_ac_et, - (1-Y_ac_et) * (1-model_parameters['f_bu_ac']), - Y_ac_et] - - S[list(map(species.index, ["S_ac", "S_lac", "S_bu", "S_IN", "S_IC", "S_h2", "X_ac_lac"])), - reactions.index('Uptake of acetate_lac')] = [-1-(1-Y_ac_lac) * model_parameters['f_lac_ac'], - (1-Y_ac_lac) * model_parameters['f_lac_ac'], - (1-Y_ac_lac) * model_parameters['f_bu_ac'], - -Y_ac_lac * model_parameters['N_bac'], - f_IC_ac_lac, - (1-Y_ac_lac) * (1-model_parameters['f_bu_ac']), - Y_ac_lac] - - Y_pro_et=0 if nitrogen_limited else model_parameters['Y_pro_et'] - Y_pro_lac=0 if nitrogen_limited else model_parameters['Y_pro_lac'] - - f_IC_pro_et = -((-1-(1-Y_pro_et) * model_parameters['f_et_pro'])*model_parameters['C_pro'] + - (1-Y_pro_et)*model_parameters['f_et_pro']*model_parameters['C_et'] + - (1-Y_pro_et)*model_parameters['f_va_pro']*model_parameters['C_va'] + - (1-Y_pro_et)*model_parameters['C_bac']) - - f_IC_pro_lac = -((-1-(1-Y_pro_lac) * model_parameters['f_lac_pro'])*model_parameters['C_pro'] + - (1-Y_pro_lac)*model_parameters['f_lac_pro']*model_parameters['C_lac'] + - (1-Y_pro_lac)*model_parameters['f_va_pro']*model_parameters['C_va'] + - (1-Y_pro_lac)*model_parameters['C_bac']) - - S[list(map(species.index, ["S_pro", "S_et", "S_va","S_IC","S_IN","S_h2", "X_chain_et"])), - reactions.index('Uptake of propionate_et')] = [-1-(1-model_parameters['Y_chain_et_pro']) * model_parameters['f_et_pro'], - (1-model_parameters['Y_chain_et_pro']) * model_parameters['f_et_pro'], - (1-model_parameters['Y_chain_et_pro']) * model_parameters['f_va_pro'], - f_IC_pro_et, - -model_parameters['Y_chain_et_pro'] * model_parameters['N_bac'], - (1-model_parameters['Y_chain_et_pro']) * (1-model_parameters['f_va_pro']), - model_parameters['Y_chain_et_pro']] - - S[list(map(species.index, ["S_pro", "S_lac", "S_va", "S_IC", "S_IN", "S_h2", "X_chain_lac"])), - reactions.index('Uptake of propionate_lac')] = [-1-(1-model_parameters['Y_chain_lac_pro']) * model_parameters['f_lac_pro'], - (1-model_parameters['Y_chain_lac_pro']) * model_parameters['f_lac_pro'], - (1-model_parameters['Y_chain_lac_pro']) * model_parameters['f_va_pro'], - f_IC_pro_lac, - -model_parameters['Y_chain_lac_pro'] * model_parameters['N_bac'], - (1-model_parameters['Y_chain_lac_pro']) * (1-model_parameters['f_va_pro']), - model_parameters['Y_chain_lac_pro']] - - Y_bu_et=0 if nitrogen_limited else model_parameters['Y_bu_et'] - Y_pro_lac=0 if nitrogen_limited else model_parameters['Y_pro_lac'] - - f_IC_bu_et = -((-1-(1-Y_bu_et) * model_parameters['f_et_bu'])*model_parameters['C_bu'] + - (1-Y_bu_et)*model_parameters['f_et_bu']*model_parameters['C_et'] + - (1-Y_bu_et)*model_parameters['f_cap_bu']*model_parameters['C_cap'] + - (1-Y_bu_et)*model_parameters['C_bac']) - - f_IC_bu_lac = -((-1-(1-Y_pro_lac) * model_parameters['f_lac_bu'])*model_parameters['C_bu'] + - (1-Y_pro_lac)*model_parameters['f_lac_bu']*model_parameters['C_lac'] + - (1-Y_pro_lac)*model_parameters['f_cap_bu']*model_parameters['C_cap'] + - (1-Y_pro_lac)*model_parameters['C_bac']) - - S[list(map(species.index, ["S_bu", "S_et", "S_cap", "S_IC", "S_IN", "S_h2", "X_chain_et"])), - reactions.index('Uptake of butyrate_et')] = [-1-(1-Y_bu_et) * model_parameters['f_et_bu'], - (1-Y_bu_et) * model_parameters['f_et_bu'], - (1-Y_bu_et) * model_parameters['f_cap_bu'], - f_IC_bu_et, - -Y_bu_et * model_parameters['N_bac'], - (1-Y_bu_et)*(1-model_parameters['f_cap_bu']), - Y_bu_et] - - S[list(map(species.index, ["S_bu", "S_lac", "S_cap", "S_IC", "S_IN", "S_h2", "X_chain_lac"])), - reactions.index('Uptake of butyrate_lac')] = [-1-(1-Y_pro_lac) * model_parameters['f_lac_bu'], - (1-Y_pro_lac) * model_parameters['f_lac_bu'], - (1-Y_pro_lac) * model_parameters['f_cap_bu'], - f_IC_bu_lac, - -Y_pro_lac * model_parameters['N_bac'], - (1-Y_pro_lac)*(1-model_parameters['f_cap_bu']), - Y_pro_lac] - - Y_va=0 if nitrogen_limited else model_parameters['Y_va'] - Y_cap=0 if nitrogen_limited else model_parameters['Y_cap'] - S[list(map(species.index, ["S_va", "S_pro", "X_VFA_deg"])), - reactions.index('Uptake of valerate')] = [-1, - (1-Y_va), - Y_va] - - S[list(map(species.index, ["S_cap", "S_ac", "X_VFA_deg"])), - reactions.index('Uptake of caproate')] = [-1, - (1 - Y_cap), - Y_cap] - - S[list(map(species.index, ["S_bu", "S_ac", "X_VFA_deg"])), - reactions.index('Uptake of butyrate')] = [-1, - (1 - model_parameters['Y_bu']), - model_parameters['Y_bu']] - - Y_Me_ac=0 if nitrogen_limited else model_parameters["Y_Me_ac"] - f_IC_Me_ach2 =0 - f_IC_Me_ach2 = -((1 - model_parameters['Y_h2_ac'])*model_parameters['f_ac_h2']*model_parameters['C_ac']+ - (1 -Y_Me_ac)*model_parameters['C_ch4']+ - Y_Me_ac*model_parameters['C_bac']) - - - - S[list(map(species.index, ["S_h2", "S_ac", "S_ch4", "X_Me_ac", 'S_IC'])), - reactions.index('Methanogenessis from acetate and h2')] = [-1-(1 - model_parameters['Y_h2_ac'])*model_parameters['f_ac_h2'], - (1 - model_parameters['Y_h2_ac'])*model_parameters['f_ac_h2'], - (1 -model_parameters['Y_h2_ac']), - model_parameters['Y_h2_ac'], - f_IC_Me_ach2] - - f_IC_Me_CO2h2 = -(model_parameters['Y_h2_CO2']*model_parameters['C_ch4'] + - model_parameters['Y_h2_CO2']*model_parameters['C_bac']) - - S[list(map(species.index, ["S_h2", "S_ch4", "X_Me_CO2", 'S_IC'])), - reactions.index('Methanogenessis from CO2 and h2')] = [-1, - (1 - model_parameters['Y_h2_CO2']), - (model_parameters['Y_h2_CO2']), - f_IC_Me_CO2h2] - - Y_ac_et_ox=0 if nitrogen_limited else model_parameters["Y_ac_et_ox"] - - f_IC_et_ox=-(-model_parameters['C_et'] + - (1-Y_ac_et_ox)*model_parameters['C_bac'] - +Y_ac_et_ox*model_parameters['C_ac']) - - S[list(map(species.index, ["S_et", "X_et","S_ac","S_IC"])), - reactions.index('Uptake of ethanol')] = [-1,Y_ac_et_ox,(1-Y_ac_et_ox),f_IC_et_ox] - - - Y_pro_lac_ox=0 if nitrogen_limited else model_parameters['Y_pro_lac_ox'] - f_IC_lac_ox=-(-model_parameters['C_lac'] + - (1-Y_pro_lac_ox)*model_parameters['C_bac'] - +Y_pro_lac_ox*model_parameters['C_pro']) - - S[list(map(species.index, ["S_lac", "X_lac","S_pro","S_IC"])), - reactions.index('Uptake of lactate')] = [-1, Y_pro_lac_ox,(1-Y_pro_lac_ox),f_IC_lac_ox] - - S[list(map(species.index, ["X_su", "TSS"])), - reactions.index('Decay of Xsu')] = [-1, 1] - - S[list(map(species.index, ["X_aa", "TSS"])), - reactions.index('Decay of Xaa')] = [-1, 1] - - S[list(map(species.index, ["X_fa", "TSS"])), - reactions.index('Decay of Xfa')] = [-1, 1] - - S[list(map(species.index, ["X_ac_et", "TSS"])), - reactions.index('Decay of X_ac_et')] = [-1, 1] - - S[list(map(species.index, ["X_ac_lac", "TSS"])), - reactions.index('Decay of X_ac_lac')] = [-1, 1] - - S[list(map(species.index, ["X_chain_et", "TSS"])), - reactions.index('Decay of X_chain_et')] = [-1, 1] - - S[list(map(species.index, ["X_chain_lac", "TSS"])), - reactions.index('Decay of X_chain_lac')] = [-1, 1] - - S[list(map(species.index, ["X_VFA_deg", "TSS"])), - reactions.index('Decay of X_VFA_deg')] = [-1, 1] - - S[list(map(species.index, ["X_Me_ac", "TSS"])), - reactions.index('Decay of X_Me_ac')] = [-1, 1] - - S[list(map(species.index, ["X_Me_CO2", "TSS"])), - reactions.index('Decay of X_Me_CO2')] = [-1, 1] - - S[list(map(species.index, ["S_va_ion","S_va"])), - reactions.index('Acid Base Equilibrium (Va)')] = [-1,1] - - S[list(map(species.index, ["S_bu_ion","S_bu"])), - reactions.index('Acid Base Equilibrium (Bu)')] = [-1,1] - - S[list(map(species.index, ["S_pro_ion","S_pro"])), - reactions.index('Acid Base Equilibrium (Pro)')] = [-1,1] - - S[list(map(species.index, ["S_cap_ion","S_cap"])), - reactions.index('Acid Base Equilibrium (Cap)')] = [-1,1] - - S[list(map(species.index, ["S_lac_ion","S_lac"])), - reactions.index('Acid Base Equilibrium (Lac)')] = [-1,1] - - S[list(map(species.index, ["S_ac_ion","S_ac"])), - reactions.index('Acid Base Equilibrium (Ac)')] = [-1,1] - - S[list(map(species.index, ["S_co2", "S_hco3_ion"])), # I don't think this is right، should look at the reaction in ADM1 - reactions.index('Acid Base Equilibrium (CO2)')] = [-1, 1] - - S[list(map(species.index, ["S_nh3", "S_nh4_ion"])), - reactions.index('Acid Base Equilibrium (In)')] = [-1, 1] # I don't think this is right، should look at the reaction in ADM1 - - S[list(map(species.index, ["S_h2", "S_gas_h2"])), - reactions.index('Gas Transfer H2')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] - S[list(map(species.index, ["S_ch4", "S_gas_ch4"])), - reactions.index('Gas Transfer CH4')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] - S[list(map(species.index, ["S_co2", "S_gas_co2"])), - reactions.index('Gas Transfer CO2')] = [-base_parameters['V_liq']/base_parameters['V_gas'], 1] - return S - - -build_e_adm_stoichiometric_matrix = build_e_adm_stoiciometric_matrix - - -def e_adm_2_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: +def e_adm_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: """ - This function is used to build the ODEs of the e-adm2 model. + This function is used to build the ODEs of the e-ADM model. Args: t (float):a matrix of zeros to be filled @@ -1612,7 +1290,10 @@ def e_adm_2_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: I_pH_h2 = (model.model_parameters['K_pH_h2']**model.model_parameters['n_h2'])/( c[model.species.index('S_H_ion')] ** model.model_parameters['n_h2'] + model.model_parameters['K_pH_h2']**model.model_parameters['n_h2']) - I_IN_lim = 1 / (1+(c[model.species.index('S_IN')] / (model.model_parameters['K_S_IN']+10**-9))) + I_IN_lim = _monod_limitation( + c[model.species.index('S_IN')], + model.model_parameters['K_S_IN'], + ) I_h2_fa = 1 / (1+(c[model.species.index('S_h2')] /(model.model_parameters['K_I_h2_fa']+10**-9))) @@ -1750,7 +1431,7 @@ def e_adm_2_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: model.model_parameters['K_a_co2'] * c[model.species.index('S_IC')]) v[model.reactions.index('Acid Base Equilibrium (In)')] = model.model_parameters['k_A_B_IN'] * \ (c[model.species.index('S_nh3')] * (model.model_parameters['K_a_IN'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_IN'] * c[model.species.index('S_IC')]) + model.model_parameters['K_a_IN'] * c[model.species.index('S_IN')]) p_gas_h2 = c[model.species.index('S_gas_h2')] * model.base_parameters["R"] * model.base_parameters["T_op"] / 16 @@ -1807,383 +1488,3 @@ def e_adm_2_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: model.info["Fluxes"]=v return dCdt[:, 0] - -def e_adm_ode_sys(t: float, c: np.ndarray, model: Model)-> np.ndarray: - """ - This function is used to build the ODEs of the e_adm model. - - Args: - t (float):a matrix of zeros to be filled - c (np.ndarray): an array of concentrations to be filled - Model (Model): The model to calculate ODE with - - Returns: - np.ndarray: The output is dCdt, the change of concentration with respect to time. - """ - c[c<0]=0 - c[model.species.index('S_H_ion')]=0.000001 - v = np.zeros((len(model.reactions), 1)) - if model.switch == "DAE": - - c[model.species.index('S_va_ion')]=model.model_parameters['K_a_va']/(model.model_parameters['K_a_va']+c[model.species.index('S_H_ion')])*c[model.species.index('S_va')] - - c[model.species.index('S_bu_ion')]=model.model_parameters['K_a_bu']/(model.model_parameters['K_a_bu']+c[model.species.index('S_H_ion')])*c[model.species.index('S_bu')] - - c[model.species.index('S_pro_ion')]=model.model_parameters['K_a_pro']/(model.model_parameters['K_a_pro']+c[model.species.index('S_H_ion')])*c[model.species.index('S_pro')] - - c[model.species.index('S_cap_ion')]=model.model_parameters['K_a_cap']/(model.model_parameters['K_a_cap']+c[model.species.index('S_H_ion')])*c[model.species.index('S_cap')] - - c[model.species.index('S_ac_ion')]=model.model_parameters['K_a_ac']/(model.model_parameters['K_a_ac']+c[model.species.index('S_H_ion')])*c[model.species.index('S_ac')] - - c[model.species.index('S_lac_ion')]=model.model_parameters['K_a_lac']/(model.model_parameters['K_a_lac']+c[model.species.index('S_H_ion')])*c[model.species.index('S_lac')] - else: - v[model.reactions.index('Acid Base Equilibrium (Va)')] = model.model_parameters['k_A_B_va'] * \ - (c[model.species.index('S_va_ion')] * (model.model_parameters['K_a_va'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_va'] * c[model.species.index('S_va')]) - - v[model.reactions.index('Acid Base Equilibrium (Bu)')] = model.model_parameters['k_A_B_bu'] * \ - (c[model.species.index('S_bu_ion')] * (model.model_parameters['K_a_bu'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_bu'] * c[model.species.index('S_bu')]) - - v[model.reactions.index('Acid Base Equilibrium (Pro)')] = model.model_parameters['k_A_B_pro'] * \ - (c[model.species.index('S_pro_ion')] * (model.model_parameters['K_a_pro'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_pro'] * c[model.species.index('S_pro')]) - - v[model.reactions.index('Acid Base Equilibrium (Cap)')] = model.model_parameters['k_A_B_cap'] * \ - (c[model.species.index('S_cap_ion')] * (model.model_parameters['K_a_cap'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_cap'] * c[model.species.index('S_cap')]) - - v[model.reactions.index('Acid Base Equilibrium (Lac)')] = model.model_parameters['k_A_B_lac'] * \ - (c[model.species.index('S_lac_ion')] * (model.model_parameters['K_a_lac'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_lac'] * c[model.species.index('S_lac')]) - - v[model.reactions.index('Acid Base Equilibrium (Ac)')] = model.model_parameters['k_A_B_ac'] * \ - (c[model.species.index('S_ac_ion')] * (model.model_parameters['K_a_ac'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_ac'] * c[model.species.index('S_ac')]) - - v[model.reactions.index('Acid Base Equilibrium (CO2)')] = model.model_parameters['k_A_B_co2'] * \ - (c[model.species.index('S_hco3_ion')] * (model.model_parameters['K_a_co2'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_co2'] * c[model.species.index('S_IC')]) - - v[model.reactions.index('Acid Base Equilibrium (In)')] = model.model_parameters['k_A_B_IN'] * \ - (c[model.species.index('S_nh3')] * (model.model_parameters['K_a_IN'] + c[model.species.index('S_H_ion')]) - - model.model_parameters['K_a_IN'] * c[model.species.index('S_IC')]) - - c[model.species.index('S_nh4_ion')] = c[model.species.index( - 'S_IN')] - c[model.species.index('S_nh3')] - c[model.species.index('S_co2')] = c[model.species.index( - 'S_IC')] - c[model.species.index('S_hco3_ion')] - I_pH_aa = (model.model_parameters["K_pH_aa"] ** model.model_parameters['nn_aa'])/(np.power( - c[model.species.index('S_H_ion')], model.model_parameters['nn_aa']) + np.power(model.model_parameters["K_pH_aa"], model.model_parameters['nn_aa'])) - - I_pH_ac = (model.model_parameters['K_pH_ac'] ** model.model_parameters["n_ac"])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_ac'] + model.model_parameters['K_pH_ac'] ** model.model_parameters['n_ac']) - - I_pH_pro = (model.model_parameters['K_pH_pro'] ** model.model_parameters["n_pro"])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_pro'] + model.model_parameters['K_pH_pro'] ** model.model_parameters['n_pro']) - - I_pH_bu = (model.model_parameters['K_pH_bu'] ** model.model_parameters["n_bu"])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_bu'] + model.model_parameters['K_pH_bu'] ** model.model_parameters['n_bu']) - - I_pH_va = (model.model_parameters['K_pH_va'] ** model.model_parameters["n_va"])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_va'] + model.model_parameters['K_pH_va'] ** model.model_parameters['n_va']) - - I_pH_cap = (model.model_parameters['K_pH_cap'] ** model.model_parameters["n_cap"])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_cap'] + model.model_parameters['K_pH_cap'] ** model.model_parameters['n_cap']) - - I_pH_h2 = (model.model_parameters['K_pH_h2']**model.model_parameters['n_h2'])/( - c[model.species.index('S_H_ion')] ** model.model_parameters['n_h2'] + model.model_parameters['K_pH_h2']**model.model_parameters['n_h2']) - - I_IN_lim = 1 / \ - (1+(model.model_parameters['K_S_IN'] / (c[model.species.index('S_IN')]+10**-9))) - - I_h2_fa = 1 / (1+(c[model.species.index('S_h2')] / - (model.model_parameters['K_I_h2_fa']+10**-9))) - - I_h2_c4 = 1 / (1+(c[model.species.index('S_h2')] / - (model.model_parameters['K_I_h2_c4']+10**-9))) - - I_h2_pro = (1/(1+(c[model.species.index('S_h2')] / - (model.model_parameters['K_I_h2_pro']+10**-9)))) - - I_nh3 = 1/(1+(c[model.species.index('S_nh3')] / - (model.model_parameters['K_I_nh3']+10**-9))) - - I_h2_oxidation=(1/(1+(c[model.species.index('S_h2')] / - (model.model_parameters['K_I_h2_ox']+10**-9)))) - - # I5 = (I_pH_aa * I_IN_lim) - # I6 = I5.copy() - # I7 = (I_pH_aa * I_IN_lim * I_h2_fa) - # I8 = (I_pH_aa * I_IN_lim * I_h2_c4) - # I9 = I8.copy() - # I10 = (I_pH_pro * I_IN_lim * I_h2_pro) - # I11 = (I_pH_ac * I_IN_lim * I_nh3) - # I12 = (I_pH_h2 * I_IN_lim) - # I13 = (I_pH_cap * I_IN_lim * I_h2_c4) - # I14 = (I_pH_bu * I_IN_lim * I_h2_c4) - # I15 = (I_pH_va * I_IN_lim * I_h2_c4) - # I16 = I_IN_lim * I_nh3*I_pH_aa*I_h2_oxidation - I5 = 1 - I6 = 1 - I7 = 1 - I8 = 1 - I9 = 1 #one - I10 = 1 - I11 = 1 - I12 = 1 - I13 = 1 - I14 = 1 - I15 = 1 - I16 = 1 - - - - v[model.reactions.index( - 'TSS_Disintegration')] = model.model_parameters["k_dis_TSS"]*c[model.species.index('TSS')] - - v[model.reactions.index( - 'TDS_Disintegration')] = model.model_parameters["k_dis_TDS"]*c[model.species.index('TDS')] - - v[model.reactions.index('Hydrolysis carbohydrates') - ] = model.model_parameters['k_hyd_ch']*c[model.species.index('X_ch')] - - v[model.reactions.index('Hydrolysis proteins') - ] = model.model_parameters['k_hyd_pr']*c[model.species.index('X_pr')] - - v[model.reactions.index('Hydrolysis lipids') - ] = model.model_parameters['k_hyd_li']*c[model.species.index('X_li')] - - v[model.reactions.index('Su_to_et')] = model.model_parameters['k_m_su_et']*c[model.species.index('S_su')] / \ - (model.model_parameters['K_S_su_et']+c[model.species.index('S_su')])*c[model.species.index('X_su')]*I5 - - v[model.reactions.index('Su_to_lac')] = model.model_parameters['k_m_su_lac']*c[model.species.index('S_su')] / \ - (model.model_parameters['K_S_su_lac']+c[model.species.index('S_su')] - )*c[model.species.index('X_su')]/(c[model.species.index('X_su')]+model.model_parameters['K_S_X_su_lac'])*I5 - - v[model.reactions.index('Su_to_ac')] = model.model_parameters['k_m_su_ac']*c[model.species.index('S_su')] / \ - (model.model_parameters['K_S_su_ac']+c[model.species.index('S_su')] - )*c[model.species.index('X_su')]*I5 - - v[model.reactions.index('Su_to_pro')] = model.model_parameters['k_m_su_pro']*c[model.species.index('S_su')] / \ - (model.model_parameters['K_S_su_pro']+c[model.species.index('S_su')] - )*c[model.species.index('X_su')]/(c[model.species.index('X_su')]+model.model_parameters['K_S_X_su_pro'])*I5 - - - v[model.reactions.index('aas_to_lac')] = model.model_parameters['k_m_aa_lac']*c[model.species.index('S_aa')] / \ - (model.model_parameters['K_S_aa_lac']+c[model.species.index('S_aa')] - )*c[model.species.index('X_aa')]/(c[model.species.index('X_aa')]+model.model_parameters['K_S_X_aa_lac'])*I6 - - v[model.reactions.index('aas_to_pro')] = model.model_parameters['k_m_aa_pro']*c[model.species.index('S_aa')] / \ - (model.model_parameters['K_S_aa_pro']+c[model.species.index('S_aa')] - )*c[model.species.index('X_aa')]/(c[model.species.index('X_aa')]+model.model_parameters['K_S_X_aa_pro'])*I6 - - v[model.reactions.index('aas_to_ac')] = model.model_parameters['k_m_aa_ac']*c[model.species.index('S_aa')] / \ - (model.model_parameters['K_S_aa_ac']+c[model.species.index('S_aa')] - )*c[model.species.index('X_aa')]/(c[model.species.index('X_aa')]+model.model_parameters['K_S_X_aa_ac'])*I6 - - v[model.reactions.index('Uptake of LCFA')] = model.model_parameters['k_m_fa']*c[model.species.index('S_fa')] / \ - (model.model_parameters['K_S_fa'] + - c[model.species.index('S_fa')])*c[model.species.index('X_fa')]/(c[model.species.index('X_fa')]+model.model_parameters['K_S_X_fa'])*I7 - - v[model.reactions.index('Uptake of acetate_et')] = model.model_parameters['k_m_ac_et']*c[model.species.index('S_ac')]*c[model.species.index('S_et')] / \ - (model.model_parameters['K_S_ac']*c[model.species.index('S_ac')]+model.model_parameters['K_S_ac_et']*c[model.species.index('S_et')]+c[model.species.index('S_ac')]*c[model.species.index('S_et')]+10**-9 - )*c[model.species.index('X_ac_et')]/(c[model.species.index('X_ac_et')]+model.model_parameters['K_S_X_ac_et'])*I11 - - v[model.reactions.index('Uptake of acetate_lac')] = model.model_parameters['k_m_ac_lac']*c[model.species.index('S_ac')]*c[model.species.index('S_lac')] / \ - (model.model_parameters['K_S_ac']*c[model.species.index('S_ac')]+model.model_parameters['K_S_ac_lac']*c[model.species.index('S_lac')]+c[model.species.index('S_ac')]*c[model.species.index('S_lac')]+10**-9 - )*c[model.species.index('X_ac_lac')]/(c[model.species.index('X_ac_lac')]+model.model_parameters['K_S_X_ac_lac'])*I11 - - v[model.reactions.index('Uptake of propionate_et')] = model.model_parameters['k_m_pro_et']*c[model.species.index('S_pro')]*c[model.species.index('S_et')] / \ - (model.model_parameters['K_S_pro']*c[model.species.index('S_pro')]+model.model_parameters['K_S_pro_et']*c[model.species.index('S_et')]+c[model.species.index('S_pro')]*c[model.species.index('S_et')]+10**-9 - )*c[model.species.index('X_chain_et')]/(c[model.species.index('X_chain_et')]+model.model_parameters['K_S_X_chain_et'])*I10 - - v[model.reactions.index('Uptake of propionate_lac')] = model.model_parameters['k_m_pro_lac']*c[model.species.index('S_pro')]*c[model.species.index('S_lac')] / \ - (model.model_parameters['K_S_pro']*c[model.species.index('S_pro')]+model.model_parameters['K_S_pro_lac']*c[model.species.index('S_lac')]+c[model.species.index('S_pro')]*c[model.species.index('S_lac')]+10**-9 - )*c[model.species.index('X_chain_lac')]/(c[model.species.index('X_chain_lac')]+model.model_parameters['K_S_X_chain_lac'])*I10 - - v[model.reactions.index('Uptake of butyrate_et')] = model.model_parameters['k_m_bu_et']*c[model.species.index('S_bu')]*c[model.species.index('S_et')] / \ - (model.model_parameters['K_S_bu']*c[model.species.index('S_bu')]+model.model_parameters['K_S_bu_et']*c[model.species.index('S_et')]+c[model.species.index('S_bu')]*c[model.species.index('S_et')]+10**-9 - )*c[model.species.index('X_chain_et')]*I14 - - v[model.reactions.index('Uptake of butyrate_lac')] = model.model_parameters['k_m_bu_lac']*c[model.species.index('S_bu')]*c[model.species.index('S_lac')] / \ - (model.model_parameters['K_S_bu']*c[model.species.index('S_bu')]+model.model_parameters['K_S_bu_lac']*c[model.species.index('S_lac')]+c[model.species.index('S_bu')]*c[model.species.index('S_lac')]+10**-9 - )*c[model.species.index('X_chain_lac')]/(c[model.species.index('X_chain_lac')]+model.model_parameters['K_S_X_chain_lac'])*I14 - - v[model.reactions.index('Uptake of butyrate')] = model.model_parameters['k_m_bu']*c[model.species.index('S_bu')]/ \ - (model.model_parameters['K_S_bu']+c[model.species.index('S_bu')])*c[model.species.index('X_VFA_deg')]/(c[model.species.index('X_VFA_deg')]+model.model_parameters['K_S_X_VFA_deg'])*I14 - - v[model.reactions.index('Uptake of valerate')] = model.model_parameters['k_m_va']*c[model.species.index('S_va')] / \ - (model.model_parameters['K_S_va']+c[model.species.index('S_va')])*c[model.species.index('X_VFA_deg')]/(c[model.species.index('X_VFA_deg')]+model.model_parameters['K_S_X_VFA_deg'])*I15 - - v[model.reactions.index('Uptake of caproate')] = model.model_parameters['k_m_cap']*c[model.species.index('S_cap')] / \ - (model.model_parameters['K_S_cap']+c[model.species.index('S_cap')])*c[model.species.index('X_VFA_deg')]/(c[model.species.index('X_VFA_deg')]+model.model_parameters['K_S_X_VFA_deg'])*I13 - - v[model.reactions.index('Methanogenessis from acetate and h2')] = model.model_parameters['k_m_h2_Me_ac']*c[model.species.index('S_h2')]*c[model.species.index('S_ac')] / \ - (model.model_parameters['K_S_h2_Me_ac']*c[model.species.index('S_h2')]+model.model_parameters['K_S_ac_Me']*c[model.species.index( - 'S_ac')]+c[model.species.index('S_ac')]*c[model.species.index('S_h2')]+10**-9)*c[model.species.index('X_Me_ac')]*I12 - - v[model.reactions.index('Methanogenessis from CO2 and h2')] = model.model_parameters['k_m_h2_Me_CO2']*c[model.species.index('S_h2')]*c[model.species.index('S_co2')] / \ - (model.model_parameters['K_S_h2_Me_CO2']*c[model.species.index('S_h2')]+model.model_parameters['K_S_CO2_Me']*c[model.species.index( - 'S_co2')]+c[model.species.index('S_co2')]*c[model.species.index('S_h2')]+10**-9)*c[model.species.index('X_Me_CO2')]*I12 - - - v[model.reactions.index('Uptake of ethanol')] = model.model_parameters['k_m_et']*c[model.species.index('S_et')] / \ - (model.model_parameters['K_S_et']+c[model.species.index('S_et')] - )*c[model.species.index("X_et")]/(c[model.species.index("X_et")]+model.model_parameters['K_S_X_et'])*I16 - - v[model.reactions.index('Uptake of lactate')] = model.model_parameters['k_m_lac']*c[model.species.index('S_lac')] / \ - (model.model_parameters['K_S_lac']+c[model.species.index('S_lac')] - )*c[model.species.index('X_lac')]/(c[model.species.index('X_lac')]+model.model_parameters['K_S_X_lac'])*I16 - - v[model.reactions.index( - 'Decay of Xsu')] = model.model_parameters['k_dec_X_su']*c[model.species.index('X_su')] - - v[model.reactions.index( - 'Decay of Xaa')] = model.model_parameters['k_dec_X_aa']*c[model.species.index('X_aa')] - - v[model.reactions.index( - 'Decay of Xfa')] = model.model_parameters['k_dec_X_fa']*c[model.species.index('X_fa')] - - v[model.reactions.index( - 'Decay of X_ac_et')] = model.model_parameters['k_dec_X_ac']*c[model.species.index('X_ac_et')] - - v[model.reactions.index( - 'Decay of X_ac_lac')] = model.model_parameters['k_dec_X_ac']*c[model.species.index('X_ac_lac')] - - v[model.reactions.index( - 'Decay of X_chain_et')] = model.model_parameters['k_dec_X_chain_et']*c[model.species.index('X_chain_et')] - - v[model.reactions.index('Decay of X_chain_lac') - ] = model.model_parameters['k_dec_X_chain_lac']*c[model.species.index('X_chain_lac')] - - v[model.reactions.index( - 'Decay of X_VFA_deg')] = model.model_parameters['k_dec_X_VFA_deg']*c[model.species.index('X_VFA_deg')] - - v[model.reactions.index( - 'Decay of X_Me_ac')] = model.model_parameters['k_dec_X_Me_ac']*c[model.species.index('X_Me_ac')] - - v[model.reactions.index( - 'Decay of X_Me_CO2')] = model.model_parameters['k_dec_X_Me_CO2']*c[model.species.index('X_Me_CO2')] - - v[model.reactions.index( - 'Decay of Xet')] = model.model_parameters['k_dec_X_et']*c[model.species.index('X_et')] - - v[model.reactions.index( - 'Decay of Xlac')] = model.model_parameters['k_dec_X_lac']*c[model.species.index('X_lac')] - - - - p_gas_h2 = c[model.species.index('S_gas_h2')] * model.base_parameters["R"] * \ - model.base_parameters["T_op"] / 16 - p_gas_ch4 = c[model.species.index('S_gas_ch4')] * model.base_parameters["R"] * \ - model.base_parameters["T_op"] / 64 - p_gas_co2 = c[model.species.index('S_gas_co2')] * model.base_parameters["R"] * \ - model.base_parameters["T_op"] - p_gas_h2o = 0.0313 * \ - np.exp(5290 * - (1 / model.base_parameters["T_base"] - 1 / model.base_parameters["T_op"])) - P_gas = p_gas_h2 + p_gas_ch4 + p_gas_co2 + p_gas_h2o - q_gas = max( - 0, (model.model_parameters['k_p'] * (P_gas - model.base_parameters['P_atm']))) - v[model.reactions.index('Gas Transfer H2')] = model.model_parameters['k_L_a'] * \ - (c[model.species.index('S_h2')] - 16 * - model.model_parameters['K_H_h2'] * p_gas_h2) - - v[model.reactions.index('Gas Transfer CH4')] = max(0,model.model_parameters['k_L_a'] * \ - (c[model.species.index('S_ch4')] - 64 * - model.model_parameters['K_H_ch4'] * p_gas_ch4)) - v[model.reactions.index('Gas Transfer CO2')] = max(0,model.model_parameters['k_L_a'] * \ - (c[model.species.index('S_co2')] - - model.model_parameters['K_H_co2'] * p_gas_co2)) - - dCdt = np.matmul(model.s, v) - - phi = c[model.species.index('S_cation')]+c[model.species.index('S_nh4_ion')]-c[model.species.index('S_hco3_ion')]-(c[model.species.index('S_lac_ion')] / 88) - (c[model.species.index('S_ac_ion')] / 64) - (c[model.species.index('S_pro_ion')] / - 112) - (c[model.species.index('S_bu_ion')] / 160)-(c[model.species.index('S_cap_ion')] / 230) - (c[model.species.index('S_va_ion')] / 208) - c[model.species.index('S_anion')] - if 'S_H_ion' in model.control_state.keys(): - c[model.species.index('S_H_ion')]=model.control_state['S_H_ion'] - else: - c[model.species.index('S_H_ion')] = (-1 * phi / 2) + \ - (0.5 * np.sqrt(phi**2 + 4 * model.model_parameters['K_w'])) - - dCdt[0: model.species.__len__()-3] = dCdt[0: model.species.__len__()-3]+model.base_parameters['q_in'] / \ - model.base_parameters["V_liq"] * \ - (model.inlet_conditions[0: model.species.__len__( - )-3]-c[0: model.species.__len__()-3].reshape(-1, 1)) - - dCdt[model.species.__len__()-3:] = dCdt[model.species.__len__()-3:]+q_gas/model.base_parameters["V_gas"] * \ - (model.inlet_conditions[model.species.__len__() - - 3:]-c[model.species.__len__()-3:].reshape(-1, 1)) - - dCdt[[model.species.index('S_H_ion'), model.species.index( - 'S_co2'), model.species.index('S_nh4_ion')], 0] = 0 - - if c[model.species.index('S_IN')]<0.01: - model.nitrogen_limited=True - else: - model.nitrogen_limited=False - - if model.switch == "DAE": - # dCdt[model.species.index('S_h2')] = 0 - - dCdt[model.species.index('S_va_ion'):model.species.index('S_co2')] = 0 - - dCdt[model.species.index('S_nh3')] = 0 - - if model.control_state.keys(): - for state in model.control_state.keys(): - c[model.species.index(state)]=model.control_state[state] - dCdt[model.species.index(state)]=0 - model.info["Fluxes"]=v - return dCdt[:, 0] - - - - -if __name__ == "__main__": - - local_params=dict( - model_parameters="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Model_Parameters.json", - base_parameters="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Base_Parameters.json", - initial_conditions="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Initial_Conditions.json", - inlet_conditions="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Inlet_Conditions.json", - species="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Species.json", - reactions="/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/16s_study/Database/ADM_Parameters/Modified_ADM_Reactions.json", - ) - params=utils.load_multiple_json_files(local_params) - # params_adm1=utils.load_multiple_json_files(configs.ADM1_LOCAL) - # pd.DataFrame(params.reactions) - # model=Model(model_parameters=params.model_parameters, - # base_parameters=params.base_parameters, - # initial_conditions=params.initial_conditions, - # build_stoichiometric_matrix=build_adm1_stoichiometric_matrix, - # ode_system=adm1_ode_sys, - # inlet_conditions=params.inlet_conditions, - # species=params.species, - # reactions=params.reactions, - # feed=Feed) - # model.solve_model(t_eval=np.linspace(0, 30, 1000)) - params.initial_conditions['S_cation']=0.1 - mod_adm1 = Model(model_parameters=params.model_parameters, - base_parameters=params.base_parameters, - initial_conditions=params.initial_conditions, - inlet_conditions=params.inlet_conditions, - feed=DEFAULT_FEED, - reactions=params.reactions, - species=params.species, - ode_system=e_adm_2_ode_sys, - build_stoichiometric_matrix=build_e_adm_2_stoichiometric_matrix, - control_state={ - - }, - name="Modified_ADM1", - switch="DAE", - metagenome_report=None) - mod_adm1.control_state['S_H_ion']=0.000001 - mod_adm1.time_limit=100000 - - mod_adm1.dash_app(mod_adm1.solve_model(t_eval=np.linspace(0, 30, 1000))) - - - diff --git a/adtoolbox/bio_struct.py b/adtoolbox/bio_struct.py deleted file mode 100644 index 17abfa7..0000000 --- a/adtoolbox/bio_struct.py +++ /dev/null @@ -1,73 +0,0 @@ -Nucleotides=["A","C","G","T","U"] -DNA_Codons = { - # 'M' - START, '_' - STOP - "GCT": "A", "GCC": "A", "GCA": "A", "GCG": "A", - "TGT": "C", "TGC": "C", - "GAT": "D", "GAC": "D", - "GAA": "E", "GAG": "E", - "TTT": "F", "TTC": "F", - "GGT": "G", "GGC": "G", "GGA": "G", "GGG": "G", - "CAT": "H", "CAC": "H", - "ATA": "I", "ATT": "I", "ATC": "I", - "AAA": "K", "AAG": "K", - "TTA": "L", "TTG": "L", "CTT": "L", "CTC": "L", "CTA": "L", "CTG": "L", - "ATG": "M", - "AAT": "N", "AAC": "N", - "CCT": "P", "CCC": "P", "CCA": "P", "CCG": "P", - "CAA": "Q", "CAG": "Q", - "CGT": "R", "CGC": "R", "CGA": "R", "CGG": "R", "AGA": "R", "AGG": "R", - "TCT": "S", "TCC": "S", "TCA": "S", "TCG": "S", "AGT": "S", "AGC": "S", - "ACT": "T", "ACC": "T", "ACA": "T", "ACG": "T", - "GTT": "V", "GTC": "V", "GTA": "V", "GTG": "V", - "TGG": "W", - "TAT": "Y", "TAC": "Y", - "TAA": "_", "TAG": "_", "TGA": "_" -} - -RNA_Codons = { - # 'M' - START, '_' - STOP - "GCU": "A", "GCC": "A", "GCA": "A", "GCG": "A", - "UGU": "C", "UGC": "C", - "GAU": "D", "GAC": "D", - "GAA": "E", "GAG": "E", - "UUU": "F", "UUC": "F", - "GGU": "G", "GGC": "G", "GGA": "G", "GGG": "G", - "CAU": "H", "CAC": "H", - "AUA": "I", "AUU": "I", "AUC": "I", - "AAA": "K", "AAG": "K", - "UUA": "L", "UUG": "L", "CUU": "L", "CUC": "L", "CUA": "L", "CUG": "L", - "AUG": "M", - "AAU": "N", "AAC": "N", - "CCU": "P", "CCC": "P", "CCA": "P", "CCG": "P", - "CAA": "Q", "CAG": "Q", - "CGU": "R", "CGC": "R", "CGA": "R", "CGG": "R", "AGA": "R", "AGG": "R", - "UCU": "S", "UCC": "S", "UCA": "S", "UCG": "S", "AGU": "S", "AGC": "S", - "ACU": "T", "ACC": "T", "ACA": "T", "ACG": "T", - "GUU": "V", "GUC": "V", "GUA": "V", "GUG": "V", - "UGG": "W", - "UAU": "Y", "UAC": "Y", - "UAA": "_", "UAG": "_", "UGA": "_" -} - -Amino_Acid_MWs={ -'A': 71.03711, -'C': 103.00919, -'D': 115.02694, -'E': 129.04259, -'F': 147.06841, -'G': 57.02146, -'H': 137.05891, -'I': 113.08406, -'K': 128.09496, -'L': 113.08406, -'M': 131.04049, -'N': 114.04293, -'P': 97.05276, -'Q': 128.05858, -'R': 156.10111, -'S': 87.03203, -'T': 101.04768, -'V': 99.06841, -'W': 186.07931, -'Y': 163.06333 -} diff --git a/adtoolbox/cli.py b/adtoolbox/cli.py old mode 100755 new mode 100644 index 49031bb..159e73b --- a/adtoolbox/cli.py +++ b/adtoolbox/cli.py @@ -1,496 +1,533 @@ -import argparse -from re import M -import configs -import metagenomics_report -import core -from adtoolbox import __version__,Main_Dir -from rich.console import Console -import rich -import adm -from rich.table import Table -from rich.prompt import Prompt -from rich import markdown import json import os -import numpy as np import subprocess +from pathlib import Path + +import click +import numpy as np import pandas as pd -import utils -class AParser(argparse.ArgumentParser): - def _print_message(self, message, file=None): - rich.print(message, file=file) +import rich +from rich import markdown +from rich.console import Console +from rich.prompt import Prompt +from rich.table import Table -def main(): - console = Console() - console.rule("[bold red]ADToolBox") - - db_class=core.Database(config=configs.Database()) - - parser = AParser(prog="ADToolBox", - description="ADToolBox, a toolbox for anaerobic digestion modeling", - epilog="ADToolBox-Chan Lab at Colorado State University.") - parser.add_argument("-v", "--version", action="version",help="Prints the version of ADToolBox") - parser.version = f"[green]ADToolBox v{__version__}" - subparsers = parser.add_subparsers(dest="ADToolbox_Module", help='ADToolbox Modules:') - - ### Database Module ------------------------------------------------------------- - - - #### FEED DATABASE #### - subparser_database = subparsers.add_parser('Database', help='This module provides a command line interface to build or download the databases that ADToolbox requires') - db_subp=subparser_database.add_subparsers(dest="database_module", help='Database commands:') - - db_subp.add_parser("initialize-feed-db", help="Initialize the Feed DB") - add_feed=db_subp.add_parser("add-feed", help="Add a feed to the feed database") - add_feed.add_argument("-n", "--name", action="store", help="Name of the feed to be added to the database") - add_feed.add_argument("-c", "--carbohydrates", action="store", help="Carbohydrate content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-p", "--proteins", action="store", help="Protein content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-l", "--lipids", action="store", help="Lipid content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-t","--tss", action="store", help="Total suspended solid content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-s","--si", action="store", help="Soluble inert content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-x","--xi", action="store", help="particulate inert content of the feed to be added to the database in percentage",required=True,type=float) - add_feed.add_argument("-r","--reference", action="store", help="Reference where the numbers come from",required=True) - - show_feed_db=db_subp.add_parser("show-feed-db", help="Shows the feed database") - show_feed_db.add_argument("-f","--filter", action="store", help="Filters the feed database",required=False) - - -### METAGENOMICS STUDIES DATABASE ### - db_subp.add_parser("initialize-metagenomics-studies-db", help="Initialize the Metagenomics Studies DB") - add_metagenomics_study=db_subp.add_parser("add-metagenomics-study", help="Add a metagenomics study to the Kbase") - add_metagenomics_study.add_argument("-n", "--name", help="Metagenomics Study Name to be added to the Kbase",required=True) - add_metagenomics_study.add_argument("-t", "--type", help="Metagenomics Study Type to be added to the Kbase",required=True) - add_metagenomics_study.add_argument("-m", "--microbiome", help="Microbiome where the metagenomics study belongs to",required=True) - add_metagenomics_study.add_argument("-s","--sample_accession", help="SRA accession ID for the sample",required=True) - add_metagenomics_study.add_argument("-c","--comments", help="Comments on the study of interest",required=True) - add_metagenomics_study.add_argument("-p","--study_accession", help="SRA accession ID for the project",required=True) - -### PROTEIN DATABASE ### - db_subp.add_parser("initialize-protein-db", help="Generates the protein database for ADToolbox") - add_protein=db_subp.add_parser("add-protein", help="Add a protein to the protein database") - add_protein.add_argument("-i", "--uniport-id", action="store", help="Uniport ID of the protein to be added to the database",required=True) - add_protein.add_argument("-n", "--name", action="store", help="The name to be attached to the protein, usally is EC number",required=True) - - -### DOWNLOAD DATABASES ### - - db_subp.add_parser("download-reaction-db", help="Downloads the reaction database in CSV format") - db_subp.add_parser("download-seed-reaction-db", help="Downloads the seed reaction database in JSON format") - db_subp.add_parser("build-protein-db", help="Generates the protein database for ADToolbox") - db_subp.add_parser("download-protein-db", help="Downloads the protein database in fasta format; You can alternatively build it from reaction database.") - db_subp.add_parser("download-amplicon-to-genome-dbs", help="downloads amplicon to genome databases") - db_subp.add_parser("download-all-databases", help="downloads all databases that are required by ADToolbox at once") - -### - - ### Metagenomics Module ### - meta_config_defult=configs.Metagenomics() - subparser_metagenomics= subparsers.add_parser('Metagenomics', help="This module provides the import metagenomics functionalities of ADToolbox in the command line") - metag_subp=subparser_metagenomics.add_subparsers(dest='metag_subparser',help='Available Metagenomics Commands:') - - metag_subp_1=metag_subp.add_parser('download_from_sra', help='This module provides a command line interface to download metagenomics data from SRA') - metag_subp_1.add_argument("-s","--sample_accession",action="store",help="SRA accession ID for the sample",required=True) - metag_subp_1.add_argument("-o","--output-dir",action="store",help="Output directory to store the downloaded data",required=True) - metag_subp_1.add_argument("-c","--container",action="store",help="Container to use for the download: None, docker, or singualrity",default="None") - - metag_subp_1=metag_subp.add_parser('download_genome', help='This module provides a command line interface to download genomes from NCBI') - metag_subp_1.add_argument("-g","--genome_accession",action="store",help="NCBI accession ID for the genome",required=True) - metag_subp_1.add_argument("-o","--output-dir",action="store",help="Output directory to store the downloaded data",required=True) - metag_subp_1.add_argument("-c","--container",action="store",help="Container to use for the download: None, docker, or singualrity",default="None") - - - metag_subp_1=metag_subp.add_parser('align-genome' , help='Align Genomes to the protein database of ADToolbox, or any other fasta with protein sequences') - metag_subp_1.add_argument("-n", "--name", action="store", help="An appropriate name for the genome that is to be aligned",required=True) - metag_subp_1.add_argument("-i", "--input-file", action="store", help="Input the address of the JSON file includeing information about the genomes to be aligned",required=True) - metag_subp_1.add_argument("-o", "--output-dir", action="store", help="Output the directory to store the alignment results",default=meta_config_defult.genome_alignment_output,required=True) - metag_subp_1.add_argument("-c", "--container", action="store", help="Container to use for the alignment: None, docker, or singualrity",default="None") - metag_subp_1.add_argument("-d", "--protein-db-dir", action="store", help="Directory containing the protein database to be used for alignment",default=meta_config_defult.protein_db,required=False) - - metag_subp_1=metag_subp.add_parser('align-multiple-genomes' , help='Align multiple Genomes to the protein database of ADToolbox, or any other fasta with protein sequences') - metag_subp_1.add_argument("-i", "--input-file", action="store", help="The address to a JSON file that holds the information about the genomes",required=True) - metag_subp_1.add_argument("-o", "--output-dir", action="store", help="Output the directory to store the alignment results",required=True) - metag_subp_1.add_argument("-c", "--container", action="store", help="Container to use for the alignment: None, docker, or singualrity",default="None") - metag_subp_1.add_argument("-d", "--protein-db-dir", action="store", help="Directory containing the protein database to be used for alignment",default=meta_config_defult.protein_db,required=False) - - metag_subp_1=metag_subp.add_parser('find-representative-genomes' , help='Finds representative genomes from the repseqs fasta file') - metag_subp_1.add_argument("-i", "--input-file", action="store", help="The address to the repseqs fasta file",required=True) - metag_subp_1.add_argument("-o", "--output-dir", action="store", help="The directory of the output file",required=True) - metag_subp_1.add_argument("-c", "--container", action="store", help="Container to use for the alignment: None, docker, or singualrity",default="None") - metag_subp_1.add_argument("-s", "--similarity", action="store", help="Similarity cutoff for clustering",default=0.97,type=float) - metag_subp_1.add_argument("-f", "--format", action="store", help="Format of the output file. Either json or csv",default="csv") - - - - # metag_subp_1=metag_subp.add_parser('Metagenomics_Report', help='This module provides a command line interface to the metagenomics report web interface') - # metag_subp_1.add_argument("-j","--json-file",help="Address to the JSON file that contains the metagenomics report",required=True) - # metag_subp_1.add_argument("-m","--mds",help="Uses MDS plot if true else uses TSNE",action="store_true") - # metag_subp_1.add_argument("-t","--threed",help="whether to use 3D plot instead of 2d",action="store_true") - # metag_subp_1.add_argument("-n","--not-normalize",help="Do not normalize the data",action="store_true") - - - - # metag_subp_3=metag_subp.add_parser('align-genomes', help='Align Genomes to the protein database of ADToolbox, or any other fasta with protein sequences') - # metag_subp_3.add_argument("-i", "--input-file", action="store", help="Input the address of the JSON file includeing information about the genomes to be aligned") - # metag_subp_3.add_argument("-d", "--protein-db-dir", action="store", help="Directory containing the protein database to be used for alignment",default=meta_config_defult.protein_db) - # metag_subp_3.add_argument("-o", "--output-dir", action="store", help="Output the directory to store the alignment results",default=meta_config_defult.genome_alignment_output) - # metag_subp_3.add_argument("-b", "--bit-score", action="store", help="Minimum Bit Score cutoff for alignment",default=meta_config_defult.bit_score) - # metag_subp_3.add_argument("-e", "--e-value", action="store", help="Minimum e-vlaue score cutoff for alignment",default=meta_config_defult.e_value) - - # metag_subp_4=metag_subp.add_parser("make-json-from-genomes",help="Generates JSON file required by Align-Genomes for custom genomes.") - # metag_subp_4.add_argument("-i", "--input-file", action="store", help="Input the address of the CSV file includeing information about the genomes to be aligned",required=True) - # metag_subp_4.add_argument("-o", "--output-file", action="store", help="Output the directory to store the JSON file.",required=True) - - # metag_subp_5=metag_subp.add_parser('map-genomes-to-adm', help='maps JSON file with genome infromation to ADM reactions') - # metag_subp_5.add_argument("-i","--input-file",action="store",help="Input the address of the JSON file includeing information about the alignment of the genomes to the protein database") - # metag_subp_5.add_argument("-m","--model",action="store",help="Model determines which mapping system you'd like to use; Current options: 'Modified_adm_reactions'",default="Modified_adm_reactions") - # metag_subp_5.add_argument("-o","--output-dir",action="store",help="address to store the JSON report to be loaded with a model") - - - doc_parser=subparsers.add_parser('Documentations', help='Documentations for using AD Toolbox') - doc_parser.add_argument("-s", "--show", action="store_true", help="Documentation for a specific module") - - ### ADM module ### - subparser_adm = subparsers.add_parser('ADM', help='This module provides a command line interface for running and visualizing the ADToolbox ADM and modified ADM models') - adm_subp=subparser_adm.add_subparsers(dest='adm_Subparser',help='Available ADM Commands:') - subparser_adm1 = adm_subp.add_parser('adm1',help='Original ADM1 Model') - subparser_adm1.add_argument("--model-parameters", action="store", help="Model parameters for ADM 1") - subparser_adm1.add_argument("--base-parameters", action="store", help="Provide json file with base parameters for original ADM1") - subparser_adm1.add_argument("--initial-conditions", action="store", help="Provide json file with initial conditions for original ADM1") - subparser_adm1.add_argument("--inlet-conditions", action="store", help="Provide json file with inlet conditions for original ADM1") - subparser_adm1.add_argument("--reactions", action="store", help="Provide json file with reactions for original ADM1") - subparser_adm1.add_argument("--species", action="store", help="Provide json file with species for original ADM1") - subparser_adm1.add_argument("--metagenome-report", action="store", help="Provide json file with metagenome report for original ADM1") - subparser_adm1.add_argument("--report", action="store", help="Describe how to report the results of original ADM1. Current options are: 'dash' and 'csv'") - - mod_adm_subp=adm_subp.add_parser('e-adm',help='eADM Model') - mod_adm_subp.add_argument("--model-parameters", action="store", help="Model parameters for Modified ADM") - mod_adm_subp.add_argument("--base-parameters", action="store", help="Provide json file with base parameters for modified ADM") - mod_adm_subp.add_argument("--initial-conditions", action="store", help="Provide json file with initial conditions for modified ADM") - mod_adm_subp.add_argument("--inlet-conditions", action="store", help="Provide json file with inlet conditions for modified ADM") - mod_adm_subp.add_argument("--reactions", action="store", help="Provide json file with reactions for modified ADM") - mod_adm_subp.add_argument("--species", action="store", help="Provide json file with species for modified ADM") - mod_adm_subp.add_argument("--metagenome-report", action="store", help="Provide json file with metagenome report for modified ADM") - mod_adm_subp.add_argument("--control-states", action="store", help="Provide a json file that contains the control states, and their values ") - mod_adm_subp.add_argument("--report", action="store", help="Describe how to report the results of modified ADM. Current options are: 'dash' and 'csv'") - - # Mod_ADM_args=subparser_adm.add_subparsers(help='Modified ADM Args:') - - subparser_Configs = subparsers.add_parser('Configs', help='Configurations of ADToolBox') - subparser_Configs.add_argument("-s", "--set-base-dir", action="store", help="Set the base directory for ADToolBox to work with") - subparser_Configs.add_argument("-g", "--get-base-dir", action="store_true", help="Get the current base directory for ADToolBox") - - ### PARSE ARGS ### - - args=parser.parse_args() - - ### CLI config block ### - if args.ADToolbox_Module == 'Configs': - - if args.set_base_dir: - configs.set_base_dir(args.set_base_dir) - elif args.get_base_dir: - print(configs.get_base_dir()) - ### Database ### - - if args.ADToolbox_Module == 'Database' and "database_module" in args: - if args.database_module=="initialize-feed-db": - db_class.initialize_feed_db() - elif args.database_module=="add-feed": - feed=core.Feed(name=args.name, - carbohydrates=args.carbohydrates, - proteins=args.proteins, - lipids=args.lipids, - tss=args.tss, - si=args.si, - xi=args.xi, - reference=args.reference) - db_class.add_feed_to_feed_db(feed=feed) - - elif args.database_module=="show-feed-db": - if args.filter: - t=db_class.get_feed_from_feed_db(field_name="name",field_value=args.filter) - else: - t=db_class.get_feed_from_feed_db(field_name="name",query="") - if t: - feed_table = Table(title="Feed Database",safe_box=True,expand=True) - for i in t[0].to_dict().keys(): - feed_table.add_column(i, justify="center", style="cyan",max_width=20) - for i in t: - feed_table.add_row(*map(str,list(i.to_dict().values()))) - console.print(feed_table) - if args.ADToolbox_Module == 'Database' and "database_module" in args: - if args.database_module=="initialize-metagenomics-studies-db": - db_class.initialize_metagenomics_studies_db() - elif args.database_module=="add-metagenomics-study": - metagenomics_study=core.MetagenomicsStudy(name=args.name, - study_type=args.type, - microbiome=args.microbiome, - sample_accession=args.sample_accession, - comments=args.comments, - study_accession=args.study_accession) - db_class.add_metagenomics_study_to_metagenomics_studies_db(metagenomics_study=metagenomics_study) - - - - if args.ADToolbox_Module == 'Database' and "database_module" in args: - if args.database_module=="initialize-protein-db": - db_class.initialize_protein_db() - elif args.database_module=="add-protein": - db_class.add_protein_to_protein_db(protein_id=args.uniport_id,header_tail=args.name) - - elif args.database_module=="download-reaction-db": - db_class.download_reaction_database() - - elif args.database_module=="download-seed-reaction-db": - db_class.download_seed_databases() - - elif args.database_module=="build-protein-db": - ecs=core.Database.ec_from_csv(configs.Database().csv_reaction_db) - db_class.protein_db_from_ec(ecs) - rich.print("[green]Protein DB built successfully") - - elif args.database_module=="download-feed-db": - db_class.download_feed_database() - - elif args.database_module=="download-protein-db": - db_class.download_protein_database() - - elif args.database_module=="download-amplicon-to-genome-dbs": - db_class.download_amplicon_to_genome_db() - - elif args.database_module=="download-all-databases": - db_class.download_all_databases() - - - - - - - - #### Metagenomics Module ##### - if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args and args.metag_subparser=="download_from_SRA": - prefetch_script,sample_metadata=core.Metagenomics(meta_config_defult).seqs_from_sra(accession=args.sample_accession,target_dir=args.output_dir,container=args.container) - subprocess.run(f"{prefetch_script}",shell=True) - # core.Metagenomics(meta_config_defult).amplicon2genome() - ### UNDER CONSTRUCTION ### - - if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args and args.metag_subparser=="download_genome": - subprocess.run(core.Metagenomics(meta_config_defult).download_genome(identifier=args.genome_accession, - output_dir=args.output_dir, - container=args.container),shell=True) - - - if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args and args.metag_subparser=="align-genome": - if args.protein_db_dir: - meta_config_defult.protein_db=args.protein_db_dir - mg=core.Metagenomics(meta_config_defult).align_genome_to_protein_db( - address=args.input_file, - outdir=args.output_dir, - name=args.name, - container=args.container +from adtoolbox import __version__, adm, configs, core, utils + + +CONTEXT_SETTINGS = {"help_option_names": ["-h", "--help"]} +console = Console() + + +def _database(**config_overrides): + return core.Database(config=configs.Database(**config_overrides)) + + +def _metagenomics_config(protein_db=None, amplicon_to_genome_db=None): + config = configs.Metagenomics() + if protein_db: + config.protein_db = protein_db + if amplicon_to_genome_db: + config.amplicon2genome_db = amplicon_to_genome_db + matches = list(Path(amplicon_to_genome_db).rglob(config.gtdb_dir)) + config.gtdb_dir_fasta = str(matches[0]) if matches else None + return config + + +def _prompt_path(value, prompt, *, exists=None, file_okay=True, dir_okay=True, writable=False): + path_type = click.Path(exists=bool(exists), file_okay=file_okay, dir_okay=dir_okay, writable=writable) + path = value or click.prompt(prompt, type=path_type) + return os.path.abspath(os.path.expanduser(path_type.convert(path, None, None))) + + +def _database_config_from_dir(output_dir): + return {"database_dir": output_dir} + + +def _model_paths_from_dir(parameters_dir, prefix): + return { + "model_parameters": os.path.join(parameters_dir, f"{prefix}_model_parameters.json"), + "base_parameters": os.path.join(parameters_dir, f"{prefix}_base_parameters.json"), + "initial_conditions": os.path.join(parameters_dir, f"{prefix}_initial_conditions.json"), + "inlet_conditions": os.path.join(parameters_dir, f"{prefix}_inlet_conditions.json"), + "reactions": os.path.join(parameters_dir, f"{prefix}_reactions.json"), + "species": os.path.join(parameters_dir, f"{prefix}_species.json"), + } + + +def _resolve_model_paths(parameters_dir, prefix, legacy_prefixes=(), **overrides): + if parameters_dir: + parameters_dir = _prompt_path(parameters_dir, "ADM parameter directory", exists=True, file_okay=False, dir_okay=True) + elif not any(overrides.values()): + parameters_dir = _prompt_path(None, "ADM parameter directory", exists=True, file_okay=False, dir_okay=True) + + paths = _model_paths_from_dir(parameters_dir, prefix) if parameters_dir else {} + if parameters_dir and legacy_prefixes: + for key, path in list(paths.items()): + if os.path.exists(path): + continue + for legacy_prefix in legacy_prefixes: + legacy_path = _model_paths_from_dir(parameters_dir, legacy_prefix)[key] + if os.path.exists(legacy_path): + paths[key] = legacy_path + break + resolved = {} + for key, value in overrides.items(): + resolved[key] = value or paths.get(key) + if not resolved[key]: + resolved[key] = _prompt_path(None, key.replace("_", " ").title() + " JSON path", exists=True, file_okay=True, dir_okay=False) + return resolved + + +def _load_model_payload(models_json, model_key, *, parameters_dir, prefix, legacy_prefixes=(), **paths): + if models_json: + models_json = _prompt_path(models_json, "ADM models JSON", exists=True, file_okay=True, dir_okay=False) + try: + return utils.load_model_json(models_json, model_key) + except (KeyError, TypeError) as exc: + raise click.ClickException(str(exc)) from exc + + paths = _resolve_model_paths( + parameters_dir, + prefix, + legacy_prefixes=legacy_prefixes, + **paths, + ) + return utils.load_multiple_json_files(paths)._asdict() + + +def _load_json(path): + with open(path) as f: + return json.load(f) + + +def _print_feed_table(feeds): + if not feeds: + return + + feed_table = Table(title="Feed Database", safe_box=True, expand=True) + for column in feeds[0].to_dict().keys(): + feed_table.add_column(column, justify="center", style="cyan", max_width=20) + for feed in feeds: + feed_table.add_row(*map(str, feed.to_dict().values())) + console.print(feed_table) + + +def _write_representative_genomes(results, output_dir, output_format): + if output_format == "csv": + pd.DataFrame.from_dict(results, orient="index").to_csv( + os.path.join(output_dir, "representative_genomes.csv") ) - subprocess.run(mg,shell=True) - - if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args and args.metag_subparser=="align-multiple-genomes": - if args.protein_db_dir: - meta_config_defult.protein_db=args.protein_db_dir - with open(args.input_file) as f: - genomes=json.load(f) - for genome in genomes: - mg=core.Metagenomics(meta_config_defult).align_genome_to_protein_db( - address=genomes[genome], - outdir=args.output_dir, - name=genome, - container=args.container - ) - subprocess.run(mg,shell=True) - - if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args and args.metag_subparser=="find-representative-genomes": - meta_config_defult.vsearch_similarity=args.similarity - print(args.output_dir) - mg=core.Metagenomics(meta_config_defult).align_to_gtdb( - query_dir=args.input_file, - output_dir=args.output_dir, - container=args.container, + elif output_format == "json": + with open(os.path.join(output_dir, "representative_genomes.json"), "w") as f: + json.dump(results, f) + else: + raise click.ClickException("Please provide a valid format for the output file") + + +def _report_adm_solution(model, solution, report): + if report in (None, "dash"): + model.dash_app(solution) + elif report == "csv": + address = Prompt.ask("\n[yellow]Where do you want to save the csv file? ") + model.csv_report(solution, address) + else: + raise click.ClickException("Please provide a valid report option") + + +@click.group( + name="ADToolBox", + context_settings=CONTEXT_SETTINGS, + help="ADToolBox, a toolbox for anaerobic digestion modeling", + no_args_is_help=True, + invoke_without_command=True, +) +@click.version_option(__version__, "-v", "--version", prog_name="ADToolBox") +def main(): + pass + + +@main.group(name="Database", help="Build or download databases required by ADToolbox.", no_args_is_help=True) +def database(): + pass + + +@database.command(name="initialize-feed-db", help="Initialize the Feed DB.") +@click.option("--feed-db", help="Path where the feed database TSV should be created.") +def initialize_feed_db(feed_db): + feed_db = _prompt_path(feed_db, "Feed database TSV path", file_okay=True, dir_okay=False, writable=True) + _database(feed_db=feed_db).initialize_feed_db() + + +@database.command(name="add-feed", help="Add a feed to the feed database.") +@click.option("--feed-db", help="Path to the feed database TSV.") +@click.option("-n", "--name", required=True, help="Name of the feed to be added to the database.") +@click.option("-c", "--carbohydrates", required=True, type=float, help="Carbohydrate content in percent.") +@click.option("-p", "--proteins", required=True, type=float, help="Protein content in percent.") +@click.option("-l", "--lipids", required=True, type=float, help="Lipid content in percent.") +@click.option("-t", "--tss", required=True, type=float, help="Total suspended solid content in percent.") +@click.option("-s", "--si", required=True, type=float, help="Soluble inert content in percent.") +@click.option("-x", "--xi", required=True, type=float, help="Particulate inert content in percent.") +@click.option("-r", "--reference", required=True, help="Reference where the numbers come from.") +def add_feed(feed_db, name, carbohydrates, proteins, lipids, tss, si, xi, reference): + feed_db = _prompt_path(feed_db, "Feed database TSV path", file_okay=True, dir_okay=False, writable=True) + feed = core.Feed( + name=name, + carbohydrates=carbohydrates, + proteins=proteins, + lipids=lipids, + tss=tss, + si=si, + xi=xi, + reference=reference, + ) + _database(feed_db=feed_db).add_feed_to_feed_db(feed=feed) + + +@database.command(name="show-feed-db", help="Show the feed database.") +@click.option("--feed-db", help="Path to the feed database TSV.") +@click.option("-f", "--filter", "feed_filter", help="Filter the feed database by feed name.") +def show_feed_db(feed_db, feed_filter): + feed_db = _prompt_path(feed_db, "Feed database TSV path", exists=True, file_okay=True, dir_okay=False) + db = _database(feed_db=feed_db) + if feed_filter: + feeds = db.get_feed_from_feed_db(field_name="name", query=feed_filter) + else: + feeds = db.get_feed_from_feed_db(field_name="name", query="") + _print_feed_table(feeds) + + +@database.command(name="initialize-metagenomics-studies-db", help="Initialize the Metagenomics Studies DB.") +@click.option("--studies-db", help="Path where the metagenomics studies TSV should be created.") +def initialize_metagenomics_studies_db(studies_db): + studies_db = _prompt_path(studies_db, "Metagenomics studies TSV path", file_okay=True, dir_okay=False, writable=True) + _database(studies_local={"metagenomics_studies": studies_db}).initialize_metagenomics_studies_db() + + +@database.command(name="add-metagenomics-study", help="Add a metagenomics study to the database.") +@click.option("--studies-db", help="Path to the metagenomics studies TSV.") +@click.option("-n", "--name", required=True, help="Metagenomics study name.") +@click.option("-t", "--type", "study_type", required=True, help="Metagenomics study type.") +@click.option("-m", "--microbiome", required=True, help="Microbiome where the study belongs.") +@click.option("-s", "--sample-accession", required=True, help="SRA accession ID for the sample.") +@click.option("-c", "--comments", required=True, help="Comments on the study of interest.") +@click.option("-p", "--study-accession", required=True, help="SRA accession ID for the project.") +def add_metagenomics_study(studies_db, name, study_type, microbiome, sample_accession, comments, study_accession): + studies_db = _prompt_path(studies_db, "Metagenomics studies TSV path", file_okay=True, dir_okay=False, writable=True) + study = core.MetagenomicsStudy( + name=name, + study_type=study_type, + microbiome=microbiome, + sample_accession=sample_accession, + comments=comments, + study_accession=study_accession, + ) + _database(studies_local={"metagenomics_studies": studies_db}).add_metagenomics_study_to_metagenomics_studies_db(metagenomics_study=study) + + +@database.command(name="initialize-protein-db", help="Initialize the protein database.") +@click.option("--protein-db", help="Path where the protein FASTA database should be created.") +def initialize_protein_db(protein_db): + protein_db = _prompt_path(protein_db, "Protein database FASTA path", file_okay=True, dir_okay=False, writable=True) + _database(protein_db=protein_db).initialize_protein_db() + + +@database.command(name="add-protein", help="Add a protein to the protein database.") +@click.option("--protein-db", help="Path to the protein FASTA database.") +@click.option("-i", "--uniprot-id", "--uniport-id", required=True, help="UniProt ID of the protein.") +@click.option("-n", "--name", required=True, help="Name attached to the protein, usually an EC number.") +def add_protein(protein_db, uniprot_id, name): + protein_db = _prompt_path(protein_db, "Protein database FASTA path", file_okay=True, dir_okay=False, writable=True) + _database(protein_db=protein_db).add_protein_to_protein_db(protein_id=uniprot_id, header_tail=name) + + +@database.command(name="download-reaction-db", help="Download the reaction database in CSV format.") +@click.option("--reaction-db", help="Path where the reaction metadata CSV should be saved.") +def download_reaction_db(reaction_db): + reaction_db = _prompt_path(reaction_db, "Reaction metadata CSV path", file_okay=True, dir_okay=False, writable=True) + _database(csv_reaction_db=reaction_db).download_reaction_database() + + +@database.command(name="download-seed-reaction-db", help="Download the seed reaction database in JSON format.") +@click.option("--seed-reaction-db", help="Path where the SEED reactions JSON should be saved.") +@click.option("--seed-compound-db", help="Path where the SEED compounds JSON should be saved.") +def download_seed_reaction_db(seed_reaction_db, seed_compound_db): + seed_reaction_db = _prompt_path(seed_reaction_db, "SEED reactions JSON path", file_okay=True, dir_okay=False, writable=True) + seed_compound_db = _prompt_path(seed_compound_db, "SEED compounds JSON path", file_okay=True, dir_okay=False, writable=True) + _database(reaction_db=seed_reaction_db, compound_db=seed_compound_db).download_seed_databases() + + +@database.command(name="build-protein-db", help="Generate the protein database for ADToolbox.") +@click.option("--reaction-db", help="Path to the reaction metadata CSV.") +@click.option("--protein-db", help="Path where the protein FASTA database should be saved.") +def build_protein_db(reaction_db, protein_db): + reaction_db = _prompt_path(reaction_db, "Reaction metadata CSV path", exists=True, file_okay=True, dir_okay=False) + protein_db = _prompt_path(protein_db, "Protein database FASTA path", file_okay=True, dir_okay=False, writable=True) + db = _database(csv_reaction_db=reaction_db, protein_db=protein_db) + ecs = core.Database.ec_from_csv(reaction_db) + db.protein_db_from_ec(ecs) + rich.print("[green]Protein DB built successfully") + + +@database.command(name="download-feed-db", help="Download the feed database.") +@click.option("--feed-db", help="Path where the feed database TSV should be saved.") +def download_feed_db(feed_db): + feed_db = _prompt_path(feed_db, "Feed database TSV path", file_okay=True, dir_okay=False, writable=True) + _database(feed_db=feed_db).download_feed_database() + + +@database.command(name="download-protein-db", help="Download the protein database in FASTA format.") +@click.option("--protein-db", help="Path where the protein FASTA database should be saved.") +def download_protein_db(protein_db): + protein_db = _prompt_path(protein_db, "Protein database FASTA path", file_okay=True, dir_okay=False, writable=True) + _database(protein_db=protein_db).download_protein_database() + + +@database.command(name="download-amplicon-to-genome-dbs", help="Download amplicon-to-genome databases.") +@click.option("--output-dir", help="Directory where the amplicon-to-genome databases should be saved.") +def download_amplicon_to_genome_dbs(output_dir): + output_dir = _prompt_path(output_dir, "Amplicon-to-genome database directory", file_okay=False, dir_okay=True, writable=True) + _database(amplicon_to_genome_db=output_dir).download_amplicon_to_genome_db() + + +@database.command(name="download-all-databases", help="Download all databases required by ADToolbox.") +@click.option("--output-dir", help="Directory where all downloaded databases should be saved.") +def download_all_databases(output_dir): + output_dir = _prompt_path(output_dir, "Database download directory", file_okay=False, dir_okay=True, writable=True) + _database(**_database_config_from_dir(output_dir)).download_all_databases() + + +@main.group( + name="Metagenomics", + help="Import and process metagenomics data from the command line.", + no_args_is_help=True, +) +def metagenomics(): + pass + + +@metagenomics.command(name="download_from_sra", help="Download metagenomics data from SRA.") +@click.option("-s", "--sample-accession", required=True, help="SRA accession ID for the sample.") +@click.option("-o", "--output-dir", help="Output directory for downloaded data.") +@click.option("-c", "--container", default="None", show_default=True, help="Container: None, docker, or singularity.") +def download_from_sra(sample_accession, output_dir, container): + output_dir = _prompt_path(output_dir, "Downloaded SRA output directory", file_okay=False, dir_okay=True, writable=True) + config = _metagenomics_config() + prefetch_script, _ = core.Metagenomics(config).seqs_from_sra( + accession=sample_accession, + target_dir=output_dir, + container=container, + ) + subprocess.run(prefetch_script, shell=True) + + +@metagenomics.command(name="download_genome", help="Download a genome from NCBI.") +@click.option("-g", "--genome-accession", required=True, help="NCBI accession ID for the genome.") +@click.option("-o", "--output-dir", help="Output directory for downloaded data.") +@click.option("-c", "--container", default="None", show_default=True, help="Container: None, docker, or singularity.") +def download_genome(genome_accession, output_dir, container): + output_dir = _prompt_path(output_dir, "Downloaded genome output directory", file_okay=False, dir_okay=True, writable=True) + config = _metagenomics_config() + script = core.Metagenomics(config).download_genome( + identifier=genome_accession, + output_dir=output_dir, + container=container, + ) + subprocess.run(script, shell=True) + + +@metagenomics.command(name="align-genome", help="Align one genome to the ADToolbox protein database.") +@click.option("-n", "--name", required=True, help="Name for the genome being aligned.") +@click.option("-i", "--input-file", help="Genome FASTA or JSON file containing genome information.") +@click.option("-o", "--output-dir", help="Output directory for alignment results.") +@click.option("-c", "--container", default="None", show_default=True, help="Container: None, docker, or singularity.") +@click.option("-d", "--protein-db", "--protein-db-dir", help="Path to the protein FASTA database.") +def align_genome(name, input_file, output_dir, container, protein_db): + input_file = _prompt_path(input_file, "Genome input file", exists=True, file_okay=True, dir_okay=False) + output_dir = _prompt_path(output_dir, "Alignment output directory", file_okay=False, dir_okay=True, writable=True) + protein_db = _prompt_path(protein_db, "Protein database FASTA path", exists=True, file_okay=True, dir_okay=False) + config = _metagenomics_config(protein_db) + script = core.Metagenomics(config).align_genome_to_protein_db( + address=input_file, + outdir=output_dir, + name=name, + container=container, + ) + subprocess.run(script, shell=True) + + +@metagenomics.command(name="align-multiple-genomes", help="Align multiple genomes to the ADToolbox protein database.") +@click.option("-i", "--input-file", help="JSON file containing genome names and input files.") +@click.option("-o", "--output-dir", help="Output directory for alignment results.") +@click.option("-c", "--container", default="None", show_default=True, help="Container: None, docker, or singularity.") +@click.option("-d", "--protein-db", "--protein-db-dir", help="Path to the protein FASTA database.") +def align_multiple_genomes(input_file, output_dir, container, protein_db): + input_file = _prompt_path(input_file, "Genome manifest JSON path", exists=True, file_okay=True, dir_okay=False) + output_dir = _prompt_path(output_dir, "Alignment output directory", file_okay=False, dir_okay=True, writable=True) + protein_db = _prompt_path(protein_db, "Protein database FASTA path", exists=True, file_okay=True, dir_okay=False) + config = _metagenomics_config(protein_db) + genomes = _load_json(input_file) + for genome, address in genomes.items(): + script = core.Metagenomics(config).align_genome_to_protein_db( + address=address, + outdir=output_dir, + name=genome, + container=container, ) - subprocess.run(mg,shell=True) - res=core.Metagenomics(meta_config_defult).get_genomes_from_gtdb_alignment(args.output_dir) - if args.format=="csv": - pd.DataFrame.from_dict(res,orient="index").to_csv(os.path.join(args.output_dir,"representative_genomes.csv")) - elif args.format=="json": - with open(os.path.join(args.output_dir,"representative_genomes.json"),"w") as f: - json.dump(res,f) - else: - raise ValueError("Please provide a valid format for the output file") - - - - - - # if args.ADToolbox_Module == 'Metagenomics' and "metag_Subparser" in args and args.metag_Subparser=="align-genomes": - # if "input_file" in args and "output_dir" in args: - # Meta_Config=configs.Metagenomics(genomes_json_info=args.input_file,genome_alignment_output=args.output_dir,genome_alignment_output_json=os.path.join(args.output_dir,"Alignment_Info.json")) - # core.Metagenomics(Meta_Config).Align_Genomes() - - - # if args.ADToolbox_Module == 'Metagenomics' and "metag_subparser" in args: - # print(args) - # ncomp=3 if args.threed else 2 - # method="MDS" if args.mds else "TSNE" - # normalize=False if args.not_normalize else True - # metagenomics_report.main(args.json_file,method=method,normalize=normalize,n_components=ncomp) - - - - - - if args.ADToolbox_Module == 'Documentations' and args.show: - with open(configs.Documentation().readme,'r') as f: - T=f.read() - console.print(markdown.Markdown(T)) - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="build-protein-db" : - ecs=db_class.ec_from_csv(configs.Database().csv_reaction_db) - rich.print(u"[bold green]\u2713 All EC numbers were extracted!\n") - db_class._initialize_database() - db_class.protein_db_from_ec(ecs) - rich.print(u"\n[bold green]\u2713 Protein Database was built!\n") - - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="download-feed-db": - db_class.download_feed_database(db_class.config.feed_db) - rich.print(u"[bold green]\u2713 Feed Database was downloaded!\n") - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="download-reaction-db": - db_class.download_reaction_database(db_class.config.csv_reaction_db) - rich.print(u"[bold green]\u2713 Reaction Database was downloaded!\n") - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="download-protein-db": - db_class.download_protein_database(db_class.config.protein_db) - rich.print(u"[bold green]\u2713 Protein Database was downloaded!\n") - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="download-seed-reaction-db": - db_class.download_seed_databases(db_class.config.reaction_db) - rich.print(u"[bold green]\u2713 SEED Reaction Database was downloaded!\n") - - if args.ADToolbox_Module == 'Database' and "Database_Module" in args and args.Database_Module=="show-feed-db": - with open(configs.Database().feed_db, 'r') as f: - feed_db = json.load(f) - colnames=feed_db[0].keys() - feed_table = Table(title="Feed Database",expand=True,safe_box=True) - - for i in colnames: - feed_table.add_column(i, justify="center", style="cyan", no_wrap=True) - for i in feed_db: - feed_table.add_row(*map(str,list(i.values()))) - console.print(feed_table) - - - - if "ADToolbox_Module" in args and args.ADToolbox_Module == 'ADM' and "adm_Subparser" in args and args.adm_Subparser == 'adm1': - - if args.model_parameters: - with open(args.model_parameters) as f: - adm_model_parameters=json.load(f) - else: - with open(configs.ADM1_LOCAL["model_parameters"]) as f: - adm_model_parameters=json.load(f) - - if args.base_parameters: - with open(args.base_parameters) as f: - adm_base_parameters=json.load(f) - else: - with open(configs.ADM1_LOCAL["base_parameters"]) as f: - adm_base_parameters=json.load(f) - - if args.initial_conditions: - with open(args.initial_conditions) as f: - adm_initial_conditions=json.load(f) - else: - with open(configs.ADM1_LOCAL["initial_conditions"]) as f: - adm_initial_conditions=json.load(f) - - if args.inlet_conditions: - with open(args.inlet_conditions) as f: - adm_inlet_conditions=json.load(f) - else: - with open(configs.ADM1_LOCAL["inlet_conditions"]) as f: - adm_inlet_conditions=json.load(f) - - - if args.reactions: - with open(args.reactions) as f: - adm_reactions=json.load(f) - else: - with open(configs.ADM1_LOCAL["reactions"]) as f: - adm_reactions=json.load(f) - - if args.species: - with open(args.species) as f: - adm_species=json.load(f) - else: - with open(configs.ADM1_LOCAL["species"]) as f: - adm_species=json.load(f) - - if args.metagenome_report: - with open(args.metagenome_report) as f: - adm_metagenome_report=json.load(f) - else: - pass - - ADM1 = adm.Model( - model_parameters=adm_model_parameters, - base_parameters=adm_base_parameters, - initial_conditions= adm_initial_conditions, - inlet_conditions= adm_inlet_conditions, - feed=adm.DEFAULT_FEED, - reactions=adm_reactions, - species=adm_species, - ode_system=adm.adm1_ode_sys, - build_stoichiometric_matrix=adm.build_adm1_stoichiometric_matrix, - name="ADM1", - switch="DAE") - sol = ADM1.solve_model(t_eval=np.linspace(0,30, 10000)) - - if args.report == 'dash' or args.report==None: - ADM1.dash_app(sol) - elif args.report == 'csv': - Address=Prompt.ask("\n[yellow]Where do you want to save the csv file? ") - ADM1.csv_report(sol,Address) - else: - print('Please provide a valid report option') - - - elif "ADToolbox_Module" in args and args.ADToolbox_Module == 'ADM' and "adm_Subparser" in args and args.adm_Subparser == 'e-adm': - params=utils.load_multiple_json_files(configs.E_ADM_2_LOCAL) - control_state={"S_H_ion":10**(-6.5)} - if args.control_states: - with open(args.control_states) as f: - control_state.update(json.load(f)) - - mod_adm1 = adm.Model(model_parameters=params.model_parameters, - base_parameters=params.base_parameters, - initial_conditions=params.initial_conditions, - inlet_conditions=params.inlet_conditions, - feed=adm.DEFAULT_FEED, - reactions=params.reactions, - species=params.species, - ode_system=adm.e_adm_2_ode_sys, - build_stoichiometric_matrix=adm.build_e_adm_2_stoichiometric_matrix, - control_state=control_state, - name="Modified_ADM1", - switch="DAE", - ) - sol_mod_adm1 = mod_adm1.solve_model(t_eval=np.linspace(0,30, 10000),method="BDF") - - if args.report == 'dash' or args.report==None: - mod_adm1.dash_app(sol_mod_adm1) - elif args.report == 'csv': - Address=Prompt.ask("\n[yellow]Where do you want to save the csv file? ") - mod_adm1.csv_report(sol_mod_adm1,Address) - else: - print('Please provide a valid report option') - + subprocess.run(script, shell=True) + + +@metagenomics.command(name="find-representative-genomes", help="Find representative genomes from a repseqs FASTA file.") +@click.option("-i", "--input-file", help="Path to the repseqs FASTA file.") +@click.option("-o", "--output-dir", help="Output directory.") +@click.option("--amplicon-to-genome-db", help="Directory containing the amplicon-to-genome database files.") +@click.option("-c", "--container", default="None", show_default=True, help="Container: None, docker, or singularity.") +@click.option("-s", "--similarity", default=0.97, show_default=True, type=float, help="Similarity cutoff for clustering.") +@click.option("-f", "--format", "output_format", default="csv", show_default=True, type=click.Choice(["csv", "json"]), help="Output format.") +def find_representative_genomes(input_file, output_dir, amplicon_to_genome_db, container, similarity, output_format): + input_file = _prompt_path(input_file, "Repseqs FASTA path", exists=True, file_okay=True, dir_okay=False) + output_dir = _prompt_path(output_dir, "Representative genomes output directory", file_okay=False, dir_okay=True, writable=True) + amplicon_to_genome_db = _prompt_path(amplicon_to_genome_db, "Amplicon-to-genome database directory", exists=True, file_okay=False, dir_okay=True) + config = _metagenomics_config(amplicon_to_genome_db=amplicon_to_genome_db) + config.vsearch_similarity = similarity + script = core.Metagenomics(config).align_to_gtdb( + query_dir=input_file, + output_dir=output_dir, + container=container, + ) + subprocess.run(script, shell=True) + results = core.Metagenomics(config).get_genomes_from_gtdb_alignment(output_dir) + _write_representative_genomes(results, output_dir, output_format) + + +@main.command(name="Documentations", help="Documentations for using ADToolbox.") +@click.option("-s", "--show", is_flag=True, help="Show the README documentation.") +def documentations(show): + if not show: + raise click.ClickException("Please use --show to display documentation.") + with open(configs.Documentation().readme, "r") as f: + console.print(markdown.Markdown(f.read())) + + +@main.group(name="ADM", help="Run and visualize ADToolbox ADM models.", no_args_is_help=True) +def adm_group(): + pass + + +def _adm_options(command): + command = click.option("--report", help="Report output: dash or csv.")(command) + command = click.option("--metagenome-report", help="JSON metagenome report for the model.")(command) + command = click.option("--models-json", help="JSON file containing all ADM models keyed by model name.")(command) + command = click.option("--species", help="JSON species file.")(command) + command = click.option("--reactions", help="JSON reactions file.")(command) + command = click.option("--inlet-conditions", help="JSON inlet conditions file.")(command) + command = click.option("--initial-conditions", help="JSON initial conditions file.")(command) + command = click.option("--base-parameters", help="JSON base parameters file.")(command) + command = click.option("--model-parameters", help="JSON model parameters file.")(command) + command = click.option("--parameters-dir", help="Directory containing the ADM JSON parameter files.")(command) + return command + + +@adm_group.command(name="adm1", help="Original ADM1 model.") +@_adm_options +def adm1( + parameters_dir, + model_parameters, + base_parameters, + initial_conditions, + inlet_conditions, + reactions, + species, + models_json, + metagenome_report, + report, +): + params = _load_model_payload( + models_json, + "adm1", + parameters_dir=parameters_dir, + prefix="adm1", + model_parameters=model_parameters, + base_parameters=base_parameters, + initial_conditions=initial_conditions, + inlet_conditions=inlet_conditions, + reactions=reactions, + species=species, + ) + if metagenome_report: + _load_json(metagenome_report) + + model = adm.Model( + model_parameters=params["model_parameters"], + base_parameters=params["base_parameters"], + initial_conditions=params["initial_conditions"], + inlet_conditions=params["inlet_conditions"], + feed=adm.DEFAULT_FEED, + reactions=params["reactions"], + species=params["species"], + ode_system=adm.adm1_ode_sys, + build_stoichiometric_matrix=adm.build_adm1_stoichiometric_matrix, + name="ADM1", + switch="DAE", + ) + solution = model.solve_model(t_eval=np.linspace(0, 30, 10000)) + _report_adm_solution(model, solution, report) + + +@adm_group.command(name="e-adm", help="eADM model.") +@_adm_options +@click.option("--control-states", help="JSON file containing control states and their values.") +def e_adm( + parameters_dir, + model_parameters, + base_parameters, + initial_conditions, + inlet_conditions, + reactions, + species, + models_json, + metagenome_report, + report, + control_states, +): + params = _load_model_payload( + models_json, + "e_adm", + parameters_dir=parameters_dir, + prefix="e_adm", + legacy_prefixes=("e_adm_2",), + model_parameters=model_parameters, + base_parameters=base_parameters, + initial_conditions=initial_conditions, + inlet_conditions=inlet_conditions, + reactions=reactions, + species=species, + ) + + if metagenome_report: + _load_json(metagenome_report) + + control_state = {"S_H_ion": 10 ** (-6.5)} + if control_states: + control_state.update(_load_json(control_states)) + + model = adm.Model( + model_parameters=params["model_parameters"], + base_parameters=params["base_parameters"], + initial_conditions=params["initial_conditions"], + inlet_conditions=params["inlet_conditions"], + feed=adm.DEFAULT_FEED, + reactions=params["reactions"], + species=params["species"], + ode_system=adm.e_adm_ode_sys, + build_stoichiometric_matrix=adm.build_e_adm_stoichiometric_matrix, + control_state=control_state, + name="e-ADM", + switch="DAE", + ) + solution = model.solve_model(t_eval=np.linspace(0, 30, 10000), method="BDF") + _report_adm_solution(model, solution, report) + if __name__ == "__main__": main() diff --git a/adtoolbox/configs.py b/adtoolbox/configs.py index ef4bb8e..ff88864 100644 --- a/adtoolbox/configs.py +++ b/adtoolbox/configs.py @@ -1,340 +1,342 @@ import os -from adtoolbox import Main_Dir, PKG_DATA import pathlib -import rich -import json import warnings -""" -This module contains all the paths to the files and directories used in the program. +from adtoolbox import PKG_DATA """ +Path builders and static configuration values for ADToolbox. +Configuration objects do not read or write global state. Pass the directory a +workflow should use, and the object derives its file paths from that directory. +""" -RXN_DB = os.path.join(Main_Dir, "Database", "Reaction_Metadata.csv") - -Seed_RXN_DB = os.path.join(Main_Dir, "Database", "reactions.json") -Seed_COMPOUNDS_DB = os.path.join(Main_Dir, "Database", "compounds.json") ADTOOLBOX_CONTAINERS = { - 'docker_x86': "parsaghadermazi/adtoolbox:x86", - 'docker_arm64': "parsaghadermazi/adtoolbox:arm64", - 'singularity_x86': "docker://parsaghadermazi/adtoolbox:x86", - 'singularity_arm64': "docker://parsaghadermazi/adtoolbox:arm64"} - -E_ADM_2_REMOTE = { - "model_parameters": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_model_parameters.json", - "base_parameters": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_base_parameters.json", - "initial_conditions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_initial_conditions.json", - "inlet_conditions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_inlet_conditions.json", - "reactions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_reactions.json", - "species": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm_2/e_adm_2_species.json" - } - -E_ADM_2_LOCAL = { - "model_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_model_parameters.json"), - "base_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_base_parameters.json"), - "initial_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_initial_conditions.json"), - "inlet_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_inlet_conditions.json"), - "reactions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_reactions.json"), - "species":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_2_species.json"), + "docker_x86": "parsaghadermazi/adtoolbox:x86", + "docker_arm64": "parsaghadermazi/adtoolbox:arm64", + "singularity_x86": "docker://parsaghadermazi/adtoolbox:x86", + "singularity_arm64": "docker://parsaghadermazi/adtoolbox:arm64", } -E_ADM_LOCAL={ - "model_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_model_parameters.json"), - "base_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_base_parameters.json"), - "initial_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_initial_conditions.json"), - "inlet_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_inlet_conditions.json"), - "reactions":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_reactions.json"), - "species":os.path.join(Main_Dir, "Database","ADM_Parameters","e_adm_species.json"), - } - -E_ADM_REMOTE={ - "model_parameters":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_model_parameters.json", - "base_parameters":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_base_parameters.json", - "initial_conditions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_initial_conditions.json", - "inlet_conditions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_inlet_conditions.json", - "reactions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_reactions.json", - "species":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/e_adm/e_adm_species.json" - } - -ADM1_LOCAL={ - "model_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_model_parameters.json"), - "base_parameters":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_base_parameters.json"), - "initial_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_initial_conditions.json"), - "inlet_conditions":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_inlet_conditions.json"), - "reactions":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_reactions.json"), - "species":os.path.join(Main_Dir, "Database","ADM_Parameters","adm1_species.json"), - } - -ADM1_REMOTE={ - "model_parameters":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_model_parameters.json", - "base_parameters":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_base_parameters.json", - "initial_conditions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_initial_conditions.json", - "inlet_conditions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_inlet_conditions.json", - "reactions":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_reactions.json", - "species":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_species.json" - } -EXTERNAL_LINKS={ - "cazy_links":["http://www.cazy.org/Glycoside-Hydrolases.html", - "http://www.cazy.org/Polysaccharide-Lyases.html", - "http://www.cazy.org/Carbohydrate-Esterases.html" - ], - "amplicon2genome":{'Version': 'https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/VERSION', - 'MD5SUM': 'https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/MD5SUM', - 'FILE_DESCRIPTIONS': 'https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/FILE_DESCRIPTIONS', - 'metadata_field_desc': 'https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/auxillary_files/metadata_field_desc.tsv', - 'bac120_ssu': 'https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/genomic_files_all/ssu_all.fna.gz' - }, - - "seed_rxn_url":"https://github.com/modelSEED/modelSEEDDatabase/raw/master/Biochemistry/reactions.json", - "seed_compound_url":"https://github.com/ModelSEED/ModelSEEDDatabase/raw/master/Biochemistry/compounds.json", - +E_ADM_REMOTE = { + "model_parameters": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_model_parameters.json", + "base_parameters": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_base_parameters.json", + "initial_conditions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_initial_conditions.json", + "inlet_conditions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_inlet_conditions.json", + "reactions": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_reactions.json", + "species": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/e_adm/e_adm_species.json", } -INTERNAL_LINKS={ - "protein_db_url":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Protein_DB.fasta", - "adtoolbox_rxn_db_url":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Reaction_Metadata.csv", - "feed_db_url":"https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/feed_db.tsv", - "qiime_classifier_db_url":"https://data.qiime2.org/2022.11/common/silva-138-99-515-806-nb-classifier.qza", - "metagenomics_studies":"https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Kbase/metagenomics_studies.tsv", - "experimental_data_db":"https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/experimental_data_references.json" +ADM1_REMOTE = { + "model_parameters": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_model_parameters.json", + "base_parameters": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_base_parameters.json", + "initial_conditions": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_initial_conditions.json", + "inlet_conditions": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_inlet_conditions.json", + "reactions": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_reactions.json", + "species": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/adm1/adm1_species.json", } +EXTERNAL_LINKS = { + "cazy_links": [ + "http://www.cazy.org/Glycoside-Hydrolases.html", + "http://www.cazy.org/Polysaccharide-Lyases.html", + "http://www.cazy.org/Carbohydrate-Esterases.html", + ], + "amplicon2genome": { + "Version": "https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/VERSION", + "MD5SUM": "https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/MD5SUM", + "FILE_DESCRIPTIONS": "https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/FILE_DESCRIPTIONS", + "metadata_field_desc": "https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/auxillary_files/metadata_field_desc.tsv", + "bac120_ssu": "https://data.ace.uq.edu.au/public/gtdb/data/releases/latest/genomic_files_all/ssu_all.fna.gz", + }, + "seed_rxn_url": "https://github.com/modelSEED/modelSEEDDatabase/raw/master/Biochemistry/reactions.json", + "seed_compound_url": "https://github.com/ModelSEED/ModelSEEDDatabase/raw/master/Biochemistry/compounds.json", +} +INTERNAL_LINKS = { + "protein_db_url": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Protein_DB.fasta", + "adtoolbox_rxn_db_url": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Reaction_Metadata.csv", + "feed_db_url": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/feed_db.tsv", + "qiime_classifier_db_url": "https://data.qiime2.org/2022.11/common/silva-138-99-515-806-nb-classifier.qza", + "metagenomics_studies": "https://github.com/ParsaGhadermazi/Database/raw/main/ADToolbox/Kbase/metagenomics_studies.tsv", + "experimental_data_db": "https://raw.githubusercontent.com/ParsaGhadermazi/Database/main/ADToolbox/experimental_data_references.json", +} -STUDIES_LOCAL={ - "metagenomics_studies":os.path.join(Main_Dir,"Database","Studies","metagenomics_studies.tsv"), - "experimental_data_db":os.path.join(Main_Dir,"Database","Studies","experimental_data_references.json") +E_ADM_MICROBIAL_GROUPS_MAPPING = { + "Hydrolysis carbohydrates": "X_ch", + "Hydrolysis proteins": "X_pr", + "Hydrolysis lipids": "X_li", + "Uptake of sugars": "X_su", + "Uptake of amino acids": "X_aa", + "Uptake of LCFA": "X_fa", + "Uptake of acetate_et": "X_ac_et", + "Uptake of acetate_lac": "X_ac_lac", + "Uptake of propionate_et": "X_chain_et", + "Uptake of propionate_lac": "X_chain_lac", + "Uptake of butyrate_et": "X_chain_et", + "Uptake of butyrate_lac": "X_chain_lac", + "Uptake of valerate": "X_VFA_deg", + "Uptake of caproate": "X_VFA_deg", + "Methanogenessis from acetate and h2": "X_Me_ac", + "Methanogenessis from CO2 and h2": "X_Me_CO2", + "Uptake of ethanol": "X_et", + "Uptake of lactate": "X_lac", } -E_ADM_MICROBIAL_GROUPS_MAPPING={ - "Hydrolysis carbohydrates":"X_ch", - "Hydrolysis proteins":"X_pr", - "Hydrolysis lipids":"X_li", - "Uptake of sugars":"X_su", - "Uptake of amino acids":"X_aa", - "Uptake of LCFA":"X_fa", - "Uptake of acetate_et":"X_ac_et", - "Uptake of acetate_lac":"X_ac_lac", - "Uptake of propionate_et":"X_chain_et", - "Uptake of propionate_lac":"X_chain_lac", - "Uptake of butyrate_et":"X_chain_et", - "Uptake of butyrate_lac":"X_chain_lac", - "Uptake of valerate":"X_VFA_deg", - "Uptake of caproate":"X_VFA_deg", - "Methanogenessis from acetate and h2":"X_Me_ac", - "Methanogenessis from CO2 and h2":"X_Me_CO2", - "Uptake of ethanol":"X_et", - "Uptake of lactate":"X_lac", - } + + +def _norm(path: str | os.PathLike | None, default: str | os.PathLike = ".") -> str: + return os.path.abspath(os.path.expanduser(os.fspath(path or default))) + + +def _join(root: str, *parts: str) -> str: + return os.path.join(root, *parts) + + +def adm_parameter_paths(parameters_dir: str | os.PathLike, prefix: str) -> dict[str, str]: + parameters_dir = _norm(parameters_dir) + return { + "model_parameters": _join(parameters_dir, f"{prefix}_model_parameters.json"), + "base_parameters": _join(parameters_dir, f"{prefix}_base_parameters.json"), + "initial_conditions": _join(parameters_dir, f"{prefix}_initial_conditions.json"), + "inlet_conditions": _join(parameters_dir, f"{prefix}_inlet_conditions.json"), + "reactions": _join(parameters_dir, f"{prefix}_reactions.json"), + "species": _join(parameters_dir, f"{prefix}_species.json"), + } class Database: - "An instance of this class will hold all the configuration information for core.Database functionalities." - - def __init__(self, - compound_db:str=Seed_COMPOUNDS_DB, - reaction_db:str=Seed_RXN_DB, - local_compound_db:str=os.path.join(Main_Dir, "Database", 'Local_compounds.json'), - local_reaction_db:str=os.path.join(Main_Dir, "Database", 'Local_reactions.json'), - csv_reaction_db:str=os.path.join(Main_Dir, "Database", 'Reaction_Metadata.csv'), - feed_db=os.path.join(Main_Dir, "Database", 'feed_db.tsv'), - amplicon_to_genome_db=os.path.join(Main_Dir,'Database','Amplicon2GenomeDBs'), - cazy_links:str=EXTERNAL_LINKS["cazy_links"], - amplicon_to_genome_urls:dict=EXTERNAL_LINKS["amplicon2genome"], - adm_parameters_urls:dict=E_ADM_REMOTE, - adm_parameters:dict=E_ADM_LOCAL, - seed_rxn_url:str =EXTERNAL_LINKS["seed_rxn_url"], - seed_compound_url:str =EXTERNAL_LINKS["seed_compound_url"], - protein_db_url:str =INTERNAL_LINKS["protein_db_url"], - adtoolbox_rxn_db_url:str =INTERNAL_LINKS["adtoolbox_rxn_db_url"], - feed_db_url:str =INTERNAL_LINKS["feed_db_url"], - qiime_classifier_db:str=os.path.join(Main_Dir, "Database","qiime2_classifier_db" ,'qiime2_classifier_db.qza'), - qiime_classifier_db_url:str=INTERNAL_LINKS["qiime_classifier_db_url"], - adtoolbox_singularity=ADTOOLBOX_CONTAINERS["singularity_x86"], - adtoolbox_docker=ADTOOLBOX_CONTAINERS["docker_x86"], - protein_db=os.path.join(Main_Dir, "Database", 'Protein_DB.fasta'), - adm_microbial_groups_mapping=E_ADM_MICROBIAL_GROUPS_MAPPING, - metacyc_protein_db:str=os.path.join(Main_Dir, "Database", 'metacyc_protein_db.fasta'), - studies_remote=INTERNAL_LINKS, - studies_local=STUDIES_LOCAL, - check_sanity:bool=False - ): - self.compound_db = compound_db - self.reaction_db = reaction_db - self.local_compound_db = local_compound_db - self.local_reaction_db = local_reaction_db - self.csv_reaction_db = csv_reaction_db - self.feed_db = feed_db - self.amplicon_to_genome_db = amplicon_to_genome_db - self.cazy_links = cazy_links - self.amplicon_to_genome_urls = amplicon_to_genome_urls - self.adm_parameters_urls = adm_parameters_urls - self.adm_parameters = adm_parameters - self.seed_rxn_url = seed_rxn_url - self.seed_compound_url = seed_compound_url - self.protein_db_url = protein_db_url - self.adtoolbox_rxn_db_url = adtoolbox_rxn_db_url - self.feed_db_url = feed_db_url - self.qiime_classifier_db = qiime_classifier_db - self.qiime_classifier_db_url = qiime_classifier_db_url - self.adtoolbox_singularity=adtoolbox_singularity - self.adtoolbox_docker=adtoolbox_docker - self.protein_db=protein_db - self.adm_microbial_groups_mapping=adm_microbial_groups_mapping - self.studies_remote=studies_remote - self.studies_local=studies_local - self.metacyc_protein_db=metacyc_protein_db - self.protein_db_mmseqs=pathlib.Path(protein_db).parent.joinpath("protein_db_mmseqs") - if check_sanity: - self.check_adm_parameters() - - def check_adm_parameters(self): - branches=all([pathlib.Path(x).parent==pathlib.Path(self.adm_parameters["model_parameters"]).parent for x in self.adm_parameters.values()]) - if not branches: - warnings.warn("The ADM parameters are not in the same directory!") + "Configuration for core.Database functionality." + + def __init__( + self, + database_dir: str | os.PathLike = ".", + *, + compound_db: str | None = None, + reaction_db: str | None = None, + local_compound_db: str | None = None, + local_reaction_db: str | None = None, + csv_reaction_db: str | None = None, + feed_db: str | None = None, + amplicon_to_genome_db: str | None = None, + adm_models: str | None = None, + cazy_links: list[str] = EXTERNAL_LINKS["cazy_links"], + amplicon_to_genome_urls: dict = EXTERNAL_LINKS["amplicon2genome"], + adm_parameters_urls: dict = E_ADM_REMOTE, + adm_parameters: dict | None = None, + seed_rxn_url: str = EXTERNAL_LINKS["seed_rxn_url"], + seed_compound_url: str = EXTERNAL_LINKS["seed_compound_url"], + protein_db_url: str = INTERNAL_LINKS["protein_db_url"], + adtoolbox_rxn_db_url: str = INTERNAL_LINKS["adtoolbox_rxn_db_url"], + feed_db_url: str = INTERNAL_LINKS["feed_db_url"], + qiime_classifier_db: str | None = None, + qiime_classifier_db_url: str = INTERNAL_LINKS["qiime_classifier_db_url"], + adtoolbox_singularity: str = ADTOOLBOX_CONTAINERS["singularity_x86"], + adtoolbox_docker: str = ADTOOLBOX_CONTAINERS["docker_x86"], + protein_db: str | None = None, + adm_microbial_groups_mapping: dict = E_ADM_MICROBIAL_GROUPS_MAPPING, + metacyc_protein_db: str | None = None, + studies_remote: dict = INTERNAL_LINKS, + studies_local: dict | None = None, + check_sanity: bool = False, + ): + self.database_dir = _norm(database_dir) + adm_parameters_dir = _join(self.database_dir, "ADM_Parameters") + studies_dir = _join(self.database_dir, "Studies") + + self.compound_db = _norm(compound_db or _join(self.database_dir, "compounds.json")) + self.reaction_db = _norm(reaction_db or _join(self.database_dir, "reactions.json")) + self.local_compound_db = _norm(local_compound_db or _join(self.database_dir, "Local_compounds.json")) + self.local_reaction_db = _norm(local_reaction_db or _join(self.database_dir, "Local_reactions.json")) + self.csv_reaction_db = _norm(csv_reaction_db or _join(self.database_dir, "Reaction_Metadata.csv")) + self.feed_db = _norm(feed_db or _join(self.database_dir, "feed_db.tsv")) + self.amplicon_to_genome_db = _norm(amplicon_to_genome_db or _join(self.database_dir, "Amplicon2GenomeDBs")) + self.adm_models = _norm(adm_models or _join(adm_parameters_dir, "models.json")) + self.cazy_links = cazy_links + self.amplicon_to_genome_urls = amplicon_to_genome_urls + self.adm_parameters_urls = adm_parameters_urls + self.adm_parameters = adm_parameters or adm_parameter_paths(adm_parameters_dir, "e_adm") + self.adm_parameters = {key: _norm(value) for key, value in self.adm_parameters.items()} + self.seed_rxn_url = seed_rxn_url + self.seed_compound_url = seed_compound_url + self.protein_db_url = protein_db_url + self.adtoolbox_rxn_db_url = adtoolbox_rxn_db_url + self.feed_db_url = feed_db_url + self.qiime_classifier_db = _norm(qiime_classifier_db or _join(self.database_dir, "qiime2_classifier_db", "qiime2_classifier_db.qza")) + self.qiime_classifier_db_url = qiime_classifier_db_url + self.adtoolbox_singularity = adtoolbox_singularity + self.adtoolbox_docker = adtoolbox_docker + self.protein_db = _norm(protein_db or _join(self.database_dir, "Protein_DB.fasta")) + self.adm_microbial_groups_mapping = adm_microbial_groups_mapping + self.studies_remote = studies_remote + default_studies_local = { + "metagenomics_studies": _join(studies_dir, "metagenomics_studies.tsv"), + "experimental_data_db": _join(studies_dir, "experimental_data_references.json"), + } + if studies_local: + default_studies_local.update(studies_local) + self.studies_local = {key: _norm(value) for key, value in default_studies_local.items()} + self.metacyc_protein_db = _norm(metacyc_protein_db or _join(self.database_dir, "metacyc_protein_db.fasta")) + self.protein_db_mmseqs = pathlib.Path(self.protein_db).parent.joinpath("protein_db_mmseqs") + + # Compatibility aliases for older examples/tests that treated Database as + # the active ADM parameter config. + self.model_parameters = self.adm_parameters["model_parameters"] + self.base_parameters = self.adm_parameters["base_parameters"] + self.initial_conditions = self.adm_parameters["initial_conditions"] + self.inlet_conditions = self.adm_parameters["inlet_conditions"] + self.reactions = self.adm_parameters["reactions"] + self.species = self.adm_parameters["species"] + + if check_sanity: + self.check_adm_parameters() + + def check_adm_parameters(self): + branches = all( + pathlib.Path(path).parent == pathlib.Path(self.adm_parameters["model_parameters"]).parent + for path in self.adm_parameters.values() + ) + if not branches: + warnings.warn("The ADM parameters are not in the same directory!") + class Metagenomics: - """ - An instance of this class will hold all the configuration information for core.Metagenomics functionalities. - """ - ### Here we have some class variables that are used in the class - gtdb_dir="ssu_all*.fna" - def __init__(self, - amplicon2genome_k=10, - vsearch_similarity=0.97, - genomes_base_dir=os.path.join(Main_Dir,"Genomes"), - align_to_gtdb_outputs_dir=os.path.join(Main_Dir,"Genomes"), - amplicon2genome_db=Database().amplicon_to_genome_db, - qiime_outputs_dir=os.path.join(Main_Dir,'Metagenomics_Data','QIIME_Outputs'), - genome_alignment_script=os.path.join(Main_Dir,"Metagenomics_Data","QIIME_Outputs","genome_alignment_script.sh"), - vsearch_threads:int=4, - rsync_download_dir=os.path.join(Main_Dir,"Genomes","rsync_download.sh"), - adtoolbox_singularity=ADTOOLBOX_CONTAINERS["singularity_x86"], - adtoolbox_docker=ADTOOLBOX_CONTAINERS["docker_x86"], - genome_alignment_output=os.path.join(Main_Dir,"Outputs"), - csv_reaction_db=Database().csv_reaction_db, - sra=os.path.join(Main_Dir,"Metagenomics_Analysis","SRA"), - bit_score=40, - e_value=10**-5, - qiime2_docker_image="quay.io/qiime2/core:2022.2", - qiime2_singularity_image="docker://quay.io/qiime2/core:2022.2", - qiime2_paired_end_bash_str=os.path.join(PKG_DATA,"qiime_template_paired.txt"), - qiime2_single_end_bash_str=os.path.join(PKG_DATA,"qiime_template_single.txt"), - qiime_classifier_db=Database().qiime_classifier_db, - protein_db:str=Database().protein_db, - protein_db_mmseqs:str=Database().protein_db_mmseqs, - adm_mapping=E_ADM_MICROBIAL_GROUPS_MAPPING, - qiime2_p_trunc_len:tuple[int,int]=("250","250"), - ): - self.k = amplicon2genome_k - self.vsearch_similarity = vsearch_similarity - self.align_to_gtdb_outputs_dir = align_to_gtdb_outputs_dir - self.amplicon2genome_db = amplicon2genome_db - self.qiime_outputs_dir = qiime_outputs_dir - self.protein_db=protein_db - - self.protein_db_mmseqs=protein_db_mmseqs - self.seed_rxn_db=Seed_RXN_DB - self.genome_alignment_output = genome_alignment_output - self.bit_score = bit_score - self.e_value = e_value - self.vsearch_threads=vsearch_threads - self.csv_reaction_db=csv_reaction_db - self.sra=sra - self.qiime2_singularity_image=qiime2_singularity_image - self.qiime2_docker_image=qiime2_docker_image - self.qiime2_paired_end_bash_str=qiime2_paired_end_bash_str - self.qiime2_single_end_bash_str=qiime2_single_end_bash_str - self.qiime_classifier_db=qiime_classifier_db - if list(pathlib.Path(self.amplicon2genome_db).rglob(Metagenomics.gtdb_dir)): - self.gtdb_dir_fasta=str(list(pathlib.Path(self.amplicon2genome_db).rglob(Metagenomics.gtdb_dir))[0]) - else: - self.gtdb_dir_fasta=None - self.genome_alignment_script=genome_alignment_script - self.adtoolbox_singularity=adtoolbox_singularity - self.adtoolbox_docker=adtoolbox_docker - self.rsync_download_dir=rsync_download_dir - self.genomes_base_dir=genomes_base_dir - self.adm_mapping=adm_mapping - self.qiime2_p_trunc_len=qiime2_p_trunc_len + "Configuration for core.Metagenomics functionality." + + gtdb_dir = "ssu_all*.fna" + + def __init__( + self, + metagenomics_dir: str | os.PathLike = ".", + *, + database_dir: str | os.PathLike | None = None, + database: Database | None = None, + amplicon2genome_k=10, + vsearch_similarity=0.97, + genomes_base_dir: str | None = None, + align_to_gtdb_outputs_dir: str | None = None, + amplicon2genome_db: str | None = None, + qiime_outputs_dir: str | None = None, + genome_alignment_script: str | None = None, + vsearch_threads: int = 4, + rsync_download_dir: str | None = None, + adtoolbox_singularity: str = ADTOOLBOX_CONTAINERS["singularity_x86"], + adtoolbox_docker: str = ADTOOLBOX_CONTAINERS["docker_x86"], + genome_alignment_output: str | None = None, + csv_reaction_db: str | None = None, + sra: str | None = None, + bit_score=40, + e_value=10**-5, + qiime2_docker_image="quay.io/qiime2/core:2022.2", + qiime2_singularity_image="docker://quay.io/qiime2/core:2022.2", + qiime2_paired_end_bash_str=os.path.join(PKG_DATA, "qiime_template_paired.txt"), + qiime2_single_end_bash_str=os.path.join(PKG_DATA, "qiime_template_single.txt"), + qiime_classifier_db: str | None = None, + protein_db: str | None = None, + protein_db_mmseqs: str | None = None, + adm_mapping=E_ADM_MICROBIAL_GROUPS_MAPPING, + qiime2_p_trunc_len: tuple[int, int] = ("250", "250"), + ): + self.metagenomics_dir = _norm(metagenomics_dir) + database = database or Database(database_dir=database_dir or self.metagenomics_dir) + + self.k = amplicon2genome_k + self.vsearch_similarity = vsearch_similarity + self.genomes_base_dir = genomes_base_dir or _join(self.metagenomics_dir, "Genomes") + self.align_to_gtdb_outputs_dir = align_to_gtdb_outputs_dir or self.genomes_base_dir + self.amplicon2genome_db = amplicon2genome_db or database.amplicon_to_genome_db + self.qiime_outputs_dir = qiime_outputs_dir or _join(self.metagenomics_dir, "QIIME_Outputs") + self.protein_db = protein_db or database.protein_db + self.protein_db_mmseqs = protein_db_mmseqs or database.protein_db_mmseqs + self.seed_rxn_db = database.reaction_db + self.genome_alignment_output = genome_alignment_output or _join(self.metagenomics_dir, "Outputs") + self.bit_score = bit_score + self.e_value = e_value + self.vsearch_threads = vsearch_threads + self.csv_reaction_db = csv_reaction_db or database.csv_reaction_db + self.sra = sra or _join(self.metagenomics_dir, "SRA") + self.qiime2_singularity_image = qiime2_singularity_image + self.qiime2_docker_image = qiime2_docker_image + self.qiime2_paired_end_bash_str = qiime2_paired_end_bash_str + self.qiime2_single_end_bash_str = qiime2_single_end_bash_str + self.qiime_classifier_db = qiime_classifier_db or database.qiime_classifier_db + self.gtdb_dir_fasta = None + matches = list(pathlib.Path(self.amplicon2genome_db).rglob(Metagenomics.gtdb_dir)) + if matches: + self.gtdb_dir_fasta = str(matches[0]) + self.genome_alignment_script = genome_alignment_script or _join(self.qiime_outputs_dir, "genome_alignment_script.sh") + self.adtoolbox_singularity = adtoolbox_singularity + self.adtoolbox_docker = adtoolbox_docker + self.rsync_download_dir = rsync_download_dir or _join(self.genomes_base_dir, "rsync_download.sh") + self.adm_mapping = adm_mapping + self.qiime2_p_trunc_len = qiime2_p_trunc_len + + class Annotation: - def __init__(self, - metacyc_protein_db:str=Database().metacyc_protein_db - - ): - - self.metacyc_protein_db=metacyc_protein_db - - + def __init__(self, annotation_dir: str | os.PathLike = ".", *, metacyc_protein_db: str | None = None): + self.annotation_dir = _norm(annotation_dir) + self.metacyc_protein_db = metacyc_protein_db or _join(self.annotation_dir, "metacyc_protein_db.fasta") + + class Documentation: - def __init__(self, - readme=os.path.join(PKG_DATA,"README.md")): - self.readme = readme + def __init__(self, documentation_dir: str | os.PathLike | None = None, *, readme: str | None = None): + self.documentation_dir = _norm(documentation_dir or PKG_DATA) + self.readme = readme or _join(self.documentation_dir, "README.md") + + +class Studies: + def __init__( + self, + studies_dir: str | os.PathLike = ".", + *, + metagenomics_studies: str | None = None, + experimental_data_db: str | None = None, + ): + self.studies_dir = _norm(studies_dir) + self.metagenomics_studies = metagenomics_studies or _join(self.studies_dir, "metagenomics_studies.tsv") + self.experimental_data_db = experimental_data_db or _join(self.studies_dir, "experimental_data_references.json") + self.experimental_data_references = self.experimental_data_db + class Utils: - """ - An instance of this class will hold all the configuration information for utils module functionalities.""" - def __init__(self, - slurm_template:str=os.path.join(PKG_DATA,"slurm_template.txt"), - docker_template_qiime:str=None, - singularity_template_qiime:str=None, - slurm_executer:str='', - slurm_wall_time:str='24:00:00', - slurm_job_name:str='ADToolbox', - slurm_outlog:str='ADToolbox.log', - slurm_cpus:str="12", - slurm_memory:str="100G", - slurm_save_dir:str=os.getcwd(), - adtoolbox_singularity:str=ADTOOLBOX_CONTAINERS["singularity_x86"], - adtoolbox_docker:str=ADTOOLBOX_CONTAINERS["docker_x86"] - ) -> None: - self.slurm_template = slurm_template - self.docker_template_qiime = docker_template_qiime - self.singularity_template_qiime = singularity_template_qiime - self.slurm_executer = slurm_executer - self.slurm_wall_time = slurm_wall_time - self.slurm_job_name = slurm_job_name - self.slurm_outlog=slurm_outlog - self.slurm_cpus = slurm_cpus - self.slurm_save_dir = slurm_save_dir - self.slurm_memory = slurm_memory - self.adtoolbox_singularity=adtoolbox_singularity - self.adtoolbox_docker=adtoolbox_docker - - -def get_base_dir(): - "This function returns the current base directory of the program." - return Main_Dir - -def set_base_dir(path:str): - """This function changes the base directory of the program""" - global Main_Dir - ans=input("This will change the base directory of the program. Are you sure you want to continue? (y/n)") - if ans == "y": - with open(os.path.join(PKG_DATA,"ADToolbox_Configs.json"),'r') as f: - conf = json.load(f) - try: - os.makedirs(path,exist_ok=True) - except Exception: - rich.print("[red]Base directory not changed") - return - else: - - Main_Dir=path - conf["Base_Dir"]=path - with open(os.path.join(PKG_DATA,"ADToolbox_Configs.json"),'w') as f: - json.dump(conf,f) - - rich.print("[green]Base directory changed") - else: - rich.print("[red]Base directory not changed") - - - - - -if __name__=="__main__": - t=Database() - t.adm_parameters["model_parameters"]=os.path.join(Main_Dir, "Database","somewhere_else","e_adm_model_parameters.json") - t.check_adm_parameters() \ No newline at end of file + "Configuration for utility helpers." + + def __init__( + self, + utils_dir: str | os.PathLike = ".", + *, + slurm_template: str = os.path.join(PKG_DATA, "slurm_template.txt"), + docker_template_qiime: str | None = None, + singularity_template_qiime: str | None = None, + slurm_executer: str = "", + slurm_wall_time: str = "24:00:00", + slurm_job_name: str = "ADToolbox", + slurm_outlog: str = "ADToolbox.log", + slurm_cpus: str = "12", + slurm_memory: str = "100G", + slurm_save_dir: str | None = None, + adtoolbox_singularity: str = ADTOOLBOX_CONTAINERS["singularity_x86"], + adtoolbox_docker: str = ADTOOLBOX_CONTAINERS["docker_x86"], + ) -> None: + self.utils_dir = _norm(utils_dir) + self.slurm_template = slurm_template + self.docker_template_qiime = docker_template_qiime + self.singularity_template_qiime = singularity_template_qiime + self.slurm_executer = slurm_executer + self.slurm_wall_time = slurm_wall_time + self.slurm_job_name = slurm_job_name + self.slurm_outlog = slurm_outlog + self.slurm_cpus = slurm_cpus + self.slurm_save_dir = slurm_save_dir or self.utils_dir + self.slurm_memory = slurm_memory + self.adtoolbox_singularity = adtoolbox_singularity + self.adtoolbox_docker = adtoolbox_docker + + +_DEFAULT_DATABASE = Database() +RXN_DB = _DEFAULT_DATABASE.csv_reaction_db +Seed_RXN_DB = _DEFAULT_DATABASE.reaction_db +Seed_COMPOUNDS_DB = _DEFAULT_DATABASE.compound_db +E_ADM_LOCAL = _DEFAULT_DATABASE.adm_parameters +ADM1_LOCAL = adm_parameter_paths(os.path.join(_DEFAULT_DATABASE.database_dir, "ADM_Parameters"), "adm1") +STUDIES_LOCAL = _DEFAULT_DATABASE.studies_local diff --git a/adtoolbox/core.py b/adtoolbox/core.py index 793dadf..c363ec8 100644 --- a/adtoolbox/core.py +++ b/adtoolbox/core.py @@ -23,7 +23,6 @@ import configs from rich.progress import track,Progress import rich -from adtoolbox import Main_Dir from typing import Iterable from typing import Union from dataclasses import dataclass @@ -463,8 +462,8 @@ class Database: >>> assert type(db)==Database and type(db.config)==configs.Database ''' - def __init__(self, config:configs.Database=configs.Database())->None: - self.config = config + def __init__(self, config:configs.Database|None=None)->None: + self.config = config or configs.Database() def initialize_protein_db(self)->None: @@ -2350,5 +2349,3 @@ def annotate_with_metacyc(self, - - diff --git a/adtoolbox/metagenomics_report.py b/adtoolbox/metagenomics_report.py deleted file mode 100644 index f1531c1..0000000 --- a/adtoolbox/metagenomics_report.py +++ /dev/null @@ -1,461 +0,0 @@ -import plotly.express as px -from dash import Dash, html, dcc -import plotly.graph_objects as go -from dash import Dash, dcc,ctx, html, Input, Output,dash_table,callback,no_update -from dash.dash_table.Format import Format, Scheme, Sign, Symbol -import pandas as pd -import dash_bootstrap_components as dbc -import json -from collections import OrderedDict -from sklearn.manifold import MDS,TSNE -import base64 -from adtoolbox import core,adm,configs -import numpy as np - -""" -samples file should be formatted like this: - -{ - "sample1": - { - "src":"Path/to/figure", - "data":{ - "X_ch":0.1, - .... - }, - "group":"group1" - }, - "sample2": - { - "src":"Path/to/figure", - "data":{ - "X_ch":0.1, - .... - }, - "group":"group2" - }, - ... -} - -""" - - -# Small molecule drugbank dataset -# Source: https://raw.githubusercontent.com/plotly/dash-sample-apps/main/apps/dash-drug-discovery/data/small_molecule_drugbank.csv' -# data_path = '/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/experiment/datasets/small_molecule_drugbank.csv' - -# df = pd.read_csv(data_path, header=0, index_col=0) - -# fig = go.Figure(data=[ -# go.Scatter( -# x=df["LOGP"], -# y=df["PKA"], -# mode="markers", -# marker=dict( -# colorscale='viridis', -# color=df["MW"], -# size=df["MW"], -# colorbar={"title": "Molecular
Weight"}, -# line={"color": "#444"}, -# reversescale=True, -# sizeref=45, -# sizemode="diameter", -# opacity=0.8, -# ) -# ) -# ]) - -# turn off native plotly.js hover effects - make sure to use -# hoverinfo="none" rather than "skip" which also halts events. -# fig.update_traces(hoverinfo="none", hovertemplate=None) - -# fig.update_layout( -# xaxis=dict(title='Log P'), -# yaxis=dict(title='pkA'), -# plot_bgcolor='rgba(255,255,255,0.1)' -# ) -_compounds=["S_bu","S_ac","S_lac","S_et"] - - - - -TOTALL_MICROBIAL_COD=10 -DURATION=5 - -def process_input(json_data,method="MDS",normalize=True,n_components=2): - samples=list(json_data.keys()) - df=pd.DataFrame([json_data[i]["data"] for i in samples],index=samples) - df=df.div(df.sum(axis=1), axis=0) - df_copy=df.copy() - X=df.to_numpy() - if method=="MDS": - mds=MDS(n_components=n_components,max_iter=10000) - X=mds.fit_transform(X) - elif method=="TSNE": - tsne=TSNE(n_components=n_components,n_iter=10000) - X=tsne.fit_transform(X) - df=pd.DataFrame(X,index=df_copy.index,columns=["x","y"] if n_components==2 else ["x","y","z"]) - df["group"]=[json_data[i]["group"] for i in samples] - df["src"]=[json_data[i]["src"] for i in samples] - df_copy["group"]=df["group"] - return df,df_copy - - -def main(json_file:str,method:str="MDS",normalize:bool=True,n_components:int=2): - with open(json_file,"r") as f: - json_data=json.load(f) - - df,df_copy=process_input(json_data,method=method,normalize=normalize,n_components=n_components) - - if n_components==2: - fig=px.scatter(df,x="x",y="y",color="group",hover_name=process_input(json_data,method="MDS",normalize=True)[0].index,hover_data=["src"]) - else: - fig=px.scatter_3d(df,x="x",y="y",z="z",color="group",hover_name=process_input(json_data,method="MDS",normalize=True)[0].index,hover_data=["src"]) - - fig.update_traces(hoverinfo="none", hovertemplate=None) - fig.update_traces(marker=dict(size=15,)) - #increase the font size - fig.update_layout( - font=dict( - size=19, - ) - ) - # convert df_copy to tall format - - df_copy_=df_copy.reset_index().melt(id_vars=["index","group"],var_name="compound",value_name="concentration") - - fig_cod_portions=px.box(df_copy_,x="compound",y="concentration",color="group",) - fig_cod_portions.update_layout(font=dict(size=19,)) - - - - #### Modeling Panel #### - - base_feed=adm.DEFAULT_FEED - - with open(configs.Database().model_parameters,"r") as f: - mp=json.load(f) - with open(configs.Database().base_parameters,"r") as f: - bp=json.load(f) - with open(configs.Database().species,"r") as f: - sp=json.load(f) - with open(configs.Database().reactions,"r") as f: - rxns=json.load(f) - with open(configs.Database().initial_conditions,"r") as f: - ic=json.load(f) - with open(configs.Database().inlet_conditions,"r") as f: - inc=json.load(f) - - - base_model=adm.Model(model_parameters=mp, - base_parameters=bp, - initial_conditions=ic, - inlet_conditions=inc, - feed=base_feed, - species=sp, - reactions=rxns, - ode_system=adm.modified_adm_ode_sys, - build_stoichiometric_matrix=adm.build_modified_adm_stoichiometric_matrix, - ) - sol_df={} - - for i in json_data.keys(): - prep={"sample":i, - "host":json_data[i]["group"],} - ic_=ic.copy() - for j in json_data[i]["data"].keys(): - ic_[j]=df_copy.loc[i,j]*TOTALL_MICROBIAL_COD - model=adm.Model(model_parameters=mp, - base_parameters=bp, - initial_conditions=ic_, - inlet_conditions=inc, - feed=base_feed, - species=sp, - reactions=rxns, - ode_system=adm.modified_adm_ode_sys, - build_stoichiometric_matrix=adm.build_modified_adm_stoichiometric_matrix, - ) - sol=model.solve_model(np.linspace(0, DURATION, 1000)) - prep.update({"sol":sol.y}) - sol_df.update({i:prep}) - comp_inds=[sp.index(i) for i in _compounds] - solution=[] - for sample in sol_df.keys(): - for ind in comp_inds: - solution.append({"sample":sample, - "host":sol_df[sample]["host"], - "compound":sp[ind], - "concentration":sol_df[sample]["sol"][ind,-1]}) - - - solution_df=pd.DataFrame(solution) - conc_plot=px.box(solution_df,x="compound",y="concentration",color="host",points="all") - ## add all points and make the font size bigger - conc_plot.update_traces(marker=dict(size=6,), - pointpos=0,) - conc_plot.update_layout(font=dict(size=19,)) - - - - app = Dash(__name__,external_stylesheets=[dbc.themes.FLATLY]) - styles={ - 'table_width': '95%', - 'padding-left': '20px', - 'container_width': '95%' - } - app.layout =html.Div([dbc.Container( - html.H1("ADToolbox Metagenomics Report", - style={"font-size":"70px", "padding-top":"50px"}), - className="text-white bg-primary", - style={"height":"300px","text-align": "center"}, - fluid=True), - dbc.Container([ - dbc.Row( - [dbc.Card([ - html.H2("High-Level Relationship Between Samples",style={"font-size":"40px","padding-top":"5px"}), - dcc.Graph(figure=fig, - id='MDS_Plot', - clear_on_unhover=True, - style={ - "height":"800px", - "padding-top":"20px", - "padding-bottom":"20px", - "width":styles['container_width'], - "align-items": "center", - "display": "inline-block",} - ), - dcc.Tooltip(id="cod-tooltip"),], - style={"align-items": "center"}, - class_name='bg-light' - - ), - dbc.Card([ - html.H2("Portion of COD Concentrations of ADM Microbial Species",style={"font-size":"40px","padding-top":"5px"}), - dcc.Graph(figure=fig_cod_portions, - id='box_plot', - clear_on_unhover=True, - style={ - "height":"800px", - "padding-top":"20px", - "padding-bottom":"20px", - "width":styles['container_width'], - "align-items": "center", - "display": "inline-block",} - )], - style={"align-items": "center","padding-top":"10px" }, - class_name='bg-light'), - - dbc.Card([ - dbc.Row([ - dbc.Col([ - html.H2("Select Species to Show",style={"width":"300px","font-size":"25px","padding-bottom":"5px","align-items":"center",},), - dcc.Checklist(sp, id="species", - value=_compounds, - style={"font-size":"22px", - "padding-left":"5px", - "padding-buttom":"100px", - "height":"150px", - "overflow-x":"scroll", - "width":"250px", - "background-color":"#f8f9fa", - "color":"#808080" - }, - - inline=False, - labelStyle={'display': 'block'}),],style={"padding-top":"5px", - "height":"280px", - "padding-bottom":"50px"}), - dbc.Col( - [ - html.H2("Feed Composition",style={"width":"300px","font-size":"25px","padding-bottom":"5px","align-items":"center",},), - dash_table.DataTable( - id='feed_comp', - columns=[{"name": i, "id": i} for i in ["Lipid","Carbohydrates","Proteins"]], - data=[ - {"Lipid":10,"Carbohydrates":20,"Proteins":10} - ], - editable=True, - style_header={ - 'backgroundColor': 'gray', - 'fontWeight': 'bold', - "fontFamily": "system-ui", - 'color':'white', - 'font-size':'20px', - 'height': '60px', - 'width':'200px', - 'text-align':'center', - - }, - style_data={ - 'backgroundColor': 'white', - 'color': 'black', - 'font-size':'20px', - 'height': '60px', - 'text-align':'center', - 'width':'150px',} - ), - dbc.Spinner(html.Div(id="loading-output"), - color="primary",type="grow", - fullscreen=True, - fullscreen_style={"background-color":"rgba(255,255,255,0.8)"} - ), - ] - , style={"width":"150px"}), - dbc.Col([ - html.H3("Feed Characteristics",style={"font-size":"25px","padding-bottom":"5px","align-items":"center",},), - dash_table.DataTable( - id='feed_char', - columns=[{"name": i, "id": i} for i in ["TSS","Total COD","Particulate Inerts","Soluble Inerts"]], - - data=[ - {"TSS":10,"Total COD":20,"Particulate Inerts":10,"Soluble Inerts":10} - ], - editable=True, - style_header={ - 'backgroundColor': 'gray', - 'fontWeight': 'bold', - "fontFamily": "system-ui", - 'color':'white', - 'font-size':'20px', - 'height': '60px', - 'width':'200px', - 'text-align':'center', - - }, - style_data={ - 'backgroundColor': 'white', - 'color': 'black', - 'font-size':'20px', - 'height': '60px', - 'text-align':'center', - 'width':'150px',} - ), - - - ]), - - - ],class_name='text-white bg-primary',style={"width":"95%","padding-top":"25px","height":"250px" }), - dcc.Graph(figure=conc_plot,id="conc_plot", - style={"height":"800px","padding-top":"20px", - "padding-bottom":"20px","width":styles['container_width'], - "align-items": "center","display": "inline-block",}) - - - - - - ],style={"align-items": "center","padding-top":"5px" },class_name='bg-light'), - - ]),]),]) - - - - - - @callback( - Output("cod-tooltip", "show"), - Output("cod-tooltip", "bbox"), - Output("cod-tooltip", "children"), - Input("MDS_Plot", "hoverData"), - ) - def display_hover(hoverData): - if hoverData is None: - return False, no_update, no_update - pt = hoverData["points"][0] - bbox = pt["bbox"] - img_src=base64.b64encode(open(pt["customdata"][0], 'rb').read()).decode('ascii') - children = [ - html.Div([ - html.Img(src='data:image/png;base64,{}'.format(img_src), style={"width": "100%"}), - # html.P(f"{form}"), - # html.P(f"{desc}"), - ], style={'width': '500px', 'white-space': 'normal'}) - ] - - return True, bbox, children - - - @callback( - Output("conc_plot", "figure"), - Output("loading-output", "children"), - Input("species", "value"), - Input("feed_comp", "data"), - Input("feed_char", "data") - ) - def checkbox_update(value,data1,data2): - if ctx.triggered[0]["prop_id"]=="feed_comp.data" or ctx.triggered[0]["prop_id"]=="feed_char.data": - - ic_["TSS"]=float(data2[0]["TSS"]) - ic_["TDS"]=float(data2[0]["Total COD"])-float(data2[0]["TSS"]) - feed=core.Feed( - carbohydrates=float(data1[0]["Carbohydrates"]), - proteins=float(data1[0]["Proteins"]), - lipids=float(data1[0]["Lipid"]), - tss=float(data2[0]["TSS"]), - si=float(data2[0]["Soluble Inerts"]), - xi=float(data2[0]["Particulate Inerts"]),) - - sol_df_={} - for i in json_data.keys(): - prep={"sample":i, - "host":json_data[i]["group"],} - for j in json_data[i]["data"].keys(): - ic_[j]=df_copy.loc[i,j]*TOTALL_MICROBIAL_COD - model=adm.Model(model_parameters=mp, - base_parameters=bp, - initial_conditions=ic_, - inlet_conditions=inc, - feed=feed, - species=sp, - reactions=rxns, - ode_system=adm.modified_adm_ode_sys, - build_stoichiometric_matrix=adm.build_modified_adm_stoichiometric_matrix, - ) - sol=model.solve_model(np.linspace(0, DURATION, 1000)) - prep.update({"sol":sol.y}) - sol_df_.update({i:prep}) - comp_inds=[sp.index(i) for i in value] - solution=[] - for sample in sol_df_.keys(): - for ind in comp_inds: - solution.append({"sample":sample, - "host":sol_df_[sample]["host"], - "compound":sp[ind], - "concentration":sol_df_[sample]["sol"][ind,-1]}) - - - solution_df=pd.DataFrame(solution) - conc_plot=px.box(solution_df,x="compound",y="concentration",color="host",points="all") - conc_plot.update_traces(marker=dict(size=6,), - pointpos=0,) - conc_plot.update_layout(font=dict(size=19,)) - else: - inds=[sp.index(i) for i in value] - solution=[] - for sample in sol_df.keys(): - for ind in inds: - solution.append({"sample":sample, - "host":sol_df[sample]["host"], - "compound":sp[ind], - "concentration":sol_df[sample]["sol"][ind,-1]}) - solution_df=pd.DataFrame(solution) - conc_plot=px.box(solution_df,x="compound",y="concentration",color="host",points="all") - ## add all points and make the font size bigger - conc_plot.update_traces(marker=dict(size=6,), - pointpos=0,) - conc_plot.update_layout(font=dict(size=19,)) - return conc_plot, "" - - - - @callback(Output("loading", "children"), Input("feed_comp", "data")) - def input_triggers_spinner(value): - return value - - app.run_server() - - - -if __name__ == "__main__": - main("/Users/parsaghadermarzi/Desktop/Academics/Projects/Anaerobic_Digestion_Modeling/experiment/full_data.json",method="MDS",normalize=True,n_components=3) \ No newline at end of file diff --git a/adtoolbox/optimize.py b/adtoolbox/optimize.py index 6975c54..d69c0dd 100644 --- a/adtoolbox/optimize.py +++ b/adtoolbox/optimize.py @@ -1,6 +1,5 @@ from adtoolbox import core,configs from adtoolbox.core import Experiment -from adtoolbox import Main_Dir from adtoolbox import adm import pandas as pd import numpy as np @@ -21,10 +20,11 @@ import os from functools import lru_cache start_time=time.strftime("%Y-%m-%d-%H-%M-%S") -log_dir=os.path.join(Main_Dir,"logs",f"optimize_{start_time}") +log_base_dir = os.path.join(os.getcwd(), "logs") +log_dir=os.path.join(log_base_dir,f"optimize_{start_time}") -if not os.path.exists(os.path.join(Main_Dir,"logs")): - os.makedirs(os.path.join(Main_Dir,"logs")) +if not os.path.exists(log_base_dir): + os.makedirs(log_base_dir) logging.basicConfig( filename=f"{log_dir}.log", @@ -696,7 +696,7 @@ def calculate_fit_stats(model:adm.Model,data:Iterable[core.Experiment])->Validat if __name__ == "__main__": import utils - params=utils.load_multiple_json_files(configs.E_ADM_2_LOCAL) + params=utils.load_multiple_json_files(configs.E_ADM_LOCAL) model=adm.Model( initial_conditions=params.initial_conditions, inlet_conditions=params.inlet_conditions, @@ -706,8 +706,8 @@ def calculate_fit_stats(model:adm.Model,data:Iterable[core.Experiment])->Validat feed=adm.DEFAULT_FEED, base_parameters=params.base_parameters, control_state={}, - build_stoichiometric_matrix=adm.build_e_adm_2_stoichiometric_matrix, - ode_system=adm.e_adm_2_ode_sys, + build_stoichiometric_matrix=adm.build_e_adm_stoichiometric_matrix, + ode_system=adm.e_adm_ode_sys, ) db=core.Database(configs.Database()) exp=db.get_experiment_from_experiments_db("name","")[:3] diff --git a/adtoolbox/pipeline.py b/adtoolbox/pipeline.py deleted file mode 100644 index 0be7921..0000000 --- a/adtoolbox/pipeline.py +++ /dev/null @@ -1,47 +0,0 @@ -import configs -import inspect -import rich -from typing import Callable - -class Pipeline: - """A class for running a chain of commands in series with parallelism.""" - def __init__(self,commands:list[Callable],arguments:dict,validate:bool=True): - self.commands=commands - self.arguments=arguments - self._required_args=sum(list(inspect.signature(command).parameters.keys()) for command in self.commands) - if validate: - self.validate() - - def validate(self): - pass - - - - - - - - - - - - - - def run(self): - pass - - @staticmethod - def extract_reqs_sats(command): - """Extracts the requirements and satisfactions from a command using the tags in the docstrings""" - - if "Requires:" in command.__doc__ and "Satisfies:" in command.__doc__: - reqs=re.findall(".+",command.__doc__) - for ind,i in enumerate(reqs): - reqs[ind]=i.replace("","").replace("","") - sats=re.findall(".+",command.__doc__) - for ind,i in enumerate(sats): - sats[ind]=i.replace("","").replace("","") - else: - raise Exception(f"The command docstring for {command.__name__} is not properly formatted. Please use the following tags: and for requirements and satisfactions respectively.") - - return reqs,sats \ No newline at end of file diff --git a/adtoolbox/tables.py b/adtoolbox/tables.py index 38086c3..88c2d82 100644 --- a/adtoolbox/tables.py +++ b/adtoolbox/tables.py @@ -3,7 +3,6 @@ - kbase class design """ import os -from __init__ import Main_Dir import rich import configs import dash diff --git a/adtoolbox/utils.py b/adtoolbox/utils.py index 6595591..16ef1f6 100644 --- a/adtoolbox/utils.py +++ b/adtoolbox/utils.py @@ -394,6 +394,40 @@ def load_multiple_json_files(json_files:dict[str,str])->dict: jsons_tuple=jsons_tuple(**jsons) return jsons_tuple + +def load_json_entry(json_file: str, entry_key: str, required_keys: Iterable[str] | None = None) -> dict: + """Load one top-level entry from a keyed JSON file.""" + with open(json_file, "r") as f: + entries = json.load(f) + + if entry_key not in entries: + available = ", ".join(sorted(entries)) + raise KeyError(f"{entry_key!r} was not found in {json_file}. Available keys: {available}") + + entry = entries[entry_key] + if not isinstance(entry, dict): + raise TypeError(f"{entry_key!r} in {json_file} must be a JSON object") + + if required_keys: + missing = sorted(set(required_keys) - set(entry)) + if missing: + raise KeyError(f"{entry_key!r} in {json_file} is missing required keys: {', '.join(missing)}") + + return entry + + +def load_model_json(json_file: str, model_key: str) -> dict: + """Load one ADM model from a JSON file containing all models.""" + required_keys = [ + "model_parameters", + "base_parameters", + "initial_conditions", + "inlet_conditions", + "reactions", + "species", + ] + return load_json_entry(json_file, model_key, required_keys=required_keys) + def needs_repair(func): def to_be_repaired(*args,**kwargs): warn("This function is not optimized yet or have issues in running. Please use it with caution.") diff --git a/docs/ADM_Models.md b/docs/ADM_Models.md new file mode 100644 index 0000000..147b698 --- /dev/null +++ b/docs/ADM_Models.md @@ -0,0 +1,513 @@ +# ADM Models + +ADToolbox exposes two anaerobic digestion models: + +| CLI command | Model | Parameter folder | Stoichiometric builder | ODE system | +| --- | --- | --- | --- | --- | +| `adtoolbox ADM adm1` | ADM1 | `adm1` | `adm.build_adm1_stoichiometric_matrix` | `adm.adm1_ode_sys` | +| `adtoolbox ADM e-adm` | e-ADM | `e_adm` | `adm.build_e_adm_stoichiometric_matrix` | `adm.e_adm_ode_sys` | + +The CLI and public API use only the names ADM1 and e-ADM. The preferred parameter format is one `models.json` file containing all models, keyed by model name. + +## Model Inputs + +The canonical model input is a single JSON file with one top-level key per model: + +```json +{ + "adm1": { + "species": [], + "reactions": [], + "model_parameters": {}, + "base_parameters": {}, + "initial_conditions": {}, + "inlet_conditions": {} + }, + "e_adm": { + "species": [], + "reactions": [], + "model_parameters": {}, + "base_parameters": {}, + "initial_conditions": {}, + "inlet_conditions": {} + } +} +``` + +The first layer is always the model key. The second layer is the complete model payload used to instantiate `adm.Model`. + +| Top-level key | Public model | CLI command | +| --- | --- | --- | +| `adm1` | ADM1 | `adtoolbox ADM adm1 --models-json models.json` | +| `e_adm` | e-ADM | `adtoolbox ADM e-adm --models-json models.json` | + +The older six-file layout is still supported as a compatibility path, either by passing `--parameters-dir` or by passing each file explicitly. + +| Input file | ADM1 name | e-ADM name | Description | +| --- | --- | --- | --- | +| Model parameters | `adm1_model_parameters.json` | `e_adm_model_parameters.json` | Kinetic, equilibrium, inhibition, gas transfer, and yield parameters used in reaction rates and acid/base calculations. | +| Base parameters | `adm1_base_parameters.json` | `e_adm_base_parameters.json` | Reactor-level constants such as liquid volume, gas volume, influent flow, gas transfer constants, pressure, temperature, and gas constants. | +| Initial conditions | `adm1_initial_conditions.json` | `e_adm_initial_conditions.json` | Initial concentration of every model state. Keys must match the species list. | +| Inlet conditions | `adm1_inlet_conditions.json` | `e_adm_inlet_conditions.json` | Influent concentration of every model state, using the same species names with `_in` appended. | +| Reactions | `adm1_reactions.json` | `e_adm_reactions.json` | Ordered reaction names. This order defines the columns of the stoichiometric matrix and the reaction-rate vector. | +| Species | `adm1_species.json` | `e_adm_species.json` | Ordered state names. This order defines the rows of the stoichiometric matrix and the concentration vector. | + +The CLI also accepts: + +| Option | Applies to | Description | +| --- | --- | --- | +| `--models-json` | ADM1, e-ADM | Preferred input. JSON file containing all models keyed by model name. | +| `--parameters-dir` | ADM1, e-ADM | Directory containing the six JSON files for the selected model. | +| `--model-parameters`, `--base-parameters`, `--initial-conditions`, `--inlet-conditions`, `--reactions`, `--species` | ADM1, e-ADM | Override individual JSON file paths. | +| `--report` | ADM1, e-ADM | Output mode. Use `csv` to write a report or `dash` to open the interactive app. If omitted, the model is solved without creating an output view. | +| `--control-states` | e-ADM | JSON object of states to hold constant. By default, e-ADM holds `S_H_ion` at `10^-6.5`. | + +### ADM1 Input Contract + +| Input object | Required shape | Required naming rule | How it is used | +| --- | --- | --- | --- | +| `species` | list of 38 strings | Names must match every key in `initial_conditions`; each inlet key must be `species_name + "_in"`. | Defines the order of the state vector `c`. | +| `reactions` | list of 28 strings | Names must match the reaction names used in `build_adm1_stoichiometric_matrix` and `adm1_ode_sys`. | Defines the order of the reaction vector `v` and the columns of `S`. | +| `initial_conditions` | object with 38 numeric values | Keys are exactly the ADM1 species names. | Converted to `y0`, the initial state passed to `solve_ivp`. | +| `inlet_conditions` | object with 38 numeric values | Keys are exactly the ADM1 species names with `_in` appended. | Converted to `c_in`, used in the liquid and gas flow terms. | +| `base_parameters` | object with reactor constants | Must include `q_in`, `V_liq`, `V_gas`, `R`, `T_op`, `T_base`, `P_atm`, and `K_W` or equivalent water-equilibrium value used by the model. | Controls hydraulic dilution, gas headspace scaling, and gas partial pressures. | +| `model_parameters` | object with kinetic, yield, fraction, acid/base, inhibition, and gas-transfer constants | Must include all keys referenced by ADM1 rates and stoichiometry, such as `k_dis`, `k_hyd_*`, `k_m_*`, `K_S_*`, `Y_*`, `f_*`, `C_*`, `N_*`, `K_a_*`, `K_pH_*`, `K_I_*`, `k_L_a`, `K_H_*`, and `k_p`. | Controls reaction rates, stoichiometric coefficients, inhibition factors, acid/base rates, and gas transfer. | + +### e-ADM Input Contract + +| Input object | Required shape | Required naming rule | How it is used | +| --- | --- | --- | --- | +| `species` | list of 49 strings | Names must match every key in `initial_conditions`; each inlet key must be `species_name + "_in"`. | Defines the order of the state vector `c`. | +| `reactions` | list of 45 strings | Names must match the reaction names used in `build_e_adm_stoichiometric_matrix` and `e_adm_ode_sys`. | Defines the order of the reaction vector `v` and the columns of `S`. | +| `initial_conditions` | object with 49 numeric values | Keys are exactly the e-ADM species names. | Converted to `y0`, after applying any `control_state` overrides. | +| `inlet_conditions` | object with 49 numeric values | Keys are exactly the e-ADM species names with `_in` appended. | Converted to `c_in`, used in the liquid and gas flow terms. | +| `base_parameters` | object with reactor constants | Must include `q_in`, `V_liq`, `V_gas`, `R`, `T_op`, `T_base`, `P_atm`, and `K_W`. | Controls hydraulic dilution, gas headspace scaling, and gas partial pressures. | +| `model_parameters` | object with kinetic, yield, fraction, acid/base, inhibition, and gas-transfer constants | Must include all keys referenced by e-ADM rates and stoichiometry, including `Y_su`, `Y_aa`, `Y_fa`, `Y_ac_et`, `Y_ac_lac`, `Y_pro_et`, `Y_pro_lac`, `Y_bu_et`, `Y_bu_lac`, `Y_va`, `Y_cap`, `Y_bu`, `Y_Me_ac`, `Y_Me_CO2`, `Y_ac_et_ox`, and `Y_pro_lac_ox`. | Controls reaction rates, stoichiometric coefficients, inhibition factors, acid/base rates, and gas transfer. | +| `control_state` | optional object | Keys must be valid species names. | Overrides initial conditions and forces selected derivatives to zero. The CLI sets `S_H_ion = 10^-6.5` by default for e-ADM. | + +### Other Keyed Database Files + +The same first-layer-key pattern should be used for other structured databases. For example, feeds can live in one `feeds.json` file: + +```json +{ + "food_waste": { + "name": "food_waste", + "carbohydrates": 10, + "proteins": 20, + "lipids": 20, + "si": 30, + "xi": 50, + "tss": 80 + }, + "manure": { + "name": "manure", + "carbohydrates": 5, + "proteins": 15, + "lipids": 5, + "si": 20, + "xi": 55, + "tss": 70 + } +} +``` + +That keeps the rule consistent: one file per database type, one top-level key per named item. + +## Model Outputs + +| Output | Source | Description | +| --- | --- | --- | +| Concentration trajectories | `Model.solve_model(...)` | Returns a SciPy `OdeResult`. `sol.t` contains time points and `sol.y` contains species concentrations ordered exactly like `model.species`. | +| CSV report | `--report csv` or `Model.csv_report(...)` | Writes `_Report.csv`. Rows are species and columns are simulated time points. | +| Interactive dashboard | `--report dash` or `Model.dash_app(...)` | Opens a Dash app with concentration plots and model tables. | +| Reaction fluxes | `model.info["Fluxes"]` | The most recent reaction-rate vector `v`, ordered exactly like `model.reactions`. | +| Stoichiometric matrix | `model.s` | Matrix `S` with shape `number_of_species x number_of_reactions`. Entry `S[i, j]` is the coefficient for species `i` in reaction `j`. | + +ADM1 has 38 species and 28 reactions. e-ADM has 49 species and 45 reactions. + +### Output Shapes + +| Output | ADM1 shape | e-ADM shape | Notes | +| --- | --- | --- | --- | +| `sol.t` | `(n_time_points,)` | `(n_time_points,)` | Time is in days in the default examples. The CLI uses `np.linspace(0, 30, 10000)`. | +| `sol.y` | `(38, n_time_points)` | `(49, n_time_points)` | Rows follow `model.species`; columns follow `sol.t`. | +| `model.s` | `(38, 28)` | `(49, 45)` | Rows follow species; columns follow reactions. | +| `model.info["Fluxes"]` | `(28, 1)` | `(45, 1)` | Stores the most recent flux calculation from the ODE function. | +| CSV report | 38 rows plus header | 49 rows plus header | The first column is the species index. Remaining columns are simulated time points. | + +The solver returns a fallback solution filled with `1e10` if integration fails. That is a failure sentinel, not a physical concentration. + +## Mathematical Setup + +The JSON files describe the state names, reaction names, and parameter values. The Python model converts them into a dynamic system by building a stoichiometric matrix and evaluating reaction rates at every time step. + +| Step | Formula | Meaning | +| --- | --- | --- | +| Species vector | `c(t) = [c_1(t), ..., c_n(t)]^T` | Concentrations are ordered by the species JSON file. | +| Reaction-rate vector | `v(c, theta) = [v_1, ..., v_m]^T` | Fluxes are ordered by the reactions JSON file and are calculated from concentrations and parameters. | +| Stoichiometric matrix | `S in R^(n x m)` | Rows are species, columns are reactions. `S[i, j]` converts reaction `j` into the concentration change of species `i`. | +| Reaction contribution | `r(c, theta) = S v(c, theta)` | Net production or consumption of every species from biochemical, acid/base, and gas-transfer reactions. | +| Liquid flow contribution | `(q_in / V_liq) * (c_in - c)` | Continuous stirred tank dilution or influent loading for liquid-phase states. | +| Gas flow contribution | `(q_gas / V_gas) * (c_gas,in - c_gas)` | Headspace gas outflow for gas states. | +| Gas flow rate | `q_gas = max(0, k_p * (P_gas - P_atm))` | Gas leaves only when calculated gas pressure exceeds atmospheric pressure. | +| Final derivative | `dc/dt = S v(c, theta) + flow terms` | This is the vector returned to `scipy.integrate.solve_ivp`. | + +The implemented derivative can be written as: + +```text +c = current state vector +c_in = inlet state vector +S = stoichiometric matrix +v = reaction-rate vector + +r = S @ v + +for liquid states: + dc_liq/dt = r_liq + (q_in / V_liq) * (c_in,liq - c_liq) + +for gas states: + dc_gas/dt = r_gas + (q_gas / V_gas) * (c_in,gas - c_gas) +``` + +The gas states are the final three species in both models: + +```text +S_gas_h2, S_gas_ch4, S_gas_co2 +``` + +The gas pressure and gas outflow equations are: + +```text +p_gas_h2 = S_gas_h2 * R * T_op / 16 +p_gas_ch4 = S_gas_ch4 * R * T_op / 64 +p_gas_co2 = S_gas_co2 * R * T_op +p_gas_h2o = 0.0313 * exp(5290 * (1 / T_base - 1 / T_op)) + +P_gas = p_gas_h2 + p_gas_ch4 + p_gas_co2 + p_gas_h2o +q_gas = max(0, k_p * (P_gas - P_atm)) +``` + +For any reaction `j`, the instantaneous contribution to species `i` is: + +```text +dc_i/dt from reaction j = S[i, j] * v_j +``` + +This is why reaction and species names are used to build `S`: the equations are much easier to audit than when the matrix is filled with positional numbers. + +## Reaction Rate Forms + +| Reaction type | Formula pattern | Used for | +| --- | --- | --- | +| First-order conversion | `v_j = k * X` | Disintegration, hydrolysis, and decay reactions. | +| Single-substrate uptake | `v_j = k_m * S_a / (K_S + S_a) * X * I` | Sugar, amino acid, LCFA, acetate, hydrogen, ethanol, lactate, and VFA uptake reactions. | +| Competitive ADM1 C4 uptake | `v_j = k_m * S_a / (K_S + S_a) * X_c4 * S_a / (S_va + S_bu + eps) * I` | ADM1 valerate and butyrate uptake. | +| Two-substrate uptake | `v_j = k_m * S_a * S_b / (K_a * S_a + K_b * S_b + S_a * S_b + eps) * X * I` | e-ADM syntrophic reactions that require paired substrates. | +| Inhibition or limitation | `I = product(I_pH, I_H2, I_NH3, I_IN, ...)` | Multiplies uptake rates to suppress a reaction under limiting or inhibitory conditions. | +| Acid/base kinetic form | `v_AB = k_AB * (S_ion * (K_a + S_H) - K_a * S_total)` | Kinetic acid/base reactions when the state is not solved algebraically. | +| DAE acid/base update | `S_ion = K_a / (K_a + S_H) * S_total` | Algebraic speciation used when `model.switch == "DAE"`. | +| Gas transfer | `v_gas = k_La * (S_liq - H * p_gas)` | Transfer between dissolved gas states and headspace gas states. | + +### Acid/Base Equations + +ADM1 and e-ADM both calculate kinetic acid/base rates, then set selected acid/base derivatives to zero in DAE mode. The kinetic form is: + +```text +v_AB,acid = k_A_B,acid * (S_ion * (K_a,acid + S_H) - K_a,acid * S_total) +``` + +For carbonate and inorganic nitrogen: + +```text +v_AB,co2 = k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC) +v_AB,IN = k_A_B_IN * (S_nh3 * (K_a_IN + S_H) - K_a_IN * S_IN) +``` + +In DAE mode, ionized species are updated algebraically. e-ADM explicitly updates: + +```text +S_va_ion = K_a_va / (K_a_va + S_H) * S_va +S_bu_ion = K_a_bu / (K_a_bu + S_H) * S_bu +S_pro_ion = K_a_pro / (K_a_pro + S_H) * S_pro +S_cap_ion = K_a_cap / (K_a_cap + S_H) * S_cap +S_ac_ion = K_a_ac / (K_a_ac + S_H) * S_ac +S_lac_ion = K_a_lac / (K_a_lac + S_H) * S_lac +S_hco3_ion = S_IC - S_co2 +``` + +Hydrogen ion concentration is calculated from electroneutrality unless it is controlled: + +```text +S_H = -phi / 2 + 0.5 * sqrt(phi^2 + 4 * K_w) +``` + +When `S_H_ion` is included in `control_state`, the controlled value is used and `dS_H_ion/dt = 0`. + +### Inhibition Equations + +The pH inhibition terms use Hill-type functions: + +```text +I_pH_x = K_pH_x^n_x / (S_H^n_x + K_pH_x^n_x) +``` + +Nitrogen limitation is a Monod term: + +```text +I_IN_lim = S_IN / (K_S_IN + S_IN + eps) +``` + +Hydrogen and ammonia inhibition terms use: + +```text +I_h2_x = 1 / (1 + S_h2 / (K_I_h2_x + eps)) +I_nh3 = 1 / (1 + S_nh3 / (K_I_nh3 + eps)) +``` + +ADM1 uses the same conceptual forms, with its original `I_IN_lim = 1 / (1 + K_S_IN / S_IN)` expression. + +## ADM1 Reactions + +The ADM1 reactions follow the Batstone ADM1 structure: disintegration, hydrolysis, soluble-substrate uptake, biomass decay, acid/base speciation, and gas transfer. + +### ADM1 Stoichiometric Coefficients + +ADM1 uses yield coefficients `Y_*`, product fractions `f_*`, carbon contents `C_*`, and nitrogen contents `N_*` to fill `S`. Nitrogen limitation sets selected yields to zero before `S` is built. + +For the main carbon-balance terms: + +```text +Y_su = 0 if nitrogen_limited else Y_su +Y_aa = 0 if nitrogen_limited else Y_aa +Y_fa = 0 if nitrogen_limited else Y_fa + +s_1 = -C_xc + f_sI_xc*C_sI + f_ch_xc*C_ch + f_pr_xc*C_pr + f_li_xc*C_li + f_xI_xc*C_xI +s_2 = -C_ch + C_su +s_3 = -C_pr + C_aa +s_4 = -C_li + (1 - f_fa_li)*C_su + f_fa_li*C_fa +s_5 = -C_su + (1 - Y_su)*(f_bu_su*C_bu + f_pro_su*C_pro + f_ac_su*C_ac) + Y_su*C_bac +s_6 = -C_aa + (1 - Y_aa)*(f_va_aa*C_va + f_bu_aa*C_bu + f_pro_aa*C_pro + f_ac_aa*C_ac) + Y_aa*C_bac +s_7 = -C_fa + (1 - Y_fa)*0.7*C_ac + Y_fa*C_bac +s_8 = -C_va + (1 - Y_c4)*0.54*C_pro + (1 - Y_c4)*0.31*C_ac + Y_c4*C_bac +s_9 = -C_bu + (1 - Y_c4)*0.8*C_ac + Y_c4*C_bac +s_10 = -C_pro + (1 - Y_pro)*0.57*C_ac + Y_pro*C_bac +s_11 = -C_ac + (1 - Y_ac)*C_ch4 + Y_ac*C_bac +s_12 = (1 - Y_h2)*C_ch4 + Y_h2*C_bac +s_13 = -C_bac + C_xc +``` + +These terms are inserted into the `S_IC` row with negative signs for conversion reactions and positive return through decay. For example: + +```text +S[S_IC, Uptake of sugars] = -s_5 +S[S_IC, Uptake of acetate] = -s_11 +S[S_IC, Decay of Xsu] = -s_13 +``` + +Nitrogen stoichiometry follows the same pattern: + +```text +S[S_IN, Uptake of sugars] = -Y_su * N_bac +S[S_IN, Uptake of amino acids] = N_aa - Y_aa * N_bac +S[S_IN, Uptake of acetate] = -Y_ac * N_bac +S[S_IN, Decay of Xsu] = N_bac - N_xc +``` + +| Reaction | Rate expression | Main conversion represented in `S` | +| --- | --- | --- | +| `Disintegration` | `k_dis * X_xc` | Composite particulate matter `X_xc` is split into carbohydrates `X_ch`, proteins `X_pr`, lipids `X_li`, soluble inert `S_I`, particulate inert `X_I`, inorganic carbon `S_IC`, and inorganic nitrogen `S_IN`. | +| `Hydrolysis carbohydrates` | `k_hyd_ch * X_ch` | Particulate carbohydrates become soluble sugars `S_su`, with carbon correction through `S_IC`. | +| `Hydrolysis of proteins` | `k_hyd_pr * X_pr` | Particulate proteins become amino acids `S_aa`, with carbon correction through `S_IC`. | +| `Hydrolysis of lipids` | `k_hyd_li * X_li` | Lipids split into LCFA `S_fa` and sugars `S_su`, with carbon correction through `S_IC`. | +| `Uptake of sugars` | `k_m_su * S_su / (K_S_su + S_su) * X_su * I5` | Sugars are consumed to grow `X_su` and produce butyrate `S_bu`, propionate `S_pro`, acetate `S_ac`, hydrogen `S_h2`, inorganic carbon, and nitrogen demand. | +| `Uptake of amino acids` | `k_m_aa * S_aa / (K_S_aa + S_aa) * X_aa * I6` | Amino acids are consumed to grow `X_aa` and produce valerate `S_va`, butyrate, propionate, acetate, hydrogen, inorganic carbon, and inorganic nitrogen. | +| `Uptake of LCFA` | `k_m_fa * S_fa / (K_S_fa + S_fa) * X_fa * I7` | LCFA are consumed to grow `X_fa` and produce acetate, hydrogen, inorganic carbon, and nitrogen demand. | +| `Uptake of valerate` | `k_m_c4 * S_va / (K_S_c4 + S_va) * X_c4 * S_va / (S_va + S_bu + eps) * I8` | Valerate is consumed by `X_c4`, producing propionate, acetate, hydrogen, biomass, carbon, and nitrogen demand. | +| `Uptake of butyrate` | `k_m_c4 * S_bu / (K_S_c4 + S_bu) * X_c4 * S_bu / (S_bu + S_va + eps) * I9` | Butyrate is consumed by `X_c4`, producing acetate, hydrogen, biomass, carbon, and nitrogen demand. | +| `Uptake of propionate` | `k_m_pr * S_pro / (K_S_pro + S_pro) * X_pro * I10` | Propionate is consumed to grow `X_pro` and produce acetate, hydrogen, carbon, and nitrogen demand. | +| `Uptake of acetate` | `k_m_ac * S_ac / (K_S_ac + S_ac) * X_ac * I11` | Acetate is consumed by acetoclastic methanogens, producing methane `S_ch4`, `X_ac`, carbon correction, and nitrogen demand. | +| `Uptake of Hydrogen` | `k_m_h2 * S_h2 / (K_S_h2 + S_h2) * X_h2 * I12` | Hydrogen is consumed by hydrogenotrophic methanogens, producing methane `S_ch4`, `X_h2`, carbon correction, and nitrogen demand. | +| `Decay of Xsu` | `k_dec_X_su * X_su` | Sugar degraders decay back to composite particulate matter `X_xc`, with carbon and nitrogen returned through `S_IC` and `S_IN`. | +| `Decay of Xaa` | `k_dec_X_aa * X_aa` | Amino acid degraders decay to `X_xc`, with carbon and nitrogen returned. | +| `Decay of Xfa` | `k_dec_X_fa * X_fa` | LCFA degraders decay to `X_xc`, with carbon and nitrogen returned. | +| `Decay of Xc4` | `k_dec_X_c4 * X_c4` | C4 degraders decay to `X_xc`, with carbon and nitrogen returned. | +| `Decay of Xpro` | `k_dec_X_pro * X_pro` | Propionate degraders decay to `X_xc`, with carbon and nitrogen returned. | +| `Decay of Xac` | `k_dec_X_ac * X_ac` | Acetoclastic methanogens decay to `X_xc`, with carbon and nitrogen returned. | +| `Decay of Xh2` | `k_dec_X_h2 * X_h2` | Hydrogenotrophic methanogens decay to `X_xc`, with carbon and nitrogen returned. | +| `Acid Base Equilibrium (Va)` | `k_A_B_va * (S_va_ion * (K_a_va + S_H) - K_a_va * S_va)` | Valerate speciation between total valerate `S_va` and ionized valerate `S_va_ion`. | +| `Acid Base Equilibrium (Bu)` | `k_A_B_bu * (S_bu_ion * (K_a_bu + S_H) - K_a_bu * S_bu)` | Butyrate speciation between `S_bu` and `S_bu_ion`. | +| `Acid Base Equilibrium (Pro)` | `k_A_B_pro * (S_pro_ion * (K_a_pro + S_H) - K_a_pro * S_pro)` | Propionate speciation between `S_pro` and `S_pro_ion`. | +| `Acid Base Equilibrium (Ac)` | `k_A_B_ac * (S_ac_ion * (K_a_ac + S_H) - K_a_ac * S_ac)` | Acetate speciation between `S_ac` and `S_ac_ion`. | +| `Acid Base Equilibrium (CO2)` | `k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC)` | Carbonate speciation through bicarbonate `S_hco3_ion` and inorganic carbon `S_IC`. | +| `Acid Base Equilibrium (In)` | `k_A_B_IN * (S_nh3 * (K_a_IN + S_H) - K_a_IN * S_IN)` | Nitrogen speciation between ammonia `S_nh3`, ammonium `S_nh4_ion`, and total inorganic nitrogen `S_IN`. | +| `Gas Transfer H2` | `k_L_a * (S_h2 - 16 * K_H_h2 * p_gas_h2)` | Dissolved hydrogen leaves the liquid and enters `S_gas_h2` with `V_liq / V_gas` scaling. | +| `Gas Transfer CH4` | `k_L_a * (S_ch4 - 64 * K_H_ch4 * p_gas_ch4)` | Dissolved methane leaves the liquid and enters `S_gas_ch4` with `V_liq / V_gas` scaling. | +| `Gas Transfer CO2` | `k_L_a * (S_co2 - K_H_co2 * p_gas_co2)` | Dissolved carbon dioxide leaves the liquid and enters `S_gas_co2` with `V_liq / V_gas` scaling. | + +### ADM1 Inhibition Factors + +| Factor | Formula pattern | Applied to | +| --- | --- | --- | +| `I5` | `I_pH_aa * I_IN_lim` | Sugar uptake. | +| `I6` | `I5` | Amino acid uptake. | +| `I7` | `I_pH_aa * I_IN_lim * I_h2_fa` | LCFA uptake. | +| `I8`, `I9` | `I_pH_aa * I_IN_lim * I_h2_c4` | Valerate and butyrate uptake. | +| `I10` | `I_pH_aa * I_IN_lim * I_h2_pro` | Propionate uptake. | +| `I11` | `I_pH_ac * I_IN_lim * I_nh3` | Acetate uptake. | +| `I12` | `I_pH_h2 * I_IN_lim` | Hydrogen uptake. | + +## e-ADM Reactions + +e-ADM keeps the same dynamic structure but expands the soluble fermentation network. It separates ethanol-linked and lactate-linked routes, adds caproate, lactate, ethanol, explicit TSS/TDS disintegration, and two methanogenesis routes. + +### e-ADM Stoichiometric Coefficients + +e-ADM uses the same matrix logic as ADM1, but most soluble conversions are written as explicit product fractions plus a carbon-balance residual. Selected yields are set to zero under nitrogen limitation. + +For sugar, amino acid, and LCFA uptake: + +```text +Y_su = 0 if nitrogen_limited else Y_su +Y_aa = 0 if nitrogen_limited else Y_aa +Y_fa = 0 if nitrogen_limited else Y_fa + +f_ac_su = 1 - f_pro_su - f_et_su - f_lac_su +f_ac_aa = 1 - f_pro_aa - f_et_aa - f_lac_aa +f_ac_fa = 1 - f_pro_fa - f_et_fa - f_lac_fa + +f_IC_su = -(-C_su + (1-Y_su)*f_pro_su*C_pro + (1-Y_su)*f_et_su*C_et + + (1-Y_su)*f_lac_su*C_lac + (1-Y_su)*f_ac_su*C_ac + Y_su*C_bac) + +f_IC_aa = -(-C_aa + (1-Y_aa)*f_pro_aa*C_pro + (1-Y_aa)*f_et_aa*C_et + + (1-Y_aa)*f_lac_aa*C_lac + (1-Y_aa)*f_ac_aa*C_ac + Y_aa*C_bac) + +f_IC_fa = -(-C_fa + (1-Y_fa)*f_pro_fa*C_pro + (1-Y_fa)*f_et_fa*C_et + + (1-Y_fa)*f_lac_fa*C_lac + (1-Y_fa)*f_ac_fa*C_ac + Y_fa*C_bac) +``` + +For chain elongation and VFA conversion, e-ADM uses paired substrate routes: + +```text +f_IC_ac_et = -(-C_ac + f_et_ac*C_et + (1-f_et_ac-Y_ac_et)*f_bu_ac*C_bu + Y_ac_et*C_bac) +f_IC_ac_lac = -(-C_ac + f_lac_ac*C_lac + (1-f_lac_ac-Y_ac_lac)*f_bu_ac*C_bu + Y_ac_lac*C_bac) + +f_IC_pro_et = -(-C_pro + f_et_pro*C_et + (1-f_et_pro-Y_pro_et)*f_va_pro*C_va + Y_pro_et*C_bac) +f_IC_pro_lac = -(-C_pro + f_lac_pro*C_lac + (1-f_lac_pro-Y_pro_lac)*f_va_pro*C_va + Y_pro_lac*C_bac) + +f_IC_bu_et = -(-C_bu + f_et_bu*C_et + (1-f_et_bu-Y_bu_et)*f_cap_bu*C_cap + Y_bu_et*C_bac) +f_IC_bu_lac = -(-C_bu + f_lac_bu*C_lac + (1-f_lac_bu-Y_bu_lac)*f_cap_bu*C_cap + Y_bu_lac*C_bac) +``` + +Methanogenesis and oxidation use: + +```text +f_IC_Me_ach2 = -(f_ac_h2*C_ac + (1 - Y_Me_ac)*C_ch4 + Y_Me_ac*C_bac) +f_IC_et_ox = -(-C_et + (1-Y_ac_et_ox)*C_bac + Y_ac_et_ox*C_ac) +f_IC_lac_ox = -(-C_lac + (1-Y_pro_lac_ox)*C_bac + Y_pro_lac_ox*C_pro) +``` + +The stoichiometric matrix then combines these residuals with explicit product coefficients. For example: + +```text +S[S_su, Uptake of sugars] = -1 +S[S_pro, Uptake of sugars] = (1 - Y_su) * f_pro_su +S[S_et, Uptake of sugars] = (1 - Y_su) * f_et_su +S[S_lac, Uptake of sugars] = (1 - Y_su) * f_lac_su +S[S_ac, Uptake of sugars] = (1 - Y_su) * f_ac_su +S[S_IN, Uptake of sugars] = -Y_su * N_bac +S[S_IC, Uptake of sugars] = f_IC_su +S[X_su, Uptake of sugars] = Y_su +``` + +| Reaction | Rate expression | Main conversion represented in `S` | +| --- | --- | --- | +| `TSS_Disintegration` | `k_dis_TSS * TSS` | Total suspended solids are split into `X_ch`, `X_pr`, `X_li`, and inert particulate biomass `X_I` using feed fractions. | +| `TDS_Disintegration` | `k_dis_TDS * TDS` | Total dissolved solids are split into `X_ch`, `X_pr`, `X_li`, and soluble inert `S_I` using feed fractions. | +| `Hydrolysis carbohydrates` | `k_hyd_ch * X_ch` | Particulate carbohydrate is hydrolyzed to soluble sugar `S_su`. | +| `Hydrolysis proteins` | `k_hyd_pr * X_pr` | Particulate protein is hydrolyzed to amino acids `S_aa`. | +| `Hydrolysis lipids` | `k_hyd_li * X_li` | Particulate lipids are hydrolyzed to LCFA `S_fa`. | +| `Uptake of sugars` | `k_m_su * S_su / (K_S_su + S_su) * X_su * I5` | Sugars are consumed to grow `X_su` and form propionate, ethanol, lactate, acetate, carbon, and nitrogen demand. | +| `Uptake of amino acids` | `k_m_aa * S_aa / (K_S_aa + S_aa) * X_aa * I6` | Amino acids are consumed to grow `X_aa` and form propionate, ethanol, lactate, acetate, inorganic carbon, and inorganic nitrogen. | +| `Uptake of LCFA` | `k_m_fa * S_fa / (K_S_fa + S_fa) * X_fa * I7` | LCFA are consumed to grow `X_fa` and form propionate, ethanol, lactate, acetate, carbon, and nitrogen demand. | +| `Uptake of acetate_et` | `k_m_ac * S_ac * S_et / (K_S_ac*S_ac + K_S_ac_et*S_et + S_ac*S_et + eps) * X_ac_et * I11` | Acetate and ethanol are converted by `X_ac_et`, producing butyrate, hydrogen, carbon correction, and new biomass. | +| `Uptake of acetate_lac` | `k_m_ac * S_ac * S_lac / (K_S_ac*S_ac + K_S_ac_lac*S_lac + S_ac*S_lac + eps) * X_ac_lac * I11` | Acetate and lactate are converted by `X_ac_lac`, producing butyrate, hydrogen, carbon correction, and new biomass. | +| `Uptake of propionate_et` | `k_m_pro * S_pro * S_et / (K_S_pro*S_pro + K_S_pro_et*S_et + S_pro*S_et + eps) * X_chain_et * I10` | Propionate and ethanol are converted by chain-elongating biomass, producing valerate, hydrogen, carbon correction, and `X_chain_et`. | +| `Uptake of propionate_lac` | `k_m_pro * S_pro * S_lac / (K_S_pro*S_pro + K_S_pro_lac*S_lac + S_pro*S_lac + eps) * X_chain_lac * I10` | Propionate and lactate are converted by chain-elongating biomass, producing valerate, hydrogen, carbon correction, and `X_chain_lac`. | +| `Uptake of butyrate_et` | `k_m_bu * S_bu * S_et / (K_S_bu*S_bu + K_S_bu_et*S_et + S_bu*S_et + eps) * X_chain_et * I14` | Butyrate and ethanol are converted to caproate, hydrogen, carbon correction, and `X_chain_et`. | +| `Uptake of butyrate_lac` | `k_m_bu * S_bu * S_lac / (K_S_bu*S_bu + K_S_bu_lac*S_lac + S_bu*S_lac + eps) * X_chain_lac * I14` | Butyrate and lactate are converted to caproate, hydrogen, carbon correction, and `X_chain_lac`. | +| `Uptake of valerate` | `k_m_va * S_va / (K_S_va + S_va) * X_VFA_deg * I15` | Valerate is degraded to propionate and `X_VFA_deg`. | +| `Uptake of caproate` | `k_m_cap * S_cap / (K_S_cap + S_cap) * X_VFA_deg * I13` | Caproate is degraded to acetate and `X_VFA_deg`. | +| `Uptake of butyrate` | `k_m_bu_deg * S_bu / (K_S_bu + S_bu) * X_VFA_deg * I13` | Butyrate is degraded to acetate and `X_VFA_deg`. | +| `Methanogenessis from acetate and h2` | `k_m_h2_Me_ac * S_gas_h2 * S_ac / (K_S_h2_Me_ac*S_gas_h2 + K_S_ac_Me*S_ac + S_ac*S_gas_h2 + eps) * X_Me_ac * I12` | Acetate and gas-phase hydrogen are converted to dissolved methane `S_ch4`, methanogenic biomass `X_Me_ac`, carbon correction, and nitrogen demand. | +| `Methanogenessis from CO2 and h2` | `k_m_h2_Me_CO2 * S_gas_h2 * S_gas_co2 / (K_S_h2_Me_CO2*S_gas_h2 + K_S_CO2_Me*S_gas_co2 + S_gas_co2*S_gas_h2 + eps) * X_Me_CO2 * I12` | Gas-phase hydrogen and carbon dioxide are converted to gas-phase methane `S_gas_ch4`, `X_Me_CO2`, gas-phase carbon dioxide change, and nitrogen demand. | +| `Uptake of ethanol` | `k_m_et * S_et / (K_S_et + S_et) * X_et * I16` | Ethanol is oxidized to acetate, inorganic carbon, and `X_et`. | +| `Uptake of lactate` | `k_m_lac * S_lac / (K_S_lac + S_lac) * X_lac * I16` | Lactate is oxidized to propionate, inorganic carbon, and `X_lac`. | +| `Decay of Xsu` | `k_dec_X_su * X_su` | Sugar degraders decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of Xaa` | `k_dec_X_aa * X_aa` | Amino acid degraders decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of Xfa` | `k_dec_X_fa * X_fa` | LCFA degraders decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_ac_et` | `k_dec_X_ac * X_ac_et` | Acetate-ethanol consumers decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_ac_lac` | `k_dec_X_ac * X_ac_lac` | Acetate-lactate consumers decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of Xpro` | Not currently assigned in `e_adm_ode_sys` | Listed in the reaction set but not given a rate in the current ODE block. If kept, it behaves as zero-flux unless populated elsewhere. | +| `Decay of X_chain_et` | `k_dec_X_chain_et * X_chain_et` | Ethanol-linked chain elongators decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_chain_lac` | `k_dec_X_chain_lac * X_chain_lac` | Lactate-linked chain elongators decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_VFA_deg` | `k_dec_X_VFA_deg * X_VFA_deg` | VFA degraders decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_Me_ac` | `k_dec_X_Me_ac * X_Me_ac` | Acetate/hydrogen methanogens decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of X_Me_CO2` | `k_dec_X_Me_CO2 * X_Me_CO2` | CO2/hydrogen methanogens decay to TSS, returning biomass carbon and nitrogen. | +| `Decay of Xet` | `k_dec_X_et * X_et` | Ethanol oxidizers decay. This rate is present in the ODE; the current stoichiometric builder should be checked if this flux is expected to affect states. | +| `Decay of Xlac` | `k_dec_X_lac * X_lac` | Lactate oxidizers decay. This rate is present in the ODE; the current stoichiometric builder should be checked if this flux is expected to affect states. | +| `Acid Base Equilibrium (Va)` | `k_A_B_va * (S_va_ion * (K_a_va + S_H) - K_a_va * S_va)` | Valerate speciation between `S_va` and `S_va_ion`. | +| `Acid Base Equilibrium (Bu)` | `k_A_B_bu * (S_bu_ion * (K_a_bu + S_H) - K_a_bu * S_bu)` | Butyrate speciation between `S_bu` and `S_bu_ion`. | +| `Acid Base Equilibrium (Pro)` | `k_A_B_pro * (S_pro_ion * (K_a_pro + S_H) - K_a_pro * S_pro)` | Propionate speciation between `S_pro` and `S_pro_ion`. | +| `Acid Base Equilibrium (Cap)` | `k_A_B_cap * (S_cap_ion * (K_a_cap + S_H) - K_a_cap * S_cap)` | Caproate speciation between `S_cap` and `S_cap_ion`. | +| `Acid Base Equilibrium (Lac)` | `k_A_B_lac * (S_lac_ion * (K_a_lac + S_H) - K_a_lac * S_lac)` | Lactate speciation between `S_lac` and `S_lac_ion`. | +| `Acid Base Equilibrium (Ac)` | `k_A_B_ac * (S_ac_ion * (K_a_ac + S_H) - K_a_ac * S_ac)` | Acetate speciation between `S_ac` and `S_ac_ion`. | +| `Acid Base Equilibrium (CO2)` | `k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC)` | Carbonate speciation through bicarbonate `S_hco3_ion` and inorganic carbon `S_IC`. | +| `Acid Base Equilibrium (In)` | `k_A_B_IN * (S_nh3 * (K_a_IN + S_H) - K_a_IN * S_IN)` | Nitrogen speciation between ammonia `S_nh3`, ammonium `S_nh4_ion`, and total inorganic nitrogen `S_IN`. | +| `Gas Transfer H2` | `max(0, k_L_a * (S_h2 - 16 * K_H_h2 * p_gas_h2))` | Dissolved hydrogen leaves the liquid and enters `S_gas_h2` with `V_liq / V_gas` scaling. | +| `Gas Transfer CH4` | `max(0, k_L_a * (S_ch4 - 64 * K_H_ch4 * p_gas_ch4))` | Dissolved methane leaves the liquid and enters `S_gas_ch4` with `V_liq / V_gas` scaling. | +| `Gas Transfer CO2` | `max(0, k_L_a * (S_co2 - K_H_co2 * p_gas_co2))` | Dissolved carbon dioxide leaves the liquid and enters `S_gas_co2` with `V_liq / V_gas` scaling. | + +### e-ADM Inhibition Factors + +| Factor | Formula pattern | Applied to | +| --- | --- | --- | +| `I5` | `I_pH_aa * I_IN_lim` | Sugar uptake. | +| `I6` | `I5` | Amino acid uptake. | +| `I7` | `I_pH_aa * I_IN_lim * I_h2_fa` | LCFA uptake. | +| `I10` | `I_pH_pro * I_IN_lim * I_h2_pro` | Propionate plus ethanol or lactate uptake. | +| `I11` | `I_pH_ac * I_IN_lim * I_nh3` | Acetate plus ethanol or lactate uptake. | +| `I12` | `I_pH_h2 * I_IN_lim` | Methanogenesis. | +| `I13` | `I_pH_cap * I_IN_lim * I_h2_c4` | Caproate uptake and direct butyrate degradation. | +| `I14` | `I_pH_bu * I_IN_lim * I_h2_c4` | Butyrate plus ethanol or lactate uptake. | +| `I15` | `I_pH_va * I_IN_lim * I_h2_c4` | Valerate uptake. | +| `I16` | `I_IN_lim * I_nh3 * I_pH_aa * I_h2_oxidation` | Ethanol and lactate oxidation. | + +## Methane-Producing Reactions + +| Model | Methane-producing reactions | +| --- | --- | +| ADM1 | `Uptake of acetate`, `Uptake of Hydrogen` | +| e-ADM | `Methanogenessis from acetate and h2`, `Methanogenessis from CO2 and h2` | + +`Gas Transfer CH4` does not create methane. It moves methane between dissolved `S_ch4` and gas-phase `S_gas_ch4`. + +## State Vectors + +### ADM1 Species + +`S_su`, `S_aa`, `S_fa`, `S_va`, `S_bu`, `S_pro`, `S_ac`, `S_h2`, `S_ch4`, `S_IC`, `S_IN`, `S_I`, `X_xc`, `X_ch`, `X_pr`, `X_li`, `X_su`, `X_aa`, `X_fa`, `X_c4`, `X_pro`, `X_ac`, `X_h2`, `X_I`, `S_cation`, `S_anion`, `S_H_ion`, `S_va_ion`, `S_bu_ion`, `S_pro_ion`, `S_ac_ion`, `S_hco3_ion`, `S_co2`, `S_nh3`, `S_nh4_ion`, `S_gas_h2`, `S_gas_ch4`, `S_gas_co2` + +### e-ADM Species + +`S_su`, `S_aa`, `S_fa`, `S_va`, `S_bu`, `S_pro`, `S_et`, `S_lac`, `S_cap`, `S_ac`, `S_h2`, `S_ch4`, `S_IC`, `S_IN`, `S_I`, `TSS`, `TDS`, `X_ch`, `X_pr`, `X_li`, `X_su`, `X_aa`, `X_ac_et`, `X_ac_lac`, `X_fa`, `X_VFA_deg`, `X_et`, `X_lac`, `X_chain_et`, `X_chain_lac`, `X_Me_ac`, `X_Me_CO2`, `X_I`, `S_cation`, `S_anion`, `S_H_ion`, `S_va_ion`, `S_bu_ion`, `S_pro_ion`, `S_cap_ion`, `S_lac_ion`, `S_ac_ion`, `S_hco3_ion`, `S_co2`, `S_nh3`, `S_nh4_ion`, `S_gas_h2`, `S_gas_ch4`, `S_gas_co2` + +## Minimal CLI Run + +```bash +adtoolbox ADM adm1 --models-json /path/to/ADToolbox/models.json --report csv +``` + +```bash +adtoolbox ADM e-adm --models-json /path/to/ADToolbox/models.json --report csv +``` diff --git a/docs/API.md b/docs/API.md index 092e563..ac6fa8e 100644 --- a/docs/API.md +++ b/docs/API.md @@ -1,16 +1,16 @@ # API -ADToolbox has its own way of figuring out the path to the required files and configurations required for running different methods. The entire toolbox relies on the configs module. Objects of different classes in ADToolbox are instantiated by an instance of the corresponding class in the configs module. For instance, if you want to use the methods of the metagenomics class in core module, you should do the following: +ADToolbox configuration objects derive file paths from the directory that you pass to them. There is no global project or base directory. Objects in the core module can still be instantiated with a matching object from the configs module. For instance, if you want to use the methods of the metagenomics class in core module, you should do the following: ``` from adtoolbox import configs and core -metag_conf=configs.Metagenomics() +metag_conf=configs.Metagenomics("./my_metagenomics_run", database_dir="./my_database") metag_object=core.Metagenomics(metag_conf) ``` -Doing this will result in that any core.Metagenomics method will refer to the defult configurations defined in the configs module. If you want to overwright the defult configuration, you can pass the desired argument to the configs.Metagenomics constructor. For example, if you want to change the docker repository for VSEARCH +Doing this makes any core.Metagenomics method use paths under the selected run and database directories. If you want to overwrite a default configuration, pass the desired argument to the configs.Metagenomics constructor. For example, if you want to change the docker repository for VSEARCH you can: ``` @@ -107,4 +107,3 @@ This module includes the following classes: ::: adtoolbox.adm - diff --git a/docs/CLI.md b/docs/CLI.md index c46e99c..1d9d33e 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -1,472 +1,246 @@ -# ADToolbox Commandline Interface +# ADToolbox Command Line Interface -------------- -## Initialization -First, we need to initialize the CLI: -After installing ADToolbox, type and execute the following in your terminal to initialize the base directory for ADToolbox files: +The ADToolbox command line interface is installed as `adtoolbox`. +```bash +adtoolbox --help +adtoolbox --version ``` -ADToolbox -``` -You should see the following if you are running this for the first time: - -``` -No Base Directory Found: -Where do you want to store your ADToolbox Data?: - -``` -Type the **absolute path** directory of interest. Don't worry if you mess this part up. You can change this later as well. you can type '.' for now and change this later. - -You can access all the commands along with their brief explanation by: - -``` -ADToolbox --help - -``` - -------------- -## ADToolbox Modules - -This toolbox is comprised of different modules: - -1. Configs Module - -2. Database Module - -3. Metagenomics Module - -4. ADM Module - -5. Documentations Module - -------------- -### 1. Configs Module - -After installation, the base working directory must be specified: - -``` -ADToolbox Configs --help - -────────────────────────────────── ADToolBox─────────────────────────────────── - -usage: ADToolBox Configs [-h] [-s SET_BASE_DIR] [-g] [--get-base-dir] - -optional arguments: - -h, --help show this help message and exit - -s SET_BASE_DIR, --set-base-dir SET_BASE_DIR - Set the base directory for ADToolBox to work with - -g, --get-base-dir Get the current base directory for ADToolBox - - -``` -This will give you a list of all functionalities that are related to the configurations of the toolbox. Here we go one by one in the correct order: - -- set-base-dir: The first configuration command will allow you to set the base directory for ADToolbox to work. This could be an existing folder somewhere in your files or a directory that you are willing to create. If the directory does not already exit, it will be automatically created after this command. For example if I want to set the base directory to be ADToolbox directory on my desktop the command would be, in MacOS, something like this: - -``` - -ADToolbox Configs --set-base-dir ~/Desktop/ADToolbox - -``` - -Anything that you will do from now on, will be saved in this directory. - - -------------- -### 2. Database Module - -Any database that is used by ADToolbox can be modified from this module. Type the following in your commandline to find all of the database module's commands: - -``` -ADToolbox Database --help -──────────────────────────── ADToolBox ──────────────────────────── -usage: ADToolBox Database [-h] - {initialize-feed-db,add-feed,sh -ow-feed-db,initialize-metagenomics-studies-db,add-metagen -omics-study,initialize-protein-db,add-protein,download-re -action-db,download-seed-reaction-db,build-protein-db,down -load-protein-db,download-amplicon-to-genome-dbs,download- -all-databases} - ... - -positional arguments: - {initialize-feed-db,add-feed,show-feed-db,initialize-me -tagenomics-studies-db,add-metagenomics-study,initialize-p -rotein-db,add-protein,download-reaction-db,download-seed- -reaction-db,build-protein-db,download-protein-db,download --amplicon-to-genome-dbs,download-all-databases} - Database commands: - initialize-feed-db Initialize the Feed DB - add-feed Add a feed to the feed database - show-feed-db Shows the feed database - initialize-metagenomics-studies-db - Initialize the Metagenomics Studies DB - add-metagenomics-study - Add a metagenomics study to the Kbase - initialize-protein-db - Generates the protein database for ADToolbox - add-protein Add a protein to the protein database - download-reaction-db - Downloads the reaction database in CSV - format - download-seed-reaction-db - Downloads the seed reaction database in - JSON format - build-protein-db Generates the protein database for - ADToolbox - download-protein-db - Downloads the protein database in fasta - format; You can alternatively build it - from reaction database. - download-amplicon-to-genome-dbs - downloads amplicon to genome databases - download-all-databases - downloads all databases that are required by ADToolbox at once - -options: - -h, --help show this help message and exit -``` - -We will now go over these commands one by one: - -- initialize-feed-db: This will create an empty JSON file in the Database sub-directory in your base directory that will hold all the future feed information that you add. You can run this command by: - -``` -ADToolbox Database initialize-feed-db - -``` - -- add-feed: This will add feed data to the database. Such data includes: the name of the feed (-n, --name), carbohydrate content of the feed in a percentage (-c, --carbohydrates), protein content of the feed in a percecntage (-p, --proteins), lipid content of the feed in a percentage (-l, --lipids), total suspended solid content of the feed in a percentage (-t, --tss), soluable inert content of feed in a percentage (-s, --si), particulate inert content of feed in a percentage (-x, --xi), and a reference where numbers came from (-r, --reference). This command is run by: - -``` -ADToolbox Database add-feed - -``` -An example of this would look like: - -``` -ADToolbox Database add-feed -n "test feed" -c 20 -p 20 -l 20 -t 20 -s 20 -x 20 -r "test reference" - -``` - -- show-feed-db: As the name implies, this will show the user the feed database along with any values they have added to it, in the command window. This command is run by: - -``` -ADToolbox Database show-feed-db - -``` -- initialize-metagenomics-studies-db: This will create an empty TSV file in the Database sub-directory in your base directory that will hold all the future information about various metagenomics studies that you add. You can run this command by: - -``` -ADToolbox Database initialize-metagenomics-studies-db - -``` -- add-metagenomics-study: This command will add a metagenomics study to the Kbase and will require the study name (-n,--name), study type (-t, --type), microbiome where the metagenomics study belongs to (-m, --microbiome), SRA accession ID for the sample (-s, --sample_accesion), SRA accession ID for the project (-p, --study_accesion), and comments on the study of interest (-c, --comments). This command is run by: - -``` -ADToolbox Database add-metagenomics-study - -``` -An example of this would look like: - -``` -ADToolbox Database add-metagenomics-study -n test_study -t 16s -m "anaerobic digestion" -s 11111111 -c "this is just a test" -p 222222 +The CLI does not create or store a global project directory. Commands that need files or directories accept those paths directly. If a required path is omitted, the command prompts for it. -``` -- initialize-protein-db: This will create an empty JSON file in the Database sub-directory in your base directory that will hold all the future protein information that you add. You can run this command by: +## Modules -``` -ADToolbox Database initialize-protein-db +| Module | Purpose | +| --- | --- | +| `Database` | Initialize, edit, download, and build ADToolbox databases. | +| `Metagenomics` | Download genomes or SRA data and align genomes to protein databases. | +| `ADM` | Run ADM1 and e-ADM models. | +| `Documentations` | Print package documentation in the terminal. | -``` -- add-protein: As the name implies, this will add information about a protein to the empty protein database. Information about such protein includes its UniProt ID (-i, --uniprot-id), and the name attached to the protein which is usually the EC number (-n, --name). You can run this command by: +Every command supports `-h` and `--help`. +```bash +adtoolbox Database --help +adtoolbox ADM adm1 --help ``` -ADToolbox Database add-protein -``` -An example of this would look like: +## Database -``` -ADToolbox Database add-protein -i ATEST1 -n 1.1.1.1 - -``` +Database commands work with explicit file paths. The path can point to a local database you already maintain, a reference file copied from `reference_data`, or a new file you want ADToolbox to create. -*NOTE*: Skip the following download commands if you have run ```ADToolbox Configs download-all-databases``` -``` +| Command | Required path option | Purpose | +| --- | --- | --- | +| `initialize-feed-db` | `--feed-db` | Create an empty feed TSV. | +| `add-feed` | `--feed-db` | Add one feed row to a feed TSV. | +| `show-feed-db` | `--feed-db` | Print the feed TSV, optionally filtered by feed name. | +| `download-feed-db` | `--feed-db` | Download the reference feed TSV. | +| `initialize-metagenomics-studies-db` | `--studies-db` | Create an empty metagenomics studies TSV. | +| `add-metagenomics-study` | `--studies-db` | Add one metagenomics study row. | +| `initialize-protein-db` | `--protein-db` | Create an empty protein FASTA database. | +| `add-protein` | `--protein-db` | Add one protein FASTA entry. | +| `download-reaction-db` | `--reaction-db` | Download reaction metadata as CSV. | +| `download-seed-reaction-db` | `--seed-reaction-db`, `--seed-compound-db` | Download SEED reaction and compound JSON files. | +| `build-protein-db` | `--reaction-db`, `--protein-db` | Build a protein FASTA database from reaction metadata. | +| `download-protein-db` | `--protein-db` | Download the reference protein FASTA database. | +| `download-amplicon-to-genome-dbs` | `--output-dir` | Download amplicon-to-genome mapping databases. | +| `download-all-databases` | `--output-dir` | Download the standard ADToolbox database bundle. | -- download-reaction-db: As the name implies, this will download the ADToolbox reaction database. This is required for many important modules of the toolbox +Examples: -``` -ADToolbox Database download-reaction-db +```bash +adtoolbox Database initialize-feed-db --feed-db ./database/feed_db.tsv +adtoolbox Database add-feed \ + --feed-db ./database/feed_db.tsv \ + --name "food waste" \ + --carbohydrates 42 \ + --proteins 20 \ + --lipids 18 \ + --tss 80 \ + --si 5 \ + --xi 15 \ + --reference "example reference" +adtoolbox Database show-feed-db --feed-db ./database/feed_db.tsv +adtoolbox Database show-feed-db --feed-db ./database/feed_db.tsv --filter "food waste" ``` -- download-protein-db: Downloads the protein database in fasta format; You can alternatively build it from reaction database if you have downloaded it; Check below. +To download the full reference database bundle: +```bash +adtoolbox Database download-all-databases --output-dir ./database ``` -ADToolbox Database download-protein-db +To build a protein database from reaction metadata: +```bash +adtoolbox Database build-protein-db \ + --reaction-db ./database/Reaction_Metadata.csv \ + --protein-db ./database/Protein_DB.fasta ``` -- build-protein-db: Generates the protein database for ADToolbox from the reaction database: +## Metagenomics -``` +Metagenomics commands also take explicit inputs and output directories. -ADToolbox Database build-protein-db +| Command | Purpose | +| --- | --- | +| `download_from_sra` | Download reads from SRA by sample accession. | +| `download_genome` | Download a genome from NCBI by genome accession. | +| `align-genome` | Align one genome to a protein FASTA database. | +| `align-multiple-genomes` | Align multiple genomes listed in a JSON manifest. | +| `find-representative-genomes` | Find representative genomes from a repseqs FASTA file. | -``` +Use `--container None` for local execution, or `--container docker` / `--container singularity` when running through a container backend. -- download-amplicon-to-genome-dbs: If you need to use the 16s mapping to the protein database and ADM, you will need to download the required databases using this command: +Examples: +```bash +adtoolbox Metagenomics download_from_sra \ + --sample-accession SRR28403133 \ + --output-dir ./metagenomics/sra \ + --container None -``` - -ADToolbox Database download-amplicon-to-genome-dbs +adtoolbox Metagenomics download_genome \ + --genome-accession GCA_021152825.1 \ + --output-dir ./metagenomics/genomes \ + --container None +adtoolbox Metagenomics align-genome \ + --name GCA_021152825_1 \ + --input-file ./metagenomics/genomes/GCA_021152825.1.fna \ + --output-dir ./metagenomics/alignment \ + --protein-db ./database/Protein_DB.fasta \ + --container None ``` -- download-seed-reaction-db: This will download the SEED reaction database in JSON format. +For multiple genomes, the input JSON maps genome names to input files: +```json +{ + "genome_1": "./genomes/genome_1.fna", + "genome_2": "./genomes/genome_2.fna" +} ``` -ADToolbox Database download-seed-reaction-db - -``` -``` -------------- -### 3. Metagenomics Module - -Metagenomics module of ADToolbox is designed to input metagenomics data into consideration when designing an AD process. -You can observe all the functionalities by: +Run the batch alignment with: +```bash +adtoolbox Metagenomics align-multiple-genomes \ + --input-file ./metagenomics/genomes.json \ + --output-dir ./metagenomics/alignment \ + --protein-db ./database/Protein_DB.fasta \ + --container None ``` -ADToolbox Metagenomics --help - -──────────────────────────── ADToolBox ──────────────────────────── -usage: ADToolBox Metagenomics [-h] - {download_from_sra} - ... - -positional arguments: - {download_from_sra,download_genome} - download_from_sra This module provides a command line interface to download - metagenomics data from SRA - download_genome This module provides a command line interface to download - genomes from NCBI - align-genome Align genomes to the protein database - of ADToolbox, or any other fasta with - protein sequences - align-multiple-genomes - Align multiple Genomes to the protein - database of ADToolbox, or any other - fasta with protein sequences - find-representative-genomes - Finds representative genomes from the - repseqs fasta file -options: - -h, --help show this help message and exit +## ADM -``` -- download_from_sra: This command takes a sample accesion ID (-s, --sample_accesion) for a sample, downloads it, and places it into a directory provided by the you (-o, --output-dir). It also requires you to state a container you are using. If you are downloading locally, put "None". Otherwise, you can use the containers docker or singularity. You can run this command by: +The ADM CLI currently exposes two model families: -``` -ADToolbox Metagenomics download_from_sra +| Command | Model key | Purpose | +| --- | --- | --- | +| `adm1` | `adm1` | Run the original ADM1 model. | +| `e-adm` | `e_adm` | Run the extended e-ADM model. | -``` -An example of this command would look like: +The recommended input format is one consolidated model JSON file keyed by model name. The repository includes a reference example at `reference_data/models.json`. +```bash +adtoolbox ADM adm1 --models-json reference_data/models.json --report csv +adtoolbox ADM e-adm --models-json reference_data/models.json --report csv ``` -ADToolbox Metagenomics download_from_sra -s SRR28403133 -o OUTPUT/DIRECTORY/PATHNAME -c None -``` -- download_genome: This command requires you to provide a NCBI accesion ID for a genome (-g, --genome_accesion), and output directory (-o,--output-dir), and a container (-c, --container). It will then take the NCBI accesion ID for a genome and download it in the directory provided by you. If you are downloading locally, put "None" as your container option. Otherwise, you can use the containers docker or singularity. You can run this command by: +When `--report csv` is used, the CLI asks where to save the output CSV. When `--report dash` is used, or when `--report` is omitted, the CLI opens the interactive Dash visualization. -``` -ADToolbox Metagenomics download_genome +The e-ADM command can also accept a control-state JSON file: +```bash +adtoolbox ADM e-adm \ + --models-json reference_data/models.json \ + --control-states ./control_states.json \ + --report csv ``` -An example of this command would look like: -``` -ADToolbox Metagenomics download_genome -g GCA021152825.1 -o OUTPUT/DIRECTORY/PATHNAME -c None +If `--control-states` is omitted, e-ADM uses: +```json +{ + "S_H_ion": 3.162277660168379e-7 +} ``` -- align-genome: This command requires that you to give a name for the genome (-n,--name),the address of the JSON file that includes information about the genome to be aligned (-i,--input-file), and output directory to store alignment results (-o,--output-dir), a container to use for the alignment (-c,--container), and the directory containing the protein database to be used for the alignment (-d, --protein-db-dir). If you are downloading locally, put "None" as your container option. Otherwise, you can use the containers docker or singularity. Overall, this command takes a genome and aligns it to a protein sequence. You can run this command by: -``` -ADToolBox Metagenomics align-genome +The consolidated model JSON has this structure: +```json +{ + "adm1": { + "model_parameters": {}, + "base_parameters": {}, + "initial_conditions": {}, + "inlet_conditions": {}, + "reactions": {}, + "species": {} + }, + "e_adm": { + "model_parameters": {}, + "base_parameters": {}, + "initial_conditions": {}, + "inlet_conditions": {}, + "reactions": {}, + "species": {} + } +} ``` -An example of this code would look like: -``` -ADToolbox Metagenomics align-genome -n "test genome" -i INPUT/PATHNAME/OF/GENOME -o OUTPUT/PATHNAME/DIRECTORY -c None -d PATHNAME/OF/PROTEIN +For compatibility with older database layouts, each ADM command can still load six separate JSON files: -``` -- align-multiple-genomes: This command allows you to align multiple genomes to the protein database of ADToolbox, or any other fasta file with protein sequences. It requires to user to input the address to a JSON file that holds the information about the genomes (-i,--input-file), an output directory to store the alignment results (-o,--output-dir), a container to use for the alignment (-c,--container), and the directory containing the protein database to be used for alignment (-d,--protein-db-dir). If you are downloading locally, put "None" as your container option. Otherwise, you can use the containers docker or singularity. This command can be run by: +| Option | Contents | +| --- | --- | +| `--model-parameters` | Kinetic and model-specific parameters. | +| `--base-parameters` | Shared physical and biochemical constants. | +| `--initial-conditions` | Initial state values. | +| `--inlet-conditions` | Influent state values. | +| `--reactions` | Reaction names and ordering. | +| `--species` | Species names and ordering. | -``` -ADToolbox Metagenomics align-multiple-genomes +You can pass those files directly: +```bash +adtoolbox ADM adm1 \ + --model-parameters ./ADM_Parameters/adm1_model_parameters.json \ + --base-parameters ./ADM_Parameters/adm1_base_parameters.json \ + --initial-conditions ./ADM_Parameters/adm1_initial_conditions.json \ + --inlet-conditions ./ADM_Parameters/adm1_inlet_conditions.json \ + --reactions ./ADM_Parameters/adm1_reactions.json \ + --species ./ADM_Parameters/adm1_species.json \ + --report csv ``` -An example of this command looks like: -``` -ADToolbox Metagenomics align-multiple-genomes -i PATHNAME/TO/FILE/OF/GENOMES -o OUTPUT/DIRECTORY -c None -d DIRECTORY/OF/PROTEIN/DATABSE +Or pass a directory containing consistently named files: +```bash +adtoolbox ADM adm1 --parameters-dir ./ADM_Parameters --report csv +adtoolbox ADM e-adm --parameters-dir ./ADM_Parameters --report csv ``` -- find-represenative-genomes: This command maps represenative amplicon sequences to a representative genome in GTDB database. It requires the user to provide the address to the repseqs fasta file (-i,--input-file), the directory of the output file (-o, --output-dir), a container used for the alignment (-c,--container), and the format of the output file which can be json or csv (-f,--format). Something optional that you can provide is the similarity cutoff for clustering; though, the default is 0.97 (-s,--similarity). If you are downloading locally, put "None" as your container option. Otherwise, you can use the containers docker or singularity. You can run this code by: -``` -ADToolbox Metagenomics find-representative-genomes +For `e-adm`, the CLI first looks for `e_adm_*.json` files and then falls back to the legacy `e_adm_2_*.json` file names. -``` -An example of this code will look like: +## Documentation -``` -ADToolbox Metagenomics find-representative-genomes -i PATHNAME/TO/REPSEQS/FASTA/FILE -o PATHNAME/TO/OUTPUT/DIRECTORY -c None -f csv +Print the package README in the terminal: +```bash +adtoolbox Documentations --show ``` -------------------------------- -### 4. ADM Module - -ADM module provides all the tools needed to run instances of ADM Model. This includes the original ADM, Batstone et al., and the Modified-ADM suggested by the Authors of ADToolbox. In order to find out about all the functionalities in this module, you can run: - -``` +## Reference Data -ADToolbox ADM --help -────────────────────────────────── ADToolBox ─────────────────────────────────── -usage: ADToolBox ADM [-h] {original-adm1,modified-adm,show-escher-map} ... +This repository includes clean reference JSON files that mirror the current database shape: -positional arguments: - {original-adm1,modified-adm,show-escher-map} - Available ADM Commands: - original-adm1 Original ADM1: - modified-adm Modified ADM: +| File | Contents | +| --- | --- | +| `reference_data/models.json` | ADM1 and e-ADM requirements keyed by model name. | +| `reference_data/feeds.json` | Feed entries keyed by normalized feed name. | +| `reference_data/experiments.json` | Experiment entries keyed by normalized experiment name. | -options: - -h, --help show this help message and exit - -``` - -- original-adm1: If you want to run the original ADM, batstone et al, in your browser you can run this command with the required parameters in JSON format: - -``` -ADToolbox ADM original-adm1 --help -────────────────────────────────── ADToolBox ─────────────────────────────────── -usage: ADToolBox ADM original-adm1 [-h] [--model-parameters MODEL_PARAMETERS] - [--base-parameters BASE_PARAMETERS] - [--initial-conditions INITIAL_CONDITIONS] - [--inlet-conditions INLET_CONDITIONS] - [--reactions REACTIONS] [--species SPECIES] - [--metagenome-report METAGENOME_REPORT] - [--report REPORT] - -options: - -h, --help show this help message and exit - --model-parameters MODEL_PARAMETERS - Model parameters for ADM 1 - --base-parameters BASE_PARAMETERS - Provide json file with base parameters for original - ADM1 - --initial-conditions INITIAL_CONDITIONS - Provide json file with initial conditions for original - ADM1 - --inlet-conditions INLET_CONDITIONS - Provide json file with inlet conditions for original - ADM1 - --reactions REACTIONS - Provide json file with reactions for original ADM1 - --species SPECIES Provide json file with species for original ADM1 - --metagenome-report METAGENOME_REPORT - Provide json file with metagenome report for original - ADM1 - --report REPORT Describe how to report the results of original ADM1. - Current options are: 'dash' and 'csv' - - -``` - -Every argument is optional, and their role is clear from the comments in front of them, So we just provide a full example of this command: - - -``` -ADToolbox ADM original-adm1 \ ---model-parameters ~/Desktop/Model_Parameters.json \ ---base-parameters ~/Desktop/Base_Parameters.json \ ---initial-conditions ~/Desktop/Initial_Conditions.json \ ---inlet-conditions ~/Desktop/Inlet-Conditions.json \ ---reactions ~/Desktop/Reactions.json ---species ~/Desktop/Species.json ---metagenome-report ~/Desktop/ADM_Mapping_Report.json ---repor dash - -``` -**NOTE** if you choose dash for your report, the CLI will prompt you to open your browser in the instructed address, if you choose csv, it will generate a CSV file that includes concentration profiles simulated over time. - ---------------- - -- modified-adm: This command is exactly similar to the previous one, except that it requires parameters taylored for modified ADM: - -``` - -ADToolbox ADM modified-adm --help -────────────────────────────────── ADToolBox ─────────────────────────────────── -usage: ADToolBox ADM modified-adm [-h] [--model-parameters MODEL_PARAMETERS] - [--base-parameters BASE_PARAMETERS] - [--initial-conditions INITIAL_CONDITIONS] - [--inlet-conditions INLET_CONDITIONS] - [--reactions REACTIONS] [--species SPECIES] - [--metagenome-report METAGENOME_REPORT] - [--report REPORT] - -options: - -h, --help show this help message and exit - --model-parameters MODEL_PARAMETERS - Model parameters for Modified ADM - --base-parameters BASE_PARAMETERS - Provide json file with base parameters for modified - ADM - --initial-conditions INITIAL_CONDITIONS - Provide json file with initial conditions for modified - ADM - --inlet-conditions INLET_CONDITIONS - Provide json file with inlet conditions for modified - ADM - --reactions REACTIONS - Provide json file with reactions for modified ADM - --species SPECIES Provide json file with species for modified ADM - --metagenome-report METAGENOME_REPORT - Provide json file with metagenome report for modified - ADM - --report REPORT Describe how to report the results of modified ADM. - Current options are: 'dash' and 'csv' - -``` - -The usage is exactly the same as the original-adm - -------------------------- - -- show-escher-map: This command will prompt you to open an escher map for the modified-adm model in your browser with the instructed address: - -``` -ADToolbox ADM show-escher-map - -``` - -------------- -### 5. Documentations Module - -You can view the documentaion in your CLI using rich's markdown render. You can do this by: - -``` -ADToolbox Documentations --show - -``` +These files are meant as portable examples and test fixtures. Production runs can point the CLI at any equivalent local files. diff --git a/docs/modeling.html b/docs/modeling.html index dbbf5db..926ee72 100644 --- a/docs/modeling.html +++ b/docs/modeling.html @@ -7777,7 +7777,7 @@

Building a map for the model (o @@ -7804,7 +7804,7 @@

Building a map for the model (o @@ -7830,7 +7830,7 @@

Building a map for the model (o + @@ -304,10 +378,13 @@

404 - Not found

- - + + + + + diff --git a/site/ADM_Models/index.html b/site/ADM_Models/index.html new file mode 100644 index 0000000..f6b689d --- /dev/null +++ b/site/ADM_Models/index.html @@ -0,0 +1,2061 @@ + + + + + + + + + + + + + + + + + + + + + + + ADM Models - ADToolbox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + + +
+
+
+ + + + + + + +
+
+ + + + + +

ADM Models

+

ADToolbox exposes two anaerobic digestion models:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
CLI commandModelParameter folderStoichiometric builderODE system
adtoolbox ADM adm1ADM1adm1adm.build_adm1_stoichiometric_matrixadm.adm1_ode_sys
adtoolbox ADM e-adme-ADMe_admadm.build_e_adm_stoichiometric_matrixadm.e_adm_ode_sys
+

The CLI and public API use only the names ADM1 and e-ADM. The preferred parameter format is one models.json file containing all models, keyed by model name.

+

Model Inputs

+

The canonical model input is a single JSON file with one top-level key per model:

+
{
+  "adm1": {
+    "species": [],
+    "reactions": [],
+    "model_parameters": {},
+    "base_parameters": {},
+    "initial_conditions": {},
+    "inlet_conditions": {}
+  },
+  "e_adm": {
+    "species": [],
+    "reactions": [],
+    "model_parameters": {},
+    "base_parameters": {},
+    "initial_conditions": {},
+    "inlet_conditions": {}
+  }
+}
+
+

The first layer is always the model key. The second layer is the complete model payload used to instantiate adm.Model.

+ + + + + + + + + + + + + + + + + + + + +
Top-level keyPublic modelCLI command
adm1ADM1adtoolbox ADM adm1 --models-json models.json
e_adme-ADMadtoolbox ADM e-adm --models-json models.json
+

The older six-file layout is still supported as a compatibility path, either by passing --parameters-dir or by passing each file explicitly.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input fileADM1 namee-ADM nameDescription
Model parametersadm1_model_parameters.jsone_adm_model_parameters.jsonKinetic, equilibrium, inhibition, gas transfer, and yield parameters used in reaction rates and acid/base calculations.
Base parametersadm1_base_parameters.jsone_adm_base_parameters.jsonReactor-level constants such as liquid volume, gas volume, influent flow, gas transfer constants, pressure, temperature, and gas constants.
Initial conditionsadm1_initial_conditions.jsone_adm_initial_conditions.jsonInitial concentration of every model state. Keys must match the species list.
Inlet conditionsadm1_inlet_conditions.jsone_adm_inlet_conditions.jsonInfluent concentration of every model state, using the same species names with _in appended.
Reactionsadm1_reactions.jsone_adm_reactions.jsonOrdered reaction names. This order defines the columns of the stoichiometric matrix and the reaction-rate vector.
Speciesadm1_species.jsone_adm_species.jsonOrdered state names. This order defines the rows of the stoichiometric matrix and the concentration vector.
+

The CLI also accepts:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OptionApplies toDescription
--models-jsonADM1, e-ADMPreferred input. JSON file containing all models keyed by model name.
--parameters-dirADM1, e-ADMDirectory containing the six JSON files for the selected model.
--model-parameters, --base-parameters, --initial-conditions, --inlet-conditions, --reactions, --speciesADM1, e-ADMOverride individual JSON file paths.
--reportADM1, e-ADMOutput mode. Use csv to write a report or dash to open the interactive app. If omitted, the model is solved without creating an output view.
--control-statese-ADMJSON object of states to hold constant. By default, e-ADM holds S_H_ion at 10^-6.5.
+

ADM1 Input Contract

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input objectRequired shapeRequired naming ruleHow it is used
specieslist of 38 stringsNames must match every key in initial_conditions; each inlet key must be species_name + "_in".Defines the order of the state vector c.
reactionslist of 28 stringsNames must match the reaction names used in build_adm1_stoichiometric_matrix and adm1_ode_sys.Defines the order of the reaction vector v and the columns of S.
initial_conditionsobject with 38 numeric valuesKeys are exactly the ADM1 species names.Converted to y0, the initial state passed to solve_ivp.
inlet_conditionsobject with 38 numeric valuesKeys are exactly the ADM1 species names with _in appended.Converted to c_in, used in the liquid and gas flow terms.
base_parametersobject with reactor constantsMust include q_in, V_liq, V_gas, R, T_op, T_base, P_atm, and K_W or equivalent water-equilibrium value used by the model.Controls hydraulic dilution, gas headspace scaling, and gas partial pressures.
model_parametersobject with kinetic, yield, fraction, acid/base, inhibition, and gas-transfer constantsMust include all keys referenced by ADM1 rates and stoichiometry, such as k_dis, k_hyd_*, k_m_*, K_S_*, Y_*, f_*, C_*, N_*, K_a_*, K_pH_*, K_I_*, k_L_a, K_H_*, and k_p.Controls reaction rates, stoichiometric coefficients, inhibition factors, acid/base rates, and gas transfer.
+

e-ADM Input Contract

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Input objectRequired shapeRequired naming ruleHow it is used
specieslist of 49 stringsNames must match every key in initial_conditions; each inlet key must be species_name + "_in".Defines the order of the state vector c.
reactionslist of 45 stringsNames must match the reaction names used in build_e_adm_stoichiometric_matrix and e_adm_ode_sys.Defines the order of the reaction vector v and the columns of S.
initial_conditionsobject with 49 numeric valuesKeys are exactly the e-ADM species names.Converted to y0, after applying any control_state overrides.
inlet_conditionsobject with 49 numeric valuesKeys are exactly the e-ADM species names with _in appended.Converted to c_in, used in the liquid and gas flow terms.
base_parametersobject with reactor constantsMust include q_in, V_liq, V_gas, R, T_op, T_base, P_atm, and K_W.Controls hydraulic dilution, gas headspace scaling, and gas partial pressures.
model_parametersobject with kinetic, yield, fraction, acid/base, inhibition, and gas-transfer constantsMust include all keys referenced by e-ADM rates and stoichiometry, including Y_su, Y_aa, Y_fa, Y_ac_et, Y_ac_lac, Y_pro_et, Y_pro_lac, Y_bu_et, Y_bu_lac, Y_va, Y_cap, Y_bu, Y_Me_ac, Y_Me_CO2, Y_ac_et_ox, and Y_pro_lac_ox.Controls reaction rates, stoichiometric coefficients, inhibition factors, acid/base rates, and gas transfer.
control_stateoptional objectKeys must be valid species names.Overrides initial conditions and forces selected derivatives to zero. The CLI sets S_H_ion = 10^-6.5 by default for e-ADM.
+

Other Keyed Database Files

+

The same first-layer-key pattern should be used for other structured databases. For example, feeds can live in one feeds.json file:

+
{
+  "food_waste": {
+    "name": "food_waste",
+    "carbohydrates": 10,
+    "proteins": 20,
+    "lipids": 20,
+    "si": 30,
+    "xi": 50,
+    "tss": 80
+  },
+  "manure": {
+    "name": "manure",
+    "carbohydrates": 5,
+    "proteins": 15,
+    "lipids": 5,
+    "si": 20,
+    "xi": 55,
+    "tss": 70
+  }
+}
+
+

That keeps the rule consistent: one file per database type, one top-level key per named item.

+

Model Outputs

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OutputSourceDescription
Concentration trajectoriesModel.solve_model(...)Returns a SciPy OdeResult. sol.t contains time points and sol.y contains species concentrations ordered exactly like model.species.
CSV report--report csv or Model.csv_report(...)Writes <model.name>_Report.csv. Rows are species and columns are simulated time points.
Interactive dashboard--report dash or Model.dash_app(...)Opens a Dash app with concentration plots and model tables.
Reaction fluxesmodel.info["Fluxes"]The most recent reaction-rate vector v, ordered exactly like model.reactions.
Stoichiometric matrixmodel.sMatrix S with shape number_of_species x number_of_reactions. Entry S[i, j] is the coefficient for species i in reaction j.
+

ADM1 has 38 species and 28 reactions. e-ADM has 49 species and 45 reactions.

+

Output Shapes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OutputADM1 shapee-ADM shapeNotes
sol.t(n_time_points,)(n_time_points,)Time is in days in the default examples. The CLI uses np.linspace(0, 30, 10000).
sol.y(38, n_time_points)(49, n_time_points)Rows follow model.species; columns follow sol.t.
model.s(38, 28)(49, 45)Rows follow species; columns follow reactions.
model.info["Fluxes"](28, 1)(45, 1)Stores the most recent flux calculation from the ODE function.
CSV report38 rows plus header49 rows plus headerThe first column is the species index. Remaining columns are simulated time points.
+

The solver returns a fallback solution filled with 1e10 if integration fails. That is a failure sentinel, not a physical concentration.

+

Mathematical Setup

+

The JSON files describe the state names, reaction names, and parameter values. The Python model converts them into a dynamic system by building a stoichiometric matrix and evaluating reaction rates at every time step.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StepFormulaMeaning
Species vectorc(t) = [c_1(t), ..., c_n(t)]^TConcentrations are ordered by the species JSON file.
Reaction-rate vectorv(c, theta) = [v_1, ..., v_m]^TFluxes are ordered by the reactions JSON file and are calculated from concentrations and parameters.
Stoichiometric matrixS in R^(n x m)Rows are species, columns are reactions. S[i, j] converts reaction j into the concentration change of species i.
Reaction contributionr(c, theta) = S v(c, theta)Net production or consumption of every species from biochemical, acid/base, and gas-transfer reactions.
Liquid flow contribution(q_in / V_liq) * (c_in - c)Continuous stirred tank dilution or influent loading for liquid-phase states.
Gas flow contribution(q_gas / V_gas) * (c_gas,in - c_gas)Headspace gas outflow for gas states.
Gas flow rateq_gas = max(0, k_p * (P_gas - P_atm))Gas leaves only when calculated gas pressure exceeds atmospheric pressure.
Final derivativedc/dt = S v(c, theta) + flow termsThis is the vector returned to scipy.integrate.solve_ivp.
+

The implemented derivative can be written as:

+
c = current state vector
+c_in = inlet state vector
+S = stoichiometric matrix
+v = reaction-rate vector
+
+r = S @ v
+
+for liquid states:
+    dc_liq/dt = r_liq + (q_in / V_liq) * (c_in,liq - c_liq)
+
+for gas states:
+    dc_gas/dt = r_gas + (q_gas / V_gas) * (c_in,gas - c_gas)
+
+

The gas states are the final three species in both models:

+
S_gas_h2, S_gas_ch4, S_gas_co2
+
+

The gas pressure and gas outflow equations are:

+
p_gas_h2  = S_gas_h2  * R * T_op / 16
+p_gas_ch4 = S_gas_ch4 * R * T_op / 64
+p_gas_co2 = S_gas_co2 * R * T_op
+p_gas_h2o = 0.0313 * exp(5290 * (1 / T_base - 1 / T_op))
+
+P_gas = p_gas_h2 + p_gas_ch4 + p_gas_co2 + p_gas_h2o
+q_gas = max(0, k_p * (P_gas - P_atm))
+
+

For any reaction j, the instantaneous contribution to species i is:

+
dc_i/dt from reaction j = S[i, j] * v_j
+
+

This is why reaction and species names are used to build S: the equations are much easier to audit than when the matrix is filled with positional numbers.

+

Reaction Rate Forms

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Reaction typeFormula patternUsed for
First-order conversionv_j = k * XDisintegration, hydrolysis, and decay reactions.
Single-substrate uptakev_j = k_m * S_a / (K_S + S_a) * X * ISugar, amino acid, LCFA, acetate, hydrogen, ethanol, lactate, and VFA uptake reactions.
Competitive ADM1 C4 uptakev_j = k_m * S_a / (K_S + S_a) * X_c4 * S_a / (S_va + S_bu + eps) * IADM1 valerate and butyrate uptake.
Two-substrate uptakev_j = k_m * S_a * S_b / (K_a * S_a + K_b * S_b + S_a * S_b + eps) * X * Ie-ADM syntrophic reactions that require paired substrates.
Inhibition or limitationI = product(I_pH, I_H2, I_NH3, I_IN, ...)Multiplies uptake rates to suppress a reaction under limiting or inhibitory conditions.
Acid/base kinetic formv_AB = k_AB * (S_ion * (K_a + S_H) - K_a * S_total)Kinetic acid/base reactions when the state is not solved algebraically.
DAE acid/base updateS_ion = K_a / (K_a + S_H) * S_totalAlgebraic speciation used when model.switch == "DAE".
Gas transferv_gas = k_La * (S_liq - H * p_gas)Transfer between dissolved gas states and headspace gas states.
+

Acid/Base Equations

+

ADM1 and e-ADM both calculate kinetic acid/base rates, then set selected acid/base derivatives to zero in DAE mode. The kinetic form is:

+
v_AB,acid = k_A_B,acid * (S_ion * (K_a,acid + S_H) - K_a,acid * S_total)
+
+

For carbonate and inorganic nitrogen:

+
v_AB,co2 = k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC)
+v_AB,IN  = k_A_B_IN  * (S_nh3      * (K_a_IN  + S_H) - K_a_IN  * S_IN)
+
+

In DAE mode, ionized species are updated algebraically. e-ADM explicitly updates:

+
S_va_ion  = K_a_va  / (K_a_va  + S_H) * S_va
+S_bu_ion  = K_a_bu  / (K_a_bu  + S_H) * S_bu
+S_pro_ion = K_a_pro / (K_a_pro + S_H) * S_pro
+S_cap_ion = K_a_cap / (K_a_cap + S_H) * S_cap
+S_ac_ion  = K_a_ac  / (K_a_ac  + S_H) * S_ac
+S_lac_ion = K_a_lac / (K_a_lac + S_H) * S_lac
+S_hco3_ion = S_IC - S_co2
+
+

Hydrogen ion concentration is calculated from electroneutrality unless it is controlled:

+
S_H = -phi / 2 + 0.5 * sqrt(phi^2 + 4 * K_w)
+
+

When S_H_ion is included in control_state, the controlled value is used and dS_H_ion/dt = 0.

+

Inhibition Equations

+

The pH inhibition terms use Hill-type functions:

+
I_pH_x = K_pH_x^n_x / (S_H^n_x + K_pH_x^n_x)
+
+

Nitrogen limitation is a Monod term:

+
I_IN_lim = S_IN / (K_S_IN + S_IN + eps)
+
+

Hydrogen and ammonia inhibition terms use:

+
I_h2_x = 1 / (1 + S_h2 / (K_I_h2_x + eps))
+I_nh3  = 1 / (1 + S_nh3 / (K_I_nh3 + eps))
+
+

ADM1 uses the same conceptual forms, with its original I_IN_lim = 1 / (1 + K_S_IN / S_IN) expression.

+

ADM1 Reactions

+

The ADM1 reactions follow the Batstone ADM1 structure: disintegration, hydrolysis, soluble-substrate uptake, biomass decay, acid/base speciation, and gas transfer.

+

ADM1 Stoichiometric Coefficients

+

ADM1 uses yield coefficients Y_*, product fractions f_*, carbon contents C_*, and nitrogen contents N_* to fill S. Nitrogen limitation sets selected yields to zero before S is built.

+

For the main carbon-balance terms:

+
Y_su = 0 if nitrogen_limited else Y_su
+Y_aa = 0 if nitrogen_limited else Y_aa
+Y_fa = 0 if nitrogen_limited else Y_fa
+
+s_1  = -C_xc + f_sI_xc*C_sI + f_ch_xc*C_ch + f_pr_xc*C_pr + f_li_xc*C_li + f_xI_xc*C_xI
+s_2  = -C_ch + C_su
+s_3  = -C_pr + C_aa
+s_4  = -C_li + (1 - f_fa_li)*C_su + f_fa_li*C_fa
+s_5  = -C_su + (1 - Y_su)*(f_bu_su*C_bu + f_pro_su*C_pro + f_ac_su*C_ac) + Y_su*C_bac
+s_6  = -C_aa + (1 - Y_aa)*(f_va_aa*C_va + f_bu_aa*C_bu + f_pro_aa*C_pro + f_ac_aa*C_ac) + Y_aa*C_bac
+s_7  = -C_fa + (1 - Y_fa)*0.7*C_ac + Y_fa*C_bac
+s_8  = -C_va + (1 - Y_c4)*0.54*C_pro + (1 - Y_c4)*0.31*C_ac + Y_c4*C_bac
+s_9  = -C_bu + (1 - Y_c4)*0.8*C_ac + Y_c4*C_bac
+s_10 = -C_pro + (1 - Y_pro)*0.57*C_ac + Y_pro*C_bac
+s_11 = -C_ac + (1 - Y_ac)*C_ch4 + Y_ac*C_bac
+s_12 = (1 - Y_h2)*C_ch4 + Y_h2*C_bac
+s_13 = -C_bac + C_xc
+
+

These terms are inserted into the S_IC row with negative signs for conversion reactions and positive return through decay. For example:

+
S[S_IC, Uptake of sugars] = -s_5
+S[S_IC, Uptake of acetate] = -s_11
+S[S_IC, Decay of Xsu] = -s_13
+
+

Nitrogen stoichiometry follows the same pattern:

+
S[S_IN, Uptake of sugars] = -Y_su * N_bac
+S[S_IN, Uptake of amino acids] = N_aa - Y_aa * N_bac
+S[S_IN, Uptake of acetate] = -Y_ac * N_bac
+S[S_IN, Decay of Xsu] = N_bac - N_xc
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ReactionRate expressionMain conversion represented in S
Disintegrationk_dis * X_xcComposite particulate matter X_xc is split into carbohydrates X_ch, proteins X_pr, lipids X_li, soluble inert S_I, particulate inert X_I, inorganic carbon S_IC, and inorganic nitrogen S_IN.
Hydrolysis carbohydratesk_hyd_ch * X_chParticulate carbohydrates become soluble sugars S_su, with carbon correction through S_IC.
Hydrolysis of proteinsk_hyd_pr * X_prParticulate proteins become amino acids S_aa, with carbon correction through S_IC.
Hydrolysis of lipidsk_hyd_li * X_liLipids split into LCFA S_fa and sugars S_su, with carbon correction through S_IC.
Uptake of sugarsk_m_su * S_su / (K_S_su + S_su) * X_su * I5Sugars are consumed to grow X_su and produce butyrate S_bu, propionate S_pro, acetate S_ac, hydrogen S_h2, inorganic carbon, and nitrogen demand.
Uptake of amino acidsk_m_aa * S_aa / (K_S_aa + S_aa) * X_aa * I6Amino acids are consumed to grow X_aa and produce valerate S_va, butyrate, propionate, acetate, hydrogen, inorganic carbon, and inorganic nitrogen.
Uptake of LCFAk_m_fa * S_fa / (K_S_fa + S_fa) * X_fa * I7LCFA are consumed to grow X_fa and produce acetate, hydrogen, inorganic carbon, and nitrogen demand.
Uptake of valeratek_m_c4 * S_va / (K_S_c4 + S_va) * X_c4 * S_va / (S_va + S_bu + eps) * I8Valerate is consumed by X_c4, producing propionate, acetate, hydrogen, biomass, carbon, and nitrogen demand.
Uptake of butyratek_m_c4 * S_bu / (K_S_c4 + S_bu) * X_c4 * S_bu / (S_bu + S_va + eps) * I9Butyrate is consumed by X_c4, producing acetate, hydrogen, biomass, carbon, and nitrogen demand.
Uptake of propionatek_m_pr * S_pro / (K_S_pro + S_pro) * X_pro * I10Propionate is consumed to grow X_pro and produce acetate, hydrogen, carbon, and nitrogen demand.
Uptake of acetatek_m_ac * S_ac / (K_S_ac + S_ac) * X_ac * I11Acetate is consumed by acetoclastic methanogens, producing methane S_ch4, X_ac, carbon correction, and nitrogen demand.
Uptake of Hydrogenk_m_h2 * S_h2 / (K_S_h2 + S_h2) * X_h2 * I12Hydrogen is consumed by hydrogenotrophic methanogens, producing methane S_ch4, X_h2, carbon correction, and nitrogen demand.
Decay of Xsuk_dec_X_su * X_suSugar degraders decay back to composite particulate matter X_xc, with carbon and nitrogen returned through S_IC and S_IN.
Decay of Xaak_dec_X_aa * X_aaAmino acid degraders decay to X_xc, with carbon and nitrogen returned.
Decay of Xfak_dec_X_fa * X_faLCFA degraders decay to X_xc, with carbon and nitrogen returned.
Decay of Xc4k_dec_X_c4 * X_c4C4 degraders decay to X_xc, with carbon and nitrogen returned.
Decay of Xprok_dec_X_pro * X_proPropionate degraders decay to X_xc, with carbon and nitrogen returned.
Decay of Xack_dec_X_ac * X_acAcetoclastic methanogens decay to X_xc, with carbon and nitrogen returned.
Decay of Xh2k_dec_X_h2 * X_h2Hydrogenotrophic methanogens decay to X_xc, with carbon and nitrogen returned.
Acid Base Equilibrium (Va)k_A_B_va * (S_va_ion * (K_a_va + S_H) - K_a_va * S_va)Valerate speciation between total valerate S_va and ionized valerate S_va_ion.
Acid Base Equilibrium (Bu)k_A_B_bu * (S_bu_ion * (K_a_bu + S_H) - K_a_bu * S_bu)Butyrate speciation between S_bu and S_bu_ion.
Acid Base Equilibrium (Pro)k_A_B_pro * (S_pro_ion * (K_a_pro + S_H) - K_a_pro * S_pro)Propionate speciation between S_pro and S_pro_ion.
Acid Base Equilibrium (Ac)k_A_B_ac * (S_ac_ion * (K_a_ac + S_H) - K_a_ac * S_ac)Acetate speciation between S_ac and S_ac_ion.
Acid Base Equilibrium (CO2)k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC)Carbonate speciation through bicarbonate S_hco3_ion and inorganic carbon S_IC.
Acid Base Equilibrium (In)k_A_B_IN * (S_nh3 * (K_a_IN + S_H) - K_a_IN * S_IN)Nitrogen speciation between ammonia S_nh3, ammonium S_nh4_ion, and total inorganic nitrogen S_IN.
Gas Transfer H2k_L_a * (S_h2 - 16 * K_H_h2 * p_gas_h2)Dissolved hydrogen leaves the liquid and enters S_gas_h2 with V_liq / V_gas scaling.
Gas Transfer CH4k_L_a * (S_ch4 - 64 * K_H_ch4 * p_gas_ch4)Dissolved methane leaves the liquid and enters S_gas_ch4 with V_liq / V_gas scaling.
Gas Transfer CO2k_L_a * (S_co2 - K_H_co2 * p_gas_co2)Dissolved carbon dioxide leaves the liquid and enters S_gas_co2 with V_liq / V_gas scaling.
+

ADM1 Inhibition Factors

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FactorFormula patternApplied to
I5I_pH_aa * I_IN_limSugar uptake.
I6I5Amino acid uptake.
I7I_pH_aa * I_IN_lim * I_h2_faLCFA uptake.
I8, I9I_pH_aa * I_IN_lim * I_h2_c4Valerate and butyrate uptake.
I10I_pH_aa * I_IN_lim * I_h2_proPropionate uptake.
I11I_pH_ac * I_IN_lim * I_nh3Acetate uptake.
I12I_pH_h2 * I_IN_limHydrogen uptake.
+

e-ADM Reactions

+

e-ADM keeps the same dynamic structure but expands the soluble fermentation network. It separates ethanol-linked and lactate-linked routes, adds caproate, lactate, ethanol, explicit TSS/TDS disintegration, and two methanogenesis routes.

+

e-ADM Stoichiometric Coefficients

+

e-ADM uses the same matrix logic as ADM1, but most soluble conversions are written as explicit product fractions plus a carbon-balance residual. Selected yields are set to zero under nitrogen limitation.

+

For sugar, amino acid, and LCFA uptake:

+
Y_su = 0 if nitrogen_limited else Y_su
+Y_aa = 0 if nitrogen_limited else Y_aa
+Y_fa = 0 if nitrogen_limited else Y_fa
+
+f_ac_su = 1 - f_pro_su - f_et_su - f_lac_su
+f_ac_aa = 1 - f_pro_aa - f_et_aa - f_lac_aa
+f_ac_fa = 1 - f_pro_fa - f_et_fa - f_lac_fa
+
+f_IC_su = -(-C_su + (1-Y_su)*f_pro_su*C_pro + (1-Y_su)*f_et_su*C_et
+              + (1-Y_su)*f_lac_su*C_lac + (1-Y_su)*f_ac_su*C_ac + Y_su*C_bac)
+
+f_IC_aa = -(-C_aa + (1-Y_aa)*f_pro_aa*C_pro + (1-Y_aa)*f_et_aa*C_et
+              + (1-Y_aa)*f_lac_aa*C_lac + (1-Y_aa)*f_ac_aa*C_ac + Y_aa*C_bac)
+
+f_IC_fa = -(-C_fa + (1-Y_fa)*f_pro_fa*C_pro + (1-Y_fa)*f_et_fa*C_et
+              + (1-Y_fa)*f_lac_fa*C_lac + (1-Y_fa)*f_ac_fa*C_ac + Y_fa*C_bac)
+
+

For chain elongation and VFA conversion, e-ADM uses paired substrate routes:

+
f_IC_ac_et  = -(-C_ac  + f_et_ac*C_et  + (1-f_et_ac-Y_ac_et)*f_bu_ac*C_bu  + Y_ac_et*C_bac)
+f_IC_ac_lac = -(-C_ac  + f_lac_ac*C_lac + (1-f_lac_ac-Y_ac_lac)*f_bu_ac*C_bu + Y_ac_lac*C_bac)
+
+f_IC_pro_et  = -(-C_pro + f_et_pro*C_et  + (1-f_et_pro-Y_pro_et)*f_va_pro*C_va  + Y_pro_et*C_bac)
+f_IC_pro_lac = -(-C_pro + f_lac_pro*C_lac + (1-f_lac_pro-Y_pro_lac)*f_va_pro*C_va + Y_pro_lac*C_bac)
+
+f_IC_bu_et  = -(-C_bu + f_et_bu*C_et  + (1-f_et_bu-Y_bu_et)*f_cap_bu*C_cap  + Y_bu_et*C_bac)
+f_IC_bu_lac = -(-C_bu + f_lac_bu*C_lac + (1-f_lac_bu-Y_bu_lac)*f_cap_bu*C_cap + Y_bu_lac*C_bac)
+
+

Methanogenesis and oxidation use:

+
f_IC_Me_ach2 = -(f_ac_h2*C_ac + (1 - Y_Me_ac)*C_ch4 + Y_Me_ac*C_bac)
+f_IC_et_ox   = -(-C_et  + (1-Y_ac_et_ox)*C_bac + Y_ac_et_ox*C_ac)
+f_IC_lac_ox  = -(-C_lac + (1-Y_pro_lac_ox)*C_bac + Y_pro_lac_ox*C_pro)
+
+

The stoichiometric matrix then combines these residuals with explicit product coefficients. For example:

+
S[S_su, Uptake of sugars] = -1
+S[S_pro, Uptake of sugars] = (1 - Y_su) * f_pro_su
+S[S_et, Uptake of sugars] = (1 - Y_su) * f_et_su
+S[S_lac, Uptake of sugars] = (1 - Y_su) * f_lac_su
+S[S_ac, Uptake of sugars] = (1 - Y_su) * f_ac_su
+S[S_IN, Uptake of sugars] = -Y_su * N_bac
+S[S_IC, Uptake of sugars] = f_IC_su
+S[X_su, Uptake of sugars] = Y_su
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ReactionRate expressionMain conversion represented in S
TSS_Disintegrationk_dis_TSS * TSSTotal suspended solids are split into X_ch, X_pr, X_li, and inert particulate biomass X_I using feed fractions.
TDS_Disintegrationk_dis_TDS * TDSTotal dissolved solids are split into X_ch, X_pr, X_li, and soluble inert S_I using feed fractions.
Hydrolysis carbohydratesk_hyd_ch * X_chParticulate carbohydrate is hydrolyzed to soluble sugar S_su.
Hydrolysis proteinsk_hyd_pr * X_prParticulate protein is hydrolyzed to amino acids S_aa.
Hydrolysis lipidsk_hyd_li * X_liParticulate lipids are hydrolyzed to LCFA S_fa.
Uptake of sugarsk_m_su * S_su / (K_S_su + S_su) * X_su * I5Sugars are consumed to grow X_su and form propionate, ethanol, lactate, acetate, carbon, and nitrogen demand.
Uptake of amino acidsk_m_aa * S_aa / (K_S_aa + S_aa) * X_aa * I6Amino acids are consumed to grow X_aa and form propionate, ethanol, lactate, acetate, inorganic carbon, and inorganic nitrogen.
Uptake of LCFAk_m_fa * S_fa / (K_S_fa + S_fa) * X_fa * I7LCFA are consumed to grow X_fa and form propionate, ethanol, lactate, acetate, carbon, and nitrogen demand.
Uptake of acetate_etk_m_ac * S_ac * S_et / (K_S_ac*S_ac + K_S_ac_et*S_et + S_ac*S_et + eps) * X_ac_et * I11Acetate and ethanol are converted by X_ac_et, producing butyrate, hydrogen, carbon correction, and new biomass.
Uptake of acetate_lack_m_ac * S_ac * S_lac / (K_S_ac*S_ac + K_S_ac_lac*S_lac + S_ac*S_lac + eps) * X_ac_lac * I11Acetate and lactate are converted by X_ac_lac, producing butyrate, hydrogen, carbon correction, and new biomass.
Uptake of propionate_etk_m_pro * S_pro * S_et / (K_S_pro*S_pro + K_S_pro_et*S_et + S_pro*S_et + eps) * X_chain_et * I10Propionate and ethanol are converted by chain-elongating biomass, producing valerate, hydrogen, carbon correction, and X_chain_et.
Uptake of propionate_lack_m_pro * S_pro * S_lac / (K_S_pro*S_pro + K_S_pro_lac*S_lac + S_pro*S_lac + eps) * X_chain_lac * I10Propionate and lactate are converted by chain-elongating biomass, producing valerate, hydrogen, carbon correction, and X_chain_lac.
Uptake of butyrate_etk_m_bu * S_bu * S_et / (K_S_bu*S_bu + K_S_bu_et*S_et + S_bu*S_et + eps) * X_chain_et * I14Butyrate and ethanol are converted to caproate, hydrogen, carbon correction, and X_chain_et.
Uptake of butyrate_lack_m_bu * S_bu * S_lac / (K_S_bu*S_bu + K_S_bu_lac*S_lac + S_bu*S_lac + eps) * X_chain_lac * I14Butyrate and lactate are converted to caproate, hydrogen, carbon correction, and X_chain_lac.
Uptake of valeratek_m_va * S_va / (K_S_va + S_va) * X_VFA_deg * I15Valerate is degraded to propionate and X_VFA_deg.
Uptake of caproatek_m_cap * S_cap / (K_S_cap + S_cap) * X_VFA_deg * I13Caproate is degraded to acetate and X_VFA_deg.
Uptake of butyratek_m_bu_deg * S_bu / (K_S_bu + S_bu) * X_VFA_deg * I13Butyrate is degraded to acetate and X_VFA_deg.
Methanogenessis from acetate and h2k_m_h2_Me_ac * S_gas_h2 * S_ac / (K_S_h2_Me_ac*S_gas_h2 + K_S_ac_Me*S_ac + S_ac*S_gas_h2 + eps) * X_Me_ac * I12Acetate and gas-phase hydrogen are converted to dissolved methane S_ch4, methanogenic biomass X_Me_ac, carbon correction, and nitrogen demand.
Methanogenessis from CO2 and h2k_m_h2_Me_CO2 * S_gas_h2 * S_gas_co2 / (K_S_h2_Me_CO2*S_gas_h2 + K_S_CO2_Me*S_gas_co2 + S_gas_co2*S_gas_h2 + eps) * X_Me_CO2 * I12Gas-phase hydrogen and carbon dioxide are converted to gas-phase methane S_gas_ch4, X_Me_CO2, gas-phase carbon dioxide change, and nitrogen demand.
Uptake of ethanolk_m_et * S_et / (K_S_et + S_et) * X_et * I16Ethanol is oxidized to acetate, inorganic carbon, and X_et.
Uptake of lactatek_m_lac * S_lac / (K_S_lac + S_lac) * X_lac * I16Lactate is oxidized to propionate, inorganic carbon, and X_lac.
Decay of Xsuk_dec_X_su * X_suSugar degraders decay to TSS, returning biomass carbon and nitrogen.
Decay of Xaak_dec_X_aa * X_aaAmino acid degraders decay to TSS, returning biomass carbon and nitrogen.
Decay of Xfak_dec_X_fa * X_faLCFA degraders decay to TSS, returning biomass carbon and nitrogen.
Decay of X_ac_etk_dec_X_ac * X_ac_etAcetate-ethanol consumers decay to TSS, returning biomass carbon and nitrogen.
Decay of X_ac_lack_dec_X_ac * X_ac_lacAcetate-lactate consumers decay to TSS, returning biomass carbon and nitrogen.
Decay of XproNot currently assigned in e_adm_ode_sysListed in the reaction set but not given a rate in the current ODE block. If kept, it behaves as zero-flux unless populated elsewhere.
Decay of X_chain_etk_dec_X_chain_et * X_chain_etEthanol-linked chain elongators decay to TSS, returning biomass carbon and nitrogen.
Decay of X_chain_lack_dec_X_chain_lac * X_chain_lacLactate-linked chain elongators decay to TSS, returning biomass carbon and nitrogen.
Decay of X_VFA_degk_dec_X_VFA_deg * X_VFA_degVFA degraders decay to TSS, returning biomass carbon and nitrogen.
Decay of X_Me_ack_dec_X_Me_ac * X_Me_acAcetate/hydrogen methanogens decay to TSS, returning biomass carbon and nitrogen.
Decay of X_Me_CO2k_dec_X_Me_CO2 * X_Me_CO2CO2/hydrogen methanogens decay to TSS, returning biomass carbon and nitrogen.
Decay of Xetk_dec_X_et * X_etEthanol oxidizers decay. This rate is present in the ODE; the current stoichiometric builder should be checked if this flux is expected to affect states.
Decay of Xlack_dec_X_lac * X_lacLactate oxidizers decay. This rate is present in the ODE; the current stoichiometric builder should be checked if this flux is expected to affect states.
Acid Base Equilibrium (Va)k_A_B_va * (S_va_ion * (K_a_va + S_H) - K_a_va * S_va)Valerate speciation between S_va and S_va_ion.
Acid Base Equilibrium (Bu)k_A_B_bu * (S_bu_ion * (K_a_bu + S_H) - K_a_bu * S_bu)Butyrate speciation between S_bu and S_bu_ion.
Acid Base Equilibrium (Pro)k_A_B_pro * (S_pro_ion * (K_a_pro + S_H) - K_a_pro * S_pro)Propionate speciation between S_pro and S_pro_ion.
Acid Base Equilibrium (Cap)k_A_B_cap * (S_cap_ion * (K_a_cap + S_H) - K_a_cap * S_cap)Caproate speciation between S_cap and S_cap_ion.
Acid Base Equilibrium (Lac)k_A_B_lac * (S_lac_ion * (K_a_lac + S_H) - K_a_lac * S_lac)Lactate speciation between S_lac and S_lac_ion.
Acid Base Equilibrium (Ac)k_A_B_ac * (S_ac_ion * (K_a_ac + S_H) - K_a_ac * S_ac)Acetate speciation between S_ac and S_ac_ion.
Acid Base Equilibrium (CO2)k_A_B_co2 * (S_hco3_ion * (K_a_co2 + S_H) - K_a_co2 * S_IC)Carbonate speciation through bicarbonate S_hco3_ion and inorganic carbon S_IC.
Acid Base Equilibrium (In)k_A_B_IN * (S_nh3 * (K_a_IN + S_H) - K_a_IN * S_IN)Nitrogen speciation between ammonia S_nh3, ammonium S_nh4_ion, and total inorganic nitrogen S_IN.
Gas Transfer H2max(0, k_L_a * (S_h2 - 16 * K_H_h2 * p_gas_h2))Dissolved hydrogen leaves the liquid and enters S_gas_h2 with V_liq / V_gas scaling.
Gas Transfer CH4max(0, k_L_a * (S_ch4 - 64 * K_H_ch4 * p_gas_ch4))Dissolved methane leaves the liquid and enters S_gas_ch4 with V_liq / V_gas scaling.
Gas Transfer CO2max(0, k_L_a * (S_co2 - K_H_co2 * p_gas_co2))Dissolved carbon dioxide leaves the liquid and enters S_gas_co2 with V_liq / V_gas scaling.
+

e-ADM Inhibition Factors

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FactorFormula patternApplied to
I5I_pH_aa * I_IN_limSugar uptake.
I6I5Amino acid uptake.
I7I_pH_aa * I_IN_lim * I_h2_faLCFA uptake.
I10I_pH_pro * I_IN_lim * I_h2_proPropionate plus ethanol or lactate uptake.
I11I_pH_ac * I_IN_lim * I_nh3Acetate plus ethanol or lactate uptake.
I12I_pH_h2 * I_IN_limMethanogenesis.
I13I_pH_cap * I_IN_lim * I_h2_c4Caproate uptake and direct butyrate degradation.
I14I_pH_bu * I_IN_lim * I_h2_c4Butyrate plus ethanol or lactate uptake.
I15I_pH_va * I_IN_lim * I_h2_c4Valerate uptake.
I16I_IN_lim * I_nh3 * I_pH_aa * I_h2_oxidationEthanol and lactate oxidation.
+

Methane-Producing Reactions

+ + + + + + + + + + + + + + + + + +
ModelMethane-producing reactions
ADM1Uptake of acetate, Uptake of Hydrogen
e-ADMMethanogenessis from acetate and h2, Methanogenessis from CO2 and h2
+

Gas Transfer CH4 does not create methane. It moves methane between dissolved S_ch4 and gas-phase S_gas_ch4.

+

State Vectors

+

ADM1 Species

+

S_su, S_aa, S_fa, S_va, S_bu, S_pro, S_ac, S_h2, S_ch4, S_IC, S_IN, S_I, X_xc, X_ch, X_pr, X_li, X_su, X_aa, X_fa, X_c4, X_pro, X_ac, X_h2, X_I, S_cation, S_anion, S_H_ion, S_va_ion, S_bu_ion, S_pro_ion, S_ac_ion, S_hco3_ion, S_co2, S_nh3, S_nh4_ion, S_gas_h2, S_gas_ch4, S_gas_co2

+

e-ADM Species

+

S_su, S_aa, S_fa, S_va, S_bu, S_pro, S_et, S_lac, S_cap, S_ac, S_h2, S_ch4, S_IC, S_IN, S_I, TSS, TDS, X_ch, X_pr, X_li, X_su, X_aa, X_ac_et, X_ac_lac, X_fa, X_VFA_deg, X_et, X_lac, X_chain_et, X_chain_lac, X_Me_ac, X_Me_CO2, X_I, S_cation, S_anion, S_H_ion, S_va_ion, S_bu_ion, S_pro_ion, S_cap_ion, S_lac_ion, S_ac_ion, S_hco3_ion, S_co2, S_nh3, S_nh4_ion, S_gas_h2, S_gas_ch4, S_gas_co2

+

Minimal CLI Run

+
adtoolbox ADM adm1 --models-json /path/to/ADToolbox/models.json --report csv
+
+
adtoolbox ADM e-adm --models-json /path/to/ADToolbox/models.json --report csv
+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/site/API/index.html b/site/API/index.html index e1fed1b..3d656b1 100644 --- a/site/API/index.html +++ b/site/API/index.html @@ -12,10 +12,11 @@ - + + - + @@ -23,15 +24,15 @@ - - - - + + + + @@ -44,7 +45,7 @@ - + @@ -54,15 +55,9 @@ - - - - - - + - @@ -81,16 +76,19 @@ -
+ + +
@@ -134,12 +135,13 @@ +