Evaluate a list of ensembles and return statistics and ROC plots if appropriate

def evaluate_list(molecules, ensemble_lookup, options):
    """
    Evaluate a list of ensembles and return statistics and ROC plots if appropriate
    """

    # create stats dictionaries to store results from each ensemble
    stats = {}  # {file name : metric_List}

    # print progress messages
    if options.write_roc:
        print(" Determining virtual screening performance and writing ROC data ... ")
        print('')
    else:
        print(" Determining virtual screening performance ...")
        print('')

    for filename in sorted(ensemble_lookup.keys()):
        metric_List = calculate_metrics(molecules, ensemble_lookup, filename, options)
        stats[filename] = metric_List

    # write results summary
    output.write_summary(stats, options, fw_type = None)

    # plot
    if options.plot:
        print(" Making plots ... ")
        print
        plotter(molecules, ensemble_lookup, options)