Galaxy Project(
https://galaxyproject.org/)是在云计算背景下诞生的一个生物信息学可视化分析开源项目。

该项目由美国国家科学基金会(NSF)、美国国家人类基因组研究所(NHGRI)、哈克生命科学研究所(The Huck Institutes of the Life Sciences)、宾州州立大学网络科学研究所(The Institute for CyberScience at Penn State),以及约翰霍普金斯大学(Johns Hopkins University)提供支持,是目前生物医学研究领域最受欢迎的在线生物信息分析工具之一。

The Galaxy Project is supported in part by NSF, NHGRI, The Huck Institutes of the Life Sciences, The Institute for CyberScience at Penn State, and Johns Hopkins University.

从 2015 年起,Galaxy 源码从 bitbucket 迁移至 GitHub 托管,截止 2019 年 9 月,Galaxy 在 GitHub 上一共有 636个 star,218 个贡献者,54 个发布的版本。



从今天开始我们来介绍一下 Ggalaxy 生物信息分析平台从安装、部署,到开发的一些知识。


环境准备

Galaxy 在 release_18.09 前的版本都是基于 Python 2.7.x 进行安装部署,虽然官方在 release_18.09 中说明已经支持 python3(beta),但安装起来比较复杂,尤其与结合 conda 集合情况下的安装,并且不方便管理。

After almost 3 years of work and more than 100 pull requests, we are proud to announce the Beta-stage support for running Galaxy under Python 3. Lint, unit, API, framework, integration and Selenium tests all pass, time for you to give it a try and report any bug you find!

From: https://docs.galaxyproject.org/en/master/releases/18.09_announce.html



从 release_19.05 起,Galaxy 对 Python 3 提供了比较好的支持(Galaxy is currently supported on Python 2.7 and >=3.5),在本教程我们将以 release_19.09 最新版本的 Galaxy 为基础,进行一系列安装、部署和简单开发说明。

Galaxy is currently supported on Python 2.7 and >=3.5 . To run Galaxy, please install a supported Python version. If a supported version is already installed but is not your default, https://galaxyproject.org/admin/python/ contains instructions on how to force Galaxy to use a different version.

From: https://github.com/galaxyproject/galaxy/blob/release_19.09/scripts/check_python.py

1.1 conda 和 virtualenv

Galaxy 提供了 conda 和 virtualenv 环境下的 Galaxy 安装,它们之间的区别,具体可以参考:《Galaxy Admin Documentation: Framework Dependencies》。喜欢 conda 的用户可以参考文档一步一步进行操作,这里不细述。我们重点介绍一下基于 virtualenv 环境的 Galaxy 安装。

1.2 Python

基于 virtualenv 环境安装 Galaxy,我们只需要安装好 Python>=3.5 即可,因为 galaxy 在执行 run.sh 安装程序时会自动检测 virtualenv 是否安装,没有安装则会自动 pip 安装。

关于 Python-3 源码安装的具体方法,请参考:《Linux 下 Python 源码编译安装》。

源码与安装

2.1 源码下载

第一次安装。第一次安装 Galaxy 的用户可以通过下面的方法下载对应版本的代码库。

$ git clone -b release_19.09 https://github.com/galaxyproject/galaxy.git

已有代码库更新。已经安装了 Galaxy 的用户可以通过下面的方式更新。

$ git fetch origin && git checkout release_19.09 && git pull --ff-only origin release_19.09

开发版本。要获取 Galaxy 进行开发,请在克隆后使用默认分支:dev 。

$ git clone https://github.com/galaxyproject/galaxy.git

2.2 启动

有了源码后,下一步我们就可以启动 Galaxy。Galaxy 的启动需要运行一些东西:virtualenv,配置文件和依赖的 Python 模块。幸运的是,首次启动 Galaxy 服务器将根据需要创建并获取这些内容。要启动 Galaxy,只需在终端窗口中运行以下命令:

$ sh run.sh
Initializing tool-data/shared/ucsc/builds.txt from builds.txt.sample
Initializing tool-data/shared/ucsc/manual_builds.txt from manual_builds.txt.sample
Initializing static/welcome.html from welcome.html.sample
Creating Python virtual environment for Galaxy: .venv
To avoid this, use the --no-create-venv flag or set $GALAXY_VIRTUAL_ENV to an
existing environment before starting Galaxy.
Fetching https://files.pythonhosted.org/packages/source/v/virtualenv/virtualenv-16.1.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100 1930k  100 1930k    0     0  18308      0  0:01:47  0:01:47 --:--:-- 59849
Verifying /tmp/galaxy-virtualenv-1mvK4M/virtualenv-16.1.0.tar.gz checksum is f899fafcd92e1150f40c8215328be38ff24b519cd95357fa6e78e006c7638208
Using base prefix '/usr/local/software/python-3.7'
New python executable in /galaxy-dist/v-19.09/galaxy/.venv/bin/python
Installing setuptools, pip, wheel...
done.
Activating virtualenv at .venv
Looking in indexes: https://wheels.galaxyproject.org/simple, https://pypi.python.org/simple
Downloading https://files.pythonhosted.org/packages/4f/b5/3ea9ae3d1096b9ff31e8f1846c47d49f3129a12464ac0a73b602de458298/adal-1.2.2-py2.py3-none-any.whl (53kB)
    100% |████████████████████████████████| 61kB 24kB/s
......
galaxy.web_stack INFO 2019-09-11 17:08:46,889 [p:11902,w:1,m:0] [MainThread] Galaxy server instance 'main.web.1' is running
Starting server in PID 11902.
serving on http://localhost:8080
galaxy.model.database_heartbeat DEBUG 2019-09-11 17:08:46,921 [p:11902,w:1,m:0] [database_heartbeart_main.web.1.thread] main.web.1 is config watcher





注意与提示:

  • 使用 Python 3 安装 Galaxy,需要保证 SSL 模块正常可用。

  • 如果在第一次启动 Galaxy 过程中出现如下报错,参考后面的方法进行解决。

$ sh run.sh
......
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/galaxy-dist/v-19.09/galaxy/.venv/bin/nodeenv", line 11, in <module>
    sys.exit(main())
  File "/galaxy-dist/v-19.09/galaxy/.venv/lib/python3.7/site-packages/nodeenv.py", line 1076, in main
    create_environment(env_dir, opt)
......
File "/usr/local/software/python-3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>

$ vi /galaxy-dist/v-19.09/galaxy/.venv/lib/python3.7/site-packages/nodeenv.py
...
import glob
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
....
  • 使用  sh run.sh ,第一次启动时,Galaxy 会默认检查  nodeenv、 node、 yarn 是否已经安装,如果没有将会自动执行 latest 版本安装。详情可以参考:

    1) $GALAXY_ROOT/requirements.txt

    2) $GALAXY_ROOT/scripts/common_startup.sh

  • nodeenv、node、yarn 安装完成后,Galaxy 接着会自动安装 NodeJS 依赖:

$ cd client && yarn install --network-timeout 300000 --check-files
  • nodeenv、 node、 yarn,以及 NodeJS 依赖的安装非常耗时间,尤其在网络不好时经常会出现各种报错,如果想要跳过这些安装,可以在初始化启动时增加一个  --skip-client-build 参数。
$ sh run.sh --skip-client-build
  • 上面的东西安装完成后,Galaxy 接着会执行一个  conda 安装,安装目录默认位于  galaxy/database/dependencies/_conda ,这是为方便以后管理员可以通过 Galaxy web 的管理员页面自动安装  Galaxy shed tools 工具。

基本配置

3.1 配置文件

从 releases_18.01 起,Galaxy 可以在没有显式配置文件的情况下正常运行,但如果要修改其设置,则需要创建一个配置文件。推荐的做法是,复制模板配置文件并将其重命名为 galaxy.yml 。我们可以使用此命令执行此操作:

$ cp config/galaxy.yml.sample config/galaxy.yml

3.2 网络

Galaxy 默认通过本机 localhost 进行访问,要通过网络访问 Galaxy,需要在 config/galaxy.yml 文件中更改 http 设置。通过更改它,Galaxy 将绑定到任何可用的网络接口而不是 localhost:

# Use ':8080' to listen on all available network interfaces.
http: :8080

3.3 管理员

要通过 UI 控制 Galaxy(安装工具,管理用户,创建组等),用户必须成为管理员。只有注册用户才能成为管理员。要授予用户管理员权限,请将用户的 Galaxy 登录电子邮件添加到配置文件 config/galaxy.yml 中。配置示例如下所示:

# this should be a comma-separated list of valid Galaxy users
admin_users: ishenweiyan@qq.com,user2@example.com

到这里,Galaxy 的本地化安装就全部完成了。后面,我们将介绍一下如何在生产环境中部署一个满足多用户使用的 Galaxy 在线分析平台。

——The  End——

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Galaxy 生信平台(一):安装的更多相关文章

  1. 生信软件的好帮手-bioconda--转载

    http://mp.weixin.qq.com/s/nK1Kkf9lfZStoX25Y7SzHQ 这篇文章主要适用于Linux平台,当然MacOS也行,不过它有更好安装方法. 此外网上也会许多更好的关 ...

  2. 生信基础知识【04】GO和pathway分析

    非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...

  3. zabbix短信(阿里云短信平台)与邮件报警

    环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...

  4. 从零开始学生信-orthofinder的安装和使用-基因家族分析

    [环境变量]注释掉conda3,source ~/.bashrc conda install orthofinder # 若在上一章之后没有重启的同学请重启后操作. # 由于是刚开始搭建,这里没有给o ...

  5. Linux 平台静默安装 Oracle客户端

    需求:Linux平台,安装完整版Oracle客户端 Tips:如果只是用到sqlldr,sqlplus功能,可以参考<Linux上oracle精简版客户端快速部署>快速部署精简版:如果需要 ...

  6. Node.js在不同平台的安装方法步骤详解

    Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --i ...

  7. java中用中国网建提供的SMS短信平台发送短信

    接下来的项目需求中提到需要短信发送功能,以前没有做过,因此便在网上搜了一下.大体上说的都是有三种方法,分别是sina提供的webservice接口.短信mao和中国网建提供的SMS短信平台. 这三种方 ...

  8. 国都企信通短信平台发送手机短信的python脚本一例

    一年前,由于工作需要,给以色列的同事解释一下国都短信平台的短信发送格式,本来不懂python的我硬着头皮写了一个sample,比较粗,能用,但不优美,希望以后学会python能改得像我同事写的那么优雅 ...

  9. C#调用短信接口(通过简单的工厂模式整合多个短信平台)

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  10. 在Window平台下安装xgboost的Python版本

    原文:http://blog.csdn.net/pengyulong/article/details/50515916 原文修改了两个地方才安装成功,第3步可以不用,第2步重新生成所有的就行了. 第4 ...

随机推荐

  1. 4种API性能恶化根因分析

    摘要:服务发生性能恶化时,需要投入大量人力分析性能异常根因,分析成本高,耗时长.我们提出了一种先在异常调用链内部分析候选根因,再在全局拓扑环境下对候选根因进行汇聚的二级分析方法,克服了调用链之间异常相 ...

  2. 微软开源了一个 助力开发LLM 加持的应用的 工具包 semantic-kernel

    在首席执行官萨蒂亚·纳德拉(Satya Nadella)的支持下,微软似乎正在迅速转变为一家以人工智能为中心的公司.最近微软的众多产品线都采用GPT-4加持,从Microsoft 365等商业产品到& ...

  3. 剑指 offer 第 4 天

    第 4 天 查找算法(简单) 剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但 ...

  4. java代码审计-CSRF

    0x01 前言 CSRF跨站请求伪造(Cross-site request forgery),当某个接口没有设置CSRF验证,点击了别人恶意的链接,可能会造成对这个接口发送相应的数据,造成某个数据被更 ...

  5. SimpleAdmin手摸手教学之:项目架构设计2.0

    一.说明 在SimpleAdmin1.0版本中,我将整体项目结构分为三大块,分别为架构核心.业务模块和应用服务.随着1.0版本的封版,回去再看我之前的项目架构,也暴露了一些问题,比如在1.0版本中,S ...

  6. 【Note】贪心

    感谢 $ \text{orzws/chy} $ 倾情授课. 目录 -1. 证明方式 0. 朴素贪心 AT2557 [ARC073C] Ball Coloring P2587 [ZJOI2008]泡泡堂 ...

  7. python中的类继承

    """ """ class Animal(object): def __init__(self,name,food): self.name ...

  8. 使用 LoRA 和 Hugging Face 高效训练大语言模型

    在本文中,我们将展示如何使用 大语言模型低秩适配 (Low-Rank Adaptation of Large Language Models,LoRA) 技术在单 GPU 上微调 110 亿参数的 F ...

  9. Lexicographic Order

    Lexicographic Order (https://codeforces.com/group/L9GOcnr1dm/contest/422381/problem/L) 比较简单的一道题目,主要理 ...

  10. 界面重建——Marching cubes算法

    一.引子 对于一个标量场数据,我们可以描绘轮廓(Contouring),包括2D和3D.2D的情况称为轮廓线(contour lines),3D的情况称为表面(surface).他们都是等值线或等值面 ...