Hello all,

I have a question about how to pass cnvkit's output to pureCN to account for the tumor cellularity,

According to https://bioconductor.org/packages/release/bioc/vignettes/PureCN/inst/doc/Quick.pdf, Page 6

I first do:

    Rscript $PURECN/NormalDB.R --outdir $OUT_REF --normal_panel $NORMAL_PANEL \
    --assay agilent_v6 --genome hg19 --force

When I run this, I am asked for --coveragefiles. Can I provide a file from cnvkit for this? 

Secondly:

    > cnvkit.py export seg $OUT/$SAMPLEID/${SAMPLEID}_cnvkit.cns
    > --enumerate-chroms \
    > -o $OUT/$SAMPLEID/${SAMPLEID}_cnvkit.seg

And finally:

    > Rscript $PURECN/PureCN.R --out $OUT/$SAMPLEID \
    > --sampleid $SAMPLEID \
    > --tumor $OUT/$SAMPLEID/${SAMPLEID}_cnvkit.cnr \
    > --segfile $OUT/$SAMPLEID/${SAMPLEID}_cnvkit.seg \
    > --normal_panel $OUT_REF/mapping_bias_agilent_v6_hg19.rds \
    > --vcf ${SAMPLEID}_mutect.vcf \
    > --statsfile ${SAMPLEID}_mutect_stats.txt \
    > --snpblacklist hg19_simpleRepeats.bed \
    > --genome hg19 \
    > --funsegmentation none \
    > --force --postoptimize --seed 123

Here, could someone please advise me on what snpblacklist is and what is being used as --normal_panel?

I tried reading the manuals but I am still confused.

Any suggestions would be appreciated, thanks!


Hi,

if your VCF file contains a matched normal, then --normal_panel is not crucial. Essentially, PureCN assumes that heterozygous SNPs have an expected allelic fraction of 0.5 without copy number events. By providing a pool of normals, PureCN can check all common SNPs for deviation from 0.5 and can adjust or discard poor quality SNPs. When a matched normal is available, PureCN has at least access to a single normal.

Have a look at the FAQ section how to create a panel of normal VCF.  Then there is a NormalDB.R script that can generate the mapping_bias.rds file for you. But again, for test runs, you won't need this.

--snpblacklist can be any BED file. It will simply ignore every variant in the VCF that falls into those regions. Have a look at the main vignette where it downloads the simple_repeats track from UCSC.

And yes, PureCN accepts CNVkit coverage files.

If you use most recent GitHub (which will become new stable next week), you can replace --funsegmentation none with --funsegmentation Hclust. This might undo some over-segmentation when present.

Best,
Markus