While we might later get into actually thinking about how to add full Snakemake functionality it would first be good to understand what the differences between implementation of snakemake and yadage are. A first step in this is taking a simple, but complete, yadage based recast-atlas workflow and implementing it in snakemake.
[x] Run this workflow locally in a Python virtual environment to understand what the workflow is doing.
[x] In this repository make a recast_helloworld directory and in it write a Snakemake workflow that replicates the full yadage workflow.
This is not really a 1:1 comparison. Here in Snakemake you're implementing things that are covered by both yadage and recast-atlas so feel free to use Bash scripts to orchestrate run commands for the time being.
Some of the functionality might not be 1:1 in behavior (I don't know as I'm not a Snakemake expert). This is okay. Just try to work around it an extensively document in Issues any problems or differences you find.
[x] Do this work as 1 PR that we can review together (which will get squashed and merged).
If you feel that this PR gets too big and is no longer atomic in implementation that's fine and we can split it out across multiple PRs.
While we might later get into actually thinking about how to add full Snakemake functionality it would first be good to understand what the differences between implementation of
snakemake
andyadage
are. A first step in this is taking a simple, but complete,yadage
basedrecast-atlas
workflow and implementing it insnakemake
.recast_helloworld
directory and in it write a Snakemake workflow that replicates the fullyadage
workflow.1:1
comparison. Here in Snakemake you're implementing things that are covered by bothyadage
andrecast-atlas
so feel free to use Bash scripts to orchestrate run commands for the time being.1:1
in behavior (I don't know as I'm not a Snakemake expert). This is okay. Just try to work around it an extensively document in Issues any problems or differences you find.