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

原图封面

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

首先简要的说一下我这里作图的要求
  • 做四组数据图
  • 做一组基因标注
  • 做好各种标注
其次我简要的说明一下我这次我遇到的问题,希望其他人可以少折腾一下
  • 软件安装不了-因为rectchr是基于perl-SVG作图的,但是SVG安装不上。。。。。。主要有以下几点,perl模块网站打不开,我也不知道咋回事。
    ++ 解决方法:github搜索安装,如果github上不了,建议上gitee。
  • 模块加载不了-模块准确安装后,加载不了,提示找不到SVG.pm
    ++ 解决方法:模块只是安装在下载目录里,需要将安装后的模块及附加文件cope到软件提示的文件夹里。
  • 文件画出来是混乱的(一般来说,文件没有问题,软件只会提示几个简单参数),还有windows转过去的文件的换行符有问题,linux与windows换行符不一样。
    ++ 解决方法:利用dos2unix 代码dos2unix file,如果没有这个软件可以用cat或者awk写脚本转换。
  • 图画的到处都是,不能区分染色体
    ++ 解决方法:每一个表头都需要有一个“#”例如 #chr start end pi
  • PairWiseLink参数不理解,一昧的抄代码不是好事,做事需要找一个契机多思考,多多的有想法。
    ++ PairWiseLink参数主要取三个东西、画一条曲线曲线的起点为start,终点为end。我一开始没有理解清楚这个层的概念,导致走了很多弯路。在做gwas基因标注的时候我建议靠近下一层的end不改动,用来指出该基因的位置,我们改变start的数据,来调整基因的位置、以避免造成gene拥挤。
  • 至今没有理解的问题、一条染色体太多基因,gene文字可以经过调整往下一个染色体上挤挤。(请别介意我用这么口语的文字,哈哈哈),但是我想往前面稍稍那又该怎么办了。
    ++ 等我想好了我在给大家说。
  • 许多不常见的参数介绍
    ++ ScaleNum=-1 用于去掉图上面的物理位置标注图(你问我为什么要去?因为我导师不认同把物理位置加在一起放成一条的作法,哎,挨批呗。)
    ++ crBegin 用于更改text的文字,与之为一起的是crMid and crEnd
    ++ NameCol=颜色 用于更改分层名称的颜色-cor or col-傻傻分不清楚,当时发现的我,我自己都笑了。
    ++ 其他的我都在配置文件里标好了

软件介绍

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

总结一下

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容