Finding things
There are two searches in the workbench, and they answer genuinely different questions. Knowing which is which saves the most common wasted minute: searching for something that is in your project but not on your canvas, and concluding it is not there.
| This sequence | All files | |
|---|---|---|
| Asks | the molecule you are looking at | every file in the project |
| Finds | bases or residues, features, primers, enzyme sites, positions | contents of sequences, traces, alignments, trees, variant calls, tables and text |
| Result | a selection on the canvas | a file, opened where it belongs |
| Speed | instant | reads each file, so a moment on a large project |
Both live in the left rail under Search. The ⌘K palette is a third route, and it searches your files by name alongside every command.
This sequence
This one talks to the open molecule directly, so every hit highlights and selects on the map. Four modes:
Bases (or Residues, on a protein) finds a motif in the sequence itself, and under Matching it carries the three parameters that decide what counts as a hit:
- Search in reads the query as bases or as one-letter amino acids. An amino-acid query is run against the record's protein sequence, so a peptide can be located on a coding record without translating it yourself.
- Match is literal or ambiguous. Literal compares characters, so
GGNCCfinds nothing — there is noNin a sequence. Ambiguous expands each IUPAC code in the query to the bases it stands for (Nis any base,Ris A or G,Wis A or T) before matching, which is what makes a degenerate primer or a consensus motif searchable. It expands the query, not the sequence: aYin a heterozygous Sanger read is a separate question. - Mismatches allows a hit to differ from the query at up to that many positions, and reports where it differs. It applies to literal DNA search only, because that is the one matcher that can report an inexact hit; elsewhere the field says so rather than disappearing. The ceiling comes from your query, not from a fixed limit: at one mismatch per base every window of that length would match, so the most you can ask for is one below the length of what you typed.
The default is literal DNA with no mismatches, which is exact search.
Feature searches the names of annotated features, parts and primers — type tet on pBR322 and
you get the tetracycline resistance gene, not the 900-odd places those three bases occur.
Enzyme finds recognition sites by enzyme name. On a protein record this mode is offered disabled with its reason rather than hidden, because "there are no restriction sites in a protein" is information, and a mode that silently vanishes looks like a bug.
Position jumps to a coordinate. Positions are 1-based and inclusive, the convention the file and every panel use — the same number you would read off a GenBank feature line.
All files
This one reads the project. It exists because the first search is, by construction, blind to anything not currently open, and in real work most of your files are not open.
Type at least two characters. Results group by file, with a badge saying which part of that file matched, the match itself shown in context with the matched run in brackets, and its position.
What it reads, per kind of file
| File | What is searched |
|---|---|
| Sequences (GenBank, FASTA, EMBL, SnapGene…) | the bases, both strands; record names; feature names and types |
Sanger traces (.ab1, .scf, .ztr) | the called base string, both strands |
| Alignments (CLUSTAL, Stockholm, PHYLIP, MSF, aligned FASTA) | row names, and the residues themselves |
| Trees (Newick, NEXUS, PhyloXML, NeXML) | tip and internal labels |
| Variant calls (VCF) | chromosome, ID, REF, ALT, and the position as you type it |
| Read alignments as text (SAM) | read names, reference names and read sequences |
| Tables and text (CSV, TSV, notes, anything textual) | any line, reported with its line number |
Two things it does that are easy to miss
It searches the other strand. If your query looks like a nucleotide motif, the reverse
complement is searched too, and minus-strand hits are reported in ordinary plus-strand coordinates
with a ↩ beside the position. This is why searching ATG on a plasmid returns roughly twice what
you might expect: the starts on both strands are both real.
A palindromic site is reported once, not twice. GAATTC is its own reverse complement, so a
search that counted both strands naively would double every EcoRI site — and that count is a number
you would act on when planning a digest.
It ignores gaps in alignments. An alignment row storing A-TG contains ATG; a search that
matched the stored characters literally would not find it. The residues are searched ungapped and
the hit is then reported at the alignment column it spans, which is what the MSA canvas draws
in — so the two facts stay consistent.
What it will not search, and why it tells you
Below the results is a Not searched list, one line per file with the reason. This is deliberate: a file that silently contributed nothing would read as "no matches in that file", which is a different and false statement from "that file cannot be searched this way".
- BAM read alignments are compressed and indexed by coordinate, not by sequence. Answering a text query means decompressing every read, so it is not offered as part of typing. Open the BAM in the pileup viewer and query it the way it is indexed — by position. (A SAM is plain text, so it is searched.)
- Index files (
.bai,.csi) have no content of their own; search the alignment they belong to. - Parquet is columnar and needs a full row-group read.
- Very large files are skipped with their size shown, rather than freezing the rail.
The command palette (⌘K)
The palette is the fastest route to a tool, and it also lists the files in your project whose names match what you typed.
Files sort below every command, on purpose: typing align should still offer Multiple Sequence
Alignment, not bury it under filenames. And where a command shows its keyboard shortcut on the
right, a file shows its destination — Open in the pileup viewer, Preview as a table, Open in
Phylogenetics — so you know what pressing Enter will do before you press it.
A file with nowhere sensible to go is not offered. A .bai index is the clearest case: it opens only
as part of its BAM, so a row for it would be a row that cannot act.
The palette also groups commands by bench task, and puts the verbs belonging to the canvas you are looking at at the top under that canvas's own name. Verbs for other canvases are still reachable by searching for them, and are marked not focused — they need their canvas in front of you to run.
Which one should I use?
- "Where is the EcoRI site on this plasmid?" → This sequence, Enzyme.
- "Which of my files has an EcoRI site?" → All files.
- "Where's that trace with the double peak?" → All files, by name or by the bases you remember.
- "Which alignment row is ADH1?" → All files.
- "Open the nanopore BAM." → ⌘K, type
nano. - "Take me to base 2,134." → This sequence, Position.