1.We present an R package, GGTREE, which provides programmable visualization and annotation of phyloge- netic trees. 2. GGTREE can read more tree file formats than other softwares, including newick, nexus, NHX, phylip and jplace formats, and support visualization of phylo, multiphylo, phylo4, phylo4d, obkdata and phyloseq tree objects defined in other R packages. It can also extract the tree/branch/node-specific and other data from the analysis outputs of BEAST, EPA, HYPHY, PAML, PHYLODOG, PPLACER, R8S, RAXML and REVBAYES software, and allows using these data to annotate the tree. 3. The package allows colouring and annotation of a tree by numerical/categorical node attributes, manipulat- ing a tree by rotating, collapsing and zooming out clades, highlighting user selected clades or operational taxo- nomic units and exploration of a large tree by zooming into a selected portion. 4. A two-dimensional tree can be drawn by scaling the tree width based on an attribute of the nodes. A tree can be annotated with an associated numerical matrix (as a heat map), multiple sequence alignment, subplots or silhouette images. 5. The package GGTREE is released under the ARTISTIC-2.0 LICENSE. The source code and documents are freely available through BIOCONDUCTOR (http://www.bioconductor.org/packages/ggtree).