专栏名称: 生信宝典
生物信息分析入门、晋级和经验分享。Linux、R、Python学习教程;高通量测序数据分析学习教程;生信软件安装教程。所有内容均为原创分享,致力于从基础学习到提高整个过程。
目录
相关文章推荐
生物学霸  ·  加速申博,又一医学院,力争更名 ·  2 天前  
生物学霸  ·  养细胞全凭运气?这一步做好了细胞库库长 ·  2 天前  
生物学霸  ·  王钦阳课题组博士后招聘 ·  3 天前  
生物学霸  ·  师姐呕心沥血整理的 qRT-PCR 注意事项 ·  3 天前  
BioArt  ·  Sci ... ·  6 天前  
51好读  ›  专栏  ›  生信宝典

R语言学习 - 箱线图一步法

生信宝典  · 公众号  · 生物  · 2017-07-17 07:00

正文

箱线图 - 一步绘制

绘图时通常会碰到两个头疼的问题:

  1. 有时需要绘制很多的图,唯一的不同就是输入文件,其它都不需要修改。如果用R脚本,需要反复替换文件名,繁琐又容易出错。 (R也有命令行参数,不熟,有经验的可以尝试下)

  2. 每次绘图都需要不断的调整参数,时间久了不用,就忘记参数怎么设置了;或者调整次数过多,有了很多版本,最后不知道用哪个了。

为了简化绘图、维持脚本的一致,我用bash对绘图命令做了一个封装,通过配置修改命令行参数,生成相应的绘图脚本,然后再绘制。

首先把测试数据存储到文件中方便调用。数据矩阵存储在boxplot.normal.datasampleGroupboxplot.melt.data文件中 (TAB键分割,内容在文档最后。如果你手上有自己的数据,也可以拿来用)。

使用正常矩阵默认参数绘制箱线图

# -f: 指定输入的矩阵文件,第一列为行名字,第一行为header
      列数不限,列名字不限;行数不限,行名字默认为文本
sp_boxplot.sh -f boxplot.normal.data

箱线图出来了,但有点小乱。

# -f: 指定输入的矩阵文件,第一列为行名字,第一行为header
      列数不限,列名字不限;行数不限,行名字默认为文本
# -P: none, 去掉legend (uppercase P)
# -b: X-axis旋转45度
# -V: TRUE 绘制小提琴图
sp_boxplot.sh -f boxplot.normal.data -P none -b 45 -V TRUE

绘制单个基因的小提琴图加抖动图

# -q: 指定某一行的名字,此处为基因名,绘制基因A的表达图谱
# -Q: 指定样本分组,绘制基因A在不同样品组的表达趋势
# -F Group: sampleGroup中第二列的名字,指代分组信息,根据需要修改
# -J TRUE: 绘制抖动图 jitter plot
# -L: 设置X轴样品组顺序
# -c TRUE -C "'red', 'pink', 'blue'": 指定每个箱线图的颜色
sp_boxplot.sh -f boxplot.normal.data -q A -Q sampleGroup -F Group -V TRUE -J TRUE -L "'zygote','2cell','4cell'" -c TRUE -C "'red', 'pink', 'blue'" -P none

使用melted矩阵默认参数绘箱线图

# -f: 指定输入文件
# -m TRUE: 指定输入的矩阵为melted format
# -d Expr:指定表达值所在的列
# -F Rep: 指定子类所在列,也就是legend 
# -a Group:指定X轴分组信息
# -j TRUE: jitter plot
sp_boxplot.sh -f boxplot.melt.data -m TRUE -d Expr -F Rep -a Group  -j TRUE

# 如果没有子类,则-a和-F指定为同一值
# -R TRUE: 旋转boxplot
sp_boxplot.sh -f boxplot.melt.data -m TRUE -d Expr -a Group -F Group -J TRUE -R TRUE

参数中最需要注意的是引号的使用:

  • 外层引号与内层引号不能相同

  • 凡参数值中包括了空格括号逗号等都用引号括起来作为一个整体。


    转发获取脚本

为了推广,也为了激起大家的热情,如果想要sp_boxplot.sh脚本的,还需要劳烦大家动动手,转发此文章到朋友圈,并留言索取。

也希望大家能一起开发,完善功能。

R绘图学习

R语言学习  -  入门环境Rstudio

R语言学习  - 热图绘制  (heatmap)

R语言学习  -  基础概念和矩阵操作

R语言学习  -  热图美化

R语言学习 - 热图简化

R语言学习 - 线图绘制

R语言学习 - 线图一步法

文章集锦

Linux学习  R统计绘图  Python教程  Perl学习

生信傻瓜  NGS持续更新中 (链接失效,点击菜单知识库查看)

长按关注生信宝典

 

长按关注宏基因组


测试数据

#boxplot.normal.data
Name    2cell_1    2cell_2    2cell_3    2cell_4    2cell_5    2cell_6    4cell_1    4cell_2    4cell_3    4cell_4    4cell_5    4cell_6    zygote_1    zygote_2    zygote_3    zygote_4    zygote_5    zygote_6
A    4    6    7    5    8    6    3.2    5.2    5.6    3.6    7.6    4.8    2    4    3    2    4    2.5
B    6    8    9    7    10    8    5.2    7.2    7.6    5.6    9.6    6.8    4    6    5    4    6    4.5
C    8    10    11    9    12    10    7.2    9.2    9.6    7.6    11.6    8.8    6    8    7    6    8    6.5
D    10    12    13    11    14    12    9.2    11.2    11.6    9.6    13.6    10.8    8    10    9    8    10    8.5
E    12    14    15    13    16    14    11.2    13.2    13.6    11.6    15.6    12.8    10    12    11    10    12    10.5
F    14    16    17    15    18    16    13.2    15.2    15.6    13.6    17.6    14.8    12    14    13    12    14    12.5
G    15    17    18    16    19    17    14.2    16.2    16.6    14.6    18.6    15.8    13    15    14    13    15    13.5
H    16    18    19    17    20    18    15.2    17.2    17.6    15.6    19.6    16.8    14    16    15    14    16    14.5
I    17    19    20    18    21    19    16.2    18.2    18.6    16.6    20.6    17.8    15    17    16    15    17    15.5
J    18    20    21    19    22    20    17.2    19.2    19.6    17.6    21.6    18.8    16    18    17    16    18    16.5
L    19    21    22    20    23    21    18.2    20.2    20.6    18.6    22.6    19.8    17    19    18    17    19    17.5
M    20    22    23    21    24    22    19.2    21.2    21.6    19.6    23.6    20.8    18    20    19    18    20    18.5
N    21    23    24    22    25    23    20.2    22.2    22.6    20.6    24.6    21.8    19    21    20    19    21    19.5
O    22    24    25    23    26    24    21.2    23.2    23.6    21.6    25.6    22.8    20    22    21    20    22    20.5
#boxplot.melt.data

Gene    Sample    Group    Expr    Rep
A    zygote_1    zygote    2    1
A    zygote_2    zygote    4    2
A    zygote_3    zygote    3    3
A    zygote_4    zygote    2    4
A    zygote_5    zygote    4    5
A    zygote_6    zygote    2.5    6
A    2cell_1    2cell    4    1
A    2cell_2    2cell    6    2
A    2cell_3    2cell    7    3
A    2cell_4    2cell    5    4
A    2cell_5    2cell    8    5
A    2cell_6    2cell    6    6
A    4cell_1    4cell    3.2    1
A    4cell_2    4cell    5.2    2
A    4cell_3    4cell    5.6    3
A    4cell_4    4cell    3.6    4
A    4cell_5    4cell    7.6    5
A    4cell_6    4cell    4.8    6
#sampleGroup
Sample    Group
zygote_1    zygote
zygote_2    zygote
zygote_3    zygote
zygote_4    zygote
zygote_5    zygote
zygote_6    zygote
2cell_1    2cell
2cell_2    2cell
2cell_3    2cell
2cell_4    2cell
2cell_5    2cell
2cell_6    2cell
4cell_1    4cell
4cell_2    4cell
4cell_3    4cell
4cell_4    4cell
4cell_5    4cell
4cell_6    4cell