code: def run(vrn_info, cnvs_by_name, somatic_info):
      
      config = {"sample_size": 5000}
      work_dir = _cur_workdir(somatic_info.tumor_data)
      if "battenberg" not in cnvs_by_name:
          logger.warn("PhyloWGS requires Battenberg CNV calls, skipping %s"
                      % dd.get_sample_name(somatic_info.tumor_data))
      else:
          ssm_file, cnv_file = _prep_inputs(vrn_info, cnvs_by_name["battenberg"], somatic_info, work_dir, config)
          evolve_file = _run_evolve(ssm_file, cnv_file, work_dir, somatic_info.tumor_data)
          summary_file = _prepare_summary(evolve_file, ssm_file, cnv_file, work_dir, somatic_info)
          print(summary_file)
docs: Run PhyloWGS given variant calls, CNVs and tumor/normal information.