You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:01:25