Skip to content

softwaremmm/lineagecalling_pipeline

Repository files navigation

Lineage Calling Pipeline (mykrobe)

Runs mykrobe and processes output to simpler json file.

Requirements

  • Docker
  • Nextflow
  • nf-test for testing

Running the NextFlow

Workflow takes 2 parameters:

  • seq_platform. ont or illumina
  • 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"

The Pipeline

This pipeline has a workflow which consists of two processes, which are called consecutively:

mykrobe

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.

mykrobe_json

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.

Testing

Requires nf-test

nf-test test tests/*.nf.test

Building the Docker container image

See repo: https://github.com/GlobalPathogenAnalysisService/lineagecalling_container

Tags, Releases, and Committing

Use conventional commits. This is enforced with commitizen validate action and pre-commit hooks:

pre-commit install

This 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.

About

Nextflow pipeline for lineage calling (mykrobe)

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors