Linux 下提升生物信息分析工作效率的神器(持续更新)

tags: fastq clumpify linux pigz axel Ctrl+R

子曰:“工欲善其事,必先利其器。”


多线程超快速压缩工具 pigz

pigz 是 linux 下一个高效压缩工具,与 gzip 相比 pigz 在压缩文件时默认使用多线程,如果不指定线程数,软件检测到的机器的 cpu 可用线程数就是默认线程数,如果检测不到,则默认设为 8,因此比 gzip 快,也比 gzip 更耗资源。

为什么叫 pigz,官网这么描述的:A parallel implementation of gzip for modern multi-processor, multi-core machines

压缩解压测序原始数据,VCF 文件等等,pigz 飞一般的感觉~
压缩:

pigz  raw.fastq

解压:

pigz -d raw.fastq.gz

详细用法

$ pigz
Usage: pigz [options] [files ...]
  对文件进行压缩替换,文件名添加后缀 '.gz'。如果不指定文件,则接受标准输入然后将压缩结果输出到标准输出。pigz 是多线程版的 gzip。

Options:
  -0 to -9, -11        压缩水平 (11 is much slower, a few % better)
  --fast, --best       --fast 代表压缩水平为1,--best代表压缩水平为9
  -b, --blocksize mmm  设置压缩区块大小为 mmmK (默认 128K)
  -c, --stdout         将处理结果输出到标准输出 (won't delete)
  -d, --decompress     对压缩文件进行解压缩
  -f, --force          Force overwrite, compress .gz, links, and to terminal
  -F  --first          Do iterations first, before block split for -11
  -h, --help           显示帮助文档
  -i, --independent    Compress blocks independently for damage recovery
  -I, --iterations n   Number of iterations for -11 optimization
  -k, --keep           Do not delete original file after processing
  -K, --zip            Compress to PKWare zip (.zip) single entry format
  -l, --list           List the contents of the compressed input
  -L, --license        Display the pigz license and quit
  -M, --maxsplits n    Maximum number of split blocks for -11
  -n, --no-name        Do not store or restore file name in/from header
  -N, --name           Store/restore file name and mod time in/from header
  -O  --oneblock       Do not split into smaller blocks for -11
  -p, --processes n    使用 n 线程进行压缩(默认是值是机器核心数,核心数未知则使用 8 线程) 
  -q, --quiet          静默模式,不输出任何信息
  -r, --recursive      递归模式,对所有的子文件夹中内容进行同样的处理
  -R, --rsyncable      Input-determined block locations for rsync
  -S, --suffix .sss    压缩文件后缀用 .sss 代替默认的 .gz 
  -t, --test           Test the integrity of the compressed input
  -T, --no-time        Do not store or restore mod time in/from header
  -v, --verbose        Provide more verbose output
  -V  --version        Show the version of pigz
  -z, --zlib           Compress to zlib (.zz) instead of gzip format
  --                   All arguments after "--" are treated as files

实际上没有任何理由不用 pigz 代替 gzip 了


能使 Fastq 压缩文件再缩小 30% 并加速后续分析流程的小神器 Clumpify

Clumpify 是 BBMap 工具包中的一个组件,用法如下:

clumpify.sh -Xmx50000m in1 = r1.fq.gz in2 = r2.fq.gz out1 = c1.fq.gz out2 = c2.fq.gz

它其实只是将 Fastq 文件按照序列相似性和 tile 位置进行了排序(有点类似 CD-hit 工作原理),以便使得文件压缩率达到最大,它并没有对文件内容做任何改动。它除了会使后续分析流程变快之外,没有任何副作用。

建议对于数据需要长期存储,或者后续分析流程耗时较长的场景,数据下机之后首先用这个工具对 fastq 进行排序压缩,节省数据存储空间。

实测 Clumpify 确实能显著减少 fastq 压缩文件的体积,这里注意一个参数 -Xmx 限制 JVM 使用的最大内存,一定要根据自己机器配置情况设置一下,不然 Clumpify 默认自动检测可用内存,如果处理的 Fastq 文件太大,会把机器内存都占满,就别再想跑别的程序了。

另外,Clumpify 还可以直接识别原始数据中的光学 duplicate,就是那些 @seq-id 坐标临近、序列相同的 reads,并去除它,清理数据同时节省空间 :)


多线程下载工具 axel

axel 是 linux 下支持多线程下载的工具,下载速度会比 wget 快,下载数据库,参考基因组,比 wget 强多了:

$ axel
Usage: axel [options] url1 [url2] [url...]

--max-speed=x       -s x    最大下载速度 (bytes per second)
--num-connections=x -n x    最大下载进程数
--output=f      -o f    指定输出文件名
--search[=x]    -S [x]  搜索境像并且从指定的x服务器(可以是多个)下载
--header=x      -H x    添加文件头
--user-agent=x  -U x    使用代理
--no-proxy      -N  不使用代理
--insecure      -k  不验证 SSL 证书
--quiet         -q  静默模式
--verbose       -v  显示下载详情
--alternate     -a  设置下载过程中按不刷屏方式显示下载过程
--help          -h  显示帮助信息
--version       -V  显示版本信息

Visit https://github.com/eribertomota/axel/issues to report bugs

支持断点续传,下载中断之后,再次输入上次的下载命令,会接着上次下载的位置继续下载。

对我来说没有任何理由不用 axel 代替 wget 了


Linux 快捷搜索历史命令 Ctrl + R

在日常的工作中,用到的很多 Linux 命令都可以通过修改历史命令快速编辑完成,效率比重新敲打一条命令不知道高哪里去了。使用上下方向键可以按顺序查找历史命令,但是效率不高,最高效的方法是使用 Ctrl + R 快捷键组合通过输入关键字符快速调出相关的历史命令,如果匹配这个关键字符的历史命令有多条,可以重复按 Ctrl + R 在多条命令中进行切换,切到自己想要的命令后可以直接 Enter 键运行命令,也可以按 → 右方向键得到这条命令以便进一步修改。

快捷搜索历史命令 Ctrl + R
快捷搜索历史命令 Ctrl + R
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容