def prep_variant_cwl(samples, out_dir, out_file): """Output a CWL decription for running a variant calling workflow. """ step_dir = utils.safe_makedir(os.path.join(out_dir, "steps")) sample_json, variables = _flatten_samples(samples, out_file) out = _cwl_workflow_template(variables) parent_wfs = [] for cur in workflow.variant(variables): if cur[0] == "step": _, name, parallel, inputs, outputs = cur step_file = _write_tool(step_dir, name, inputs, outputs, parallel) out["steps"].append(_step_template(name, step_file, inputs, outputs, parallel)) elif cur[0] == "upload": out["outputs"] = cur[1] elif cur[0] == "wf_start": parent_wfs.append(out) out = _cwl_workflow_template(cur[1]) elif cur[0] == "wf_finish": _, name, parallel, inputs, outputs = cur wf_out_file = "wf-%s.cwl" % name with open(os.path.join(out_dir, wf_out_file), "w") as out_handle: yaml.safe_dump(out, out_handle, default_flow_style=False, allow_unicode=False) out = parent_wfs.pop(-1) out["steps"].append(_step_template(name, wf_out_file, inputs, outputs, parallel)) else: raise ValueError("Unexpected workflow value %s" % str(cur)) with open(out_file, "w") as out_handle: yaml.safe_dump(out, out_handle, default_flow_style=False, allow_unicode=False) return out_file, sample_json
def prep_variant_cwl(samples, out_dir, out_file): """Output a CWL decription for running a variant calling workflow. """ step_dir = utils.safe_makedir(os.path.join(out_dir, "steps")) sample_json, variables = _flatten_samples(samples, out_file) out = _standard_bcbio_cwl(samples, variables) out["steps"] = [] for name, inputs, outputs in workflow.variant(variables): out["steps"].append(_step_template(name, step_dir, inputs, outputs)) with open(out_file, "w") as out_handle: yaml.safe_dump(out, out_handle, default_flow_style=False, allow_unicode=False) return out_file, sample_json
def prep_variant_cwl(samples, out_dir, out_file): """Output a CWL decription for running a variant calling workflow. """ step_dir = utils.safe_makedir(os.path.join(out_dir, "steps")) sample_json, variables = _flatten_samples(samples, out_file) out = _standard_bcbio_cwl(samples, variables) out["steps"] = [] for name, parallel, inputs, outputs in workflow.variant(variables): if name == "upload": out["outputs"] = outputs else: out["steps"].append(_step_template(name, step_dir, inputs, outputs, parallel)) with open(out_file, "w") as out_handle: yaml.safe_dump(out, out_handle, default_flow_style=False, allow_unicode=False) return out_file, sample_json