生信分析对计算机的开发环境有诸多要求,随之而来的自然就是很多麻烦。不说别的,要兼顾 Python 和 R 的问题就有够头疼。一边想着用 Python 搭流程处理文本和分析结果,另一边还想着用 R 来做统计分析和画图,而且大多数时候生信分析还得在服务器上完成。

Python 你用 Pycharm,R 用 Rstudio,一会这儿一会那儿的切来切去,还得设置服务器连接(Pycharm 如果不是付费版本,要连服务器还挺麻烦)。完了在 Windows 下你还得用 Xshell 连服务器开个命令行执行脚本和 Shell 命令 ;上传下载文件再开个 Filezila;数据表格结果用 Excel 查看;PDF 用 Adobe Reader ... 有人会说哪有这么麻烦,用 Vscode 加插件就能解决~ 确实是不错的选择,可要换了台电脑之前的环境不就全废了么。

有了 JupyterLab 之后,只要能连上服务器,一个窗口内完美实现所有这些功能,而你需要的就只有一个软件:浏览器(最好是 Chrome)

看看效果:

同时打开了 Python Notebook、CSV数据表、PDF 文献、命令行和文件管理

Markdown 文件预览和图片预览

强大到令人咋舌(感觉两张截图还是不足以体现 JupyterLab 的强大 *_* )。不仅能直接查看分析时常用的多种数据和文件格式,Jupyter 的 notebook 在运行之后即时返回结果,非常方便做数据分析和可视化。我原来也用 Atom + MobaXterm + Filezila 的组合来写代码加做分析,自从不久前试用了 JupyterLab 之后,于是渐渐抛弃“原配”,投入 JupyterLab 的怀抱。

安利完了进入正题,从头开始搭建一个以 JupyterLab 为核心的生物信息分析环境,特别适用于各种服务器和云,当然在本地计算机上使用也可以。

搭建环境:

硬件平台:易微升服务器

操作系统:Ubuntu 18.04 LTS

*** 此段可跳过,不影响后文阅读 ***

注:这里选用 Ubuntu 系统,是因为个人习惯。在安装软件和各种环境的时候,apt 非常方便,而且默认仓库的软件版本都比较新,出现问题好解决一些。其他常见的类 Unix 系统,比如 CentOS(也是 Linux 内核),或者苹果的 MacOS,在搭建 Bioconda + JupyterLab 的时候也没什么太大的区别。无非就是在装 Bioconda 和一些依赖包时的大同小异,况且有了 Bioconda 之后,几乎所有用于生信分析的软件和包都可以通过 Bioconda 来安装,这有个官方的列表:

https://anaconda.org/bioconda/repo?page=1

如果使用的是 Windows,在安装 Bioconda 和 Jupyterlab 的时候倒是没什么大问题,安装各种生信分析软件的时候,可能就会遇到一些麻烦。随着现在很多软件对 Windows 的支持力度越来越大,应该已经改善很多,有兴趣的话可以尝试在 Windows 中搭建。可参考 《做分析缺台主机?一文教你在win10中打造生信分析环境》

除此之外,还有一条技术路线可以走,那就是使用 Docker。不论是用什么系统,只要能装上 Docker,剩下都没什么区别。除了做镜像的时候稍微麻烦一点,需要一个学习和摸索的过程外,还是非常推荐学习和使用 Docker 来部署开发和分析环境。事实上,不一定非得自己做 Docker 镜像,使用 Jupyterlab 官方的或是其他人定制的镜像也是好办法。

安装:

Bioconda 的安装

JupyterLab 的安装

R 和 IRkernel 的安装

第一步:Bioconda 的安装

根据 Bioconda 官方的指导:先安装 Miniconda,然后添加 Bioconda 的 “频道” 就可以了。

Bioconda 本质上就是 conda 的一个生物分析软件和包的“仓库”

选择红框中 Python3.7 64位 版本

运行以下命令安装 :

# 可以在任意路径下载安装 Miniconda 的脚本,安装完毕即可删除

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

Miniconda3 下载完成

# 开始安装了

sh Miniconda3-latest-Linux-x86_64.sh

接受条款,回车直接选择默认安装路径

是否添加 conda 信息到 .bashrc 文件中,每次打开新的命令行窗口都自动启动 conda base?这个最好选择‘是’,不然自己设置会麻烦一些,选否也没什么太大问题

安装完成之后,后面这些就可以选择性的执行了

# 如果不想打开新的命令行,就执行一下

source ~/.bashrc

# 根据官网,因为 conda 有很多“频道”,要按下面的顺序添加好

conda config --add channels defaults

conda config --add channels bioconda

conda config --add channels conda-forge

这些 channel 在安装好之后任何时候都可以添加,不添加也不会出问题。在安装软件的时候,如果 Miniconda 默认 channel 里没有你需要的软件,通过参数 ' -c ' 来指定 channel 也是可以的,就像下面这个例子一样:

# 这是安装基因组比对软件 BWA

conda install -c bioconda bwa

注:为了方便,以后不论 Miniconda、Bioconda 还是 Anaconda,都统称 ‘conda’

装好了 conda,接下来通过 conda 安装 JupyterLab 就更简单了,不需要单独安装 Python,因为 conda 会自动安排好需要安装的软件和包,并且安装到 conda 的目录或者 conda 虚拟环境的目录下。

首先,我们使用 conda 来创建一个虚拟环境,这样既能更好的管理各种软件和包,又能避免对系统原有环境的破坏:

# 创建名为 'bioenv' 的虚拟环境

conda create -n bioenv

参数

解释

create

创建虚拟环境

-n

虚拟环境的名字

-p (可选)

指定虚拟环境安装的位置,默认是 conda 下的目录

其余更多参数就靠大家自己探索了。

创建好虚拟环境之后,会出现这样的提示

虚拟环境创建好了之后,按提示启动虚拟环境:

conda activate bioenv

每次安装新的软件和包最好都在启动虚拟环境之后安装,这样能保证这些软件和包都安装在虚拟环境 bioenv 当中,不影响系统和其他环境。

第二步:R 和 IRkernel 的安装

这一步两行命令解决,除了要安装 R ,还需要支持 R 在 JupyterLab 中的使用,那么就用到了 IRkernel:

# 先安装 R,这里从 channel ' r ' 下载安装,默认一般是 R 的最新稳定版

conda insrall -c r r-base

# 再安装 IRkernel

conda install -c r r-irkernel

conda 安装的命令:

# xxx 代表包的名称

conda install xxx

遇到询问是否继续,回车就可以了

第三步:JupyterLab 的安装

最后一步非常简单,一行命令解决问题:

# 通过 conda 的默认仓库就可以安装了

conda install jupyterlab

到这里,基本的安装就已经完成,如果需要安装 Python 和 R 的包,使用 conda install 安装应该就没什么问题了。

运行和打开 JupyterLab

如果是本地运行的话,在已经建立好的 bioenv 环境下,简单启动就没问题了:

# 直接在命令行执行,会自动在默认的浏览器里打开页面

jupyter lab

如果是在服务器上运行,可以使用下面的方法:

# 需要指定监听 IP 和 端口

jupyer lab --ip 0.0.0.0 --port 8888

参数

解释

--ip (必选)

这个可以是你服务器准确的 IP 地址,也可以是 0.0.0.0,这样就可以监听所有 IP 段

--port (可选)

默认监听的是 8888 端口,也可以通过这个参数指定你想监听的端口

注:关于 IP 、端口、监听以及 conda 和 JupyterLab 的高级设置已经超出本文讨论范围,将在另外的文章中详细解释

启动成功之后,命令行会出现类似如上的信息

打开 JupyterLab:

这个最简单了,本地运行的如前所述,会自动打开浏览器并启动 JupyterLab。如果是在服务器上部署的,那么将下面信息复制粘贴到浏览器的地址栏,回车即可:

http:// IP 地址:端口/?token= xxxxxxxxxxxxxxxxxxxxxxxx

稍等片刻,会看到如下的页面:

好了,顺利进入 JupyterLab~

卸载 JupyterLab 及 Bioconda:

最简单粗暴的方法就是把这几个文件夹以及 .bashrc 中相关的内容删掉:

# 删除 Jupyter 和 conda 相关的文件夹

rm -r miniconda3/ .conda/ .jupyter .ipython/ .ipynb_checkpoints/

# 编辑 .bashrc

vi .bashrc

删除这一段

这样就连同 Bioconda 和 JupyterLab 一起删掉了,还有文明点的方法:

1)只删除 JupyterLab:

# 只删除了 JupyterLab,其余的都还在

conda uninstall jupyterlab

如果想要删除其他软件或者包也是同样的方法

2)只删除 conda 的虚拟环境 bioenv:

# JupyterLab 也会一起被删除

conda env remove bioenv

其实 JupyterLab 不仅支持 Python 和 R,还支持其他各种语言。比如刚刚兴起据说是为数据分析而生,性能堪比 C,易用如 Python 的 Julia;还有常用的如 C、Java 和 MATLAB 这些都没问题,支持语言还是比较多

官方说法是支持超过40种

因此以后工作和学习中如果需要使用多种语言进行开发和分析,那就少了很多麻烦。当然了,没有一种工具是全能和完美的。相对来说 JupyterLab 还比较“年轻”,虽然还有很多不足,但看起来还是非常有潜力的一个工具。JupyterLab 脱胎于 Jupyter Notebook,也就是说有已经有了一个良好的基础,再加上这几年数据分析和 ML / DL 变热,使用 Jupyter 的人也越来越多,社区非常活跃。这样一来好处有两个:一是,使用的人多了,促进 JupyterLab 的更新和改进;二是,出了问题有更多人的会给你答案。如果大家有什么疑问,安装使用时遇到什么问题,或是有好的建议或技巧,请不吝在下方留言,交流才会有新发现~

未完待续 ...

易微升公众号

参考资料

生信分析用python还是r_生信分析利器:JupyterLab相关推荐

  1. 生信分析用python还是r_生信分析中常用的R语句

    一.前言 好难受,今天的R崩了.昨天才安装的包怎么报错了.为啥我装了这个包没反应,什么鬼怎么又乱码了.这玩泥巴(╯‵□′)╯︵┻━┻ 不行要佛系生活,好久没写简书了,还是来整理下代码吧┬-┬ノ('-' ...

  2. python监控短信_利用Python实现手机短信监控通知的方法

    日常运维工作中,通常是邮件报警机制,但邮件可能不被及时查看,导致问题出现得不到及时有效处理.所以想到用Python实现发短信功能,当监控到问题出现时,短信报警,使问题能得到及时的处理.当然,我相信,用 ...

  3. 预警短信python_zabbix 利用python脚本实现短信告警

    一.编写脚本 cd /usr/local/zabbix-4.0.3/share/zabbix/alertscripts vi zabbix_sms.py 内容如下: #!/usr/bin/python ...

  4. 层次分析法python代码_Python 实现层次分析法

    import csv import numpy as np import tensorflow as tf #大概的思路是: #1.首先输入每个指标下面对应的对比矩阵,每个这个矩阵是由专家比较每两个 ...

  5. Python免费发短信时报错

    Python免费发短信 关与Python免费发短信 一 首先注册的前提需要你的电话,其次在给你个免费的号,如果你想每天给自己或者女朋友发一条定时短信没有问题. 建议参照: https://www.cn ...

  6. Python数据特征分析-对比分析

    Python数据特征分析-对比分析 对比分析 1.绝对数比较 → 相减 生成数据 折线图比较 柱状图比较 柱状图堆叠图比较 差值折线图比较 2.相对数比较 → 相除 结构分析 生成数据 计算额度占比 ...

  7. 【生信】初探基因定位和全基因组关联分析

    初探QTL和GWAS 文章目录 初探QTL和GWAS 实验目的 实验内容 实验题目 第一题:玉米MAGIC群体的QTL分析 第二题:TASSEL自带数据集的关联分析 实验过程 玉米MAGIC群体的QT ...

  8. 生信学习之通路富集一(GO分析)

    生信学习之通路富集一(GO分析): 富集分析的理论知识 富集分析(Enrichment Analysis)是一种广泛应用于生物信息学研究的统计方法,主要用于检验一个基因集合中某些功能或特征的富集程度. ...

  9. 生信的一些基本知识-p-value和富集分析与BP,CC,MF联系

    01 - 什么是P-VALUE?请用自己的语言简要概括,并举一例子 在假设原假设(H0)正确时,出现现状或更差的情况的概率. 在生物信息学差异分析的表达图中,p-VALUE代表的是显著差异,p值越小, ...

  10. python生兔子问题(递归算法)_python 实现兔子生兔子示例

    python 实现兔子生兔子示例 如下所示: # -*- coding: utf-8 -*- # 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子. # 当小兔子长到第三个月后 ...

最新文章

  1. 【带着canvas去流浪(10)】文字烟花
  2. 关于document.write
  3. oracle status
  4. python笔记全_Python笔记
  5. ❤️六W字《计算机基础知识》(三)(建议收藏)❤️
  6. Hbuilder启动夜神游模拟器失败,解决方案
  7. Java的switch是否支持String作为参数,还支持哪些类型?
  8. C#的winform中MDI 父窗体改变背景色[转]
  9. word怎么恢复保存前的文件,word文件恢复
  10. 所有小米机型 解BT+刷Magisk并ROOT+躲避应用ROOT环境检查教程
  11. PyCharm谷歌翻译插件Translation提示:更新 TKK 失败,请检查网络连接
  12. weka中的arff格式数据
  13. 骑马与砍杀:风云三国 for Mac(角色扮演游戏)
  14. 50名工程师支撑着一个10亿用户量的产品:成功因素之一是几乎不开会
  15. 实训:网站诊断分析(12.10)
  16. CF/ATC/LC题目分数/近期比赛网址
  17. cs224n第二讲:简单的词向量表示:word2vec, Glove
  18. 2022年第二届机械工程与应用力学国际学术会议-ICMEAM2022
  19. 内卷起来,2023年外贸B2B企业怎么通过独立站吸引客户的注意
  20. WYTC-C#-抽象化

热门文章

  1. typedef 定义结构体说明
  2. python怎么循环播放_如何用pyaudio循环播放音频?
  3. POJ-Bound Found | 尺取法+绝对值特性
  4. [决策单调 分治] LOJ#535. 「LibreOJ Round #6」花火
  5. 自我决定理论:促进内在动机、社会发展和幸福感
  6. Micrium 开放了µC/OS-III源代码
  7. 计算机无法使用光驱启动,电脑怎么设置光驱启动 光驱启动设置教程【图文】...
  8. tex 表格内容换行_LaTeX:表格内换行与各种居中完美解决
  9. 小米9pro计算机打不开,小米9pro怎么连接电脑
  10. Centos 6版本Device eth0 does not seem to be present,delaying initialization.故障处理