{
  "data": [
    {
      "name": "all_CDC_inc",
      "require": { "path": "data/data.csv", "fields": ["date", "all_CDC_inc"] }
    },
    {
      "name": "paris_CDC_prev",
      "require": { "path": "data/data.csv", "fields": ["date", "paris_CDC_prev"] }
    },
    {
      "name": "all_google_inc",
      "require": { "path": "data/data.csv", "fields": ["date", "all_google_inc"] }
    },
    {
      "name": "nyc_CDC_inc",
      "require": { "path": "data/data.csv", "fields": ["date", "nyc_CDC_inc"] }
    }
  ],

  "inputs": [
    {
      "name": "N_nyc",
      "require": { "path": "data/N.csv", "fields": ["date", "nyc"] }
    },
    {
      "name": "N_paris",
      "require": { "path": "data/N.csv", "fields": ["date", "paris"] }
    },
    {
      "name": "mu_b_paris",
      "require": { "path": "data/mu_b.csv", "fields": ["date", "paris"] }
    },
    {
      "name": "mu_b_nyc",
      "require": { "path": "data/mu_b.csv", "fields": ["date", "nyc"] }
    },
    {
      "name": "mu_d_paris",
      "require": { "path": "data/mu_d.csv", "fields": ["date", "paris"] }
    },
    {
      "name": "mu_d_nyc",
      "require": { "path": "data/mu_d.csv", "fields": ["date", "nyc"] }
    },
    {
      "name": "prop_all_CDC_inc",
      "require": { "path": "data/prop.csv", "fields": ["date", "all_CDC_inc"] }
    },
    {
      "name": "prop_paris_CDC_prev",
      "require": { "path": "data/prop.csv", "fields": ["date", "paris_CDC_prev"] }
    },
    {
      "name": "prop_all_google_inc",
      "require": { "path": "data/prop.csv", "fields": ["date", "all_google_inc"] }
    },
    {
      "name": "prop_nyc_CDC_inc",
      "require": { "path": "data/prop.csv", "fields": ["date","nyc_CDC_inc"] }
    },


    {
      "name": "S_paris",
      "description": "Number of susceptible",
      "require": {"name": "pr_S_paris", "path": "data/pr_S_paris.json"},
      "transformation": "pr_S_paris*N_paris",
      "to_resource": "S_paris/N_paris"
    },
    {
      "name": "S_nyc",
      "description": "Number of susceptible",
      "transformation": "pr_S_paris*N_nyc"
    },
    {
      "name": "I_paris",
      "description": "Number of infectious",
      "keywords": ["infectious"],
      "require": {"name": "pr_I_paris", "path": "data/pr_I_paris.json" },
      "transformation": "pr_I_paris*N_paris",
      "to_resource": "I_paris/N_paris"
    },
    {
      "name": "I_nyc",
      "description": "Number of infectious",
      "keywords": ["infectious"],
      "require": {"name": "pr_I_nyc", "path": "data/pr_I_nyc.json"},
      "transformation": "pow(10, -pr_I_nyc) * N_nyc",
      "to_resource": "-log(I_nyc)/(log(10)*N_nyc)"
    },
    {
      "name": "r0_paris",
      "description": "basic reproduction number",
      "require": {"name": "r0_paris", "path": "data/r0_paris.json"}
    },
    {
      "name": "r0_nyc",
      "description": "basic reproduction number",
      "require": {"name": "r0_nyc", "path": "data/r0_nyc.json"}
    },
    {
      "name": "vol",
      "description": "volatility of the diffusion",
      "require": {"name": "vol", "path": "data/vol.json"}
    },
    {
      "name": "v",
      "description": "recovery rate",
      "require": {"name": "pr_v", "path": "data/pr_v.json"},
      "transformation": "1/pr_v",
      "to_resource": "1/v"
    },
    {
      "name": "sto",
      "description": "noise intensity",
      "require": {"name": "sto", "path": "data/sto.json"}
    },
    {
      "name": "rep_all_CDC_inc",
      "description": "reporting rate",
      "require": {"name": "rep_all_CDC_inc", "path": "data/rep_all_CDC_inc.json"}
    },
    {
      "name": "rep_paris_CDC_prev",
      "description": "reporting rate",
      "require": {"name": "rep_paris_CDC_prev", "path": "data/rep_paris_CDC_prev.json"}
    },
    {
      "name": "rep_all_google_inc",
      "description": "reporting rate",
      "require": {"name": "rep_all_google_inc", "path": "data/rep_all_google_inc.json"}
    },
    {
      "name": "rep_nyc_CDC_inc",
      "description": "reporting rate",
      "require": {"name": "rep_nyc_CDC_inc", "path": "data/rep_nyc_CDC_inc.json"}
    },
    {
      "name": "phi",
      "description": "over-dispertion",
      "require": {"name": "phi", "path": "data/phi.json"}
    }
  ],

  "populations": [
    {"name": "paris", "composition": ["S_paris", "I_paris", "R_paris"], "remainder": {"name": "R_paris", "pop_size": "N_paris"}},
    {"name": "nyc",   "composition": ["S_nyc", "I_nyc", "R_nyc"],       "remainder": {"name": "R_nyc",   "pop_size": "N_nyc"}}
  ],

  "reactions": [
    {"from": "U",       "to": "S_nyc",   "rate": "mu_b_nyc*N_nyc",             "description":"birth"},
    {"from": "U",       "to": "S_paris", "rate": "mu_b_paris*N_paris",         "description":"birth"},

    {"from": "S_nyc",   "to": "I_nyc",   "rate": "r0_nyc/N_nyc*v*I_nyc",       "description":"infection", "keywords": ["transmission"], "accumulators": ["Inc_in_nyc"], "white_noise": {"name": "noise_SI", "sd": "sto"}},
    {"from": "S_paris", "to": "I_paris", "rate": "r0_paris/N_paris*v*I_paris", "description":"infection", "keywords": ["transmission"]},

    {"from": "I_nyc",   "to": "R_nyc",   "rate": "correct_rate(v)",            "description":"recovery", "accumulators": ["Inc_out"]},
    {"from": "I_paris", "to": "R_paris", "rate": "correct_rate(v)",            "description":"recovery", "accumulators": ["Inc_out"]},

    {"from": "S_nyc",   "to": "U",       "rate": "mu_d_nyc",                   "description":"death"},
    {"from": "S_paris", "to": "U",       "rate": "mu_d_paris",                 "description":"death"},

    {"from": "I_nyc",   "to": "U",       "rate": "mu_d_nyc",                   "description":"death", "accumulators": ["Inc_out"]},
    {"from": "I_paris", "to": "U",       "rate": "mu_d_paris",                 "description":"death", "accumulators": ["Inc_out"]}
  ],

  "sde": {
    "drift": [
      {"name": "r0_paris", "f": 0.0, "transformation": "log(r0_paris)"},
      {"name": "r0_nyc",   "f": 0.0, "transformation": "log(r0_nyc)"}
    ],
    "dispersion":[
      ["vol", 0],
      [0, "vol"]
    ]
  },

  "observations": [
    {
      "name": "all_CDC_inc",
      "start": "2012-07-26",
      "distribution": "discretized_normal",
      "mean": "rep_all_CDC_inc * prop_all_CDC_inc * Inc_out",
      "sd": "sqrt(rep_all_CDC_inc * ( 1.0 - rep_all_CDC_inc ) * prop_all_CDC_inc * Inc_out + pow(rep_all_CDC_inc * phi * prop_all_CDC_inc * Inc_out, 2) )"
    },
    {
      "name": "paris_CDC_prev",
      "start": "2012-07-26",
      "distribution": "discretized_normal",
      "mean": "rep_paris_CDC_prev * prop_paris_CDC_prev * I_paris",
      "sd": "sqrt(rep_paris_CDC_prev * ( 1.0 - rep_paris_CDC_prev ) * prop_paris_CDC_prev * I_paris + pow(rep_paris_CDC_prev * phi * prop_paris_CDC_prev * I_paris, 2) )"
    },
    {
      "name": "all_google_inc",
      "start": "2012-07-26",
      "distribution": "discretized_normal",
      "mean": "rep_all_google_inc * prop_all_google_inc * Inc_out",
      "sd": "sqrt(rep_all_google_inc * ( 1.0 - rep_all_google_inc ) * prop_all_google_inc * Inc_out + pow(rep_all_google_inc * phi * prop_all_google_inc * Inc_out, 2) )"
    },
    {
      "name": "nyc_CDC_inc",
      "start": "2012-07-26",
      "distribution": "discretized_normal",
      "mean": "rep_nyc_CDC_inc * prop_nyc_CDC_inc * Inc_in_nyc",
      "sd": "sqrt(rep_nyc_CDC_inc * ( 1.0 - rep_nyc_CDC_inc ) * prop_nyc_CDC_inc * Inc_in_nyc + pow(rep_nyc_CDC_inc * phi * prop_nyc_CDC_inc * Inc_in_nyc, 2) )"
    }
  ]
}
