The wiggle (WIG) format is for display of dense, continuous data such as GC
percent, probability scores, and transcriptome data. Wiggle data elements must
be equally sized. If you need to display continuous data that is
sparse or contains elements of varying size, use the
BedGraph format instead.
If you have a very large data set and you would like to keep it on your
own server, you should use the bigWig data format.
For speed and efficiency, wiggle data is compressed and stored internally in
128 unique bins. This compression means that there is a minor loss of precision
when data is exported from a wiggle track (i.e., with output format
"data points" or "bed format" within the table browser).
The bedGraph format should be used if it
is important to retain exact data when exporting.
Selecting a graphing track data format.
General Structure Wiggle format is line-oriented. For wiggle custom
tracks, the first line must be a track definition line, which
designates the track as a wiggle track and adds a number of options for
controlling the default display.
Wiggle format is composed of declaration lines and data lines. There are
two options for formatting wiggle data: variableStep and fixedStep.
These formats were developed to allow the file to be written as compactly as
- variableStep is for data with irregular intervals between new
data points and is the more commonly used wiggle format. It begins with a
declaration line and is followed by two columns containing chromosome positions
and data values:
variableStep chrom=chrN [span=windowSize]
... etc ... ... etc ...
The declaration line starts with the word variableStep and is followed
by a specification
for a chromosome. The optional span parameter (default: span=1)
allows data composed of contiguous runs of bases with the same data value
to be specified more succinctly. The span begins at each chromosome position
specified and indicates the number of bases that data value should cover.
For example, this variableStep specification:
is equivalent to:
variableStep chrom=chr2 span=5
Both versions display a value of 12.5 at position 300701-300705 on
- fixedStep is for data with regular intervals between new data
values and is the more compact wiggle format. It begins with a declaration
line and is followed by a single column of data values:
fixedStep chrom=chrN start=position step=stepInterval [span=windowSize]
... etc ...
The declaration line starts with the word fixedStep and includes
specifications for chromosome, start coordinate, and step size. The
span specification has the same meaning as in variableStep format.
For example, this fixedStep specification:
fixedStep chrom=chr3 start=400601 step=100
displays the values 11, 22, and 33 as single-base regions on chromosome 3
at positions 400601, 400701, and 400801, respectively. Adding span=5 to the
fixedStep chrom=chr3 start=400601 step=100 span=5
causes the values 11, 22, and 33 to be displayed as 5-base regions on
chromosome 3 at positions 400601-400605, 400701-400705, and 400801-400805,
Note that for both variableStep and fixedStep formats, the same span must be
used throughout the dataset. If no span is specified, the default span of 1
Likewise for the fixedStep format, the same step size must be used throughout
the dataset. If no step size is specified, the default step size of 1 is used.
Wiggle track data values can be integer or real, positive or negative values.
Chromosome positions are specified as 1-relative. For a chromosome of length
N, the first position is 1 and the last position is N. Only positions
specified have data. Positions not specified do not have data and will not
be graphed. All positions specified in the input data must be in numerical
Parameters for custom wiggle track definition lines
All options are placed in a single line separated by spaces:
track type=wiggle_0 name=track_label description=center_label
visibility=display_mode color=r,g,b altColor=r,g,b
priority=priority autoScale=on|off alwaysZero=on|off
(Note if you copy/paste the above example, you have to remove the carriage returns.)
The track type with version is REQUIRED, and it currently must be wiggle_0:
The remaining values are OPTIONAL:
name <trackLabel> # default is "User Track"
description <centerLabel> # default is "User Supplied Track"
visibility <full|dense|hide> # default is hide (will also take numeric values 2|1|0)
color <RRR,GGG,BBB> # default is 255,255,255
altColor <RRR,GGG,BBB> # default is 128,128,128
priority <N> # default is 100
autoScale <on|off> # default is on
alwaysZero <on|off> # default is off
gridDefault <on|off> # default is off
maxHeightPixels <max:default:min> # default is 128:128:11
graphType <bar|points> # default is bar
viewLimits <lower:upper> # default is range found in data
viewLimitsMax <lower:upper> # UNENFORCED: suggested bounds of viewLimits
yLineMark <real-value> # default is 0.0
yLineOnOff <on|off> # default is off
windowingFunction <mean+whiskers|maximum|mean|minimum> # default is maximum
smoothingWindow <off|[2-16]> # default is off
transformFunc <NONE|LOG> # default is NONE
wigColorBy <bed table> # use colors in bed table for wiggle in overlapping regions
spanList <first> # sets spans to be first span in table
<s1,s2,s3...> # list of spans in the loaded table
# you can find the spans with the following SQL query:
# "SELECT span FROM <table> GROUP BY span"
# typically spanList is only 1:
# spanList 1
# rarely, it may be more:
# spanList 1,1000
# special efforts must be made to load extra spans
# into the table for special purposes
A functional description of these options can be seen in the Wiggle track configuration description.
(Custom tracks do not have interactive configuration options.)
This example specifies 19 separate data points in two tracks in the region
chr19:49,304,200-49,310,700. To view this example as a custom track in the
Genome Browser, copy the text and paste it
into the "Add Custom Tracks" text box.
browser position chr19:49304200-49310700
browser hide all
# 150 base wide bar graph at arbitrarily spaced positions,
# threshold line drawn at y=11.76
# autoScale off viewing range set to [0:25]
# priority = 10 positions this as the first graph
# Note, one-relative coordinate system in use for this format
track type=wiggle_0 name="variableStep" description="variableStep format" \
visibility=full autoScale=off viewLimits=0.0:25.0 color=50,150,255 \
yLineMark=11.76 yLineOnOff=on priority=10
variableStep chrom=chr19 span=150
# 200 base wide points graph at every 300 bases, 50 pixel high graph
# autoScale off and viewing range set to [0:1000]
# priority = 20 positions this as the second graph
# Note, one-relative coordinate system in use for this format
track type=wiggle_0 name="fixedStep" description="fixedStep format" visibility=full \
autoScale=off viewLimits=0:1000 color=0,200,100 maxHeightPixels=100:50:20 \
fixedStep chrom=chr19 start=49307401 step=300 span=200
Caution for sparse variableStep data
The wiggle format was designed for quickly displaying data that is quite
dense. The variableStep format, in particular, becomes very inefficient when
there are only a few data points per 1,024 bases. If variableStep data points
(i.e., chromStarts) are greater than about 100 bases apart, it is
advisable to use BedGraph format.