name: "pear"
version: "v0.2.0"
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: "--forward_fastq"
    alternatives:
    - "-f"
    description: "Forward paired-end FASTQ file"
    info: null
    example:
    - "forward.fastq"
    must_exist: true
    create_parent: true
    required: true
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--reverse_fastq"
    alternatives:
    - "-r"
    description: "Reverse paired-end FASTQ file"
    info: null
    example:
    - "reverse.fastq"
    must_exist: true
    create_parent: true
    required: true
    direction: "input"
    multiple: false
    multiple_sep: ";"
- name: "Outputs"
  arguments:
  - type: "file"
    name: "--assembled"
    description: "The output file containing assembled reads. Can be compressed with\
      \ gzip."
    info: null
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--unassembled_forward"
    description: "The output file containing forward reads that could not be assembled.\
      \ Can be compressed with gzip."
    info: null
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--unassembled_reverse"
    description: "The output file containing reverse reads that could not be assembled.\
      \ Can be compressed with gzip."
    info: null
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
  - type: "file"
    name: "--discarded"
    description: "The output file containing reads that were discarded due to too\
      \ low quality or too many uncalled bases. Can be compressed with gzip."
    info: null
    must_exist: true
    create_parent: true
    required: true
    direction: "output"
    multiple: false
    multiple_sep: ";"
- name: "Arguments"
  arguments:
  - type: "double"
    name: "--p_value"
    alternatives:
    - "-p"
    description: "Specify a p-value for the statistical test. If the computed p-value\
      \ of a possible assembly exceeds the specified p-value then paired-end read\
      \ will not be assembled. Valid options are: 0.0001, 0.001, 0.01, 0.05 and 1.0.\
      \ Setting 1.0 disables the test.\n"
    info: null
    example:
    - 0.01
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--min_overlap"
    alternatives:
    - "-v"
    description: "Specify the minimum overlap size. The minimum overlap may be set\
      \ to 1 when the statistical test is used. However, further restricting the minimum\
      \ overlap size to a proper value may reduce false-positive assembles.\n"
    info: null
    example:
    - 10
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--max_assembly_length"
    alternatives:
    - "-m"
    description: "Specify the maximum possible length of the assembled sequences.\
      \ Setting this value to 0 disables the restriction and assembled sequences may\
      \ be arbitrary long.\n"
    info: null
    example:
    - 0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--min_assembly_length"
    alternatives:
    - "-n"
    description: "Specify the minimum possible length of the assembled sequences.\
      \ Setting this value to 0 disables the restriction and assembled sequences may\
      \ be arbitrary short.\n"
    info: null
    example:
    - 0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--min_trim_length"
    alternatives:
    - "-t"
    description: "Specify  the  minimum length of reads after trimming the low quality\
      \ part (see option -q)\n"
    info: null
    example:
    - 1
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--quality_threshold"
    alternatives:
    - "-q"
    description: "Specify the quality threshold for trimming the low quality part\
      \ of a read. If the quality scores of two consecutive bases are strictly less\
      \ than the specified threshold, the rest of the read will be trimmed.\n"
    info: null
    example:
    - 0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "double"
    name: "--max_uncalled_base"
    alternatives:
    - "-u"
    description: "Specify the maximal proportion of uncalled bases in a read. Setting\
      \ this value to 0 will cause PEAR to discard all reads containing uncalled bases.\
      \ The other extreme setting is 1 which causes PEAR to process all reads independent\
      \ on the number of uncalled bases.\n"
    info: null
    example:
    - 1.0
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--test_method"
    alternatives:
    - "-g"
    description: "Specify the type of statistical test. Two options are available.\
      \ 1: Given the minimum allowed overlap, test using the highest OES. Note that\
      \ due to its discrete nature, this test usually yields a lower p-value for the\
      \ assembled read than the cut- off (specified by -p). For example, setting the\
      \ cut-off to 0.05 using this test, the assembled reads might have an actual\
      \ p-value of 0.02.\n2. Use the acceptance probability (m.a.p). This test methods\
      \ computes the same probability as test method 1. However, it assumes that the\
      \ minimal overlap is the observed overlap with the highest OES, instead of the\
      \ one specified by -v. Therefore, this is not a valid statistical test and the\
      \ 'p-value' is in fact the maximal probability for accepting the assembly. Nevertheless,\
      \ we observed in practice that for the case the actual overlap sizes are relatively\
      \ small, test 2 can correctly assemble more reads with only slightly higher\
      \ false-positive rate.\n"
    info: null
    example:
    - 1
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--emperical_freqs"
    alternatives:
    - "-e"
    description: "Disable empirical base frequencies.\n"
    info: null
    direction: "input"
  - type: "integer"
    name: "--score_method"
    alternatives:
    - "-s"
    description: "Specify the scoring method. 1. OES with +1 for match and -1 for\
      \ mismatch. 2: Assembly score (AS). Use +1 for match and -1 for mismatch multiplied\
      \ by base quality scores. 3: Ignore quality scores and use +1 for a match and\
      \ -1 for a mismatch.\n"
    info: null
    example:
    - 2
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--phred_base"
    alternatives:
    - "-b"
    description: "Base PHRED quality score.\n"
    info: null
    example:
    - 33
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "integer"
    name: "--cap"
    alternatives:
    - "-c"
    description: "Specify  the upper bound for the resulting quality score. If set\
      \ to zero, capping is disabled.\n"
    info: null
    example:
    - 40
    required: false
    direction: "input"
    multiple: false
    multiple_sep: ";"
  - type: "boolean_true"
    name: "--nbase"
    alternatives:
    - "-z"
    description: "When merging a base-pair that consists of two non-equal bases out\
      \ of which none is degenerate, set the merged base to N and use the highest\
      \ quality score of the two bases\n"
    info: null
    direction: "input"
resources:
- type: "bash_script"
  path: "script.sh"
  is_executable: true
description: "PEAR is an ultrafast, memory-efficient and highly accurate pair-end\
  \ read merger. It is fully parallelized and can run with as low as just a few kilobytes\
  \ of memory.\n\nPEAR evaluates all possible paired-end read overlaps and without\
  \ requiring the target fragment size as input. In addition, it implements a statistical\
  \ test for minimizing false-positive results. Together with a highly optimized implementation,\
  \ it can merge millions of paired end reads within a couple of minutes on a standard\
  \ desktop computer.\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:
- "pair-end"
- "read"
- "merge"
license: "CC-BY-NC-SA-3.0"
references:
  doi:
  - "10.1093/bioinformatics/btt593"
links:
  repository: "https://github.com/tseemann/PEAR"
  homepage: "https://cme.h-its.org/exelixis/web/software/pear"
  documentation: "https://cme.h-its.org/exelixis/web/software/pear/doc.html"
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/pear:0.9.6--h9d449c0_10"
  target_registry: "images.viash-hub.com"
  target_tag: "v0.2.0"
  namespace_separator: "/"
  setup:
  - type: "docker"
    run:
    - "version=$(pear -h | grep 'PEAR v' | sed 's/PEAR v//' | sed 's/ .*//') && \\\
      \necho \"pear: $version\" > /var/software_versions.txt\n"
  entrypoint: []
  cmd: null
- type: "native"
  id: "native"
build_info:
  config: "src/pear/config.vsh.yaml"
  runner: "nextflow"
  engine: "docker|native"
  output: "target/nextflow/pear"
  executable: "target/nextflow/pear/main.nf"
  viash_version: "0.9.0"
  git_commit: "7e530218844c373048bc33de58f021b6460642e5"
  git_remote: "https://x-access-token:ghs_kiUBq39QrAlnG6IaeAcTcXhllzqpOV4LDB3e@github.com/viash-hub/biobox"
package_config:
  name: "biobox"
  version: "v0.2.0"
  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 := 'v0.2.0'"
  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"
