Recent Publications

More Publications

  • ggtree: an R package for visualization and annotation of phylogenetic trees with their covariates and other associated data

    Details PDF Slides Code Project

  • ReactomePA: an R/Bioconductor package for reactome pathway analysis and visualization

    Details PDF Code Project

  • ChIPseeker: an R/Bioconductor package for ChIP peak annotation, comparison and visualization

    Details PDF Code Project

  • DOSE: an R/Bioconductor package for disease ontology semantic and enrichment analysis

    Details PDF Code Project

  • Putative cobalt- and nickel-binding proteins and motifs in Streptococcus pneumoniae

    Details PDF

  • A novel andrographolide derivative AL-1 exerts its cytotoxicity on K562 cells through a ROS-dependent mechanism

    Details PDF

  • LXtoo: an integrated live Linux distribution for the bioinformatics community

    Details PDF

  • clusterProfiler: an R Package for Comparing Biological Themes Among Gene Clusters

    Details PDF Code Project

  • Functional similarity analysis of human virus-encoded miRNAs

    Details PDF

  • A new method for measuring functional similarity of microRNAs

    Details PDF

I have splitted ggtree to 2 packages, treeio and ggtree. Now ggtree is mainly focus on visualization and annotation, while treeio focus on parsing and exporting tree files. Here is a welcome message from treeio that you can convert ggtree output to tree object which can be exported as newick or nexus file if you want.

Thanks to ggplot2, output of ggtree is actually a ggplot object. The ggtree object can be rendered as graph by print method, but internally it is an object that contains data. treeio defines as.phylo and as.treedata to convert ggtree object to phylo or treedata object.

Read more

For GSEA analysis, we are familar with the above figure which shows the running enrichment score. But for most of the software, it lack of visualization method to summarize the whole enrichment result.

In DOSE (and related tools including clusterProfiler, ReactomePA and meshes), we provide enrichMap and cnetplot to summarize GSEA result.

Read more

This is a question from ggtree google group:

Dear ggtree team,

how can I apply a geom_xxx to only one facet panel? For example if i want to get geom_hline(yintersect=1:30) or a geom_text() in the dot panel? I cant see the facet_grid(. ~ var) function call, so I don’t know which subsetting to use. I have already read http://stackoverflow.com/questions/29873155/geom-text-and-facets-not-working

  tr <- rtree(30)
  
  d1 <- data.frame(id=tr$tip.label, val=rnorm(30, sd=3))
  p <- ggtree(tr)
  
  p2 <- facet_plot(p, panel="dot", data=d1, geom=geom_point, aes(x=val), color='firebrick')
  d2 <- data.frame(id=tr$tip.label, value = abs(rnorm(30, mean=100, sd=50)))
  
  p3 <- facet_plot(p2, panel='bar', data=d2, geom=geom_segment, aes(x=0, xend=value, y=y, yend=y), size=3, color='steelblue') + theme_tree2()

Thanks! Andreas

If this can be done, we can create even more comprehensive tree plots.

Read more

PLOTTING TREES + DATA is difficult. @DrKatHolt developed plotTree (R and Python scripts) to visualize associated data with trees, e.g. heatmap, horizontal bar etc.

I reproduced the examples presented in the plotTree repo using ggtree. Source code is freely available in https://github.com/GuangchuangYu/plotTree-ggtree.

Here are the outputs produced by ggtree:

Read more

Coloring edges in ggtree is quite easy, as we can map the color to numerical or categorical values via the aes(color=VAR) syntax. For user’s own data, it is also easy as ggtree provide the %<+% operator to attach user data.

But as it seems not so obviously for ggtree users, see question 1, 2, and 3, I will demonstrate how to color edges using user data here.

Read more

Teaching

I am a teaching instructor for the following courses at University X:

Contact