2020年8月25日火曜日

packages"haplotypes"

午前
・標本整理

午後
・データ解析
・手伝い
・会議

変異が大きいため、pegas::haplotype、pages::haploNetを使った方法では、ハプロタイプネットワークがうまく描けなかった。
replot()を使って、頑張ればどうにかなりそうだけど、あまり現実できではない。

で、昨夜、packages"haplotypes"というのを見つけた。

ハプロタイプネットワークの老舗ソフトTCSでも利用されている最節約法によるサブネットワーク化?を計算することができる。pagesでもできるかも?
install.packages("haplotypes")
library(haplotypes)
#マニュアルでは「.fas」となっているが、うまくいかなかった。
x <- read.fas("***.fasta")
h <- haplotypes::haplotype(x)
p <- parsimnet(x, prob=.95)
rownames(p@d[[1]])<-c(1:8)
plot(p,
   net=1, #network番号の指定
   label.pos=5,
   vertex.cex=c(rep(5, p@nhap[[1]]), #円の大きさの指定
		rep(1, c(nrow(p@d[[1]])-p@nhap[[1]]))),
   vertex.col=c(rep("magenta", p@nhap[[1]]), #の色の指定
   		rep("deepskyblue3", c(nrow(p@d[[1]])-p@nhap[[1]]))))
パッケージのマニュアルでは、「p@nhap」となっているが、「p@nhap[[1]]」と「[[1]]」の指定が必要。この数字はネットワーク番号に合わせて変更する。

例えば、2つ目のネットワークの緑色で出力する場合は下記となる。
rownames(p@d[[2]])<-c(7:11)
plot(p,
   net=2,
   label.pos=5,
   vertex.cex=c(rep(5, p@nhap[[2]]),
		rep(1, c(nrow(p@d[[2]])-p@nhap[[2]]))),
   vertex.col=c(rep("green", p@nhap[[2]]),
   		rep("deepskyblue3", c(nrow(p@d[[2]])-p@nhap[[2]]))))