Skip to content

An exhaustive GPU algorithm written in C++ to reveal degenerate oligonucleotide motifs written in the 15-letter IUPAC code

License

Notifications You must be signed in to change notification settings

friofry/motif_finder_cuda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

An exhaustive method based on high-performance GPU computing to reveal degenerate oligonucleotide motifs written in the 15-letter IUPAC code.

Building from source code

Dependencies

Download

git clone [email protected]:friofry/motif_finder_cuda.git

or download the latest zip archive:

curl -L https://github.com/friofry/motif_finder_cuda/archive/refs/tags/v1.0.zip --output v1.0.zip

Build

Run these commands in the source code directory:

  1. Make a build directory
mkdir build
cd build
  1. Configure the project
cmake -DCMAKE_BUILD_TYPE=Release ..

To provide the exact path to NVIDIA CUDA SDK use the following command:

cmake -DCUDA_SDK_ROOT_DIR=<cuda_sdk_path> -DCMAKE_BUILD_TYPE=Release ..
  1. Build
cmake --build . -j

motif_finder_cuda binary

The binary is in motif_finder_gpu folder

init.ini file example:

1		Complementarity. 0 - forward strand. 1 - forward + reverse strand.
8		Minimum score
35		Maximum presence of motif for random reasons in the positive set of sequences [0-100]
5		Minimum presence of motif in the positive set of sequences [0-100]
test_12.fst	File with positive set of sequences
0		0 - neutral frequencies, 1 - real nucleotide frequencies in the set of sequences [0, 1]
0		[deprecated]
10		Maximum number of result motifs. 0 - reveal all significant motifs [0, ]
0		Markov chain order (0-Bernulli, 1-dinucleotide, 2-trinucleotide), when using real nucleotide frequencies [0-3]
0		[deprecated]
0		[deprecated]
0.fst		File with contrast set of sequences
90		Maximum score in a contrast set of sequences
0               [deprecated]
0               Output results with Bonferroni correction. 0 - without correction , 1 - use correction [0, 1]
a.txt           Output file
0               Output results in integer format (0 - real values, 1 - integer values). [0, 1]
1               Skip motifs that coincide with the previous ones with a shift. [0, 1]

Run motif_finder_gpu

  1. Put init.init, motif_finder_gpu and positive, negative sequences to the same directory
  2. run ./motif_finder_gpu

Test data

  1. Navigate to test folder:
cd ../test_data/test_0
  1. Copy motif_finder_gpu to that folder
  2. Run the motif_finder_gpu
./motif_finder_gpu

Benchmarking the algorithm

See details here

Running on NUSC cluster

See details here


License

MotifFinder is licensed under the MIT License. MotifFinder also uses a number of third party libraries:

cxxopts

https://github.com/jarro2783/cxxopts https://github.com/jarro2783/cxxopts/blob/master/LICENSE (MIT license)

json for modern C++

https://github.com/nlohmann/json https://github.com/nlohmann/json/blob/develop/LICENSE.MIT (MIT license)

About

An exhaustive GPU algorithm written in C++ to reveal degenerate oligonucleotide motifs written in the 15-letter IUPAC code

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published