如何使用pegas/ape移除单倍型网络图中的异常延伸线条?
单倍型网络图线条异常延伸至图外的解决方法
我正在构建单倍型网络图,已编写包含包安装、序列导入比对、单倍型识别及网络构建的R代码,但按pegas包的PlotHaploNet手册步骤操作后,生成的图中连接线条异常延伸至图外,而非仅连接单倍型圆圈,附上效果图,请问需修改代码何处可解决该问题?
已编写的R代码
1. 安装并加载所需包
# 安装BiocManager(若未安装) if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("Biostrings") BiocManager::install("msa") install.packages('ape') install.packages('ips') install.packages('ggtree') install.packages('tidyverse') install.packages('haplotypes') install.packages('pegas') install.packages('stats') BiocManager::install("ggtree") # 加载包 library('Biostrings') library('msa') library('ape') library('ips') library('ggtree') library('ggplot2') library('haplotypes') library('pegas') library('stats')
2. 序列导入与比对
# 读取FASTA格式序列文件 DNAString<-readDNAStringSet('C:\\Users\\annet\\OneDrive - Wageningen University & Research\\Jaar 2\\Thesis\\Data\\Ruwe_Data\\CytoB_Fastafile.fas', format="fasta",nrec=-1L, skip=0L, seek.first.rec=FALSE,use.names=TRUE, with.qualities=FALSE) # 用ClustalW算法进行多序列比对 DNAMSATEST<-msa(inputSeqs = DNAString, method = c("ClustalW"), cluster = "default", gapOpening = "default", gapExtension = "default", type = "default", order = c("aligned"), verbose = FALSE,help = FALSE) # 将比对结果转换为DNAbin格式 DNABinTEST <- as.DNAbin(DNAMSATEST)
3. 单倍型识别与网络构建
# 识别单倍型(忽略匹配核苷酸,将末端空位视为N) HaploTEST<-haplotype(DNABinTEST, labels = NULL, strict = FALSE, trailingGapsAsN = TRUE) # 构建单倍型网络 HaploNetTEST <- haploNet(HaploTEST, d = NULL, getProb = FALSE) print(HaploNetTEST) print.default(HaploNetTEST, digits = NULL, quote =TRUE, na.print = NULL, print.gap = NULL, right = FALSE, max = NULL,useSource = TRUE) # 绘制网络图 plot(HaploNetTEST)
异常效果图

问题解决方法
线条异常延伸通常源于序列比对中的大量空位/缺失值,或单倍型距离计算异常,可通过以下修改解决:
修剪比对序列:用
trimAl工具去除比对后序列两端的空位,减少无效位点干扰:# 修剪比对序列,移除两端空位 DNABinTEST_trimmed <- trimAl(DNABinTEST, type = "gappyout") # 用修剪后的序列重新识别单倍型 HaploTEST<-haplotype(DNABinTEST_trimmed, labels = NULL, strict = FALSE, trailingGapsAsN = TRUE)手动传入距离矩阵:避免
haploNet自动计算距离出错,提前计算汉明距离矩阵并传入:# 计算单倍型间汉明距离 dist_mat <- dist.hamming(HaploTEST) # 基于指定距离矩阵构建网络 HaploNetTEST <- haploNet(HaploTEST, d = dist_mat, getProb = FALSE)调整绘图参数:绘图时通过
scale.ratio控制线条与单倍型大小的比例,或用xlim/ylim限定绘图范围:# 调整比例并限定坐标轴范围,避免线条溢出 plot(HaploNetTEST, scale.ratio = 0.5, xlim = c(-10, 10), ylim = c(-10, 10))可根据实际效果调整
scale.ratio和坐标轴范围的数值。清理异常单倍型:检查单倍型数据,删除全为N或空位的异常单倍型:
# 查看单倍型统计信息 summary(HaploTEST) # 假设第3个单倍型异常,删除后重新构建网络 HaploTEST_cleaned <- HaploTEST[-3] HaploNetTEST <- haploNet(HaploTEST_cleaned, d = NULL, getProb = FALSE)
内容的提问来源于stack exchange,提问作者Annet Nieuwenhoven
相关产品推荐
相关产品推荐

