add generic script processing
currently each script can be executed only once. This is not efficient if you have one project, but want to run it for multiple datasets. You would need to run the same pipeline in a new environment with the datasetname fixed or write for each datasetname a new script.
It would be nice if wBuild would recognize the {variable_name} syntax of snakemake.
this would be an example script:
#'---
#' title: generic script
#' author: Christian Mertes
#' wb:
#' input: "Data/datasets/{dataset}.tsv"
#' output: "Data/datasets/{datasets}-countData.RDS"
#' output:
#' html_document
#'---
paste("My wildcards:", str(snakemake@wildcards)")
cat("test", file=snakemake@output)
Currently this results in a rule like this:
rule Scripts_generic_script_r:
input: 'Data/datasets/{dataset}.tsv', RScript = 'Scripts/generic/script.r'
output: 'Data/datasets/{datasets}-countData.RDS', wBhtml = 'Output/html/Scripts_generic_script.html'
script: '.wBuild/wBRender.R'
The problem here is, that the output wBhtml does not inlude the wildcard and there is no way to configure this or as I know. It would be nice if we could include the wildcard in the wBhtml name and then maybe an extra rule which connects all the generic html outputs in one. To keep the workflow/pipeline in place.
@wachutka and @ravindrs what do you thing about this?
PS: to complet the issue, this is a text I wrote directly to leo before creating this issue: (a good hint for the naming scheme of this generic approach)
vllt hab ich es nicht richtig verstanden, aber ich kann leider keine generic rules benutzen. Also ich kann nicht sagen
#' - wb:
#' - input: ./Data/{setname}/counts.tsv
#' - output: ./Data/{setname}/results.tsv
Und dann wuerde er ueber alle daten gehen. Das geht aber glaub ich nicht da du ja nur ein HTML produzierst pro script. Dann muesste ich fuer jeden setname
ein neues script schreiben und den {setname}
fixen. oder hab ich da was grundlegend falsch verstanden? In den examples baust du immer alles zusammen und hast dann ein aufruf mit allen daten punkten.
Am liebsten wuerde ich dann nen art unterordner haben mit
...#Scripts_methods_FraseR_{setname}.html
und das drop down menue wuerde dann so aussehen:
methods -> FraseR -> {setname}
und in der folder structure sieht es dann ungefaehr so aus:
./Scripts/methods/FraseR.r
Und das script wird dann x mal mit dem jeweiligen datenset aufgerufen. Geht das?