使用R中的haploNet(pegas)识别单倍型之间的突变

时间:2018-03-23 09:20:59

标签: r bioinformatics dna-sequence phylogeny

我认为这可能是一个简单的问题,但在阅读了pegas文档后我无法解决。我想使用FASTA文件绘制单倍型网络,并确定哪些突变分离出不同的单倍型。

示例:

fa <- read.FASTA("example.fa")
haps <- haplotype(fa)
haps50 <- subset(haps, minfreq = 50)
(network <- haploNet(haps50))

plot(network, size = attr(network, "freq"),show.mutation=1,labels=T)

enter image description here

如何识别我的FASTA文件中的变异位置,例如单倍型XXV分开?

额外问题: 是否也可以知道,例如,单倍型之一的单倍型序列是什么?例如单倍型V,这是非常频繁的吗?

1 个答案:

答案 0 :(得分:1)

pegas包中包含一个函数diffHaplo,它指定了单倍型之间的差异。

diffHaplo(haps50, a = "XX", b = "V")

为了提取频繁单倍型V的DNA序列,类haplotype对象中的索引将识别哪个DNA序列包含单倍型。

# haplotype index from its name
i <- which(attr(haps50, "dimnames")[[1]] == "V")
# index of the first sequence with the haplotype
s <- attr(haps50, "index")[[i]][1]

然后可以在对齐fa中识别相应的序列以保存或在屏幕上打印。

write.dna(fa[s], file = "hapV.fas", format = "fasta", nbcol = -1, colsep = "")
paste(unlist(as.character(fa[s])), collapse = "")