Copy-number Aware Methylation Deconvolution Analysis of Cancer (CAMDAC) is an R library for deconvolving bulk tumor DNA methylation (bisulfite) sequencing data (Larose Cadieux et al., 2022, bioRxiv).

Installation : Dockerhub

A CAMDAC container is available on dockerhub for use with Docker, Singularity or Apptainer:

docker pull nmensah5/camdac:latest
echo "library(CAMDAC)" > commands.R
docker run -v $(pwd):/app nmensah5/camdac:latest Rscript /app/commands.R

Installation : Github

You can install CAMDAC and its dependencies from an R console:

install.packages("remotes")
remotes::install_github("VanLoo-lab/CAMDAC")

Quickstart

We provide pre-built reference datasets for hg38 and hg19. These files are required to run CAMDAC for either RRBS or WGBS analysis from the Zenodo repository: (10565423). An R getter function is provided for convenience:

CAMDAC::download_pipeline_files(bsseq = "rrbs", directory = "./refs")
CAMDAC::download_pipeline_files(bsseq = "wgbs", directory = "./refs")

For WGBS analysis, CAMDAC requires the java command line utility to be available in the system PATH.

With reference files downloaded, run the tumor-normal deconvolution pipeline with test data:

[!NOTE]
We provide downsampled BAM files for testing the pipeline. For representative results, please use your own BAM files.

library(CAMDAC)

tumor_bam <- system.file("testdata", "tumor.bam", package = "CAMDAC")
normal_bam <- system.file("testdata", "normal.bam", package = "CAMDAC")

# Select samples for basic tumor-normal analysis
tumor <- CamSample(id = "T", sex = "XY", bam = tumor_bam)
normal <- CamSample(id = "N", sex = "XY", bam = normal_bam)

# Configure pipeline
config <- CamConfig(
  outdir = "./results", bsseq = "rrbs", lib = "pe",
  build = "hg38", refs = "./refs", n_cores = 1, cna_caller='ascat'
)

# Run CAMDAC
CAMDAC::pipeline(
  tumor, germline = normal, infiltrates = normal, origin = normal, config
)

For a more detailed walkthrough with test data, see vignette("pipeline").

Contributing

To contribute to CAMDAC, fork the repository and install the development dependencies with remotes::install_dev_deps('.').

After making your changes, run the build and test commands listed in vignette("contributing").

Finally, submit a pull request with the changes on your fork.