A Snakemake workflow that generates in-silico mixtures and runs cfClone.
This pipeline requires that conda and Snakemake be installed; the Bioconda package channel must also be configured.
Dependencies
Environment
- Ensure that you have a working
condainstallation, you can do this by installing Miniforge. - Configure the Bioconda channel and set strict channel priority:
conda config --add channels bioconda conda config --add channels conda-forge conda config --set channel_priority strict - Install Snakemake:
conda create -c conda-forge -c bioconda --name snakemake snakemake'>=9.12'
Workflow
- Create a working directory for the workflow:
mkdir -p path/to/project-workdir cd path/to/project-workdir - Clone the workflow repository through git:
git clone --depth 1 https://github.com/Roth-Lab/cfclone-inf-pool-power-calc-smk.git
Configuration
For a full description of all available pipeline options, please refer to the pipeline schema. Modify the configuration file, config.yaml to suit your dataset.
Run Workflow
- Navigate to the project directory and activate the snakemake environment:
cd path/to/project-workdir/cfclone-bams-mix-smk conda activate snakemake - Run a dry-run of the pipeline to confirm the ruleset and outputs are as you expect:
snakemake --cores <number-of-CPU-cores-to-use> --configfile <path/to/config-file> -n - Run the pipeline:
snakemake --cores <number-of-CPU-cores-to-use> --configfile <path/to/config-file>
The main outputs of the pipeline are posterior distributions on tumour fraction and clone prevalences. More on the contents of these output files can be found in the cfClone repository.
Example workflow output folder structure:
<out-dir>
├── cfclone
│ └── coverage_0
│ └── tc_0
│ └── data_seed_0
│ └── out_dir
│ ├── config.yaml
│ ├── evidence.tsv
│ ├── prevalence.tsv
│ ├── summary.tsv
│ ├── tumour_content.tsv
│ └── restart_0
│ ├── tables
│ │ ├── ancestral_prevalence.tsv.gz
│ │ ├── evidence.tsv
│ │ ├── pairwise_ranks.tsv
│ │ ├── summary.tsv
│ │ └── tumour_content.tsv
│ └── trees
│ └── prevalence_tree.json
├── config.yaml
├── prevs_summary.tsv
└── summary.tsv