简体   繁体   中英

Apply ifelse function to colour tips of phylogenetic fan

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()

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 (ie cropoi, diomal, garsoo, holpub, phycol, stegut, steneu)?

This is the current figure that I produce:

在此处输入图片说明

Many thanks in advance for any advice.

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"))

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;

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)

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM