Learn R Programming

ClonEvol

Inferring and visualizing clonal evolution in multi-sample cancer sequencing.

  • ClonEvol is published in Annals of Oncology
  • A vignette on how to perform clonal evolution analysis (primarily via using ClonEvol) is now available (PDF).
  • There has been major overhaul of code and features, including sphere of cells, annotated branch-based clonal evolution tree visualizations. Make sure you are running the latest version of ClonEvol when following the vignette.
  • Also join clonEvol mailing list for update annoucements.
  • Have a question, found a bug, please create an issue here.

The following figure demonstrates the reanalysis of a relapse acute myeloid leukemia case (AML1) published in Ding et al., Nature (2012). Top panel shows the original published fishplot, and the bottom panel shows the model inferred and visualized by ClonEvol.

Fig. 1. ClonEvol reanalysis of AML1 (a) Original model, represented by a fishplot (b-f) Matching model predicted and visualized by ClonEvol.

How to install and use ClonEvol?

A tutorial is available (PDF).

The following are some of the publications that have utilized ClonEvol to study clonal evolution, which may also be useful:

  • Dong, Weilai, et al. "Clonal Evolution Analysis of Paired Anaplastic and Well‐Differentiated Thyroid Carcinomas Reveals Shared Common Ancestor." Genes, Chromosomes and Cancer (2018).
  • Jung, S. H., Kim, S. Y., An, C. H., Lee, S. H., Jung, E. S., Park, H. C., ... & Lee, S. H. (2018). Clonal structures of regionally synchronous gastric adenomas and carcinomas. Clinical Cancer Research, clincanres-0345.
  • Miller, C. A., Dahiya, S., Li, T., Fulton, R., Smyth, M. D., Dunn, G. P., ... & Mardis, E. R. (2018). Resistance promoting effects of ependymoma treatment revealed through genomic analysis of multiple recurrences in a single patient. Molecular Case Studies, mcs-a002444.
  • Joung, Je-Gun, et al. "Tumor heterogeneity predicts metastatic potential in colorectal cancer." Clinical Cancer Research (2017): clincanres-0306.
  • Uy, Geoffrey L., et al. "Dynamic changes in the clonal structure of MDS and AML in response to epigenetic therapy." Leukemia 31.4 (2017): 872.
  • Mahlokozera, Tatenda, et al. "Biological and therapeutic implications of multisector sequencing in newly diagnosed glioblastomas." Neuro-oncology (2017).
  • Xiong, Donghai, et al. "Novel mutational landscapes and expression signatures of lung squamous cell carcinoma." Oncotarget 9.7 (2017): 7424-7441.
  • Hoadley, Katherine A., et al. "Tumor evolution in two patients with basal-like breast cancer: a retrospective genomics study of multiple metastases." PLoS medicine 13.12 (2016): e1002174.
  • Miller, Christopher A., et al. "Aromatase inhibition remodels the clonal architecture of estrogen-receptor-positive breast cancers." Nature communications 7 (2016): 12498.
  • Griffith, Malachi, et al. "Optimizing cancer genome sequencing and analysis." Cell systems 1.3 (2015): 210-223.

How to cite ClonEvol?

Dang, H. X., White, B. S., Foltz, S. M., Miller, C. A., Luo, J., Fields, R. C., & Maher, C. A. (2017). ClonEvol: clonal ordering and visualization in cancer sequencing. Annals of Oncology, 28(12), 3076-3082.

Contact

Ha X. Dang @ haxdang (at) gmail (dot) com

Copy Link

Version

Version

0.99.11

License

GPL-3 | file LICENSE

Maintainer

Ha X. Dang

Last Published

November 9th, 2019

Functions in clonevol (0.99.11)

compare.clone.trees.removing.leaves

Compare two merged clonal evolution trees
generate.boot.nonparametric

Generate and calculate bootstrap means for all clusters Depricated!
get.model.max.p.value

Get the highest p.value of the test of Ho:ccf<0 This is the 2nd strategy to score a model
get.model.non.negative.ccf.prob

Get probability of a model for a sample as the product of individual prob that ccf of a clone is non-negative This is a the 1st strategy to score a model
merge.all.matched.clone.trees

Recreate merged trees for matched models, given output of infer.clonal.models
clone.vaf.diff

Test if two clones have different VAFs Deprecated!
merge.clone.trees

Merge clonnal evolution trees from multiple samples into a single tree
rescale.vaf

Rescale VAF of subclones for visualzation purpose
save.clonevol.results

Save clonevol output to file
compare.clone.trees

Compare two clonal evolution trees
convert.consensus.tree.clone.to.branch

Create trees for all merged.trees in clonevol output
determine.subclone

Determine which clones are subclone in a single sample, also determine what clones are possible founder clones of the samples
draw.branch

Draw tree branch using polygon that allows for choosing border style and fill
generateFishplotInputs

Generate fishplot ready data from clonevol clonal evolution models
germinate

Germinate a seed.
createFishPlotObjects

Create a list of fishplot objects that can then be called
estimate.ccf

Calculate CI of CCF, pvals, etc.
assign.events.to.clones.of.a.tree

Assign events to clones based on presence/absence of them across samples
boot.vaf.ci

Calculate CI for a cluster in a sample
get.subclones.across.samples

Get all set of subclones for all clone across samples together with p value
draw.sample.clones.all

Draw all enumerated clonal models for a single sample
import.tree

Import trees to clonevol
plot.cloud.of.cells

Plot a cloud of cells
plot.cluster.flow

Plot the mean/median of the clusters of variants across samples
enumerate.clones

Enumerate all possible clonal structures for a single sample, employing the subclonal test
assign.events.to.clones

Wrapper to assign events to clones in all merged trees This function calls assign.events.to.clones.of.a.tree on each merged tree in list x$matched$merged.trees
adjust.clone.vaf

Adjust clone VAF according to significant different test result If two clones have close VAF, adjust the smaller VAF to the bigger TODO: this test does not work yet, has to think more carefully about what test to use, as well as test involving multiple samples
generate.cloud.of.cells

Generate a cloud of circles to represent cell population
infer.clonal.models

Infer clonal structures and evolution models for multiple samples
cutBigValue

Replace values bigger than a cutoff by a value
generate.fill.points

Generate fill points for bell/polygon plots
cross.rule.score

Apply cross rule to all clones in all matched models using p-value combination
plot.tree

Plot clonal evolution tree
estimate.clone.vaf

Estimate VAFs of clones/clusters from clonality analysis result
plot.tree.clone.as.branch

Plot a consensus tree using branch-based visualization
get.cell.frac.ci

Get cellular fraction confidence interval
get.clonevol.colors

Get the hex string of the preset colors optimized for plotting both polygon plots and mutation scatter plots, etc. #b3b3b3', #999999', #bf812d', #aaaa55', #c51b7d', #ef6548', #33a02c', '#3f007d', '#1f78b4', #ffcc00', #fca27e', '#fb8072',
extract.mapped.events

Produce a data frame of events mapped to clone and associated genes
is.ancestor

Check if clone a is ancestor of clone b in the clonal evolution tree
insert.lf

Insert line feed
make.clonal.data.frame

Create a data frame to hold clonal structure of a single sample
merge.samples

Merge multi region samples into a meta sample
match.sample.clones

Check if two clonal structures are compatible (one evolves to the other)
find.matched.models

Find matched models between samples infer clonal evolution models, given all evolve from the 1st sample
make.graph

Construct igraph object from clonal structures of a sample
plot.cell.population

Plot a tumor as a cloud of cells reflecting the cellular frequencies
plot.all.trees.clone.as.branch

Plot all branch-based consensus clonal evolution trees
scale.cell.frac

Scale cellular fraction in a clonal architecture model
scale.sample.position

Prepare x positions to layout samples in bell plots
merge.variants.and.events

Merge variants and mapped events onto the same data frame that is more convenient for plotting fancy boxplot of variants with driver events highlighted
plot.clonal.models

Visualize clonal evolution models using various plots.
transfer.events.to.consensus.trees

Transfer driver variants/events from the cluster onto the clonal evolution trees, so the trees can be plot with events on branch
plot.clonevol.colors

Plot ClonEvol colors
plot.pairwise

Plot values of columns pairwise
trim.clone.trees

Reduce clone trees to core trees after excluding clones that are present in only a single sample
plot.variant.clusters

Plot variant clustering using combination of box, violin, and jitter plots
plot.plant

Plot method for plant objects.
subclonal.test

Subclonal test of H0:
set.position

Set vertical position of clones within a sample clonal polygon visualization
replaceNA

Replace NA with some value
write.tree

Write clonal evolution tree to file TODO: do!
convert.clone.to.branch

Create a tree from the merged.tree data.frame in clonevol output
draw.clone

Draw a bell/polygon representing a clone evolution, annotated with cluster label and cellular fraction
draw.sample.clones

Draw clonal structures/evolution of a single sample
generate.boot

Generate and calculate bootstrap means for all clusters