生信修炼可视化基因家族和关联分析

我的GWAS高级曼哈顿图折腾过程

2021-07-09  本文已影响0人  超级宇航员
原图封面

如果说别人画图是折腾自己,那我画图可能就是折腾自己兼折腾群主.......
首先在这里感谢何大哥哈(知乎:hewm2008)、很耐心的为我解答了许多问题。

首先简要的说一下我这里作图的要求
其次我简要的说明一下我这次我遇到的问题,希望其他人可以少折腾一下

软件介绍

RectChr主要用于基于Chr染色体水平上多层次的可视工具,对一些统计变量用点,线,柱状和heatmap、高亮,文本文字,彩虹链接, 连接,动态热度图,动态柱状图以及结合颜色【即线,散点,直方图,热图,文本, line, scatter/point, histogram , PairWiseLink,link, heatmap(highlights)和text/ 】等 可视化各chr上各区域这个统计量,达到快速一眼看出规律,识别结果。 并且各种可以自己组合 自由修改相关参数,使用方法极像circos的一样。

简单点说circos可以画的,这儿均可以画,只是把圈圈图改为长方型的。其中自己搭配层颜色等,同时也比circos多了一些默认配置,用起来十分简单,如SNP GC密度 直接输入文件即可。

可以在多个场景应用,其中官方简要提供了10个实列,程序网址提供了这些实例的配置文件和输入文件。用法用法简单,在有相关数据的前提下,主要定义层数各层的画图方式。具体内容可见软件介绍。

GWAS官方绘制解法及出图

##################################### 全局参数 #######################################################

SetParaFor = global
File1  = ./Gwas.data.pvlue.gz  ##  这个是必须输入参数,并且尽量放在最前,格式为[Chr Start End Value1 Value2 ... ValueN]
File2  = ./site.text.info
ValueX = 4            ##  多少层,类同circos多少个圈,这不设默认是N,即根据File1的格式来的,可以自己设
ChrSpacingRatio =0.2  ##  不同染色体chr之间的间隔比例(ChrWidth*ChrSpacingRatio)
Main = "GWAS_Figure"  ##  the Figtur Name   #font-size  strokewidth=1;  fill="green"
ChrArrayDirection = horizontal  ##  horizontal/vertical  chr是按纵排列还是横排列
CanvasHeightRitao = 0.7  ##  画布最下面若有空白 截取上面的0.7   (1.17版本以上才有的参数)


######    默认各层的配置参数 若各层没有配置的会,则会用这儿的参数 ######

SetParaFor = LevelALL  ##  下面是处理初始化参数 SetParaFor 参数处理,若为 LevelALL,即先为所有层设置的默认值
ShiftGradienY=-55  ## 渐变条上移动
ShiftGradienX=-20 ## 渐变条左移动
ShiftChrNameX=60   # chr名右移
ShiftChrNameY=100   # chr名下移

##################################### 各层的参数 #######################################################
###   具体某层的具体配置   把 DealLevePara  设为具体正数(<=ValueX),然后可以具体修改此层要改变的部分


SetParaFor=Level1    ##  下面开始处理第 1 层 参数处理
PType  = text
ShowColumn = File2:5 ##
crBG="#FFFFFF"   # 白色,即没有背景
ChrWidth=40  #  放text的名字 宽度长点
Rotate=-90   # 旋转 90度  文字
TextFontRatio=1.2  # 文字 放大为原来的1.2倍
NoShowGradien=1  # 不显示渐变条

SetParaFor=Level2
ShowColumn = File2:5  ##  把file0的第四列用散点图形式画出来)
ChrWidth=30       ##这一层宽度调高点
PType  = PairWiseLink    
StyleUpDown = UpDown
NoShowBackGroup=1 # 同 crBG="#FFFFFF"  一样 即没有背景
SizeGradienRatio=0.8  # 渐变条 缩小为原来的0.8

SetParaFor=Level3    ##  下面开始处理第 3 层 参数处理
PType  = point    ##  散点
ShowColumn = File1:4
ChrWidth=100       ##这一层宽度调高点
LogP=1   #  0-log()   对数值进行取log
crBG="#FFFFFF"  # 背影为白色,实没有画
TopVHigh=1.1   #  只要大于1时就会取最高点
ShowYaxis=1    #  显示左边数值
ValueSpacingRatio=0.04  #和一层空一点
CirsizeRatio=1.2  ## 散点的大小按默认放大缩小
Cutline=5            ## 设置阈值线,颜色默认为红   CorCutline=green 

SetParaFor=Level4   #  这一层啥都不画 仅用背景条
ShowColumn = File1:4
ChrWidth=10
PType  = EEE     #啥都不画  空

其中site.text.info如下格式(第四列没有用到)

#chr    PlotSiteA       RealSiteB       Pvalue  TextName
B05     10530308        18530308        1.13E-6 GeneA
B05     18550295        18550295        2.2607E-6       GeneB
B05     25627687        18627687        5.6192E-5       GeneC
B02     39381           939381  6.0143E-5       GeneD
B02     5893253         893253  6.0402E-5       GeneE
B02     10879727        879727  8.8115E-5       GeneF

出图结果

曼哈顿图.jpg

GWAS配置介绍

现画高级点的GWAS的曼哈顿图,主要要点如下:

1、RectChr多层,各层高度可以设不同,chr横放,其中chr间隙小点

2、Gwas的点层用point(PType = point)来画,高度高点(ChrWidth=100),不画背景(crBG="#FFFFFF"),和设置一下阈值线(Cutline=5)

3、其中用 Pairwiselink标同点的线,用text层画出gene名(Rotate=-90 # 旋转 90度 文字)

4、其中text层和Pairwiselink画线的方式和颜色可以自己调,我这为了省事,用默认的。

我的配置代码

##################################### 全局参数 #######################################################
SetParaFor = global
File5  = ccc
File6  = Genegene.txt
File1  = FST_n-b.txt  ##  这个是必须输入参数,并且尽量放在最前,格式为[Chr Start End Value1 Value2 ... ValueN]
File2  = FST_n-w.txt  ##  这个是必须输入参数,并且尽量放在最前,格式为[Chr Start End Value1 Value2 ... ValueN]
File3  = XPEHH_n-b.txt
File4  = XPEHH_n-w.txt  ##  其中用NA表示不画,chr End End NA不画但End可以用来贝记为chr的长度
ScaleNum=0
ValueX = 9             ##  多少层,类同circos多少个圈,这不设默认是N,即根据File1的格式来的,可以自己设
#Main="FST and XPEHH"
#MainRatioFontSize=0.8
ChrSpacingRatio =0.03  ##  不同染色体chr之间的间隔比例(ChrWidth*ChrSpacingRatio)
ChrArrayDirection = horizonta  ##  horizontal/vertical  chr是按纵排列还是横排列  
##其它当很少用到的参数 BGChrEndCurve=1/等等

################################ Figure ############################################################

Chromosomes_order=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26

##############################     画布 和 图片 参数配置 #################################




##################################### 各层的参数 #######################################################
SetParaFor=LevelALL  ##  下面是处理初始化参数 SetParaFor 参数处理,若为 LevelALL,即先为所有层设置的默认值
PType  = line       ##  线,散点,直方图,热图,文本和共线性link, line, scatter/point, histogram ,link, heatmap(highlights)和text,PairWiseLink
ChrWidth=45
ShowYaxis=0            ##是否显示所有层的Y axis的起终点值,默认值此:0 不显示
NoShowGradien=1
BGChrEndCurve=1
ChrNameRatio=0.7
ShiftChrNameX=21      #chr右移动
ShiftChrNameY=175

#SizeGradienRatio=0.8  # 渐变条变小点
#ShiftGradienY=-120     # 渐变条 上移

SetParaFor=Level1   #  下面开始处理第 1 层 参数处理这一层啥都不画 仅用背景条
ShowColumn = File1:4
ChrWidth=10
PType  = EEE     #啥都不画  空

SetParaFor=Level2    ##  下面开始处理第 2 层 参数处理
PType  = text
ShowColumn = File6:8 ##  默认为file0 的4列,改为5
ciMid="0C0C0C“
crEnd="0C0C0C“
crBegin="0C0C0C“
crBG="#FFFFFF"   # 白色,即没有背景
ChrWidth=40  #  放text的名字 宽度长点
Rotate=-90   # 旋转 90度  文字
TextFontRatio=0.8  # 文字 放大为原来的1.2倍
NoShowGradien=1  # 不显示渐变条

SetParaFor=Level3
ShowColumn = File6:8  ##  把file0的第四列用散点图形式画出来)
ChrWidth=20       ##这一层宽度调高点
PType  = PairWiseLink
StyleUpDown = UpDown
NoShowBackGroup=1 # 同 crBG="#FFFFFF"  一样 即没有背景
ChrSpacingRatio =0

SetParaFor=Level4    ##  下面开始处理第 4 层 参数处理  
ShowColumn = File5:5  ##  默认为file0 的第5列,改为4
BGWidthRatio=0.5        ## 背景的宽度变小点
ChrWidth=10
PType  = heatmap       ##  热图

SetParaFor=Level5   ##  下面开始处理第 5层 参数处理
ShowColumn=File1:4  ##  把file1的第五列用散点图形式画出来)
crBegin="#FC0E31"
LevelName=FST_n-b
NameRatioFontSize=0.8
NameRotate=-70
ChrWidth=75
ShiftNameY=1
NameCol = "#1B1B1B"
crBG="#FFFFFF"

SetParaFor=Level6    ##  下面开始处理第 6层 参数处理
ShowColumn=File2:4  ##  把file1的第五列用散点图形式画出来)
crBegin="#08894D"
LevelName=FST_n-w
NameRatioFontSize=0.8
NameRotate=-75
NameCol = "#1B1B1B"
ChrWidth=80
ShiftNameY=2
crBG="#FFFFFF"

SetParaFor=Level7   ##  下面开始处理第 7层 参数处理
ShowColumn=File3:4  ##  把file1的第五列用散点图形式画出来)
crBegin="#31170D"
LevelName=XPEHH_n-b
NameRatioFontSize=0.8
NameRotate=-75
NameCol = "#1B1B1B"
Cutline=2
ChrWidth=80
crBG="#FFFFFF"

SetParaFor=Level8    ##  下面开始处理第 8层 参数处理
ShowColumn=File4:4  ##  把file1的第五列用散点图形式画出来)
crBegin="#FFFD611"
LevelName=XPEHH_n-w
NameRatioFontSize=0.8
Cutline=2
NameRotate=-75
NameCol = "#1B1B1B"
crBG="#FFFFFF"

SetParaFor=Level9    ##  下面开始处理第 9层 参数处理
PType  = linesEEE
ChrWidth=22
ShowColumn=File4:4 

OUT1_LI.jpg

总结一下

拥有图层的概念,拥有一个好导师,可以给你一定的自由,用于一个领路人,多认识几个大佬。

上一篇下一篇

猜你喜欢

热点阅读