BLAST Search
BLAST where the sequence already is.
| Reached by | Tools → BLAST Search |
| Sample project | BLAST & EMBL-EBI services |
What it does
BLAST asks one question: what else looks like this? You give it a sequence, it compares that sequence against a database of millions of others, and it returns the ones that align — each with where they line up, how well, and how surprised you should be to see a match that good by chance.
The search itself runs on EMBL-EBI's NCBI BLAST+ 2.16.0 service. That is deliberate: BLAST's cost is not the algorithm, it is the database. Nobody can search all of ENA on a laptop, so the query is sent to EBI, which searches its mirrors of ENA, UniProt and the rest and sends back the alignments. The service is free and needs no account, but two conditions come with it: you supply a contact email on every submission (EBI's abuse contact), and you keep to their fair-use policy of at most 30 jobs at a time. Your sequence leaves this machine when you press Search, and nothing is sent before you do.
When you'd use this
Used in: Align a set of homologues and build a tree from it
- You sequenced something and want to know what it is. A barcode read, a colony PCR product, a
contaminant band. Run
blastnagainst a nucleotide database and read the top hits. - You have an ORF and want to know what the protein does. Run
blastx— it translates your DNA in all six frames and compares the protein against Swiss-Prot, so an unannotated coding region comes back named. - You are checking a construct. Search a region of your plasmid to confirm the insert is what the supplier said it was, then annotate the hit straight onto the map.
- You want the family, not the best hit. Search, then build the distance tree and the similarity network from the hits to see which subjects group together — one search, no further jobs. From there, Hits to alignment sends the same subjects to Clustal Omega for a proper multiple alignment when you need one.
- You want it to happen without you. The same search is a step in the Workflow Builder, so "fetch this accession, BLAST it, and only continue if the best hit is under 1e-20" is one graph you press Run on once. The step reports the database and the parameters it used, and hands the hits, the subjects as FASTA and the job id to whatever comes next.
What this computes
Two places a search can run, chosen at the top of the form.
- EBI databases — the search runs at EMBL-EBI on NCBI BLAST+ 2.16.0 against ENA, UniProtKB, PDB and the vector-screening sets. Your sequence leaves this machine when you press Search, and nothing is sent before you do.
- This project — the search runs on this machine against your own records: every nucleotide record for blastn, every protein record for blastp. Nothing is sent. The panel shows how many records and how many bases or residues the database will hold, and names the records of the other alphabet it leaves out, before you press Search.
Why the local E-values are different numbers, and right. An E-value is a statement about the
database that was searched: E = K·m·n·e^(−λS) over the effective lengths, where n is the
database's total length (for a protein search, Spouge's finite-size correction of the same
statistic, which is what blastp itself computes for BLOSUM62). A match
between two of your own records is far more surprising in a database of thirty thousand bases than in all of
ENA, so the same alignment scores the same bit score and a much smaller E-value. Every local
E-value is computed from your database's own record count and length, never from a public
database's size.
What the local search reproduces, checked against NCBI BLAST+ 2.16.0 (makeblastdb then
blastn/blastp, every record against every other):
- blastn (reward 2, penalty −3, gaps 5/2, word size 11, no DUST filter): 72 of blastn's 84 alignments at its exact score and coordinates, and none it found missed. The 12 others are all 11–15 columns long, where BLAST's own heuristics rather than the alignment decide. All 72 have the same aligned rows, gap for gap.
- blastp (BLOSUM62, gaps 11/1, no composition-based statistics, no SEG): 7 of 9 at blastp's exact score; 5 of the 7 with identical rows. The other 2 are a tie: an equally scoring alignment (285 both ways) with the gap placed differently.
- Bit scores agree within 1 bit, which confirms λ and K. Protein E-values agree with blastp's to the three figures it prints on all 7, and the effective search space is the one blastp reports.
- Not reproduced: composition-based statistics, blastp's default rescaling of the matrix for each
pair, so a local blastp answers the question BLAST+ answers with
-comp_based_stats 0.
Per hit, from either source
- The alignment itself — query and subject ranges, strand/frame, the aligned rows, and the gaps
- Score, bit score, E-value, percent identity and query coverage — the E-value being the one to read as how surprised to be by a match this good by chance, and the one every filter and sort is built on
- The subject's identity: accession, description, and the organism behind it (from EBI; a local hit is named by your own record, which carries none of these)
- Every HSP separately, never merged: a hit with tandem repeats aligns in several places, and merging them would draw over the gaps that are the finding
Before the search — low-complexity masking (protein queries)
BLAST does not search a protein query as you typed it. It first runs SEG (Wootton & Federhen, Computers & Chemistry 17
–163, 1993) over it and replaces the compositionally biased stretches — poly-glutamate, a serine-rich linker, a coiled-coil heptad — withx, because those
stretches match thousands of unrelated proteins for reasons that have nothing to do with homology.
That masking happens whether or not you think about it, and it is why a query can come back with
nothing: not "no homologues", but "most of what you sent was masked".
So it is computed here too, before you press Search, from the same algorithm the service uses:
- Which residues would be masked, and what share of the query they are. Each region is listed with its own complexity in bits, and selecting one highlights the codons it occupies on the sequence — including the stop codons that fall between them, since those are really there
- Every parameter that decides it. The trigger window
W, the trigger complexityK1and the extension complexityK2, at the published defaults (12, 2.2, 2.5) — lowerK1andK2together to mask less; the published settings for comparing two masked databases are 12, 1.8, 2.0, and 7, 0, 0 finds homopolymers alone. Then three that change what you are shown rather than what triggers: the shortest kept gap (a high-complexity run shorter than this is absorbed, so neighbouring regions merge), the trim search bound (how much shorter than the raw region the optimiser will look for the least probable subsequence — raising it costs time, never accuracy), and overlapping segments, which reports every independently triggered region unmerged - The masked query as FASTA, if you would rather fix the masking and record it than let it be re-derived on the server
Correctness is checked against NCBI's own seg program over every protein sequence bundled with
this application — 116 of them, including the ones carrying selenocysteine, unknown residues and
alignment gaps — at seven parameter settings covering each of the options above.
A nucleotide query is filtered by DUST rather than SEG; that one lives in the Contamination Screen, on the sequence it applies to.
Per search
- What was actually submitted — the query (a feature, the selection, the whole sequence, or a six-frame ORF), any subrange, the program, the database and every parameter as sent. For a protein search the query defaults to a coding feature where the molecule has one: the translation of a promoter or a whole plasmid is a read-through, and searching it answers nothing
- The programs, databases and parameters are discovered from the live service, not stored here: five programs, 549 databases across four groups, and all 18 parameters with EBI's own labels, legal values and per-context defaults. A knob EBI adds appears without an update here
- An organism filter driven by NCBI Taxonomy — names are for display, taxids are what get sent
- The queue's state when several targets are searched: which are running, which are done, and which are disabled with the reason rather than silently skipped. Concurrency is capped at EBI's own limit of 30 however many you ask for
Onto the map: a hit can be written as a feature (one HSP at a time), or drawn as a comparison ring of arcs around the circular map.
Cached results are invalidated when the database is rebuilt, not merely aged out — a rebuilt database is a change in the science, not just in the data.
Two conditions come with the service, and the panel states both: a contact email on every submission (EBI's abuse contact), and their fair-use limit of 30 jobs at a time.
Where it lives
Tools → BLAST Search, the command palette (BLAST Search), or right-click on the map — the
context menu offers the feature under the cursor, the current selection, a protein translation, or
the whole sequence, and the panel opens already scoped to it. Results write back to the canvas:
annotate one hit or all of them, select the region a hit covers, or draw the hits as a ring around
the circular map.
Inputs and outputs
In: any sequence open in the project — a feature, the live selection, the whole molecule, any of the six-frame ORFs, or any primer drawn on the map. DNA and protein both, with the query type derived from the program you pick rather than asked for separately.
Primers are listed as targets in their own right, and a primer designed in Primer Designer can be sent here directly. It goes out as the oligo you would order — a reverse primer is submitted reverse-complemented rather than as the plus-strand span it occupies — because that is the molecule whose off-targets you are asking about. An oligo needs a smaller word size than a gene: at the general-purpose default of 11, a 20-base primer only finds off-targets sharing an exact 11-base stretch with it, so a real mis-priming site that matches over its last nine bases produces no seed and the search comes back empty. NCBI's Primer-BLAST uses word size 7 for oligos; the panel says so beside the target whenever your setting would under-report, and stops saying it once you lower it.
Out: the hit list with every identifier, coverage, frame and strand the service reported; the
full pairwise alignment per hit; a query-anchored view stacking every hit on one axis; a distance
tree; a similarity network; hits as annotations on the map; and exports — hits as TSV, BLAST tabular
(-outfmt 6), subject FASTA, accession lists, plus every representation the finished job itself
offers (text report, XML, visual SVG, archive).
What it refuses, and says so: a word size larger than the query; a region that cannot be translated; a search with no contact email; a query subrange outside the query. Each refusal names the reason next to the control that caused it, before anything is sent.
Worked example
Open the BLAST & EMBL-EBI services sample project and select Phaneroptera_falcata, a 601-base
COI barcode read from a cricket.
- Program blastx, database UniProtKB/Swiss-Prot, your email, press Search. It finishes in about nine seconds.
- The top hit is Cytochrome c oxidase subunit 1 at 85.9% identity, E = 5 × 10⁻¹¹², aligned in reading frame +3. The barcode is what it claims to be.
- Switch the program to blastn and the database to ENA invertebrate, and search again. This
one takes about ten minutes — a nucleotide search of a whole division is real work. It returns 50
hits; the best is
HQ609401.1, Phaneroptera falcata, 99.7% identity, E = 0. - Open Similarity network of the hits, set the cut-off to 97% and press Build network: 51 nodes, 146 edges, 18 clusters, the largest holding 13 subjects and 9 subjects joined to nothing at that stringency. The species-level structure of a barcode set, from the one search.
Controls
The query
| Control | What it does |
|---|---|
| Query | Any feature, the selection, the whole sequence, or a six-frame ORF. Validated before submission. |
| Query subrange | Restricts the search to part of the submitted query; fillable from the live canvas selection. |
| Include ORFs | Adds the six-frame open reading frames as extra queries, for a sequence with no CDS annotations. |
| Multi-query queue | Search many targets in one go. Unrunnable targets are disabled with the reason beside them. |
| At once | How many queue jobs run concurrently. Capped at EBI's limit of 30 whatever you type. |
The search. Program, databases and every tunable parameter are discovered from the live service, not stored here — five programs, 549 databases across four groups, and all 18 parameters with the service's own labels, legal values and per-context defaults. A knob EBI adds appears without an update.
What you are searching changes the defaults, and the panel follows it. EBI groups its databases into four search spaces — protein, ENA nucleotide, the ENA specialised subsets, and vector screening — and publishes a different default for some parameters in each. Word size is the one that matters most: 6 for a protein search, 11 for a nucleotide one, and 28 for a vector screen, because screening a construct against UniVec or EMVec is looking for long exact stretches of a known cloning vector rather than for distant homology, and a long seed finds those quickly without dragging in chance matches. The scoring matrix follows the same rule (a protein matrix means nothing in a nucleotide search). Switch program or database and the defaults move with you; a value you set yourself is kept, and the value that is the service's default for the space you are now searching is marked · default in its own menu, so you can always see whether you are on it. Reset to service defaults puts the whole form back. Beyond those: an organism filter driven by an NCBI Taxonomy autocomplete (names are for display, taxids are what get sent), and a reuse cached results switch that skips re-running an identical search — and invalidates itself when the database you searched is rebuilt, because that is a change in the science, not just in the data.
Reading the results. Filter by E-value, identity, coverage or free text over organism and description; sort by any of them. None of it re-runs the job.
The map. Annotate writes a hit onto the sequence as a feature (or one HSP at a time — a hit with tandem repeats aligns in several places, and merging them would draw over the gaps). Comparison ring draws the hits as arcs around the circular map, coloured either by the published CGView Comparison Tool identity bands or by a continuous identity ramp. Mean identity ring adds a second ring showing the average identity per window, which answers "is this half of my plasmid conserved?" in a way a pile of overlapping arcs cannot.
Distance tree of the hits. Method, substitution model, coverage floor, bootstrap replicates and whether the query is a tip. Nucleotide searches only, for the reason under Limitations.
Similarity network of the hits.
| Control | What it does |
|---|---|
| Layout | Force-directed or principal coordinates — see below; they answer different questions. |
| Identity model | How identity is measured between two subjects. raw is the plain proportion of differing sites. |
| Edge cut-off | The identity at which two subjects are joined. Raising it can only remove edges, never add one. |
| Iterations | Force-simulation steps. The readout says whether it settled before the cap; a graph still moving is one you should not read as final. |
| Node spacing | Multiplies the layout's optimal node distance. Raise it when a group of near-identical subjects collapses onto one point. |
| Layout seed | The same seed reproduces the same picture exactly; change it to re-run from a different start. |
| Include the query | Draws the query larger. It is the axis every subject was projected onto, not one of the findings. |
| Label the nodes | Turn off on a crowded graph; every node still names itself on hover. |
Low-complexity (SEG), on a protein query. SEG (Wootton & Federhen 1993) is the filter EBI applies to a protein query: the masked residues are replaced with x before seeding, so a search that returns nothing may be telling you the query was masked rather than that it has no homologues. The defaults are seg's own.
| Control | Default | What it sets |
|---|---|---|
| Trigger window | 12 residues | The window complexity is measured over |
| Trigger complexity | 2.2 | The entropy below which a window starts a masked segment |
| Extension complexity | 2.5 | The entropy a segment may extend through |
| Show overlapping segments | off | Every independently triggered segment, unmerged. Off is what a masked submission uses |
| Minimum ORF length | 60 aa | How long a six-frame open reading frame must be to be submitted |
Reading the results, by name
| Control | Default | What it sets |
|---|---|---|
| Max E-value | all | Hits above this E-value are hidden |
| Min identity · Min query coverage | 0 % · 0 % | Floors on the alignment |
| Filter hits | empty | Free text over organism and description |
| Sort by | E-value | E-value, Bit score, Identity, Query coverage, Subject length or Organism |
| E-value cutoff | 10 | For a search against this project's own sequences |
| Feature type for annotations | misc_feature | The feature type a hit is written back as |
The comparison ring and the trees
| Control | Default | What it sets |
|---|---|---|
| Identity encoding | Identity bands (CGView Comparison Tool) | Or a continuous opacity ramp |
| Separate strands onto their own rows | off | Draws forward and reverse hits on separate arcs |
| Method · Model | Neighbor-joining · K80 | How the distance tree of the hits is built |
| Coverage floor | 50 % | Least share of the aligned region a hit must cover to earn a tip. A subject aligning a tenth of it is mostly gaps |
| Bootstrap | 0 replicates | Support for the distance tree; 0 skips it |
| Include the query as a tip · Include the query as a node | on | The query is what every hit is positioned relative to |
Algorithms you can choose
The five BLAST programs, each a different comparison:
| Program | Query | Database | Use it when |
|---|---|---|---|
blastn | nucleotide | nucleotide | Barcodes, primers, vector checks, anything where the DNA itself is the evidence. |
blastp | protein | protein | You already have the protein. |
blastx | nucleotide, translated | protein | You have an ORF or a read and want the function. |
tblastn | protein | nucleotide, translated | You have a protein and want to find it in unannotated genomes. |
tblastx | nucleotide, translated | nucleotide, translated | Both sides unannotated; expensive, and the last resort. |
PSI-BLAST iterates: it builds a profile from the hits of one round and searches with that,
which is where its extra sensitivity comes from — a single round is a slower blastp. Every hit is
individually selectable for inclusion in the next round's profile, because one unrelated sequence
admitted to a profile pulls it toward that family, and within two or three rounds the search is
confidently returning relatives of the contaminant. That failure looks exactly like sensitivity in
a hit list, which is why the control is per hit rather than a round counter.
Two network layouts, because they answer different questions.
- Force-directed (Fruchterman–Reingold) simulates springs on the edges and repulsion between nodes. It is the layout CLANS draws, and it is very good at showing cluster structure. Distance on the page is an artefact of the simulation and must not be read as similarity.
- Principal coordinates (classical multidimensional scaling) projects the distance matrix onto its own principal axes. The axes are real and ordered, each carrying a stated share of the variance, so distance on the plot is an estimate of distance in the matrix — at the cost that a tight cluster can be smeared along an axis it does not load on. When the distances are not perfectly Euclidean the plot says so and reports how far off it is.
Distance models for the tree and the network come from the standard dist.dna family — raw
(p-distance), Jukes–Cantor, Kimura's two-parameter, Felsenstein, Tamura–Nei, LogDet and the rest —
with tree methods Neighbor-Joining, BioNJ, FastME and UPGMA.
The science
What an E-value is, since it is the number to trust. It is the number of alignments this good you would expect to see by chance in a database this size. E = 10⁻¹⁰⁰ means "essentially never by chance"; E = 2 means "you would see two of these in random data". Percent identity says how similar two sequences are where they align; coverage says how much of your query that alignment actually covers. A 100%-identity hit over 30 bases of a 3,000-base query is a 1% answer, and the panel reports whole-hit coverage and per-alignment coverage separately so the two cannot be confused.
Two conventions this tool handles for you, because getting them wrong moves hits on the map. EBI reports identity as a percentage, where NCBI's own XML reports a residue count. And a translated search reports query coordinates in bases while its alignment is in residues — so 198 aligned residues span 594 bases. Both are handled at the point where a hit becomes a position on your sequence.
The network's edges, stated exactly. Every edge is the identity between two subjects measured over the query positions where both of them aligned. This is a real, computable comparison and it needs no extra searches, but it is not the same object as CLANS's network (which runs an all-vs-all BLAST and uses the pairwise E-values) and not Clustal's percent-identity matrix (which needs a real multiple alignment — the Hits to alignment route). The panel says which quantity it drew, every time.
Provenance of correctness. The layouts are checked against the reference implementations —
networkx's spring layout and scikit-bio's principal-coordinates analysis — over every case in the
corpus, not a sample. Distances and trees are checked against R's ape. The identity bands on the
comparison ring are checked against the CGView Comparison Tool's own published tables, over all
20,002 identity steps. The result parser is checked against real captured service responses,
including one re-run live against EBI on 2026-08-15 to confirm the service still answers the way the
older captures say.
Shared with other tools: Alignment scoring compares how every tool that does this chooses its method.
Limitations
- EBI's mirror is not NCBI's
nr/nt. It is a different search space. When you specifically need NCBI's databases, use NCBI's own web BLAST; the panel says so where you pick a database. - The tree and the network need nucleotide alignments, which means
blastnonly. Ablastxquery is DNA but its alignment is protein, and every distance model here is a nucleotide model, so the two views are unavailable for translated and protein searches — with that reason shown in their place. Send those hits to a real multiple alignment instead. - A force layout genuinely collapses a group of near-identical sequences onto one point. That is the simulation being correct, not a bug; raise Node spacing to separate them, and note that the cluster count in the readout stays exact regardless of what the drawing looks like.
- A protein query's comparison ring spans a third of the map, because its coordinates are residues and the molecule is measured in bases. The panel says so when you draw one.
- Conserved-domain searches (
deltablast,rpsblast,rpstblastn) are not offered by the service and are therefore not available here; last checked 2026-08-15.
Export
Hits as TSV · BLAST tabular (-outfmt 6) · subject FASTA · accession list · the network's edge list
as TSV, which Cytoscape and Gephi both read · the tree as Newick, which FigTree and iTOL both read ·
and every representation the finished job itself advertises, discovered from the job rather than
assumed — usually around two dozen, including the plain text report, XML, a visual SVG and a zip.
Hits can also be opened as project sequences: Hit to project fetches the subject's full record from the service's own database, in EMBL format where that preserves the feature table.
Provenance
Every run records its EBI job id, the exact command line the service used, the databases searched and their build dates. Jobs stay in Past searches and can be re-opened by id for as long as EBI keeps them (several days), which is cheaper and more honest than re-running a ten-minute search to see the same answer. A running job also appears in Background jobs, so it stays visible and stoppable after you close the panel.
Screenshots
The panel as it opens: the egress notice, the query picker, the program and its databases.
The similarity network of 50 barcode hits at a 97% cut-off — 18 clusters, the largest holding 13
subjects, 9 joined to nothing at that stringency. Node size is the number of connections.
The same data projected onto its principal coordinates. Here the axes are real — 42% and 16% of the
variance — so distance on the plot estimates distance in the matrix.
Related
In this group: Properties · Search Databases · EMBL-EBI Services · Protein Domains · Protein Analysis · Protease Digest · Antibody Numbering · Mass spectrometry: peptide masses, b ladders, isotopes, spectrum scoring, q-values, protein inference · Codon Usage Analysis · Site avoidance: restriction sites a genome avoids or favors · Codon outliers: genes whose codon usage departs from their own genome · Tree incongruence: genes whose own alignment rejects the species tree · Reference stability: reference genes against genes of their own abundance · Annotation contradictions: UniProt features a predictor scores unlike confirmed ones · Hypothesis ledger: pre-register a hypothesis, attach runs, decide with e-BH · Reagent audit: does each annotated CDS code for what the map says, and are its cryptic promoters, splice sites and repeats worse than chance · Assay decay: does a published assay still match current genomes, and is the mismatch at the 3′ end · Gene incongruence: which loci of a multi-locus alignment have a different history · Target validation: test "gene G drives phenotype P" against gene-level evidence tables · Codon Tables · Enzyme Collections · Virtual Gel Bench · Phylogenetics · Dot Plot · Table · NumPy Array · Structure · PDF · Molecule · Image