GithubHelp home page GithubHelp logo

adept's Introduction

ADEPT

ADEPT is a GPU accelerated sequence alignment library for short DNA reads and protein sequences. It provides API calls for asychronously performing sequence alignments on GPUs while keeping track of progress on GPUs so that work can be performed on CPUs. Different capabilities of ADEPT API are explored using examples in the examples folder.

Dependencies

ADEPT can be built using CUDA 9.0 or later and a version of GCC compatible with the CUDA version that is used.

Building

To build ADEPT library along with the C++ and Python examples, first move into the top level directory of the repo and follow the below steps:

To build:

mkdir build
cd build
export PYTHONPATH=$PWD:$PYTHONPATH
cmake -DADEPT_USE_PYTHON=ON ../
make

To run

To run the installed examples (examples are also used as test):

make test

If you do not need python module of ADEPT, simply use:

mkdir build
cd build
cmake ../
make

and follow the above steps to run the tests.

Contact

If you need help modifying the library to match your specific use-case or for other issues and bug reports please open an issue or reach out at [email protected]

Citation

Awan, M.G., Deslippe, J., Buluc, A. et al. ADEPT: a domain independent sequence alignment strategy for gpu architectures. BMC Bioinformatics 21, 406 (2020). https://doi.org/10.1186/s12859-020-03720-1

Credits

  1. Muaaz Awan Twitter
  2. Muhammad Haseeb Twitter

License

ADEPT: a domain independent sequence alignment strategy for GPU architectures Copyright (c) 2019, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Intellectual Property Office at [email protected].

NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit other to do so.

adept's People

Contributors

mgawan avatar mhaseeb123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

adept's Issues

Segmentation fault during execution

Hello,

Inside driver::kernel_launch at driver.cpp, should this for loop go up to query_seqs.size()? It seems that there are cases we are trying to access a position on offset_que, that doesn't exist. Maybe you need the iterations to go up to batch_size?

for(int i = 0; i < query_seqs.size(); i++){

simple_sw fails for different maximum lengths of ref/query

Hello,

I try to execute the simple_sw example but with larger sequences. I increased the MAX_REF_LEN and MAX_QUERY_LEN and even for the sample inputs the correctness test fails. For example, I used the following values and it fails:
constexpr int MAX_REF_LEN = 8000; constexpr int MAX_QUERY_LEN = 2000;

Is there a limit on the maximum length of ref and query or the number of sequences? Also is there a relation between these 2 values? Can the maximum value for the reference and query be the same?

Little Mistakes in file readings

Hey, there are some silly mistakes when reading files. In the case of simple_sw.cpp line 65 and 67 are the same comparison, I guess one should be done with lineQ, and on line 88 you are checking the length of Q against largestA (which I guess should be largestB) and updating largestB. The same happens for other examples.
It is a silly mistake but I thought you might want to correct it.

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.