使用R删除重复序列后,phyphyeentic树中的崩溃节点

时间:2019-03-18 11:45:50

标签: r tree nodes pruning ape-phylo

我有成千上万个要修剪的系统发育树:

  1. 删除所有重复序列,但删除一个序列(例如,SP1-SP2复制且SP13-SP14也使用0.0001的阈值。我希望每对中的一个物种随机保留)。假设我保留SP1和SP14。
  2. 删除零长度分支(阈值为0.0001的SP10,SP7,SP3和SP14)。 问题出在这里:我无法删除通向SP1的短分支,因此尽管我只想删除通向SP1和嫁接SP1的短分支,但我还是要在此步骤中删除SP1。突出显示的分支。

enter image description here

我在R中编写了以下代码:

tree <- read.tree(file='MyTree.tre')
tips <- tree$tip.label
nodes<-sapply(tips,function(x,y) which(y==x),y=tree$tip.label)
edge.lengths<-setNames(tree$edge.length[sapply(nodes,function(x,y) which(y==x),y=tree$edge[,2])],names(nodes))
e <- data.frame(edge.lengths)
E <- as.data.frame(add_rownames(e, var = 'taxa'))
ByeBye <- E[E$edge.lengths<0.0001,1]
tr.p <- drop.tip(tree, ByeBye)

这是我的输入树:

(SP1:0.00000001,SP2:0.00000001,(SP3:0.00000065,((SP4:0.02355024,(SP5:0.07343248,SP6:0.07280366)22:0.00000033)50:0.02354874,(SP7:0.00000059,(SP8:0.07323173,((SP9:0.04761974,SP10:0.00000072)59:0.04865423,((SP11:0.02604142,SP12:0.19513180)53:0.02235647,(SP13:0.00000033,SP14:0.00000001)25:0.00000001)54:0.02452009)31:0.02362920)8:0.00000078)43:0.04811732)12:0.00000033)93:0.07279201);

0 个答案:

没有答案