Appendix IV. Useful tools for bioinformatics

Jupyter

安装方法:
1
pip install jupyter
Copied!
特性:
    基于浏览器的Python编程界面
    支持画图,HTML可视化和运行JavaScript
    支持Markdown, Latex公式嵌入
    支持Python2, Python3, R, bash等多种kernel
    支持插件,例如导航栏
    可导出为Python脚本、HTML等,以ipynb文件格式分享
    可远程运行Terminal
    安装JupyterHub之后可通过集群上的账户登录,多用户之间互不干扰

snakemake

安装方法:
1
pip install snakemake
Copied!
特性:
    Snakefile类似Makefile。编程语言是Python语法的扩展,可充分利用Python语言
    自动解析任务之间的依赖性,自动并行没有依赖的任务
    通过生成文件的修改时间跳过已运行完的任务
    中断时自动移除输出文件,避免下一步用到不完整的输入文件
    可设置通过qsub, bsub等命令提交到集群
    可将任务依赖关系图导出为图片

RStudio

特性:
    图形化界面集成R编辑器,数据管理,画图,包管理等
    可运行Terminal
    RStudio Server可运行在服务器上,通过浏览器访问
    用户可通过服务器上的账户登录到RStudio Server

rsync

rsync是Linux/Unix下最常用的同步工具,常用于备份。
最常试用的命令:
1
rsync -ravP ${source} ${dest}
Copied!
注意:
    -a参数保留符号链接和所有文件访问权限
    -P实时显示传输进度
    ${dest}${source}可以是文件或目录
    ${dest}${source}可以是远程服务器上的目录(格式为[email protected]:directory),但不能同时是远程文件或目录。远程文件传输一般需要SSH账户。
    源目录名后加"/": 把源目录下的所有文件和目录复制到目标目录。源目录名不加"/":在目标目录创建新的与源目录相同的目录。
    ${source}可指定多次,${dest}只能指定一次
    如果加--delete参数,则目标目录下多余的文件或目录会被删除(谨慎使用!)

Visual Studio Code

微软推出的图形编辑器。
特性:
    轻量级。相比于PyCharm编辑器启动更快,运行更加流畅
    与Git, Docker深度集成(可查看文件修改状态和修改历史)
    支持大量的插件,包括Python, R, bash, C/C++,HTML等绝大部分语言语法检查器和补全
    自动保存和恢复工作区(打开的文件)
    底部集成Terminal
    Remote Development (SSH)插件支持直接通过SSH直接编辑远程服务器上的文件
    Remote Development (WSL)插件支持Windows上直接编辑WSL (Linux子系统)上的文件
    Remote Development (Docker)插件支持直接编辑Docker容器内的文件

htop

终端下交互式任务管理器
下载地址:https://hisham.hm/htop/
特性:
    建议替代系统top。可同时可视化显示运行的任务信息,CPU负载,内存占用,硬盘占用等信息
    支持鼠标点击操作,例如按CPU, 内存使用排序
    支持进程树显示
    可显示进程下的线程

screen

Linux下后台任务管理,用于保持任务后台运行并实时监控任务运行状态。
CentOS下安装方法:
1
sudo yum install screen
Copied!
启动新窗口(命名为${task_name}):
1
screen -S ${task_name}
Copied!
暂时退出窗口(detach): 先同时按Ctrl-a,松开后按d键
列出所有窗口:
1
screen -ls
Copied!
恢复窗口(attach):
1
screen -r ${task_name}
Copied!
完全退出窗口(kill): Ctrl-d

parallel/xargs

命令行下任务并行软件。其中parallel需要单独安装,但功能比xargs更强大。
最简单的使用方法是,把要运行的bash命令写到文件commands.txt里,每行一个命令,然后运行:
1
parallel -j 8 commands.txt
Copied!
其中-j后的数字代表最大同时运行的命令数。
xargs默认会把多行输入合并为空格分隔的单行输出,如果后面加命令,则会把它们作为命令参数。
例如以下命令把ls输出的文件名作为参数传递给wc -l统计每个文件的行数:
1
ls | xargs wc -l
Copied!
如果需要上述命令并行,可以用以下命令:
1
ls | xargs -L 1 -P 4 wc -l
Copied!
其中-L 1代表每一行合并为一个参数传递给wc -l-P 4参数代表4个线程并行。

ack

比grep更强大的代码搜索工具。
下载地址:https://beyondgrep.com/
特性:
    默认递归搜索(grep命令需用fgrep -r递归搜索)
    可指定编程语言(例如加--python参数)
    高亮显示所在文件和行

pigz

下载地址:https://zlib.net/pigz/
多线程版的gzip压缩工具,使用方式与gzip完全相同。线程数可用-p参数指定。 一般用3~4个线程可大大加速gzip的压缩和解压操作,过大没有加速效果,因为受限于硬盘读写速度。

crontab

Linux下计划运行任务的程序。
在线crontab生成器:https://crontab-generator.org/
打开crontab编辑器:
1
crontab -e
Copied!
加入以下crontab行:
1
0 */6 * * * du -sh /tmp >>/tmp/du.txt 2>&1
Copied!
将每隔6个小时运行后面的命令du -sh /tmp,并添加到文件/tmp/du.txt

killall

按条件批量删除任务。
例如,删除所有名为python的任务:
1
killall python
Copied!
删除所有由用户${user}启动的任务:
1
killall -u ${user}
Copied!
Last modified 2yr ago