<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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)