生信分析用python还是r_生信分析利器:JupyterLab
生信分析对计算机的开发环境有诸多要求,随之而来的自然就是很多麻烦。不说别的,要兼顾 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相关推荐
- 生信分析用python还是r_生信分析中常用的R语句
一.前言 好难受,今天的R崩了.昨天才安装的包怎么报错了.为啥我装了这个包没反应,什么鬼怎么又乱码了.这玩泥巴(╯‵□′)╯︵┻━┻ 不行要佛系生活,好久没写简书了,还是来整理下代码吧┬-┬ノ('-' ...
- python监控短信_利用Python实现手机短信监控通知的方法
日常运维工作中,通常是邮件报警机制,但邮件可能不被及时查看,导致问题出现得不到及时有效处理.所以想到用Python实现发短信功能,当监控到问题出现时,短信报警,使问题能得到及时的处理.当然,我相信,用 ...
- 预警短信python_zabbix 利用python脚本实现短信告警
一.编写脚本 cd /usr/local/zabbix-4.0.3/share/zabbix/alertscripts vi zabbix_sms.py 内容如下: #!/usr/bin/python ...
- 层次分析法python代码_Python 实现层次分析法
import csv import numpy as np import tensorflow as tf #大概的思路是: #1.首先输入每个指标下面对应的对比矩阵,每个这个矩阵是由专家比较每两个 ...
- Python免费发短信时报错
Python免费发短信 关与Python免费发短信 一 首先注册的前提需要你的电话,其次在给你个免费的号,如果你想每天给自己或者女朋友发一条定时短信没有问题. 建议参照: https://www.cn ...
- Python数据特征分析-对比分析
Python数据特征分析-对比分析 对比分析 1.绝对数比较 → 相减 生成数据 折线图比较 柱状图比较 柱状图堆叠图比较 差值折线图比较 2.相对数比较 → 相除 结构分析 生成数据 计算额度占比 ...
- 【生信】初探基因定位和全基因组关联分析
初探QTL和GWAS 文章目录 初探QTL和GWAS 实验目的 实验内容 实验题目 第一题:玉米MAGIC群体的QTL分析 第二题:TASSEL自带数据集的关联分析 实验过程 玉米MAGIC群体的QT ...
- 生信学习之通路富集一(GO分析)
生信学习之通路富集一(GO分析): 富集分析的理论知识 富集分析(Enrichment Analysis)是一种广泛应用于生物信息学研究的统计方法,主要用于检验一个基因集合中某些功能或特征的富集程度. ...
- 生信的一些基本知识-p-value和富集分析与BP,CC,MF联系
01 - 什么是P-VALUE?请用自己的语言简要概括,并举一例子 在假设原假设(H0)正确时,出现现状或更差的情况的概率. 在生物信息学差异分析的表达图中,p-VALUE代表的是显著差异,p值越小, ...
- python生兔子问题(递归算法)_python 实现兔子生兔子示例
python 实现兔子生兔子示例 如下所示: # -*- coding: utf-8 -*- # 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子. # 当小兔子长到第三个月后 ...
最新文章
- 【带着canvas去流浪(10)】文字烟花
- 关于document.write
- oracle status
- python笔记全_Python笔记
- ❤️六W字《计算机基础知识》(三)(建议收藏)❤️
- Hbuilder启动夜神游模拟器失败,解决方案
- Java的switch是否支持String作为参数,还支持哪些类型?
- C#的winform中MDI 父窗体改变背景色[转]
- word怎么恢复保存前的文件,word文件恢复
- 所有小米机型 解BT+刷Magisk并ROOT+躲避应用ROOT环境检查教程
- PyCharm谷歌翻译插件Translation提示:更新 TKK 失败,请检查网络连接
- weka中的arff格式数据
- 骑马与砍杀:风云三国 for Mac(角色扮演游戏)
- 50名工程师支撑着一个10亿用户量的产品:成功因素之一是几乎不开会
- 实训:网站诊断分析(12.10)
- CF/ATC/LC题目分数/近期比赛网址
- cs224n第二讲:简单的词向量表示:word2vec, Glove
- 2022年第二届机械工程与应用力学国际学术会议-ICMEAM2022
- 内卷起来,2023年外贸B2B企业怎么通过独立站吸引客户的注意
- WYTC-C#-抽象化
热门文章
- typedef 定义结构体说明
- python怎么循环播放_如何用pyaudio循环播放音频?
- POJ-Bound Found | 尺取法+绝对值特性
- [决策单调 分治] LOJ#535. 「LibreOJ Round #6」花火
- 自我决定理论:促进内在动机、社会发展和幸福感
- Micrium 开放了µC/OS-III源代码
- 计算机无法使用光驱启动,电脑怎么设置光驱启动 光驱启动设置教程【图文】...
- tex 表格内容换行_LaTeX:表格内换行与各种居中完美解决
- 小米9pro计算机打不开,小米9pro怎么连接电脑
- Centos 6版本Device eth0 does not seem to be present,delaying initialization.故障处理