changeset 0:3b33da018e74 draft default tip

Imported from capsule None
author devteam
date Mon, 19 May 2014 12:33:42 -0400
parents
children
files annotation_profiler.xml annotation_profiler_for_interval.py scripts/README.txt scripts/build_profile_indexes.py test-data/3.bed test-data/4.bed test-data/annotation_profiler_1.out test-data/annotation_profiler_2.out tool-data/annotation_profiler_options.xml.sample tool-data/annotation_profiler_valid_builds.txt.sample tool_dependencies.xml
diffstat 11 files changed, 2050 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/annotation_profiler.xml	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,147 @@
+<tool id="Annotation_Profiler_0" name="Profile Annotations" version="1.0.0">
+  <description>for a set of genomic intervals</description>
+  <requirements>
+    <requirement type="package" version="0.7.1">bx-python</requirement>
+  </requirements>
+  <command interpreter="python">annotation_profiler_for_interval.py -i $input1 -c ${input1.metadata.chromCol} -s ${input1.metadata.startCol} -e ${input1.metadata.endCol} -o $out_file1 $keep_empty -p ${GALAXY_DATA_INDEX_DIR}/annotation_profiler/$dbkey $summary -b 3 -t $table_names</command>
+  <inputs>
+    <param format="interval" name="input1" type="data" label="Choose Intervals">
+      <validator type="dataset_metadata_in_file" filename="annotation_profiler_valid_builds.txt" metadata_name="dbkey" metadata_column="0" message="Profiling is not currently available for this species."/>
+    </param>
+    <param name="keep_empty" type="select" label="Keep Region/Table Pairs with 0 Coverage">
+      <option value="-k">Keep</option>
+      <option value="" selected="true">Discard</option>
+    </param>
+    <param name="summary" type="select" label="Output per Region/Summary">
+      <option value="-S">Summary</option>
+      <option value="" selected="true">Per Region</option>
+    </param>
+    <param name="table_names" type="drill_down" display="checkbox" hierarchy="recurse" multiple="true" label="Choose Tables to Use" help="Selecting no tables will result in using all tables." from_file="annotation_profiler_options.xml"/>
+   </inputs>
+   <outputs>
+     <data format="input" name="out_file1">
+       <change_format>
+         <when input="summary" value="-S" format="tabular" />
+       </change_format>
+     </data>
+   </outputs>
+   <tests>
+     <test>
+       <param name="input1" value="4.bed" dbkey="hg18"/>
+       <param name="keep_empty" value=""/>
+       <param name="summary" value=""/>
+       <param name="table_names" value="acembly,affyGnf1h,knownAlt,knownGene,mrna,multiz17way,multiz28way,refGene,snp126"/>
+       <output name="out_file1" file="annotation_profiler_1.out" />
+     </test>
+     <test>
+       <param name="input1" value="3.bed" dbkey="hg18"/>
+       <param name="keep_empty" value=""/>
+       <param name="summary" value="Summary"/>
+       <param name="table_names" value="acembly,affyGnf1h,knownAlt,knownGene,mrna,multiz17way,multiz28way,refGene,snp126"/>
+       <output name="out_file1" file="annotation_profiler_2.out" />
+     </test>
+   </tests>
+   <help>
+**What it does**
+
+Takes an input set of intervals and for each interval determines the base coverage of the interval by a set of features (tables) available from UCSC. Genomic regions from the input feature data have been merged by overlap / direct adjacency (e.g. a table having ranges of: 1-10, 6-12, 12-20 and 25-28 results in two merged ranges of: 1-20 and 25-28).
+
+By default, this tool will check the coverage of your intervals against all available features; you may, however, choose to select only those tables that you want to include. Selecting a section heading will effectively cause all of its children to be selected.
+
+You may alternatively choose to receive a summary across all of the intervals that you provide.
+
+-----
+
+**Example**
+
+Using the interval below and selecting several tables::
+
+ chr1 4558 14764 uc001aab.1 0 -
+
+results in::
+
+ chr1 4558 14764 uc001aab.1 0 - snp126Exceptions 151 142
+ chr1 4558 14764 uc001aab.1 0 - genomicSuperDups 10206 1
+ chr1 4558 14764 uc001aab.1 0 - chainOryLat1 3718 1
+ chr1 4558 14764 uc001aab.1 0 - multiz28way 10206 1
+ chr1 4558 14764 uc001aab.1 0 - affyHuEx1 3553 32
+ chr1 4558 14764 uc001aab.1 0 - netXenTro2 3050 1
+ chr1 4558 14764 uc001aab.1 0 - intronEst 10206 1
+ chr1 4558 14764 uc001aab.1 0 - xenoMrna 10203 1
+ chr1 4558 14764 uc001aab.1 0 - ctgPos 10206 1
+ chr1 4558 14764 uc001aab.1 0 - clonePos 10206 1
+ chr1 4558 14764 uc001aab.1 0 - chainStrPur2Link 1323 29
+ chr1 4558 14764 uc001aab.1 0 - affyTxnPhase3HeLaNuclear 9011 8
+ chr1 4558 14764 uc001aab.1 0 - snp126orthoPanTro2RheMac2 61 58
+ chr1 4558 14764 uc001aab.1 0 - snp126 205 192
+ chr1 4558 14764 uc001aab.1 0 - chainEquCab1 10206 1
+ chr1 4558 14764 uc001aab.1 0 - netGalGal3 3686 1
+ chr1 4558 14764 uc001aab.1 0 - phastCons28wayPlacMammal 10172 3
+
+Where::
+
+ The first added column is the table name.
+ The second added column is the number of bases covered by the table.
+ The third added column is the number of regions from the table that is covered by the interval.
+
+Alternatively, requesting a summary, using the intervals below and selecting several tables::
+
+ chr1 4558 14764 uc001aab.1 0 -
+ chr1 4558 19346 uc001aac.1 0 -
+
+results in::
+
+ #tableName tableSize tableRegionCount allIntervalCount allIntervalSize allCoverage allTableRegionsOverlaped allIntervalsOverlapingTable nrIntervalCount nrIntervalSize nrCoverage nrTableRegionsOverlaped nrIntervalsOverlapingTable
+ snp126Exceptions 133601 92469 2 24994 388 359 2 1 14788 237 217 1
+ genomicSuperDups 12268847 657 2 24994 24994 2 2 1 14788 14788 1 1
+ chainOryLat1 70337730 2542 2 24994 7436 2 2 1 14788 3718 1 1
+ affyHuEx1 15703901 112274 2 24994 7846 70 2 1 14788 4293 38 1
+ netXenTro2 111440392 1877 2 24994 6100 2 2 1 14788 3050 1 1
+ snp126orthoPanTro2RheMac2 700436 690674 2 24994 124 118 2 1 14788 63 60 1
+ intronEst 135796064 2332 2 24994 24994 2 2 1 14788 14788 1 1
+ xenoMrna 129031327 1586 2 24994 20406 2 2 1 14788 10203 1 1
+ snp126 956976 838091 2 24994 498 461 2 1 14788 293 269 1
+ clonePos 224999719 39 2 24994 24994 2 2 1 14788 14788 1 1
+ chainStrPur2Link 7948016 119841 2 24994 2646 58 2 1 14788 1323 29 1
+ affyTxnPhase3HeLaNuclear 136797870 140244 2 24994 22601 17 2 1 14788 13590 9 1
+ multiz28way 225928588 38 2 24994 24994 2 2 1 14788 14788 1 1
+ ctgPos 224999719 39 2 24994 24994 2 2 1 14788 14788 1 1
+ chainEquCab1 246306414 141 2 24994 24994 2 2 1 14788 14788 1 1
+ netGalGal3 203351973 461 2 24994 7372 2 2 1 14788 3686 1 1
+ phastCons28wayPlacMammal 221017670 22803 2 24994 24926 6 2 1 14788 14754 3 1
+
+Where::
+ 
+ tableName is the name of the table
+ tableChromosomeCoverage is the number of positions existing in the table for only the chromosomes that were referenced by the interval file
+ tableChromosomeCount is the number of regions existing in the table for only the chromosomes that were referenced by the interval file
+ tableRegionCoverage is the number of positions existing in the table between the minimal and maximal bounding regions that were referenced by the interval file
+ tableRegionCount is the number of regions existing in the table between the minimal and maximal bounding regions that were referenced by the interval file
+ 
+ allIntervalCount is the number of provided intervals
+ allIntervalSize is the sum of the lengths of the provided interval file
+ allCoverage is the sum of the coverage for each provided interval
+ allTableRegionsOverlapped is the sum of the number of regions of the table (non-unique) that were overlapped for each interval
+ allIntervalsOverlappingTable is the number of provided intervals which overlap the table
+ 
+ nrIntervalCount is the number of non-redundant intervals
+ nrIntervalSize is the sum of the lengths of non-redundant intervals
+ nrCoverage is the sum of the coverage of non-redundant intervals
+ nrTableRegionsOverlapped is the number of regions of the table (unique) that were overlapped by the non-redundant intervals
+ nrIntervalsOverlappingTable is the number of non-redundant intervals which overlap the table
+ 
+
+.. class:: infomark
+
+**TIP:** non-redundant (nr) refers to the set of intervals that remains after the intervals provided have been merged to resolve overlaps
+
+------
+
+**Citation**
+
+For the underlying data, please see http://genome.ucsc.edu/cite.html for the proper citation.
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/annotation_profiler_for_interval.py	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,358 @@
+#!/usr/bin/env python
+#Dan Blankenberg
+#For a set of intervals, this tool returns the same set of intervals 
+#with 2 additional fields: the name of a Table/Feature and the number of
+#bases covered. The original intervals are repeated for each Table/Feature.
+
+import sys, struct, optparse, os, random
+import bx.intervals.io
+import bx.bitset
+try:
+    import psyco
+    psyco.full()
+except:
+    pass
+
+assert sys.version_info[:2] >= ( 2, 4 )
+
+class CachedRangesInFile:
+    DEFAULT_STRUCT_FORMAT = '<I'
+    def __init__( self, filename, profiler_info ):
+        self.file_size = os.stat( filename ).st_size
+        self.file = open( filename, 'rb' )
+        self.filename = filename
+        self.fmt = profiler_info.get( 'profiler_struct_format', self.DEFAULT_STRUCT_FORMAT )
+        self.fmt_size = int( profiler_info.get( 'profiler_struct_size', struct.calcsize( self.fmt ) ) )
+        self.length = int( self.file_size / self.fmt_size / 2 )
+        self._cached_ranges = [ None for i in xrange( self.length ) ]
+    def __getitem__( self, i ):
+        if self._cached_ranges[i] is not None:
+            return self._cached_ranges[i]
+        if i < 0: i = self.length + i
+        offset = i * self.fmt_size * 2
+        self.file.seek( offset )
+        try:
+            start = struct.unpack( self.fmt, self.file.read( self.fmt_size ) )[0]
+            end = struct.unpack( self.fmt, self.file.read( self.fmt_size ) )[0]
+        except Exception, e:
+            raise IndexError, e
+        self._cached_ranges[i] = ( start, end )
+        return start, end
+    def __len__( self ):
+        return self.length
+
+class RegionCoverage:
+    def __init__( self, filename_base, profiler_info ):
+        try:
+            self._coverage = CachedRangesInFile( "%s.covered" % filename_base, profiler_info )
+        except Exception, e:
+            #print "Error loading coverage file %s: %s" % ( "%s.covered" % filename_base, e )
+            self._coverage = []
+        try: 
+            self._total_coverage = int( open( "%s.total_coverage" % filename_base ).read() )
+        except Exception, e:
+            #print "Error loading total coverage file %s: %s" % ( "%s.total_coverage" % filename_base, e )
+            self._total_coverage = 0
+    def get_start_index( self, start ):
+        #binary search: returns index of range closest to start
+        if start > self._coverage[-1][1]:
+            return len( self._coverage ) - 1
+        i = 0
+        j = len( self._coverage) - 1
+        while i < j:
+            k = ( i + j ) / 2
+            if start <= self._coverage[k][1]:
+                j = k
+            else:
+                i = k + 1
+        return i
+    def get_coverage( self, start, end ):
+        return self.get_coverage_regions_overlap( start, end )[0]
+    def get_coverage_regions_overlap( self, start, end ):
+        return self.get_coverage_regions_index_overlap( start, end )[0:2]
+    def get_coverage_regions_index_overlap( self, start, end ):
+        if len( self._coverage ) < 1 or start > self._coverage[-1][1] or end < self._coverage[0][0]:
+            return 0, 0, 0
+        if self._total_coverage and start <= self._coverage[0][0] and end >= self._coverage[-1][1]:
+            return self._total_coverage, len( self._coverage ), 0
+        coverage = 0
+        region_count = 0
+        start_index = self.get_start_index( start )
+        for i in xrange( start_index, len( self._coverage ) ):
+            c_start, c_end = self._coverage[i]
+            if c_start > end:
+                break
+            if c_start <= end and c_end >= start:
+                coverage += min( end, c_end ) - max( start, c_start )
+                region_count += 1
+        return coverage, region_count, start_index
+
+class CachedCoverageReader:
+    def __init__( self, base_file_path, buffer = 10, table_names = None, profiler_info = None ):
+        self._base_file_path = base_file_path
+        self._buffer = buffer #number of chromosomes to keep in memory at a time
+        self._coverage = {}
+        if table_names is None: table_names = [ table_dir for table_dir in os.listdir( self._base_file_path ) if os.path.isdir( os.path.join( self._base_file_path, table_dir ) ) ]
+        for tablename in table_names: self._coverage[tablename] = {}
+        if profiler_info is None: profiler_info = {}
+        self._profiler_info = profiler_info
+    def iter_table_coverage_by_region( self, chrom, start, end ):
+        for tablename, coverage, regions in self.iter_table_coverage_regions_by_region( chrom, start, end ):
+            yield tablename, coverage
+    def iter_table_coverage_regions_by_region( self, chrom, start, end ):
+        for tablename, coverage, regions, index in self.iter_table_coverage_regions_index_by_region( chrom, start, end ):
+            yield tablename, coverage, regions
+    def iter_table_coverage_regions_index_by_region( self, chrom, start, end ):
+        for tablename, chromosomes in self._coverage.iteritems():
+            if chrom not in chromosomes:
+                if len( chromosomes ) >= self._buffer:
+                    #randomly remove one chromosome from this table
+                    del chromosomes[ chromosomes.keys().pop( random.randint( 0, self._buffer - 1 ) ) ]
+                chromosomes[chrom] = RegionCoverage( os.path.join ( self._base_file_path, tablename, chrom ), self._profiler_info )
+            coverage, regions, index = chromosomes[chrom].get_coverage_regions_index_overlap( start, end )
+            yield tablename, coverage, regions, index
+
+class TableCoverageSummary:
+    def __init__( self, coverage_reader, chrom_lengths ):
+        self.coverage_reader = coverage_reader
+        self.chrom_lengths = chrom_lengths
+        self.chromosome_coverage = {} #dict of bitset by chromosome holding user's collapsed input intervals
+        self.total_interval_size = 0 #total size of user's input intervals
+        self.total_interval_count = 0 #total number of user's input intervals
+        self.table_coverage = {} #dict of total coverage by user's input intervals by table
+        self.table_chromosome_size = {} #dict of dict of table:chrom containing total coverage of table for a chrom
+        self.table_chromosome_count = {} #dict of dict of table:chrom containing total number of coverage ranges of table for a chrom
+        self.table_regions_overlaped_count = {} #total number of table regions overlaping user's input intervals (non unique)
+        self.interval_table_overlap_count = {} #total number of user input intervals which overlap table
+        self.region_size_errors = {} #dictionary of lists of invalid ranges by chromosome
+    def add_region( self, chrom, start, end ):
+        chrom_length = self.chrom_lengths.get( chrom )
+        region_start = min( start, chrom_length )
+        region_end = min( end, chrom_length )
+        region_length = region_end - region_start
+        
+        if region_length < 1 or region_start != start or region_end != end:
+            if chrom not in self.region_size_errors:
+                self.region_size_errors[chrom] = []
+            self.region_size_errors[chrom].append( ( start, end ) )
+            if region_length < 1: return
+        
+        self.total_interval_size += region_length
+        self.total_interval_count += 1
+        if chrom not in self.chromosome_coverage:
+            self.chromosome_coverage[chrom] = bx.bitset.BitSet( chrom_length )
+        
+        self.chromosome_coverage[chrom].set_range( region_start, region_length )
+        for table_name, coverage, regions in self.coverage_reader.iter_table_coverage_regions_by_region( chrom, region_start, region_end ):
+            if table_name not in self.table_coverage:
+                self.table_coverage[table_name] = 0
+                self.table_chromosome_size[table_name] = {}
+                self.table_regions_overlaped_count[table_name] = 0
+                self.interval_table_overlap_count[table_name] = 0
+                self.table_chromosome_count[table_name] = {}
+            if chrom not in self.table_chromosome_size[table_name]:
+                self.table_chromosome_size[table_name][chrom] = self.coverage_reader._coverage[table_name][chrom]._total_coverage
+                self.table_chromosome_count[table_name][chrom] = len( self.coverage_reader._coverage[table_name][chrom]._coverage )
+            self.table_coverage[table_name] += coverage
+            if coverage:
+                self.interval_table_overlap_count[table_name] += 1
+            self.table_regions_overlaped_count[table_name] += regions
+    def iter_table_coverage( self ):
+        def get_nr_coverage():
+            #returns non-redundant coverage, where user's input intervals have been collapse to resolve overlaps
+            table_coverage = {} #dictionary of tables containing number of table bases overlaped by nr intervals
+            interval_table_overlap_count = {} #dictionary of tables containing number of nr intervals overlaping table
+            table_regions_overlap_count = {} #dictionary of tables containing number of regions overlaped (unique)
+            interval_count = 0 #total number of nr intervals
+            interval_size = 0 #holds total size of nr intervals
+            region_start_end = {} #holds absolute start,end for each user input chromosome
+            for chrom, chromosome_bitset in self.chromosome_coverage.iteritems():
+                #loop through user's collapsed input intervals
+                end = 0
+                last_end_index = {}
+                interval_size += chromosome_bitset.count_range()
+                while True:
+                    if end >= chromosome_bitset.size: break
+                    start = chromosome_bitset.next_set( end )
+                    if start >= chromosome_bitset.size: break
+                    end = chromosome_bitset.next_clear( start )
+                    interval_count += 1
+                    if chrom not in region_start_end:
+                        region_start_end[chrom] = [start, end]
+                    else:
+                        region_start_end[chrom][1] = end
+                    for table_name, coverage, region_count, start_index in self.coverage_reader.iter_table_coverage_regions_index_by_region( chrom, start, end ):
+                        if table_name not in table_coverage:
+                            table_coverage[table_name] = 0
+                            interval_table_overlap_count[table_name] = 0
+                            table_regions_overlap_count[table_name] = 0
+                        table_coverage[table_name] += coverage
+                        if coverage:
+                            interval_table_overlap_count[table_name] += 1
+                            table_regions_overlap_count[table_name] += region_count
+                            if table_name in last_end_index and last_end_index[table_name] == start_index:
+                                table_regions_overlap_count[table_name] -= 1
+                            last_end_index[table_name] = start_index + region_count - 1
+            table_region_coverage = {} #total coverage for tables by bounding nr interval region
+            table_region_count = {} #total number for tables by bounding nr interval region
+            for chrom, start_end in region_start_end.items():
+                for table_name, coverage, region_count in self.coverage_reader.iter_table_coverage_regions_by_region( chrom, start_end[0], start_end[1] ):
+                    if table_name not in table_region_coverage:
+                        table_region_coverage[table_name] = 0
+                        table_region_count[table_name] = 0
+                    table_region_coverage[table_name] += coverage
+                    table_region_count[table_name] += region_count
+            return table_region_coverage, table_region_count, interval_count, interval_size, table_coverage, table_regions_overlap_count, interval_table_overlap_count
+        table_region_coverage, table_region_count, nr_interval_count, nr_interval_size, nr_table_coverage, nr_table_regions_overlap_count, nr_interval_table_overlap_count = get_nr_coverage()
+        for table_name in self.table_coverage:
+            #TODO: determine a type of statistic, then calculate and report here
+            yield table_name, sum( self.table_chromosome_size.get( table_name, {} ).values() ), sum( self.table_chromosome_count.get( table_name, {} ).values() ), table_region_coverage.get( table_name, 0 ), table_region_count.get( table_name, 0 ), self.total_interval_count, self.total_interval_size,  self.table_coverage[table_name], self.table_regions_overlaped_count.get( table_name, 0), self.interval_table_overlap_count.get( table_name, 0 ), nr_interval_count, nr_interval_size, nr_table_coverage[table_name], nr_table_regions_overlap_count.get( table_name, 0 ), nr_interval_table_overlap_count.get( table_name, 0 )
+
+def profile_per_interval( interval_filename, chrom_col, start_col, end_col, out_filename, keep_empty, coverage_reader ):
+    out = open( out_filename, 'wb' )
+    for region in bx.intervals.io.NiceReaderWrapper( open( interval_filename, 'rb' ), chrom_col = chrom_col, start_col = start_col, end_col = end_col, fix_strand = True, return_header = False, return_comments = False ):
+        for table_name, coverage, region_count in coverage_reader.iter_table_coverage_regions_by_region( region.chrom, region.start, region.end ):
+            if keep_empty or coverage:
+                #only output regions that have atleast 1 base covered unless empty are requested
+                out.write( "%s\t%s\t%s\t%s\n" % ( "\t".join( region.fields ), table_name, coverage, region_count ) )
+    out.close()
+
+def profile_summary( interval_filename, chrom_col, start_col, end_col, out_filename, keep_empty, coverage_reader, chrom_lengths ):
+    out = open( out_filename, 'wb' )
+    table_coverage_summary = TableCoverageSummary( coverage_reader, chrom_lengths )
+    for region in bx.intervals.io.NiceReaderWrapper( open( interval_filename, 'rb' ), chrom_col = chrom_col, start_col = start_col, end_col = end_col, fix_strand = True, return_header = False, return_comments = False ):
+        table_coverage_summary.add_region( region.chrom, region.start, region.end )
+    
+    out.write( "#tableName\ttableChromosomeCoverage\ttableChromosomeCount\ttableRegionCoverage\ttableRegionCount\tallIntervalCount\tallIntervalSize\tallCoverage\tallTableRegionsOverlaped\tallIntervalsOverlapingTable\tnrIntervalCount\tnrIntervalSize\tnrCoverage\tnrTableRegionsOverlaped\tnrIntervalsOverlapingTable\n" )
+    for table_name, table_chromosome_size, table_chromosome_count, table_region_coverage, table_region_count, total_interval_count, total_interval_size, total_coverage, table_regions_overlaped_count, interval_region_overlap_count, nr_interval_count, nr_interval_size, nr_coverage, nr_table_regions_overlaped_count, nr_interval_table_overlap_count in table_coverage_summary.iter_table_coverage():
+        if keep_empty or total_coverage:
+            #only output tables that have atleast 1 base covered unless empty are requested
+            out.write( "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % ( table_name, table_chromosome_size, table_chromosome_count, table_region_coverage, table_region_count, total_interval_count, total_interval_size, total_coverage, table_regions_overlaped_count, interval_region_overlap_count, nr_interval_count, nr_interval_size, nr_coverage, nr_table_regions_overlaped_count, nr_interval_table_overlap_count ) )
+    out.close()
+    
+    #report chrom size errors as needed:
+    if table_coverage_summary.region_size_errors:
+        print "Regions provided extended beyond known chromosome lengths, and have been truncated as necessary, for the following intervals:"
+        for chrom, regions in table_coverage_summary.region_size_errors.items():
+            if len( regions ) > 3:
+                extra_region_info = ", ... "
+            else:
+                extra_region_info = ""
+            print "%s has max length of %s, exceeded by %s%s." % ( chrom, chrom_lengths.get( chrom ), ", ".join( map( str, regions[:3] ) ), extra_region_info )
+
+class ChromosomeLengths:
+    def __init__( self, profiler_info ):
+        self.chroms = {}
+        self.default_bitset_size = int( profiler_info.get( 'bitset_size', bx.bitset.MAX ) )
+        chroms = profiler_info.get( 'chromosomes', None )
+        if chroms:
+            for chrom in chroms.split( ',' ):
+                for fields in chrom.rsplit( '=', 1 ):
+                    if len( fields ) == 2:
+                        self.chroms[ fields[0] ] = int( fields[1] )
+                    else:
+                        self.chroms[ fields[0] ] = self.default_bitset_size
+    def get( self, name ):
+        return self.chroms.get( name, self.default_bitset_size )
+
+def parse_profiler_info( filename ):
+    profiler_info = {}
+    try:
+        for line in open( filename ):
+            fields = line.rstrip( '\n\r' ).split( '\t', 1 )
+            if len( fields ) == 2:
+                if fields[0] in profiler_info:
+                    if not isinstance( profiler_info[ fields[0] ], list ):
+                        profiler_info[ fields[0] ] = [ profiler_info[ fields[0] ] ]
+                    profiler_info[ fields[0] ].append( fields[1] )
+                else:
+                    profiler_info[ fields[0] ] = fields[1]
+    except:
+        pass #likely missing file
+    return profiler_info
+
+def __main__():
+    parser = optparse.OptionParser()
+    parser.add_option(
+        '-k','--keep_empty',
+        action="store_true",
+        dest='keep_empty',
+        default=False,
+        help='Keep tables with 0 coverage'
+    )
+    parser.add_option(
+        '-b','--buffer',
+        dest='buffer',
+        type='int',default=10,
+        help='Number of Chromosomes to keep buffered'
+    )
+    parser.add_option(
+        '-c','--chrom_col',
+        dest='chrom_col',
+        type='int',default=1,
+        help='Chromosome column'
+    )
+    parser.add_option(
+        '-s','--start_col',
+        dest='start_col',
+        type='int',default=2,
+        help='Start Column'
+    )
+    parser.add_option(
+        '-e','--end_col',
+        dest='end_col',
+        type='int',default=3,
+        help='End Column'
+    )
+    parser.add_option(
+        '-p','--path',
+        dest='path',
+        type='str',default='/galaxy/data/annotation_profiler/hg18',
+        help='Path to profiled data for this organism'
+    )
+    parser.add_option(
+        '-t','--table_names',
+        dest='table_names',
+        type='str',default='None',
+        help='Table names requested'
+    )
+    parser.add_option(
+        '-i','--input',
+        dest='interval_filename',
+        type='str',
+        help='Input Interval File'
+    )
+    parser.add_option(
+        '-o','--output',
+        dest='out_filename',
+        type='str',
+        help='Input Interval File'
+    )
+    parser.add_option(
+        '-S','--summary',
+        action="store_true",
+        dest='summary',
+        default=False,
+        help='Display Summary Results'
+    )
+    
+    options, args = parser.parse_args()
+    
+    assert os.path.isdir( options.path ), IOError( "Configuration error: Table directory is missing (%s)" % options.path )
+    
+    #get profiler_info
+    profiler_info = parse_profiler_info( os.path.join( options.path, 'profiler_info.txt' ) )
+    
+    table_names = options.table_names.split( "," )
+    if table_names == ['None']: table_names = None
+    coverage_reader = CachedCoverageReader( options.path, buffer = options.buffer, table_names = table_names, profiler_info = profiler_info )
+    
+    if options.summary:
+        profile_summary( options.interval_filename, options.chrom_col - 1, options.start_col - 1, options.end_col -1, options.out_filename, options.keep_empty, coverage_reader, ChromosomeLengths( profiler_info ) )
+    else:
+        profile_per_interval( options.interval_filename, options.chrom_col - 1, options.start_col - 1, options.end_col -1, options.out_filename, options.keep_empty, coverage_reader )
+    
+    #print out data version info
+    print 'Data version (%s:%s:%s)' % ( profiler_info.get( 'dbkey', 'unknown' ), profiler_info.get( 'profiler_hash', 'unknown' ), profiler_info.get( 'dump_time', 'unknown' ) )
+
+if __name__ == "__main__": __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/README.txt	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,54 @@
+This file explains how to create annotation indexes for the annotation profiler tool. Annotation profiler indexes are an exceedingly simple binary format, 
+containing no header information and consisting of an ordered linear list of (start,stop encoded individually as '<I') regions which are covered by a UCSC table partitioned 
+by chromosome name. Genomic regions are merged by overlap / direct adjacency (e.g. a table having ranges of: 1-10, 6-12, 12-20 and 25-28 results in two merged ranges of: 1-20 and 25-28).
+
+Files are arranged like:
+/profiled_annotations/DBKEY/TABLE_NAME/
+                                       CHROMOSOME_NAME.covered
+                                       CHROMOSOME_NAME.total_coverage
+                                       CHROMOSOME_NAME.total_regions
+/profiled_annotations/DBKEY/
+                            DBKEY_tables.xml
+                            chromosomes.txt
+                            profiled_info.txt
+
+
+where CHROMOSOME_NAME.covered is the binary file, CHROMOSOME_NAME.total_coverage is a text file containing the integer count of bases covered by the 
+table and CHROMOSOME_NAME.total_regions contains the integer count of the number of regions found in CHROMOSOME_NAME.covered
+
+DBKEY_tables.xml should be appended to the annotation profile available table configuration file (tool-data/annotation_profiler_options.xml).
+The DBKEY should also be added as a new line to the annotation profiler valid builds file (annotation_profiler_valid_builds.txt).
+The output (/profiled_annotations/DBKEY) should be made available as GALAXY_ROOT/tool-data/annotation_profiler/DBKEY.
+
+profiled_info.txt contains info on the generated annotations, separated by lines with tab-delimited label,value pairs:
+        profiler_version - the version of the build_profile_indexes.py script that was used to generate the profiled data
+        dbkey - the dbkey used for the run
+        chromosomes - contains the names and lengths of chromosomes that were used to parse single-chromosome tables (tables divided into individual files by chromosome)
+        dump_time - the declared dump time of the database, taken from trackDb.txt.gz
+        profiled_time - seconds since epoch in utc for when the database dump was profiled
+        database_hash - a md5 hex digest of all the profiled table info 
+
+
+Typical usage includes:
+
+python build_profile_indexes.py -d hg19 -i /ucsc_data/hg19/database/ > hg19.txt
+
+where the genome build is hg19 and /ucsc_data/hg19/database/ contains the downloaded database dump from UCSC (e.g. obtained by rsync: rsync -avzP rsync://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/ /ucsc_data/hg19/database/).
+
+
+
+By default, chromosome names come from a file named 'chromInfo.txt.gz' found in the input directory, with FTP used as a backup.
+When FTP is used to obtain the names of chromosomes from UCSC for a particular genome build, alternate ftp sites and paths can be specified by using the --ftp_site and --ftp_path attributes. 
+Chromosome names can instead be provided on the commandline via the --chromosomes option, which accepts a comma separated list of:ChromName1[=length],ChromName2[=length],...
+
+
+
+    usage = "usage: %prog options"
+    parser = OptionParser( usage=usage )
+    parser.add_option( '-d', '--dbkey', dest='dbkey', default='hg18', help='dbkey to process' )
+    parser.add_option( '-i', '--input_dir', dest='input_dir', default=os.path.join( 'golden_path','%s', 'database' ), help='Input Directory' )
+    parser.add_option( '-o', '--output_dir', dest='output_dir', default=os.path.join( 'profiled_annotations','%s' ), help='Output Directory' )
+    parser.add_option( '-c', '--chromosomes', dest='chromosomes', default='', help='Comma separated list of: ChromName1[=length],ChromName2[=length],...' )
+    parser.add_option( '-b', '--bitset_size', dest='bitset_size', default=DEFAULT_BITSET_SIZE, type='int', help='Default BitSet size; overridden by sizes specified in chromInfo.txt.gz or by --chromosomes' )
+    parser.add_option( '-f', '--ftp_site', dest='ftp_site', default='hgdownload.cse.ucsc.edu', help='FTP site; used for chromosome info when chromInfo.txt.gz method fails' )
+    parser.add_option( '-p', '--ftp_path', dest='ftp_path', default='/goldenPath/%s/chromosomes/', help='FTP Path; used for chromosome info when chromInfo.txt.gz method fails' )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build_profile_indexes.py	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,338 @@
+#!/usr/bin/env python
+#Dan Blankenberg
+
+VERSION = '1.0.0' # version of this script
+
+from optparse import OptionParser
+import os, gzip, struct, time
+from ftplib import FTP #do we want a diff method than using FTP to determine Chrom Names, eg use local copy
+
+#import md5 from hashlib; if python2.4 or less, use old md5
+try:
+    from hashlib import md5
+except ImportError:
+    from md5 import new as md5
+
+#import BitSet from bx-python, try using eggs and package resources, fall back to any local installation
+try:
+    from galaxy import eggs
+    import pkg_resources
+    pkg_resources.require( "bx-python" )
+except: pass #Maybe there is a local installation available
+from bx.bitset import BitSet
+
+#Define constants
+STRUCT_FMT = '<I'
+STRUCT_SIZE = struct.calcsize( STRUCT_FMT )
+DEFAULT_BITSET_SIZE = 300000000
+CHUNK_SIZE = 1024
+
+#Headers used to parse .sql files to determine column indexes for chromosome name, start and end
+alias_spec = { 
+    'chromCol'  : [ 'chrom' , 'CHROMOSOME' , 'CHROM', 'Chromosome Name', 'tName' ],  
+    'startCol'  : [ 'start' , 'START', 'chromStart', 'txStart', 'Start Position (bp)', 'tStart', 'genoStart' ],
+    'endCol'    : [ 'end'   , 'END'  , 'STOP', 'chromEnd', 'txEnd', 'End Position (bp)', 'tEnd', 'genoEnd' ], 
+}
+
+#Headers used to parse trackDb.txt.gz
+#TODO: these should be parsed directly from trackDb.sql
+trackDb_headers = ["tableName", "shortLabel", "type", "longLabel", "visibility", "priority", "colorR", "colorG", "colorB", "altColorR", "altColorG", "altColorB", "useScore", "private", "restrictCount", "restrictList", "url", "html", "grp", "canPack", "settings"]
+
+def get_columns( filename ):
+    input_sql = open( filename ).read()
+    input_sql = input_sql.split( 'CREATE TABLE ' )[1].split( ';' )[0]
+    input_sql = input_sql.split( ' (', 1 )
+    table_name = input_sql[0].strip().strip( '`' )
+    input_sql = [ split.strip().split( ' ' )[0].strip().strip( '`' ) for split in input_sql[1].rsplit( ')', 1 )[0].strip().split( '\n' ) ]
+    print input_sql
+    chrom_col = None
+    start_col = None
+    end_col = None
+    for col_name in alias_spec['chromCol']:
+        for i, header_name in enumerate( input_sql ):
+            if col_name == header_name:
+                chrom_col = i
+                break
+        if chrom_col is not None:
+            break
+    
+    for col_name in alias_spec['startCol']:
+        for i, header_name in enumerate( input_sql ):
+            if col_name == header_name:
+                start_col = i
+                break
+        if start_col is not None:
+            break
+
+    for col_name in alias_spec['endCol']:
+        for i, header_name in enumerate( input_sql ):
+            if col_name == header_name:
+                end_col = i
+                break
+        if end_col is not None:
+            break
+
+    return table_name, chrom_col, start_col, end_col
+
+
+def create_grouping_xml( input_dir, output_dir, dbkey ):
+    output_filename = os.path.join( output_dir, '%s_tables.xml' % dbkey )
+    def load_groups( file_name = 'grp.txt.gz' ):
+        groups = {}
+        for line in gzip.open( os.path.join( input_dir, file_name ) ):
+            fields = line.split( '\t' )
+            groups[fields[0]] = { 'desc': fields[1], 'priority':  fields[2] }
+        return groups
+    f = gzip.open( os.path.join( input_dir, 'trackDb.txt.gz' ) )
+    out = open( output_filename, 'wb' )
+    tables = {}
+    cur_buf = ''
+    while True:
+        line = f.readline()
+        if not line: break
+        #remove new lines
+        line = line.rstrip( '\n\r' )
+        line = line.replace( '\\\t', ' ' ) #replace escaped tabs with space
+        cur_buf += "%s\n" % line.rstrip( '\\' )
+        if line.endswith( '\\' ):
+            continue #line is wrapped, next line
+        #all fields should be loaded now...
+        fields = cur_buf.split( '\t' )
+        cur_buf = '' #reset buffer
+        assert len( fields ) == len( trackDb_headers ), 'Failed Parsing trackDb.txt.gz; fields: %s' % fields
+        table_name = fields[ 0 ]
+        tables[ table_name ] = {}
+        for field_name, field_value in zip( trackDb_headers, fields ):
+            tables[ table_name ][ field_name ] = field_value
+        #split settings fields into dict
+        fields = fields[-1].split( '\n' )
+        tables[ table_name ][ 'settings' ] = {}
+        for field in fields:
+            setting_fields = field.split( ' ', 1 )
+            setting_name = setting_value = setting_fields[ 0 ]
+            if len( setting_fields ) > 1:
+                setting_value = setting_fields[ 1 ]
+            if setting_name or setting_value:
+                tables[ table_name ][ 'settings' ][ setting_name ] = setting_value
+    #Load Groups
+    groups = load_groups()
+    in_groups = {}
+    for table_name, values in tables.iteritems():
+        if os.path.exists( os.path.join( output_dir, table_name ) ):
+            group = values['grp']
+            if group not in in_groups:
+                in_groups[group]={}
+            #***NAME CHANGE***, 'subTrack' no longer exists as a setting...use 'parent' instead
+            #subTrack = values.get('settings', {} ).get( 'subTrack', table_name )
+            subTrack = values.get('settings', {} ).get( 'parent', table_name ).split( ' ' )[0] #need to split, because could be e.g. 'trackgroup on'
+            if subTrack not in in_groups[group]:
+                in_groups[group][subTrack]=[]
+            in_groups[group][subTrack].append( table_name )
+    
+    assigned_tables = []
+    out.write( """<filter type="data_meta" data_ref="input1" meta_key="dbkey" value="%s">\n""" % ( dbkey ) )
+    out.write( "  <options>\n" )
+    for group, subTracks in sorted( in_groups.iteritems() ):
+        out.write( """    <option name="%s" value="group-%s">\n""" % ( groups[group]['desc'], group ) )
+        for sub_name, sub_tracks in subTracks.iteritems():
+            if len( sub_tracks ) > 1:
+                out.write( """      <option name="%s" value="subtracks-%s">\n""" % ( sub_name, sub_name ) )
+                sub_tracks.sort()
+                for track in sub_tracks:
+                    track_label = track
+                    if "$" not in tables[track]['shortLabel']:
+                        track_label = tables[track]['shortLabel']
+                    out.write( """        <option name="%s" value="%s"/>\n""" % ( track_label, track ) )
+                    assigned_tables.append( track )
+                out.write( "      </option>\n" )
+            else:
+                track = sub_tracks[0]
+                track_label = track
+                if "$" not in tables[track]['shortLabel']:
+                    track_label = tables[track]['shortLabel']
+                out.write( """        <option name="%s" value="%s"/>\n""" % ( track_label, track ) )
+                assigned_tables.append( track )
+        out.write( "    </option>\n" )
+    unassigned_tables = list( sorted( [ table_dir for table_dir in os.listdir( output_dir ) if table_dir not in assigned_tables and os.path.isdir( os.path.join( output_dir, table_dir ) ) ] ) )
+    if unassigned_tables:
+        out.write( """    <option name="Uncategorized Tables" value="group-trackDbUnassigned">\n""" )
+        for table_name in unassigned_tables:
+            out.write( """        <option name="%s" value="%s"/>\n""" % ( table_name, table_name ) )
+        out.write( "    </option>\n" )
+    out.write( "  </options>\n" )
+    out.write( """</filter>\n""" )
+    out.close()
+
+def write_database_dump_info( input_dir, output_dir, dbkey, chrom_lengths, default_bitset_size ):
+    #generate hash for profiled table directories
+    #sort directories off output root (files in output root not hashed, including the profiler_info.txt file)
+    #sort files in each directory and hash file contents
+    profiled_hash = md5()
+    for table_dir in sorted( [ table_dir for table_dir in os.listdir( output_dir ) if os.path.isdir( os.path.join( output_dir, table_dir ) ) ] ):
+        for filename in sorted( os.listdir( os.path.join( output_dir, table_dir ) ) ):
+            f  = open( os.path.join( output_dir, table_dir, filename ), 'rb' )
+            while True:
+                hash_chunk = f.read( CHUNK_SIZE )
+                if not hash_chunk:
+                    break
+                profiled_hash.update( hash_chunk )
+    profiled_hash = profiled_hash.hexdigest()
+    
+    #generate hash for input dir
+    #sort directories off input root
+    #sort files in each directory and hash file contents
+    database_hash = md5()
+    for dirpath, dirnames, filenames in sorted( os.walk( input_dir ) ):
+        for filename in sorted( filenames ):
+            f  = open( os.path.join( input_dir, dirpath, filename ), 'rb' )
+            while True:
+                hash_chunk = f.read( CHUNK_SIZE )
+                if not hash_chunk:
+                    break
+                database_hash.update( hash_chunk )
+    database_hash = database_hash.hexdigest()
+    
+    #write out info file
+    out = open( os.path.join( output_dir, 'profiler_info.txt' ), 'wb' )
+    out.write( 'dbkey\t%s\n' % ( dbkey ) )
+    out.write( 'chromosomes\t%s\n' % ( ','.join( [ '%s=%s' % ( chrom_name, chrom_len ) for chrom_name, chrom_len in chrom_lengths.iteritems() ] ) ) )
+    out.write( 'bitset_size\t%s\n' % ( default_bitset_size ) )
+    for line in open( os.path.join( input_dir, 'trackDb.sql' ) ):
+        line = line.strip()
+        if line.startswith( '-- Dump completed on ' ):
+            line = line[ len( '-- Dump completed on ' ): ]
+            out.write( 'dump_time\t%s\n' % ( line ) )
+            break
+    out.write( 'dump_hash\t%s\n' % ( database_hash ) )
+    out.write( 'profiler_time\t%s\n' % ( time.time() ) )
+    out.write( 'profiler_hash\t%s\n' % ( profiled_hash ) )
+    out.write( 'profiler_version\t%s\n' % ( VERSION ) )
+    out.write( 'profiler_struct_format\t%s\n' % ( STRUCT_FMT ) )
+    out.write( 'profiler_struct_size\t%s\n' % ( STRUCT_SIZE ) )
+    out.close()
+    
+def __main__():
+    usage = "usage: %prog options"
+    parser = OptionParser( usage=usage )
+    parser.add_option( '-d', '--dbkey', dest='dbkey', default='hg18', help='dbkey to process' )
+    parser.add_option( '-i', '--input_dir', dest='input_dir', default=os.path.join( 'golden_path','%s', 'database' ), help='Input Directory' )
+    parser.add_option( '-o', '--output_dir', dest='output_dir', default=os.path.join( 'profiled_annotations','%s' ), help='Output Directory' )
+    parser.add_option( '-c', '--chromosomes', dest='chromosomes', default='', help='Comma separated list of: ChromName1[=length],ChromName2[=length],...' )
+    parser.add_option( '-b', '--bitset_size', dest='bitset_size', default=DEFAULT_BITSET_SIZE, type='int', help='Default BitSet size; overridden by sizes specified in chromInfo.txt.gz or by --chromosomes' )
+    parser.add_option( '-f', '--ftp_site', dest='ftp_site', default='hgdownload.cse.ucsc.edu', help='FTP site; used for chromosome info when chromInfo.txt.gz method fails' )
+    parser.add_option( '-p', '--ftp_path', dest='ftp_path', default='/goldenPath/%s/chromosomes/', help='FTP Path; used for chromosome info when chromInfo.txt.gz method fails' )
+    
+    ( options, args ) = parser.parse_args()
+    
+    input_dir = options.input_dir
+    if '%' in input_dir:
+        input_dir = input_dir % options.dbkey
+    assert os.path.exists( input_dir ), 'Input directory does not exist'
+    output_dir = options.output_dir
+    if '%' in output_dir:
+        output_dir = output_dir % options.dbkey
+    assert not os.path.exists( output_dir ), 'Output directory already exists'
+    os.makedirs( output_dir )
+    ftp_path = options.ftp_path
+    if '%' in ftp_path:
+        ftp_path = ftp_path % options.dbkey
+    
+    #Get chromosome names and lengths
+    chrom_lengths = {}
+    if options.chromosomes:
+        for chrom in options.chromosomes.split( ',' ):
+            fields = chrom.split( '=' )
+            chrom = fields[0]
+            if len( fields ) > 1:
+                chrom_len = int( fields[1] )
+            else:
+                chrom_len = options.bitset_size
+            chrom_lengths[ chrom ] = chrom_len
+        chroms = chrom_lengths.keys()
+        print 'Chrom info taken from command line option.'
+    else:
+        try:
+            for line in gzip.open( os.path.join( input_dir, 'chromInfo.txt.gz' ) ):
+                fields = line.strip().split( '\t' )
+                chrom_lengths[ fields[0] ] = int( fields[ 1 ] )
+            chroms = chrom_lengths.keys()
+            print 'Chrom info taken from chromInfo.txt.gz.'
+        except Exception, e:
+            print 'Error loading chrom info from chromInfo.txt.gz, trying FTP method.'
+            chrom_lengths = {} #zero out chrom_lengths
+            chroms = []
+            ftp = FTP( options.ftp_site )
+            ftp.login()
+            for name in ftp.nlst( ftp_path ):
+                if name.endswith( '.fa.gz' ):
+                    chroms.append( name.split( '/' )[-1][ :-len( '.fa.gz' ) ] )
+            ftp.close()
+            for chrom in chroms:
+                chrom_lengths[ chrom ] = options.bitset_size
+    #sort chroms by length of name, decending; necessary for when table names start with chrom name
+    chroms = list( reversed( [ chrom for chrom_len, chrom in sorted( [ ( len( chrom ), chrom ) for chrom in chroms ] ) ] ) )
+    
+    #parse tables from local files
+    #loop through directory contents, if file ends in '.sql', process table
+    for filename in os.listdir( input_dir ):
+        if filename.endswith ( '.sql' ):
+            base_filename = filename[ 0:-len( '.sql' ) ]
+            table_out_dir = os.path.join( output_dir, base_filename )
+            #some tables are chromosome specific, lets strip off the chrom name
+            for chrom in chroms:
+                if base_filename.startswith( "%s_" % chrom ):
+                    #found chromosome
+                    table_out_dir = os.path.join( output_dir, base_filename[len( "%s_" % chrom ):] )
+                    break
+            #create table dir
+            if not os.path.exists( table_out_dir ):
+                os.mkdir( table_out_dir ) #table dir may already exist in the case of single chrom tables
+                print "Created table dir (%s)." % table_out_dir
+            else:
+                print "Table dir (%s) already exists." % table_out_dir
+            #find column assignments
+            table_name, chrom_col, start_col, end_col = get_columns( "%s.sql" % os.path.join( input_dir, base_filename ) )
+            if chrom_col is None or start_col is None or end_col is None:
+                print "Table %s (%s) does not appear to have a chromosome, a start, or a stop." % ( table_name, "%s.sql" % os.path.join( input_dir, base_filename ) )
+                if not os.listdir( table_out_dir ):
+                    print "Removing empty table (%s) directory (%s)." % ( table_name, table_out_dir )
+                    os.rmdir( table_out_dir )
+                continue
+            #build bitsets from table
+            bitset_dict = {}
+            for line in gzip.open( '%s.txt.gz' % os.path.join( input_dir, base_filename )  ):
+                fields = line.strip().split( '\t' )
+                chrom = fields[ chrom_col ]
+                start = int( fields[ start_col ] )
+                end = int( fields[ end_col ] )
+                if chrom not in bitset_dict:
+                    bitset_dict[ chrom ] = BitSet( chrom_lengths.get( chrom, options.bitset_size ) )
+                bitset_dict[ chrom ].set_range(  start, end - start  )
+            #write bitsets as profiled annotations
+            for chrom_name, chrom_bits in bitset_dict.iteritems():
+                out = open( os.path.join( table_out_dir, '%s.covered' % chrom_name  ), 'wb' )
+                end = 0
+                total_regions = 0
+                total_coverage = 0
+                max_size = chrom_lengths.get( chrom_name, options.bitset_size )
+                while True:
+                    start = chrom_bits.next_set( end )
+                    if start >= max_size:
+                        break
+                    end = chrom_bits.next_clear( start )
+                    out.write( struct.pack( STRUCT_FMT, start ) )
+                    out.write( struct.pack( STRUCT_FMT, end ) )
+                    total_regions += 1
+                    total_coverage += end - start
+                    if end >= max_size:
+                        break
+                out.close()
+                open( os.path.join( table_out_dir, '%s.total_regions' % chrom_name  ), 'wb' ).write( str( total_regions ) )
+                open( os.path.join( table_out_dir, '%s.total_coverage' % chrom_name  ), 'wb' ).write( str( total_coverage ) )
+    
+    #create xml
+    create_grouping_xml( input_dir, output_dir, options.dbkey )
+    #create database dump info file, for database version control
+    write_database_dump_info( input_dir, output_dir, options.dbkey, chrom_lengths, options.bitset_size )
+    
+if __name__ == "__main__": __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/3.bed	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,25 @@
+chr1	147962006	147975713	NM_005997	0	-	147962192	147975670	0	6	574,145,177,115,153,160,	0,1543,7859,9048,9340,13547,
+chr1	147984101	148035079	BC007833	0	+	147984545	148033414	0	14	529,32,81,131,118,153,300,206,84,49,85,130,46,1668,	0,25695,28767,33118,33695,33998,35644,38005,39629,40577,41402,43885,48367,49310,
+chr1	148077485	148111797	NM_002651	0	-	148078400	148111728	0	12	1097,121,133,266,124,105,110,228,228,45,937,77,	0,2081,2472,6871,9907,10257,11604,14199,15637,18274,23636,34235,
+chr1	148185113	148187485	NM_002796	0	+	148185136	148187378	0	7	163,207,147,82,117,89,120,	0,416,877,1199,1674,1977,2252,
+chr2	118288484	118306183	NM_006773	0	+	118288583	118304530	0	14	184,285,144,136,101,200,115,140,162,153,114,57,178,1796,	0,2765,4970,6482,6971,7183,7468,9890,10261,10768,11590,14270,14610,15903,
+chr2	118389378	118390700	BC005078	0	-	118390395	118390500	0	1	1322,	0,
+chr2	220108603	220116964	NM_001927	0	+	220108689	220116217	0	9	664,61,96,162,126,221,44,83,789,	0,1718,1874,2118,2451,2963,5400,7286,7572,
+chr2	220229182	220233943	NM_024536	0	-	220229609	220233765	0	4	1687,180,574,492,	0,1990,2660,4269,
+chr5	131170738	131357870	AF099740	0	-	131311206	131357817	0	31	112,124,120,81,65,40,120,129,61,88,94,79,72,102,144,117,89,73,96,135,135,78,74,52,33,179,100,102,65,115,248,	0,11593,44117,47607,104668,109739,114675,126366,135488,137518,138009,140437,152389,153373,155388,159269,160793,162981,164403,165577,166119,167611,169501,178260,179675,180901,181658,182260,182953,183706,186884,
+chr5	131424245	131426795	NM_000588	0	+	131424298	131426383	0	5	215,42,90,42,535,	0,313,1658,1872,2015,
+chr5	131556201	131590458	NM_004199	0	-	131556601	131582218	0	15	471,97,69,66,54,100,71,177,194,240,138,152,97,100,170,	0,2316,2802,5596,6269,11138,11472,15098,16528,17674,21306,24587,25142,25935,34087,
+chr5	131621285	131637046	NM_003687	0	+	131621326	131635821	0	7	134,152,82,179,164,118,1430,	0,4915,8770,13221,13609,14097,14331,
+chr6	108298214	108386086	NM_007214	0	-	108299600	108385906	0	21	1530,105,99,102,159,174,60,83,148,155,93,133,95,109,51,59,62,113,115,100,304,	0,2490,6246,10831,12670,23164,23520,27331,31052,32526,34311,36130,36365,38609,41028,42398,43048,51479,54500,59097,87568,
+chr6	108593954	108616704	NM_003269	0	+	108594662	108615360	0	9	733,146,88,236,147,97,150,106,1507,	0,5400,8778,10445,12037,14265,14749,15488,21243,
+chr6	108639410	108689143	NM_152827	0	-	108640045	108688818	0	3	741,125,487,	0,2984,49246,
+chr6	108722790	108950942	NM_145315	0	+	108722976	108950321	0	13	325,224,52,102,131,100,59,83,71,101,141,114,750,	0,28931,52094,60760,61796,71339,107102,152319,181970,182297,215317,224802,227402,
+chr7	113320332	113924911	AK131266	0	+	113862563	113893433	0	20	285,91,178,90,58,75,138,51,201,178,214,105,88,84,77,102,122,70,164,1124,	0,201692,340175,448290,451999,484480,542213,543265,543478,545201,556083,558358,565876,567599,573029,573245,575738,577123,577946,603455,
+chr7	116511232	116557294	NM_003391	0	-	116512159	116556994	0	5	1157,265,278,227,383,	0,20384,37843,43339,45679,
+chr7	116713967	116902666	NM_000492	0	+	116714099	116901113	0	27	185,111,109,216,90,164,126,247,93,183,192,95,87,724,129,38,251,80,151,228,101,249,156,90,173,106,1754,	0,24290,29071,50936,54313,55285,56585,60137,62053,68678,79501,107776,110390,111971,114967,122863,123569,126711,130556,131618,134650,147559,162475,172879,184725,185496,186945,
+chr7	116944658	117107512	AF377960	0	-	116945541	116979926	0	23	1129,102,133,64,186,206,179,188,153,100,87,80,96,276,118,255,151,100,204,1654,225,108,173,	0,7364,8850,10413,13893,14398,17435,24259,24615,35177,35359,45901,47221,49781,56405,66857,69787,72208,73597,80474,100111,150555,162681,
+chr8	118880786	119193239	NM_000127	0	-	118881131	119192466	0	11	531,172,161,90,96,119,133,120,108,94,1735,	0,5355,7850,13505,19068,20309,23098,30863,36077,37741,310718,
+chr9	128763240	128783870	NM_174933	0	+	128764156	128783586	0	12	261,118,74,159,76,48,56,63,129,117,127,370,	0,522,875,5630,12374,12603,15040,15175,18961,19191,20037,20260,
+chr9	128787362	128789566	NM_014908	0	-	128787519	128789136	0	1	2204,	0,
+chr9	128789530	128848928	NM_015354	0	+	128789552	128848511	0	44	54,55,74,85,81,45,93,120,212,115,201,90,66,120,127,153,127,88,77,115,121,67,129,140,107,207,170,70,68,196,78,86,146,182,201,93,159,138,75,228,132,74,130,594,	0,1491,5075,8652,9254,10312,11104,11317,20808,21702,23060,25462,31564,32908,33566,34851,35204,35595,35776,37202,38860,39111,39891,40349,42422,45499,45827,46675,47158,47621,50453,50840,51474,51926,53831,54186,55119,55619,57449,57605,57947,58352,58541,58804,
+chr9	128849867	128870133	NM_020145	0	-	128850516	128869987	0	11	757,241,101,90,24,63,93,134,129,142,209,	0,1071,1736,2085,2635,4201,6376,6736,13056,14247,20057,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/4.bed	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,1 @@
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotation_profiler_1.out	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,9 @@
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	multiz17way	1700000	1
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	mrna	1476531	12
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	multiz28way	1700000	1
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	refGene	1247808	15
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	knownAlt	14617	57
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	affyGnf1h	16218	2
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	snp126	8224	7262
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	acembly	1532618	20
+chr22	30128507	31828507	uc003bnx.1_cds_2_0_chr22_29227_f	0	+	knownGene	1282789	18
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotation_profiler_2.out	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,10 @@
+#tableName	tableChromosomeCoverage	tableChromosomeCount	tableRegionCoverage	tableRegionCount	allIntervalCount	allIntervalSize	allCoverage	allTableRegionsOverlaped	allIntervalsOverlapingTable	nrIntervalCount	nrIntervalSize	nrCoverage	nrTableRegionsOverlaped	nrIntervalsOverlapingTable
+multiz17way	1232617592	115	107496500	7	25	2178864	2178864	25	25	24	2178828	2178828	7	24
+mrna	610115393	8453	53577685	617	25	2178864	1904380	38	24	24	2178828	1904344	33	23
+multiz28way	1233785185	143	107466479	10	25	2178864	2178864	25	25	24	2178828	2178828	8	24
+refGene	496767116	7324	46112187	488	25	2178864	1677947	30	23	24	2178828	1677911	27	22
+knownAlt	8647368	20213	766619	1630	25	2178864	5612	31	11	24	2178828	5612	31	11
+affyGnf1h	24034558	3995	2446754	307	25	2178864	191851	9	6	24	2178828	191851	9	6
+snp126	5297125	4456213	382226	331523	25	2178864	9205	7074	25	24	2178828	9205	7074	24
+acembly	710938193	13800	63146381	938	25	2178864	1903560	35	24	24	2178828	1903524	30	23
+knownGene	555770538	7921	50317496	558	25	2178864	1822985	30	23	24	2178828	1822949	27	22
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/annotation_profiler_options.xml.sample	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,1101 @@
+<filter type="data_meta" data_ref="input1" meta_key="dbkey" value="hg18">
+  <options>
+    <option name="Mapping and Sequencing Tracks" value="group-map">
+        <option name="STS Markers" value="stsMap"/>
+        <option name="Fosmid End Pairs" value="fosEndPairs"/>
+        <option name="Chromosome Band" value="cytoBand"/>
+        <option name="BAC End Pairs" value="bacEndPairs"/>
+        <option name="FISH Clones" value="fishClones"/>
+        <option name="GC Percent" value="gc5Base"/>
+        <option name="Coverage" value="clonePos"/>
+        <option name="Recomb Rate" value="recombRate"/>
+        <option name="Map Contigs" value="ctgPos"/>
+        <option name="Assembly" value="gold"/>
+        <option name="Gap" value="gap"/>
+        <option name="Chromosome Band (Ideogram)" value="cytoBandIdeo"/>
+    </option>
+    <option name="Comparative Genomics" value="group-compGeno">
+        <option name="chainRn4" value="chainRn4"/>
+        <option name="chainOryLat1" value="chainOryLat1"/>
+        <option name="chainTetNig1" value="chainTetNig1"/>
+        <option name="netDanRer5" value="netDanRer5"/>
+        <option name="netPanTro2" value="netPanTro2"/>
+        <option name="chainCanFam2" value="chainCanFam2"/>
+        <option name="netPonAbe2" value="netPonAbe2"/>
+        <option name="netGasAcu1" value="netGasAcu1"/>
+        <option name="netStrPur2" value="netStrPur2"/>
+        <option name="chainDanRer5" value="chainDanRer5"/>
+        <option name="netGalGal3" value="netGalGal3"/>
+        <option name="netMonDom4" value="netMonDom4"/>
+        <option name="netOryLat1" value="netOryLat1"/>
+        <option name="netMm9" value="netMm9"/>
+        <option name="chainRheMac2" value="chainRheMac2"/>
+        <option name="netOrnAna1" value="netOrnAna1"/>
+        <option name="chainFr2" value="chainFr2"/>
+        <option name="netXenTro2" value="netXenTro2"/>
+        <option name="Cons Indels MmCf" value="consIndelsHgMmCanFam"/>
+        <option name="Tetraodon Ecores" value="ecoresTetNig1"/>
+        <option name="netTetNig1" value="netTetNig1"/>
+        <option name="chainGalGal3" value="chainGalGal3"/>
+        <option name="chainStrPur2" value="chainStrPur2"/>
+        <option name="chainOrnAna1" value="chainOrnAna1"/>
+        <option name="netFelCat3" value="netFelCat3"/>
+        <option name="chainEquCab1" value="chainEquCab1"/>
+        <option name="chainPonAbe2" value="chainPonAbe2"/>
+        <option name="chainFelCat3" value="chainFelCat3"/>
+      <option name="mostConserved28way" value="subtracks-mostConserved28way">
+        <option name="Most Conserved" value="mostConserved28way"/>
+        <option name="Vertebrate" value="phastConsElements28way"/>
+        <option name="Mammal" value="phastConsElements28wayPlacMammal"/>
+      </option>
+        <option name="chainAnoCar1" value="chainAnoCar1"/>
+        <option name="17-Way Cons" value="multiz17way"/>
+        <option name="chainXenTro2" value="chainXenTro2"/>
+        <option name="17-Way Most Cons" value="phastConsElements17way"/>
+        <option name="chainGasAcu1" value="chainGasAcu1"/>
+        <option name="Conservation" value="multiz28way"/>
+        <option name="chainCalJac1" value="chainCalJac1"/>
+        <option name="netCanFam2" value="netCanFam2"/>
+        <option name="chainMm9" value="chainMm9"/>
+        <option name="chainMonDom4" value="chainMonDom4"/>
+        <option name="netCalJac1" value="netCalJac1"/>
+        <option name="netRheMac2" value="netRheMac2"/>
+        <option name="chainPanTro2" value="chainPanTro2"/>
+        <option name="netEquCab1" value="netEquCab1"/>
+        <option name="netFr2" value="netFr2"/>
+        <option name="netAnoCar1" value="netAnoCar1"/>
+        <option name="netBosTau4" value="netBosTau4"/>
+        <option name="chainBosTau4" value="chainBosTau4"/>
+        <option name="netRn4" value="netRn4"/>
+    </option>
+    <option name="Phenotype and Disease Associations" value="group-phenDis">
+      <option name="caseControl" value="subtracks-caseControl">
+        <option name="Case Control" value="caseControl"/>
+        <option name="CCC Bipolar Dis" value="cccTrendPvalBd"/>
+        <option name="CCC Coronary Art" value="cccTrendPvalCad"/>
+        <option name="CCC Crohns Dis" value="cccTrendPvalCd"/>
+        <option name="CCC Hypertension" value="cccTrendPvalHt"/>
+        <option name="CCC Rheum Arth" value="cccTrendPvalRa"/>
+        <option name="CCC T1 Diabetes" value="cccTrendPvalT1d"/>
+        <option name="CCC T2 Diabetes" value="cccTrendPvalT2d"/>
+      </option>
+        <option name="GAD View" value="gad"/>
+        <option name="RGD Human QTL" value="rgdQtl"/>
+        <option name="RGD Rat QTL" value="rgdRatQtl"/>
+      <option name="nimhBipolar" value="subtracks-nimhBipolar">
+        <option name="NIMH Bipolar" value="nimhBipolar"/>
+        <option name="NIMH Bipolar De" value="nimhBipolarDe"/>
+        <option name="NIMH Bipolar Us" value="nimhBipolarUs"/>
+      </option>
+      <option name="jaxQtlMapped" value="subtracks-jaxQtlMapped">
+        <option name="MGI Mouse QTL" value="jaxQtlAsIs"/>
+        <option name="MGI Mouse QTL" value="jaxQtlMapped"/>
+        <option name="MGI Mouse QTL Padded" value="jaxQtlPadded"/>
+      </option>
+    </option>
+    <option name="mRNA and EST Tracks" value="group-rna">
+        <option name="CGAP SAGE" value="cgapSage"/>
+        <option name="est" value="est"/>
+        <option name="UniGene" value="uniGene_3"/>
+        <option name="Gene Bounds" value="rnaCluster"/>
+        <option name="SIB Alt-Splicing" value="sibTxGraph"/>
+        <option name="Spliced ESTs" value="intronEst"/>
+        <option name="Other mRNAs" value="xenoMrna"/>
+        <option name="H-Inv" value="HInvGeneMrna"/>
+        <option name="mrna" value="mrna"/>
+      <option name="polyA" value="subtracks-polyA">
+        <option name="Poly(A)" value="polyA"/>
+        <option name="PolyA_DB" value="polyaDb"/>
+        <option name="Poly(A) SVM" value="polyaPredict"/>
+      </option>
+        <option name="Other ESTs" value="xenoEst"/>
+    </option>
+    <option name="Genes and Gene Prediction Tracks" value="group-genes">
+        <option name="CCDS" value="ccdsGene"/>
+      <option name="augustus" value="subtracks-augustus">
+        <option name="Augustus" value="augustus"/>
+        <option name="Augustus Ab Initio" value="augustusAbinitio"/>
+        <option name="Augustus Hints" value="augustusHints"/>
+        <option name="Augustus De Novo" value="augustusXRA"/>
+      </option>
+        <option name="sno/miRNA" value="wgRna"/>
+        <option name="Geneid Genes" value="geneid"/>
+        <option name="SIB Genes" value="sibGene"/>
+        <option name="Old Known Genes" value="knownGeneOld2"/>
+        <option name="EvoFold" value="evofold"/>
+        <option name="CONTRAST" value="contrastGene"/>
+        <option name="Exoniphy" value="exoniphy"/>
+        <option name="AceView Genes" value="acembly"/>
+      <option name="nscan" value="subtracks-nscan">
+        <option name="N-SCAN" value="nscan"/>
+        <option name="N-SCAN" value="nscanGene"/>
+        <option name="N-SCAN PASA-EST" value="nscanPasaGene"/>
+      </option>
+        <option name="Ensembl Genes" value="ensGene"/>
+        <option name="SGP Genes" value="sgpGene"/>
+        <option name="RefSeq Genes" value="refGene"/>
+        <option name="Genscan Genes" value="genscan"/>
+        <option name="RNA Genes" value="rnaGene"/>
+        <option name="UCSC Genes" value="knownGene"/>
+        <option name="ACEScan" value="acescan"/>
+        <option name="Other RefSeq" value="xenoRefGene"/>
+        <option name="Alt Events" value="knownAlt"/>
+        <option name="ORFeome Clones" value="orfeomeGenes"/>
+        <option name="MGC Genes" value="mgcGenes"/>
+    </option>
+    <option name="Variation and Repeats" value="group-varRep">
+        <option name="Segmental Dups" value="genomicSuperDups"/>
+        <option name="Structural Var" value="cnp"/>
+      <option name="tajdSnp" value="subtracks-tajdSnp">
+        <option name="Tajima's D SNPs" value="tajdSnp"/>
+        <option name="SNPs AD" value="tajdSnpAd"/>
+        <option name="SNPs ED" value="tajdSnpEd"/>
+        <option name="SNPs XD" value="tajdSnpXd"/>
+      </option>
+        <option name="Self Chain" value="chainSelf"/>
+        <option name="RepeatMasker" value="rmsk"/>
+      <option name="snpArray" value="subtracks-snpArray">
+        <option name="SNP Arrays" value="snpArray"/>
+        <option name="Affy 250KNsp" value="snpArrayAffy250Nsp"/>
+        <option name="Affy 250KSty" value="snpArrayAffy250Sty"/>
+        <option name="Affy SNP 5.0" value="snpArrayAffy5"/>
+        <option name="Affy SNP 6.0" value="snpArrayAffy6"/>
+        <option name="Affy SNP 6.0 SV" value="snpArrayAffy6SV"/>
+        <option name="Illumina 300" value="snpArrayIllumina300"/>
+        <option name="Illumina 550" value="snpArrayIllumina550"/>
+        <option name="Illumina 650" value="snpArrayIllumina650"/>
+      </option>
+      <option name="hapmapLdPh" value="subtracks-hapmapLdPh">
+        <option name="HapMap LD Phased" value="hapmapLdPh"/>
+        <option name="Phased CEU" value="hapmapLdPhCeu"/>
+        <option name="Ph JPT+CHB" value="hapmapLdPhChbJpt"/>
+        <option name="Phased YRI" value="hapmapLdPhYri"/>
+      </option>
+        <option name="SNPs (126)" value="snp126"/>
+        <option name="Interrupted Rpts" value="nestedRepeats"/>
+        <option name="Exapted Repeats" value="exaptedRepeats"/>
+        <option name="SNPs (128)" value="snp128"/>
+      <option name="tajD" value="subtracks-tajD">
+        <option name="Tajima's D" value="tajD"/>
+        <option name="Tajima's D AD" value="tajdAd"/>
+        <option name="Tajima's D ED" value="tajdEd"/>
+        <option name="Tajima's D XD" value="tajdXd"/>
+      </option>
+        <option name="Microsatellite" value="microsat"/>
+        <option name="Simple Repeats" value="simpleRepeat"/>
+      <option name="hapmapSnps" value="subtracks-hapmapSnps">
+        <option name="Chimp Alleles" value="hapmapAllelesChimp"/>
+        <option name="Macaque Alleles" value="hapmapAllelesMacaque"/>
+        <option name="HapMap SNPs" value="hapmapSnps"/>
+        <option name="SNPs CEU" value="hapmapSnpsCEU"/>
+        <option name="SNPs CHB" value="hapmapSnpsCHB"/>
+        <option name="SNPs JPT" value="hapmapSnpsJPT"/>
+        <option name="SNPs YRI" value="hapmapSnpsYRI"/>
+      </option>
+    </option>
+    <option name="Expression and Regulation" value="group-regulation">
+        <option name="FirstEF" value="firstEF"/>
+        <option name="Affy GNF1H" value="affyGnf1h"/>
+        <option name="Affy All Exon" value="affyHumanExon"/>
+      <option name="wgEncodeUcsdNgTaf1Sites" value="subtracks-wgEncodeUcsdNgTaf1Sites">
+        <option name="TAF1 Known Sites" value="wgEncodeUcsdNgTaf1KnownSites"/>
+        <option name="TAF1 Novel Sites" value="wgEncodeUcsdNgTaf1NovelSites"/>
+        <option name="LI TAF1 Sites" value="wgEncodeUcsdNgTaf1Sites"/>
+      </option>
+      <option name="wgEncodeUcsdNgTaf1Valid" value="subtracks-wgEncodeUcsdNgTaf1Valid">
+        <option name="LI TAF1 Valid" value="wgEncodeUcsdNgTaf1Valid"/>
+        <option name="LI Valid H3K4m2" value="wgEncodeUcsdNgTaf1ValidH3K4me"/>
+        <option name="LI Valid H3ac" value="wgEncodeUcsdNgTaf1ValidH3ac"/>
+        <option name="LI Valid Pol2" value="wgEncodeUcsdNgTaf1ValidRnap"/>
+        <option name="LI Valid TAF1" value="wgEncodeUcsdNgTaf1ValidTaf"/>
+      </option>
+        <option name="LI TAF1 Signal" value="wgEncodeUcsdNgTaf1Signal"/>
+        <option name="Affy Txn" value="affyTxnPhase3Super"/>
+      <option name="affyTxnPhase3L" value="subtracks-affyTxnPhase3L">
+        <option name="HDF lRNA" value="affyTxnPhase3HDF"/>
+        <option name="HeLa Cyto lRNA" value="affyTxnPhase3HeLaCyto"/>
+        <option name="HeLa Nucl lRNA" value="affyTxnPhase3HeLaNuclear"/>
+        <option name="HepG2 Cyto lRNA" value="affyTxnPhase3HepG2Cyto"/>
+        <option name="HepG2 Nucl lRNA" value="affyTxnPhase3HepG2Nuclear"/>
+        <option name="Jurkat lRNA" value="affyTxnPhase3Jurkat"/>
+        <option name="Affy Tx lRNA Sig" value="affyTxnPhase3L"/>
+        <option name="NCCIT lRNA" value="affyTxnPhase3NCCIT"/>
+        <option name="PC3 lRNA" value="affyTxnPhase3PC3"/>
+        <option name="SK-N-AS lRNA" value="affyTxnPhase3SK_N_AS"/>
+        <option name="U87MG lRNA" value="affyTxnPhase3U87MG"/>
+      </option>
+        <option name="SwitchGear TSS" value="switchDbTss"/>
+        <option name="LI/UCSD TAF1" value="wgEncodeUcsdNgTaf1Super"/>
+        <option name="Affy U133Plus2" value="affyU133Plus2"/>
+        <option name="GNF Ratio" value="affyRatio"/>
+        <option name="Affy HuEx 1.0" value="affyHuEx1"/>
+      <option name="affyTxnPhase3FragsS" value="subtracks-affyTxnPhase3FragsS">
+        <option name="HeLa - sRNA" value="affyTxnPhase3FragsHeLaBottomStrand"/>
+        <option name="HeLa + sRNA" value="affyTxnPhase3FragsHeLaTopStrand"/>
+        <option name="HepG2 - sRNA" value="affyTxnPhase3FragsHepG2BottomStrand"/>
+        <option name="HepG2 + sRNA" value="affyTxnPhase3FragsHepG2TopStrand"/>
+        <option name="Affy Tx sRNA Reg" value="affyTxnPhase3FragsS"/>
+      </option>
+        <option name="7X Reg Potential" value="regPotential7X"/>
+      <option name="uppsalaChipSites" value="subtracks-uppsalaChipSites">
+        <option name="UU H3ac Sites" value="uppsalaChipH3acSites"/>
+        <option name="UU ChIP Sites" value="uppsalaChipSites"/>
+        <option name="UU Usf1 Sites" value="uppsalaChipUsf1Sites"/>
+        <option name="UU Usf2 Sites" value="uppsalaChipUsf2Sites"/>
+      </option>
+        <option name="CpG Islands" value="cpgIslandExt"/>
+        <option name="GIS PET" value="wgEncodeGisSuper"/>
+        <option name="GNF Atlas 2" value="gnfAtlas2"/>
+        <option name="Vista Enhancers" value="vistaEnhancers"/>
+      <option name="affyTxnPhase3S" value="subtracks-affyTxnPhase3S">
+        <option name="HeLa - sRNA" value="affyTxnPhase3HeLaBottomStrand"/>
+        <option name="HeLa + sRNA" value="affyTxnPhase3HeLaTopStrand"/>
+        <option name="HepG2 - sRNA" value="affyTxnPhase3HepG2BottomStrand"/>
+        <option name="HepG2 + sRNA" value="affyTxnPhase3HepG2TopStrand"/>
+        <option name="Affy Tx sRNA Sig" value="affyTxnPhase3S"/>
+      </option>
+      <option name="wgEncodeGisRnaPet" value="subtracks-wgEncodeGisRnaPet">
+        <option name="GIS PET RNA" value="wgEncodeGisRnaPet"/>
+        <option name="GIS RNA HCT116" value="wgEncodeGisRnaPetHCT116"/>
+        <option name="GIS RNA hES3" value="wgEncodeGisRnaPetHes3"/>
+        <option name="GIS RNA MCF7" value="wgEncodeGisRnaPetMCF7"/>
+        <option name="GIS RNA MCF7 Est" value="wgEncodeGisRnaPetMCF7Estr"/>
+      </option>
+        <option name="TFBS Conserved" value="tfbsConsSites"/>
+      <option name="affyTxnPhase3FragsL" value="subtracks-affyTxnPhase3FragsL">
+        <option name="HDF lRNA" value="affyTxnPhase3FragsHDF"/>
+        <option name="HeLa Cyto lRNA" value="affyTxnPhase3FragsHeLaCyto"/>
+        <option name="HeLa Nucl lRNA" value="affyTxnPhase3FragsHeLaNuclear"/>
+        <option name="HepG2 Cyto lRNA" value="affyTxnPhase3FragsHepG2Cyto"/>
+        <option name="HepG2 Nucl lRNA" value="affyTxnPhase3FragsHepG2Nuclear"/>
+        <option name="Jurkat lRNA" value="affyTxnPhase3FragsJurkat"/>
+        <option name="Affy Tx lRNA Reg" value="affyTxnPhase3FragsL"/>
+        <option name="NCCIT lRNA" value="affyTxnPhase3FragsNCCIT"/>
+        <option name="PC3 lRNA" value="affyTxnPhase3FragsPC3"/>
+        <option name="SK-N-AS lRNA" value="affyTxnPhase3FragsSK_N_AS"/>
+        <option name="U87MG lRNA" value="affyTxnPhase3FragsU87MG"/>
+      </option>
+        <option name="ORegAnno" value="oreganno"/>
+        <option name="Affy U133" value="affyU133"/>
+        <option name="Eponine TSS" value="eponine"/>
+        <option name="Allen Brain" value="allenBrainAli"/>
+        <option name="TS miRNA sites" value="targetScanS"/>
+        <option name="Bertone Yale TAR" value="yaleBertoneTars"/>
+      <option name="uppsalaChipSignal" value="subtracks-uppsalaChipSignal">
+        <option name="UU H3ac Signal" value="uppsalaChipH3acSignal"/>
+        <option name="UU ChIP Signal" value="uppsalaChipSignal"/>
+        <option name="UU Usf1 Signal" value="uppsalaChipUsf1Signal"/>
+        <option name="UU Usf2 Signal" value="uppsalaChipUsf2Signal"/>
+      </option>
+        <option name="Affy U95" value="affyU95"/>
+        <option name="Uppsala ChIP" value="uppsalaChipSuper"/>
+      <option name="wgEncodeGisChipPetAll" value="subtracks-wgEncodeGisChipPetAll">
+        <option name="p53 HCT116 +5FU" value="wgEncodeGisChipPet"/>
+        <option name="GIS ChIP-PET" value="wgEncodeGisChipPetAll"/>
+        <option name="H3K27me3 hES3" value="wgEncodeGisChipPetHes3H3K27me3"/>
+        <option name="H3K4me3 hES3" value="wgEncodeGisChipPetHes3H3K4me3"/>
+        <option name="cMyc P493" value="wgEncodeGisChipPetMycP493"/>
+        <option name="STAT1 HeLa +gIF" value="wgEncodeGisChipPetStat1Gif"/>
+        <option name="STAT1 HeLa -gIF" value="wgEncodeGisChipPetStat1NoGif"/>
+      </option>
+    </option>
+    <option name="ENCODE Comparative Genomics and Variation" value="group-encodeCompAndVar">
+        <option name="NHGRI DIPs" value="encodeIndels"/>
+    </option>
+    <option name="Experimental Tracks" value="group-x">
+        <option name="Uppsala ChIP" value="encodeUppsalaChip"/>
+      <option name="cnp" value="subtracks-cnp">
+        <option name="Iafrate CNPs" value="cnpIafrate2"/>
+        <option name="Locke CNPs" value="cnpLocke"/>
+        <option name="Redon CNPs" value="cnpRedon"/>
+        <option name="Sebat CNPs" value="cnpSebat2"/>
+        <option name="Sharp CNPs" value="cnpSharp2"/>
+        <option name="Tuzun Fosmids" value="cnpTuzun"/>
+        <option name="Conrad Dels" value="delConrad2"/>
+        <option name="Hinds Dels" value="delHinds2"/>
+        <option name="McCarroll Dels" value="delMccarroll"/>
+      </option>
+      <option name="encodeUncFaire" value="subtracks-encodeUncFaire">
+        <option name="FAIRE PeakFinder" value="encodeUncFairePeaks"/>
+        <option name="FAIRE ChIPOTle" value="encodeUncFairePeaksChipotle"/>
+      </option>
+      <option name="encodeUppsalaChipBut" value="subtracks-encodeUppsalaChipBut">
+        <option name="UU H3ac 0h vs 12h" value="encodeUppsalaChipH3acBut0vs12"/>
+        <option name="UU H4ac 0h vs 12h" value="encodeUppsalaChipH4acBut0vs12"/>
+      </option>
+        <option name="UT-Austin STAGE" value="encodeUtexStage"/>
+        <option name="UW DNase-array" value="encodeRegulomeDnaseArray"/>
+      <option name="encodeSangerChipHits" value="subtracks-encodeSangerChipHits">
+        <option name="SI H3K4m1 GM6990" value="encodeSangerChipCenterH3K4me1GM06990"/>
+        <option name="SI H3K4me1 HeLa" value="encodeSangerChipCenterH3K4me1HeLa"/>
+        <option name="SI H3K4m2 GM6990" value="encodeSangerChipCenterH3K4me2GM06990"/>
+        <option name="SI H3K4me2 HeLa" value="encodeSangerChipCenterH3K4me2HeLa"/>
+        <option name="SI H3K4me2 K562" value="encodeSangerChipCenterH3K4me2K562"/>
+        <option name="SI H3K4m3 GM6990" value="encodeSangerChipCenterH3K4me3GM06990"/>
+        <option name="SI H3K4me3 HeLa" value="encodeSangerChipCenterH3K4me3HeLa"/>
+        <option name="SI H3K4me3 K562" value="encodeSangerChipCenterH3K4me3K562"/>
+        <option name="SI H3ac GM06990" value="encodeSangerChipCenterH3acGM06990"/>
+        <option name="SI H3ac HeLa" value="encodeSangerChipCenterH3acHeLa"/>
+        <option name="SI H3ac K562" value="encodeSangerChipCenterH3acK562"/>
+        <option name="SI H4ac GM06990" value="encodeSangerChipCenterH4acGM06990"/>
+        <option name="SI H4ac HeLa" value="encodeSangerChipCenterH4acHeLa"/>
+        <option name="SI H4ac K562" value="encodeSangerChipCenterH4acK562"/>
+      </option>
+        <option name="Gencode Genes Mar07" value="encodeGencodeGeneMar07"/>
+      <option name="encodeNhgriDukeDnaseHs off" value="subtracks-encodeNhgriDukeDnaseHs off">
+        <option name="DNase CD4 MS" value="encodeNhgriDnaseHsMpssCd4"/>
+        <option name="DNase CD4-act MS" value="encodeNhgriDnaseHsMpssCd4Act"/>
+      </option>
+      <option name="encodeNhgriDukeDnaseHs" value="subtracks-encodeNhgriDukeDnaseHs">
+        <option name="DNase CD4 Pval" value="encodeNhgriDnaseHsChipPvalCd4"/>
+        <option name="DNase GM069 Pval" value="encodeNhgriDnaseHsChipPvalGm06990"/>
+        <option name="DNase H9 Pval" value="encodeNhgriDnaseHsChipPvalH9"/>
+        <option name="DNase HeLa Pval" value="encodeNhgriDnaseHsChipPvalHela"/>
+        <option name="DNase HepG2 Pval" value="encodeNhgriDnaseHsChipPvalHepG2"/>
+        <option name="DNase IMR90 Pval" value="encodeNhgriDnaseHsChipPvalImr90"/>
+        <option name="DNase K562 Pval" value="encodeNhgriDnaseHsChipPvalK562"/>
+      </option>
+    </option>
+    <option name="ENCODE Transcript Levels" value="group-encodeTxLevels">
+      <option name="encodeYaleAffyRNATars" value="subtracks-encodeYaleAffyRNATars">
+        <option name="Yale TAR NB4 RA" value="encodeYaleAffyNB4RARNATars"/>
+        <option name="Yale TAR NB4 TPA" value="encodeYaleAffyNB4TPARNATars"/>
+        <option name="Yale TAR NB4 Un" value="encodeYaleAffyNB4UntrRNATars"/>
+        <option name="Yale TAR Neutro" value="encodeYaleAffyNeutRNATars"/>
+        <option name="Yale TAR Plcnta" value="encodeYaleAffyPlacRNATars"/>
+        <option name="Yale TAR" value="encodeYaleAffyRNATars"/>
+      </option>
+      <option name="encodeYaleAffyRNATransMap" value="subtracks-encodeYaleAffyRNATransMap">
+        <option name="Yale RNA NB4 RA" value="encodeYaleAffyNB4RARNATransMap"/>
+        <option name="Yale RNA NB4 TPA" value="encodeYaleAffyNB4TPARNATransMap"/>
+        <option name="Yale RNA NB4 Un" value="encodeYaleAffyNB4UntrRNATransMap"/>
+        <option name="Yale RNA Neutro" value="encodeYaleAffyNeutRNATransMap"/>
+        <option name="Yale RNA Plcnta" value="encodeYaleAffyPlacRNATransMap"/>
+        <option name="Yale RNA" value="encodeYaleAffyRNATransMap"/>
+      </option>
+      <option name="encodeAffyRnaSignal" value="subtracks-encodeAffyRnaSignal">
+        <option name="Affy RNA GM06990" value="encodeAffyRnaGm06990Signal"/>
+        <option name="Affy RNA HeLa" value="encodeAffyRnaHeLaSignal"/>
+        <option name="Affy RNA RA 0h" value="encodeAffyRnaHl60SignalHr00"/>
+        <option name="Affy RNA RA 2h" value="encodeAffyRnaHl60SignalHr02"/>
+        <option name="Affy RNA RA 8h" value="encodeAffyRnaHl60SignalHr08"/>
+        <option name="Affy RNA RA 32h" value="encodeAffyRnaHl60SignalHr32"/>
+        <option name="Affy RNA Signal" value="encodeAffyRnaSignal"/>
+      </option>
+      <option name="encodeYaleMASPlacRNATransMap" value="subtracks-encodeYaleMASPlacRNATransMap">
+        <option name="Yale NB4 NgF RNA" value="encodeYaleMASNB4RNANprotTMFWDMless36mer36bp"/>
+        <option name="Yale NB4 NgR RNA" value="encodeYaleMASNB4RNANprotTMREVMless36mer36bp"/>
+        <option name="Yale Plc NgF RNA" value="encodeYaleMASPlacRNANprotTMFWDMless36mer36bp"/>
+        <option name="Yale Plc NgR RNA" value="encodeYaleMASPlacRNANprotTMREVMless36mer36bp"/>
+        <option name="Yale MAS RNA" value="encodeYaleMASPlacRNATransMap"/>
+        <option name="Yale Plc BtF RNA" value="encodeYaleMASPlacRNATransMapFwdMless36mer36bp"/>
+        <option name="Yale Plc BtR RNA" value="encodeYaleMASPlacRNATransMapRevMless36mer36bp"/>
+      </option>
+      <option name="encodeBuFirstExon" value="subtracks-encodeBuFirstExon">
+        <option name="BU First Exon" value="encodeBuFirstExon"/>
+        <option name="BU Cere. Cortex" value="encodeBuFirstExonCerebrum"/>
+        <option name="BU Colon" value="encodeBuFirstExonColon"/>
+        <option name="BU Heart" value="encodeBuFirstExonHeart"/>
+        <option name="BU Kidney" value="encodeBuFirstExonKidney"/>
+        <option name="BU Liver" value="encodeBuFirstExonLiver"/>
+        <option name="BU Lung" value="encodeBuFirstExonLung"/>
+        <option name="BU Skel. Muscle" value="encodeBuFirstExonSkMuscle"/>
+        <option name="BU Spleen" value="encodeBuFirstExonSpleen"/>
+        <option name="BU Stomach" value="encodeBuFirstExonStomach"/>
+        <option name="BU Testis" value="encodeBuFirstExonTestis"/>
+      </option>
+      <option name="encodeAffyEcSites" value="subtracks-encodeAffyEcSites">
+        <option name="EC1 Sites BrainC" value="encodeAffyEc1BrainCerebellumSites"/>
+        <option name="EC1 Sites BrainF" value="encodeAffyEc1BrainFrontalLobeSites"/>
+        <option name="EC1 Sites Hippoc" value="encodeAffyEc1BrainHippocampusSites"/>
+        <option name="EC1 Sites BrainH" value="encodeAffyEc1BrainHypothalamusSites"/>
+        <option name="EC1 Sites FetalK" value="encodeAffyEc1FetalKidneySites"/>
+        <option name="EC1 Sites Spleen" value="encodeAffyEc1FetalSpleenSites"/>
+        <option name="EC1 Sites FetalT" value="encodeAffyEc1FetalTestisSites"/>
+        <option name="EC1 Sites GM0699" value="encodeAffyEc1GM06990Sites"/>
+        <option name="EC1 Sites HeLa" value="encodeAffyEc1HeLaC1S3Sites"/>
+        <option name="EC1 Sites HepG2" value="encodeAffyEc1HepG2Sites"/>
+        <option name="EC1 Sites K562" value="encodeAffyEc1K562Sites"/>
+        <option name="EC1 Sites Ovary" value="encodeAffyEc1OvarySites"/>
+        <option name="EC1 Sites Placen" value="encodeAffyEc1PlacentaSites"/>
+        <option name="EC1 Sites Prost" value="encodeAffyEc1ProstateSites"/>
+        <option name="EC1 Sites TertBJ" value="encodeAffyEc1TertBJSites"/>
+        <option name="EC1 Sites Testis" value="encodeAffyEc1TestisSites"/>
+        <option name="EC51 Sites BrainC" value="encodeAffyEc51BrainCerebellumSites"/>
+        <option name="EC51 Site BrainF" value="encodeAffyEc51BrainFrontalLobeSites"/>
+        <option name="EC51 Site Hippoc" value="encodeAffyEc51BrainHippocampusSites"/>
+        <option name="EC51 Sites BrainH" value="encodeAffyEc51BrainHypothalamusSites"/>
+        <option name="EC51 Site FetalK" value="encodeAffyEc51FetalKidneySites"/>
+        <option name="EC51 Site Spleen" value="encodeAffyEc51FetalSpleenSites"/>
+        <option name="EC51 Site FetalT" value="encodeAffyEc51FetalTestisSites"/>
+        <option name="EC51 Site GM0699" value="encodeAffyEc51GM06990Sites"/>
+        <option name="EC51 Site HeLa" value="encodeAffyEc51HeLaC1S3Sites"/>
+        <option name="EC51 Site HepG2" value="encodeAffyEc51HepG2Sites"/>
+        <option name="EC51 Site K562" value="encodeAffyEc51K562Sites"/>
+        <option name="EC51 Site Ovary" value="encodeAffyEc51OvarySites"/>
+        <option name="EC51 Site Placen" value="encodeAffyEc51PlacentaSites"/>
+        <option name="EC51 Site Prost" value="encodeAffyEc51ProstateSites"/>
+        <option name="EC51 Site TertBJ" value="encodeAffyEc51TertBJSites"/>
+        <option name="EC51 Site Testis" value="encodeAffyEc51TestisSites"/>
+        <option name="Affy EC Sites" value="encodeAffyEcSites"/>
+      </option>
+      <option name="encodeStanfordPromoters" value="subtracks-encodeStanfordPromoters">
+        <option name="Stanf Promoter" value="encodeStanfordPromoters"/>
+        <option name="Stan Pro AGS" value="encodeStanfordPromotersAGS"/>
+        <option name="Stan Pro Average" value="encodeStanfordPromotersAverage"/>
+        <option name="Stan Pro Be2c" value="encodeStanfordPromotersBe2C"/>
+        <option name="Stan Pro CRL1690" value="encodeStanfordPromotersCRL1690"/>
+        <option name="Stan Pro G402" value="encodeStanfordPromotersG402"/>
+        <option name="Stan Pro HCT116" value="encodeStanfordPromotersHCT116"/>
+        <option name="Stan Pro HMCB" value="encodeStanfordPromotersHMCB"/>
+        <option name="Stan Pro HT1080" value="encodeStanfordPromotersHT1080"/>
+        <option name="Stan Pro HTB11" value="encodeStanfordPromotersHTB11"/>
+        <option name="Stan Pro Hela" value="encodeStanfordPromotersHela"/>
+        <option name="Stan Pro HepG2" value="encodeStanfordPromotersHepG2"/>
+        <option name="Stan Pro JEG3" value="encodeStanfordPromotersJEG3"/>
+        <option name="Stan Pro MG63" value="encodeStanfordPromotersMG63"/>
+        <option name="Stan Pro MRC5" value="encodeStanfordPromotersMRC5"/>
+        <option name="Stan Pro Panc1" value="encodeStanfordPromotersPanc1"/>
+        <option name="Stan Pro Snu182" value="encodeStanfordPromotersSnu182"/>
+        <option name="Stan Pro U87" value="encodeStanfordPromotersU87"/>
+      </option>
+        <option name="Affy RNA" value="encodeAffyRnaSuper"/>
+        <option name="Yale RNA" value="encodeYaleRnaSuper"/>
+      <option name="encodeAffyEcSignal" value="subtracks-encodeAffyEcSignal">
+        <option name="EC1 Sgnl BrainC" value="encodeAffyEc1BrainCerebellumSignal"/>
+        <option name="EC1 Sgnl BrainF" value="encodeAffyEc1BrainFrontalLobeSignal"/>
+        <option name="EC1 Sgnl Hippoc" value="encodeAffyEc1BrainHippocampusSignal"/>
+        <option name="EC1 Sgnl BrainH" value="encodeAffyEc1BrainHypothalamusSignal"/>
+        <option name="EC1 Sgnl FetalK" value="encodeAffyEc1FetalKidneySignal"/>
+        <option name="EC1 Sgnl Spleen" value="encodeAffyEc1FetalSpleenSignal"/>
+        <option name="EC1 Sgnl FetalT" value="encodeAffyEc1FetalTestisSignal"/>
+        <option name="EC1 Sgnl GM0699" value="encodeAffyEc1GM06990Signal"/>
+        <option name="EC1 Sgnl HeLa" value="encodeAffyEc1HeLaC1S3Signal"/>
+        <option name="EC1 Sgnl HepG2" value="encodeAffyEc1HepG2Signal"/>
+        <option name="EC1 Sgnl K562" value="encodeAffyEc1K562Signal"/>
+        <option name="EC1 Sgnl Ovary" value="encodeAffyEc1OvarySignal"/>
+        <option name="EC1 Sgnl Placen" value="encodeAffyEc1PlacentaSignal"/>
+        <option name="EC1 Sgnl Prost" value="encodeAffyEc1ProstateSignal"/>
+        <option name="EC1 Sgnl TertBJ" value="encodeAffyEc1TertBJSignal"/>
+        <option name="EC1 Sgnl Testis" value="encodeAffyEc1TestisSignal"/>
+        <option name="EC51 Sgnl BrainC" value="encodeAffyEc51BrainCerebellumSignal"/>
+        <option name="EC51 Sgnl BrainF" value="encodeAffyEc51BrainFrontalLobeSignal"/>
+        <option name="EC51 Sgnl Hippoc" value="encodeAffyEc51BrainHippocampusSignal"/>
+        <option name="EC51 Sgnl BrainH" value="encodeAffyEc51BrainHypothalamusSignal"/>
+        <option name="EC51 Sgnl FetalK" value="encodeAffyEc51FetalKidneySignal"/>
+        <option name="EC51 Sgnl Spleen" value="encodeAffyEc51FetalSpleenSignal"/>
+        <option name="EC51 Sgnl FetalT" value="encodeAffyEc51FetalTestisSignal"/>
+        <option name="EC51 Sgnl GM0699" value="encodeAffyEc51GM06990Signal"/>
+        <option name="EC51 Sgnl HeLa" value="encodeAffyEc51HeLaC1S3Signal"/>
+        <option name="EC51 Sgnl HepG2" value="encodeAffyEc51HepG2Signal"/>
+        <option name="EC51 Sgnl K562" value="encodeAffyEc51K562Signal"/>
+        <option name="EC51 Sgnl Ovary" value="encodeAffyEc51OvarySignal"/>
+        <option name="EC51 Sgnl Placen" value="encodeAffyEc51PlacentaSignal"/>
+        <option name="EC51 Sgnl Prost" value="encodeAffyEc51ProstateSignal"/>
+        <option name="EC51 Sgnl TertBJ" value="encodeAffyEc51TertBJSignal"/>
+        <option name="EC51 Sgnl Testis" value="encodeAffyEc51TestisSignal"/>
+        <option name="Affy EC Signal" value="encodeAffyEcSignal"/>
+      </option>
+        <option name="Stanf RTPCR" value="encodeStanfordRtPcr"/>
+      <option name="encodeAffyRnaTransfrags" value="subtracks-encodeAffyRnaTransfrags">
+        <option name="Affy RNA GM06990" value="encodeAffyRnaGm06990Sites"/>
+        <option name="Affy RNA HeLa" value="encodeAffyRnaHeLaSites"/>
+        <option name="Affy RNA RA 0h" value="encodeAffyRnaHl60SitesHr00"/>
+        <option name="Affy RNA RA 2h" value="encodeAffyRnaHl60SitesHr02"/>
+        <option name="Affy RNA RA 8h" value="encodeAffyRnaHl60SitesHr08"/>
+        <option name="Affy RNA RA 32h" value="encodeAffyRnaHl60SitesHr32"/>
+        <option name="Affy Transfrags" value="encodeAffyRnaTransfrags"/>
+      </option>
+      <option name="encodeYaleMASPlacRNATars" value="subtracks-encodeYaleMASPlacRNATars">
+        <option name="Yale NB4 NgF TAR" value="encodeYaleMASNB4RNANProtTarsFWDMless36mer36bp"/>
+        <option name="Yale NB4 NgR TAR" value="encodeYaleMASNB4RNANProtTarsREVMless36mer36bp"/>
+        <option name="Yale Plc NgF TAR" value="encodeYaleMASPlacRNANprotTarsFWDMless36mer36bp"/>
+        <option name="Yale Plc NgR TAR" value="encodeYaleMASPlacRNANprotTarsREVMless36mer36bp"/>
+        <option name="Yale MAS TAR" value="encodeYaleMASPlacRNATars"/>
+        <option name="Yale Plc BtF TAR" value="encodeYaleMASPlacRNATarsFwdMless36mer36bp"/>
+        <option name="Yale Plc BtR TAR" value="encodeYaleMASPlacRNATarsRevMless36mer36bp"/>
+      </option>
+        <option name="Affy EC" value="encodeAffyEcSuper"/>
+      <option name="encodeRikenCage" value="subtracks-encodeRikenCage">
+        <option name="Riken CAGE" value="encodeRikenCage"/>
+        <option name="Riken CAGE -" value="encodeRikenCageMinus"/>
+        <option name="Riken CAGE +" value="encodeRikenCagePlus"/>
+      </option>
+    </option>
+    <option name="ENCODE Chromatin Immunoprecipitation" value="group-encodeChip">
+      <option name="encodeAffyChIpHl60SignalStrict" value="subtracks-encodeAffyChIpHl60SignalStrict">
+        <option name="Affy Strict Sig" value="encodeAffyChIpHl60SignalStrict"/>
+        <option name="Affy H3K9ac2 0h" value="encodeAffyChIpHl60SignalStrictH3K9K14DHr00"/>
+        <option name="Affy H3K9ac2 2h" value="encodeAffyChIpHl60SignalStrictH3K9K14DHr02"/>
+        <option name="Affy H3K9ac2 8h" value="encodeAffyChIpHl60SignalStrictH3K9K14DHr08"/>
+        <option name="Affy H3K9ac2 32h" value="encodeAffyChIpHl60SignalStrictH3K9K14DHr32"/>
+        <option name="Affy H4Kac4 0h" value="encodeAffyChIpHl60SignalStrictHisH4Hr00"/>
+        <option name="Affy H4Kac4 2h" value="encodeAffyChIpHl60SignalStrictHisH4Hr02"/>
+        <option name="Affy H4Kac4 8h" value="encodeAffyChIpHl60SignalStrictHisH4Hr08"/>
+        <option name="Affy H4Kac4 32h" value="encodeAffyChIpHl60SignalStrictHisH4Hr32"/>
+        <option name="Affy Pol2 0h" value="encodeAffyChIpHl60SignalStrictPol2Hr00"/>
+        <option name="Affy Pol2 2h" value="encodeAffyChIpHl60SignalStrictPol2Hr02"/>
+        <option name="Affy Pol2 8h" value="encodeAffyChIpHl60SignalStrictPol2Hr08"/>
+        <option name="Affy Pol2 32h" value="encodeAffyChIpHl60SignalStrictPol2Hr32"/>
+        <option name="Affy p63 ME-180+" value="encodeAffyChIpHl60SignalStrictp63_ActD"/>
+        <option name="Affy p63 ME-180" value="encodeAffyChIpHl60SignalStrictp63_mActD"/>
+      </option>
+        <option name="Stanf ChIP" value="encodeStanfordChipSuper"/>
+      <option name="encodeYaleChIPSTAT1Pval" value="subtracks-encodeYaleChIPSTAT1Pval">
+        <option name="Yale LI PVal" value="encodeYaleChIPSTAT1HeLaBingRenPval"/>
+        <option name="Yale 36-36 PVal" value="encodeYaleChIPSTAT1HeLaMaskLess36mer36bpPval"/>
+        <option name="Yale 50-38 PVal" value="encodeYaleChIPSTAT1HeLaMaskLess50mer38bpPval"/>
+        <option name="Yale 50-50 PVal" value="encodeYaleChIPSTAT1HeLaMaskLess50mer50bpPval"/>
+        <option name="Yale STAT1 pVal" value="encodeYaleChIPSTAT1Pval"/>
+      </option>
+      <option name="encodeUtexStage" value="subtracks-encodeUtexStage">
+        <option name="UT-Austin STAGE" value="encodeUtexStage"/>
+        <option name="UT Myc HeLa Tags" value="encodeUtexStageCMycHelaTags"/>
+        <option name="UT STAT1 HeLa Tags" value="encodeUtexStageStat1HelaTags"/>
+      </option>
+        <option name="Sanger ChIP-chip" value="encodeSangerChipSuper"/>
+      <option name="encodeLIChIP" value="subtracks-encodeLIChIP">
+        <option name="LI ChIP Various" value="encodeLIChIP"/>
+        <option name="LI H3ac IMR90" value="encodeUcsdChipAch3Imr90_f"/>
+        <option name="LI H3K27me3 HeLa" value="encodeUcsdChipH3K27me3"/>
+        <option name="LI SUZ12 HeLa" value="encodeUcsdChipH3K27me3Suz12"/>
+        <option name="LI H3K4me2 IMR90" value="encodeUcsdChipMeh3k4Imr90_f"/>
+        <option name="LI Pol2 HCT116" value="encodeUcsdChipRnapHct116_f"/>
+        <option name="LI Pol2 HeLa" value="encodeUcsdChipRnapHela_f"/>
+        <option name="LI Pol2 IMR90" value="encodeUcsdChipRnapImr90_f"/>
+        <option name="LI Pol2 THP1" value="encodeUcsdChipRnapThp1_f"/>
+        <option name="LI TAF1 HCT116" value="encodeUcsdChipTaf250Hct116_f"/>
+        <option name="LI TAF1 HeLa" value="encodeUcsdChipTaf250Hela_f"/>
+        <option name="LI TAF1 IMR90" value="encodeUcsdChipTaf250Imr90_f"/>
+        <option name="LI TAF1 THP1" value="encodeUcsdChipTaf250Thp1_f"/>
+      </option>
+      <option name="encodeUtexChip" value="subtracks-encodeUtexChip">
+        <option name="UT-Austin ChIP" value="encodeUtexChip"/>
+        <option name="UT E2F4 st-Fb Pk" value="encodeUtexChip2091fibE2F4Peaks"/>
+        <option name="UT E2F4 Fb" value="encodeUtexChip2091fibE2F4Raw"/>
+        <option name="UT Myc Fb Pk" value="encodeUtexChip2091fibMycPeaks"/>
+        <option name="UT Myc Fb" value="encodeUtexChip2091fibMycRaw"/>
+        <option name="UT Myc st-Fb Pk" value="encodeUtexChip2091fibMycStimPeaks"/>
+        <option name="UT Myc st-Fb" value="encodeUtexChip2091fibMycStimRaw"/>
+        <option name="UT Myc HeLa Pk" value="encodeUtexChipHeLaMycPeaks"/>
+        <option name="UT Myc HeLa" value="encodeUtexChipHeLaMycRaw"/>
+      </option>
+      <option name="encodeYaleChipSig" value="subtracks-encodeYaleChipSig">
+        <option name="Yale ChIP Signal" value="encodeYaleChipSig"/>
+        <option name="YU BAF155 HeLa S" value="encodeYaleChipSignalBaf155"/>
+        <option name="YU BAF155 K562 S" value="encodeYaleChipSignalBaf155K562"/>
+        <option name="YU BAF170 HeLa S" value="encodeYaleChipSignalBaf170"/>
+        <option name="YU BAF170 K562 S" value="encodeYaleChipSignalBaf170K562"/>
+        <option name="YU BAF47 K562 S" value="encodeYaleChipSignalBaf47K562"/>
+        <option name="YU c-Fos HeLa S" value="encodeYaleChipSignalFos"/>
+        <option name="YU H3K27me3 HeLa S" value="encodeYaleChipSignalH3k27me3Hela"/>
+        <option name="YU H4Kac4 GM S" value="encodeYaleChipSignalH4kac4Gm06990"/>
+        <option name="YU H4Kac4 HeLa S" value="encodeYaleChipSignalH4kac4Hela"/>
+        <option name="YU c-Jun HeLa S" value="encodeYaleChipSignalJun"/>
+        <option name="YU NRSF HeLa S" value="encodeYaleChipSignalNrsfHela"/>
+        <option name="YU P65-C HeLa TNF S" value="encodeYaleChipSignalP65cHelaTnfa"/>
+        <option name="YU P65-N HeLa TNF S" value="encodeYaleChipSignalP65nHelaTnfa"/>
+        <option name="YU Pol2 GM S" value="encodeYaleChipSignalPol2Gm06990"/>
+        <option name="YU Pol2 HeLa S" value="encodeYaleChipSignalPol2Hela"/>
+        <option name="YU Pol2N GM S" value="encodeYaleChipSignalPol2nGm06990"/>
+        <option name="YU Pol2N HeLa S" value="encodeYaleChipSignalPol2nHela"/>
+        <option name="YU SMARCA4 HeLa S" value="encodeYaleChipSignalSmarca4Hela"/>
+        <option name="YU SMARCA6 HeLa S" value="encodeYaleChipSignalSmarca6Hela"/>
+        <option name="YU STAT1 HeLa IF S" value="encodeYaleChipSignalStat1HelaIfna"/>
+        <option name="YU TAF1 HeLa S" value="encodeYaleChipSignalTaf"/>
+      </option>
+        <option name="Uppsala ChIP" value="encodeUppsalaChipSuper"/>
+      <option name="encodeUppsalaChip" value="subtracks-encodeUppsalaChip">
+        <option name="Uppsala ChIP" value="encodeUppsalaChip"/>
+        <option name="UU H3ac HepG2" value="encodeUppsalaChipAch3"/>
+        <option name="UU HNF-3b HepG2" value="encodeUppsalaChipHnf3b"/>
+        <option name="UU HNF-4a HepG2" value="encodeUppsalaChipHnf4a"/>
+        <option name="UU USF-1 HepG2" value="encodeUppsalaChipUsf1"/>
+      </option>
+      <option name="encodeUcDavisChipHits" value="subtracks-encodeUcDavisChipHits">
+        <option name="UCD Ng ChIP Hits" value="encodeUcDavisChipHits"/>
+        <option name="UCD E2F1 Hits" value="encodeUcDavisChipHitsE2F1"/>
+        <option name="UCD c-Myc Hits" value="encodeUcDavisChipHitsMyc"/>
+      </option>
+      <option name="encodeUppsalaChipBut" value="subtracks-encodeUppsalaChipBut">
+        <option name="Uppsala ChIP Buty" value="encodeUppsalaChipBut"/>
+        <option name="UU H3ac HepG2 0h" value="encodeUppsalaChipH3acBut0h"/>
+        <option name="UU H3ac HepG2 12h" value="encodeUppsalaChipH3acBut12h"/>
+        <option name="UU H4ac HepG2 0h" value="encodeUppsalaChipH4acBut0h"/>
+        <option name="UU H4ac HepG2 12h" value="encodeUppsalaChipH4acBut12h"/>
+      </option>
+      <option name="encodeYaleChipSites" value="subtracks-encodeYaleChipSites">
+        <option name="Yale ChIP Sites" value="encodeYaleChipSites"/>
+        <option name="YU BAF155 HeLa" value="encodeYaleChipSitesBaf155"/>
+        <option name="YU BAF155 K562" value="encodeYaleChipSitesBaf155K562"/>
+        <option name="YU BAF170 HeLa" value="encodeYaleChipSitesBaf170"/>
+        <option name="YU BAF170 K562" value="encodeYaleChipSitesBaf170K562"/>
+        <option name="YU BAF47 K562" value="encodeYaleChipSitesBaf47K562"/>
+        <option name="YU c-Fos HeLa" value="encodeYaleChipSitesFos"/>
+        <option name="YU H3K27me3 HeLa" value="encodeYaleChipSitesH3k27me3Hela"/>
+        <option name="YU H4Kac4 GM" value="encodeYaleChipSitesH4kac4Gm06990"/>
+        <option name="YU H4Kac4 HeLa" value="encodeYaleChipSitesH4kac4Hela"/>
+        <option name="YU c-Jun HeLa" value="encodeYaleChipSitesJun"/>
+        <option name="YU NRSF HeLa" value="encodeYaleChipSitesNrsfHela"/>
+        <option name="YU P65-C HeLa TNF" value="encodeYaleChipSitesP65cHelaTnfa"/>
+        <option name="YU P65-N HeLa TNF" value="encodeYaleChipSitesP65nHelaTnfa"/>
+        <option name="YU Pol2 GM" value="encodeYaleChipSitesPol2Gm06990"/>
+        <option name="YU Pol2 HeLa" value="encodeYaleChipSitesPol2Hela"/>
+        <option name="YU Pol2N GM" value="encodeYaleChipSitesPol2nGm06990"/>
+        <option name="YU Pol2N HeLa" value="encodeYaleChipSitesPol2nHela"/>
+        <option name="YU SMARCA4 HeLa" value="encodeYaleChipSitesSmarca4Hela"/>
+        <option name="YU SMARCA6 HeLa" value="encodeYaleChipSitesSmarca6Hela"/>
+        <option name="YU STAT1 HeLa IF" value="encodeYaleChipSitesStat1HelaIfna"/>
+        <option name="YU TAF1 HeLa" value="encodeYaleChipSitesTaf"/>
+      </option>
+      <option name="encodeLIChIPgIF" value="subtracks-encodeLIChIPgIF">
+        <option name="LI gIF ChIP" value="encodeLIChIPgIF"/>
+        <option name="LI Pol2 -gIF" value="encodeUcsdChipHeLaH3H4RNAP_p0"/>
+        <option name="LI Pol2 +gIF" value="encodeUcsdChipHeLaH3H4RNAP_p30"/>
+        <option name="LI TAF1 -gIF" value="encodeUcsdChipHeLaH3H4TAF250_p0"/>
+        <option name="LI TAF1 +gIF" value="encodeUcsdChipHeLaH3H4TAF250_p30"/>
+        <option name="LI H3ac -gIF" value="encodeUcsdChipHeLaH3H4acH3_p0"/>
+        <option name="LI H3ac +gIF" value="encodeUcsdChipHeLaH3H4acH3_p30"/>
+        <option name="LI H4ac -gIF" value="encodeUcsdChipHeLaH3H4acH4_p0"/>
+        <option name="LI H4ac +gIF" value="encodeUcsdChipHeLaH3H4acH4_p30"/>
+        <option name="LI H3K4me2 -gIF" value="encodeUcsdChipHeLaH3H4dmH3K4_p0"/>
+        <option name="LI H3K4me2 +gIF" value="encodeUcsdChipHeLaH3H4dmH3K4_p30"/>
+        <option name="LI STAT1 -gIF" value="encodeUcsdChipHeLaH3H4stat1_p0"/>
+        <option name="LI STAT1 +gIF" value="encodeUcsdChipHeLaH3H4stat1_p30"/>
+        <option name="LI H3K4me3 -gIF" value="encodeUcsdChipHeLaH3H4tmH3K4_p0"/>
+        <option name="LI H3K4me3 +gIF" value="encodeUcsdChipHeLaH3H4tmH3K4_p30"/>
+      </option>
+        <option name="Yale WG ChIP-seq" value="wgEncodeYaleChipSeqSuper"/>
+      <option name="encodeStanfordChipSmoothed" value="subtracks-encodeStanfordChipSmoothed">
+        <option name="Stanf ChIP Score" value="encodeStanfordChipSmoothed"/>
+        <option name="Stan Sc HCT116 Sp1" value="encodeStanfordChipSmoothedHCT116Sp1"/>
+        <option name="Stan Sc HCT116 Sp3" value="encodeStanfordChipSmoothedHCT116Sp3"/>
+        <option name="Stan Sc Jurkat Sp1" value="encodeStanfordChipSmoothedJurkatSp1"/>
+        <option name="Stan Sc Jurkat Sp3" value="encodeStanfordChipSmoothedJurkatSp3"/>
+        <option name="Stan Sc K562 Sp1" value="encodeStanfordChipSmoothedK562Sp1"/>
+        <option name="Stan Sc K562 Sp3" value="encodeStanfordChipSmoothedK562Sp3"/>
+      </option>
+      <option name="encodeYaleChIPSTAT1Sites" value="subtracks-encodeYaleChIPSTAT1Sites">
+        <option name="Yale LI Sites" value="encodeYaleChIPSTAT1HeLaBingRenSites"/>
+        <option name="Yale 36-36 Sites" value="encodeYaleChIPSTAT1HeLaMaskLess36mer36bpSite"/>
+        <option name="Yale 50-38 Sites" value="encodeYaleChIPSTAT1HeLaMaskLess50mer38bpSite"/>
+        <option name="Yale 50-50 Sites" value="encodeYaleChIPSTAT1HeLaMaskLess50mer50bpSite"/>
+        <option name="Yale STAT1 Sites" value="encodeYaleChIPSTAT1Sites"/>
+      </option>
+        <option name="Affy ChIP" value="encodeAffyChipSuper"/>
+      <option name="encodeStanfordChip" value="subtracks-encodeStanfordChip">
+        <option name="Stanf ChIP" value="encodeStanfordChip"/>
+        <option name="Stan HCT116 Sp1" value="encodeStanfordChipHCT116Sp1"/>
+        <option name="Stan HCT116 Sp3" value="encodeStanfordChipHCT116Sp3"/>
+        <option name="Stan Jurkat Sp1" value="encodeStanfordChipJurkatSp1"/>
+        <option name="Stan Jurkat Sp3" value="encodeStanfordChipJurkatSp3"/>
+        <option name="Stan K562 Sp1" value="encodeStanfordChipK562Sp1"/>
+        <option name="Stan K562 Sp3" value="encodeStanfordChipK562Sp3"/>
+      </option>
+      <option name="encodeAffyChIpHl60SitesStrict" value="subtracks-encodeAffyChIpHl60SitesStrict">
+        <option name="Affy Strict Sites" value="encodeAffyChIpHl60SitesStrict"/>
+        <option name="Affy H3K9ac2 0h" value="encodeAffyChIpHl60SitesStrictH3K9K14DHr00"/>
+        <option name="Affy H3K9ac2 2h" value="encodeAffyChIpHl60SitesStrictH3K9K14DHr02"/>
+        <option name="Affy H3K9ac2 8h" value="encodeAffyChIpHl60SitesStrictH3K9K14DHr08"/>
+        <option name="Affy H3K9ac2 32h" value="encodeAffyChIpHl60SitesStrictH3K9K14DHr32"/>
+        <option name="Affy H4Kac4 0h" value="encodeAffyChIpHl60SitesStrictHisH4Hr00"/>
+        <option name="Affy H4Kac4 2h" value="encodeAffyChIpHl60SitesStrictHisH4Hr02"/>
+        <option name="Affy H4Kac4 8h" value="encodeAffyChIpHl60SitesStrictHisH4Hr08"/>
+        <option name="Affy H4Kac4 32h" value="encodeAffyChIpHl60SitesStrictHisH4Hr32"/>
+        <option name="Affy p63 ME-180+" value="encodeAffyChIpHl60SitesStrictP63_ActD"/>
+        <option name="Affy p63 ME-180" value="encodeAffyChIpHl60SitesStrictP63_mActD"/>
+        <option name="Affy Pol2 0h" value="encodeAffyChIpHl60SitesStrictRnapHr00"/>
+        <option name="Affy Pol2 2h" value="encodeAffyChIpHl60SitesStrictRnapHr02"/>
+        <option name="Affy Pol2 8h" value="encodeAffyChIpHl60SitesStrictRnapHr08"/>
+        <option name="Affy Pol2 32h" value="encodeAffyChIpHl60SitesStrictRnapHr32"/>
+      </option>
+      <option name="encodeAffyChIpHl60Pval" value="subtracks-encodeAffyChIpHl60Pval">
+        <option name="Affy pVal" value="encodeAffyChIpHl60Pval"/>
+        <option name="Affy Brg1 RA 0h" value="encodeAffyChIpHl60PvalBrg1Hr00"/>
+        <option name="Affy Brg1 RA 2h" value="encodeAffyChIpHl60PvalBrg1Hr02"/>
+        <option name="Affy Brg1 RA 8h" value="encodeAffyChIpHl60PvalBrg1Hr08"/>
+        <option name="Affy Brg1 RA 32h" value="encodeAffyChIpHl60PvalBrg1Hr32"/>
+        <option name="Affy CEBPe RA 0h" value="encodeAffyChIpHl60PvalCebpeHr00"/>
+        <option name="Affy CEBPe RA 2h" value="encodeAffyChIpHl60PvalCebpeHr02"/>
+        <option name="Affy CEBPe RA 8h" value="encodeAffyChIpHl60PvalCebpeHr08"/>
+        <option name="Affy CEBPe RA 32h" value="encodeAffyChIpHl60PvalCebpeHr32"/>
+        <option name="Affy CTCF RA 0h" value="encodeAffyChIpHl60PvalCtcfHr00"/>
+        <option name="Affy CTCF RA 2h" value="encodeAffyChIpHl60PvalCtcfHr02"/>
+        <option name="Affy CTCF RA 8h" value="encodeAffyChIpHl60PvalCtcfHr08"/>
+        <option name="Affy CTCF RA 32h" value="encodeAffyChIpHl60PvalCtcfHr32"/>
+        <option name="Affy H3K27me3 RA 0h" value="encodeAffyChIpHl60PvalH3K27me3Hr00"/>
+        <option name="Affy H3K27me3 RA 2h" value="encodeAffyChIpHl60PvalH3K27me3Hr02"/>
+        <option name="Affy H3K27me3 RA 8h" value="encodeAffyChIpHl60PvalH3K27me3Hr08"/>
+        <option name="Affy H3K27me3 RA 32h" value="encodeAffyChIpHl60PvalH3K27me3Hr32"/>
+        <option name="Affy H4Kac4 RA 0h" value="encodeAffyChIpHl60PvalH4Kac4Hr00"/>
+        <option name="Affy H4Kac4 RA 2h" value="encodeAffyChIpHl60PvalH4Kac4Hr02"/>
+        <option name="Affy H4Kac4 RA 8h" value="encodeAffyChIpHl60PvalH4Kac4Hr08"/>
+        <option name="Affy H4Kac4 RA 32h" value="encodeAffyChIpHl60PvalH4Kac4Hr32"/>
+        <option name="Affy P300 RA 0h" value="encodeAffyChIpHl60PvalP300Hr00"/>
+        <option name="Affy P300 RA 2h" value="encodeAffyChIpHl60PvalP300Hr02"/>
+        <option name="Affy P300 RA 8h" value="encodeAffyChIpHl60PvalP300Hr08"/>
+        <option name="Affy P300 RA 32h" value="encodeAffyChIpHl60PvalP300Hr32"/>
+        <option name="Affy PU1 RA 0h" value="encodeAffyChIpHl60PvalPu1Hr00"/>
+        <option name="Affy PU1 RA 2h" value="encodeAffyChIpHl60PvalPu1Hr02"/>
+        <option name="Affy PU1 RA 8h" value="encodeAffyChIpHl60PvalPu1Hr08"/>
+        <option name="Affy PU1 RA 32h" value="encodeAffyChIpHl60PvalPu1Hr32"/>
+        <option name="Affy RARA RA 0h" value="encodeAffyChIpHl60PvalRaraHr00"/>
+        <option name="Affy RARA RA 2h" value="encodeAffyChIpHl60PvalRaraHr02"/>
+        <option name="Affy RARA RA 8h" value="encodeAffyChIpHl60PvalRaraHr08"/>
+        <option name="Affy RARA RA 32h" value="encodeAffyChIpHl60PvalRaraHr32"/>
+        <option name="Affy Pol2 RA 0h" value="encodeAffyChIpHl60PvalRnapHr00"/>
+        <option name="Affy Pol2 RA 2h" value="encodeAffyChIpHl60PvalRnapHr02"/>
+        <option name="Affy Pol2 RA 8h" value="encodeAffyChIpHl60PvalRnapHr08"/>
+        <option name="Affy Pol2 RA 32h" value="encodeAffyChIpHl60PvalRnapHr32"/>
+        <option name="Affy SIRT1 RA 0h" value="encodeAffyChIpHl60PvalSirt1Hr00"/>
+        <option name="Affy SIRT1 RA 2h" value="encodeAffyChIpHl60PvalSirt1Hr02"/>
+        <option name="Affy SIRT1 RA 8h" value="encodeAffyChIpHl60PvalSirt1Hr08"/>
+        <option name="Affy SIRT1 RA 32h" value="encodeAffyChIpHl60PvalSirt1Hr32"/>
+        <option name="Affy TFIIB RA 32h" value="encodeAffyChIpHl60PvalTfiibHr32"/>
+      </option>
+      <option name="encodeYaleChipRfbr" value="subtracks-encodeYaleChipRfbr">
+        <option name="Yale ChIP RFBR" value="encodeYaleChipRfbr"/>
+        <option name="Yale RFBR Clusters" value="encodeYaleChipRfbrClusters"/>
+        <option name="Yale RFBR Deserts" value="encodeYaleChipRfbrDeserts"/>
+      </option>
+      <option name="encodeSangerChip" value="subtracks-encodeSangerChip">
+        <option name="Sanger ChIP" value="encodeSangerChip"/>
+        <option name="SI CTCF GM06990" value="encodeSangerChipCTCF"/>
+        <option name="SI H3K27me3 GM06990" value="encodeSangerChipH3K27me3"/>
+        <option name="SI H3K36me3 GM06990" value="encodeSangerChipH3K36me3"/>
+        <option name="SI H3K4m1 GM6990" value="encodeSangerChipH3K4me1"/>
+        <option name="SI H3K4me1 HFL-1" value="encodeSangerChipH3K4me1HFL1"/>
+        <option name="SI H3K4me1 HeLa" value="encodeSangerChipH3K4me1HeLa"/>
+        <option name="SI H3K4me1 MOLT4" value="encodeSangerChipH3K4me1Molt4"/>
+        <option name="SI H3K4me1 PTR8" value="encodeSangerChipH3K4me1Ptr8"/>
+        <option name="SI H3K4m2 GM6990" value="encodeSangerChipH3K4me2"/>
+        <option name="SI H3K4me2 HFL-1" value="encodeSangerChipH3K4me2HFL1"/>
+        <option name="SI H3K4me2 HeLa" value="encodeSangerChipH3K4me2HeLa"/>
+        <option name="SI H3K4me2 K562" value="encodeSangerChipH3K4me2K562"/>
+        <option name="SI H3K4me2 MOLT4" value="encodeSangerChipH3K4me2Molt4"/>
+        <option name="SI H3K4me2 PTR8" value="encodeSangerChipH3K4me2Ptr8"/>
+        <option name="SI H3K4m3 GM6990" value="encodeSangerChipH3K4me3"/>
+        <option name="SI H3K4me3 HFL-1" value="encodeSangerChipH3K4me3HFL1"/>
+        <option name="SI H3K4me3 HeLa" value="encodeSangerChipH3K4me3HeLa"/>
+        <option name="SI H3K4me3 K562" value="encodeSangerChipH3K4me3K562"/>
+        <option name="SI H3K4me3 MOLT4" value="encodeSangerChipH3K4me3Molt4"/>
+        <option name="SI H3K4me3 PTR8" value="encodeSangerChipH3K4me3Ptr8"/>
+        <option name="SI H3K79me3 GM06990" value="encodeSangerChipH3K79me3"/>
+        <option name="SI H3K9me3 GM06990" value="encodeSangerChipH3K9me3"/>
+        <option name="SI H3ac GM06990" value="encodeSangerChipH3ac"/>
+        <option name="SI H3ac HFL-1" value="encodeSangerChipH3acHFL1"/>
+        <option name="SI H3ac HeLa" value="encodeSangerChipH3acHeLa"/>
+        <option name="SI H3ac K562" value="encodeSangerChipH3acK562"/>
+        <option name="SI H3ac MOLT4" value="encodeSangerChipH3acMolt4"/>
+        <option name="SI H4ac GM06990" value="encodeSangerChipH4ac"/>
+        <option name="SI H4ac HFL-1" value="encodeSangerChipH4acHFL1"/>
+        <option name="SI H4ac HeLa" value="encodeSangerChipH4acHeLa"/>
+        <option name="SI H4ac K562" value="encodeSangerChipH4acK562"/>
+        <option name="SI H4ac MOLT4" value="encodeSangerChipH4acMolt4"/>
+      </option>
+      <option name="encodeAffyChIpHl60Sites" value="subtracks-encodeAffyChIpHl60Sites">
+        <option name="Affy Sites" value="encodeAffyChIpHl60Sites"/>
+        <option name="Affy Brg1 RA 0h" value="encodeAffyChIpHl60SitesBrg1Hr00"/>
+        <option name="Affy Brg1 RA 2h" value="encodeAffyChIpHl60SitesBrg1Hr02"/>
+        <option name="Affy Brg1 RA 8h" value="encodeAffyChIpHl60SitesBrg1Hr08"/>
+        <option name="Affy Brg1 RA 32h" value="encodeAffyChIpHl60SitesBrg1Hr32"/>
+        <option name="Affy CEBPe RA 0h" value="encodeAffyChIpHl60SitesCebpeHr00"/>
+        <option name="Affy CEBPe RA 2h" value="encodeAffyChIpHl60SitesCebpeHr02"/>
+        <option name="Affy CEBPe RA 8h" value="encodeAffyChIpHl60SitesCebpeHr08"/>
+        <option name="Affy CEBPe RA 32h" value="encodeAffyChIpHl60SitesCebpeHr32"/>
+        <option name="Affy CTCF RA 0h" value="encodeAffyChIpHl60SitesCtcfHr00"/>
+        <option name="Affy CTCF RA 2h" value="encodeAffyChIpHl60SitesCtcfHr02"/>
+        <option name="Affy CTCF RA 8h" value="encodeAffyChIpHl60SitesCtcfHr08"/>
+        <option name="Affy CTCF RA 32h" value="encodeAffyChIpHl60SitesCtcfHr32"/>
+        <option name="Affy H3K27me3 RA 0h" value="encodeAffyChIpHl60SitesH3K27me3Hr00"/>
+        <option name="Affy H3K27me3 RA 2h" value="encodeAffyChIpHl60SitesH3K27me3Hr02"/>
+        <option name="Affy H3K27me3 RA 8h" value="encodeAffyChIpHl60SitesH3K27me3Hr08"/>
+        <option name="Affy H3K27me3 RA 32h" value="encodeAffyChIpHl60SitesH3K27me3Hr32"/>
+        <option name="Affy H4Kac4 RA 0h" value="encodeAffyChIpHl60SitesH4Kac4Hr00"/>
+        <option name="Affy H4Kac4 RA 2h" value="encodeAffyChIpHl60SitesH4Kac4Hr02"/>
+        <option name="Affy H4Kac4 RA 8h" value="encodeAffyChIpHl60SitesH4Kac4Hr08"/>
+        <option name="Affy H4Kac4 RA 32h" value="encodeAffyChIpHl60SitesH4Kac4Hr32"/>
+        <option name="Affy P300 RA 0h" value="encodeAffyChIpHl60SitesP300Hr00"/>
+        <option name="Affy P300 RA 2h" value="encodeAffyChIpHl60SitesP300Hr02"/>
+        <option name="Affy P300 RA 8h" value="encodeAffyChIpHl60SitesP300Hr08"/>
+        <option name="Affy P300 RA 32h" value="encodeAffyChIpHl60SitesP300Hr32"/>
+        <option name="Affy PU1 RA 0h" value="encodeAffyChIpHl60SitesPu1Hr00"/>
+        <option name="Affy PU1 RA 2h" value="encodeAffyChIpHl60SitesPu1Hr02"/>
+        <option name="Affy PU1 RA 8h" value="encodeAffyChIpHl60SitesPu1Hr08"/>
+        <option name="Affy PU1 RA 32h" value="encodeAffyChIpHl60SitesPu1Hr32"/>
+        <option name="Affy RARA RA 0h" value="encodeAffyChIpHl60SitesRaraHr00"/>
+        <option name="Affy RARA RA 2h" value="encodeAffyChIpHl60SitesRaraHr02"/>
+        <option name="Affy RARA RA 8h" value="encodeAffyChIpHl60SitesRaraHr08"/>
+        <option name="Affy RARA RA 32h" value="encodeAffyChIpHl60SitesRaraHr32"/>
+        <option name="Affy Pol2 RA 0h" value="encodeAffyChIpHl60SitesRnapHr00"/>
+        <option name="Affy Pol2 RA 2h" value="encodeAffyChIpHl60SitesRnapHr02"/>
+        <option name="Affy Pol2 RA 8h" value="encodeAffyChIpHl60SitesRnapHr08"/>
+        <option name="Affy Pol2 RA 32h" value="encodeAffyChIpHl60SitesRnapHr32"/>
+        <option name="Affy SIRT1 RA 0h" value="encodeAffyChIpHl60SitesSirt1Hr00"/>
+        <option name="Affy SIRT1 RA 2h" value="encodeAffyChIpHl60SitesSirt1Hr02"/>
+        <option name="Affy SIRT1 RA 8h" value="encodeAffyChIpHl60SitesSirt1Hr08"/>
+        <option name="Affy SIRT1 RA 32h" value="encodeAffyChIpHl60SitesSirt1Hr32"/>
+        <option name="Affy TFIIB RA 32h" value="encodeAffyChIpHl60SitesTfiibHr32"/>
+      </option>
+        <option name="Yale ChIP" value="encodeYaleChipSuper"/>
+      <option name="encodeUcsdNgGif" value="subtracks-encodeUcsdNgGif">
+        <option name="LI Ng gIF ChIP" value="encodeUcsdNgGif"/>
+        <option name="LI H3ac -gIF" value="encodeUcsdNgHeLaAcH3_p0"/>
+        <option name="LI H3ac -gIF Pk" value="encodeUcsdNgHeLaAcH3_p0_peak"/>
+        <option name="LI H3ac +gIF" value="encodeUcsdNgHeLaAcH3_p30"/>
+        <option name="LI H3ac +gIF Pk" value="encodeUcsdNgHeLaAcH3_p30_peak"/>
+        <option name="LI H4ac -gIF" value="encodeUcsdNgHeLaAcH4_p0"/>
+        <option name="LI H4ac -gIF Pk" value="encodeUcsdNgHeLaAcH4_p0_peak"/>
+        <option name="LI H3K4me2 -gIF" value="encodeUcsdNgHeLaDmH3K4_p0"/>
+        <option name="LI H3K4m2 -IF Pk" value="encodeUcsdNgHeLaDmH3K4_p0_peak"/>
+        <option name="LI H3K4me2 +gIF" value="encodeUcsdNgHeLaDmH3K4_p30"/>
+        <option name="LI H3K4m2 +IF Pk" value="encodeUcsdNgHeLaDmH3K4_p30_peak"/>
+        <option name="LI H3K4me3 -gIF" value="encodeUcsdNgHeLaH3K4me3_p0"/>
+        <option name="LI H3K4m3 +gIF" value="encodeUcsdNgHeLaH3K4me3_p30"/>
+        <option name="LI Pol2 -gIF" value="encodeUcsdNgHeLaRnap_p0"/>
+        <option name="LI Pol2 +gIF" value="encodeUcsdNgHeLaRnap_p30"/>
+        <option name="LI STAT1 +gIF" value="encodeUcsdNgHeLaStat1_p30"/>
+        <option name="LI STAT1 +gIF Pk" value="encodeUcsdNgHeLaStat1_p30_peak"/>
+      </option>
+      <option name="encodeYaleChipPval" value="subtracks-encodeYaleChipPval">
+        <option name="Yale ChIP pVal" value="encodeYaleChipPval"/>
+        <option name="YU BAF155 HeLa P" value="encodeYaleChipPvalBaf155"/>
+        <option name="YU BAF155 K562 P" value="encodeYaleChipPvalBaf155K562"/>
+        <option name="YU BAF170 HeLa P" value="encodeYaleChipPvalBaf170"/>
+        <option name="YU BAF170 K562 P" value="encodeYaleChipPvalBaf170K562"/>
+        <option name="YU BAF47 K562 P" value="encodeYaleChipPvalBaf47K562"/>
+        <option name="YU c-Fos HeLa P" value="encodeYaleChipPvalFos"/>
+        <option name="YU H3K27me3 HeLa P" value="encodeYaleChipPvalH3k27me3Hela"/>
+        <option name="YU H4Kac4 GM P" value="encodeYaleChipPvalH4kac4Gm06990"/>
+        <option name="YU H4Kac4 HeLa P" value="encodeYaleChipPvalH4kac4Hela"/>
+        <option name="YU c-Jun HeLa P" value="encodeYaleChipPvalJun"/>
+        <option name="YU NRSF HeLa P" value="encodeYaleChipPvalNrsfHela"/>
+        <option name="YU P65-C HeLa TNF P" value="encodeYaleChipPvalP65cHelaTnfa"/>
+        <option name="YU P65-N HeLa TNF P" value="encodeYaleChipPvalP65nHelaTnfa"/>
+        <option name="YU Pol2 GM P" value="encodeYaleChipPvalPol2Gm06990"/>
+        <option name="YU Pol2 HeLa P" value="encodeYaleChipPvalPol2Hela"/>
+        <option name="YU Pol2N GM P" value="encodeYaleChipPvalPol2nGm06990"/>
+        <option name="YU Pol2N HeLa P" value="encodeYaleChipPvalPol2nHela"/>
+        <option name="YU SMARCA4 HeLa P" value="encodeYaleChipPvalSmarca4Hela"/>
+        <option name="YU SMARCA6 HeLa P" value="encodeYaleChipPvalSmarca6Hela"/>
+        <option name="YU STAT1 HeLa IF P" value="encodeYaleChipPvalStat1HelaIfna"/>
+        <option name="YU TAF1 HeLa P" value="encodeYaleChipPvalTaf"/>
+      </option>
+        <option name="UT-Austin ChIP" value="encodeUtexChipSuper"/>
+      <option name="encodeAffyChIpHl60PvalStrict" value="subtracks-encodeAffyChIpHl60PvalStrict">
+        <option name="Affy Strict pVal" value="encodeAffyChIpHl60PvalStrict"/>
+        <option name="Affy H3K9ac2 0h" value="encodeAffyChIpHl60PvalStrictH3K9K14DHr00"/>
+        <option name="Affy H3K9ac2 2h" value="encodeAffyChIpHl60PvalStrictH3K9K14DHr02"/>
+        <option name="Affy H3K9ac2 8h" value="encodeAffyChIpHl60PvalStrictH3K9K14DHr08"/>
+        <option name="Affy H3K9ac2 32h" value="encodeAffyChIpHl60PvalStrictH3K9K14DHr32"/>
+        <option name="Affy H4Kac4 0h" value="encodeAffyChIpHl60PvalStrictHisH4Hr00"/>
+        <option name="Affy H4Kac4 2h" value="encodeAffyChIpHl60PvalStrictHisH4Hr02"/>
+        <option name="Affy H4Kac4 8h" value="encodeAffyChIpHl60PvalStrictHisH4Hr08"/>
+        <option name="Affy H4Kac4 32h" value="encodeAffyChIpHl60PvalStrictHisH4Hr32"/>
+        <option name="Affy Pol2 0h" value="encodeAffyChIpHl60PvalStrictPol2Hr00"/>
+        <option name="Affy Pol2 2h" value="encodeAffyChIpHl60PvalStrictPol2Hr02"/>
+        <option name="Affy Pol2 8h" value="encodeAffyChIpHl60PvalStrictPol2Hr08"/>
+        <option name="Affy Pol2 32h" value="encodeAffyChIpHl60PvalStrictPol2Hr32"/>
+        <option name="Affy p63 ME-180+" value="encodeAffyChIpHl60PvalStrictp63_ActD"/>
+        <option name="Affy p63 ME-180" value="encodeAffyChIpHl60PvalStrictp63_mActD"/>
+      </option>
+        <option name="UC Davis ChIP" value="encodeUcDavisChipSuper"/>
+      <option name="encodeYaleChIPSTAT1Sig" value="subtracks-encodeYaleChIPSTAT1Sig">
+        <option name="Yale LI Sig" value="encodeYaleChIPSTAT1HeLaBingRenSig"/>
+        <option name="Yale 36-36 Sig" value="encodeYaleChIPSTAT1HeLaMaskLess36mer36bpSig"/>
+        <option name="Yale 50-38 Sig" value="encodeYaleChIPSTAT1HeLaMaskLess50mer38bpSig"/>
+        <option name="Yale 50-50 Sig" value="encodeYaleChIPSTAT1HeLaMaskLess50mer50bpSig"/>
+        <option name="Yale STAT1 Sig" value="encodeYaleChIPSTAT1Sig"/>
+      </option>
+      <option name="encodeUCDavisChip" value="subtracks-encodeUCDavisChip">
+        <option name="UCD Ng ChIP" value="encodeUCDavisChip"/>
+        <option name="UCD C-Myc" value="encodeUCDavisChipMyc"/>
+        <option name="UCD E2F1" value="encodeUCDavisE2F1Median"/>
+        <option name="UCD PolII_GM" value="encodeUCDavisPolIIGM"/>
+        <option name="UCD PolII_HelaS3" value="encodeUCDavisPolIIHelaS3"/>
+        <option name="UCD Taf_GM" value="encodeUCDavisTafGM"/>
+        <option name="UCD Taf_HelaS3" value="encodeUCDavisTafHelaS3"/>
+      </option>
+      <option name="encodeSangerChipHits" value="subtracks-encodeSangerChipHits">
+        <option name="SI H3K4m1 GM6990" value="encodeSangerChipHitH3K4me1GM06990"/>
+        <option name="SI H3K4me1 HeLa" value="encodeSangerChipHitH3K4me1HeLa"/>
+        <option name="SI H3K4m2 GM6990" value="encodeSangerChipHitH3K4me2GM06990"/>
+        <option name="SI H3K4me2 HeLa" value="encodeSangerChipHitH3K4me2HeLa"/>
+        <option name="SI H3K4me2 K562" value="encodeSangerChipHitH3K4me2K562"/>
+        <option name="SI H3K4m3 GM6990" value="encodeSangerChipHitH3K4me3GM06990"/>
+        <option name="SI H3K4me3 HeLa" value="encodeSangerChipHitH3K4me3HeLa"/>
+        <option name="SI H3K4me3 K562" value="encodeSangerChipHitH3K4me3K562"/>
+        <option name="SI H3ac GM06990" value="encodeSangerChipHitH3acGM06990"/>
+        <option name="SI H3ac HeLa" value="encodeSangerChipHitH3acHeLa"/>
+        <option name="SI H3ac K562" value="encodeSangerChipHitH3acK562"/>
+        <option name="SI H4ac GM06990" value="encodeSangerChipHitH4acGM06990"/>
+        <option name="SI H4ac HeLa" value="encodeSangerChipHitH4acHeLa"/>
+        <option name="SI H4ac K562" value="encodeSangerChipHitH4acK562"/>
+        <option name="Sanger ChIP Hits" value="encodeSangerChipHits"/>
+      </option>
+        <option name="LI/UCSD ChIP" value="encodeUcsdChipSuper"/>
+    </option>
+    <option name="ENCODE Chromosome, Chromatin and DNA Structure" value="group-encodeChrom">
+        <option name="BU ORChID" value="encodeBUORChID"/>
+      <option name="encodeUncFaire" value="subtracks-encodeUncFaire">
+        <option name="UNC FAIRE" value="encodeUncFaire"/>
+        <option name="FAIRE Signal" value="encodeUncFaireSignal"/>
+      </option>
+      <option name="encodeUvaDnaRepOrigins" value="subtracks-encodeUvaDnaRepOrigins">
+        <option name="UVa DNA Rep Ori" value="encodeUvaDnaRepOrigins"/>
+        <option name="UVa Ori-Bubble HeLa" value="encodeUvaDnaRepOriginsBubbleHela"/>
+        <option name="UVa Ori-NS GM" value="encodeUvaDnaRepOriginsNSGM"/>
+        <option name="UVa Ori-NS HeLa" value="encodeUvaDnaRepOriginsNSHela"/>
+        <option name="UVa Ori-TR50 HeLa" value="encodeUvaDnaRepOriginsTR50Hela"/>
+      </option>
+        <option name="UVa DNA Rep TR50" value="encodeUvaDnaRepTr50"/>
+        <option name="UVa DNA Rep" value="encodeUvaDnaRepSuper"/>
+      <option name="encodeUvaDnaRepSeg" value="subtracks-encodeUvaDnaRepSeg">
+        <option name="UVa DNA Rep Early" value="encodeUvaDnaRepEarly"/>
+        <option name="UVa DNA Rep Late" value="encodeUvaDnaRepLate"/>
+        <option name="UVa DNA Rep Mid" value="encodeUvaDnaRepMid"/>
+        <option name="UVa DNA Rep PanS" value="encodeUvaDnaRepPanS"/>
+        <option name="UVa DNA Rep Seg" value="encodeUvaDnaRepSeg"/>
+      </option>
+      <option name="encodeRegulomeDnaseArray" value="subtracks-encodeRegulomeDnaseArray">
+        <option name="UW DNase-array" value="encodeRegulomeDnaseArray"/>
+        <option name="DnaseI Sens" value="encodeRegulomeDnaseGM06990Sens"/>
+      </option>
+        <option name="UW DNase" value="encodeUwDnaseSuper"/>
+      <option name="encodeUWRegulomeBase" value="subtracks-encodeUWRegulomeBase">
+        <option name="UW DNase-QCP" value="encodeUWRegulomeBase"/>
+        <option name="CD4" value="encodeUWRegulomeBaseCD4"/>
+        <option name="CaCo2" value="encodeUWRegulomeBaseCaCo2"/>
+        <option name="CaLU3" value="encodeUWRegulomeBaseCaLU3"/>
+        <option name="EryAdult" value="encodeUWRegulomeBaseEryAdult"/>
+        <option name="EryFetal" value="encodeUWRegulomeBaseEryFetal"/>
+        <option name="GM" value="encodeUWRegulomeBaseGM"/>
+        <option name="HMEC" value="encodeUWRegulomeBaseHMEC"/>
+        <option name="HRE" value="encodeUWRegulomeBaseHRE"/>
+        <option name="HeLa" value="encodeUWRegulomeBaseHeLa"/>
+        <option name="HepG2" value="encodeUWRegulomeBaseHepG2"/>
+        <option name="Huh7" value="encodeUWRegulomeBaseHuh7"/>
+        <option name="K562" value="encodeUWRegulomeBaseK562"/>
+        <option name="NHBE" value="encodeUWRegulomeBaseNHBE"/>
+        <option name="PANC" value="encodeUWRegulomeBasePANC"/>
+        <option name="SAEC" value="encodeUWRegulomeBaseSAEC"/>
+        <option name="SKnSH" value="encodeUWRegulomeBaseSKnSH"/>
+      </option>
+      <option name="encodeNhgriDukeDnaseHs" value="subtracks-encodeNhgriDukeDnaseHs">
+        <option name="DNase CD4 Raw" value="encodeNhgriDnaseHsChipRawCd4"/>
+        <option name="DNase GM069 Raw" value="encodeNhgriDnaseHsChipRawGm06990"/>
+        <option name="DNase H9 Raw" value="encodeNhgriDnaseHsChipRawH9"/>
+        <option name="DNase HeLa Raw" value="encodeNhgriDnaseHsChipRawHela"/>
+        <option name="DNase HepG2 Raw" value="encodeNhgriDnaseHsChipRawHepG2"/>
+        <option name="DNase IMR90 Raw" value="encodeNhgriDnaseHsChipRawImr90"/>
+        <option name="DNase K562 Raw" value="encodeNhgriDnaseHsChipRawK562"/>
+        <option name="Duke/NHGRI DNase" value="encodeNhgriDukeDnaseHs"/>
+      </option>
+      <option name="encodeUvaDnaRep" value="subtracks-encodeUvaDnaRep">
+        <option name="UVa DNA Rep" value="encodeUvaDnaRep"/>
+        <option name="UVa DNA Rep 0h" value="encodeUvaDnaRep0"/>
+        <option name="UVa DNA Rep 2h" value="encodeUvaDnaRep2"/>
+        <option name="UVa DNA Rep 4h" value="encodeUvaDnaRep4"/>
+        <option name="UVa DNA Rep 6h" value="encodeUvaDnaRep6"/>
+        <option name="UVa DNA Rep 8h" value="encodeUvaDnaRep8"/>
+      </option>
+    </option>
+    <option name="ENCODE Regions and Genes" value="group-encodeGenes">
+      <option name="encodeGencodeGeneMar07" value="subtracks-encodeGencodeGeneMar07">
+        <option name="Gencode Ref" value="encodeGencodeGeneKnownMar07"/>
+        <option name="Gencode Genes Mar07" value="encodeGencodeGeneMar07"/>
+        <option name="Gencode Polymorph" value="encodeGencodeGenePolymorphicMar07"/>
+        <option name="Gencode Pseudo" value="encodeGencodeGenePseudoMar07"/>
+        <option name="Gencode Putative" value="encodeGencodeGenePutativeMar07"/>
+      </option>
+        <option name="Vienna RNAz" value="encodeUViennaRnaz"/>
+        <option name="Gencode Genes" value="encodeGencodeSuper"/>
+        <option name="EGASP" value="encodeEgaspSuper"/>
+      <option name="encodeGencodeRaceFrags" value="subtracks-encodeGencodeRaceFrags">
+        <option name="Gencode RACEfrags" value="encodeGencodeRaceFrags"/>
+        <option name="RACEfrags Brain" value="encodeGencodeRaceFragsBrain"/>
+        <option name="RACEfrags Colon" value="encodeGencodeRaceFragsColon"/>
+        <option name="RACEfrags GM06990" value="encodeGencodeRaceFragsGM06990"/>
+        <option name="RACEfrags HL60" value="encodeGencodeRaceFragsHL60"/>
+        <option name="RACEfrags Heart" value="encodeGencodeRaceFragsHeart"/>
+        <option name="RACEfrags HeLaS3" value="encodeGencodeRaceFragsHela"/>
+        <option name="RACEfrags Kidney" value="encodeGencodeRaceFragsKidney"/>
+        <option name="RACEfrags Liver" value="encodeGencodeRaceFragsLiver"/>
+        <option name="RACEfrags Lung" value="encodeGencodeRaceFragsLung"/>
+        <option name="RACEfrags Muscle" value="encodeGencodeRaceFragsMuscle"/>
+        <option name="RACEfrags Placenta" value="encodeGencodeRaceFragsPlacenta"/>
+        <option name="RACEfrags Primer" value="encodeGencodeRaceFragsPrimer"/>
+        <option name="RACEfrags Sm Int" value="encodeGencodeRaceFragsSmallIntest"/>
+        <option name="RACEfrags Spleen" value="encodeGencodeRaceFragsSpleen"/>
+        <option name="RACEfrags Stomach" value="encodeGencodeRaceFragsStomach"/>
+        <option name="RACEfrags Testis" value="encodeGencodeRaceFragsTestis"/>
+      </option>
+        <option name="Known+Pred RNA" value="encodeRna"/>
+      <option name="encodeEgaspFull" value="subtracks-encodeEgaspFull">
+        <option name="EGASP Full" value="encodeEgaspFull"/>
+        <option name="AceView" value="encodeEgaspFullAceview"/>
+        <option name="DOGFISH-C" value="encodeEgaspFullDogfish"/>
+        <option name="Ensembl" value="encodeEgaspFullEnsembl"/>
+        <option name="Ensembl Pseudo" value="encodeEgaspFullEnsemblPseudo"/>
+        <option name="Exogean" value="encodeEgaspFullExogean"/>
+        <option name="ExonHunter" value="encodeEgaspFullExonhunter"/>
+        <option name="Fgenesh++" value="encodeEgaspFullFgenesh"/>
+        <option name="GeneID" value="encodeEgaspFullGeneId"/>
+        <option name="GeneID U12" value="encodeEgaspFullGeneIdU12"/>
+        <option name="GeneMark" value="encodeEgaspFullGenemark"/>
+        <option name="Jigsaw" value="encodeEgaspFullJigsaw"/>
+        <option name="Pairgn/NSCAN-E/+" value="encodeEgaspFullPairagonAny"/>
+        <option name="Pairgn/NSCAN-E" value="encodeEgaspFullPairagonMrna"/>
+        <option name="NSCAN" value="encodeEgaspFullPairagonMultiple"/>
+        <option name="SGP2" value="encodeEgaspFullSgp2"/>
+        <option name="SGP2 U12" value="encodeEgaspFullSgp2U12"/>
+        <option name="Fgenesh Pseudo" value="encodeEgaspFullSoftberryPseudo"/>
+        <option name="SPIDA Exons" value="encodeEgaspFullSpida"/>
+        <option name="Twinscan" value="encodeEgaspFullTwinscan"/>
+      </option>
+      <option name="encodeGencodeGeneOct05" value="subtracks-encodeGencodeGeneOct05">
+        <option name="Gencode Ref" value="encodeGencodeGeneKnownOct05"/>
+        <option name="Gencode Genes Oct05" value="encodeGencodeGeneOct05"/>
+        <option name="Gencode Pseudo" value="encodeGencodeGenePseudoOct05"/>
+        <option name="Gencode Putative" value="encodeGencodeGenePutativeOct05"/>
+      </option>
+        <option name="Gencode Introns Oct05" value="encodeGencodeIntronOct05"/>
+      <option name="encodePseudogene" value="subtracks-encodePseudogene">
+        <option name="Pseudogenes" value="encodePseudogene"/>
+        <option name="Consensus Pseudogenes" value="encodePseudogeneConsensus"/>
+        <option name="GIS Pseudogenes" value="encodePseudogeneGIS"/>
+        <option name="Havana-Gencode Pseudogenes" value="encodePseudogeneHavana"/>
+        <option name="UCSC Retrogenes" value="encodePseudogeneUcsc"/>
+        <option name="UCSC Pseudogenes" value="encodePseudogeneUcsc2"/>
+        <option name="Yale Pseudogenes" value="encodePseudogeneYale"/>
+      </option>
+        <option name="ENCODE Regions" value="encodeRegions"/>
+      <option name="encodeEgaspUpdate" value="subtracks-encodeEgaspUpdate">
+        <option name="Augustus Update" value="encodeEgaspUpdAugustusAbinitio"/>
+        <option name="August/EST/Ms Upd" value="encodeEgaspUpdAugustusAny"/>
+        <option name="August/Mouse Upd" value="encodeEgaspUpdAugustusDual"/>
+        <option name="Augustus/EST Upd" value="encodeEgaspUpdAugustusEst"/>
+        <option name="Exogean Update" value="encodeEgaspUpdExogean"/>
+        <option name="FGenesh++ Upd" value="encodeEgaspUpdFgenesh"/>
+        <option name="GeneID Update" value="encodeEgaspUpdGeneId"/>
+        <option name="GeneID U12 Upd" value="encodeEgaspUpdGeneIdU12"/>
+        <option name="Jigsaw Update" value="encodeEgaspUpdJigsaw"/>
+        <option name="SGP2 Update" value="encodeEgaspUpdSgp2"/>
+        <option name="SGP2 U12 Update" value="encodeEgaspUpdSgp2U12"/>
+        <option name="Yale Pseudo Upd" value="encodeEgaspUpdYalePseudo"/>
+        <option name="EGASP Update" value="encodeEgaspUpdate"/>
+      </option>
+      <option name="encodeEgaspPartial" value="subtracks-encodeEgaspPartial">
+        <option name="ACEScan Cons Alt" value="encodeEgaspPartAceCons"/>
+        <option name="ACEScan Other" value="encodeEgaspPartAceOther"/>
+        <option name="Augustus" value="encodeEgaspPartAugustusAbinitio"/>
+        <option name="Augustus/EST/Mouse" value="encodeEgaspPartAugustusAny"/>
+        <option name="Augustus/Mouse" value="encodeEgaspPartAugustusDual"/>
+        <option name="Augustus/EST" value="encodeEgaspPartAugustusEst"/>
+        <option name="GeneZilla" value="encodeEgaspPartGenezilla"/>
+        <option name="SAGA" value="encodeEgaspPartSaga"/>
+        <option name="EGASP Partial" value="encodeEgaspPartial"/>
+      </option>
+    </option>
+  </options>
+</filter>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/annotation_profiler_valid_builds.txt.sample	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,1 @@
+hg18
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Mon May 19 12:33:42 2014 -0400
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="bx-python" version="0.7.1">
+    <repository changeset_revision="2d0c08728bca" name="package_bx_python_0_7" owner="devteam" toolshed="http://toolshed.g2.bx.psu.edu" />
+  </package>
+</tool_dependency>