code: def run(itf):
      
  
      if not itf:
          return 1
  
      # access user input
      options = SplitInput(itf)
  
      # read input
      inputpath = os.path.abspath(options.inputpath)
      print(" Reading input file ...")
      molecules = csv_interface.read_csv(inputpath, options)
      if not molecules:
          print("\n '{flag}' was unable to be parsed\n".format(flag=os.path.basename(options.inputpath)))
          sys.exit(1)
  
      # determine the sort order & ensemble_size
      #sort_order = classification.get_sort_order(molecules)
      sort_order = 'asc'
      ensemble_size = options.ensemble_size
  
      # loop over all ensembles
      # temp 2/3/15 append to auc_list ef_list & write it out for later histogram construction
      auc_list = []
      ef_list = []
      for size in [x + 1 for x in range(ensemble_size)]:
          auc, ef = optimizor(molecules, sort_order, size, options)
          auc_list += auc
          ef_list += ef
      # temp 2/9/15 write auc_list & ef_list out to files for subsequent post-processing
      f = open('auc_histogram.csv', 'w')
      for value in auc_list:
          f.write('%f\n' % value)
          #f.write('%f, %s\n' % (value[0], value[1]))
      f.close()
      f = open('ef_histogram.csv', 'w')
      for value in ef_list:
          f.write('%f\n' % value)
      f.close()
docs: Run optimize functions.