changeset 4:3b1e54dc14d4

Deleted selected files
author xuebing
date Fri, 09 Mar 2012 19:56:45 -0500
parents 33c067c3ae34
children ab4c1343c972
files tools/mytools/.DS_Store tools/mytools/._.DS_Store tools/mytools/._StartGenometriCorr.xml tools/mytools/._Start_GenometriCorr.R tools/mytools/._align2database.py tools/mytools/._align2database.xml tools/mytools/._align2multiple.xml tools/mytools/._alignr.py tools/mytools/._alignr.xml tools/mytools/._alignvis.xml tools/mytools/._altschulEriksonDinuclShuffle.py tools/mytools/._bed_to_bam.xml tools/mytools/._bedclean.xml tools/mytools/._bedsort.xml tools/mytools/._bigWigAverageOverBed.xml tools/mytools/._binaverage.xml tools/mytools/._bowtie2bed.pl tools/mytools/._bowtie2bed.xml tools/mytools/._bwBinavg.xml tools/mytools/._cdf.r tools/mytools/._cdf.xml tools/mytools/._closestBed.xml tools/mytools/._collapseBed.py tools/mytools/._collapseBed.xml tools/mytools/._collapseTab.xml tools/mytools/._convertEnsembl.xml tools/mytools/._dreme.xml tools/mytools/._endbias.xml tools/mytools/._fastamarkov.xml tools/mytools/._fastashuffle1.xml tools/mytools/._fastashuffle2.xml tools/mytools/._fastqdump.xml tools/mytools/._fimo2-old.xml tools/mytools/._fimo2.xml tools/mytools/._fimo2bed.py tools/mytools/._fimo2bed.xml tools/mytools/._genomeView.xml tools/mytools/._genomeview-old2.r tools/mytools/._genomeview.r tools/mytools/._genomeview_notused tools/mytools/._headtail.xml tools/mytools/._intersectSig.xml tools/mytools/._intersectbed.xml tools/mytools/._intervalSize.xml tools/mytools/._iupac2meme.xml tools/mytools/._makebigwig.sh tools/mytools/._makebigwig.sh-old tools/mytools/._makebigwig.xml tools/mytools/._makewindow.xml tools/mytools/._meme.xml tools/mytools/._memelogo.xml tools/mytools/._metaintv.xml tools/mytools/._metaintv_ext.xml tools/mytools/._phastCons.xml tools/mytools/._plotmatrix.xml tools/mytools/._r_wrapper.sh tools/mytools/._r_wrapper_old.sh tools/mytools/._random_interval.py tools/mytools/._random_interval.xml tools/mytools/._removeDuplicate.xml tools/mytools/._resize.xml tools/mytools/._revcompl.py tools/mytools/._revcompl.xml tools/mytools/._sampline.py tools/mytools/._seq2meme.py tools/mytools/._seq2meme.xml tools/mytools/._seqshuffle.py tools/mytools/._shuffleBed.py tools/mytools/._shuffleBed.xml tools/mytools/._shuffleSequenceUsingAltschulErikson.txt tools/mytools/._spatial_proximity.xml tools/mytools/._splicesite.xml tools/mytools/._splicesitescore tools/mytools/._stats.txt tools/mytools/._venn.xml tools/mytools/.sorted.bed tools/mytools/AATAAA.motif tools/mytools/StartGenometriCorr.xml tools/mytools/Start_GenometriCorr.R tools/mytools/align2database.py tools/mytools/align2database.xml tools/mytools/align2multiple.xml tools/mytools/alignr.py tools/mytools/alignr.xml tools/mytools/alignvis.py tools/mytools/alignvis.r tools/mytools/alignvis.xml tools/mytools/altschulEriksonDinuclShuffle.py tools/mytools/bedClean.py tools/mytools/bed_to_bam.xml tools/mytools/bedclean.xml tools/mytools/bedsort.xml tools/mytools/bigWigAverageOverBed.xml tools/mytools/binaverage.xml tools/mytools/binnedAverage.py tools/mytools/bowtie2bed.pl tools/mytools/bowtie2bed.xml tools/mytools/bwBinavg.xml tools/mytools/cdf-old-not-used/._cdf.xml tools/mytools/cdf-old-not-used/._cdf2-old.xml tools/mytools/cdf-old-not-used/cdf.py tools/mytools/cdf-old-not-used/cdf.xml tools/mytools/cdf-old-not-used/cdf2-old.xml tools/mytools/cdf-old-not-used/cdf2.py tools/mytools/cdf.r tools/mytools/cdf.xml tools/mytools/closestBed.py tools/mytools/closestBed.xml tools/mytools/collapseBed.py tools/mytools/collapseBed.xml tools/mytools/collapseBed2.py tools/mytools/collapseTab.py tools/mytools/collapseTab.xml tools/mytools/convertEnsembl.py tools/mytools/convertEnsembl.xml tools/mytools/dreme.xml tools/mytools/dreme_out/dreme.html tools/mytools/dreme_out/dreme.txt tools/mytools/dreme_out/dreme.xml tools/mytools/endbias.py tools/mytools/endbias.xml tools/mytools/fasta-dinucleotide-shuffle.py tools/mytools/fastamarkov.xml tools/mytools/fastashuffle1.xml tools/mytools/fastashuffle2.xml tools/mytools/fastqdump.xml tools/mytools/fimo2-old.xml tools/mytools/fimo2.xml tools/mytools/fimo2bed.py tools/mytools/fimo2bed.xml tools/mytools/fimo_out/cisml.css tools/mytools/fimo_out/cisml.xml tools/mytools/fimo_out/fimo-to-html.xsl tools/mytools/fimo_out/fimo.gff tools/mytools/fimo_out/fimo.html tools/mytools/fimo_out/fimo.txt tools/mytools/fimo_out/fimo.wig tools/mytools/fimo_out/fimo.xml tools/mytools/genomeView.xml tools/mytools/genomeview-old2.r tools/mytools/genomeview.r tools/mytools/genomeview_notused tools/mytools/getGenomicScore.py tools/mytools/headtail.xml tools/mytools/intersectSig.py tools/mytools/intersectSig.xml tools/mytools/intersectbed.xml tools/mytools/intervalOverlap.py tools/mytools/intervalSize.py tools/mytools/intervalSize.xml tools/mytools/iupac2meme.xml tools/mytools/makebigwig.sh tools/mytools/makebigwig.sh-old tools/mytools/makebigwig.xml tools/mytools/makewindow.py tools/mytools/makewindow.xml tools/mytools/meme.xml tools/mytools/memelogo.xml tools/mytools/metaintv.py tools/mytools/metaintv.xml tools/mytools/metaintv2.py tools/mytools/metaintv3.py tools/mytools/metaintv_ext.py tools/mytools/metaintv_ext.xml tools/mytools/phastCons.xml tools/mytools/plotmatrix.py tools/mytools/plotmatrix.xml tools/mytools/ptb-3t3 tools/mytools/ptb-ptb tools/mytools/r_wrapper.sh tools/mytools/r_wrapper_old.sh tools/mytools/random_interval.py tools/mytools/random_interval.xml tools/mytools/removeDuplicate.xml tools/mytools/resize.py tools/mytools/resize.xml tools/mytools/revcompl.py tools/mytools/revcompl.xml tools/mytools/sampline.py tools/mytools/sampline.xml tools/mytools/seq2meme.py tools/mytools/seq2meme.xml tools/mytools/seqshuffle.py tools/mytools/sequence.py tools/mytools/shuffleBed.py tools/mytools/shuffleBed.xml tools/mytools/shuffleSequenceUsingAltschulErikson.txt tools/mytools/spatial_proximity.py tools/mytools/spatial_proximity.xml tools/mytools/splicesite.xml tools/mytools/splicesitescore/._me2x5 tools/mytools/splicesitescore/._score3.pl tools/mytools/splicesitescore/._score5.pl tools/mytools/splicesitescore/._splicemodels tools/mytools/splicesitescore/._test3 tools/mytools/splicesitescore/._test3.fa tools/mytools/splicesitescore/._test5 tools/mytools/splicesitescore/._test5.fa tools/mytools/splicesitescore/me2x5 tools/mytools/splicesitescore/score3.pl tools/mytools/splicesitescore/score5.pl tools/mytools/splicesitescore/splicemodels/._hashseq.m tools/mytools/splicesitescore/splicemodels/._hashseq.m~ tools/mytools/splicesitescore/splicemodels/._me1s0acc1 tools/mytools/splicesitescore/splicemodels/._me1s0acc2 tools/mytools/splicesitescore/splicemodels/._me1s0acc3 tools/mytools/splicesitescore/splicemodels/._me1s0acc4 tools/mytools/splicesitescore/splicemodels/._me1s0acc5 tools/mytools/splicesitescore/splicemodels/._me1s0acc6 tools/mytools/splicesitescore/splicemodels/._me1s0acc7 tools/mytools/splicesitescore/splicemodels/._me1s0acc8 tools/mytools/splicesitescore/splicemodels/._me1s0acc9 tools/mytools/splicesitescore/splicemodels/._me2s0 tools/mytools/splicesitescore/splicemodels/._me2s0acc1 tools/mytools/splicesitescore/splicemodels/._me2s0acc2 tools/mytools/splicesitescore/splicemodels/._me2s0acc3 tools/mytools/splicesitescore/splicemodels/._me2s0acc4 tools/mytools/splicesitescore/splicemodels/._me2s0acc5 tools/mytools/splicesitescore/splicemodels/._me2s0acc6 tools/mytools/splicesitescore/splicemodels/._me2s0acc7 tools/mytools/splicesitescore/splicemodels/._me2s0acc8 tools/mytools/splicesitescore/splicemodels/._me2s0acc9 tools/mytools/splicesitescore/splicemodels/._me2x3acc1 tools/mytools/splicesitescore/splicemodels/._me2x3acc2 tools/mytools/splicesitescore/splicemodels/._me2x3acc3 tools/mytools/splicesitescore/splicemodels/._me2x3acc4 tools/mytools/splicesitescore/splicemodels/._me2x3acc5 tools/mytools/splicesitescore/splicemodels/._me2x3acc6 tools/mytools/splicesitescore/splicemodels/._me2x3acc7 tools/mytools/splicesitescore/splicemodels/._me2x3acc8 tools/mytools/splicesitescore/splicemodels/._me2x3acc9 tools/mytools/splicesitescore/splicemodels/._me2x5 tools/mytools/splicesitescore/splicemodels/._splice5sequences tools/mytools/splicesitescore/splicemodels/hashseq.m tools/mytools/splicesitescore/splicemodels/hashseq.m~ tools/mytools/splicesitescore/splicemodels/me1s0acc1 tools/mytools/splicesitescore/splicemodels/me1s0acc2 tools/mytools/splicesitescore/splicemodels/me1s0acc3 tools/mytools/splicesitescore/splicemodels/me1s0acc4 tools/mytools/splicesitescore/splicemodels/me1s0acc5 tools/mytools/splicesitescore/splicemodels/me1s0acc6 tools/mytools/splicesitescore/splicemodels/me1s0acc7 tools/mytools/splicesitescore/splicemodels/me1s0acc8 tools/mytools/splicesitescore/splicemodels/me1s0acc9 tools/mytools/splicesitescore/splicemodels/me2s0 tools/mytools/splicesitescore/splicemodels/me2s0acc1 tools/mytools/splicesitescore/splicemodels/me2s0acc2 tools/mytools/splicesitescore/splicemodels/me2s0acc3 tools/mytools/splicesitescore/splicemodels/me2s0acc4 tools/mytools/splicesitescore/splicemodels/me2s0acc5 tools/mytools/splicesitescore/splicemodels/me2s0acc6 tools/mytools/splicesitescore/splicemodels/me2s0acc7 tools/mytools/splicesitescore/splicemodels/me2s0acc8 tools/mytools/splicesitescore/splicemodels/me2s0acc9 tools/mytools/splicesitescore/splicemodels/me2x3acc1 tools/mytools/splicesitescore/splicemodels/me2x3acc2 tools/mytools/splicesitescore/splicemodels/me2x3acc3 tools/mytools/splicesitescore/splicemodels/me2x3acc4 tools/mytools/splicesitescore/splicemodels/me2x3acc5 tools/mytools/splicesitescore/splicemodels/me2x3acc6 tools/mytools/splicesitescore/splicemodels/me2x3acc7 tools/mytools/splicesitescore/splicemodels/me2x3acc8 tools/mytools/splicesitescore/splicemodels/me2x3acc9 tools/mytools/splicesitescore/splicemodels/me2x5 tools/mytools/splicesitescore/splicemodels/splice5sequences tools/mytools/splicesitescore/test3 tools/mytools/splicesitescore/test3.fa tools/mytools/splicesitescore/test5 tools/mytools/splicesitescore/test5.fa tools/mytools/stats.txt tools/mytools/venn.xml
diffstat 269 files changed, 0 insertions(+), 342383 deletions(-) [+]
line wrap: on
line diff
Binary file tools/mytools/.DS_Store has changed
Binary file tools/mytools/._.DS_Store has changed
Binary file tools/mytools/._StartGenometriCorr.xml has changed
Binary file tools/mytools/._Start_GenometriCorr.R has changed
Binary file tools/mytools/._align2database.py has changed
Binary file tools/mytools/._align2database.xml has changed
Binary file tools/mytools/._align2multiple.xml has changed
Binary file tools/mytools/._alignr.py has changed
Binary file tools/mytools/._alignr.xml has changed
Binary file tools/mytools/._alignvis.xml has changed
Binary file tools/mytools/._altschulEriksonDinuclShuffle.py has changed
Binary file tools/mytools/._bed_to_bam.xml has changed
Binary file tools/mytools/._bedclean.xml has changed
Binary file tools/mytools/._bedsort.xml has changed
Binary file tools/mytools/._bigWigAverageOverBed.xml has changed
Binary file tools/mytools/._binaverage.xml has changed
Binary file tools/mytools/._bowtie2bed.pl has changed
Binary file tools/mytools/._bowtie2bed.xml has changed
Binary file tools/mytools/._bwBinavg.xml has changed
Binary file tools/mytools/._cdf.r has changed
Binary file tools/mytools/._cdf.xml has changed
Binary file tools/mytools/._closestBed.xml has changed
Binary file tools/mytools/._collapseBed.py has changed
Binary file tools/mytools/._collapseBed.xml has changed
Binary file tools/mytools/._collapseTab.xml has changed
Binary file tools/mytools/._convertEnsembl.xml has changed
Binary file tools/mytools/._dreme.xml has changed
Binary file tools/mytools/._endbias.xml has changed
Binary file tools/mytools/._fastamarkov.xml has changed
Binary file tools/mytools/._fastashuffle1.xml has changed
Binary file tools/mytools/._fastashuffle2.xml has changed
Binary file tools/mytools/._fastqdump.xml has changed
Binary file tools/mytools/._fimo2-old.xml has changed
Binary file tools/mytools/._fimo2.xml has changed
Binary file tools/mytools/._fimo2bed.py has changed
Binary file tools/mytools/._fimo2bed.xml has changed
Binary file tools/mytools/._genomeView.xml has changed
Binary file tools/mytools/._genomeview-old2.r has changed
Binary file tools/mytools/._genomeview.r has changed
Binary file tools/mytools/._genomeview_notused has changed
Binary file tools/mytools/._headtail.xml has changed
Binary file tools/mytools/._intersectSig.xml has changed
Binary file tools/mytools/._intersectbed.xml has changed
Binary file tools/mytools/._intervalSize.xml has changed
Binary file tools/mytools/._iupac2meme.xml has changed
Binary file tools/mytools/._makebigwig.sh has changed
Binary file tools/mytools/._makebigwig.sh-old has changed
Binary file tools/mytools/._makebigwig.xml has changed
Binary file tools/mytools/._makewindow.xml has changed
Binary file tools/mytools/._meme.xml has changed
Binary file tools/mytools/._memelogo.xml has changed
Binary file tools/mytools/._metaintv.xml has changed
Binary file tools/mytools/._metaintv_ext.xml has changed
Binary file tools/mytools/._phastCons.xml has changed
Binary file tools/mytools/._plotmatrix.xml has changed
Binary file tools/mytools/._r_wrapper.sh has changed
Binary file tools/mytools/._r_wrapper_old.sh has changed
Binary file tools/mytools/._random_interval.py has changed
Binary file tools/mytools/._random_interval.xml has changed
Binary file tools/mytools/._removeDuplicate.xml has changed
Binary file tools/mytools/._resize.xml has changed
Binary file tools/mytools/._revcompl.py has changed
Binary file tools/mytools/._revcompl.xml has changed
Binary file tools/mytools/._sampline.py has changed
Binary file tools/mytools/._seq2meme.py has changed
Binary file tools/mytools/._seq2meme.xml has changed
Binary file tools/mytools/._seqshuffle.py has changed
Binary file tools/mytools/._shuffleBed.py has changed
Binary file tools/mytools/._shuffleBed.xml has changed
Binary file tools/mytools/._shuffleSequenceUsingAltschulErikson.txt has changed
Binary file tools/mytools/._spatial_proximity.xml has changed
Binary file tools/mytools/._splicesite.xml has changed
Binary file tools/mytools/._splicesitescore has changed
Binary file tools/mytools/._stats.txt has changed
Binary file tools/mytools/._venn.xml has changed
--- a/tools/mytools/AATAAA.motif	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-MEME version 4.4
-
-ALPHABET= ACGT
-
-strands: + -
-
-Background letter frequencies (from uniform background):
-A 0.25000 C 0.25000 G 0.25000 T 0.25000 
-
-MOTIF AATAAA 
-
-letter-probability matrix: alength= 4 w= 6 nsites= 20 E= 0
-  1.000000	  0.000000	  0.000000	  0.000000	
-  1.000000	  0.000000	  0.000000	  0.000000	
-  0.000000	  0.000000	  0.000000	  1.000000	
-  1.000000	  0.000000	  0.000000	  0.000000	
-  1.000000	  0.000000	  0.000000	  0.000000	
-  1.000000	  0.000000	  0.000000	  0.000000	
-
--- a/tools/mytools/StartGenometriCorr.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<tool id="genometric_correlation" name="Genometric Correlation">
-<description>between two files of genomic intervals</description>
-<command interpreter="Rscript --vanilla">
-Start_GenometriCorr.R $config $query $reference $output_options $output
-</command>
-<inputs>
-<param format="text" name="config" type="data" label="Configuration file"/>
-<param format="text" name="query" type="data" label="Query intervals file"/>
-<param format="text" name="reference" type="data" label="Reference intervals file"/>
-<param name="output_options" type="select" label="Type of output">
-<option value="plot">ECDF plots</option>
-<option value="vis">Graphic visualization</option>
-<option value="stats">Text output of statistics</option>
-<option value="plot_vis">All</option>
-</param>
-</inputs>
-<outputs>
-<data name="output" format="pdf"/>
-</outputs>
-<help>
-This tool determines the statistical relationship (if any) between two sets of genomic intervals. Output can be text only, plot (ECDF curves), or a more colorful graphic.
-</help>
-</tool>
\ No newline at end of file
--- a/tools/mytools/Start_GenometriCorr.R	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-# Start_GenometriCorr.R
-
-###################################################
-#                                                 #
-#  command-line interface to GenometriCorr        #
-#  functions, for use with Galaxy.                #
-#                                                 #
-###################################################
-
-capture.output <- function (result, pdffile, output_options)
-{
-   if(output_options != "stats")
-   {
-      pdf(file=pdffile, width=10, height=19, paper="special")
-   
-      if (output_options != "vis")   #need to do a plot
-      {
-         mymat <- matrix(ncol=3, nrow=4)
-         mymat[1,1] <- 1
-         mymat[1,2] <- 2
-         mymat[1,3] <- 3
-         mymat[2,1] <- 4
-         mymat[2,2] <- 5
-         mymat[2,3] <- 6
-         mymat[3,1] <- 7
-         mymat[3,2] <- 8
-         mymat[3,3] <- 9
-         mymat[4,1] <- 10
-         mymat[4,2] <- 11
-         mymat[4,3] <- 12
-       
-         layout(mymat, heights=c(0.2,0.2,0.2,0.2))
-         plot(result, pdffile, make.new=FALSE)
-      }
-      if (output_options != "plot")  #need to do the bigger graphic
-      {
-         mymat <- matrix(ncol=2, nrow=8)
-         mymat[1,1] <- 2
-         mymat[1,2] <- 3
-         mymat[2,1] <- 4
-         mymat[2,2] <- 4
-         mymat[3,1] <- 1
-         mymat[3,2] <- 1
-         mymat[4,1] <- 5
-         mymat[4,2] <- 6
-         mymat[5,1] <- 7
-         mymat[5,2] <- 7
-         mymat[6,1] <- 8
-         mymat[6,2] <- 9 
-         mymat[7,1] <- 10
-         mymat[7,2] <- 10
-         mymat[8,1] <- 11
-         mymat[8,2] <- 12
-         layoutresults <- 3
-         
-         layout(mymat, heights=c(0.05,0.05,0.15,0.15,0.15,0.15,0.15,0.15))
-         visualize(result, pdffile, make.new=FALSE) 
-      }
-      dev.off()
-   } 
-   
-   if (output_options == "stats")
-   {
-      show(result)
-   }
-}
-
-
-
-# Reads the command line arguments
-args <- commandArgs(trailingOnly=T)
-
-suppressPackageStartupMessages(library('GenometriCorr',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('graphics',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('gdata',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('gplots',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('gtools',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('caTools',  warn.conflicts=F, verbose=F))
-suppressPackageStartupMessages(library('grid',  warn.conflicts=F, verbose=F))
-
-
-
-# Variables
-query_file <- ""
-reference_file <- ""
-config_file <- ""
-output_options <- ""
-
-# Parse the command line arguments
-
-config_file <- args[1]
-query_file <- as.character(args[2])
-reference_file <- as.character(args[3])
-output_options <- args[4]
-pdffile <- args[5]
-
-conf<-new("GenometriCorrConfig",config_file)
-
-print('OK')
-
-result<-suppressWarnings(suppressPackageStartupMessages(GenometriCorr:::run.config(conf,query=query_file,reference=reference_file)))
-print('OK2')
-
-hideoutput <- capture.output(result, pdffile=args[5], output_options)
-
--- a/tools/mytools/align2database.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-'''
-align mulitple bed to one bed
-python align_multiple.py hmChIP_mm9_peak_bed/mm9-GSE19999_PolII_P25_all.cod.bed hmChIP_mm9_peak_bed/ test.txt test.pdf 100 5000
-'''
-
-import os,sys,random
-def main():
-    queryfile = sys.argv[1]
-    inpath = sys.argv[2]
-    outputdata = sys.argv[3]
-    outputerr = sys.argv[4]
-    barplotpdf = sys.argv[5]
-    min_feat = sys.argv[6] # min features overlap
-    windowsize = sys.argv[7]
-    anchor = sys.argv[8]
-    span = sys.argv[9] # loess smooth parameter
-        
-    inpath = inpath.rstrip('/')
-    #os.system('rm '+inpath+'/*tmp*')
-
-    infiles = os.listdir(inpath)
-
-    #print len(infiles),' files\n'
-    i = 0
-    for infile in infiles:
-        if 'tmp' in infile:
-            #os.system('rm '+inpath+'/'+infile)
-            continue
-        i = i +1
-        print i,infile
-        output = infile.split('/')[-1]+'-to-'+queryfile.split('/')[-1]#'.summary'
-        if anchor == 'database':
-            command = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -b '+inpath+'/'+infile+' -a '+queryfile+' -o '+output+' --summary-only -q -w '+windowsize
-        else:
-            command = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -a '+inpath+'/'+infile+' -b '+queryfile+' -o '+output+' --summary-only -q -w '+windowsize            
-        #print command+'\n'
-        os.system(command)
-    print 'start visualization...'
-    # visualize
-    rscriptfile = 'f-'+str(random.random())+'.r'
-    r = open(rscriptfile,'w')
-    r.write("files <- dir('.','summary',full.name=T)\n")
-    #r.write("print(files)\n")    
-    r.write("x <- read.table(files[1])\n")
-    r.write("err <- read.table(gsub('summary','standarderror',files[1]))\n")
-    r.write("for (filename in files[2:length(files)]){\n")
-    r.write("   x <- rbind(x,read.table(filename))\n")
-    r.write("   err <- rbind(err,read.table(gsub('summary','standarderror',filename)))\n")    
-    r.write("}\n")
-    r.write("x <- x[x[,2] > "+min_feat+",]\n")
-    r.write("err <- err[err[,2] > "+min_feat+",]\n")    
-    r.write("name <- as.character(x[,1])\n")
-    r.write("nfeat <- x[,2]\n")
-    r.write("x <- x[,3:ncol(x)]\n")
-    r.write("err <- err[,3:ncol(err)]\n")    
-    r.write("for (i in 1:nrow(x)) {\n")
-    r.write("    name[i] <- strsplit(name[i],'-to-')[[1]][1]\n")
-    r.write("}\n")
-    # remove rows that have no variation, which cause problem in heatmap. This is the case when align to itself
-    r.write("toremove <- seq(nrow(x))\n")
-    r.write("for (i in 1:nrow(x)){\n")
-    r.write("    toremove[i] <- all(x[i,] == x[i,1])\n")
-    r.write("}\n")
-    r.write("x <- x[!toremove,]\n")
-    r.write("err <- err[!toremove,]\n")
-    r.write("name <- name[!toremove]\n")
-    r.write("nfeat <- nfeat[!toremove]\n")
-    r.write("write.table(cbind(name,nfeat,x),file='"+outputdata+"',sep ='\\t',quote=F,row.names=F,col.names=F)\n")
-    r.write("write.table(cbind(name,nfeat,err),file='"+outputerr+"',sep ='\\t',quote=F,row.names=F,col.names=F)\n")
-        
-    r.write("pdf('"+barplotpdf+"')\n")
-    r.write("heatmap(t(scale(t(as.matrix(x,nc=ncol(x))))),Colv=NA,labRow=name,labCol=NA,margins=c(1,8),cexRow=0.02+1/log(nrow(x)),col=heat.colors(1000))\n")
-
-    if windowsize != '0' :
-        r.write("xticks <- seq(-"+windowsize+","+windowsize+",length.out=100)\n")
-        r.write("xlab <- 'relative position (bp)'\n")
-    else:
-        r.write("xticks <- seq(100)\n")
-        r.write("xlab <- 'relative position (bin)'\n")
-        
-    #r.write("plot(xticks,colSums(t(scale(t(as.matrix(x,nc=ncol(x)))))),xlab='relative position (bp)',type='l',lwd=2,main='total signal')\n")
-    r.write("for (i in 1:nrow(x)) {\n")
-    r.write("   avg <- x[i,]/nfeat[i]\n")
-    #r.write("   maxv <- max(avg)\n")
-    #r.write("   minv <- min(avg)\n")
-    #r.write("   medv <- median(avg)\n")
-    #r.write("   if (maxv < "+fold+"*medv | minv*"+fold+">medv){next}\n")
-    #smooth
-    if float(span) >= 0.1:
-        r.write("   avg = loess(as.numeric(avg)~xticks,span="+span+")$fitted\n")
-        r.write("   err[i,] = loess(as.numeric(err[i,])~xticks,span="+span+")$fitted\n")
-    r.write("   par(cex=1.5)\n")
-    r.write("   plot(xticks,avg,ylab='average coverage',main=paste(name[i],'\n n=',nfeat[i],sep=''),xlab=xlab,type='l',lwd=1,ylim=c(min(avg-err[i,]),max(avg+err[i,])))\n")   
-    r.write("   polygon(c(xticks,rev(xticks)),c(avg+err[i,],rev(avg-err[i,])),col='slateblue1',border=NA)\n")
-    r.write("   lines(xticks,avg,type='l',lwd=1)\n")   
-    r.write("}\n")
-    r.write("dev.off()\n")
-    r.close()
-    os.system("R --vanilla < "+rscriptfile)    
-    os.system('rm '+rscriptfile)
-    os.system('rm *.summary')
-    os.system('rm *.standarderror')
-
-main()
--- a/tools/mytools/align2database.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<tool id="align2database" name="align-to-database">
-  <description> features </description>
-  <command interpreter="python"> align2database.py $query $database $output_coverage $output_standarderror $output_plot $minfeat $windowsize $anchor $span> $outlog </command>
-  <inputs>
-    <param name="query" type="data" format="interval" label="Query intervals" help= "keep it small (less than 1,000,000 lines)"/>
-    <param name="database" type="select" label="Feature database">
-     <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/mm9/feature_database" selected="true">All mm9 features (over 200)</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/mm9/annotation">Annotated mm9 features</option>   
-     <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/mm9/CLIP">protein bound RNA (CLIP) mm9 </option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/mm9/conservedmiRNAseedsite">conserved miRNA target sites mm9 </option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/hg18/all-feature">Human ChIP hmChIP database hg18</option>
-      <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/hg18/gene-feature">Human gene features hg18</option>
-       <option value="/Users/xuebing/galaxy-dist/tool-data/aligndb/hg19/conservedmiRNAseedsite">conserved miRNA target sites hg19 </option>
-    </param>
-    <param name="anchor" label="Anchor to query features" help="default anchoring to database featuers" type="boolean" truevalue="query" falsevalue="database" checked="False"/>
-        <param name="windowsize" size="10" type="integer" value="5000" label="Window size (-w)"  help="will create new intervals of w bp flanking the original center. set to 0 will not change input interval size)"/>
-    <param name="minfeat" size="10" type="integer" value="100" label="Minimum number of query intervals hits" help="database features overlapping with too few query intervals are discarded"/>
-        <param name="span" size="10" type="float" value="0.1" label="loess span: smoothing parameter" help="value less then 0.1 disables smoothing"/>
-    <param name="outputlabel" size="80" type="text" label="Output label" value="test"/>
-   
-</inputs>
-  <outputs>
-      <data format="txt" name="outlog" label="${outputlabel} (log)"/> 
-    <data format="tabular" name="output_standarderror" label="${outputlabel} (standard error)"/> 
-    <data format="tabular" name="output_coverage" label="${outputlabel} (coverage)"/> 
-    <data format="pdf" name="output_plot" label="${outputlabel} (plot)"/> 
-  </outputs>
-  <help>
-
-**Example output**
-
-.. image:: ./static/operation_icons/align_multiple2.png
-
-
-**What it does**
-
-This tool aligns a query interval set (such as ChIP peaks) to a database of features (such as other ChIP peaks or TSS/splice sites), calculates and plots the relative distance of database features to the query intervals. Currently two databases are available:  
-
--- **ChIP peaks** from 191 ChIP experiments (processed from hmChIP database, see individual peak/BED files in **Shared Data**)
-
--- **Annotated gene features**, such as: TSS, TES, 5'ss, 3'ss, CDS start and end, miRNA seed matches, enhancers, CpG island, microsatellite, small RNA, poly A sites (3P-seq-tags), miRNA genes, and tRNA genes. 
-
-Two output files are generated. One is the coverage/profile for each feature in the database that has a minimum overlap with the query set. The first two columns are feature name and the total number of overlapping intervals from the query. Column 3 to column 102 are coverage at each bin. The other file is an PDF file plotting both the heatmap for all features and the average coverage for each individual database feature.
-
-
-**How it works**
-
-For each interval/peak in the query file, a window (default 10,000bp) is created around the center of the interval and is divided into 100 bins. For each database feature set (such as Pol II peaks), the tool counts how many intervals in the database feature file overlap with each bin. The count is then averaged over all query intervals that have at least one hit in at least one bin. Overall the plotted 'average coverage' represnts the fraction of query features (only those with hits, number shown in individual plot title) that has database feature interval covering that bin. The extreme is when the database feature is the same as the query, then every query interval is covered at the center, the average coverage of the center bin will be 1.    
-
-The heatmap is scaled for each row before clustering.
-
-  </help>
-</tool>
-
--- a/tools/mytools/align2multiple.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-<tool id="align2multiple" name="align-to-multiple">
-  <description>features</description>
-  <command>cat $script_file | R --vanilla --slave > $logfile </command>
-  <inputs>   
-      <param name="query" type="data" format="interval" label="Query intervals" help= "keep it small (less than 1,000,000 lines)"/>
-      <param name="label" type="text" value="" size="30" label="Data Label"/>
-    <param name="windowsize" size="10" type="integer" value="5000" label="radius of the window"  help="will create new intervals of w bp flanking the original center. set to 0 will not change input interval size)"/>
-    <param name="nbins" size="10" type="integer" value="20" label="Number of bins dividing the window"/>
-    <param name="sort" label="Sort intervals" help="Sort by the center of the first input, then the second input, then third..." type="boolean" truevalue="sort" falsevalue="none" checked="True"/>
-    <repeat name="series" title="input file">
-      <param name="label" type="text" value="" size="30" label="Data Label"/>
-      <param name="input" type="data" format="interval" label="Dataset"/>
-    </repeat>       
-  </inputs>
-
-  <configfiles>
-    <configfile name="script_file">
-      ## Setup R error handling to go to stderr
-      cat('\n[',date(),'] Start running job\n')
-      options(warn=-1)
-      windowsize = as.integer("$windowsize")
-      labels = '$label'
-      ## align query to itself
-      cmd = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -a $query -b $query -o $label-$label --profile-only -q -w $windowsize -n $nbins'
-      cat('\n[',date(),'] ',cmd,'\n')
-      system(cmd)
-      ## align other sets to query
-      #for $i,$s in enumerate( $series )
-        labels = c(labels,'$s.label.value')
-        cmd = 'python /Users/xuebing/galaxy-dist/tools/mytools/alignr.py -a $s.input.file_name -b $query -o $label-$s.label.value --profile-only -q -w $windowsize -n $nbins'
-        cat('\n[',date(),'] ',cmd,'\n')
-        system(cmd)
-      #end for
-      cat('\n[',date(),'] Read output\n')
-      ## read output of query2query
-      print(paste(labels[1],labels[1],sep='-'))
-      x = read.table(paste(labels[1],labels[1],sep='-'))
-      ids = as.character(x[,1])
-      nfeat = nrow(x)
-      x = as.matrix(x[,3:ncol(x)])
-      nbin = ncol(x)
-            
-      ## a table mapping id to position
-      ind = list()
-      for (i in 1:nfeat){
-          ind[[ids[i]]] = i
-      }
-      ## read other output files
-      for (i in 2:length(labels)){
-          print(paste(labels[1],labels[i],sep='-'))
-          x0 = read.table(paste(labels[1],labels[i],sep='-'))
-          ids0 = as.character(x0[,1])
-          x0 = as.matrix(x0[,3:ncol(x0)])
-          x1 = matrix(0,nfeat,nbin)
-          for (j in 1:nrow(x0)){
-              #cat(j,'\t',ids0[j],'\t',ind[[ids0[j]]],'\n')
-              x1[ind[[ids0[j]]],] = x0[j,]                    
-          }
-          x = cbind(x,x1)          
-      }  
-      ## reorder
-      if ("${sort}" == "sort"){
-          cat('\n[',date(),'] Sort intervals\n')
-          for (i in rev(2:length(labels))){
-              x = x[order(x[,i*nbin-nbin/2]>0),]
-          }
-      }
-      png("${out_file1}")
-      ##par(mfrow=c(2,length(labels)),mar=c(1,1,4,1))
-      layout(matrix(seq(2*length(labels)),nrow=2,byrow=T),heights=c(1,5))
-      cat('\n[',date(),'] Plot summary\n')
-      par(mar=c(0,0,4,0)+0.1)
-      for (i in 1:length(labels)){
-          plot(colSums(x[,((i-1)*nbin+1):(i*nbin)]),type='l',axes=F,main=labels[i])
-      }
-      cat('\n[',date(),'] Plot heatmap\n')
-      par(mar=c(0,0,0,0)+0.1)
-      for (i in 1:length(labels)){
-          image(-t(log2(1+x[,((i-1)*nbin+1):(i*nbin)])),axes=F)
-      }
-      dev.off()  
-      cat('\n[',date(),'] Finished\n')
-
-    </configfile>
-  </configfiles>
-
-  <outputs>
-    <data format="txt" name="logfile" label="${tool.name} on ${on_string}: (log)" />
-    <data format="png" name="out_file1" label="${tool.name} on ${on_string}: (plot)" />
-  </outputs>
-
-<help>
-.. class:: infomark
-
-This tool allows you to check the co-localization pattern of multiple interval sets. All interval sets are aligned to the center of the intervals in the query interval set.
-
-Each row represents a window of certain size around the center of one interval in the query set, such as ChIP peaks. Each heatmap shows the position of other features in the SAME window (the same rows in each heatmap represent the same interval/genomic position).
-
-
-The example below shows that of all Fox2 peaks, half of them are within 1kb of TSS. Of the half outside TSS, about one half has H3K4me1, two thirds of which are further depleted of H3K4me3.  
-
------
-
-**Example**
-
-.. image:: ./static/images/align2multiple.png
-
-</help>
-</tool>
--- a/tools/mytools/alignr.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,353 +0,0 @@
-'''
-the scripts takes two files as input, and compute the coverage of 
-features in input 1 across features in input 2. Features in input 2 are 
-divided into bins and coverage is computed for each bin.  
-
-please check the help information by typing:
-
-    python align.py -h
-
-
-requirement:
-    please install the following tools first:
-    bedtools:   for read/region overlapping, http://code.google.com/p/bedtools/
-    
-'''
-
-import os,sys,os.path
-from optparse import OptionParser
-
-def lineCount(filename):
-    with open(filename) as f:
-        for i, l in enumerate(f):
-            pass
-    return i + 1
-
-def combineFilename(f1,f2):
-    '''
-    fuse two file names into one
-    '''
-    return f1.split('/')[-1]+'-'+f2.split('/')[-1]
-
-def checkFormat(filename1,filename2,input1format):
-    '''
-    check the format of input files
-    '''
-
-    # file1
-    # read the first line, see how many filds
-    ncol1 = 6
-    if input1format == "BED":
-        f = open(filename1)
-        line = f.readline().strip().split('\t')
-        ncol1 = len(line)
-        if ncol1 < 3:
-            print "ERROR: "+filename1+" has only "+str(ncol1)+" columns (>=3 required). Make sure it has NO header line and is TAB-delimited."
-            sys.exit(1)
-        f.close()
-     
-    # file2
-    f = open(filename2)
-    line = f.readline().strip().split('\t')
-    ncol2 = len(line)  
-    if ncol2 < 3:
-        print "ERROR: "+filename2+" has only "+str(ncol2)+" columns (>=3 required). Make sure it has NO header line and is TAB-delimited."
-        sys.exit(1)        
-
-    return ncol1,ncol2
-
-
-def makeBed(filename,ncol):
-    '''
-    add up to 6 column
-    '''
-    f = open(filename)
-    outfile = filename+'.tmp.bed'
-    outf = open(outfile,'w')
-    if ncol == 3:
-        for line in f:
-            outf.write(line.strip()+'\t.\t0\t+\n')
-    elif ncol == 4:
-        for line in f:
-            outf.write(line.strip()+'\t0\t+\n')
-    if ncol == 5:
-        for line in f:
-            outf.write(line.strip()+'\t+\n')
-    f.close()
-    outf.close()
-    return outfile
-    
-def makeWindow(filename,window):
-
-    outfile = filename+'-window='+str(window)+'.tmp.bed'
-    if not os.path.exists(outfile):
-        f=open(filename)
-        out = open(outfile,'w')
-        lines = f.readlines()
-        if 'track' in lines[0]:
-            del lines[0]
-        for line in lines:
-            flds = line.strip().split('\t')
-
-            #new position
-            center = (int(flds[1]) + int(flds[2]))/2
-            start = center - window
-            end = center + window
-            if start >= 0:
-                flds[1] = str(start)
-                flds[2] = str(end)
-                out.write('\t'.join(flds)+'\n')
-        f.close()
-        out.close()
-    return outfile
-
-def groupReadsMapped2aRegion(filename,ncol):
-    '''
-    read output from intersectBED
-    find all reads mapped to each region
-    '''
-    try:
-        f=open(filename)
-        #If filename cannot be opened, print an error message and exit
-    except IOError:
-        print "could not open",filename,"Are you sure this file exists?"
-        sys.exit(1)
-    lines = f.readlines()
-    
-    allReadsStart = {}
-    allReadsEnd = {}
-    regionStrand = {}
-    regionStart = {}
-    regionEnd = {}
-    
-    for line in lines:
-        flds = line.strip().split('\t')
-        key = '_'.join(flds[ncol:(ncol+4)])
-        if not allReadsStart.has_key(key):
-            allReadsStart[key] = list()
-            allReadsEnd[key] = list()
-        #print flds[ncol+0],flds[ncol+1],flds[ncol+2]
-        allReadsStart[key].append(int(flds[1]))
-        allReadsEnd[key].append(int(flds[2]))
-        regionStrand[key] = flds[ncol+5]  
-        regionStart[key] = int(flds[ncol+1])    
-        regionEnd[key] = int(flds[ncol+2])      
-    return (allReadsStart,allReadsEnd,regionStrand,regionStart,regionEnd)
-            
-            
-def createRegionProfile(allReadsStart,allReadsEnd,regionStrand,regionStart,regionEnd,nbins):
-    '''
-    each region is divided into nbins
-    compute the number of reads covering each bin for each region 
-    '''
-    RegionProfile = {}
-    nRead = {}  # num of all reads in the region
-    for region in allReadsStart.keys():
-        RegionProfile[region] = [0]*nbins
-        nRead[region] = len(allReadsStart[region])
-        #print region,nRead[region],allReadsStart[region]
-        for i in range(nRead[region]):
-            RegionProfile[region] = updateRegionCount(RegionProfile[region],allReadsStart[region][i],allReadsEnd[region][i],regionStart[region],regionEnd[region],regionStrand[region],nbins)
-    return RegionProfile,nRead
-    
-def updateRegionCount(RegionCount,readStart,readEnd,regionStart,regionEnd,strand,nbins):
-    '''
-    each region is divided into nbins,
-    add 1 to each bin covered by the read  
-    '''
-    L = regionEnd-regionStart
-    start = int(nbins*(readStart-regionStart)/L)
-    end = int(nbins*(readEnd-regionStart)/L)
-    if start < 0:
-        start = 0
-    if end > nbins:
-        end = nbins
-    if strand == '-':        
-        for i in range(start,end):
-            RegionCount[nbins-1-i] = RegionCount[nbins-1-i] + 1
-    else: # if the 6th column of the input is not strand, will treat as + strand by default       
-        for i in range(start,end):
-            RegionCount[i] = RegionCount[i] + 1            
-    return RegionCount
-
-def saveProfile(filename,Profile,nRegion):
-    out = open(filename,'w')
-    for regionType in Profile.keys():
-        #print Profile[regionType]
-        out.write(regionType+'\t'+str(nRegion[regionType])+'\t'+'\t'.join(map(str,Profile[regionType]))+'\n')    
-                    
-def saveSummary(filename,Profile,nbin):
-    out = open(filename+'.summary','w')
-
-    nfeat = len(Profile)
-    summaryprofile = [0]*nbin
-    for regionType in Profile.keys():
-        for i in range(nbin):
-            summaryprofile[i] += Profile[regionType][i]    
-    out.write(filename+'\t'+str(nfeat)+'\t'+'\t'.join(map(str,summaryprofile))+'\n')  
-    out.close()
-    # calculate standard error
-    out = open(filename+'.standarderror','w')
-    sd = [0.0]*nbin
-    u = [0.0]*nbin 
-    for i in range(nbin):
-        u[i] = float(summaryprofile[i])/nfeat
-        for regionType in Profile.keys():
-            sd[i] = sd[i] + (Profile[regionType][i] - u[i])**2
-        sd[i] = sd[i]**0.5 / nfeat
-    out.write(filename+'\t'+str(nfeat)+'\t'+'\t'.join(map(str,sd))+'\n')  
-    out.close()    
-                
-def main():
-    usage = "usage: %prog [options] -a inputA -b inputB"
-    parser = OptionParser(usage)
-    parser.add_option("-a", dest="inputA",
-                      help="(required) input file A, interval (first 3 columns are chrN, start and end) or BAM format. The script computes the depth of coverage of features in file A across the features in file B" )                                                
-    parser.add_option("-b",dest="inputB",
-                      help="(required) input file B, interval file" )                                                
-    parser.add_option("-f",dest="aformat",default="BED",
-                      help="Format of input file A. Can be BED (default) or BAM")
-    parser.add_option("-w",type='int',dest="window",
-                      help="Generate new inputB by making a window of 2 x WINDOW bp (in total) flanking the center of each input feature" )     
-    parser.add_option("-n", type="int", dest="nbins",default=100,
-                        help="number of bins. Features in B are binned, and the coverage is computed for each bin. Default is 100")                    
-    parser.add_option("-s",action="store_true", dest="strandness",
-                      help="enforce strandness: require overlapping on the same strand. Default is off")
-    parser.add_option("-p",action="store_true", dest="plot",default=False,
-                      help="load existed intersectBed outputfile")
-    parser.add_option("-q", action="store_true", dest="quiet",default=False,
-                        help="suppress output on screen")
-    parser.add_option("-o", dest="output_data",
-                      help="(optional) output coverage file (txt) name." )
-    parser.add_option("-v", dest="output_plot",
-                      help="(optional) output plot (pdf) file name." )
-    parser.add_option("-l", dest="plot_title", default="",
-                      help="(optional) output title of the plot." )
-    parser.add_option("--ylim", dest="ylim", default="min,max",
-                      help="(optional) ylim of the plot" )
-    parser.add_option("--summary-only", action="store_true", dest="summary_only",default=False,
-                        help="save profile summary only (no data for individual features)")
-    parser.add_option("--compute-se", action="store_true", dest="compute_se",default=False,
-                        help="compute and plot standard deviation for each bin. used when --summary-only is on")
-    parser.add_option("--profile-only", action="store_true", dest="profile_only",default=False,
-                        help="save profile only (no plot)")
-    parser.add_option("--span", type="float", dest="span",default=0.1,
-                        help="loess span smooth parameter, 0.1 ~ 1")                    
-    
-    (options, args) = parser.parse_args()
-
-    if options.inputA == None or options.inputB == None:
-        parser.error("Please specify two input files!!")
-
-    if not options.quiet:
-        print "checking input file format..."
-        
-    ncol,ncol2 = checkFormat(options.inputA ,options.inputB,options.aformat)
-
-    if ncol2 < 6:
-        options.inputB = makeBed(options.inputB,ncol2)        
-        if not options.quiet:
-            print "fill up 6 columns"
-
-    if options.window > 0:
-        if not options.quiet:
-            print "making windows from "+options.inputB+"..." 
-        options.inputB = makeWindow(options.inputB,options.window)
-    
-    output = combineFilename(str(options.inputA),str(options.inputB))
-    
-    if not options.plot:
-        if options.aformat == "BAM":
-            cmd = "intersectBed -abam "+str(options.inputA)+" -b "+str(options.inputB) + ' -bed -split '
-        else:
-            cmd = "intersectBed -a "+str(options.inputA)+" -b "+str(options.inputB)
-        if options.strandness:
-            cmd = cmd + ' -s'
-        cmd = cmd +" -wo > "+ output+'-intersect.tmp.bed'
-        if not options.quiet:
-            print "search for overlappings: "+cmd
-        status = os.system(cmd)
-        if status != 0:
-            sys.exit(1)
-
-    
-    if not options.quiet:
-        print 'group reads mapped to the same region...'
-    
-    allReadsStart,allReadsEnd,regionStrand,regionStart,regionEnd = groupReadsMapped2aRegion(output+'-intersect.tmp.bed',ncol)
-
-    if len(allReadsStart) == 0:
-        if not options.quiet:
-            print 'no overlap found!!'
-        os.system('rm *tmp.*')
-        sys.exit(1)
-    
-    if not options.quiet:
-        print 'count number of reads mapped to each bin...'
-    
-    RegionProfile,nRead = createRegionProfile(allReadsStart,allReadsEnd,regionStrand,regionStart,regionEnd,options.nbins) 
-   
-    if options.output_data == None:
-        options.output_data = output+'.txt'
-
-    if options.summary_only:  
-        saveSummary(options.output_data,RegionProfile,options.nbins) 
-    
-    else:                 
-        saveProfile(options.output_data,RegionProfile,nRead)
-    
-    if not options.quiet:
-        print 'results saved to: '+ options.output_data 
-        
-    if not (options.summary_only or options.profile_only ):          
-        # visualize 
-
-        if options.window < 1:
-            xlab = 'relative position (bins)'
-        else:
-            xlab = 'relative position (bp)'
-	            
-        if options.output_plot == None:
-            options.output_plot = output+'.pdf'
-
-        title = options.plot_title+'\n n = '+str(len(RegionProfile))
-
-        rscript = open("tmp.r","w")
-        rscript.write("x <- read.table('"+options.output_data+"')\n")
-        rscript.write("pdf('"+options.output_plot+"')\n")
-        rscript.write("avg <- colSums(x[,3:ncol(x)])/nrow(x)\n")
-        rscript.write("err <- sd(x[,3:ncol(x)])/sqrt(nrow(x))\n")
-        
-        if options.window == 0:
-            rscript.write("xticks <- seq("+str(options.nbins)+")\n")
-        else:
-            rscript.write("xticks <- seq("+str(-options.window)+","+str(options.window)+",length.out="+str(options.nbins)+")\n")
-
-        if options.ylim != 'min,max':
-            rscript.write("ylim=c("+options.ylim+")\n")
-        else:
-            rscript.write("ylim=c(min(avg-err),max(avg+err))\n")
-        rscript.write("par(cex=1.5)\n")
-        #smooth
-        if options.span >= 0.1:
-            rscript.write("avg = loess(avg~xticks,span="+str(options.span)+")$fitted\n")
-            rscript.write("err = loess(err~xticks,span="+str(options.span)+")$fitted\n")
-        rscript.write("plot(xticks,avg,ylab='average coverage',main='"+title+"',xlab='"+xlab+"',type='l',lwd=0,ylim=ylim)\n")   
-        rscript.write("polygon(c(xticks,rev(xticks)),c(avg+err,rev(avg-err)),col='slateblue1',border=NA)\n")
-        rscript.write("lines(xticks,avg,type='l',lwd=1)\n")   
-        #rscript.write("xticks <- barplot(avg,names.arg=seq("+str(options.nbins)+"),ylab='average coverage',main='"+title+"',xlab='"+xlab+"',,ylim=c(min(avg-err),max(avg+err)))\n")
-        #rscript.write("arrows(xticks,avg+err, xticks, avg-err, angle=90, code=3, length=0.0,col='green')\n")
-        #rscript.write("lines(xticks,avg,lwd=2)\n")
-        #rscript.write("lines(xticks,avg-err,col='green')\n")
-        #rscript.write("lines(xticks,avg+err,col='green')\n")
-        rscript.write("dev.off()\n")
-        rscript.close()
-
-        os.system("R --vanilla < tmp.r")    
-    
-    # remove intermediate output
-    os.system('rm *tmp.*')
-
-    
-if __name__ == "__main__":
-    main()
--- a/tools/mytools/alignr.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-<tool id="alignr" name="align">
-  <description>two interval sets</description>
-  <command interpreter="python"> alignr.py -a $inputa -w $windowsize -n $nbins -o $output_data -v $output_plot $stranded  -q -l $outputlabel --ylim=$ylim --span $span
-    #if $inputb_source_type.inputb_select == "user":
-          -b "$inputb"
-    #else:
-        -b "${inputb_source_type.selectedb.fields.value}"
-    #end if
-    #if $inputa_format.inputa_select == "BAM":
-    -f BAM
-    #end if
-  </command>
-  <inputs>
-    <conditional name="inputa_format">
-    	<param name="inputa_select" type="select" label="Select your first input format" >
-		<option value="BED" selected="true">BED-like (chrNum	start	end	...) </option>
-		<option value="BAM"> BAM</option>
-	    </param>
-	    <when value="BED">
-		    <param name="inputa" type="data" format="interval" label="Input file for the first interval set (-a)"/>
-	    </when>
-	    <when value="BAM">
-		    <param name="inputa" type="data" format="bam" label="Input file for the first interval set (-a)"/>
-	    </when>
-    </conditional>
-    <conditional name="inputb_source_type">
-        <param name="inputb_select" type="select" label="Input source for the second interval set">
-            <option value="mm9ucsc" selected="true">mm9 ucsc knownGene annotations</option>
-            <option value="mm9refseq">mm9 refseq gene annotations</option>
-            <option value="mm9ensembl">mm9 ensembl gene annotations</option>
-            <option value="hg18ucsc" >hg18 ucsc knownGene annotations</option>
-            <option value="hg18refseq">hg18 refseq gene annotations</option>
-            <option value="hg18ensembl">hg18 ensembl gene annotations</option>
-            <option value="user">Dataset in Your History</option>
-        </param>
-        <when value="user">
-            <param name="inputb" type="data" format="interval" label="Input file for the second interval set (-b)" />
-        </when>
-        <when value="mm9ucsc">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-mm9-knownGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-        <when value="mm9refseq">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-mm9-refGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-        <when value="mm9ensembl">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-mm9-ensGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-        <when value="hg18ucsc">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-hg18-knownGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-        <when value="hg18refseq">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-hg18-refGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-        <when value="hg18ensembl">
-            <param name="selectedb" type="select" label="Input for the second interval set (-b)" >
-                <options from_file="aligndb-hg18-ensGene.loc">
-                    <column name="name" index="0"/>
-                    <column name="value" index="1"/>
-                </options>
-            </param>
-        </when>
-                                                
-    </conditional>    
-    <param name="windowsize" size="10" type="integer" value="0" label="Change input 2 interval size (-w)"  help="will create new intervals of w bp flanking the original center. set to 0 will not change input interval size)"/>
-    <param name="nbins" size="10" type="integer" value="100" label="Number of bins dividing intervals in input 2(-n)"/>
-    <param name="span" size="10" type="float" value="0.1" label="loess span: smoothing parameter" help="value less then 0.1 disables smoothing"/>
-    <param name="stranded" label="Check if require overlap on the same strand (-s)" type="boolean" truevalue="-s" falsevalue="" checked="False"/>
-    <param name="outputlabel" size="80" type="text" label="Output label" value="test"/>
-    <param name="ylim" size="10" type="text" label="set ylim of the plot" value="min,max" help="e.g. 0,1 (default is the min and max of the signal)"/>
-   
-</inputs>
-  <outputs>
-    <data format="tabular" name="output_data" label="${outputlabel} (data)"/> 
-    <data format="pdf" name="output_plot" label="${outputlabel} (plot)"/> 
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool aligns two sets of intervals, finds overlaps, calculates and plots the coverage of the first set across the second set. Applications include:  
-
-- check read distribution around TSS/poly A site/splice site/motif site/miRNA target site
-- check relative position/overlap of two lists of ChIP-seq peaks
-
-Two output files are generated. One is the coverage/profile for each interval in input 2. The first two columns are interval ID and the total number of overlapping intervals from input 1. Column 3 to column nbins+2 are coverage at each bin. The other file is an PDF file plotting the average coverage of each bin. To modify the visualization, please downlaod the coverage file and make your own plots.
-
------
-
-**Annotated features**
-
-Currently supports mouse genome build mm9 and human hg18. Each interval spans 1000bp upstream and 1000bp downstream of a feature such as TSS. Features with overlapping exons in the intronic/intergenic part of the 2000bp interval are removed.
-
------
-
-**Usage**
-
-  -h, --help        show this help message and exit
-  -a INPUTA         (required) input file A, BED-like (first 3 columns: chr, start, end) or BAM format. The
-                    script computes the depth of coverage of features in file
-                    A across the features in file B
-  -b INPUTB         (required) input file B, BED format or MACS peak file.
-                    Requires an unique name for each line in column 4
-  -m                inputB is a MACS peak file.
-  -f AFORMAT        Format of input file A. Can be BED (default) or BAM
-  -w WINDOW         Generate new inputB by making a window of 2 x WINDOW bp
-                    (in total) flanking the center of each input feature
-  -n NBINS          number of bins. Features in B are binned, and the coverage
-                    is computed for each bin. Default is 100
-  -s                enforce strandness: require overlapping on the same
-                    strand. Default is off
-  -p                load existed intersectBed outputfile
-  -q                suppress output on screen
-  -o OUTPUTPROFILE  (optional) output profile name.
-  -v PLOTFILE       (optional) plot file name
-  </help>
-</tool>
-
--- a/tools/mytools/alignvis.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-import sys,os
-
-infile = sys.argv[1]
-outfile = sys.argv[2]
-uselog = sys.argv[3]
-subset = sys.argv[4]
-reorder = sys.argv[5]
-color = sys.argv[6]
-scale = sys.argv[7] # rescale each row
-rscript = open('tmp.r','w')
-
-rscript.write("x <- read.table('"+infile+"')\n")
-rscript.write("nfeat <- nrow(x) \n")
-rscript.write("nbin <- ncol(x) - 2\n")
-rscript.write("totalcov <- x[,2]\n")
-rscript.write("x <- x[,3:ncol(x)]\n")
-
-if subset =='subset':
-    rscript.write("if (nfeat*nbin > 100000) {\n")
-    rscript.write("  nfeat2 <- as.integer(100000/nbin)\n")
-    rscript.write("  subind <- sample(seq(nfeat),nfeat2)\n")
-    rscript.write("  x <- x[subind,]\n")
-    rscript.write("  totalcov <- totalcov[subind]\n")
-    rscript.write("}\n")
-
-rscript.write("pdf('"+outfile+"')\n")
-
-if uselog == 'uselog':
-    rscript.write("x <- -(log(1+as.matrix(x,nc=ncol(x)-2)))\n")
-else:
-    rscript.write("x <- -as.matrix(x,nc=ncol(x)-2)\n")
-if scale == 'scale':
-    rscript.write("x <- scale(x)\n")
-if reorder == 'average':
-    rscript.write("hc <- hclust(dist(x),method= 'average')\n")
-    rscript.write("x <- x[hc$order,]\n")
-elif reorder == 'centroid':
-    rscript.write("hc <- hclust(dist(x),method= 'centroid')\n")
-    rscript.write("x <- x[hc$order,]\n")
-elif reorder == 'complete':
-    rscript.write("hc <- hclust(dist(x),method= 'complete')\n")
-    rscript.write("x <- x[hc$order,]\n")
-elif reorder == 'single':
-    rscript.write("hc <- hclust(dist(x),method= 'single')\n")
-    rscript.write("x <- x[hc$order,]\n")
-elif reorder == 'median':
-    rscript.write("hc <- hclust(dist(x),method= 'median')\n")
-    rscript.write("x <- x[hc$order,]\n")    
-elif reorder == 'sort_by_total':
-    rscript.write("srt <- sort(totalcov,index.return=T)\n")
-    rscript.write("x <- x[srt$ix,]\n")
-elif reorder == 'sort_by_center':
-    rscript.write("srt <- sort(x[,as.integer(nbin/2)],index.return=T)\n")
-    rscript.write("x <- x[srt$ix,]\n")
-if color == 'heat':
-    rscript.write("colormap = heat.colors(1000)\n")
-elif color == 'topo':
-    rscript.write("colormap = topo.colors(1000)\n")
-elif color == 'rainbow':
-    rscript.write("colormap = rainbow(1000)\n")
-elif color == 'terrain':
-    rscript.write("colormap = terrain.colors(1000)\n")
-else:
-    rscript.write("colormap = gray.colors(1000)\n")
-
-#rscript.write("qt <- quantile(as.vector(x),probs=c(0.1,0.9))\n")
-#rscript.write("breaks <- c(min(as.vector(x)),seq(qt[1],qt[2],length.out=99),max(as.vector(x)))\n")
-#rscript.write("image(t(x),col=colormap,breaks=breaks,axes=F)\n")
-rscript.write("image(t(x),col=colormap,axes=F)\n")
-rscript.write("dev.off()\n")
-
-rscript.close()
-
-os.system("R --slave < tmp.r")
-os.system("rm tmp.r")
-
--- a/tools/mytools/alignvis.r	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-args <- commandArgs(TRUE)
-x <- read.table(args[1])
-pdf(args[2])
-#visualize the profile with heatmap 
-srt <- sort(x[,2],index.return=T) # sort by total number of reads
-image(-t(log(as.matrix(x[srt$ix[1:nrow(x)],3:ncol(x)],nc=ncol(x)-2))),col=gray.colors(100))
-dev.off()
-
--- a/tools/mytools/alignvis.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<tool id="alignvis" name="heatmap">
-  <description>of align output</description>
-  <command interpreter="python"> alignvis.py $input $output $uselog $subset $reorder $color $scale </command>
-  <inputs>
-    <param name="input" format="tabular" type="data" label="Original file"/>
-    <param name="uselog" label="log transform the data" type="boolean" truevalue="uselog" falsevalue="none" checked="True"/>
-    <param name="subset" label="sample a subset if the data is too large" type="boolean" truevalue="subset" falsevalue="none" checked="True"/>
-    <param name="scale" label="normalize by row/feature" type="boolean" truevalue="scale" falsevalue="none" checked="False"/>
-    <param name="reorder" type="select" label="reorder features (rows)">
-      <option value="none" selected="true">None</option>
-      <option value="sort_by_sum">Sort row by sum</option>
-      <option value="sort_by_center">Sort row by center </option>
-      <option value="average">Cluster rows (average)</option>    
-      <option value="median">Cluster rows (median) </option>    
-      <option value="centroid">Cluster rows (centroid)</option>    
-      <option value="complete">Cluster rows (complete)</option>    
-      <option value="single">Cluster rows (single)</option> 
-          </param>
-             
-    <param name="color" type="select" label="color scheme">
-    <option value="heat" selected="true">heat</option>
-    <option value="gray">gray</option>
-    <option value="rainbow">rainbow</option>    
-    <option value="topo">topo</option>    
-    <option value="terrain">terrain</option>    
-    </param>
-  </inputs>
-  <outputs>
-    <data format="pdf" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool generates a heatmap for output from 'align' tool. Each row is the color-coded coverage of a feature, and the features are sorted by the total coverage in the interval.  
-
-**Example**
-
-.. image:: ./static/operation_icons/heatmap.png
-
-  </help>
-</tool>
--- a/tools/mytools/altschulEriksonDinuclShuffle.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-#! /usr/bin/env python
-
-# altschulEriksonDinuclShuffle.py
-# P. Clote, Oct 2003
-# NOTE: One cannot use function "count(s,word)" to count the number
-# of occurrences of dinucleotide word in string s, since the built-in
-# function counts only nonoverlapping words, presumably in a left to
-# right fashion.
-
-
-import sys,string,random
-
-
-
-def computeCountAndLists(s):
-  #WARNING: Use of function count(s,'UU') returns 1 on word UUU
-  #since it apparently counts only nonoverlapping words UU
-  #For this reason, we work with the indices.
-
-  #Initialize lists and mono- and dinucleotide dictionaries
-  List = {} #List is a dictionary of lists
-  List['A'] = []; List['C'] = [];
-  List['G'] = []; List['T'] = [];
-  nuclList   = ["A","C","G","T"]
-  s       = s.upper()
-  s       = s.replace("U","T")
-  nuclCnt    = {}  #empty dictionary
-  dinuclCnt  = {}  #empty dictionary
-  for x in nuclList:
-    nuclCnt[x]=0
-    dinuclCnt[x]={}
-    for y in nuclList:
-      dinuclCnt[x][y]=0
-
-  #Compute count and lists
-  nuclCnt[s[0]] = 1
-  nuclTotal     = 1
-  dinuclTotal   = 0
-  for i in range(len(s)-1):
-    x = s[i]; y = s[i+1]
-    List[x].append( y )
-    nuclCnt[y] += 1; nuclTotal  += 1
-    dinuclCnt[x][y] += 1; dinuclTotal += 1
-  assert (nuclTotal==len(s))
-  assert (dinuclTotal==len(s)-1)
-  return nuclCnt,dinuclCnt,List
- 
- 
-def chooseEdge(x,dinuclCnt):
-  numInList = 0
-  for y in ['A','C','G','T']:
-    numInList += dinuclCnt[x][y]
-  z = random.random()
-  denom=dinuclCnt[x]['A']+dinuclCnt[x]['C']+dinuclCnt[x]['G']+dinuclCnt[x]['T']
-  numerator = dinuclCnt[x]['A']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['A'] -= 1
-    return 'A'
-  numerator += dinuclCnt[x]['C']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['C'] -= 1
-    return 'C'
-  numerator += dinuclCnt[x]['G']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['G'] -= 1
-    return 'G'
-  dinuclCnt[x]['T'] -= 1
-  return 'T'
-
-def connectedToLast(edgeList,nuclList,lastCh):
-  D = {}
-  for x in nuclList: D[x]=0
-  for edge in edgeList:
-    a = edge[0]; b = edge[1]
-    if b==lastCh: D[a]=1
-  for i in range(2):
-    for edge in edgeList:
-      a = edge[0]; b = edge[1]
-      if D[b]==1: D[a]=1
-  ok = 0
-  for x in nuclList:
-    if x!=lastCh and D[x]==0: return 0
-  return 1
-
- 
-
-def eulerian(s):
-  nuclCnt,dinuclCnt,List = computeCountAndLists(s)
-  #compute nucleotides appearing in s
-  nuclList = []
-  for x in ["A","C","G","T"]:
-    if x in s: nuclList.append(x)
-  #compute numInList[x] = number of dinucleotides beginning with x
-  numInList = {}
-  for x in nuclList:
-    numInList[x]=0
-    for y in nuclList:
-      numInList[x] += dinuclCnt[x][y]
-  #create dinucleotide shuffle L 
-  firstCh = s[0]  #start with first letter of s
-  lastCh  = s[-1]
-  edgeList = []
-  for x in nuclList:
-    if x!= lastCh: edgeList.append( [x,chooseEdge(x,dinuclCnt)] )
-  ok = connectedToLast(edgeList,nuclList,lastCh)
-  return ok,edgeList,nuclList,lastCh
-
-
-def shuffleEdgeList(L):
-  n = len(L); barrier = n
-  for i in range(n-1):
-    z = int(random.random() * barrier)
-    tmp = L[z]
-    L[z]= L[barrier-1]
-    L[barrier-1] = tmp
-    barrier -= 1
-  return L
-
-def dinuclShuffle(s):
-  ok = 0
-  while not ok:
-    ok,edgeList,nuclList,lastCh = eulerian(s)
-  nuclCnt,dinuclCnt,List = computeCountAndLists(s)
-
-  #remove last edges from each vertex list, shuffle, then add back
-  #the removed edges at end of vertex lists.
-  for [x,y] in edgeList: List[x].remove(y)
-  for x in nuclList: shuffleEdgeList(List[x])
-  for [x,y] in edgeList: List[x].append(y)
-
-  #construct the eulerian path
-  L = [s[0]]; prevCh = s[0]
-  for i in range(len(s)-2):
-    ch = List[prevCh][0] 
-    L.append( ch )
-    del List[prevCh][0]
-    prevCh = ch
-  L.append(s[-1])
-  t = string.join(L,"")
-  return t
- 
- 
-
-if __name__ == '__main__':
-  if len(sys.argv)!=3:
-    print "Usage: python altschulEriksonDinuclShuffle.py GCATCGA 5"
-    sys.exit(1)
-  s = sys.argv[1].upper()
-  for i in range(int(sys.argv[2])):
-    print dinuclShuffle(s)
--- a/tools/mytools/bedClean.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-import sys
-
-def readChrSize(filename):
-    f = open(filename)
-    chrSize = {}
-    for line in f:
-        chrom,size = line.strip().split()
-        chrSize[chrom]=int(size)
-    f.close()
-    return chrSize
-
-def cleanFile(filename,chrSize,outfile):
-    f = open(filename)
-    out = open(outfile,'w')
-    i = 0
-    for line in f:
-        i = i + 1
-        flds = line.strip().split('\t')
-        if len(flds) < 3:
-            print 'line',i,'incomplete line:\n',line
-        elif chrSize.has_key(flds[0]):
-            if int(flds[1]) > int(flds[2]):
-                tmp = flds[1]
-                flds[1] = flds[2]
-                flds[2] = tmp
-            if int( flds[1]) < 0 or int(flds[2]) <0:
-                print 'line',i,'negative coordinates:\n',line
-            elif int(flds[2]) > chrSize[flds[0]]:
-                print 'line',i,'end larger than chr size:\n',line
-            else:
-                out.write('\t'.join(flds)+'\n')
-        else:
-            print 'line',i,'chromosome',flds[0],'not found!\n',line
-    f.close()
-    out.close()
-
-cleanFile(sys.argv[1],readChrSize(sys.argv[2]),sys.argv[3])
--- a/tools/mytools/bed_to_bam.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<tool id="bedToBam" name="bedToBam">
-  <description>convert BED or GFF or VCF to BAM</description>
-  <command>bedToBam -i $input -g $genome $bed12 $mapq $ubam > $outfile </command>
-  <inputs>
-    <param name="input" format="bed,gff,vcf" type="data" label="Input file (BED,GFF,VCF)" help="BED files must be at least BED4 to be amenable to BAM (needs name field)"/>
-    <param name="genome" type="select" label="Select genome">
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/mouse.mm9.genome" selected="true">mm9</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/mouse.mm8.genome">mm8</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/human.hg18.genome">hg18</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/human.hg19.genome">hg19</option>
-    </param>
-    <param name="mapq" size="10" type="integer" value="255" label="Set the mappinq quality for the BAM records"/>
-    <param name="bed12" label="The BED file is in BED12 format" help="The BAM CIGAR string will reflect BED blocks" type="boolean" truevalue="-bed12" falsevalue="" checked="False"/>
-    <param name="ubam" label="Write uncompressed BAM output" help="Default is to write compressed BAM" type="boolean" truevalue="-ubam" falsevalue="" checked="False"/>
-  </inputs>
-  <outputs>
-    <data format="bam" name="outfile" />
-  </outputs>
-</tool>
--- a/tools/mytools/bedclean.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<tool id="bedclean" name="clean interval">
-  <description>remove off-chromosome lines</description>
-  <command interpreter="python">bedclean.py $input $genome $output > $log  </command>
-  <inputs>
-     <param name="input" type="data" format="interval" label="Original interval file"/>
-    <param name="genome" type="select" label="Select genome">
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/mouse.mm9.genome" selected="true">mm9</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/mouse.mm8.genome">mm8</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/human.hg18.genome">hg18</option>
-     <option value="/Users/xuebing/galaxy-dist/tool-data/genome/chrsize/human.hg19.genome">hg19</option>
-    </param>
-  </inputs>
-  <outputs>
-    <data format="input" name="output" label="${tool.name} on ${on_string} (interval)"/>
-    <data format="txt" name="log" label="${tool.name} on ${on_string} (log)"/>
-  </outputs>
-  <help>
-
-**Description**
-
-remove lines that are
-
-1. comment or track name lines
-
-2. on chr*_random
-
-3. or have negative coordinates
-
-4. or the end is larger than chromosome size
-
-
-  </help>
-</tool>
--- a/tools/mytools/bedsort.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<tool id="bedsort" name="sort">
-  <description>a interval file by chr and start</description>
-  <command> head -n $skip $input > $output
-  &amp;&amp; tail -n+`expr $skip + 1` $input | sort -k1,1 -k2,2g >> $output    
-  </command>
-  <inputs>
-     <param name="input" type="data" format="bed" label="Input interval file"/>
-     <param name="skip" type="integer" value="0" label="top lines to skip" help="output directly, not sorted"/>
-  </inputs>
-  <outputs>
-    <data format="bed" name="output" />
-  </outputs>
-  <help>
-
-**Description**
-
-Unix command used::
-
-    head -n $skip $input > $output
-    tail -n+`expr $skip + 1` $input | sort -k1,1 -k2,2g >> $output
-
-  </help>
-</tool>
--- a/tools/mytools/bigWigAverageOverBed.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-<tool id="bigWigAverageOverBed" name="bigWigAverageOverBed">
-  <description>average interval coverage</description>
-  <command>bigWigAverageOverBed $bw $bed $outtab -bedOut=$outbed 2> err </command>
-  <inputs>
-    <param name="bw" format="bigwig" type="data" label="BigWig file"/>
-    <param name="bed" format="bed" type="data" label="Bed file"/>
-  </inputs>
-  <outputs>
-    <data format="tabular" name="outtab" label="${tool.name} on ${on_string} (tab)"/>
-    <data format="bed" name="outbed" label="${tool.name} on ${on_string} (bed)"/>
-  </outputs>
-</tool>
--- a/tools/mytools/binaverage.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-<tool id="binaverage" name="bin and average">
-  <description>of numeric columns</description>
-  <command>cat $script_file | R --vanilla --slave > $out_log </command>
-  <inputs>
-      <param name="input" type="data" format="tabular" label="Data file"/>
-      <param name="data_avg" type="integer" value="1" label="Column number of the data to average"/>
-      <param name="label_avg" type="text" value="label-avg" size="30" label="data label"/>    
-       <param name="log_avg" label="log2 transform the data" type="boolean" truevalue="logavg" falsevalue="none" checked="False"/> 
-       <param name="data_bin" type="integer" value="2" label="Column number of the data used to make bins"/>
-      <param name="label_bin" type="text" value="label-bin" size="30" label="data label"/> 
-      <param name="log_bin" label="log2 transform the data" type="boolean" truevalue="logbin" falsevalue="none" checked="False"/> 
-      <param name="nbin" type="integer" value="3" label="number of bins"/>
-      <param name="bintype" type="select" label="Bin by rank or by value" >
-		  <option value="rank" selected="true">by rank: bins have the same number of data points</option>
-		  <option value="value">by value: bins may have different number of data points</option>
-      </param>  
-      <param name="legendloc" type="select" label="legend location on CDF plot" >
-		  <option value="bottomright" selected="true">bottomright</option>
-		  <option value="bottomleft">bottomleft</option>
-		  <option value="bottom">bottom</option>
-		  <option value="left">left</option>
-		  <option value="topleft">topleft</option>
-		  <option value="top">top</option>
-		  <option value="topright">topright</option>      
-		  <option value="right">right</option>
-		  <option value="center">center</option>  
-      </param>
-    
-      <param name="title" type="text" value="bin-average" size="50" label="title of this analysis"/>       
-         
-  </inputs>
-
-  <configfiles>
-    <configfile name="script_file">
-      ## Setup R error handling to go to stderr
-      options(warn=-1)
-      source("/Users/xuebing/galaxy-dist/tools/mytools/cdf.r")
-      x = read.table("${input}",sep='\t')
-      x = x[,c($data_bin,$data_avg)]
-      label_avg = "${label_avg}"
-      label_bin = "${label_bin}"
-      if ("${log_bin}" == "logbin"){
-          x[,1] = log2(1+x[,1])
-          label_bin = paste('log2',label_bin)
-      }
-      if ("${log_avg}" == "logavg"){
-          x[,2] = log2(1+x[,2])
-          label_avg = paste('log2',label_avg)
-      }
-      res = binaverage(x,$nbin,"${bintype}")
-      attach(res)
-      for (i in 1:${nbin}){
-          print(paste(label_bin,labels[i],sep=':'))
-          print(summary(binned[[i]]))
-      }      
-      pdf("${out_file}")
-      mycdf(binned,"${title}",labels,"$legendloc",label_avg,label_bin)
-      dev.off() 
-    </configfile>
-  </configfiles>
-
-  <outputs>
-    <data format="txt" name="out_log" label="${title}: (log)" />
-    <data format="pdf" name="out_file" label="${title}: (plot)" />
-  </outputs>
-
-<help>
-
-.. class:: infomark
-
-This tool generates barplot and CDF plot comparing data/rows in a numeric column that are binned by a second numeric column. The input should have at least two numeric columns. One of the column is used to group rows into bins, and then values in the other column are compared using barplot, CDF plot, and KS test.  
-
-</help>
-</tool>
--- a/tools/mytools/binnedAverage.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-'''
-get binned score of intervals,allow extension
-'''
-
-import os,sys,numpy,random,string
-
-from resize import *
-
-from bx.bbi.bigwig_file import BigWigFile
-
-def binning(x,n):
-    # make n bin of x
-    y = numpy.zeros(n,dtype=float)
-    if len(x) == 0:
-        return y
-    step = float(len(x))/n
-    for k in range(n):
-        i = int(step*k)
-        j = int(step*(k+1)) + 1
-        y[k] = x[i:j].mean()
-        #print i,j,k,y[k]
-    return y
-
-def getBinnedScore(bwfile,intvfile,outfile,outplot,nbin):
-    '''
-    get binned average and std
-    '''
-    fbw = open(bwfile)
-    bw = BigWigFile(file=fbw)
-    fin = open(intvfile)
-    out = open(outfile,'w')
-    zeros = '\t'.join(['0']*nbin)
-    for line in fin:
-        #chrom,start,end,name,score,strand
-        line = line.strip()
-        flds = line.split('\t')
-        #get the score at base resolution as an array
-        scores = bw.get_as_array(flds[0],int(flds[1]),int(flds[2]))
-        if scores == None:
-            print 'not found:\t',line
-            out.write(line+'\t'+zeros+'\n')
-            continue
-        # reverse if on minus strand
-        if flds[5] == '-':
-            scores = scores[::-1]
-        # no score = 0    
-        scores = numpy.nan_to_num(scores)
-        # bin the data
-        binned = binning(scores,nbin)
-        out.write(line+'\t'+'\t'.join(map(str,binned))+'\n')
-    fin.close()
-    out.close()
-    # plot
-    if nbin > 1:
-        tmp = "".join(random.sample(string.letters+string.digits, 8))
-        rscript = open(tmp,"w")
-        rscript.write("options(warn=-1)\n")
-        rscript.write("x <- read.table('"+outfile+"',sep='\t')\n")
-        rscript.write("x <- x[,(ncol(x)+1-"+str(nbin)+"):ncol(x)]\n")
-        rscript.write("pdf('"+outplot+"')\n")
-        rscript.write("avg <- apply(x,2,mean)\n")
-        rscript.write("err <- apply(x,2,sd)/sqrt(nrow(x))\n")
-        rscript.write("print(avg)\n")
-        rscript.write("print(err)\n")
-        rscript.write("ylim=c(min(avg-err),max(avg+err))\n")
-        rscript.write("xticks <- seq(ncol(x))\n")
-        rscript.write("plot(xticks,avg,xlab='',ylab='average',type='l',lwd=0,ylim=ylim)\n")   
-        rscript.write("polygon(c(xticks,rev(xticks)),c(avg+err,rev(avg-err)),col='lightgreen',border=NA)\n")
-        rscript.write("lines(xticks,avg,type='l',lwd=1)\n")   
-        rscript.write("dev.off()\n")
-        rscript.close()
-        os.system("R --vanilla < "+tmp)
-        os.system("rm "+tmp)
-
-print sys.argv
-prog,bwfile,intvfile,nbin,outfile,outplot = sys.argv
-getBinnedScore(bwfile,intvfile,outfile,outplot,int(nbin))
--- a/tools/mytools/bowtie2bed.pl	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#!/usr/bin/perl
-
-# write bowtie output to bed file
-
-# perl bowtie2bed.pl s_5_trimmed.map outputfile 200
-# input
-# 	inputfile
-#	extension
-
-$inputfile = $ARGV[0];
-$extension = $ARGV[2];
-$outputfile = $ARGV[1];#$inputfile.".extended_$extension"."bp.bed";
-
-print "input file: $inputfile\n";
-print "output file: $outputfile\n";
-print "track name: $outputfile\n";
-
-open (IN,$inputfile) or die $!;
-open (OUT,">$outputfile") or die $!;
-
-print OUT "track name=$outputfile itemRgb=On\n";
-
-while(<IN>)
-{
-    @flds = split/\t/;
-    $flds[0] =~ s/ /-/g;#substitute space to dash
-
-    if ($flds[1] eq "+")
-    {
-     print OUT join("\t",$flds[2],$flds[3],$flds[3]+$extension+length($flds[4]),$flds[0],1,$flds[1],$flds[3],$flds[3]+length($flds[4]),"255,0,0","\n");
-    }
-    else
-    {
-     
-     print OUT join("\t",$flds[2],max(0,$flds[3]-$extension),$flds[3]+length($flds[4]),$flds[0],1,$flds[1],$flds[3],$flds[3]+length($flds[4]),"0,255,0","\n");
-    }
-}
-close(IN);
-close(OUT);
-
-sub max()
-{
- ($a,$b) = @_;
- return $a>$b?$a:$b;
-}
--- a/tools/mytools/bowtie2bed.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<tool id="bowtie2bed" name="bowtie-to-bed">
-  <description> converter and read extender</description>
-  <command interpreter="perl">bowtie2bed.pl $input $out_file1 $extendLength </command>
-  <inputs>
-    <param name="input" format="txt" type="data" label="Bowtie map result file"/>
-    <param name="extendLength" size="10" type="integer" value="200" label="Extend 3 primer (bp)"/>
-  </inputs>
-  <outputs>
-    <data format="bed" name="out_file1" />
-  </outputs>
-  <tests>
-    <test>
-      <param name="input" value="test.map" ftype="TXT"/>
-      <param name="extendLength" value="200"/>
-      <output name="out_file1" file="testmap.bed"/>
-    </test>
-  </tests>
-  <help>
-
-
-**What it does**
-
-This tool converts bowtie output map format file to bed format, with the option to extend the 3 primer end.
-
-- Sequence and quality information is lost after conversion
-- The output contains a track name at the first row
-
------
-
-**Example**
-
-Converting the following bowtie mapped reads::
-
-  SRR073078.2 HWUSI-EAS465_8_1_1_524 length=36	-	chr2	112499209	AGTGTGACTGCATCTCTTCCTTCGTGGGGCTNCAGT	...
-  SRR073078.3 HWUSI-EAS465_8_1_1_1054 length=36	+	chr17	75877120	CCACNCCTCCTTTCAAAACACACTGCCAGGTGCGTC	...
-
-will result in::
-
-  track name=/home/xuebing/Research/galaxy/galaxy-dist/database/files/000/dataset_5.dat itemRgb=On
-  chr2	112499109	112499245	SRR073078.2-HWUSI-EAS465_8_1_1_524-length=36	1	-	112499209	112499245	0,255,0	
-  chr17	75877120	75877256	SRR073078.3-HWUSI-EAS465_8_1_1_1054-length=36	1	+	75877120	75877156	255,0,0	
-
-  </help>
-</tool>
--- a/tools/mytools/bwBinavg.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<tool id="bwbinavg" name="bigwig summary">
-  <description>for intervals</description>
-  <command interpreter="python">getGenomicScore.py $input $output $score_type $bwfile $nbin $strand $outplot $span</command>
-  <inputs>
-      <param name="input" format="interval" type="data" label="Interval file"/>
-      <param name="bwfile" format="bigwig" type="data" label="BigWig file"/>
-      <param name="score_type" type="select" label="Select score summary type" >
-		  <option value="mean" selected="true">mean</option>
-		  <option value="max">maximum</option>
-		  <option value="min">minimum</option>
-		  <option value="std">standard deviation</option>
-		  <option value="coverage">coverage:fraction covered</option>
-      </param>
-      <param name="nbin" type="integer" value="1" label="number of bins"/>          
-        <param name="strand" type="integer" value="0" label="Specify the strand column" help="leave 0 to ignore strand information. Only matters if using more than 1 bin"/>   
-        <param name="span" size="10" type="float" value="0.1" label="loess span: smoothing parameter" help="value less then 0.1 disables smoothing"/>
-  </inputs>
-  <outputs>
-     <data format="pdf" name="outplot" label="${tool.name} on ${on_string}[plot]"/>
-    <data format="interval" name="output" label="${tool.name} on ${on_string}[data]"/>
-  </outputs>
-  <help>
-
-.. class:: infomark
-
-Each interval is binned and the average base-resolution score/coverage/density in the bigwig file is added as new columns appended at the end of the original file .
-
-**Example**
-
-If your original data has the following format:
-
-+-----+-----+---+------+
-|chrom|start|end|other2|
-+-----+-----+---+------+
-
-and you choose to divide each interval into 3 bins and return the mean scores of each bin, your output will look like this:
-
-+-----+-----+---+------+-----+-----+-----+
-|chrom|start|end|other2|mean1|mean2|mean3|
-+-----+-----+---+------+-----+-----+-----+
-
-
-</help>
-</tool>
Binary file tools/mytools/cdf-old-not-used/._cdf.xml has changed
Binary file tools/mytools/cdf-old-not-used/._cdf2-old.xml has changed
--- a/tools/mytools/cdf-old-not-used/cdf.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-'''
-python wrapper for cdf plot
-'''
-
-import os,sys
-
-filename = sys.argv[1]
-output = sys.argv[2]
-c1, c2 = sys.argv[3].strip().split(',')
-label1,label2 = sys.argv[5].strip().split(',')
-title = sys.argv[6].strip()
-log = sys.argv[4]
-
-rf = open('tmp.r','w')
-
-rf.write("options(warn=-1)\n")
-
-rf.write("x <- read.table('"+filename+"')\n")
-
-rf.write("mycdf <- function(x1,x2) {\n")
-rf.write("       sx1 <- sort(x1)\n")
-rf.write("     sy1 <- c(1:length(sx1))/length(sx1)\n")
-rf.write("     sx2 <- sort(x2)\n")
-rf.write("     sy2 <- c(1:length(sx2))/length(sx2)\n")
-rf.write("       mi <- min(c(x1,x2))\n")
-rf.write("       ma <- max(c(x1,x2))\n")
-rf.write("       sx1 <- c(mi,sx1,ma)\n")
-rf.write("       sx2 <- c(mi,sx2,ma)\n")
-rf.write("       sy1 <- c(0,sy1,1)\n")
-rf.write("       sy2 <- c(0,sy2,1)\n")
-rf.write("       pv <- ks.test(x1,x2)$p.value\n")
-rf.write("       list(sx1,sy1,sx2,sy2,pv)\n")
-rf.write("}\n")
-
-rf.write("list1 <- x[,"+c1+"]\n")
-rf.write("list2 <- x[,"+c2+"]\n")
-
-if log == 'log':
-    rf.write("list1 <- log2(1+list1) \n")
-    rf.write("list2 <- log2(1+list2) \n")
-    #rf.write("list1[list1 == -Inf] <- min(list1[list1 != -Inf])\n")
-rf.write("res <- mycdf(list1,list2)\n")
-
-rf.write("pdf('"+output+"')\n")
-rf.write("plot(res[[1]],res[[2]],type='l',lty=1,lwd=2,col='red',main=paste('"+title+"',format(res[[5]], digit=2,scientific = T),sep=' , p='),xlab='value',ylab='cumulative frequency')\n")
-rf.write("lines(res[[3]],res[[4]],type='l',lty=2,lwd=2,col='blue')\n")
-rf.write("label1 <- paste('"+label1+"','( n1=',length(list1),')')\n")
-rf.write("label2 <- paste('"+label2+"','( n2=',length(list2),')')\n")
-rf.write("legend('bottomright',c(label1,label2),col=c('red','blue'), lty=1:2, lwd=2, bty='n')\n")
-rf.write("boxplot(list1,list2,names=c(label1,label2))\n")
-rf.write("dev.off()\n")
-
-rf.close()
-os.system("R --vanilla < tmp.r")    
-os.system('rm tmp.r')
--- a/tools/mytools/cdf-old-not-used/cdf.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<tool id="cdf" name="CDF">
-  <description>plot of two columns</description>
-  <command interpreter="python">cdf.py $input $output $columns $log $labels $title </command>
-  <inputs>
-    <param name="input" format="tabular" type="data" label="input file"/>
-    <param name="columns" size="4" type="text" label="column numbers (sep by comma)" help="i.e. plot CDF for data in column 2 and 3" value="2,3"/>
-    <param name="title" size="50" type="text" label="Figure title (no space allowed)" value="CDF-plot"/>
-    <param name="labels" size="50" type="text" label="Figure legend (sep by comma,no space allowed)" value="sample,control"/>
-    <param name="log" label="log transform the data" type="boolean" truevalue="log" falsevalue="none" checked="False"/>
-  </inputs>
-  <outputs>
-    <data format="pdf" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool plots the CDF of two data columns in the input file. A KS test p-value is also shown. 
-
-  </help>
-</tool>
--- a/tools/mytools/cdf-old-not-used/cdf2-old.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<tool id="cdf2" name="CDF">
-  <description>plot of two columns from two files</description>
-  <command interpreter="python">cdf2.py $input1 $input2 $output $c1 $c2 $labels $log  $title </command>
-  <inputs>
-    <param name="input1" format="tabular" type="data" label="input file 1"/>
-    <param name="c1" size="2" type="text" label="column number" value="1"/>
-    <param name="input2" format="tabular" type="data" label="input file 2"/>
-    <param name="c2" size="2" type="text" label="column number" value="1"/>
-    <param name="title" size="50" type="text" label="Figure title (no space allowed) " value="CDF-plot"/>
-    <param name="labels" size="50" type="text" label="Figure legend (sep by comma)" value="sample,control"/>
-    <param name="log" label="log transform the data" type="boolean" truevalue="log" falsevalue="none" checked="False"/>
-
-  </inputs>
-  <outputs>
-    <data format="pdf" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool plots the CDF of two data columns in two input files. A KS test p-value is also shown. 
-
-  </help>
-</tool>
--- a/tools/mytools/cdf-old-not-used/cdf2.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-'''
-python wrapper for cdf plot
-'''
-
-import os,sys
-
-filename1 = sys.argv[1]
-filename2 = sys.argv[2]
-output = sys.argv[3]
-c1 = sys.argv[4].strip()
-c2 = sys.argv[5].strip()
-label1,label2 = sys.argv[6].strip().split(',')
-title = sys.argv[8].strip()
-log = sys.argv[7]
-
-
-
-rf = open('tmp.r','w')
-
-rf.write("options(warn=-1)\n")
-
-rf.write("x1 <- read.table('"+filename1+"')\n")
-rf.write("x2 <- read.table('"+filename2+"')\n")
-
-
-rf.write("mycdf <- function(x1,x2) {\n")
-rf.write("       sx1 <- sort(x1)\n")
-rf.write("     sy1 <- c(1:length(sx1))/length(sx1)\n")
-rf.write("     sx2 <- sort(x2)\n")
-rf.write("     sy2 <- c(1:length(sx2))/length(sx2)\n")
-rf.write("       mi <- min(c(x1,x2))\n")
-rf.write("       ma <- max(c(x1,x2))\n")
-rf.write("       sx1 <- c(mi,sx1,ma)\n")
-rf.write("       sx2 <- c(mi,sx2,ma)\n")
-rf.write("       sy1 <- c(0,sy1,1)\n")
-rf.write("       sy2 <- c(0,sy2,1)\n")
-rf.write("       pv <- ks.test(x1,x2)$p.value\n")
-rf.write("       list(sx1,sy1,sx2,sy2,pv)\n")
-rf.write("}\n")
-
-rf.write("list1 <- x1[,"+c1+"]\n")
-rf.write("list2 <- x2[,"+c2+"]\n")
-
-rf.write("list1[list1 > 1e10] <- 1e10\n")
-rf.write("list2[list2 > 1e10] <- 1e10\n")
-rf.write("list1[list1 < -1e10] <- -1e10\n")
-rf.write("list2[list2 < -1e10] <- -1e10\n")
-
-rf.write("max(list1)\n")
-rf.write("max(list2)\n")
-rf.write("min(list1)\n")
-rf.write("min(list2)\n")
-
-
-
-if log == 'log':
-    rf.write("list1 <- log2(list1) \n")
-    rf.write("list2 <- log2(list2) \n")
-rf.write("res <- mycdf(list1,list2)\n")
-
-rf.write("pdf('"+output+"')\n")
-rf.write("plot(res[[1]],res[[2]],type='l',lty=1,lwd=2,col='red',main=paste('"+title+"',format(res[[5]], digit=2,scientific = T),sep=' , p='),xlab='value',ylab='cumulative frequency')\n")
-rf.write("lines(res[[3]],res[[4]],type='l',lty=2,lwd=2,col='blue')\n")
-rf.write("legend('bottomright',c('"+label1+"','"+label2+"'),col=c('red','blue'), lty=1:2, lwd=2, bty='n')\n")
-rf.write("dev.off()\n")
-
-rf.close()
-os.system("R --vanilla < tmp.r")    
-os.system('rm tmp.r')
--- a/tools/mytools/cdf.r	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-# bin and average
-binaverage = function(x,nbin,rankORvalue){
-# use x[,1] to bin x[,2]
-	binned = list()
-	if (rankORvalue == 'value'){
-		mi = min(x[,1])
-		ma = max(x[,1])
-		bins = seq(mi,ma,length.out=nbin+1)
-		bins[1] = bins[1] - abs(mi)/100
-		bins[nbin+1] = bins[nbin+1] + abs(ma)/100
-		for (i in 1:nbin){
-			binned[[i]] = x[x[,1] >= bins[i] & x[,1] < bins[i+1],2]
-		}
-		bins[1] = bins[1] + abs(mi)/100
-		bins[nbin+1] = bins[nbin+1] - abs(ma)/100
-	} else {
-		x = x[order(x[,1]),]
-		step = round(nrow(x)/nbin)
-		bins = x[1,1]
-		for (i in 1:(nbin-1)){
-			binned[[i]] = x[((i-1)*step+1):(i*step),2]
-			bins = c(bins,x[i*step+1,1])
-		}
-		binned[[nbin]] = x[((nbin-1)*step+1):nrow(x),2]
-		bins[nbin+1] = x[nrow(x),1]
-	}
-# bin lavel
-	labels = character(0)
-	for (i in 1:nbin){
-		labels = c(labels,paste(format(bins[i],digits=2,nsmall=2),format(bins[i+1],digits=2,nsmall=2),sep='~'))	
-	}
-    list(binned=binned,bins=bins,labels=labels)
-}
-#res = binaverage(x,3,'rank')
-
-# CDF plot and KS.test
-mycdf = function(list,title,labels,legendposition,xlabel,legend_title){
-    L = length(list)
-    
-    # barplot for mean and std
-    avg = numeric(L)
-    err = numeric(L)
-    for (i in 1:L){
-        avg[i] = mean(list[[i]])
-        err[i] = sd(list[[i]])
-    }
-    #print(list[[1]])
-    #print(list[[2]])
-    #print(avg)
-    #print(err)
-	par(cex=1.5,mar=c(8,6,6,4))
-    xticks <- barplot(avg,names.arg=labels,las=2,ylab=xlabel,main='mean and standard deviation',xlab=legend_title,ylim=c(0,max(avg+err)))
-    arrows(xticks,avg+err, xticks, avg-err, angle=90, code=3, length=0.0)
-    
-	if (L>1){
-    # ks test
-	cat('\nKS test:\n')
-	cat('sample1\tsample2\tp-value\n')
-	cat('-------------------------------------------------\n')
-    for (i in 1:(L-1)){
-        for (j in (i+1):L){
-        cat(labels[i],'\t',labels[j],'\t')
-        ks = ks.test(list[[i]],list[[j]])
-        pv = max(2.2e-16,ks$p.value)
-	    pv = format(pv,digits=3,nsmall=2)
-		cat(pv,'\n')
-        }
-    }
-	cat('-------------------------------------------------\n')
-	}
-	if (L == 2){
-		title = paste(title,'\np=',pv,sep='')
-	}
-    # cdf plot
-    listx = list()
-    listy = list()
-    mi = 1e10
-    ma = 1e-10
-    for (i in 1:L){
-        mi = min(mi,list[[i]])
-        ma = max(ma,list[[i]])
-    }
-    for (i in 1:L){
-        listx[[i]] = c(mi,listx[i],ma)
-        listy[[i]] = c(0,listy[i],1)
-    }
-    for (i in 1:L){
-        mi = min(mi,list[[i]])
-        ma = max(ma,list[[i]])
-        listx[[i]] = sort(list[[i]])
-        listy[[i]] = c(1:length(list[[i]]))/length(list[[i]])          
-    }
-#par(xlog=(xlog=='xlog'))
-    plot(listx[[1]],listy[[1]],type='l',lty=1,lwd=2,col=2,main=title,xlab=xlabel,ylab='cumulative frequency')
-    for (i in 2:L){
-        lines(listx[[i]],listy[[i]],type='l',lty=i,lwd=2,col=i+1)
-    }
-    # legend
-    for (i in 1:L){
-        labels[i] = paste(labels[i],', n=',length(list[[i]]),sep='')
-    }
-    legend(legendposition,legend=labels,col=2:(L+1), lty=1:L,lwd=2, bty='n',title=legend_title)
-}
--- a/tools/mytools/cdf.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<tool id="cdf" name="CDF">
-  <description>plot of multiple numeric columns</description>
-  <command>cat $script_file | R --vanilla --slave > $out_log </command>
-  <inputs>
-    <param name="title" type="text" value="CDF plot" size="30" label="Plot title"/>
-    <param name="xlabel" type="text" value="value" size="30" label="xlabel"/>
-    <param name="log" label="log2 transform the data" type="boolean" truevalue="log" falsevalue="none" checked="False"/>
-   <param name="zero" label="remove zero" type="boolean" truevalue="zero" falsevalue="none" checked="False"/> 
-  <param name="legendloc" type="select" label="legend location on CDF plot" >
-		  <option value="bottomright" selected="true">bottomright</option>
-		  <option value="bottomleft">bottomleft</option>
-		  <option value="bottom">bottom</option>
-		  <option value="left">left</option>
-		  <option value="topleft">topleft</option>
-		  <option value="top">top</option>
-		  <option value="topright">topright</option>      
-		  <option value="right">right</option>
-		  <option value="center">center</option>  
-      </param>       
-    <repeat name="series" title="sample">
-      <param name="label" type="text" value="" size="30" label="data label"/>
-      <param name="input" type="data" format="tabular" label="dataset"/>
-      <param name="column" type="integer" value="2" label="column number (-1 for last column)"/>
-    </repeat>  
-         
-  </inputs>
-
-  <configfiles>
-    <configfile name="script_file">
-      ## Setup R error handling to go to stderr
-      options(warn=-1)
-      source("/Users/xuebing/galaxy-dist/tools/mytools/cdf.r")
-      uselog = as.character("${log}")
-      zero = as.character("${zero}")
-      title = as.character("${title}")
-      xlabel = as.character("${xlabel}")
-        if (uselog=='log'){
-            xlabel = paste('log2',xlabel)
-        }                  
-
-      labels = character(0)
-      x = list()
-      #for $i, $s in enumerate( $series )
-        labels = c(labels,"${s.label.value}")
-        x0 = read.table( "${s.input.file_name}" ,sep='\t')
-        col = ${s.column.value}
-        if (col == -1) {col = ncol(x0)}
-        x0 = x0[,col]
-        if (zero == 'zero'){
-            x0 = x0[x0 != 0]
-        }
-        if (uselog=='log'){
-            x0=log2(1+x0)
-        }
-        print("${s.label.value}")
-        summary(x0)
-        x[[$i+1]] = x0
-      #end for
-      pdf("${out_file}")
-      mycdf(x,title,labels,"${legendloc}",xlabel,'')
-      dev.off() 
-    </configfile>
-  </configfiles>
-
-  <outputs>
-    <data format="txt" name="out_log" label="${tool.name} on ${on_string}: (log)" />
-    <data format="pdf" name="out_file" label="${tool.name} on ${on_string}: (plot)" />
-  </outputs>
-
-<help>
-
-.. class:: infomark
-
-This tool generate barplot and CDF plot comparing multiple numeric columns in different files.
-
-
-</help>
-</tool>
--- a/tools/mytools/closestBed.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<tool id="closestbed" name="closestBed">
-  <description>find closest features</description>
-  <command>closestBed -a $inputa -b $inputb $strandness -d $no -t $tie> $output_data
-  </command>
-  <inputs>
-      <param name="inputa" type="data" format="interval,bam,bed,gff,vcf" label="Input A (-a)"/>
-      <param name="inputb" type="data" format="interval,bam,bed,gff,vcf" label="Input B (-b)"/>          
-      <param name="strandness" type="select" label="Strand requirement" >
-		<option value="" selected="true"> none </option>
-        <option value="-s" > -s: closest feature on the same strand</option>
-        <option value="-S" > -S: closest feature on the opposite strand </option>
-      </param>
-      
-    <param name="no" label="Only look for non-overlaping features" type="boolean" truevalue="-no" falsevalue="" checked="False"/>
-              <param name="tie" type="select" label="Strand requirement" >
-		<option value="all" selected="true"> report all ties </option>
-        <option value="first" > report the first that occurred</option>
-        <option value="last" > report the last that occurred </option>
-      </param>
-        </inputs>
-  <outputs>
-    <data format="input" name="output_data"/> 
-  </outputs>
-  <help>
-
-**What it does**
-
-This is a wrapper for closestBed.
-
-  </help>
-</tool>
-
--- a/tools/mytools/collapseBed.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-'''
-collapse intervals
-'''
-
-def collapseInterval_strand(filename):
-    uniqintv = {}
-    data = {}
-    f = open(filename)
-    header = f.readline()
-    if 'chr' in header:
-        flds = header.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2],flds[5]])
-        uniqintv[key] = 1
-        data[key] = flds
-    for line in f:
-        flds = line.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2],flds[5]])
-        if uniqintv.has_key(key):
-            uniqintv[key] = uniqintv[key] + 1
-        else:
-            uniqintv[key] = 1
-            data[key] = flds
-    f.close()        
-    for key in uniqintv.keys():
-        print '\t'.join(data[key]+[str(uniqintv[key])])
-        #flds = key.split('\t')
-        #print '\t'.join([flds[0],flds[1],flds[2],'.',str(uniqintv[key]),flds[3]])
-
-def collapseInterval(filename):
-    uniqintv = {}
-    data = {}
-    f = open(filename)
-    header = f.readline()
-    if 'chr' in header:
-        flds = header.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2]])
-        uniqintv[key] = 1
-        data[key] = flds
-    for line in f:
-        flds = line.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2]])
-        if uniqintv.has_key(key):
-            uniqintv[key] = uniqintv[key] + 1
-        else:
-            uniqintv[key] = 1
-            data[key] = flds
-    f.close()        
-    for key in uniqintv.keys():
-        print '\t'.join(data[key]+[str(uniqintv[key])])
-        #flds = key.split('\t')
-        #print '\t'.join([flds[0],flds[1],flds[2],'.',str(uniqintv[key])])       
-
-import sys
-
-if sys.argv[2] == 'strand':
-    collapseInterval_strand(sys.argv[1])
-else:
-    collapseInterval(sys.argv[1])
--- a/tools/mytools/collapseBed.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<tool id="collapseBed" name="collapse">
-  <description>intervals</description>
-  <command interpreter="python">collapseBed2.py $input $strand $score > $outfile </command>
-  <inputs>
-    <param name="input" format="interval" type="data" label="Original file"/>
-    <param name="strand" size="10" type="integer" value="6" label="strand column" help="set 0 to ignore strand information" />
-    <param name="score" size="10" type="integer" value="5" label="for duplicate lines, keep the one with max value in column" help="set 0 to ignore score information" />
-    </inputs>
-  <outputs>
-    <data format="input" name="outfile" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool collapses genomic intervals that have the same position (and strandness if specified) and output a set of unique intervals.  
-
-  </help>
-</tool>
--- a/tools/mytools/collapseBed2.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-'''
-collapse intervals
-'''
-
-def collapseInterval_strand(filename,c_strand,c_score):
-    # keeping max column c
-    uniqintv = {}
-    data = {}
-    f = open(filename)
-    header = f.readline()
-    if 'chr' in header:
-        flds = header.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2],flds[c_strand]])
-        uniqintv[key] = float(flds[c_score])
-        data[key] = flds
-    for line in f:
-        flds = line.strip().split('\t')
-        key = '\t'.join([flds[0],flds[1],flds[2],flds[c_strand]])
-        if not uniqintv.has_key(key):
-            uniqintv[key] = float(flds[c_score])
-            data[key] = flds
-        elif uniqintv[key] < float(flds[c_score]):
-            uniqintv[key] = float(flds[c_score])
-            data[key] = flds
-            
-    f.close()        
-    for key in uniqintv.keys():
-        print '\t'.join(data[key])
-        
-import sys
-
-if sys.argv[2] == '0':#ignore strand
-    sys.argv[2] = 1
-if sys.argv[3] == '0':# ignore score
-    sys.argv[3] = 2
-collapseInterval_strand(sys.argv[1],int(sys.argv[2])-1,int(sys.argv[3])-1)
--- a/tools/mytools/collapseTab.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-'''
-collapse tabular files, with key columns, and max columns
-'''
-
-def collapseTab(filename,c_key,c_max):
-    # keeping rows with max value in column c_max
-    nCol = max(max(c_key),c_max)
-    c_max = c_max - 1
-    for i in range(len(c_key)):
-        c_key[i] = c_key[i] - 1
-    uniqintv = {}
-    data = {}
-    f = open(filename)
-    for line in f:
-        flds = line.strip().split('\t')
-        if len(flds) < nCol:
-            continue
-        key = ''
-        for i in c_key:
-            key = key + flds[i-1] # i is 1-based, python is 0-based
-        if not uniqintv.has_key(key):
-            uniqintv[key] = float(flds[c_max])
-            data[key] = flds
-        elif uniqintv[key] < float(flds[c_max]):
-            uniqintv[key] = float(flds[c_max])
-            data[key] = flds
-
-    f.close()        
-    for key in uniqintv.keys():
-        print '\t'.join(data[key])
-        
-import sys
-
-# convert string to number list
-c_key = map(int,sys.argv[2].split(','))
-c_max = int(sys.argv[3])
-collapseTab(sys.argv[1],c_key,c_max)
--- a/tools/mytools/collapseTab.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<tool id="collapseTab" name="collapse tabular">
-  <description>files</description>
-  <command interpreter="python">collapseTab.py $input $key $max > $outfile </command>
-  <inputs>
-    <param name="input" format="tabular" type="data" label="Original file"/>
-    <param name="key" size="10" type="text" value="1,2,3" label="key column(s)" help="columns to define unique rows" />
-    <param name="max" size="10" type="text" value="5" label="for lines with identical key, keep the one with max value in this column" help="need to be numeric" />
-    </inputs>
-  <outputs>
-    <data format="input" name="outfile" />
-  </outputs>
-  <help>
-
-**What it does**
-
-Similar to 'Group' but returns the entire line.  
-
-  </help>
-</tool>
--- a/tools/mytools/convertEnsembl.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-'''
-convert ensembl bed to ucsc
-add chr to chromosome
-1 = +
--1 = -
-'''
-
-import sys
-f = open(sys.argv[1])
-out = open(sys.argv[2],'w')
-skip = int(sys.argv[3])
-
-for i in range(skip):
-    f.readline()
-
-for line in f:
-    flds = line.strip().split('\t')
-    flds[0] = 'chr'+flds[0]
-    if flds[5] == '1':
-        flds[5] = '+'
-    else:
-        flds[5] = '-'
-    out.write('\t'.join(flds)+'\n')
-f.close()
-out.close()
-
--- a/tools/mytools/convertEnsembl.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<tool id="convertens" name="convert ensembl">
-  <description>to ucsc</description>
-  <command interpreter="python">convertEnsembl.py $input $output $skip  </command>
-  <inputs>
-    <param name="input" format="interval" type="data" label="Original file"/>
-    <param name="skip" size="10" type="integer" value="0" label="Number of beginning lines to skip"/>
-  </inputs>
-  <outputs>
-    <data format="input" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool convert ensembl based interval file to ucsc format: add 'chr' to chromosome number (column 1), and replace '1' and '-1' with '+' and '-' in column 6, respectively. 
-
- </help>
-</tool>
--- a/tools/mytools/dreme.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<tool id="dreme" name="DREME">
-  <description>short motif discovery</description>
-  <command interpreter="python">/Users/xuebing/bin/dreme.py -p $input -png     -e $ethresh
-    #if $background_select.bg_select == "fromfile":
-        -n "${bgfile}"
-    #end if
-
-  &amp;&amp; mv dreme_out/dreme.html ${html_outfile}
-  
-  &amp;&amp; mv dreme_out/dreme.txt ${txt_outfile}
-
-  &amp;&amp; mv dreme_out/dreme.xml ${xml_outfile}
-  
-  &amp;&amp; rm -rf dreme_out
-  
-  </command>
-  <inputs>
-      <param name="input" type="data" format="fasta" label="Sequence file (FASTA)"/>      
-     <conditional name="background_select">
-    	<param name="bg_select" type="select" label="Background sequence" >
-		<option value="shuffle" selected="true">shuffle the orignal sequence</option>
-		<option value="fromfile">load from file</option>
-	    </param>
-	    <when value="fromfile">
-		    <param name="bgfile" type="data" format="fasta" label="Background sequence file (FASTA)"/>
-	    </when>
-    </conditional>
-          
-      <param name="ethresh" size="10" type="float" value="0.05" label="E-value threshold"/>
-  </inputs>
-  <outputs>
-
-    <data format="xml" name="xml_outfile" label="${tool.name} on ${on_string} (xml)"/>
-    <data format="txt" name="txt_outfile" label="${tool.name} on ${on_string} (motif)"/>
-    <data format="html" name="html_outfile" label="${tool.name} on ${on_string} (html)"/>    
-  </outputs>
-  <help>
-
-**What it does**
-
-http://meme.sdsc.edu/meme/doc/dreme.html
-
-DREME (Discriminative Regular Expression Motif Elicitation) finds relatively short motifs (up to 8 bases) fast, and can perform discriminative motif discovery if given a negative set, consisting of sequences unlikely to contain a motif of interest that is however likely to be found in the main ("positive") sequence set. If you do not provide a negative set the program shuffles the positive set to provide a background (in the role of the negative set).
-
-The input to DREME is one or two sets of DNA sequences. The program uses a Fisher Exact Test to determine significance of each motif found in the postive set as compared with its representation in the negative set, using a significance threshold that may be set on the command line.
-
-DREME achieves its high speed by restricting its search to regular expressions based on the IUPAC alphabet representing bases and ambiguous characters, and by using a heuristic estimate of generalised motifs' statistical significance. 
-
-  </help>
-</tool>
--- a/tools/mytools/dreme_out/dreme.html	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3045 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>DREME</title>
-<style type="text/css">
-    
-    /* START INCLUDED FILE "meme.css" */
-        /* The following is the content of meme.css */
-        body { background-color:white; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif;}
-
-        div.help {
-          display: inline-block;
-          margin: 0px;
-          padding: 0px;
-          width: 12px;
-          height: 13px;
-          cursor: pointer;
-          background-image: url("help.gif");
-          background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAANAQMAAACn5x0BAAAAAXNSR0IArs4c6QAAAAZQTFRFAAAAnp6eqp814gAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2gMJBQgGYqhNZQAAACZJREFUCNdj+P+BoUGAoV+AYeYEEGoWYGgTYGgRAAm2gRGQ8f8DAOnhC2lYnqs6AAAAAElFTkSuQmCC");
-        }
-
-        div.help2 {
-          color: #999;
-          display: inline-block;
-          width: 12px;
-          height: 12px;
-          border: 1px solid #999;
-          font-size: 13px;
-          line-height:12px;
-          font-family: Helvetica, sans-serif;
-          font-weight: bold;
-          font-style: normal;
-          cursor: pointer;
-        }
-        div.help2:hover {
-          color: #000;
-          border-color: #000;
-        }
-        
-        p.spaced { line-height: 1.8em;}
-        
-        span.citation { font-family: "Book Antiqua", "Palatino Linotype", serif; color: #004a4d;}
-
-        p.pad { padding-left: 30px; padding-top: 5px; padding-bottom: 10px;}
-
-        td.jump { font-size: 13px; color: #ffffff; background-color: #00666a;
-          font-family: Georgia, "Times New Roman", Times, serif;}
-
-        a.jump { margin: 15px 0 0; font-style: normal; font-variant: small-caps;
-          font-weight: bolder; font-family: Georgia, "Times New Roman", Times, serif;}
-
-        h2.mainh {font-size: 1.5em; font-style: normal; margin: 15px 0 0;
-          font-variant: small-caps; font-family: Georgia, "Times New Roman", Times, serif;}
-
-        h2.line {border-bottom: 1px solid #CCCCCC; font-size: 1.5em; font-style: normal;
-          margin: 15px 0 0; padding-bottom: 3px; font-variant: small-caps;
-          font-family: Georgia, "Times New Roman", Times, serif;}
-
-        h4 {border-bottom: 1px solid #CCCCCC; font-size: 1.2em; font-style: normal;
-          margin: 10px 0 0; padding-bottom: 3px; font-family: Georgia, "Times New Roman", Times, serif;}
-
-        h5 {margin: 0px}
-
-        a.help { font-size: 9px; font-style: normal; text-transform: uppercase;
-          font-family: Georgia, "Times New Roman", Times, serif;}
-
-        div.pad { padding-left: 30px; padding-top: 5px; padding-bottom: 10px;}
-        
-        div.pad1 { margin: 10px 5px;}
-
-        div.pad2 { margin: 25px 5px 5px;}
-        h2.pad2 { padding: 25px 5px 5px;}
-
-        div.pad3 { padding: 5px 0px 10px 30px;}
-
-        div.box { border: 2px solid #CCCCCC; padding:10px;}
-
-        div.bar { border-left: 7px solid #00666a; padding:5px; margin-top:25px; }
-
-        div.subsection {margin:25px 0px;}
-
-        img {border:0px none;}
-
-        th.majorth {text-align:left;}
-        th.minorth {font-weight:normal; text-align:left; width:8em; padding: 3px 0px;}
-        th.actionth {font-weight:normal; text-align:left;}
-
-        .strand_name {text-align:left;}
-        .strand_side {padding:0px 10px;}
-        .strand_start {padding:0px 10px;}
-        .strand_pvalue {text-align:center; padding:0px 10px;}
-        .strand_lflank {text-align:right; padding-right:5px; font-weight:bold; font-size:large; font-family: 'Courier New', Courier, monospace; color:gray;}
-        .strand_seq {text-align:center; font-weight:bold; font-size:large; font-family: 'Courier New', Courier, monospace;}
-        .strand_rflank {text-align:left; padding-left:5px; font-weight:bold; font-size:large; font-family: 'Courier New', Courier, monospace; color:gray;}
-
-        .block_td {height:25px;}
-        .block_container {position:relative; width:99%; height:25px; padding:0px; margin:0px;}
-        .block_motif {position:absolute; z-index:3; height:12px; top:0px; text-align:center; vertical-align:middle; background-color:cyan;}
-        .block_rule {position:absolute; z-index:2; width:100%; height:1px; top:12px; left:0px; background-color:gray;}
-        .block_plus_sym {position:absolute; z-index:4; width:12px; height:12px; top:0px; left:0px; color:gray;}
-        .block_minus_sym {position:absolute; z-index:4; width:12px; height:12px; top:13px; left:0px; color:gray;}
-
-        .tic_major {position:absolute; border-left:2px solid blue; height:0.5em; top:0em;}
-        .tic_minor {position:absolute; border-left:1px solid blue; height:0.2em; top:0em;}
-        .tic_label {position:absolute; top:0.5em;  height: 1em; text-align:center; vertical-align:middle}
-
-        .explain h5 {font-size:1em; margin-left: 1em;}
-
-        div.doc {margin-left: 2em; margin-bottom: 3em;}
-        
-        div.tabArea {
-          font-size: 80%;
-          font-weight: bold;
-        }
-
-        a.tab {
-          background-color: #ddddff;
-          border: 1px solid #000000;
-          padding: 2px 1em 2px 1em;
-          text-decoration: none;
-        }
-        div.tabArea.base a.tab {
-          border-top-width: 0px;
-        }
-        div.tabArea.top a.tab {
-          border-bottom-width: 0px;
-        }
-
-        a.tab, a.tab:visited {
-          color: #808080;
-        }
-
-        a.tab:hover {
-          background-color: #d0d0d0;
-          color: #606060;
-        }
-        a.tab.activeTab, a.tab.activeTab:hover, a.tab.activeTab:visited {
-          background-color: #f0f0f0;
-          color: #000000;
-        }
-        div.tabMain {
-          border: 1px solid #000000;
-          background-color: #ffffff;
-          padding: 5px;
-          margin-right: 5px;
-        }
-        th.trainingset {
-          border-bottom: thin dashed black; 
-          font-weight:normal; 
-          padding:0px 10px;
-        }
-        .dnaseq {
-          font-weight: bold; 
-          font-size: large; 
-          font-family: 'Courier New', Courier, monospace;
-        }
-        .dna_A {
-          color: rgb(204,0,0);
-        }
-        .dna_C {
-          color: rgb(0,0,204);
-        }
-        .dna_G {
-          color: rgb(255,179,0);
-        }
-        .dna_T {
-          color: rgb(0,128,0);
-        }
-    /* END INCLUDED FILE "meme.css" */
-    
-  
-    
-    /* START INCLUDED FILE "dreme-to-html.css" */
-      table.dreme_motifs tr th, table.dreme_motifs tr td {
-        padding: 0px 10px;
-      }
-
-      div.popup_wrapper {
-        position:fixed; 
-        z-index:2;
-        width:100%; 
-        height:0; 
-        top:50%; 
-        left:0;
-      }
-
-      div.popup {
-        width: 400px; 
-        z-index:2;
-        margin-left: auto;
-        margin-right: auto;
-        padding: 5px;
-        background: #FFF;
-        border-style: double;
-        border-width: 5px;
-        border-color: #00666a;
-        position:relative; 
-      }
-
-      div.grey_background {
-        position:fixed; 
-        z-index: 1;
-        background-color: #000;
-        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-        filter: alpha(opacity=50);
-        opacity: 0.5;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-
-      }
-      td.symaction {
-        text-align: center;
-      }
-      *.symaction {
-        font-size: 20px;
-      }
-
-      div.close {
-        cursor: pointer;
-        border: 1px solid black; 
-        width:15px; 
-        height:15px; 
-        line-height:15px; /* this causes vertical centering */
-        text-align:center; 
-        background-color:#FFF; 
-        color:#000; 
-        font-size:15px;
-        font-family:monospace;
-      }
-
-      div.close:hover {
-        color:#FFF;
-        background-color:#000; 
-      }
-
-      div.navnum {
-        width:100%; 
-        height:20px; 
-        line-height:20px; 
-        text-align:center; 
-        font-size:medium;
-      }
-
-      a.navarrow {
-        font-size: 30px;
-        text-decoration:none;
-      }
-
-      a.inactive {
-        color:#CCC;
-      }
-
-      div.actionbutton { 
-        cursor: pointer;
-        font-size: 18px;
-        line-height:20px; 
-        padding: 5px; 
-        margin: 10px 0; 
-        border: 1px solid black;
-      }
-
-      div.actionbutton:hover {
-        color:#FFF;
-        background-color:#000;
-      }
-
-      div.pop_content {
-        position:absolute;
-        z-index:1;
-        width:300px;
-        padding: 5px;
-        background: #E4ECEC;
-        font-size: 12px;
-        font-family: Arial;
-        border-style: double;
-        border-width: 3px;
-        border-color: #AA2244;
-        display:none;
-      }
-      span.sort_dir {
-        text-decoration: none;
-      }
-
-      div.section_title {
-        font-weight: bold;
-        cursor: pointer;
-      }
-
-      div.section_title.inactive {
-        color: #000;
-      }
-
-      div.section_title.inactive:hover {
-        color: #000;
-        text-decoration:underline;
-      }
-
-      div.section_title label {
-        cursor: pointer;
-      }
-
-      span.ellipsis {
-        display: inline-block;
-        border: 1px solid black;
-        padding: 0 2px;
-        margin: 0 2px;
-      }
-
-      div.section_title.inactive:hover span.ellipsis {
-        color: #FFF;
-        background-color: #000;
-      }
-
-      div.section_title.inactive span.toggle {
-        color: #000;
-      }
-
-      div.section_data {
-        margin-left: 20px;
-      }
-      tr.rule td, tr.rule th {
-        border-bottom: 1px solid #CCC;
-      }
-
-      h1.compact, h2.compact, h3.compact, h4.compact, h5.compact, h6.compact {
-        margin:0; 
-        padding:0;
-      }
-
-      ul.programs {
-        margin-top: 0;
-        padding-top: 0;
-        margin-bottom: 0;
-        padding-bottom: 0;
-        margin-left: 0;
-        padding-left: 0;
-        list-style: none;
-        border-bottom: 1px solid black;
-      }
-
-      ul.programs li {
-        border: 1px solid black;
-        border-bottom-width: 0;
-        background-color: #EFE;
-        cursor: default;
-      }
-
-      ul.programs li.active {
-        background-color: #CFC;
-      }
-
-      ul.programs li.selected {
-        background-color: #262;
-        color: #FFF;
-      }
-
-      div.programs_scroll {
-        width: 100%; 
-        height: 90px; 
-        overflow-y: auto; 
-        overflow-x: hidden;
-        margin: 0 auto; 
-      }
-    /* END INCLUDED FILE "dreme-to-html.css" */
-    
-  </style>
-<script type="text/javascript">
-      var pos_count = 3;
-      var neg_count = 3;
-      var motif_seqs = [];
-
-    
-    /* START INCLUDED FILE "delay_draw.js" */
-      //
-      // Functions to measure the position of page elements relative to the size of the page
-      //
-
-      // gets the offset of the top of the page due to scrolling
-      // from: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
-      function get_scroll_xy() {
-        var scrOfX = 0, scrOfY = 0;
-        if( typeof( window.pageYOffset ) == 'number' ) {
-          //Netscape compliant
-          scrOfY = window.pageYOffset;
-          scrOfX = window.pageXOffset;
-        } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
-          //DOM compliant
-          scrOfY = document.body.scrollTop;
-          scrOfX = document.body.scrollLeft;
-        } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
-          //IE6 standards compliant mode
-          scrOfY = document.documentElement.scrollTop;
-          scrOfX = document.documentElement.scrollLeft;
-        }
-        return [ scrOfX, scrOfY ];
-      }
-
-      // gets the width and height of the visible page
-      // from: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
-      function get_page_size() {
-        var myWidth = 0, myHeight = 0;
-        if( typeof( window.innerWidth ) == 'number' ) {
-          //Non-IE
-          myWidth = window.innerWidth;
-          myHeight = window.innerHeight;
-        } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
-          //IE 6+ in 'standards compliant mode'
-          myWidth = document.documentElement.clientWidth;
-          myHeight = document.documentElement.clientHeight;
-        } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
-          //IE 4 compatible
-          myWidth = document.body.clientWidth;
-          myHeight = document.body.clientHeight;
-        }
-        return [myWidth, myHeight];
-      }
-
-      // gets the x and y offset of an element
-      // from http://www.quirksmode.org/js/findpos.html
-      function get_elem_xy(elem) {
-        var myX = myY = 0;
-        if (elem.offsetParent) {
-          do {
-            myX += elem.offsetLeft;
-            myY += elem.offsetTop;
-          } while (elem = elem.offsetParent);
-        }
-        return [myX, myY];
-      }
-
-      //
-      // Functions to delay a drawing task until it is required or it would not lag the display to do so
-      //
-
-      // a list of items still to be drawn
-      var drawable_list = [];
-      // the delay between drawing objects that are not currently visible
-      var draw_delay = 1;
-      // the delay after a user interaction
-      var user_delay = 300;
-      // the delay after a user has stopped scrolling and is viewing the stuff drawn on the current page
-      var stop_delay = 2000;
-      // the timer handle; allows resetting of the timer after user interactions
-      var draw_timer = null;
-
-      //
-      // Drawable
-      //
-      // elem - a page element which defines the position on the page that drawing is to be done
-      // task - an object with the method run which takes care of painting the object
-      //
-      function Drawable(elem, task) {
-        this.elem = elem;
-        this.task = task;
-        this.is_visible = Drawable_is_visible;
-      }
-
-      //
-      // Drawable_is_visible
-      //
-      // Determines if the drawable object is in the visible part of the page.
-      //
-      // page_top - the distance to the top of the page for the visible region
-      // page_height - the height of the visible region
-      function Drawable_is_visible(page_top, page_height) {
-        var elem_top = get_elem_xy(this.elem)[1];
-        var elem_height = this.elem.height;
-        if (typeof (elem_height) != 'number') elem_height = 1;
-        return ((elem_top + elem_height) >= page_top && elem_top <= (page_top + page_height));
-      }
-
-      //
-      // draw_on_screen
-      //
-      // Checks each drawable object and draws those on screen.
-      //
-      function draw_on_screen() {
-        var found = false;
-        var page_top = get_scroll_xy()[1];
-        var page_height = get_page_size()[1];
-        for (var i = 0; i < drawable_list.length; i++) {
-          var drawable = drawable_list[i];
-          if (drawable.is_visible(page_top, page_height)) {
-            drawable.task.run();
-            drawable_list.splice(i--, 1);
-            found = true;
-          }
-        }
-        return found;
-      }
-
-      //
-      // process_draw_tasks
-      //
-      // Called on a delay to process the next avaliable
-      // draw task.
-      //
-      function process_draw_tasks() {
-        var delay = draw_delay;
-        draw_timer = null;
-        if (drawable_list.length == 0) return; //no more tasks
-        if (draw_on_screen()) {
-          delay = stop_delay; //give the user a chance to scroll
-        } else {
-          //get next task
-          var drawable = drawable_list.shift();
-          drawable.task.run();
-        }
-        //allow UI updates between tasks
-        draw_timer = window.setTimeout("process_draw_tasks()", draw_delay);
-      }
-
-      //
-      // delayed_process_draw_tasks
-      //
-      // Call process_draw_tasks after a short delay.
-      // The delay serves to group multiple redundant events.       
-      // Should be set as event handler for onscroll and onresize.
-      //
-      function delayed_process_draw_tasks() {
-        //reset the timer
-        if (drawable_list.length > 0) { 
-          if (draw_timer != null) clearTimeout(draw_timer);
-          draw_timer = window.setTimeout("process_draw_tasks()", user_delay);
-        }
-      }
-
-      //
-      // add_draw_task
-      //
-      // Add a drawing task to be called immediately if it is
-      // visible, or to be called on a delay to reduce stuttering
-      // effect on the web browser.
-      function add_draw_task(elem, task) {
-        var page_top = get_scroll_xy()[1];
-        var page_height = get_page_size()[1];
-        drawable = new Drawable(elem, task);
-        if (drawable.is_visible(page_top, page_height)) {
-          task.run();
-        } else {
-          drawable_list.push(drawable);
-          //reset timer
-          if (draw_timer != null) clearTimeout(draw_timer);
-          draw_timer = window.setTimeout("process_draw_tasks()", user_delay);
-        }
-      }
-
-    /* END INCLUDED FILE "delay_draw.js" */
-    
-  
-    
-    /* START INCLUDED FILE "motif_logo.js" */
-    //======================================================================
-    // start Alphabet object
-    //======================================================================
-    function Alphabet(alphabet, bg) {
-      //variable prototype
-      this.freqs = new Array();
-      this.alphabet = new Array();
-      this.letter_count = 0;
-      //method prototype
-      this.get_ic = Alphabet_get_ic;
-      this.get_size = Alphabet_get_size;
-      this.get_index = Alphabet_get_index;
-      this.get_letter = Alphabet_get_letter;
-      this.get_colour = Alphabet_get_colour;
-      this.get_bg_freq = Alphabet_get_bg_freq;
-      this.is_nucleotide = Alphabet_is_nucleotide;
-      this.is_ambig = Alphabet_is_ambig;
-      this.toString = Alphabet_to_string;
-      //construct
-      var is_letter = /^\w$/;
-      var is_prob = /^((1(\.0+)?)|(0(\.\d+)?))$/;
-      for (var pos = 0; pos < alphabet.length; pos++) {
-        var letter = alphabet.charAt(pos);
-        if (is_letter.test(letter)) {
-          this.alphabet[this.letter_count] = letter.toUpperCase();
-          this.freqs[this.letter_count] = -1;
-          this.letter_count++;
-        }
-      }
-      if (!(bg === undefined)) {
-        var parts = bg.split(/\s+/);
-        for (var i = 0, pos = 0; (i + 1) < parts.length; i += 2) {
-          var letter = parts[i];
-          var freq = parts[i+1];
-          if (is_letter.test(letter) && is_prob.test(freq)) {
-            letter = letter.toUpperCase();          //find the letter it matches
-            for (;pos < this.letter_count; pos++) {
-              if (this.alphabet[pos] == letter) break;
-            }
-            if (pos >= this.letter_count) throw "NOT_IN_ALPHABET";
-            this.freqs[pos] = (+freq);
-          }
-        }
-      } else {
-        //assume uniform background
-        var freq = 1.0 / this.letter_count;
-        for (var pos = 0; pos < this.letter_count; pos++) {
-          this.freqs[pos] = freq;
-        }
-      }
-    }
-
-
-    function Alphabet_get_ic() {
-      if (this.is_nucleotide()) {
-        return 2;
-      } else {
-        return Math.log(20) / Math.LN2;
-      }
-    }
-
-    function Alphabet_get_size() {
-      return this.letter_count;
-    }
-
-    function Alphabet_get_letter(alph_index) {
-      if (alph_index < 0 || alph_index >= this.letter_count) {
-        throw "BAD_ALPHABET_INDEX";
-      }
-      return this.alphabet[alph_index];
-    }
-
-    function Alphabet_get_bg_freq(alph_index) {
-      if (alph_index < 0 || alph_index >= this.letter_count) {
-        throw "BAD_ALPHABET_INDEX";
-      }
-      if (this.freqs[alph_index] == -1) throw "BG_FREQ_NOT_SET";
-      return this.freqs[alph_index];
-    }
-
-    function Alphabet_get_colour(alph_index) {
-      var red = "rgb(204,0,0)";
-      var blue = "rgb(0,0,204)";
-      var orange = "rgb(255,179,0)";
-      var green = "rgb(0,128,0)";
-      var yellow = "rgb(255,255,0)";
-      var purple = "rgb(204,0,204)";
-      var magenta = "rgb(255,0,255)";
-      var pink = "rgb(255,204,204)";
-      var turquoise = "rgb(51,230,204)";
-      if (alph_index < 0 || alph_index >= this.letter_count) {
-        throw "BAD_ALPHABET_INDEX";
-      }
-      if (this.is_nucleotide()) {
-        switch (this.alphabet[alph_index]) {
-          case "A":
-            return red;
-          case "C":
-            return blue;
-          case "G":
-            return orange;
-          case "T":
-            return green;
-        }
-      } else {
-        switch (this.alphabet[alph_index]) {
-          case "A":
-          case "C":
-          case "F":
-          case "I":
-          case "L":
-          case "V":
-          case "W":
-          case "M":
-            return blue;
-          case "N":
-          case "Q":
-          case "S":
-          case "T":
-            return green;
-          case "D":
-          case "E":
-            return magenta;
-          case "K":
-          case "R":
-            return red;
-          case "H":
-            return pink;
-          case "G":
-            return orange;
-          case "P":
-            return yellow;
-          case "Y":
-            return turquoise;
-        }
-      }
-      return "black";
-    }
-
-    function Alphabet_is_ambig(alph_index) {
-      if (alph_index < 0 || alph_index >= this.letter_count) {
-        throw "BAD_ALPHABET_INDEX";
-      }
-      if (this.is_nucleotide()) {
-        return ("ACGT".indexOf(this.alphabet[alph_index]) == -1);
-      } else {
-        return ("ACDEFGHIKLMNPQRSTVWY".indexOf(this.alphabet[alph_index]) == -1);
-      }
-    }
-
-    function Alphabet_get_index(letter) {
-      for (i = 0; i < this.letter_count; i++) {
-        if (this.alphabet[i] == letter.toUpperCase()) return i;
-      }
-      throw "UNKNOWN_LETTER";
-    }
-
-    function Alphabet_is_nucleotide() {
-      //TODO basic method, make better
-      if (this.letter_count < 20) return true;
-      return false;
-    }
-
-    function Alphabet_to_string() {
-      return (this.is_nucleotide() ? "Nucleotide" : "Protein") + " Alphabet " + (this.alphabet.join(""));
-    }
-
-    //======================================================================
-    // end Alphabet object
-    //======================================================================
-
-    //======================================================================
-    // start Symbol object
-    //======================================================================
-    function Symbol(alph_index, scale, alphabet) {
-      //variable prototype
-      this.symbol = alphabet.get_letter(alph_index);
-      this.scale = scale;
-      this.colour = alphabet.get_colour(alph_index);
-      //function prototype
-      this.get_symbol = Symbol_get_symbol;
-      this.get_scale = Symbol_get_scale;
-      this.get_colour = Symbol_get_colour;
-      this.toString = Symbol_to_string;
-    }
-
-    function Symbol_get_symbol() {
-      return this.symbol;
-    }
-
-    function Symbol_get_scale() {
-      return this.scale;
-    }
-
-    function Symbol_get_colour() {
-      return this.colour;
-    }
-
-    function Symbol_to_string() {
-      return this.symbol + " " + (Math.round(this.scale*1000)/10) + "%";
-    }
-
-    function compare_symbol(sym1, sym2) {
-      if (sym1.get_scale() < sym2.get_scale()) {
-        return -1;
-      } else if (sym1.get_scale() > sym2.get_scale()) {
-        return 1;
-      } else {
-        return 0;
-      }
-    }
-    //======================================================================
-    // end Symbol object
-    //======================================================================
-
-    //======================================================================
-    // start Pspm object
-    //======================================================================
-    function Pspm(pspm, name, ltrim, rtrim, nsites, evalue) {
-      if (ltrim === undefined) ltrim = 0;
-      if (rtrim === undefined) rtrim = 0;
-      if (nsites === undefined) nsites = 0;
-      if (evalue === undefined) evalue = 0;
-      //variable prototype
-      this.alph_length = 0;
-      this.motif_length = 0;
-      this.pspm = null;
-      this.name = (typeof name == "string" ? name : "");
-      this.nsites = nsites;
-      this.evalue = evalue;
-      this.ltrim = ltrim;
-      this.rtrim = rtrim;
-      //function prototype
-      this.copy = Pspm_copy;
-      this.reverse_complement = Pspm_reverse_complement;
-      this.get_stack = Pspm_get_stack;
-      this.get_stack_ic = Pspm_get_stack_ic;
-      this.get_motif_length = Pspm_get_motif_length;
-      this.get_alph_length = Pspm_get_alph_length;
-      this.get_left_trim = Pspm_get_left_trim;
-      this.get_right_trim = Pspm_get_right_trim;
-      this.as_pspm = Pspm_as_pspm;
-      this.as_pssm = Pspm_as_pssm;
-      this.toString = Pspm_to_string;
-      //construct
-      if (typeof pspm == "string") {
-        var pspm_header = /letter-probability matrix:\s+alength=\s+(\d+)\s+w=\s+(\d+)(\s+nsites=\s+(\S+))?(\s+E=\s+(\S+))?\s*/;
-        var lines = pspm.split(/\n/);
-        var read_pspm = false;
-        var line_num = 0;
-        var col_num = 0;
-        this.pspm = new Array();
-        for (line_index in lines) {
-          //exclude inherited properties and undefined properties
-          if (!lines.hasOwnProperty(line_index) || lines[line_index] === undefined) continue;
-
-          var line = trim(lines[line_index]);
-          if (line == '') {
-            continue;
-          }
-          if (!read_pspm) {
-            var header_match = pspm_header.exec(line);
-            if (header_match != null) {
-              read_pspm = true;
-              this.alph_length = (+header_match[1]);
-              this.motif_length = (+header_match[2]);
-              if (header_match[4]) this.nsites = parseFloat(header_match[4]);//not always an integer
-              if (header_match[6]) this.evalue = parseFloat(header_match[6]);
-              this.pspm = new Array(this.motif_length);
-            }
-            continue;
-          }
-          if (line_num >= this.motif_length) {
-            throw "TOO_MANY_ROWS";
-          }
-          this.pspm[line_num] = new Array(this.alph_length);
-          col_num = 0;
-          var parts = line.split(/\s+/);
-          for (part_index in parts) {
-            //exclude inherited properties and undefined properties
-            if (!parts.hasOwnProperty(part_index) || parts[part_index] === undefined) continue;
-            
-            var prob = parts[part_index];
-            if (col_num >= this.alph_length) {
-              throw "TOO_MANY_COLS";
-            }
-            this.pspm[line_num][col_num] = (+prob);
-            //check the probability is within bounds
-            if (this.pspm[line_num][col_num] > 1 || this.pspm[line_num][col_num] < 0) {
-              throw "NUM_NOT_PROB";
-            }
-            col_num++;
-          }
-          if (col_num != this.alph_length) {
-            throw "TOO_FEW_COLS";
-          }
-        line_num++;
-        }
-        if (line_num != this.motif_length) {
-          throw "TOO_FEW_ROWS";
-        }
-      } else { 
-        // assume pspm is a nested array
-        this.motif_length = pspm.length;
-        this.alpha_length = (pspm.length > 0 ? pspm[0].length : 0);
-        this.pspm = new Array(this.motif_length);
-        // copy pspm and check
-        for (var row = 0; row < this.motif_length; row++) {
-          if (this.alpha_length != pspm[row].length) throw "COLUMN_MISMATCH";
-          this.pspm[row] = new Array(this.alpha_length);
-          var row_sum = 0;
-          for (var col = 0; col < this.alpha_length; col++) {
-            row_sum += this.pspm[row][col];
-            this.pspm[row][col] = 0 + pspm[row][col];
-          }
-          var delta = 0.1
-          if ((row_sum > 1 && (row_sum - 1) > delta) || 
-              (row_sum < 1 && (1 - row_sum) > delta)) {
-            throw "INVALID_SUM";
-          }
-        }
-      }
-    }
-
-    function Clone() {}
-
-    function Pspm_copy() {
-      Clone.prototype = this;
-      var clone = new Clone();
-      //so far only a shallow copy, need to copy everything
-      clone.alph_length = (0+this.alph_length);
-      clone.motif_length = (0+this.motif_length);
-      clone.name = (""+this.name);
-      clone.nsites = (0+this.nsites);
-      clone.evalue = (0+this.evalue);
-      clone.ltrim = (0+this.ltrim);
-      clone.rtrim = (0+this.rtrim);
-      clone.pspm = new Array(this.motif_length);
-      for (row = 0; row < this.motif_length; row++) {
-        clone.pspm[row] = new Array(this.alph_length);
-        for (col = 0; col < this.alph_length; col++) {
-          clone.pspm[row][col] = (0+this.pspm[row][col]);
-        }
-      }
-      return clone;
-    }
-
-    function Pspm_reverse_complement(alphabet) {
-      if (this.alph_length != alphabet.get_size()) {
-        throw "ALPHABET_MISMATCH";
-      }
-      if (!alphabet.is_nucleotide()) {
-        throw "NO_PROTEIN_RC";
-      }
-      //reverse
-      var x = 0;
-      var y = this.motif_length-1;
-      while (x < y) {
-        var temp = this.pspm[x];
-        this.pspm[x] = this.pspm[y];
-        this.pspm[y] = temp;
-        x++;
-        y--;
-      }
-      //complement
-      var a_index = alphabet.get_index("A");
-      var c_index = alphabet.get_index("C");
-      var g_index = alphabet.get_index("G");
-      var t_index = alphabet.get_index("T");
-      for (i = 0; i < this.motif_length; i++) {
-        var row = this.pspm[i];
-        //swap A and T
-        var temp = row[a_index];
-        row[a_index] = row[t_index];
-        row[t_index] = temp;
-        //swap C and G
-        temp = row[c_index];
-        row[c_index] = row[g_index];
-        row[g_index] = temp;
-      }
-      //swap triming
-      var temp_trim = this.ltrim;
-      this.ltrim = this.rtrim;
-      this.rtrim = temp_trim;
-      //note that ambigs are ignored because they don't effect motifs
-      return this; //allow function chaining...
-    }
-
-    function Pspm_get_stack(position, alphabet) {
-      if (this.alph_length != alphabet.get_size()) {
-        throw "ALPHABET_MISMATCH";
-      }
-      var row = this.pspm[position];
-      var stack_ic = this.get_stack_ic(position, alphabet);
-      var alphabet_ic = alphabet.get_ic();
-      var stack = new Array();
-      for (i = 0; i < this.alph_length; i++) {
-        if (alphabet.is_ambig(i)) continue;
-        var sym = new Symbol(i, row[i]*stack_ic/alphabet_ic, alphabet);
-        if (sym.get_scale() <= 0) continue;
-        stack.push(sym);
-      }
-      stack.sort(compare_symbol);
-      return stack;
-    }
-
-    function Pspm_get_stack_ic(position, alphabet) {
-      if (this.alph_length != alphabet.get_size()) {
-        throw "ALPHABET_MISMATCH";
-      }
-      var row = this.pspm[position];
-      var H = 0;
-      for (var i = 0; i < this.alph_length; i++) {
-        if (alphabet.is_ambig(i)) continue;
-        if (row[i] == 0) continue;
-        H -= (row[i] * (Math.log(row[i]) / Math.LN2));
-      }
-      return alphabet.get_ic() - H;
-    }
-
-    function Pspm_get_error(alphabet) {
-      var asize;
-      if (this.nsites == 0) return 0;
-      if (alphabet.is_nucleotide()) {
-        asize = 4;
-      } else {
-        asize = 20;
-      }
-      return (asize-1) / (2 * Math.log(2)*this.nsites);
-    }
-
-    function Pspm_get_motif_length() {
-      return this.motif_length;
-    }
-
-    function Pspm_get_alph_length() {
-      return this.alph_length;
-    }
-
-    function Pspm_get_left_trim() {
-      return this.ltrim;
-    }
-
-    function Pspm_get_right_trim() {
-      return this.rtrim;
-    }
-
-    function Pspm_as_pspm() {
-      var out = "letter-probability matrix: alength= " + this.alph_length + 
-          " w= " + this.motif_length + " nsites= " + this.nsites + 
-          " E= " + this.evalue.toExponential() + "\n";
-      for (var row = 0; row < this.motif_length; row++) {
-        for (var col = 0; col < this.alph_length; col++) {
-          if (col != 0) out += " ";
-          out += this.pspm[row][col].toFixed(6);
-        }
-        out += "\n";
-      }
-      return out;
-    }
-
-    function Pspm_as_pssm(alphabet, pseudo) {
-      if (typeof pseudo != "number") pseudo = 0.1;
-      var out = "log-odds matrix: alength= " + this.alph_length + 
-          " w= " + this.motif_length + 
-          " E= " + this.evalue.toExponential() + "\n";
-      var log2 = Math.log(2);
-      var total = this.nsites + pseudo;
-      for (var row = 0; row < this.motif_length; row++) {
-        for (var col = 0; col < this.alph_length; col++) {
-          if (col != 0) out += " ";
-          var p = this.pspm[row][col];
-          // to avoid log of zero we add a pseudo count
-          var bg = alphabet.get_bg_freq(col);
-          var p2 = (p * this.nsites + bg * pseudo) / total;
-          // now calculate the score
-          var score = -10000;
-          if (p2 > 0) {
-            score = Math.round((Math.log(p2 / bg) / log2) * 100)
-          }
-          out += score;
-        }
-        out += "\n";
-      }
-      return out;
-    }
-
-    function Pspm_to_string() {
-      var str = "";
-      for (row_index in this.pspm) {
-        //exclude inherited properties and undefined properties
-        if (!this.pspm.hasOwnProperty(row_index) || this.pspm[row_index] === undefined) continue;
-        
-        var row = this.pspm[row_index];
-        str += row.join("\t") + "\n";
-      }
-      return str;
-    }
-    //======================================================================
-    // end Pspm object
-    //======================================================================
-    
-    //======================================================================
-    // start Logo object
-    //======================================================================
-    function Logo(alphabet, fine_text) {
-      this.alphabet = alphabet;
-      this.fine_text = fine_text;
-      this.pspm_list = [];
-      this.pspm_column = [];
-      this.rows = 0;
-      this.columns = 0;
-
-      //functions
-      this.add_pspm = Logo_add_pspm;
-      this.get_columns = Logo_get_columns;
-      this.get_rows = Logo_get_rows;
-      this.get_pspm = Logo_get_pspm;
-      this.get_offset = Logo_get_offset;
-    }
-
-    function Logo_add_pspm(pspm, column) {
-      if (column === undefined) column = 0;
-      else if (column < 0) throw "COLUMN_OUT_OF_BOUNDS";
-      this.pspm_list[this.rows] = pspm;
-      this.pspm_column[this.rows] = column;
-      this.rows++;
-      var col = column + pspm.get_motif_length();
-      if (col > this.columns) this.columns = col;
-    }
-
-    function Logo_get_columns() {
-      return this.columns;
-    }
-
-    function Logo_get_rows() {
-      return this.rows;
-    }
-
-    function Logo_get_pspm(row_index) {
-      if (row_index < 0 || row_index >= this.rows) throw "INDEX_OUT_OF_BOUNDS";
-      return this.pspm_list[row_index];
-    }
-
-    function Logo_get_offset(row_index) {
-      if (row_index < 0 || row_index >= this.rows) throw "INDEX_OUT_OF_BOUNDS";
-      return this.pspm_column[row_index];
-    }
-
-    //======================================================================
-    // end Logo object
-    //======================================================================
-
-    //======================================================================
-    // start RasterizedAlphabet
-    //======================================================================
-
-    // Rasterize Alphabet
-    // 1) Measure width of text at default font for all symbols in alphabet
-    // 2) sort in width ascending
-    // 3) Drop the top and bottom 10% (designed to ignore outliers like 'W' and 'I')
-    // 4) Calculate the average as the maximum scaling factor (designed to stop I becoming a rectangular blob).
-    // 5) Assume scale of zero would result in width of zero, interpolate scale required to make perfect width font
-    // 6) Draw text onto temp canvas at calculated scale
-    // 7) Find bounds of drawn text
-    // 8) Paint on to another canvas at the desired height (but only scaling width to fit if larger).
-    function RasterizedAlphabet(alphabet, font, target_width) {
-      //variable prototypes
-      this.lookup = []; //a map of letter to index
-      this.rasters = []; //a list of rasters
-      this.dimensions = []; //a list of dimensions
-
-      //function prototypes
-      this.draw = RasterizedAlphabet_draw;
-
-      //construct
-      var default_size = 60; // size of square to assume as the default width
-      var safety_pad = 20; // pixels to pad around so we don't miss the edges
-      // create a canvas to do our rasterizing on
-      var canvas = document.createElement("canvas");
-      // assume the default font would fit in a canvas of 100 by 100
-      canvas.width = default_size + 2 * safety_pad;
-      canvas.height = default_size + 2 * safety_pad;
-      // check for canvas support before attempting anything
-      if (!canvas.getContext) throw "NO_CANVAS_SUPPORT";
-      var ctx = canvas.getContext('2d');
-      // check for html5 text drawing support
-      if (!supports_text(ctx)) throw "NO_CANVAS_TEXT_SUPPORT";
-      // calculate the middle
-      var middle = Math.round(canvas.width / 2);
-      // calculate the baseline
-      var baseline = Math.round(canvas.height - safety_pad);
-      // list of widths
-      var widths = [];
-      var count = 0;
-      var letters = [];
-      //now measure each letter in the alphabet
-      for (var i = 0; i < alphabet.get_size(); ++i) {
-        if (alphabet.is_ambig(i)) continue; //skip ambigs as they're never rendered
-        var letter = alphabet.get_letter(i);
-        letters.push(letter);
-        var pos = count++;
-        this.lookup[letter] = pos;
-        //clear the canvas
-        canvas.width = canvas.width;
-        // get the context and prepare to draw our width test
-        var ctx = canvas.getContext('2d');
-        ctx.font = font;
-        ctx.fillStyle = alphabet.get_colour(i);
-        ctx.textAlign = "center";
-        ctx.translate(middle, baseline);
-        // draw the test text
-        ctx.fillText(letter, 0, 0);
-        //measure
-        var size = RasterizedAlphabet_measure(ctx, canvas.width, canvas.height);
-        if (size.width == 0) throw "INVISIBLE_LETTER"; //maybe the fill was white on white?
-        widths.push(size.width);
-        this.dimensions[pos] = size;
-      }
-      //sort the widths
-      widths.sort(function(a,b) {return a - b;});
-      //drop 10% of the items off each end
-      var tenpercent = Math.floor(widths.length / 10);
-      for (var i = 0; i < tenpercent; ++i) {
-        widths.pop();
-        widths.shift();
-      }
-      //calculate average width
-      var avg_width = 0;
-      for (var i = 0; i < widths.length; ++i) avg_width += widths[i];
-      avg_width /= widths.length;
-      // calculate scales
-      for (var i = 0; i < this.dimensions.length; ++i) {
-        var size = this.dimensions[i];
-        // calculate scale
-        var scale = target_width / Math.max(avg_width, size.width);
-        // estimate scaled height
-        var target_height = size.height * scale;
-        // create an approprately sized canvas
-        var raster = document.createElement("canvas");
-        raster.width = target_width; // if it goes over the edge too bad...
-        raster.height = target_height + safety_pad * 2;
-        // calculate the middle
-        middle = Math.round(raster.width / 2);
-        // calculate the baseline
-        baseline = Math.round(raster.height - safety_pad);
-        // get the context and prepare to draw the rasterized text
-        ctx = raster.getContext('2d');
-        ctx.font = font;
-        ctx.fillStyle = alphabet.get_colour(i);
-        ctx.textAlign = "center";
-        ctx.translate(middle, baseline);
-        ctx.save();
-        ctx.scale(scale, scale);
-        // draw the rasterized text
-        ctx.fillText(letters[i], 0, 0);
-        ctx.restore();
-        this.rasters[i] = raster;
-        this.dimensions[i] = RasterizedAlphabet_measure(ctx, raster.width, raster.height);
-      }
-    }
-
-    function RasterizedAlphabet_measure(ctx, cwidth, cheight) {
-      var data = ctx.getImageData(0, 0, cwidth, cheight).data;
-      var r = 0, c = 0;// r: row, c: column
-      var top_line = -1, bottom_line = -1, left_line = -1, right_line = -1;
-      var txt_width = 0, txt_height = 0;
-      // Find the top-most line with a non-white pixel
-      for (r = 0; r < cheight; r++) {
-        for (c = 0; c < cwidth; c++) {
-          if (data[r * cwidth * 4 + c * 4 + 3]) {
-            top_line = r;
-            break;
-          }
-        }
-        if (top_line != -1) break;
-      }
-      
-      //find the last line with a non-white pixel
-      if (top_line != -1) {
-        for (r = cheight-1; r >= top_line; r--) {
-          for(c = 0; c < cwidth; c++) {
-            if(data[r * cwidth * 4 + c * 4 + 3]) {
-              bottom_line = r;
-              break;
-            }
-          }
-          if (bottom_line != -1) break;
-        }
-        txt_height = bottom_line - top_line + 1;
-      }
-
-      // Find the left-most line with a non-white pixel
-      for (c = 0; c < cwidth; c++) {
-        for (r = 0; r < cheight; r++) {
-          if (data[r * cwidth * 4 + c * 4 + 3]) {
-            left_line = c;
-            break;
-          }
-        }
-        if (left_line != -1) break;
-      }
-
-      //find the right most line with a non-white pixel
-      if (left_line != -1) {
-        for (c = cwidth-1; c >= left_line; c--) {
-          for(r = 0; r < cheight; r++) {
-            if(data[r * cwidth * 4 + c * 4 + 3]) {
-              right_line = c;
-              break;
-            }
-          }
-          if (right_line != -1) break;
-        }
-        txt_width = right_line - left_line + 1;
-      }
-
-      //return the bounds
-      return {bound_top: top_line, bound_bottom: bottom_line, bound_left: left_line, bound_right: right_line, width: txt_width, height: txt_height};
-    }
-
-    function RasterizedAlphabet_draw(ctx, letter, dx, dy, dWidth, dHeight) {
-      var index = this.lookup[letter];
-      var raster = this.rasters[index];
-      var size = this.dimensions[index];
-      ctx.drawImage(raster, 0, size.bound_top -1, raster.width, size.height+1, dx, dy, dWidth, dHeight);
-    }
-
-    //======================================================================
-    // end RasterizedAlphabet
-    //======================================================================
-
-    //======================================================================
-    // start LogoMetrics object
-    //======================================================================
-
-    function LogoMetrics(ctx, canvas_width, canvas_height, logo_columns, logo_rows, allow_space_for_names) {
-      if (allow_space_for_names === undefined) allow_space_for_names = false;
-      //variable prototypes
-      this.canvas_width = canvas_width;
-      this.canvas_height = canvas_height;
-      this.scale_x = 1;
-      this.scale_y = 1;
-      this.pad_top = 5;
-      this.pad_left = 10;
-      this.pad_right = 5;
-      this.pad_bottom = 0;
-      this.pad_middle = 20;
-      this.name_height = 14;
-      this.name_font = "bold " + this.name_height + "px Times, sans-serif";
-      this.name_spacer = 0;
-      this.y_label = "bits"
-      this.y_label_height = 12;
-      this.y_label_font = "bold " + this.y_label_height + "px Helvetica, sans-serif";
-      this.y_label_spacer = 3;
-      this.y_num_height = 12;
-      this.y_num_width = 0;
-      this.y_num_font = "bold " + this.y_num_height + "px Helvetica, sans-serif";
-      this.y_tic_width = 5;
-      this.stack_pad_left = 0;
-      this.stack_font = "bold 25px Helvetica, sans-serif";
-      this.stack_height = 90;
-      this.stack_width = 26;
-      this.stacks_pad_right = 5;
-      this.x_num_above = 2;
-      this.x_num_height = 12;
-      this.x_num_width = 0;
-      this.x_num_font = "bold " + this.x_num_height + "px Helvetica, sans-serif";
-      this.fine_txt_height = 6;
-      this.fine_txt_above = 2;
-      this.fine_txt_font = "normal " + this.fine_txt_height + "px Helvetica, sans-serif";
-      this.letter_metrics = new Array();
-      this.summed_width = 0;
-      this.summed_height = 0;
-      //function prototypes
-      //none
-      //calculate the width of the y axis numbers
-      ctx.font = this.y_num_font;
-      for (var i = 0; i <= 2; i++) {
-        this.y_num_width = Math.max(this.y_num_width, ctx.measureText("" + i).width);
-      }
-      //calculate the width of the x axis numbers (but they are rotated so it becomes height)
-      ctx.font = this.x_num_font;
-      for (var i = 1; i <= logo_columns; i++) {
-        this.x_num_width = Math.max(this.x_num_width, ctx.measureText("" + i).width);
-      }
-      
-      //calculate how much vertical space we want to draw this
-      //first we add the padding at the top and bottom since that's always there
-      this.summed_height += this.pad_top + this.pad_bottom;
-      //all except the last row have the same amount of space allocated to them
-      if (logo_rows > 1) {
-        var row_height = this.stack_height + this.pad_middle;
-        if (allow_space_for_names) {
-          row_height += this.name_height;
-          //the label is allowed to overlap into the spacer
-          row_height += Math.max(this.y_num_height/2, this.name_spacer); 
-          //the label is allowed to overlap the space used by the other label
-          row_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above); 
-        } else {
-          row_height += this.y_num_height/2; 
-          //the label is allowed to overlap the space used by the other label
-          row_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above); 
-        }
-        this.summed_height += row_height * (logo_rows - 1);
-      }
-      //the last row has the name and fine text below it but no padding
-      this.summed_height += this.stack_height + this.y_num_height/2;
-      if (allow_space_for_names) {
-        this.summed_height += this.fine_txt_height + this.fine_txt_above + this.name_height;
-        this.summed_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above + this.name_spacer);
-      } else {
-        this.summed_height += Math.max(this.y_num_height/2, this.x_num_height + this.x_num_above + this.fine_txt_height + this.fine_txt_above);
-      }
-
-      //calculate how much horizontal space we want to draw this
-      //first add the padding at the left and right since that's always there
-      this.summed_width += this.pad_left + this.pad_right;
-      //add on the space for the y-axis label
-      this.summed_width += this.y_label_height + this.y_label_spacer;
-      //add on the space for the y-axis
-      this.summed_width += this.y_num_width + this.y_tic_width;
-      //add on the space for the stacks
-      this.summed_width += (this.stack_pad_left + this.stack_width) * logo_columns;
-      //add on the padding after the stacks (an offset from the fine text)
-      this.summed_width += this.stacks_pad_right;
-
-      //calculate scaling factors
-      this.scale_y = this.canvas_height / this.summed_height;
-      this.scale_x = this.canvas_width / this.summed_width;
-
-      //maintain aspect ratio
-      if (this.scale_y > this.scale_x) {
-        this.scale_y = this.scale_x;
-      } else {
-        this.scale_x = this.scale_y;
-      }
-
-
-    }
-
-    //======================================================================
-    // end LogoMetrics object
-    //======================================================================
-
-
-    //found this trick at http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm
-    function image_ok(img) {
-      // During the onload event, IE correctly identifies any images that
-      // weren't downloaded as not complete. Others should too. Gecko-based
-      // browsers act like NS4 in that they report this incorrectly.
-      if (!img.complete) {
-        return false;
-      }
-      // However, they do have two very useful properties: naturalWidth and
-      // naturalHeight. These give the true size of the image. If it failed
-      // to load, either of these should be zero.
-      if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
-        return false;
-      }
-      // No other way of checking: assume it's ok.
-      return true;
-    }
-      
-    function supports_text(ctx) {
-      if (!ctx.fillText) return false;
-      if (!ctx.measureText) return false;
-      return true;
-    }
-
-    //draws the scale, returns the width
-    function draw_scale(ctx, metrics, alphabet_ic) {
-      var tic_height = metrics.stack_height / alphabet_ic;
-      ctx.save();
-      ctx.lineWidth = 1.5;
-      ctx.translate(metrics.y_label_height, metrics.y_num_height/2);
-      //draw the axis label
-      ctx.save();
-      ctx.font = metrics.y_label_font;
-      ctx.translate(0, metrics.stack_height/2);
-      ctx.save();
-      ctx.rotate(-(Math.PI / 2));
-      ctx.textAlign = "center";
-      ctx.fillText("bits", 0, 0);
-      ctx.restore();
-      ctx.restore();
-
-      ctx.translate(metrics.y_label_spacer + metrics.y_num_width, 0);
-
-      //draw the axis tics
-      ctx.save();
-      ctx.translate(0, metrics.stack_height);
-      ctx.font = metrics.y_num_font;
-      ctx.textAlign = "right";
-      ctx.textBaseline = "middle";
-      for (var i = 0; i <= alphabet_ic; i++) {
-        //draw the number
-        ctx.fillText("" + i, 0, 0);
-        //draw the tic
-        ctx.beginPath();
-        ctx.moveTo(0, 0);
-        ctx.lineTo(metrics.y_tic_width, 0);
-        ctx.stroke();
-        //prepare for next tic
-        ctx.translate(0, -tic_height);
-      }
-      ctx.restore();
-
-      ctx.translate(metrics.y_tic_width, 0);
-
-      ctx.beginPath();
-      ctx.moveTo(0, 0);
-      ctx.lineTo(0, metrics.stack_height);
-      ctx.stroke();
-
-      ctx.restore();
-    }
-
-    function draw_stack_num(ctx, metrics, row_index) {
-      ctx.save();
-      ctx.font = metrics.x_num_font;
-      ctx.translate(metrics.stack_width / 2, metrics.stack_height + metrics.x_num_above);
-      ctx.save();
-      ctx.rotate(-(Math.PI / 2));
-      ctx.textBaseline = "middle"
-      ctx.textAlign = "right"
-      ctx.fillText("" + (row_index + 1), 0, 0);
-      ctx.restore();
-      ctx.restore();
-    }
-
-    function draw_stack(ctx, metrics, symbols, raster) {
-      var preferred_pad = 0;
-      var sym_min = 5;
-
-      ctx.save();//1
-      ctx.translate(0, metrics.stack_height);
-      for (var i in symbols) {
-        //exclude inherited properties and undefined properties
-        if (!symbols.hasOwnProperty(i) || symbols[i] === undefined) continue;
-        
-        var sym = symbols[i];
-        var sym_height = metrics.stack_height * sym.get_scale();
-        
-        var pad = preferred_pad;
-        if (sym_height - pad < sym_min) {
-          pad = Math.min(pad, Math.max(0, sym_height - sym_min));
-        }
-        sym_height -= pad;
-
-        //translate to the correct position
-        ctx.translate(0, -(pad/2 + sym_height));
-        //draw
-        raster.draw(ctx, sym.get_symbol(), 0, 0, metrics.stack_width, sym_height);
-        //translate past the padding
-        ctx.translate(0, -(pad/2));
-      }
-      ctx.restore();//1
-    }
-
-    //draws a stack of symbols
-    function draw_stack_old(ctx, metrics, symbols) {
-      var lpad = 2;
-      var sym_min = 5;
-      var pos = metrics.stack_height;
-      for (var i in symbols) {
-        //exclude inherited properties and undefined properties
-        if (!symbols.hasOwnProperty(i) || symbols[i] === undefined) continue;
-        
-        var sym = symbols[i];
-        var sym_height = metrics.stack_height*sym.get_scale();
-        var letter = metrics.get_letter_metrics(sym.get_symbol());
-        //attempting to draw something smaller than a pixel causes display corruption
-        if (sym_height >= 1) {
-          //it's better to see the letter than to pad it
-          var pad = lpad;
-          if (sym_height - pad < sym_min) {
-            pad = Math.min(pad, Math.max(0, sym_height - sym_min));
-          }
-          //move to the correct drawing position
-          ctx.save();//s1
-          ctx.translate(0, pos);
-          //create a clipping rectangle to ensure the letter doesn't overlap when it's distorted
-          ctx.save();//s2
-          //ctx.beginPath(); //disabled clipping because after the improvements in the text metrics it looks better without
-          //ctx.moveTo(-metrics.stack_width/2,0);
-          //ctx.lineTo(metrics.stack_width/2, 0);
-          //ctx.lineTo(metrics.stack_width/2, -sym_height);
-          //ctx.lineTo(-metrics.stack_width/2, -sym_height);
-          //ctx.lineTo(-metrics.stack_width/2,0);
-          //ctx.clip();
-          //now draw
-          ctx.translate(0, -(pad/2));
-          ctx.translate(0, -letter.get_descent(sym_height - pad));
-          ctx.fillStyle = sym.get_colour();
-          ctx.textAlign = "center";
-          ctx.save();//s3
-          ctx.scale(letter.wscale, letter.get_hscale(sym_height - pad));
-          ctx.fillText(sym.get_symbol(), 0, 0);
-          ctx.restore();//s3
-
-          ctx.restore();//s2
-          ctx.restore();//s1
-        }
-
-        pos = pos - sym_height;
-      }
-    }
-    
-    function draw_dashed_line(ctx, pattern, start, x1, y1, x2, y2) {
-        var x, y, len, i;
-        var dx = x2 - x1;
-        var dy = y2 - y1;
-        var tlen = Math.pow(dx*dx + dy*dy, 0.5);
-        var theta = Math.atan2(dy,dx);
-        var mulx = Math.cos(theta);
-        var muly = Math.sin(theta);
-        var lx = [];
-        var ly = [];
-        for (i = 0; i < pattern; ++i) {
-          lx.push(pattern[i] * mulx);
-          ly.push(pattern[i] * muly);
-        }
-        i = start;
-        x = x1;
-        y = y1;
-        len = 0;
-        ctx.beginPath();
-        while (len + pattern[i] < tlen) {
-          ctx.moveTo(x, y);
-          x += lx[i];
-          y += ly[i];
-          ctx.lineTo(x, y);
-          len += pattern[i];
-          i = (i + 1) % pattern.length;
-          x += lx[i];
-          y += ly[i];
-          len += pattern[i];
-          i = (i + 1) % pattern.length;
-        }
-        if (len < tlen) {
-          ctx.moveTo(x, y);
-          x += mulx * (tlen - len);
-          y += muly * (tlen - len);
-          ctx.lineTo(x, y);
-        }
-        ctx.stroke();
-    }
-
-    function draw_trim_background(ctx, metrics, pspm, offset) {
-      var lwidth = metrics.stack_width * pspm.get_left_trim();
-      var rwidth = metrics.stack_width * pspm.get_right_trim();
-      var mwidth = metrics.stack_width * pspm.get_motif_length();
-      var rstart = mwidth - rwidth;
-      ctx.save();//s8
-      ctx.translate(offset * metrics.stack_width, 0);
-      ctx.fillStyle = "rgb(240, 240, 240)";
-      if (pspm.get_left_trim() > 0) ctx.fillRect(0, 0, lwidth, metrics.stack_height);
-      if (pspm.get_right_trim() > 0) ctx.fillRect(rstart, 0, rwidth, metrics.stack_height);
-      ctx.fillStyle = "rgb(51, 51, 51)";
-      if (pspm.get_left_trim() > 0) draw_dashed_line(ctx, [3], 0, lwidth-0.5, 0, lwidth-0.5,  metrics.stack_height);
-      if (pspm.get_right_trim() > 0) draw_dashed_line(ctx, [3], 0, rstart+0.5, 0, rstart+0.5,  metrics.stack_height);
-      ctx.restore();//s8
-    }
-
-    function draw_logo_on_canvas(logo, canvas, show_names, scale) {
-      var draw_name = (typeof show_names == "boolean" ? show_names : (logo.get_rows() > 1));
-      var cwidth = canvas.width;
-      var cheight = canvas.height;
-      //need a minimum 46 x 120 canvas to draw the font size checks on
-      if (canvas.width < 46) canvas.width = 46;
-      if (canvas.height < 120) canvas.height = 120;
-      var ctx = canvas.getContext('2d');
-      //assume that the user wants the canvas scaled equally so calculate what the best width for this image should be
-      var metrics = new LogoMetrics(ctx, canvas.width, canvas.height, logo.get_columns(), logo.get_rows(), draw_name);
-      ctx.save();//s1
-      if (typeof scale == "number") {
-        //resize the canvas to fit the scaled logo
-        cwidth = metrics.summed_width * scale;
-        cheight = metrics.summed_height * scale;
-      } else {
-        if (cwidth == 0 && cheight == 0) {
-          throw "CANVAS_MUST_HAVE_DIMENSIONS";
-        } else if (cwidth == 0) {
-          scale = cheight / metrics.summed_height;
-          cwidth = metrics.summed_width * scale;
-        } else if (cheight == 0) {
-          scale = cwidth / metrics.summed_width;
-          cheight = metrics.summed_height * scale;
-        } else {
-          scale = Math.min(cwidth / metrics.summed_width, cheight / metrics.summed_height);
-        }
-      }
-      var raster = new RasterizedAlphabet(logo.alphabet, metrics.stack_font, metrics.stack_width * scale * 2);
-      if (cwidth != canvas.width || cheight != canvas.height) {
-        canvas.width = cwidth;
-        canvas.height = cheight;
-        //as the canvas has been resized the context is now out of date
-        ctx = canvas.getContext('2d');
-      }
-      ctx.scale(scale, scale);
-      ctx.save();//s2
-      ctx.save();//s7
-      //create margin
-      ctx.translate(metrics.pad_left, metrics.pad_top);
-      for (var pspm_i = 0; pspm_i < logo.get_rows(); ++pspm_i) {
-        var pspm = logo.get_pspm(pspm_i);
-        var offset = logo.get_offset(pspm_i);
-        //optionally draw name if this isn't the last row or is the only row 
-        if (draw_name && (logo.get_rows() == 1 || pspm_i != (logo.get_rows()-1))) {
-          ctx.save();//s4
-          ctx.translate(metrics.summed_width/2, metrics.name_height);
-          ctx.font = metrics.name_font;
-          ctx.textAlign = "center";
-          ctx.fillText(pspm.name, 0, 0);
-          ctx.restore();//s4
-          ctx.translate(0, metrics.name_height + Math.min(0, metrics.name_spacer - metrics.y_num_height/2));
-        }
-        //draw scale
-        draw_scale(ctx, metrics, logo.alphabet.get_ic());
-        ctx.save();//s5
-        //translate across past the scale
-        ctx.translate(metrics.y_label_height + metrics.y_label_spacer + 
-            metrics.y_num_width + metrics.y_tic_width, 0);
-        //draw the trimming background
-        if (pspm.get_left_trim() > 0 || pspm.get_right_trim() > 0) {
-          draw_trim_background(ctx, metrics, pspm, offset);
-        }
-        //draw letters
-        ctx.translate(0, metrics.y_num_height / 2);
-        for (var col_index = 0; col_index < logo.get_columns(); col_index++) {
-          ctx.translate(metrics.stack_pad_left,0);
-          if (col_index >= offset && col_index < (offset + pspm.get_motif_length())) {
-            var motif_position = col_index - offset;
-            draw_stack_num(ctx, metrics, motif_position);
-            draw_stack(ctx, metrics, pspm.get_stack(motif_position, logo.alphabet), raster);
-          }
-          ctx.translate(metrics.stack_width, 0);
-        }
-        ctx.restore();//s5
-        ////optionally draw name if this is the last row but isn't the only row 
-        if (draw_name && (logo.get_rows() != 1 && pspm_i == (logo.get_rows()-1))) {
-          //translate vertically past the stack and axis's        
-          ctx.translate(0, metrics.y_num_height/2 + metrics.stack_height + 
-              Math.max(metrics.y_num_height/2, metrics.x_num_above + metrics.x_num_width + metrics.name_spacer));
-
-          ctx.save();//s6
-          ctx.translate(metrics.summed_width/2, metrics.name_height);
-          ctx.font = metrics.name_font;
-          ctx.textAlign = "center";
-          ctx.fillText(pspm.name, 0, 0);
-          ctx.restore();//s6
-          ctx.translate(0, metrics.name_height);
-        } else {
-          //translate vertically past the stack and axis's        
-          ctx.translate(0, metrics.y_num_height/2 + metrics.stack_height + Math.max(metrics.y_num_height/2, metrics.x_num_above + metrics.x_num_width));
-        }
-        //if not the last row then add middle padding
-        if (pspm_i != (logo.get_rows() -1)) {
-          ctx.translate(0, metrics.pad_middle);
-        }
-      }
-      ctx.restore();//s7
-      ctx.translate(metrics.summed_width - metrics.pad_right, metrics.summed_height - metrics.pad_bottom);
-      ctx.font = metrics.fine_txt_font;
-      ctx.textAlign = "right";
-      ctx.fillText(logo.fine_text, 0,0);
-      ctx.restore();//s2
-      ctx.restore();//s1
-    }
-
-    function create_canvas(c_width, c_height, c_id, c_title, c_display) {
-      var canvas = document.createElement("canvas");
-      //check for canvas support before attempting anything
-      if (!canvas.getContext) return null;
-      var ctx = canvas.getContext('2d');
-      //check for html5 text drawing support
-      if (!supports_text(ctx)) return null;
-      //size the canvas
-      canvas.width = c_width;
-      canvas.height = c_height;
-      canvas.id = c_id;
-      canvas.title = c_title;
-      canvas.style.display = c_display;
-      return canvas;
-    }
-
-    function logo_1(alphabet, fine_text, pspm) {
-      var logo = new Logo(alphabet, fine_text);
-      logo.add_pspm(pspm);
-      return logo;
-    }
-    
-    function logo_2(alphabet, fine_text, target, query, query_offset) {
-      var logo = new Logo(alphabet, fine_text);
-      if (query_offset < 0) {
-        logo.add_pspm(target, -query_offset);
-        logo.add_pspm(query);
-      } else {
-        logo.add_pspm(target);
-        logo.add_pspm(query, query_offset);
-      }      
-      return logo;
-    }
-
-    /*
-     * Specifies an alternate source for an image.
-     * If the image with the image_id specified has
-     * not loaded then a generated logo will be used 
-     * to replace it.
-     *
-     * Note that the image must either have dimensions
-     * or a scale must be set.
-     */
-    function alternate_logo(logo, image_id, scale) {
-      var image = document.getElementById(image_id);
-      if (!image) {
-        alert("Can't find specified image id (" +  image_id + ")");
-        return;
-      }
-      //if the image has loaded then there is no reason to use the canvas
-      if (image_ok(image)) return;
-      //the image has failed to load so replace it with a canvas if we can.
-      var canvas = create_canvas(image.width, image.height, image_id, image.title, image.style.display);
-      if (canvas == null) return;
-      //draw the logo on the canvas
-      draw_logo_on_canvas(logo, canvas, undefined, scale);
-      //replace the image with the canvas
-      image.parentNode.replaceChild(canvas, image);
-    }
-
-    /*
-     * Specifes that the element with the specified id
-     * should be replaced with a generated logo.
-     */
-    function replace_logo(logo, replace_id, scale, title_txt, display_style) {
-      var element = document.getElementById(replace_id);
-      if (!replace_id) {
-        alert("Can't find specified id (" + replace_id + ")");
-        return;
-      }
-      //found the element!
-      var canvas = create_canvas(50, 120, replace_id, title_txt, display_style);
-      if (canvas == null) return;
-      //draw the logo on the canvas
-      draw_logo_on_canvas(logo, canvas, undefined, scale);
-      //replace the element with the canvas
-      element.parentNode.replaceChild(canvas, element);
-    }
-
-    /*
-     * Fast string trimming implementation found at
-     * http://blog.stevenlevithan.com/archives/faster-trim-javascript
-     *
-     * Note that regex is good at removing leading space but
-     * bad at removing trailing space as it has to first go through
-     * the whole string.
-     */
-    function trim (str) {
-      str = str.replace(/^\s\s*/, '');
-      var ws = /\s/, i = str.length;
-      while (ws.test(str.charAt(--i)));
-      return str.slice(0, i + 1);
-    }
-    /* END INCLUDED FILE "motif_logo.js" */
-    
-  
-    
-    /* START INCLUDED FILE "dreme-to-html.js" */
-      var expansion_lookup = [];
-
-      /*
-       * show_hidden
-       *
-       * Looks for specially named elements and switches to the shown view
-       */
-      function show_hidden(prefix) {
-        document.getElementById(prefix + '_activator').style.display = 'none';
-        document.getElementById(prefix + '_deactivator').style.display = 'block';
-        document.getElementById(prefix + '_data').style.display = 'block';
-      }
-      /*
-       * hide_shown
-       *
-       * Looks for specially named elements and switches to the hidden view
-       */
-      function hide_shown(prefix) {
-        document.getElementById(prefix + '_activator').style.display = 'block';
-        document.getElementById(prefix + '_deactivator').style.display = 'none';
-        document.getElementById(prefix + '_data').style.display = 'none';
-      }
-
-      function click_download_tab(tab) {
-        document.getElementById("download_tab_num").value = tab;
-        for (var i = 1; i <= 3; i++) {
-          document.getElementById('download_tab_'+i).className = "tab" + (i==tab ? " activeTab" : "");
-          document.getElementById('download_pnl_'+i).style.display = (i==tab ? "block" : "none");
-        }
-        document.getElementById('download_button').style.visibility = (tab==3 ? "visible" : "hidden");
-      }
-
-
-      /*
-       * searches child nodes in depth first order and returns the
-       * first it finds with the className specified.
-       */
-      function find_child_element_by_class(node, className) {
-        var patt = new RegExp("\\b" + className + "\\b");
-
-        if (node.nodeType == Node.ELEMENT_NODE && 
-            patt.test(node.className)) {
-          return node;
-        } else {
-          var result = null;
-          for (var i = 0; i < node.childNodes.length; i++) {
-            result = find_child_element_by_class(node.childNodes[i], className);
-            if (result != null) break;
-          }
-          return result;
-        }
-      }
-
-      function find_parent_element_by_class(node, className) {
-        var patt = new RegExp("\\b" + className + "\\b");
-        if (node.nodeType == Node.ELEMENT_NODE && 
-            patt.test(node.className)) {
-          return node;
-        } else if (node.parentNode != null) {
-          return find_parent_element_by_class(node.parentNode, className);
-        }
-        return null;
-      }
-
-      /*
-       * expand
-       *
-       * Expand the extra data section for a motif.
-       */
-      function expand(num) {
-        // get motif data
-        var motif_info = motif_seqs[num];
-        var motif_id = motif_info[0];
-        var seq = motif_info[1];
-        var rcseq = motif_info[2];
-        var length = motif_info[3];
-        var nsites = motif_info[4];
-        var p_hits = motif_info[5];
-        var n_hits = motif_info[6];
-        var pvalue = motif_info[7];
-        var evalue = motif_info[8];
-        var uevalue = motif_info[9];
-        var matches = motif_info[10];
-        // find the location to insert the expanded motif data
-        var table = document.getElementById('dreme_motifs');
-        var motif_row = document.getElementById('motif_row_' + num);
-        var exp_row = table.insertRow(motif_row.rowIndex + 1);
-        exp_row.id = 'exp_row_' + num;
-        var cell = exp_row.insertCell(0);
-        cell.colSpan = 9;
-        // create the DOM to insert
-        var exp = document.getElementById('expanded_motif').firstChild.cloneNode(true);
-        // update fields
-        set_content_to_text(find_child_element_by_class(exp, 'name'), seq);
-        set_content_to_text(find_child_element_by_class(exp, 'num'), num);
-        var img = find_child_element_by_class(exp, 'img_nc');
-        img.src = motif_id + "nc_" + seq + ".png";
-        var imgrc = find_child_element_by_class(exp, 'img_rc');
-        imgrc.src = motif_id + "rc_" + rcseq + ".png";
-        // fill in the details
-        var details = find_child_element_by_class(exp, 'details');
-        set_content_to_text(find_child_element_by_class(details, 'positives'), p_hits);
-        set_content_to_text(find_child_element_by_class(details, 'negatives'), n_hits);
-        set_content_to_text(find_child_element_by_class(details, 'pvalue'), pvalue);
-        set_content_to_text(find_child_element_by_class(details, 'evalue'), evalue);
-        set_content_to_text(find_child_element_by_class(details, 'uevalue'), uevalue);
-        
-        // fill in match table
-        var match_row = find_child_element_by_class(exp, 'match');
-        var tbody = match_row.parentNode;
-        for (var i = 0; i < matches.length; i++) {
-          var match = matches[i];
-          var cseq = match[0];
-          var cpos = match[1];
-          var cneg = match[2];
-          var cpval = match[3].toExponential(1);
-          var ceval = match[4].toExponential(1);
-          var row = match_row.cloneNode(true);
-          var td_cseq = find_child_element_by_class(row, 'dnaseq');
-          set_content_to_text(td_cseq, cseq);
-          colour_dna_seq(td_cseq);
-          set_content_to_text(find_child_element_by_class(row, 'positives'), cpos);
-          set_content_to_text(find_child_element_by_class(row, 'negatives'), cneg);
-          set_content_to_text(find_child_element_by_class(row, 'pvalue'), cpval);
-          set_content_to_text(find_child_element_by_class(row, 'evalue'), ceval);
-          tbody.appendChild(row);
-        }
-        tbody.removeChild(match_row);
-        // append the expanded information
-        cell.appendChild(exp);
-        // hide the old row
-        motif_row.style.display = 'none';
-        update_headers();
-      }
-
-      function expanded_num(elem) {
-        var exp = find_parent_element_by_class(elem, 'expanded_motif');
-        var num = parseInt(nodes_text(text_nodes(find_child_element_by_class(exp, 'num'))));
-        return num;
-      }
-
-      function contract(contained_node) {
-        var table = document.getElementById('dreme_motifs');
-        var num = expanded_num(contained_node);
-        var motif_row = document.getElementById('motif_row_' + num);
-        var exp_row = document.getElementById('exp_row_' + num);
-
-        motif_row.style.display = 'table-row';
-        table.deleteRow(exp_row.rowIndex);
-        update_headers();
-      }
-
-      function update_headers() {
-        var motif_row_patt = new RegExp("\\bmotif_row\\b");
-        var motif_head_patt = new RegExp("\\bmotif_head\\b");
-        var table = document.getElementById('dreme_motifs');
-        var header = table.tHead.getElementsByTagName('tr')[0];
-        header.style.display = 'none';
-        var trs = table.tBodies[0].getElementsByTagName('tr');
-        var needHeader = true;
-        for (var i = 0; i < trs.length; i++) {
-          var row = trs[i];
-          if (row.style.display == 'none') continue;
-          if (motif_row_patt.test(row.className)) {
-            if (needHeader) {
-              var dupHeader = header.cloneNode(true);
-              dupHeader.style.display = 'table-row';
-              row.parentNode.insertBefore(dupHeader, row);
-              needHeader = false;
-              i++;
-            }
-          } else if (motif_head_patt.test(row.className)) {
-            table.deleteRow(row.rowIndex);
-            i--;
-          } else {
-            needHeader = true;
-          }
-        }
-      }
-
-      function set_content_to_text(ele, text) {
-        while(ele.hasChildNodes()) {
-          ele.removeChild(ele.firstChild);
-        }
-        ele.appendChild(document.createTextNode(text));
-      }
-
-      function both_setup(pos) {
-        // get the total number of motifs
-        var nmotifs = parseInt(document.getElementById('nmotifs').value, 10);
-        // set the motif that we're submitting
-        document.getElementById('submit_motif').value = (pos == 0 ? 'all' : pos);
-        document.getElementById('send_to_selector').style.display = (pos == 0 ? 'none' : 'block');
-        document.getElementById('send_to_title_1').style.display = (pos == 0 ? 'none' : 'block');
-        document.getElementById('send_to_title_2').style.display = (pos == 0 ? 'block' : 'none');
-
-        if (pos != 0) {
-          // get the information for the position
-          var motif_seq = motif_seqs[pos];
-          var motif_id = motif_seq[0];
-          var seq = motif_seq[1];
-          var rcseq = motif_seq[2];
-          // set the motif number
-          // set the titles of both popups
-          set_content_to_text(document.getElementById('send_to_name'), seq);
-          set_content_to_text(document.getElementById('download_name'), seq);
-          // set the images
-          var nc_img = "" + motif_id + "nc_" + seq + ".png";
-          var rc_img = "" + motif_id + "rc_" + rcseq + ".png";
-          var img;
-          img = document.getElementById('send_to_img');
-          img.src = nc_img;
-          img.style.display = "inline";
-          img = document.getElementById('send_to_rcimg');
-          img.src = rc_img;
-          img.style.display = "inline";
-          img = document.getElementById('download_img');
-          img.src = nc_img;
-          img.style.display = "inline";
-          img = document.getElementById('download_rcimg');
-          img.src = rc_img;
-          img.style.display = "inline";
-          // hide the canvas
-          document.getElementById('send_to_can').style.display = "none";
-          document.getElementById('send_to_rccan').style.display = "none";
-          document.getElementById('download_can').style.display = "none";
-          document.getElementById('download_rccan').style.display = "none";
-          // get some motif details
-          var pspm_text = document.getElementById("pspm"+ pos).value;
-          var pspm = new Pspm(pspm_text);
-          var alpha = new Alphabet(document.getElementById("alphabet").value, 
-              document.getElementById("bgfreq").value);
-          document.getElementById('download_pspm').value = pspm.as_pspm();
-          document.getElementById('download_pssm').value = pspm.as_pssm(alpha);
-          // set the width and height defaults
-          document.getElementById('logo_width').value = pspm.get_motif_length();
-          document.getElementById('logo_height').value = 7.5;
-          // hide and show the arrows
-          var prevclass = (pos == 1 ? "navarrow inactive" : "navarrow");
-          var nextclass = (pos == nmotifs ? "navarrow inactive" : "navarrow");
-          document.getElementById('prev_arrow_1').className = prevclass;
-          document.getElementById('prev_arrow_2').className = prevclass;
-          document.getElementById('next_arrow_1').className = nextclass;
-          document.getElementById('next_arrow_2').className = nextclass;
-          set_content_to_text(document.getElementById('pop_num_1'), pos);
-          set_content_to_text(document.getElementById('pop_num_2'), pos);
-        }
-      }
-
-      function both_change(inc) {
-        var motif_num = parseInt(document.getElementById('submit_motif').value, 10);
-        var nmotifs = parseInt(document.getElementById('nmotifs').value, 10);
-        var orig = motif_num;
-        motif_num += inc;
-        if (motif_num > nmotifs) motif_num = nmotifs;
-        else if (motif_num < 1) motif_num = 1;
-        if (orig != motif_num) both_setup(motif_num);
-      }
-
-      function both_hide() {
-        document.getElementById('grey_out_page').style.display = 'none';
-        document.getElementById('download').style.display = 'none';
-        document.getElementById('send_to').style.display = 'none';
-      }
-
-      /*
-       * lookup the information on a motif and prepare the
-       * popup for sending it to another program
-       */
-      function send_to_popup(pos) {
-        both_setup(pos);
-        var program = find_child_element_by_class(document.getElementById('programs'), 'selected').id;
-        var task = highlight_submit_task(null, submit_programs[program]);
-        highlight_submit_program(program, submit_tasks[task]);
-        update_submit_text(task, program);
-        // show the send to page
-        var grey_out = document.getElementById('grey_out_page');
-        grey_out.style.display = 'block';
-        var send_to_pop = document.getElementById('send_to');
-        send_to_pop.style.display = 'block';
-      }
-
-      function send_to_popup2(elem) {
-        send_to_popup(expanded_num(elem));
-      }
-
-      function send_to_submit() {
-        var program = find_child_element_by_class(document.getElementById('programs'), 'selected').id;
-        // set the hidden fields on the form
-        document.getElementById('submit_program').value = program;
-        // send the form
-        document.getElementById('submit_form').submit();
-        both_hide();
-      }
-
-      function download_popup(pos) {
-        both_setup(pos);
-        click_download_tab(document.getElementById("download_tab_num").value);
-        document.getElementById('submit_program').value = "LOGO";
-        // show the download page
-        var grey_out = document.getElementById('grey_out_page');
-        grey_out.style.display = 'block';
-        var download_pop = document.getElementById('download');
-        download_pop.style.display = 'block';
-      }
-
-      function download_popup2(elem) {
-        download_popup(expanded_num(elem));
-      }
-
-      function download_submit() {
-        var format = document.getElementById('logo_format').value;
-        var orient = document.getElementById('logo_rc').value;
-        var ssc = document.getElementById('logo_ssc').value;
-        var width = document.getElementById('logo_width').value;
-        var height = document.getElementById('logo_height').value;
-        document.getElementById('submit_format').value = format;
-        document.getElementById('submit_rc').value = orient;
-        document.getElementById('submit_ssc').value = ssc;
-        document.getElementById('submit_width').value = width;
-        document.getElementById('submit_height').value = height;
-        document.getElementById('submit_form').submit();
-        both_hide();
-      }
-
-      function FixLogoTask(num, rc) {
-        this.num = num;
-        this.rc = rc;
-        this.run = FixLogoTask_run;
-      }
-
-      function FixLogoTask_run() {
-        var pspm_text = document.getElementById("pspm" + this.num).value;
-        var alpha = new Alphabet("ACGT");
-        var pspm = new Pspm(pspm_text);
-        if (this.rc) pspm = pspm.reverse_complement(alpha);
-        var imgid = "small_" + (this.rc ? "rc_" : "") + "logo_" + this.num;
-
-        var image = document.getElementById(imgid);
-
-        var canvas = create_canvas(pspm.get_motif_length() *15, 50, image.id, 
-            image.title, image.style.display);
-        if (canvas == null) return;
-
-        var logo = logo_1(alpha, "DREME", pspm);
-        draw_logo_on_canvas(logo, canvas);
-        image.parentNode.replaceChild(canvas, image);
-      }
-
-      function fix_popup_logo(image, canvasid, rc) {
-        var motif_num = parseInt(document.getElementById('submit_motif').value, 10);
-        var pspm_text = document.getElementById("pspm" + motif_num).value;
-        var alpha = new Alphabet("ACGT");
-        var pspm = new Pspm(pspm_text);
-        if (rc) pspm = pspm.reverse_complement(alpha);
-        image.style.display = "none";
-        //check for canvas support before attempting anything
-        var canvas = document.getElementById(canvasid);
-        if (!canvas.getContext) return;
-        if (!supports_text(canvas.getContext('2d'))) return;
-        canvas.height = 90;
-        canvas.width = 170;
-        canvas.style.display = "inline";
-        var logo = logo_1(alpha, "DREME", pspm);
-        draw_logo_on_canvas(logo, canvas, false);
-      }
-
-      function fix_expanded_logo(image, rc) {
-        var motif_num = expanded_num(image);
-        var pspm_text = document.getElementById("pspm" + motif_num).value;
-        var alpha = new Alphabet("ACGT");
-        var pspm = new Pspm(pspm_text);
-        if (rc) pspm = pspm.reverse_complement(alpha);
-        //check for canvas support before attempting anything
-        var canvas = document.createElement('canvas');
-        if (!canvas.getContext) return;
-        if (!supports_text(canvas.getContext('2d'))) return;
-        canvas.height = 150;
-        canvas.width = 0;
-        draw_logo_on_canvas(logo_1(alpha, "DREME", pspm), canvas, false);
-        image.parentNode.replaceChild(canvas, image);
-      }
-
-      function text_nodes(container) {
-        var textNodes = [];
-        var stack = [container];
-        // depth first search to maintain ordering when flattened 
-        while (stack.length > 0) {
-          var node = stack.pop();
-          if (node.nodeType == Node.TEXT_NODE) {
-            textNodes.push(node);
-          } else {
-            for (var i = node.childNodes.length-1; i >= 0; i--) {
-              stack.push(node.childNodes[i]);
-            }
-          }
-        }
-        return textNodes;
-      }
-
-      function node_text(node) {
-        if (node === undefined) {
-          return '';
-        } else if (node.textContent) {
-          return node.textContent;
-        } else if (node.innerText) {
-          return node.innerText;
-        } else {
-          return '';
-        }
-      }
-
-      function nodes_text(nodes, separator) {
-        if (separator === undefined) separator = '';
-        var text = '';
-        if (nodes.length > 0) {
-          text += node_text(nodes[0]);
-        }
-        for (var i = 1; i < nodes.length; i++) {
-          text += separator + node_text(nodes[i]);
-        }
-        return text;
-      }
-
-      function colour_dna_seq(container) {
-        var textnodes = text_nodes(container);
-        for (var i = 0; i < textnodes.length; i++) {
-          var node = textnodes[i];
-          container.replaceChild(create_dna_seq(node_text(node)), node);
-        }
-      }
-
-      function create_dna_seq(seq) {
-        var out = document.createElement('span');
-        var last = 0;
-        for (var i = 0; i < seq.length; i++) {
-          var letter = seq.charAt(i);
-          if (letter == 'A' || letter == 'C' || letter == 'G' || letter == 'T') { 
-            if (last < i) {
-              out.appendChild(document.createTextNode(seq.substring(last, i)));
-            }
-            var coloured_letter = document.createElement('span');
-            coloured_letter.className = "dna_" + letter;
-            coloured_letter.appendChild(document.createTextNode(letter));
-            out.appendChild(coloured_letter);
-            last = i + 1;
-          }
-        }
-        if (last < seq.length) {
-          out.appendChild(document.createTextNode(seq.substring(last)));
-        }
-        return out;
-      }
-
-      function sort_table(colEle, compare_function) {
-        //find the parent of colEle that is either a td or th
-        var cell = colEle;
-        while (true) {
-          if (cell == null) return;
-          if (cell.nodeType == Node.ELEMENT_NODE && 
-              (cell.tagName.toLowerCase() == "td" || cell.tagName.toLowerCase() == "th")) {
-            break;
-          }
-          cell = cell.parentNode;
-        }
-        //find the parent of cell that is a tr
-        var row = cell;
-        while (true) {
-          if (row == null) return;
-          if (row.nodeType == Node.ELEMENT_NODE && row.tagName.toLowerCase() == "tr") {
-            break;
-          }
-          row = row.parentNode;
-        }
-        //find the parent of row that is a table
-        var table = row;
-        while (true) {
-          if (table == null) return;
-          if (table.nodeType == Node.ELEMENT_NODE && table.tagName.toLowerCase() == "table") {
-            break;
-          }
-          table = table.parentNode;
-        }
-        var column_index = cell.cellIndex;
-        // do a bubble sort, because the tables are so small it doesn't matter
-        var change;
-        var trs = table.tBodies[0].getElementsByTagName('tr');
-        var already_sorted = true;
-        var reverse = false;
-        while (true) {
-          do {
-            change = false;
-            for (var i = 0; i < trs.length -1; i++) {
-              var v1 = nodes_text(text_nodes(trs[i].cells[column_index]));
-              var v2 = nodes_text(text_nodes(trs[i+1].cells[column_index]));
-              if (reverse) {
-                var tmp = v1;
-                v1 = v2;
-                v2 = tmp;
-              }
-              if (compare_function(v1, v2) > 0) {
-                exchange(trs[i], trs[i+1], table);
-                change = true;
-                already_sorted = false;
-                trs = table.tBodies[0].getElementsByTagName('tr');
-              }
-            }
-          } while (change);
-          if (reverse) break;// we've sorted twice so exit
-          if (!already_sorted) break;// sort did something so exit
-          // when it's sorted one way already then sort the opposite way
-          reverse = true;
-        }
-        update_sort_arrows(row, column_index, reverse);
-      }
-
-      function update_sort_arrows(row, column_index, reverse) {
-        var ascending = "\u25BC";
-        var descending = "\u25B2";
-        var dir = (reverse ? descending : ascending);
-        for (var i = 0; i < row.cells.length; i++) {
-          var arrow = find_child_element_by_class(row.cells[i], "sort_dir");
-          if (arrow == null) continue;
-          if (i == column_index) {
-            set_content_to_text(arrow, dir);
-          } else {
-            set_content_to_text(arrow, "");
-          }
-        }
-      }
-    
-      function exchange(oRowI, oRowJ, oTable) {
-        var i = oRowI.rowIndex;
-        var j = oRowJ.rowIndex;
-         if (i == j+1) {
-          oTable.tBodies[0].insertBefore(oRowI, oRowJ);
-        } if (j == i+1) {
-          oTable.tBodies[0].insertBefore(oRowJ, oRowI);
-        } else {
-            var tmpNode = oTable.tBodies[0].replaceChild(oRowI, oRowJ);
-            if(typeof(oRowI) != "undefined") {
-              oTable.tBodies[0].insertBefore(tmpNode, oRowI);
-            } else {
-              oTable.appendChild(tmpNode);
-            }
-        }
-      }
-
-      function compare_numbers(v1, v2) {
-        var f1 = parseFloat(v1);
-        var f2 = parseFloat(v2);
-        if (f1 < f2) {
-          return -1;
-        } else if (f1 > f2) {
-          return 1;
-        } else {
-          return 0;
-        }
-      }
-
-      function compare_counts(v1, v2) {
-        var re = /(\d+)\/\d+/;
-        var m1 = re.exec(v1);
-        var m2 = re.exec(v2);
-        if (m1 == null && m2 == null) return 0;
-        if (m1 == null) return -1;
-        if (m2 == null) return 1;
-        return compare_numbers(m1[1], m2[1]);
-      }
-
-      function compare_strings(v1, v2) {
-        return v1.localeCompare(v2);
-      }
-      /*
-       * help
-       *
-       * Moves around help pop-ups so they appear
-       * below an activator.
-       */
-      function help(activator, popup_id) {
-        if (help.popup === undefined) {
-          help.popup = null;
-        }
-        if (help.activator === undefined) {
-          help.activator = null;
-        }
-
-        if (typeof(activator) == 'undefined') { // no activator so hide
-          help.popup.style.display = 'none';
-          help.popup = null;
-          return;
-        }
-        var pop = document.getElementById(popup_id);
-        if (pop == help.popup) {
-          if (activator == help.activator) {
-            //hide popup (as we've already shown it for the current help button)
-            help.popup.style.display = 'none';
-            help.popup = null;
-            return; // toggling complete!
-          }
-        } else if (help.popup != null) {
-          //activating different popup so hide current one
-          help.popup.style.display = 'none';
-        }
-        help.popup = pop;
-        help.activator = activator;
-
-        //must make the popup visible to measure it or it has zero width
-        pop.style.display = 'block';
-        var xy = get_elem_xy(activator);
-        var padding = 10;
-        var edge_padding = 15;
-        var scroll_padding = 15;
-
-        var pop_left = (xy[0] + (activator.offsetWidth / 2)  - (pop.offsetWidth / 2));
-        var pop_top = (xy[1] + activator.offsetHeight + padding);
-
-        // ensure the box is not past the top or left of the page
-        if (pop_left < 0) pop_left = edge_padding;
-        if (pop_top < 0) pop_top = edge_padding;
-        // ensure the box does not cause horizontal scroll bars
-        var page_width = null;
-        if (window.innerWidth) {
-          page_width = window.innerWidth;
-        } else if (document.body) {
-          page_width = document.body.clientWidth;
-        }
-        if (page_width) {
-          if (pop_left + pop.offsetWidth > page_width) {
-            pop_left = page_width - pop.offsetWidth - edge_padding - scroll_padding; //account for scrollbars
-          }
-        }
-
-        pop.style.left = pop_left + "px";
-        pop.style.top = pop_top + "px";
-      }
-
-      var submit_tasks = [];
-      submit_tasks['search_motifs'] = ['TOMTOM'];
-      submit_tasks['search_sequences'] = ['FIMO'];
-      submit_tasks['rank_sequences'] = ['MAST'];
-      submit_tasks['predict_go'] = ['GOMO'];
-      submit_tasks['infer_tf'] = ['SPAMO'];
-      var submit_programs = [];
-      submit_programs['TOMTOM'] = ['search_motifs'];
-      submit_programs['FIMO'] = ['search_sequences'];
-      submit_programs['MAST'] = ['rank_sequences'];
-      submit_programs['GOMO'] = ['predict_go'];
-      submit_programs['SPAMO'] = ['infer_tf'];
-      var submit_descriptions = [];
-      submit_descriptions['TOMTOM'] = "Find similar motifs in published " + 
-          "libraries or a library you supply.";
-      submit_descriptions['FIMO'] = "Find motif occurences in sequence data.";
-      submit_descriptions['MAST'] = "Rank sequences by affinity to groups " + 
-          "of motifs.";
-      submit_descriptions['GOMO'] = "Identify possible roles (Gene Ontology " + 
-          "terms) for motifs.";
-      submit_descriptions['SPAMO'] = "Find other motifs that are enriched at " +
-          "specific close spacings which might imply the existance of a complex.";
-
-
-      function click_submit_task(ele) {
-        var task = ele.id;
-        var program = highlight_submit_program(null, submit_tasks[task]);
-        highlight_submit_task(task, submit_programs[program]);
-        update_submit_text(task, program);
-      }
-
-      function click_submit_program(ele) {
-        var program = ele.id;
-        var task = highlight_submit_task(null, submit_programs[program]);
-        highlight_submit_program(program, submit_tasks[task]);
-        update_submit_text(task, program);
-      }
-
-      function update_submit_text(task, program) {
-        var task_ele = document.getElementById(task);
-        var program_ele = document.getElementById(program);
-        set_content_to_text(document.getElementById('program_action'), 
-            nodes_text(text_nodes(task_ele)));
-        set_content_to_text(document.getElementById('program_name'), 
-            nodes_text(text_nodes(program_ele)));
-        set_content_to_text(document.getElementById('program_desc'), 
-            submit_descriptions[program]);
-      }
-
-      function highlight_submit_task(select, highlights) {
-        var tasks_ul = document.getElementById('tasks');
-        var all_tasks = tasks_ul.getElementsByTagName('li');
-        var li;
-        var originally_selected = null;
-        // deselect everything in the tasks list
-        for (var i = 0; i < all_tasks.length; i++) {
-          li = all_tasks[i];
-          if (li.className == "selected") {
-            originally_selected = li;
-          }
-          li.className = "";
-        }
-        // highlight everything in the highlights list
-        for (var i = 0; i < highlights.length; i++) {
-          var li = document.getElementById(highlights[i]);
-          li.className = "active";
-        }
-        // check if we're setting the selected item specifically
-        if (select != null) {
-          li = document.getElementById(select);
-          li.className = "selected";
-          return select;
-        } else {
-          // if the originally selected item is allowed then keep it
-          // otherwise move to the first element of the highlight list
-          if (originally_selected != null && 
-              originally_selected.className == "active") {
-            originally_selected.className = "selected";
-            return originally_selected.id;
-          } else if (highlights.length > 0) {
-            li = document.getElementById(highlights[0]);
-            li.className = "selected";
-            return highlights[0];
-          }
-          return null;
-        }
-      }
-
-
-      function highlight_submit_program(select, highlights) {
-        var programs_ul = document.getElementById('programs');
-        var all_programs = programs_ul.getElementsByTagName('li');
-        var li;
-        var originally_selected = null;
-        // deselect everything in the programs list
-        for (var i = 0; i < all_programs.length; i++) {
-          li = all_programs[i];
-          if (li.className == "selected") {
-            originally_selected = li;
-          }
-          li.className = "";
-        }
-        // highlight everything in the highlights list
-        for (var i = 0; i < highlights.length; i++) {
-          var li = document.getElementById(highlights[i]);
-          li.className = "active";
-        }
-        // check if we're setting the selected item specifically
-        if (select != null) {
-          li = document.getElementById(select);
-          li.className = "selected";
-          return select;
-        } else {
-          // if the originally selected item is allowed then keep it
-          // otherwise move to the first element of the highlight list
-          if (originally_selected != null && 
-              originally_selected.className == "active") {
-            originally_selected.className = "selected";
-            return originally_selected.id;
-          } else if (highlights.length > 0) {
-            li = document.getElementById(highlights[0]);
-            li.className = "selected";
-            return highlights[0];
-          }
-          return null;
-        }
-      }
-    /* END INCLUDED FILE "dreme-to-html.js" */
-    
-  </script>
-</head>
-<body>
-<form id="submit_form" method="post" action="http://Sharplab-G4-1.local/meme/cgi-bin/meme_request.cgi" target="_blank">
-<!--+++++++++++++++START DATA+++++++++++++++-->
-<input type="hidden" name="version" value="MEME version 4.7.0">
-<input type="hidden" name="alphabet" id="alphabet" value="ACGT">
-<input type="hidden" name="strands" value="+ -">
-<input type="hidden" name="bgsrc" value="dataset">
-<input type="hidden" name="bgfreq" id="bgfreq" value="A 0.243 C 0.270 G 0.243 T 0.243">
-<input type="hidden" name="name" value="test">
-<input type="hidden" name="nmotifs" id="nmotifs" value="0">
-<!--+++++++++++++++FINISHED DATA++++++++++++-->
-<input type="hidden" name="program" id="submit_program" value="TOMTOM"><input type="hidden" name="motif" id="submit_motif" value="all"><input type="hidden" name="logoformat" id="submit_format" value="png"><input type="hidden" name="logorc" id="submit_rc" value="false"><input type="hidden" name="logossc" id="submit_ssc" value="false"><input type="hidden" name="logowidth" id="submit_width" value=""><input type="hidden" name="logoheight" id="submit_height" value="7.5">
-</form>
-<div class="pop_content" id="pop_motifs_name">
-<p>
-        The name of the motif uses the IUPAC codes for nucleotides which has 
-        a different letter to represent each of the 15 possible combinations.
-      </p>
-<p>
-        The name is itself a representation of the motif though the position
-        weight matrix is not directly equalivant as it is generated from the
-        sites found that matched the letters given in the name.
-      </p>
-<p><a href="http://meme.nbcr.net/meme/doc/alphabets.html">
-        Read more about the MEME suite's use of the IUPAC alphabets.
-        </a></p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motifs_logo">
-<p>The logo of the motif.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motifs_rc_logo">
-<p>The logo of the reverse complement motif.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motifs_evalue">
-<p>The E-value is the enrichment p-value times the number of candidate 
-        motifs tested.</p>
-<p>The enrichment p-value is calculated using the Fisher Exact Test for 
-        enrichment of the motif in the positive sequences.</p>
-<p>Note that the counts used in the Fisher Exact Test are made after 
-        erasing sites that match previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motifs_uevalue">
-<p>The E-value of the motif calculated without erasing the sites of 
-        previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_more">
-<p>Show more information on the motif.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_submit">
-<p>Submit your motif to another MEME Suite program.</p>
-<h5>Supported Programs</h5>
-<dl>
-<dt>Tomtom</dt>
-<dd>Tomtom is a tool for searching for similar known motifs. 
-          [<a href="http://meme.nbcr.net/meme/tomtom-intro.html">manual</a>]</dd>
-<dt>MAST</dt>
-<dd>MAST is a tool for searching biological sequence databases for 
-          sequences that contain one or more of a group of known motifs.
-          [<a href="http://meme.nbcr.net/meme/mast-intro.html">manual</a>]</dd>
-<dt>FIMO</dt>
-<dd>FIMO is a tool for searching biological sequence databases for 
-          sequences that contain one or more known motifs.
-          [<a href="http://meme.nbcr.net/meme/fimo-intro.html">manual</a>]</dd>
-<dt>GOMO</dt>
-<dd>GOMO is a tool for identifying possible roles (Gene Ontology 
-          terms) for DNA binding motifs.
-          [<a href="http://meme.nbcr.net/meme/gomo-intro.html">manual</a>]</dd>
-<dt>SpaMo</dt>
-<dd>SpaMo is a tool for inferring possible transcription factor
-          complexes by finding motifs with enriched spacings.
-          [<a href="http://meme.nbcr.net/meme/spamo-intro.html">manual</a>]</dd>
-</dl>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_download">
-<p>Download your motif as a position weight matrix or a custom logo.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motif_positives">
-<p># positive sequences matching the motif / # positive sequences.</p>
-<p>Note these counts are made after erasing sites that match previously
-        found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motif_negatives">
-<p># negative sequences matching the motif / # negative sequences.</p>
-<p>Note these counts are made after erasing sites that match previously
-        found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motif_pvalue">
-<p>The p-value of the Fisher Exact Test for enrichment of the motif in 
-        the positive sequences.</p>
-<p>Note that the counts used in the Fisher Exact Test are made after 
-        erasing sites that match previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motif_evalue">
-<p>The E-value is the motif p-value times the number of candidate motifs 
-        tested.</p>
-<p>Note that the p-value was calculated with counts made after 
-        erasing sites that match previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_motif_uevalue">
-<p>The E-value of the motif calculated without erasing the sites of 
-        previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_match_word">
-<p>All words matching the motif whose uncorrected p-value is less than
-        0.01.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_match_pos">
-<p># positive sequences with matches to the word / # positive sequences.</p>
-<p>Note these counts are made after erasing sites that match previously
-        found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_match_neg">
-<p># negative sequences with matches to the word / # negative sequences.</p>
-<p>Note these counts are made after erasing sites that match previously
-        found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_match_pval">
-<p>The p-value of the Fisher Exact Test for enrichment of the word in 
-        the positive sequences.</p>
-<p>Note that the counts used in the Fisher Exact Test are made after 
-        erasing sites that match previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div class="pop_content" id="pop_match_eval">
-<p>The word p-value times the number of candidates tested.</p>
-<p>Note that the p-value was calculated with counts made after 
-        erasing sites that match previously found motifs.</p>
-<div style="float:right; bottom:0px;">[<a href="javascript:help()">close</a> ]</div>
-</div>
-<div id="expanded_motif" style="display:none"><div class="box expanded_motif" style="margin-bottom:5px;">
-<div>
-<div style="float:left"><h2 class="mainh" style="margin:0; padding:0;">
-<span class="num"></span>.  
-              <span class="name"></span>
-</h2></div>
-<div style="float:right; "><div class="close" onclick="contract(this);" title="Show less information.">↥</div></div>
-<div style="clear:both"></div>
-</div>
-<div style="padding:0 5px;">
-<div style="float:left;">
-<img class="img_nc" onerror="fix_expanded_logo(this, false)"><img class="img_rc" onerror="fix_expanded_logo(this, true)">
-</div>
-<div style="float:right; height:100px;">
-<div onclick="send_to_popup2(this);" class="actionbutton" title="Submit this motif to another MEME Suite program.">
-<div style="float:left; margin-right:1em;">Submit</div>
-<div style="float:right">⇢</div>
-<div style="clear:both;"></div>
-</div>
-<div onclick="download_popup2(this);" class="actionbutton" title="Download this motif as a position weight matrix or a custom logo.">
-<div style="float:left; margin-right:1em;">Download</div>
-<div style="float:right">⟱</div>
-<div style="clear:both;"></div>
-</div>
-</div>
-<div style="clear:both;"></div>
-</div>
-<h4>Details</h4>
-<table class="details">
-<thead><tr>
-<th>Positives <div class="help2" onclick="help(this,'pop_motif_positives')">?</div>
-</th>
-<th>Negatives <div class="help2" onclick="help(this,'pop_motif_negatives')">?</div>
-</th>
-<th>P-value <div class="help2" onclick="help(this,'pop_motif_pvalue')">?</div>
-</th>
-<th>E-value <div class="help2" onclick="help(this,'pop_motif_evalue')">?</div>
-</th>
-<th>Unerased E-value <div class="help2" onclick="help(this,'pop_motif_uevalue')">?</div>
-</th>
-</tr></thead>
-<tbody><tr>
-<td>
-<span class="positives"></span>/3</td>
-<td>
-<span class="negatives"></span>/3</td>
-<td class="pvalue"></td>
-<td class="evalue"></td>
-<td class="uevalue"></td>
-</tr></tbody>
-</table>
-<h4>Enriched Matching Words</h4>
-<table>
-<thead><tr>
-<th>
-<a href="javascript:;" onclick="sort_table(this, compare_strings)"><span class="sort_dir"></span>Word</a> 
-                <div class="help2" onclick="help(this,'pop_match_word')">?</div>
-</th>
-<th>
-<a href="javascript:;" onclick="sort_table(this, compare_counts)"><span class="sort_dir"></span>Positives</a> 
-                <div class="help2" onclick="help(this,'pop_match_pos')">?</div>
-</th>
-<th>
-<a href="javascript:;" onclick="sort_table(this, compare_counts)"><span class="sort_dir"></span>Negatives</a> 
-                <div class="help2" onclick="help(this,'pop_match_neg')">?</div>
-</th>
-<th>
-<a href="javascript:;" onclick="sort_table(this, compare_numbers)"><span class="sort_dir"></span>P-value</a> 
-                <div class="help2" onclick="help(this,'pop_match_pval')">?</div>
-</th>
-<th>
-<a href="javascript:;" onclick="sort_table(this, compare_numbers)"><span class="sort_dir">▼</span>E-value</a> 
-                <div class="help2" onclick="help(this,'pop_match_eval')">?</div>
-</th>
-</tr></thead>
-<tbody><tr class="match">
-<td class="dnaseq"></td>
-<td>
-<span class="positives"></span>/3</td>
-<td>
-<span class="negatives"></span>/3</td>
-<td class="pvalue"></td>
-<td class="evalue"></td>
-</tr></tbody>
-</table>
-</div></div>
-<div id="grey_out_page" class="grey_background" style="display:none;"></div>
-<div class="popup_wrapper"><div id="send_to" class="popup" style="top:-150px; display:none">
-<div>
-<div style="float:left" id="send_to_title_1"><h2 class="mainh compact">Submit "<span id="send_to_name"></span>"</h2></div>
-<div style="float:left" id="send_to_title_2"><h2 class="mainh compact">Submit All Motifs</h2></div>
-<div style="float:right; "><div class="close" onclick="both_hide();">x</div></div>
-<div style="clear:both"></div>
-</div>
-<div style="padding:0 5px 5px 5px;">
-<div id="send_to_selector" style="height:100px;">
-<img id="send_to_img" height="90" style="max-width:170px;" onerror="fix_popup_logo(this, 'send_to_can', false)"><canvas id="send_to_can" width="10" height="100" style="display:none;"></canvas><img id="send_to_rcimg" height="90" style="max-width:170px;" onerror="fix_popup_logo(this, 'send_to_rccan', true);"><canvas id="send_to_rccan" width="10" height="100" style="display:none"></canvas><div style="float:right;">
-<a id="prev_arrow_2" href="javascript:both_change(-1)" class="navarrow">⇧</a><div id="pop_num_2" class="navnum"></div>
-<a id="next_arrow_2" href="javascript:both_change(1)" class="navarrow">⇩</a>
-</div>
-</div>
-<form>
-<div style="">
-<div style="float:left;">
-<h4 class="compact">Select what you want to do</h4>
-<div class="programs_scroll"><ul id="tasks" class="programs">
-<li id="search_motifs" onclick="click_submit_task(this)" class="selected">Search Motifs</li>
-<li id="search_sequences" onclick="click_submit_task(this)">Search Sequences</li>
-<li id="rank_sequences" onclick="click_submit_task(this)">Rank Sequences</li>
-<li id="predict_go" onclick="click_submit_task(this)">Predict Gene Ontology terms</li>
-<li id="infer_tf" onclick="click_submit_task(this)">Infer TF Complexes</li>
-</ul></div>
-</div>
-<div style="float:right;">
-<h4 class="compact">Select a program</h4>
-<div class="programs_scroll"><ul id="programs" class="programs">
-<li id="TOMTOM" onclick="click_submit_program(this)" class="selected">Tomtom</li>
-<li id="FIMO" onclick="click_submit_program(this)">FIMO</li>
-<li id="MAST" onclick="click_submit_program(this)">MAST</li>
-<li id="GOMO" onclick="click_submit_program(this)">GOMO</li>
-<li id="SPAMO" onclick="click_submit_program(this)">SpaMo</li>
-</ul></div>
-</div>
-<div style="font-weight:bold; display:inline-block; text-align:center; width:60px; height:100px; line-height:100px">Or</div>
-<div style="clear:both;"></div>
-</div>
-<h4>
-<span id="program_action">Search Motifs</span> with <span id="program_name">Tomtom</span>
-</h4>
-<p><span id="program_desc">Find similar motifs in published 
-                libraries or a library you supply.</span></p>
-<div style="margin-top:10px; height: 2em;">
-<div style="float:left;"><input type="button" value="Send" onclick="javascript:send_to_submit()"></div>
-<div style="float:right;"><input type="button" value="Cancel" onclick="javascript:both_hide()"></div>
-</div>
-</form>
-</div>
-</div></div>
-<div class="popup_wrapper"><div id="download" class="popup" style="top:-150px; display:none">
-<div>
-<div style="float:left"><h2 class="mainh" style="margin:0; padding:0;">Download "<span id="download_name"></span>"</h2></div>
-<div style="float:right; "><div class="close" onclick="both_hide();">x</div></div>
-<div style="clear:both"></div>
-</div>
-<div style="padding:0 5px 5px 5px;">
-<div style="height:100px">
-<img id="download_img" height="90" style="max-width:170px;" onerror="fix_popup_logo(this, 'download_can', false)"><canvas id="download_can" width="10" height="100" style="display:none;"></canvas><img id="download_rcimg" height="90" style="max-width:170px;" onerror="fix_popup_logo(this, 'download_rccan', true)"><canvas id="download_rccan" width="10" height="100" style="display:none;"></canvas><div style="float:right;">
-<a id="prev_arrow_1" href="javascript:both_change(-1)" class="navarrow">⇧</a><div id="pop_num_1" class="navnum"></div>
-<a id="next_arrow_1" href="javascript:both_change(1)" class="navarrow">⇩</a>
-</div>
-</div>
-<form>
-<input type="hidden" id="download_tab_num" value="1"><div style="padding:5px 0;">
-<div class="tabArea top">
-<a id="download_tab_1" href="javascript:click_download_tab(1)" class="tab activeTab">PSPM Format</a><a id="download_tab_2" href="javascript:click_download_tab(2)" class="tab">PSSM Format</a><a id="download_tab_3" href="javascript:click_download_tab(3)" class="tab">Logo</a>
-</div>
-<div class="tabMain">
-<div id="download_pnl_1"><textarea id="download_pspm" style="width:99%" rows="10" readonly></textarea></div>
-<div id="download_pnl_2"><textarea id="download_pssm" style="width:99%" rows="10" readonly></textarea></div>
-<div id="download_pnl_3"><table>
-<tr>
-<td><label for="logo_format">Format:</label></td>
-<td><select id="logo_format"><option value="png">PNG (for web)</option>
-<option value="eps">EPS (for publication)</option></select></td>
-</tr>
-<tr>
-<td><label for="logo_rc">Orientation:</label></td>
-<td><select id="logo_rc"><option value="false">Normal</option>
-<option value="true">Reverse Complement</option></select></td>
-</tr>
-<tr>
-<td><label for="logo_ssc">Small Sample Correction:</label></td>
-<td><select id="logo_ssc"><option value="false">Off</option>
-<option value="true">On</option></select></td>
-</tr>
-<tr>
-<td><label for="logo_width">Width:</label></td>
-<td>
-<input type="text" id="logo_width" size="4"> cm
-                      </td>
-</tr>
-<tr>
-<td><label for="logo_height">Height:</label></td>
-<td>
-<input type="text" id="logo_height" size="4"> cm
-                      </td>
-</tr>
-</table></div>
-<div style="margin-top:10px;">
-<div style="float:left;"><input type="button" id="download_button" value="Download" style="visibility:hidden;" onclick="javascript:download_submit()"></div>
-<div style="float:right;"><input type="button" value="Cancel" onclick="javascript:both_hide()"></div>
-<div style="clear:both;"></div>
-</div>
-</div>
-</div>
-</form>
-</div>
-</div></div>
-<a name="top"></a><div class="pad1">
-<h1><img src="http://Sharplab-G4-1.local/meme/doc/images/dreme_logo.png" alt="Discriminative Regular Expression Motif Elicitation (DREME)"></h1>
-<p class="spaced">
-        For further information on how to interpret these results or to get a 
-        copy of the MEME software please access 
-        <a href="http://meme.nbcr.net/">http://meme.nbcr.net</a>. 
-      </p>
-<p>
-        If you use DREME in your research please cite the following paper:<br><span class="citation">
-          Timothy L. Bailey, "DREME: Motif discovery in transcription factor ChIP-seq data", <i>Bioinformatics</i>, <b>27</b>(12):1653-1659, 2011.
-        </span></p>
-</div>
-<div class="pad2">
-<a class="jump" href="#description">Description</a>  |  <a class="jump" href="#motifs">Discovered motifs</a>  |  <a class="jump" href="#program">Program information</a>
-</div>
-<a name="description"></a><table width="100%" border="0" cellspacing="1" cellpadding="4" bgcolor="#FFFFFF"><tr>
-<td><h2 class="mainh">Description</h2></td>
-<td align="right" valign="bottom">
-<a href="#motifs">Next</a> <a href="#top">Top</a>
-</td>
-</tr></table>
-<div class="box"><p>xxxx</p></div>
-<a name="motifs"></a><table width="100%" border="0" cellspacing="1" cellpadding="4" bgcolor="#FFFFFF"><tr>
-<td><h2 class="mainh">Discovered Motifs</h2></td>
-<td align="right" valign="bottom">
-<a href="#description">Previous</a> <a href="#program">Next</a> <a href="#top">Top</a>
-</td>
-</tr></table>
-<div class="box">
-<p><b>Click on the ↧</b> under the <b>More</b> column to show more 
-        information about the motif.<br><b>Click on the ⇢</b> under the <b>Submit</b> column to send the 
-        motif to another MEME suite program. Eg. Tomtom<br><b>Click on the ⟱</b> under the <b>Download</b> column to get 
-        the position weight matrix of a motif or to download the logo image with
-        your chosen options.
-      </p>
-<table id="dreme_motifs" class="dreme_motifs">
-<thead><tr class="motif_head">
-<td> </td>
-<th>Motif <div class="help2" onclick="help(this,'pop_motifs_name')">?</div>
-</th>
-<th>Logo <div class="help2" onclick="help(this,'pop_motifs_logo')">?</div>
-</th>
-<th>RC Logo <div class="help2" onclick="help(this,'pop_motifs_rc_logo')">?</div>
-</th>
-<th>E-value <div class="help2" onclick="help(this,'pop_motifs_evalue')">?</div>
-</th>
-<th>Unerased E-value <div class="help2" onclick="help(this,'pop_motifs_uevalue')">?</div>
-</th>
-<th>More <div class="help2" onclick="help(this,'pop_more')">?</div>
-</th>
-<th>Submit <div class="help2" onclick="help(this,'pop_submit')">?</div>
-</th>
-<th>Download <div class="help2" onclick="help(this,'pop_download')">?</div>
-</th>
-</tr></thead>
-<tbody></tbody>
-<tfoot><tr class="rule">
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-<td> </td>
-</tr></tfoot>
-</table>
-<div style="float:left"><div onclick="send_to_popup(0);" class="actionbutton" title="Submit all motifs to another program.">
-<div style="float:left; margin-right:1em;">Submit All</div>
-<div style="float:right">⇢</div>
-<div style="clear:both;"></div>
-</div></div>
-<div style="clear:both;"></div>
-</div>
-<a name="program"></a><div class="bar">
-<div style="text-align:right;">
-<a href="#motifs">Previous</a> <a href="#top">Top</a>
-</div>
-<div class="subsection">
-<a name="version"></a><h5>DREME version</h5>4.7.0 (Release date: Wed Sep 28 17:30:10 EST 2011)
-      </div>
-<div class="subsection">
-<a name="reference"></a><h5>Reference</h5>
-<span class="citation">
-          Timothy L. Bailey, "DREME: Motif discovery in transcription factor ChIP-seq data", <i>Bioinformatics</i>, <b>27</b>(12):1653-1659, 2011.
-        </span>
-</div>
-<div class="subsection">
-<a name="command"></a><h5>Command line summary</h5>
-<textarea rows="1" style="width:100%;" readonly>dreme -p test.fa -desc xxxx</textarea><br>Result calculation took 0.01 seconds<br>
-</div>
-<a href="javascript:show_hidden('model')" id="model_activator">show model parameters...</a><div class="subsection" id="model_data" style="display:none;">
-<h5>Model parameters</h5>
-<textarea style="width:100%;" rows="10" readonly>
-positives             = name: "test", count: "3", file: "test.fa", last_mod_date: "Sat Dec 10 12:52:18 EST 2011"
-negatives             = name: "shuffled positive sequences", count: "3", from: "shuffled"
-background            = type: "dna", A: "0.243", C: "0.270", G: "0.243", T: "0.243", from: "dataset"
-stop                  = evalue: "0.05"
-ngen                  = 100
-add_pv_thresh         = 0.01
-seed                  = 1
-host                  = SHARPLAB.MIT.EDU
-when                  = Sun Dec 11 09:26:43 EST 2011
-</textarea>
-</div>
-<a href="javascript:hide_shown('model')" style="display:none;" id="model_deactivator">hide model parameters...</a>
-</div>
-</body>
-</html>
--- a/tools/mytools/dreme_out/dreme.txt	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-# DREME 4.7.0
-# command:   dreme -p test.fa -desc xxxx
-# host:      SHARPLAB.MIT.EDU
-# when:      Sun Dec 11 09:26:43 EST 2011
-# positives: 3
-#      from: test.fa (Sat Dec 10 12:52:18 EST 2011)
-# negatives: 3
-#      from: shuffled positives
-#
-# xxxx
-
-
-MEME version 4.7.0
-
-ALPHABET= ACGT
-
-strands: + -
-
-Background letter frequencies (from dataset):
-A 0.243 C 0.270 G 0.243 T 0.243
-
--- a/tools/mytools/dreme_out/dreme.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<!DOCTYPE dreme[
-<!ELEMENT dreme (model, motifs, run_time)>
-<!ATTLIST dreme version CDATA #REQUIRED release CDATA #REQUIRED>
-<!ELEMENT model 
-  (command_line, positives, negatives, background, stop, ngen, add_pv_thresh, 
-  seed, host, when, description?)>
-<!ELEMENT command_line (#PCDATA)>
-<!ELEMENT positives EMPTY>
-<!ATTLIST positives 
-  name CDATA #REQUIRED count CDATA #REQUIRED file CDATA #REQUIRED 
-  last_mod_date CDATA #REQUIRED>
-<!--  
-  negatives must have a file and last_mod_date specified when the from
-  attribute is file.
--->
-<!ELEMENT negatives EMPTY>
-<!ATTLIST negatives 
-  name CDATA #REQUIRED count CDATA #REQUIRED from (shuffled|file) #REQUIRED
-  file CDATA #IMPLIED last_mod_date CDATA #IMPLIED>
-<!-- 
-  background allows DNA and RNA (AA is not going to be supported with DREME) 
-  however currently only DNA is implemented. Note that when type is dna the
-  value for T must be supplied and when the type is rna the value for U must
-  be supplied. The sum of the frequencies must be 1 (with a small error).
--->
-<!ELEMENT background EMPTY>
-<!ATTLIST background 
-  type (dna|rna) #REQUIRED
-  A CDATA #REQUIRED C CDATA #REQUIRED G CDATA #REQUIRED 
-  T CDATA #IMPLIED U CDATA #IMPLIED 
-  from (dataset|file) #REQUIRED 
-  file CDATA #IMPLIED last_mod_date CDATA #IMPLIED>
-<!ELEMENT stop EMPTY>
-<!ATTLIST stop 
-  evalue CDATA #IMPLIED count CDATA #IMPLIED time CDATA #IMPLIED>
-<!ELEMENT ngen (#PCDATA)>
-<!ELEMENT seed (#PCDATA)>
-<!ELEMENT add_pv_thresh (#PCDATA)>
-<!ELEMENT host (#PCDATA)>
-<!ELEMENT when (#PCDATA)>
-<!ELEMENT description (#PCDATA)>
-<!ELEMENT motifs (motif+)>
-<!ELEMENT motif (pos+, match+)>
-<!ATTLIST motif
-  id CDATA #REQUIRED seq CDATA #REQUIRED length CDATA #REQUIRED 
-  nsites CDATA #REQUIRED p CDATA #REQUIRED n CDATA #REQUIRED
-  pvalue CDATA #REQUIRED evalue CDATA #REQUIRED unerased_evalue CDATA #REQUIRED>
-<!--
-  pos allows DNA and RNA (AA is not going to be supported with DREME)
-  however current only DNA is implemented. When the type in the background
-  is 'dna' pos must have a T attribute and when it is 'rna' pos must have a
-  U attribute
--->
-<!ELEMENT pos EMPTY>
-<!ATTLIST pos
-  i CDATA #REQUIRED A CDATA #REQUIRED C CDATA #REQUIRED G CDATA #REQUIRED 
-  T CDATA #IMPLIED U CDATA #IMPLIED>
-<!ELEMENT match EMPTY>
-<!ATTLIST match
-  seq CDATA #REQUIRED p CDATA #REQUIRED n CDATA #REQUIRED 
-  pvalue CDATA #REQUIRED evalue CDATA #REQUIRED>
-<!ELEMENT run_time EMPTY>
-<!ATTLIST run_time
-  cpu CDATA #REQUIRED real CDATA #REQUIRED stop (evalue|count|time) #REQUIRED>
-]>
-<dreme version="4.7.0" release="Wed Sep 28 17:30:10 EST 2011">
-  <model>
-    <command_line>dreme -p test.fa -desc xxxx</command_line>
-    <positives name="test" count="3" file="test.fa" last_mod_date="Sat Dec 10 12:52:18 EST 2011" />
-    <negatives name="shuffled positive sequences" count="3" from="shuffled"/>
-    <background type="dna" A="0.243" C="0.270" G="0.243" T="0.243" from="dataset"/>
-    <stop evalue="0.05"/>
-    <ngen>100</ngen>
-    <add_pv_thresh>0.01</add_pv_thresh>
-    <seed>1</seed>
-    <host>SHARPLAB.MIT.EDU</host>
-    <when>Sun Dec 11 09:26:43 EST 2011</when>
-  <description>xxxx</description>
-  </model>
-  <motifs>
-  </motifs>
-  <run_time cpu="0.01" real="0.01" stop="evalue"/>
-</dreme>
--- a/tools/mytools/endbias.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-'''
-usage:
-
-python endbias.py utr5-coverage utr3-coverage outputfile
-'''
-import sys,math
-
-def getCoverage(filename):
-    f = open(filename)
-    coverage = {}
-    for line in f:
-        flds = line.strip().split('\t')
-        score = float(flds[4])
-        name = (flds[0].split('utr'))[0].strip('_')
-        if coverage.has_key(name):
-            if score > coverage[name]:
-                coverage[name] = score
-        else:
-            coverage[name] = score
-    return coverage
-
-def endBias(filename,utr5,utr3):
-    out = open(filename,'w')
-    for txpt in utr5.keys():
-        if utr3.has_key(txpt):
-            out.write('\t'.join([txpt,str(utr5[txpt]),str(utr3[txpt]),str(math.log((1+utr5[txpt])/(1+utr3[txpt]),2))])+'\n')
-    out.close()
-   
-   
-utr5 = getCoverage(sys.argv[1])
-utr3 = getCoverage(sys.argv[2])
-endBias(sys.argv[3],utr5,utr3)
-            
-'''
-
-utr5 = getCoverage('hmga2-utr5.coverage')
-utr3 = getCoverage('hmga2-utr3.coverage')
-logratio, cov5,cov3= endBias(utr5,utr3)
-2**pylab.median(logratio.values())
-
-log2utr5 = pylab.log2(pylab.array(cov5)+1)
-log2utr3 = pylab.log2(pylab.array(cov3)+1)
-  
-pylab.plot(log2utr5,log2utr3,'bo')   
-
-pylab.show()               
-
-utr5 = getCoverage('control-utr5.coverage')
-utr3 = getCoverage('control-utr3.coverage')
-logratio, cov5,cov3= endBias(utr5,utr3)
-2**pylab.median(logratio.values())
-'''
--- a/tools/mytools/endbias.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<tool id="endbias" name="bias">
-  <description>of UTR coverage</description>
-  <command interpreter="python"> endbias.py $input1 $input2 $output </command>
-  <inputs>
-    <param name="input1" format="txt" type="data" label="5' UTR coverage" help="tabular output from bigWigAverageOverBed"/>
-    <param name="input2" format="txt" type="data" label="3' UTR coverage" help="tabular output from bigWigAverageOverBed"/>
-  </inputs>
-  <outputs>
-    <data format="tabular" name="output" />
-  </outputs>
-</tool>
--- a/tools/mytools/fasta-dinucleotide-shuffle.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-#!/usr/bin/python
-
-import sys, string, random
-import sequence
-
-# 
-# turn on psyco to speed up by 3X
-#
-if __name__=='__main__': 
-  try:
-    import psyco
-    #psyco.log()
-    psyco.full()
-    psyco_found = True
-  except ImportError:
-#    psyco_found = False
-    pass
-#  print >> sys.stderr, "psyco_found", psyco_found
-
-
-# altschulEriksonDinuclShuffle.py
-# P. Clote, Oct 2003
-
-def computeCountAndLists(s):
-
-  #Initialize lists and mono- and dinucleotide dictionaries
-  List = {} #List is a dictionary of lists
-  List['A'] = []; List['C'] = [];
-  List['G'] = []; List['T'] = [];
-  # FIXME: is this ok?
-  List['N'] = []
-  nuclList   = ["A","C","G","T","N"]
-  s       = s.upper()
-  #s       = s.replace("U","T")
-  nuclCnt    = {}  #empty dictionary
-  dinuclCnt  = {}  #empty dictionary
-  for x in nuclList:
-    nuclCnt[x]=0
-    dinuclCnt[x]={}
-    for y in nuclList:
-      dinuclCnt[x][y]=0
-
-  #Compute count and lists
-  nuclCnt[s[0]] = 1
-  nuclTotal     = 1
-  dinuclTotal   = 0
-  for i in range(len(s)-1):
-    x = s[i]; y = s[i+1]
-    List[x].append( y )
-    nuclCnt[y] += 1; nuclTotal  += 1
-    dinuclCnt[x][y] += 1; dinuclTotal += 1
-  assert (nuclTotal==len(s))
-  assert (dinuclTotal==len(s)-1)
-  return nuclCnt,dinuclCnt,List
- 
- 
-def chooseEdge(x,dinuclCnt):
-  z = random.random()
-  denom=dinuclCnt[x]['A']+dinuclCnt[x]['C']+dinuclCnt[x]['G']+dinuclCnt[x]['T']+dinuclCnt[x]['N']
-  numerator = dinuclCnt[x]['A']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['A'] -= 1
-    return 'A'
-  numerator += dinuclCnt[x]['C']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['C'] -= 1
-    return 'C'
-  numerator += dinuclCnt[x]['G']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['G'] -= 1
-    return 'G'
-  numerator += dinuclCnt[x]['T']
-  if z < float(numerator)/float(denom):
-    dinuclCnt[x]['T'] -= 1
-    return 'T'
-  dinuclCnt[x]['N'] -= 1
-  return 'N'
-
-def connectedToLast(edgeList,nuclList,lastCh):
-  D = {}
-  for x in nuclList: D[x]=0
-  for edge in edgeList:
-    a = edge[0]; b = edge[1]
-    if b==lastCh: D[a]=1
-  for i in range(3):
-    for edge in edgeList:
-      a = edge[0]; b = edge[1]
-      if D[b]==1: D[a]=1
-  ok = 0
-  for x in nuclList:
-    if x!=lastCh and D[x]==0: return 0
-  return 1
-
-def eulerian(s):
-  nuclCnt,dinuclCnt,List = computeCountAndLists(s)
-  #compute nucleotides appearing in s
-  nuclList = []
-  for x in ["A","C","G","T","N"]:
-    if x in s: nuclList.append(x)
-  #create dinucleotide shuffle L 
-  firstCh = s[0]  #start with first letter of s
-  lastCh  = s[-1]
-  edgeList = []
-  for x in nuclList:
-    if x!= lastCh: edgeList.append( [x,chooseEdge(x,dinuclCnt)] )
-  ok = connectedToLast(edgeList,nuclList,lastCh)
-  return ok,edgeList,nuclList,lastCh
-
-
-def shuffleEdgeList(L):
-  n = len(L); barrier = n
-  for i in range(n-1):
-    z = int(random.random() * barrier)
-    tmp = L[z]
-    L[z]= L[barrier-1]
-    L[barrier-1] = tmp
-    barrier -= 1
-  return L
-
-def dinuclShuffle(s):
-  ok = 0
-  while not ok:
-    ok,edgeList,nuclList,lastCh = eulerian(s)
-  nuclCnt,dinuclCnt,List = computeCountAndLists(s)
-
-  #remove last edges from each vertex list, shuffle, then add back
-  #the removed edges at end of vertex lists.
-  for [x,y] in edgeList: List[x].remove(y)
-  for x in nuclList: shuffleEdgeList(List[x])
-  for [x,y] in edgeList: List[x].append(y)
-
-  #construct the eulerian path
-  L = [s[0]]; prevCh = s[0]
-  for i in range(len(s)-2):
-    ch = List[prevCh][0] 
-    L.append( ch )
-    del List[prevCh][0]
-    prevCh = ch
-  L.append(s[-1])
-  t = string.join(L,"")
-  return t
- 
-def main():
-
-	#
-	# defaults
-	#
-	file_name = None
-	seed = 1
-	copies = 1
-
-	#
-	# get command line arguments
-	#
-	usage = """USAGE: 
-	%s [options]
-
-        -f <filename>   file name (required)
-        -t <tag>        added to shuffled sequence names
-        -s <seed>	random seed; default: %d
-	-c <n>		make <n> shuffled copies of each sequence; default: %d
-        -h              print this usage message
-	""" % (sys.argv[0], seed, copies)
-
-        # no arguments: print usage
-	if len(sys.argv) == 1:
-		print >> sys.stderr, usage; sys.exit(1)
-
-        tag = "";
-
-        # parse command line
-        i = 1
-        while i < len(sys.argv):
-                arg = sys.argv[i]
-                if (arg == "-f"):
-                        i += 1
-                        try: file_name = sys.argv[i]
-                        except: print >> sys.stderr, usage; sys.exit(1)
-                elif (arg == "-t"):
-                        i += 1
-                        try: tag = sys.argv[i]
-                        except: print >> sys.stderr, usage; sys.exit(1)
-                elif (arg == "-s"):
-                        i += 1
-                        try: seed = string.atoi(sys.argv[i])
-                        except: print >> sys.stderr, usage; sys.exit(1)
-                elif (arg == "-c"):
-                        i += 1
-                        try: copies = string.atoi(sys.argv[i])
-                        except: print >> sys.stderr, usage; sys.exit(1)
-                elif (arg == "-h"):
-                        print >> sys.stderr, usage; sys.exit(1)
-                else:
-                        print >> sys.stderr, "Unknown command line argument: " + arg
-                        sys.exit(1)
-                i += 1
-
-        # check that required arguments given
-        if (file_name == None):
-        	print >> sys.stderr, usage; sys.exit(1)
-
-	random.seed(seed)
-
-	# read sequences
-	seqs = sequence.readFASTA(file_name,'Extended DNA')
-
-	for s in seqs:
-		str = s.getString()
-		#FIXME altschul can't handle ambigs
-		name = s.getName()
-
-		#print >> sys.stderr, ">%s" % name
-
-		for i in range(copies):
-
-			shuffledSeq = dinuclShuffle(str)
-
-			if (copies == 1):
-				print >> sys.stdout, ">%s\n%s" % (name+tag, shuffledSeq)
-			else:
-				print >> sys.stdout, ">%s_%d\n%s" % (name+tag, i, shuffledSeq)
-	
-if __name__ == '__main__': main()
--- a/tools/mytools/fastamarkov.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-<tool id="fastamarkov" name="background model">
-  <description>of DNA sequence</description>
-  <command>cat $input | fasta-get-markov -m $m $norc > $output 2> err.txt
-    
-    </command>
-  <inputs>
-      <param name="input" type="data" format="fasta" label="Sequence file (FASTA)"/>
-      <param name="m" size="10" type="integer" value="0" label="Order of Markov model to use"/>
-    <param name="norc" label="Combine forward and reverse complement frequencies" type="boolean" truevalue="" falsevalue="-norc" checked="True"/>
-  </inputs>
-  <outputs>
-    <data format="txt" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool generates a markov model from a fasta sequence file. 
-
-  </help>
-</tool>
--- a/tools/mytools/fastashuffle1.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<tool id="seqshuffle" name="shuffle sequences">
-  <description>preserving mono-nucleotide frequency</description>
-  <command>cat $input | fasta-shuffle-letters > $output  </command>
-  <inputs>
-     <param name="input" type="data" format="fasta" label="Original FASTA sequence file"/>
-  </inputs>
-  <outputs>
-    <data format="fasta" name="output" />
-  </outputs>
-  <help>
-
-**Description**
-
-shuffle the position of nucleotides in each sequence, preserving the frequency of nucleotides in that sequence, but do not preserve di-nucleotide frequency. 
-
-  </help>
-</tool>
--- a/tools/mytools/fastashuffle2.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-<tool id="seqshuffle2" name="shuffle sequence">
-  <description>preserving dinucleotide frequency</description>
-  <command interpreter="python">fasta-dinucleotide-shuffle.py -f $input -t $tag -c $n -s $seed > $output </command>
-  <inputs>
-    <param name="input" format="fasta" type="data" label="Original sequence file"/>
-    <param name="tag" type="text" size="40" value="-shuffled" label="tag added to shuffled sequence name"/>
-    <param name="n" type="integer" value="1" label="number of shuffled copies for each sequence"/>
-    <param name="seed" type="integer" value="1" label="random seed" help="the same seed gives the same random sequences"/>
-  </inputs>
-  <outputs>
-    <data format="fasta" name="output" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool shuffles the sequences in the input file but preserves the dinucleotide frequency of each sequence. 
-
-The code implements the Altschul-Erikson dinucleotide shuffle algorithm, described in "Significance of nucleotide sequence alignments: A method for random sequence permutation that preserves dinucleotide and codon usage", S.F. Altschul and B.W. Erikson, Mol. Biol. Evol., 2(6):526--538, 1985. 
-
-Code adapted from http://bioinformatics.bc.edu/clotelab/RNAdinucleotideShuffle/dinucleotideShuffle.html
-
-  </help>
-</tool>
--- a/tools/mytools/fastqdump.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<tool id="fastqdump" name="fastq-dump">
-  <description>convert SRA to FASTQ</description>
-  <command>/Users/xuebing/tools/sratoolkit.2.1.9-mac32/fastq-dump -A $input -M $minReadLen -Z > $out_file1 </command>
-  <inputs>
-    <param name="input" format="sra" type="data" label="Original file (SRA)"/>
-    <param name="minReadLen" size="10" type="integer" value="10" label="minimum read length to output"/>
-  </inputs>
-  <outputs>
-    <data format="fastq" name="out_file1" />
-  </outputs>
-  <help>
-
-**What it does**
-
-This is a wrapper of the fastq-dump tool from sra-toolkit. See http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software 
-
-  </help>
-</tool>
--- a/tools/mytools/fimo2-old.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-<tool id="fimo" name="motif search">
-  <description>using FIMO</description>
-  <command> fimo 
-    #if $background_select.bg_select == "fromfile":
-    -bgfile $bgfile
-    #end if
-    
-  $norc --output-pthresh $pth --verbosity 1 $motif $database 
-  &amp;&amp; mv fimo_out/fimo.html ${html_outfile}
-  
-  &amp;&amp; mv fimo_out/fimo.txt ${txt_outfile}
-  
-  &amp;&amp; rm -rf fimo_out
-  
-  </command>
-  <inputs>
-    <conditional name="motif_selection">   
-        <param name="motif_sel" type="select" label="Motif Source">
-            <option value="user" selected="true">Use motif file in Your History</option>
-            <option value="known" >Known motif</option>
-        </param>
-        ##<when value="known">
-        ##    <param name="motif" type="select" label="Select motif">
-        ##        <option value="/Users/xuebing/galaxy-dist/tool-data/motif-database/5primerSpliceSite" selected="true">mouse 5 primer splice site</option>
-        ##        <option value="/Users/xuebing/galaxy-dist/tool-data/motif-database/5primerSpliceSite">mouse 3 primer splice site</option>
-        ##        <option value="/Users/xuebing/galaxy-dist/tool-data/motif-database/TATA-Box.meme">TATA box</option>
-        ##    </param>
-        ##</when>
-        <when value="user">
-            <param name="motif" type="data" format="txt" label="Motif file" help="created using the tool create-motif-file, or import from Shared Data"/>
-        </when>
-    </conditional>     
-         
-    <param name="database" type="data" format="fasta" label="Sequence file (FASTA)"/>
-      
-    <conditional name="background_select">
-    	<param name="bg_select" type="select" label="Background model" >
-		  <option value="uniform" selected="true">uniform</option>
-		  <option value="fromfile">load from file</option>
-	    </param>
-	    <when value="fromfile">
-		    <param name="bgfile" type="data" format="txt" label="File for background model"/>
-	    </when>
-    </conditional>
-      
-      <param name="pth" size="10" type="float" value="0.01" label="p-value threshold"/>
-    <param name="norc" label="Do not score the reverse complement DNA strand. Both strands are scored by default" type="boolean" truevalue="-norc" falsevalue="" checked="False"/>
-  </inputs>
-  <outputs>
-    <data format="html" name="html_outfile" label="${tool.name} on ${on_string} (html)"/>
-    <data format="txt" name="txt_outfile" label="${tool.name} on ${on_string} (txt)"/>
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool uses FIMO to find matches of a motif in a fasta file. See more details:
-
-http://meme.sdsc.edu/meme/fimo-intro.html
- 
-
-  </help>
-</tool>
--- a/tools/mytools/fimo2.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-<tool id="fimo" name="motif search">
-  <description>using FIMO</description>
-  <command> fimo 
-    #if $background_select.bg_select == "fromfile":
-    -bgfile $bgfile
-    #end if
-    
-  $norc --max-stored-scores 5000000 --output-pthresh $pth --verbosity 1 $motif $database 
-  &amp;&amp; mv fimo_out/fimo.html ${html_outfile}
-  
-  &amp;&amp; mv fimo_out/fimo.txt ${txt_outfile}
-  
-  &amp;&amp; rm -rf fimo_out
-  
-  </command>
-  <inputs>
-    
-            <param name="motif" type="data" format="txt" label="Motif file" help="created using the tool create-motif-file, or import from Shared Data"/>         
-    <param name="database" type="data" format="fasta" label="Sequence file (FASTA)"/>
-      
-    <conditional name="background_select">
-    	<param name="bg_select" type="select" label="Background model" >
-		  <option value="uniform" selected="true">uniform</option>
-		  <option value="fromfile">load from file</option>
-	    </param>
-	    <when value="fromfile">
-		    <param name="bgfile" type="data" format="txt" label="File for background model"/>
-	    </when>
-    </conditional>
-      
-      <param name="pth" size="10" type="float" value="0.0001" label="p-value threshold"/>
-    <param name="norc" label="Do not score the reverse complement DNA strand. Both strands are scored by default" type="boolean" truevalue="-norc" falsevalue="" checked="False"/>
-  </inputs>
-  <outputs>
-    <data format="html" name="html_outfile" label="${tool.name} on ${on_string} (html)"/>
-    <data format="txt" name="txt_outfile" label="${tool.name} on ${on_string} (txt)"/>
-  </outputs>
-  <help>
-
-**What it does**
-
-This tool uses FIMO to find matches of a motif in a fasta file. See more details:
-
-http://meme.sdsc.edu/meme/fimo-intro.html
- 
-  </help>
-</tool>
--- a/tools/mytools/fimo2bed.py	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-'''
-#pattern name	sequence name	start	stop	score	p-value	q-value	matched sequence
-constitutive-donor	mm9_chr1_39533592_39535592_-	1815	1823	12.032	4.26e-06	0.397	CAGGTAAGT
-constitutive-donor	mm9_chr1_59313750_59315750_+	1889	1897	12.032	4.26e-06	0.397	CAGGTAAGT
-
-#pattern name	sequence name	start	stop	score	p-value	q-value	matched sequence
-constitutive-donor	mm9_chr1_172019075_172021075_-	1947	1955	12.032	4.26e-06	0.843	CAGGTAAGT
-constitutive-donor	mm9_chr1_15300532_15302532_+	156	164	12.032	4.26e-06	0.843	CAGGTAAGT
-'''
-
-import sys
-
-def fimo2bed(filename,rc):
-    '''
-    parse fimo output to make a bed file
-    rc: the sequence have been reverse complemented
-    '''
-    f = open(filename)
-    header = f.readline()
-    for line in f:
-        pattern,posi,begin,stop,score,pv,qv,seq = line.strip().split('\t')
-        flds = posi.split('_')
-        start = flds[-3]
-        end = flds[-2]
-        strand = flds[-1]
-        chrom = '_'.join(flds[1:-3]) #'chrX_random'
-        if not rc:
-            if strand == '+':
-                start1 = str(int(start) + int(begin)-1)
-                end1 = str(int(start) + int(stop))
-                print '\t'.join([chrom,start1,end1,seq,score,strand]) 
-            else:
-                start1 = str(int(end) - int(stop))
-                end1 = str(int(end) - int(begin)+1)
-                print '\t'.join([chrom,start1,end1,seq,score,strand])
-        else:
-            if strand == '-':
-                start1 = str(int(start) + int(begin)-1)
-                end1 = str(int(start) + int(stop))
-                print '\t'.join([chrom,start1,end1,seq,score,'+']) 
-            else:
-                start1 = str(int(end) - int(stop))
-                end1 = str(int(end) - int(begin)+1)
-                print '\t'.join([chrom,start1,end1,seq,score,'-'])      
-
-fimo2bed(sys.argv[1],sys.argv[2]=='rc')                                   
--- a/tools/mytools/fimo2bed.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-<tool id="fimo2bed" name="fimo-to-bed">
-  <description>convert FIMO output to BED</description>
-  <command interpreter="python">fimo2bed.py $input $rc > $output</command>
-  <inputs>
-    <param name="input" format="txt" type="data" label="FIMO output file"/>
-    <param name="rc" label="Check if the sequences are reverse complement" type="boolean" truevalue="rc" falsevalue="none" checked="False"/>
-  </inputs>
-  <outputs>
-    <data format="bed" name="output" />
-  </outputs>
-  <help>
-
-  Only works if your original FIMO input fasta sequences have ids like:: 
-  
-    mm9_chr15_99358448_99360448_-
-  
-  
-  </help>
-</tool>
--- a/tools/mytools/fimo_out/cisml.css	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-table {
-	text-align: center;
-	margin-left: auto;
-	margin-right: auto;
-	margin-top: 1%;
-	border: 2px solid;
-	border-collapse: collapse;
-}
-
-th {
-	background-color: wheat;
-}
-
-td,th {
-	border: 2px solid black;
-}
-
-h2 {
-	text-align: center;
-}
-
-h3 {
-	text-align: center;
-}
\ No newline at end of file
--- a/tools/mytools/fimo_out/cisml.xml	Fri Mar 09 19:47:53 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1683 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?xml-stylesheet type="text/xsl" href="fimo-to-html.xsl"?>
-<!-- Begin document body -->
-<cis-element-search
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://zlab.bu.edu/schema/cisml cisml.xsd"
-  xmlns="http://zlab.bu.edu/schema/cisml"
-  xmlns:mem="http://noble.gs.washington.edu/meme"
->
-<program-name>fimo</program-name>
-<parameters>
-<pattern-file>AATAAA.motif</pattern-file>
-<sequence-file>/Users/xuebing/Downloads/hotair-target.fa.fasta</sequence-file>
-<site-pvalue-cutoff>0.0001</site-pvalue-cutoff>
-<sequence-filtering on-off="off"/>
-</parameters>
-<pattern accession="AATAAA" name="AATAAA">
-<scanned-sequence accession="hg18_chr2_176729347_176730199_+" name="hg18_chr2_176729347_176730199_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_62574196_62575125_+" name="hg18_chr16_62574196_62575125_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_13935898_13936724_+" name="hg18_chr9_13935898_13936724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_33901946_33902751_+" name="hg18_chr1_33901946_33902751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_52645621_52646676_+" name="hg18_chr12_52645621_52646676_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_52642148_52644699_+" name="hg18_chr12_52642148_52644699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_89656947_89657801_+" name="hg18_chr13_89656947_89657801_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_39335199_39336003_+" name="hg18_chr11_39335199_39336003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_176860123_176860951_+" name="hg18_chr2_176860123_176860951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_34946897_34947750_+" name="hg18_chr14_34946897_34947750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_36709221_36710101_+" name="hg18_chr10_36709221_36710101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_85734197_85734926_+" name="hg18_chr6_85734197_85734926_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_122208322_122209078_+" name="hg18_chr6_122208322_122209078_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_7721675_7722551_+" name="hg18_chrX_7721675_7722551_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_83118096_83118950_+" name="hg18_chr4_83118096_83118950_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_246386296_246387002_+" name="hg18_chr1_246386296_246387002_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_138845947_138846576_+" name="hg18_chrX_138845947_138846576_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_116983372_116983999_+" name="hg18_chr9_116983372_116983999_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_238501322_238502028_+" name="hg18_chr2_238501322_238502028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_114316272_114316978_+" name="hg18_chr6_114316272_114316978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_158117474_158118353_+" name="hg18_chr7_158117474_158118353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_22844572_22845251_+" name="hg18_chr5_22844572_22845251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_91055674_91056478_+" name="hg18_chr4_91055674_91056478_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_125039472_125040524_+" name="hg18_chr7_125039472_125040524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_3131597_3132351_+" name="hg18_chr17_3131597_3132351_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_89426198_89426978_+" name="hg18_chr3_89426198_89426978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_129312671_129313449_+" name="hg18_chr6_129312671_129313449_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_164194596_164195251_+" name="hg18_chr6_164194596_164195251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_125414650_125415526_+" name="hg18_chr8_125414650_125415526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_14310772_14311624_+" name="hg18_chr4_14310772_14311624_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_139554248_139555028_+" name="hg18_chr2_139554248_139555028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_139033797_139034700_+" name="hg18_chr9_139033797_139034700_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_68633322_68634176_+" name="hg18_chr14_68633322_68634176_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_158385222_158385924_+" name="hg18_chr2_158385222_158385924_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_116426650_116427452_+" name="hg18_chr8_116426650_116427452_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_84196297_84196800_+" name="hg18_chr7_84196297_84196800_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_223306671_223307603_+" name="hg18_chr2_223306671_223307603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_88542021_88542726_+" name="hg18_chr6_88542021_88542726_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_41749647_41750527_+" name="hg18_chr7_41749647_41750527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_79587900_79588652_+" name="hg18_chr5_79587900_79588652_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_46247098_46247699_+" name="hg18_chr22_46247098_46247699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_138599099_138599700_+" name="hg18_chrX_138599099_138599700_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_122338997_122339850_+" name="hg18_chr9_122338997_122339850_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_100364172_100364899_+" name="hg18_chr10_100364172_100364899_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_56911397_56912178_+" name="hg18_chr16_56911397_56912178_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_106504072_106504949_+" name="hg18_chr12_106504072_106504949_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_29762497_29763075_+" name="hg18_chr22_29762497_29763075_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_53264971_53265701_+" name="hg18_chr16_53264971_53265701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_21070599_21071178_+" name="hg18_chr19_21070599_21071178_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_26956922_26957674_+" name="hg18_chr7_26956922_26957674_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_42115223_42116003_+" name="hg18_chr15_42115223_42116003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_107863647_107864502_+" name="hg18_chr10_107863647_107864502_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_22790100_22790752_+" name="hg18_chr14_22790100_22790752_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_127342875_127343401_+" name="hg18_chr2_127342875_127343401_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_85018174_85018902_+" name="hg18_chr15_85018174_85018902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_46079798_46080726_+" name="hg18_chr18_46079798_46080726_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_197829221_197830302_+" name="hg18_chr3_197829221_197830302_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_221803850_221804527_+" name="hg18_chr2_221803850_221804527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_154018946_154019702_+" name="hg18_chr6_154018946_154019702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_76969998_76970625_+" name="hg18_chr11_76969998_76970625_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_8433726_8434800_+" name="hg18_chr19_8433726_8434800_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_52646946_52647751_+" name="hg18_chr12_52646946_52647751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_143530221_143531078_+" name="hg18_chr5_143530221_143531078_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_93995296_93995852_+" name="hg18_chr13_93995296_93995852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_158199873_158200600_+" name="hg18_chr7_158199873_158200600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_73432646_73433228_+" name="hg18_chr18_73432646_73433228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_34446548_34447202_+" name="hg18_chr19_34446548_34447202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_57991274_57991902_+" name="hg18_chr8_57991274_57991902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_23778147_23778850_+" name="hg18_chr16_23778147_23778850_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_161888000_161888778_+" name="hg18_chr5_161888000_161888778_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_11857648_11858476_+" name="hg18_chr7_11857648_11858476_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_35883150_35883876_+" name="hg18_chr18_35883150_35883876_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_58518846_58519451_+" name="hg18_chr11_58518846_58519451_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_16972548_16973327_+" name="hg18_chr16_16972548_16973327_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_62102321_62102877_+" name="hg18_chr16_62102321_62102877_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_101090022_101090826_+" name="hg18_chr4_101090022_101090826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_130347674_130348476_+" name="hg18_chr9_130347674_130348476_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_96020446_96021200_+" name="hg18_chr14_96020446_96021200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_110274275_110274977_+" name="hg18_chr13_110274275_110274977_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_104165398_104166050_+" name="hg18_chr5_104165398_104166050_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_157256496_157257053_+" name="hg18_chr3_157256496_157257053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_80221173_80221925_+" name="hg18_chr12_80221173_80221925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_85000621_85001303_+" name="hg18_chr2_85000621_85001303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_45843322_45843975_+" name="hg18_chr19_45843322_45843975_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_104251696_104252551_+" name="hg18_chr2_104251696_104252551_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_74081047_74081600_+" name="hg18_chr15_74081047_74081600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_63655249_63656076_+" name="hg18_chr16_63655249_63656076_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_128386222_128386953_+" name="hg18_chr12_128386222_128386953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_24313946_24314653_+" name="hg18_chrX_24313946_24314653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_37847150_37847876_+" name="hg18_chr18_37847150_37847876_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_127550225_127550927_+" name="hg18_chr9_127550225_127550927_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_85460422_85461352_+" name="hg18_chr1_85460422_85461352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_119650596_119651278_+" name="hg18_chr8_119650596_119651278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_86079271_86079925_+" name="hg18_chr3_86079271_86079925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_88667199_88668001_+" name="hg18_chr5_88667199_88668001_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_168639099_168639900_+" name="hg18_chr2_168639099_168639900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_123573398_123574228_+" name="hg18_chr10_123573398_123574228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_118714499_118715301_+" name="hg18_chr6_118714499_118715301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_114760675_114761277_+" name="hg18_chr12_114760675_114761277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr21_21373575_21374352_+" name="hg18_chr21_21373575_21374352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_199112446_199113127_+" name="hg18_chr3_199112446_199113127_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_181588873_181589652_+" name="hg18_chr4_181588873_181589652_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_12429899_12430728_+" name="hg18_chr7_12429899_12430728_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_53695298_53696003_+" name="hg18_chr17_53695298_53696003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_156116075_156116750_+" name="hg18_chr2_156116075_156116750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_40058148_40058799_+" name="hg18_chrX_40058148_40058799_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_24473596_24474228_+" name="hg18_chr6_24473596_24474228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_47821721_47822328_+" name="hg18_chr17_47821721_47822328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_93607272_93608076_+" name="hg18_chr8_93607272_93608076_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_8955421_8956251_+" name="hg18_chr7_8955421_8956251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_92095821_92096603_+" name="hg18_chr10_92095821_92096603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_96928649_96929325_+" name="hg18_chr10_96928649_96929325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_47241997_47242750_+" name="hg18_chr11_47241997_47242750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_43414923_43415650_+" name="hg18_chr7_43414923_43415650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_64989271_64989878_+" name="hg18_chr12_64989271_64989878_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_20048197_20048851_+" name="hg18_chr10_20048197_20048851_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_73499847_73500625_+" name="hg18_chr14_73499847_73500625_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_68424996_68425753_+" name="hg18_chr18_68424996_68425753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_16728424_16729001_+" name="hg18_chr2_16728424_16729001_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_99498274_99498953_+" name="hg18_chr3_99498274_99498953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_59115048_59115728_+" name="hg18_chr13_59115048_59115728_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_166112999_166113724_+" name="hg18_chr6_166112999_166113724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_122804149_122804900_+" name="hg18_chr5_122804149_122804900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_106284121_106284850_+" name="hg18_chr4_106284121_106284850_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_78482623_78483326_+" name="hg18_chr3_78482623_78483326_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_123127825_123128602_+" name="hg18_chr11_123127825_123128602_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_88326948_88327675_+" name="hg18_chr13_88326948_88327675_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_95574973_95575653_+" name="hg18_chr5_95574973_95575653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_97620548_97621174_+" name="hg18_chr6_97620548_97621174_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_230097571_230098301_+" name="hg18_chr2_230097571_230098301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_170377373_170377999_+" name="hg18_chr2_170377373_170377999_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_4919599_4920328_+" name="hg18_chr1_4919599_4920328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_53027098_53027853_+" name="hg18_chr1_53027098_53027853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_95878872_95879602_+" name="hg18_chr1_95878872_95879602_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_1072724_1073477_+" name="hg18_chr5_1072724_1073477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_95091471_95092303_+" name="hg18_chr1_95091471_95092303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_79165624_79166476_+" name="hg18_chr15_79165624_79166476_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_8975271_8976024_+" name="hg18_chr8_8975271_8976024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_127520146_127520853_+" name="hg18_chr10_127520146_127520853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_88214697_88215452_+" name="hg18_chr14_88214697_88215452_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_126115750_126116428_+" name="hg18_chr8_126115750_126116428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_114795896_114796653_+" name="hg18_chr11_114795896_114796653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_95400771_95401502_+" name="hg18_chr4_95400771_95401502_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_181021846_181022525_+" name="hg18_chr2_181021846_181022525_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_64531746_64532353_+" name="hg18_chr7_64531746_64532353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_85038771_85039427_+" name="hg18_chr8_85038771_85039427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_167644574_167645303_+" name="hg18_chr2_167644574_167645303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_212736625_212737249_+" name="hg18_chr1_212736625_212737249_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_66764673_66765727_+" name="hg18_chr17_66764673_66765727_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_183241473_183242026_+" name="hg18_chr3_183241473_183242026_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_185904896_185905477_+" name="hg18_chr2_185904896_185905477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_47735950_47736527_+" name="hg18_chr19_47735950_47736527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_113308649_113309226_+" name="hg18_chr6_113308649_113309226_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_36668722_36669500_+" name="hg18_chr18_36668722_36669500_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_78237775_78238477_+" name="hg18_chr14_78237775_78238477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_69673675_69674350_+" name="hg18_chr15_69673675_69674350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_97535047_97535501_+" name="hg18_chr7_97535047_97535501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_106279822_106280578_+" name="hg18_chr7_106279822_106280578_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_76364125_76364675_+" name="hg18_chr14_76364125_76364675_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_30945522_30946303_+" name="hg18_chr17_30945522_30946303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_72790846_72791902_+" name="hg18_chr11_72790846_72791902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_55841997_55842728_+" name="hg18_chr17_55841997_55842728_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr21_26431324_26432077_+" name="hg18_chr21_26431324_26432077_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_126338850_126339600_+" name="hg18_chr3_126338850_126339600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_213856896_213857574_+" name="hg18_chr2_213856896_213857574_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_72250046_72250700_+" name="hg18_chr8_72250046_72250700_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_113079049_113079902_+" name="hg18_chr12_113079049_113079902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_148994671_148995328_+" name="hg18_chr3_148994671_148995328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_177646571_177647352_+" name="hg18_chr4_177646571_177647352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_47103225_47104100_+" name="hg18_chr4_47103225_47104100_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_4202696_4203450_+" name="hg18_chr7_4202696_4203450_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_7427897_7428601_+" name="hg18_chr2_7427897_7428601_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_77706625_77707427_+" name="hg18_chr17_77706625_77707427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_141155472_141156149_+" name="hg18_chr7_141155472_141156149_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_62360247_62360950_+" name="hg18_chr11_62360247_62360950_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_92728771_92729276_+" name="hg18_chr7_92728771_92729276_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_75268300_75268828_+" name="hg18_chr7_75268300_75268828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_153433125_153433751_+" name="hg18_chr2_153433125_153433751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_121597674_121598278_+" name="hg18_chr12_121597674_121598278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_23126771_23127328_+" name="hg18_chr17_23126771_23127328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_140753872_140754627_+" name="hg18_chr7_140753872_140754627_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_52679249_52679878_+" name="hg18_chr18_52679249_52679878_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_217311946_217312651_+" name="hg18_chr2_217311946_217312651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_58812847_58813527_+" name="hg18_chr10_58812847_58813527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_179551273_179551976_+" name="hg18_chr5_179551273_179551976_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_77658922_77659628_+" name="hg18_chr7_77658922_77659628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_105563796_105564401_+" name="hg18_chr3_105563796_105564401_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_1714279_1715252_+" name="hg18_chr10_1714279_1715252_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_63069122_63069677_+" name="hg18_chr12_63069122_63069677_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_111077873_111078652_+" name="hg18_chr7_111077873_111078652_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_167245697_167246328_+" name="hg18_chr6_167245697_167246328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_138438023_138438778_+" name="hg18_chr2_138438023_138438778_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_59682596_59683228_+" name="hg18_chr2_59682596_59683228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_68924146_68924925_+" name="hg18_chr11_68924146_68924925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_48077303_48078277_+" name="hg18_chr11_48077303_48078277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_83124847_83125478_+" name="hg18_chr9_83124847_83125478_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_72274925_72275774_+" name="hg18_chr18_72274925_72275774_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_133527097_133527650_+" name="hg18_chr2_133527097_133527650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_64205723_64206378_+" name="hg18_chr10_64205723_64206378_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_107489274_107490027_+" name="hg18_chr11_107489274_107490027_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_23637296_23637803_+" name="hg18_chr4_23637296_23637803_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_21497277_21497703_+" name="hg18_chr17_21497277_21497703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_90332197_90332951_+" name="hg18_chr12_90332197_90332951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_25423573_25424301_+" name="hg18_chrX_25423573_25424301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_8802225_8802928_+" name="hg18_chr1_8802225_8802928_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_86793621_86794350_+" name="hg18_chr11_86793621_86794350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_67208946_67209701_+" name="hg18_chr8_67208946_67209701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_27205021_27205724_+" name="hg18_chr10_27205021_27205724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_31066697_31067477_+" name="hg18_chr20_31066697_31067477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_74624498_74625301_+" name="hg18_chr9_74624498_74625301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_136510298_136510926_+" name="hg18_chr7_136510298_136510926_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_141836900_141837528_+" name="hg18_chr7_141836900_141837528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_154047873_154048699_+" name="hg18_chr4_154047873_154048699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_16001775_16002501_+" name="hg18_chr4_16001775_16002501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_146304148_146304701_+" name="hg18_chr2_146304148_146304701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_28440446_28441050_+" name="hg18_chr17_28440446_28441050_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_28478849_28479451_+" name="hg18_chr22_28478849_28479451_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_129176448_129177126_+" name="hg18_chr6_129176448_129177126_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_25473074_25473702_+" name="hg18_chr8_25473074_25473702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_50908899_50909528_+" name="hg18_chr19_50908899_50909528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_29306396_29307103_+" name="hg18_chr6_29306396_29307103_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_24209749_24210527_+" name="hg18_chr7_24209749_24210527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_6997499_6998277_+" name="hg18_chr1_6997499_6998277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_122559150_122559852_+" name="hg18_chr4_122559150_122559852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_67734300_67734978_+" name="hg18_chr14_67734300_67734978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_15432924_15433526_+" name="hg18_chr5_15432924_15433526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_68172446_68173102_+" name="hg18_chr12_68172446_68173102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_52938746_52939577_+" name="hg18_chr2_52938746_52939577_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_144911275_144912024_+" name="hg18_chr3_144911275_144912024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_114627122_114627876_+" name="hg18_chr1_114627122_114627876_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_68412647_68413724_+" name="hg18_chr1_68412647_68413724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_66837571_66838278_+" name="hg18_chr14_66837571_66838278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_71540421_71541125_+" name="hg18_chr3_71540421_71541125_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_120714422_120714951_+" name="hg18_chr4_120714422_120714951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_188058297_188059001_+" name="hg18_chr2_188058297_188059001_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_109898172_109898751_+" name="hg18_chr10_109898172_109898751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_75678299_75679000_+" name="hg18_chr10_75678299_75679000_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_133094396_133094950_+" name="hg18_chr2_133094396_133094950_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_48020650_48021375_+" name="hg18_chr11_48020650_48021375_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_231570775_231571352_+" name="hg18_chr1_231570775_231571352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_126729572_126730099_+" name="hg18_chr2_126729572_126730099_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_37543122_37543778_+" name="hg18_chr8_37543122_37543778_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_86147622_86148200_+" name="hg18_chr12_86147622_86148200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_54965822_54966650_+" name="hg18_chr20_54965822_54966650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_102675374_102676202_+" name="hg18_chr5_102675374_102676202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_116722722_116723452_+" name="hg18_chr5_116722722_116723452_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_228818972_228819575_+" name="hg18_chr2_228818972_228819575_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_35915197_35915928_+" name="hg18_chr11_35915197_35915928_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_157367599_157368274_+" name="hg18_chr7_157367599_157368274_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_41364725_41365328_+" name="hg18_chr3_41364725_41365328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_54157900_54158703_+" name="hg18_chr20_54157900_54158703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_79881423_79881976_+" name="hg18_chr8_79881423_79881976_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_2449222_2449851_+" name="hg18_chr19_2449222_2449851_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_220637074_220637751_+" name="hg18_chr2_220637074_220637751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_76868448_76869150_+" name="hg18_chr9_76868448_76869150_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_119232425_119233102_+" name="hg18_chr8_119232425_119233102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_147087372_147088128_+" name="hg18_chr7_147087372_147088128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_11587097_11587727_+" name="hg18_chr5_11587097_11587727_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_19584896_19585626_+" name="hg18_chr8_19584896_19585626_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_1683225_1683826_+" name="hg18_chr16_1683225_1683826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_70987996_70988778_+" name="hg18_chr17_70987996_70988778_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_240155425_240156003_+" name="hg18_chr1_240155425_240156003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_227557725_227558603_+" name="hg18_chr2_227557725_227558603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_5949597_5950527_+" name="hg18_chr6_5949597_5950527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_36953046_36953800_+" name="hg18_chr17_36953046_36953800_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_139559473_139560153_+" name="hg18_chr4_139559473_139560153_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_160931122_160931803_+" name="hg18_chr3_160931122_160931803_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_61090998_61091776_+" name="hg18_chr14_61090998_61091776_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_46674623_46675349_+" name="hg18_chr2_46674623_46675349_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_93094097_93094725_+" name="hg18_chr9_93094097_93094725_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_71356172_71356951_+" name="hg18_chr17_71356172_71356951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_40766373_40766903_+" name="hg18_chr3_40766373_40766903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_148161346_148161951_+" name="hg18_chr4_148161346_148161951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_8596425_8597227_+" name="hg18_chr6_8596425_8597227_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_52708672_52709350_+" name="hg18_chr17_52708672_52709350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_101454222_101454875_+" name="hg18_chr8_101454222_101454875_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_13360147_13360978_+" name="hg18_chr3_13360147_13360978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_119284171_119284828_+" name="hg18_chr11_119284171_119284828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_104042450_104043301_+" name="hg18_chr11_104042450_104043301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_26521222_26521949_+" name="hg18_chr6_26521222_26521949_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_52866696_52867400_+" name="hg18_chr14_52866696_52867400_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_93447772_93448475_+" name="hg18_chr14_93447772_93448475_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_227477422_227477953_+" name="hg18_chr1_227477422_227477953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_53138772_53139377_+" name="hg18_chr6_53138772_53139377_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_77980247_77980777_+" name="hg18_chr6_77980247_77980777_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_63745446_63746128_+" name="hg18_chr16_63745446_63746128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_118561072_118561601_+" name="hg18_chr4_118561072_118561601_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_133471598_133472252_+" name="hg18_chr10_133471598_133472252_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_12363500_12364250_+" name="hg18_chr1_12363500_12364250_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_191374575_191375253_+" name="hg18_chr2_191374575_191375253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_74604400_74605126_+" name="hg18_chr1_74604400_74605126_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_173722496_173723149_+" name="hg18_chr3_173722496_173723149_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_31191698_31192276_+" name="hg18_chr13_31191698_31192276_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_28668572_28669152_+" name="hg18_chr7_28668572_28669152_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_84542322_84543024_+" name="hg18_chr9_84542322_84543024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_109254421_109255178_+" name="hg18_chr3_109254421_109255178_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_52551797_52552503_+" name="hg18_chr1_52551797_52552503_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_2103449_2104226_+" name="hg18_chr1_2103449_2104226_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_95434225_95435027_+" name="hg18_chr8_95434225_95435027_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_117786022_117786850_+" name="hg18_chr11_117786022_117786850_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_143226673_143227376_+" name="hg18_chr7_143226673_143227376_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_16880671_16881201_+" name="hg18_chr4_16880671_16881201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_136094123_136094753_+" name="hg18_chr5_136094123_136094753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_36402148_36402775_+" name="hg18_chr3_36402148_36402775_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_166434973_166435703_+" name="hg18_chr5_166434973_166435703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_35623246_35623902_+" name="hg18_chr10_35623246_35623902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_30596299_30597150_+" name="hg18_chr6_30596299_30597150_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_114492996_114493578_+" name="hg18_chr7_114492996_114493578_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_87108397_87108978_+" name="hg18_chr1_87108397_87108978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_88953871_88954552_+" name="hg18_chr13_88953871_88954552_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_18740997_18741602_+" name="hg18_chr11_18740997_18741602_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_68135647_68136351_+" name="hg18_chr1_68135647_68136351_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_223091975_223092576_+" name="hg18_chr1_223091975_223092576_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_28721171_28722024_+" name="hg18_chr6_28721171_28722024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_87991625_87992427_+" name="hg18_chr12_87991625_87992427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_34017696_34018276_+" name="hg18_chr9_34017696_34018276_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_5313646_5314225_+" name="hg18_chr3_5313646_5314225_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_134028699_134029402_+" name="hg18_chr9_134028699_134029402_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_2026271_2027025_+" name="hg18_chr10_2026271_2027025_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_9863121_9863724_+" name="hg18_chr19_9863121_9863724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_138671523_138672052_+" name="hg18_chr6_138671523_138672052_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_167662398_167663051_+" name="hg18_chr5_167662398_167663051_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_48636496_48636926_+" name="hg18_chr19_48636496_48636926_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_107969423_107970028_+" name="hg18_chr5_107969423_107970028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_45788923_45789427_+" name="hg18_chr18_45788923_45789427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_103507297_103508000_+" name="hg18_chr11_103507297_103508000_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_108876823_108877474_+" name="hg18_chr10_108876823_108877474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_86728122_86728850_+" name="hg18_chr5_86728122_86728850_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_52764847_52765428_+" name="hg18_chr5_52764847_52765428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_102981123_102982046_+" name="hg18_chr10_102981123_102982046_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_2216950_2217922_+" name="hg18_chr1_2216950_2217922_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_141429146_141429976_+" name="hg18_chr5_141429146_141429976_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_50352598_50353399_+" name="hg18_chr20_50352598_50353399_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_98286146_98286899_+" name="hg18_chr1_98286146_98286899_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_116969496_116970151_+" name="hg18_chr12_116969496_116970151_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_12908296_12909026_+" name="hg18_chr12_12908296_12909026_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_122063427_122064628_+" name="hg18_chr12_122063427_122064628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_40351047_40351677_+" name="hg18_chr19_40351047_40351677_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_139643272_139643952_+" name="hg18_chr7_139643272_139643952_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_147738371_147738803_+" name="hg18_chrX_147738371_147738803_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_102981471_102982053_+" name="hg18_chr11_102981471_102982053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_79801172_79801952_+" name="hg18_chr7_79801172_79801952_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_54536174_54537052_+" name="hg18_chr1_54536174_54537052_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_142162197_142162903_+" name="hg18_chr5_142162197_142162903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_81934222_81934851_+" name="hg18_chr11_81934222_81934851_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_101233675_101234247_+" name="hg18_chr9_101233675_101234247_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_112626425_112627025_+" name="hg18_chr5_112626425_112627025_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_142590147_142590901_+" name="hg18_chr5_142590147_142590901_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_63786697_63787528_+" name="hg18_chr17_63786697_63787528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_60742346_60743100_+" name="hg18_chr14_60742346_60743100_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_167341398_167341950_+" name="hg18_chr5_167341398_167341950_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_65986775_65987452_+" name="hg18_chr5_65986775_65987452_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_50837846_50838524_+" name="hg18_chr7_50837846_50838524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_68187222_68187924_+" name="hg18_chrX_68187222_68187924_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_59054196_59054828_+" name="hg18_chr17_59054196_59054828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_95279299_95279977_+" name="hg18_chr10_95279299_95279977_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_157057071_157057702_+" name="hg18_chr2_157057071_157057702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_14306374_14307176_+" name="hg18_chr3_14306374_14307176_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_65944697_65945253_+" name="hg18_chr1_65944697_65945253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_92482922_92483553_+" name="hg18_chr1_92482922_92483553_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_404498_405101_+" name="hg18_chr17_404498_405101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_238798750_238799299_+" name="hg18_chr2_238798750_238799299_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_173603324_173604001_+" name="hg18_chr2_173603324_173604001_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_23363698_23364428_+" name="hg18_chr10_23363698_23364428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_52648476_52649051_+" name="hg18_chr12_52648476_52649051_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_123383446_123384128_+" name="hg18_chr4_123383446_123384128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_35920996_35921700_+" name="hg18_chr20_35920996_35921700_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_63220098_63220749_+" name="hg18_chr19_63220098_63220749_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_132001772_132002650_+" name="hg18_chr7_132001772_132002650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_61234674_61235378_+" name="hg18_chr14_61234674_61235378_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_88721171_88721927_+" name="hg18_chr14_88721171_88721927_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_11367924_11368753_+" name="hg18_chr8_11367924_11368753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_158146647_158147402_+" name="hg18_chr5_158146647_158147402_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_227447724_227448374_+" name="hg18_chr1_227447724_227448374_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_175920400_175920901_+" name="hg18_chr2_175920400_175920901_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_23537175_23537802_+" name="hg18_chr7_23537175_23537802_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_57736873_57737549_+" name="hg18_chr15_57736873_57737549_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_142237497_142238252_+" name="hg18_chr4_142237497_142238252_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_40882199_40882776_+" name="hg18_chr5_40882199_40882776_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_104046372_104047099_+" name="hg18_chr14_104046372_104047099_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_114038600_114039228_+" name="hg18_chr11_114038600_114039228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_103014650_103015426_+" name="hg18_chr1_103014650_103015426_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_63022724_63023202_+" name="hg18_chr19_63022724_63023202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_99253974_99254748_+" name="hg18_chr8_99253974_99254748_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_40055848_40056502_+" name="hg18_chr19_40055848_40056502_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_100061771_100062475_+" name="hg18_chr4_100061771_100062475_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_116054497_116055003_+" name="hg18_chr6_116054497_116055003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_85233448_85234053_+" name="hg18_chr5_85233448_85234053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_165130948_165131526_+" name="hg18_chr4_165130948_165131526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_126034671_126035476_+" name="hg18_chr11_126034671_126035476_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_62010947_62011453_+" name="hg18_chr17_62010947_62011453_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_49205200_49205801_+" name="hg18_chr16_49205200_49205801_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_158640321_158640977_+" name="hg18_chr4_158640321_158640977_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_77477424_77478174_+" name="hg18_chr8_77477424_77478174_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_103491424_103491974_+" name="hg18_chr1_103491424_103491974_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_75684773_75685550_+" name="hg18_chr17_75684773_75685550_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_57817322_57818003_+" name="hg18_chr3_57817322_57818003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_3164749_3165376_+" name="hg18_chr5_3164749_3165376_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_11906522_11907202_+" name="hg18_chr5_11906522_11907202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_93514921_93515652_+" name="hg18_chr14_93514921_93515652_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_112346575_112347325_+" name="hg18_chr11_112346575_112347325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_13697598_13698200_+" name="hg18_chr3_13697598_13698200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_96190273_96191027_+" name="hg18_chr12_96190273_96191027_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_49478397_49479201_+" name="hg18_chr20_49478397_49479201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_47927047_47927577_+" name="hg18_chr2_47927047_47927577_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_85407098_85407878_+" name="hg18_chr2_85407098_85407878_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_42520800_42521524_+" name="hg18_chr7_42520800_42521524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_138535998_138536650_+" name="hg18_chr4_138535998_138536650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_41700671_41701353_+" name="hg18_chr22_41700671_41701353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_135028796_135029428_+" name="hg18_chr10_135028796_135029428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_75804921_75805701_+" name="hg18_chr11_75804921_75805701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_38488173_38488826_+" name="hg18_chr2_38488173_38488826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_18788175_18788777_+" name="hg18_chr10_18788175_18788777_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_68368921_68369651_+" name="hg18_chr12_68368921_68369651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_33837673_33838326_+" name="hg18_chr15_33837673_33838326_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_41164749_41165526_+" name="hg18_chr19_41164749_41165526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_55571350_55571975_+" name="hg18_chr19_55571350_55571975_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_127128446_127129127_+" name="hg18_chr9_127128446_127129127_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_86292571_86293277_+" name="hg18_chr11_86292571_86293277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_45678200_45678901_+" name="hg18_chr2_45678200_45678901_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_100698800_100699325_+" name="hg18_chr8_100698800_100699325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_139123171_139123753_+" name="hg18_chr4_139123171_139123753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_102894722_102895553_+" name="hg18_chr11_102894722_102895553_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_53383997_53384600_+" name="hg18_chr3_53383997_53384600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_71004998_71005602_+" name="hg18_chr10_71004998_71005602_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_104852671_104853427_+" name="hg18_chr14_104852671_104853427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_107833923_107834501_+" name="hg18_chr11_107833923_107834501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_133773946_133774575_+" name="hg18_chr5_133773946_133774575_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_61976074_61976828_+" name="hg18_chr20_61976074_61976828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_48908471_48909028_+" name="hg18_chr16_48908471_48909028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_130818347_130818951_+" name="hg18_chr3_130818347_130818951_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_118638923_118639603_+" name="hg18_chr5_118638923_118639603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_61065450_61066101_+" name="hg18_chr14_61065450_61066101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_14027100_14027574_+" name="hg18_chr4_14027100_14027574_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_100615047_100615628_+" name="hg18_chr10_100615047_100615628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_48698646_48699646_+" name="hg18_chr20_48698646_48699646_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_187498996_187499676_+" name="hg18_chr3_187498996_187499676_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_51327174_51327724_+" name="hg18_chr6_51327174_51327724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_118701346_118702102_+" name="hg18_chr12_118701346_118702102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_142986748_142987528_+" name="hg18_chr4_142986748_142987528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_95316596_95317424_+" name="hg18_chr12_95316596_95317424_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_17759021_17759874_+" name="hg18_chr11_17759021_17759874_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_40409771_40410550_+" name="hg18_chr18_40409771_40410550_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_32040372_32041203_+" name="hg18_chr20_32040372_32041203_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_34628397_34629201_+" name="hg18_chr6_34628397_34629201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_27527921_27528425_+" name="hg18_chr8_27527921_27528425_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_37958673_37959278_+" name="hg18_chr22_37958673_37959278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_28071097_28071703_+" name="hg18_chr1_28071097_28071703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_213985597_213986176_+" name="hg18_chr1_213985597_213986176_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_66034371_66035102_+" name="hg18_chr3_66034371_66035102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_66787222_66788002_+" name="hg18_chr2_66787222_66788002_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_29146498_29147101_+" name="hg18_chr22_29146498_29147101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_75285971_75286678_+" name="hg18_chr10_75285971_75286678_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_223184399_223185024_+" name="hg18_chr1_223184399_223185024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_179533672_179534277_+" name="hg18_chr5_179533672_179534277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_52984649_52985427_+" name="hg18_chr6_52984649_52985427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_70402071_70402849_+" name="hg18_chr11_70402071_70402849_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_93134296_93135053_+" name="hg18_chr10_93134296_93135053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_49412697_49413353_+" name="hg18_chr20_49412697_49413353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_72661675_72662551_+" name="hg18_chr9_72661675_72662551_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_79628721_79629128_+" name="hg18_chr1_79628721_79629128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_120994847_120995600_+" name="hg18_chr8_120994847_120995600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_58772648_58773503_+" name="hg18_chr17_58772648_58773503_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_14984696_14985277_+" name="hg18_chr7_14984696_14985277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_170198397_170199128_+" name="hg18_chr4_170198397_170199128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_91520347_91520952_+" name="hg18_chr5_91520347_91520952_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_133514273_133515003_+" name="hg18_chr8_133514273_133515003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_27986696_27987449_+" name="hg18_chr1_27986696_27987449_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_22255546_22256352_+" name="hg18_chr18_22255546_22256352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_40340397_40340928_+" name="hg18_chr18_40340397_40340928_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_2502125_2502651_+" name="hg18_chr19_2502125_2502651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_39279648_39280325_+" name="hg18_chr17_39279648_39280325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_120017496_120018350_+" name="hg18_chr12_120017496_120018350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_45017822_45018553_+" name="hg18_chr11_45017822_45018553_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_67159949_67160474_+" name="hg18_chr17_67159949_67160474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_157047650_157048228_+" name="hg18_chr7_157047650_157048228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_35939600_35940249_+" name="hg18_chr2_35939600_35940249_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_69637947_69638699_+" name="hg18_chr14_69637947_69638699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_55499573_55500303_+" name="hg18_chr2_55499573_55500303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_53120746_53121353_+" name="hg18_chrX_53120746_53121353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_28668549_28669253_+" name="hg18_chr18_28668549_28669253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_27091023_27091703_+" name="hg18_chr7_27091023_27091703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_39419421_39419922_+" name="hg18_chr8_39419421_39419922_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_18221871_18222377_+" name="hg18_chr9_18221871_18222377_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_57528097_57528926_+" name="hg18_chr1_57528097_57528926_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_46294522_46295202_+" name="hg18_chr11_46294522_46295202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_91692346_91693101_+" name="hg18_chr12_91692346_91693101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_54213123_54213653_+" name="hg18_chr4_54213123_54213653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_78623723_78624475_+" name="hg18_chr10_78623723_78624475_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_3021575_3022224_+" name="hg18_chr1_3021575_3022224_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_6144000_6144702_+" name="hg18_chr17_6144000_6144702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_36616147_36617278_+" name="hg18_chr2_36616147_36617278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_96300546_96301202_+" name="hg18_chr8_96300546_96301202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_47132271_47133052_+" name="hg18_chr6_47132271_47133052_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_76978575_76979253_+" name="hg18_chr17_76978575_76979253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_119767249_119768101_+" name="hg18_chr11_119767249_119768101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_65152100_65152753_+" name="hg18_chr10_65152100_65152753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_41230424_41231127_+" name="hg18_chr4_41230424_41231127_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_51938124_51938801_+" name="hg18_chr19_51938124_51938801_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_60089021_60089549_+" name="hg18_chr4_60089021_60089549_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_134352871_134353602_+" name="hg18_chr10_134352871_134353602_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_40965873_40966427_+" name="hg18_chr20_40965873_40966427_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_99173648_99174253_+" name="hg18_chr10_99173648_99174253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_22614772_22615325_+" name="hg18_chr8_22614772_22615325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr21_42612571_42613202_+" name="hg18_chr21_42612571_42613202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_145715721_145716328_+" name="hg18_chr4_145715721_145716328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_95838397_95839050_+" name="hg18_chr5_95838397_95839050_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_1676750_1677328_+" name="hg18_chr20_1676750_1677328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_43799525_43800200_+" name="hg18_chr11_43799525_43800200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_137979198_137979852_+" name="hg18_chr9_137979198_137979852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_66567573_66568124_+" name="hg18_chr5_66567573_66568124_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_134347024_134347777_+" name="hg18_chr6_134347024_134347777_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_94377950_94378577_+" name="hg18_chr7_94377950_94378577_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_87841673_87842326_+" name="hg18_chr8_87841673_87842326_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_34500250_34500876_+" name="hg18_chr1_34500250_34500876_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_113120748_113121524_+" name="hg18_chr4_113120748_113121524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_158347496_158348099_+" name="hg18_chr7_158347496_158348099_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_67951300_67951953_+" name="hg18_chr2_67951300_67951953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_153614098_153614727_+" name="hg18_chr2_153614098_153614727_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_232171474_232172278_+" name="hg18_chr1_232171474_232172278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_108826297_108826900_+" name="hg18_chr9_108826297_108826900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_56526072_56526601_+" name="hg18_chr3_56526072_56526601_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_25942221_25942628_+" name="hg18_chr7_25942221_25942628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_94609347_94610001_+" name="hg18_chr11_94609347_94610001_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_15339498_15340152_+" name="hg18_chr5_15339498_15340152_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_97981647_97982303_+" name="hg18_chr12_97981647_97982303_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_21734300_21734853_+" name="hg18_chr10_21734300_21734853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_6449450_6450251_+" name="hg18_chr7_6449450_6450251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_25231697_25232325_+" name="hg18_chr3_25231697_25232325_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_141993097_141993777_+" name="hg18_chr5_141993097_141993777_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_14395500_14396176_+" name="hg18_chr7_14395500_14396176_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_17404072_17404724_+" name="hg18_chr1_17404072_17404724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_49191471_49192077_+" name="hg18_chr8_49191471_49192077_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_199580899_199581578_+" name="hg18_chr1_199580899_199581578_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_31145523_31146252_+" name="hg18_chr18_31145523_31146252_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_181175896_181176625_+" name="hg18_chr3_181175896_181176625_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_187384322_187385053_+" name="hg18_chr4_187384322_187385053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_73031899_73032624_+" name="hg18_chr2_73031899_73032624_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_99598346_99598925_+" name="hg18_chr2_99598346_99598925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_223546221_223547024_+" name="hg18_chr2_223546221_223547024_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_178918874_178919501_+" name="hg18_chr5_178918874_178919501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_116487897_116488628_+" name="hg18_chr6_116487897_116488628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_123616600_123617276_+" name="hg18_chr11_123616600_123617276_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_2512296_2512928_+" name="hg18_chr18_2512296_2512928_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_158105624_158106350_+" name="hg18_chr3_158105624_158106350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_6863625_6864201_+" name="hg18_chr12_6863625_6864201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_19194923_19195576_+" name="hg18_chr12_19194923_19195576_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_25715848_25716376_+" name="hg18_chr4_25715848_25716376_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_60548097_60548650_+" name="hg18_chr4_60548097_60548650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_120079197_120079653_+" name="hg18_chr4_120079197_120079653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_161947297_161947826_+" name="hg18_chr4_161947297_161947826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_183585272_183585903_+" name="hg18_chr4_183585272_183585903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_34836171_34836702_+" name="hg18_chr13_34836171_34836702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_14699971_14700428_+" name="hg18_chr10_14699971_14700428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_96951271_96951800_+" name="hg18_chr10_96951271_96951800_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_118939122_118939653_+" name="hg18_chr5_118939122_118939653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_53520246_53520799_+" name="hg18_chr19_53520246_53520799_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_86657724_86658426_+" name="hg18_chr5_86657724_86658426_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_32450225_32450925_+" name="hg18_chr11_32450225_32450925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_120853021_120853653_+" name="hg18_chr11_120853021_120853653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_130762375_130763026_+" name="hg18_chr12_130762375_130763026_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_112392073_112392703_+" name="hg18_chr5_112392073_112392703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_103379571_103380151_+" name="hg18_chr3_103379571_103380151_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_166873624_166874178_+" name="hg18_chr4_166873624_166874178_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_20181896_20182701_+" name="hg18_chr6_20181896_20182701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_120664948_120665526_+" name="hg18_chr10_120664948_120665526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_46940047_46940899_+" name="hg18_chr3_46940047_46940899_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_122731396_122731926_+" name="hg18_chr11_122731396_122731926_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_47189448_47190200_+" name="hg18_chr6_47189448_47190200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_62257825_62258502_+" name="hg18_chr17_62257825_62258502_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_145800648_145801250_+" name="hg18_chr8_145800648_145801250_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_81522246_81522852_+" name="hg18_chr8_81522246_81522852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_23224598_23225200_+" name="hg18_chr3_23224598_23225200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_148753248_148753975_+" name="hg18_chr1_148753248_148753975_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_1071297_1072053_+" name="hg18_chr10_1071297_1072053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_220871723_220872550_+" name="hg18_chr2_220871723_220872550_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_57024099_57024826_+" name="hg18_chr20_57024099_57024826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_95463773_95464599_+" name="hg18_chr11_95463773_95464599_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_49936524_49937721_+" name="hg18_chr19_49936524_49937721_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_51023624_51024200_+" name="hg18_chr19_51023624_51024200_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_116935172_116935900_+" name="hg18_chr8_116935172_116935900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_38708348_38709078_+" name="hg18_chr19_38708348_38709078_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_19150299_19150851_+" name="hg18_chr1_19150299_19150851_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_119891797_119892403_+" name="hg18_chr1_119891797_119892403_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_48905948_48906853_+" name="hg18_chr1_48905948_48906853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_95158900_95159577_+" name="hg18_chr2_95158900_95159577_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_90033496_90034201_+" name="hg18_chr9_90033496_90034201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_6344596_6345228_+" name="hg18_chr3_6344596_6345228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_10341875_10342651_+" name="hg18_chr2_10341875_10342651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_148202521_148203302_+" name="hg18_chr5_148202521_148203302_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_33131771_33132428_+" name="hg18_chr1_33131771_33132428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_99168873_99169524_+" name="hg18_chr10_99168873_99169524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_175470996_175471600_+" name="hg18_chr1_175470996_175471600_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_231127446_231128125_+" name="hg18_chr1_231127446_231128125_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_21728147_21728975_+" name="hg18_chr7_21728147_21728975_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_17411849_17412474_+" name="hg18_chr12_17411849_17412474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_3616299_3616903_+" name="hg18_chr10_3616299_3616903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_160361148_160361699_+" name="hg18_chr2_160361148_160361699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_57105800_57106526_+" name="hg18_chr5_57105800_57106526_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_40653650_40654302_+" name="hg18_chr22_40653650_40654302_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_129656373_129656828_+" name="hg18_chr3_129656373_129656828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_206303873_206304475_+" name="hg18_chr1_206303873_206304475_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_140839796_140840476_+" name="hg18_chr8_140839796_140840476_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_2742550_2743202_+" name="hg18_chr11_2742550_2743202_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_45897422_45898126_+" name="hg18_chr3_45897422_45898126_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_78847123_78847703_+" name="hg18_chr4_78847123_78847703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_24963847_24964451_+" name="hg18_chr17_24963847_24964451_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_122848623_122849151_+" name="hg18_chr4_122848623_122849151_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_160938899_160939702_+" name="hg18_chr1_160938899_160939702_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_9753298_9754102_+" name="hg18_chr3_9753298_9754102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_97267548_97268178_+" name="hg18_chr15_97267548_97268178_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_61947421_61948152_+" name="hg18_chr11_61947421_61948152_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_87064771_87065501_+" name="hg18_chr4_87064771_87065501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrX_128753222_128753953_+" name="hg18_chrX_128753222_128753953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_31108871_31109477_+" name="hg18_chr6_31108871_31109477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_131671723_131672524_+" name="hg18_chr11_131671723_131672524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_167952877_167953475_+" name="hg18_chr3_167952877_167953475_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_113509074_113509778_+" name="hg18_chr13_113509074_113509778_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_10465273_10465928_+" name="hg18_chr20_10465273_10465928_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_42827821_42828627_+" name="hg18_chr20_42827821_42828627_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr13_71716722_71717277_+" name="hg18_chr13_71716722_71717277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_74369149_74369953_+" name="hg18_chr10_74369149_74369953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_131310748_131311499_+" name="hg18_chr7_131310748_131311499_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_134016325_134016950_+" name="hg18_chr2_134016325_134016950_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_114554799_114555626_+" name="hg18_chr5_114554799_114555626_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_3643022_3643650_+" name="hg18_chr4_3643022_3643650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_99356696_99357326_+" name="hg18_chr8_99356696_99357326_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_239833275_239833849_+" name="hg18_chr1_239833275_239833849_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_97321221_97321653_+" name="hg18_chr9_97321221_97321653_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_51786896_51787527_+" name="hg18_chr14_51786896_51787527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_87362649_87363249_+" name="hg18_chr1_87362649_87363249_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_6534722_6535428_+" name="hg18_chr7_6534722_6535428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_102117924_102118949_+" name="hg18_chr3_102117924_102118949_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_181026874_181027501_+" name="hg18_chr1_181026874_181027501_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_4657649_4658301_+" name="hg18_chr6_4657649_4658301_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_27148724_27149275_+" name="hg18_chr6_27148724_27149275_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_91313096_91313727_+" name="hg18_chr12_91313096_91313727_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_115836628_115837477_+" name="hg18_chr10_115836628_115837477_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_6896298_6896953_+" name="hg18_chr6_6896298_6896953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_94661774_94662428_+" name="hg18_chr1_94661774_94662428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_75167975_75168553_+" name="hg18_chr12_75167975_75168553_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_44997596_44998174_+" name="hg18_chr2_44997596_44998174_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_123330374_123331050_+" name="hg18_chr5_123330374_123331050_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_88025949_88026528_+" name="hg18_chr16_88025949_88026528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_106894523_106894978_+" name="hg18_chr6_106894523_106894978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_153538771_153539628_+" name="hg18_chr5_153538771_153539628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_4918449_4918899_+" name="hg18_chr3_4918449_4918899_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_131579149_131579628_+" name="hg18_chr7_131579149_131579628_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_200938649_200939201_+" name="hg18_chr1_200938649_200939201_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_42039046_42039800_+" name="hg18_chr2_42039046_42039800_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_15940797_15941575_+" name="hg18_chr6_15940797_15941575_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_48054247_48054750_+" name="hg18_chr20_48054247_48054750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_90748122_90748725_+" name="hg18_chr8_90748122_90748725_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_170420873_170421499_+" name="hg18_chr1_170420873_170421499_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_133057548_133058176_+" name="hg18_chr2_133057548_133058176_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_9085521_9086300_+" name="hg18_chr10_9085521_9086300_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_135937975_135938577_+" name="hg18_chr5_135937975_135938577_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_30853422_30854050_+" name="hg18_chr7_30853422_30854050_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_107995649_107996249_+" name="hg18_chr8_107995649_107996249_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_124814771_124815349_+" name="hg18_chr8_124814771_124815349_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_3378621_3379203_+" name="hg18_chr1_3378621_3379203_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_102958597_102959153_+" name="hg18_chr2_102958597_102959153_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_80452247_80453078_+" name="hg18_chr12_80452247_80453078_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_76805696_76806102_+" name="hg18_chr14_76805696_76806102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_17481123_17481752_+" name="hg18_chr3_17481123_17481752_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_239020171_239020952_+" name="hg18_chr2_239020171_239020952_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_33109998_33110553_+" name="hg18_chr9_33109998_33110553_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_61940799_61941474_+" name="hg18_chr11_61940799_61941474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_34298_35274_+" name="hg18_chr12_34298_35274_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr22_39183646_39184450_+" name="hg18_chr22_39183646_39184450_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_17908221_17908828_+" name="hg18_chr17_17908221_17908828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_52182199_52182849_+" name="hg18_chr17_52182199_52182849_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_142471250_142471750_+" name="hg18_chr3_142471250_142471750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_42947374_42948101_+" name="hg18_chr2_42947374_42948101_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_86145124_86145724_+" name="hg18_chr10_86145124_86145724_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_1366323_1367025_+" name="hg18_chr1_1366323_1367025_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr21_42262848_42263352_+" name="hg18_chr21_42262848_42263352_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_41115772_41116547_+" name="hg18_chr1_41115772_41116547_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_120792475_120793003_+" name="hg18_chr3_120792475_120793003_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_18024672_18025150_+" name="hg18_chr17_18024672_18025150_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_33597672_33598302_+" name="hg18_chr10_33597672_33598302_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_55474897_55475574_+" name="hg18_chr20_55474897_55475574_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_25942174_25942774_+" name="hg18_chr4_25942174_25942774_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_35452346_35453127_+" name="hg18_chr7_35452346_35453127_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_9342973_9343651_+" name="hg18_chr17_9342973_9343651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_72096124_72096728_+" name="hg18_chr11_72096124_72096728_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_74521072_74521650_+" name="hg18_chr15_74521072_74521650_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_206139621_206140375_+" name="hg18_chr1_206139621_206140375_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_105631149_105631826_+" name="hg18_chr3_105631149_105631826_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_13746023_13746751_+" name="hg18_chr11_13746023_13746751_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_44823325_44824199_+" name="hg18_chr14_44823325_44824199_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_170322150_170322900_+" name="hg18_chr1_170322150_170322900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_42151722_42152575_+" name="hg18_chr18_42151722_42152575_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_131752375_131752927_+" name="hg18_chr7_131752375_131752927_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_108520524_108521250_+" name="hg18_chr11_108520524_108521250_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_66377047_66377852_+" name="hg18_chr11_66377047_66377852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_75094450_75095074_+" name="hg18_chr15_75094450_75095074_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_90128949_90129551_+" name="hg18_chr15_90128949_90129551_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_55642973_55643452_+" name="hg18_chr1_55642973_55643452_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_121302974_121303474_+" name="hg18_chr8_121302974_121303474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_35309121_35309853_+" name="hg18_chr6_35309121_35309853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_38838546_38838978_+" name="hg18_chr10_38838546_38838978_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_40435499_40436276_+" name="hg18_chr20_40435499_40436276_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_56319547_56320127_+" name="hg18_chr20_56319547_56320127_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr18_22318323_22318903_+" name="hg18_chr18_22318323_22318903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_126067972_126068627_+" name="hg18_chr9_126067972_126068627_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_72919098_72919727_+" name="hg18_chr11_72919098_72919727_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_65364974_65365700_+" name="hg18_chr3_65364974_65365700_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr15_60925996_60926428_+" name="hg18_chr15_60925996_60926428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_28399722_28400520_+" name="hg18_chr2_28399722_28400520_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_95657021_95657651_+" name="hg18_chr10_95657021_95657651_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_42165447_42165878_+" name="hg18_chr17_42165447_42165878_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_131195573_131196277_+" name="hg18_chr7_131195573_131196277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_4174497_4175103_+" name="hg18_chr11_4174497_4175103_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_698325_699028_+" name="hg18_chr6_698325_699028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_84564847_84565328_+" name="hg18_chr4_84564847_84565328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_56421449_56422150_+" name="hg18_chr6_56421449_56422150_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_50100723_50101327_+" name="hg18_chr6_50100723_50101327_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_122102975_122103603_+" name="hg18_chr12_122102975_122103603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_12247149_12247753_+" name="hg18_chr6_12247149_12247753_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_23178500_23178976_+" name="hg18_chr1_23178500_23178976_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_44342872_44343625_+" name="hg18_chr19_44342872_44343625_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_8641873_8642503_+" name="hg18_chr11_8641873_8642503_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_36461871_36462701_+" name="hg18_chr6_36461871_36462701_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_67344000_67344576_+" name="hg18_chr3_67344000_67344576_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_27088672_27089251_+" name="hg18_chr2_27088672_27089251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_126061675_126062228_+" name="hg18_chr9_126061675_126062228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_32994622_32995353_+" name="hg18_chr2_32994622_32995353_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_72146975_72147528_+" name="hg18_chr14_72146975_72147528_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_78915574_78916226_+" name="hg18_chr1_78915574_78916226_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_101121321_101122076_+" name="hg18_chr3_101121321_101122076_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr19_13001648_13002327_+" name="hg18_chr19_13001648_13002327_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_40900146_40900625_+" name="hg18_chr4_40900146_40900625_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_41140649_41141277_+" name="hg18_chr20_41140649_41141277_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_70712271_70713028_+" name="hg18_chr6_70712271_70713028_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_129737498_129738227_+" name="hg18_chr9_129737498_129738227_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_50814823_50815500_+" name="hg18_chr7_50814823_50815500_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_15588398_15589250_+" name="hg18_chr6_15588398_15589250_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_19116273_19116824_+" name="hg18_chr1_19116273_19116824_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_11290250_11290903_+" name="hg18_chr3_11290250_11290903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_234794649_234795278_+" name="hg18_chr1_234794649_234795278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_44744672_44745374_+" name="hg18_chr10_44744672_44745374_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrY_11906446_11906903_+" name="hg18_chrY_11906446_11906903_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_16878522_16879253_+" name="hg18_chr6_16878522_16879253_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_128464449_128465174_+" name="hg18_chr6_128464449_128465174_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_22788422_22788927_+" name="hg18_chr11_22788422_22788927_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_126490873_126491601_+" name="hg18_chr11_126490873_126491601_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_48622347_48623077_+" name="hg18_chr20_48622347_48623077_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_143312996_143313428_+" name="hg18_chr7_143312996_143313428_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_40160223_40160828_+" name="hg18_chr1_40160223_40160828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_69387698_69388378_+" name="hg18_chr11_69387698_69388378_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_97663847_97664603_+" name="hg18_chr12_97663847_97664603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_5763522_5764077_+" name="hg18_chr4_5763522_5764077_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_28697571_28698251_+" name="hg18_chr11_28697571_28698251_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_153980122_153980699_+" name="hg18_chr5_153980122_153980699_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_178794449_178795100_+" name="hg18_chr2_178794449_178795100_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_92270521_92271027_+" name="hg18_chr7_92270521_92271027_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_56044899_56045500_+" name="hg18_chr6_56044899_56045500_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_90639846_90640478_+" name="hg18_chr10_90639846_90640478_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrY_12340051_12340478_+" name="hg18_chrY_12340051_12340478_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_35914121_35914703_+" name="hg18_chr20_35914121_35914703_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_63594321_63595403_+" name="hg18_chr11_63594321_63595403_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_11323101_11323726_+" name="hg18_chr3_11323101_11323726_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_44135197_44135876_+" name="hg18_chr11_44135197_44135876_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_148730572_148730977_+" name="hg18_chr5_148730572_148730977_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_64068898_64069551_+" name="hg18_chr11_64068898_64069551_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_119255371_119255853_+" name="hg18_chr12_119255371_119255853_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_98399325_98399900_+" name="hg18_chr8_98399325_98399900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr16_3127698_3128350_+" name="hg18_chr16_3127698_3128350_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_43597550_43598299_+" name="hg18_chr6_43597550_43598299_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr14_49156224_49156952_+" name="hg18_chr14_49156224_49156952_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_201349546_201350128_+" name="hg18_chr1_201349546_201350128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_64284847_64285527_+" name="hg18_chr11_64284847_64285527_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_34282273_34282828_+" name="hg18_chr17_34282273_34282828_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_42101247_42101902_+" name="hg18_chr1_42101247_42101902_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_44178671_44179228_+" name="hg18_chr20_44178671_44179228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_91610221_91610925_+" name="hg18_chr10_91610221_91610925_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr4_170630121_170630750_+" name="hg18_chr4_170630121_170630750_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_14728097_14728900_+" name="hg18_chr6_14728097_14728900_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_16019448_16019999_+" name="hg18_chr1_16019448_16019999_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_116986300_116986852_+" name="hg18_chr11_116986300_116986852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr2_16691073_16691478_+" name="hg18_chr2_16691073_16691478_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr8_143697972_143698603_+" name="hg18_chr8_143697972_143698603_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr1_205463549_205464124_+" name="hg18_chr1_205463549_205464124_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_26460248_26460852_+" name="hg18_chr6_26460248_26460852_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_117867823_117868474_+" name="hg18_chr10_117867823_117868474_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr17_16303371_16304128_+" name="hg18_chr17_16303371_16304128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_34306848_34307803_+" name="hg18_chr20_34306848_34307803_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_72109298_72109976_+" name="hg18_chr11_72109298_72109976_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr3_100860375_100860953_+" name="hg18_chr3_100860375_100860953_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_86580647_86581299_+" name="hg18_chr12_86580647_86581299_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_16726496_16727002_+" name="hg18_chr10_16726496_16727002_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_137125500_137126000_+" name="hg18_chr5_137125500_137126000_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_141187246_141187877_+" name="hg18_chr5_141187246_141187877_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_41718446_41719228_+" name="hg18_chr6_41718446_41719228_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr7_21904650_21905278_+" name="hg18_chr7_21904650_21905278_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_517197_517747_+" name="hg18_chr6_517197_517747_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr12_105260497_105261128_+" name="hg18_chr12_105260497_105261128_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr9_33160546_33161302_+" name="hg18_chr9_33160546_33161302_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr5_138549424_138550102_+" name="hg18_chr5_138549424_138550102_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_28727725_28728401_+" name="hg18_chr6_28727725_28728401_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr11_85906046_85906627_+" name="hg18_chr11_85906046_85906627_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_24359446_24360053_+" name="hg18_chr6_24359446_24360053_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_39168646_39169473_+" name="hg18_chr10_39168646_39169473_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chrY_12372398_12373328_+" name="hg18_chrY_12372398_12373328_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_33746349_33746974_+" name="hg18_chr20_33746349_33746974_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr10_39159926_39160728_+" name="hg18_chr10_39159926_39160728_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr6_1679921_1680524_+" name="hg18_chr6_1679921_1680524_+">
-</scanned-sequence>
-<scanned-sequence accession="hg18_chr20_61386321_61386802_+" name="hg18_chr20_61386321_61386802_