jane* docs

Graph tracks

Six numbers plotted along a sequence — what each one measures, when it is the right question, and the ways each of them can mislead you.

This page exists because the tracks are a family, not one feature. They share a window, a baseline convention and a hover readout, but they answer six different questions and three of them are invisible to the other three. The sequence map is where they draw.

What a graph track is

A graph track is one number computed in a sliding or stepping window along the sequence, drawn as a band under the row view and as a concentric ring on the circular map. Both drawings come from one computation, so a base reads the same value in either view — hover it and you get the value for the window you are on, not for the base, because the plot holds one value per window and pretending otherwise would claim a resolution the data does not have.

Every track has its own window, its own colours and its own baseline. Switch one on under Graph tracks in the inspector, or from the View menu, or from the command palette.

The six tracks

TrackWhat it measuresReach for it when
GC content(G+C) ÷ windowYou want composition: origin-of-replication regions, isochores, a PCR-hostile stretch, whether an insert looks like it came from the same organism
GC skew(G−C) ÷ (G+C)You are looking for strand asymmetry in a window
Cumulative GC skewThe running sum of the aboveYou want the replication origin and terminus of a bacterial or organellar genome
Sequence complexityLocal composition complexity, 0–1You are about to design a primer, place a guide, or trust an alignment, and you need to know whether the region is a repeat
CpG observed/expectedObserved CpG dinucleotides ÷ the number the C and G content predictsYou are working on a eukaryotic promoter and want the CpG islands
Start / stop codonsEvery start and stop codon, in every frame, on both strandsYou want to see the codon landscape rather than a caller's ORF opinion

GC content, and what it cannot see

The plot is (G+C)/window for a window sliding along the sequence, drawn around the whole-sequence average rather than around zero — GC content has no natural zero, so the deviation from the molecule's own mean is the readable quantity.

The window and the step are yours to set. Left at 0 they scale to the sequence length, from a 10 bp window on a short oligo up to 50 kb on a chromosome-scale record; that scaling is the same rule CGView uses, so a track here and a CGView figure of the same genome are directly comparable.

The thing GC content cannot tell you is anything about arrangement. A window that is 60% GC scores 0.60 whether its Gs and Cs are paired as CpG dinucleotides or sit on opposite strands entirely. That is what the CpG track is for, and it is why the two tracks disagree constantly without either being wrong.

GC skew, and the difference the cumulative curve makes

GC skew is (G−C)/(G+C) in a window, plotted around zero rather than around its own mean, because the sign is the readout. In most bacterial and organellar genomes the leading strand is G-rich and the lagging strand C-rich, so the skew flips sign at the replication origin and again at the terminus.

In a single window that signal is buried in noise. The cumulative curve is the standard fix (Grigoriev, Nucleic Acids Research 26

, 1998): sum the per-window skew from the start, and the noise cancels while the trend accumulates. The curve's minimum is the origin and its maximum the terminus.

These are genuinely different questions and neither substitutes for the other:

  • the raw skew answers "is this window G-rich?" — a local question, useful for spotting a horizontally-transferred island whose composition differs from its host;
  • the cumulative curve answers "where does the leading strand switch?" — a global question that no amount of smoothing the raw track will produce.

The cumulative track uses non-overlapping windows, which is not an oversight: a running sum is only meaningful over a partition, and summing overlapping windows would count most bases several times and inflate the curve by the overlap factor.

Pitfalls, in the order you will hit them:

  • A plasmid shows noise, not an origin. At 4 kb there are too few windows for the trend to separate from the variance. Skew is a genome-scale readout; on pBR322 both skew tracks are honest noise and reading an origin out of them is reading tea leaves.
  • A non-replicon has no origin to find, and the track will still draw a minimum and a maximum, because every curve has them. An ss-RNA virus genome is the clean demonstration: there is no bidirectional replication fork, so the extremes are wherever the composition happened to drift.
  • The curve is a walk, so its band is centred on its own mean, not on zero. A cumulative value of −40 is not "negative skew"; it means the sum has drifted 40 window-units below where it started.

The cumulative track is drawn as a line rather than a filled band, which is not a style choice: a running sum leaves its baseline once and stays away, so filling under it paints half the track solid and leaves you reading the curve off the edge of a rectangle.

Sequence complexity

Local composition complexity is the Shannon entropy of the four base frequencies in a window, expressed in base 4 so it lands in 0 to 1 whatever the window size (Konopka, Sequence Complexity and Composition, 2005). 1.0 is an even A/C/G/T mix. 0.0 is a homopolymer. A dinucleotide repeat like (CA)n sits near 0.5.

This is the track to switch on before you design anything that has to bind uniquely:

  • a primer that sits on a low-complexity stretch will prime in many places, and its predicted Tm and specificity will both look fine;
  • a CRISPR guide there will have far more off-targets than a genome-wide scan of the guide would suggest, because the problem is the locus;
  • an alignment across such a region will place reads confidently and wrongly.

How to read the floor. On coding-dense microbial DNA the track sits between 0.90 and 1.00 and is close to featureless — that is the honest answer, not a broken plot. On eukaryotic genomic DNA it drops sharply wherever the scan crosses a real repeat: on 200 kb of human chromosome 7 the floor is 0.413, and each of those dips is a stretch worth avoiding.

One implementation detail with a visible consequence: windows containing an ambiguity code (N) are skipped rather than scored, so a track over a gap-rich assembly has fewer points there. The value plotted is placed at the centre of its window, so a dip lines up with the repeat that caused it rather than leading it by half a window.

CpG observed/expected, and the islands

In vertebrate genomes the CpG dinucleotide is depleted roughly five-fold relative to what base composition alone predicts, because methylated cytosine in a CpG deaminates to thymine. The regions that escaped this — CpG islands — sit at the promoters of most housekeeping genes, and their methylation state is a primary regulatory signal.

The measure is Gardiner-Garden & Frommer's ratio:

observed / expected  =  (number of CpG dinucleotides)  /  ( (C count × G count) / window )

Around 1.0 the window has as many CpGs as its composition predicts. Below ~0.6 it is depleted, which is the normal state of bulk vertebrate DNA. Above 1.0 marks an island.

The track is drawn around a baseline of 1.0 — parity with the expectation — so the sign of the deviation is the readout, exactly as with skew.

An island is a call, not a curve, and it needs three thresholds together, all of which the panel exposes: a minimum observed/expected ratio (0.6), a minimum %C + %G (50%), and a minimum length (200 bp). The published definitions differ, and that matters more than it sounds: the 1987 Gardiner-Garden & Frommer criteria call far more islands in Alu repeats than the stricter 2002 Takai & Jones criteria (0.65 / 55% / 500 bp), which is why the thresholds are controls rather than constants.

What GC content cannot substitute for. A 60%-GC window with its Cs and Gs on opposite strands has an obs/exp near zero and is not an island. This is the single most common misreading of a GC track, and it is why both tracks exist.

Expect nothing on a bacterial or viral genome. CpG depletion is a vertebrate methylation phenomenon; running the track on a plasmid or a phage produces calls that pass the thresholds arithmetically and mean nothing biologically.

Start and stop codons

Every start and stop codon, in every reading frame, on both strands, as radial ticks or a lane of marks. These are markers, not ORFs — no frame is chosen for you and no open reading frame is called, which is the point: an ORF caller's opinion is one hypothesis about the sequence, and the codon landscape is the evidence underneath it.

Which codons count is yours to set. The defaults are NCBI translation table 11 (bacterial, archaeal and plant plastid); a different genetic code needs a different list, and mitochondrial and Mycoplasma codes differ in both directions. Type a pattern the scanner cannot use and the panel says why rather than blanking the track.

The track is capped at 50,000 bp, and the switch tells you so on a longer record instead of appearing to do nothing. Drawing every codon of a genome-scale sequence is millions of individual marks; the cap is a rendering limit, stated, not a scientific one.

Choosing a window

The window is the single control that changes what these tracks say, and each one wants a different one — which is why each track carries its own rather than sharing a global setting.

TrackSensible windowWhy
GC contentautomaticThe length-scaled default is right for almost everything; widen it to suppress local composition noise, narrow it to resolve a small insert
GC skewautomaticSame rule; the sign matters more than the amplitude
Cumulative GC skew1,000 bpLarge enough that per-window noise cancels, small enough that the origin is localized to a kilobase
Sequence complexity100 bpRoughly the scale of the repeats that ruin a primer. Widening it hides short repeats; narrowing it makes every codon-biased stretch look low-complexity
CpG observed/expected100 bpThe window the published island criteria are defined for. Changing it changes which islands are called, so change the thresholds with it or not at all

A wider window always looks smoother, and smoothness is not evidence. If a feature disappears when you widen the window, it was smaller than the window — which is information, not a reason to keep narrowing until something appears.

Where the numbers come from

Every track is checked byte-for-byte against the tool it came from, over every DNA record shipped with the app:

TrackChecked against
GC content · GC skew · start/stop codonsCGView
Cumulative GC skew · sequence complexityBiopython
CpG observed/expected and its island callsEMBOSS cpgplot

Where those tools have quirks, the app reproduces them rather than quietly improving on them, so a number here matches the number the reference tool prints. The clearest example: EMBOSS's island caller averages eleven windows and divides by ten, which shifts every island edge slightly. That is the behaviour every cpgplot figure in the literature was produced with, and matching it is more useful than being subtly different from all of them.

What these tracks hand to other tools

  • Sequence complexity → Primer Designer and CRISPR. Check the track before you design, not after the product fails.
  • Cumulative GC skew → assembly and annotation. A newly assembled bacterial genome whose cumulative skew has more than one clean minimum usually has a misassembly, not two origins.
  • CpG islands → Auto-annotate and promoter work. An island at the 5′ end of a gene model is corroboration; one in the middle of an intron is worth looking at twice.
  • GC content → Restriction Digest and PCR. A GC-rich block explains a reaction that will not amplify long before the gel does.

Tracks a tool produces

The six tracks above are properties of the sequence: any record can be asked for its GC skew. A second family draws in the same lanes but comes from a tool run — it exists only after you have chosen a scale, a host table, a set of reads. They are switched on from the panel that computed them, not from the inspector, because the panel is where their settings live.

TrackPanelWhat it answers
Hydropathy and the other 70 amino-acid scalesProtein Analysis ▸ ProfileWhere the membrane-spanning and exposed stretches of a protein fall, on the molecule rather than on a residue axis
%MinMax and windowed CAICodon Usage ▸ Along the coding regionWhich stretch of a gene is slow to translate in your host — the question a single CAI number cannot answer
CAI of the optimised sequenceCodon OptimizerWhat the optimiser actually changed, along the gene, against the bases now on the canvas
Read depth and read agreementSequencing VerificationWhich part of your construct is thinly covered, and where the reads that reached it disagree
Phred quality of a readChromatogram ▸ Verify vs referenceWhether a difference sits in a clean stretch of trace or in a low-quality trough

Reading them without being misled

  • A tool track stops where its data does. A profile over one CDS draws over that CDS and nowhere else; the lane is blank on either side because nothing was measured there. Blank is not zero, and no track will extend its last value across the rest of the molecule to look tidy.
  • The window is in the producer's own units. A hydropathy profile's window is nine residues, a codon profile's is eighteen codons, a depth track's is one base. The hover readout says which, because "9 bp" over a 27-base stretch would be a unit error a reader could act on.
  • Two tracks that look alike answer different questions. Read depth and read agreement are the clearest pair: a base can be deep and disputed (a real variant) or shallow and unanimous (one read, nothing to disagree with), and one curve cannot say which. That is why they are two.
  • The colour is the same language as the rest of the workbench — the palette is Okabe–Ito, so the tracks stay distinguishable for the ~8% of men with a colour-vision deficiency.

Turning one on

  1. Run the tool. The switch appears with the result, never before it — an empty track would claim a measurement nobody made.
  2. Tick the switch in the panel (Draw the profile on the map, CAI profile as a map track, Depth + agreement on the map, quality on map). The label tells you how many points reached the canvas, which is what was drawn rather than what was asked for.
  3. The track appears as a ring on the circular map and a lane in the linear and sequence views. It is a view layer: it never saves into the file and never exports with it.
  4. Switch it off, change the tool's target, or close the panel, and it clears.

What it hands to the rest of the workbench

  • Depth and agreement → Compare to reference. A thin patch on the depth track is where a difference deserves a second read before you believe it.
  • A codon profile → Codon Optimizer. The trough you can see is the stretch worth re-coding; run the optimiser and put its own CAI track beside it.
  • Trace quality → the verification table. Sort the differences, then read them against the quality band: a mismatch in a Q12 trough is an artefact, the same mismatch at Q55 is a variant.

On this page