1. SAMR简介
SAM(Significance Analysis of Microarrays)在基因芯片数据时代中被开发出来进行基因表达量差异分析。该算法也能用于进行RNA-Seq数据的基因表达量差异分析,但貌似较少人会用它进行RNA-Seq数据分析。
最近在一篇对蛋白组数据差异分析软件进行比较的文章中,SAM结果表现最优。本文对基于R软件的SAM算法软件SAMR的使用进行简单讲述。
2. SAMR软件的安装和启动
打开R软件,输入如下命令安装SAMR相关的包:
$ R > install.packages(c("samr", "matrixStats", "GSA", "shiny", "openxlsx")) > source("http://bioconductor.org/biocLite.R") > biocLite("impute")
要注意的是,对openxlsx包的安装可能会失败(我使用的是R-3.2.0版本),则在上述命令中去除对openxlsx的安装,选择手动下载并安装老版本的openxlsx包:
$ wget https://cran.r-project.org/src/contrib/Archive/openxlsx/openxlsx_2.4.0.tar.gz $ R CMD INSTALL openxlsx_2.4.0.tar.gz
启动SAMR软件:
$ R > library(shiny) > runGitHub("SAM", "MikeJSeo")
启动SAMR软件,则会自动打开CentOS 6.8系统自带的火狐浏览器,进入软件的网页界面。
3. SARM软件使用
3.1 输入文件准备
软件的输入文件必须是xlsx格式的EXCEL文件。进行蛋白组表达量数据进行分析,其文件内容要求如下:
1. 第一列是基因Name,第二列是基因ID,每个基因ID应该独一无二。 2. 第一行表示样品名,第一行第一列和第一行第二列是空着的,从第三列开始表示样品名,且样品名仅能是数字1或2,代表两个不同的样品。都使用数字1表示样品1的多个重复,都使用数字2表示样品2的多个重复。虽然SARM能分析多个样品的数据,但是其结果格式不好,一般是进行两两比较。 3. 若有数据缺失,则某行某列不填入数据,或填入非数字(推荐 NA)代替。 4. 若有多组样品进行比较,则需要准备多个excel文件,而不是一个excel文件,多个sheet。
3.2 在网页中进行SAMR操作
按如下步骤进行操作:
1. 点击 Browse,选中目标excel文件。 2. 在 Minimum fold change 一栏中填写一个最小的差异倍数值,比如 1.5 或 2 等。 3. 在 Data type 一栏选择默认的 Array 。 4. 在 Response Type 一栏选择 Two class unpaired。这个选择项有很多,与输入文件的数据格式相关,我们是对两个样品进行比较,故选择此选项。输入文件第一列不是1和2,是不同的数值(比如血压),此处则选择Quantitative。 5. 在 Analysis Type 一栏选择默认的 Standard 即可。 6. 在 Test Statistic 一栏选择默认的 T-statistic 即可。 7. 在 Median Center the arrarys 一栏选择 Yes。选择Yes表示软件会根据中位数来对数据进行标准化,即让每一列的中位数都变成零。这样每个样品的数据都具有相同的中位数,相当于进行了样品间的标准化。软件推荐在输入数据之前进行标准化(不如TMM算法进行标准化),若输入的数据是标准化后的数据,则此栏选择默认的 No。 8. 其它参数选择一般情况下选择默认的即可。 9. 点击左上角的 Run 按钮进行分析,分开得到结果,在右边各个标签栏进行查看结果。 10. 在 Delta Table 页面下查看 Median FDR 值,从上往下找到该值变为0.05时的delta值,再在左侧 Delta 一栏选择 manually Enter Delta, 然后再在 Delta value 一栏填入该值,再进行计算。然后点击Current Settings标签页,看其False Discovery Rate的值,手动调整 Delta 值,直到 FDR 值最接近并低于 0.05 为止。Delta值越大,FDR值越小。 11. 在 Paste the filepath to save the output 一栏填入需要输出的文件夹路径,该路径一定要存在,在其下一栏填入输出文件的前缀,比如 out 。 在点击 Save,然后会输出结果文件 out.xlsx,该excel文件有多个sheet分别多个标签页中的结果。
4. SARM 软件算法和原理
这个比较复杂,我也不怎么搞懂,包括结果中一些Delta, Score(d), q-value, FDR, localfdr等,有点糊涂。等以后有时间搞更明白了,再添加解释。
Delta value: Score(d):T检验的的d值,由 Numerator(r) / Denominator(s+s0) 得到。