簡體   English   中英

如何根據外部CSV文件中的因素為系統樹上的尖端標簽着色?

[英]How to color the tip labels on a phylogenetic tree based on factors in external CSV file?

我正在運行帶有R Studio Version 1.2.1335MacOS Mojav e。 我正在嘗試更改通過nexus文件上傳到Rphylogenetic樹上尖端標簽的顏色。 我有一個單獨的CSV文件,其中所有物種名稱的確切格式均與nexus文件相同。 CSV中,物種名稱旁邊的列中有“是”或“否”。 物種名稱列稱為Tree_name,另一列為“ have”。 我希望旁邊有“ no”的物種被塗成紅色,其他物種被塗成黑色。 我是第一次使用R繪制phylogenies 任何幫助將不勝感激!

我試圖用點做類似的事情,但不斷提出這個錯誤

Error in res[edge[i, 2]] <- res[edge[i, 1]] + el[i] : 

替換的長度為零

這是我嘗試過的代碼:

shark.data<-read.csv("sharks_nosquatinis_format.csv",row.names=1)
dotTree(str_tree_sharks,shark.data,colors=setNames(c("blue","red"),
c("yes","no")),ftype="i",fsize=0.7)

如果沒有運行示例,很難說出來,但是您可以按照以下方式使用:

## Creating a random tree (you can use your nexus one)
my_tree <- rtree(5)

## Creating a random dataset (same)
my_data <- data.frame("column_of_interest" = c("yes", "no", "yes", "no", "yes"))

## Creating a vector of colours
my_colours <- c("black", "orange")

## Plotting the tree with colored tip labels
plot(my_tree,
     tip.color = my_colours[(my_data$column_of_interest == "yes")+1])

當然column_of_interest是您要繪制信息的列。 部分(my_data$column_of_interest == "yes")+1正在查找column_of_interest中的哪些行具有元素"yes"並返回TRUE / FALSE向量。 然后,您可以添加+1以將該邏輯向量轉換為數字1,其中TRUE變為2 (1 + 1),而FALSE變為1 (0 + 1)。 然后, my_colours[(my_data$column_of_interest == "yes")+1]部分將第一種顏色歸因於FALSE (在此示例中,不是"yes"事物),而第二種顏色歸因於TRUE"yes" )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM