使用本地存储¶
集群的队列本地均为SSD,IO性能较好,如果作业有大量的小文件读写,此时使用计算节点本地SSD进行文件读写会有较大的速度提升。
Warning
由于本地盘较小(normalhigh为480G,smp为1.4T),因此不可拷入或生成大型文件。使用LSF选项-R "rusage[tmp=10G]"来指定预计使用的本地存储大小,以免出现/tmp目录写满或/tmp空间不够导致作业挂掉。
使用方式如下,输入和输出文件分别为inputfile和outputfile,两个文件大小一起不超过5G。
#BSUB -J program
#BSUB -n 10
#BSUB -R "rusage[tmp=5G]"
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q normal
# 生成随机字符串,以免与其它目录重复
tmpn=`mktemp -u program_XXXXX`
# 在/tmp/中新建运行目录,并进入该目录
tmpd="/tmp/${tmpn}"
mkdir ${tmpd}
# 打印节点名称和新建目录名称,以方便出错处理
hostname
echo ${tmpd}
# 将输入文件拷到节点本地存储目录
cp /path/inputfile ${tmpd}
# 运行程序
program ${tmpd}/inputfile ${tmpd}/outputfile
# 程序运行结束后,将生成文件拷回共享存储目录
mv ${tmpd}/outputfile .
# 清理临时文件
rm -r ${tmpd} && echo "program done"
# 如果因程序出错、节点宕机等原因导致作业日志没有输出program done的提示,此时节点本地数据很可能未删除,需要另外提作业到该节点将本地数据删除。
# 节点和目录为23和24行的输出,可以在作业日志中获取。
数据下载¶
Warning
数据下载不需要提交lsf作业,直接在登录节点运行wget、prefetch等下载程序即可。
目前集群只有??台登录节点联网、并具有独立IP,每个节点理论最高网速为100MB/s。计算节点禁止联网,因此数据下载仅能在登录节点进行,数据上传到ncbi同理。
有大批量数据下载时,建议在3台节点上分别跑一部分下载任务,方可达到最高的下载速度。
如果下载时间较长,建议开个screen进行操作,使用wget时加上断点续传选项。screen 和 wget 使用见 Linux基础。
大量数据下载时,一个用户在登录节点上同时运行不超过3个下载任务,以prefetch为例:
$ screen -S prefetch
$ cat id_list
ID1
ID2
ID3
ID4
ID5
ID6
ID7
ID8
ID9
ID10
$ cat id_list|xargr -i -P 3 prefetch {}
kingfisher¶
使用kingfisher可以快速从多个源下载公共测序数据 (EBI ENA, NCBI SRA, Amazon AWS 和 Google Cloud ),用户提供一个或多个"run accession number",如 ERR1739691,或 "BioProject accession number",如 PRJNA621514` 或SRP260223
。
SRA数据下载可以使用kingfisher代替prefetch、ascp等工具,具体使用见 kingfisher。
ascp¶
$ module load aspera-connect/3.9.9.177872
$ ascp -i $ASPERAKEY -k 1 -T -l1000m anonftp@ftp.ncbi.nih.gov:/blast/db/FASTA/nr.gz ./
nr 100% 186GB 19.4Mb/s 7:37:51
Completed: 195328267K bytes transferred in 27472 seconds
(58245K bits/sec), in 1 file.
EdgeTurbo¶
CNCB 数据下载
https://cloud.tencent.com/developer/article/2228281
百度云
集群上可以使用命令行工具 BaiduPCS-Go 进行百度云文件的上传和下载,具体使用见 BaiduPCS-Go。
本文阅读量 次 本站总访问量 次