![a4740dabeeb098a1cad657c6ed734c8d.png](https://i-blog.csdnimg.cn/blog_migrate/55aa6d78eecde43b9e008e1271e8d0fa.jpeg)
|撰文:莫比
之前生信大神谢老师在基迪奥生信交流群展示了一张用R语言绘制的组合图,令群内无数粉丝疯狂不已。这张图是这样子的:
![7aa192c9e5a40d401987dbc6b64ea3d9.png](https://i-blog.csdnimg.cn/blog_migrate/bc8990c8b645da8faa8acf398f890e0f.jpeg)
对于我来说,绘制这张图的难点是如何将3张图组合到一起,而且“右图”的绘制方向与“上图”相反才能和主图(散点图)的坐标轴一致。
此外还有直方图和累计频率点线图的组合、Offset axis、全画布辅助线的添加、图例的添加等,如果不精通R的绘图函数,寸步难行!
![17f181e1ff441983af70098f1f9c82a8.png](https://i-blog.csdnimg.cn/blog_migrate/f6ea4abf1d9dac96d3a00eac14fe9172.png)
那么,除了R语言,常规的作图软件比如Prism可以做到吗?
于是,找谢老师要了范例数据准备验证一下。顺便讲一下,如果大家对全基因组关联分析(GWAS)感兴趣可以前往Omicshare课堂观看谢老师的系列视频教程。
我的作图思路是:分别绘制“主”、“上”、“右”三个图表,然后把三个工程文件merge成1个,使用Prism的layout功能将三个图表组合在一起,最后手动添加辅助线、图例即可。下面就一起看下如何绘制吧!
|“主图”绘制
数据准备的准备很简单,只需π_poolA/π_poolB和Fst这两列数据即可,然后筛选出π_poolA/π_poolB≥1.174且Fst≥0.069的数据,以及其余数据。为了方便快速演示,我这里仅选取了3万个位点数据。如果不会筛选作图数据,可参考《如何使用Excel对数据进行筛选?》一文的方法。
![ee2dffefc7be89f7758a1f9139927819.png](https://i-blog.csdnimg.cn/blog_migrate/3453b55a0a079cec13c9c5d9e957d8dd.png)
然后,将数据复制粘贴到Prism的XY表格中,绘制XY分组散点图即可,数据表格的样式如下:
![bd46719c42a9c425fc55bbc3d918fae8.png](https://i-blog.csdnimg.cn/blog_migrate/0bd5d9f9ea56323d9d427743eb1dae96.jpeg)
如果不会画分组散点图,可以参考《Graphpad Prism能不能画火山图?》或《Graphpad Prism能不能画九象限图?》的作图方法。如果不想看图文教程,也可以点击阅读原文前往Omicshare课堂观看视频教程。最终绘制的主图如下:
![a33af0c6d95dd7f03f4db3dbbc6a33a0.png](https://i-blog.csdnimg.cn/blog_migrate/043ef912493fb313546c339dbf40f258.jpeg)
|“上图”绘制
接着新建一个工程文件,新建Column型的表格,将π_poolA/π_poolB这列数据复制粘贴到表格中,然后点Analyze按钮,做2次频率分布分析。
![70e97132b7298233c4307f03ce311790.png](https://i-blog.csdnimg.cn/blog_migrate/292646b0f340e945ac2c88f6c3fd2da3.jpeg)
参数设置如下,注意将两次分析的Bin width(可理解为组距)都设置为0.01,至于为什么是0.01,可根据数据的分布范围估计,保证Bin的数量约200个左右,这样画出的“密度”曲线比较光滑。
![c834b5614a2739753fe8e14462298abe.png](https://i-blog.csdnimg.cn/blog_migrate/a5f8523fbd985a1c273d5c5c7e066a61.jpeg)
然后新建1个XY表格,将两次分析的结果合并到一个表中,并依据π_poolA/π_poolB≥1.174将频率直方图的数据分成两组,用以实现直方图的分组着色效果,方法类似分组散点图,数据准备如下。
![d06d872b57440810af6c625c473aaa5e.png](https://i-blog.csdnimg.cn/blog_migrate/b01362cded6c0bed96979ddb2922c950.jpeg)
然后,在Graph选项下,图表类型选XY的Spikes,如下,你可能会问:为什么不是柱状图呢?因为柱状图的X轴的范围无法自定义。
![9eb46cb8037465554f8b78b3cdaa106e.png](https://i-blog.csdnimg.cn/blog_migrate/c8c3726fa278b60506ce3c88d2db9a2a.jpeg)
接下来需要对图表进行个性化设置,比如将直方图和点线图的数据映射到两个Y轴上,设置X轴的长度、范围与主图的X轴一致等(如下),具体操作看之前系列的教程,这里不再赘述。
![643fa03ecbae65295fc36d8e27ca896e.png](https://i-blog.csdnimg.cn/blog_migrate/0bbaa6aed8cfc6835e7863f76204ee24.jpeg)
为了之后方便拼图,这里暂时不隐藏X轴,删掉图例,“上”图的绘制效果如下:
![e37a9c80a442415bfb4bb895fdc7a492.png](https://i-blog.csdnimg.cn/blog_migrate/f13c016d7c7586b1d705f15075e45e12.jpeg)
|“右图”绘制
方法与上图绘制一样,新建Column型的表格,将Fst这列数据复制粘贴到表格中,然后点Analyze按钮,Bin width设置为0.01,做2次频率分布分析。然后,合并分析数据作图如下:
![ba52af03fcadb51dd04d4bc6533d9d82.png](https://i-blog.csdnimg.cn/blog_migrate/f56a44e20b4c8d2b7347db9b4f75cd5f.jpeg)
很明显,如果放置在主图的右侧,顺时针旋转90°,图表的原点在图表的左上角,无法和主图一一对应。那么如何让原点处于图表右下角呢?Prism虽有原点位置设置功能,试了下,让人吐血。只能手动改变横坐标顺序了,“你不动,我动!” 唉,期待Prism 9 XY型数据也能横向绘制图表吧!
按照主图Y轴的范围,裁剪掉多余的数据(非常重要!),然后将X轴的数据,复制到Excel中降序排列后再粘贴回Prism即可快速完成顺序颠倒,手动修改刻度标签后效果如下:
![f9748aea03e93c324ee12f21253ac0fb.png](https://i-blog.csdnimg.cn/blog_migrate/74a12131ba1cf654c5ed8fb09eff42cf.jpeg)
至于为什么用Excel,那是因为Prism无法只对一列排序而其他列不动!
| 图表组合
终于到了最后一步,先通过file/Merge,将3个工程文件合并成一个,当然在合并之前你也可以复制一份,并将之前一些中间分析结果、图表删掉。合并文件后,在Layouts选项下,新建空白的布局,如下:
![6c7e0f30affa0b71864c6713e8d5211d.png](https://i-blog.csdnimg.cn/blog_migrate/31b80fc90e6c8e89d76b893cf7805a7c.jpeg)
从左侧导航栏把依次将3个图表拖到Layout1画布中,并右键“右图”,顺时针旋转90°,排列好之后使用Draw选项下的直线工具绘制虚线,如下。
![dd0c86951e4ef42c3a7cbc2317d5c5dd.png](https://i-blog.csdnimg.cn/blog_migrate/ea8cb6d7ed4118355b46b9bbcd27dede.jpeg)
回到单个图表中隐藏掉X轴,以及主图的辅助线,即可完成图表的组合,如下,满意后导出图片即可。
![f7d36db54c42dc5a655fe63e89377154.png](https://i-blog.csdnimg.cn/blog_migrate/a9808c9c2a447eed8f0123c263f6976b.jpeg)
如果使用全部(10万多个)位点的数据,虽然没有Origin那样的Fast模式,Prism也能抗的住,绘制效果如下图,不过你可能需要一些耐心!
![f6fbe0d23c2394b39e8f9206d66f3039.png](https://i-blog.csdnimg.cn/blog_migrate/66f9027c96c3284ad6143a0ea91ed181.jpeg)
最终的绘制效果如下:
![ac2fba73f9efc36755775da89b77ee7f.png](https://i-blog.csdnimg.cn/blog_migrate/672c10d165e808c17ecaddbad75c3837.jpeg)
最后,如果你还是没学会,可以先收藏起来,跟着实操哦~
也可以到OmicShar课堂,观看Graphpad Prism科研作图系列视频教程,好啦,今天的内容就到这里啦!