From 8c050644d3d2c876a4a428c28fb7c4fc17f8a18e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20M=C3=B6lder?= Date: Thu, 18 Aug 2022 08:41:31 +0200 Subject: [PATCH] feat: add datavzrd wrapper (#535) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * initial datavzrd wrapper * Update utils/datavzrd/meta.yaml Co-authored-by: Filipe G. Vieira * Update Snakefile * Update meta.yaml * Update meta.yaml * Update utils/datavzrd/test/Snakefile Co-authored-by: Johannes Köster * Update utils/datavzrd/test/Snakefile Co-authored-by: Johannes Köster * Update utils/datavzrd/meta.yaml Co-authored-by: Johannes Köster * Update utils/datavzrd/environment.yaml Co-authored-by: Johannes Köster Co-authored-by: Filipe G. Vieira Co-authored-by: Johannes Köster --- utils/datavzrd/environment.yaml | 5 +++++ utils/datavzrd/meta.yaml | 10 +++++++++ utils/datavzrd/test/Snakefile | 21 +++++++++++++++++++ utils/datavzrd/test/data/A.tsv | 3 +++ utils/datavzrd/test/resources/A.datavzrd.yaml | 12 +++++++++++ utils/datavzrd/wrapper.py | 10 +++++++++ 6 files changed, 61 insertions(+) create mode 100644 utils/datavzrd/environment.yaml create mode 100644 utils/datavzrd/meta.yaml create mode 100644 utils/datavzrd/test/Snakefile create mode 100644 utils/datavzrd/test/data/A.tsv create mode 100644 utils/datavzrd/test/resources/A.datavzrd.yaml create mode 100644 utils/datavzrd/wrapper.py diff --git a/utils/datavzrd/environment.yaml b/utils/datavzrd/environment.yaml new file mode 100644 index 0000000000..6fb3392bda --- /dev/null +++ b/utils/datavzrd/environment.yaml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - nodefaults +dependencies: + - datavzrd =1.17 diff --git a/utils/datavzrd/meta.yaml b/utils/datavzrd/meta.yaml new file mode 100644 index 0000000000..7baa1ccdac --- /dev/null +++ b/utils/datavzrd/meta.yaml @@ -0,0 +1,10 @@ +name: datavzrd +description: | + datavzrd allows to render tables by providing a configuration file. + Configuration templates can be dynamically customized by utilizing the + `rendering integration `_. + Any files specified in the configuration file have to be also specified as additional input files in the + datavzrd rule. +url: https://github.com/koesterlab/datavzrd +authors: + - Felix Mölder diff --git a/utils/datavzrd/test/Snakefile b/utils/datavzrd/test/Snakefile new file mode 100644 index 0000000000..49dd300c8c --- /dev/null +++ b/utils/datavzrd/test/Snakefile @@ -0,0 +1,21 @@ +rule all: # [hide] + input: # [hide] + "results/datavzrd-report/A", # [hide] + + +rule datavzrd: + input: + config="resources/{sample}.datavzrd.yaml", + # optional files required for rendering the given config + table="data/A.tsv", + output: + report( + directory("results/datavzrd-report/{sample}"), + htmlindex="index.html", + # see https://snakemake.readthedocs.io/en/stable/snakefiles/reporting.html + # for additional options like caption, categories and labels + ), + log: + "logs/datavzrd_report/{sample}.log", + wrapper: + "master/utils/datavzrd" diff --git a/utils/datavzrd/test/data/A.tsv b/utils/datavzrd/test/data/A.tsv new file mode 100644 index 0000000000..5dadc3f436 --- /dev/null +++ b/utils/datavzrd/test/data/A.tsv @@ -0,0 +1,3 @@ +symbol gene feature impact hgvsp +PTEN ENSG00000171862 ENST00000371953 HIGH ENSP00000361021.3:p.Arg335Ter +FGFR ENSG00000145675 ENST00000521381 HIGH ENSP00000428056.1:p.Tyr580Ter \ No newline at end of file diff --git a/utils/datavzrd/test/resources/A.datavzrd.yaml b/utils/datavzrd/test/resources/A.datavzrd.yaml new file mode 100644 index 0000000000..d070e0f289 --- /dev/null +++ b/utils/datavzrd/test/resources/A.datavzrd.yaml @@ -0,0 +1,12 @@ +name: My variant report +datasets: + variants: + path: "data/A.tsv" + separator: "\t" + +default-view: variants +views: + variants: + dataset: variants + desc: | + ### Some crazy variants \ No newline at end of file diff --git a/utils/datavzrd/wrapper.py b/utils/datavzrd/wrapper.py new file mode 100644 index 0000000000..3625724307 --- /dev/null +++ b/utils/datavzrd/wrapper.py @@ -0,0 +1,10 @@ +__author__ = "Johannes Köster" +__copyright__ = "Copyright 2017, Johannes Köster" +__email__ = "johannes.koester@protonmail.com" +__license__ = "MIT" + +from snakemake.shell import shell + +log = snakemake.log_fmt_shell(stdout=True, stderr=True) + +shell("datavzrd {snakemake.input.config} --output {snakemake.output[0]} {log}")