Files
biobox/target/executable/lofreq/lofreq_call/.config.vsh.yaml
CI 6f2f840fd9 Build branch main with version main (7f8bcc2)
Build pipeline: viash-hub.biobox.main-zp6tq

Source commit: 7f8bcc2b3e

Source message: BD rhapsody sequence analysis (#96)

* wip

* fix test

* add help

* update 2.2 args

* fix bug

* extend test data

* output separate files

* analyse missing args

* tweaks to test

* fix script

* fix test

* fix test

* move small reference

* wip generate wta test data

* don't forget about umi in r1

* remove unneeded pkg

* load reference in memory just once

* fix random choices

* extend test

* add abc immunediscoverypanel

* wip abc testing code

* fix abc test; need unique instrument, run and flowcell ids for each sample

* add smk data

* add entry to changelog

* remove old test file

* adapt test for missing read

* update description

* add comment

* ensure cwl files are absolute

* Apply suggestions from code review

Co-authored-by: Dries Schaumont <5946712+DriesSchaumont@users.noreply.github.com>

* fix suggestion

* newer pipelines have docker requirements as a hint instead of a strict requirement

* rename str to content

* remove deleted resources

* fix containers

* fix script

* fix suggestion

* fix suggestion...

* fix test

* fix component name

* fix test

* apply suggestions

* fix test

* added note

* fix changelog

* fix changelog again

* splitting hairs here

---------

Co-authored-by: Dries Schaumont <5946712+DriesSchaumont@users.noreply.github.com>
2024-09-17 10:13:18 +00:00

535 lines
15 KiB
YAML

name: "lofreq_call"
namespace: "lofreq"
version: "main"
authors:
- name: "Kai Waldrant"
roles:
- "author"
- "maintainer"
info:
links:
email: "kai@data-intuitive.com"
github: "KaiWaldrant"
orcid: "0009-0003-8555-1361"
linkedin: "kaiwaldrant"
organizations:
- name: "Data Intuitive"
href: "https://www.data-intuitive.com"
role: "Bioinformatician"
- name: "Open Problems"
href: "https://openproblems.bio"
role: "Contributor"
argument_groups:
- name: "Inputs"
arguments:
- type: "file"
name: "--input"
description: "Input BAM file.\n"
info: null
example:
- "normal.bam"
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--input_bai"
description: "Index file for the input BAM file.\n"
info: null
example:
- "normal.bai"
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--ref"
alternatives:
- "-f"
description: "Indexed reference fasta file (gzip supported). Default: none.\n"
info: null
example:
- "reference.fasta"
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--out"
alternatives:
- "-o"
description: "Vcf output file. Default: stdout.\n"
info: null
example:
- "output.vcf"
must_exist: true
create_parent: true
required: true
direction: "output"
multiple: false
multiple_sep: ";"
- name: "Arguments"
arguments:
- type: "string"
name: "--region"
alternatives:
- "-r"
description: "Limit calls to this region (chrom:start-end). Default: none.\n"
info: null
example:
- "chr1:1000-2000"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--bed"
alternatives:
- "-l"
description: "List of positions (chr pos) or regions (BED). Default: none.\n"
info: null
example:
- "regions.bed"
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--min_bq"
alternatives:
- "-q"
description: "Skip any base with baseQ smaller than INT. Default: 6.\n"
info: null
example:
- 6
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--min_alt_bq"
alternatives:
- "-Q"
description: "Skip alternate bases with baseQ smaller than INT. Default: 6.\n"
info: null
example:
- 6
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--def_alt_bq"
alternatives:
- "-R"
description: "Overwrite baseQs of alternate bases (that passed bq filter) with\
\ this value (-1: use median ref-bq; 0: keep). Default: 0.\n"
info: null
example:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--min_jq"
alternatives:
- "-j"
description: "Skip any base with joinedQ smaller than INT. Default: 0.\n"
info: null
example:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--min_alt_jq"
alternatives:
- "-J"
description: "Skip alternate bases with joinedQ smaller than INT. Default: 0.\n"
info: null
example:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--def_alt_jq"
alternatives:
- "-K"
description: "Overwrite joinedQs of alternate bases (that passed jq filter) with\
\ this value (-1: use median ref-bq; 0: keep). Default: 0.\n"
info: null
example:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--no_baq"
alternatives:
- "-B"
description: "Disable use of base-alignment quality (BAQ).\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--no_idaq"
alternatives:
- "-A"
description: "Don't use IDAQ values (NOT recommended under ANY circumstances other\
\ than debugging).\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--del_baq"
alternatives:
- "-D"
description: "Delete pre-existing BAQ values, i.e. compute even if already present\
\ in BAM.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--no_ext_baq"
alternatives:
- "-e"
description: "Use 'normal' BAQ (samtools default) instead of extended BAQ (both\
\ computed on the fly if not already present in lb tag).\n"
info: null
direction: "input"
- type: "integer"
name: "--min_mq"
alternatives:
- "-m"
description: "Skip reads with mapping quality smaller than INT. Default: 0.\n"
info: null
example:
- 0
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--max_mq"
alternatives:
- "-M"
description: "Cap mapping quality at INT. Default: 255.\n"
info: null
example:
- 255
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--no_mq"
alternatives:
- "-N"
description: "Don't merge mapping quality in LoFreq's model.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--call_indels"
description: "Enable indel calls (note: preprocess your file to include indel\
\ alignment qualities!).\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--only_indels"
description: "Only call indels; no SNVs.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--src_qual"
alternatives:
- "-s"
description: "Enable computation of source quality.\n"
info: null
direction: "input"
- type: "file"
name: "--ign_vcf"
alternatives:
- "-S"
description: "Ignore variants in this vcf file for source quality computation.\
\ Multiple files can be given separated by commas.\n"
info: null
example:
- "variants.vcf"
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--def_nm_q"
alternatives:
- "-T"
description: "If >= 0, then replace non-match base qualities with this default\
\ value. Default: -1.\n"
info: null
example:
- -1
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "double"
name: "--sig"
alternatives:
- "-a"
description: "P-Value cutoff / significance level. Default: 0.010000.\n"
info: null
example:
- 0.01
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--bonf"
alternatives:
- "-b"
description: "Bonferroni factor. 'dynamic' (increase per actually performed test)\
\ or INT. Default: Dynamic.\n"
info: null
example:
- "dynamic"
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--min_cov"
alternatives:
- "-C"
description: "Test only positions having at least this coverage. Default: 1.\n\
(note: without --no-default-filter default filters (incl. coverage) kick in\
\ after predictions are done).\n"
info: null
example:
- 1
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--max_depth"
alternatives:
- "-d"
description: "Cap coverage at this depth. Default: 1000000.\n"
info: null
example:
- 1000000
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--illumina_13"
description: "Assume the quality is Illumina-1.3-1.7/ASCII+64 encoded.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--use_orphan"
description: "Count anomalous read pairs (i.e. where mate is not aligned properly).\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--plp_summary_only"
description: "No variant calling. Just output pileup summary per column.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--no_default_filter"
description: "Don't run default 'lofreq filter' automatically after calling variants.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--force_overwrite"
description: "Overwrite any existing output.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--verbose"
description: "Be verbose.\n"
info: null
direction: "input"
- type: "boolean_true"
name: "--debug"
description: "Enable debugging.\n"
info: null
direction: "input"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Call variants from a BAM file.\n\nLoFreq* (i.e. LoFreq version 2) is\
\ a fast and sensitive variant-caller for inferring SNVs and indels from next-generation\
\ sequencing data. It makes full use of base-call qualities and other sources of\
\ errors inherent in sequencing (e.g. mapping or base/indel alignment uncertainty),\
\ which are usually ignored by other methods or only used for filtering.\n\nLoFreq*\
\ can run on almost any type of aligned sequencing data (e.g. Illumina, IonTorrent\
\ or Pacbio) since no machine- or sequencing-technology dependent thresholds are\
\ used. It automatically adapts to changes in coverage and sequencing quality and\
\ can therefore be applied to a variety of data-sets e.g. viral/quasispecies, bacterial,\
\ metagenomics or somatic data.\n\nLoFreq* is very sensitive; most notably, it is\
\ able to predict variants below the average base-call quality (i.e. sequencing\
\ error rate). Each variant call is assigned a p-value which allows for rigorous\
\ false positive control. Even though it uses no approximations or heuristics, it\
\ is very efficient due to several runtime optimizations and also provides a (pseudo-)parallel\
\ implementation. LoFreq* is generic and fast enough to be applied to high-coverage\
\ data and large genomes. On a single processor it takes a minute to analyze Dengue\
\ genome sequencing data with nearly 4000X coverage, roughly one hour to call SNVs\
\ on a 600X coverage E.coli genome and also roughly an hour to run on a 100X coverage\
\ human exome dataset.\n"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
- type: "file"
path: "test_data"
info: null
status: "enabled"
requirements:
commands:
- "ps"
keywords:
- "variant calling"
- "low frequancy variant calling"
- "lofreq"
- "lofreq/call"
license: "MIT"
references:
doi:
- "10.1093/nar/gks918"
links:
repository: "https://github.com/viash-hub/biobox"
homepage: "https://csb5.github.io/lofreq/"
documentation: "https://csb5.github.io/lofreq/commands/"
runners:
- type: "executable"
id: "executable"
docker_setup_strategy: "ifneedbepullelsecachedbuild"
- type: "nextflow"
id: "nextflow"
directives:
tag: "$id"
auto:
simplifyInput: true
simplifyOutput: false
transcript: false
publish: false
config:
labels:
mem1gb: "memory = 1000000000.B"
mem2gb: "memory = 2000000000.B"
mem5gb: "memory = 5000000000.B"
mem10gb: "memory = 10000000000.B"
mem20gb: "memory = 20000000000.B"
mem50gb: "memory = 50000000000.B"
mem100gb: "memory = 100000000000.B"
mem200gb: "memory = 200000000000.B"
mem500gb: "memory = 500000000000.B"
mem1tb: "memory = 1000000000000.B"
mem2tb: "memory = 2000000000000.B"
mem5tb: "memory = 5000000000000.B"
mem10tb: "memory = 10000000000000.B"
mem20tb: "memory = 20000000000000.B"
mem50tb: "memory = 50000000000000.B"
mem100tb: "memory = 100000000000000.B"
mem200tb: "memory = 200000000000000.B"
mem500tb: "memory = 500000000000000.B"
mem1gib: "memory = 1073741824.B"
mem2gib: "memory = 2147483648.B"
mem4gib: "memory = 4294967296.B"
mem8gib: "memory = 8589934592.B"
mem16gib: "memory = 17179869184.B"
mem32gib: "memory = 34359738368.B"
mem64gib: "memory = 68719476736.B"
mem128gib: "memory = 137438953472.B"
mem256gib: "memory = 274877906944.B"
mem512gib: "memory = 549755813888.B"
mem1tib: "memory = 1099511627776.B"
mem2tib: "memory = 2199023255552.B"
mem4tib: "memory = 4398046511104.B"
mem8tib: "memory = 8796093022208.B"
mem16tib: "memory = 17592186044416.B"
mem32tib: "memory = 35184372088832.B"
mem64tib: "memory = 70368744177664.B"
mem128tib: "memory = 140737488355328.B"
mem256tib: "memory = 281474976710656.B"
mem512tib: "memory = 562949953421312.B"
cpu1: "cpus = 1"
cpu2: "cpus = 2"
cpu5: "cpus = 5"
cpu10: "cpus = 10"
cpu20: "cpus = 20"
cpu50: "cpus = 50"
cpu100: "cpus = 100"
cpu200: "cpus = 200"
cpu500: "cpus = 500"
cpu1000: "cpus = 1000"
debug: false
container: "docker"
engines:
- type: "docker"
id: "docker"
image: "quay.io/biocontainers/lofreq:2.1.5--py38h794fc9e_10"
target_registry: "images.viash-hub.com"
target_tag: "main"
namespace_separator: "/"
setup:
- type: "docker"
run:
- "version=$(lofreq version | grep 'version' | sed 's/version: //') && \\\necho\
\ \"lofreq: $version\" > /var/software_versions.txt\n"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/lofreq/call/config.vsh.yaml"
runner: "executable"
engine: "docker|native"
output: "target/executable/lofreq/lofreq_call"
executable: "target/executable/lofreq/lofreq_call/lofreq_call"
viash_version: "0.9.0"
git_commit: "7f8bcc2b3e1ffaac9778b6acb42420b19660d1a1"
git_remote: "https://x-access-token:ghs_aSDBedV4vU66pddFDN6d8UEy0ZQApn08RAsh@github.com/viash-hub/biobox"
git_tag: "v0.2.0-3-g7f8bcc2"
package_config:
name: "biobox"
version: "main"
description: "A collection of bioinformatics tools for working with sequence data.\n"
info: null
viash_version: "0.9.0"
source: "src"
target: "target"
config_mods:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'main'"
keywords:
- "bioinformatics"
- "modules"
- "sequencing"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/biobox"
issue_tracker: "https://github.com/viash-hub/biobox/issues"