Build branch update-readme with version v0.1.0 (da8377a)

Build pipeline: viash-hub.toolbox.update-readme-hn4r8

Source commit: da8377a82e

Source message: update readme
This commit is contained in:
CI
2025-05-06 19:12:54 +00:00
commit f36121ecc2
29 changed files with 13311 additions and 0 deletions

View File

@@ -0,0 +1,267 @@
name: "bgzip"
version: "v0.1.0"
argument_groups:
- name: "Inputs"
arguments:
- type: "file"
name: "--input"
description: "file to be compressed or decompressed"
info: null
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output"
description: "compressed or decompressed output"
info: null
must_exist: true
create_parent: true
required: true
direction: "output"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--index_name"
alternatives:
- "-I"
description: "name of BGZF index file [file.gz.gzi]"
info: null
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
- name: "Arguments"
arguments:
- type: "integer"
name: "--offset"
alternatives:
- "-b"
description: "decompress at virtual file pointer (0-based uncompressed offset)"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--decompress"
alternatives:
- "-d"
description: "decompress the input file"
info: null
direction: "input"
- type: "boolean_true"
name: "--rebgzip"
alternatives:
- "-g"
description: "use an index file to bgzip a file"
info: null
direction: "input"
- type: "boolean_true"
name: "--index"
alternatives:
- "-i"
description: "compress and create BGZF index"
info: null
direction: "input"
- type: "integer"
name: "--compress_level"
alternatives:
- "-l"
description: "compression level to use when compressing; 0 to 9, or -1 for default\
\ [-1]"
info: null
required: false
min: -1
max: 9
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--reindex"
alternatives:
- "-r"
description: "(re)index the output file"
info: null
direction: "input"
- type: "integer"
name: "--size"
alternatives:
- "-s"
description: "decompress INT bytes (uncompressed size)"
info: null
required: false
min: 0
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--test"
alternatives:
- "-t"
description: "test integrity of compressed file"
info: null
direction: "input"
- type: "boolean_true"
name: "--binary"
description: "Don't align blocks with text lines"
info: null
direction: "input"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Block compression/decompression utility"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
- type: "file"
path: "test_data"
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
license: "MIT"
references:
doi:
- "10.1093/gigascience/giab007"
links:
repository: "https://github.com/samtools/htslib"
homepage: "https://www.htslib.org/"
documentation: "https://www.htslib.org/doc/bgzip.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/htslib:1.19--h81da01d_0"
target_registry: "images.viash-hub.com"
target_tag: "v0.1.0"
namespace_separator: "/"
setup:
- type: "docker"
run:
- "bgzip -h | grep 'Version:' 2>&1 | sed 's/Version:\\s\\(.*\\)/bgzip: \"\\1\"\
/' > /var/software_versions.txt\n"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/bgzip/config.vsh.yaml"
runner: "nextflow"
engine: "docker|native"
output: "target/nextflow/bgzip"
executable: "target/nextflow/bgzip/main.nf"
viash_version: "0.9.4"
git_commit: "da8377a82ee7dd4c5825d0771df17ac6aab9fd27"
git_remote: "https://github.com/viash-hub/toolbox"
package_config:
name: "toolbox"
version: "v0.1.0"
summary: "A collection of curated command-line tools for general IT tasks, built\
\ with Viash.\n"
description: "`toolbox` provides a versatile suite of IT components, following the\
\ robust Viash (https://viash.io) framework.\nThis package focuses on delivering\
\ reliable, standalone tools that can be easily integrated into larger computational\
\ workflows.\n\nThe core philosophy emphasizes **reusability**, **reproducibility**,\
\ and adherence to **best practices** in component creation. Key features of `toolbox`\
\ components include:\n\n* **Standalone & Nextflow Ready:** Execute components\
\ directly from the command line or seamlessly incorporate them into Nextflow\
\ workflows.\n* **High Quality Standards:**\n * Comprehensive documentation\
\ for each component and its parameters.\n * Full exposure of the underlying\
\ tool's arguments for maximum flexibility.\n * Containerized (Docker) to ensure\
\ consistent environments and manage dependencies, leading to enhanced reproducibility.\n\
\ * Unit tested to verify functionality and ensure reliability.\n"
info: null
viash_version: "0.9.4"
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.1.0'"
keywords:
- "toolbox"
- "command-line"
- "tools"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/toolbox"
issue_tracker: "https://github.com/viash-hub/toolbox/issues"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'bgzip'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.1.0'
description = 'Block compression/decompression utility'
}
process.container = 'nextflow/bash:latest'
// detect tempdir
tempDir = java.nio.file.Paths.get(
System.getenv('NXF_TEMP') ?:
System.getenv('VIASH_TEMP') ?:
System.getenv('TEMPDIR') ?:
System.getenv('TMPDIR') ?:
'/tmp'
).toAbsolutePath()
profiles {
no_publish {
process {
withName: '.*' {
publishDir = [
enabled: false
]
}
}
}
mount_temp {
docker.temp = tempDir
podman.temp = tempDir
charliecloud.temp = tempDir
}
docker {
docker.enabled = true
// docker.userEmulation = true
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
podman {
podman.enabled = true
docker.enabled = false
singularity.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
shifter {
shifter.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
charliecloud.enabled = false
}
charliecloud {
charliecloud.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
}
}
process{
withLabel: mem1gb { memory = 1000000000.B }
withLabel: mem2gb { memory = 2000000000.B }
withLabel: mem5gb { memory = 5000000000.B }
withLabel: mem10gb { memory = 10000000000.B }
withLabel: mem20gb { memory = 20000000000.B }
withLabel: mem50gb { memory = 50000000000.B }
withLabel: mem100gb { memory = 100000000000.B }
withLabel: mem200gb { memory = 200000000000.B }
withLabel: mem500gb { memory = 500000000000.B }
withLabel: mem1tb { memory = 1000000000000.B }
withLabel: mem2tb { memory = 2000000000000.B }
withLabel: mem5tb { memory = 5000000000000.B }
withLabel: mem10tb { memory = 10000000000000.B }
withLabel: mem20tb { memory = 20000000000000.B }
withLabel: mem50tb { memory = 50000000000000.B }
withLabel: mem100tb { memory = 100000000000000.B }
withLabel: mem200tb { memory = 200000000000000.B }
withLabel: mem500tb { memory = 500000000000000.B }
withLabel: mem1gib { memory = 1073741824.B }
withLabel: mem2gib { memory = 2147483648.B }
withLabel: mem4gib { memory = 4294967296.B }
withLabel: mem8gib { memory = 8589934592.B }
withLabel: mem16gib { memory = 17179869184.B }
withLabel: mem32gib { memory = 34359738368.B }
withLabel: mem64gib { memory = 68719476736.B }
withLabel: mem128gib { memory = 137438953472.B }
withLabel: mem256gib { memory = 274877906944.B }
withLabel: mem512gib { memory = 549755813888.B }
withLabel: mem1tib { memory = 1099511627776.B }
withLabel: mem2tib { memory = 2199023255552.B }
withLabel: mem4tib { memory = 4398046511104.B }
withLabel: mem8tib { memory = 8796093022208.B }
withLabel: mem16tib { memory = 17592186044416.B }
withLabel: mem32tib { memory = 35184372088832.B }
withLabel: mem64tib { memory = 70368744177664.B }
withLabel: mem128tib { memory = 140737488355328.B }
withLabel: mem256tib { memory = 281474976710656.B }
withLabel: mem512tib { memory = 562949953421312.B }
withLabel: cpu1 { cpus = 1 }
withLabel: cpu2 { cpus = 2 }
withLabel: cpu5 { cpus = 5 }
withLabel: cpu10 { cpus = 10 }
withLabel: cpu20 { cpus = 20 }
withLabel: cpu50 { cpus = 50 }
withLabel: cpu100 { cpus = 100 }
withLabel: cpu200 { cpus = 200 }
withLabel: cpu500 { cpus = 500 }
withLabel: cpu1000 { cpus = 1000 }
}

View File

@@ -0,0 +1,216 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "bgzip",
"description": "Block compression/decompression utility",
"type": "object",
"definitions": {
"inputs" : {
"title": "Inputs",
"type": "object",
"description": "No description",
"properties": {
"input": {
"type":
"string",
"description": "Type: `file`, required. file to be compressed or decompressed",
"help_text": "Type: `file`, required. file to be compressed or decompressed"
}
}
},
"outputs" : {
"title": "Outputs",
"type": "object",
"description": "No description",
"properties": {
"output": {
"type":
"string",
"description": "Type: `file`, required, default: `$id.$key.output`. compressed or decompressed output",
"help_text": "Type: `file`, required, default: `$id.$key.output`. compressed or decompressed output"
,
"default":"$id.$key.output"
}
,
"index_name": {
"type":
"string",
"description": "Type: `file`, default: `$id.$key.index_name`. name of BGZF index file [file",
"help_text": "Type: `file`, default: `$id.$key.index_name`. name of BGZF index file [file.gz.gzi]"
,
"default":"$id.$key.index_name"
}
}
},
"arguments" : {
"title": "Arguments",
"type": "object",
"description": "No description",
"properties": {
"offset": {
"type":
"integer",
"description": "Type: `integer`. decompress at virtual file pointer (0-based uncompressed offset)",
"help_text": "Type: `integer`. decompress at virtual file pointer (0-based uncompressed offset)"
}
,
"decompress": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. decompress the input file",
"help_text": "Type: `boolean_true`, default: `false`. decompress the input file"
,
"default":false
}
,
"rebgzip": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. use an index file to bgzip a file",
"help_text": "Type: `boolean_true`, default: `false`. use an index file to bgzip a file"
,
"default":false
}
,
"index": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. compress and create BGZF index",
"help_text": "Type: `boolean_true`, default: `false`. compress and create BGZF index"
,
"default":false
}
,
"compress_level": {
"type":
"integer",
"description": "Type: `integer`. compression level to use when compressing; 0 to 9, or -1 for default [-1]",
"help_text": "Type: `integer`. compression level to use when compressing; 0 to 9, or -1 for default [-1]"
}
,
"reindex": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. (re)index the output file",
"help_text": "Type: `boolean_true`, default: `false`. (re)index the output file"
,
"default":false
}
,
"size": {
"type":
"integer",
"description": "Type: `integer`. decompress INT bytes (uncompressed size)",
"help_text": "Type: `integer`. decompress INT bytes (uncompressed size)"
}
,
"test": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. test integrity of compressed file",
"help_text": "Type: `boolean_true`, default: `false`. test integrity of compressed file"
,
"default":false
}
,
"binary": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. Don\u0027t align blocks with text lines",
"help_text": "Type: `boolean_true`, default: `false`. Don\u0027t align blocks with text lines"
,
"default":false
}
}
},
"nextflow input-output arguments" : {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type":
"string",
"description": "Type: `string`, required, example: `output/`. Path to an output directory",
"help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
}
,
"param_list": {
"type":
"string",
"description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
"help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
"hidden": true
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/inputs"
},
{
"$ref": "#/definitions/outputs"
},
{
"$ref": "#/definitions/arguments"
},
{
"$ref": "#/definitions/nextflow input-output arguments"
}
]
}

View File

@@ -0,0 +1,297 @@
name: "yq"
version: "v0.1.0"
argument_groups:
- name: "Inputs"
arguments:
- type: "file"
name: "--input"
description: "files to be processed"
info: null
example:
- "input.yaml"
must_exist: true
create_parent: true
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output"
description: "output file"
info: null
example:
- "output.yaml"
must_exist: true
create_parent: true
required: true
direction: "output"
multiple: false
multiple_sep: ";"
- name: "Arguments"
arguments:
- type: "string"
name: "--eval"
description: "expression to evaluate"
info: null
example:
- ".name = \"foo\""
required: true
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--indent"
alternatives:
- "-I"
description: "sets indent level for output (default 2)"
info: null
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--input_format"
alternatives:
- "-p"
description: "parse format for input. (default \"auto\")"
info: null
required: false
choices:
- "auto"
- "a"
- "yaml"
- "y"
- "json"
- "j"
- "props"
- "p"
- "csv"
- "c"
- "tsv"
- "t"
- "xml"
- "x"
- "base64"
- "uri"
- "toml"
- "shell"
- "s"
- "lua"
- "l"
direction: "input"
multiple: false
multiple_sep: ";"
- type: "string"
name: "--output_format"
alternatives:
- "-o"
description: "output format type. (default \"auto\")"
info: null
required: false
choices:
- "auto"
- "a"
- "yaml"
- "y"
- "json"
- "j"
- "props"
- "p"
- "csv"
- "c"
- "tsv"
- "t"
- "xml"
- "x"
- "base64"
- "uri"
- "toml"
- "shell"
- "s"
- "lua"
- "l"
direction: "input"
multiple: false
multiple_sep: ";"
- type: "boolean_true"
name: "--pretty_print"
alternatives:
- "-P"
description: "pretty print, shorthand for '... style = \"\"'"
info: null
direction: "input"
resources:
- type: "bash_script"
text: |
#!/bin/sh
[[ "$par_pretty_print" == "false" ]] && unset par_pretty_print
yq eval \
${par_indent:+-I "${par_indent}"} \
${par_input_format:+-p "${par_input_format}"} \
${par_output_format:+-o "${par_output_format}"} \
${par_pretty_print:+-P} \
--expression "$par_eval" \
--no-colors \
"$par_input" > "$par_output"
dest: "./script.sh"
is_executable: true
description: "A portable YAML, JSON, XML, CSV, TOML and properties processor"
test_resources:
- type: "bash_script"
text: "set -e\necho \"name: 'bar'\" > test.yaml\n\"$meta_executable\" --input test.yaml\
\ --output output.yaml --eval '.name = \"foo\"'\n\"$meta_executable\" --input\
\ output.yaml --output output2.yaml --eval '.name'\ngrep \"^foo$\" output2.yaml\n"
dest: "./script.sh"
is_executable: true
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
keywords:
- "yaml"
- "json"
- "xml"
- "csv"
- "toml"
- "properties"
license: "MIT"
links:
repository: "https://github.com/mikefarah/yq"
homepage: "https://mikefarah.gitbook.io/yq"
documentation: "https://mikefarah.gitbook.io/yq/"
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: "alpine:latest"
target_registry: "images.viash-hub.com"
target_tag: "v0.1.0"
namespace_separator: "/"
setup:
- type: "apk"
packages:
- "bash"
- "yq-go"
- type: "docker"
run:
- "/usr/bin/yq --version | sed 's/.*version\\sv\\(.*\\)/yq: \"\\1\"/' > /var/software_versions.txt\n"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/yq/config.vsh.yaml"
runner: "nextflow"
engine: "docker|native"
output: "target/nextflow/yq"
executable: "target/nextflow/yq/main.nf"
viash_version: "0.9.4"
git_commit: "da8377a82ee7dd4c5825d0771df17ac6aab9fd27"
git_remote: "https://github.com/viash-hub/toolbox"
package_config:
name: "toolbox"
version: "v0.1.0"
summary: "A collection of curated command-line tools for general IT tasks, built\
\ with Viash.\n"
description: "`toolbox` provides a versatile suite of IT components, following the\
\ robust Viash (https://viash.io) framework.\nThis package focuses on delivering\
\ reliable, standalone tools that can be easily integrated into larger computational\
\ workflows.\n\nThe core philosophy emphasizes **reusability**, **reproducibility**,\
\ and adherence to **best practices** in component creation. Key features of `toolbox`\
\ components include:\n\n* **Standalone & Nextflow Ready:** Execute components\
\ directly from the command line or seamlessly incorporate them into Nextflow\
\ workflows.\n* **High Quality Standards:**\n * Comprehensive documentation\
\ for each component and its parameters.\n * Full exposure of the underlying\
\ tool's arguments for maximum flexibility.\n * Containerized (Docker) to ensure\
\ consistent environments and manage dependencies, leading to enhanced reproducibility.\n\
\ * Unit tested to verify functionality and ensure reliability.\n"
info: null
viash_version: "0.9.4"
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.1.0'"
keywords:
- "toolbox"
- "command-line"
- "tools"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/toolbox"
issue_tracker: "https://github.com/viash-hub/toolbox/issues"

3914
target/nextflow/yq/main.nf Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'yq'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'v0.1.0'
description = 'A portable YAML, JSON, XML, CSV, TOML and properties processor'
}
process.container = 'nextflow/bash:latest'
// detect tempdir
tempDir = java.nio.file.Paths.get(
System.getenv('NXF_TEMP') ?:
System.getenv('VIASH_TEMP') ?:
System.getenv('TEMPDIR') ?:
System.getenv('TMPDIR') ?:
'/tmp'
).toAbsolutePath()
profiles {
no_publish {
process {
withName: '.*' {
publishDir = [
enabled: false
]
}
}
}
mount_temp {
docker.temp = tempDir
podman.temp = tempDir
charliecloud.temp = tempDir
}
docker {
docker.enabled = true
// docker.userEmulation = true
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
podman {
podman.enabled = true
docker.enabled = false
singularity.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
shifter {
shifter.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
charliecloud.enabled = false
}
charliecloud {
charliecloud.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
}
}
process{
withLabel: mem1gb { memory = 1000000000.B }
withLabel: mem2gb { memory = 2000000000.B }
withLabel: mem5gb { memory = 5000000000.B }
withLabel: mem10gb { memory = 10000000000.B }
withLabel: mem20gb { memory = 20000000000.B }
withLabel: mem50gb { memory = 50000000000.B }
withLabel: mem100gb { memory = 100000000000.B }
withLabel: mem200gb { memory = 200000000000.B }
withLabel: mem500gb { memory = 500000000000.B }
withLabel: mem1tb { memory = 1000000000000.B }
withLabel: mem2tb { memory = 2000000000000.B }
withLabel: mem5tb { memory = 5000000000000.B }
withLabel: mem10tb { memory = 10000000000000.B }
withLabel: mem20tb { memory = 20000000000000.B }
withLabel: mem50tb { memory = 50000000000000.B }
withLabel: mem100tb { memory = 100000000000000.B }
withLabel: mem200tb { memory = 200000000000000.B }
withLabel: mem500tb { memory = 500000000000000.B }
withLabel: mem1gib { memory = 1073741824.B }
withLabel: mem2gib { memory = 2147483648.B }
withLabel: mem4gib { memory = 4294967296.B }
withLabel: mem8gib { memory = 8589934592.B }
withLabel: mem16gib { memory = 17179869184.B }
withLabel: mem32gib { memory = 34359738368.B }
withLabel: mem64gib { memory = 68719476736.B }
withLabel: mem128gib { memory = 137438953472.B }
withLabel: mem256gib { memory = 274877906944.B }
withLabel: mem512gib { memory = 549755813888.B }
withLabel: mem1tib { memory = 1099511627776.B }
withLabel: mem2tib { memory = 2199023255552.B }
withLabel: mem4tib { memory = 4398046511104.B }
withLabel: mem8tib { memory = 8796093022208.B }
withLabel: mem16tib { memory = 17592186044416.B }
withLabel: mem32tib { memory = 35184372088832.B }
withLabel: mem64tib { memory = 70368744177664.B }
withLabel: mem128tib { memory = 140737488355328.B }
withLabel: mem256tib { memory = 281474976710656.B }
withLabel: mem512tib { memory = 562949953421312.B }
withLabel: cpu1 { cpus = 1 }
withLabel: cpu2 { cpus = 2 }
withLabel: cpu5 { cpus = 5 }
withLabel: cpu10 { cpus = 10 }
withLabel: cpu20 { cpus = 20 }
withLabel: cpu50 { cpus = 50 }
withLabel: cpu100 { cpus = 100 }
withLabel: cpu200 { cpus = 200 }
withLabel: cpu500 { cpus = 500 }
withLabel: cpu1000 { cpus = 1000 }
}

View File

@@ -0,0 +1,164 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "yq",
"description": "A portable YAML, JSON, XML, CSV, TOML and properties processor",
"type": "object",
"definitions": {
"inputs" : {
"title": "Inputs",
"type": "object",
"description": "No description",
"properties": {
"input": {
"type":
"string",
"description": "Type: `file`, required, example: `input.yaml`. files to be processed",
"help_text": "Type: `file`, required, example: `input.yaml`. files to be processed"
}
}
},
"outputs" : {
"title": "Outputs",
"type": "object",
"description": "No description",
"properties": {
"output": {
"type":
"string",
"description": "Type: `file`, required, default: `$id.$key.output.yaml`, example: `output.yaml`. output file",
"help_text": "Type: `file`, required, default: `$id.$key.output.yaml`, example: `output.yaml`. output file"
,
"default":"$id.$key.output.yaml"
}
}
},
"arguments" : {
"title": "Arguments",
"type": "object",
"description": "No description",
"properties": {
"eval": {
"type":
"string",
"description": "Type: `string`, required, example: `.name = \"foo\"`. expression to evaluate",
"help_text": "Type: `string`, required, example: `.name = \"foo\"`. expression to evaluate"
}
,
"indent": {
"type":
"integer",
"description": "Type: `integer`. sets indent level for output (default 2)",
"help_text": "Type: `integer`. sets indent level for output (default 2)"
}
,
"input_format": {
"type":
"string",
"description": "Type: `string`, choices: ``auto`, `a`, `yaml`, `y`, `json`, `j`, `props`, `p`, `csv`, `c`, `tsv`, `t`, `xml`, `x`, `base64`, `uri`, `toml`, `shell`, `s`, `lua`, `l``. parse format for input",
"help_text": "Type: `string`, choices: ``auto`, `a`, `yaml`, `y`, `json`, `j`, `props`, `p`, `csv`, `c`, `tsv`, `t`, `xml`, `x`, `base64`, `uri`, `toml`, `shell`, `s`, `lua`, `l``. parse format for input. (default \"auto\")",
"enum": ["auto", "a", "yaml", "y", "json", "j", "props", "p", "csv", "c", "tsv", "t", "xml", "x", "base64", "uri", "toml", "shell", "s", "lua", "l"]
}
,
"output_format": {
"type":
"string",
"description": "Type: `string`, choices: ``auto`, `a`, `yaml`, `y`, `json`, `j`, `props`, `p`, `csv`, `c`, `tsv`, `t`, `xml`, `x`, `base64`, `uri`, `toml`, `shell`, `s`, `lua`, `l``. output format type",
"help_text": "Type: `string`, choices: ``auto`, `a`, `yaml`, `y`, `json`, `j`, `props`, `p`, `csv`, `c`, `tsv`, `t`, `xml`, `x`, `base64`, `uri`, `toml`, `shell`, `s`, `lua`, `l``. output format type. (default \"auto\")",
"enum": ["auto", "a", "yaml", "y", "json", "j", "props", "p", "csv", "c", "tsv", "t", "xml", "x", "base64", "uri", "toml", "shell", "s", "lua", "l"]
}
,
"pretty_print": {
"type":
"boolean",
"description": "Type: `boolean_true`, default: `false`. pretty print, shorthand for \u0027",
"help_text": "Type: `boolean_true`, default: `false`. pretty print, shorthand for \u0027... style = \"\"\u0027"
,
"default":false
}
}
},
"nextflow input-output arguments" : {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type":
"string",
"description": "Type: `string`, required, example: `output/`. Path to an output directory",
"help_text": "Type: `string`, required, example: `output/`. Path to an output directory."
}
,
"param_list": {
"type":
"string",
"description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel",
"help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.",
"hidden": true
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/inputs"
},
{
"$ref": "#/definitions/outputs"
},
{
"$ref": "#/definitions/arguments"
},
{
"$ref": "#/definitions/nextflow input-output arguments"
}
]
}