here으로 정의 된 방법론을 사용하여 부트 스트랩으로 계통 발생 트리를 만들려고합니다. 거대한 데이터 세트를 가지고 있기 때문에 각 개인의 이름을 (이 예제를 위해 1,2,3,4, ...라고 명명 된) 유익하지 않습니다. 그러므로 개인의 종을 반영하기 위해 팁을 색칠하고 싶습니다. 개별 종의 정보는 분리 매트릭스라는 종에 저장됩니다 내가 적합 $ 트리 $ 라벨에있는 그것의 종과 개인의 이름을 대체하려고 할 때마다개인의 종에 의한 계통 발생 트리의 팁을 색칠하십시오.
그럼에도 불구하고species = data.frame(Ind=c(1 ,2 ,3 ,4 ,5),
Spe=c("s1","se1","se2","se2","se3"))
이, 유일한 결과는 벡터를 비우는된다. 아마도 fit은 pml 클래스의 객체이기 때문에 내 전략과 충돌이 발생하지만 확실하지는 않습니다. 개별 종에 기초한 나무의 팁을 채색하는 방법이 있습니까? 내 코드는 지금, 다음과 같습니다
library(phangorn)
#Create a tree from data in fasta format
dat = read.phyDat(file = "myalignment.fasta", format ="fasta")
tree <- pratchet(dat) # parsimony tree
mt <- modelTest(dat, tree=tree, multicore=TRUE)
mt[order(mt$AICc),]
bestmodel <- mt$Model[which.min(mt$AICc)]
env = attr(mt, "env")
fitStart = eval(get("GTR+G+I", env), env)
fit = optim.pml(fitStart, rearrangement = "stochastic", optGamma=TRUE, optInv=TRUE, model="GTR")
bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE)
#Replace the names with the species...
fit$tree$tip.label <- species[which(species[,1] == fit$tree$tip.label),2]
#If I print fit$tree$tip.label here, the output is factor(0)
#...and create the tree with colored tips
plotBS(midpoint(fit$tree), bs, p = 50, type="p", show.tip.label = FALSE)
tiplabels(pch=19, col = as.factor(fit$tree$tip.label), adj = 2.5, cex = 2)
재현 예
저장을 위의 이름이 "myalignment.fasta"실행 코드와 다음. 문제는 색상이 아닌 레이블로 포인트를 플롯리스트 인 경우
가>1
AACCAGGAGAAAATTAA
>2
AAAAA---GAAAATTAA
>3
ACACAGGAGAAAATTAA
>4
AACCTTGAGAAAATTAT
>5
CCTGAGGAGAAAATTAA
는 최소 [재현성 예]를 생성한다 (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). 샘플 데이터를 포함하십시오 (로컬 컴퓨터에서 파일을 읽을 수 없습니다). 코드를 R에 복사/붙여 넣기 할 수 있다면 테스트와 도움이 더 쉽습니다. 질문이 플로팅에 관한 것이라면 질문과 관련이없는 코드를 삭제하십시오. – MrFlick
종종 패키지 함수에는 함수가 작동하는 방식을 보여주기 위해 내장 된 데이터 세트를 사용하는 샘플 코드가 포함되어 있습니다. 또한'dput()'은 포함 된 링크에 따라 변수를 다시 생성하는 데 사용할 수 있습니다. 질문 자체에 사용할 최소한의 데이터를 만들 수 있습니다. 사람들이 당신을 쉽게 도울 수 있도록하려는 경우에만 이러한 것들을 제안합니다. – MrFlick
@MrFlick 코드를 재현하는 데 사용할 수있는 최소한의 "myalignment.fasta"를 만들었습니다. – j91