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

时间:2022-04-26
本文章向大家介绍R语言学习 - 箱线图一步法,主要内容包括箱线图 - 一步绘制、测试数据、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

箱线图 - 一步绘制

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

  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

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

  • 外层引号与内层引号不能相同
  • 凡参数值中包括了空格括号逗号等都用引号括起来作为一个整体。

测试数据

#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