cafe自帶的程序,只能單獨標注擴增或者收縮的基因家族數(shù)。手工標注又很麻煩,所以我寫了一個R程序,雖然圖不夠精致,不過基本解決問題。
- cafe_node_filename: cafe自帶程序解析后產(chǎn)生的node文件
- cafe_tree_filename: cafe對應的樹文件,就是fams.txt的第一行
- graph_filename: 生成的樹文件
# 1. packages and external scripts ---------------------------------------- TODO:
suppressWarnings(suppressWarnings(library(treeio)))
suppressWarnings(suppressWarnings(library(ggtree)))
# 2. functions ------------------------------------------------------------ TODO:
# 3. input ---------------------------------------------------------------- TODO:
Args <- commandArgs()
cafe_node_filename <- Args[6]
cafe_tree_filename <- Args[7]
graph_filename <- Args[8]
# 4. variable setting of test module--------------------------------------- TODO:
# 5. process -------------------------------------------------------------- TODO:
data <- read.table(cafe_node_filename, header = T, as.is = T, sep = "\t")
data$sep <- "/"
data$species <- gsub("<[0-9]{1,2}>", "", data$Node, perl = T)
mytree <- read.tree(cafe_tree_filename)
my_p <- ggtree(mytree, size = 1.5)
my_p %<+% data +
geom_tiplab(aes(label=species),size = 8) +
geom_text(aes(label = Contractions), color = "green", nudge_x = -0.2, vjust = -0.4, size = 5) +
geom_text(aes(label = sep), color = "black", nudge_x = -0.45, vjust = -0.4, size = 5) +
geom_text(aes(label = Expansions), color = "red", nudge_x = -0.65, vjust = -0.4, size = 5)
# geom_nodelab() # 如果要查看內(nèi)節(jié)點label,可以用這行
ggsave(graph_filename, width = 12, height = 7)
結(jié)果圖:因為和課題有關(guān),所以就不放物種名了。實際情況是會輸出的

image.png
小bug:不知道為什么,生成的圖有一部分沒有在畫布上。需要用adobe illustrator打開,挪一下位置···