1 Visualizer for Audit Graphical Business Intelligence Display & Analysis Tool.
Distruct a program for the graphical display of population ... · Distruct: a program for the...
-
Upload
trannguyet -
Category
Documents
-
view
224 -
download
0
Transcript of Distruct a program for the graphical display of population ... · Distruct: a program for the...
Distruct:a program for the graphical display of population structure
Noah A. Rosenberg 1
Center for Computational Medicine and BiologyDepartment of Human Genetics
University of Michigan100 Washtenaw Ave
Ann Arbor MI 48109, USA
The distruct software2 is available at
http://rosenberglab.bioinformatics.med.umich.edu/distruct.html
June 27, 2007
1Comments can be emailed to me at [email protected] manual is the companion to version 1.1 of the software.
Contents
1 Introduction 11.1 Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Basic overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Input files 22.1 Population Q-matrix file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Individual Q-matrix file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Labels below the figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 Labels atop the figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Vertical cluster order and cluster colors . . . . . . . . . . . . . . . . . . . . . . . 42.6 Formatting errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Usage options 143.1 Data settings and main options . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2 Figure appearance and additional options . . . . . . . . . . . . . . . . . . . . . . 153.3 Command-line arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Examples 17
5 Frequently asked questions 19
References 20
1 Introduction
The clustering software structure (Pritchard et al., 2000a; Falush et al., 2003) provides aniterative algorithm that places individuals into K clusters. K is a parameter that is chosen inadvance, but that can be varied in independent structure runs. Individuals are given “mem-bership coefficients” for each cluster, such that the estimated membership coefficients of anindividual sum to 1 across the K clusters. The matrix of membership coefficients, where thenumber of individuals is the number of rows and K is the number of columns, is referred to hereas the individual Q-matrix. For each population, membership coefficients for each cluster canbe averaged across individuals to create a population Q-matrix.
A convenient way to display structure results is to show each individual as a line segment.This segment is partitioned into K colored components, which represent the individual’s esti-mated membership coefficients in the K clusters. The program distruct provides a variety ofoptions for creating figures based on this general idea.
It is possible to make distruct figures without having used structure to generate the individualQ-matrix and the population Q-matrix; if other programs are used, the output from thoseprograms must simply be formatted to match the distruct input. For the remainder of themanual, I assume that structure was in fact used to generate the input for distruct.
1
1.1 Availability
The distruct program was first used to generate Figures 1 and 2 in Rosenberg et al. (2002). Thewebsite for distruct is http://rosenberglab.bioinformatics.med.umich.edu/distruct.html.When using distruct, please cite:
N. A. Rosenberg (2004). Distruct: a program for the graphical display of population structure. Molec-
ular Ecology Notes 4: 137-138.
The structure software is available at http://pritch.bsd.uchicago.edu. Some familiaritywith structure is assumed in this document. Users of structure and distruct may also be interestedin CLUMPP, available at http://rosenberglab.bioinformatics.med.umich.edu/clumpp.html.
1.2 Basic overview
The distruct program is written in C, and compiled versions are available for Linux, MacOSX,and Windows. It reads data files based on output from structure. It allows additional optionalfiles that permit the user to control the left-to-right order in which populations are displayed,the labels printed atop and/or below the figure, the bottom-to-top order of clusters, and thecolors used. Output is printed in PostScript format, and the figure produced can be displayedusing such programs as GhostView. If the figure is unsatisfactory, changes can often be madedirectly to the PostScript code without having to rerun distruct (indeed, a look at the PostScriptcan often help if the program does not seem to be doing what you want it to do).
Program settings are specified in the file drawparams, although some can be given withcommand-line arguments. Variables in all-capitals in this document are used in drawparams.
2 Input files
The data to be plotted are specified in ASCII text-formatted files derived from structure output.To allow for ongoing changes in the structure code, the structure output file itself is not used.Instead, the program takes a file with the population Q-matrix (required), and a separate filewith the individual Q-matrix (optional), both printed in the format of the structure output.From structure output files, these files are easily produced, for example, by cutting and pasting.
The example input file used in this document is modified from the K = 5 graph shown forpopulations of Central/South Asia in Figure 2 of Rosenberg et al. (2002). Along with thedistruct code, the distruct package contains seven files related to this data set, as well as the filedrawparams. The file casia f is an output file from structure. The file casia.ps is the output ofdistruct when applied to data and settings in the other five files, which appear in Tables 1-5. Avariety of color schemes for distruct plots are available in the ColorBrewer directory.
2.1 Population Q-matrix file
If NUMPOPS is the number of predefined populations and K is the number of clusters, dis-truct expects a file with NUMPOPS rows and K + 2 columns per row. This file is stored inINFILE POPQ. Blank lines and extra whitespace are tolerated. In the example in Table 1,NUMPOPS=9 and K = 5. In Table 1, each row represents results for one population. The first
2
Table 1: Population Q-matrix (casia.popq).
50: 0.646 0.276 0.060 0.012 0.007 25
51: 0.900 0.062 0.018 0.011 0.009 2552: 0.024 0.065 0.874 0.023 0.014 2554: 0.058 0.133 0.139 0.661 0.009 2556: 0.022 0.024 0.012 0.004 0.938 2557: 0.572 0.337 0.064 0.013 0.015 2558: 0.156 0.574 0.183 0.059 0.027 2559: 0.234 0.585 0.143 0.021 0.016 25
629: 0.053 0.147 0.282 0.493 0.025 10
Table 2: Individual Q-matrix (casia.indivq).
1 1297 (3) 629 : 0.173 0.194 0.014 0.499 0.1212 1298 (4) 629 : 0.077 0.048 0.377 0.497 0.0023 1299 (4) 629 : 0.007 0.008 0.571 0.398 0.0164 1300 (2) 629 : 0.076 0.453 0.018 0.442 0.0105 1301 (4) 629 : 0.016 0.046 0.511 0.400 0.027...
206 203 (3) 59 : 0.005 0.977 0.006 0.004 0.008207 205 (2) 59 : 0.263 0.616 0.038 0.004 0.078208 206 (13) 59 : 0.218 0.654 0.016 0.054 0.058209 208 (2) 59 : 0.499 0.025 0.424 0.029 0.023210 210 (3) 59 : 0.050 0.877 0.017 0.014 0.041
column is an integer that gives a code number for the population and is followed by a colon.The next K columns are membership coefficients for clusters 1, 2, ..., K (real numbers in [0,1]).Ideally the numbers in these K columns sum to 1; in case they do not, the program normalizesthem by their sum. The final column gives the sample size for the population (an integer).
While most applications will probably show the individual Q-matrix, some applications mightwish to show only the population Q-matrix (for example, Table 2 of Wilson et al. (2001)). Thus,if PRINT INDIVS is set to zero, distruct will display only the population Q-matrix.
2.2 Individual Q-matrix file
If NUMINDS is the number of individuals and PRINT INDIVS is set to 1, distruct expects a filewith NUMINDS rows and at least K+6 columns per row. This file is stored in INFILE INDIVQ.Blank lines and extra whitespace are tolerated. Also, some options of structure print additionalcolumns for confidence intervals; these columns are ignored. In the example shown in Table 2,NUMINDS=210. Each row shows the membership coefficients for one individual. Column 2gives a code number for the individual. Column 4 gives the code number for the populationto which the individual belongs. Columns 1, 3, and 5 are ignored. Columns 6 to K + 5 showmembership coefficients for clusters 1, 2, ..., K. Ideally the numbers in these K columns sumto 1; in case they do not, the program normalizes them by their sum.
Individuals are automatically grouped by population, with the left-to-right order of indi-viduals in the figure being the same as the top-to-bottom order of individuals in the input file.Examples that show the individual Q-matrix are in Figures 1 and 2 of Rosenberg et al. (2002).
3
Table 3: Labels below the figure(casia.names).
50 Balochi
51 Brahui
57 Makrani
59 Sindhi
58 Pathan
52 Burusho
54 Hazara
629 Uygur
699 Yakut
56 Kalash
Table 4: Labels atop the figure(casia.languages).
50 Indo-European
51 Dravidian
57 Indo-European
59 Indo-European
58 Indo-European
52 Linguistic isolate
54 Indo-European
629 Altaic
699 Altaic
56 Indo-European
2.3 Labels below the figure
To place labels below the figure, set PRINT LABEL BELOW to 1. The program will search forthe file specified by INFILE LABEL BELOW. The default is to print the population codes aslabels. If the file is found, the input order of populations on the rows of the file will be used forthe left-right order of graphing of populations. The first column contains the population code(an integer); the remaining columns contain the text that is to be printed below the figure.
Note that additional populations not found in the data can be included in the file. Theseadditional lines will simply be ignored.
2.4 Labels atop the figure
Labels atop the figure are placed analogously to those below it using PRINT LABEL ATOP=1.The program will search for the file specified by INFILE LABEL ATOP. The default is to printthe population codes as labels. If the file is found, the input order of populations on the rows ofthe file will be used for the left-right order of graphing of populations. If labels are requested bothatop and below the figure, the entries in INFILE LABEL ATOP and INFILE LABEL BELOWshould be listed in the same order. The first column contains the population code (an integer);the remaining columns contain the text that is to be printed atop the figure. As with the labelsbelow the figure, this text can consist of multiple columns.
2.5 Vertical cluster order and cluster colors
The permutation that describes the vertical order of the clusters can be given in the file specifiedINFILE CLUST PERM. The colors to be used for the figure are also specified here. If no fileis detected, the left-to-right order of the clusters in INFILE POPQ is used. The names of someof the allowed colors are shown in Figure 1. Colors may vary considerably across printers. Thefirst column of the file must contain a permutation of the integers in {1, 2...K}. The entries inthe second column must be colors taken from the (case-insensitive) allowed list.
The maximum number of clusters is set at 60, and if no INFILE CLUST PERM file isspecified, then the colors for the clusters will be taken in order from the top two rows of Figure1. If GRAYSCALE is set to 1, real numbers in [0,1] are entered in place of the names of colors.In this scheme, 0 corresponds to black and 1 corresponds to white.
4
oran
ge
1
blue
2
yello
w3
pink
4
gree
n5
purp
le
6
red
7
light
_gre
en
8
dark
_blu
e
9
light
_pur
ple
10
light
_yel
low
11
brow
n
12
light
_blu
e
13
oliv
e_gr
een
14
peac
h
15
sea_
gree
n
16
yello
w_g
reen
17
blue
_pur
ple
18
blue
_gre
en
19
gray
20
dark
_gre
en
21
light
_gra
y
22
red2
23
light
_blu
e2
24
light
_ora
nge
25
dark
_gra
y
26
light
_pin
k
27
dark
_bro
wn
28
dark
_ora
nge
29
dark
_pur
ple
30
whi
te
31
colo
r32
32
colo
r33
33
colo
r34
34
colo
r35
35
colo
r36
36
colo
r37
37
colo
r38
38
colo
r39
39
colo
r40
40
colo
r41
41
colo
r42
42
colo
r43
43
colo
r44
44
colo
r45
45
colo
r46
46
colo
r47
47
colo
r48
48
colo
r49
49
colo
r50
50
colo
r51
51
colo
r52
52
colo
r53
53
colo
r54
54
colo
r55
55
colo
r56
56
colo
r57
57
colo
r58
58
colo
r59
59
colo
r60
60
colo
r101
colo
r102
colo
r103
colo
r104
colo
r105
colo
r106
colo
r107
colo
r108
colo
r109
colo
r110
colo
r111
colo
r112
colo
r113
colo
r114
colo
r115
colo
r116
colo
r117
colo
r118
colo
r119
colo
r120
colo
r121
colo
r122
colo
r123
colo
r124
colo
r125
colo
r126
colo
r127
colo
r128
colo
r129
colo
r130
Figure 1: List of colors recognized by distruct. In the top two rows, the number below thefigure represents the cluster for which the color will be used as the default. The label atopthe figure is the string that is recognized as the color name. The string “black” is also recog-nized. The bottom row represents a stepped-sequential color scheme adapted from the schemeat http://geography.uoregon.edu/datagraphics/color scales.htm.
Table 5: Permutation of the clusters, and colors (casia.perm).
5 yellOw
4 Pink
1 Red
2 green
3 blue Purple
The distruct program also recognizes color schemes implemented in ColorBrewer (Brewer
et al., 2003; Harrower and Brewer, 2003). These color schemes, which contain 3-12 colors,are shown in Figures 2-9. A distruct figure can be produced using a particular ColorBrewer colorscheme, or a color scheme can be created from a combination of the colors shown in Figures 1-9.ColorBrewer schemes are of three types — qualitative (Figures 2 and 3), diverging (Figures 4 and5), and sequential (Figures 6-9). Qualitative schemes are likely to be best-suited to most depic-tions of population structure. As an example, to use the ColorBrewer color scheme Accent 5 qualinstead of the scheme in casia.perm, replace casia.perm with ColorBrewer/Accent 5 qual for thevalue of INFILE CLUST PERM in the drawparams file. The rows in Accent 5 qual can berearranged to produce the same bottom-to-top cluster order as in casia.perm.
The ColorBrewer website (http://colorbrewer.org) provides additional information abouteach of its schemes, including their suitability for colorblind viewers. A simulator for colorblindviewers is located at (http://vischeck.com).
5
Acc
ent_
3_qu
al_1
Acc
ent_
3_qu
al_2
Acc
ent_
3_qu
al_3
Dar
k2_3
_qua
l_1
Dar
k2_3
_qua
l_2
Dar
k2_3
_qua
l_3
Paire
d_3_
qual
_1Pa
ired_
3_qu
al_2
Paire
d_3_
qual
_3
Past
el1_
3_qu
al_1
Past
el1_
3_qu
al_2
Past
el1_
3_qu
al_3
Past
el2_
3_qu
al_1
Past
el2_
3_qu
al_2
Past
el2_
3_qu
al_3
Set1
_3_q
ual_
1Se
t1_3
_qua
l_2
Set1
_3_q
ual_
3
Set2
_3_q
ual_
1Se
t2_3
_qua
l_2
Set2
_3_q
ual_
3
Set3
_3_q
ual_
1Se
t3_3
_qua
l_2
Set3
_3_q
ual_
3
Acc
ent_
4_qu
al_1
Acc
ent_
4_qu
al_2
Acc
ent_
4_qu
al_3
Acc
ent_
4_qu
al_4
Dar
k2_4
_qua
l_1
Dar
k2_4
_qua
l_2
Dar
k2_4
_qua
l_3
Dar
k2_4
_qua
l_4
Paire
d_4_
qual
_1Pa
ired_
4_qu
al_2
Paire
d_4_
qual
_3Pa
ired_
4_qu
al_4
Past
el1_
4_qu
al_1
Past
el1_
4_qu
al_2
Past
el1_
4_qu
al_3
Past
el1_
4_qu
al_4
Past
el2_
4_qu
al_1
Past
el2_
4_qu
al_2
Past
el2_
4_qu
al_3
Past
el2_
4_qu
al_4
Set1
_4_q
ual_
1Se
t1_4
_qua
l_2
Set1
_4_q
ual_
3Se
t1_4
_qua
l_4
Set2
_4_q
ual_
1Se
t2_4
_qua
l_2
Set2
_4_q
ual_
3Se
t2_4
_qua
l_4
Set3
_4_q
ual_
1Se
t3_4
_qua
l_2
Set3
_4_q
ual_
3Se
t3_4
_qua
l_4
Acc
ent_
5_qu
al_1
Acc
ent_
5_qu
al_2
Acc
ent_
5_qu
al_3
Acc
ent_
5_qu
al_4
Acc
ent_
5_qu
al_5
Dar
k2_5
_qua
l_1
Dar
k2_5
_qua
l_2
Dar
k2_5
_qua
l_3
Dar
k2_5
_qua
l_4
Dar
k2_5
_qua
l_5
Paire
d_5_
qual
_1Pa
ired_
5_qu
al_2
Paire
d_5_
qual
_3Pa
ired_
5_qu
al_4
Paire
d_5_
qual
_5
Past
el1_
5_qu
al_1
Past
el1_
5_qu
al_2
Past
el1_
5_qu
al_3
Past
el1_
5_qu
al_4
Past
el1_
5_qu
al_5
Past
el2_
5_qu
al_1
Past
el2_
5_qu
al_2
Past
el2_
5_qu
al_3
Past
el2_
5_qu
al_4
Past
el2_
5_qu
al_5
Set1
_5_q
ual_
1Se
t1_5
_qua
l_2
Set1
_5_q
ual_
3Se
t1_5
_qua
l_4
Set1
_5_q
ual_
5
Set2
_5_q
ual_
1Se
t2_5
_qua
l_2
Set2
_5_q
ual_
3Se
t2_5
_qua
l_4
Set2
_5_q
ual_
5
Set3
_5_q
ual_
1Se
t3_5
_qua
l_2
Set3
_5_q
ual_
3Se
t3_5
_qua
l_4
Set3
_5_q
ual_
5
Acc
ent_
6_qu
al_1
Acc
ent_
6_qu
al_2
Acc
ent_
6_qu
al_3
Acc
ent_
6_qu
al_4
Acc
ent_
6_qu
al_5
Acc
ent_
6_qu
al_6
Dar
k2_6
_qua
l_1
Dar
k2_6
_qua
l_2
Dar
k2_6
_qua
l_3
Dar
k2_6
_qua
l_4
Dar
k2_6
_qua
l_5
Dar
k2_6
_qua
l_6
Paire
d_6_
qual
_1Pa
ired_
6_qu
al_2
Paire
d_6_
qual
_3Pa
ired_
6_qu
al_4
Paire
d_6_
qual
_5Pa
ired_
6_qu
al_6
Past
el1_
6_qu
al_1
Past
el1_
6_qu
al_2
Past
el1_
6_qu
al_3
Past
el1_
6_qu
al_4
Past
el1_
6_qu
al_5
Past
el1_
6_qu
al_6
Past
el2_
6_qu
al_1
Past
el2_
6_qu
al_2
Past
el2_
6_qu
al_3
Past
el2_
6_qu
al_4
Past
el2_
6_qu
al_5
Past
el2_
6_qu
al_6
Set1
_6_q
ual_
1Se
t1_6
_qua
l_2
Set1
_6_q
ual_
3Se
t1_6
_qua
l_4
Set1
_6_q
ual_
5Se
t1_6
_qua
l_6
Set2
_6_q
ual_
1Se
t2_6
_qua
l_2
Set2
_6_q
ual_
3Se
t2_6
_qua
l_4
Set2
_6_q
ual_
5Se
t2_6
_qua
l_6
Set3
_6_q
ual_
1Se
t3_6
_qua
l_2
Set3
_6_q
ual_
3Se
t3_6
_qua
l_4
Set3
_6_q
ual_
5Se
t3_6
_qua
l_6
Acc
ent_
7_qu
al_1
Acc
ent_
7_qu
al_2
Acc
ent_
7_qu
al_3
Acc
ent_
7_qu
al_4
Acc
ent_
7_qu
al_5
Acc
ent_
7_qu
al_6
Acc
ent_
7_qu
al_7
Dar
k2_7
_qua
l_1
Dar
k2_7
_qua
l_2
Dar
k2_7
_qua
l_3
Dar
k2_7
_qua
l_4
Dar
k2_7
_qua
l_5
Dar
k2_7
_qua
l_6
Dar
k2_7
_qua
l_7
Paire
d_7_
qual
_1Pa
ired_
7_qu
al_2
Paire
d_7_
qual
_3Pa
ired_
7_qu
al_4
Paire
d_7_
qual
_5Pa
ired_
7_qu
al_6
Paire
d_7_
qual
_7
Past
el1_
7_qu
al_1
Past
el1_
7_qu
al_2
Past
el1_
7_qu
al_3
Past
el1_
7_qu
al_4
Past
el1_
7_qu
al_5
Past
el1_
7_qu
al_6
Past
el1_
7_qu
al_7
Past
el2_
7_qu
al_1
Past
el2_
7_qu
al_2
Past
el2_
7_qu
al_3
Past
el2_
7_qu
al_4
Past
el2_
7_qu
al_5
Past
el2_
7_qu
al_6
Past
el2_
7_qu
al_7
Set1
_7_q
ual_
1Se
t1_7
_qua
l_2
Set1
_7_q
ual_
3Se
t1_7
_qua
l_4
Set1
_7_q
ual_
5Se
t1_7
_qua
l_6
Set1
_7_q
ual_
7
Set2
_7_q
ual_
1Se
t2_7
_qua
l_2
Set2
_7_q
ual_
3Se
t2_7
_qua
l_4
Set2
_7_q
ual_
5Se
t2_7
_qua
l_6
Set2
_7_q
ual_
7
Set3
_7_q
ual_
1Se
t3_7
_qua
l_2
Set3
_7_q
ual_
3Se
t3_7
_qua
l_4
Set3
_7_q
ual_
5Se
t3_7
_qua
l_6
Set3
_7_q
ual_
7
Acc
ent_
8_qu
al_1
Acc
ent_
8_qu
al_2
Acc
ent_
8_qu
al_3
Acc
ent_
8_qu
al_4
Acc
ent_
8_qu
al_5
Acc
ent_
8_qu
al_6
Acc
ent_
8_qu
al_7
Acc
ent_
8_qu
al_8
Dar
k2_8
_qua
l_1
Dar
k2_8
_qua
l_2
Dar
k2_8
_qua
l_3
Dar
k2_8
_qua
l_4
Dar
k2_8
_qua
l_5
Dar
k2_8
_qua
l_6
Dar
k2_8
_qua
l_7
Dar
k2_8
_qua
l_8
Paire
d_8_
qual
_1Pa
ired_
8_qu
al_2
Paire
d_8_
qual
_3Pa
ired_
8_qu
al_4
Paire
d_8_
qual
_5Pa
ired_
8_qu
al_6
Paire
d_8_
qual
_7Pa
ired_
8_qu
al_8
Past
el1_
8_qu
al_1
Past
el1_
8_qu
al_2
Past
el1_
8_qu
al_3
Past
el1_
8_qu
al_4
Past
el1_
8_qu
al_5
Past
el1_
8_qu
al_6
Past
el1_
8_qu
al_7
Past
el1_
8_qu
al_8
Past
el2_
8_qu
al_1
Past
el2_
8_qu
al_2
Past
el2_
8_qu
al_3
Past
el2_
8_qu
al_4
Past
el2_
8_qu
al_5
Past
el2_
8_qu
al_6
Past
el2_
8_qu
al_7
Past
el2_
8_qu
al_8
Set1
_8_q
ual_
1Se
t1_8
_qua
l_2
Set1
_8_q
ual_
3Se
t1_8
_qua
l_4
Set1
_8_q
ual_
5Se
t1_8
_qua
l_6
Set1
_8_q
ual_
7Se
t1_8
_qua
l_8
Set2
_8_q
ual_
1Se
t2_8
_qua
l_2
Set2
_8_q
ual_
3Se
t2_8
_qua
l_4
Set2
_8_q
ual_
5Se
t2_8
_qua
l_6
Set2
_8_q
ual_
7Se
t2_8
_qua
l_8
Set3
_8_q
ual_
1Se
t3_8
_qua
l_2
Set3
_8_q
ual_
3Se
t3_8
_qua
l_4
Set3
_8_q
ual_
5Se
t3_8
_qua
l_6
Set3
_8_q
ual_
7Se
t3_8
_qua
l_8
Figure 2: ColorBrewer qualitative color schemes with 3-8 colors. Each row of graphs representsa different family of color schemes, and each column represents a different number of colors.The labels below the graphs represent the color names recognized by distruct.
6
Paire
d_9_
qual
_1Pa
ired_
9_qu
al_2
Paire
d_9_
qual
_3Pa
ired_
9_qu
al_4
Paire
d_9_
qual
_5Pa
ired_
9_qu
al_6
Paire
d_9_
qual
_7Pa
ired_
9_qu
al_8
Paire
d_9_
qual
_9
Past
el1_
9_qu
al_1
Past
el1_
9_qu
al_2
Past
el1_
9_qu
al_3
Past
el1_
9_qu
al_4
Past
el1_
9_qu
al_5
Past
el1_
9_qu
al_6
Past
el1_
9_qu
al_7
Past
el1_
9_qu
al_8
Past
el1_
9_qu
al_9
Set1
_9_q
ual_
1Se
t1_9
_qua
l_2
Set1
_9_q
ual_
3Se
t1_9
_qua
l_4
Set1
_9_q
ual_
5Se
t1_9
_qua
l_6
Set1
_9_q
ual_
7Se
t1_9
_qua
l_8
Set1
_9_q
ual_
9
Set3
_9_q
ual_
1Se
t3_9
_qua
l_2
Set3
_9_q
ual_
3Se
t3_9
_qua
l_4
Set3
_9_q
ual_
5Se
t3_9
_qua
l_6
Set3
_9_q
ual_
7Se
t3_9
_qua
l_8
Set3
_9_q
ual_
9
Paire
d_10
_qua
l_1
Paire
d_10
_qua
l_2
Paire
d_10
_qua
l_3
Paire
d_10
_qua
l_4
Paire
d_10
_qua
l_5
Paire
d_10
_qua
l_6
Paire
d_10
_qua
l_7
Paire
d_10
_qua
l_8
Paire
d_10
_qua
l_9
Paire
d_10
_qua
l_10
Set3
_10_
qual
_1Se
t3_1
0_qu
al_2
Set3
_10_
qual
_3Se
t3_1
0_qu
al_4
Set3
_10_
qual
_5Se
t3_1
0_qu
al_6
Set3
_10_
qual
_7Se
t3_1
0_qu
al_8
Set3
_10_
qual
_9Se
t3_1
0_qu
al_1
0
Paire
d_11
_qua
l_1
Paire
d_11
_qua
l_2
Paire
d_11
_qua
l_3
Paire
d_11
_qua
l_4
Paire
d_11
_qua
l_5
Paire
d_11
_qua
l_6
Paire
d_11
_qua
l_7
Paire
d_11
_qua
l_8
Paire
d_11
_qua
l_9
Paire
d_11
_qua
l_10
Paire
d_11
_qua
l_11
Set3
_11_
qual
_1Se
t3_1
1_qu
al_2
Set3
_11_
qual
_3Se
t3_1
1_qu
al_4
Set3
_11_
qual
_5Se
t3_1
1_qu
al_6
Set3
_11_
qual
_7Se
t3_1
1_qu
al_8
Set3
_11_
qual
_9Se
t3_1
1_qu
al_1
0Se
t3_1
1_qu
al_1
1
Paire
d_12
_qua
l_1
Paire
d_12
_qua
l_2
Paire
d_12
_qua
l_3
Paire
d_12
_qua
l_4
Paire
d_12
_qua
l_5
Paire
d_12
_qua
l_6
Paire
d_12
_qua
l_7
Paire
d_12
_qua
l_8
Paire
d_12
_qua
l_9
Paire
d_12
_qua
l_10
Paire
d_12
_qua
l_11
Paire
d_12
_qua
l_12
Set3
_12_
qual
_1Se
t3_1
2_qu
al_2
Set3
_12_
qual
_3Se
t3_1
2_qu
al_4
Set3
_12_
qual
_5Se
t3_1
2_qu
al_6
Set3
_12_
qual
_7Se
t3_1
2_qu
al_8
Set3
_12_
qual
_9Se
t3_1
2_qu
al_1
0Se
t3_1
2_qu
al_1
1Se
t3_1
2_qu
al_1
2
Figure 3: ColorBrewer qualitative color schemes with 9-12 colors (continued from the schemeswith 3-8 colors in Figure 2). Each row of graphs represents a different family of color schemes,and each column represents a different number of colors. The labels below the graphs representthe color names recognized by distruct.
7
BrB
G_3
_div
_1B
rBG
_3_d
iv_2
BrB
G_3
_div
_3
PiYG
_3_d
iv_1
PiYG
_3_d
iv_2
PiYG
_3_d
iv_3
PRG
n_3_
div_
1PR
Gn_
3_di
v_2
PRG
n_3_
div_
3
PuO
r_3_
div_
1Pu
Or_
3_di
v_2
PuO
r_3_
div_
3
RdB
u_3_
div_
1R
dBu_
3_di
v_2
RdB
u_3_
div_
3
RdG
y_3_
div_
1R
dGy_
3_di
v_2
RdG
y_3_
div_
3
RdY
lBu_
3_di
v_1
RdY
lBu_
3_di
v_2
RdY
lBu_
3_di
v_3
RdY
lGn_
3_di
v_1
RdY
lGn_
3_di
v_2
RdY
lGn_
3_di
v_3
Spec
tral
_3_d
iv_1
Spec
tral
_3_d
iv_2
Spec
tral
_3_d
iv_3
BrB
G_4
_div
_1B
rBG
_4_d
iv_2
BrB
G_4
_div
_3B
rBG
_4_d
iv_4
PiYG
_4_d
iv_1
PiYG
_4_d
iv_2
PiYG
_4_d
iv_3
PiYG
_4_d
iv_4
PRG
n_4_
div_
1PR
Gn_
4_di
v_2
PRG
n_4_
div_
3PR
Gn_
4_di
v_4
PuO
r_4_
div_
1Pu
Or_
4_di
v_2
PuO
r_4_
div_
3Pu
Or_
4_di
v_4
RdB
u_4_
div_
1R
dBu_
4_di
v_2
RdB
u_4_
div_
3R
dBu_
4_di
v_4
RdG
y_4_
div_
1R
dGy_
4_di
v_2
RdG
y_4_
div_
3R
dGy_
4_di
v_4
RdY
lBu_
4_di
v_1
RdY
lBu_
4_di
v_2
RdY
lBu_
4_di
v_3
RdY
lBu_
4_di
v_4
RdY
lGn_
4_di
v_1
RdY
lGn_
4_di
v_2
RdY
lGn_
4_di
v_3
RdY
lGn_
4_di
v_4
Spec
tral
_4_d
iv_1
Spec
tral
_4_d
iv_2
Spec
tral
_4_d
iv_3
Spec
tral
_4_d
iv_4
BrB
G_5
_div
_1B
rBG
_5_d
iv_2
BrB
G_5
_div
_3B
rBG
_5_d
iv_4
BrB
G_5
_div
_5
PiYG
_5_d
iv_1
PiYG
_5_d
iv_2
PiYG
_5_d
iv_3
PiYG
_5_d
iv_4
PiYG
_5_d
iv_5
PRG
n_5_
div_
1PR
Gn_
5_di
v_2
PRG
n_5_
div_
3PR
Gn_
5_di
v_4
PRG
n_5_
div_
5
PuO
r_5_
div_
1Pu
Or_
5_di
v_2
PuO
r_5_
div_
3Pu
Or_
5_di
v_4
PuO
r_5_
div_
5
RdB
u_5_
div_
1R
dBu_
5_di
v_2
RdB
u_5_
div_
3R
dBu_
5_di
v_4
RdB
u_5_
div_
5
RdG
y_5_
div_
1R
dGy_
5_di
v_2
RdG
y_5_
div_
3R
dGy_
5_di
v_4
RdG
y_5_
div_
5
RdY
lBu_
5_di
v_1
RdY
lBu_
5_di
v_2
RdY
lBu_
5_di
v_3
RdY
lBu_
5_di
v_4
RdY
lBu_
5_di
v_5
RdY
lGn_
5_di
v_1
RdY
lGn_
5_di
v_2
RdY
lGn_
5_di
v_3
RdY
lGn_
5_di
v_4
RdY
lGn_
5_di
v_5
Spec
tral
_5_d
iv_1
Spec
tral
_5_d
iv_2
Spec
tral
_5_d
iv_3
Spec
tral
_5_d
iv_4
Spec
tral
_5_d
iv_5
BrB
G_6
_div
_1B
rBG
_6_d
iv_2
BrB
G_6
_div
_3B
rBG
_6_d
iv_4
BrB
G_6
_div
_5B
rBG
_6_d
iv_6
PiYG
_6_d
iv_1
PiYG
_6_d
iv_2
PiYG
_6_d
iv_3
PiYG
_6_d
iv_4
PiYG
_6_d
iv_5
PiYG
_6_d
iv_6
PRG
n_6_
div_
1PR
Gn_
6_di
v_2
PRG
n_6_
div_
3PR
Gn_
6_di
v_4
PRG
n_6_
div_
5PR
Gn_
6_di
v_6
PuO
r_6_
div_
1Pu
Or_
6_di
v_2
PuO
r_6_
div_
3Pu
Or_
6_di
v_4
PuO
r_6_
div_
5Pu
Or_
6_di
v_6
RdB
u_6_
div_
1R
dBu_
6_di
v_2
RdB
u_6_
div_
3R
dBu_
6_di
v_4
RdB
u_6_
div_
5R
dBu_
6_di
v_6
RdG
y_6_
div_
1R
dGy_
6_di
v_2
RdG
y_6_
div_
3R
dGy_
6_di
v_4
RdG
y_6_
div_
5R
dGy_
6_di
v_6
RdY
lBu_
6_di
v_1
RdY
lBu_
6_di
v_2
RdY
lBu_
6_di
v_3
RdY
lBu_
6_di
v_4
RdY
lBu_
6_di
v_5
RdY
lBu_
6_di
v_6
RdY
lGn_
6_di
v_1
RdY
lGn_
6_di
v_2
RdY
lGn_
6_di
v_3
RdY
lGn_
6_di
v_4
RdY
lGn_
6_di
v_5
RdY
lGn_
6_di
v_6
Spec
tral
_6_d
iv_1
Spec
tral
_6_d
iv_2
Spec
tral
_6_d
iv_3
Spec
tral
_6_d
iv_4
Spec
tral
_6_d
iv_5
Spec
tral
_6_d
iv_6
BrB
G_7
_div
_1B
rBG
_7_d
iv_2
BrB
G_7
_div
_3B
rBG
_7_d
iv_4
BrB
G_7
_div
_5B
rBG
_7_d
iv_6
BrB
G_7
_div
_7
PiYG
_7_d
iv_1
PiYG
_7_d
iv_2
PiYG
_7_d
iv_3
PiYG
_7_d
iv_4
PiYG
_7_d
iv_5
PiYG
_7_d
iv_6
PiYG
_7_d
iv_7
PRG
n_7_
div_
1PR
Gn_
7_di
v_2
PRG
n_7_
div_
3PR
Gn_
7_di
v_4
PRG
n_7_
div_
5PR
Gn_
7_di
v_6
PRG
n_7_
div_
7
PuO
r_7_
div_
1Pu
Or_
7_di
v_2
PuO
r_7_
div_
3Pu
Or_
7_di
v_4
PuO
r_7_
div_
5Pu
Or_
7_di
v_6
PuO
r_7_
div_
7
RdB
u_7_
div_
1R
dBu_
7_di
v_2
RdB
u_7_
div_
3R
dBu_
7_di
v_4
RdB
u_7_
div_
5R
dBu_
7_di
v_6
RdB
u_7_
div_
7
RdG
y_7_
div_
1R
dGy_
7_di
v_2
RdG
y_7_
div_
3R
dGy_
7_di
v_4
RdG
y_7_
div_
5R
dGy_
7_di
v_6
RdG
y_7_
div_
7
RdY
lBu_
7_di
v_1
RdY
lBu_
7_di
v_2
RdY
lBu_
7_di
v_3
RdY
lBu_
7_di
v_4
RdY
lBu_
7_di
v_5
RdY
lBu_
7_di
v_6
RdY
lBu_
7_di
v_7
RdY
lGn_
7_di
v_1
RdY
lGn_
7_di
v_2
RdY
lGn_
7_di
v_3
RdY
lGn_
7_di
v_4
RdY
lGn_
7_di
v_5
RdY
lGn_
7_di
v_6
RdY
lGn_
7_di
v_7
Spec
tral
_7_d
iv_1
Spec
tral
_7_d
iv_2
Spec
tral
_7_d
iv_3
Spec
tral
_7_d
iv_4
Spec
tral
_7_d
iv_5
Spec
tral
_7_d
iv_6
Spec
tral
_7_d
iv_7
BrB
G_8
_div
_1B
rBG
_8_d
iv_2
BrB
G_8
_div
_3B
rBG
_8_d
iv_4
BrB
G_8
_div
_5B
rBG
_8_d
iv_6
BrB
G_8
_div
_7B
rBG
_8_d
iv_8
PiYG
_8_d
iv_1
PiYG
_8_d
iv_2
PiYG
_8_d
iv_3
PiYG
_8_d
iv_4
PiYG
_8_d
iv_5
PiYG
_8_d
iv_6
PiYG
_8_d
iv_7
PiYG
_8_d
iv_8
PRG
n_8_
div_
1PR
Gn_
8_di
v_2
PRG
n_8_
div_
3PR
Gn_
8_di
v_4
PRG
n_8_
div_
5PR
Gn_
8_di
v_6
PRG
n_8_
div_
7PR
Gn_
8_di
v_8
PuO
r_8_
div_
1Pu
Or_
8_di
v_2
PuO
r_8_
div_
3Pu
Or_
8_di
v_4
PuO
r_8_
div_
5Pu
Or_
8_di
v_6
PuO
r_8_
div_
7Pu
Or_
8_di
v_8
RdB
u_8_
div_
1R
dBu_
8_di
v_2
RdB
u_8_
div_
3R
dBu_
8_di
v_4
RdB
u_8_
div_
5R
dBu_
8_di
v_6
RdB
u_8_
div_
7R
dBu_
8_di
v_8
RdG
y_8_
div_
1R
dGy_
8_di
v_2
RdG
y_8_
div_
3R
dGy_
8_di
v_4
RdG
y_8_
div_
5R
dGy_
8_di
v_6
RdG
y_8_
div_
7R
dGy_
8_di
v_8
RdY
lBu_
8_di
v_1
RdY
lBu_
8_di
v_2
RdY
lBu_
8_di
v_3
RdY
lBu_
8_di
v_4
RdY
lBu_
8_di
v_5
RdY
lBu_
8_di
v_6
RdY
lBu_
8_di
v_7
RdY
lBu_
8_di
v_8
RdY
lGn_
8_di
v_1
RdY
lGn_
8_di
v_2
RdY
lGn_
8_di
v_3
RdY
lGn_
8_di
v_4
RdY
lGn_
8_di
v_5
RdY
lGn_
8_di
v_6
RdY
lGn_
8_di
v_7
RdY
lGn_
8_di
v_8
Spec
tral
_8_d
iv_1
Spec
tral
_8_d
iv_2
Spec
tral
_8_d
iv_3
Spec
tral
_8_d
iv_4
Spec
tral
_8_d
iv_5
Spec
tral
_8_d
iv_6
Spec
tral
_8_d
iv_7
Spec
tral
_8_d
iv_8
Figure 4: ColorBrewer diverging color schemes with 3-8 colors. Each row of graphs represents adifferent family of color schemes, and each column represents a different number of colors. Thelabels below the graphs represent the color names recognized by distruct.
8
BrB
G_9
_div
_1B
rBG
_9_d
iv_2
BrB
G_9
_div
_3B
rBG
_9_d
iv_4
BrB
G_9
_div
_5B
rBG
_9_d
iv_6
BrB
G_9
_div
_7B
rBG
_9_d
iv_8
BrB
G_9
_div
_9
PiYG
_9_d
iv_1
PiYG
_9_d
iv_2
PiYG
_9_d
iv_3
PiYG
_9_d
iv_4
PiYG
_9_d
iv_5
PiYG
_9_d
iv_6
PiYG
_9_d
iv_7
PiYG
_9_d
iv_8
PiYG
_9_d
iv_9
PRG
n_9_
div_
1PR
Gn_
9_di
v_2
PRG
n_9_
div_
3PR
Gn_
9_di
v_4
PRG
n_9_
div_
5PR
Gn_
9_di
v_6
PRG
n_9_
div_
7PR
Gn_
9_di
v_8
PRG
n_9_
div_
9
PuO
r_9_
div_
1Pu
Or_
9_di
v_2
PuO
r_9_
div_
3Pu
Or_
9_di
v_4
PuO
r_9_
div_
5Pu
Or_
9_di
v_6
PuO
r_9_
div_
7Pu
Or_
9_di
v_8
PuO
r_9_
div_
9
RdB
u_9_
div_
1R
dBu_
9_di
v_2
RdB
u_9_
div_
3R
dBu_
9_di
v_4
RdB
u_9_
div_
5R
dBu_
9_di
v_6
RdB
u_9_
div_
7R
dBu_
9_di
v_8
RdB
u_9_
div_
9
RdG
y_9_
div_
1R
dGy_
9_di
v_2
RdG
y_9_
div_
3R
dGy_
9_di
v_4
RdG
y_9_
div_
5R
dGy_
9_di
v_6
RdG
y_9_
div_
7R
dGy_
9_di
v_8
RdG
y_9_
div_
9
RdY
lBu_
9_di
v_1
RdY
lBu_
9_di
v_2
RdY
lBu_
9_di
v_3
RdY
lBu_
9_di
v_4
RdY
lBu_
9_di
v_5
RdY
lBu_
9_di
v_6
RdY
lBu_
9_di
v_7
RdY
lBu_
9_di
v_8
RdY
lBu_
9_di
v_9
RdY
lGn_
9_di
v_1
RdY
lGn_
9_di
v_2
RdY
lGn_
9_di
v_3
RdY
lGn_
9_di
v_4
RdY
lGn_
9_di
v_5
RdY
lGn_
9_di
v_6
RdY
lGn_
9_di
v_7
RdY
lGn_
9_di
v_8
RdY
lGn_
9_di
v_9
Spec
tral
_9_d
iv_1
Spec
tral
_9_d
iv_2
Spec
tral
_9_d
iv_3
Spec
tral
_9_d
iv_4
Spec
tral
_9_d
iv_5
Spec
tral
_9_d
iv_6
Spec
tral
_9_d
iv_7
Spec
tral
_9_d
iv_8
Spec
tral
_9_d
iv_9
BrB
G_1
0_di
v_1
BrB
G_1
0_di
v_2
BrB
G_1
0_di
v_3
BrB
G_1
0_di
v_4
BrB
G_1
0_di
v_5
BrB
G_1
0_di
v_6
BrB
G_1
0_di
v_7
BrB
G_1
0_di
v_8
BrB
G_1
0_di
v_9
BrB
G_1
0_di
v_10
PiYG
_10_
div_
1Pi
YG_1
0_di
v_2
PiYG
_10_
div_
3Pi
YG_1
0_di
v_4
PiYG
_10_
div_
5Pi
YG_1
0_di
v_6
PiYG
_10_
div_
7Pi
YG_1
0_di
v_8
PiYG
_10_
div_
9Pi
YG_1
0_di
v_10
PRG
n_10
_div
_1PR
Gn_
10_d
iv_2
PRG
n_10
_div
_3PR
Gn_
10_d
iv_4
PRG
n_10
_div
_5PR
Gn_
10_d
iv_6
PRG
n_10
_div
_7PR
Gn_
10_d
iv_8
PRG
n_10
_div
_9PR
Gn_
10_d
iv_1
0
PuO
r_10
_div
_1Pu
Or_
10_d
iv_2
PuO
r_10
_div
_3Pu
Or_
10_d
iv_4
PuO
r_10
_div
_5Pu
Or_
10_d
iv_6
PuO
r_10
_div
_7Pu
Or_
10_d
iv_8
PuO
r_10
_div
_9Pu
Or_
10_d
iv_1
0
RdB
u_10
_div
_1R
dBu_
10_d
iv_2
RdB
u_10
_div
_3R
dBu_
10_d
iv_4
RdB
u_10
_div
_5R
dBu_
10_d
iv_6
RdB
u_10
_div
_7R
dBu_
10_d
iv_8
RdB
u_10
_div
_9R
dBu_
10_d
iv_1
0
RdG
y_10
_div
_1R
dGy_
10_d
iv_2
RdG
y_10
_div
_3R
dGy_
10_d
iv_4
RdG
y_10
_div
_5R
dGy_
10_d
iv_6
RdG
y_10
_div
_7R
dGy_
10_d
iv_8
RdG
y_10
_div
_9R
dGy_
10_d
iv_1
0
RdY
lBu_
10_d
iv_1
RdY
lBu_
10_d
iv_2
RdY
lBu_
10_d
iv_3
RdY
lBu_
10_d
iv_4
RdY
lBu_
10_d
iv_5
RdY
lBu_
10_d
iv_6
RdY
lBu_
10_d
iv_7
RdY
lBu_
10_d
iv_8
RdY
lBu_
10_d
iv_9
RdY
lBu_
10_d
iv_1
0
RdY
lGn_
10_d
iv_1
RdY
lGn_
10_d
iv_2
RdY
lGn_
10_d
iv_3
RdY
lGn_
10_d
iv_4
RdY
lGn_
10_d
iv_5
RdY
lGn_
10_d
iv_6
RdY
lGn_
10_d
iv_7
RdY
lGn_
10_d
iv_8
RdY
lGn_
10_d
iv_9
RdY
lGn_
10_d
iv_1
0
Spec
tral
_10_
div_
1
Spec
tral
_10_
div_
2
Spec
tral
_10_
div_
3
Spec
tral
_10_
div_
4
Spec
tral
_10_
div_
5
Spec
tral
_10_
div_
6
Spec
tral
_10_
div_
7
Spec
tral
_10_
div_
8
Spec
tral
_10_
div_
9
Spec
tral
_10_
div_
10
BrB
G_1
1_di
v_1
BrB
G_1
1_di
v_2
BrB
G_1
1_di
v_3
BrB
G_1
1_di
v_4
BrB
G_1
1_di
v_5
BrB
G_1
1_di
v_6
BrB
G_1
1_di
v_7
BrB
G_1
1_di
v_8
BrB
G_1
1_di
v_9
BrB
G_1
1_di
v_10
BrB
G_1
1_di
v_11
PiYG
_11_
div_
1Pi
YG_1
1_di
v_2
PiYG
_11_
div_
3Pi
YG_1
1_di
v_4
PiYG
_11_
div_
5Pi
YG_1
1_di
v_6
PiYG
_11_
div_
7Pi
YG_1
1_di
v_8
PiYG
_11_
div_
9Pi
YG_1
1_di
v_10
PiYG
_11_
div_
11
PRG
n_11
_div
_1PR
Gn_
11_d
iv_2
PRG
n_11
_div
_3PR
Gn_
11_d
iv_4
PRG
n_11
_div
_5PR
Gn_
11_d
iv_6
PRG
n_11
_div
_7PR
Gn_
11_d
iv_8
PRG
n_11
_div
_9PR
Gn_
11_d
iv_1
0PR
Gn_
11_d
iv_1
1
PuO
r_11
_div
_1Pu
Or_
11_d
iv_2
PuO
r_11
_div
_3Pu
Or_
11_d
iv_4
PuO
r_11
_div
_5Pu
Or_
11_d
iv_6
PuO
r_11
_div
_7Pu
Or_
11_d
iv_8
PuO
r_11
_div
_9Pu
Or_
11_d
iv_1
0Pu
Or_
11_d
iv_1
1
RdB
u_11
_div
_1R
dBu_
11_d
iv_2
RdB
u_11
_div
_3R
dBu_
11_d
iv_4
RdB
u_11
_div
_5R
dBu_
11_d
iv_6
RdB
u_11
_div
_7R
dBu_
11_d
iv_8
RdB
u_11
_div
_9R
dBu_
11_d
iv_1
0R
dBu_
11_d
iv_1
1
RdG
y_11
_div
_1R
dGy_
11_d
iv_2
RdG
y_11
_div
_3R
dGy_
11_d
iv_4
RdG
y_11
_div
_5R
dGy_
11_d
iv_6
RdG
y_11
_div
_7R
dGy_
11_d
iv_8
RdG
y_11
_div
_9R
dGy_
11_d
iv_1
0R
dGy_
11_d
iv_1
1
RdY
lBu_
11_d
iv_1
RdY
lBu_
11_d
iv_2
RdY
lBu_
11_d
iv_3
RdY
lBu_
11_d
iv_4
RdY
lBu_
11_d
iv_5
RdY
lBu_
11_d
iv_6
RdY
lBu_
11_d
iv_7
RdY
lBu_
11_d
iv_8
RdY
lBu_
11_d
iv_9
RdY
lBu_
11_d
iv_1
0
RdY
lBu_
11_d
iv_1
1
RdY
lGn_
11_d
iv_1
RdY
lGn_
11_d
iv_2
RdY
lGn_
11_d
iv_3
RdY
lGn_
11_d
iv_4
RdY
lGn_
11_d
iv_5
RdY
lGn_
11_d
iv_6
RdY
lGn_
11_d
iv_7
RdY
lGn_
11_d
iv_8
RdY
lGn_
11_d
iv_9
RdY
lGn_
11_d
iv_1
0
RdY
lGn_
11_d
iv_1
1
Spec
tral
_11_
div_
1
Spec
tral
_11_
div_
2
Spec
tral
_11_
div_
3
Spec
tral
_11_
div_
4
Spec
tral
_11_
div_
5
Spec
tral
_11_
div_
6
Spec
tral
_11_
div_
7
Spec
tral
_11_
div_
8
Spec
tral
_11_
div_
9
Spec
tral
_11_
div_
10
Spec
tral
_11_
div_
11
Figure 5: ColorBrewer diverging color schemes with 9-11 colors (continued from the schemeswith 3-8 colors in Figure 4). Each row of graphs represents a different family of color schemes,and each column represents a different number of colors. The labels below the graphs representthe color names recognized by distruct.
9
Blu
es_3
_seq
_1B
lues
_3_s
eq_2
Blu
es_3
_seq
_3
BuG
n_3_
seq_
1B
uGn_
3_se
q_2
BuG
n_3_
seq_
3
BuP
u_3_
seq_
1B
uPu_
3_se
q_2
BuP
u_3_
seq_
3
GnB
u_3_
seq_
1G
nBu_
3_se
q_2
GnB
u_3_
seq_
3
Gre
ens_
3_se
q_1
Gre
ens_
3_se
q_2
Gre
ens_
3_se
q_3
Gre
ys_3
_seq
_1G
reys
_3_s
eq_2
Gre
ys_3
_seq
_3
Ora
nges
_3_s
eq_1
Ora
nges
_3_s
eq_2
Ora
nges
_3_s
eq_3
OrR
d_3_
seq_
1O
rRd_
3_se
q_2
OrR
d_3_
seq_
3
PuB
u_3_
seq_
1Pu
Bu_
3_se
q_2
PuB
u_3_
seq_
3
Blu
es_4
_seq
_1B
lues
_4_s
eq_2
Blu
es_4
_seq
_3B
lues
_4_s
eq_4
BuG
n_4_
seq_
1B
uGn_
4_se
q_2
BuG
n_4_
seq_
3B
uGn_
4_se
q_4
BuP
u_4_
seq_
1B
uPu_
4_se
q_2
BuP
u_4_
seq_
3B
uPu_
4_se
q_4
GnB
u_4_
seq_
1G
nBu_
4_se
q_2
GnB
u_4_
seq_
3G
nBu_
4_se
q_4
Gre
ens_
4_se
q_1
Gre
ens_
4_se
q_2
Gre
ens_
4_se
q_3
Gre
ens_
4_se
q_4
Gre
ys_4
_seq
_1G
reys
_4_s
eq_2
Gre
ys_4
_seq
_3G
reys
_4_s
eq_4
Ora
nges
_4_s
eq_1
Ora
nges
_4_s
eq_2
Ora
nges
_4_s
eq_3
Ora
nges
_4_s
eq_4
OrR
d_4_
seq_
1O
rRd_
4_se
q_2
OrR
d_4_
seq_
3O
rRd_
4_se
q_4
PuB
u_4_
seq_
1Pu
Bu_
4_se
q_2
PuB
u_4_
seq_
3Pu
Bu_
4_se
q_4
Blu
es_5
_seq
_1B
lues
_5_s
eq_2
Blu
es_5
_seq
_3B
lues
_5_s
eq_4
Blu
es_5
_seq
_5
BuG
n_5_
seq_
1B
uGn_
5_se
q_2
BuG
n_5_
seq_
3B
uGn_
5_se
q_4
BuG
n_5_
seq_
5
BuP
u_5_
seq_
1B
uPu_
5_se
q_2
BuP
u_5_
seq_
3B
uPu_
5_se
q_4
BuP
u_5_
seq_
5
GnB
u_5_
seq_
1G
nBu_
5_se
q_2
GnB
u_5_
seq_
3G
nBu_
5_se
q_4
GnB
u_5_
seq_
5
Gre
ens_
5_se
q_1
Gre
ens_
5_se
q_2
Gre
ens_
5_se
q_3
Gre
ens_
5_se
q_4
Gre
ens_
5_se
q_5
Gre
ys_5
_seq
_1G
reys
_5_s
eq_2
Gre
ys_5
_seq
_3G
reys
_5_s
eq_4
Gre
ys_5
_seq
_5
Ora
nges
_5_s
eq_1
Ora
nges
_5_s
eq_2
Ora
nges
_5_s
eq_3
Ora
nges
_5_s
eq_4
Ora
nges
_5_s
eq_5
OrR
d_5_
seq_
1O
rRd_
5_se
q_2
OrR
d_5_
seq_
3O
rRd_
5_se
q_4
OrR
d_5_
seq_
5
PuB
u_5_
seq_
1Pu
Bu_
5_se
q_2
PuB
u_5_
seq_
3Pu
Bu_
5_se
q_4
PuB
u_5_
seq_
5
Blu
es_6
_seq
_1B
lues
_6_s
eq_2
Blu
es_6
_seq
_3B
lues
_6_s
eq_4
Blu
es_6
_seq
_5B
lues
_6_s
eq_6
BuG
n_6_
seq_
1B
uGn_
6_se
q_2
BuG
n_6_
seq_
3B
uGn_
6_se
q_4
BuG
n_6_
seq_
5B
uGn_
6_se
q_6
BuP
u_6_
seq_
1B
uPu_
6_se
q_2
BuP
u_6_
seq_
3B
uPu_
6_se
q_4
BuP
u_6_
seq_
5B
uPu_
6_se
q_6
GnB
u_6_
seq_
1G
nBu_
6_se
q_2
GnB
u_6_
seq_
3G
nBu_
6_se
q_4
GnB
u_6_
seq_
5G
nBu_
6_se
q_6
Gre
ens_
6_se
q_1
Gre
ens_
6_se
q_2
Gre
ens_
6_se
q_3
Gre
ens_
6_se
q_4
Gre
ens_
6_se
q_5
Gre
ens_
6_se
q_6
Gre
ys_6
_seq
_1G
reys
_6_s
eq_2
Gre
ys_6
_seq
_3G
reys
_6_s
eq_4
Gre
ys_6
_seq
_5G
reys
_6_s
eq_6
Ora
nges
_6_s
eq_1
Ora
nges
_6_s
eq_2
Ora
nges
_6_s
eq_3
Ora
nges
_6_s
eq_4
Ora
nges
_6_s
eq_5
Ora
nges
_6_s
eq_6
OrR
d_6_
seq_
1O
rRd_
6_se
q_2
OrR
d_6_
seq_
3O
rRd_
6_se
q_4
OrR
d_6_
seq_
5O
rRd_
6_se
q_6
PuB
u_6_
seq_
1Pu
Bu_
6_se
q_2
PuB
u_6_
seq_
3Pu
Bu_
6_se
q_4
PuB
u_6_
seq_
5Pu
Bu_
6_se
q_6
Blu
es_7
_seq
_1B
lues
_7_s
eq_2
Blu
es_7
_seq
_3B
lues
_7_s
eq_4
Blu
es_7
_seq
_5B
lues
_7_s
eq_6
Blu
es_7
_seq
_7
BuG
n_7_
seq_
1B
uGn_
7_se
q_2
BuG
n_7_
seq_
3B
uGn_
7_se
q_4
BuG
n_7_
seq_
5B
uGn_
7_se
q_6
BuG
n_7_
seq_
7
BuP
u_7_
seq_
1B
uPu_
7_se
q_2
BuP
u_7_
seq_
3B
uPu_
7_se
q_4
BuP
u_7_
seq_
5B
uPu_
7_se
q_6
BuP
u_7_
seq_
7
GnB
u_7_
seq_
1G
nBu_
7_se
q_2
GnB
u_7_
seq_
3G
nBu_
7_se
q_4
GnB
u_7_
seq_
5G
nBu_
7_se
q_6
GnB
u_7_
seq_
7
Gre
ens_
7_se
q_1
Gre
ens_
7_se
q_2
Gre
ens_
7_se
q_3
Gre
ens_
7_se
q_4
Gre
ens_
7_se
q_5
Gre
ens_
7_se
q_6
Gre
ens_
7_se
q_7
Gre
ys_7
_seq
_1G
reys
_7_s
eq_2
Gre
ys_7
_seq
_3G
reys
_7_s
eq_4
Gre
ys_7
_seq
_5G
reys
_7_s
eq_6
Gre
ys_7
_seq
_7
Ora
nges
_7_s
eq_1
Ora
nges
_7_s
eq_2
Ora
nges
_7_s
eq_3
Ora
nges
_7_s
eq_4
Ora
nges
_7_s
eq_5
Ora
nges
_7_s
eq_6
Ora
nges
_7_s
eq_7
OrR
d_7_
seq_
1O
rRd_
7_se
q_2
OrR
d_7_
seq_
3O
rRd_
7_se
q_4
OrR
d_7_
seq_
5O
rRd_
7_se
q_6
OrR
d_7_
seq_
7
PuB
u_7_
seq_
1Pu
Bu_
7_se
q_2
PuB
u_7_
seq_
3Pu
Bu_
7_se
q_4
PuB
u_7_
seq_
5Pu
Bu_
7_se
q_6
PuB
u_7_
seq_
7
Blu
es_8
_seq
_1B
lues
_8_s
eq_2
Blu
es_8
_seq
_3B
lues
_8_s
eq_4
Blu
es_8
_seq
_5B
lues
_8_s
eq_6
Blu
es_8
_seq
_7B
lues
_8_s
eq_8
BuG
n_8_
seq_
1B
uGn_
8_se
q_2
BuG
n_8_
seq_
3B
uGn_
8_se
q_4
BuG
n_8_
seq_
5B
uGn_
8_se
q_6
BuG
n_8_
seq_
7B
uGn_
8_se
q_8
BuP
u_8_
seq_
1B
uPu_
8_se
q_2
BuP
u_8_
seq_
3B
uPu_
8_se
q_4
BuP
u_8_
seq_
5B
uPu_
8_se
q_6
BuP
u_8_
seq_
7B
uPu_
8_se
q_8
GnB
u_8_
seq_
1G
nBu_
8_se
q_2
GnB
u_8_
seq_
3G
nBu_
8_se
q_4
GnB
u_8_
seq_
5G
nBu_
8_se
q_6
GnB
u_8_
seq_
7G
nBu_
8_se
q_8
Gre
ens_
8_se
q_1
Gre
ens_
8_se
q_2
Gre
ens_
8_se
q_3
Gre
ens_
8_se
q_4
Gre
ens_
8_se
q_5
Gre
ens_
8_se
q_6
Gre
ens_
8_se
q_7
Gre
ens_
8_se
q_8
Gre
ys_8
_seq
_1G
reys
_8_s
eq_2
Gre
ys_8
_seq
_3G
reys
_8_s
eq_4
Gre
ys_8
_seq
_5G
reys
_8_s
eq_6
Gre
ys_8
_seq
_7G
reys
_8_s
eq_8
Ora
nges
_8_s
eq_1
Ora
nges
_8_s
eq_2
Ora
nges
_8_s
eq_3
Ora
nges
_8_s
eq_4
Ora
nges
_8_s
eq_5
Ora
nges
_8_s
eq_6
Ora
nges
_8_s
eq_7
Ora
nges
_8_s
eq_8
OrR
d_8_
seq_
1O
rRd_
8_se
q_2
OrR
d_8_
seq_
3O
rRd_
8_se
q_4
OrR
d_8_
seq_
5O
rRd_
8_se
q_6
OrR
d_8_
seq_
7O
rRd_
8_se
q_8
PuB
u_8_
seq_
1Pu
Bu_
8_se
q_2
PuB
u_8_
seq_
3Pu
Bu_
8_se
q_4
PuB
u_8_
seq_
5Pu
Bu_
8_se
q_6
PuB
u_8_
seq_
7Pu
Bu_
8_se
q_8
Figure 6: ColorBrewer sequential color schemes with 3-8 colors. Each row of graphs represents adifferent family of color schemes, and each column represents a different number of colors. Thelabels below the graphs represent the color names recognized by distruct.
10
Blu
es_9
_seq
_1B
lues
_9_s
eq_2
Blu
es_9
_seq
_3B
lues
_9_s
eq_4
Blu
es_9
_seq
_5B
lues
_9_s
eq_6
Blu
es_9
_seq
_7B
lues
_9_s
eq_8
Blu
es_9
_seq
_9
BuG
n_9_
seq_
1B
uGn_
9_se
q_2
BuG
n_9_
seq_
3B
uGn_
9_se
q_4
BuG
n_9_
seq_
5B
uGn_
9_se
q_6
BuG
n_9_
seq_
7B
uGn_
9_se
q_8
BuG
n_9_
seq_
9
BuP
u_9_
seq_
1B
uPu_
9_se
q_2
BuP
u_9_
seq_
3B
uPu_
9_se
q_4
BuP
u_9_
seq_
5B
uPu_
9_se
q_6
BuP
u_9_
seq_
7B
uPu_
9_se
q_8
BuP
u_9_
seq_
9
GnB
u_9_
seq_
1G
nBu_
9_se
q_2
GnB
u_9_
seq_
3G
nBu_
9_se
q_4
GnB
u_9_
seq_
5G
nBu_
9_se
q_6
GnB
u_9_
seq_
7G
nBu_
9_se
q_8
GnB
u_9_
seq_
9
Gre
ens_
9_se
q_1
Gre
ens_
9_se
q_2
Gre
ens_
9_se
q_3
Gre
ens_
9_se
q_4
Gre
ens_
9_se
q_5
Gre
ens_
9_se
q_6
Gre
ens_
9_se
q_7
Gre
ens_
9_se
q_8
Gre
ens_
9_se
q_9
Gre
ys_9
_seq
_1G
reys
_9_s
eq_2
Gre
ys_9
_seq
_3G
reys
_9_s
eq_4
Gre
ys_9
_seq
_5G
reys
_9_s
eq_6
Gre
ys_9
_seq
_7G
reys
_9_s
eq_8
Gre
ys_9
_seq
_9
Ora
nges
_9_s
eq_1
Ora
nges
_9_s
eq_2
Ora
nges
_9_s
eq_3
Ora
nges
_9_s
eq_4
Ora
nges
_9_s
eq_5
Ora
nges
_9_s
eq_6
Ora
nges
_9_s
eq_7
Ora
nges
_9_s
eq_8
Ora
nges
_9_s
eq_9
OrR
d_9_
seq_
1O
rRd_
9_se
q_2
OrR
d_9_
seq_
3O
rRd_
9_se
q_4
OrR
d_9_
seq_
5O
rRd_
9_se
q_6
OrR
d_9_
seq_
7O
rRd_
9_se
q_8
OrR
d_9_
seq_
9
PuB
u_9_
seq_
1Pu
Bu_
9_se
q_2
PuB
u_9_
seq_
3Pu
Bu_
9_se
q_4
PuB
u_9_
seq_
5Pu
Bu_
9_se
q_6
PuB
u_9_
seq_
7Pu
Bu_
9_se
q_8
PuB
u_9_
seq_
9
Figure 7: ColorBrewer sequential color schemes with 9 colors (continued from the schemes with3-8 colors in Figure 6). Each row of graphs represents a different family of color schemes, andeach column represents a different number of colors. The labels below the graphs represent thecolor names recognized by distruct.
11
PuB
uGn_
3_se
q_1
PuB
uGn_
3_se
q_2
PuB
uGn_
3_se
q_3
PuR
d_3_
seq_
1Pu
Rd_
3_se
q_2
PuR
d_3_
seq_
3
Purp
les_
3_se
q_1
Purp
les_
3_se
q_2
Purp
les_
3_se
q_3
RdP
u_3_
seq_
1R
dPu_
3_se
q_2
RdP
u_3_
seq_
3
Red
s_3_
seq_
1R
eds_
3_se
q_2
Red
s_3_
seq_
3
YlG
n_3_
seq_
1Yl
Gn_
3_se
q_2
YlG
n_3_
seq_
3
YlG
nBu_
3_se
q_1
YlG
nBu_
3_se
q_2
YlG
nBu_
3_se
q_3
YlO
rBr_
3_se
q_1
YlO
rBr_
3_se
q_2
YlO
rBr_
3_se
q_3
YlO
rRd_
3_se
q_1
YlO
rRd_
3_se
q_2
YlO
rRd_
3_se
q_3
PuB
uGn_
4_se
q_1
PuB
uGn_
4_se
q_2
PuB
uGn_
4_se
q_3
PuB
uGn_
4_se
q_4
PuR
d_4_
seq_
1Pu
Rd_
4_se
q_2
PuR
d_4_
seq_
3Pu
Rd_
4_se
q_4
Purp
les_
4_se
q_1
Purp
les_
4_se
q_2
Purp
les_
4_se
q_3
Purp
les_
4_se
q_4
RdP
u_4_
seq_
1R
dPu_
4_se
q_2
RdP
u_4_
seq_
3R
dPu_
4_se
q_4
Red
s_4_
seq_
1R
eds_
4_se
q_2
Red
s_4_
seq_
3R
eds_
4_se
q_4
YlG
n_4_
seq_
1Yl
Gn_
4_se
q_2
YlG
n_4_
seq_
3Yl
Gn_
4_se
q_4
YlG
nBu_
4_se
q_1
YlG
nBu_
4_se
q_2
YlG
nBu_
4_se
q_3
YlG
nBu_
4_se
q_4
YlO
rBr_
4_se
q_1
YlO
rBr_
4_se
q_2
YlO
rBr_
4_se
q_3
YlO
rBr_
4_se
q_4
YlO
rRd_
4_se
q_1
YlO
rRd_
4_se
q_2
YlO
rRd_
4_se
q_3
YlO
rRd_
4_se
q_4
PuB
uGn_
5_se
q_1
PuB
uGn_
5_se
q_2
PuB
uGn_
5_se
q_3
PuB
uGn_
5_se
q_4
PuB
uGn_
5_se
q_5
PuR
d_5_
seq_
1Pu
Rd_
5_se
q_2
PuR
d_5_
seq_
3Pu
Rd_
5_se
q_4
PuR
d_5_
seq_
5
Purp
les_
5_se
q_1
Purp
les_
5_se
q_2
Purp
les_
5_se
q_3
Purp
les_
5_se
q_4
Purp
les_
5_se
q_5
RdP
u_5_
seq_
1R
dPu_
5_se
q_2
RdP
u_5_
seq_
3R
dPu_
5_se
q_4
RdP
u_5_
seq_
5
Red
s_5_
seq_
1R
eds_
5_se
q_2
Red
s_5_
seq_
3R
eds_
5_se
q_4
Red
s_5_
seq_
5
YlG
n_5_
seq_
1Yl
Gn_
5_se
q_2
YlG
n_5_
seq_
3Yl
Gn_
5_se
q_4
YlG
n_5_
seq_
5
YlG
nBu_
5_se
q_1
YlG
nBu_
5_se
q_2
YlG
nBu_
5_se
q_3
YlG
nBu_
5_se
q_4
YlG
nBu_
5_se
q_5
YlO
rBr_
5_se
q_1
YlO
rBr_
5_se
q_2
YlO
rBr_
5_se
q_3
YlO
rBr_
5_se
q_4
YlO
rBr_
5_se
q_5
YlO
rRd_
5_se
q_1
YlO
rRd_
5_se
q_2
YlO
rRd_
5_se
q_3
YlO
rRd_
5_se
q_4
YlO
rRd_
5_se
q_5
PuB
uGn_
6_se
q_1
PuB
uGn_
6_se
q_2
PuB
uGn_
6_se
q_3
PuB
uGn_
6_se
q_4
PuB
uGn_
6_se
q_5
PuB
uGn_
6_se
q_6
PuR
d_6_
seq_
1Pu
Rd_
6_se
q_2
PuR
d_6_
seq_
3Pu
Rd_
6_se
q_4
PuR
d_6_
seq_
5Pu
Rd_
6_se
q_6
Purp
les_
6_se
q_1
Purp
les_
6_se
q_2
Purp
les_
6_se
q_3
Purp
les_
6_se
q_4
Purp
les_
6_se
q_5
Purp
les_
6_se
q_6
RdP
u_6_
seq_
1R
dPu_
6_se
q_2
RdP
u_6_
seq_
3R
dPu_
6_se
q_4
RdP
u_6_
seq_
5R
dPu_
6_se
q_6
Red
s_6_
seq_
1R
eds_
6_se
q_2
Red
s_6_
seq_
3R
eds_
6_se
q_4
Red
s_6_
seq_
5R
eds_
6_se
q_6
YlG
n_6_
seq_
1Yl
Gn_
6_se
q_2
YlG
n_6_
seq_
3Yl
Gn_
6_se
q_4
YlG
n_6_
seq_
5Yl
Gn_
6_se
q_6
YlG
nBu_
6_se
q_1
YlG
nBu_
6_se
q_2
YlG
nBu_
6_se
q_3
YlG
nBu_
6_se
q_4
YlG
nBu_
6_se
q_5
YlG
nBu_
6_se
q_6
YlO
rBr_
6_se
q_1
YlO
rBr_
6_se
q_2
YlO
rBr_
6_se
q_3
YlO
rBr_
6_se
q_4
YlO
rBr_
6_se
q_5
YlO
rBr_
6_se
q_6
YlO
rRd_
6_se
q_1
YlO
rRd_
6_se
q_2
YlO
rRd_
6_se
q_3
YlO
rRd_
6_se
q_4
YlO
rRd_
6_se
q_5
YlO
rRd_
6_se
q_6
PuB
uGn_
7_se
q_1
PuB
uGn_
7_se
q_2
PuB
uGn_
7_se
q_3
PuB
uGn_
7_se
q_4
PuB
uGn_
7_se
q_5
PuB
uGn_
7_se
q_6
PuB
uGn_
7_se
q_7
PuR
d_7_
seq_
1Pu
Rd_
7_se
q_2
PuR
d_7_
seq_
3Pu
Rd_
7_se
q_4
PuR
d_7_
seq_
5Pu
Rd_
7_se
q_6
PuR
d_7_
seq_
7
Purp
les_
7_se
q_1
Purp
les_
7_se
q_2
Purp
les_
7_se
q_3
Purp
les_
7_se
q_4
Purp
les_
7_se
q_5
Purp
les_
7_se
q_6
Purp
les_
7_se
q_7
RdP
u_7_
seq_
1R
dPu_
7_se
q_2
RdP
u_7_
seq_
3R
dPu_
7_se
q_4
RdP
u_7_
seq_
5R
dPu_
7_se
q_6
RdP
u_7_
seq_
7
Red
s_7_
seq_
1R
eds_
7_se
q_2
Red
s_7_
seq_
3R
eds_
7_se
q_4
Red
s_7_
seq_
5R
eds_
7_se
q_6
Red
s_7_
seq_
7
YlG
n_7_
seq_
1Yl
Gn_
7_se
q_2
YlG
n_7_
seq_
3Yl
Gn_
7_se
q_4
YlG
n_7_
seq_
5Yl
Gn_
7_se
q_6
YlG
n_7_
seq_
7
YlG
nBu_
7_se
q_1
YlG
nBu_
7_se
q_2
YlG
nBu_
7_se
q_3
YlG
nBu_
7_se
q_4
YlG
nBu_
7_se
q_5
YlG
nBu_
7_se
q_6
YlG
nBu_
7_se
q_7
YlO
rBr_
7_se
q_1
YlO
rBr_
7_se
q_2
YlO
rBr_
7_se
q_3
YlO
rBr_
7_se
q_4
YlO
rBr_
7_se
q_5
YlO
rBr_
7_se
q_6
YlO
rBr_
7_se
q_7
YlO
rRd_
7_se
q_1
YlO
rRd_
7_se
q_2
YlO
rRd_
7_se
q_3
YlO
rRd_
7_se
q_4
YlO
rRd_
7_se
q_5
YlO
rRd_
7_se
q_6
YlO
rRd_
7_se
q_7
PuB
uGn_
8_se
q_1
PuB
uGn_
8_se
q_2
PuB
uGn_
8_se
q_3
PuB
uGn_
8_se
q_4
PuB
uGn_
8_se
q_5
PuB
uGn_
8_se
q_6
PuB
uGn_
8_se
q_7
PuB
uGn_
8_se
q_8
PuR
d_8_
seq_
1Pu
Rd_
8_se
q_2
PuR
d_8_
seq_
3Pu
Rd_
8_se
q_4
PuR
d_8_
seq_
5Pu
Rd_
8_se
q_6
PuR
d_8_
seq_
7Pu
Rd_
8_se
q_8
Purp
les_
8_se
q_1
Purp
les_
8_se
q_2
Purp
les_
8_se
q_3
Purp
les_
8_se
q_4
Purp
les_
8_se
q_5
Purp
les_
8_se
q_6
Purp
les_
8_se
q_7
Purp
les_
8_se
q_8
RdP
u_8_
seq_
1R
dPu_
8_se
q_2
RdP
u_8_
seq_
3R
dPu_
8_se
q_4
RdP
u_8_
seq_
5R
dPu_
8_se
q_6
RdP
u_8_
seq_
7R
dPu_
8_se
q_8
Red
s_8_
seq_
1R
eds_
8_se
q_2
Red
s_8_
seq_
3R
eds_
8_se
q_4
Red
s_8_
seq_
5R
eds_
8_se
q_6
Red
s_8_
seq_
7R
eds_
8_se
q_8
YlG
n_8_
seq_
1Yl
Gn_
8_se
q_2
YlG
n_8_
seq_
3Yl
Gn_
8_se
q_4
YlG
n_8_
seq_
5Yl
Gn_
8_se
q_6
YlG
n_8_
seq_
7Yl
Gn_
8_se
q_8
YlG
nBu_
8_se
q_1
YlG
nBu_
8_se
q_2
YlG
nBu_
8_se
q_3
YlG
nBu_
8_se
q_4
YlG
nBu_
8_se
q_5
YlG
nBu_
8_se
q_6
YlG
nBu_
8_se
q_7
YlG
nBu_
8_se
q_8
YlO
rBr_
8_se
q_1
YlO
rBr_
8_se
q_2
YlO
rBr_
8_se
q_3
YlO
rBr_
8_se
q_4
YlO
rBr_
8_se
q_5
YlO
rBr_
8_se
q_6
YlO
rBr_
8_se
q_7
YlO
rBr_
8_se
q_8
YlO
rRd_
8_se
q_1
YlO
rRd_
8_se
q_2
YlO
rRd_
8_se
q_3
YlO
rRd_
8_se
q_4
YlO
rRd_
8_se
q_5
YlO
rRd_
8_se
q_6
YlO
rRd_
8_se
q_7
YlO
rRd_
8_se
q_8
Figure 8: ColorBrewer sequential color schemes with 3-8 colors. Each row of graphs represents adifferent family of color schemes, and each column represents a different number of colors. Thelabels below the graphs represent the color names recognized by distruct.
12
PuB
uGn_
9_se
q_1
PuB
uGn_
9_se
q_2
PuB
uGn_
9_se
q_3
PuB
uGn_
9_se
q_4
PuB
uGn_
9_se
q_5
PuB
uGn_
9_se
q_6
PuB
uGn_
9_se
q_7
PuB
uGn_
9_se
q_8
PuB
uGn_
9_se
q_9
PuR
d_9_
seq_
1Pu
Rd_
9_se
q_2
PuR
d_9_
seq_
3Pu
Rd_
9_se
q_4
PuR
d_9_
seq_
5Pu
Rd_
9_se
q_6
PuR
d_9_
seq_
7Pu
Rd_
9_se
q_8
PuR
d_9_
seq_
9
Purp
les_
9_se
q_1
Purp
les_
9_se
q_2
Purp
les_
9_se
q_3
Purp
les_
9_se
q_4
Purp
les_
9_se
q_5
Purp
les_
9_se
q_6
Purp
les_
9_se
q_7
Purp
les_
9_se
q_8
Purp
les_
9_se
q_9
RdP
u_9_
seq_
1R
dPu_
9_se
q_2
RdP
u_9_
seq_
3R
dPu_
9_se
q_4
RdP
u_9_
seq_
5R
dPu_
9_se
q_6
RdP
u_9_
seq_
7R
dPu_
9_se
q_8
RdP
u_9_
seq_
9
Red
s_9_
seq_
1R
eds_
9_se
q_2
Red
s_9_
seq_
3R
eds_
9_se
q_4
Red
s_9_
seq_
5R
eds_
9_se
q_6
Red
s_9_
seq_
7R
eds_
9_se
q_8
Red
s_9_
seq_
9
YlG
n_9_
seq_
1Yl
Gn_
9_se
q_2
YlG
n_9_
seq_
3Yl
Gn_
9_se
q_4
YlG
n_9_
seq_
5Yl
Gn_
9_se
q_6
YlG
n_9_
seq_
7Yl
Gn_
9_se
q_8
YlG
n_9_
seq_
9
YlG
nBu_
9_se
q_1
YlG
nBu_
9_se
q_2
YlG
nBu_
9_se
q_3
YlG
nBu_
9_se
q_4
YlG
nBu_
9_se
q_5
YlG
nBu_
9_se
q_6
YlG
nBu_
9_se
q_7
YlG
nBu_
9_se
q_8
YlG
nBu_
9_se
q_9
YlO
rBr_
9_se
q_1
YlO
rBr_
9_se
q_2
YlO
rBr_
9_se
q_3
YlO
rBr_
9_se
q_4
YlO
rBr_
9_se
q_5
YlO
rBr_
9_se
q_6
YlO
rBr_
9_se
q_7
YlO
rBr_
9_se
q_8
YlO
rBr_
9_se
q_9
YlO
rRd_
9_se
q_1
YlO
rRd_
9_se
q_2
YlO
rRd_
9_se
q_3
YlO
rRd_
9_se
q_4
YlO
rRd_
9_se
q_5
YlO
rRd_
9_se
q_6
YlO
rRd_
9_se
q_7
YlO
rRd_
9_se
q_8
YlO
rRd_
9_se
q_9
Figure 9: ColorBrewer sequential color schemes with 9 colors (continued from the schemes with3-8 colors in Figure 8). Each row of graphs represents a different family of color schemes, andeach column represents a different number of colors. The labels below the graphs represent thecolor names recognized by distruct.
13
2.6 Formatting errors
As in structure, the program attempts to verify that the input files are correctly formatted andreports errors that it finds. The program exits if a serious “Error” is discovered. In some cases,problems are not serious, a “Note” or “Warning” is issued, and the program will execute. Theremay be circumstances in which the desired usage of the program produces notes or warnings.
Editing the files to be used in distruct may introduce hidden formatting characters at theends of lines or at the ends of files. Similarly to structure, this is one of the most frequentcauses of errors when input files otherwise seem to be correctly formatted. In UNIX systems,the dos2unix function can remove many of these characters.
3 Usage options
It is best to place distruct and all files needed for its execution in the same directory. Everytime distruct is run, it reads its instructions from the file drawparams. The format of this fileis analogous to the mainparams and extraparams files of structure. Each parameter is printedin all-caps in the file, preceded by the word “#define” (parameters are also printed in all-capsthroughout this document). The value is taken from the field that immediately follows theparameter name (for example “#define FONTHEIGHT 10” sets the font height to 10).
Following each parameter definition is a comment (marked “//”) that describes the parame-ter. The comment indicates what type of value is expected: “(str)”, for string (used for names ofinput and output files); “(int)”, for integer; “(d)”, for double (a real number - integers included);and “(B)”, for Boolean (1 for TRUE, 0 for FALSE).
The program is insensitive to the order of the parameters, so they can be rearranged. Thevalues of all parameters used for a given run are printed at the end of the output file. Severalof the parameters in drawparams can be changed from the command line (Section 3.3).
3.1 Data settings and main options
The main settings concern the input files, the amount of data, and the items to be printed.
INFILE POPQ (string) Name of input file for population Q-matrix (maximum length of 50characters or possibly less, depending on the operating system). This file is required.
INFILE INDIVQ (string) Name of input file for individual Q-matrix (maximum length of50 characters or possibly less, depending on the operating system). This file is required ifPRINT INDIVS=1.
INFILE LABEL ATOP (string) Name of input file for list of labels to be printed atop thefigure (maximum length of 50 characters or possibly less, depending on the operatingsystem). This file is optional, but is expected if PRINT LABEL ATOP=1.
INFILE LABEL BELOW (string) Name of input file for list of labels to be printed belowthe figure (maximum length of 50 characters or possibly less, depending on the operatingsystem). This file is optional, but is expected if PRINT LABEL BELOW=1.
14
INFILE CLUST PERM (string) Name of input file for permutation of clusters and colorspecifications (maximum length of 50 characters or possibly less, depending on the oper-ating system). This file is optional.
OUTFILE (string) Name of output file (maximum length of 50 characters or possibly less,depending on the operating system). An existing file with this name will be overwritten.
K (int) Number of clusters. Maximum of 60.
NUMPOPS (int) Number of populations in population Q-matrix. Maximum of 5000.
NUMINDS (int) Number of individuals in individual Q-matrix. Maximum of 5000.
PRINT INDIVS (Boolean) 1 to plot the individual Q-matrix, 0 to plot the population Q-matrix.
PRINT LABEL ATOP (Boolean) 1 to print labels atop the figure. If INFILE LABEL ATOPcannot be found, the default is to print the population codes. If this is set to 0, the labelswill be printed as comments in the PostScript file.
PRINT LABEL BELOW (Boolean) 1 to print labels below the figure. If INFILE LABEL BELOWcannot be found, the default is to print the population codes. If this is set to 0, the labelswill be printed as comments in the PostScript file.
PRINT SEP (Boolean) 1 to print black vertical lines to separate the results for differentpopulations.
3.2 Figure appearance and additional options
Most of the following options control the figure appearance. The coordinate plane treats thelower-left corner as the origin; 1 unit is 1/72 inches.
FONTHEIGHT (double) The size of the font used for printing labels atop and below thefigure. The font is Helvetica-Bold.
DIST ABOVE (double) The distance above the figure at which to put beginnings of labels(labels are left-justified).
DIST BELOW (double) The distance below the figure at which to put ends of labels (labelsare right-justified).
BOXHEIGHT (double) The vertical height of the figure.
INDIVWIDTH (double) The width allotted to the results for each individual.
ORIENTATION (int) The orientation for the figure on the page. The default choice is 0,“horizontal orientation,” in which the figure is printed from left to right. In discussingitems “atop” and “below” the figure, this document assumes the default choice. If anotherorientation is desired, such as if the figure is too big to be displayed in a “portrait” mode,
15
it is likely to be easiest to use the default orientation and to apply isometries to the figurein another application. There may be some exceptions: for example, if a PostScript figureconverted to PDF and is then cut and pasted from a PDF file to a Microsoft PowerPointpresentation, it may be difficult in some PowerPoint versions to rotate the figure once inPowerPoint. In this case it might be desirable to set ORIENTATION to 3, “reverse verticalorientation,” and rotate the figure in a PDF viewer before copying to PowerPoint. Otherpossibilities include 1 for “vertical orientation” and 2 for ”reverse horizontal orientation.”For orientation 0, a sensible choice for (XORIGIN, YORIGIN) is (72, 288); for 1, (360,72); for 2, (540, 504); for 3, (288, 720).
XORIGIN (double) The x-coordinate of the lower left corner of the figure.
YORIGIN (double) The y-coordinate of the lower left corner of the figure.
XSCALE (double) Dilation factor for the x-direction. This factor is applied to all aspects ofthe figure but does not affect the origin.
YSCALE (double) Dilation factor for the y-direction. This factor is applied to all aspects ofthe figure but does not affect the origin.
ANGLE LABEL ATOP (double) Angle in degrees at which to print the labels atop thefigure (in [0,180]).
ANGLE LABEL BELOW (double) Angle in degrees at which to print the labels below thefigure (in [0,180]).
LINEWIDTH RIM (double) The width of the line that comprises the border of the box.
LINEWIDTH SEP (double) The width of the lines that separate results for different popu-lations (relevant only if PRINT SEP is 1). This parameter should be small compared toINDIVWIDTH.
LINEWIDTH IND (double) The width of the lines used in printing the results. Results arefilled boxes, so the value of this parameter should not have any impact.
GRAYSCALE (Boolean) Set to 1 to make a grayscale figure instead of a color figure. If thisis 1, real numbers in [0,1] can be entered in INFILE CLUST PERM in place of the namesof colors. The default scheme is to use k/(K + 1) for the kth cluster.
ECHO DATA (Boolean) Set to 1 to print to the screen the first few and last few lines of thefiles INFILE POPQ and (if appropriate) INFILE INDIVQ.
REPRINT DATA (Boolean) Set to 1 to print the population Q-matrix (and the individualQ-matrix, if applicable) as a comment in the PostScript file.
PRINT INFILE NAME (Boolean) Set to 1 to print the name of INFILE POPQ above thefigure. This option is meant for use only with ORIENTATION=0.
PRINT COLOR BREWER (Boolean) Set to 1 to print the ColorBrewer settings in theoutput file. This option is required if using colors from ColorBrewer.
16
3.3 Command-line arguments
Command-line flags enable the user to input certain parameters from the command line. Thevalues entered with all flags except ‘-d’ will overwrite the value in the drawparams file. The ‘-d’option enables use of a different parameter file in place of drawparams.
-d (drawparams) Read a different parameter input file instead of drawparams.
-K (K) Change the number of clusters.
-M (NUMPOPS) Change the number of predefined populations.
-N (NUMINDS) Change the number of individuals.
-p (input file) Read a different input file for the population Q-matrix.
-i (input file) Read a different input file for the individual Q-matrix.
-a (input file) Read a different input file for the labels to be printed atop the figure.
-b (input file) Read a different input file for the labels to be printed below the figure.
-c (input file) Read a different input file for the permutation of clusters and the colors.
-o (output file) Print results to a different output file.
The argument for a flag follows the flag and is separated from the flag by a space. The flagscan be used in any order. For example, to change the number of individuals to 317 and thelabels atop the figure to a file named continents, the appropriate command (in Unix) is:
./distruct -N 317 -a continents
If all parameters in drawparams are satisfactory, the program is called with ./distruct. If theprogram lies in a different directory from the current one, it will search for drawparams andinput files in the current directory. That is, self/distruct will search for input files in thepresent working directory rather than in the directory self. In Windows, the program is runmost easily by typing distruct from a Dos prompt, in a directory that contains the programand the input files.
4 Examples
Consider the files in Tables 1-5 with the default settings in the file drawparams. When we run./distruct, we obtain Figure 10. Note the slight differences from the figure that was shownfor the same data in Rosenberg et al. (2002). In Figure 10, the bottom-to-top order of theclusters was (5,4,1,2,3), while in Rosenberg et al. (2002) the order used was (1,2,3,4,5). Thefigure in Rosenberg et al. (2002) was smaller and did not print labels atop the figure.
Suppose that we wish to display only the population Q-matrix. We set PRINT INDIVS=0.We also remove the separators between populations (PRINT SEP=0). We then obtain Figure11. Additional examples using other data sets are shown in Figures 12 and 13.
17
Indo
-Eur
opea
n
Bal
ochi
Dra
vidi
an
Bra
hui
Indo
-Eur
opea
n
Mak
rani
Indo
-Eur
opea
n
Sind
hi
Indo
-Eur
opea
n
Path
an
Ling
uist
ic is
olat
e
Bur
usho
Indo
-Eur
opea
n
Haz
ara
Alta
ic
Uyg
ur
Indo
-Eur
opea
n
Kal
ash
Figure 10: Graph of individual Q-matrix in Table 2 using information from Tables 1, 3, 4, 5.
Indo
-Eur
opea
n
Bal
ochi
Dra
vidi
an
Bra
hui
Indo
-Eur
opea
n
Mak
rani
Indo
-Eur
opea
n
Sind
hi
Indo
-Eur
opea
n
Path
an
Ling
uist
ic is
olat
e
Bur
usho
Indo
-Eur
opea
n
Haz
ara
Alta
ic
Uyg
ur
Indo
-Eur
opea
n
Kal
ash
Figure 11: Graph of population Q-matrix in Table 1, using information from Tables 3, 4, 5.
Ban
tu
Afr
o-C
arib
bean
Ethi
opia
Nor
way
Ash
kena
zi
Arm
enia
Chi
na
Papu
a N
ew G
uine
a
Figure 12: Graph of Table 2 from Wilson et al. (2001). The default permutation (1,2,3,4)was used with the default colors. For these data, K = 4, NUMPOPS=8, and NUMINDS=352.INDIVWIDTH was set to 1.
18
Fayo
umi
4
Bed
ouin
5
Mar
ans
13
Icel
andi
c la
ndra
ce
16
Old
Sca
ndin
avia
n re
fere
nce
popu
latio
n
18
Jaer
hoen
s
19
Pado
vana
21
Tran
sylv
ania
n na
ked
neck
26
Gre
en-le
gged
par
trid
ge
27
Orlo
v
28
C li
ne
32
God
ollo
Nhx
33
Whi
te-e
gg la
yer l
ine
A
37
Bro
iler s
ire li
ne B
42
Bro
wn-
egg
laye
r lin
e C
44
Bro
wn-
egg
laye
r lin
e D
45
Bro
iler d
am li
ne D
50
Hig
h-A
b lin
e
51
Gal
lus
gallu
s ga
llus
102
Sarc
oma-
susc
eptib
le li
ne
3402
Figure 13: Graph of the structure run of highest estimated posterior probability among 100runs shown in Table 2 of Rosenberg et al. (2001). The default permutation was used with thedefault colors. Below the figure are breed codes and above the figure are breed names. K = 19,NUMPOPS=20, and NUMINDS=600. INDIVWIDTH was set to 0.7.
The distruct program has been designed to provide a display format for structure that isuseful for any value of K. Especially for small K (such as K = 2, 3), results might be bestdisplayed in various other forms not accommodated by distruct; some early examples from theliterature include Beaumont et al. (2001), Koskinen et al. (2002), and Pritchard et al.(2000a,b). At the same time, distruct may be useful in situations other than for the display ofpopulation structure; one such example is provided in Figure 7 of Conrad et al. (2006).
5 Frequently asked questions
Scenario 1: In the Windows version of distruct, I double click on the icon to run the program.A window pops up and immediately disappears.
Solution: The program opens a new window, runs, and closes the window upon completion.The output file will be created and will be placed in the appropriate directory. A more infor-mative way to run distruct is from a Dos prompt. Go to the Start Menu, click on Run, andtype cmd. Using cd, change directories to the directory where distruct is located, and then typedistruct. Alternatively, double click on the distruct.bat MS-Dos batch file instead of thedistruct.exe application. This command will open a window with a Dos prompt and will thenrun distruct in the window.
Scenario 2: In the Windows version of distruct, the PostScript output file is not recognized.What software do I need to view the output?
Solution: GhostView, http://pages.cs.wisc.edu/∼ghost, is free software that can viewPostScript files. Download both GSView and Ghostscript. Alternatively, programs such asAcrobat Distiller and Illustrator can read PostScript files.
19
Scenario 3: When opening the PostScript output file with a PostScript viewer, the page isblank. However, no error messages were produced when running distruct, and the size of theoutput file is nonzero.
Solution: Sometimes this problem arises from errors in the settings of the PostScript viewerthat change the size of the page. Try running distruct with smaller values of XORIGIN andYORIGIN, or converting the PostScript to PDF.
References
Beaumont, M., E. M. Barratt, D. Gottelli, A. C. Kitchener, M. J. Daniels, J. K.
Pritchard and M. W. Bruford, 2001 Genetic diversity and introgression in the Scottish wildcat.Mol. Ecol. 10: 319–336.
Brewer, C. A., G. W. Hatchard and M. A. Harrower, 2003 ColorBrewer in print: a catalogof color schemes for maps. Cartogr. Geogr. Inform. Sci. 30: 5–32.
Conrad, D. F., M. Jakobsson, G. Coop, X. Wen, J. D. Wall, N. A. Rosenberg and J. K.
Pritchard, 2006 A worldwide survey of haplotype variation and linkage disequilibrium in thehuman genome. Nature Genet. 38: 1251–1260.
Falush, D., M. Stephens and J. K. Pritchard, 2003 Inference of population structure usingmultilocus genotype data: Linked loci and correlated allele frequencies. Genetics 164: 1567–1587.
Harrower, M. A., and C. A. Brewer, 2003 ColorBrewer.org: an online tool for selecting colorschemes for maps. Cartogr. J. 40: 27–37.
Koskinen, M. T., P. Sundell, J. Piironen and C. R. Primmer, 2002 Genetic assessmentof spatiotemporal evolutionary relationships and stocking effects in grayling (Thymallus thymallus,Salmonidae). Ecol. Lett. 5: 193–205.
Pritchard, J. K., M. Stephens and P. Donnelly, 2000a Inference of population structure usingmultilocus genotype data. Genetics 155: 945–959.
Pritchard, J. K., M. Stephens, N. A. Rosenberg and P. Donnelly, 2000b Associationmapping in structured populations. Am. J. Hum. Genet. 67: 170–181.
Rosenberg, N. A., 2004 Distruct: a program for the graphical display of population structure. Mol.Ecol. Notes 4: 137–138.
Rosenberg, N. A., T. Burke, K. Elo, M. W. Feldman, P. J. Freidlin, M. A. M. Groenen,J. Hillel, A. Maki-Tanila, M. Tixier-Boichard, A. Vignal, K. Wimmers and S. Weigend,2001 Empirical evaluation of genetic clustering methods using multilocus genotypes from 20 chickenbreeds. Genetics 159: 699–713.
Rosenberg, N. A., J. K. Pritchard, J. L. Weber, H. M. Cann, K. K. Kidd, L. A. Zhiv-
otovsky and M. W. Feldman, 2002 Genetic structure of human populations. Science 298:
2381–2385.
Wilson, J. F., M. E. Weale, A. C. Smith, F. Gratrix, B. Fletcher, M. G. Thomas, N. Brad-
man and D. B. Goldstein, 2001 Population genetic structure of variable drug response. NatureGenet. 29: 265–269.
20