code: def evaluate(data):
      
      work_dir = utils.safe_makedir(os.path.join(data["dirs"]["work"], "structural",
                                                 dd.get_sample_name(data), "validate"))
      truth_sets = tz.get_in(["config", "algorithm", "svvalidate"], data)
      if truth_sets and data.get("sv"):
          if isinstance(truth_sets, dict):
              val_summary, df_csv = _evaluate_multi(data["sv"], truth_sets, work_dir, data)
              summary_plots = _plot_evaluation(df_csv)
              data["sv-validate"] = {"csv": val_summary, "plot": summary_plots, "df": df_csv}
          else:
              assert isinstance(truth_sets, six.string_types) and utils.file_exists(truth_sets), truth_sets
              val_summary = _evaluate_vcf(data["sv"], truth_sets, work_dir, data)
              title = "%s structural variants" % dd.get_sample_name(data)
              summary_plots = validateplot.classifyplot_from_valfile(val_summary, outtype="png", title=title)
              data["sv-validate"] = {"csv": val_summary, "plot": summary_plots[0] if len(summary_plots) > 0 else None}
      return data
docs: Provide evaluations for multiple callers split by structural variant type.