Runs mykrobe and processes output to simpler json file.
- Docker
- Nextflow
- nf-test for testing
Workflow takes 2 parameters:
- seq_platform.
ontorillumina - input_dir. folder containing input fastq files.
To save output files need to set --publish_dir which will save output files to directory provided.
Example:
nextflow run . --publish_dir results --seq_platform illumina --input_dir test_data/h37rv_100k
By default it will look for files in the input directory based on the following params:
params.input_paired_suffix = "*_{1,2}.fastq.gz"params.input_single_suffix = "*.fastq.gz"
but these can be overriden. e.g.
nextflow run ... --input_paired_suffix "tb_sample*_{1,2}.fna.gz"
This pipeline has a workflow which consists of two processes, which are called consecutively:
This process is a wrapper for the mykrobe software. The software has been contained in a Dockerfile and the image is pushed to a container registry by CI (or by hand) and then used by the process to run a bash command.
This process takes the output from mykrobe (which is in JSON format), extracts the information under
the phylogenetics key and removes all objects that contain a key called Unknown.
Requires nf-test
nf-test test tests/*.nf.testSee repo: https://github.com/GlobalPathogenAnalysisService/lineagecalling_container
Use conventional commits. This is enforced with commitizen validate action and pre-commit hooks:
pre-commit installThis repo uses a standard gitflow approach, so changes should be first merged into develop and then released to main.
- In the develop branch semantic versioning is not used. Instead you can reference the commit hash to use it in a workflow.
- In a release branch you can create a release candidate with
cz bump a.b.c-rcX. This also creates a tag. - When release branch is ready for main run
cz bump a.b.c --files-only. Manually write a human descriptive changelog. Then push these changes to main and make a release/tag there.