Table of Contents
Samplesheet input
You will need to create a samplesheet with information about the samples you would like to analyse before running the pipeline. Use the --input parameter to specify its location:
--input <path_to_samplesheet_csv>
It has to be a comma-separated (.csv) file with with at least the sample, biological_replicate, exp_type and fastq_1 columns, and a header row as explained below. The columns can be provided in any order:
| Column (header) | Description | Type | Required |
|---|---|---|---|
sample | Custom sample (or condition) name. This identifier must be the same for all biological and technical replicates of the same sample; just specify a biological_replicate appropriately. For output file naming purposes, the sequencing experiment type is parsed from the exp_type column and prepended to the sample identifier, so you should avoid including the experiment type as part of the sample name. It cannot contain spaces. | string | true |
biological_replicate | String or integer representing the biological replicate. This identifier should be identical for re-sequenced libraries (technical replicates). If you do not have biological replicates you can set the biological_replicate to any number or string for each of your samples. It cannot contain spaces. | string or integer | true |
technical_replicate | Identifier representing the technical replicate. It cannot contain spaces. | string or integer | |
input_control | This column should contain the sample identifier of the corresponding input control for that sample. It should be empty if an input control is not available or in the case of input control rows. | string | |
input_control_biological_replicate | String or integer representing the biological replicate of the corresponding input control sample. It should be empty in the case of input control rows. | string or integer | |
input_control_technical_replicate | String or integer representing the technical replicate of the corresponding input control sample. It should be empty in the case of input control rows. | string or integer | |
exp_type | One of ChIP-seq, ATAC-seq, SCAR-seq, eSPAN, ChOR-seq, ChIP-exo, OK-seq, Repli-seq, CUTandRUN, CUTandTag or TIP-seq. | string | true |
strandedness | Either forward or reverse. forward means Read1 aligns to the original nascent forward strand and Read2 to the original nascent reverse strand (similar to FR/fr-secondstrand/ISF stranded libraries). See below for a diagram of a library with forward strandedness. reverse means Read1 aligns to the original nascent reverse strand and Read2 to the original nascent forward strand (similar to RF/fr-firststrand/ISR stranded libraries).
This field is required for SCAR-seq and OK-seq and is optional for eSPAN, where it defaults to forward. Leave it empty for all other experiment types. | string | |
antibody | This column is required to separate the downstream consensus peak merging for different antibodies. It is not advisable to generate a consensus peak set across different antibodies especially if their binding patterns are inherently different e.g. narrow transcription factors and broad histone marks. It should be empty in the case of input control rows. | string | |
rt_fraction | The cell-cycle fraction a Repli-seq sample was sorted into. Required for Repli-seq rows; must be empty otherwise. Two designs are supported, and one sample may carry both. E/L Repli-seq uses early, late and optionally mid: all early and late rows sharing the same sample (across biological and technical replicates) contribute to one E/L replication-timing track, and mid fractions are aligned, filtered and turned into coverage tracks like any other sample but do not contribute to the early/late ratio (they do contribute to the replication-timing index). High-resolution Repli-seq uses S1 (earliest) to S16 (latest), optionally alongside a G1 whole-genome-sequencing control that is used to correct each S-phase fraction for mappability rather than being treated as a timing fraction itself. See the Repli-seq analysis options for how biological replicates are combined. | string | |
with_umi | Must be set to true for samples that contain UMIs, either in the read sequence, in the read name, or in a separate FastQ file (fastq_umi). If your samples contain UMIs, but they are not in a separate FastQ file, set with_umi to true and leave the fastq_umi column empty. | boolean | |
extract_umi | If the UMIs are contained in the read sequence, extract_umi must be set to true to move them to the read name. If the UMIs have already been extracted and moved to the read name, set extract_umi to false. | boolean | |
fastq_1 | GZIP-compressed FastQ file for reads 1. Must have the extension .fastq.gz or .fq.gz. | string (file-path) | true |
fastq_2 | GZIP-compressed FastQ file for reads 2. Must have the extension .fastq.gz or .fq.gz. Leave empty for single-end data. | string (file-path) | |
fastq_umi | GZIP-compressed FastQ file for UMI reads. Must have the extension .fastq.gz or .fq.gz. Leave empty if a separate UMI file is not available. | string (file-path) |
Example of a library with forward strandedness
The strandedness column in the input samplesheet records which read of a pair corresponds to the original nascent strand: forward means Read 1 aligns to the nascent forward strand and Read 2 to the nascent reverse strand, while reverse means Read1 aligns to the original nascent reverse strand and Read2 to the original nascent forward strand.
The diagram below illustrates the workflow from adapter ligation to read alignment for a library with forward strandedness:

Example samplesheet 1: Multiple biological replicates
This is an example of a samplesheet for a ChIP-seq experiment with one condition and two biological replicates for each antibody:
| sample | biological_replicate | exp_type | antibody | input_control | input_control_biological_replicate | fastq_1 | fastq_2 | fastq_umi |
|---|---|---|---|---|---|---|---|---|
| condition_1_H3K9me3 | 1 | ChIP-seq | H3K9me3 | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep1_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep1_H3K9me3_R2.fastq.gz |
| condition_1_H3K9me3 | 2 | ChIP-seq | H3K9me3 | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep2_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep2_H3K9me3_R2.fastq.gz |
| condition_1_H3K27ac | 1 | ChIP-seq | H3K27ac | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep1_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep1_H3K27ac_R2.fastq.gz |
| condition_1_H3K27ac | 2 | ChIP-seq | H3K27ac | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep2_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep2_H3K27ac_R2.fastq.gz |
| condition_1_INPUT | 1 | ChIP-seq | /<full_path>/condition_1_bRep1_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep1_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep1_INPUT_R2.fastq.gz | |||
| condition_1_INPUT | 2 | ChIP-seq | /<full_path>/condition_1_bRep2_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep2_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep2_INPUT_R2.fastq.gz |
Note
You can download this example samplesheet here.
Example samplesheet 2: Multiple runs of the same library (technical replicates)
Both the sample and biological_replicate identifiers have to be the same when you have sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will perform the alignments in parallel, and subsequently merge them before further analysis.
Note
As shown below, the technical_replicate column is optional; if not provided for any specific biological replicate, the pipeline will assign an integer indentifier [1, 2, ...] to each technical replicate of that biological replicate. On the other hand, if you do want your technical-replicate-level output files to be named with a specific identifier, you should specify the technical_replicate column in the samplesheet.
This is an example of a samplesheet for a ChIP-seq experiment with one condition, two biological replicates for each antibody, and two technical replicates for each biological replicate:
| sample | biological_replicate | exp_type | antibody | input_control | input_control_biological_replicate | fastq_1 | fastq_2 | fastq_umi |
|---|---|---|---|---|---|---|---|---|
| condition_1_H3K9me3 | 1 | ChIP-seq | H3K9me3 | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_tRep1_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_H3K9me3_R2.fastq.gz |
| condition_1_H3K9me3 | 1 | ChIP-seq | H3K9me3 | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_tRep2_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_H3K9me3_R2.fastq.gz |
| condition_1_H3K9me3 | 2 | ChIP-seq | H3K9me3 | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_tRep1_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_H3K9me3_R2.fastq.gz |
| condition_1_H3K9me3 | 2 | ChIP-seq | H3K9me3 | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_tRep2_H3K9me3_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_H3K9me3_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_H3K9me3_R2.fastq.gz |
| condition_1_H3K27ac | 1 | ChIP-seq | H3K27ac | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_tRep1_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_H3K27ac_R2.fastq.gz |
| condition_1_H3K27ac | 1 | ChIP-seq | H3K27ac | condition_1_INPUT | 1 | /<full_path>/condition_1_bRep1_tRep2_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_H3K27ac_R2.fastq.gz |
| condition_1_H3K27ac | 2 | ChIP-seq | H3K27ac | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_tRep1_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_H3K27ac_R2.fastq.gz |
| condition_1_H3K27ac | 2 | ChIP-seq | H3K27ac | condition_1_INPUT | 2 | /<full_path>/condition_1_bRep2_tRep2_H3K27ac_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_H3K27ac_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_H3K27ac_R2.fastq.gz |
| condition_1_INPUT | 1 | ChIP-seq | /<full_path>/condition_1_bRep1_tRep1_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep1_INPUT_R2.fastq.gz | |||
| condition_1_INPUT | 1 | ChIP-seq | /<full_path>/condition_1_bRep1_tRep2_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep1_tRep2_INPUT_R2.fastq.gz | |||
| condition_1_INPUT | 2 | ChIP-seq | /<full_path>/condition_1_bRep2_tRep1_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep1_INPUT_R2.fastq.gz | |||
| condition_1_INPUT | 2 | ChIP-seq | /<full_path>/condition_1_bRep2_tRep2_INPUT_R1.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_INPUT_R3.fastq.gz | /<full_path>/condition_1_bRep2_tRep2_INPUT_R2.fastq.gz |
Note
You can download this example samplesheet here.
Reference genome files
Genome index, FASTA, GTF/GFF and gene BED files
The minimum reference genome requirements are a FASTA and a GTF file, all other files required to run the pipeline can be generated from these files. However, it is more storage and compute friendly if you are able to re-use reference genome files as efficiently as possible. It is recommended to use the --save_reference parameter if you are using the pipeline to build new indices (e.g. those unavailable on AWS iGenomes) so that you can save them somewhere locally. The index building step can be quite a time-consuming process and it permits their reuse for future runs of the pipeline to save disk space. You can then either provide the appropriate reference genome files on the command-line via the appropriate parameters (e.g. --bwa_index '/path/to/bwa/index/') or via a custom config file.
- If
--gene_bedis not provided then it will be generated from the GTF file.
NB: Compressed reference files are also supported by the pipeline i.e. standard files with the
.gzextension and indices folders with thetar.gzextension.
Genome blacklist regions
The blacklist bed files where obtained using the commands below:
cd ..
mkdir -p v1.0
cd v1.0
wget -L https://www.encodeproject.org/files/ENCFF001TDO/@@download/ENCFF001TDO.bed.gz && gunzip ENCFF001TDO.bed.gz && mv ENCFF001TDO.bed hg19-blacklist.v1.bed
mkdir -p assets/blacklists/v2.0/
cd assets/blacklists/v2.0/
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/ce10-blacklist.v2.bed.gz && gunzip ce10-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/ce11-blacklist.v2.bed.gz && gunzip ce11-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/dm3-blacklist.v2.bed.gz && gunzip dm3-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/dm6-blacklist.v2.bed.gz && gunzip dm6-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/hg19-blacklist.v2.bed.gz && gunzip hg19-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/hg38-blacklist.v2.bed.gz && gunzip hg38-blacklist.v2.bed.gz
wget -L https://raw.githubusercontent.com/Boyle-Lab/Blacklist/master/lists/mm10-blacklist.v2.bed.gz && gunzip mm10-blacklist.v2.bed.gz
cd ..
mkdir -p v3.0
cd v3.0
wget -L https://www.encodeproject.org/files/ENCFF356LFX/@@download/ENCFF356LFX.bed.gz && gunzip ENCFF356LFX.bed.gz && mv ENCFF356LFX.bed hg38-blacklist.v3.bed
NB: A detailed description of the different versions of the files can be found here. Also, to to see which blacklist bed files are assigned by default to the respective reference genome check the igenomes.config.
Running the pipeline
The typical command for running the pipeline is as follows:
nextflow run grothlab/crepas --input ./samplesheet.csv --outdir ./results --genome GRCh37 -profile docker
This will launch the pipeline with the docker configuration profile. See below for more information about profiles.
Note that the pipeline will create the following files in your working directory:
work # Directory containing the nextflow working files
<OUTDIR> # Finished results in specified location (defined with --outdir)
.nextflow.log # Log file from Nextflow
# Other nextflow hidden files, eg. history of pipeline runs and old logs.
If you wish to repeatedly use the same parameters for multiple runs, rather than specifying each flag in the command, you can specify these in a params file.
Pipeline settings can be provided in a yaml or json file via -params-file <file>.
Warning
Do not use -c <file> to specify parameters as this will result in errors. Custom config files specified with -c must only be used for tuning process resource specifications, other infrastructural tweaks (such as output directories), or module arguments (args).
The above pipeline run specified with a params file in yaml format:
nextflow run grothlab/crepas -profile docker -params-file params.yaml
with:
input: './samplesheet.csv'
outdir: './results/'
genome: 'GRCh37'
input: 'data'
<...>
You can also generate such YAML/JSON files via nf-core/launch.
Parameters
Input/output options
Define where the pipeline should find input data and save output data.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
input | Path to comma-separated file containing information about the samples in the experiment. HelpYou will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. See usage docs. | string | true | ||
fragment_size | Estimated fragment size used to extend single-end reads. | integer | 250 | ||
seq_platform | Platform/technology used to produce the reads. Corresponds to the PL tag in the SAM/BAM file header. HelpSee the SAM format specification. Valid values: CAPILLARY, DNBSEQ (MGI/BGI), ELEMENT, HELICOS, ILLUMINA, IONTORRENT, LS454, ONT (Oxford Nanopore), PACBIO (Pacific Biosciences), SINGULAR, SOLID, and ULTIMA. This field should be omitted when the technology is not in this list (though the PM field may still be present in this case) or is unknown. | string | |||
seq_center | Sequencing center information to be added to read group of BAM files. | string | |||
read_length | Read length used to calculate MACS3 genome size for peak calling if --macs_gsize isn't provided. (accepted: 50|75|100|150|200) | integer | 75 | ||
outdir | The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure. | string | true | ||
email | Email address for completion summary. HelpSet this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (~/.nextflow/config) then you don't need to specify this on the command line for every run. | string | |||
multiqc_title | MultiQC report title. Printed as page header, used for filename if not otherwise specified. | string |
Reference genome options
Reference genome related files and options required for the workflow.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
genome | Name of reference genome (e.g., GRCh38, hg19, mm10). | string | true | ||
fasta | Path to FASTA genome file. Required unless --hybrid_fasta is provided or the file is supplied by a reference genome config (iGenomes/Refgenie). HelpIf you don't have the appropriate alignment index available this will be generated for you automatically based on this file. Combine with--save_reference to save alignment index for future runs. | string | |||
spikein_fasta | Path to exogenous (spike-in) FASTA genome file. If you provide this, then a hybrid fasta reference file will be generated and used for alignment index building. | string | |||
hybrid_fasta | Path to a pre-built hybrid (endogenous + spike-in) FASTA genome file, with spike-in contigs named <chromosome_name>_<spikein_genome>. If provided, this is used directly instead of generating a hybrid fasta from --fasta/--spikein_fasta. Mutually exclusive with --fasta: providing both raises an error. | string | |||
gtf | Path to GTF annotation file. | string | |||
gff | Path to GFF3 annotation file. | string | |||
bwa_index | Path to directory or tar.gz archive for pre-built BWA index. | string | |||
bwamem2_index | Path to directory or tar.gz archive for pre-built BWAMEM2 index. | string | |||
minibwa_index | Path to directory or tar.gz archive for pre-built minibwa index. | string | |||
bowtie_index | Path to directory or tar.gz archive for pre-built Bowtie index. | string | |||
bowtie2_index | Path to directory or tar.gz archive for pre-built Bowtie2 index. | string | |||
chromap_index | Path to directory or tar.gz archive for pre-built Chromap index. | string | |||
star_index | Path to directory or tar.gz archive for pre-built STAR index. | string | |||
hisat2_index | Path to directory or tar.gz archive for pre-built HISAT2 index. | string | |||
minimap2_index | Path to directory or tar.gz archive for pre-built Minimap2 index. | string | |||
strobealign_index | Path to Strobealign index file with extension '.sti'. This will be created from the FASTA file if not specified and the aligner is set to strobealign. | string | |||
gene_bed | Path to BED file containing gene intervals. This will be created from the GTF file if not specified. | string | |||
initiation_zones | Path to BED file containing initiation zones for SCAR-seq analysis. | string | |||
okseq_rfd_file | Path to GZIP-compressed OK-seq RFD text file. The path cannot contain spaces and must have extension '.txt.gz', '.tsv.gz' or '.bed.gz' | string | |||
macs_gsize | Effective genome size parameter required by MACS3. HelpEffective genome size parameter required by MACS3. Provide the number written out in full (e.g.--macs_gsize 2700000000), not in scientific notation: 2.7e9. | number | |||
blacklist | Path to blacklist regions in BED format, used for filtering alignments. HelpIf provided, alignments that overlap with the regions in this file will be filtered out (see ENCODE blacklists). The file should be in BED format. | string | |||
sparsebed | Path to BED file with sparse segments for Consenrich. HelpDefines the annotation file of 'sparse segments' (genomic regions) from the complement of an 'inflated' BED file of known active regions. See https://github.com/nolan-h-hamilton/Consenrich/blob/5e7f287d81ac4a9bc098ae29e825a5ded07af3b8/consenrich/consenrich.py#L58C54-L58C174 | string | |||
active_regions | Path to BED file with active regions for Consenrich. HelpDefines the annotation file of 'active regions' (genomic regions) for Consenrich. See https://github.com/nolan-h-hamilton/Consenrich/blob/5e7f287d81ac4a9bc098ae29e825a5ded07af3b8/consenrich/consenrich.py#L67 | string | |||
rocco_params | Path to ROCCO parameters file. HelpCSV file containing chromosome-specific optimization parameters. Each supported genome has a custom--params file packaged with ROCCO, but a custom file has to be manually passed to ROCCO within this pipeline. Consider using this argument to set chromosome-specific budget and gamma values custom to your data and preferences. See the ROCCO documentation for more details. | string | |||
splicesites | Path to splice sites file for HISAT2. HelpIf using HISAT2 as the aligner, you can provide a list of known splice sites, which HISAT2 makes use of to align reads with small anchors. If this file is not provided, it will be generated from the GTF file. | string | |||
save_reference | If generated by the pipeline save the BWA index in the results directory. HelpIf the BWA index is generated by the pipeline use this parameter to save it to your results folder. These can then be used for future pipeline runs, reducing processing times. | boolean | true | ||
skip_gtf_index | Skip indexing the GTF file with tabix before processing. HelpSet this parameter to true to skip indexing the GTF file with tabix. This may be useful if your GTF file is already indexed or if you encounter issues with tabix. | boolean | |||
igenomes_base | Directory / URL base for iGenomes references. | string | s3://ngi-igenomes/igenomes/ | true | |
igenomes_ignore | Do not load the iGenomes reference config. HelpDo not loadigenomes.config when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in igenomes.config. | boolean | true | true | |
refgenie_ignore | Whether to ignore the Refgenie reference genomes. HelpDo not use the Refgenie reference genomes, even if loaded before through config files. | boolean | true | true |
UMI extraction and deduplication options
Options to adjust UMI extraction and deduplication criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_markduplicates | Skip the MarkDuplicates step with Picard for samples without UMIs. | boolean | |||
umitools_extract_method | UMI pattern to use. (accepted: string|regex) | string | string | ||
umitools_bc_pattern | The UMI barcode pattern to use e.g. 'NNNNNN' indicates that the first 6 nucleotides of the read are from the UMI. HelpMore details can be found in the UMI-tools documentation. | string | NNNNNNNNN | ||
umitools_bc_pattern2 | The UMI barcode pattern to use if the UMI is located in read 2. | string | NNNNNNNNN | ||
umi_separator | Separator used to separate the UMI from the read name. | string | _ | ||
umi_grouping_method | Method to use to determine read groups by subsuming those with similar UMIs. All methods start by identifying the reads with the same mapping position, but treat similar yet nonidentical UMIs differently. (accepted: unique|percentile|directional|adjacency|cluster) | string | percentile | ||
umi_discard_read | After UMI barcode extraction discard either R1 or R2 by setting this parameter to 1 or 2, respectively. | integer | |||
get_dedup_stats | Get deduplication statistics. | boolean | true | ||
umi_dedup_tool | UMI deduplication tool to use. (accepted: umicollapse|umitools) | string | umitools | ||
save_dedup_intermeds | Save intermediate files from the UMI deduplication step. | boolean | |||
skip_split_by_chrom | Skip splitting the BAM file by chromosome for UMI deduplication. HelpBAMs are splitted by chromosome, deduplicated, and then merged back to improve parallelization of the deduplication step. Set this parameter to true to skip this splitting step. This may be useful if you encounter issues with the splitting or merging steps or if your BAM files are small and you don't think that parallelization will speed up the deduplication step. | boolean |
Adapter trimming options
Options to adjust adapter trimming criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
clip_r1 | Instructs Trim Galore to remove bp from the 5' end of read 1 (or single-end reads). | integer | |||
clip_r2 | Instructs Trim Galore to remove bp from the 5' end of read 2 (paired-end reads only). | integer | |||
three_prime_clip_r1 | Instructs Trim Galore to remove bp from the 3' end of read 1 AFTER adapter/quality trimming has been performed. | integer | |||
three_prime_clip_r2 | Instructs Trim Galore to remove bp from the 3' end of read 2 AFTER adapter/quality trimming has been performed. | integer | |||
trim_full_length | Instructs Trim Galore to search for the full length (33 bp) TruSeq (ChIP-seq, ChOR-seq, SCAR-seq) or Nextera (ATAC-seq) adapter sequences for both complement and reverse complements. HelpThe default (false) setting will mean that the auto-detect function of Trim Galore will be used. See https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md#adapter-auto-detection | boolean | true | ||
trim_nextseq | Instructs Trim Galore to apply the --nextseq=X option, to trim based on quality after removing poly-G tails. HelpThis enables the Cutadapt--nextseq-trim=3'CUTOFF option via Trim Galore, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored. This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without any signal are called as high-quality G bases. Read the Cutadapt documentation for more details. | integer | 20 | ||
trim_stringency | Instructs Trim Galore to use this stringency (minimum overlap) when searching for adapter sequences. HelpIn other words, to reduce the number of falsely trimmed bases, the alignment algorithm in Trim Galore requires that at least this number of bases of the adapter are aligned to the read. This parameter corresponds to the--stringency option in Trim Galore and the --overlap option in Cutadapt. | integer | 3 | ||
trim_error_rate | Instructs Trim Galore to use this error rate when trimming. | number | 0.2 | ||
trim_q_cutoff | Instructs Trim Galore to use this quality cutoff when trimming. | integer | |||
trim_minimum_length | Instructs Trim Galore to discard reads that became shorter than this length after adapter or quality trimming. A value of 0 effectively disables this behaviour. | integer | 5 | ||
trim_maximum_length | Instructs Trim Galore to discard reads that are longer than this length after adapter or quality trimming. | integer | |||
skip_trimming | Skip the adapter trimming step. HelpUse this if your input FastQ files have already been trimmed outside of the workflow or if you're very confident that there is no adapter contamination in your data. | boolean | |||
save_trimmed | Save the trimmed FastQ files in the results directory. HelpBy default, trimmed FastQ files will not be saved to the results directory. Specify this flag (or set to true in your config file) to copy these files to the results directory when complete. | boolean | |||
min_trimmed_reads | Minimum number of reads required after trimming. | integer | 1 |
Hard trimming options
Options to adjust hard trimming criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
hardtrim5_length | Instructs Trim Galore to hard-trim (shorten) reads to this length from their 3' end. This is performed after adapter/quality trimming. | integer | |||
hardtrim3_length | Instructs Trim Galore to hard-trim (shorten) reads to this length from their 5' end. This is performed after adapter/quality trimming. | integer | |||
save_hardtrimmed | Whether to save the hard-trimmed reads (FASTQs) in the output directory. | boolean | true |
Alignment options
Options to adjust parameters and filtering criteria for read alignments.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
aligner | Specifies the alignment algorithm to use. (accepted: bwa|bwamem2|minibwa|bowtie|bowtie2|chromap|star|hisat2|strobealign|minimap2) | string | chromap | ||
bwa_min_score | Don't output BWA MEM alignments with score lower than this parameter. | integer | |||
bwamem2_min_score | Don't output BWAMEM2 alignments with score lower than this parameter. | integer | |||
save_align_intermeds | Save the intermediate BAM files from the alignment step. HelpBy default, intermediate BAM files will not be saved. The final BAM files created after the appropriate filtering step are always saved to limit storage usage. Set this parameter to also save other intermediate BAM files. | boolean | |||
save_unaligned | Where possible, save unaligned reads from either STAR or HISAT2 to the results directory. HelpThis may either be in the form of FastQ or BAM files depending on the options available for that particular tool. | boolean | |||
map_n_multimappers | Number of multimappers to map. | integer | |||
align_end_to_end | Wheter to perform end-to-end alignment (only relevant for Bowtie2 and STAR). If set to false, local alignment will be performed. | boolean | true | ||
minimap2_preset | Preset to use for minimap2 alignment. See the minimap2 documentation for more details. (accepted: sr) | string | sr | ||
minimap2_kmer_length | K-mer length to use for minimap2 indexing and alignment. See the minimap2 documentation for more details. | integer | 21 | ||
minimap2_min_win_size | Minimizer window size to use for minimap2 indexing and alignment. See the minimap2 documentation for more details. | integer | 11 | ||
minibwa_preset | Preset to use for minibwa alignment. See the minibwa documentation for more details. (accepted: sr|lr|adap) | string | sr | ||
minibwa_min_seed_length | Minimum seed length to use for minibwa alignment. See the minibwa documentation for more details. | integer | 19 | ||
minibwa_bandwidth | Bandwidth to use for minibwa alignment. See the minibwa documentation for more details. | integer | 100 |
Spike-in options
Options to adjust spike-in splitting criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
spikein_genome | Name of the spike-in genome (if used in the experiment). The spike-in (exogenous) chromosome names in the --fasta and <aligner>_index files should have the format <chromosome_name>_<spikein_genome>, e.g. chr1_dm6. | string | |||
save_spikein_intermeds | Save intermediate files during spike-in splitting and filtering of BAMs. These include the split and filtered BAM files before coordinate-sorting. | boolean |
Multimapper allocation options
Options to adjust multimapper allocation criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
multimap_allocation_method | Method to allocate multimappers. Not setting this parameter means that multimappers will not be allocated (the default). (accepted: allo|chromap|mmr) | string | |||
allo_mixed_cnn | When using Allo for multimapper allocation, use the CNN trained on histone ChIP-seq datasets with mixed peaks, otherwise use the default (narrow). See allo for more details. | boolean | true | ||
save_allocation_intermeds | Save the intermediate BAM files from the multimapper allocation step. | boolean |
Alignment shifting options
Options to adjust alignment shifting criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
save_shifting_intermeds | Whether to save the intermediate files from the alignment shifting (only done on ATAC-seq data). | boolean |
Filtering options
Options to adjust filtering criteria for BAM files.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_flT3 | Whether to skip the flT3 filtering step (filtering by mapping quality, which also removes multimapping reads in most cases). | boolean | |||
skip_flTbl | Whether to skip the blacklist filtering step. This serves to skip the removal of blacklisted regions from the BAM files even if a blacklist BED file is provided. | boolean |
Coverage and normalization options
Options to adjust coverage and normalization criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_srpm | Whether to skip the SRPM normalization step. See the output documentation for more details. | boolean | |||
skip_cisrpm | Whether to skip the CISRPM normalization step. See the output documentation for more details. | boolean | |||
coverage_extend_reads | This parameter allows the extension of reads to fragment size. If set, each read is extended, without exception. HelpSingle-end: Requires a user specified value for the final fragment length. Reads that already exceed this fragment length will not be extended. Paired-end: Reads with mates are always extended to match the fragment size defined by the two read mates. Unmated reads, mate reads that map too far apart (>4x fragment length) or even map to different chromosomes are treated like single-end reads. The input of a fragment length value is optional. If no value is specified, it is estimated from the data (mean of the fragment size of all mate reads). Read the deepTools documentation for more details. | integer | 250 | ||
coverage_bin_size | Size of the bins, in bases, for the output of the coverage calculation. | integer | 250 | ||
coverage_skip_nas | This parameter determines if non-covered regions (regions without overlapping reads) should be skipped. The default is to treat those regions as having a value of zero. See the deepTools documentation for more details. | boolean | |||
skip_signal_vs_input | Whether to skip the signal vs input comparison step. | boolean | |||
signal_vs_input_operation | Operation to perform when comparing IP and input coverage. soi is basically the same as ratio, although it is computed with a special script. For the rest of the operations, see the deepTools documentation for more details. (accepted: soi|log2|ratio|subtract|add|mean|reciprocal_ratio|first|second) | string | soi | ||
min_signal_for_soi | Minimum signal in the IP bin to be included in the signal over input (SOI) calculation. Otherwise, the the score of that bin is set to NaN. | number | 0 | ||
min_input_for_soi | Minimum input signal in the input bin to be included in the signal over input (SOI) calculation. Otherwise, the the score of that bin is set to NaN. | number | 0.001 | ||
bw_compare_pseudocount | A small number to avoid x/0. Only useful together with --operation log2 or --operation ratio. See the deepTools documentation for more details. | number | 0 | ||
bw_compare_skip_zero_over_zero | This parameter determines if regions with zero coverage in both the IP and input should be skipped when comparing IP and input coverage. This is determined BEFORE any applicable pseudocount is added. See the deepTools documentation for more details. | boolean | true | ||
use_flT2_as_total_ref | Comma-separated list of histone marks for which downsampling or normalization factors should be calculated using the total number of reads before the quality filtering in flT3. The total mapped reads after flT1 will be used if flT2 was not performed (i.e., when there is no spike-in splitting). For marks/antibodies not in this list the total mapped reads after flT3 will be used for normalization factor calculation. | string | H3K9me3,H3K27me3 | ||
save_coverage_intermeds | Whether to save the intermediate files from the coverage calculation step. These include the coverage files in bedGraph format. | boolean | |||
min_reads_for_norm | Minimum number of total mapped reads required to include a BAM in any normalization. For example, this prevents having an empty exogenous input control BAM when no reads map to the spike-in genome. | integer | 1 | ||
skip_bw_average | Whether to skip the generation of average bigWig files across replicates for each sample group. | boolean | |||
skip_exo_bw | Whether to skip the generation of exogenous bigWig files for each sample. | boolean | true | ||
skip_multibigwigsummary | Whether to skip the generation of a table with the bin value for all the samples. | boolean | |||
skip_plotcorrelation | Whether to skip correlation of multibigwigsummary output. | boolean | true | ||
skip_plotpca | Whether to skip PCA of multibigwigsummary output. | boolean | true |
Downsampling options
Options to adjust downsampling criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
bam_downsampling_method | Method to downsample BAM files. Leave empty to disable downsampling. (accepted: min_endo_across|min_exo_across|min_endo_by_type|min_exo_by_type) HelpThemin_endo_across method will downsample all IPs and inputs of the same antibody to the minimum number of endogenous reads across all IPs and inputs of the same antibody.The min_exo_across method will downsample all IPs and inputs of the same antibody to the minimum number of exogenous reads across all IPs and inputs of the same antibody.The min_endo_by_type method will downsample all IPs to the minimum number of endogenous reads across all IPs of the same antibody, and all the inputs to the minimum number of endogenous reads across all inputs of the same antibody.The min_exo_by_type method will downsample all IPs to the minimum number of exogenous reads across all IPs of the same antibody, and all the inputs to the minimum number of exogenous reads across all inputs of the same antibody. | string | |||
downsampling_endo_threshold | Threshold of endogenous mapped reads for downsampling. For downsampling methods that search for the minimum endogenous mapped reads across a set of samples, this parameter will determine the lower limit of that minimum. In other words, the minimum mapped endogenous reads should be the minimum number above the downsampling_endo_threshold. If there are no totals above this threshold, then the (true) minimum is used. | integer | 10000000 | ||
downsampling_exo_threshold | Threshold of exogenous mapped reads for downsampling. For downsampling methods that search for the minimum exogenous mapped reads across a set of samples, this parameter will determine the lower limit of that minimum. In other words, the minimum mapped exogenous reads should be the minimum number above the downsampling_exogenous_threshold. If there are no totals above this threshold, then the (true) minimum is used. | integer | 300000 | ||
bam_downsampling_strategy | Strategy to downsample BAM files. See Picard for more details. (accepted: ConstantMemory|HighAccuracy|Chained) | string | Chained | ||
bam_downsampling_accuracy | Accuracy of downsampling BAM files. See Picard for more details. | number | 1e-06 | ||
save_downsampling_intermeds | Save the intermediate BAM files from the downsampling step. | boolean | true |
TE counting options
Options to adjust transposable element (TE) counting criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_te_counting | Skip transposable element (TE) counting. | boolean | true | ||
skip_telocal | Skip local TE counting. | boolean | true | ||
skip_tecount_gz | Skip gzip compression of TEcount output files. | boolean | |||
skip_telocal_gz | Skip gzip compression of TElocal output files. | boolean | |||
te_counting_mode | Method to use for TE counting. See TEcount's documentation for more details. (accepted: multi|uniq) | string | multi | ||
te_counting_gene_gtf | Path to a different gene GTF file for counting with TEcount and TElocal. If not provided, the main --gtf file will be used to generate a gene index suitable for TEcount or TElocal, unless the respective prebuilt gene index files are provided. | string | |||
tecount_gene_index | Path to the prebuilt gene index file (.ind) for counting with TEcount. If not provided, this file in --gtf will be used to generate a gene index suitable for TEcount. | string | |||
telocal_gene_index | Path to the prebuilt gene index file (.ind) for counting with TElocal. If not provided, this file in --gtf will be used to generate a gene index suitable for TElocal. | string | |||
te_gtf | Path to the TE GTF file for counting with TEcount or TElocal. If not provided, this file will be used to generate a TE index suitable for TEcount or TElocal. | string | |||
tecount_te_index | Path to the prebuilt TE index file (.ind) for counting with TEcount. If not provided, this file in --te_gtf will be used to generate a TE index suitable for TEcount. | string | |||
telocal_te_index | Path to the prebuilt TE index file (.locInd) for local (instance) TE counting with TElocal. If not provided, this file in --te_gtf will be used to generate a TE index suitable for TElocal. | string |
Peak calling options
Options to adjust peak calling criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_peak_calling | Skip peak calling altogether, for every peak caller listed in peak_callers. | boolean | |||
peak_callers | Comma-separated list of peak calling algorithms to use. HelpOne or more ofmacs3, genrich, consenrich, epic2, mace, dpeak, dpos, dregion, dtriple, edd, denopa, seacr, given as a comma-separated list without spaces, e.g. --peak_callers macs3,genrich. Every listed peak caller is run on all applicable samples. Use --skip_peak_calling to switch peak calling off entirely. denopa is currently not supported: no usable container for it exists yet. | string | macs3 | ||
narrow_peak | Whether to call narrow peaks with MACS3 and Genrich. Default is to call broad peaks. | boolean | |||
peak_cutoff_method | Type of statistical cutoff to use for peak calling. (accepted: qvalue|pvalue) | string | qvalue | ||
narrow_cutoff | Specifies narrow cutoff value (p-value or q-value) for MACS3 and Genrich peak calling. | number | 0.01 | ||
broad_cutoff | Specifies broad cutoff value (p-value or q-value) for MACS3 and Genrich peak calling. | number | 0.1 | ||
consensus_min_replicates_per_sample | Number of biological replicates required from a given condition for a peak to contribute to a consensus peak. HelpIf you are confident you have good reproducibility amongst your replicates then you can increase the value of this parameter to create a 'reproducible' set of consensus peaks. For example, a value of 2 will mean peaks that have been called in at least 2 replicates will contribute to the consensus set of peaks, and as such peaks that are unique to a given replicate will be discarded. A value of -1 means that a peak must have been called in all replicates to contribute to the consensus set of peaks. | number | 1 | ||
consensus_peaks_max_dist | Maximum distance between peaks allowed for peaks to be merged for consensus peak definition. --consensus_peaks_max_dist 0 means overlapping and/or book-ended features are merged. | integer | 0 | ||
macs_extsize | Used to extend reads in 5'->3' direction to fix-sized fragments when processing ATAC-seq data, for which MACS3 bypasses building the shifting model (--nomodel). See MACS3 documentation for more details. | integer | 250 | ||
macs_slocal | Size of the small local region around peak regions to calculate the maximum lambda as local lambda. HelpBy default, MACS3 considers 1000 bp for small local region (--slocal). You can tweak this according to your project. Remember that if the region is set too small, a sharp spike in the input data may kill a significant peak. See MACS3 documentation for more details. | integer | 1500 | ||
macs_llocal | Size of the large local region around peak regions to calculate the maximum lambda as local lambda. HelpBy default, MACS3 considers 10000 bp for large local region (--llocal) which captures the bias from a long-range effect like an open chromatin domain. You can tweak this according to your project. See MACS3 documentation for more details. | integer | 10000 | ||
save_macs_pileup | Instruct MACS3 to create bedGraph files normalised to signal per million reads. | boolean | true | ||
skip_peak_qc | Skip MACS3 peak QC plot generation. | boolean | |||
skip_peak_annotation | Skip annotation of MACS3 and consensus peaks with HOMER. | boolean | |||
skip_consensus_peaks | Skip consensus peak generation, annotation and counting. | boolean | |||
skip_consensus_plotprofile | Skip generation of the consensus peak profile plot. | boolean | |||
consensus_plotprofile_mode | Mode to use for the consensus peak profile plot. See the deepTools documentation for more details. (accepted: reference_point|scale_regions) | string | reference_point | ||
consensus_plotprofile_ref_point | Reference point to use for the consensus peak profile plot when --consensus_plotprofile_mode is set to reference_point. See the deepTools documentation for more details. (accepted: TSS|TES|center) | string | center | ||
consensus_plotprofile_region_body_length | Length of the region body to plot for the consensus peak profile plot when --consensus_plotprofile_mode is set to scale_regions. See the deepTools documentation for more details. | integer | 1000 | ||
consensus_plotprofile_upstream | Length of the upstream region to plot for the consensus peak profile plot. See the deepTools documentation for more details. | integer | 6000 | ||
consensus_plotprofile_downstream | Length of the downstream region to plot for the consensus peak profile plot. See the deepTools documentation for more details. | integer | 6000 | ||
consensus_plotprofile_skip_zeros | Whether to skip regions with zero coverage in the consensus peak profile plot. See the deepTools documentation for more details. | boolean | true | ||
consensus_plotprofile_per_group | Whether to plot all samples in a group together in the consensus peak profile plot. See the deepTools documentation for more details. | boolean | true | ||
input_cisrpm_in_plotprofile | Whether to include the input CISRPM signal in the gene or consensus peak profile plots. | boolean | |||
skip_bdgcmp | Skip bdgcmp calculation with MACS3. | boolean | true | ||
save_macs_bdgcmp_intermeds | Save intermediate bedGraph/bigWig files generated by the MACS3 bdgcmp step. | boolean | |||
edd_bin_size | Bin size (Kb) for EDD peak calling. Autoestimated if left blank. See EDD documentation for more details. | string | |||
edd_gap_penalty | Gap penalty for EDD peak calling. Autoestimated by EDD if left blank. See EDD documentation for more details. | string | |||
edd_num_trials | Number of Monte Carlo trials for EDD peak calling. See EDD documentation for more details. | integer | 10000 | ||
edd_fdr | FDR threshold for EDD peak calling. See EDD documentation for more details. | number | 0.01 | ||
genrich_narrow_gap | Genrich narrow gap parameter. | integer | 100 | ||
genrich_broad_gap | Genrich broad gap parameter. | integer | 200 | ||
save_genrich_pileup | Instruct Genrich to save pileup files. | boolean | true | ||
save_genrich_pvalues | Instruct Genrich to save p-values. | boolean | true | ||
save_genrich_intervals | Instruct Genrich to save intervals. | boolean | true | ||
epic2_binsize | Size of the windows to scan the genome in epic2. Bin size is the smallest possible island. | integer | 250 | ||
epic2_fdr | In epic2 peak calling, remove all islands with an FDR above this cutoff. | number | 0.01 | ||
skip_encode_pipeline | Skip peak calling with the ENCODE ChIP-seq pipeline. | boolean | true | ||
ctl_depth_ratio_threshold | For each sample, if the ratio of depth between input controls is higher than this, then a pooled input control will be used for all sample replicates. | number | 1.2 | ||
use_best_multisummit_idr | Set the IDR value for a group of multi summit peaks (a group of peaks with the same chr/start/stop but different summits) to the best value across all of these peaks. This is a work around for peak callers that don't do a good job splitting scores across multi summit peaks (e.g. MACS). If set in conjunction with --plot two plots will be created - one with alternate summits and one without. Use this option with care. See the IDR documentation for more details. | boolean | true | ||
idr_soft_threshold | Report statistics for peaks with a global IDR below this value but return all peaks | number | 0.05 | ||
idr_filtering_threshold | Filter peaks with an IDR above this value. | number | 0.05 | ||
spp_npeak | Threshold on the number of peaks to call with SPP for the ENCODE-based processing. | integer | 300000 | ||
encode_peak_max_score | Set peaks with a score above this value to this value. | number | 1000 | ||
xcor_exclusion_range_min | Minimum fragment length to exclude when calculating cross-correlation metrics for the ENCODE-based processing. | integer | -500 | ||
xcor_exclusion_range_max | Maximum fragment length to exclude when calculating cross-correlation metrics for the ENCODE-based processing. If not provided max(params.read_length + 10, 100) will be used. | integer | |||
seacr_peak_threshold | SEACR specifies returns the top n fraction (between 0 and 1) of peaks based on total signal within peaks. This is only used if there are no controls included with the samples and if --use_control is false | number | 0.05 | ||
seacr_norm | SEACR normalization. (accepted: non|norm) | string | non | ||
seacr_stringency | SEACR stringency. (accepted: stringent|relaxed) | string | stringent | ||
mace_kmer_size | Set the k-mer size for MACE peak calling. Kmer size [6,12] to correct nucleotide composition bias. kmerSize < 0.5*read_length. Larger KmerSize might make program slower. Set kmerSize = 0 to turn off nucleotide compsition bias correction. default=6. See the MACE documentation for more details. | integer | |||
mace_bin | Chromosome chunk size. Each chomosome will be cut into small chunks of this size. Decrease chunk size will save more RAM. default=100000 (bp). See the MACE documentation for more details. | integer | |||
mace_depth | Reference reads count (default = 10 million). Sequencing depth will be normailzed to this number, so that wig files are comparable between replicates. See the MACE documentation for more details. | integer | |||
mace_qcut | phred scaled mapping quality threshhold to determine “uniqueness” of alignments. default=30. See the MACE documentation for more details. | number | |||
mace_norm_method | Method used to consolidate replicates and reduce noise. “EM” = Entropy weighted mean, “AM”=Arithmetic mean, “GM”=Geometric mean, “SNR”=Signal-to-noise ratio. See the MACE documentation for more details. (accepted: EM|AM|GM|SNR) | string | |||
mace_pvalue | Pvalue cutoff for border detection and subsequent border pairing. default=0.05. See the MACE documentation for more details. | number | |||
mace_max_dist | Maximum distance allowed for border pairing. default=100 (bp). See the MACE documentation for more details. | integer | |||
mace_fuzzy_size | Peaks (i.e. borders) located closely within this window will be merged. default=5 (bp). See the MACE documentation for more details. | integer | |||
mace_window_size | Background window size used to determine background signal level. default=100 (bp). See the MACE documentation for more details. | integer | |||
mace_signal_fold | Minimum coverage signal used to build model (i.e. estimate optimal peak pair size). default=2.0. See the MACE documentation for more details. | number | |||
save_mace_intermeds | Whether to save the intermediate files from the MACE peak calling step. These include the MACE peak files in bedGraph format. | boolean |
Process skipping options
Options to skip various steps within the workflow.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
skip_fastqc | Skip FastQC. | boolean | |||
spikein_barcode_table | Path to a tab-delimited file containing the spike-in barcode targets, ids, and sequences. See the sc_spikein_barcodes.tsv for an example. This is only useful for CUT&Tag or CUT&RUN experiments with SNAP-CUTANA™ Spike-ins (See https://support.epicypher.com/v1/docs/analyzing-snap-cutana-spike-in-controls-and-expected-results). | string | |||
skip_spikein_barcode_extract | Whether to skip the extraction of spike-in barcodes from FASTQ files. This is useful for CUT&Tag or CUT&RUN experiments with SNAP-CUTANA™ Spike-ins (See https://support.epicypher.com/v1/docs/analyzing-snap-cutana-spike-in-controls-and-expected-results). | boolean | |||
skip_picard_metrics | Skip Picard CollectMultipleMetrics. | boolean | |||
skip_preseq | Skip Preseq. | boolean | true | ||
deseq2_vst | Use vst transformation instead of rlog with DESeq2. HelpSee DESeq2 docs. | boolean | true | ||
skip_genes_plotprofile | Skip deepTools plotProfile. | boolean | |||
genes_plotprofile_mode | Mode to compute the matrix for deepTools plotProfile. See the deepTools documentation for more details. (accepted: scale_regions|reference_point) | string | scale_regions | ||
genes_plotprofile_ref_point | Reference point for deepTools plotProfile when --genes_plotprofile_mode is reference_point. See the deepTools documentation for more details. (accepted: TSS|TES|center) | string | TSS | ||
genes_plotprofile_region_body_length | Region body length (in bp) for deepTools plotProfile when --genes_plotprofile_mode is scale_regions. See the deepTools documentation for more details. | integer | 1000 | ||
genes_plotprofile_upstream | Upstream distance (in bp) from the reference point for deepTools plotProfile when --genes_plotprofile_mode is reference_point. See the deepTools documentation for more details. | integer | 2000 | ||
genes_plotprofile_downstream | Downstream distance (in bp) from the reference point for deepTools plotProfile when --genes_plotprofile_mode is reference_point. See the deepTools documentation for more details. | integer | 2000 | ||
genes_plotprofile_skip_zeros | Whether to skip regions with zero coverage in all samples when computing the matrix for deepTools plotProfile. This is determined BEFORE any applicable pseudocount is added. See the deepTools documentation for more details. | boolean | |||
skip_plot_fingerprint | Skip deepTools plotFingerprint. | boolean | |||
skip_spp_qc | Skip Phantompeakqualtools QC metrics and plots. | boolean | |||
skip_deseq2_qc | Skip DESeq2 PCA and heatmap plotting. | boolean | |||
skip_igv | Skip IGV. | boolean | |||
skip_multiqc | Skip MultiQC. | boolean | |||
skip_qc | Skip all QC steps except for MultiQC. | boolean |
SCAR-seq (partition) and OK-seq (RFD) analysis options
Options to adjust SCAR-seq and OK-seq analysis criteria.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
partition_fragment_size | For single-end SCAR-seq or OK-seq data, the fragment size (in bp) to extend reads when calculating coverage for partition/RFD analysis. For paired-end data, coverage of intervals is calculated from the left point of a read pair to the right point. | integer | 250 | ||
partition_window_size | Window/bin size (in bp) for dividing chromosomes when calculating coverage for partition/RFD analysis in SCAR-seq or OK-seq experiments. See this reference for more details. | integer | 1000 | ||
partition_step_size | Step size (in bp) for sliding window when calculating coverage for partition/RFD analysis in SCAR-seq or OK-seq experiments. Default is the same as --partition_window_size to create fixed-size book-ended bins instead of sliding windows. | integer | 1000 | ||
smooth_radius | Smoothing radius for partition/RFD signal smoothing. Smoothing is computed across consecutive book-ended bins, performing a uniform blur considering the neighboring bins on each side. See this reference for more details. | integer | 30 | ||
derivative_radius | Radius for nonparametric derivative estimation of RFD signal to detect sharp transitions between neighboring bins for initiation zone detection. See this reference for more details. | integer | 30 | ||
zero_crossing_radius | Radius for zero-crossing detection when defining replication initiation zones. See this reference for more details. | integer | 1 | ||
partition_rpm_cutoff | RPM (reads per million) cutoff for bins to be included in downstream partition analysis. Bins with normalized read-counts above this threshold will be included. See this reference for more details. | number | 0.3 | ||
partition_plot_range | Distance (kb) up- and downstream of each initiation zone to plot. HelpIndependent ofpartition_iz_rm_overlap_range: when partition_plot_range is the larger of the two, the plotted flanks can reach neighbouring initiation zones and a partition bin may then contribute to more than one profile. | integer | 100 | ||
partition_iz_rm_overlap_range | Distance (kb) around each initiation zone used to discard overlapping ones. HelpAny initiation zone whose window of this radius overlaps another one is discarded before plotting. Set to 0 to skip the removal of overlapping initiation zones entirely and keep them all. Independent ofpartition_plot_range, so the plotted range can be widened without discarding more initiation zones. | integer | 100 | ||
partition_exclude_scaffolds | Whether to exclude scaffolds from partition plots. Scaffolds are defined as chromosomes whose name begins with 'chrUn' or contains a dot ('.'). | boolean | true | ||
partition_exclude_chromosomes | Comma-separated list of chromosomes to exclude from partition analysis. Typically sex chromosomes and mitochondrial chromosomes are excluded. See this reference for more details. | string | chrX,chrY,chrM | ||
skip_partition_group_plot | Whether to skip the grouped partition plots, which combine all samples of the same antibody in a single plot. Per-sample partition plots are still generated. | boolean | |||
save_partition_intermeds | Whether to save the intermediate files from the partition/RFD analysis step. | boolean |
Repli-seq analysis options
Options to adjust Repli-seq replication-timing (RT) track analysis.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
repliseq_bin_size | Bin size (in bp) used by deepTools multiBamSummary when counting reads per window for Repli-seq replication-timing (RT) tracks (e.g. 5000, 10000, 20000, 50000, 100000 for 5/10/20/50/100 kb resolution). | integer | 50000 | ||
repliseq_replicate_method | How to combine early/late biological replicates when calculating the Repli-seq RT ratio. paired computes the ratio per matched early/late biological-replicate pair (matched by biological_replicate) and averages; pooled averages replicates within each phase first, then computes one ratio; auto chooses between the two via a correlation heuristic (see --repliseq_pairing_threshold). (accepted: auto|paired|pooled) | string | auto | ||
repliseq_normalization | cpm only CPM-normalizes each Repli-seq replicate; qn additionally quantile-normalizes between replicates, on top of CPM. (accepted: cpm|qn) | string | qn | ||
repliseq_smooth | Smoothing strategy applied to the raw Repli-seq RT track. (accepted: loess|roll|none) | string | loess | ||
repliseq_smooth_stage | Where smoothing enters the Repli-seq RT calculation. replicate smooths each replicate's normalized coverage track and then takes the early/late ratio; ratio takes the ratio first and smooths that. Only affects the smoothed track; the raw track is always the unsmoothed ratio. (accepted: replicate|ratio) | string | replicate | ||
repliseq_clamp_negative | Floor smoothed replicate coverage at zero before taking the Repli-seq early/late ratio. Coverage cannot be negative, but a loess fit can undershoot below it. Only applies with --repliseq_smooth_stage replicate. | boolean | True | ||
repliseq_ratio_direction | Orientation of the Repli-seq log2 ratio. early_over_late makes high values early-replicating, which is the usual convention; late_over_early inverts it. (accepted: early_over_late|late_over_early) | string | early_over_late | ||
repliseq_loess_degree | Degree of the local polynomial fitted by loess when smoothing Repli-seq RT tracks. (accepted: 1|2) | integer | 2 | ||
repliseq_loess_family | Loess fitting family used when smoothing Repli-seq RT tracks. symmetric reweights to resist outliers, but is undefined on sequences where over half the residuals are exactly zero, in which case it falls back to gaussian for that sequence. (accepted: gaussian|symmetric) | string | gaussian | ||
repliseq_loess_window | Width (in bp) of the loess smoothing window used when --repliseq_smooth loess. It is converted to a per-sequence span, so the same genomic scale is smoothed over on every sequence regardless of its length. | integer | 500000 | ||
repliseq_loess_span | Loess span given directly, as a fraction of the bins on each sequence, used when --repliseq_smooth loess. Overrides --repliseq_loess_window when set. Because it is a fraction rather than a fixed width, a long chromosome is smoothed over a proportionally wider stretch of sequence than a short one. | number | |||
repliseq_roll_k | Rolling-mean window size, in bins, used when --repliseq_smooth roll. | integer | 5 | ||
repliseq_corr_method | Correlation method used by the --repliseq_replicate_method auto heuristic. (accepted: spearman|pearson) | string | spearman | ||
repliseq_pairing_threshold | Under --repliseq_replicate_method auto, paired is chosen when (matched-replicate-pair average correlation - mismatched-replicate-pair average correlation) is at least this value; otherwise pooled is used. | number | 0.02 | ||
repliseq_exclude_scaffolds | Exclude scaffolds and alternate sequences from the Repli-seq RT track. deepTools multiBamSummary bins every sequence in the BAM header, and these are short and usually barely covered, which makes their RT values meaningless. A sequence counts as one when its name begins with chrUn, ends with _random, _alt or _fix, or contains a dot. They are dropped before CPM normalization, so the normalization reflects primary-chromosome depth only. | boolean | True | ||
repliseq_min_bin_reads | Fewest reads a bin needs across the early and late fractions combined to appear in the .covered copy of the Repli-seq ratio track. A bin with no reads in either fraction still gets a ratio of exactly log2(1/1) = 0, which is indistinguishable from a genuinely mid-replicating bin, so replication-timing domains are called on the covered copy while the unfiltered track keeps every bin. | integer | 1 | ||
skip_repliseq_domains | Skip calling domains of constant replication timing from the Repli-seq ratio track. | boolean | false | ||
repliseq_domain_track | Which Repli-seq ratio track to segment into replication-timing domains. The default both segments the raw and the smoothed track, so the effect of smoothing on the domain boundaries is visible; every domain output is then written twice, distinguished by .raw. or .smooth. in its name. Set smooth or raw to segment only one. (accepted: smooth|raw|both) | string | both | ||
repliseq_domain_classification | How to call each replication-timing domain. binary calls every domain early or late from the sign of its segment mean; three_way additionally calls domains whose mean sits within --repliseq_domain_threshold of zero as intermediate, i.e. replicating throughout S phase. (accepted: three_way|binary) | string | three_way | ||
repliseq_domain_threshold | Half-width of the intermediate band around a segment mean of zero, in log2 ratio units. Only used with --repliseq_domain_classification three_way. | number | 0.1 | ||
repliseq_domain_alpha | Significance level for accepting a change point in DNAcopy's circular binary segmentation of the Repli-seq ratio track. | number | 0.01 | ||
repliseq_domain_min_width | Smallest number of bins a replication-timing domain may contain. DNAcopy's segment() accepts 2 to 5. (accepted: 2|3|4|5) | integer | 2 | ||
repliseq_domain_undo_sd | Merge adjacent replication-timing domains whose segment means differ by fewer than this many standard deviations. Zero or less turns the merging off. | number | 1 | ||
repliseq_domain_smooth_outliers | Run DNAcopy's smooth.CNA() before segmenting, which pulls single-bin outliers towards their neighbours so that one noisy bin does not become its own domain. | boolean | True | ||
repliseq_domain_seed | Random seed for replication-timing domain calling. DNAcopy locates change points with a permutation test, so without a fixed seed the same track segments slightly differently on every run. | integer | 1 | ||
skip_repliseq_gene_classification | Skip classifying genes by the S-phase fraction with the highest read density over their gene body. | boolean | false | ||
repliseq_min_gene_reads | Fewest reads a gene needs summed over every S-phase fraction before it is classified. Genes below it are reported as unclassified, because with only a handful of reads the fraction with the highest density is decided by sampling noise. | integer | 20 | ||
repliseq_gene_min_margin | Fewest CPM by which the winning S-phase fraction must exceed the runner-up for a gene to be classified. Zero accepts any winner. | number | 0 | ||
repliseq_skip_gene_plots | Skip the diagnostic plots of the Repli-seq gene classification. The classification table and BEDs are still written. | boolean | false | ||
save_repliseq_intermeds | Whether to save the intermediate files from the Repli-seq RT-track analysis step (raw counts tables and raw, unsmoothed bedGraph tracks). | boolean | false |
High-resolution Repli-seq analysis options
Options to adjust high-resolution (16-fraction) Repli-seq analysis.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
hr_repliseq_bin_size | Bin size (in bp) used by deepTools multiBamSummary when counting reads per window for high-resolution Repli-seq. 50 kb is the usual resolution: a 30 min BrdU pulse at a fork speed of 1.8 kb/min labels at least 50 kb per fork. | integer | 50000 | ||
hr_repliseq_normalization | How each S phase fraction is normalized before the Repli-seq array is built. g1_filter drops the bins a G1 whole-genome control does not cover, the mappability correction, and keeps the fractions as reads per million. g1_ratio additionally replaces each fraction with log2 of its ratio to the control, floored at zero: a stricter correction, but because every fraction and the control share the same mean the floor zeroes about half of each fraction, and on H1 it collapses the initiation-zone calls from ~2950 to 9, so it should not be used to call features. rpm corrects for sequencing depth only. auto uses g1_filter when a G1 fraction is present in the samplesheet and rpm otherwise. (accepted: auto|none|rpm|g1_filter|g1_ratio) | string | auto | ||
hr_repliseq_g1_label | Value of the rt_fraction samplesheet column that marks the G1 whole-genome-sequencing control. | string | G1 | True | |
hr_repliseq_g1_min_rpm | Bins whose G1 control coverage is at or below this many reads per million are dropped, since their ratio to the control is undefined. | number | 0 | ||
hr_repliseq_exclude_chromosomes | Comma-separated sequences to drop before building the array, matched by name. The default removes the sex chromosomes, whose copy number differs from the autosomes, and the mitochondrial genome, which does not replicate on the nuclear schedule. Set to an empty string to keep every sequence. | string | chrX,chrY,chrM | ||
hr_repliseq_chromosomes | Comma-separated list of sequences to restrict the array to (e.g. chr1,chr2,chr3), which also sets the order of the output. Leave unset to use every sequence that survives the scaffold and sex-chromosome filtering. | string | |||
hr_repliseq_birch_threshold | BIRCH clustering threshold used to group bins into replication features. Lower values split the array into more, smaller clusters. | number | 0.5 | ||
hr_repliseq_birch_n_clusters | Number of BIRCH clusters to reduce the subclusters to. Leave unset to keep the subclusters themselves. | integer | True | ||
hr_repliseq_termination_max_size | Valleys in the replication-timing profile up to this size (in bp) are called termination sites; larger ones are called late constant-timing regions. | integer | 100000 | ||
hr_repliseq_partition_priority | Order in which overlapping feature calls are resolved into the partition, in which every analysed bin belongs to exactly one feature. Later entries win, so the last one listed takes precedence. | string | TTR,breakage,CTR,termination,IZ | ||
hr_repliseq_plot_chromosomes | Comma-separated list of chromosomes to draw a Repli-seq heatmap page for. Leave unset to draw every chromosome in the array. | string | |||
hr_repliseq_mqc_chromosome | Chromosome whose Repli-seq heatmap is shown in the MultiQC report. Defaults to the first one drawn. | string | |||
hr_repliseq_s_phase_hours | Assumed length of S phase in hours. A timing transition region is traversed by a single fork, so its length divided by the stretch of S phase it spans gives that fork's speed; this sets how long that stretch is in minutes. The method's paper assumes 10 h, the longest of the five cell lines it profiles, and reports a median of 1.7-2.0 kb/min. | number | 10 | ||
hr_repliseq_example_pages | How many pages of example features to add to the plots PDF. Each page draws one randomly chosen instance of every feature shape: the cluster-centroid rank profile with the feature's bins picked out, over the heatmap of the same bins. Set to 0 to leave them out. | integer | 5 | ||
hr_repliseq_example_flank_bins | How many bins to show either side of an example feature. Smaller zooms in on the shape itself, larger gives it more surrounding context. | integer | 4 | ||
hr_repliseq_example_seed | Seed for choosing which feature instances the example pages show, so that a rerun draws the same ones. | integer | 1 | True | |
skip_hr_repliseq_plots | Skip the high-resolution Repli-seq heatmaps and feature summary plots. | boolean |
Institutional config options
Parameters used to describe centralised config profiles. These should not be edited.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
custom_config_version | Git commit id for Institutional configs. | string | master | true | |
custom_config_base | Base directory for Institutional configs. HelpIf you're running offline, Nextflow will not be able to fetch the institutional config files from the internet. If you don't need them, then this is not a problem. If you do need them, you should download the files from the repo and tell Nextflow where to find them with this parameter. | string | https://raw.githubusercontent.com/nf-core/configs/master | true | |
config_profile_name | Institutional config name. | string | true | ||
config_profile_description | Institutional config description. | string | true | ||
config_profile_contact | Institutional config contact information. | string | true | ||
config_profile_url | Institutional config URL link. | string | true |
Generic options
Less common options for the pipeline, typically set in a config file.
| Parameter | Description | Type | Default | Required | Hidden |
|---|---|---|---|---|---|
help | Display help text. | boolean | true | ||
publish_dir_mode | Method used to save pipeline results to output directory. (accepted: symlink|rellink|link|copy|copyNoFollow|move) HelpThe NextflowpublishDir option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See Nextflow docs for details. | string | copy | true | |
fingerprint_bins | Number of genomic bins to use when calculating deepTools fingerprint plot. | integer | 500000 | true | |
email_on_fail | Email address for completion summary, only when pipeline fails. HelpAn email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully. | string | true | ||
plaintext_email | Send plain-text email instead of HTML. | boolean | true | ||
max_multiqc_email_size | File size limit when attaching MultiQC reports to summary emails. | string | 25.MB | true | |
monochrome_logs | Do not use coloured log outputs. | boolean | true | ||
multiqc_config | Custom config file to supply to MultiQC. | string | true | ||
validate_params | Boolean whether to validate parameters against the schema at runtime | boolean | true | true | |
help_full | Display the full detailed help message. | boolean | |||
show_hidden | Display hidden parameters in the help message (only works when --help or --help_full are provided). | boolean | |||
version | Display version and exit. | boolean | true | ||
multiqc_logo | Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file | string | true | ||
multiqc_methods_description | Custom MultiQC yaml file containing HTML including a methods description. | string | |||
pipelines_testdata_base_path | Base URL or local path to location of pipeline test dataset files | string | https://raw.githubusercontent.com/nf-core/test-datasets/ | true | |
crepas_testdata_base_path | Base URL or local path to location of grothlab/crepas-specific test dataset files. | string | true | ||
trace_report_suffix | Suffix to add to the trace report filename. Default is the date and time in the format yyyy-MM-dd_HH-mm-ss. | string | true |
Updating the pipeline
When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline:
nextflow pull grothlab/crepas
Reproducibility
It is a good idea to specify the pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since.
First, go to the grothlab/crepas releases page and find the latest pipeline version - numeric only (eg. 1.3.1). Then specify this when running the pipeline with -r (one hyphen) - eg. -r 1.3.1. Of course, you can switch to another version by changing the number after the -r flag.
- With a release tag from the pipeline's repository:
To further assist in reproducibility, you can use share and reuse parameter files to repeat pipeline runs with the same settings without having to write out a command with every single parameter.
Tip
If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles.
nextflow run grothlab/crepas \
-r a6840348453bebe2cb49384f8522bbfb20d7087b
Note
These options are part of Nextflow and use a single hyphen (pipeline parameters use a double-hyphen)
nextflow run grothlab/crepas \
-r a684034
-
With a git branch from the pipeline's repository:
nextflow run grothlab/crepas \ -r dev
Note
In this last example, the pipeline will run with the latest cached version of the dev branch. Make sure to run nextflow pull grothlab/crepas -r dev before if you want to update the cached version.
The version number you use will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. For example, at the bottom of the MultiQC reports.
Sharing and reusing parameter files (-params-file)
To further assist in reproducibility, you can use share and re-use parameter files to repeat pipeline runs with the same settings without having to write out a command with every single parameter.
Tip
If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles.
Core Nextflow arguments
Note
These options are part of Nextflow and use a single hyphen (pipeline parameters use a double-hyphen).
-profile
Use this parameter to choose a configuration profile. Profiles can give configuration presets for different compute environments.
Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Apptainer, Conda) - see below.
Important
We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported.
The pipeline also dynamically loads configurations from https://github.com/nf-core/configs when it runs, making multiple config profiles for various institutional clusters available at run time. For more information and to check if your system is supported, please see the nf-core/configs documentation.
Note that multiple profiles can be loaded, for example: -profile test,docker - the order of arguments is important!
They are loaded in sequence, so later profiles can overwrite earlier profiles.
If -profile is not specified, the pipeline will run locally and expect all software to be installed and available on the PATH. This is not recommended, since it can lead to different results on different machines dependent on the computer environment.
test- A profile with a complete configuration for automated testing
- Includes links to test data so needs no other parameters
docker- A generic configuration profile to be used with Docker
singularity- A generic configuration profile to be used with Singularity
podman- A generic configuration profile to be used with Podman
shifter- A generic configuration profile to be used with Shifter
charliecloud- A generic configuration profile to be used with Charliecloud
apptainer- A generic configuration profile to be used with Apptainer
wave- A generic configuration profile to enable Wave containers. Use together with one of the above (requires Nextflow
24.03.0-edgeor later).
- A generic configuration profile to enable Wave containers. Use together with one of the above (requires Nextflow
conda- A generic configuration profile to be used with Conda. Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer.
-resume
Specify this when restarting a pipeline. Nextflow will use cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. For input to be considered the same, not only the names must be identical but the files' contents as well. For more info about this parameter, see this blog post.
You can also supply a run name to resume a specific run: -resume [run-name]. Use the nextflow log command to show previous run names.
-c
Specify the path to a specific config file (this is a core Nextflow command). See the nf-core website documentation for more information.
Custom configuration
Resource requests
Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the pipeline steps, if the job exits with any of the error codes specified here it will automatically be resubmitted with higher resources request (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped.
To change the resource requests, please see the max resources and customise process resources section of the nf-core website.
Custom Containers
In some cases, you may wish to change the container or conda environment used by a pipeline steps for a particular tool. By default, nf-core pipelines use containers and software from the biocontainers or bioconda projects. However, in some cases the pipeline specified version maybe out of date.
To use a different container from the default container or conda environment specified in a pipeline, please see the updating tool versions section of the nf-core website.
Custom Tool Arguments
A pipeline might not always support every possible argument or option of a particular tool used in pipeline. Fortunately, nf-core pipelines provide some freedom to users to insert additional parameters that the pipeline does not include by default.
To learn how to provide additional arguments to a particular tool of the pipeline, please see the customising tool arguments section of the nf-core website.
nf-core/configs
In most cases, you will only need to create a custom config as a one-off but if you and others within your organisation are likely to be running nf-core pipelines regularly and need to use the same settings regularly it may be a good idea to request that your custom config file is uploaded to the nf-core/configs git repository. Before you do this please can you test that the config file works with your pipeline of choice using the -c parameter. You can then create a pull request to the nf-core/configs repository with the addition of your config file, associated documentation file (see examples in nf-core/configs/docs), and amending nfcore_custom.config to include your custom profile.
See the main Nextflow documentation for more information about creating your own configuration files.
If you have any questions or issues please send us a message on Slack on the #configs channel.
Running in the background
Nextflow handles job submissions and supervises the running jobs. The Nextflow process must run until the pipeline is finished.
The Nextflow -bg flag launches Nextflow in the background, detached from your terminal so that the workflow does not stop if you log out of your session. The logs are saved to a file.
Alternatively, you can use screen / tmux or similar tool to create a detached session which you can log back into at a later time.
Some HPC setups also allow you to run nextflow within a cluster job submitted your job scheduler (from where it submits more jobs). For example, the nextflow head job can be submitted to SLURM by saving the following script:
#!/bin/bash
#SBATCH --job-name=crepas_job # specify a name for the job
#SBATCH --mail-type=END,FAIL # mail events (NONE, BEGIN, END, FAIL, ALL)
#SBATCH --mail-user=NONE # email address to receive the notifications
#SBATCH -c 1 # number of requested cores for the Nextflow head job
#SBATCH --mem=4gb # total requested RAM for the Nextflow head job
#SBATCH --time=2-00:00:00 # max. running time of the pipeline job, format in D-HH:MM:SS
#SBATCH --output=crepas_job.%j.log # standard output and error log, '%j' gives the job ID
# Create an output directory for the pipeline run if it does not exist
mkdir -p <path_to_output_directory>
cd <path_to_output_directory>
# Run the pipeline
nextflow run grothlab/crepas \
-r main \
-profile test_scarseq \
--outdir <path_to_output_directory>
And then, submitting the job to the queue with:
sbatch crepas_job.sh
Tip
We recommend providing 4 GB of RAM for the Nextflow head job. In the case of an sbatch script, this is specified with the #SBATCH --mem=4gb line. See Optimizing Nextflow for HPC and cloud at scale for more details.
Nextflow memory requirements
In some cases, the Nextflow Java virtual machines can start to request a large amount of memory.
We recommend adding the following line to your environment to limit this (typically in ~/.bashrc or ~./bash_profile):
NXF_OPTS='-Xms1g -Xmx4g'
Examples
Setting the environment
Before analyzing any kind of data, we need to install or load Nextflow and a container runtime, as explained in the Quick start section of the README.
Note
In this case, we will use SBATCH (SLURM) to schedule jobs and modules to load Nextflow, and singularity to run the containerized software in the pipeline. However, these choices may vary depending on your specific computing environment, so should check your local documentation.
First, we create a directory structure for our project:
mkdir ${HOME}/projects/project1
Analyzing OK-seq data
Downloading the data
For this example, we will replicate the initiation zone and fork directionality analyses from the following article:
Petryk, N., Dalby, M., Wenger, A., Stromme, C. B., Strandsby, A., Andersson, R., & Groth, A. (2018). MCM2 promotes symmetric inheritance of modified histones during DNA replication. Science, 361(6409), 1389–1392. https://doi.org/10.1126/science.aau0294
First, we need to download the OK-seq data. We will do so using the nf-core/fetchngs pipeline, which works very well to fetch metadata and raw FastQ files from public databases, including the Gene Expression Omnibus (GEO).
We create a subdirectory for nf-core/fetchngs files:
mkdir -p ${HOME}/projects/project1/fetchngs/
Input IDs file
We then create a CSV file with the SRA IDs of the samples we want to download. In this case, we want the OK-seq data from the Petryk et al. 2018 paper, which is available under accession SRR7535256. Therefore, the file CSV should look like this:
SRR7535256
And we save it as project1.fetchngs.input.csv in the fetchngs subdirectory.
SBATCH script
Now, we will create an SBATCH script to submit the job to the cluster queue. You can use the following template.
#!/bin/bash
#SBATCH --job-name=FETCHNGS # specify a name for the job
#SBATCH --mail-type=END,FAIL # mail events (NONE, BEGIN, END, FAIL, ALL)
#SBATCH --mail-user=NONE # email address to receive the notifications
#SBATCH -c 1 # number of requested cores for the Nextflow head job
#SBATCH --mem=4gb # total requested RAM for the Nextflow head job
#SBATCH --time=2-00:00:00 # max. running time of the pipeline job, format in D-HH:MM:SS
#SBATCH --output=fetchngs_job.%j.log # standard output and error log, '%j' gives the job ID
# Load the required modules
module load java/21.0.7 nextflow/25.10.4 singularity/3.8.7
# Create an output directory for the pipeline's output
mkdir -p ${HOME}/projects/project1/fetchngs/output/
cd ${HOME}/projects/project1/fetchngs/output/
# Run the pipeline
nextflow run nf-core/fetchngs \
-r 1.11.0 \
-profile ku_sund_danhead_mod \
--input ${HOME}/projects/project1/fetchngs/project1.fetchngs.input.csv \
--outdir ${HOME}/projects/project1/fetchngs/output/
Then place the script in your project directory, e.g., as project1.fetchngs.sbatch.sh.
Your folder structure should so far look something like this:
projects/
└── project1/
└── fetchngs/
├── project1.fetchngs.input.csv
└── project1.fetchngs.sbatch.sh
Submitting the job
We can then submit the job to the queue with:
cd ${HOME}/projects/project1/fetchngs/
sbatch project1.fetchngs.sbatch.sh
You can then monitor the job status using squeue or by looking at the fetchngs_job.%j.log file in the fetchngs directory. You can also check the .nextflow.log file in the fetchngs/output/ directory for more detailed logs.
When this job is finished, you should have the raw FastQ file SRX4403092_SRR7535256.fastq.gz downloaded in the fetchngs/output/fastq/ subdirectory.
Running crepas
Now that we have the data, we can run the crepas pipeline to analyze it. We will create another subdirectory for the crepas files:
mkdir -p ${HOME}/projects/project1/crepas/
Input samplesheet CSV
Then, we need to create a samplesheet CSV file for the crepas pipeline. This file should contain information about the samples we want to analyze. For this example, we will create a file called project1.crepas.samplesheet.csv in the crepas subdirectory with the following content:
sample,fastq_1,biological_replicate,exp_type,strandedness
SRR7535256,<PATH>/projects/project1/fetchngs/output/fastq/SRX4403092_SRR7535256.fastq.gz,1,OK-seq,forward
Note
Make sure to replace <PATH> with the actual full path to your project directory.
Parameter YAML file
Next, since the crepas pipeline has many more parameters, we will compile them into a parameter YAML file for easier management. The file should contain:
input: OK_seq_SRR7535256.crepas.samplesheet.csv
outdir: output_mm10_bowtie2
bowtie2_index: /reference_files/GRCm38/bowtie2_2.5.4_index
fasta: /reference_files/GRCm38/GRCm38.primary_assembly.genome.fa.gz
gtf: /reference_files/GRCm38/gencode.vM25.primary_assembly.annotation.gtf.gz
blacklist: /reference_files/GRCm38/GRCm38.ENCODE_ENCFF999QPV.Kundaje.unified_Excludable.bed.gz
aligner: bowtie2
genome: GRCm38
seq_platform: ILLUMINA
read_length: 75
fragment_size: 200
partition_fragment_size: 200
skip_macs3: true
multiqc_title: OK_seq_SRR7535256
trim_full_length: false
trim_minimum_length: 10
trim_maximum_length: 70
trim_nextseq: 0
trim_stringency: 1
trim_error_rate: 0.1
trim_q_cutoff: 20
skip_flT3: true
skip_flTbl: false
save_partition_intermeds: true
skip_plot_profile: true
skip_plot_fingerprint: true
skip_spp: true
Note
You can of course adjust any of these parameters or the other parameters of the pipeline, but in this case, since we want our results to be as similar as possible to those in the original Petryk et al. 2018 paper, we will set them as shown above.
Save this file as project1.crepas.params.yaml in the crepas/ subdirectory.
SBATCH script
Now, we will create an SBATCH script to submit the crepas job to the cluster queue. You can use the following template.
Submitting the job
Analyzing ChIP-seq data
For this example, we will analyze a subset of the ChIP-seq data from the following article:
Flury, V., Reverón-Gómez, N., Alcaraz, N., Stewart-Morgan, K. R., Wenger, A., Klose, R. J., & Groth, A. (2023). Recycling of modified H2A-H2B provides short-term memory of chromatin states. Cell, 186(5), 1050-1065.e19. https://doi.org/10.1016/j.cell.2023.01.007
Downloading the data
Now we need to download the ChIP-seq data. We will do so using the nf-core/fetchngs pipeline, which works very well to fetch metadata and raw FastQ files from public databases.
Running crepas
Relevant parameters
WIP
Analyzing ChOR-seq data
WIP
Analyzing SCAR-seq data
WIP
Analyzing ATAC-seq data
WIP
Analyzing ChIP-exo data
WIP