将ifelse功能应用于系统发育扇的颜色提示 [英] Apply ifelse function to colour tips of phylogenetic fan

查看:171
本文介绍了将ifelse功能应用于系统发育扇的颜色提示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一个系统发育的粉丝中,我想通过应用if语句对这些提示(在本例中类似于62种)进行颜色编码。我目前正在使用以下代码,试图为与O暗绿相关的所有物种着色:

In a phylogenetic fan, I would like to colour code the tips (resembling 62 species in this example) by applying an if-statement. I am currently using the following code, in an attempt to colour all species associated with "O" darkgreen:

ColourIf = ifelse(LU != "O", "blue", "darkgreen")

tiff("PhyloFan.tif", height=10, width=10, units="in", res=300, compression="lzw");
plot.phylo(phyloFan,type="fan",show.tip.label=T,cex=0.9,show.node.label=F,
           edge.color="black", adj=0, label.offset=0.75, lwd=2, edge.width=1, 
           tip.color=ColourIf) 
par(oma=c(0,0,0,0))      
dev.off()

目前,有七种颜色为绿色(数字正确)但不是数据表中与O相关的那些。如何修改代码,以便正确的七种物种以绿色显示(即cropoi,dimal,garsoo,holpub,phycol,stegut,steneu)?

At the moment, seven species are coloured green (the number is correct) but not the ones associated with "O" in the data table. How could the code be modified so that the correct seven species are shown in green (i.e. cropoi, diomal, garsoo, holpub, phycol, stegut, steneu)?

这是我生成的当前数字:

This is the current figure that I produce:

许多提前感谢任何建议。

Many thanks in advance for any advice.

这是可重现的数据:dput(LU)

This is the reproducible data: dput(LU)

structure(list(LU = structure(c(1L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 
3L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 3L, 3L, 1L, 3L, 3L, 
3L, 3L, 4L, 1L, 3L, 3L, 4L, 3L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 3L, 
3L, 3L, 3L, 3L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 3L, 
3L, 3L, 1L, 1L, 3L, 3L), .Label = c("H", "L", "na", "O"), class = "factor")), .Names = "LU", class = "data.frame", row.names = c("albleb", 
"albodo", "antgha", "apovil", "artlak", "briret", "buclan", "cansub", 
"carsph", "catspa", "cropoi", "dalcul", "dallan", "dalnig", "daloli", 
"dilobo", "dioehr", "diomal", "dipint", "diptub", "elltom", "erican", 
"erysuc", "flesoo", "garcow", "garobt", "garsoo", "gmearb", "greeri", 
"halcor", "holpub", "irvoli", "lancor", "lopdup", "mancal", "memedu", 
"memscu", "milleu", "mitrot", "morcor", "ochint", "parama", "pavtom", 
"permem", "phycol", "phyemb", "ptemac", "rotwit", "schole", "shoobt", 
"shorox", "shosia", "sinsia", "stegut", "steneu", "strnux", "symrac", 
"syz001", "terala", "tercal", "terche", "xylxyl"))

此newick文件包含phyloFan信息:

This newick file holds the phyloFan information:

(((((((((((((((((((((((((((((shosia:15.089286,shoobt:15.089286,shorox:15.089286)shorea:15.089286,(dipint:15.089286,diptub:15.089286)dipterocarpus:15.089286)dipterocarpaceae:15.089285):15.089287):15.089283,((stegut:25.148809)sterculia:25.148809,(erican:25.148809)eriolaena:25.148809,(greeri:25.148809)grewia:25.148809)malvaceae:25.148808):15.089287):15.089287)malvales:15.089287)malvales_to_brassicales:15.089287)huerteales_to_brassicales:15.089279,(((((((buclan:18.861607)buchanania:18.861607,(lancor:18.861607)lannea:18.861607,(mancal:18.861607)mangifera:18.861607)anacardiaceae:18.861607,((cansub:18.861607)canarium:18.861607)burseraceae:18.861607):18.861607):18.861603,(((schole:23.577007)schleichera:23.577007)sapindaceae:23.577003):23.577011):18.861610):18.861610)sapindales:18.861603):15.089294):15.089279):15.089294,(((((((memedu:24.520090,memscu:24.520090)memecylon:24.520090)melastomataceae:24.520092):24.520088,(((syz001:24.520090)syzygium:24.520090)myrtaceae:24.520092):24.520088):24.520088):24.520096,((terala:49.040180,tercal:49.040180,terche:49.040180)terminalia:49.040180)combretaceae:49.040184)myrtales:24.520081):24.520096)malvids:15.089279,(((((((sinsia:81.250000)sindora:81.250000,(((((((((((erysuc:29.791666)erythrophleum:29.791666)dimorphandra_group:29.791668,((((((((((albleb:8.125000,albodo:8.125000)albizia:8.125000)ingeae:8.125000):8.125000):8.125000):8.125000):8.125000):8.125000):8.125000,((xylxyl:24.375000)xylia:24.375000)adenanthera_group:24.375000):8.125000):8.125000)mimosoids:8.125000):8.125000):8.125000):8.125000):8.125000):8.125000,((((((((((((((((flesoo:8.125000)flemingia:8.125000)cajaninae:8.125000):8.125000):8.125000):8.125000)phaseoloids:8.125000):8.125000):8.125000):8.125000):8.125000):8.125000,((((((((ptemac:10.833333)pterocarpus:10.833333):10.833334):10.833332)pterocarpus_group:10.833336,(((dalcul:13.541667,dallan:13.541667,dalnig:13.541667,daloli:13.541667)dalbergia:13.541667):13.541666)dalbergia_group:13.541668):10.833332)dalbergieae:10.833336):10.833328):10.833336):8.125000):8.125000):8.125000):8.125000)papilionoideae:8.125000):8.125000):8.125000):8.125000,(milleu:81.250000)millettia:81.250000)fabaceae:8.125000):8.125000)fabales:8.125000,(((((((((((artlak:15.572917)artocarpus:15.572917):15.572916):15.572918):15.572918)moraceae:15.572914):15.572914):15.572922):15.572914):15.572922)rosales:15.572906):15.572922):8.125000,((((((cropoi:32.500000)croton:32.500000,(phycol:32.500000,phyemb:32.500000)phyllanthus:32.500000,(antgha:32.500000)antidesma:32.500000,(apovil:32.500000)aporusa:32.500000,(briret:32.500000)bridelia:32.500000)euphorbiaceae:32.500000):32.500000,((irvoli:43.333332)irvingia:43.333332)irvingiaceae:43.333336,((((garcow:26.000000)garcinia:26.000000)clusiaceae:26.000000):26.000000):26.000000,((ochint:43.333332)ochna:43.333332)ochnaceae:43.333336,(((((parama:21.666666)parinari:21.666666)chrysobalanaceae:21.666668):21.666664):21.666672):21.666664)malpighiales:21.666672,(((((elltom:25.277779)ellipanthus:25.277779)connaraceae:25.277779):25.277779):25.277779)oxalidales:25.277779):21.666656,(((lopdup:43.333332)lophopetalum:43.333332)celastraceae:43.333336)celastrales:43.333328)celastrales_to_malpighiales:21.666672):8.125000)fabids:8.125000):8.125000)rosids:8.125000):8.125000,(((((((((carsph:45.518467)careya:45.518467)lecythidaceae:45.518471,(((((symrac:22.759233)symplocos:22.759233)symplocaceae:22.759235):22.759232):22.759232,((((dioehr:22.759233,diomal:22.759233)diospyros:22.759233)ebenaceae:22.759235):22.759232):22.759232):22.759239):22.759232)ericales:22.759232,((((((catspa:63.437496)catunaregam:63.437496,((((((((((pavtom:11.534090)pavetta:11.534090):11.534092):11.534088,(((garobt:11.534090,garsoo:11.534090)gardenia:11.534090):11.534092):11.534088):11.534092):11.534092):11.534088):11.534088):11.534096)ixoroideae:11.534088):11.534088,(rotwit:63.437496)rothmannia:63.437496,(halcor:63.437496)haldina:63.437496,(mitrot:63.437496)mitragyna:63.437496,((((((morcor:18.124998)morinda:18.124998):18.125000):18.124996):18.125000):18.125000)rubioideae:18.125000)rubiaceae:11.534096,((((strnux:30.757576)strychnos:30.757576)loganiaceae:30.757576,(((holpub:23.068182)holarrhena:23.068182)apocynaceae:23.068180):23.068184):23.068176):23.068184)gentianales:11.534088,(((((((((((((steneu:10.710227)stereospermum:10.710227)bignoniaceae:10.710226):10.710228):10.710228,(((gmearb:13.387784)gmelina:13.387784)lamiaceae:13.387785):13.387783):10.710224):10.710228):10.710228):10.710228):10.710228):10.710228):10.710220)lamiales:10.710236):10.710220):10.710236)lamiids:10.710220):10.710236)ericales_to_asterales:10.710220)asterids:10.710236):10.710220):10.710236):10.710220,((dilobo:78.541664)dillenia:78.541664)dilleniaceae:78.541672):8.125000)core_eudicots:8.125000)trochodendrales_to_asterales:8.125000)sabiales_to_asterales:8.125000)eudicots:8.125000)ceratophyllales_and_eudicots:8.125000)poales_to_asterales:8.125000,(((((((((permem:29.250000)persea:29.250000)lauraceae:29.250000):29.250000):29.250000):29.250000)laurales:29.250000):29.250000)magnoliids:29.250000):29.250000)magnoliales_to_asterales:8.125000)austrobaileyales_to_asterales:8.125000)nymphaeales_to_asterales:8.125000)angiosperms:8.125000)seedplants:75.000000)euphyllophyte:1.000000;


推荐答案

您的代码工作正常,但颜色没有订购根据提示标签的顺序(检查 phyloFan $ tip.label )。使用匹配函数重新排序颜色将解决颜色分配。

Your code works correctly, but the colors are not ordered according to the order of tip labels (check phyloFan$tip.label). Reordering the colors with the match function will solve the color assignment.

require(ape)

# generate a random tree, because importing yours does not work for me
# skip this step in your code
set.seed(12345)
phyloFan <- rtree(n = nrow(LU), tip.label = row.names(LU))

# create color vector ordered according to the tip labels
cols <- ifelse(LU != "O", "blue", "darkgreen")[match(phyloFan$tip.label, row.names(LU))]

# plot with ordered colors
plot(phyloFan, type = "fan", tip.color = cols, label.offset = 0.1)

这篇关于将ifelse功能应用于系统发育扇的颜色提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆