Code Monkey home page Code Monkey logo

openhero / gblastn Goto Github PK

View Code? Open in Web Editor NEW
59.0 7.0 19.0 25.87 MB

G-BLASTN is a GPU-accelerated nucleotide alignment tool based on the widely used NCBI-BLAST.

License: MIT License

C++ 78.75% C 17.43% Objective-C 0.01% Cuda 0.33% Shell 0.70% LiveScript 0.01% Batchfile 0.30% Makefile 0.13% Awk 0.03% AppleScript 0.27% TeX 0.08% JavaScript 0.37% Python 0.20% NSIS 0.10% Perl 0.20% M4 0.60% Java 0.29% Assembly 0.01% HTML 0.20% CSS 0.01%
bioinformatics high-performance high-performance-computing gpu ncbi-blast blastn nvidia cuda dna dna-sequences

gblastn's Introduction

G-BLASTN

G-BLASTN is a GPU-accelerated nucleotide alignment tool based on the widely used NCBI-BLAST. G-BLASTN can produce exactly the same results as NCBI-BLAST, and it also has very similar user commands. It also supports a pipeline mode, which can fully utilize the GPU and CPU resources when handling a batch of queries. G-BLASTN supports megablast and blastn mode. The discontiguous megablast mode is currently not supported.

Citation:

K. Zhao and X.-W. Chu, “G-BLASTN: Accelerating Nucleotide Alignment by Graphics Processors”, Oxford, Bioinformatics, 2014. http://bioinformatics.oxfordjournals.org/content/early/2014/01/24/bioinformatics.btu047.abstract?keytype=ref&ijkey=FkuzgmzzPTJss9c

@article{KY.Zhao2014,
author = {Kaiyong Zhao and Xiaowen Chu},
title = {{G-BLASTN: accelerating nucleotide alignment by graphics processors}},
journal = {Bioinformatics},
year = {2014},
volume = {30},
number = {10},
pages = {1384-1391},
doi = {10.1093/bioinformatics/btu047},
url = {https://academic.oup.com/bioinformatics/article/30/10/1384/267507}
}

Acknowledgement:

This project is supported by grant FRG2/11-12/158 from Hong Kong Baptist University. We also thank NVIDIA corporation for their donation of GPU cards.

News v1.2:

1.2 [October 2019] version release is built on NCBI-BLAST 2.2.28.

Merged with ncbi-blast-2.2.28+.src support CUDA 10.1 Ubuntu 18.x GCC 7.x

Install

./configure --without-debug --with-mt --without-sybase --without-fastcgi --without-sssdb --without-sss --without-geo --without-sp --without-orbacus --without-boost

make

User guide

Please follow the example in shell directory.

More details

https://www.comp.hkbu.edu.hk/~chxw/software/G-BLASTN.html

License

See the LICENSE file for license rights and limitations (MIT).

gblastn's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gblastn's Issues

Update Versions

Many commits have been added since the last version release 7 years ago. Perhaps it is time for version 1.2 to be released?

Does not output to stdout

When -out is not specified, the original NCBI-BLAST outputs to the standard output, but it seems that gblastn does not output anything when -out is not specified, making it difficult to be used as a drop-in replacement for existing pipelines.

Compilation error

System: Ubuntu 14.04
Cuda compilation tools, release 5.5, V5.5.0.
They are installed via apt-get, which is possible since 14.

Error msg;

Compiling CUDA code
/home/jus/Code/gpu_blast/ncbi-blast-2.2.28+-src/c++/src/algo/blast/gpu_blast/
.cuda_bin_dir /usr/bin
cuda_dir /usr
CUDA library directory cannot be found. Exiting installation...

Script 'install' looks for /usr/lib64, but in a generic x86_64, it's either
/usr/lib or /usr/lib32.

One needs to find a better way to determine the cuda install path.

Add license to project

Please add a license to the project. Unless any constraints exist I suggest the permissive license MIT. This will make use of the software easier as it will be known what terms apply.

More information provided by GitHub can be found here.

CUDA error at gpu_blastn_MB_and_smallNa.cu:1903

I got the following error when I tried gblastn::

CUDA error at gpu_blastn_MB_and_smallNa.cu:1903 code=11(cudaErrorInvalidValue) "cudaMemcpy(offset_pairs, p_scanMultiDBAuxWrap->offsetPairs, exact_hits_num* sizeof(BlastOffsetPair), cudaMemcpyDeviceToHost)"

However, the error message is not informative enough for me to guess what the problem is. Is there anyway to figure out what happened?

The database size is approx. 400Mb, which is far smaller than the one described in the paper. We use Tesla K20m so I believe the amount of available memory is sufficient. I tried the HEAD of the repository.

Compilation error

I'm using the latest version (f31125a) of gblastn and followed the README:

First I did:
configure --without-debug --with-mt --without-sybase --without-fastcgi --without-sssdb --without-sss --without-geo --without-sp --without-orbacus --without-boost

The configure step ended with this message:

******* CONFIGURATION SUCCESSFUL *******

Then:
make

The make steps exits on an error:

make[3]: *** [/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build/Makefile.rules:26: blob_storage.o] Error 1
make[3]: Leaving directory '/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build/corelib'
FAILED: src/corelib/Makefile.corelib.lib
make[3]: Entering directory '/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build/corelib'
/bin/rm -f libxncbi.a .xncbi.dep .libxncbi.a.stamp
/bin/rm -f /home/protedex/gblastn/c++/GCC900-ReleaseMT64/lib/libxncbi.a /home/protedex/gblastn/c++/GCC900-ReleaseMT64/status/.xncbi.dep
/home/protedex/gblastn/c++/GCC900-ReleaseMT64/lib/libxncbi-static.a /home/protedex/gblastn/c++/GCC900-ReleaseMT64/status/.xncbi-static.dep
make[3]: Leaving directory '/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build/corelib'
make[2]: *** [/home/protedex/gblastn/c++/src/build-system/Makefile.meta_l:240: all.nonusr] Error 2
make[2]: Leaving directory '/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build/corelib'
make[1]: *** [/home/protedex/gblastn/c++/src/build-system/Makefile.meta_r:41: all_r.real] Error 5
make[1]: Leaving directory '/home/protedex/gblastn/c++/GCC900-ReleaseMT64/build'
make: *** [Makefile:23: all] Error 2

Any suggestions on fixing the issue would be appreciated.

configure error on powerpc architecture

I am getting configure errors on powerpc architecture when trying to configure with the flags provided. Here is the command and the detailed output:

`$ ./configure --without-debug --with-mt --without-sybase --without-fastcgi --without-sssdb --without-sss --without-geo --without-sp --without-orbacus --without-boost --prefix=/ccs/home/ketan2/summitwork/gblastn/install
configure: loading site script ./src/build-system/config.site

configure: creating cache config.cache
checking build system type... src/build-system/config.guess: unable to guess system type

This script, last modified 2003-02-22, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from

ftp://ftp.gnu.org/pub/gnu/config/

If the version you run (src/build-system/config.guess) is already up to date, please
send the following data and any information you think might be
pertinent to [email protected] in order to provide the needed
information to handle your system.

config.guess timestamp = 2003-02-22

uname -m = ppc64le
uname -r = 4.14.0-115.8.1.el7a.ppc64le
uname -s = Linux
uname -v = #1 SMP Thu May 9 14:45:13 UTC 2019

/usr/bin/uname -p = ppc64le
/bin/uname -X =

hostinfo =
/bin/universe =
/usr/bin/arch -k =
/bin/arch = ppc64le
/usr/bin/oslevel =
/usr/convex/getsysinfo =

UNAME_MACHINE = ppc64le
UNAME_RELEASE = 4.14.0-115.8.1.el7a.ppc64le
UNAME_SYSTEM = Linux
UNAME_VERSION = #1 SMP Thu May 9 14:45:13 UTC 2019
configure: error: cannot guess build type; you must specify one`

Compilation error

It seems as though the installation is not completing properly but I'm not getting an error message. Below is the output to the terminal:

Do you want to install GPU-BLASTN on an existing installation of "blastn" [yes/no]
yes: you will be asked for the installation directory of the "blastn" executable
no: will download and install "ncbi-blast-2.2.28+-src"
yes
Please input the bin directory of "blastn" of "ncbi-blast-2.2.28+-src"
e.g.: /ssd/blast/src/ncbi-blast-2.2.28+-src/c++/GCC447-ReleaseMT64/bin
/home/vader/apps/ncbi-blast-2.2.28+-src/c++/GCC480-ReleaseMT64/bin
"blastn" version 2.2.28+ is compatible
Continuing with the installation of GPU-BLASTN...
Building NCBI BLAST with BLAST
................................
/home/vader/apps/ncbi-blast-2.2.28+-src/c++/GCC480-ReleaseMT64/bin/../../

Modifying NCBI BLAST files
/home/vader/apps/gblastn
cd /home/vader/apps/ncbi-blast-2.2.28+-src/c++/GCC480-ReleaseMT64/bin/../..//src/algo/blast/gpu_blast/

Compiling CUDA code
/home/vader/apps/ncbi-blast-2.2.28+-src/c++/GCC480-ReleaseMT64/bin/../..//src/algo/blast/gpu_blast/
.cuda_bin_dir /usr/local/cuda-8.0/bin
cuda_dir /usr/local/cuda-8.0
Completed compiled gpu part......

Building NCBI BLAST with GPU BLAST
................................

But then in the gpu_blast.output log file I have this:

make: makefile: No such file or directory
make: *** No rule to make target 'makefile'. Stop.

Install Error: error: 'BlastMGPUUtil' was not declared in this scope

Trying to set this up inside of a container. Ran into the following error during the make process.

/opt/gblastn-1.2/c++/src/algo/blast/gpu_blast/gpu_blastn_pre_search_engine.cpp: In function 'Int2 Blast_gpu_RunPreliminarySearchWithInterrupt(EBlastProgramType, BLAST_SequenceBlk*, BlastQueryInfo*, const BlastSeqSrc*, const BlastScoringOptions*, BlastScoreBlk*, LookupTableWrap*, const BlastInitialWordOptions*, const BlastExtensionOptions*, const BlastHitSavingOptions*, const BlastEffectiveLengthsOptions*, const PSIBlastOptions*, const BlastDatabaseOptions*, const BlastGPUOptions*, BlastHSPStream*, BlastDiagnostics*, TInterruptFnPtr, SBlastProgress*)':
/opt/gblastn-1.2/c++/src/algo/blast/gpu_blast/gpu_blastn_pre_search_engine.cpp:1510:2: error: 'BlastMGPUUtil' was not declared in this scope
BlastMGPUUtil.ThreadFetchGPU(gpu_id);
^
/opt/gblastn-1.2/c++/src/algo/blast/gpu_blast/gpu_blastn_pre_search_engine.cpp:1542:23: warning: deleting 'void*' is undefined [enabled by default]
delete lookup_wrap->lut;
^
make[4]: *** [gpu_blastn_pre_search_engine.o] Error 1
make[4]: Leaving directory /opt/gblastn-1.2/c++/GCC485-ReleaseMT64/build/algo/blast/gpu_blast' make[3]: *** [all_r.real] Error 5 make[3]: Leaving directory /opt/gblastn-1.2/c++/GCC485-ReleaseMT64/build/algo/blast'
make[2]: *** [all_r.real] Error 5
make[2]: Leaving directory /opt/gblastn-1.2/c++/GCC485-ReleaseMT64/build/algo' make[1]: *** [all_r.real] Error 5 make[1]: Leaving directory /opt/gblastn-1.2/c++/GCC485-ReleaseMT64/build'
make: *** [all] Error 2
FATAL: While performing build: while running engine: exit status 2
[

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.