BLAST is public domain software.
Public-domain software is software that has been placed in the public domain, in other words, software for which there is absolutely no ownership such as copyright, trademark, or patent. Software in the public domain can be modified, distributed, or sold even without any attribution by anyone; this is unlike the common case of software under exclusive copyright, where licenses grant limited usage rights.
Web service interface¶
The NCBI supports RESTful interface to programmatically submit BLAST searches. Users of the service at the NCBI should respect the usage guidelines below.
A RESTful interface is supported for submission of BLAST searches via an HTTP based interface.
Searches are submitted to the NCBI servers. Documentation and sample perl code are available. This is a public resource, so usage limitations apply. Projects that involve a large number of BLAST searches should use the RESTful interface at a cloud provider or stand-alone BLAST.
The NCBI BLAST servers are a shared resource. We give priority to interactive users. In order to ensure availability of the service to the entire community, we may limit searches for some high volume users. Interactive users of the NCBI webpages through a web browser should not encounter problems. We will move searches of users who submit more than 100 searches in a 24 hour period to a slower queue, or, in extreme cases, will block the requests. To avoid problems, API users should comply with the following guidelines:
Do not contact the server more often than once every 10 seconds.
Do not poll for any single RID more often than once a minute.
Use the URL parameter email and tool, so that the NCBI can contact you if there is a problem.
Run scripts weekends or between 9 pm and 5 am Eastern time on weekdays if more than 50 searches will be submitted.
BLAST often runs more efficiently if multiple queries are sent as one search rather than if each query is sent as an individual search. This is especially true for blastn, megablast, and tblastn. If your queries are short (less than a few hundred bases) we suggest you merge them into one search of up to 1,000 bases
The NCBI servers are a shared resource and not intended for projects that involve a large number of BLAST searches. We provide the Stand-alone BLAST+ binaries, Docker Image and Elastic BLAST for these purposes.
C++ Toolkit implementation¶
The currently-maintained implementation of BLAST is part of the NCBI C++ Toolkit.
The algorithm core is written in C and a documented C++ API is available.
The source code may be downloaded by FTP and browsed with LXR.