云中的生物导体

获得亚马逊Web服务帐户和开始AMI.附加说明如下。

内容

概述

我们开发了一个Amazon Machine Image (AMI),它被优化为在Amazon Elastic Compute Cloud(或EC2)中运行Bioconductor,用于排序任务。

以下是您可以使用它的一些原因:

有关更具体的方案,请参阅下面。

预加载的AMI

AMI预装了R的最新版本和前80个生物导体软件包加上以下类别的注释包:

如何使用

第一次的步骤

首先,你需要一个亚马逊网络服务(AWS)帐户如果您尚未拥有一个。注册AWS,然后单击这里注册EC2服务。这将要求您提供信用卡信息;但是,您将只收取服务费。一些AWS服务免费。

如果您想使用RStudio服务器使用Web浏览器连接到AMI,则这一切都是必需的。如果您还希望使用SSH连接到它,请创建键盘如下:

创建密钥对

启动AWS控制台.点击一下密钥对链接在页面左下角。单击“创建密钥对”按钮。出现提示时,提供名称。我们建议这个名称是“Biocumondiond”,你的名字和你的机器名称的组合(这将避免与在其他机器上分享您的AWS帐户的其他人冲突)。例如,如果您的姓名是BOB,并且您的个人计算机被命名为“MyLappop”,则您的密钥对名称可能是“Bioconductor-Bob-Mylappop”。下载生成的.pem文件并将其保留在安全的地方。

发射AMI

一旦你有创建AWS帐户,你可以启动其中一个预装amis

要启动AMI,您将逐步浏览几个屏幕:

查看启动实例的进度通过转到EC2仪表板,然后单击“运行实例”。一旦实例“正在运行”,它就准备好了。

重要的提示:使用AMI完成后,请务必停止或终止实例。单击实例并从“操作” - >“实例状态”中选择所需的操作。如果您停止实例,则仍然收取存储。终止消除了所有进一步的指控,但也损失了您所做的任何更改,并且任何新会话都需要从预装的AMI中的一个开始。

使用ssh连接到您的AMI

开始其中一个预装amis

遵循相同的步骤以上.在“Running Instances”页面中,选择实例并从底部的“Description”选项卡获取公共IP。

如果公共IP为50.16.120.30基本的SSH命令是

ssh -我bioconductor-bob-mylaptop。pem ubuntu@ec2 - 50 - 16 - 120 - 30. - 1.计算- - - - - - - amazonaws.com

您可以更改此命令。如果你想使用使用X11的程序或R包,请确保添加一个-X标志,使命令像这样:

ssh -x -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute-1.amazonaws.com

现在您可以将命令行粘贴到终端或命令提示符中。确保您与密钥对文件在同一个目录中。

Windows用户:您需要安装版本sshscp命令。像图形程序一样油灰有WinSCP将工作。但是,我们的示例将使用这些程序的命令行版本,您可以通过安装获得Cygwin(请务必安装openssh.包)。

将此命令粘贴到终端或命令提示符窗口(并按下Enter)后,您应该连接到Amazon EC2实例。

使用HTTP和RStudio连接到您的AMI

接收公共IP地址的每个实例也都有一个外部DNS主机名。公共IP是主机名的一部分,例如,如果公共IP为50-16-120-30,则外部DNS主机名为EC2-50-16-120-30.Compute-1.amazonaws.com。请注意,在IP中使用DASH在DNS主机名VS点中使用。

将主机名粘贴到浏览器中,就会转到RStudio Server登录页面。使用用户名登录Ubuntu.和密码bioc

AMI id

我们的ami有以下id。

生物导体版本 R版本 ami id.
3.13(Devel) 4.1.0 ami-0e7efd11a6eab85a6
3.12(释放,受到推崇的 4.0.3 AMI-04C69D122C1CF7E81
3.11 4.0.0. ami - 071 b80cf0d8ca085c
3.10 3.6.3 AMI-0C5AB50CA03A54468
3.9 3.6.1 AMI-0F5D1990D8C571CDF.
3.8 3.5.3 ami - 0565362 - d8bfb9cbed
3.7 3.5.1 ami-01bcd08e357360496
3.6 3.4.2 AMI-AC5DF1D3
3.5 3.4.0 ami - 279 a315d
3.4 3.3.2 AMI-8946709F.
3.3 3.3.0 ami-abd0b3bc
3.2 3.2.0 ami - 85 d88de0
3.1 3.2.0 ami-a3d126c8
3.0 3.1.0. AMI-BE7917D6
2.14 3.1.0. AMI-9C25FF4.
2.13 3.0.2 ami-4a25ff22
2.12 3.0 ami - 7224 fe1a
2.11 2.15 AMI-F827FD90
2.10 2.15 ami - 5621 fb3e
2.9 2.14 AMI-2623F94E.
2.8 2.13 AMI-3A2EF452


请注意,当我们更新底层AMI时,AMI id可能会随着时间而更改。请参阅此页以获得最新的AMI id。这些阿美族人居住在美国东部-1地区。

出于行政和资金方面的原因,Bioconductor一直在跟踪Bioconductor AMI每次启动的情况。不保存任何识别信息。通过使用AMI,您就同意了这种跟踪。

使用Bioconductor实例的场景

使用Rgraphviz

确保使用Web浏览器或使用-X标志连接到您的实例ssh命令。就像是:

ssh -x -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute-1.amazonaws.com

然后,从远程实例中的r内部:

图书馆(“rapraphviz”)set.seed(123)v < - 字母[1:10] m < -  1:4 g1 < - 随机照片(v,m,0.2)图(g1)

这将在本地计算机上启动一个显示简单图形的图形设备。

使用并联包装

如果选择了要运行的高cpu实例类型,那么这种方法效果最好。

这个微不足道的例子运行了rnorm ()函数,但任何函数都可以。有关更多信息,请参考并行文档。

图书馆(并联)MCLAPPLY(1:30,Rnorm)

使用AMI作为群集

您还可以使用AMI作为群集,其中机器通过以下机制之一彼此通信:

为了在这些场景之一中使用Biocumon AMI,您需要安装StarCluster这是一个软件包,旨在自动化和简化在Amazon的EC2云上构建、配置和管理虚拟机集群的过程。

Starcluster会根据确保机器互相通信的细节,包括:

请注意:仅在Bioconductor AMI版本2.14及更高版本中支持使用Bioconductor AMI完成与集群相关的任务。

安装StarCluster

按照如下方法安装StarClusterStarCluster安装指南.这是一个简单而快速的过程。

如果你在Windows上,直接转到窗户部分

在继续之前,值得一看的快速启动视频或后快速入门教程

配置StarCluster

在我们可以使用与Biocumon AMI的Starcluster之前,我们需要通过编辑其来配置它配置文件。

你可以通过发出命令来创建这个文件:

Starcluster帮助

这将为您提供三种选择:

选项:--------[1]显示StarCluster配置模板[2]将配置模板写入“/home/user/”。starcluster /配置(q)辞职

选择选项2并注意配置文件的位置(它将与上面所示的不同)。

在Unix系统(包括Linux和Mac OS X)上,可以在〜/ .starcluster / config.在Windows系统上,.starcluster文件夹应该位于主目录

打开配置文件在您最喜欢的文本编辑器,并编辑它如下:

AWS凭据和连接设置部分

您需要为aws_access_key_id.aws_secret_access_key..如果您不知道这些值,请转到安全认证AWS控制台的页面并展开“Access键”部分。您可以在此处查看或创建访问密钥。确保并将这些凭据存储在安全的地方(除了您的Starcluster Config文件之外)。

的价值aws_user_id.还可以在安全认证页,展开“帐户标识符”部分。填写aws_user_id.与数字显示为您的“AWS帐户ID”(这应该是一个12位数字带连字符)。

定义EC2密钥对部分

如果您尚未在EC2中创建一个键盘,请立即通过阅读小钥匙部分。

您还可以使用Starcluster创建一个键盘;运行命令

starcluster createkey——帮助

为说明……。

记住分配给密钥对的名称。改变行

[钥匙MyKey]

我的钥匙由您分配给EC2中的键盘的名称替换,并更改以下行

key_location =〜/ .ssh / mykey.rsa

所以KEY_LOCATION是从.ec2下载的私钥的完整路径(它可能有一个.pem扩大)。

定义群集模板部分

StarCluster允许您在配置文件中定义多个群集。现在让我们修改定义为的群集smallcluster

如果您想进一步自定义您的配置,您可以对这个部分进行其他更改。指的是Starcluster文件想要查询更多的信息。

配置安全组权限章节

删除评论(符号)从四行开始[许可http]所以你最终结束了:

[permission http] IP_PROTOCOL = tcp FROM_PORT = 80 TO_PORT = 80

这允许群集实例上的端口80向世界打开,允许我们在该端口上使用RStudio服务器。

开始一个集群

假设你已经完成了上面的步骤,你可以用下面的命令创建一个集群:

Starcluster开始SmallCluster.

在几瞬间后,应提供群集。

连接到集群

有两种方法可以连接到集群的主节点:RStudio Server和SSH。除非您有使用SSH的特殊需要,否则我们建议使用RStudio Server。

使用RStudio Server连接

首先,通过发出命令获取主节点的主机名:

Starcluster ListClusters

你也可以缩写这个:

Starcluster Lc.

这将产生如下输出:

-------------------------------------------------------------------------------组:@ sc-smallcluster)----------------------------------------发布时间:2014-06-16 09:57:54正常运行时间:0天,02:19:56 ZONE:美东-1B键盘:BIOC默认EBS卷:N / A群集节点:SHANGCLUSTE-Master Ring I-46A76C6D EC2-54-91-23-93.Compute-1.amazonaws.com SmallCluster-Node001运行I-47A76C6C EC2-54-224-6-153.Comput-1.Mazonaws.com总节点:2

从中开始的线SmallCluster Master以主机名结束(在本例中是ec2 - 54 - 91 - 23 - 93. -计算- 1. - amazonaws.com;在你的情况下,它将是不同但相似的东西)。您可以将此主机名粘贴到Web浏览器中(取决于浏览器,您可能需要放置http://在主机名前)。

这应该带您到RStudio服务器登录页面。您可以使用用户名登录Ubuntu.和密码bioc

使用SSH连接

要使用ssh连接到主节点,只需发出命令

starcluster sshmaster --user = ubuntu smallcluster

终止集群**重要的!!**

完成后,您必须终止群集,或者您将继续通过亚马逊Web服务收取金钱。要终止群集,请执行以下操作:

starcluster终止smallcluster

这个命令将提示您确认是否真的想要终止集群。

集群的场景

以下方案假设您已启动群集,并且您已连接到主节点。

使用与太阳网发动机的生物相投

当您使用StarCluster启动集群时,它将自动配置为使用BiocParallelBatchjobs.以Sun Grid Engine作为后端的软件包。你可以通过加载BatchJobs来演示这一点:

库(BatchJobs)

在其他输出中,这将说

上海黄金交易所集群功能:

表明太阳网引擎是后端。

下面是如何向集群发送一个简单的作业:

图书馆(Batejobs)库(Biocomallels)Param < -  Batchjobsparam(2,Resources =列表(NCPUS = 1))寄存器(PARAM)FUN < - 函数(i)系统(“hostname”,实习生= true)xx < -  bplapply(1:100,有趣)表(非允许(xx))

这将产生:

Smallcluster-master smallcluster-node001 50 50

表明SGE在主节点上运行了一半的作业,在工作节点上运行了另一半的作业。

这篇文章概述如何使用我们刚刚创建的群集的类型开发全尺度分析(识别CIS-DSQTL)。

使用SSH作为后端

下面是与上面相同的示例,除了使用SSH而不是Sun Grid Engine作为后端:

库(BatchJobs)库(BiocParallel)集群。函数< - makeClusterFunctionsSSH (makeSSHWorker (nodename =“smallcluster-master”),makeSSHWorker(节点名= " smallcluster-node001 ")) param2 < - BatchJobsParam(= 2,资源列表(ncpus = 1), cluster.functions = cluster.functions)注册(param2)有趣的< -函数(我)系统(主机名,实习生= TRUE) xx < - bplapply(1:10,有趣)表(unlist (xx))

你应该看到这样的结果:

smallcluster-master smallcluster-node001 5 5

使用MPI作为后端

使用上述步骤启动集群时,R会自动识别集群,示例如下:

库(Rmpi) mpi.universe.size ()

使用默认群集配置,这应该返回2,这是有意义的,因为我们的集群由两台机器组成(SmallCluster Mastersmallcluster-node001.),各为m1型。小,每个都有一个核心。

再次使用BiocParallel,你可以在MPI集群上运行一个简单的函数:

FUN <- function(i) system("hostname", intern=TRUE)

创建一个雪茄具有等于​​MPI Universe的大小的节点数量的实例减去1(让一个节点调度作业给工人),并将此实例注册为默认值:

param3 < -  snowparam(mpi.universe.size() -  1,“mpi”)寄存器(param3)

并行评估工作并处理结果:

XX < -  BPLapply(1:10,Fun)表(非允许(xx))

创建Biocumon AMI的自定义版本

请注意:如果您对正在运行的Bioconductor AMI进行更改,然后终止AMI,您的更改将丢失。使用这里描述的步骤来确保您的更改是持久的。

如果AMI缺少一些包裹或您认为应该拥有的功能,请告诉我们。

如果您想根据自己的目的定制AMI,这很简单。只要继续按照您认为合适的方式定制您的运行实例。通常这将涉及安装R包biocmanager :: install(),以及使用Ubuntu包管理器的软件包(在操作系统级)apt-get.

您可能还想更改“Ubuntu”用户的密码(因为默认密码是公开知名的,以便使用命令运行Rstudio服务器:

passwd ubuntu.

现在使用的AWS控制台停止实例(重要说明:不要“终止”您的实例;改为使用stop命令(实例操作)。

然后在Instance Actions菜单下选择“Create Image (EBS AMI)”。您将被提示输入AMI的名称。输入名称后,将创建AMI并为其指定一个唯一的AMI ID。然后,您可以使用上面的步骤启动此AMI的实例,并确保替换您自己AMI的ID。您的AMI将是私有的,只有您的AWS帐户可以访问,除非您决定使其更广泛地可访问。

现在您应该终止Bioconductor AMI的Stopped实例。

为Bioconductor提供一个虚拟或物理机器

Bioconductor AMI是使用Vagrant和Chef创建的。用于创建这些ami的相同脚本也可以用于供应虚拟机(Virtualbox或VMWare)或物理机。

有关更多信息,请参阅脚本“github存储库

移动数据到和从你的Bioconductor AMI实例

如果您使用的是Rstudio服务器,则可以从Rstudio Server中的文件窗格上传和下载文件。

如果您通过ssh连接,则scp命令是将数据移动到EC2实例中最有效的方法。

要将文件从计算机复制到正在运行的Biocumon AMI实例:

scp -我bioconductor-bob-mylaptop。pem /道路/ / myfile ubuntu@ec2 - 50 - 16 - 120 - 30. - 1.计算- - - - - - - amazonaws.com ~

这将在本地计算机上的“/ path / to / myfile”中将文件复制到远程实例上的Ubuntu的主目录。要将文件从正在运行的实例复制到本地计算机,请执行此操作(仍在本地计算机上):

scp -i bioconductor-bob-mylaptop.pem ubuntu@ec2-50-16-120-30.com pute.com.compute-1.amazonaws.com:〜/ myfile /某些/目录

这将将文件〜/ myfile复制到本地计算机上的运行实例到/某个/目录。

提醒:在运行中的EC2实例上创建的文件是持续,除非你做一些特殊步骤。因此,如果要使用Biocumon生成输出文件,则必须在终止实例之前将它们复制到本地计算机,或者您的文件将丢失。如果您有很多数据来回移动,您可能想要调查弹性块存储

问题

如果您对Bioconducts AMI有疑问,请联系我们Bioconductor支持网站