You have chosen to sponsor your bid up to a maximum amount of .
I require a high performing C implementation of the BLAST algorithm. The software is only required to compare two provided sequences of nucleotide or protein data, rather than comparing a query sequence against a database of reference material.
The code should output the same score, expected value, bit score, ident and gap results as given by the NCBI implementation.
The software must be appropriate for use in a threaded application. Code is provided to show an example of how the implementation is expected to be used.
A single threaded application running on a 64-bit 2.4GHz CPU using this implementation must be able to perform at least 1000 sequence comparisons per second, where each sequence has 1000 bases.
1) Well structured and documented C source and header files
2) A Makefile to build the algorithm into a dynamic library, and to build the example application to use the library
3) Documentation explaining the structure of the software
4) Software must compile without modification on a current Linux distribution (CentOS, Ubuntu)
1) It is acceptable to use code from existing BLAST implementations, providing all sections of code are labelled. That said, the delivery must be well structured and easy to navigate, so it is not acceptable to incorporate the full NCBI toolkit, for example.
2) IUPAC codes are the expected alphabet of the input sequences