注册打开对于生物2024
提前注册折扣定价将于5月31日结束!

云中的生物导体

获取Amazon Web Services帐户和开始急性心肌梗死以下附加说明。

注:生物导体预配置AMI已弃用,不再使用截至Bioco3.13提供。其他相关资源包括Docker图像AnVIL项目

目录

概述

我们开发了一个亚马逊机器映像(AMI),它针对在亚马逊弹性计算云中运行Bioconductor进行了优化(或EC2)用于排序任务。

以下是您可以使用它的几个原因:

  • 您不想在自己的机器上安装Bioconductor。
  • 您有一个长时间运行的任务,不希望它占用您自己机器上的CPU。
  • 您有一个可并行化的任务,希望运行它(在一台机器上的多个CPU上,或者在多台机器的集群中)。
  • 您希望在web浏览器中运行R(使用RStudio Server)。
  • AMI包含许多包,这些包可能非常难以安装和配置。

更多具体场景请参见下文。

预加载AMI

AMI预装了最新版本的R和前80名Bioconductor软件包装加上以下内容注释包的类别:

  • 组织*
  • 英国基因组*
  • TxDb(发送日期)*

如何使用

第一时间步骤

首先,您需要一个亚马逊网络服务(AWS)帐户(如果您还没有)。注册AWS,然后单击在这里注册EC2服务。这需要您提供信贷卡片信息;然而,您只需要支付所使用的服务费用。一些AWS服务是免费的。

如果您想使用RStudio Server,就只需要这些了使用web浏览器连接到您的AMI。如果您还想使用SSH连接到它,请创建一个密钥对,如下所示:

创建密钥对

启动AWS控制台单击密钥对页面左下角的链接。单击“创建密钥对”按钮。出现提示时,请提供名称。我们建议名称是“生物导体”、您的名字和机器名的组合(这将避免与共享您的AWS帐户的其他人发生冲突,也可能避免与您自己在另一台计算机上的帐户发生冲突)。例如,如果你的名字是Bob,而你的个人电脑名为“mylaptop”,那么你的密钥对名称可能是“bioconductor Bob-mylaptop”。下载生成的.pem文件并将其保存在安全的地方地点。

启动AMI

一旦你有了创建了一个AWS帐户,您可以启动一个预加载AMI

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

  • 选择AMI选择要运行的Bioconductor版本。
  • 选择实例类型当前的AMI是由具有4个核心和16GiB内存的实例创建的。
  • 配置实例默认值通常是可以的。
  • 添加存储只有当您想在实例中存储大文件时才需要。
  • 标记实例指定要分配给图像的任何标记(键值对)。
  • 配置安全组为SSH指定端口22(默认),并为http(Rstudio)访问添加端口80。
  • 审查和发布

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

重要注意事项:使用完AMI后,请务必停止或终止实例。单击实例并选择所需的操作从“操作”->“实例状态”。如果您停止实例你仍然需要支付存储费用。终止协议消除了所有额外费用但也会丢失您所做的任何更改,任何新会话都需要从一个预先加载的AMI开始。

使用SSH连接到您的AMI

启动其中一个预加载AMI

遵循与以下相同的步骤在上面。在“正在运行的实例”上页面选择实例并从“描述”选项卡中获取公共IP在底部。

如果公共IP为50.16.120.30,则基本ssh命令为

ssh-i生物导体-bob-mylapop.pemubuntu@ec2-50-16-120-30.compute-1.amazonaws.com

您可以更改此命令。如果要使用使用X11的程序或R包,请确保并添加-X标志,使命令如下所示:

ssh-X-i生物导体-bob-mylapop.pemubuntu@ec2-50-16-120-30.compute-amazonaws.com

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

Windows用户:您需要安装ssh标准供应链计划命令。图形程序,如小狗WinSCP软件将起作用。然而,我们的示例将使用这些程序的命令行版本,您可以通过安装Cygwin公司(确保并安装打开ssh包装)。

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

使用HTTP和RStudio连接到您的AMI

每个接收公共IP地址的实例还被赋予一个外部DNS主机名。公共IP是主机名的一部分,例如,如果IP为50-16-120-30,外部DNS主机名为ec2-50-16-120-30.compute-1.amazonaws.com。注意DNS中破折号的使用主机名与IP中的点。

在浏览器中粘贴主机名,它会将您带到RStudio服务器登录页面。使用用户名登录乌班图和密码生物化学

AMI ID

截至Bioc3.13,Bioconductor已停止提供预配置的AMI。AMI用于早期版本具有以下ID。

生物导体版本 R版本 AMI ID(AMI ID)
3.13 4.1.0 ami-0e7efd11a6eab85a6
3.12 4.0.3 ami-04c69d122c1cf7e81
3.11 4.0版本 ami-071b80cf0d8ca085c
3.10 3.6.3 ami-0c5ab50ca03a54468
3.9 3.6.1 ami-0f5d1990d8c571cdf
3.8 3.5.3 ami-0565362d8bfb9cbed
3.7 3.5.1 ami-01bcd08e357360496
3.6 3.4.2 ami-ac5df1d3之友
3.5 3.4.0 ami-279a315d型
3.4 3.3.2 ami-8946709f型
3.3 3.3.0 ami-abd0b3bc
3.2 3.2.0 ami-85d88de0型
3.1 3.2.0 ami-a3d126c8型
3 3.1.0 ami-be7917d6型
2.14 3.1.0 ami-9c25fff4型
2.13 3.0.2 ami-4a25ff22
2.12 3 ami-7224fe1a型
2.11 2.15 ami-f827fd90型
2.10 2.15 阿米-5621fb3e
2.9 2.14 ami-2623f94e
2.8 2.13 阿米-3a2ef452


请注意,当我们更新基础AMI时,AMI ID可能会随时间而变化。请参阅此页了解更多信息当前AMI ID。这些AMI居住在美国东部地区。

出于行政和资金原因,Bioconductor跟踪每次启动生物导体AMI的时间。没有保留任何识别信息。通过使用AMI,你同意这个追踪。

使用Bioconductor实例的场景

使用Rgraphviz

确保已使用web浏览器或使用的-X标志ssh标准命令。类似于:

ssh-X-i生物导体-bob-mylapop.pemubuntu@ec2-50-16-120-30.compute-1.amazonaws.com

然后,从远程实例上的R中:

库(“Rgraphviz”)种子(123)V<-字母[1:10]M<-1:4g1<-随机图(V,M,0.2)绘图(g1)

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

使用并行包进行并行化

如果您选择了要运行的高CPU实例类型,则此操作效果最佳。

这个简单的示例运行rnorm()函数,但任何函数都可以工作。请参阅并行文档以获取更多信息。

库(并行)mclapply(1:30,形式)

将AMI用作集群

您还可以将AMI用作集群,其中机器进行通信通过以下机制之一相互连接:

  • SSH(SSH)
  • 磁粉探伤
  • 太阳网格引擎

为了在其中一种情况下使用生物导体AMI,您需要安装星团,这是一个旨在自动化和简化的软件包构建、配置和管理集群的过程亚马逊EC2云上的虚拟机。

StarCluster负责确保机器可以相互通信,包括:

  • 无密码SSH
  • 共享磁盘空间(使用NFS)
  • 主机名的方便别名(如master和node001)
  • 作业调度程序的配置(Sun Grid Engine)

注释:使用Bioconductor AMI执行集群相关任务仅支持Bioconductor AMI 2.14及更高版本。

安装StarCluster

按照以下步骤安装StarClusterStarCluster安装指南这是一个简单快速的过程。

如果您在Windows上,请直接转到Windows部分

在继续之前,值得一看快速入门屏幕截图或遵循快速入门教程

配置StarCluster

在我们使用StarCluster和Bioconductor AMI之前,我们需要通过编辑配置文件。

您可以通过发出以下命令来创建文件:

星团帮助

这将为您提供三个选项:

选项:--------[1] 显示StarCluster配置模板[2] 将配置模板写入/home/user/.starcluster/config[q] 退出

选择选项2并记下配置文件的位置(它将与上面显示的不同)。

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

打开配置在您最喜欢的文本编辑器中编辑如下:

AWS凭据和连接设置部分

您需要填写的值AWS_ACCESS钥匙IDAWS_机密_ACCESS_密钥。如果您不知道这些值,转到安全证书并展开“访问密钥”部分。您可以在此处查看或创建访问密钥。确保并将这些凭据存储在安全的地方(除了StarCluster配置文件)。

的价值AWS_用户ID也可以在上找到这个安全证书页面,通过展开“帐户标识符”部分。填写AWS_用户ID数字显示为您的“AWS帐户ID”(此应该是一个带连字符的12位数字)。

定义EC2键盘部分

如果您尚未在EC2中创建密钥对,现在请阅读密钥对第节。

您还可以使用StarCluster创建密钥对;运行命令

星团createkey--帮助

…以获取说明。

记住指定给密钥对的名称。更改线条

[密钥mykey]

以便我的钥匙替换为您指定的名称到EC2中的密钥对,并更改以下行

KEY_LOCATION=~/.ssh/mykey.rsa

因此钥匙_位置是到的完整路径从.ec2下载的私钥(它可能有一个.佩姆扩展)。

定义群集模板部分

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

  • 更改的值凯恩(KEYNAME)到密钥对的名称(请参阅上面的密钥对部分)。
  • 可选择更改群集_大小你的机器数量希望启动。这个数字包括主节点,因此默认值2表示一个主节点和一个辅助节点。我们建议从2开始,直到你熟悉为止使用StarCluster和Bioconductor。
  • 更改群集_用户乌班图
  • 取消对行的注释DNS_PREFIX=真。这使您的群集使用AWS控制台或命令行工具。
  • 更改节点_IMAGE_ID到要使用的AMI的AMI-ID这将列在AMI ID本文档的第节。请注意,StarCluster仅适用于Bioconductor的AMI2.14及更高版本。
  • 可选择更改节点_安装_类型到另一个实例类型。请参阅实例类型页面了解更多信息。
  • 线下读数#许可=ssh,http,添加行权限=http(注意小写)。这与安全有关组权限(下面详细介绍)。

如果您希望进一步自定义配置。请参阅StarCluster文档了解更多信息。

配置安全组权限部分

删除注释(#符号)从四条线从开始[权限http]这样你最终会得到:

[权限http]IP_PROTOCOL=tcp起始端口=80TO_PORT=80

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

启动群集

假设您已经完成了上述步骤,您可以创建带有以下命令的集群:

星簇启动小簇

几分钟后,集群应该可以使用了。

连接到群集

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

使用RStudio Server连接

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

星团列表星团

您也可以缩写为:

星团液晶

这将产生如下输出:

-----------------------------------------------smallcluster(安全组:@sc-smallcluster)-----------------------------------------------发布时间:2014-06-16 09:57:54正常运行时间:0天,02:19:56区域:美国东部-1bKeypair:生物默认EBS卷:不适用群集节点:运行i-46a76c6d ec2-54-91-23-93.compute-1.amazonaws.com的smallcluster-mastersmallcluster-node001运行i-47a76c6c ec2-54-224-6-153.compute-1.amazonaws.com节点总数:2

以开头的行小型集群管理器以主机名结尾(在这种情况下ec2-54-91-23-93.compute-1.amazonaws.com; 在您的如果是不同但相似的东西)。你可以粘贴将此主机名输入到web浏览器中(根据浏览器的不同,您可以需要放置网址://在主机名前面)。

这将使您进入RStudio Server登录页面。您可以登录在中使用用户名乌班图和密码生物化学

使用SSH连接

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

starcluster sshmaster--user=ubuntu smallcluster

终止群集**重要**

完成后,必须终止集群,否则亚马逊网络服务将继续收取费用。要终止群集,请执行以下操作:

星簇终止小簇

此命令将提示您确认终止集群。

集群场景

以下场景假设您已经启动了集群并且您已连接到主节点。

使用BiocParallel和Sun Grid引擎

当你用StarCluster启动集群时,它会自动配置为使用生物并行批处理作业包装以Sun Grid Engine作为后端。你可以证明这一点通过加载BatchJobs:

库(BatchJobs)

在其他输出中,这将表明

集群功能:SGE

表示Sun Grid Engine是后端。

以下是如何将简单作业发送到集群:

库(BatchJobs)库(BiocParallel)param<-BatchJobsParam(2,resources=list(ncpus=1))寄存器(参数)趣味<-功能(i)系统(“主机名”,intern=TRUE)xx<-bplapply(1:100,FUN)表(未列出(xx))

这将产生:

smallcluster-master smallcluster-node00150                   50

……表明SGE在主机上运行了一半的作业worker节点上的另一半。

本演示文稿概述如何进行全面分析(cis-dsQTL的识别)使用种类我们刚刚创建的集群的。

使用SSH作为后端

除了使用SSH而不是Sun Grid Engine作为后端:

库(BatchJobs)库(BiocParallel)cluster.functions<-makeClusterFunctionsSSH(makeSSHWorker(nodename=“smallcluster-master”),makeSSHWorker(nodename=“smallcluster-node001”))param2<-BatchJobsParam(2,resources=list(ncpus=1),cluster.functions=集群.functions)寄存器(参数2)趣味<-功能(i)系统(“主机名”,intern=TRUE)xx<-bplapply(1:10,趣味)表(未列出(xx))

您应该会看到这样的结果:

smallcluster主机smallcluster-node0015                    5

使用MPI作为后端

当您使用上述步骤启动集群时,R将自动知道集群,如下例所示:

图书馆(Rmpi)mpi.universe.size()

对于默认集群配置,这应该返回2,其中有道理,因为我们的集群由两台机器组成(小型集群管理器小集群-编号001),每个类型为m1.small每个都有一个内核。

再次使用生物并行,您可以运行一个简单的函数在MPI群集上:

趣味<-功能(i)系统(“主机名”,intern=TRUE)

创建一个SnowParam雪参数节点数等于的实例MPI范围的大小减去1(让一个节点将作业分派给workers),并将此实例注册为默认实例:

param3<-SnowParam(mpi.universe.size()-1,“mpi”)寄存器(参数3)

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

xx<-bplapply(1:10,趣味)表(未列出(xx))

创建Bioconductor AMI的自定义版本

注释:如果您更改正在运行的Bioconductor AMI,然后终止AMI,您的更改将丢失。使用此处描述的步骤确保您的更改是持久的。

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

如果您想为自己的目的定制AMI,这很简单。只需继续定制您的运行您认为合适的实例。通常,这将涉及安装带有BiocManager::安装(),和使用Ubuntu包管理器的软件包(在操作系统级别)适配基

您可能还想更改“ubuntu”用户的密码(因为默认密码为公众所知,以便运行RStudio Server),并使用以下命令:

密码ubuntu

现在使用AWS控制台停止实例(重要提示:不要“终止”您的实例;请改用“停止”命令(在“实例操作”下)。)

然后在实例操作菜单下选择“创建映像(EBS AMI)”。系统将提示您输入AMI的名称。之后输入名称,您的AMI将被创建并获得一个唯一的AMI ID。然后,您可以使用上面的步骤启动此AMI的实例,确保替换您自己的AMI ID。除非您决定,否则您的AMI将是私有的,只能由您的AWS帐户访问以使其更广泛地可访问。

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

配置虚拟机或物理机以与Bioconductor一起使用

生物导体AMI是由Vagrant和厨师创建的。用于创建这些AMI的相同脚本还可以用于配置虚拟机(Virtualbox或VMWare)或物理机器。

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

在Bioconductor AMI实例中移动数据

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

如果您通过ssh连接,这个供应链计划命令是在EC2实例之间移动数据的最有效方法。

要将文件从计算机复制到正在运行的Bioconductor AMI实例,请执行以下操作:

  • 在计算机上打开终端或命令提示符窗口
  • 使用“cd”,切换到密钥对(.pem)文件所在的目录
  • 发出如下命令(您的密钥对名称和AMI实例的主机名将不同;您可以通过在AWS控制台):

隐藏scp-i生物导体-bob-mylaptop.pem/path/to/myfileubuntu@ec2-50-16-120-30.compute-1.amazonaws.com:~

这将把本地计算机上位于“/path/to/myfile”的文件复制到远程实例上ubuntu的主目录。要从将实例运行到您的本地计算机,执行如下操作(仍在本地计算机上):

scp-i生物导体-bob-mylaptop.pemubuntu@ec2-50-16-120-30.compute-1.amazonaws.com:~/myfile/some/directory

这将把文件~/myfile从正在运行的实例复制到本地计算机上的/some/目录。

提醒:在运行的EC2实例上创建的文件包括坚持,除非你做了一些特殊的步骤。所以如果你是使用Bioconductor生成输出文件,您必须在终止实例之前将其复制到本地计算机,或者您的文件将丢失。如果有大量数据需要来回移动,您可能需要查看弹性块存储

问题

如果您对生物导体AMI有任何疑问,请通过生物导体支持站点