注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云之南

风声,雨声,读书声,声声入耳;家事,国事,天下事,事事关心

 
 
 

日志

 
 
关于我

专业背景:计算机科学 研究方向与兴趣: JavaEE-Web软件开发, 生物信息学, 数据挖掘与机器学习, 智能信息系统 目前工作: 基因组, 转录组, NGS高通量数据分析, 生物数据挖掘, 植物系统发育和比较进化基因组学

网易考拉推荐

超算安装R及bsub提交R任务  

2013-04-27 20:33:00|  分类: R&Bioconductor |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1 在CRAN上下载最新R版本的源代码,即文件以.tar.gz结尾
2 解压文件 tar -zxvf R-*(“R-*是R的具体版本文件信息”)并进入解压文件夹
3 注意查看“INSTALL”文件,这个文件简要介绍了安装步骤。之后,configure
./configure --prefix=/home/me/R --with-x=no (如果x-window不能用的话)

 可以加这个 --enable-R-shlib
(--enable-R-shlib保证了R package的共享)
4 安装之 make, make install
5 因为安装的R不是在root下,所以需要设置自己登录用户的PATH和添加R_HOME和R_LIB路径,设置方法是修改用户路径下的.bashrc文件,"..."省略了安装文件路径
=====================================================
# add R PATH
# Source global definitions 
if [ -f /etc/bashrc ]; then
. /etc/bashrc 
fi 
export PATH=/home/.../R/bin:$PATH

# R_HOME and R_LIB 
PATH=${R_HOME}/bin:$PATH 
export R_HOME=/home/.../R/bin/R 
export R_LIBS=/home/.../R/lib64/R/library 
export LD_LIBRARY_PATH=${R_HOME}/lib:${LD_LIBRARY_PATH}
======================================================
之后,在命令行输入R,可以进入自己安装的R。

1 离线安装R package
通常我们在安装R的package时候,是通过连接网络,然后直接使用函数install.packages( )。R会很聪明地将所有包的依赖关系搞定。但是,我们离线本地安装R的*.tar.gz的package呢?同样,使用install.packages( )函数,比如install.packages("mypkg.tar.gz", repos = NULL)。但是,需要自己根据“报错信息”安装依赖的包。

2 安装包:
R CMD INSTALL package_name.tgz 将tar.gz包全放到一个目录下。
运行这个命令安装全部包:
R CMD INSTALL Biobase_1.14.1.tar.gz affyio_1.4.1.tar.gz affy_1.14.2.tar.gz annotate_1.14.1.tar.gz
   genefilter_1.14.1.tar.gz RColorBrewer_0.2-3.tar.gz geneplotter_1.14.0.tar.gz limma_2.10.5.tar.gz pixmap_0.4-7.tar.gz
   zoo_1.3-2.tar.gz sandwich_2.0-2.tar.gz strucchange_1.3-2.tar.gz vsn_2.2.0.tar.gz tilingArray_1.14.0.tar.gz
   GO_1.16.0.tar.gz davidTiling_1.2.4.tar.gz

命令行执行R CMD 
为了能够在LSF超算系统上用bsub提交R作业,需要学会使用命令行运行R编写的脚本。在linux下可以使用R CMD BATCHd等一系列命令。
具体使用方法查看文档man R; man Rscript 

第一种方法:R CMD BATCH [options] infile [outfile]
options:默认--restore -- save --no-readline;--help 查看帮助信息;--version 查看R版本;--slave 只打印R脚本的输出,而不显示脚本具体执行情况;--no-timing 去除输出文档结束的运行时间输出。
outfile:如果没有命名,会照搬infile名字+ .Rout
其实,R CMD BATCH是 R CMD command [arguments]其中的一种,具体可以查看man R的文档。
问题:knitr是一个什么角色?

第二种方法:R [options] [< infile] [> outfile]
options:--version 查看R版本;--slave 只打印R脚本的输出,而不显示脚本具体执行情况; --vanilla是 --no-save, --no-restore, --no-site-file, --no-init-file  and --no-environ的合体;--args 后面是需要传递的参数。注意:options必须选择--save,--no-save, --vanilla三个中的一个。
比如编辑一个testR2.R文件如下:
===================================================================
args <- commandArgs(TRUE)  # TRUE should be set to choose the right arguments
paste(c("I", "like", args[1], "and", args[2], "!"), collapse = " ")
===================================================================
接着运行R --slave --vanilla --args tea coffee<testR2.R >testR.Rout
查看输出结果
========================================
$ cat testR.Rout
[1] "I like tea and coffee !"
========================================

第三种方法:Rscript [--options] [-e expr] file [args]。其中,Rscript在不同的机器上可能不一样,使用$ which Rscript查看。
options中默认--slave --no-restore;--version 查看R版本;其他类似第二种方法中的说明。
-e expr:可以通过expr输入R的表达式,比如 -e 'name <- "tea"; source("testR.R")'
args:是需要输入脚本的参数
> file:输出文件

可以使用第三种方法,写成R脚本,之后放入系统运行。比如R脚本testR.R:
===================================================
#! /usr/lib/R/bin/Rscript --vanilla 
args <- commandArgs(TRUE)
# paste(c("I", "like", args[1], "and", args[2], "!"), collapse = " ")
print(args)
===================================================

执行R脚本
> chmod +x testR.R
> ./testR.R tea coffee > testR.Rout  
bsub -q Q_Serial
/usr/lib/R/bin/Rscript  testR.R




第四种方法
cat >>test.sh<<EOF__
#!/usr/bin/Rscript (这个根据你自己的R安装的位置指定)
a<-c(1:20)
b<-rep(c(1:4),5)
c<-a/b
data<-data.frame(a,b,c)
write.table(data,file="/home/andornot/r_test",row.names=FALSE)
EOF__


chmod u+x test.sh
./test.sh

  评论这张
 
阅读(1824)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017