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原生支持高亮点大小参数,可以修改函数源代码:
- 运行
fix(fastman)打开函数编辑器 - 在函数参数列表中添加
highlight.cex = 1.2(默认值可自定义) - 找到绘制高亮点的代码块,将原有的
cex替换为highlight.cex - 保存修改后的函数
修改后即可直接通过参数调用:
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
相关产品推荐
相关产品推荐

