You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@ihodes once we figure out exactly what we want we should bake saving+jsonoutput (+csv?) directly into the To_workflow compiler.
my understanding is that JSON is a superset of the CSV information
discohorts will rely on more manual determination of file paths w/out a manifest, but will try to make it easy to switch over to using the manifest when available
The text was updated successfully, but these errors were encountered:
I've added this to pipelines in an ad-hoc manner (e.g. for @timodonnell below)
(** We want to extend the compiler to handle a new function, `write_csv_manifest`, so we define the new signature that the compiler must have. *)module type Semantics=sigincludeBiokepi.EDSL.Semanticsvalwrite_csv_manifest :
normal:[ `Bam ] repr ->
tumor:[ `Bam ] repr ->
vcfs:(string* [ `Vcf ] repr) list ->
string -> unitend(** Here we add the function itself for the `To_workflow` compiler (the compiler which handles the transformation from the eDSL to actual Ketrew workflow nodes). All we're adding is a function which outputs a CSV locally when the workflow is compiled. *)moduleTo_workflow
(Config : Biokepi.EDSL.Compile.To_workflow.Compiler_configuration) =structincludeBiokepi.EDSL.Compile.To_workflow.Make(Config)
letwrite_csv_manifest~normal~tumor~vcfsout=let csv =letmoduleF = Biokepi.EDSL.Compile.To_workflow.File_type_specificationinlet header = ["name"; "path"] inlet vcfs =List.map ~f:(fun (name, n) -> [name; (F.get_vcf n)#product#path]) vcfs
in
[
header;
["normal"; (F.get_bam normal)#product#path];
["tumor"; (F.get_bam tumor)#product#path];
] @ vcfs
inlet outc =Csv.to_channel (open_out out) inCsv.output_all outc csv
end
From @tavinathanson:
From @smondet:
Also relates to
discohorts
. From @tavinathanson:The text was updated successfully, but these errors were encountered: