SNP曼哈顿图绘制 - 指南
2025-12-25 22:26 tlnshuju 阅读(0) 评论(0) 收藏 举报原文链接:使用R语言绘制SNP曼哈顿图
本期教程

文章来源

**文章:**Graph-based pan-genome reveals structural and sequence variations related to agronomic traits and domestication in cucumber
**网址:**https://pmc.ncbi.nlm.nih.gov/articles/PMC8813957/
绘图数据

- 图展示了 基因组各染色体上成千上万个 SNP 位点的 FST 值分布
- FST是衡量两个群体遗传分化程度,数值越高表示差异越大
绘图代码
argv<-commandArgs(TRUE)
library('stringr')
chr_num=as.numeric(argv[3]) ### total number of chromosomes
chr_pre=argv[4] ### fasta header of reference chromosome
threshold=as.numeric(argv[5]) ### 0.2153, genomewide 5% threshold FST
pdf(argv[2], 10, 3)
par(mar=c(2,4,1,1),oma=c(0,0,0,0),mgp=c(2.5,0.5,0),cex.axis=1.1,las=1,cex.lab=1.2,lend=1)
a <- read.table(argv[1],header=T)
###Chr len for Pos infor
len <- c(0)
a[,1] <- as.factor(a[,1])
for (i in 1:chr_num) { #### chromosomessnp <- subset(a,a$Chr==levels(a[,1])[i])len <- c(len,snp[,2][length(snp[,2])])
}
plot(1,1,type='n',xaxs='i',yaxs='i',cex=0.1,col='steelblue1',axes=F,main='',xlab='',ylab='FST',xlim=c(0,sum(len)),ylim=c(0,1))
par(new=T)
len_sum <- 0
len_sum_d <- c(0)
for (i in 1:chr_num){ #### chromosomesif (i %% 2 == 1){color <- '#ce68f1'} else {color <- '#3ace76'}ii <- str_pad(i, 2, side='left', '0')d <- subset(a,Chr == paste(chr_pre,ii,sep='')) #### chromosomeslen_sum = len_sum + len[i]len_sum_d <- c(len_sum_d,len_sum)pos <- (d$Pos)#plot(len_sum+pos,d$Pop1_starch_vs_Pop23_european_american,type='h',xaxs='i',yaxs='i',col='gray81',axes=F,main='',xlab='',ylab='',xlim=c(0,sum(len)),ylim=c(0,7000)) # snp number distribution#par(new=T)for (n in 1:length(d[,2])){plot(1,1,type='n',xaxs='i',yaxs='i',cex=0.1,col='blue',axes=F,main='',xlab='',ylab='',xlim=c(0,sum(len)),ylim=c(0,1)) # add layer outpoints(len_sum+d[n,2],d[n,3],type='h',xaxs='i',yaxs='i',cex=0.2,col=color,pch=20) # plot point
# points(len_sum+d[n,2],d[n,7],type='p',xaxs='i',yaxs='i',cex=0.2,col='red',pch=20) # plot pointpar(new=T)}par(new=T)
}
len_sum_d <-c(len_sum_d,sum(len))
len_sum_d1<-len_sum_d[2:length(len_sum_d)]
#axis(4,tcl=-0.42,lwd=2,lwd.ticks=2,at=seq(0,1,0.2),labels=seq(0,7000,1400))
#mtext('Number of variations', side = 4, line = 3.2,cex=1.3,las=0)
axis(2,tcl=-0.42,lwd=1,lwd.ticks=1,at=seq(0,1,0.25),labels=seq(0,1,0.25))
axis(1,at=c(len_sum_d1[1],len_sum_d1[2],len_sum_d1[3],len_sum_d1[4],len_sum_d1[5],len_sum_d1[6],len_sum_d1[7],len_sum_d1[8],len_sum_d1[9],len_sum_d1[10],len_sum_d1[11],len_sum_d1[12],len_sum_d1[13]),labels=F,lwd=1,lwd.ticks=1,tcl=-0.42) #### chromosomes
axis(1,tick=F,at=c(0,len_sum_d1[2]/2,len_sum_d1[2]+(len_sum_d1[3]-len_sum_d1[2])/2,len_sum_d1[3]+(len_sum_d1[4]-len_sum_d1[3])/2,len_sum_d1[4]+(len_sum_d1[5]-len_sum_d1[4])/2,len_sum_d1[5]+(len_sum_d1[6]-len_sum_d1[5])/2,len_sum_d1[6]+(len_sum_d1[7]-len_sum_d1[6])/2,len_sum_d1[7]+(len_sum_d1[8]-len_sum_d1[7])/2,len_sum_d1[8]+(len_sum_d1[9]-len_sum_d1[8])/2,len_sum_d1[9]+(len_sum_d1[10]-len_sum_d1[9])/2,len_sum_d1[10]+(len_sum_d1[11]-len_sum_d1[10])/2,len_sum_d1[11]+(len_sum_d1[12]-len_sum_d1[11])/2,len_sum_d1[12]+(len_sum_d1[13]-len_sum_d1[12])/2),labels=c('Chr.', '1','2','3','4','5','6','7','8','9','10','11','12')) #### omosomes
#for (i in 2:chr_num){ #### chromosomes
# segments(len_sum_d1[i],-1,len_sum_d1[i],1,lty=2,lwd=1.35,col=rgb(0,0,0,0.5))
#}
abline(h=threshold,lty=2,lwd=1.6,col='black')
#legend('topright',legend='95% confidence interval',col='red',bty='n',lty=1,lwd=2,cex=1)
运行:
Rscript ./plot_fst.R t 166_potato_starch_vs_others_Fst.pdf 12 chr 0.2135
参数解释
| 参数位置 | 示例值 | 可能含义(常见脚本格式) |
|---|---|---|
| 1 | t | 输入数据文件前缀或模式(例如 t.Fst.stat) |
| 2 | 166_potato_starch_vs_others_Fst.pdf | 输出 PDF 文件名(最终图像文件) |
| 3 | 12 | 染色体数量(如马铃薯 12 条染色体) |
| 4 | chr | 染色体列名称前缀(例如 chr1, chr2…) |
| 5 | 0.2135 | FST 阈值(画虚线用的 cutoff 值) |
若我们的教程对你有所帮助,请点赞+收藏+转发,大家的支持是我们更新的动力!!
2024已离你我而去,2025加油!!
2024年推文汇总 (点击后访问)
2023年推文汇总 (点击后访问)
2022年推文汇总 (点击后访问)
往期部分文章
1. 最全WGCNA教程(替换数据即可出全部结果与图形)
推荐大家购买最新的教程,若是已经购买以前WGNCA教程的同学,可以在对应教程留言,即可获得最新的教程。(注:此教程也仅基于自己理解,不仅局限于此,难免有不恰当地方,请结合自己需求,进行改动。)
2. 精美图形绘制教程
- 精美图形绘制教程
- 《R语言绘图专栏–50+图形绘制教程》
3. 转录组分析教程
转录组上游分析教程[零基础]
一个转录组上游分析流程 | Hisat2-Stringtie
Samll RNA上游分析
4. 转录组下游分析
批量做差异分析及图形绘制 | 基于DESeq2差异分析
GO和KEGG富集分析
单基因GSEA富集分析
全基因集GSEA富集分析
BioinfoR生信筆記 ,注于分享生物信息学相关知识和R语言绘图教程。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1069149.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
2025HR数字化转型核心:IT驱动的人才敏捷性构建路径
2025 年,HR 行业已告别 “招人、算薪、办入职” 的传统模式,技术深度渗透与人才需求重构推动转型进入深水区。其中,以 IT 技术为核心引擎,构建组织人才敏捷性,成为企业在不确定性中保持竞争力的关键。这种敏捷性不仅意…
MySQL 知识点:函数索引(Functional Index)
MySQL 技术文档:函数索引(Functional Index)
1. 概述
在 MySQL 8.0.13 之前,索引必须关联到表的列或列的前缀。如果查询条件对列使用了函数(如 WHERE UPPER(name) TOM),即使 name 字段有索引…
亿可达_自动发邮件攻略
你是否每天重复这样的工作:整理客户邮箱、复制粘贴、手动发送产品邮件?客户越多,工作量越大,还容易出错漏发。现在,亿可达有了更聪明的办法。亿可达自动化流程,完美链接Excel 365和QQ邮箱,实现邮…
基于TCP/IP 通信,服务端主动召测客户端:高并发、高可用任务缓存队列框架设计(第三章)
1、POC验证--消息队列实现方案我们需构建以终端为唯一标识的独立任务队列模型(100万终端):每个终端绑定专属任务队列,队列内消息按优先级排序(高优先级任务优先处理),且该模型需适配超高频、超大…
SQL学习应用工作场景(2)--执行优先级+语法顺序+保留2位小数
前言:我们先看需求,拆解分析思考。然后再实操写SQL。然后分析我中途写的时候遇到的问题以及解决方法,最后在此基础上优化扩展~~~~想看哪个部分的根据目录跳转吧(*^▽^*)一、需求描述:我们需要计算在2025-12-24之后的2条listing的净…
论文救星!9款免费AI生成器1天搞定,文理医工全覆盖必备
还在为开题报告无从下手而焦虑?是否在深夜里对着空白的文档,为文献综述和数据分析发愁?面对导师的修改意见感到力不从心?如果你的答案是肯定的,那么恭喜你,这篇文章就是你学术生涯的转折点。
我们耗时数月…
工程BOM、制造BOM、成本BOM有什么区别?三套 BOM 各自解决什么问题?
最近我走访了好几家工厂,发现一个很普遍的问题:有的工厂,研发做的工程BOM很完美,但生产线那边根本对不上;有的工厂,生产顺序乱、插单多,制造BOM没有落地指导作用;有的工厂࿰…
Linux系统相关知识
查看软件包的类型
file sougou.deb软件源配置文件
方式一:/etc/apt/sources.list方式二:软件更新器修改完后 sudo apt udpate
sudo apt install package-name 安装软件包
sudo apt remove package-name 移除软件包
sudo apt --purge remove pa…
首尔大学团队揭秘:为什么AI绘画总是用“高斯分布“?
这项由首尔大学数据科学研究院的李俊豪、金官锡和李俊锡团队完成的研究发表于2025年12月的《机器学习研究汇刊》(Transactions on Machine Learning Research),感兴趣的读者可以通过论文编号arXiv:2512.18184查阅完整内容。说到AI绘画&#x…
记录2025年用AI编程干了哪些出格的事情
先贴2张图:前一张图是cursor给我的2025年使用的总结,第二张图是我用deepseek解读使用22.2亿tokens的解读。再回顾一下2025年使用AI编程做了以前自己没做过的事情:1、花了2个小时把轮式人形机器人的招手动作做出来了。我拿到的是只有电机的SDK…
Kyutai团队的新突破:让AI看图片更便宜的神奇方法
在计算机视觉和人工智能快速发展的今天,让机器既能看懂图片又能理解文字变得越来越重要。就在2024年12月,来自法国人工智能研究机构Kyutai的研究团队发表了一项引人注目的研究成果,为这个看似复杂的技术难题提供了一个既巧妙又实用的解决方案…
2025下半年软考纸质证书领取时间表来啦!
2025年下半年计算机技术与专业技术资格考试纸质证书各地领取时间已出炉!部分地区有领取时间限制,通过考试了的同学们抓紧时间领取~一、各地软考纸质证书领取时间汇总1.上海现场领取时间:12月29日快递邮寄时间:12月22日开始2.重庆现…
cesium 根据经纬度高度进行额度补偿
const offsetvalue 90;
/***度数补偿值*/
const setCameraPosition async (lat: number, lon: number, du: number) > {var point turf.point([lat, lon]);var distance 600 * 1.732;var bearing du - 180 offsetvalue;var options: any { units: "kilometers&q…
滚珠丝杆直线导轨厂家哪家适配自动化设备高精度传动需求?
自动化设备的精度越来越卷——从3C产品的微小元件装配到半导体的晶圆传输,都需要微米级的定位精度。很多用户问我:“哪些滚珠丝杆直线导轨厂家能适配这种高精度需求?”今天就来聊聊这个话题,结合实际场景,看看什么样的…
数据交易中的数据基础设施与云服务
数据交易中的数据基础设施与云服务 关键词:数据交易、数据基础设施、云服务、数据安全、数据流通 摘要:本文深入探讨了数据交易中数据基础设施与云服务的相关内容。首先介绍了数据交易的背景以及数据基础设施和云服务在其中的重要性,接着详细解释了数据基础设施和云服务的核…
从概念到实践,带你彻底搞懂AI智能体
前言
今年AI领域最火的词汇非"Agent"莫属。从OpenAI发布Agents SDK,到Anthropic推出Claude Computer Use和MCP协议,再到Google的Vertex AI Agent Builder和Microsoft的AutoGen框架,科技巨头纷纷押注AI Agent赛道。
但很多人对Age…
2025/12/21
2025/12/21要实现直接插入排序,核心思路是将数组分为有序区和无序区,依次将无序区的元素插入到有序区的合适位置,最终使整个数组有序。以下是详细的实现思路和代码解析。
方法思路
划分区间:初始时,有序区仅包含第…
ControlNet核心实现:从0到1构建可控AI绘画系统
摘要:本文将撕开ControlNet的技术面纱,从零手写完整的ControlNet架构,实现骨骼姿态、边缘轮廓、深度图等多种条件控制生成。不同于简单调用diffusers库,我们将深入解析零卷积(Zero Convolution)、条件编码器…