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

Fastman R包:如何为需高亮的点设置不同的cex参数?

解决方法:为高亮k-mers设置独立点大小

fastman函数本身没有直接提供设置高亮点大小的参数,我们可以通过分两次绘图的方式实现需求:先绘制所有普通位点,再单独绘制高亮的k-mers并设置更大的点尺寸,彻底避免遮挡问题。

步骤1:拆分数据集

先把原始数据拆分为普通位点和高亮位点两部分:

# 加载依赖包
if( !require(fastman) ){devtools::install_github('kaustubhad/fastman',build_vignettes = TRUE); library(fastman)} else 
        library(fastman)
library(data.table)

# 读取实际数据(替换为你的文件路径)
leafcd_All <- fread('output2.txt')
highlight_snps <- scan("highlight.txt", what=character())

# 拆分数据:普通位点 + 高亮k-mers
normal_data <- leafcd_All[!rs %in% highlight_snps]
highlight_data <- leafcd_All[rs %in% highlight_snps]

步骤2:分批次绘图

先绘制普通位点,再叠加绘制高亮位点(设置更大的点大小):

# 绘制普通位点,关闭高亮功能
fastman(normal_data, snp = "rs", chr="chr", bp = "ps", p="p_value",
        ylab="-LogP_leaffe_boxcox_All", col = c("darkgreen", "mediumvioletred"), 
        main=NULL, suggestiveline =FALSE, genomewideline=7.73, 
        cex=0.8, cex.lab=0.8, highlight=NULL)

# 叠加绘制高亮k-mers,自定义点大小和颜色
points(
  x = fastman:::getBP(normal_data, chr="chr", bp="ps") + fastman:::getChrOffsets(normal_data, chr="chr")[highlight_data$chr],
  y = -log10(highlight_data$p_value),
  pch = 19,  # 保持与fastman默认一致的点形状
  col = "red",  # 高亮颜色可按需调整
  cex = 1.5  # 设置比普通点更大的尺寸
)

替代方案:修改fastman函数源码

如果想让fastman原生支持高亮点大小参数,可以修改函数源代码:

  1. 运行fix(fastman)打开函数编辑器
  2. 在函数参数列表中添加highlight.cex = 1.2(默认值可自定义)
  3. 找到绘制高亮点的代码块,将原有的cex替换为highlight.cex
  4. 保存修改后的函数

修改后即可直接通过参数调用:

fastman(leafcd_All, snp = "rs", chr="chr", bp = "ps", p="p_value",
        ylab="-LogP_leaffe_boxcox_All", col = c("darkgreen", "mediumvioletred"), 
        main=NULL, suggestiveline =FALSE, genomewideline=7.73, 
        cex=0.8, cex.lab=0.8, highlight=highlight_snps, highlight.cex=1.5)

内容的提问来源于stack exchange,提问作者Vinod Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:03:11