安装使用
conda install diamond
diamond help
比对nr库
db="/hwfsxx1/ST_HN/P18Z10200N0423/huty/databases/nr_huty/nr.20210705.dmnd"
mkdir 04_geneset/01_diamond/$infile
for i in `ls 03_assembly/$infile`; do
diamond blastp \
--db $db \
--query 03_assembly/$infile/$i/gene/${i}_rename.faa \
--block-size 15 --index-chunks 1 \
-e 1e-3 --outfmt 6 --max-target-seqs 1 --threads 32 --quiet \
--out 04_geneset/01_diamond/$infile/$i
# --block-size 2, 默认设置下,程序一次处理2G个序列字符,消耗内存12G
done
提速办法
1 增加内存分配
2 增加线程
--threads | -p <int> default: Max
设置程序运行所使用的CPU线程数。默认是服务器可用的最大CPU线程数。
3 --block-size | -b <float> default: 2.0
设置每次处理多少G的序列字符数。该参数控制程序消耗的内存量,一般内存消耗该值的6倍。设置更大的值,会消耗更多的内存和临时磁盘空间,但能提高性能。默认设置下,程序一次处理2G个序列字符,消耗内存12G。
4 --tmpdir | -t <string> default: directory of --out
设置临时文件夹路径。推荐该文件所在剩余磁盘空间有100G及以上。若将该参数设置为/dev/shm,则会将临时文件存放在内存,会增加内存消耗和计算性能。
5 --index-chunks | -c <int> default: 4
将seed index分成指定的份数。推荐将该参数值设置成1,能增加计算性能和内存使用量。
亲测增加 --block-size 15 --index-chunks 1
这两个参数后速度提升10倍以上。