def chain_binomial_monte_carlo(beta, gamma, num_sims, num_patient_zeros):
    # run many (num_sims) instances of chain binomial simulation and return average epidemic size

    d_metropop, metro_ids = pop_func.import_metropop(filename_metropop, 2, 3)
    population_size = sum([d_metropop[x] for x in metro_ids])
    threshold = 0.10  # 10% of population size is our threshold for a large epidemic

    large_epidemic_sizes = []  # will keep list of outbreak sizes that are large epidemics
    for sim in range(1, num_sims):
        incidence_time_series, outbreak_size = chain_binomial_one_simulation(
            beta, gamma, contact_network, num_patient_zeros
        )
        # Note we are not using the incidence time series right now

        # figure out if this is small outbreak or large epidemic
        if outbreak_size > threshold * population_size:  # if outbreak reached more than 10% of the population

            # call it a large epidemic and save its size
            large_epidemic_sizes.append(outbreak_size)

    # calculate average large epidemic size, and how frequent they were
    if large_epidemic_sizes:
        average_epidemic_size = np.mean(large_epidemic_sizes) / float(population_size)
        probability_epidemic = len(large_epidemic_sizes) / float(num_sims)
    else:
        average_epidemic_size = 0
        probability_epidemic = 0

    return average_epidemic_size
import operator

### local modules ###
sys.path.append('/home/anne/Dropbox/Anne_Bansal_Lab')

### functions ###
import population_parameters as pop_func
import chain_binomial as bin_func
    
### program ###
###################################################  
# import data #

# READ METRO NETWORK FROM FILE
filename_metropop = 'Dropbox/Anne_Bansal_lab/Python_Scripts/Modeling_Project/air_traffic_data/metedges.txt'
d_metropop, metro_ids = pop_func.import_metropop(filename_metropop, 2, 3)
filename_air_network = 'Dropbox/Anne_Bansal_lab/Python_Scripts/Modeling_Project/air_traffic_data/air_traffic_edgelist.txt'
air_network = bin_func.read_edgelist_anne(filename_air_network)

# READ US population data
us_popdata = csv.reader(open('Dropbox/Anne_Bansal_lab/SDI_Data/totalpop_age.csv', 'r'),delimiter = ',')
dict_popdata, ages, years = pop_func.import_popdata(us_popdata, 0, 1, 2)
dict_childpop, dict_adultpop = pop_func.pop_child_adult (dict_popdata, years)

# READ Germany contact data
#filename_germ_contact_data = 'Dropbox/Anne_Bansal_lab/Contact_Data/polymod_germany_contact_matrix_Mossong_2008.csv'
filename_germ_within_group_contact_data = 'Dropbox/Anne_Bansal_lab/Contact_Data/within_group_polymod_germany_contact_matrix_Mossong_2008.csv'
filename_germ_all_contact_data = 'Dropbox/Anne_Bansal_lab/Contact_Data/all_ages_polymod_germany_contact_matrix_Mossong_2008.csv'

# READ Germany population data
filename_germ_pop_data = 'Dropbox/Anne_Bansal_lab/UNdata_Export_2008_Germany_Population.csv'