Closed olliecheng closed 1 month ago
I am also interested in writing documentation to the JAFFA wiki explaining how to use the Docker image, alongside the regular method. That way, users won't need to read the Dockerfile to understand where JAFFA expects the reference files to be located or where to find the pipeline files.
Hi,
This PR contains an updated Docker build process which I hope will become a supported and well-maintained deployment method for JAFFA.
It supports GitHub Actions for auto deployment, includes a slimmed down final run stage, and includes a fixed set of binaries and runtimes which mirror the settings recommended in the JAFFA wiki. This PR also includes a patch for the
bpipe
bug in https://github.com/ssadedin/bpipe/issues/290, which is a randomly occurring issue which can present in both containers and native runs.Improvements compared to existing approaches:
/JAFFA
, so you can find e.g.JAFFA_assembly.groovy
at the location/JAFFA/JAFFA_assembly.groovy
/ref
bpipe run <params>
withdocker run docker://ghcr.io/olliecheng/jaffa:latest <params>
install_linux64.sh
instead of a package manager. This should ease maintainability in two ways. Firstly, this means that the Docker image uses the same fixed dependency versions as the native install method, eliminating any potential differences arising as a result of version mismatches. Secondly, this prevents any update to package manager repositories affecting key dependencies.bpipe run <groovy>
. When running JAFFA through bioconda or its auto-built Docker image, the Conda distribution obscures the bpipe call around a wrapper which may be confusing to users: see #74.The main goal is to produce an image which can be easily updated in the future if JAFFA changes, with as minimal change to the Dockerfile as possible.
In my testing, I've observed that the output from the native and the Docker JAFFAL pipelines are identical when testing using the instructions and data provided in the wiki. For direct, assembly, and hybrid modes, I think that the output is unlikely to be identical due to randomness in
bowtie2
. However, the first 9 columns of JAFFA_results.csv are identical.You can try out my build of version 2.4 at docker://ghcr.io/olliecheng/jaffa:latest.