No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cpp
data
mphf
python
.gitignore
.travis.yml
LICENSE
README.md
requirement.txt
run.py

README.md

Build Status

Benchmark Reverse Complement

bench_rev_comp is a project to compare some reverse complement algorithme in some programing language.

How to run the benchmark

  1. Generate data
cd data
./generate_data -o data.csv
cd ..
  1. Run benchmark
mkdir output
./run.py -i data/data.csv -o output/test -l ${list_of_language_you_want_bench}
  1. Read the result, in output dir you find test_resume.csv with resume result, test test_${language}_raw.csv and test_${language}_${seq_size}.png

Project structure

  • data: content script to generate data set file.
  • cpp: source file to generate exectuable to run benchmark in C++

Interface for each language

For each language we have one executable he respect this cli interface :

./${programing language}/bench ${nbcall} ${sequence}

and returns for each algorithme the time in microsecond in csv format, like this :

naive,tab,hash,pol3
200,3000,200,1

Algorithm and implementation

In each language directory we found a algorithm.md file, he associate a short name to a description of algorithme and implementation specificity.

Algorithm naming

Please don't use this charactere in your algorithm name '-'

Contribution

You can create a new directory for your favorite language, add new algorithme in one language, translate some algorithme in another language, add another implementation of algorithme and make some modification in implementation (maybe your pull request generate big discussion).