安裝使用
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, 默認(rèn)設(shè)置下亿蒸,程序一次處理2G個序列字符掌桩,消耗內(nèi)存12G
done
提速辦法
1 增加內(nèi)存分配
2 增加線程
--threads | -p <int> default: Max
設(shè)置程序運(yùn)行所使用的CPU線程數(shù)。默認(rèn)是服務(wù)器可用的最大CPU線程數(shù)茅坛。
3 --block-size | -b <float> default: 2.0
設(shè)置每次處理多少G的序列字符數(shù)则拷。該參數(shù)控制程序消耗的內(nèi)存量,一般內(nèi)存消耗該值的6倍煌茬。設(shè)置更大的值,會消耗更多的內(nèi)存和臨時磁盤空間晾蜘,但能提高性能眠屎。默認(rèn)設(shè)置下,程序一次處理2G個序列字符改衩,消耗內(nèi)存12G。
4 --tmpdir | -t <string> default: directory of --out
設(shè)置臨時文件夾路徑竭鞍。推薦該文件所在剩余磁盤空間有100G及以上。若將該參數(shù)設(shè)置為/dev/shm洒放,則會將臨時文件存放在內(nèi)存滨砍,會增加內(nèi)存消耗和計算性能。
5 --index-chunks | -c <int> default: 4
將seed index分成指定的份數(shù)惋戏。推薦將該參數(shù)值設(shè)置成1,能增加計算性能和內(nèi)存使用量绒窑。
親測增加 --block-size 15 --index-chunks 1
這兩個參數(shù)后速度提升10倍以上舔亭。