On March 22, 2023 5:44:52 PM EDT, Spencer Skylar Chan <schan12@terpmail.umd.edu> wrote:
Hi Ricardo,
On 3/22/23 14:19, Ricardo Wurmus wrote:
- Translating Snakemake to Guix Workflow Language (GWL)
Ricardo, maybe you would have some suggestions. :-)
Oh, this looks interesting. Could you please elaborate on the idea?
My idea is to take as input a Snakemake workflow file and eventually output an equivalent GWL workflow file.
Currently, Snakemake workflows can be exported to CWL (Common Workflow Language):
https://snakemake.readthedocs.io/en/stable/executing/interoperability.html
One approach could be to add CWL import/export capabilities to GWL. Then Snakemake/GWL conversion would be a 2 step process, using CWL as an intermediate step:
1. Snakemake -> CWL
2. CWL -> GWL
However, CWL is not as expressive as Snakemake. There may be some details that are lost from Snakemake workflows.
So a 1-step Snakemake/GWL transpiler could be interesting, as both Snakemake/GWL use a domain-specific language inside a general purpose language (Python/Guile respectively). There may be a possibility to achieve more "accurate" translations between workflows.
Is this topic something that could fit into a summer project?