let bam ~sample_name ?sorting ~reference_build input =
Bam (
let open KEDSL in
let host = Machine.as_host Config.machine in
let f = get_raw_file (AF.get_file input) in
let bam =
bam_file ~host ~name:sample_name
?sorting ~reference_build f#product#path in
workflow_node bam
~equivalence:`None
~name:(sprintf "Input-bam: %s" sample_name)
~edges:[depends_on f]
)
|> AF.with_provenance "bam" ["file", AF.get_provenance input]
~string_arguments:[
"sample-name", sample_name;
"sorting",
(match sorting with
| Some `Coordinate -> "coordinate"
| None -> "none"
| Some `Read_name -> "read-name");
"reference-build", reference_build;
]