<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
<title>gbrowse_karyotype help</title>
</head>
<body>
<h1><a class="mozTocH1" name=
"mozTocId896364"></a>gbrowse_karyotype</h1><br>
<hr style="width: 100%; height: 2px;">
<h1><a class="mozTocH1" name="mozTocId42716"></a>TABLE OF
CONTENTS</h1>
<ul id="mozToc">
<!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6-->
<li><a href="#mozTocId896364">gbrowse_karyotype</a></li>
<li><a href="#mozTocId42716">TABLE OF CONTENTS</a></li>
<li><a href="#mozTocId965412">Using the URL query string
interface</a></li>
<li><a href="#mozTocId53094">URL structure</a></li>
<li><a href="#mozTocId903004">Summary of CGI arguments</a></li>
<li>
<a href="#mozTocId555161">Detailed CGI Arguments</a>
<ul>
<li><a href="#mozTocId929932">Adding third-party
annotations</a></li>
<li>
<a href="#mozTocId402313">The featuretext option</a>
<ul>
<li>
<a href="#mozTocId60940">Configuration sections</a>
<ul>
<li><a href="#mozTocId774360">Colors</a></li>
<li><a href="#mozTocId956973">Glyphs</a></li>
</ul>
</li>
<li><a href="#mozTocId814311">The Reference
Line</a></li>
<li><a href="#mozTocId19187">The Data Lines</a></li>
<li><a href="#mozTocId364025">The featuretext option
can also contain GFF</a></li>
<li><a href="#mozTocId586042">Comments</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#mozTocId221012">Browser customization and
configuration</a>
<ul>
<li><a href="#mozTocId854590">The base configuration
file</a></li>
<li><a href="#mozTocId730868">The data source configuration
file</a></li>
<li><a href="#mozTocId66137">gbrowse_karyotype as an
interactive browser</a></li>
</ul>
</li>
<li>
<a href="#mozTocId329627">How to obtain and use cytoband
data</a>
<ul>
<li>
<a href="#mozTocId384003">Format and graphical rendering
of chromosome bands</a>
<ul>
<li><a href="#mozTocId609743">Stains and background
colors</a></li>
<li><a href="#mozTocId691394">Tips, stalks, and
centromeres</a></li>
</ul>
</li>
<li><a href="#mozTocId235550">Sample GFF data</a></li>
<li><a href="#mozTocId323980">Sample Data Extraction
script</a></li>
<li>
<a href="#mozTocId133625">Options for server-side storage
of chromosome band data</a>
<ul>
<li><a href="#mozTocId231053">In a relational
database</a></li>
<li><a href="#mozTocId362510">As a flat file</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#mozTocId311487">Other usage examples:</a>
<ul>
<li>
<a href="#mozTocId745944">Using non-standard cytoband
features: Human gene density plot</a>
<ul>
<li><a href="#mozTocId749659">Sample GFF data</a></li>
<li><a href="#mozTocId225713">Configuration
file</a></li>
<li><a href="#mozTocId271427">URL</a></li>
</ul>
</li>
<li>
<a href="#mozTocId764480">Loading chromosome band data
remotely</a>
<ul>
<li><a href="#mozTocId360354">CGI arguments</a></li>
<li><a href="#mozTocId499814">GET vs. POST
method</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#mozTocId244872">SEE ALSO:</a></li>
<li><a href="#mozTocId812098">BUGS</a></li>
<li><a href="#mozTocId27339">AUTHOR</a></li>
</ul><br>
<hr style="width: 100%; height: 2px;">
<h1><a class="mozTocH2" name="mozTocId965412"></a>Using the URL
query string interface</h1>Using gbrowse_karyotype to draw a
karyotype in a web page is as simple as creating an <img>
or <iframe> element that uses the URL for the CGI script as
the <span style="font-style: italic;">src</span> attribute.<br>
<p>For example, an <img> element like this:</p>
<pre>
<img src="/cgi-bin/gbrowse_karyotype?src=Homo_sapiens">
</pre>
<pre>
<br>
Will generate this image:
</pre><br>
<img alt="karyotype image" src=
"/cgi-bin/gbrowse_karyotype?src=Homo_sapiens"><br>
<br>
<br>
<p>gbrowse_karyotype can also be used to generate image-mapped
HTML either on its own or as the contents of an <iframe>
element.<br>
For example (the URL parameters are described below):</p>
<pre>
<iframe height=300 width=150 frameborder=0 scrolling=no <br>
src="/cgi-bin/gbrowse_karyoype?src=Homo_sapiens;e=1;c=1+2+3;h=250"><br>
</iframe>
</pre><span style="font-style: italic;">yields the image
below. The chromosome bands now have mousover
labels:</span><br>
<iframe src=
"/cgi-bin/gbrowse_karyotype/Homo_sapiens?e=1;c=1+2+3;h=250"
frameborder="0" height="300" scrolling="no" width=
"150"></iframe><br>
<br>
<p>The script can also be used to superimpose external features
onto the display. If we add the following argument to the
above iframe example:<br></p>
<pre>
a=1+gene+gene1+50000000..5100000+bgcolor=red;a=1+gene+gene1+61000000..6300000+bgcolor=blue
</pre><iframe src=
"/cgi-bin/gbrowse_karyotype/Homo_sapiens?e=1;c=1+2+3;h=250;a=1+gene+gene1+20000..30000+bgcolor=red;a=1+gene+gene2+110000000..110010000+bgcolor=blue"
frameborder="0" height="300" scrolling="no" width=
"150"></iframe><br>
<h1><a class="mozTocH2" name="mozTocId53094"></a><a name=
"URL_str"></a>URL structure</h1><span style=
"color: rgb(51, 51, 255);">http://mckay.cshl.edu/cgi-bin/</span><span style="color: rgb(51, 204, 0);">Homo_sapiens</span><span style="color: rgb(255, 0, 0);">?e=1;b=1;a=1+gene+gene1+2000..10000</span><br>
<br>
<ul>
<li><span style="color: rgb(51, 51, 255);">base URL</span> --
the location of the gbrowse_karyotype script</li>
<li><span style="color: rgb(51, 204, 0);">data source</span> --
the name of the optional data source. This can specified
as part of the URL path (as shown) or as a CGI argument, eg
"src=Homo_sapiens".</li>
<li><span style="color: rgb(255, 0, 0);">CGI arguments</span>
-- these are always '=' separated key value pairs. For
aguments that require multiple parts (see below), the parts are
separated by white-space*.<br></li>
</ul>*Note: white-space and other non-word characters must be
<a href="#escape">URL-escaped</a> if passed as CGI arguments
using the GET method. This is explained in more detail
<a href="#escape">below</a>.<br>
<h1><a class="mozTocH2" name="mozTocId903004"></a><a name=
"CGI"></a>Summary of CGI arguments</h1>
<p>The script recognizes the following CGI arguments.
Argument pairs must be separated by semicolons or by
ampersands. <br>
Most options have shorter aliases that can be used to reduce URL
lengths. Default values for each of the options in
bold<br>
face can also be specified in the configuration file for the data
source, if one is used.<br></p>
<table style="background-color: rgb(255, 255, 204);" border="1">
<tbody>
<tr>
<th>Argument</th>
<th>Alias</th>
<th>Description</th>
</tr>
<tr>
<td><a href="#type">type</a></td>
<td>t</td>
<td>built-in tracks to include in image</td>
</tr>
<tr>
<td><a href="#rows"><span style=
"font-weight: bold;">rows</span></a><br></td>
<td>r<br></td>
<td>number of rows of chromosomes to draw<br></td>
</tr>
<tr>
<td><a href="#chromosome"><span style=
"font-weight: bold;">chromosome</span></a><br></td>
<td>c<br></td>
<td>which chromosome(s) to draw<br></td>
</tr>
<tr>
<td><a href="#">style</a></td>
<td>s</td>
<td>style information for added features</td>
</tr>
<tr>
<td><a href="#add">add</a></td>
<td>a</td>
<td>added feature(s) to superimpose on the image</td>
</tr>
<tr>
<td><a href="#embed">embed</a></td>
<td>e<br></td>
<td>generate full HTML for image and imagemap for use in an
embedded frame</td>
</tr>
<tr>
<td style="font-weight: bold;"><a href=
"#transparent">transparent</a></td>
<td>tr<br></td>
<td>make the image background color transparent</td>
</tr>
<tr>
<td><a href="#cwidth"><span style=
"font-weight: bold;">cwidth</span></a><br></td>
<td>w<br></td>
<td>chromsome width<br></td>
</tr>
<tr>
<td><a href="#cheight"><span style=
"font-weight: bold;">cheight</span></a><br></td>
<td>h<br></td>
<td>maximum chromosome height<br></td>
</tr>
<tr>
<td><a href="#bandlabels"><span style=
"font-weight: bold;">bandlabels</span></a><br></td>
<td>b<br></td>
<td>label chromosome bands<br></td>
</tr>
<tr>
<td style="vertical-align: top;"><a href=
"#band"><span style=
"font-weight: bold;">band</span></a><br></td>
<td style="vertical-align: top;">ba<br></td>
<td style="vertical-align: top;">the type of feature to be
used as chromosome bands or centromeres<br></td>
</tr>
<tr>
<td><a href="#list">list</a></td>
<td> l</td>
<td>get certain types of configuration information</td>
</tr>
<tr>
<td><a href="#source">source</a></td>
<td> src</td>
<td>database name</td>
</tr>
<tr>
<td style="vertical-align: top;"><a style=
"font-weight: bold;" href="#useform">useform</a><br></td>
<td style="vertical-align: top;">f<br></td>
<td style="vertical-align: top;">print a data entry form if
there are no other CGI parameters. <br></td>
</tr>
<tr>
<td style="vertical-align: top;"><a href=
"featuretext">featuretext</a><br></td>
<td style="vertical-align: top;">ft<br></td>
<td style="vertical-align: top;">enter third-party
annotations as Bio::Graphics::FeatureFile-style
text.<br></td>
</tr>
</tbody>
</table>
<p><br></p>
<h1><a class="mozTocH3" name="mozTocId555161"></a>Detailed CGI
Arguments</h1><span style="font-weight: bold;"><a name=
"type"></a>type</span> (Alias: <span style=
"font-weight: bold;">t</span>)
<dl>
<dd>
This argument applies only to configured data sources on the
web server (see <a href="#configuration">configuration</a>
below). The 'type' option lists the feature types to
display with the karyotype. The value of this argument is a
list of track names separated by spaces ("+" characters when
URL-escaped). For example:<br>
<pre>
<img src="/cgi-bin/gbrowse_karyotype?src=rat;type=gene+allele">
</pre><br>
Multiple <i>type=</i> arguments will be combined to form a
single space-delimited list. The alias "t" can be used to
shorten the length of the URL.
<p>If the track name has a space in it, put quotes around the
name:</p>
<pre>
type="microbe tRNA"+NG+WABA+CG+ESTB
</pre>Available track names can be listed by calling the
gbrowse_karyotype script with the option "list=types",
<pre>
/cgi-bin/gbrowse_karyotype/sourcename?list=types or /cgi-bin/gbrowse_karyotype?src=sourcename;list=types
</pre>
</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"chromosome"></a>chromome</span> (Alias: <span style=
"font-weight: bold;">c</span>)</dt>
<dd>
Number and order of chromosomes to draw. The default is
to draw all chromosomes. Multiple chromosomes can be
specified in a space-delimited list ("+" characters when
URL-escaped). For example c=1+2+3+4 will draw
chromosomes 1-4. If drawing a genome for which there is
no data source or configuration file on the server, specify
the length of each chromosome in addition to the
name. <br>
<pre>
c=1:250000000+2:200000000+3:180000000
</pre>
</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"rows"></a>rows</span> (Alias: <span style=
"font-weight: bold;">r</span>)</dt>
<dd>The number or rows to arrange the chromosomes in. The
default behavior is to automatically adjust the number of rows
to keep the image less than or equal to 1024 pixels in
width.</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"cwidth"></a>cwidth</span> (Alias: <span style=
"font-weight: bold;">w</span>) Width of the chromosomes, in
pixels. The default value is 20px.</dt>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"cheight"></a>cheight</span> (Alias: <span style=
"font-weight: bold;">h</span>)</dt>
<dd>Height of the largest chromosome, in pixels. This
option affects the overall image height. Chromosome
lengths are scaled by their size in bp. The default is
500 px.</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"arcradius"></a>arcradius</span> (Alias: <span style=
"font-weight: bold;">ar</span>)</dt>
<dd>The radius of the round part of the telomere in
pixels. The default value is calculated as 1/100 of the
maximum chromosome length.</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"transparent"></a>transparent</span> (Alias: <span style=
"font-weight: bold;">tr</span>)</dt>
<dd>The "transparent" option is used to determine whether the
karyotype image uses either a white or transparent background.
Defining the "transparent" parameter will cause the image to
appear to have whatever background color is used by the parent
web page.</dd>
<dd><br>
<br></dd>
<dt><span style="font-weight: bold;"><a name="style"></a>
style</span> (Alias: a)</dt>
<dd>
The style argument can be used to control the default
rendering of features added via the "add" option.<br>
It is a flattened version of the style configuration sections
described in <a href="/cgi-bin/gbrowse?help=annotation">this
document</a><br>
For example, if you have added a "Blast Hit" annotation, then
you can tell the renderer to use a red bar for this glyph in
this way:
<pre>
style="Blast Hit"+glyph=generic+bgcolor=red
</pre><br>
<span style="font-weight: bold;">Note:</span> The 'style'
parameter controls how all features of a specified type are
rendered. The general style directives can be overriden for
individual features via the 'add' option described below.
</dd>
<dd><span style="font-weight: bold;">Note2:</span> For large
numbers of added features or complex configuration, see the
<a href="#featuretext">featuretext</a> option.</dd>
<dd>
<h2><a class="mozTocH2" name="mozTocId929932"></a>Adding
third-party annotations</h2><br>
</dd>
<dt><span style="font-weight: bold;"><a name=
"add"></a>add</span> (Alias: a)</dt>
<dd>
This option is used to add one or more additional features to
the karyotype, for example, genes, blast hits, etc. Features
are specified as space ("+") delimited lists in the following
format:<br>
<br>
<pre>
<big>add=<span style=
"color: rgb(51, 102, 255);">chr2</span>+<span style=
"color: rgb(51, 204, 0);">Type</span>+<span style=
"color: rgb(255, 0, 0);">Name</span>+<span style=
"color: rgb(153, 51, 153);">start..end,start2..end2</span>+<span style="color: rgb(51, 0, 51);">bgcolor=green+glyph=dot+desc='my+favorite+gene'</span></big>
</pre>
<ul>
<li><span style=
"color: rgb(51, 102, 255); font-weight: bold;">"ref"</span>
is the name of the reference sequence</li>
<li><span style=
"color: rgb(51, 204, 0); font-weight: bold;">"type"</span>
link the feature to a style definition (see "style" below),
if used</li>
<li><span style=
"color: rgb(255, 0, 0); font-weight: bold;">"name"</span>
is the unique feature name or identifier. It will be used a
a mousover label if the 'embed' option is selected and
there is no description. Names that contain white space
must be quoted, for example "BLAST hit".</li>
<li><span style=
"color: rgb(204, 51, 204); font-weight: bold;">"coordinates"</span>
is a range in the format start..end. Multiple ranges can be
used as a comma-separated list (eg:
start..end,start2..end2,start3..end3). Negative strand
features can be specified by inverting the start and end
coordinates.</li>
<li>Other fields can optionally be appended after the
coordinates to control how the feature is drawn.</li>
</ul><br>
Free-form text will be interpreted as a description, for
example:<br>
<pre>
add=I+"curated+gene"+act-2+23897..28799+<span style=
"font-weight: bold;">"C.+elegans+actin+gene"</span>
</pre>"key=value" pairs will be added to the feature's attributes.
Certain reserved keywords will override any default style for that
feature type.
</dd>
<dd>
<br>
<table cell-padding="5" style=
"background-color: rgb(255, 255, 204);" border="1">
<tbody>
<tr>
<th colspan="2">reserved keywords<br></th>
</tr>
<tr>
<th align="left">glyph</th>
<td>the type of glyph used to represent the feature
(eg: 'dot', 'diamond', 'triangle')</td>
</tr>
<tr>
<th align="left">fgcolor</th>
<td>glyph foreground (outline) color</td>
</tr>
<tr>
<th align="left">bgcolor</th>
<td>glyph background (fill) color</td>
</tr>
<tr>
<th align="left">orient</th>
<td>cardinal direction that glyph points in; N, S, E,
W</td>
</tr>
<tr>
<th align="left">url (alias 'link')</th>
<td>URL destination if the feature is clicked (see Note
below)</td>
</tr>
<tr>
<th align="left">desc (alias 'description')</th>
<td>feature description. This will be used as a
mousover label.</td>
</tr>
</tbody>
</table>
<p><span style="font-weight: bold;"><a name="escape"></a>
Note:</span> URLs that contain special characters such as
'&', ';', '~', etc must be URL escaped in order to be
parsed properly. Allowed special characters and their ASCII
escape codes are listed below. URLs containing special
characters that are not on this list are not allowed.</p>
</dd>
<dd>
<table border="1">
<tbody>
<tr>
<th style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
character</th>
<th style="background-color: rgb(204, 204, 204);">
escape code</th>
<th style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
character</th>
<th style="background-color: rgb(204, 204, 204);">
escape code</th>
</tr>
<tr>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
#</td>
<td style="background-color: rgb(204, 204, 204);">
%23</td>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
~</td>
<td style="background-color: rgb(204, 204, 204);">
%7E</td>
</tr>
<tr>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
/</td>
<td style="background-color: rgb(204, 204, 204);">
%2F</td>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
?</td>
<td style="background-color: rgb(204, 204, 204);">
%3F</td>
</tr>
<tr>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
:</td>
<td style="background-color: rgb(204, 204, 204);">
%3A</td>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
@</td>
<td style="background-color: rgb(204, 204, 204);">
%40</td>
</tr>
<tr>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
=</td>
<td style="background-color: rgb(204, 204, 204);">
%3D</td>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
&</td>
<td style="background-color: rgb(204, 204, 204);">
%26</td>
</tr>
<tr>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
;</td>
<td style="background-color: rgb(204, 204, 204);">
%3B</td>
<td style=
"background-color: rgb(255, 255, 204); text-align: center; font-weight: bold;">
<br></td>
<td style="background-color: rgb(204, 204, 204);">
<br></td>
</tr>
<tr>
<td></td>
</tr>
</tbody>
</table>
</dd>
<dt><span style="font-weight: bold;"><a name=
"list"></a>list</span> (Alias <span style=
"font-weight: bold;">l</span>)</dt>
<dd>
If this argument is present, it will cause the script to dump
out various types of information in plain text form.
Currently the two values for this argument are
<i>sources</i>, to dump out the list of data sources, and
<i>types</i>, to dump out the list of configured types. For
<i>list=sources</i>, the script will return a simple text
list of the data source names. For <i>list=types</i>, the
script will return a three-column tab-delimited list giving
the track names and feature types corresponding to the
currently-selected data source. The format is as follows:
<pre>
Mnemonic <tab> Full description of feature <tab> [default]
</pre>The third column contains the word "default" if the track
will be shown by default when no <i>type</i> argument is
provided.<br>
</dd>
<dd><br></dd>
<dt><span style="font-weight: bold;"><a name="source"></a>
source</span> (Alias <span style=
"font-weight: bold;">src</span>)</dt>
<dd>This argument specifies the database for the images. The
list of sources can be found using <i>list=sources</i>.<br>
<br></dd>
<dt><span style="font-weight: bold;"><a name=
"embed"></a>embed</span> (Alias: <span style=
"font-weight: bold;">e</span>)</dt>
<dd>
Generate image and a corresponding HTML imagemap in a form
suitable for embedding into a frame. <br>
The default behavior for gbrowse_karyotype is to output
binary image data. To embed an image in your web page with
maousover effects, etc, use the embed=1 options and call the
script via an <iframe> element. For example, the
clickable image below is generated via an iframe element with
this format:
<pre>
<iframe src="/cgi-bin/gbrowse_karyotype?c=1+2+3;h=350;src=mouse;e=1;a=2+gene+gene1+1000000..1010000+bgcolor=red+url=http://www.google.com" width="150" height="350"></iframe><br>
</pre>
</dd>
<dd>
<p style="font-weight: bold;">Mouseover or click the
triangle</p><iframe style="border: medium none ;" src=
"/cgi-bin/gbrowse_karyotype?c=1+2+3;h=300;src=mouse;e=1;a=2+gene+gene1+10000000..10001000+bgcolor=red+url=http://www.google.com"
height="350" scrolling="no" width="200"></iframe><br>
</dd>
</dl><br>
<dl>
<dt><span style="font-weight: bold;"><a name="useform"></a>
useform</span> (Alias <span style=
"font-weight: bold;">f</span>)</dt>
<dd>If gbrowse_karyotype is being used as an interactive
browser, define this option either as a CGI parameter or in the
configuration file. If this option is set in the
configuration file, the form will be printed when the script is
called with no CGI parameters. If used as a CGI
parameter, the form will be printed if there are no other CGI
parameters.</dd>
</dl>
<h2><a class="mozTocH2" name="mozTocId402313"></a>The featuretext
option</h2><br>
<dl>
<dt><span style="font-weight: bold;"><a name=
"featuretext"></a>featuretext</span> (Alias <span style=
"font-weight: bold;">ft</span>)</dt>
<dt style="margin-left: 40px;">To submit large numbers of
features or more complex annotation data, it may be preferable
to use this option and the POST method rather than the 'add'
and 'style' methods. The format of the text, which would
be placed within a <textarea> element, follows the
<a href=
"http://doc.bioperl.org/releases/bioperl-current/bioperl-live/Bio/Graphics/FeatureFile.html">
Bio::Graphics::FeatureFile</a> format, an example of which is
shown below:</dt>
<dd><br></dd>
</dl>
<pre style="background-color: gainsboro; width: 800px;">
## Default display options for gene ##
<span style="color: rgb(255, 0, 0);">[gene]</span>
<span style=
"color: rgb(255, 0, 0);">glyph = triangle</span>
<span style="color: rgb(255, 0, 0);">bgcolor = red</span>
<span style="color: rgb(255, 0, 0);">fgcolor = red</span>
<span style="color: rgb(255, 0, 0);">height = 7</span>
<span style="color: rgb(255, 0, 0);">bump = 1</span>
<span style="color: rgb(255, 0, 0);">[mutation]</span>
<span style=
"color: rgb(255, 0, 0);">glyph = lightning</span>
<span style=
"color: rgb(255, 0, 0);">bgcolor = yellow</span>
<span style=
"color: rgb(255, 0, 0);">fgcolor = black</span>
<span style="color: rgb(255, 0, 0);">height = 15</span>
# chromosome 1
<span style="color: rgb(51, 102, 255);">reference=1</span>
<span style=
"color: rgb(51, 204, 0);">gene gene1 20000001..20006000 "Carbonic Anhydrase gene" </span>
<span style=
"color: rgb(51, 204, 0);">gene gene2 20066001..20069000 "ADH gene"</span>
<span style=
"color: rgb(51, 204, 0);">gene gene3 50000001..50006000 bgcolor=blue;fgcolor=blue;glyph=dot;description="Unknown gene"</span>
# chromosome 5
<span style="color: rgb(51, 102, 255);">reference=5</span>
<span style=
"color: rgb(51, 204, 0);">gene gene4 20000001..20006000 bgcolor=white</span>
<span style=
"color: rgb(51, 204, 0);">gene gene5 30006001..30009000</span>
<span style=
"color: rgb(51, 204, 0);">gene gene6 80000001..80006000</span>
<span style=
"color: rgb(51, 204, 0);">mutation allele2 30006001..30009000 "cosmic radiation damage"</span>
</pre>
The components of the annotation/config text
(<span style="color: rgb(255, 0, 0);">configuration
sections</span>, <span style="color: rgb(51, 51, 255);">reference
lines</span> and <span style="color: rgb(0, 153, 0);">data
lines</span>) are discussed in detail below:<br>
<br>
<br>
<h3><a class="mozTocH4" name="mozTocId60940"></a><a name=
"annot_config"></a><span style=
"color: rgb(255, 0, 0);">Configuration sections<br></span></h3>
<p>The appearance of third-party annotations can be controlled by
including one or more configuration stanzas in the annotation
file.</p>
<p>Here is an example configuration section. It can appear at the
top of the file, at the bottom, or interspersed among data
sections:</p>
<blockquote>
<pre>
[gene]<br>
glyph = triangle<br>
orient = E<br>
bgcolor = red<br>
fgcolor = red<br>
height = 7<br>
bump = 1<br>
</pre>
</blockquote>
<p>The configuration section is divided into a set of sections,
each one labeled with a [section title]. The [general] section
specifies global options for the entire image. Other sections
apply to particular feature types.<br></p>
<p>Inside each section is a series of <i>name</i>=<i>value</i>
pairs, where the name is the name of an option to set. You can
put whitespace around the = sign to make it more readable, or
even use a colon (:) instead if you prefer. The following option
names are recognized:</p>
<table style="background-color: rgb(255, 255, 204);" border="1">
<tbody>
<tr>
<th>Option</th>
<th>Value</th>
<th>Example</th>
</tr>
<tr>
<th>bgcolor</th>
<td>Background color of each element</td>
<td>blue</td>
</tr>
<tr>
<th>bump</th>
<td>Prevent features from colliding (0=no, 1=yes; default
1)</td>
<td>1</td>
</tr>
<tr>
<th>fgcolor</th>
<td>Foreground color of each element</td>
<td>yellow</td>
</tr>
<tr>
<th>glyph</th>
<td>Style of each graphical element (see list below)</td>
<td>triangle</td>
</tr>
<tr>
<th>width</th>
<td>Width of each graphical element (pixels)</td>
<td>10</td>
</tr>
<tr>
<th>linewidth</th>
<td>Width of lines (pixels)</td>
<td>1</td>
</tr>
<tr>
<th>orient</th>
<td>Direction in which triangle and lightning glyphs point
(N, S, E, W; default E)</td>
<td>E<br></td>
</tr>
<tr>
<th>point</th>
<td>Place an unscaled glyph in the center of the range.
(0=no, 1=yes; default 1)</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>The bump option is the most important option for controlling
the look of the image. If set to false (the number 0), then the
features are allowed to overlap. If set to true (the number 1),
then the features will movehorizontally to avoid colliding. If
not specified, bump is turned on if the number of any given type
of sequence feature is greater than 50.</p>
<p>Remote annotation files do not support callbacks (code
references) as values in the attribute:value pairs.</p>
<h4><a class="mozTocH5" name="mozTocId774360"></a><a name=
"colors"></a>Colors</h4>Colors are English-language color names
or Web-style #RRGGBB colors (see any book on HTML for an
explanation). The following colors are recognized:
<table style="background-color: rgb(255, 255, 204);" border="1">
<tbody>
<tr>
<td>white</td>
<td>coral</td>
<td>darkslateblue</td>
<td>green</td>
<td>lightpink</td>
<td>mediumslateblue</td>
<td>paleturquoise</td>
<td>sienna</td>
</tr>
<tr>
<td>black</td>
<td>cornflowerblue</td>
<td>darkslategray</td>
<td>greenyellow</td>
<td>lightsalmon</td>
<td>mediumspringgreen</td>
<td>palevioletred</td>
<td>silver</td>
</tr>
<tr>
<td>aliceblue</td>
<td>cornsilk</td>
<td>darkturquoise</td>
<td>honeydew</td>
<td>lightseagreen</td>
<td>mediumturquoise</td>
<td>papayawhip</td>
<td>skyblue</td>
</tr>
<tr>
<td>antiquewhite</td>
<td>crimson</td>
<td>darkviolet</td>
<td>hotpink</td>
<td>lightskyblue</td>
<td>mediumvioletred</td>
<td>peachpuff</td>
<td>slateblue</td>
</tr>
<tr>
<td>aqua</td>
<td>cyan</td>
<td>deeppink</td>
<td>indianred</td>
<td>lightslategray</td>
<td>midnightblue</td>
<td>peru</td>
<td>slategray</td>
</tr>
<tr>
<td>aquamarine</td>
<td>darkblue</td>
<td>deepskyblue</td>
<td>indigo</td>
<td>lightsteelblue</td>
<td>mintcream</td>
<td>pink</td>
<td>snow</td>
</tr>
<tr>
<td>azure</td>
<td>darkcyan</td>
<td>dimgray</td>
<td>ivory</td>
<td>lightyellow</td>
<td>mistyrose</td>
<td>plum</td>
<td>springgreen</td>
</tr>
<tr>
<td>beige</td>
<td>darkgoldenrod</td>
<td>dodgerblue</td>
<td>khaki</td>
<td>lime</td>
<td>moccasin</td>
<td>powderblue</td>
<td>steelblue</td>
</tr>
<tr>
<td>bisque</td>
<td>darkgray</td>
<td>firebrick</td>
<td>lavender</td>
<td>limegreen</td>
<td>navajowhite</td>
<td>purple</td>
<td>tan</td>
</tr>
<tr>
<td>blanchedalmond</td>
<td>darkgreen</td>
<td>floralwhite</td>
<td>lavenderblush</td>
<td>linen</td>
<td>navy</td>
<td>red</td>
<td>teal</td>
</tr>
<tr>
<td>blue</td>
<td>darkkhaki</td>
<td>forestgreen</td>
<td>lawngreen</td>
<td>magenta</td>
<td>oldlace</td>
<td>rosybrown</td>
<td>thistle</td>
</tr>
<tr>
<td>blueviolet</td>
<td>darkmagenta</td>
<td>fuchsia</td>
<td>lemonchiffon</td>
<td>maroon</td>
<td>olive</td>
<td>royalblue</td>
<td>tomato</td>
</tr>
<tr>
<td>brown</td>
<td>darkolivegreen</td>
<td>gainsboro</td>
<td>lightblue</td>
<td>mediumaquamarine</td>
<td>olivedrab</td>
<td>saddlebrown</td>
<td>turquoise</td>
</tr>
<tr>
<td>burlywood</td>
<td>darkorange</td>
<td>ghostwhite</td>
<td>lightcoral</td>
<td>mediumblue</td>
<td>orange</td>
<td>salmon</td>
<td>violet</td>
</tr>
<tr>
<td>cadetblue</td>
<td>darkorchid</td>
<td>gold</td>
<td>lightcyan</td>
<td>mediumorchid</td>
<td>orangered</td>
<td>sandybrown</td>
<td>wheat</td>
</tr>
<tr>
<td>chartreuse</td>
<td>darkred</td>
<td>goldenrod</td>
<td>lightgoldenrodyellow</td>
<td>mediumpurple</td>
<td>orchid</td>
<td>seagreen</td>
<td>whitesmoke</td>
</tr>
<tr>
<td>chocolate</td>
<td>darksalmon</td>
<td>gray</td>
<td>lightgreen</td>
<td>mediumseagreen</td>
<td>palegoldenrod</td>
<td>seashell</td>
<td>yellow</td>
</tr>
<tr>
<td>coral</td>
<td>darkseagreen</td>
<td>green</td>
<td>lightgrey</td>
<td>mediumslateblue</td>
<td>palegreen</td>
<td>sienna</td>
<td>yellowgreen</td>
</tr>
</tbody>
</table>
<h4><a class="mozTocH5" name="mozTocId956973"></a><a name=
"glyphs"></a>Glyphs</h4>The <span>option controls how the
features are rendered. There are dozens of glyphs available but
not all are suitable for drawing features on a chromosome
scale. A comprehensive list of available glyphs
can be found on the <a href=
"http://www.bioperl.org/wiki/Special:Search?search=glyph&go=Go">
bioperl website.</a> The following glyphs are recommended
for best results:<br>
<br></span>
<table style="background-color: rgb(255, 255, 204);" border="1">
<tbody>
<tr>
<th>Name</th>
<th>Descripton</th>
</tr>
<tr>
<th>triangle</th>
<td>A triangle; use the 'orient' option (N,S,E or W) to
control where it points.</td>
</tr>
<tr>
<th>dot</th>
<td>A small circle.</td>
</tr>
<tr>
<th>diamond</th>
<td>A diamond shape.</td>
</tr>
<tr>
<th>lightning</th>
<td>For those features who do not take themselves too
seriously.<br></td>
</tr>
</tbody>
</table><br>
<h3><a class="mozTocH4" name="mozTocId814311"></a>The Reference
Line</h3>The annotation file must have at least one reference =
<i>landmark name</i> line. This line tells the browser what
coordinate system you are using. This would typically be a
chromosome name. The word "reference" must be all
lower-case. There may or may not be whitespace before and after
the "=" sign.
<blockquote>
<pre>
reference = 1
</pre>
</blockquote>
<p>You may have several reference lines in the file. Each
reference landmark will apply to all data lines located beneath
it until the next reference line occurs.</p>
<h3><a class="mozTocH4" name="mozTocId19187"></a>The Data
Lines</h3>The format of the data lines is analogous to that of
the '<a href="#add">add</a>' option, except that the reference
seuquence is specified only once per group and <a href=
"#escape">URL-escaping</a> special characters is not
required. Each annotation occupies one or more lines. It
contains three to four columns, delimited by tabs or spaces.
<p>Column 1, the feature type<br>
The first column is the feature type. Any description is valid,
but a short word, like "knockout" is better than a long one, like
"Transposon-mediated knockout". Later on you can provide a long
descriptive name in the formatting key if you desire. If the
feature type contains white space, you must surround it by double
or single quotes.</p>
<p>Column 2, the feature name<br>
This is the name of the feature. The name will be used as a
mousover label unless there is a comment (see below). If
the name contains white space, you must surround it by white
space. Use empty quotes ("") if there is no name to display.</p>
<p>Column 3, the feature position<br>
The third column contains one or more ranges occupied by the
feature. A range has a start and a stop, and is expressed either
as "start..stop" or "start-stop". Use whichever form you prefer.
You can express a feature that occupies a discontinuous set of
ranges, such as an mRNA aligned to the genome, by providing a
list of ranges separated by commas. Example: <span style=
"font-family: monospace;"><br>
</span><br>
1..10,49..80,110..200</p>There should be no spaces before
or after the commas. If there are, enclose the entire range in
quotes. All ranges uses the coordinate system of the most
recently declared reference landmark.
<p>Column 4, Description [optional]<br>
This is the description column. If a description exists, it
will be used as a mouseover label for the feature, taking
precedence over the feature name from column 2.
Descriptions that contain whitespace should be wrapped in
quotes. The description column can also be used to specify
<i>attribute=value</i> information to override track display
options for an individual feature. For example, if the
features in a track are normally displayed as triangles, adding
glyph=diamond to column 4 will draw a diamond in place of a
triangle for just this one feature. Multiple
attribute=value pairs should be delimited with semicolons.
attribute=value pairs and text descriptions can be mixed by
prepending a "decription=" to the text. For
example:<br></p>
<pre>
gene gene1 10001..16000 bgcolor=white;glyph=dot;description="a very special gene" <br>
<br>
<br>
</pre>
<h3><a class="mozTocH3" name="mozTocId364025"></a><a name=
"band_as_gff"></a>The featuretext option can also contain
GFF</h3><a href="#GFF_data">GFF data</a> will also be parsed
correctly from the featuretext data. The GFF can be
included anywhere in the text, as long as it is preceded by a
'##gff-version' directive.<br>
<br>
<h3><a class="mozTocH4" name="mozTocId586042"></a>Comments</h3>
<p>You can place a comment in the annotation file by preceding it
with a pound sign (#). Everything following the pound sign is
ignored:</p>
<blockquote>
<pre>
# this is a comment<br>
<br>
</pre>
</blockquote><br>
<hr>
<h1><a class="mozTocH2" name="mozTocId221012"></a><a name=
"browser_config"></a> Browser customization and
configuration</h1>
<h2><a class="mozTocH3" name="mozTocId854590"></a><a name=
"base"></a>The base configuration file</h2>This is an example of
Gbrowse_karyotype.conf. It contains basic configuration
information for drawing karyotypes when no server-side data
source is used. This is formatting information only.
All of the data needed to draw the chromosomes must be supplied
via CGI parameters. <br>
<br>
<span style="font-weight: bold;">Note:</span> The base
configuration is only used if no data source is specified and no
style information is otherwise supplied. These values will
be overidden by style information supplied as <a href="#CGI">CGI
parameters</a> and/or specific <a href="#data_source">data source
configuration files</a>.<br>
<span style="font-weight: bold;">Note2:</span> for options that
can be used either as <a href="#CGI">CGI parameters</a> or in
configuration files, use the long form, rather than the short
alias, in the confuguration file.<br>
<br>
# default configuration for gbrowse_karyotype<br>
<pre style="background-color: gainsboro; width: 800px;">
[GENERAL]
description = no source
max segment = 999_999_999_999_999
# Web site configuration info
tmpimages = /gbrowse/tmp
stylesheet = /gbrowse/gbrowse.css
buttons = /gbrowse/images/buttons
[karyotype]
cheight = 500 # max chromosome height
cwidth = 25 # chromosome width
cytoband_track = ideogram
bands = chromosome_band cytoband centromere
useform = 1 # print a data entry form if there are no CGI parameters
##################################################################
# For a customized input form, the following options would be
# uncommented and filled with HTML code
##################################################################
# This option would contain HTML code for a customized page header
#header =
#
# This option would contain HTML code for a customized page footer
#footer =
#
# This option would contain HTML code for a customized input form
#input_form =
###################################################################
# Default glyph settings
[TRACK DEFAULTS]
glyph = triangle
height = 8
bgcolor = black
fgcolor = black
description = 0
label = 0
orient = E
point = 1
[ideogram]
glyph = ideogram
fgcolor = black
<a href=
"#band_colors">bgcolor</a> = gneg:white gpos25:silver gpos50:gray gpos:gray
gpos75:darkgray gpos100:black gvar:var stalk:#666666
arcradius = 7
height = 20
bump = 0
</pre><br>
<h2><a class="mozTocH3" name="mozTocId730868"></a><a name=
"data_source"></a>The data source configuration file<br></h2>
<pre style="background-color: gainsboro; width: 800px;">
Example:
# This is a basic configuration to draw chromosome ideograms for the
# human genome. It is a standalone file but could could also be part
# of a normal gbrowse configuration file.
[GENERAL]
description = human
db_adaptor = Bio::DB::GFF
# this configuration just uses a simple flatfile
db_args = -adaptor memory
-gff 'usr/local/apache/htdocs/gbrowse/databases/ideograms/human_cytobands.gff'
# Where temporary images are stored
tmpimages = /gbrowse/tmp
# gbrowse_karyotype-specific configuration
[karyotype]
max_height = 400
cwidth = 15
chromosome = 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 X Y
rows = auto
cytoband_track = CYT:karyotype
band_labels = 1
# this controls how the chromosomes are drawn
[CYT:karyotype]
feature = cytoband chromosome_band centromere
glyph = ideogram
fgcolor = black
bgcolor = gneg:white gpos25:silver gpos50:gray gpos:gray
gpos75:darkgray gpos100:black gvar:var stalk:#666666
arcradius = 7
height = 21
# Other built-in feature configuration, if any, would be added here
</pre>
<p><br></p>
<h2><a class="mozTocH3" name="mozTocId66137"></a><a name=
"interactive"></a>gbrowse_karyotype as an interactive
browser</h2>
<p>The CGI script can be used as an interactive browser using the
<span style="font-style: italic;">useform=1</span>
option.<br></p>
<p>In the configuration file, a customized data entry form can be
specified using the following options:</p>
<ul>
<li>The front page for the interactive browser can be almost
entirely customized with the following keys in the [karyotype]
stanza.
<ul>
<li>
<pre>
header = ...
</pre>Page header biolerplate (Visible title, etc.)
</li>
<li>
<pre>
input_form = ...
</pre>HTML to replace eveything between the header and footer
</li>
<li>
<pre>
footer = ...
</pre>Page footer
</li>
</ul>
<p>If the useform option is specified in the configuration
file but the above fields are not; reasonable, albeit plain,
defaults will be supplied by the CGI script.</p>
</li>
</ul>
<span style="font-style: italic;">
This if the default data entry form</span><br>
<iframe src=
"/cgi-bin/gbrowse_karyotype?useform=1" height="700" width=
"700"></iframe><br>
<br>
<br>
<ul>
<li>
<pre>
chromosome = chr1 chr2 chr3
</pre>This entry is required to specify which chromosomes to
display and in which order. The space delimited list should contain
reference sequences that exist in your database or GFF flat file.
</li>
<li>
<pre>
cytoband = CYT:karyotype
</pre>This specifies which built-in feature corresponds to the
chromosome band data. If there are no band data, blank chromosomes
will be drawn. However, a configuration stanza is still necessary
to specify default chromosome attributes.
</li>
<li>
<pre>
feature = cytoband chromosome_band centromere</pre>
List individual feature types (typically chromosome_band
and centromere). 'cytoband' is also recognized but it is not
a valid SO term. List actual features, not aggregators.
</li>
<li>
<pre>
glyph = ideogram
</pre>
The ideogram glyph would be most commonly used in combination
with cytoband data. An alternative for scored, non cytoband
features (for example local gene densites, recombination rates,
etc) is the heat_map_ideogram glyph, which can be used to draw
chromosomes with color-coded bands representing scores, frequencies
etc. The chromosome-like look can be enhanced by including
the centromere amongst the scored "bands".
</li>
</ul>
<pre>
<br>
</pre>
<h1><a class="mozTocH2" name="mozTocId329627"></a><a name=
"cytoband"></a>How to obtain and use cytoband data</h1>
<p>The starting point for drawing chromosome ideograms is the
cytoband data. These data can be obtained from the UCSC genome
browser, from NCBI and from EnsEMBL and other sources such as the
primary literature. Once obtained, the cytobands are converted to
GFF to be loaded into a Bio::DB::GFF database or saved as a
flatfile.</p>
<p>Below is an example of GFF3-format cytoband data. Note that
the Parent= tag is used to facilitate aggregation of bands into
their parent chromosomes. Preprocessed GFF files for mouse, human
and rat can be found in the html (or htdocs) directory at
gbrowse/databases/ideogram.<br></p>
<h2><a class="mozTocH2" name="mozTocId384003"></a>Format and
graphical rendering of chromosome bands</h2>The CGI/config
options that specifically control how chromosomes are drawn for
configured data sources are shown below:<br>
<br>
<pre style="background-color: gainsboro; width: 800px;">
[karyotype]
# This option tells the CGI script which features to interpret as
# "cytoband" features to be drawn on the chromosome ideograms.
# The three feature types below are assumed by default but
# Other types can be used as well.
bands = chromosome_band centromere cytoband
# This is where the names and order of the chromosomes are specified
chomosome = 1 2 3 4 5 6
# This option specifies that band labels should be added
band_labels = 1
# This option species the configuration section that applies to the chromosome ideograms
cytoband_track = ideogram
# Largest chromosome height
cheight = 500
# This section provides default style options
# for the chromosomes. Note the specially formatted bgcolor (see below)
[ideogram]
glyph = ideogram
fgcolor = black
bgcolor = gneg:white gpos25:silver gpos50:gray gpos:gray gpos75:darkgray
gpos100:black gvar:var stalk:#666666
arcradius = 7
height = 20
bump = 0
</pre>
<h3><a class="mozTocH3" name="mozTocId609743"></a>Stains and
background colors<br></h3>The specially formatted bgcolor option
is parsed to control band colors individually for each cytoband
feature other than the centromere.<br>
each 'stain:color' pair specifies the color to draw each band
feature, each of which has a 'stain' attribute associated with
it.<br>
The stains can be anything, with the exceptions noted below:<br>
<br>
<h3><a class="mozTocH3" name="mozTocId691394"></a>Tips, stalks,
and centromeres</h3>The keyword '<span style=
"font-weight: bold;">tip</span>' refers to the very top of
mouse chromosomes, which are extremely acrocentric. This
stain will cause a small, black, rectangular chromosome tip.<br>
The keyword '<span style="font-weight: bold;">stalk</span>' will
cause a narrower band that represents the stalk region of human
acrocentric chromosomes.<br>
Centromeres are usually specified by type, but the keyword
'<span style="font-weight: bold;">acen</span>' will also cause a
band to be rendred as a centromere.<br>
The keyword '<span style="font-weight: bold;">gvar</span>' will
create a band that has a patterned background color.<br>
<br>
<br>
<h2><a class="mozTocH3" name="mozTocId235550"></a><a name=
"GFF_data"></a>Sample GFF data<br></h2>
<pre style="background-color: gainsboro;">
##gff-version 3
##sequence-region 1 1 245522847
1 ensembl chromosome_band 1 2300000 . . . Parent=1;Name=p36.33;Alias=1p36.33;Stain=gneg
1 ensembl chromosome_band 2300001 5300000 . . . Parent=1;Name=p36.32;Alias=1p36.32;Stain=gpos25
1 ensembl chromosome_band 15600001 20200000 . . . Parent=1;Name=p36.13;Alias=1p36.13;Stain=gneg
1 ensembl centromere 121000001 127900000 . . . Parent=1;Name=1_cent;Alias=11_cent
</pre><span style="font-weight: bold;">Note:</span> If a GFF
flatfile is being used as the database for chromosome banding data,
be sure to have a 'sequence-region' directive for each
chromosome.<br>
<br>
<h2><a class="mozTocH3" name="mozTocId323980"></a>Sample Data
Extraction script</h2>
<p>Ensembl has cytoband data for human, mouse and rat. Below is
an example of a script that retrieves cytoband features from the
public mysql database and converts them to GFF3.</p><br>
<pre style="background-color: gainsboro; width: 800px;">
#!/usr/bin/perl -w
use strict;
use DBI;
my $database = shift;
my $host = 'ensembldb.ensembl.org';
my $query =
'SELECT name,seq_region_start,seq_region_end,band,stain
FROM seq_region,karyotype
WHERE seq_region.seq_region_id = karyotype.seq_region_id;';
my $dbh = DBI->connect( "dbi:mysql:$database:$host", 'anonymous' )
or die DBI->errstr;
my $sth = $dbh->prepare($query) or die $dbh->errstr;
$sth->execute or die $sth->errstr;
my ($cent_start,$prev_chr,$chr_end,$segments,$gff);
my $chr_start = 1;
while (my @band = $sth->fetchrow_array ) {
my ($chr,$start,$end,$band,$stain) = @band;
my $class = 'Chromosome';
my $method;
$chr =~ s/chr//;
if ($stain eq 'acen' && !$cent_start) {
$cent_start = $start;
next;
}
elsif ($cent_start) {
$method = 'centromere';
$band = "$chr\_cent";
$start = $cent_start;
$stain = '';
$cent_start = 0;
}
else {
$method = 'chromosome_band'; # SO term
}
my $alias = $method =~ /centromere/i ? $band : $chr.$band;
$gff .= join("\t", $chr, 'ensembl', lc $method, $start, $end,
qw/. . ./,qq{Parent=$chr;Name=$band;Alias=$alias});
$gff .= $stain ? ";Stain=$stain\n" : "\n";
if ($prev_chr && $prev_chr !~ /$chr/) {
$segments .= "\#\#sequence-region $prev_chr $chr_start $chr_end\n";
$chr_start = 1;
}
$prev_chr = $chr;
$chr_end = $end;
}
$segments .= "\#\#sequence-region $prev_chr $chr_start $chr_end\n";
print "##gff-version 3\n";
print $segments,$gff;
__END__
# Currently ideograms for human, rat and mouse are available
# To see the current database list, try the command:
mysql -uanonymous -hensembldb.ensembl.org -e 'show databases' \
| grep core | grep 'sapiens\|rattus\|mus' | grep -v 'expression'
</pre><br>
<h2><a class="mozTocH2" name="mozTocId133625"></a>Options for
server-side storage of chromosome band data</h2>
<h3><a class="mozTocH3" name="mozTocId231053"></a>In a relational
database</h3>Cytoband data can be stored in a Bio::DB::GFF
database just like any other, properly formatted GFF. See
the <a href="/gbrowse/tutorial/tutorial.html">Gbrowse
tutorial</a> for more information on database loading and
configuration.<br>
Below is an example of hoe the database access would be specified
in the data source config file:<br>
<br>
<pre style="background-color: gainsboro; width: 800px;">
db_adaptor = Bio::DB::GFF
db_args = -dsn dbi:mysql:database=my_database;host=localhost;user=user;password=passwd
</pre><br>
<h3><a class="mozTocH3" name="mozTocId362510"></a>As a flat
file</h3>Cytoband data, such as the output of the above example
script, can be stored as a GFF file on the webserver's filesystem
and parsed into memory at runtime.<br>
A sample configuration is shown below:<br>
<br>
<pre style="background-color: gainsboro; width: 800px;">
db_adaptor = Bio::DB::GFF
db_args = -adaptor memory
-gff '/var/www/html/gbrowse/databases/ideograms/mouse_cytobands.gff'
</pre>Ensure that the GFF data in the flatfile is formatted as the<br>
<a href="#GFF_data">above sample</a>.
<br>
<h1><a class="mozTocH1" name="mozTocId311487"></a>Other usage
examples:</h1>
<h2><a class="mozTocH2" name="mozTocId745944"></a>Using
non-standard cytoband features: Human gene density
plot<br></h2>The image below is drawn using a Bio::DB::GFF
database that specifies gene_density features rather than
chromosome_bands. Each gene_density feature (see sample
GFF) has a score, which corresponds to the number of genes
/megabase. <br>
<br>
<h3><a class="mozTocH3" name="mozTocId749659"></a>Sample GFF
data</h3>
<pre style="background-color: gainsboro;">
##gff-version 3
1 calculated gene_density 1 1000000 35 . . Parent=Dense:1
1 calculated gene_density 1000001 2000000 45 . . Parent=Dense:1
1 calculated gene_density 2000001 3000000 18 . . Parent=Dense:1
1 calculated gene_density 3000001 4000000 21 . . Parent=Dense:1
1 calculated gene_density 4000001 5000000 1 . . Parent=Dense:1
1 calculated gene_density 5000001 6000000 1 . . Parent=Dense:1
1 calculated gene_density 6000001 7000000 21 . . Parent=Dense:1
1 calculated gene_density 7000001 8000000 12 . . Parent=Dense:1
1 calculated gene_density 8000001 9000000 18 . . Parent=Dense:1
1 calculated gene_density 9000001 10000000 20 . . Parent=Dense:1
1 calculated gene_density 10000001 11000000 18 . . Parent=Dense:1
1 calculated gene_density 11000001 12000000 28 . . Parent=Dense:1
1 calculated gene_density 12000001 13000000 25 . . Parent=Dense:1
1 calculated gene_density 13000001 14000000 10 . . Parent=Dense:1
1 calculated gene_density 14000001 15000000 3 . . Parent=Dense:1
1 calculated gene_density 15000001 16000000 27 . . Parent=Dense:1
1 calculated gene_density 16000001 17000000 45 . . Parent=Dense:1
1 calculated gene_density 17000001 18000000 15 . . Parent=Dense:1
1 calculated gene_density 18000001 19000000 6 . . Parent=Dense:1
1 calculated gene_density 19000001 20000000 23 . . Parent=Dense:1
1 calculated gene_density 20000001 21000000 20 . . Parent=Dense:1
1 calculated gene_density 21000001 22000000 14 . . Parent=Dense:1
1 calculated gene_density 22000001 23000000 17 . . Parent=Dense:1
1 calculated gene_density 23000001 24000000 27 . . Parent=Dense:1
</pre>
<h3><a class="mozTocH3" name="mozTocId225713"></a>Configuration
file</h3>The file Human_gene_density.conf contains the following
text. This configuration uses the heat_map_ideogram glyph, which
is like the ideogram glyph but allows bands to have their color
calculated based on the score (see GFF above).
<pre style="width: 600px; background-color: gainsboro;">
description = Human gene density
db_adaptor = Bio::DB::GFF
db_args = -dsn dbi:mysql:database=human;host=localhost;user=nobody
# Web site configuration info
tmpimages = /gbrowse/tmp
stylesheet = /gbrowse/gbrowse.css
buttons = /gbrowse/images/buttons
# how long to save cached images
image cachetime = 2_592_000
[karyotype]
cheight = 500
cwidth = 20
chromosome = 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 X Y
cytoband_track = CYT
[CYT]
feature = gene_density centromere
glyph = heat_map_ideogram # note the different glyph
start_color = white
end_color = red
min_score = 0
max_score = 40
fgcolor = black
</pre>
<h3><a class="mozTocH3" name="mozTocId271427"></a>URL</h3>Since
the configuration and data are on the web server, a very simple
url is required:<br>
"http://mckay.cshl.edu/cgi-bin/gbrowse_karyotype/Human_gene_density"<br>
<br>
<img alt="human gene density plot" title=
"human gene density plot" src="/gbrowse/gene_density.png" style=
"width: 768px; height: 530px;"><br>
<br>
<br>
<h2><a class="mozTocH2" name="mozTocId764480"></a>Loading
chromosome band data remotely<br></h2>It is also possible to draw
a whole genome "from scratch" with no server-side data.
Chromosome and band data and configuration passed as CGI
arguments at runtime. <br>
The following arguments apply (<span style=
"font-weight: bold;">chromosome</span> is the only required
option):<br>
<br>
<h3><a class="mozTocH3" name="mozTocId360354"></a>CGI
arguments<br></h3><br>
bands=feature_type1+feature_type2*<br>
chromosome=1:10000000+2:500000 etc (see
<a href="#chromosome">above</a> for more details)<br>
add=1+chromosome_band+1p23+1..10000000+Stain=gpos50 etc.<br>
<br>
<small><sup>*</sup>This is only required if features other than
the default 'chromosome_band', 'cytoband' and 'centromere' are
used.<br>
<sup>+</sup>Cytoband data are not required. Blank
chromosomes will be drawn in their absence</small>.<br>
<br>
The chromosome band data can be passed the same way as any other
type of feature, via the <a href="#add">add</a> or <a href=
"#featuretext">featuretext</a> options. <br>
<br>
<h3><a class="mozTocH3" name="mozTocId499814"></a>GET vs. POST
method<br></h3>If there large numbers of chromosome bands and/or
other annotations to be drawn, a very long URL submitted via the
GET method may become unwieldy. Consider submitting a form
using the featuretext option and the POST method. If you
already have the chromosome band data in GFF format, it can
simply be <a href="#bands_as_GFF">appended to the other
featuretext data</a>. If each of the chromosomes is
specified as a sequence-region directive in the GFF data, then
the otherwise requisite 'chromosome' option is not required.<br>
<br>
<br>
<pre>
##sequence-region chromosome_name start end
</pre><br>
The HTML code shown below embeds a complete human chromosome 21
with superimposed features within a web page:<br>
<br>
<pre style="background-color: gainsboro;">
<form method=POST name="f1" action="/cgi-bin/gbrowse_karyotype_devel" target="iframe1">
<input type="hidden" name="embed" value=1>
<input type="hidden" name="band_labels" value=1>
<input type=submit name="submit" value="Click to display chromosome 21">
<!-- The textarea is not visible -->
<div style="width:0px;height:0px;visibility:hidden">
<textarea name="featuretext" type=hidden>
## Configuration
[gene]
glyph = triangle
bgcolor = red
fgcolor = red
height = 7
bump = 1
point = 1
[mutation]
glyph = lightning
bgcolor = yellow
fgcolor = black
height = 15
# chromosome 1
reference=21
gene gene1 20000001..20006000 "Some sort of gene"
gene gene2 30066001..30069000 bgcolor=white;desc="ADH gene"
gene gene3 50000001..50006000 bgcolor=blue;fgcolor=blue;glyph=dot;description="Unknown gene"
gene gene6 40000001..40006000 glyph=dot;bgcolor=white;fgcolor=black;height=15
mutation allele2 30006001..30009000 link=http://www.nasa.gov;description="cosmic radiation damage"
# chromosome 21 cytoband data
##gff-version 3
##sequence-region 21 1 46944323
21 ensembl chromosome_band 1 2900000 . . . Parent=21;Name=p13;Alias=21p13;Stain=gvar
21 ensembl chromosome_band 2900001 6300000 . . . Parent=21;Name=p12;Alias=21p12;Stain=stalk
21 ensembl chromosome_band 6300001 10000000 . . . Parent=21;Name=p11.2;Alias=21p11.2;Stain=gvar
21 ensembl chromosome_band 13200001 15300000 . . . Parent=21;Name=q11.2;Alias=21q11.2;Stain=gneg
21 ensembl chromosome_band 15300001 22900000 . . . Parent=21;Name=q21.1;Alias=21q21.1;Stain=gpos100
21 ensembl chromosome_band 22900001 25800000 . . . Parent=21;Name=q21.2;Alias=21q21.2;Stain=gneg
21 ensembl chromosome_band 25800001 30500000 . . . Parent=21;Name=q21.3;Alias=21q21.3;Stain=gpos75
21 ensembl chromosome_band 30500001 34700000 . . . Parent=21;Name=q22.11;Alias=21q22.11;Stain=gneg
21 ensembl chromosome_band 34700001 36700000 . . . Parent=21;Name=q22.12;Alias=21q22.12;Stain=gpos50
21 ensembl chromosome_band 36700001 38600000 . . . Parent=21;Name=q22.13;Alias=21q22.13;Stain=gneg
21 ensembl chromosome_band 38600001 41400000 . . . Parent=21;Name=q22.2;Alias=21q22.2;Stain=gpos50
21 ensembl chromosome_band 41400001 46944323 . . . Parent=21;Name=q22.3;Alias=21q22.3;Stain=gneg
21 ensembl centromere 10000001 13200000 . . . Parent=21;Name=21_cent;Alias=21_cent
</textarea>
</div>
</form>
<!-- The iframe where the image and map will be embedded -->
<iframe name="iframe1" id="iframe1" height=600 frameborder=0></iframe>
</pre><br>
<!-- The actual code -->
<form method="post" name="f1" action=
"/cgi-bin/gbrowse_karyotype_devel" target="iframe1">
<input type="hidden" name="embed" value="1"> <input type=
"hidden" name="band_labels" value="1"> <input type="submit"
name="submit" value="Click to display chromosome 21">
<!-- The textarea is not visible -->
<div style="width:0px;height:0px;visibility:hidden">
<textarea name="featuretext" type="hidden">
## Configuration
[gene]
glyph = triangle
bgcolor = red
fgcolor = red
height = 7
bump = 1
point = 1
[mutation]
glyph = lightning
bgcolor = yellow
fgcolor = black
height = 15
# chromosome 1
reference=21
gene gene1 20000001..20006000 "Some sort of gene"
gene gene2 30066001..30069000 bgcolor=white;desc="ADH gene"
gene gene3 50000001..50006000 bgcolor=blue;fgcolor=blue;glyph=dot;description="Unknown gene"
gene gene6 40000001..40006000 glyph=dot;bgcolor=white;fgcolor=black;height=15
mutation allele2 30006001..30009000 link=http://www.nasa.gov;description="cosmic radiation damage"
# chromosome 21 cytoband data
##gff-version 3
##sequence-region 21 1 46944323
21 ensembl chromosome_band 1 2900000 . . . Parent=21;Name=p13;Alias=21p13;Stain=gvar
21 ensembl chromosome_band 2900001 6300000 . . . Parent=21;Name=p12;Alias=21p12;Stain=stalk
21 ensembl chromosome_band 6300001 10000000 . . . Parent=21;Name=p11.2;Alias=21p11.2;Stain=gvar
21 ensembl chromosome_band 13200001 15300000 . . . Parent=21;Name=q11.2;Alias=21q11.2;Stain=gneg
21 ensembl chromosome_band 15300001 22900000 . . . Parent=21;Name=q21.1;Alias=21q21.1;Stain=gpos100
21 ensembl chromosome_band 22900001 25800000 . . . Parent=21;Name=q21.2;Alias=21q21.2;Stain=gneg
21 ensembl chromosome_band 25800001 30500000 . . . Parent=21;Name=q21.3;Alias=21q21.3;Stain=gpos75
21 ensembl chromosome_band 30500001 34700000 . . . Parent=21;Name=q22.11;Alias=21q22.11;Stain=gneg
21 ensembl chromosome_band 34700001 36700000 . . . Parent=21;Name=q22.12;Alias=21q22.12;Stain=gpos50
21 ensembl chromosome_band 36700001 38600000 . . . Parent=21;Name=q22.13;Alias=21q22.13;Stain=gneg
21 ensembl chromosome_band 38600001 41400000 . . . Parent=21;Name=q22.2;Alias=21q22.2;Stain=gpos50
21 ensembl chromosome_band 41400001 46944323 . . . Parent=21;Name=q22.3;Alias=21q22.3;Stain=gneg
21 ensembl centromere 10000001 13200000 . . . Parent=21;Name=21_cent;Alias=21_cent
</textarea>
</div>
</form>
<!-- The iframe where the image and map will be embedded -->
<iframe name="iframe1" id="iframe1" height="600" frameborder=
"0"></iframe><br>
<h1><a class="mozTocH2" name="mozTocId244872"></a>SEE
ALSO:<br></h1><a href="/gbrowse/tutorial/tutorial.html">The
gbrowse tutorial</a><br>
perldoc Bio::Graphics::Glyph::ideogram<br>
<br>
<h1><a class="mozTocH2" name="mozTocId812098"></a>BUGS</h1>
<p>Please report them to the author.<br></p>
<h1><a class="mozTocH2" name="mozTocId27339"></a>AUTHOR</h1>
<p>Sheldon McKay <a href=
"mailto:mckays%5C@cshl.edu">mckays@cshl.edu</a></p>
<p>Copyright (c) 2006 Cold Spring Harbor Laboratory</p>
<p>This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.</p>
<p>For additional help, see <a href="http://www.gmod.org">The
GMOD Project</a> pages.</p>
</body>
</html>