Methylation Pattern-based, Reference-free Inference of Subclonal Makeup. (v1.0.1)
- BAM file of RRBS reads, aligned by Bismark.
PRISM requires the mapping result of Bismark, a bisulfite read mapping tool. Also note that PRISM only applies to RRBS data, and unfortunately, the feasibility of PRISM to the data from other methylation profiling techniques such as whole genome bisulfite sequencing (WGBS), methylated DNA immunoprecipitation sequencing (MeDIP-Seq), or methyl-CpG binding domain-based capture sequencing (MBDCap-Seq) has not been verified.
PRISM can be installed via PyPI.
pip install subclone-prism
Simple quick-start usage can be found below. If your are interested, please refer to the full documentation.
The PRISM analysis is done in three steps: extract
- preprocess
- deconvolute
.
# Extract epiloci from BAM file.
prism extract -i sample.bam -o sample.met
# Preprocess epiloci to get finer estimates of epigenetic subclones
# and to increase the number of fingerprint epiloci.
prism preprocess -i sample.met -o sample.corrected.met
# Infer the subclonal composition of the sample.
# 1-sample deconvolution.
prism deconvolute -i sample.corrected.met -o sample.prism.result
# 2-sample deconvolution.
prism deconvolute -i sample1.corrected.met sample2.corrected.met -o sample.prism.result
# Scatterplot for visualization of the result.
prism scatter -i sample.prism.result -o sample.png
# Annotation of fingerprint epiloci for functional characterization of
# discovered epigenetic subclones.
prism annotate -i sample.prism.result -o sample.prism.annotated.result \
--beds annotation_a.bed annotation_b.bed \
--annotation-names ANNOTATION-A ANNOTATION-B
prism extract
command extracts viable epiloci from a BAM file.
In other words, it extracts genomic regions harboring a sufficient number of mapped reads (>= d) with a sufficient number of CpGs (>= c).
A resulting file with those epiloci information is generated, whose file extension will be .met
afterwards.
To extract epiloci with default settings (d = 20, c = 4), simply run the command below:
prism extract -i sample.bam -o sample.met
If you want to specify your own cutoffs for the required sequencing depth and the number of CpGs, say, d = 15 and c = 3, run as follows:
prism extract -i sample.bam -o sample.met -d 15 -c 3
Note that depending on the reference genome used, you may have to specify -u/--prepend-chr
option.
Also, you should use -x/--paired
option to inform PRISM that you are using paired-end sequencing data.
For a more detailed description about all options, run prism extract -h
.
prism preprocess
command corrects for the errors in methylation patterns in order to amplify the number of fingerprint epiloci and calibrate for the subclone size estimates.
prism preprocess -i sample.met -o sample.corrected.met
You may benefit from multithreading with -t/--threads
option.
prism preprocess -i sample.met -o sample.corrected.met -t 30
This step is resource intensive, so by default PRISM tries to pre-filter the epilocus that is not likely to be a fingerprint epilocus.
This pre-filtering of course can be turned off by -f/--no-prefilter
option and this indeed gives a better estimates of subclones.
However, please be warned, depending on your data size, this step will last long.
To help you deciding whether or not to apply prefiltering, with 30 threads (-t 30
) ~200M met file took about 5 hours to be preprocessed without prefiltering.
prism preprocess -i sample.met -o sample.corrected.met --no-prefilter -t 30
For a more detailed description about all options, run prism preprocess -h
.
prism deconvolute
command infers the subclonal composition of the sample. Simply give methylation pattern-corrected epiloci file.
prism deconvolute -i sample.corrected.met -o sample.prism.result
Another feature of PRISM is that it can utilize two or more samples from a single tumor at the same time, and jointly infer subclonal composition. To provoke joint-analysis, specify a list of corrected.met
files.
prism deconvolute -i sample1.corrected.met sample2.corrected.met -o sample.prism.result
For a more detailed description about all options, run prism deconvolute -h
.
prism scatter
command generates a scatterplot of the PRISM analysis result.
You need a result of prism deconvolute
.
The dimension of anlaysis (i.e., the number of samples you gave to prism deconvolute
command) should not be more than three to visualize it.
Note that the file extension of output file should be a general one for image files such as png, jpg, or pdf.
prism scatter -i sample.prism.result -o sample.png
prism annotate
command does functional annotation of the PRISM analysis result.
It requires collections of genomic intervals as BED files. Give one or more BED file to prism annotate
, with representative annotation term for each BED file.
Basically it generates annotated result, with an additional column having comma-separated terms that the epiloci is annotated to.
prism annotate -i sample.prism.result -o sample.prism.annotated.result --beds annotation_a.bed annotation_b.bed --annotation-names ANNOTATION-A ANNOTATION-B
To extract epiloci with specific annotation term, use the command below.
cat sample.prism.annotated.result | grep 'ANNOTATION-A'
Also, scatterplots with annotation can be generated with --figure
option.
prism annotate -i sample.prism.reslt -o sample.prism.annotated.result --beds annotation_a.bed annotation_b.bed --annotation-names ANNOTATION-A ANNOTATION-B --figure sample.prism.annotated.png