niekwit/eCLIP
Snakemake workflow for eCLIP and related experiments
Overview
Latest release: None, Last update: 2026-09-25
Share link: https://snakemake.github.io/snakemake-workflow-catalog?wf=niekwit/eCLIP
Quality control: linting: failed formatting: passed
Deployment
Step 1: Install Snakemake and Snakedeploy
Snakemake and Snakedeploy are best installed via the Conda package manager. It is recommended to install conda via Miniforge. Run
conda create -c conda-forge -c bioconda -c nodefaults --name snakemake snakemake snakedeploy
to install both Snakemake and Snakedeploy in an isolated environment. For all following commands ensure that this environment is activated via
conda activate snakemake
For other installation methods, refer to the Snakemake and Snakedeploy documentation.
Step 2: Deploy workflow
With Snakemake and Snakedeploy installed, the workflow can be deployed as follows. First, create an appropriate project working directory on your system and enter it:
mkdir -p path/to/project-workdir
cd path/to/project-workdir
In all following steps, we will assume that you are inside of that directory. Then run
snakedeploy deploy-workflow https://github.com/niekwit/eCLIP . --tag None
Snakedeploy will create two folders, workflow and config. The former contains the deployment of the chosen workflow as a Snakemake module, the latter contains configuration files which will be modified in the next step in order to configure the workflow to your needs.
Step 3: Configure workflow
To configure the workflow, adapt config/config.yml to your needs following the instructions below.
Step 4: Run workflow
The deployment method is controlled using the --software-deployment-method (short --sdm) argument.
To run the workflow with automatic deployment of all required software via conda/mamba, use
snakemake --cores all --sdm conda
Snakemake will automatically detect the main Snakefile in the workflow subfolder and execute the workflow module that has been defined by the deployment in step 2.
For further options such as cluster and cloud execution, see the docs.
Step 5: Generate report
After finalizing your data analysis, you can automatically generate an interactive visual HTML report for inspection of results together with parameters and code inside of the browser using
snakemake --report report.zip
Configuration
The following section is imported from the workflow’s config/README.md.
Samples.csv
Use this file to describe all libraries (IP/eCLIP libraries and size-matched input (SMInput) libraries), one library per row.
sample: sample name that matches the read file name(s) in reads/ without extension (see below). Only alphanumeric characters and underscores are allowed. IP sample names must end with _ followed by the replicate number (e.g. RBFOX2_1, RBFOX2_2). The part before this replicate number is the condition; replicates of the same condition are compared by IDR.
control: name of the size-matched input library (which has its own row) that is used for input normalisation of this IP sample. Leave empty for the size-matched input libraries themselves. Replicates can share the same input.
adapter: (single-end only, optional) 3’ adapter set that was used for the library: InvRil19 (default, or set by cutadapt: se_adapter in config.yaml), or InvRNA1 to InvRNA8.
barcode_a, barcode_b: (paired-end only, required) ID of the inline barcode of the two barcodes that were ligated to the library: A01, B06, C01, D8f, A03, G07, A04, F05 or NIL for libraries without barcode (size-matched input).
Read files
Single-end reads (auto-detected):
reads/{sample}.fastq.gz
Paired-end reads (auto-detected):
reads/{sample}_R1_001.fastq.gz
reads/{sample}_R2_001.fastq.gz
Examples
Single-end:
sample |
control |
adapter |
|---|---|---|
RBFOX2_1 |
RBFOX2_input_1 |
InvRil19 |
RBFOX2_2 |
RBFOX2_input_2 |
InvRil19 |
RBFOX2_input_1 |
InvRil19 |
|
RBFOX2_input_2 |
InvRil19 |
Paired-end (each IP library carries two inline barcodes, the size-matched input none):
sample |
control |
barcode_a |
barcode_b |
|---|---|---|---|
RBFOX2_1 |
RBFOX2_input_1 |
A01 |
B06 |
RBFOX2_2 |
RBFOX2_input_1 |
C01 |
D8f |
RBFOX2_input_1 |
NIL |
NIL |
config.yaml
All settings have the ENCODE eCLIP pipeline (eCLIP-seq Processing Pipeline v2.2) values as default. Use Python style booleans (True/False).
Workflow parameters
The following table is automatically parsed from the workflow’s config.schema.y(a)ml file.
Parameter |
Type |
Description |
Required |
Default |
|---|---|---|---|---|
genome |
string |
Genome (GENCODE) |
yes |
|
umi |
yes |
|||
. se_length |
integer |
UMI length of single-end eCLIP |
yes |
|
. pe_length |
integer |
UMI length of paired-end eCLIP |
yes |
|
cutadapt |
yes |
|||
. se_adapter |
string |
yes |
||
. error_rate |
number |
yes |
||
. quality_cutoff |
integer |
yes |
||
. min_length |
integer |
yes |
||
star |
yes |
|||
. repeats_extra |
string |
yes |
||
. genome_extra |
string |
yes |
||
umi_tools |
yes |
|||
. dedup_stats |
boolean |
yes |
||
clipper |
yes |
|||
. extra |
string |
yes |
||
peaks |
yes |
|||
. l10p |
number |
-log10(p-value) cutoff |
yes |
|
. l2fc |
number |
log2 fold change cutoff |
yes |
|
resources |
yes |
|||
. trim |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. fastqc |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. star_index |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. mapping |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. samtools |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. umi_tools |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. bigwig |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. clipper |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. peaks |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
||
. idr |
yes |
|||
. . cpu |
integer |
yes |
||
. . time |
integer |
yes |
Linting and formatting
Linting results
1/home/runner/work/snakemake-workflow-catalog/snakemake-workflow-catalog/.pixi/envs/default/lib/python3.13/site-packages/google/auth/transport/grpc.py:43: FutureWarning: grpcio < 1.83.0 does not support Post-Quantum Cryptography (PQC). Support for non-PQC environments is deprecated. In April 2027, google-auth will raise its minimum requirements to enforce grpcio >= 1.83.0. For more details on Google Cloud's post-quantum security migration, visit: https://cloud.google.com/security/resources/post-quantum-cryptography
2 warnings.warn(
3No validator found for JSON Schema version identifier 'http://json-schema.org/draft-06/schema#'
4Defaulting to validator for JSON Schema version 'https://json-schema.org/draft/2020-12/schema'
5Note that schema file may not be validated correctly.
6No validator found for JSON Schema version identifier 'http://json-schema.org/draft-06/schema#'
7Defaulting to validator for JSON Schema version 'https://json-schema.org/draft/2020-12/schema'
8Note that schema file may not be validated correctly.
9ValueError in file "/tmp/tmpolkzb5jv/workflow/scripts/general_functions.smk", line 49:
10No read files found for sample RBFOX2_1, expected reads/RBFOX2_1.fastq.gz (single-end) or reads/RBFOX2_1_R1_001.fastq.gz and reads/RBFOX2_1_R2_001.fastq.gz (paired-end)
11 File "/tmp/tmpolkzb5jv/workflow/Snakefile", line 32, in <module>
12 File "/tmp/tmpolkzb5jv/workflow/scripts/general_functions.smk", line 49, in paired_end
Formatting results
All tests passed!