jane* docs
Guides

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 sequenceAll files
Asksthe molecule you are looking atevery file in the project
Findsbases or residues, features, primers, enzyme sites, positionscontents of sequences, traces, alignments, trees, variant calls, tables and text
Resulta selection on the canvasa file, opened where it belongs
Speedinstantreads 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 GGNCC finds nothing — there is no N in a sequence. Ambiguous expands each IUPAC code in the query to the bases it stands for (N is any base, R is A or G, W is A or T) before matching, which is what makes a degenerate primer or a consensus motif searchable. It expands the query, not the sequence: a Y in 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

FileWhat 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.

On this page