Skip to main content

No project description provided

Project description

hpcblast

hpcblast软件用于在HPC环境下运行NCBI-BLAST+套件程序,提供了简单高效的方法,通过将比对输入文件进行拆分并利用HPC环境加速blast查找速度。当blast比对输入序列较多,运行速度较慢时使用hpcblast有明显的性能提升。

1. 特性

  • hpcblast将比对序列随机拆分成小文件并将任务并发运行在SGE或本地环境中
  • hpcblast兼容全部的NCBI-BLAST+选项和命令,结果和NCBI-BLAST+相同
  • hpcblast支持fa/fq格式,支持gz压缩格式输入,无需将fastq解压并转为fasta步骤
  • hpcblast统一的任务管理调度,自动管理资源,当程序中断或报错情况,自动销毁运行中的任务
  • hpcblast支持自定义并发控制和资源申请

2. 依赖

2.1 运行环境
2.2 其他python模块依赖

3. 安装

git仓库安装 (for recommend)

pip3 install git+https://github.com/yodeng/hpc-blast.git

Pypi安装

pip3 install hpcblast -U

4. 使用

$ hpc-blast -h 
usage: hpc-blast [--split <int>] [--queue [<str> ...]] [--cpu <int>] [--memory <int>] [--num <int>] --output <str> [--log <file>] [--local] [--version] [-h] <blast command>

hpc-blast <OPTIONS> <blast commands>

positional arguments:
  <blast command>      blast command

optional arguments:
  --split <int>        split query into num of chunks, 10 by default
  --queue [<str> ...]  sge queue, all.q by default, multi-queue can be sepreated by whitespace
  --cpu <int>          cpu usage for sge, 1 by default, max(--cpu, -num_threads) will be used
  --memory <int>       memory (GB) usage for sge, 1 by default
  --num <int>          max number of chunks run parallelly, default: all
  --output <str>       hpc blast output directory
  --log <file>         append hpc-blast log info to file, sys.stdout by default
  --local              run blast in localhost instead of sge
  --version            show program's version number and exit
  -h, --help           show this help message and exit

相关参数解释如下:

参数 描述
--split 将输入序列拆分为多少份
--queue 如果运行在sge环境,则传入指定的队列名,多个队列用空白隔开,默认all.q
--cpu 如果运行在sge环境,则任务申请的cpu资源数,默认1,会识别blast参数中的-num_thread参数,使用较大的值
--memory 如果运行在sge环境,则任务申请的内存,默认1,单位GB
--num hpcblast任务队列,将拆分的块发送到hpcblast任务队列中,代表同时运行的拆分块任务数,默认全部拆分块同时运行
--output hpcblast输出目录,不存在会自动创建
--log hpcblast输出日志文件,默认标准输出
--local 强制hpcblast本地并发运行,不使用sge运行。
--version 打印hpcblast版本并退出
-h, --help 打印hpcblast帮助并退出

说明

  • hpc-blast选项使用两个中划线--blast选项使用一个中划线-

  • hpc-blast命令和选项后面直接跟需要运行的blast命令即可,完全兼容,命令阻塞直到全部任务运行完成

  • hpcblast任务队列为最大允许同时运行的任务快,当某个任务快运行完成时会立即添加一个任务块到任务队列中运行

  • hpcblast主线程管理各并发子任务块,主线程几乎不占用cpu和内存资源,主程序终止,其管理的本地或sge任务自动清空,无需手动销毁

  • hpc-blast识别blast命令中的-query-num_thread参数,-query后面可直接跟fa/fq格式文件(支持*.gz压缩格式)

  • hpc-blast随机拆分输入文件,拆分过程无须将全部序列读入内存,无内存消耗,比对输出结果无序

  • 并发环境,需注意使用的cpu和内存资源

5. 示例

以下命令表示将test.fastq.gz序列随机拆分成200份进行blastn比对,任务投递到sge集群中,投递队列为all.qtest.q,使用资源virtual_free=1g,num_proc=4,允许同时运行的最大任务数为50个,blastn输出结果文件为test.blast.m6hpc-blast输出目录为当前目录下的out目录。

hpc-blast --split 200 --queue all.q test.q --num 50 --output out blastn -query test.fastq.gz -db /data/refdb -num_threads 4 -out test.blast.m6 -outfmt "6 qseqid qlen qstart qend"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

hpcblast-1.0.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

hpcblast-1.0.0-1-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hpcblast-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: hpcblast-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.18

File hashes

Hashes for hpcblast-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2a21df6c8cf829aab32895d1e558f2ed24d01f6e48742940f001675a77c15b3
MD5 11766a2849ab3c0fbad4bb108ba06991
BLAKE2b-256 e44d6a14c161ab12943631d8f1ec47d4cf8613b8effbf0e5d85afb482cee45b3

See more details on using hashes here.

File details

Details for the file hpcblast-1.0.0-1-py2.py3-none-any.whl.

File metadata

  • Download URL: hpcblast-1.0.0-1-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.25.1 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.18

File hashes

Hashes for hpcblast-1.0.0-1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 76a7a6afb54c994c26b4c12518117d188d2b66c665e45ae59e0e16375fd1add1
MD5 ba39714e160fe06f3d847b3357124ca8
BLAKE2b-256 33b3d69c0116f85636a95bbbddba324932a7b180668b8c8a6aaced26b912d423

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page