在翻译了 peakPantheR 后,我想按照它的教程在自己的电脑上走一遍,以便了解其中的命令细节。
设置镜像仓库,并将一些镜像的源替换成国内的,以便加速下载
# 设置镜像仓库
setRepositories(ind=1:4)
# int数值对应的镜像仓库
# 1: + CRAN
# 2: BioC software
# 3: BioC annotation
# 4: BioC experiment
# 5: BioC extra
# 6: + CRAN (extras)
# 7: Omegahat
# 8: R-Forge
# 9: rforge.net
# 更换镜像源(清华):国内来说,下载就能更快
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
先安装一些依赖包
# 安装BiocInstaller
install.packages("BiocInstaller")
# 安装依赖薄mzR
install.packages("mzR")
# 安装依赖包MSnbase
install.packages("MSnbase")
从GitHub直接安装peakPantheR
的开发版本:
# 安装devtools
install.packages("devtools")
# 用devtools从GitHub安装peakPantheR
devtools::install_github("phenomecentre/peakPantheR")
安装 faahKO 包,这个包提供了一组MS光谱(MS spectra),我们可以使用它作为原始数据进行peakPantheR
注释
# 安装faahKO
install.packages('faahKO')
我在Linux系统中部署R并安装上述几个包的时候遇到了一些错误,现在将这些错误记录下来以便后续在新的Linux中安装的时候需要这些信息。
下面是我当前R和Linux的信息。
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)
Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.19.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.1 tools_3.5.1
错误:/usr/bin/ld: cannot find -lxxx
其中xxx即表示函式库文件名称,上述问题就是缺少对应的函式库(lib)文件,需要安装缺少的lib
# 例如这样的错误,就是缺少libc.so
/usr/bin/ld: cannot find -lc
# 解决方法:安装对应的lib
$ apt-get install libc-dev
错误:/bin/bash: nc-config: command not found
nc-config
是libnetcdf-dev
包的一部分,上述问题的解决方法就是安装这个包
$ apt-get install libnetcdf-dev
错误:ERROR: configuration failed for package ‘XML’
这个是因为R包XML
需要libxml2-dev
,所以按照相应的包即可:
$ apt install libxml2-dev
小结
基本按照下面几个依赖包就能顺利在Linux的R中安装peakPantheR
所需要的包:
# 可以在安装R包前,在系统中安装下面的三个依赖包
$ apt-get install libc-dev
$ apt-get install libnetcdf-dev
$ apt install libxml2-dev
Windows环境下的部署还没有试过,等以后有机会再说
我们直接将peakPantheR 3: Parallel Annotation
的内容整理如下:
### 基于对照组的数据分析,修正化合物的相关信息(保留时间,m/z等)
## 第一步:导入数据
# 导入faahKO包
library(faahKO)
# 获得faahKO中三个数据文件的路径,这些文件作为对照组(QC组)
input_spectraPaths <- c(system.file('cdf/KO/ko15.CDF', package = "faahKO"),
system.file('cdf/KO/ko16.CDF', package = "faahKO"),
system.file('cdf/KO/ko18.CDF', package = "faahKO"))
# 显示文件的路径信息
input_spectraPaths
# 构建目标化合物的特征信息(targetFeatTable)
input_targetFeatTable <- data.frame(matrix(vector(), 2, 8, dimnames=list(c(), c("cpdID", "cpdName", "rtMin", "rt", "rtMax", "mzMin", "mz", "mzMax"))), stringsAsFactors=F)
input_targetFeatTable[1,] <- c("ID-1", "Cpd 1", 3310., 3344.888, 3390., 522.194778, 522.2, 522.205222)
input_targetFeatTable[2,] <- c("ID-2", "Cpd 2", 3280., 3385.577, 3440., 496.195038, 496.2, 496.204962)
input_targetFeatTable[,c(3:8)] <- sapply(input_targetFeatTable[,c(3:8)], as.numeric)
# 显示目标化合物的相关信息
input_targetFeatTable
# 构建三个数据的元数据信息(spectra Metadata)
input_spectraMetadata <- data.frame(matrix(c("sample type 1", "sample type 2", "sample type 1"), 3, 1, dimnames=list(c(), c("sampleType"))), stringsAsFactors=F)
# 显示这些额外的元数据
input_spectraMetadata
## 第二步:初始化数据
# 导入peakPantheR包
library(peakPantheR)
# 初始化数据,获得`peakPantheRAnnotation` 对象
init_annotation <- peakPantheRAnnotation(spectraPaths = input_spectraPaths,
targetFeatTable = input_targetFeatTable,
spectraMetadata = input_spectraMetadata)
# 显示`peakPantheRAnnotation` 对象
init_annotation
## 第三步:目标化合物第一次注释分析
# 第一次注释分析,结果保存在 annotation_result 中
annotation_result <- peakPantheR_parallelAnnotation(init_annotation, ncores=0, verbose=TRUE)
# 显示分析成功的文件个数
nbSamples(annotation_result$annotation)
# 显示第一次分析后的`peakPantheRAnnotation` 对象的相关信息,与 init_annotation 相比较
data_annotation <- annotation_result$annotation
data_annotation
# 显示分析失败的文件个数
annotation_result$failures
## 第四步:第一次分析结果的可视化检查和处理
# 基于第三步的结果,确定 uROI 和 FIR,更新相关信息
updated_annotation <- annotationParamsDiagnostic(data_annotation, verbose=TRUE)
# 显示更新后的`peakPantheRAnnotation` 对象的相关信息,与 data_annotation 相比较,已经有 uROI
updated_annotation
# 设置可视化相关参数:颜色等
uniq_sType <- sort(unique(spectraMetadata(updated_annotation)$sampleType),na.last=TRUE)
col_sType <- unname( setNames(c('blue', 'red'),c(uniq_sType))[spectraMetadata(updated_annotation)$sampleType] )
# 输出可视化的图,并保存updated_annotation对象的信息到本地,名称为:annotationParameters_summary.csv
outputAnnotationDiagnostic(updated_annotation, saveFolder="/home/cxt/MS", savePlots=TRUE, sampleColour=col_sType, verbose=TRUE, ncores=2)
### 基于QC组的分析,将相关设置应用到全部的研究样本中(WT组和KO组)
## 第五步:初始化研究样本的数据
# 前期修改参数文件所在目录
update_csv_path <- '/home/cxt/MS/annotationParameters_summary.csv'
# 导入前期修改的参数,并生成一个`peakPantheRAnnotation` 对象
new_annotation <- peakPantheR_loadAnnotationParamsCSV(update_csv_path)
# 显示`peakPantheRAnnotation` 对象的相关内容
new_annotation
# 将研究样本加入 new_annotation 对象中
# 样本数据所在路径
new_spectraPaths <- c(system.file('cdf/KO/ko15.CDF', package = "faahKO"),
system.file('cdf/WT/wt15.CDF', package = "faahKO"),
system.file('cdf/KO/ko16.CDF', package = "faahKO"),
system.file('cdf/WT/wt16.CDF', package = "faahKO"),
system.file('cdf/KO/ko18.CDF', package = "faahKO"),
system.file('cdf/WT/wt18.CDF', package = "faahKO"))
# 样本元数据
new_spectraMetadata <- data.frame(matrix(c("KO", "WT", "KO", "WT", "KO", "WT"), 6, 1, dimnames=list(c(), c("Group"))), stringsAsFactors=F)
# 将研究样本加入 new_annotation 对象中
new_annotation <- resetAnnotation(new_annotation, spectraPaths=new_spectraPaths, spectraMetadata=new_spectraMetadata, useUROI=TRUE, useFIR=TRUE)
# 显示 new_annotation 对象的相关信息
new_annotation
## 第六步:目标化合物第二次注释分析(基于研究样本)
# 第二次注释分析,结果保存在 new_annotation_result 中
new_annotation_result <- peakPantheR_parallelAnnotation(new_annotation, ncores=0, verbose=FALSE)
# 显示分析成功的文件个数
nbSamples(new_annotation_result$annotation)
# 显示第一次分析后的`peakPantheRAnnotation` 对象的相关信息,与 init_annotation 相比较
final_annotation <- new_annotation_result$annotation
final_annotation
# 显示分析失败的文件个数
new_annotation_result$failures
# 再次可视化相关参数:颜色等
uniq_group <- sort(unique(spectraMetadata(final_annotation)$Group),na.last=TRUE)
col_group <- unname( setNames(c('blue', 'red'),c(uniq_sType))[spectraMetadata(final_annotation)$Group] )
# 输出可视化的图,并保存 final_annotation 对象的信息到本地
outputAnnotationDiagnostic(final_annotation, saveFolder='/home/cxt/MS/MS', savePlots=TRUE, sampleColour=col_group, verbose=TRUE)
## 第七步:最终分析结果保存
# 显示第一个研究样本中的化合物峰信息(peakTables)
peakTables(final_annotation)[[1]]
# 提取全部的样本中,每一个化合物的检测到的峰面积(peak area)
annotationTable(final_annotation, column='peakArea')
# 保存全部的注释分析结果:包含化合物元数据、光谱元数据和一个包含`peakTables`每一列信息的文件 (行:样本;列:化合物
outputAnnotationResult(final_annotation, saveFolder='/home/cxt/MS/MS/', annotationName='ProjectName', verbose=TRUE)
在上面分析中,我们总体上可以概况为下面三个方面:
本文由 石九流 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://blog.computsystmed.com/archives/practice-peakpanther
最后更新:2019-05-26 19:34:10
Update your browser to view this website correctly. Update my browser now