Skip to content

Configuration

splicekit reads parameters from two files in your project folder:

  • splicekit.config — a Python file (each line is exec'd) describing the study, sample annotation, genome and analysis parameters. Start from the template or one of the datasets examples.
  • config.yaml — a Snakemake config file describing per-rule compute resources (cores/memory/time). Start from the template config.yaml.

splicekit.config

Core parameters

study_name, default = "descriptive short study name" Descriptive short study name, arbitrary string describing the study.

library_type, default = "paired-end" Either "paired-end" or "single-end".

library_strand, default = "NONE" Possible values:

  • "SECOND_READ_TRANSCRIPTION_STRAND"
  • "FIRST_READ_TRANSCRIPTION_STRAND"
  • "SINGLE_STRAND"
  • "SINGLE_REVERSE"
  • "NONE"

For unstranded data, use "NONE". For paired-end stranded data, the most common value is "SECOND_READ_TRANSCRIPTION_STRAND", meaning the second read of the pair maps in the transcript direction and the first read maps in the reverse direction. For stranded single-end sequencing, "SINGLE_STRAND" means the reads map in the transcript direction, and "SINGLE_REVERSE" means the reads map on the opposite strand of the transcripts.

edgeR_FDR_thr, default = 0.05 FDR threshold used to filter results/results_edgeR_{feature_type}.tab. See Differential splicing (edgeR).

dexseq_scripts, default = "" Path to DEXSeq R scripts, if you want to run splicekit dexseq as an alternative to splicekit edgeR.

Sample annotation parameters

sample_column, default = "sample_id" Which column in samples.tab holds the sample IDs. BAM files are then expected to be named sample_id.bam (see bam_path/bam_column below).

treatment_column, default = "treatment_id" Which column in samples.tab defines treatment (test and control labels).

control_name, default = "DMSO" The text identifying control samples in the treatment column. Non-control samples are compared against these.

separate_column, default = "" Group samples by this column and only compare within a group (empty = don't separate). Useful when, say, samples come from two tissues and you only want within-tissue comparisons: add a tissue column to samples.tab and set separate_column to its name.

group_column, default = "" Only compare a test sample against controls from the same "domain" (e.g. the same sequencing plate).

Genome parameters

species, default = None Genome species, resolved through pybio/Ensembl. Any species pybio knows about, or a custom species you registered with pybio via a FASTA+GTF pair.

genome_version, default = None Ensembl genome version, or your custom genome version. None takes the latest Ensembl release.

bam_path, default = "" Folder where BAM files are stored, expected to contain {sample_id}.bam for every sample. Absolute, or relative to the project folder.

bam_column, default = "bam_file" Alternative to bam_path: the name of a column in samples.tab holding the full BAM path for each sample individually (useful when BAMs live in per-sample subfolders rather than one flat folder). At least one of bam_path or bam_column must resolve to something — splicekit exits with an error otherwise.

scanRBP parameters

scanRBP, default = True Should splicekit run the scanRBP RNA-protein binding analysis as part of splicekit motifs? See Motif & RNA-binding analysis.

protein, default = "K562.TARDBP.0" ID of the protein PWM to scan regulated sequences against. List available IDs with scanRBP search <term>, e.g.:

$ scanRBP search hnRNPA
scan_id           protein  tissue description
HNRNPA1.HepG2.00  HNRNPA1  HepG2  heterogeneous nuclear ribonucleoprotein A1
HNRNPA1.HepG2.01  HNRNPA1  HepG2  heterogeneous nuclear ribonucleoprotein A1
...
HNRNPA1.K562.00   HNRNPA1  K562   heterogeneous nuclear ribonucleoprotein A1

protein_label, default = "tdp43" Short descriptive label for the protein, used in file names and plot titles.

Processing parameters

platform, default = "desktop" "desktop", "cluster" (LSF/bsub) or "SLURM". When running under Snakemake, job submission is instead handled by run_snakemake_local.sh/run_snakemake_slurm.sh and config.yaml.

container, default = "" Empty string assumes all software dependencies are installed on the machine/cluster. Set to "singularity run docker://ghcr.io/bedapub/splicekit:main" to run non-Python steps from the provided container image instead (pybio and scanRBP are installed via pip regardless).

edgeR_memory, default = "16GB" Memory reserved for edgeR cluster jobs (only relevant on "cluster"/"SLURM" platforms; under Snakemake, use config.yaml instead).

Visualization and labeling parameters

short_names, default = [] By default, no names are shortened or replaced in results or plots. Provide a list of triples to replace/shorten long strings:

# example splicekit.config short_names parameter
# replace cell_line_A with A, cell_line_B with B (only on an exact/"complete" match)
short_names = [("cell_line_A", "A", "complete"), ("cell_line_B", "B", "complete")]

Use "partial" instead of "complete" to also replace the string when it occurs inside a larger one (e.g. ...cell_line_A... → ...A...).

config.yaml

config.yaml sizes the Snakemake rules — how many cores, how much memory and how much walltime each step gets, whether running locally or submitting to SLURM.

mapping:
  perform_mapping: True  # should splicekit map FASTQ -> BAM with pybio/STAR? (True/False)
  alignIntronMax: 0      # STAR max intron size; 0 lets STAR derive it from its default window parameters

defaults:
  cores: 1
  mem: 4            # GB
  time: "01:00:00"

map_fastq_single:   { cores: 8, mem: 8, time: "02:00:00" }
map_fastq_paired:   { cores: 8, mem: 8, time: "02:00:00" }
bam_index:          { cores: 8, mem: 2, time: "02:00:00" }
bam_bw:             { cores: 8, mem: 2, time: "02:00:00" }
feature_counts:     { cores: 8, mem: 2, time: "01:00:00" }
edgeR:              { cores: 1, mem: 4, time: "04:00:00" }
edgeR_assemble:     { cores: 1, mem: 16, time: "04:00:00" }
juan:               { cores: 1, mem: 16, time: "01:00:00" }

Any rule without its own section falls back to defaults. Set mapping.perform_mapping: False if you're supplying your own BAM files and don't want splicekit to align FASTQs itself.

After setting up splicekit.config and config.yaml, run the pipeline as described in Quick Start.