Loading... # MetaboAnalystR ## R环境配置 * **软件准备** * **R,**[官网](https://cran.r-project.org/),[官网下载,v3.6.3](https://cran.r-project.org/bin/windows/base/old/3.6.3/R-3.6.3-win.exe),[清华镜像](https://mirrors.tuna.tsinghua.edu.cn/CRAN/),[清华下载,v3.6.3](https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/base/old/3.6.3/R-3.6.3-win.exe) * **RTool,**[官网下载,v35](https://cran.r-project.org/bin/windows/Rtools/Rtools35.exe),[清华下载,v35](https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/Rtools35.exe) > **R base with version > 3.6.1 is recommended. The compatibility of latest version (v4.0.0) is under evaluation.** > * **VS Code,**[官网](https://code.visualstudio.com/),[下载](https://code.visualstudio.com/sha/download?build=stable&os=win32-x64) * **插件** * **Chinese,中文支持插件** * **R,R language support (run, snippet, viewer)** * **R LSP Client,**[R Language Server](https://github.com/REditorSupport/languageserver) * **Python** * **radian,**`pip isntall radian` * **Pandoc** ## MetaboAnalystR包的安装 * 安装R v3.6.3。 * 安装RTool v35。 * 安装Python,安装完毕后,按`win + s`搜索`cmd`,输入`pip install radian`安装`radian`。输入`where radian`获取`radian`的目录。 * 安装VS Code,安装完毕后,搜索插件`Chinese (Simplified) Language Pack for Visual Studio`、`R`、`R LSP Client`并安装。 * 安装MetaboAnalystR包 1. 打开MetaboAnalystR的[Github](https://github.com/xia-lab/MetaboAnalystR),根据作者的步骤进行 2. 打开R GUI,输入 ``` metanr_packages <- function(){ metr_pkgs <- c("impute", "pcaMethods", "globaltest", "GlobalAncova", "Rgraphviz", "preprocessCore", "genefilter", "SSPA", "sva", "limma", "KEGGgraph", "siggenes","BiocParallel", "MSnbase", "multtest","RBGL","edgeR","fgsea","devtools","crmn","httr","qs") list_installed <- installed.packages() new_pkgs <- subset(metr_pkgs, !(metr_pkgs %in% list_installed[, "Package"])) if(length(new_pkgs)!=0){ if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(new_pkgs) print(c(new_pkgs, " packages added...")) } if((length(new_pkgs)<1)){ print("No new packages added...") } } ``` 3. 输入 ``` metanr_packages() ``` 开始安装R包依赖 4. ``` # Step 1: Install devtools install.packages("devtools") library(devtools) # Step 2: Install MetaboAnalystR with documentation devtools::install_github("xia-lab/MetaboAnalystR", build = TRUE, build_vignettes = TRUE, build_manual =T) # Step 2: Install MetaboAnalystR without documentation devtools::install_github("xia-lab/MetaboAnalystR", build = TRUE, build_vignettes = FALSE) ``` 此处选择带文档安装。 5. 根据错误信息安装指定的包 ``` Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : there is no package called 'glasso' Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart 停止执行 ##################### there is no package called 'plotly' E> Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart E> 停止执行 E> ERROR: lazy loading failed for package 'MetaboAnalystR' E> * removing 'C:/Users/luoji/AppData/Local/Temp/RtmpWSOXP7/Rinst48205ab43236/MetaboAnalystR' E> ----------------------------------- E> ERROR: package installation failed ``` 6. 安装完毕 ## VS Code环境的配置 > 准备 > > 插件: > > * Chinese,中文支持插件 > * R,R language support (run, snippet, viewer) > * R LSP Client,[R Language Server](https://github.com/REditorSupport/languageserver) > * Radian,新型R终端,`pip install radian` 1. **进入VS Code设置项** 2. `R › Rpath: Windows`:`R.exe`的位置 > Path to an R executable for Windows. Must be "vanilla" R, not radian etc.! > 3. `R>Rterm:Windows`:`Radian`的路径,通常为`C:\Users\luoji\AppData\Local\Programs\Python\Python39\Scripts\radian.exe` > R path for Windows. Can also be radian etc. > 4. `R: Bracketed Paste`:勾选,如果不勾选,`Radian`则无法使用 5. `R › Rterm: Option`:删除`--no-save`、`--no-restore`,添加`--no-site-file` 6. `terminal.integrated.profiles.windows`:点击在`setting.json`中编辑,添加 ``` "Radian": { "path": "C:\\Users\\luoji\\AppData\\Local\\Programs\\Python\\Python39\\Scripts\\radian.exe" } ``` ## MetaboAnalystR包的使用 ## MetaboAnalystR包的文档 * `vignette(package="MetaboAnalystR")`:在R中显示帮助文档 * `browseVignettes("MetaboAnalystR")`:在浏览器中显示帮助文档 ### 概述 #### 包的加载 ``` # Load MetaboAnalystR library(MetaboAnalystR) ``` #### 使用MetaboAnalystR包的建议 1. 每个模块中,所使用的首个函数是`InitDataObjects`,用以创建一个可储存用户数据以进行进一步处理和分析的mSetObj对象。为使用`InitDataObjects`,需指定数据类型和将进行的分析类型。建议将`mSet`设置为mSetObj的名称,也可自定义,只需每个步骤的名称相同即可。 2. MetaboAnalystR的输出目录默认为当前工作目录,输出图、表、分析等。 3. 命令按语句顺序运行。 ### 数据格式 #### `.csv`或`.txt` **用于浓度、峰值强度、MS/NMR spectral bins,样品可位于行或列中。** 1. 样品名唯一,不支持拉丁文、希腊字母等。 2. Class labels必须follow样品名;对于双因素和时间系列的数据,必须有两个类标签对应这两个因素。 3. 对于time-series数据,time-point组必须命名为Time。此外,在不同时间点从同一受试者收集的样本应是连续的(请参阅"双因素/时间系列"的屏幕截图演示) 4. 数据仅为正数字,使用空值或NA表示缺失数据 #### `.zip` * NMR/MS peak list文件和GC/LC-MS谱数据 * 上传压缩文件 * 压缩文件中包含study中的不同组的数据 > **每个谱图一个文件,每组一个子文件夹** > > **Paired comparison,需上传指定配对信息的单独文本文件** > * GC/LC-MS谱图必须采用NetCDF,mzXML或mzDATA的格式。谱图应根据他们的Class labels > **不兼容WinZip v12.0,名称中不允许使用空格,文件大小限制为50M** > * Peak list 数据是Peak list文件按Class labels命名存放于单独文件夹中,压缩为zip。 > **如果数据包括3个组,则peak list文件应该包括三个文件夹** > * NMR Peak list文件应该包括两个逗号分割的列,第一列保存ppm,第二列保存Peak intensities > ppm:peak position > > Peak intensities: > * **MS Peak list文件:** * 两列:mass 和 intensities * 三列:mass、retention time和intensities > 两者不能共存 > > 每个峰值列表的第一行都预留给列标签,文件格式为`.csv` > ### 示例数据 ### Statistical Analysis Module #### ANOVA [假设检验—方差分析之多重比较(LSD法、Sidak法、Bonferroni法、Dunnett法、Tukey法、SNK 法、Duncan法)](https://blog.csdn.net/huangguohui_123/article/details/103966000) [如何理解与计算FDR?](https://zhuanlan.zhihu.com/p/64925777) LSD:LSD法计算最小显著差异,当两组均数差大于LSD时,差异达到显著的水平。LSD法的灵敏度最高,但会因为对比的频数增加使得第一类错误(**H\_0**为真时拒绝**H\_0**)的概率增加。 #### Tukey 计算HSD统计量,如果两组均数的差异大于该极差,认为差异显著,拒绝**H\_0**,认为两组均数不同。 Tukey法较保守,较不易发现显著差异,要求比较的样本容量相差不大,通常用于样本容量相同的组之间均数的比较。 ### SAM 样本量较小(3\~8)时,方差估计不稳定,建议使用SAM,当样本量>10时,方差估计稳定,可使用t-test或ANOVA。 SAM 识别的重要化合物与ANOVA 识别的化合物几乎相同。 ### PatternHunter #### distance measure 计算变量之间的线性距离 #### Pearson r 对异常值、不等方差和非正态敏感 #### Spearman Rank correlation 关注变化方向而不是变化幅度 #### PLS-DA,偏最小二乘判别分析 得分图和载荷图同PCA,但其在分析时提前赋予每个样本的分组信息,以扩大组间差异,减少组内差异,多用来寻找标记物。 为了评估两组之间的实际差异,可进行PLS-DA和OPLS-DA分析,通过交叉验证,得出模型的参数: * R2代表模型解释的方差,Q2代表模型的预测能力 [【机器学习】Cross-Validation(交叉验证)详解](https://zhuanlan.zhihu.com/p/24825503) [机器学习的评价指标(二)-SSE、MSE、RMSE、MAE、R-Squared](https://blog.csdn.net/faithmy509/article/details/81217417) [模型评估和超参数调整(二)——交叉验证 (cross validation)](https://blog.csdn.net/Amy_mm/article/details/79902414) [An Introduction to Statistical Learning (statlearning.com)](https://www.statlearning.com/) **交叉验证:** LOOCV,将数据集分为训练集和测试集,但只用一个数据作为测试集,其它都作为训练集(数据数量为N),并将此重复N次。即每次取出一个数据作为测试集的唯一元素,而其他n-1个数据都作为训练集用于训练模型和调参。结果就是我们最终训练了n个模型,每次都能得到一个MSE。而计算最终test MSE则就是将这n个MSE取平均。(MSE,均方误差,真实值与预测值之差,平方后求和取平均,类似线性回归的L2损失函数,即值越小越好)  LOOCV的优点,不受测试集合训练集划分方法的影响,因为每一个数据都单独的做过测试集。同时,其用了n-1个数据训练模型,也几乎用到了所有的数据,保证了模型的bias更小。不过LOOCV的缺点也很明显,那就是计算量过于大,是test set approach耗时的n-1倍。 K-fold Cross Validation: 另外一种折中的办法叫做K折交叉验证,和LOOCV的不同在于,我们每次的测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定。比如,如果K=5,那么我们利用五折交叉验证的步骤就是: 1.将所有数据集分成5份 2.不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的MSE, 3.将5次的MSE取平均得到最后的MSE #### OPLS-DA,正交偏最小二乘判别分析 在OPLS-DA分析中,寻找标记物通常使用S-plot。如图中所示,得分图中,两组样本分布在y轴两侧,通过S-plot可以获得标记物在两组中相对含量的变化。也就是说,处在S-plot右上角的化合物(距离原点越远,对分类贡献越大)在处在得分图y轴右侧的样本中含量较高,反之亦然。 最后修改:2024 年 02 月 02 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏