Developer Information

Overview

BLAST is public domain software.

Web service interface

The NCBI provides two programmatic methods to submit BLAST searches. One method uses a RESTful interface and the other uses SOAP. Users of both methods should respect the usage guidelines below.

REST

This interface allows submission of BLAST searches for processing at NCBI via an HTTP-based interface. Documentation and sample perl code are available. The normal BLAST report is a human readable output that is subject to change with little or no notice. For developers wishing to parse the BLAST output the NCBI makes available ASN.1, XML, and a simplified hit-table. Please consult the NCBI Handbook Chapter for further information.

SOAP

This service makes use of the Simple Object Access Protocol (SOAP) to submit and retrieve searches with the NCBI BLAST web server. The service can also query the server for other information. A simple ("Lite") interface is available that should be suitable for most projects. This service offers results only as XML. Documentation and links to the WSDL and sample clients are available.

Usage Guidelines

Do not overload the NCBI servers. If you are intending to perform more than 20 searches in a session you should comply with the following guidelines:

1.) Do not contact the server more often than once every three seconds.

2.) Do not poll for any single RID more often than once a minute.

3.) Use the URL parameter email, and tool, so that we can track your project and contact you if there is a problem.

4.) Run scripts weekends or between 9 pm and 5 am Eastern Time weekday if more than 50 searches will be submitted.

BLAST often runs more efficiently if multiple queries are sent as one search 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 10,000 bases

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 .

C Toolkit implementation

A C api for compatibility with the C toolkit is also available. Source code (.tar.gz, .zip) is available. This codebase is deprecated.

References