Skip to content

Nextflow Parameters

All parameters for the Krewlyzer Nextflow pipeline. See nextflow.config for defaults.

Required Parameters

Parameter Description
--samplesheet CSV with sample information (format)
--ref Reference genome FASTA (indexed)

General Parameters

Parameter Default Description
--outdir ./results Output directory
--asset_dir Base directory for PON/targets (enables assay resolution)
--targets Global target BED (fallback if not in samplesheet)
--genome hg19 Genome build (hg19 or hg38)
--threads 8 Threads per process
--verbose false Enable verbose logging

Mode Selection

Parameter Default Description
--use_runall true true = unified run-all (default), false = tool-level subworkflow

PON Parameters

Parameter Default Description
--pon_model Global PON model path (fallback)
--pon_variant all_unique PON variant: all_unique or duplex
--skip_pon false Skip PON z-score normalization

Panel & WPS Parameters

Parameter Default Description
--bait_padding 50 Bait edge padding for WPS (bp)
--wps_anchors Custom WPS anchors BED (auto-loaded from assay if not set)
--wps_background Custom WPS background Alu BED (auto-loaded if not set)

Filter & Algorithm Parameters

Parameter Default Description
--mapq 20 Minimum mapping quality
--minlen 65 Minimum fragment length
--maxlen 1000 Maximum fragment length
--min_baseq 20 Minimum base quality for mFSD variant calling
--duplex true Enable duplex weighting for mFSD (graceful fallback)
--skip_duplicates true Skip duplicate reads
--require_proper_pair false Require proper pairs (disable for duplex BAMs)
--exclude_regions BED file of regions to exclude

Feature Toggles

Parameter Default Description
--no_tfbs false Disable TFBS region entropy
--no_atac false Disable ATAC region entropy
--skip_target_regions false Force WGS mode (ignore bundled targets)
--disable_e1_aggregation false Skip E1-only FSC aggregation
--region_mds_e1_only false Run region-MDS on E1 (first exon) only

Output Parameters

Parameter Default Description
--generate_json true Generate unified features.json for ML pipelines
--output_format parquet Feature output format: tsv, parquet, or both. Default changed from tsv in 0.9.0. WPS outputs are always Parquet regardless of this setting.
--compress_tsv false Gzip-compress all TSV outputs (.tsv.gz). Applies only when output_format is tsv or both. Maps to the --compress flag in the Python CLI.
--strict_validation false Fail a sample when its output violates the contract. The report and fingerprint are written either way; this only controls whether a violation stops the run.
--validate_min_samples 3 Minimum samples before cross-sample degeneracy checks are meaningful. Below this the cohort step reports SKIP, never PASS.
--gc_correct true Apply GC bias correction during extraction.
--queue_size 100 Maximum concurrent executor jobs; also derives FILTER_MAF maxForks.
--long_partition null Partition for retried run-all tasks whose grown time request no longer fits the shortest partition in --partition. See below.

--long_partition and partition lists

A retry asks for more time than the attempt before it — 2h, then 4h, then 6h. On a scheduler configured EnforcePartLimits = ALL, a partition list enforces the intersection of the limits while offering the union of the nodes. Passing --partition short,long therefore caps every request at the short partition's limit, and a 4h retry is not rerouted to the long partition — it is refused before it queues:

allocation failure: Requested time limit is invalid (missing or exceeds some limit)

The effect is that any task needing a second attempt fails to submit, three times, and is then dropped by the retry policy's fallback.

Set --long_partition to a partition whose limit covers the grown request and retries go there instead:

--partition "short_queue,long_queue" --long_partition long_queue

Leave it unset and nothing changes: attempt 1 and every retry use --partition as given. Check your scheduler with scontrol show config | grep -i EnforcePartLimits — under ANY this does not apply.

Selecting tsv produces a cohort the downstream consumer cannot read

kreview reads Parquet only. A tsv-only run additionally skips output validation, because the contract describes the Parquet surface.

Both failures are silent: every reader downstream swallows exceptions and yields an empty feature dict, so a cohort produced with the default simply does not appear — no error, no warning, no missing-file complaint.

This is why the default changed to parquet in 0.9.0. Set tsv or both only when you need the text tables; the pipeline logs a warning at start whenever the selection excludes Parquet.

See Also