System-level Hypothesis Testing: A Novel Approach to Developing Parsimonious Models of Complex Ecosystem Geoffrey Poole Clem Izurieta Dynamics Robert Payn Ashley Helton Meredith Wright Emily Bernhardt Jack Stanford AN IMPERATIVE SE techniques yield: Model parsimony Code reliability, extensibility, reuse, longevity Grid-based highperformance computing Virtual laboratories Scheller et al. 2009 THE NEED Virtual laboratory; model parsimony Code reliability, extensibility, and reuse Requires: rapid creation, maintenance, management, and execution of multiple competing model variants
Requires: encapsulation and modularization of code High performance computing Requires: A simple means of developing multi-threaded code WHAT IS A MODEL? Uptake Umax k [Solute] Biomas s [Solut e] Tim RETHINKING MODELS... Simulation run Values r = 0.034 u = 6.2 Ks = 1.73 W = 600 U = 17.3 R = 6.5 X = 13.4 S =1800.0 [S] = 3.00 NEO Code Input/ Output/ Initialization Execution
control Calculations Model CREATING A NEO SIMULATION Solution Biomass Uptake Respiration E2 E1 C1 C2 NEO INPUT FILE: Matrix Table EdgeID FromCell ToCell E1 C1 C2 E2 C2 Ks W r
E1 C1 E2 C2 NEO INPUT FILE: Parameter file HolonID Variable Value C1 W 600 E1 Ks 1.73 E1 u 6.2 E2 R 0.034 Solution Uptake
Biomass eq4 S W eq5 [S] C1 Model code hierarchy 4 4 5 5 3 3 1 1 2 2 Respiration eq2 Ks eq1 eq3 U X E1
C2 R r E2 NEO INPUT FILE: Holon Type Holon ID Holon Type Table C1 Solution C2 Biomass E1 Uptake E2 Respiration NEO INPUT FILE: Cell Type Behavior Cell type Carbon Table Solution aqueous Biomass microbial NEO INPUT FILE: Edge Type Behavior Edge type Carbon
Table Uptake michaelis_menten Respiration microbial Solution Uptake Biomass Respiration eq4 Ks S W eq5 [S] C1 eq2 eq1 eq3 U X E1
C2 Biomas s [Solut e] Time R r E2 Solution Uptake Biomass eq4 S W eq5 [S] Ks eq2 eq1 eq3 U X E1 MyEdge
FromCe C1 ll Model code hierarchy 4 4 5 5 3 3 1 1 2 2 Respiration ToCel C2 l R r E2 Pseudo code public public class class Carbon Carbon extends extends Dynam Dynam { { private private StateVal StateVal Ks, Ks, u,
u, conc, conc, X; X; public public double double initialize() initialize() { { Ks Ks = = myEdge.getStateVal(Ks); myEdge.getStateVal(Ks); u u= = myEdge.getStateVal(u); myEdge.getStateVal(u); conc conc = = fromCell.getStateVal([S]); fromCell.getStateVal([S]); X X= = toCell.getStateVal(X); toCell.getStateVal(X); return return 0.0; 0.0; } } public public double double calculate() calculate() { { return return u.v u.v ** (Ks.v (Ks.v // (Ks.v (Ks.v + + conc.v)) conc.v)) ** X.v; X.v; } }}
} MULTIPLE INTERACTIVE CURRENCIES Microbial uptake and respiration HorzGroundwaterFlux Q S Water flux and solute transport W Q W S [S ] Ks S [S ] Ks U X R r Resp Uptake Biomass S
U X U X R r Q S W S [S ] Q S Ks R r CODE REUSE AND RECOMBINATION Biomass Surfac e Wat er Flux Biomass Horizo ntal G W Flu x SurfaceWater
SWFlu x al Ar e a k e t Up GroundWater n t io a r spi Re CO 2 GWSW Exchange H220 DOC SWFlu x al Ar e a k e GWSW pt U H CO2 o r i zonta Exchange on l at i
G r i W Flux Horizo sp nt Re H22O Biomass al GWFlu DOC x OC OC M-M ake t Up SurfaceWater CO2 on at i r i sp Re M-M ke ta Up Advect iv e Solute Flux
PARALLEL PROCESSING Step 1: Perform Step 2: Use parallel NEO multiple independent processing to model model executions (with expedite run-time of spawner different individual model parameters) executions. Model Model simultaneously Speeds execution execution applications of across multiple s processing highly detailed or threads. Speeds complex Processin applications such Processin models. g threads g threads as sensitivity analyses. Model outputs Model output THE BOTTOM LINE As a modeling framework, NEO allows:
Specification of model parameters, structure, and algorithms at run time NEO facilitates: Rapid model development Simple management of code complexity Addition and removal of model dynamics Applications on HPC platforms Maintenance, management and execution of multiple model variants SYSTEM LEVEL HYPOTHESIS TESTING Hypothesis testing requires making predictions At a whole-system level, a model is required Models variants are competing hypotheses Complexity can be added/removed Alternative behaviors can be substituted Empirical data are used to reject models Last model standing (if any) is supported SYNERGY WITH BAYESIAN
APPROACHES? Sources of error in model assessment Empirical data Model parameters Model structure Bayesian approaches presume that model structure is fixed. NEO opens the possibility of Bayesian assessment to determine the probability of alternative model structures. http://www.montana.edu/FLL A) Model B) Illustrative code 4 4 5 5 Behaviors 3 3 Deviant Holons Packages
Model 1 1 2 2 public public class class Carbon Carbon extends extends Dynam Dynam { { private private StateVal StateVal conc, conc, water; water; public public double double initialize() initialize() { { conc conc = = fromCell.getStateVal(CarbonConc); fromCell.getStateVal(CarbonConc); water water = = myEdge.getStateVal(Water); myEdge.getStateVal(Water); return return 0.0; 0.0; } } public public double double calculate()
calculate() { { return conc * water; } } return conc * water; } } public public class class Carbon Carbon extends extends Dynam Dynam { { private StateVal k, u_max, conc, private StateVal k, u_max, conc, biomass; biomass; public public double double initialize() initialize() { { k k= = myholon.getStateVal(K); myholon.getStateVal(K); u_max u_max = = myEdge.getStateVal(u_max); myEdge.getStateVal(u_max); conc conc = = fromCell.getStateVal(CarbonConc); fromCell.getStateVal(CarbonConc);
biomass biomass = = toCell.getStateVal(Carbon); toCell.getStateVal(Carbon); return return 0.0; 0.0; } } public double calculate() public double calculate() {Dynam public class Carbon extends public class Carbon extends{ Dynam { { return u_max * (k / (k + conc)) return u_max * (k / (k + conc)) ** private
private StateVal StateVal r, r, biomass; biomass; biomass; } biomass; }} } public initialize() public double double initialize() { { rr = = myEdge.getStateVal(r); myEdge.getStateVal(r); biomass biomass = = fromCell.getStateVal(Carbon); fromCell.getStateVal(Carbon); return return 0.0; 0.0; } } public double calculate() public double calculate() { { return return -r -r ** biomass; biomass; } }} } 1 2
ECOSYSTEMS AS MULTI-CURRENCY FLUX NETS Model of solute transport/processing (currencies are water, heat, carbon, nitrogen, oxygen) within a linked hydro-biological system (network) Helton et al. Accepted PHYSICAL SYSTEMS AS FLUX NETWORKS Surface and ground water (currency) flux across and through the Nyack Floodplain, Middle Fork Flathead River BIOTIC COMMUNITIES AS FLUX NETWORKS Baxter et al. 2005 od web (network) representing carbon (currency) flux