首页
学习
活动
专区
圈层
工具
发布
33 篇文章
1
CellChat三部曲1:使用CellChat对单个数据集进行细胞间通讯分析
2
CellChat三部曲2:使用CellChat 对多个数据集细胞通讯进行比较分析
3
CellChat 三部曲3:具有不同细胞类型成分的多个数据集的细胞通讯比较分析
4
多个单细胞亚群合并
5
如何读取单细胞数据
6
纯生信单细胞数据挖掘-全代码放送
7
单细胞测序流程(单细胞rna测序)
8
单细胞亚群比例变化和表达量差异分析
9
生信中各种ID转换
10
单细胞功能注释和富集分析(GO、KEGG、GSEA)(2021公开课配套笔记)
11
细胞亚群的生物学命名
12
scRNA包学习Monocle2
13
单细胞转录组基础分析六:伪时间分析
14
Seurat包的findmarkers函数只能根据划分好的亚群进行差异分析吗
15
​cytoscape的十大插件之二--MCODE插件
16
从零到壹:Cytoscape插件使用心得~MCODE篇
17
cytoscape的cytohubba及MCODE插件寻找子网络hub基因
18
上下调基因各自独立进行GO数据库的3分类富集(求美图代码)
19
拟时序分析的热图提取基因问题
20
单细胞亚群合并与提取(2021公开课配套笔记)
21
单细胞转录组之Seurat包全流程-数据过滤、降维分群及可视化
22
CellChat细胞通讯(二)可视化篇
23
GWAS全基因组关联分析流程(BWA+samtools+gatk+Plink+Admixture+Tassel)
24
WGCNA分析,简单全面的最新教程(在线做,但也需要懂原理)
25
统计遗传学:第九章,GWAS+群体分析+亲缘关系分析
26
干货:把知识经验整理为电子书
27
如何在箱线图添加显著性--代码分享
28
ANNOVAR 软件用法还可以更复杂
29
3DSNP 数据库 | 注释 SNP 信息
30
使用FUSION进行TWAS分析
31
R包”gwasrapidd”------快速获取GWAS Catalog数据库的信息
32
连锁不平衡小工具-----LDlink的使用教程
33
🤩 CMplot | 完美复刻Nature上的曼哈顿图(一)
清单首页生信文章详情

🤩 CMplot | 完美复刻Nature上的曼哈顿图(一)

1. 写在前面

原文地址:https://www.nature.com/articles/s41562-022-01359-x

今天要复刻一下Nature human behaviour上的一张Manhattan plot

曼哈顿图的名字来源是因为其形如曼哈顿的天际线, 高耸在较低高度的“建筑物”上方的摩天大楼的轮廓。主要用于GWAS结果的展示。

2. 用到的包

代码语言:javascript
代码运行次数:0
复制
rm(list = ls())
library(CMplot)

3. 示例数据

代码语言:javascript
代码运行次数:0
复制
data(pig60K)
data(cattle50K)


Note! 示例数据中的前三列分别是SNP的名称、染色体和位置, 其余各列是GWASp值或traitsGS/GP

有时候你可能只是想画SNP的密度图,这个时候前3列就够了。

4. GWAS结果展示

代码语言:javascript
代码运行次数:0
复制
CMplot(pig60K,
       type="p",
       plot.type="m",
       LOG10=TRUE,
       threshold=NULL,
       file="jpg",
       memo="",
       dpi=300,
       file.output=F,
       verbose=F,
       width=14,height=6,
       chr.labels.angle=0)

这里需要说明一下plot.type可选的有:

"d"SNP density plot"c"circle-Manhattan plot"m"Manhattan plot"q"Q-Q plot"b"both circle-Manhattan, Manhattan and Q-Q plots

5. 修改细节

5.1 更改颜色

代码语言:javascript
代码运行次数:0
复制
CMplot(pig60K,
       col = c("#3E0A52", "#423D77","#3F678B",
               "#468C8D", "#5FB47F", "#9FD55C","#F9E956"),
       type="p",
       plot.type="m",
       LOG10=TRUE,
       threshold=NULL,
       file="jpg",
       memo="",
       dpi=300,
       file.output=F,
       verbose=F,
       width=14,height=6,
       chr.labels.angle=0)

5.2 标注基因

我们在这里假设存在几个基因名gene1,gene2,gene3, gene4.... balabala......

代码语言:javascript
代码运行次数:0
复制
SNPs <- pig60K[pig60K[,5] < (0.05 / nrow(pig60K)), 1]
genes <- paste("GENE", 1:length(SNPs), sep="_")

CMplot(pig60K[,c(1:3,5)],
       plot.type="m",
       LOG10=TRUE,
       col= c("#3E0A52", "#423D77","#3F678B",
               "#468C8D", "#5FB47F", "#9FD55C","#F9E956"),
       highlight = SNPs,
       highlight.col = NULL,
       highlight.cex = 1,
       highlight.pch = c(15:17), 
       highlight.text = genes,      
       highlight.text.col = "black",
       threshold = 0.05/nrow(pig60K),
       amplify = FALSE,
       file = "jpg",
       memo = "",
       dpi = 300,
       file.output = F,
       verbose = F,
       width = 14,height = 6)

5.3 更改阈值线的颜色和类型

代码语言:javascript
代码运行次数:0
复制
CMplot(pig60K[,c(1:3,5)],
       plot.type="m",
       LOG10=TRUE,
       col= c("#3E0A52", "#423D77","#3F678B",
               "#468C8D", "#5FB47F", "#9FD55C","#F9E956"),
       highlight = SNPs,
       highlight.col = NULL,
       highlight.cex = 1,
       highlight.pch = c(15:17), 
       highlight.text = genes,      
       highlight.text.col = "black",
       threshold = 0.05/nrow(pig60K),
       threshold.lty = 2, 
       threshold.col = "black",
       threshold.lwd = 3,
       amplify = FALSE,
       file = "jpg",
       memo = "",
       dpi = 300,
       file.output = F,
       verbose = F,
       width = 14,height = 6)

6. 更进一步

这里我们再加上染色体的图,锦上添花!~🤩

代码语言:javascript
代码运行次数:0
复制
CMplot(pig60K[,c(1:3,5)],
       plot.type="m",
       LOG10=TRUE,
       col= c("#3E0A52", "#423D77","#3F678B",
               "#468C8D", "#5FB47F", "#9FD55C","#F9E956"),
       chr.den.col=c("darkgreen", "yellow", "red"),
       highlight = SNPs,
       highlight.col = NULL,
       highlight.cex = 1,
       highlight.pch = c(15:17), 
       highlight.text = genes,      
       highlight.text.col = "black",
       threshold = 0.05/nrow(pig60K),
       threshold.lty = 2, 
       threshold.col = "black",
       threshold.lwd = 3,
       amplify = FALSE,
       file = "jpg",
       memo = "",
       dpi = 300,
       file.output = F,
       verbose = F,
       width = 14,height = 6)

牛奶最后祝大家早日不卷!~


举报
领券