Git Product home page Git Product logo

Comments (3)

hdng avatar hdng commented on August 23, 2024
  1. The tree, which is not shown here, describes the evolutionary relationship between the clones with each clone annotated with samples where it is present. From your clustering you sent via my email, I can tell that the two clones that are emerged in the relapse are the founding clone 1 and subclone 5. Thus, you'll see in the tree, the founding clone (which you called the ancestor) is annotated with the relapse sample plus any other samples where it is found. In this case, clone 1 is present in only the relapse sample suggesting it is missed by the primary sample (due to intra-tumor heterogeneity).

You should also check if Pyclone CCF is barred by 100% that could hamper clonal fraction estimates. See more here: #4.

  1. Function plot.clonal.models has many parameters to control how the tree is plotted, particularly relevant ones are:

#' @param mtcab.angle: mtcab branch angle in degree
#' @param mtcab.branch.width: mtcab branch width in points
#' @param mtcab.branch.text.size: mtcab branch text size (cex)
#' @param mtcab.node.size=3: mtcab node size
#' @param mtcab.node.label.size: mtcab node label text size
#' @param mtcab.node.text.size: mtcab node annotation text size
#' @param mtcab.event.sep.char: mtcab event separator (used to break down events
#' @param mtcab.show.event: show mapped events on branches

Just play with them until you get some good plot.

  1. Each branch represent the evolution path to a clone and its length is scaled by the number of clonal marker mutations of the clone. Its color is matched with the clone node color. The coloring is consistent throughout all types of plots generated by clonevol.

from clonevol.

jial2 avatar jial2 commented on August 23, 2024

Thanks for the reply.

I am still confused on the tree.

  1. clone1 in primary should be the founding clone, why clone 1 in the relapse was found clone? In primary, there are three clones with about 100% CCF in the cluster plot, i wonder if this is the reason the program doesn't pick clone 1 from primary as founding clone. Another confusion is that cluster 3 in primary shows 100% CCF, but it get to almost 0% in relapse, for this case, the clone 3 is clonal or subclonal?

  2. I didn't plot the tree using plot.clonal.model because it is so crowd if there are more samples. I used plot.all.trees.clone.as.branch to generate the tree only, but I don't see branch.angle to adjust the angles between branches. Could you please point me to the parameter or function to do this?

Thanks

from clonevol.

hdng avatar hdng commented on August 23, 2024

Sorry for late response.

  1. Given that you have an evolution tree as: 1-->2-->3-->4, and with a single sample from primary tumor that only captured cells in clone 4. The result is that cluster 1,2,3,4 all have CCF of variants = 100%, but CCF of clones 1,2,3 = 0 while CCF of clone 4 = 100%. It is important to distinguish CCF of clones from CCF of variants when interpreting clonal evolution models and tumor heterogeneity. Our paper describes how CCF of clone and CCF of cluster of variants are related, see https://academic.oup.com/annonc/article/28/12/3076/4110375. The tree is annotated with clones where CCF of the clone (not the cluster) is non-zero.

  2. You can try to provide/adjust the following parameters to plot.all.trees.clone.as.branch as:

plot.all.trees.clone.as.branch(..., angle=15,branch.width=1, 
        branch.text.size=0.3, node.size=3, node.label.size=0.75,
        node.text.size=0.5)

or even better, I have created a wrapper for better plotting of the trees but haven't documented in the vignette. Given y is output of infer.clonal.models, you can try:

y = convert.consensus.tree.clone.to.branch(y, branch.scale='sqrt')
y = overlayPrunedTrees(y)
plotTreesBellsCells(y, trees.per.page=3, tree.branch.angle=30,
        show.event=T, show.frame=F, tree.branch.width=0.75,
        out.pdf.file='trees-fishes-cells.pdf')

from clonevol.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.