galaxy-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 15302 discussions
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/88afa15e556d/
changeset: 88afa15e556d
user: dan
date: 2011-11-21 22:30:34
summary: Add SAMTools mpileup.
affected #: 8 files
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample
+++ b/datatypes_conf.xml.sample
@@ -159,6 +159,7 @@
<converter file="vcf_to_summary_tree_converter.xml" target_datatype="summary_tree"/><display file="igv/vcf.xml" /></datatype>
+ <datatype extension="bcf" type="galaxy.datatypes.binary:Binary" subclass="True"/><datatype extension="wsf" type="galaxy.datatypes.wsf:SnpFile" display_in_upload="true"/><datatype extension="velvet" type="galaxy.datatypes.assembly:Velvet" display_in_upload="false"/><datatype extension="wig" type="galaxy.datatypes.interval:Wiggle" display_in_upload="true">
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 test-data/samtools/mpileup/samtools_mpileup_out_1.log
--- /dev/null
+++ b/test-data/samtools/mpileup/samtools_mpileup_out_1.log
@@ -0,0 +1,2 @@
+[mpileup] 1 samples in 1 input files
+<mpileup> Set max per-file depth to 8000
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 test-data/samtools/mpileup/samtools_mpileup_out_1.pileup
--- /dev/null
+++ b/test-data/samtools/mpileup/samtools_mpileup_out_1.pileup
@@ -0,0 +1,43 @@
+phiX174 1411 A 1 ^P. $
+phiX174 1412 G 3 .^D.^F. "$$
+phiX174 1413 C 5 ...^D.^F. """$$
+phiX174 1414 G 6 .....^F. #####$
+phiX174 1415 C 7 ......^F. %%%%%%&
+phiX174 1416 C 8 .......^F. $$$$$$$$
+phiX174 1417 G 9 ........^F. "#######$
+phiX174 1418 T 10 .........^F. """""""""$
+phiX174 1419 G 10 .......... """""'&'%$
+phiX174 1420 G 10 .......... """"""""""
+phiX174 1421 A 10 .......... """"""""""
+phiX174 1422 T 10 .......... """"""""""
+phiX174 1423 G 10 .......... """""""""#
+phiX174 1424 C 10 ..A.AAAAAA %"""""""""
+phiX174 1425 C 10 .......... $$$"""""""
+phiX174 1426 T 10 .......... #####"""""
+phiX174 1427 G 10 .......... ######""""
+phiX174 1428 A 10 .......... """"""""""
+phiX174 1429 C 10 .......... ((((((&(""
+phiX174 1430 C 10 .......... $$$$$$$$$"
+phiX174 1431 G 10 .......... ##########
+phiX174 1432 T 10 .......... """"""""""
+phiX174 1433 A 10 .......... ##########
+phiX174 1434 C 10 .......... ((((((&(%$
+phiX174 1435 C 10 .......... $$$$$$$$$$
+phiX174 1436 G 10 .......... ##########
+phiX174 1437 A 10 .......... """""""""!
+phiX174 1438 G 10 .......... """""####!
+phiX174 1439 G 10 .......... """""""""!
+phiX174 1440 C 10 .......... """""""""!
+phiX174 1441 T 10 .......... """"""""#!
+phiX174 1442 A 10 .......... $$$%%%&&%!
+phiX174 1443 A 10 .-1C.-1C..-1C...... """""""""!
+phiX174 1444 C 10 **.*...... &%"!"""""!
+phiX174 1445 C 10 .......... &%&!%%%&%!
+phiX174 1446 C 10 .......... """!"""""!
+phiX174 1447 T 10 .$..$....... #"#!"""""!
+phiX174 1448 A 8 .$..$..... #!#%%$$!
+phiX174 1449 A 6 .$.$.... !""""!
+phiX174 1450 T 4 .$... """!
+phiX174 1451 G 3 .$.. #"!
+phiX174 1452 A 2 .$. "!
+phiX174 1453 G 1 .$ !
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 test-data/samtools/mpileup/samtools_mpileup_out_2.bcf
Binary file test-data/samtools/mpileup/samtools_mpileup_out_2.bcf has changed
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -371,6 +371,7 @@
<tool file="samtools/sam_to_bam.xml" /><tool file="samtools/bam_to_sam.xml" /><tool file="samtools/sam_merge.xml" />
+ <tool file="samtools/samtools_mpileup.xml" /><tool file="samtools/sam_pileup.xml" /><tool file="samtools/pileup_parser.xml" /><tool file="samtools/pileup_interval.xml" />
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 tool_data_table_conf.xml.sample
--- a/tool_data_table_conf.xml.sample
+++ b/tool_data_table_conf.xml.sample
@@ -65,6 +65,11 @@
<columns>value, name, path</columns><file path="tool-data/perm_color_index.loc" /></table>
+ <!-- Location of SAMTools indexes and other files -->
+ <table name="sam_fa_indexes" comment_char="#">
+ <columns>line_type, value, path</columns>
+ <file path="tool-data/sam_fa_indices.loc" />
+ </table><!-- Location of Picard dict file and other files --><table name="picard_indexes" comment_char="#"><columns>value, dbkey, name, path</columns>
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 tools/samtools/samtools_mpileup.xml
--- /dev/null
+++ b/tools/samtools/samtools_mpileup.xml
@@ -0,0 +1,213 @@
+<tool id="samtools_mpileup" name="MPileup" version="0.0.1">
+ <description>SNP and indel caller</description>
+ <requirements>
+ <requirement type="package">samtools</requirement>
+ </requirements>
+ <command interpreter="python">samtools_wrapper.py
+ -p 'samtools mpileup'
+ --stdout "${output_log}"
+ #if $reference_source.reference_source_selector != "history":
+ -p '-f "${reference_source.ref_file.fields.path}"'
+ #else:
+ -d "-f" "${reference_source.ref_file}" "fa" "reference_input"
+ #end if
+ #for $i, $input_bam in enumerate( $reference_source.input_bams ):
+ -d " " "${input_bam.input_bam}" "${input_bam.input_bam.ext}" "bam_input_${i}"
+ -d "" "${input_bam.input_bam.metadata.bam_index}" "bam_index" "bam_input_${i}" ##hardcode galaxy ext type as bam_index
+ #end for
+ -p '
+ #if str( $advanced_options.advanced_options_selector ) == "advanced":
+ ${advanced_options.skip_anomalous_read_pairs}
+ ${advanced_options.disable_probabilistic_realignment}
+ -C "${advanced_options.coefficient_for_downgrading}"
+ -d "${advanced_options.max_reads_per_bam}"
+ ${advanced_options.extended_BAQ_computation}
+ #if str( $advanced_options.position_list ) != 'None':
+ -l "${advanced_options.position_list}"
+ #end if
+ -q "${advanced_options.minimum_mapping_quality}"
+ -Q "${advanced_options.minimum_base_quality}"
+ #if str( $advanced_options.region_string ):
+ -r "${advanced_options.region_string}"
+ #end if
+ ${advanced_options.output_per_sample_read_depth}
+ ${advanced_options.output_per_sample_strand_bias_p_value}
+ #end if
+ #if str( $genotype_likelihood_computation_type.genotype_likelihood_computation_type_selector ) == 'perform_genotype_likelihood_computation':
+ ##-g or -u
+ -g
+ -e "${genotype_likelihood_computation_type.gap_extension_sequencing_error_probability}"
+ -h "${genotype_likelihood_computation_type.coefficient_for_modeling_homopolymer_errors}"
+ #if str( $genotype_likelihood_computation_type.perform_indel_calling.perform_indel_calling_selector ) == 'perform_indel_calling':
+ -L "${genotype_likelihood_computation_type.perform_indel_calling.skip_indel_calling_above_sample_depth}"
+ #else:
+ -I
+ #end if
+ -o "${genotype_likelihood_computation_type.gap_open_sequencing_error_probability}"
+ #if len( $genotype_likelihood_computation_type.platform_list_repeat ):
+ -P "${ ",".join( [ str( platform.platform_entry ) for platform in $genotype_likelihood_computation_type.platform_list_repeat ] ) }"
+ #end if
+ #end if
+ > "${output_mpileup}"
+ '
+ </command>
+ <inputs>
+ <conditional name="reference_source">
+ <param name="reference_source_selector" type="select" label="Choose the source for the reference list">
+ <option value="cached">Locally cached</option>
+ <option value="history">History</option>
+ </param>
+ <when value="cached">
+ <repeat name="input_bams" title="BAM file" min="1">
+ <param name="input_bam" type="data" format="bam" label="BAM file">
+ <validator type="unspecified_build" />
+ <validator type="dataset_metadata_in_data_table" table_name="sam_fa_indexes" metadata_name="dbkey" metadata_column="value" message="Sequences are not currently available for the specified build." /><!-- fixme!!! this needs to be a select -->
+ </param>
+ </repeat>
+ <param name="ref_file" type="select" label="Using reference genome">
+ <options from_data_table="sam_fa_indexes">
+ <!-- <filter type="data_meta" key="dbkey" ref="input_bam" column="value"/> does not yet work in a repeat...-->
+ </options>
+ </param>
+ </when>
+ <when value="history"><!-- FIX ME!!!! -->
+ <repeat name="input_bams" title="BAM file" min="1">
+ <param name="input_bam" type="data" format="bam" label="BAM file" >
+ <validator type="metadata" check="bam_index" message="Metadata missing, click the pencil icon in the history item and use the auto-detect feature to correct this issue."/>
+ </param>
+ </repeat>
+ <param name="ref_file" type="data" format="fasta" label="Using reference file" />
+ </when>
+ </conditional>
+
+
+ <conditional name="genotype_likelihood_computation_type">
+ <param name="genotype_likelihood_computation_type_selector" type="select" label="Genotype Likelihood Computation">
+ <option value="perform_genotype_likelihood_computation">Perform genotype likelihood computation</option>
+ <option value="do_not_perform_genotype_likelihood_computation" selected="True">Do not perform genotype likelihood computation</option>
+ </param>
+ <when value="perform_genotype_likelihood_computation">
+ <param name="gap_extension_sequencing_error_probability" type="integer" value="20" label="Phred-scaled gap extension sequencing error probability" />
+ <param name="coefficient_for_modeling_homopolymer_errors" type="integer" value="100" label="Coefficient for modeling homopolymer errors." />
+ <conditional name="perform_indel_calling">
+ <param name="perform_indel_calling_selector" type="select" label="Perform INDEL calling">
+ <option value="perform_indel_calling" selected="True">Perform INDEL calling</option>
+ <option value="do_not_perform_indel_calling">Do not perform INDEL calling</option>
+ </param>
+ <when value="perform_indel_calling">
+ <param name="skip_indel_calling_above_sample_depth" type="integer" value="250" label="Skip INDEL calling if the average per-sample depth is above" />
+ </when>
+ <when value="do_no_perform_indel_calling" />
+ </conditional>
+ <param name="gap_open_sequencing_error_probability" type="integer" value="40" label="Phred-scaled gap open sequencing error probability" />
+ <repeat name="platform_list_repeat" title="Platform for INDEL candidates">
+ <param name="platform_entry" type="text" value="" label="Platform to use for INDEL candidates" />
+ </repeat>
+ </when>
+ <when value="do_not_perform_genotype_likelihood_computation">
+ <!-- Do nothing here -->
+ </when>
+ </conditional>
+ <conditional name="advanced_options">
+ <param name="advanced_options_selector" type="select" label="Set advanced options">
+ <option value="basic" selected="True">Basic</option>
+ <option value="advanced">Advanced</option>
+ </param>
+ <when value="advanced">
+ <param name="skip_anomalous_read_pairs" type="boolean" truevalue="-A" falsevalue="" checked="False" label="Do not skip anomalous read pairs in variant calling" />
+ <param name="disable_probabilistic_realignment" type="boolean" truevalue="-B" falsevalue="" checked="False" label=" Disable probabilistic realignment for the computation of base alignment quality (BAQ)" />
+ <param name="coefficient_for_downgrading" type="integer" value="0" label="Coefficient for downgrading mapping quality for reads containing excessive mismatches" />
+ <param name="max_reads_per_bam" type="integer" value="250" label="Max reads per BAM" />
+ <param name="extended_BAQ_computation" type="boolean" truevalue="-E" falsevalue="" checked="False" label="Extended BAQ computation" />
+ <param name="position_list" type="data" format="bed" label="List of regions or sites on which to operate" optional="True" />
+ <param name="minimum_mapping_quality" type="integer" value="0" label="Minimum mapping quality for an alignment to be used" />
+ <param name="minimum_base_quality" type="integer" value="13" label="Minimum base quality for a base to be considered" />
+ <param name="region_string" type="text" value="" label="Only generate pileup in region" />
+ <param name="output_per_sample_read_depth" type="boolean" truevalue="-D" falsevalue="" checked="False" label="Output per-sample read depth" />
+ <param name="output_per_sample_strand_bias_p_value" type="boolean" truevalue="-S" falsevalue="" checked="False" label="Output per-sample Phred-scaled strand bias P-value" />
+ </when>
+ <when value="basic" />
+ </conditional>
+ </inputs>
+ <outputs>
+ <data format="pileup" name="output_mpileup" label="${tool.name} on ${on_string}">
+ <change_format>
+ <when input="genotype_likelihood_computation_type.genotype_likelihood_computation_type_selector" value="perform_genotype_likelihood_computation" format="bcf" />
+ </change_format>
+ </data>
+ <data format="txt" name="output_log" label="${tool.name} on ${on_string} (log)" />
+ </outputs>
+ <tests>
+ <test>
+ <param name="reference_source_selector" value="history" />
+ <param name="ref_file" value="phiX.fasta" ftype="fasta" />
+ <param name="input_bam" value="gatk/gatk_table_recalibration/gatk_table_recalibration_out_1.bam" ftype="bam" />
+ <param name="genotype_likelihood_computation_type_selector" value="do_not_perform_genotype_likelihood_computation" />
+ <param name="advanced_options_selector" value="basic" />
+ <output name="output_mpileup" file="samtools/mpileup/samtools_mpileup_out_1.pileup" />
+ <output name="output_log" file="samtools/mpileup/samtools_mpileup_out_1.log" />
+ </test>
+ <test>
+ <param name="reference_source_selector" value="history" />
+ <param name="ref_file" value="phiX.fasta" ftype="fasta" />
+ <param name="input_bam" value="gatk/gatk_table_recalibration/gatk_table_recalibration_out_1.bam" ftype="bam" />
+ <param name="genotype_likelihood_computation_type_selector" value="perform_genotype_likelihood_computation" />
+ <param name="gap_extension_sequencing_error_probability" value="20" />
+ <param name="coefficient_for_modeling_homopolymer_errors" value="100" />
+ <param name="perform_indel_calling_selector" value="perform_indel_calling" />
+ <param name="skip_indel_calling_above_sample_depth" value="250" />
+ <param name="gap_open_sequencing_error_probability" value="40" />
+ <param name="platform_list_repeat" value="0" />
+ <param name="advanced_options_selector" value="basic" />
+ <output name="output_mpileup" file="samtools/mpileup/samtools_mpileup_out_2.bcf" />
+ <output name="output_log" file="samtools/mpileup/samtools_mpileup_out_1.log" />
+ </test>
+ </tests>
+ <help>
+**What it does**
+
+ Generate BCF or pileup for one or multiple BAM files. Alignment records are grouped by sample identifiers in @RG header lines. If sample identifiers are absent, each input file is regarded as one sample.
+
+------
+
+**Settings**::
+
+ Input Options:
+ -6 Assume the quality is in the Illumina 1.3+ encoding.
+ -A Do not skip anomalous read pairs in variant calling.
+ -B Disable probabilistic realignment for the computation of base alignment quality (BAQ). BAQ is the Phred-scaled probability of a read base being misaligned. Applying this option greatly helps to reduce false SNPs caused by misalignments.
+ -b FILE List of input BAM files, one file per line [null]
+ -C INT Coefficient for downgrading mapping quality for reads containing excessive mismatches. Given a read with a phred-scaled probability q of being generated from the mapped position, the new mapping quality is about sqrt((INT-q)/INT)*INT. A zero value disables this functionality; if enabled, the recommended value for BWA is 50. [0]
+ -d INT At a position, read maximally INT reads per input BAM. [250]
+ -E Extended BAQ computation. This option helps sensitivity especially for MNPs, but may hurt specificity a little bit.
+ -f FILE The faidx-indexed reference file in the FASTA format. The file can be optionally compressed by razip. [null]
+ -l FILE BED or position list file containing a list of regions or sites where pileup or BCF should be generated [null]
+ -q INT Minimum mapping quality for an alignment to be used [0]
+ -Q INT Minimum base quality for a base to be considered [13]
+ -r STR Only generate pileup in region STR [all sites]
+ Output Options:
+
+ -D Output per-sample read depth
+ -g Compute genotype likelihoods and output them in the binary call format (BCF).
+ -S Output per-sample Phred-scaled strand bias P-value
+ -u Similar to -g except that the output is uncompressed BCF, which is preferred for piping.
+
+ Options for Genotype Likelihood Computation (for -g or -u):
+
+ -e INT Phred-scaled gap extension sequencing error probability. Reducing INT leads to longer indels. [20]
+ -h INT Coefficient for modeling homopolymer errors. Given an l-long homopolymer run, the sequencing error of an indel of size s is modeled as INT*s/l. [100]
+ -I Do not perform INDEL calling
+ -L INT Skip INDEL calling if the average per-sample depth is above INT. [250]
+ -o INT Phred-scaled gap open sequencing error probability. Reducing INT leads to more indel calls. [40]
+ -P STR Comma dilimited list of platforms (determined by @RG-PL) from which indel candidates are obtained. It is recommended to collect indel candidates from sequencing technologies that have low indel error rate such as ILLUMINA. [all]
+
+------
+
+**Citation**
+
+For the underlying tool, please cite `Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15;25(16):2078-9. <http://www.ncbi.nlm.nih.gov/pubmed/19505943>`_
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
+ </help>
+</tool>
diff -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad -r 88afa15e556dfea22d34b0a78ffc3ebe162b64f7 tools/samtools/samtools_wrapper.py
--- /dev/null
+++ b/tools/samtools/samtools_wrapper.py
@@ -0,0 +1,110 @@
+#!/usr/bin/env python
+#Dan Blankenberg
+
+"""
+A wrapper script for running SAMTools commands.
+"""
+
+import sys, optparse, os, tempfile, subprocess, shutil
+from string import Template
+
+GALAXY_EXT_TO_SAMTOOLS_EXT = { 'bam_index':'bam.bai', } #items not listed here will use the galaxy extension as-is
+GALAXY_EXT_TO_SAMTOOLS_FILE_TYPE = GALAXY_EXT_TO_SAMTOOLS_EXT #for now, these are the same, but could be different if needed
+DEFAULT_SAMTOOLS_PREFIX = "SAMTools_file"
+CHUNK_SIZE = 2**20 #1mb
+
+
+def cleanup_before_exit( tmp_dir ):
+ if tmp_dir and os.path.exists( tmp_dir ):
+ shutil.rmtree( tmp_dir )
+
+def SAMTOOLS_filename_from_galaxy( galaxy_filename, galaxy_ext, target_dir = None, prefix = None ):
+ suffix = GALAXY_EXT_TO_SAMTOOLS_EXT.get( galaxy_ext, galaxy_ext )
+ if prefix is None:
+ prefix = DEFAULT_SAMTOOLS_PREFIX
+ if target_dir is None:
+ target_dir = os.getcwd()
+ SAMTools_filename = os.path.join( target_dir, "%s.%s" % ( prefix, suffix ) )
+ os.symlink( galaxy_filename, SAMTools_filename )
+ return SAMTools_filename
+
+def SAMTOOLS_filetype_argument_substitution( argument, galaxy_ext ):
+ return argument % dict( file_type = GALAXY_EXT_TO_SAMTOOLS_FILE_TYPE.get( galaxy_ext, galaxy_ext ) )
+
+def open_file_from_option( filename, mode = 'rb' ):
+ if filename:
+ return open( filename, mode = mode )
+ return None
+
+def html_report_from_directory( html_out, dir ):
+ html_out.write( '<html>\n<head>\n<title>Galaxy - SAMTOOLS Output</title>\n</head>\n<body>\n<p/>\n<ul>\n' )
+ for fname in sorted( os.listdir( dir ) ):
+ html_out.write( '<li><a href="%s">%s</a></li>\n' % ( fname, fname ) )
+ html_out.write( '</ul>\n</body>\n</html>\n' )
+
+def __main__():
+ #Parse Command Line
+ parser = optparse.OptionParser()
+ parser.add_option( '-p', '--pass_through', dest='pass_through_options', action='append', type="string", help='These options are passed through directly to SAMTOOLS, without any modification.' )
+ parser.add_option( '-d', '--dataset', dest='datasets', action='append', type="string", nargs=4, help='"-argument" "original_filename" "galaxy_filetype" "name_prefix"' )
+ parser.add_option( '', '--stdout', dest='stdout', action='store', type="string", default=None, help='If specified, the output of stdout will be written to this file.' )
+ parser.add_option( '', '--stderr', dest='stderr', action='store', type="string", default=None, help='If specified, the output of stderr will be written to this file.' )
+ parser.add_option( '', '--html_report_from_directory', dest='html_report_from_directory', action='append', type="string", nargs=2, help='"Target HTML File" "Directory"')
+ (options, args) = parser.parse_args()
+
+ tmp_dir = tempfile.mkdtemp( prefix='tmp-SAMTOOLS-' )
+
+ #set up stdout and stderr output options
+ stdout = open_file_from_option( options.stdout, mode = 'wb' )
+ stderr = open_file_from_option( options.stderr, mode = 'wb' )
+ #if no stderr file is specified, we'll use our own
+ if stderr is None:
+ stderr = tempfile.NamedTemporaryFile( prefix="SAMTOOLS-stderr-", dir=tmp_dir )
+
+ if options.pass_through_options:
+ cmd = ' '.join( options.pass_through_options )
+ else:
+ cmd = ''
+ return_code = None
+ if options.datasets:
+ for ( dataset_arg, filename, galaxy_ext, prefix ) in options.datasets:
+ SAMTools_filename = SAMTOOLS_filename_from_galaxy( filename, galaxy_ext, target_dir = tmp_dir, prefix = prefix )
+ if dataset_arg:
+ if '>' in cmd:
+ cmd = cmd.replace( '>', ' %s "%s" >' % ( SAMTOOLS_filetype_argument_substitution( dataset_arg, galaxy_ext ), SAMTools_filename ), 1 )
+ else:
+ cmd = '%s %s "%s"' % ( cmd, SAMTOOLS_filetype_argument_substitution( dataset_arg, galaxy_ext ), SAMTools_filename )
+ #auto index fasta files:
+ if galaxy_ext == 'fa':
+ index_cmd = 'samtools faidx %s' % ( SAMTools_filename )
+ proc = subprocess.Popen( args=index_cmd, stdout=stdout, stderr=stderr, shell=True, cwd=tmp_dir )
+ return_code = proc.wait()
+ if return_code:
+ break
+ if return_code is None or not return_code:
+ proc = subprocess.Popen( args=cmd, stdout=stdout, stderr=stderr, shell=True, cwd=tmp_dir )
+ return_code = proc.wait()
+ if return_code:
+ stderr_target = sys.stderr
+ else:
+ if stdout:
+ stderr_target = stdout
+ else:
+ stderr_target = sys.stdout
+ stderr.flush()
+ stderr.seek(0)
+ while True:
+ chunk = stderr.read( CHUNK_SIZE )
+ if chunk:
+ stderr_target.write( chunk )
+ else:
+ break
+ stderr.close()
+ #generate html reports
+ if options.html_report_from_directory:
+ for ( html_filename, html_dir ) in options.html_report_from_directory:
+ html_report_from_directory( open( html_filename, 'wb' ), html_dir )
+
+ cleanup_before_exit( tmp_dir )
+
+if __name__=="__main__": __main__()
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: dan: Remove --rodToIntervalTrackName from GATK tools; not present in version 1.3.
by Bitbucket 21 Nov '11
by Bitbucket 21 Nov '11
21 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/dccaec5a2b1e/
changeset: dccaec5a2b1e
user: dan
date: 2011-11-21 18:38:38
summary: Remove --rodToIntervalTrackName from GATK tools; not present in version 1.3.
affected #: 9 files
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/count_covariates.xml
--- a/tools/gatk/count_covariates.xml
+++ b/tools/gatk/count_covariates.xml
@@ -39,9 +39,6 @@
#end if
#set $rod_binding_names[$rod_bind_name] = $rod_binding_names.get( $rod_bind_name, -1 ) + 1
-d "--knownSites:${rod_bind_name},%(file_type)s" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
- #if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_bind_name}"'
- #end if
#end for
##start standard gatk options
@@ -186,24 +183,19 @@
</param><when value="dbsnp"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="snps"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="indels"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="mask"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="custom"><param name="custom_rod_name" type="text" value="Unknown" label="ROD Name"/><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when></conditional></repeat>
@@ -416,7 +408,6 @@
<param name="ref_file" value="phiX.fasta" ftype="fasta" /><param name="input_bam" value="gatk/gatk_indel_realigner/gatk_indel_realigner_out_1.bam" ftype="bam" /><param name="rod_bind_type_selector" value="dbsnp" />
- <param name="rodToIntervalTrackName" /><param name="input_rod" value="gatk/fake_phiX_variant_locations.bed" ftype="bed" /><param name="standard_covs" value="True" /><param name="covariates" value="ReadGroupCovariate,HomopolymerCovariate,MinimumNQSCovariate,PositionCovariate" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/indel_realigner.xml
--- a/tools/gatk/indel_realigner.xml
+++ b/tools/gatk/indel_realigner.xml
@@ -31,9 +31,6 @@
#end if
#set $rod_binding_names[$rod_bind_name] = $rod_binding_names.get( $rod_bind_name, -1 ) + 1
-d "-known:${rod_bind_name},%(file_type)s" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
- #if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_bind_name}"'
- #end if
#end for
##start standard gatk options
@@ -151,20 +148,16 @@
</param><when value="dbsnp"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="snps"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="indels"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="custom"><param name="custom_rod_name" type="text" value="Unknown" label="ROD Name"/><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when></conditional></repeat>
@@ -331,7 +324,6 @@
<param name="target_intervals" value="gatk/gatk_realigner_target_creator/gatk_realigner_target_creator_out_1.gatk_interval" ftype="gatk_interval" /><param name="input_bam" value="gatk/fake_phiX_reads_1.bam" ftype="bam" /><param name="rod_bind_type_selector" value="snps" />
- <param name="rodToIntervalTrackName" /><param name="input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="lod_threshold" value="5.0" /><param name="knowns_only" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/realigner_target_creator.xml
--- a/tools/gatk/realigner_target_creator.xml
+++ b/tools/gatk/realigner_target_creator.xml
@@ -28,9 +28,6 @@
#end if
#set $rod_binding_names[$rod_bind_name] = $rod_binding_names.get( $rod_bind_name, -1 ) + 1
-d "-known:${rod_bind_name},%(file_type)s" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
- #if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_bind_name}"'
- #end if
#end for
##start standard gatk options
@@ -139,20 +136,16 @@
</param><when value="dbsnp"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="snps"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="indels"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="custom"><param name="custom_rod_name" type="text" value="Unknown" label="ROD Name"/><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when></conditional></repeat>
@@ -306,7 +299,6 @@
<param name="ref_file" value="phiX.fasta" ftype="fasta" /><param name="input_bam" value="gatk/fake_phiX_reads_1.bam" ftype="bam" /><param name="rod_bind_type_selector" value="dbsnp" />
- <param name="rodToIntervalTrackName" /><param name="input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="gatk_param_type_selector" value="basic" /><param name="analysis_param_type_selector" value="advanced" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/unified_genotyper.xml
--- a/tools/gatk/unified_genotyper.xml
+++ b/tools/gatk/unified_genotyper.xml
@@ -34,9 +34,6 @@
#end if
#set $rod_binding_names[$rod_bind_name] = $rod_binding_names.get( $rod_bind_name, -1 ) + 1
-d "--dbsnp:${rod_bind_name},%(file_type)s" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
- #if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_bind_name}"'
- #end if
#end for
##start standard gatk options
@@ -168,20 +165,16 @@
</param><when value="dbsnp"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="snps"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="indels"><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when><when value="custom"><param name="custom_rod_name" type="text" value="Unknown" label="ROD Name"/><param name="input_rod" type="data" format="vcf" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when></conditional></repeat>
@@ -413,7 +406,6 @@
<param name="input_bam" value="gatk/gatk_table_recalibration/gatk_table_recalibration_out_1.bam" ftype="bam" /><param name="rod_bind_type_selector" value="dbsnp" /><param name="input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" />
- <param name="rodToIntervalTrackName" /><param name="standard_min_confidence_threshold_for_calling" value="0" /><param name="standard_min_confidence_threshold_for_emitting" value="4" /><param name="gatk_param_type_selector" value="basic" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/variant_annotator.xml
--- a/tools/gatk/variant_annotator.xml
+++ b/tools/gatk/variant_annotator.xml
@@ -43,31 +43,19 @@
#for $rod_binding in $comp_rod_bind:
-d "--comp:${rod_binding.comp_rod_name},%(file_type)s" "${rod_binding.comp_input_rod}" "${rod_binding.comp_input_rod.ext}" "input_comp_${rod_binding.comp_rod_name}"
- #if str( $rod_binding.comp_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_binding.comp_rod_name}"'
- #end if
#end for
#if str( $dbsnp_rod_bind_type.dbsnp_rod_bind_type_selector ) == 'set_dbsnp':
-d "--dbsnp:${dbsnp_rod_bind_type.dbsnp_rod_name},%(file_type)s" "${dbsnp_rod_bind_type.dbsnp_input_rod}" "${dbsnp_rod_bind_type.dbsnp_input_rod.ext}" "input_dbsnp_${dbsnp_rod_bind_type.dbsnp_rod_name}"
- #if str( $dbsnp_rod_bind_type.dbsnp_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${dbsnp_rod_bind_type.dbsnp_rod_name}"'
- #end if
#end if
#for $rod_binding in $resource_rod_bind:
-d "--resource:${rod_binding.resource_rod_name},%(file_type)s" "${rod_binding.resource_input_rod}" "${rod_binding.resource_input_rod.ext}" "input_resource_${rod_binding.resource_rod_name}"
- #if str( $rod_binding.resource_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_binding.resource_rod_name}"'
- #end if
#end for
#if str( $snpEff_rod_bind_type.snpEff_rod_bind_type_selector ) == 'set_snpEff':
-d "--snpEff:${snpEff_rod_bind_type.snpEff_rod_name},%(file_type)s" "${snpEff_rod_bind_type.snpEff_input_rod}" "${snpEff_rod_bind_type.snpEff_input_rod.ext}" "input_snpEff_${snpEff_rod_bind_type.snpEff_rod_name}"
- #if str( $snpEff_rod_bind_type.snpEff_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${snpEff_rod_bind_type.snpEff_rod_name}"'
- #end if
#end if
#for $expression in $expressions:
@@ -214,7 +202,6 @@
<repeat name="comp_rod_bind" title="Binding for reference-ordered comparison data"><param name="comp_input_rod" type="data" format="vcf" label="ROD file" /><param name="comp_rod_name" type="text" value="Unnamed" label="ROD Name"/>
- <param name="comp_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></repeat><conditional name="dbsnp_rod_bind_type">
@@ -227,7 +214,6 @@
</when><when value="set_dbsnp"><param name="dbsnp_input_rod" type="data" format="vcf" label="ROD file" />
- <param name="dbsnp_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><param name="dbsnp_rod_name" type="hidden" value="dbsnp" label="ROD Name"/></when></conditional>
@@ -235,7 +221,6 @@
<repeat name="resource_rod_bind" title="Binding for reference-ordered resource data"><param name="resource_input_rod" type="data" format="vcf" label="ROD file" /><param name="resource_rod_name" type="text" value="Unnamed" label="ROD Name"/>
- <param name="resource_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></repeat><conditional name="snpEff_rod_bind_type">
@@ -248,7 +233,6 @@
</when><when value="set_snpEff"><param name="snpEff_input_rod" type="data" format="vcf" label="ROD file" />
- <param name="snpEff_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><param name="snpEff_rod_name" type="hidden" value="snpEff" label="ROD Name"/></when></conditional>
@@ -403,7 +387,6 @@
<param name="annotations_type_selector" value="choose" /><param name="annotations" value="AlleleBalance,BaseQualityRankSumTest,DepthOfCoverage,HomopolymerRun,MappingQualityRankSumTest,MappingQualityZero,QualByDepth,RMSMappingQuality,SpanningDeletions,HaplotypeScore" /><param name="dbsnp_rod_bind_type_selector" value="set_dbsnp" />
- <param name="dbsnp_rodToIntervalTrackName" /><param name="dbsnp_input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="snpEff_rod_bind_type_selector" value="exclude_snpEff" /><param name="gatk_param_type_selector" value="basic" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/variant_eval.xml
--- a/tools/gatk/variant_eval.xml
+++ b/tools/gatk/variant_eval.xml
@@ -23,9 +23,6 @@
#for $rod_binding in $comp_rod_bind:
-d "--comp:${rod_binding.comp_rod_name},%(file_type)s" "${rod_binding.comp_input_rod}" "${rod_binding.comp_input_rod.ext}" "input_comp_${rod_binding.comp_rod_name}"
- #if str( $rod_binding.comp_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_binding.comp_rod_name}"'
- #end if
#if str( $rod_binding.comp_known_names ):
-p '--known_names "${rod_binding.comp_rod_name}"'
#end if
@@ -33,11 +30,8 @@
#if str( $dbsnp_rod_bind_type.dbsnp_rod_bind_type_selector ) == 'set_dbsnp':
-d "--dbsnp:${dbsnp_rod_bind_type.dbsnp_rod_name},%(file_type)s" "${dbsnp_rod_bind_type.dbsnp_input_rod}" "${dbsnp_rod_bind_type.dbsnp_input_rod.ext}" "input_dbsnp_${dbsnp_rod_bind_type.dbsnp_rod_name}"
- #if str( $dbsnp_rod_bind_type.dbsnp_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${dbsnp_rod_bind_type.dbsnp_rod_name}"'
- #if str( $dbsnp_rod_bind_type.dbsnp_known_names ):
- -p '--known_names "${dbsnp_rod_bind_type.dbsnp_rod_name}"'
- #end if
+ #if str( $dbsnp_rod_bind_type.dbsnp_known_names ):
+ -p '--known_names "${dbsnp_rod_bind_type.dbsnp_rod_name}"'
#end if
#end if
@@ -179,7 +173,6 @@
<repeat name="comp_rod_bind" title="Binding for reference-ordered comparison data"><param name="comp_input_rod" type="data" format="vcf" label="Comparison ROD file" /><param name="comp_rod_name" type="text" value="Unnamed" label="Comparison ROD Name"/>
- <param name="comp_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use Comparison ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><param name="comp_known_names" type="boolean" truevalue="--known_names" falsevalue="" label="Use Comparison ROD as known_names" /></repeat>
@@ -193,7 +186,6 @@
</when><when value="set_dbsnp"><param name="dbsnp_input_rod" type="data" format="vcf" label="dbSNP ROD file" />
- <param name="dbsnp_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use dbSNP ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><param name="dbsnp_rod_name" type="hidden" value="dbsnp" label="dbSNP ROD Name"/><param name="dbsnp_known_names" type="boolean" truevalue="--known_names" falsevalue="" label="Use dbSNP ROD as known_names" /></when>
@@ -405,7 +397,6 @@
<param name="ref_file" value="phiX.fasta" ftype="fasta" /><param name="input_variant" value="gatk/gatk_variant_annotator/gatk_variant_annotator_out_1.vcf" ftype="vcf" /><param name="dbsnp_rod_bind_type_selector" value="set_dbsnp" />
- <param name="dbsnp_rodToIntervalTrackName" /><param name="dbsnp_input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="dbsnp_known_names" value="True"/><param name="comp_rod_bind" value="0" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/variant_filtration.xml
--- a/tools/gatk/variant_filtration.xml
+++ b/tools/gatk/variant_filtration.xml
@@ -30,9 +30,6 @@
--maskExtension "${mask_rod_bind_type.mask_extension}"
--maskName "${mask_rod_bind_type.mask_rod_name}"
'
- #if str( $mask_rod_bind_type.mask_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${mask_rod_bind_type.mask_rod_name}"'
- #end if
#end if
##start standard gatk options
@@ -150,7 +147,6 @@
<param name="input_mask_rod" type="data" format="bed,gatk_dbsnp,vcf" label="Mask ROD file" /><param name="mask_rod_name" type="text" value="Mask" label="Mask Name"/><param name="mask_extension" type="integer" value="0" label="Mask Extension"/>
- <param name="mask_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use Mask ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /></when></conditional>
@@ -308,7 +304,6 @@
<param name="filter_name" value="Galaxy_filter" /><param name="is_genotype_filter" /><param name="mask_rod_bind_type_selector" value="set_mask" />
- <param name="mask_rodToIntervalTrackName" /><param name="input_mask_rod" value="gatk/fake_phiX_variant_locations.bed" ftype="bed" /><param name="mask_rod_name" value="." /><param name="mask_extension" value="0" />
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/variant_recalibrator.xml
--- a/tools/gatk/variant_recalibrator.xml
+++ b/tools/gatk/variant_recalibrator.xml
@@ -38,9 +38,6 @@
#else:
-d "--resource:${rod_bind_name},%(file_type)s,known=${rod_binding.rod_bind_type.rod_training_type.known},training=${rod_binding.rod_bind_type.rod_training_type.training},truth=${rod_binding.rod_bind_type.rod_training_type.truth},bad=${rod_binding.rod_bind_type.rod_training_type.bad},prior=${rod_binding.rod_bind_type.rod_training_type.prior}" "${rod_binding.rod_bind_type.input_rod}" "${rod_binding.rod_bind_type.input_rod.ext}" "input_${rod_bind_name}_${rod_binding_names[$rod_bind_name]}"
#end if
- #if str( $rod_binding.rod_bind_type.rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${rod_bind_name}"'
- #end if
#end for
##start standard gatk options
@@ -183,7 +180,6 @@
</param><when value="variant"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="Variant ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -204,7 +200,6 @@
<when value="comp"><param name="input_rod" type="data" format="vcf,gatk_dbsnp" label="ROD file" /><param name="custom_rod_name" type="text" value="Unnamed" label="ROD Name"/>
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -224,7 +219,6 @@
</when><when value="dbsnp"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -244,7 +238,6 @@
</when><when value="snps"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -264,7 +257,6 @@
</when><when value="hapmap"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -284,7 +276,6 @@
</when><when value="omni"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -304,7 +295,6 @@
</when><when value="indels"><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
@@ -325,7 +315,6 @@
<when value="custom"><param name="custom_rod_name" type="text" value="Unknown" label="ROD Name"/><param name="input_rod" type="data" format="vcf,gatk_dbsnp,bed" label="ROD file" />
- <param name="rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><conditional name="rod_training_type"><param name="rod_training_type_selector" type="select" label="Use as training/truth/known sites"><option value="is_training_truth_known">Set training/truth/known sites</option>
diff -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 -r dccaec5a2b1e41a008c63a9c08f7b21c3526fcad tools/gatk/variants_validate.xml
--- a/tools/gatk/variants_validate.xml
+++ b/tools/gatk/variants_validate.xml
@@ -23,9 +23,6 @@
#if str( $dbsnp_rod_bind_type.dbsnp_rod_bind_type_selector ) == 'set_dbsnp':
-d "--dbsnp:${dbsnp_rod_bind_type.dbsnp_rod_name},%(file_type)s" "${dbsnp_rod_bind_type.dbsnp_input_rod}" "${dbsnp_rod_bind_type.dbsnp_input_rod.ext}" "input_dbsnp_${dbsnp_rod_bind_type.dbsnp_rod_name}"
- #if str( $dbsnp_rod_bind_type.dbsnp_rodToIntervalTrackName ):
- -p '--rodToIntervalTrackName "${dbsnp_rod_bind_type.dbsnp_rod_name}"'
- #end if
#end if
##start standard gatk options
@@ -117,7 +114,6 @@
</when><when value="set_dbsnp"><param name="dbsnp_input_rod" type="data" format="vcf" label="ROD file" />
- <param name="dbsnp_rodToIntervalTrackName" type="boolean" truevalue="--rodToIntervalTrackName" falsevalue="" label="Use ROD as interval List (-BTI, --rodToIntervalTrackName)" help="Only one ROD may have this option specified" /><param name="dbsnp_rod_name" type="hidden" value="dbsnp" label="ROD Name"/></when></conditional>
@@ -258,7 +254,6 @@
<param name="ref_file" value="phiX.fasta" ftype="fasta" /><param name="input_variant" value="gatk/gatk_variant_annotator/gatk_variant_annotator_out_1.vcf" ftype="vcf" /><param name="dbsnp_rod_bind_type_selector" value="set_dbsnp" />
- <param name="dbsnp_rodToIntervalTrackName" /><param name="dbsnp_input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="warn_on_errors" value="True"/><param name="do_not_validate_filtered_records" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: greg: Fix for generating metadata on the repository tip.
by Bitbucket 21 Nov '11
by Bitbucket 21 Nov '11
21 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/3d0db17ca1fa/
changeset: 3d0db17ca1fa
user: greg
date: 2011-11-21 18:09:25
summary: Fix for generating metadata on the repository tip.
affected #: 1 file
diff -r 058c507d05fd41694261f9f679b7cccafe295faf -r 3d0db17ca1fa86aaeff546c1a3cb375f15148c72 lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1631,7 +1631,10 @@
for changeset in repo.changelog:
current_changeset_revision = str( repo.changectx( changeset ) )
ctx = get_changectx_for_changeset( trans, repo, current_changeset_revision )
- current_metadata_dict, invalid_files = generate_metadata_for_changeset_revision( trans, id, ctx, current_changeset_revision, repo_dir )
+ if current_changeset_revision == repository.tip:
+ current_metadata_dict, invalid_files = generate_metadata_for_repository_tip( trans, id, ctx, current_changeset_revision, repo_dir )
+ else:
+ current_metadata_dict, invalid_files = generate_metadata_for_changeset_revision( trans, id, ctx, current_changeset_revision, repo_dir )
if current_metadata_dict:
if ancestor_changeset_revision:
# Compare metadata from ancestor and current. The value of comparsion will be one of:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: greg: Subtle but critical fixes in resetting all metadata for tool shed repositories ( and some code clean up ).
by Bitbucket 21 Nov '11
by Bitbucket 21 Nov '11
21 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/058c507d05fd/
changeset: 058c507d05fd
user: greg
date: 2011-11-21 17:21:23
summary: Subtle but critical fixes in resetting all metadata for tool shed repositories ( and some code clean up ).
affected #: 4 files
diff -r 66038323cb438066cb76e255fd436fc245056bfd -r 058c507d05fd41694261f9f679b7cccafe295faf lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1622,51 +1622,56 @@
if len( repo ) == 1:
message, status = set_repository_metadata( trans, id, repository.tip, **kwd )
else:
- # The following will be a list of changeset_revisions that have been created or updated.
- # When the following loop completes, we'll delete all repository_metadata records for
- # this repository that do not have a changeset_revision value in this list.
+ # The list of changeset_revisions refers to repository_metadata records that have been
+ # created or updated. When the following loop completes, we'll delete all repository_metadata
+ # records for this repository that do not have a changeset_revision value in this list.
changeset_revisions = []
- repository_metadata_tup_for_comparison = ()
+ ancestor_changeset_revision = None
+ ancestor_metadata_dict = None
for changeset in repo.changelog:
- ctx = repo.changectx( changeset )
- current_changeset_revision = str( ctx )
+ current_changeset_revision = str( repo.changectx( changeset ) )
ctx = get_changectx_for_changeset( trans, repo, current_changeset_revision )
current_metadata_dict, invalid_files = generate_metadata_for_changeset_revision( trans, id, ctx, current_changeset_revision, repo_dir )
if current_metadata_dict:
- if repository_metadata_tup_for_comparison:
- ancestor_changeset_revision, ancestor_metadata_dict = repository_metadata_tup_for_comparison
- comparison = self.__compare_changeset_revisions( ancestor_changeset_revision,
- ancestor_metadata_dict,
- current_changeset_revision,
- current_metadata_dict )
- # The value of comparsion will be one of:
+ if ancestor_changeset_revision:
+ # Compare metadata from ancestor and current. The value of comparsion will be one of:
# 'no metadata' - no metadata for either ancestor or current, so continue from current
# 'equal' - ancestor metadata is equivalent to current metadata, so continue from current
# 'subset' - ancestor metadata is a subset of current metadata, so continue from current
# 'not equal and not subset' - ancestor metadata is neither equal to nor a subset of current
# metadata, so persist ancestor metadata.
+ comparison = self.__compare_changeset_revisions( ancestor_changeset_revision,
+ ancestor_metadata_dict,
+ current_changeset_revision,
+ current_metadata_dict )
if comparison in [ 'no metadata', 'equal', 'subset' ]:
- repository_metadata_tup_for_comparison = ( current_changeset_revision, current_metadata_dict )
+ ancestor_changeset_revision = current_changeset_revision
+ ancestor_metadata_dict = current_metadata_dict
elif comparison == 'not equal and not subset':
self.__create_or_update_repository_metadata( trans, id, repository, ancestor_changeset_revision, ancestor_metadata_dict )
- # keep track of the changeset_revisions that we've persisted.
+ # Keep track of the changeset_revisions that we've persisted.
changeset_revisions.append( ancestor_changeset_revision )
- repository_metadata_tup_for_comparison = ()
+ ancestor_changeset_revision = None
+ ancestor_metadata_dict = None
else:
- # We're at the first change set in the change log.
- repository_metadata_tup_for_comparison = ( current_changeset_revision, current_metadata_dict )
+ # We're either at the first change set in the change log or we have just created or updated
+ # a repository_metadata record. At this point we set the ancestor changeset to the current
+ # changeset for comparison in the next iteration.
+ ancestor_changeset_revision = current_changeset_revision
+ ancestor_metadata_dict = current_metadata_dict
if not ctx.children():
# We're at the end of the change log.
self.__create_or_update_repository_metadata( trans, id, repository, current_changeset_revision, current_metadata_dict )
changeset_revisions.append( current_changeset_revision )
+ ancestor_changeset_revision = None
+ ancestor_metadata_dict = None
elif ancestor_metadata_dict:
# Our current change set has no metadata, but our ancestor change set has metadata, so save it.
self.__create_or_update_repository_metadata( trans, id, repository, ancestor_changeset_revision, ancestor_metadata_dict )
- # keep track of the changeset_revisions that we've persisted.
+ # Keep track of the changeset_revisions that we've persisted.
changeset_revisions.append( ancestor_changeset_revision )
- repository_metadata_tup_for_comparison = ()
- ancestor_changeset_revision = current_changeset_revision
- ancestor_metadata_dict = current_metadata_dict
+ ancestor_changeset_revision = None
+ ancestor_metadata_dict = None
self.__clean_repository_metadata( trans, id, changeset_revisions )
if not message:
message = "Repository metadata has been reset."
@@ -1699,6 +1704,12 @@
def __compare_changeset_revisions( self, ancestor_changeset_revision, ancestor_metadata_dict, current_changeset_revision, current_metadata_dict ):
# The metadata associated with ancestor_changeset_revision is ancestor_metadata_dict. This changeset_revision
# is an ancestor of current_changeset_revision which is associated with current_metadata_dict.
+ #
+ # TODO: a new repository_metadata record will be created only when this method returns the string
+ # 'not equal and not subset'. However, we're currently also returning the strings 'no metadata',
+ # 'equal' and 'subset', depending upon how the 2 change sets compare. We'll leave things this way
+ # for the current time in case we discover a use for these additional result strings.
+ #
# Get information about tools.
if 'tools' in ancestor_metadata_dict:
ancestor_tools = ancestor_metadata_dict[ 'tools' ]
@@ -1735,7 +1746,7 @@
else:
current_datatypes = []
# Handle case where no metadata exists for either changeset.
- if not ( ancestor_guids or current_guids or ancestor_workflows or current_workflows or ancestor_datatypes or current_datatypes ):
+ if not ancestor_guids and not current_guids and not ancestor_workflows and not current_workflows and not ancestor_datatypes and not current_datatypes:
return 'no metadata'
workflow_comparison = self.__compare_workflows( ancestor_workflows, current_workflows )
datatype_comparison = self.__compare_datatypes( ancestor_datatypes, current_datatypes )
@@ -1758,9 +1769,13 @@
for ancestor_workflow in ancestor_workflows:
# Currently the only way to differentiate workflows is by name.
ancestor_workflow_name = ancestor_workflow[ 'name' ]
+ num_ancestor_workflow_steps = len( ancestor_workflow[ 'steps' ] )
found_in_current = False
for current_workflow in current_workflows:
- if current_workflow[ 'name' ] == ancestor_workflow_name:
+ # Assume that if the name and number of steps are euqal,
+ # then the workflows are the same. Of course, this may
+ # not be true...
+ if current_workflow[ 'name' ] == ancestor_workflow_name and len( current_workflow[ 'steps' ] ) == num_ancestor_workflow_steps:
found_in_current = True
break
if not found_in_current:
diff -r 66038323cb438066cb76e255fd436fc245056bfd -r 058c507d05fd41694261f9f679b7cccafe295faf lib/galaxy/webapps/community/model/mapping.py
--- a/lib/galaxy/webapps/community/model/mapping.py
+++ b/lib/galaxy/webapps/community/model/mapping.py
@@ -194,7 +194,7 @@
categories=relation( RepositoryCategoryAssociation ),
ratings=relation( RepositoryRatingAssociation, order_by=desc( RepositoryRatingAssociation.table.c.update_time ), backref="repositories" ),
user=relation( User.mapper ),
- downloadable_revisions=relation( RepositoryMetadata, order_by=desc( RepositoryMetadata.table.c.id ) ) ) )
+ downloadable_revisions=relation( RepositoryMetadata, order_by=desc( RepositoryMetadata.table.c.update_time ) ) ) )
assign_mapper( context, RepositoryMetadata, RepositoryMetadata.table,
properties=dict( repository=relation( Repository ) ) )
diff -r 66038323cb438066cb76e255fd436fc245056bfd -r 058c507d05fd41694261f9f679b7cccafe295faf templates/webapps/community/repository/common.mako
--- a/templates/webapps/community/repository/common.mako
+++ b/templates/webapps/community/repository/common.mako
@@ -181,7 +181,7 @@
<a href="${h.url_for( controller='workflow', action='view_workflow', repository_metadata_id=repository_metadata_id, workflow_name=encode( workflow_name ), webapp=webapp )}">${workflow_name}</a></td><td>
- %if 'steps' in workflow_dict:
+ %if steps:
${len( steps )}
%else:
unknown
diff -r 66038323cb438066cb76e255fd436fc245056bfd -r 058c507d05fd41694261f9f679b7cccafe295faf templates/webapps/community/repository/view_changelog.mako
--- a/templates/webapps/community/repository/view_changelog.mako
+++ b/templates/webapps/community/repository/view_changelog.mako
@@ -107,7 +107,7 @@
else:
ctx_parent_str = "%s:%s" % ( ctx_parent_rev, ctx_parent )
if changeset[ 'has_metadata' ]:
- has_metadata_str = 'Repository metadata is associated with this change set.'
+ has_metadata_str = '<table border="0" bgcolor="#D8D8D8"><tr><td>Repository metadata is associated with this change set.</td></tr></table>'
else:
has_metadata_str = ''
%>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

21 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/66038323cb43/
changeset: 66038323cb43
user: dan
date: 2011-11-21 15:50:37
summary: Update modified generic GATK 1.3 arguments.
affected #: 13 files
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/count_covariates.xml
--- a/tools/gatk/count_covariates.xml
+++ b/tools/gatk/count_covariates.xml
@@ -46,9 +46,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -67,7 +71,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -213,9 +217,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -237,7 +248,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/depth_of_coverage.xml
--- a/tools/gatk/depth_of_coverage.xml
+++ b/tools/gatk/depth_of_coverage.xml
@@ -37,9 +37,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -58,7 +62,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -229,9 +233,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -253,7 +264,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/indel_realigner.xml
--- a/tools/gatk/indel_realigner.xml
+++ b/tools/gatk/indel_realigner.xml
@@ -38,9 +38,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -59,7 +63,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -176,9 +180,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -200,7 +211,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/realigner_target_creator.xml
--- a/tools/gatk/realigner_target_creator.xml
+++ b/tools/gatk/realigner_target_creator.xml
@@ -35,9 +35,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -56,7 +60,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -162,9 +166,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -186,7 +197,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/table_recalibration.xml
--- a/tools/gatk/table_recalibration.xml
+++ b/tools/gatk/table_recalibration.xml
@@ -23,9 +23,13 @@
'
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -44,7 +48,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -144,9 +148,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -168,7 +179,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/unified_genotyper.xml
--- a/tools/gatk/unified_genotyper.xml
+++ b/tools/gatk/unified_genotyper.xml
@@ -41,9 +41,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -62,7 +66,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -201,9 +205,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -225,7 +236,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_annotator.xml
--- a/tools/gatk/variant_annotator.xml
+++ b/tools/gatk/variant_annotator.xml
@@ -76,9 +76,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -97,7 +101,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -262,9 +266,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -286,7 +297,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_apply_recalibration.xml
--- a/tools/gatk/variant_apply_recalibration.xml
+++ b/tools/gatk/variant_apply_recalibration.xml
@@ -24,9 +24,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -45,7 +49,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -126,9 +130,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -150,7 +161,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_combine.xml
--- a/tools/gatk/variant_combine.xml
+++ b/tools/gatk/variant_combine.xml
@@ -30,9 +30,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -51,7 +55,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -146,9 +150,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -170,7 +181,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_eval.xml
--- a/tools/gatk/variant_eval.xml
+++ b/tools/gatk/variant_eval.xml
@@ -43,9 +43,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -64,7 +68,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -204,9 +208,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -228,7 +239,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_filtration.xml
--- a/tools/gatk/variant_filtration.xml
+++ b/tools/gatk/variant_filtration.xml
@@ -37,9 +37,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -58,7 +62,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -160,9 +164,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -184,7 +195,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variant_recalibrator.xml
--- a/tools/gatk/variant_recalibrator.xml
+++ b/tools/gatk/variant_recalibrator.xml
@@ -45,9 +45,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -66,7 +70,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -390,9 +394,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -414,7 +425,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
diff -r fd76a44745351d69f8abbccc14fec833e83b469a -r 66038323cb438066cb76e255fd436fc245056bfd tools/gatk/variants_validate.xml
--- a/tools/gatk/variants_validate.xml
+++ b/tools/gatk/variants_validate.xml
@@ -30,9 +30,13 @@
##start standard gatk options
#if $gatk_param_type.gatk_param_type_selector == "advanced":
- #for $sample_metadata in $gatk_param_type.sample_metadata:
- -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
#end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
#for $read_filter in $gatk_param_type.read_filter:
-p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
###raise Exception( str( dir( $read_filter ) ) )
@@ -51,7 +55,7 @@
-d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
#end for
- -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
-p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
#if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
@@ -130,9 +134,16 @@
<!-- Do nothing here --></when><when value="advanced">
- <repeat name="sample_metadata" title="Sample Metadata">
- <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ <repeat name="pedigree" title="Pedigree file">
+ <param name="pedigree_file" type="data" format="txt" label="Pedigree files for samples" /></repeat>
+ <repeat name="pedigree_string_repeat" title="Pedigree string">
+ <param name="pedigree_string" type="text" value="" label="Pedigree string for samples" />
+ </repeat>
+ <param name="pedigree_validation_type" type="select" label="How strict should we be in validating the pedigree information">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="SILENT">SILENT</option>
+ </param><repeat name="read_filter" title="Read Filter"><conditional name="read_filter_type"><param name="read_filter_type_selector" type="select" label="Read Filter Type">
@@ -154,7 +165,7 @@
<param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" /></repeat>
- <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <param name="interval_set_rule" type="select" label="Interval set rule"><option value="UNION" selected="True">UNION</option><option value="INTERSECTION">INTERSECTION</option></param>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: dan: Add picard_FastqToSam.xml and picard_SamToFastq.xml to tool_conf.xml.main.
by Bitbucket 21 Nov '11
by Bitbucket 21 Nov '11
21 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/fd76a4474535/
changeset: fd76a4474535
user: dan
date: 2011-11-21 14:52:13
summary: Add picard_FastqToSam.xml and picard_SamToFastq.xml to tool_conf.xml.main.
affected #: 3 files
diff -r 830ea4877c7b05d1b58c3771be9adb481639d83b -r fd76a44745351d69f8abbccc14fec833e83b469a tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -406,6 +406,9 @@
<tool file="ngs_rna/filter_transcripts_via_tracking.xml" /></section><section name="NGS: Picard (beta)" id="picard_beta">
+ <label text="Conversion" id="picard_conversion"/>
+ <tool file="picard/picard_FastqToSam.xml" />
+ <tool file="picard/picard_SamToFastq.xml" /><label text="QC/Metrics for sam/bam" id="qcsambam"/><tool file="picard/picard_BamIndexStats.xml" /><tool file="picard/rgPicardASMetrics.xml" />
diff -r 830ea4877c7b05d1b58c3771be9adb481639d83b -r fd76a44745351d69f8abbccc14fec833e83b469a tools/picard/picard_FastqToSam.xml
--- a/tools/picard/picard_FastqToSam.xml
+++ b/tools/picard/picard_FastqToSam.xml
@@ -1,6 +1,7 @@
<tool id="picard_FastqToSam" name="FASTQ to BAM" version="1.56.0"><description>creates an unaligned BAM file</description>
- <requirements><requirement type="package">picard</requirement></requirements>
+ <requirements><requirement type="package" version="1.56.0">picard</requirement></requirements>
+ <!-- Dan Blankenberg --><command>java -XX:DefaultMaxRAMFraction=1 -XX:+UseParallelGC
-jar "${GALAXY_DATA_INDEX_DIR}/shared/jars/picard/FastqToSam.jar"
FASTQ="${input_fastq1}"
diff -r 830ea4877c7b05d1b58c3771be9adb481639d83b -r fd76a44745351d69f8abbccc14fec833e83b469a tools/picard/picard_SamToFastq.xml
--- a/tools/picard/picard_SamToFastq.xml
+++ b/tools/picard/picard_SamToFastq.xml
@@ -1,6 +1,7 @@
<tool id="picard_SamToFastq" name="SAM to FASTQ" version="1.56.0"><description>creates a FASTQ file</description>
- <requirements><requirement type="package">picard</requirement></requirements>
+ <requirements><requirement type="package" version="1.56.0">picard</requirement></requirements>
+ <!-- Dan Blankenberg --><command>java -XX:DefaultMaxRAMFraction=1 -XX:+UseParallelGC
-jar "${GALAXY_DATA_INDEX_DIR}/shared/jars/picard/SamToFastq.jar"
INPUT="${input_sam}"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Fix Tile variable name so that it connotes what it actually stores.
by Bitbucket 19 Nov '11
by Bitbucket 19 Nov '11
19 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/830ea4877c7b/
changeset: 830ea4877c7b
user: jgoecks
date: 2011-11-20 00:15:24
summary: Fix Tile variable name so that it connotes what it actually stores.
affected #: 1 file
diff -r dfdd405b4115c1cf06bf7f362854088478560922 -r 830ea4877c7b05d1b58c3771be9adb481639d83b static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -2301,7 +2301,7 @@
this.high = (index + 1) * DENSITY * resolution;
this.resolution = resolution;
// Wrap element in div for background.
- this.canvas = $("<div class='track-tile'/>").append(canvas);
+ this.html_elt = $("<div class='track-tile'/>").append(canvas);
this.data = data;
this.stale = false;
};
@@ -2324,13 +2324,13 @@
this.message = message;
this.feature_mapper = feature_mapper;
- // Add message + action icons to tile's "canvas" TODO: rename canvas to element/html or something similar.
+ // Add message + action icons to tile's html.
if (this.message) {
var
- canvas = this.canvas.children()[0],
+ canvas = this.html_elt.children()[0],
message_div = $("<div/>").addClass("tile-message").text(this.message).
// -1 to account for border.
- css({'height': ERROR_PADDING-1, 'width': canvas.width}).prependTo(this.canvas),
+ css({'height': ERROR_PADDING-1, 'width': canvas.width}).prependTo(this.html_elt),
more_down_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(message_div),
more_across_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(message_div);
@@ -2371,7 +2371,7 @@
// Only show popups in Pack mode.
if (tile.mode !== "Pack") { return; }
- $(this.canvas).hover( function() {
+ $(this.html_elt).hover( function() {
this.hovered = true;
$(this).mousemove();
}, function() {
@@ -2435,14 +2435,14 @@
}
// Attach popup to canvas's parent.
- popup.appendTo($(tile.canvas).parent());
+ popup.appendTo($(tile.html_elt).parent());
// Offsets are within canvas, but popup must be positioned relative to parent element.
// parseInt strips "px" from left, top measurements. +7 so that mouse pointer does not
// overlap popup.
var
- popupX = offsetX + parseInt( tile.canvas.css("left") ) - popup.width() / 2,
- popupY = offsetY + parseInt( tile.canvas.css("top") ) + 7;
+ popupX = offsetX + parseInt( tile.html_elt.css("left") ) - popup.width() / 2,
+ popupY = offsetY + parseInt( tile.html_elt.css("top") ) + 7;
popup.css("left", popupX + "px").css("top", popupY + "px")
}
else if (!e.isPropagationStopped()) {
@@ -2959,7 +2959,7 @@
tile = tiles[tile_index];
if (!tile.message) {
// Need to align with other tile(s) that have message(s).
- tile.canvas.css("padding-top", ERROR_PADDING);
+ tile.html_elt.css("padding-top", ERROR_PADDING);
}
}
}
@@ -3031,7 +3031,7 @@
show_tile: function(tile, parent_element, w_scale) {
var
track = this,
- tile_element = tile.canvas;
+ tile_element = tile.html_elt;
//
// Show/move tile element.
@@ -3456,8 +3456,8 @@
for (var i = 0; i < tiles.length; i++) {
var tile = tiles[i];
if (tile.max_val !== global_max) {
- tile.canvas.remove();
- track.draw_helper(true, width, tile.index, tile.resolution, tile.canvas.parent(), w_scale, [], { max: global_max });
+ tile.html_elt.remove();
+ track.draw_helper(true, width, tile.index, tile.resolution, tile.html_elt.parent(), w_scale, [], { max: global_max });
}
}
}
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Fix GFFDataProvider bugs introduced in 9b7d5c1c0be6.
by Bitbucket 19 Nov '11
by Bitbucket 19 Nov '11
19 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/dfdd405b4115/
changeset: dfdd405b4115
user: jgoecks
date: 2011-11-19 21:28:16
summary: Fix GFFDataProvider bugs introduced in 9b7d5c1c0be6.
affected #: 1 file
diff -r 4c6f1004071d5055c9bf2d0b35f5bfe077b79e1e -r dfdd405b4115c1cf06bf7f362854088478560922 lib/galaxy/visualization/tracks/data_providers.py
--- a/lib/galaxy/visualization/tracks/data_providers.py
+++ b/lib/galaxy/visualization/tracks/data_providers.py
@@ -99,7 +99,7 @@
pass
- def get_data( self, chrom, start, end, start_val=0, max_vals=None, **kwargs ):
+ def get_data( self, chrom, start, end, start_val=0, max_vals=sys.maxint, **kwargs ):
"""
Returns data in region defined by chrom, start, and end. start_val and
max_vals are used to denote the data to return: start_val is the first element to
@@ -914,7 +914,15 @@
"""
start, end = int( start ), int( end )
source = open( self.original_dataset.file_name )
- return GFFReaderWrapper( source, fix_strand=True )
+
+ def features_in_region_iter():
+ for feature in GFFReaderWrapper( source, fix_strand=True ):
+ # Only provide features that are in region.
+ feature_start, feature_end = convert_gff_coords_to_bed( [ feature.start, feature.end ] )
+ if feature.chrom != chrom or feature_start < start or feature_end > end:
+ continue
+ yield feature
+ return features_in_region_iter()
def process_data( self, iterator, start_val=0, max_vals=None, **kwargs ):
"""
@@ -931,9 +939,6 @@
message = ERROR_MAX_VALS % ( max_vals, "reads" )
break
- feature_start, feature_end = convert_gff_coords_to_bed( [ feature.start, feature.end ] )
- if feature.chrom != chrom or feature_start < start or feature_end > end:
- continue
payload = package_gff_feature( feature )
payload.insert( 0, offset )
results.append( payload )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/4c6f1004071d/
changeset: 4c6f1004071d
user: greg
date: 2011-11-18 22:44:10
summary: Add the ability to reset all metadata (for every change set) in a tool shed repository (currently restricted to an admin), and add a fix for checking security when making changes to tool shed repository information on the Manage repsoitory page.
affected #: 4 files
diff -r 07df6866125adb6f3723aec8303e9300338e4cdc -r 4c6f1004071d5055c9bf2d0b35f5bfe077b79e1e lib/galaxy/webapps/community/controllers/common.py
--- a/lib/galaxy/webapps/community/controllers/common.py
+++ b/lib/galaxy/webapps/community/controllers/common.py
@@ -343,6 +343,127 @@
mimetype=mimetype ) )
metadata_dict[ 'datatypes' ] = datatypes
return metadata_dict
+def generate_metadata_for_repository_tip( trans, id, ctx, changeset_revision, repo_dir ):
+ # Browse the repository tip files on disk to generate metadata. This is faster than
+ # the generate_metadata_for_changeset_revision() method below because fctx.data() does
+ # not have to be written to disk to load tools. also, since changeset_revision is the
+ # repository tip, we handle things like .loc.sample files here.
+ metadata_dict = {}
+ invalid_files = []
+ sample_files = []
+ datatypes_config = None
+ # Find datatypes_conf.xml if it exists.
+ for root, dirs, files in os.walk( repo_dir ):
+ if root.find( '.hg' ) < 0:
+ for name in files:
+ if name == 'datatypes_conf.xml':
+ datatypes_config = os.path.abspath( os.path.join( root, name ) )
+ break
+ if datatypes_config:
+ metadata_dict = generate_datatypes_metadata( trans, id, changeset_revision, datatypes_config, metadata_dict )
+ # Find all special .sample files.
+ for root, dirs, files in os.walk( repo_dir ):
+ if root.find( '.hg' ) < 0:
+ for name in files:
+ if name.endswith( '.sample' ):
+ sample_files.append( os.path.abspath( os.path.join( root, name ) ) )
+ # Find all tool configs and exported workflows.
+ for root, dirs, files in os.walk( repo_dir ):
+ if root.find( '.hg' ) < 0 and root.find( 'hgrc' ) < 0:
+ if '.hg' in dirs:
+ dirs.remove( '.hg' )
+ for name in files:
+ # Find all tool configs.
+ if name != 'datatypes_conf.xml' and name.endswith( '.xml' ):
+ full_path = os.path.abspath( os.path.join( root, name ) )
+ try:
+ tool = load_tool( trans, full_path )
+ valid = True
+ except Exception, e:
+ valid = False
+ invalid_files.append( ( name, str( e ) ) )
+ if valid and tool is not None:
+ can_set_metadata, invalid_files = check_tool_input_params( trans, name, tool, sample_files, invalid_files )
+ if can_set_metadata:
+ # Update the list of metadata dictionaries for tools in metadata_dict.
+ tool_config = os.path.join( root, name )
+ metadata_dict = generate_tool_metadata( trans, id, changeset_revision, tool_config, tool, metadata_dict )
+ # Find all exported workflows
+ elif name.endswith( '.ga' ):
+ try:
+ full_path = os.path.abspath( os.path.join( root, name ) )
+ # Convert workflow data from json
+ fp = open( full_path, 'rb' )
+ workflow_text = fp.read()
+ fp.close()
+ exported_workflow_dict = from_json_string( workflow_text )
+ if 'a_galaxy_workflow' in exported_workflow_dict and exported_workflow_dict[ 'a_galaxy_workflow' ] == 'true':
+ # Update the list of metadata dictionaries for workflows in metadata_dict.
+ metadata_dict = generate_workflow_metadata( trans, id, changeset_revision, exported_workflow_dict, metadata_dict )
+ except Exception, e:
+ invalid_files.append( ( name, str( e ) ) )
+ return metadata_dict, invalid_files
+def generate_metadata_for_changeset_revision( trans, id, ctx, changeset_revision, repo_dir ):
+ # Browse repository files within a change set to generate metadata.
+ metadata_dict = {}
+ invalid_files = []
+ sample_files = []
+ datatypes_config = None
+ # Find datatypes_conf.xml if it exists.
+ for filename in ctx:
+ if filename == 'datatypes_conf.xml':
+ fctx = ctx[ filename ]
+ datatypes_config = fctx.data()
+ break
+ if datatypes_config:
+ metadata_dict = generate_datatypes_metadata( trans, id, changeset_revision, datatypes_config, metadata_dict )
+ # Get all tool config file names from the hgweb url, something like:
+ # /repos/test/convert_chars1/file/e58dcf0026c7/convert_characters.xml
+ for filename in ctx:
+ # Find all tool configs.
+ if filename != 'datatypes_conf.xml' and filename.endswith( '.xml' ):
+ fctx = ctx[ filename ]
+ # Write the contents of the old tool config to a temporary file.
+ # TODO: figure out how to enhance the load_tool method so that a
+ # temporary disk file is not necessary in order to pass the tool
+ # config.
+ fh = tempfile.NamedTemporaryFile( 'w' )
+ tmp_filename = fh.name
+ fh.close()
+ fh = open( tmp_filename, 'w' )
+ fh.write( fctx.data() )
+ fh.close()
+ try:
+ tool = load_tool( trans, tmp_filename )
+ valid = True
+ except Exception, e:
+ invalid_files.append( ( filename, str( e ) ) )
+ valid = False
+ if valid and tool is not None:
+ # Update the list of metadata dictionaries for tools in metadata_dict. Note that filename
+ # here is the relative path to the config file within the change set context, something
+ # like filtering.xml, but when the change set was the repository tip, the value was
+ # something like database/community_files/000/repo_1/filtering.xml. This shouldn't break
+ # anything, but may result in a bit of confusion when maintaining the code / data over time.
+ # IMPORTANT NOTE: Here we are assuming that since the current change set is not the repository
+ # tip, we do not have to handle any .loc.sample files since they would have been handled previously.
+ metadata_dict = generate_tool_metadata( trans, id, changeset_revision, filename, tool, metadata_dict )
+ try:
+ os.unlink( tmp_filename )
+ except:
+ pass
+ # Find all exported workflows.
+ elif filename.endswith( '.ga' ):
+ try:
+ fctx = ctx[ filename ]
+ workflow_text = fctx.data()
+ exported_workflow_dict = from_json_string( workflow_text )
+ if 'a_galaxy_workflow' in exported_workflow_dict and exported_workflow_dict[ 'a_galaxy_workflow' ] == 'true':
+ # Update the list of metadata dictionaries for workflows in metadata_dict.
+ metadata_dict = generate_workflow_metadata( trans, id, changeset_revision, exported_workflow_dict, metadata_dict )
+ except Exception, e:
+ invalid_files.append( ( name, str( e ) ) )
+ return metadata_dict, invalid_files
def set_repository_metadata( trans, id, changeset_revision, **kwd ):
"""Set repository metadata"""
message = ''
@@ -350,102 +471,12 @@
repository = get_repository( trans, id )
repo_dir = repository.repo_path
repo = hg.repository( get_configured_ui(), repo_dir )
- invalid_files = []
- sample_files = []
- datatypes_config = None
ctx = get_changectx_for_changeset( trans, repo, changeset_revision )
if ctx is not None:
- metadata_dict = {}
if changeset_revision == repository.tip:
- # Find datatypes_conf.xml if it exists.
- for root, dirs, files in os.walk( repo_dir ):
- if root.find( '.hg' ) < 0:
- for name in files:
- if name == 'datatypes_conf.xml':
- datatypes_config = os.path.abspath( os.path.join( root, name ) )
- break
- if datatypes_config:
- metadata_dict = generate_datatypes_metadata( trans, id, changeset_revision, datatypes_config, metadata_dict )
- # Find all special .sample files.
- for root, dirs, files in os.walk( repo_dir ):
- if root.find( '.hg' ) < 0:
- for name in files:
- if name.endswith( '.sample' ):
- sample_files.append( os.path.abspath( os.path.join( root, name ) ) )
- # Find all tool configs and exported workflows.
- for root, dirs, files in os.walk( repo_dir ):
- if root.find( '.hg' ) < 0 and root.find( 'hgrc' ) < 0:
- if '.hg' in dirs:
- dirs.remove( '.hg' )
- for name in files:
- # Find all tool configs.
- if name != 'datatypes_conf.xml' and name.endswith( '.xml' ):
- full_path = os.path.abspath( os.path.join( root, name ) )
- try:
- tool = load_tool( trans, full_path )
- valid = True
- except Exception, e:
- valid = False
- invalid_files.append( ( name, str( e ) ) )
- if valid and tool is not None:
- can_set_metadata, invalid_files = check_tool_input_params( trans, name, tool, sample_files, invalid_files )
- if can_set_metadata:
- # Update the list of metadata dictionaries for tools in metadata_dict.
- tool_config = os.path.join( root, name )
- metadata_dict = generate_tool_metadata( trans, id, changeset_revision, tool_config, tool, metadata_dict )
- # Find all exported workflows
- elif name.endswith( '.ga' ):
- try:
- full_path = os.path.abspath( os.path.join( root, name ) )
- # Convert workflow data from json
- fp = open( full_path, 'rb' )
- workflow_text = fp.read()
- fp.close()
- exported_workflow_dict = from_json_string( workflow_text )
- if exported_workflow_dict[ 'a_galaxy_workflow' ] == 'true':
- # Update the list of metadata dictionaries for workflows in metadata_dict.
- metadata_dict = generate_workflow_metadata( trans, id, changeset_revision, exported_workflow_dict, metadata_dict )
- except Exception, e:
- invalid_files.append( ( name, str( e ) ) )
+ metadata_dict, invalid_files = generate_metadata_for_repository_tip( trans, id, ctx, changeset_revision, repo_dir )
else:
- # Find all special .sample files first.
- for filename in ctx:
- if filename.endswith( '.sample' ):
- sample_files.append( os.path.abspath( filename ) )
- # Get all tool config file names from the hgweb url, something like:
- # /repos/test/convert_chars1/file/e58dcf0026c7/convert_characters.xml
- for filename in ctx:
- # Find all tool configs - we do not have to update metadata for workflows or datatypes in anything
- # but repository tips (handled above) since at the time this code was written, no workflows or
- # dataytpes_conf.xml files exist in tool shed repositories, so they can only be added in future tips.
- if filename.endswith( '.xml' ):
- fctx = ctx[ filename ]
- # Write the contents of the old tool config to a temporary file.
- fh = tempfile.NamedTemporaryFile( 'w' )
- tmp_filename = fh.name
- fh.close()
- fh = open( tmp_filename, 'w' )
- fh.write( fctx.data() )
- fh.close()
- try:
- tool = load_tool( trans, tmp_filename )
- valid = True
- except Exception, e:
- invalid_files.append( ( filename, str( e ) ) )
- valid = False
- if valid and tool is not None:
- can_set_metadata, invalid_files = check_tool_input_params( trans, filename, tool, sample_files, invalid_files )
- if can_set_metadata:
- # Update the list of metadata dictionaries for tools in metadata_dict. Note that filename
- # here is the relative path to the config file within the change set context, something
- # like filtering.xml, but when the change set was the repository tip, the value was
- # something like database/community_files/000/repo_1/filtering.xml. This shouldn't break
- # anything, but may result in a bit of confusion when maintaining the code / data over time.
- metadata_dict = generate_tool_metadata( trans, id, changeset_revision, filename, tool, metadata_dict )
- try:
- os.unlink( tmp_filename )
- except:
- pass
+ metadata_dict, invalid_files = generate_metadata_for_changeset_revision( trans, id, ctx, changeset_revision, repo_dir )
if metadata_dict:
if changeset_revision == repository.tip:
if new_tool_metadata_required( trans, id, metadata_dict ) or new_workflow_metadata_required( trans, id, metadata_dict ):
@@ -467,8 +498,8 @@
trans.sa_session.add( repository_metadata )
trans.sa_session.flush()
else:
- message = "Revision '%s' includes no tools or exported workflows for which metadata can be defined " % str( changeset_revision )
- message += "so this revision cannot be automatically installed into a local Galaxy instance."
+ message = "Revision '%s' includes no tools, datatypes or exported workflows for which metadata can " % str( changeset_revision )
+ message += "be defined so this revision cannot be automatically installed into a local Galaxy instance."
status = "error"
else:
# change_set is None
diff -r 07df6866125adb6f3723aec8303e9300338e4cdc -r 4c6f1004071d5055c9bf2d0b35f5bfe077b79e1e lib/galaxy/webapps/community/controllers/repository.py
--- a/lib/galaxy/webapps/community/controllers/repository.py
+++ b/lib/galaxy/webapps/community/controllers/repository.py
@@ -1311,15 +1311,14 @@
if params.get( 'edit_repository_button', False ):
flush_needed = False
# TODO: add a can_manage in the security agent.
- if user != repository.user or not trans.user_is_admin():
+ if not ( user.email == repository.user.email or trans.user_is_admin() ):
message = "You are not the owner of this repository, so you cannot manage it."
- status = error
return trans.response.send_redirect( web.url_for( controller='repository',
action='view_repository',
id=id,
webapp='community',
message=message,
- status=status ) )
+ status='error' ) )
if description != repository.description:
repository.description = description
flush_needed = True
@@ -1447,6 +1446,10 @@
changesets = []
for changeset in repo.changelog:
ctx = repo.changectx( changeset )
+ if get_repository_metadata_by_changeset_revision( trans, id, str( ctx ) ):
+ has_metadata = True
+ else:
+ has_metadata = False
t, tz = ctx.date()
date = datetime( *time.gmtime( float( t ) - tz )[:6] )
display_date = date.strftime( "%Y-%m-%d" )
@@ -1457,7 +1460,8 @@
'description' : ctx.description(),
'files' : ctx.files(),
'user' : ctx.user(),
- 'parent' : ctx.parents()[0] }
+ 'parent' : ctx.parents()[0],
+ 'has_metadata' : has_metadata }
# Make sure we'll view latest changeset first.
changesets.insert( 0, change_dict )
is_malicious = change_set_is_malicious( trans, id, repository.tip )
@@ -1608,6 +1612,190 @@
message=message,
status=status ) )
@web.expose
+ def reset_all_metadata( self, trans, id, **kwd ):
+ params = util.Params( kwd )
+ message = util.restore_text( params.get( 'message', '' ) )
+ status = params.get( 'status', 'done' )
+ repository = get_repository( trans, id )
+ repo_dir = repository.repo_path
+ repo = hg.repository( get_configured_ui(), repo_dir )
+ if len( repo ) == 1:
+ message, status = set_repository_metadata( trans, id, repository.tip, **kwd )
+ else:
+ # The following will be a list of changeset_revisions that have been created or updated.
+ # When the following loop completes, we'll delete all repository_metadata records for
+ # this repository that do not have a changeset_revision value in this list.
+ changeset_revisions = []
+ repository_metadata_tup_for_comparison = ()
+ for changeset in repo.changelog:
+ ctx = repo.changectx( changeset )
+ current_changeset_revision = str( ctx )
+ ctx = get_changectx_for_changeset( trans, repo, current_changeset_revision )
+ current_metadata_dict, invalid_files = generate_metadata_for_changeset_revision( trans, id, ctx, current_changeset_revision, repo_dir )
+ if current_metadata_dict:
+ if repository_metadata_tup_for_comparison:
+ ancestor_changeset_revision, ancestor_metadata_dict = repository_metadata_tup_for_comparison
+ comparison = self.__compare_changeset_revisions( ancestor_changeset_revision,
+ ancestor_metadata_dict,
+ current_changeset_revision,
+ current_metadata_dict )
+ # The value of comparsion will be one of:
+ # 'no metadata' - no metadata for either ancestor or current, so continue from current
+ # 'equal' - ancestor metadata is equivalent to current metadata, so continue from current
+ # 'subset' - ancestor metadata is a subset of current metadata, so continue from current
+ # 'not equal and not subset' - ancestor metadata is neither equal to nor a subset of current
+ # metadata, so persist ancestor metadata.
+ if comparison in [ 'no metadata', 'equal', 'subset' ]:
+ repository_metadata_tup_for_comparison = ( current_changeset_revision, current_metadata_dict )
+ elif comparison == 'not equal and not subset':
+ self.__create_or_update_repository_metadata( trans, id, repository, ancestor_changeset_revision, ancestor_metadata_dict )
+ # keep track of the changeset_revisions that we've persisted.
+ changeset_revisions.append( ancestor_changeset_revision )
+ repository_metadata_tup_for_comparison = ()
+ else:
+ # We're at the first change set in the change log.
+ repository_metadata_tup_for_comparison = ( current_changeset_revision, current_metadata_dict )
+ if not ctx.children():
+ # We're at the end of the change log.
+ self.__create_or_update_repository_metadata( trans, id, repository, current_changeset_revision, current_metadata_dict )
+ changeset_revisions.append( current_changeset_revision )
+ elif ancestor_metadata_dict:
+ # Our current change set has no metadata, but our ancestor change set has metadata, so save it.
+ self.__create_or_update_repository_metadata( trans, id, repository, ancestor_changeset_revision, ancestor_metadata_dict )
+ # keep track of the changeset_revisions that we've persisted.
+ changeset_revisions.append( ancestor_changeset_revision )
+ repository_metadata_tup_for_comparison = ()
+ ancestor_changeset_revision = current_changeset_revision
+ ancestor_metadata_dict = current_metadata_dict
+ self.__clean_repository_metadata( trans, id, changeset_revisions )
+ if not message:
+ message = "Repository metadata has been reset."
+ status = 'done'
+ return trans.response.send_redirect( web.url_for( controller='repository',
+ action='manage_repository',
+ id=id,
+ message=message,
+ status=status ) )
+ def __clean_repository_metadata( self, trans, id, changeset_revisions ):
+ # Delete all repository_metadata reecords associated with the repository
+ # that have a changeset_revision that is not in changeset_revisions.
+ for repository_metadata in trans.sa_session.query( trans.model.RepositoryMetadata ) \
+ .filter( trans.model.RepositoryMetadata.table.c.repository_id == trans.security.decode_id( id ) ):
+ if repository_metadata.changeset_revision not in changeset_revisions:
+ trans.sa_session.delete( repository_metadata )
+ trans.sa_session.flush()
+ def __create_or_update_repository_metadata( self, trans, id, repository, changeset_revision, metadata_dict ):
+ repository_metadata = get_repository_metadata_by_changeset_revision( trans, id, changeset_revision )
+ if repository_metadata:
+ # Update RepositoryMetadata.metadata.
+ repository_metadata.metadata = metadata_dict
+ trans.sa_session.add( repository_metadata )
+ trans.sa_session.flush()
+ else:
+ # Create a new repository_metadata table row.
+ repository_metadata = trans.model.RepositoryMetadata( repository.id, changeset_revision, metadata_dict )
+ trans.sa_session.add( repository_metadata )
+ trans.sa_session.flush()
+ def __compare_changeset_revisions( self, ancestor_changeset_revision, ancestor_metadata_dict, current_changeset_revision, current_metadata_dict ):
+ # The metadata associated with ancestor_changeset_revision is ancestor_metadata_dict. This changeset_revision
+ # is an ancestor of current_changeset_revision which is associated with current_metadata_dict.
+ # Get information about tools.
+ if 'tools' in ancestor_metadata_dict:
+ ancestor_tools = ancestor_metadata_dict[ 'tools' ]
+ else:
+ ancestor_tools = []
+ if 'tools' in current_metadata_dict:
+ current_tools = current_metadata_dict[ 'tools' ]
+ else:
+ current_tools = []
+ ancestor_guids = []
+ for tool_dict in ancestor_tools:
+ ancestor_guids.append( tool_dict[ 'guid' ] )
+ ancestor_guids.sort()
+ current_guids = []
+ for tool_dict in current_tools:
+ current_guids.append( tool_dict[ 'guid' ] )
+ current_guids.sort()
+ # Get information about workflows.
+ if 'workflows' in ancestor_metadata_dict:
+ ancestor_workflows = ancestor_metadata_dict[ 'workflows' ]
+ else:
+ ancestor_workflows = []
+ if 'workflows' in current_metadata_dict:
+ current_workflows = current_metadata_dict[ 'workflows' ]
+ else:
+ current_workflows = []
+ # Get information about datatypes.
+ if 'datatypes' in ancestor_metadata_dict:
+ ancestor_datatypes = ancestor_metadata_dict[ 'datatypes' ]
+ else:
+ ancestor_datatypes = []
+ if 'datatypes' in current_metadata_dict:
+ current_datatypes = current_metadata_dict[ 'datatypes' ]
+ else:
+ current_datatypes = []
+ # Handle case where no metadata exists for either changeset.
+ if not ( ancestor_guids or current_guids or ancestor_workflows or current_workflows or ancestor_datatypes or current_datatypes ):
+ return 'no metadata'
+ workflow_comparison = self.__compare_workflows( ancestor_workflows, current_workflows )
+ datatype_comparison = self.__compare_datatypes( ancestor_datatypes, current_datatypes )
+ # Handle case where all metadata is the same.
+ if ancestor_guids == current_guids and workflow_comparison == 'equal' and datatype_comparison == 'equal':
+ return 'equal'
+ if workflow_comparison == 'subset' and datatype_comparison == 'subset':
+ is_subset = True
+ for guid in ancestor_guids:
+ if guid not in current_guids:
+ is_subset = False
+ break
+ if is_subset:
+ return 'subset'
+ return 'not equal and not subset'
+ def __compare_workflows( self, ancestor_workflows, current_workflows ):
+ # Determine if ancestor_workflows is the same as current_workflows
+ # or if ancestor_workflows is a subset of current_workflows.
+ if len( ancestor_workflows ) <= len( current_workflows ):
+ for ancestor_workflow in ancestor_workflows:
+ # Currently the only way to differentiate workflows is by name.
+ ancestor_workflow_name = ancestor_workflow[ 'name' ]
+ found_in_current = False
+ for current_workflow in current_workflows:
+ if current_workflow[ 'name' ] == ancestor_workflow_name:
+ found_in_current = True
+ break
+ if not found_in_current:
+ return 'not equal and not subset'
+ if len( ancestor_workflows ) == len( current_workflows ):
+ return 'equal'
+ else:
+ return 'subset'
+ return 'not equal and not subset'
+ def __compare_datatypes( self, ancestor_datatypes, current_datatypes ):
+ # Determine if ancestor_datatypes is the same as current_datatypes
+ # or if ancestor_datatypes is a subset of current_datatypes. Each
+ # datatype dict looks something like:
+ # {"dtype": "galaxy.datatypes.images:Image", "extension": "pdf", "mimetype": "application/pdf"}
+ if len( ancestor_datatypes ) <= len( current_datatypes ):
+ for ancestor_datatype in ancestor_datatypes:
+ # Currently the only way to differentiate datatypes is by name.
+ ancestor_datatype_dtype = ancestor_datatype[ 'dtype' ]
+ ancestor_datatype_extension = ancestor_datatype[ 'extension' ]
+ ancestor_datatype_mimetype = ancestor_datatype[ 'mimetype' ]
+ found_in_current = False
+ for current_datatype in current_datatypes:
+ if current_datatype[ 'dtype' ] == ancestor_datatype_dtype and \
+ current_datatype[ 'extension' ] == ancestor_datatype_extension and \
+ current_datatype[ 'mimetype' ] == ancestor_datatype_mimetype:
+ found_in_current = True
+ break
+ if not found_in_current:
+ return 'not equal and not subset'
+ if len( ancestor_datatypes ) == len( current_datatypes ):
+ return 'equal'
+ else:
+ return 'subset'
+ return 'not equal and not subset'
+ @web.expose
def display_tool( self, trans, repository_id, tool_config, changeset_revision, **kwd ):
params = util.Params( kwd )
message = util.restore_text( params.get( 'message', '' ) )
diff -r 07df6866125adb6f3723aec8303e9300338e4cdc -r 4c6f1004071d5055c9bf2d0b35f5bfe077b79e1e templates/webapps/community/repository/manage_repository.mako
--- a/templates/webapps/community/repository/manage_repository.mako
+++ b/templates/webapps/community/repository/manage_repository.mako
@@ -20,6 +20,7 @@
else:
browse_label = 'Browse repository tip files'
can_set_malicious = metadata and can_set_metadata and is_admin and changeset_revision == repository.tip
+ can_reset_all_metadata = is_admin and len( repo ) > 0
%><%!
@@ -88,6 +89,9 @@
%if can_contact_owner:
<a class="action-button" href="${h.url_for( controller='repository', action='contact_owner', id=trans.security.encode_id( repository.id ), webapp='community' )}">Contact repository owner</a>
%endif
+ %if can_reset_all_metadata:
+ <a class="action-button" href="${h.url_for( controller='repository', action='reset_all_metadata', id=trans.security.encode_id( repository.id ), webapp='community' )}">Reset all repository metadata</a>
+ %endif
%if can_download:
<a class="action-button" href="${h.url_for( controller='repository', action='download', repository_id=trans.app.security.encode_id( repository.id ), changeset_revision=changeset_revision, file_type='gz' )}">Download as a .tar.gz file</a><a class="action-button" href="${h.url_for( controller='repository', action='download', repository_id=trans.app.security.encode_id( repository.id ), changeset_revision=changeset_revision, file_type='bz2' )}">Download as a .tar.bz2 file</a>
diff -r 07df6866125adb6f3723aec8303e9300338e4cdc -r 4c6f1004071d5055c9bf2d0b35f5bfe077b79e1e templates/webapps/community/repository/view_changelog.mako
--- a/templates/webapps/community/repository/view_changelog.mako
+++ b/templates/webapps/community/repository/view_changelog.mako
@@ -106,6 +106,10 @@
ctx_parent_str = 'None'
else:
ctx_parent_str = "%s:%s" % ( ctx_parent_rev, ctx_parent )
+ if changeset[ 'has_metadata' ]:
+ has_metadata_str = 'Repository metadata is associated with this change set.'
+ else:
+ has_metadata_str = ''
%><% display_date = changeset[ 'display_date' ] %>
%if test_date != display_date:
@@ -113,6 +117,11 @@
%endif
<tr><td>
+ %if is_admin and has_metadata_str:
+ <div class="form-row">
+ ${has_metadata_str}
+ </div>
+ %endif
<div class="form-row"><label>Description:</label><a href="${h.url_for( controller='repository', action='view_changeset', id=trans.security.encode_id( repository.id ), ctx_str=ctx_str )}">${changeset[ 'description' ]}</a>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/07df6866125a/
changeset: 07df6866125a
user: richard_burhans
date: 2011-11-18 22:15:11
summary: Bug fixes for the ctd tool
affected #: 2 files
diff -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 -r 07df6866125adb6f3723aec8303e9300338e4cdc tools/human_genome_variation/ctd.pl
--- a/tools/human_genome_variation/ctd.pl
+++ b/tools/human_genome_variation/ctd.pl
@@ -38,8 +38,8 @@
}
close FH or die "Couldn't close $in, $!\n";
-my $url = 'http://ctd.mdibl.org/tools/batchQuery.go';
-#my $url = 'http://globin.bx.psu.edu/cgi-bin/print-query';
+my $url = 'http://ctdbase.org/tools/batchQuery.go';
+#my $url = 'http://ctd.mdibl.org/tools/batchQuery.go';
my $d = join("\n", @data);
#list maintains order, where hash doesn't
#order matters at ctd
diff -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 -r 07df6866125adb6f3723aec8303e9300338e4cdc tools/human_genome_variation/ctd.xml
--- a/tools/human_genome_variation/ctd.xml
+++ b/tools/human_genome_variation/ctd.xml
@@ -29,13 +29,10 @@
<when value="genes"><!-- do nothing --></when>
- <when value="pathways">
+ <when value="pathways_inferred"><!-- do nothing --></when>
- <when value="pathways_curated">
- <!-- do nothing -->
- </when>
- <when value="pathways_inferred">
+ <when value="pathways_enriched"><!-- do nothing --></when><when value="diseases">
@@ -247,7 +244,7 @@
start with '-' are a subset of a choice above them; you can chose
either the general interaction type or a more specific one.
-Home page: http://ctd.mdibl.org/
+Home page: http://ctdbase.org
.. _tabular: ./static/formatHelp.html#tab
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Update Cuffdiff test data to be compatible with v1.1.0
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/511941e1aea7/
changeset: 511941e1aea7
user: jgoecks
date: 2011-11-18 21:14:39
summary: Update Cuffdiff test data to be compatible with v1.1.0
affected #: 11 files
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out1.txt
--- a/test-data/cuffdiff_out1.txt
+++ b/test-data/cuffdiff_out1.txt
@@ -1,99 +1,91 @@
-test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 ln(fold_change) test_stat p_value q_value significant
-TCONS_00000001 XLOC_000001 - chr1:3204754-3204833 q1 q2 OK 0 5.42247e+06 1.79769e+308 1.79769e+308 0.0786496 0.550547 no
-TCONS_00000002 XLOC_000002 - chr1:3111449-3111490 q1 q2 OK 0 1.39654e+08 1.79769e+308 1.79769e+308 0.158655 0.777411 no
-TCONS_00000003 XLOC_000003 - chr1:3111545-3111576 q1 q2 OK 0 0 0 0 1 1.24051 no
-TCONS_00000004 XLOC_000007 - chr1:3189810-3190789 q1 q2 OK 2.49256e+06 5.29759e+06 0.753941 -1.11223 0.266041 0.790061 no
-TCONS_00000005 XLOC_000007 - chr1:3189810-3190789 q1 q2 OK 0 0 0 0 1 1.25641 no
-TCONS_00000006 XLOC_000007 - chr1:3189810-3190789 q1 q2 OK 0 0 0 0 1 1.27273 no
-TCONS_00000007 XLOC_000009 - chr1:3191512-3192077 q1 q2 OK 2.77423e+06 6.7156e+06 0.88406 -1.27269 0.203128 0.663553 no
-TCONS_00000008 XLOC_000009 - chr1:3191512-3192077 q1 q2 OK 1.11098e+07 3.03942e+07 1.00642 -0.806752 0.419809 1.17547 no
-TCONS_00000009 XLOC_000011 - chr1:3192441-3192494 q1 q2 OK 0 5.56023e+07 1.79769e+308 1.79769e+308 0.0416323 0.582852 no
-TCONS_00000010 XLOC_000012 - chr1:3192550-3192629 q1 q2 OK 0 2.71123e+06 1.79769e+308 1.79769e+308 0.158655 0.598008 no
-TCONS_00000011 XLOC_000014 - chr1:3192731-3192811 q1 q2 OK 0 0 0 0 1 1.28947 no
-TCONS_00000012 XLOC_000015 - chr1:3192940-3193042 q1 q2 OK 0 3.93442e+06 1.79769e+308 1.79769e+308 0.0416319 0.679987 no
-TCONS_00000013 XLOC_000016 - chr1:3194185-3194226 q1 q2 OK 0 1.39654e+08 1.79769e+308 1.79769e+308 0.158655 0.818327 no
-TCONS_00000014 XLOC_000017 - chr1:3194302-3194329 q1 q2 OK 0 0 0 0 1 1.30667 no
-TCONS_00000015 XLOC_000019 - chr1:3195083-3195110 q1 q2 OK 0 0 0 0 1 1.32432 no
-TCONS_00000016 XLOC_000020 - chr1:3195450-3195477 q1 q2 OK 0 0 0 0 1 1.34247 no
-TCONS_00000017 XLOC_000021 - chr1:3197089-3197116 q1 q2 OK 0 0 0 0 1 1.36111 no
-TCONS_00000018 XLOC_000022 - chr1:3197246-3197273 q1 q2 OK 0 0 0 0 1 1.38028 no
-TCONS_00000019 XLOC_000023 - chr1:3197346-3197373 q1 q2 OK 0 0 0 0 1 1.4 no
-TCONS_00000020 XLOC_000025 - chr1:3200022-3200191 q1 q2 OK 460348 460348 0 0 1 1.42029 no
-TCONS_00000021 XLOC_000026 - chr1:3200325-3200352 q1 q2 OK 0 0 0 0 1 1.44118 no
-TCONS_00000022 XLOC_000029 - chr1:3201077-3201481 q1 q2 OK 37206.6 186033 1.60944 -2.18263 0.0290634 2.84821 no
-TCONS_00000023 XLOC_000031 - chr1:3201672-3201699 q1 q2 OK 0 0 0 0 1 1.46269 no
-TCONS_00000024 XLOC_000034 - chr1:3212213-3212292 q1 q2 OK 0 5.42247e+06 1.79769e+308 1.79769e+308 0.0786496 0.642305 no
-TCONS_00000025 XLOC_000035 - chr1:3212367-3212439 q1 q2 OK 0 1.60978e+07 1.79769e+308 1.79769e+308 0.0416319 1.35997 no
-TCONS_00000026 XLOC_000037 - chr1:3213095-3213192 q1 q2 OK 2.38694e+06 1.19347e+06 -0.693147 0.565952 0.571426 1.55555 no
-TCONS_00000027 XLOC_000040 - chr1:3242633-3242923 q1 q2 OK 27029.9 243269 2.19722 -1.95282 0.0508409 0.553601 no
-TCONS_00000028 XLOC_000042 - chr1:3243018-3243079 q1 q2 OK 0 1.73712e+07 1.79769e+308 1.79769e+308 0.0786496 0.700696 no
-TCONS_00000029 XLOC_000044 - chr1:3243347-3243401 q1 q2 OK 0 3.32455e+07 1.79769e+308 1.79769e+308 0.0786496 0.770766 no
-TCONS_00000030 XLOC_000046 - chr1:3256974-3257011 q1 q2 OK 0 1.34946e+09 1.79769e+308 1.79769e+308 0.0786496 0.481729 no
-TCONS_00000031 XLOC_000048 - chr1:3277190-3277218 q1 q2 OK 0 0 0 0 1 1.48485 no
-TCONS_00000032 XLOC_000049 - chr1:3277913-3278390 q1 q2 OK 0 0 0 0 1 1.50769 no
-TCONS_00000033 XLOC_000052 - chr1:3280686-3280741 q1 q2 OK 0 1.49798e+07 1.79769e+308 1.79769e+308 0.158655 0.86379 no
-TCONS_00000034 XLOC_000057 - chr1:3290488-3290553 q1 q2 OK 0 6.39146e+06 1.79769e+308 1.79769e+308 0.158655 0.676009 no
-TCONS_00000035 XLOC_000059 - chr1:3290919-3291273 q1 q2 OK 6.40392e+06 0 -1.79769e+308 -1.79769e+308 0.0814259 0.469396 no
-TCONS_00000036 XLOC_000059 - chr1:3290919-3291273 q1 q2 OK 1.2964e+06 1.46758e+06 0.124018 -0.0764318 0.939076 2.42183 no
-TCONS_00000037 XLOC_000060 - chr1:3299443-3299664 q1 q2 OK 0 0 0 0 1 1.53125 no
-TCONS_00000038 XLOC_000062 - chr1:3300051-3300078 q1 q2 OK 0 0 0 0 1 1.55556 no
-TCONS_00000039 XLOC_000065 - chr1:3318999-3319051 q1 q2 OK 0 0 0 0 1 1.58065 no
-TCONS_00000040 XLOC_000068 - chr1:3355887-3356119 q1 q2 OK 0 0 0 0 1 1 no
-TCONS_00000041 XLOC_000071 - chr1:3363214-3363278 q1 q2 OK 0 0 0 0 1 1.01031 no
-TCONS_00000042 XLOC_000073 - chr1:3363753-3363849 q1 q2 OK 0 0 0 0 1 1.02083 no
-TCONS_00000043 XLOC_000075 - chr1:3367135-3367162 q1 q2 OK 0 0 0 0 1 1.03158 no
-TCONS_00000044 XLOC_000077 - chr1:3367333-3367382 q1 q2 OK 0 0 0 0 1 1.04255 no
-TCONS_00000045 XLOC_000080 - chr1:3377211-3377262 q1 q2 OK 0 0 0 0 1 1.05376 no
-TCONS_00000046 XLOC_000083 - chr1:3391325-3391352 q1 q2 OK 0 0 0 0 1 1.06522 no
-TCONS_00000047 XLOC_000084 - chr1:3435841-3435880 q1 q2 OK 0 0 0 0 1 1.07692 no
-TCONS_00000048 XLOC_000085 - chr1:3447761-3447788 q1 q2 OK 0 0 0 0 1 1.08889 no
-TCONS_00000049 XLOC_000086 - chr1:3450906-3450965 q1 q2 OK 0 0 0 0 1 1.10112 no
-TCONS_00000050 XLOC_000087 - chr1:3451051-3451109 q1 q2 OK 0 0 0 0 1 1.11364 no
-TCONS_00000051 XLOC_000004 - chr1:3174765-3174792 q1 q2 OK 0 0 0 0 1 1.12644 no
-TCONS_00000052 XLOC_000005 - chr1:3187401-3187428 q1 q2 OK 0 0 0 0 1 1.13953 no
-TCONS_00000053 XLOC_000006 - chr1:3188521-3188548 q1 q2 OK 0 0 0 0 1 1.15294 no
-TCONS_00000054 XLOC_000007 - chr1:3189810-3190789 q1 q2 OK 171639 239968 0.335111 -1.01532 0.309956 0.893401 no
-TCONS_00000055 XLOC_000008 - chr1:3190858-3191434 q1 q2 OK 227564 240951 0.0571584 -0.115428 0.908106 2.40525 no
-TCONS_00000056 XLOC_000009 - chr1:3191512-3192077 q1 q2 OK 175955 319423 0.596288 -1.18662 0.235378 0.720847 no
-TCONS_00000057 XLOC_000010 - chr1:3192250-3192336 q1 q2 OK 1.91712e+06 1.91712e+06 0 0 1 1.16667 no
-TCONS_00000058 XLOC_000013 - chr1:3192649-3192676 q1 q2 OK 0 0 0 0 1 1.18072 no
-TCONS_00000059 XLOC_000018 - chr1:3194706-3194733 q1 q2 OK 0 0 0 0 1 1.19512 no
-TCONS_00000060 XLOC_000024 - chr1:3197425-3197452 q1 q2 OK 0 0 0 0 1 1.20988 no
-TCONS_00000061 XLOC_000027 - chr1:3200430-3200457 q1 q2 OK 0 0 0 0 1 1.225 no
-TCONS_00000062 XLOC_000028 - chr1:3201007-3201039 q1 q2 OK 0 0 0 0 1 2.27907 no
-TCONS_00000063 XLOC_000029 - chr1:3201077-3201481 q1 q2 OK 0 0 0 0 1 2.51282 no
-TCONS_00000064 XLOC_000030 - chr1:3201596-3201666 q1 q2 OK 9.11292e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 0.513844 no
-TCONS_00000065 XLOC_000032 - chr1:3201725-3201809 q1 q2 OK 8.43162e+06 0 -1.79769e+308 -1.79769e+308 0.0416319 0.815985 no
-TCONS_00000066 XLOC_000033 - chr1:3211521-3211561 q1 q2 OK 0 0 0 0 1 2.13043 no
-TCONS_00000067 XLOC_000036 - chr1:3212717-3212801 q1 q2 OK 2.10791e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.647842 no
-TCONS_00000068 XLOC_000038 - chr1:3240606-3240633 q1 q2 OK 0 0 0 0 1 2.45 no
-TCONS_00000069 XLOC_000039 - chr1:3242479-3242512 q1 q2 OK 0 0 0 0 1 2.39024 no
-TCONS_00000070 XLOC_000041 - chr1:3242924-3243005 q1 q2 OK 0 0 0 0 1 2.33333 no
-TCONS_00000071 XLOC_000043 - chr1:3243108-3243154 q1 q2 OK 4.79961e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.740391 no
-TCONS_00000072 XLOC_000045 - chr1:3254079-3254106 q1 q2 OK 0 0 0 0 1 2.22727 no
-TCONS_00000073 XLOC_000047 - chr1:3277155-3277182 q1 q2 OK 0 0 0 0 1 2.17778 no
-TCONS_00000074 XLOC_000049 - chr1:3277913-3278390 q1 q2 OK 127495 27320.3 -1.54045 2.07809 0.037701 1.84735 no
-TCONS_00000075 XLOC_000050 - chr1:3280117-3280144 q1 q2 OK 0 0 0 0 1 2.08511 no
-TCONS_00000076 XLOC_000051 - chr1:3280498-3280525 q1 q2 OK 0 0 0 0 1 2.04167 no
-TCONS_00000077 XLOC_000053 - chr1:3282504-3282531 q1 q2 OK 0 0 0 0 1 2 no
-TCONS_00000078 XLOC_000054 - chr1:3282650-3282677 q1 q2 OK 0 0 0 0 1 1.96 no
-TCONS_00000079 XLOC_000055 - chr1:3282760-3282832 q1 q2 OK 0 0 0 0 1 1.92157 no
-TCONS_00000080 XLOC_000056 - chr1:3284966-3284993 q1 q2 OK 0 0 0 0 1 1.88462 no
-TCONS_00000081 XLOC_000058 - chr1:3290798-3290859 q1 q2 OK 8.68561e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.706737 no
-TCONS_00000082 XLOC_000059 - chr1:3290919-3291273 q1 q2 OK 95795.4 28263.3 -1.22065 1.20083 0.229815 0.726513 no
-TCONS_00000083 XLOC_000060 - chr1:3299443-3299664 q1 q2 OK 449954 89990.7 -1.60944 1.40539 0.159905 0.540368 no
-TCONS_00000084 XLOC_000061 - chr1:3299691-3299733 q1 q2 OK 0 0 0 0 1 1.84906 no
-TCONS_00000085 XLOC_000063 - chr1:3307748-3307775 q1 q2 OK 0 0 0 0 1 1.81481 no
-TCONS_00000086 XLOC_000064 - chr1:3318620-3318647 q1 q2 OK 0 0 0 0 1 1.78182 no
-TCONS_00000087 XLOC_000066 - chr1:3330527-3330554 q1 q2 OK 0 0 0 0 1 1.75 no
-TCONS_00000088 XLOC_000067 - chr1:3351240-3351311 q1 q2 OK 4.27915e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.555293 no
-TCONS_00000089 XLOC_000068 - chr1:3355887-3356119 q1 q2 OK 281197 0 -1.79769e+308 -1.79769e+308 0.0416319 1.01998 no
-TCONS_00000090 XLOC_000069 - chr1:3356180-3356225 q1 q2 OK 5.72196e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.57586 no
-TCONS_00000091 XLOC_000070 - chr1:3363076-3363176 q1 q2 OK 2.1224e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 0.592897 no
-TCONS_00000092 XLOC_000072 - chr1:3363387-3363446 q1 q2 OK 3.08417e+07 0 -1.79769e+308 -1.79769e+308 0.0416323 0.509995 no
-TCONS_00000093 XLOC_000074 - chr1:3364871-3364919 q1 q2 OK 3.50371e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.621929 no
-TCONS_00000094 XLOC_000076 - chr1:3367210-3367237 q1 q2 OK 0 0 0 0 1 1.7193 no
-TCONS_00000095 XLOC_000078 - chr1:3369580-3369607 q1 q2 OK 0 0 0 0 1 1.68966 no
-TCONS_00000096 XLOC_000079 - chr1:3375001-3375028 q1 q2 OK 0 0 0 0 1 1.66102 no
-TCONS_00000097 XLOC_000081 - chr1:3379888-3379915 q1 q2 OK 0 0 0 0 1 1.63333 no
-TCONS_00000098 XLOC_000082 - chr1:3386739-3386836 q1 q2 OK 0 0 0 0 1 1.60656 no
+test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 log2(fold_change) test_stat p_value q_value significant
+TCONS_00000001 XLOC_000001 Xkr4 chr1:3204754-3204833 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000002 XLOC_000002 - chr1:3111449-3111490 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TCONS_00000003 XLOC_000003 - chr1:3111545-3111576 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000009 XLOC_000011 - chr1:3192441-3192494 q1 q2 OK 0 5.68095e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000010 XLOC_000012 - chr1:3192550-3192629 q1 q2 OK 0 4.15515e+06 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TCONS_00000011 XLOC_000014 - chr1:3192731-3192811 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000012 XLOC_000015 - chr1:3192940-3193042 q1 q2 OK 0 6.02976e+06 1.79769e+308 1.79769e+308 0.0512352 0.150149 no
+TCONS_00000013 XLOC_000016 - chr1:3194185-3194226 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TCONS_00000014 XLOC_000017 - chr1:3194302-3194329 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000015 XLOC_000019 - chr1:3195083-3195110 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000016 XLOC_000020 - chr1:3195450-3195477 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000017 XLOC_000021 - chr1:3197089-3197116 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000018 XLOC_000022 - chr1:3197246-3197273 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000019 XLOC_000023 - chr1:3197346-3197373 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000020 XLOC_000025 - chr1:3200022-3200191 q1 q2 NOTEST 959058 705514 -0.442943 0.376027 0.706897 1 no
+TCONS_00000021 XLOC_000026 - chr1:3200325-3200352 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000022 XLOC_000029 - chr1:3201077-3201481 q1 q2 NOTEST 77513.9 285108 1.87898 -1.76152 0.0781506 1 no
+TCONS_00000023 XLOC_000031 - chr1:3201672-3201699 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000024 XLOC_000034 Xkr4 chr1:3212213-3212292 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000025 XLOC_000035 Xkr4 chr1:3212367-3212439 q1 q2 OK 0 2.4671e+07 1.79769e+308 1.79769e+308 0.0512352 0.150149 no
+TCONS_00000026 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 NOTEST 3.99739e+06 1.82908e+06 -1.12794 0.781831 0.434314 1 no
+TCONS_00000027 XLOC_000040 Xkr4 chr1:3242633-3242923 q1 q2 NOTEST 56312.4 372827 2.72698 -1.67622 0.0936947 1 no
+TCONS_00000028 XLOC_000042 Xkr4 chr1:3243018-3243079 q1 q2 OK 0 2.66226e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000029 XLOC_000044 Xkr4 chr1:3243347-3243401 q1 q2 OK 0 5.0951e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000030 XLOC_000046 Xkr4 chr1:3256974-3257011 q1 q2 OK 0 2.06814e+09 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TCONS_00000031 XLOC_000048 Xkr4 chr1:3277190-3277218 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000033 XLOC_000052 Xkr4 chr1:3280686-3280741 q1 q2 OK 0 2.29576e+07 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TCONS_00000034 XLOC_000057 Xkr4 chr1:3290488-3290553 q1 q2 OK 0 9.79535e+06 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TCONS_00000037 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000038 XLOC_000062 Xkr4 chr1:3300051-3300078 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000039 XLOC_000065 Xkr4 chr1:3318999-3319051 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000040 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000041 XLOC_000071 Xkr4 chr1:3363214-3363278 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000042 XLOC_000073 Xkr4 chr1:3363753-3363849 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000043 XLOC_000075 Xkr4 chr1:3367135-3367162 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000044 XLOC_000077 Xkr4 chr1:3367333-3367382 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000045 XLOC_000080 Xkr4 chr1:3377211-3377262 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000046 XLOC_000083 Xkr4 chr1:3391325-3391352 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000047 XLOC_000084 Xkr4 chr1:3435841-3435880 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000048 XLOC_000085 Xkr4 chr1:3447761-3447788 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000049 XLOC_000086 Xkr4 chr1:3450906-3450965 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000050 XLOC_000087 Xkr4 chr1:3451051-3451109 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000051 XLOC_000004 - chr1:3174765-3174792 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000052 XLOC_000005 - chr1:3187401-3187428 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000053 XLOC_000006 - chr1:3188521-3188548 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000054 XLOC_000007 - chr1:3189810-3190789 q1 q2 NOTEST 368900 429265 0.21864 -0.483034 0.629072 1 no
+TCONS_00000055 XLOC_000008 - chr1:3190858-3191434 q1 q2 NOTEST 404373 338500 -0.25653 0.342922 0.731657 1 no
+TCONS_00000056 XLOC_000009 - chr1:3191512-3192077 q1 q2 NOTEST 402276 686974 0.772069 -1.24554 0.212932 1 no
+TCONS_00000057 XLOC_000010 - chr1:3192250-3192336 q1 q2 NOTEST 3.994e+06 2.93812e+06 -0.442943 0.217099 0.828131 1 no
+TCONS_00000058 XLOC_000013 - chr1:3192649-3192676 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000059 XLOC_000018 - chr1:3194706-3194733 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000060 XLOC_000024 - chr1:3197425-3197452 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000062 XLOC_000027 - chr1:3200430-3200457 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000063 XLOC_000028 - chr1:3201007-3201039 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000065 XLOC_000030 - chr1:3201596-3201666 q1 q2 OK 1.89853e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.150149 no
+TCONS_00000066 XLOC_000032 - chr1:3201725-3201809 q1 q2 OK 1.31744e+07 0 -1.79769e+308 -1.79769e+308 0.0416323 0.150149 no
+TCONS_00000067 XLOC_000033 Xkr4 chr1:3211521-3211561 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000068 XLOC_000036 Xkr4 chr1:3212717-3212801 q1 q2 NOTEST 4.39147e+06 0 -1.79769e+308 -1.79769e+308 0.158655 1 no
+TCONS_00000069 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 NOTEST 1.36901e+06 0 0 0 1 1 no
+TCONS_00000070 XLOC_000038 Xkr4 chr1:3240606-3240633 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000071 XLOC_000039 Xkr4 chr1:3242479-3242512 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000072 XLOC_000041 Xkr4 chr1:3242924-3243005 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000073 XLOC_000043 Xkr4 chr1:3243108-3243154 q1 q2 OK 9.99919e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TCONS_00000074 XLOC_000045 Xkr4 chr1:3254079-3254106 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000075 XLOC_000047 Xkr4 chr1:3277155-3277182 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000076 XLOC_000049 Xkr4 chr1:3277913-3278390 q1 q2 NOTEST 265614 41870.3 -2.66534 2.48499 0.0129556 1 no
+TCONS_00000077 XLOC_000050 Xkr4 chr1:3280117-3280144 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000078 XLOC_000051 Xkr4 chr1:3280498-3280525 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000079 XLOC_000053 Xkr4 chr1:3282504-3282531 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000080 XLOC_000054 Xkr4 chr1:3282650-3282677 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000081 XLOC_000055 Xkr4 chr1:3282760-3282832 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000082 XLOC_000056 Xkr4 chr1:3284966-3284993 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000083 XLOC_000058 Xkr4 chr1:3290798-3290859 q1 q2 OK 1.8095e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TCONS_00000084 XLOC_000059 Xkr4 chr1:3290919-3291273 q1 q2 NOTEST 342218 75524 -2.17991 1.96162 0.049807 1 no
+TCONS_00000085 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 937403 137917 -2.76487 1.66807 0.0953024 1 no
+TCONS_00000086 XLOC_000061 Xkr4 chr1:3299691-3299733 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000087 XLOC_000063 Xkr4 chr1:3307748-3307775 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000088 XLOC_000064 Xkr4 chr1:3318620-3318647 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000089 XLOC_000066 Xkr4 chr1:3330527-3330554 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000090 XLOC_000067 Xkr4 chr1:3351240-3351311 q1 q2 OK 8.91489e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TCONS_00000091 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 585828 0 -1.79769e+308 -1.79769e+308 0.0512352 1 no
+TCONS_00000092 XLOC_000069 Xkr4 chr1:3356180-3356225 q1 q2 OK 1.19208e+08 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TCONS_00000093 XLOC_000070 Xkr4 chr1:3363076-3363176 q1 q2 NOTEST 4.42166e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 1 no
+TCONS_00000094 XLOC_000072 Xkr4 chr1:3363387-3363446 q1 q2 OK 4.28358e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.150149 no
+TCONS_00000095 XLOC_000074 Xkr4 chr1:3364871-3364919 q1 q2 OK 7.29939e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TCONS_00000096 XLOC_000076 Xkr4 chr1:3367210-3367237 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000097 XLOC_000078 Xkr4 chr1:3369580-3369607 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000098 XLOC_000079 Xkr4 chr1:3375001-3375028 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000099 XLOC_000081 Xkr4 chr1:3379888-3379915 q1 q2 NOTEST 0 0 0 0 1 1 no
+TCONS_00000100 XLOC_000082 Xkr4 chr1:3386739-3386836 q1 q2 NOTEST 0 0 0 0 1 1 no
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out10.txt
--- a/test-data/cuffdiff_out10.txt
+++ b/test-data/cuffdiff_out10.txt
@@ -1,1 +1,88 @@
test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 sqrt(JS) test_stat p_value q_value significant
+XLOC_000001 XLOC_000001 Xkr4 chr1:3204754-3204833 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000002 XLOC_000002 - chr1:3111449-3111490 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000003 XLOC_000003 - chr1:3111545-3111576 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000004 XLOC_000004 - chr1:3174765-3174792 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000005 XLOC_000005 - chr1:3187401-3187428 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000006 XLOC_000006 - chr1:3188521-3188548 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000007 XLOC_000007 - chr1:3189810-3190789 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000008 XLOC_000008 - chr1:3190858-3191434 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000009 XLOC_000009 - chr1:3191512-3192077 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000010 XLOC_000010 - chr1:3192250-3192336 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000011 XLOC_000011 - chr1:3192441-3192494 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000012 XLOC_000012 - chr1:3192550-3192629 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000013 XLOC_000013 - chr1:3192649-3192676 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000014 XLOC_000014 - chr1:3192731-3192811 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000015 XLOC_000015 - chr1:3192940-3193042 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000016 XLOC_000016 - chr1:3194185-3194226 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000017 XLOC_000017 - chr1:3194302-3194329 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000018 XLOC_000018 - chr1:3194706-3194733 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000019 XLOC_000019 - chr1:3195083-3195110 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000020 XLOC_000020 - chr1:3195450-3195477 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000021 XLOC_000021 - chr1:3197089-3197116 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000022 XLOC_000022 - chr1:3197246-3197273 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000023 XLOC_000023 - chr1:3197346-3197373 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000024 XLOC_000024 - chr1:3197425-3197452 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000025 XLOC_000025 - chr1:3200022-3200191 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000026 XLOC_000026 - chr1:3200325-3200352 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000027 XLOC_000027 - chr1:3200430-3200457 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000028 XLOC_000028 - chr1:3201007-3201039 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000029 XLOC_000029 - chr1:3201077-3201481 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000030 XLOC_000030 - chr1:3201596-3201666 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000031 XLOC_000031 - chr1:3201672-3201699 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000032 XLOC_000032 - chr1:3201725-3201809 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000033 XLOC_000033 Xkr4 chr1:3211521-3211561 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000034 XLOC_000034 Xkr4 chr1:3212213-3212292 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000035 XLOC_000035 Xkr4 chr1:3212367-3212439 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000036 XLOC_000036 Xkr4 chr1:3212717-3212801 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000037 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 FAIL 0 0 0 0 0 1 no
+XLOC_000038 XLOC_000038 Xkr4 chr1:3240606-3240633 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000039 XLOC_000039 Xkr4 chr1:3242479-3242512 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000040 XLOC_000040 Xkr4 chr1:3242633-3242923 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000041 XLOC_000041 Xkr4 chr1:3242924-3243005 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000042 XLOC_000042 Xkr4 chr1:3243018-3243079 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000043 XLOC_000043 Xkr4 chr1:3243108-3243154 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000044 XLOC_000044 Xkr4 chr1:3243347-3243401 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000045 XLOC_000045 Xkr4 chr1:3254079-3254106 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000046 XLOC_000046 Xkr4 chr1:3256974-3257011 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000047 XLOC_000047 Xkr4 chr1:3277155-3277182 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000048 XLOC_000048 Xkr4 chr1:3277190-3277218 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000049 XLOC_000049 Xkr4 chr1:3277913-3278390 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000050 XLOC_000050 Xkr4 chr1:3280117-3280144 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000051 XLOC_000051 Xkr4 chr1:3280498-3280525 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000052 XLOC_000052 Xkr4 chr1:3280686-3280741 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000053 XLOC_000053 Xkr4 chr1:3282504-3282531 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000054 XLOC_000054 Xkr4 chr1:3282650-3282677 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000055 XLOC_000055 Xkr4 chr1:3282760-3282832 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000056 XLOC_000056 Xkr4 chr1:3284966-3284993 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000057 XLOC_000057 Xkr4 chr1:3290488-3290553 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000058 XLOC_000058 Xkr4 chr1:3290798-3290859 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000059 XLOC_000059 Xkr4 chr1:3290919-3291273 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000060 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000061 XLOC_000061 Xkr4 chr1:3299691-3299733 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000062 XLOC_000062 Xkr4 chr1:3300051-3300078 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000063 XLOC_000063 Xkr4 chr1:3307748-3307775 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000064 XLOC_000064 Xkr4 chr1:3318620-3318647 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000065 XLOC_000065 Xkr4 chr1:3318999-3319051 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000066 XLOC_000066 Xkr4 chr1:3330527-3330554 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000067 XLOC_000067 Xkr4 chr1:3351240-3351311 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000068 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000069 XLOC_000069 Xkr4 chr1:3356180-3356225 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000070 XLOC_000070 Xkr4 chr1:3363076-3363176 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000071 XLOC_000071 Xkr4 chr1:3363214-3363278 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000072 XLOC_000072 Xkr4 chr1:3363387-3363446 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000073 XLOC_000073 Xkr4 chr1:3363753-3363849 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000074 XLOC_000074 Xkr4 chr1:3364871-3364919 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000075 XLOC_000075 Xkr4 chr1:3367135-3367162 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000076 XLOC_000076 Xkr4 chr1:3367210-3367237 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000077 XLOC_000077 Xkr4 chr1:3367333-3367382 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000078 XLOC_000078 Xkr4 chr1:3369580-3369607 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000079 XLOC_000079 Xkr4 chr1:3375001-3375028 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000080 XLOC_000080 Xkr4 chr1:3377211-3377262 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000081 XLOC_000081 Xkr4 chr1:3379888-3379915 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000082 XLOC_000082 Xkr4 chr1:3386739-3386836 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000083 XLOC_000083 Xkr4 chr1:3391325-3391352 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000084 XLOC_000084 Xkr4 chr1:3435841-3435880 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000085 XLOC_000085 Xkr4 chr1:3447761-3447788 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000086 XLOC_000086 Xkr4 chr1:3450906-3450965 q1 q2 NOTEST 0 0 0 0 0 1 no
+XLOC_000087 XLOC_000087 Xkr4 chr1:3451051-3451109 q1 q2 NOTEST 0 0 0 0 0 1 no
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out2.txt
--- a/test-data/cuffdiff_out2.txt
+++ b/test-data/cuffdiff_out2.txt
@@ -1,88 +1,88 @@
-test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 ln(fold_change) test_stat p_value q_value significant
-XLOC_000001 XLOC_000001 - chr1:3204754-3204833 q1 q2 OK 0 5.42247e+06 1.79769e+308 1.79769e+308 0.0786496 0.456168 no
-XLOC_000002 XLOC_000002 - chr1:3111449-3111490 q1 q2 OK 0 1.39654e+08 1.79769e+308 1.79769e+308 0.158655 0.726474 no
-XLOC_000003 XLOC_000003 - chr1:3111545-3111576 q1 q2 OK 0 0 0 0 1 1.8125 no
-XLOC_000004 XLOC_000004 - chr1:3174765-3174792 q1 q2 OK 0 0 0 0 1 1.07407 no
-XLOC_000005 XLOC_000005 - chr1:3187401-3187428 q1 q2 OK 0 0 0 0 1 1.12987 no
-XLOC_000006 XLOC_000006 - chr1:3188521-3188548 q1 q2 OK 0 0 0 0 1 1.14474 no
-XLOC_000007 XLOC_000007 - chr1:3189810-3190789 q1 q2 OK 2.6642e+06 5.53756e+06 0.731649 -1.14241 0.253284 0.734525 no
-XLOC_000008 XLOC_000008 - chr1:3190858-3191434 q1 q2 OK 227564 240951 0.0571584 -0.115428 0.908106 2.3941 no
-XLOC_000009 XLOC_000009 - chr1:3191512-3192077 q1 q2 OK 1.406e+07 3.74293e+07 0.979119 -0.979283 0.32744 0.918944 no
-XLOC_000010 XLOC_000010 - chr1:3192250-3192336 q1 q2 OK 1.91712e+06 1.91712e+06 0 0 1 1.22535 no
-XLOC_000011 XLOC_000011 - chr1:3192441-3192494 q1 q2 OK 0 5.56023e+07 1.79769e+308 1.79769e+308 0.0416323 0.452751 no
-XLOC_000012 XLOC_000012 - chr1:3192550-3192629 q1 q2 OK 0 2.71123e+06 1.79769e+308 1.79769e+308 0.158655 0.55212 no
-XLOC_000013 XLOC_000013 - chr1:3192649-3192676 q1 q2 OK 0 0 0 0 1 1.26087 no
-XLOC_000014 XLOC_000014 - chr1:3192731-3192811 q1 q2 OK 0 0 0 0 1 1.55357 no
-XLOC_000015 XLOC_000015 - chr1:3192940-3193042 q1 q2 OK 0 3.93442e+06 1.79769e+308 1.79769e+308 0.0416319 0.603662 no
-XLOC_000016 XLOC_000016 - chr1:3194185-3194226 q1 q2 OK 0 1.39654e+08 1.79769e+308 1.79769e+308 0.158655 0.811942 no
-XLOC_000017 XLOC_000017 - chr1:3194302-3194329 q1 q2 OK 0 0 0 0 1 1.52632 no
-XLOC_000018 XLOC_000018 - chr1:3194706-3194733 q1 q2 OK 0 0 0 0 1 1.5 no
-XLOC_000019 XLOC_000019 - chr1:3195083-3195110 q1 q2 OK 0 0 0 0 1 1.47458 no
-XLOC_000020 XLOC_000020 - chr1:3195450-3195477 q1 q2 OK 0 0 0 0 1 1.45 no
-XLOC_000021 XLOC_000021 - chr1:3197089-3197116 q1 q2 OK 0 0 0 0 1 1.42623 no
-XLOC_000022 XLOC_000022 - chr1:3197246-3197273 q1 q2 OK 0 0 0 0 1 1.40323 no
-XLOC_000023 XLOC_000023 - chr1:3197346-3197373 q1 q2 OK 0 0 0 0 1 1.38095 no
-XLOC_000024 XLOC_000024 - chr1:3197425-3197452 q1 q2 OK 0 0 0 0 1 1.35938 no
-XLOC_000025 XLOC_000025 - chr1:3200022-3200191 q1 q2 OK 460348 460348 0 0 1 1.33846 no
-XLOC_000026 XLOC_000026 - chr1:3200325-3200352 q1 q2 OK 0 0 0 0 1 1.31818 no
-XLOC_000027 XLOC_000027 - chr1:3200430-3200457 q1 q2 OK 0 0 0 0 1 1.29851 no
-XLOC_000028 XLOC_000028 - chr1:3201007-3201039 q1 q2 OK 0 0 0 0 1 1.27941 no
-XLOC_000029 XLOC_000029 - chr1:3201077-3201481 q1 q2 OK 37206.6 186033 1.60944 -2.18263 0.0290634 2.52852 no
-XLOC_000030 XLOC_000030 - chr1:3201596-3201666 q1 q2 OK 9.11292e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 0.488751 no
-XLOC_000031 XLOC_000031 - chr1:3201672-3201699 q1 q2 OK 0 0 0 0 1 1.24286 no
-XLOC_000032 XLOC_000032 - chr1:3201725-3201809 q1 q2 OK 8.43162e+06 0 -1.79769e+308 -1.79769e+308 0.0416319 0.724395 no
-XLOC_000033 XLOC_000033 - chr1:3211521-3211561 q1 q2 OK 0 0 0 0 1 1.20833 no
-XLOC_000034 XLOC_000034 - chr1:3212213-3212292 q1 q2 OK 0 5.42247e+06 1.79769e+308 1.79769e+308 0.0786496 0.526347 no
-XLOC_000035 XLOC_000035 - chr1:3212367-3212439 q1 q2 OK 0 1.60978e+07 1.79769e+308 1.79769e+308 0.0416319 0.905494 no
-XLOC_000036 XLOC_000036 - chr1:3212717-3212801 q1 q2 OK 2.10791e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.530885 no
-XLOC_000037 XLOC_000037 - chr1:3213095-3213192 q1 q2 OK 2.38694e+06 1.19347e+06 -0.693147 0.565952 0.571426 1.55356 no
-XLOC_000038 XLOC_000038 - chr1:3240606-3240633 q1 q2 OK 0 0 0 0 1 1.19178 no
-XLOC_000039 XLOC_000039 - chr1:3242479-3242512 q1 q2 OK 0 0 0 0 1 1.17568 no
-XLOC_000040 XLOC_000040 - chr1:3242633-3242923 q1 q2 OK 27029.9 243269 2.19722 -1.95282 0.0508409 0.491462 no
-XLOC_000041 XLOC_000041 - chr1:3242924-3243005 q1 q2 OK 0 0 0 0 1 1.16 no
-XLOC_000042 XLOC_000042 - chr1:3243018-3243079 q1 q2 OK 0 1.73712e+07 1.79769e+308 1.79769e+308 0.0786496 0.57021 no
-XLOC_000043 XLOC_000043 - chr1:3243108-3243154 q1 q2 OK 4.79961e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.627409 no
-XLOC_000044 XLOC_000044 - chr1:3243347-3243401 q1 q2 OK 0 3.32455e+07 1.79769e+308 1.79769e+308 0.0786496 0.622047 no
-XLOC_000045 XLOC_000045 - chr1:3254079-3254106 q1 q2 OK 0 0 0 0 1 1.11538 no
-XLOC_000046 XLOC_000046 - chr1:3256974-3257011 q1 q2 OK 0 1.34946e+09 1.79769e+308 1.79769e+308 0.0786496 0.427657 no
-XLOC_000047 XLOC_000047 - chr1:3277155-3277182 q1 q2 OK 0 0 0 0 1 1.10127 no
-XLOC_000048 XLOC_000048 - chr1:3277190-3277218 q1 q2 OK 0 0 0 0 1 1.0875 no
-XLOC_000049 XLOC_000049 - chr1:3277913-3278390 q1 q2 OK 127495 27320.3 -1.54045 2.07809 0.037701 1.63999 no
-XLOC_000050 XLOC_000050 - chr1:3280117-3280144 q1 q2 OK 0 0 0 0 1 1.06098 no
-XLOC_000051 XLOC_000051 - chr1:3280498-3280525 q1 q2 OK 0 0 0 0 1 1.04819 no
-XLOC_000052 XLOC_000052 - chr1:3280686-3280741 q1 q2 OK 0 1.49798e+07 1.79769e+308 1.79769e+308 0.158655 0.766834 no
-XLOC_000053 XLOC_000053 - chr1:3282504-3282531 q1 q2 OK 0 0 0 0 1 1.03571 no
-XLOC_000054 XLOC_000054 - chr1:3282650-3282677 q1 q2 OK 0 0 0 0 1 1.02353 no
-XLOC_000055 XLOC_000055 - chr1:3282760-3282832 q1 q2 OK 0 0 0 0 1 1.01163 no
-XLOC_000056 XLOC_000056 - chr1:3284966-3284993 q1 q2 OK 0 0 0 0 1 1 no
-XLOC_000057 XLOC_000057 - chr1:3290488-3290553 q1 q2 OK 0 6.39146e+06 1.79769e+308 1.79769e+308 0.158655 0.69015 no
-XLOC_000058 XLOC_000058 - chr1:3290798-3290859 q1 q2 OK 8.68561e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.657286 no
-XLOC_000059 XLOC_000059 - chr1:3290919-3291273 q1 q2 OK 7.79612e+06 1.49584e+06 -1.65094 1.39409 0.16329 0.48987 no
-XLOC_000060 XLOC_000060 - chr1:3299443-3299664 q1 q2 OK 449954 89990.7 -1.60944 1.40539 0.159905 0.496847 no
-XLOC_000061 XLOC_000061 - chr1:3299691-3299733 q1 q2 OK 0 0 0 0 1 2.23077 no
-XLOC_000062 XLOC_000062 - chr1:3300051-3300078 q1 q2 OK 0 0 0 0 1 2.175 no
-XLOC_000063 XLOC_000063 - chr1:3307748-3307775 q1 q2 OK 0 0 0 0 1 2.12195 no
-XLOC_000064 XLOC_000064 - chr1:3318620-3318647 q1 q2 OK 0 0 0 0 1 2.07143 no
-XLOC_000065 XLOC_000065 - chr1:3318999-3319051 q1 q2 OK 0 0 0 0 1 1.97727 no
-XLOC_000066 XLOC_000066 - chr1:3330527-3330554 q1 q2 OK 0 0 0 0 1 1.93333 no
-XLOC_000067 XLOC_000067 - chr1:3351240-3351311 q1 q2 OK 4.27915e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.600131 no
-XLOC_000068 XLOC_000068 - chr1:3355887-3356119 q1 q2 OK 281197 0 -1.79769e+308 -1.79769e+308 0.0416319 1.20732 no
-XLOC_000069 XLOC_000069 - chr1:3356180-3356225 q1 q2 OK 5.72196e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.575125 no
-XLOC_000070 XLOC_000070 - chr1:3363076-3363176 q1 q2 OK 2.1224e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 0.684252 no
-XLOC_000071 XLOC_000071 - chr1:3363214-3363278 q1 q2 OK 0 0 0 0 1 1.58182 no
-XLOC_000072 XLOC_000072 - chr1:3363387-3363446 q1 q2 OK 3.08417e+07 0 -1.79769e+308 -1.79769e+308 0.0416323 0.517429 no
-XLOC_000073 XLOC_000073 - chr1:3363753-3363849 q1 q2 OK 0 0 0 0 1 1.61111 no
-XLOC_000074 XLOC_000074 - chr1:3364871-3364919 q1 q2 OK 3.50371e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.511222 no
-XLOC_000075 XLOC_000075 - chr1:3367135-3367162 q1 q2 OK 0 0 0 0 1 1.64151 no
-XLOC_000076 XLOC_000076 - chr1:3367210-3367237 q1 q2 OK 0 0 0 0 1 1.67308 no
-XLOC_000077 XLOC_000077 - chr1:3367333-3367382 q1 q2 OK 0 0 0 0 1 1.70588 no
-XLOC_000078 XLOC_000078 - chr1:3369580-3369607 q1 q2 OK 0 0 0 0 1 1.74 no
-XLOC_000079 XLOC_000079 - chr1:3375001-3375028 q1 q2 OK 0 0 0 0 1 1.77551 no
-XLOC_000080 XLOC_000080 - chr1:3377211-3377262 q1 q2 OK 0 0 0 0 1 1.85106 no
-XLOC_000081 XLOC_000081 - chr1:3379888-3379915 q1 q2 OK 0 0 0 0 1 1.8913 no
-XLOC_000082 XLOC_000082 - chr1:3386739-3386836 q1 q2 OK 0 0 0 0 1 2.02326 no
-XLOC_000083 XLOC_000083 - chr1:3391325-3391352 q1 q2 OK 0 0 0 0 1 2.28947 no
-XLOC_000084 XLOC_000084 - chr1:3435841-3435880 q1 q2 OK 0 0 0 0 1 2.35135 no
-XLOC_000085 XLOC_000085 - chr1:3447761-3447788 q1 q2 OK 0 0 0 0 1 2.41667 no
-XLOC_000086 XLOC_000086 - chr1:3450906-3450965 q1 q2 OK 0 0 0 0 1 2.48571 no
-XLOC_000087 XLOC_000087 - chr1:3451051-3451109 q1 q2 OK 0 0 0 0 1 2.55882 no
+test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 log2(fold_change) test_stat p_value q_value significant
+XLOC_000001 XLOC_000001 Xkr4 chr1:3204754-3204833 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000002 XLOC_000002 - chr1:3111449-3111490 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.16621 no
+XLOC_000003 XLOC_000003 - chr1:3111545-3111576 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000004 XLOC_000004 - chr1:3174765-3174792 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000005 XLOC_000005 - chr1:3187401-3187428 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000006 XLOC_000006 - chr1:3188521-3188548 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000007 XLOC_000007 - chr1:3189810-3190789 q1 q2 NOTEST 368900 429265 0.21864 -0.483034 0.629072 1 no
+XLOC_000008 XLOC_000008 - chr1:3190858-3191434 q1 q2 NOTEST 404373 338500 -0.25653 0.342922 0.731657 1 no
+XLOC_000009 XLOC_000009 - chr1:3191512-3192077 q1 q2 NOTEST 402276 686974 0.772069 -1.24554 0.212932 1 no
+XLOC_000010 XLOC_000010 - chr1:3192250-3192336 q1 q2 NOTEST 3.994e+06 2.93812e+06 -0.442943 0.217099 0.828131 1 no
+XLOC_000011 XLOC_000011 - chr1:3192441-3192494 q1 q2 OK 0 5.68095e+07 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000012 XLOC_000012 - chr1:3192550-3192629 q1 q2 OK 0 4.15515e+06 1.79769e+308 1.79769e+308 0.158655 0.16621 no
+XLOC_000013 XLOC_000013 - chr1:3192649-3192676 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000014 XLOC_000014 - chr1:3192731-3192811 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000015 XLOC_000015 - chr1:3192940-3193042 q1 q2 OK 0 6.02976e+06 1.79769e+308 1.79769e+308 0.0512352 0.157299 no
+XLOC_000016 XLOC_000016 - chr1:3194185-3194226 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.16621 no
+XLOC_000017 XLOC_000017 - chr1:3194302-3194329 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000018 XLOC_000018 - chr1:3194706-3194733 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000019 XLOC_000019 - chr1:3195083-3195110 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000020 XLOC_000020 - chr1:3195450-3195477 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000021 XLOC_000021 - chr1:3197089-3197116 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000022 XLOC_000022 - chr1:3197246-3197273 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000023 XLOC_000023 - chr1:3197346-3197373 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000024 XLOC_000024 - chr1:3197425-3197452 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000025 XLOC_000025 - chr1:3200022-3200191 q1 q2 NOTEST 959058 705514 -0.442943 0.376027 0.706897 1 no
+XLOC_000026 XLOC_000026 - chr1:3200325-3200352 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000027 XLOC_000027 - chr1:3200430-3200457 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000028 XLOC_000028 - chr1:3201007-3201039 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000029 XLOC_000029 - chr1:3201077-3201481 q1 q2 NOTEST 77513.9 285108 1.87898 -1.76152 0.0781506 1 no
+XLOC_000030 XLOC_000030 - chr1:3201596-3201666 q1 q2 OK 1.89853e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.157299 no
+XLOC_000031 XLOC_000031 - chr1:3201672-3201699 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000032 XLOC_000032 - chr1:3201725-3201809 q1 q2 OK 1.31744e+07 0 -1.79769e+308 -1.79769e+308 0.0416323 0.157299 no
+XLOC_000033 XLOC_000033 Xkr4 chr1:3211521-3211561 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000034 XLOC_000034 Xkr4 chr1:3212213-3212292 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000035 XLOC_000035 Xkr4 chr1:3212367-3212439 q1 q2 OK 0 2.4671e+07 1.79769e+308 1.79769e+308 0.0512352 0.157299 no
+XLOC_000036 XLOC_000036 Xkr4 chr1:3212717-3212801 q1 q2 NOTEST 4.39147e+06 0 -1.79769e+308 -1.79769e+308 0.158655 1 no
+XLOC_000037 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 OK 5.3664e+06 1.82908e+06 -1.55284 0.839459 0.401212 0.401212 no
+XLOC_000038 XLOC_000038 Xkr4 chr1:3240606-3240633 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000039 XLOC_000039 Xkr4 chr1:3242479-3242512 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000040 XLOC_000040 Xkr4 chr1:3242633-3242923 q1 q2 NOTEST 56312.4 372827 2.72698 -1.67622 0.0936947 1 no
+XLOC_000041 XLOC_000041 Xkr4 chr1:3242924-3243005 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000042 XLOC_000042 Xkr4 chr1:3243018-3243079 q1 q2 OK 0 2.66226e+07 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000043 XLOC_000043 Xkr4 chr1:3243108-3243154 q1 q2 OK 9.99919e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.16621 no
+XLOC_000044 XLOC_000044 Xkr4 chr1:3243347-3243401 q1 q2 OK 0 5.0951e+07 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000045 XLOC_000045 Xkr4 chr1:3254079-3254106 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000046 XLOC_000046 Xkr4 chr1:3256974-3257011 q1 q2 OK 0 2.06814e+09 1.79769e+308 1.79769e+308 0.0786496 0.157299 no
+XLOC_000047 XLOC_000047 Xkr4 chr1:3277155-3277182 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000048 XLOC_000048 Xkr4 chr1:3277190-3277218 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000049 XLOC_000049 Xkr4 chr1:3277913-3278390 q1 q2 NOTEST 265614 41870.3 -2.66534 2.48499 0.0129556 1 no
+XLOC_000050 XLOC_000050 Xkr4 chr1:3280117-3280144 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000051 XLOC_000051 Xkr4 chr1:3280498-3280525 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000052 XLOC_000052 Xkr4 chr1:3280686-3280741 q1 q2 OK 0 2.29576e+07 1.79769e+308 1.79769e+308 0.158655 0.16621 no
+XLOC_000053 XLOC_000053 Xkr4 chr1:3282504-3282531 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000054 XLOC_000054 Xkr4 chr1:3282650-3282677 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000055 XLOC_000055 Xkr4 chr1:3282760-3282832 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000056 XLOC_000056 Xkr4 chr1:3284966-3284993 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000057 XLOC_000057 Xkr4 chr1:3290488-3290553 q1 q2 OK 0 9.79535e+06 1.79769e+308 1.79769e+308 0.158655 0.16621 no
+XLOC_000058 XLOC_000058 Xkr4 chr1:3290798-3290859 q1 q2 OK 1.8095e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.16621 no
+XLOC_000059 XLOC_000059 Xkr4 chr1:3290919-3291273 q1 q2 NOTEST 342218 75524 -2.17991 1.96162 0.049807 1 no
+XLOC_000060 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 937403 137917 -2.76487 1.66807 0.0953024 1 no
+XLOC_000061 XLOC_000061 Xkr4 chr1:3299691-3299733 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000062 XLOC_000062 Xkr4 chr1:3300051-3300078 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000063 XLOC_000063 Xkr4 chr1:3307748-3307775 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000064 XLOC_000064 Xkr4 chr1:3318620-3318647 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000065 XLOC_000065 Xkr4 chr1:3318999-3319051 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000066 XLOC_000066 Xkr4 chr1:3330527-3330554 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000067 XLOC_000067 Xkr4 chr1:3351240-3351311 q1 q2 OK 8.91489e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.16621 no
+XLOC_000068 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 585828 0 -1.79769e+308 -1.79769e+308 0.0512352 1 no
+XLOC_000069 XLOC_000069 Xkr4 chr1:3356180-3356225 q1 q2 OK 1.19208e+08 0 -1.79769e+308 -1.79769e+308 0.158655 0.16621 no
+XLOC_000070 XLOC_000070 Xkr4 chr1:3363076-3363176 q1 q2 NOTEST 4.42166e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 1 no
+XLOC_000071 XLOC_000071 Xkr4 chr1:3363214-3363278 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000072 XLOC_000072 Xkr4 chr1:3363387-3363446 q1 q2 OK 4.28358e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.157299 no
+XLOC_000073 XLOC_000073 Xkr4 chr1:3363753-3363849 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000074 XLOC_000074 Xkr4 chr1:3364871-3364919 q1 q2 OK 7.29939e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.16621 no
+XLOC_000075 XLOC_000075 Xkr4 chr1:3367135-3367162 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000076 XLOC_000076 Xkr4 chr1:3367210-3367237 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000077 XLOC_000077 Xkr4 chr1:3367333-3367382 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000078 XLOC_000078 Xkr4 chr1:3369580-3369607 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000079 XLOC_000079 Xkr4 chr1:3375001-3375028 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000080 XLOC_000080 Xkr4 chr1:3377211-3377262 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000081 XLOC_000081 Xkr4 chr1:3379888-3379915 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000082 XLOC_000082 Xkr4 chr1:3386739-3386836 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000083 XLOC_000083 Xkr4 chr1:3391325-3391352 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000084 XLOC_000084 Xkr4 chr1:3435841-3435880 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000085 XLOC_000085 Xkr4 chr1:3447761-3447788 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000086 XLOC_000086 Xkr4 chr1:3450906-3450965 q1 q2 NOTEST 0 0 0 0 1 1 no
+XLOC_000087 XLOC_000087 Xkr4 chr1:3451051-3451109 q1 q2 NOTEST 0 0 0 0 1 1 no
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out3.txt
--- a/test-data/cuffdiff_out3.txt
+++ b/test-data/cuffdiff_out3.txt
@@ -1,1 +1,91 @@
-test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 ln(fold_change) test_stat p_value q_value significant
+test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 log2(fold_change) test_stat p_value q_value significant
+TSS1 XLOC_000001 Xkr4 chr1:3204754-3204833 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS11 XLOC_000008 - chr1:3190858-3191434 q1 q2 NOTEST 404373 338500 -0.25653 0.342922 0.731657 1 no
+TSS12 XLOC_000009 - chr1:3191512-3192077 q1 q2 NOTEST 402276 686974 0.772069 -1.24554 0.212932 1 no
+TSS15 XLOC_000010 - chr1:3192250-3192336 q1 q2 NOTEST 3.994e+06 2.93812e+06 -0.442943 0.217099 0.828131 1 no
+TSS16 XLOC_000011 - chr1:3192441-3192494 q1 q2 OK 0 5.68095e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS17 XLOC_000012 - chr1:3192550-3192629 q1 q2 OK 0 4.15515e+06 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TSS18 XLOC_000013 - chr1:3192649-3192676 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS19 XLOC_000014 - chr1:3192731-3192811 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS2 XLOC_000002 - chr1:3111449-3111490 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TSS20 XLOC_000015 - chr1:3192940-3193042 q1 q2 OK 0 6.02976e+06 1.79769e+308 1.79769e+308 0.0512352 0.150149 no
+TSS21 XLOC_000016 - chr1:3194185-3194226 q1 q2 OK 0 2.1403e+08 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TSS22 XLOC_000017 - chr1:3194302-3194329 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS23 XLOC_000018 - chr1:3194706-3194733 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS24 XLOC_000019 - chr1:3195083-3195110 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS25 XLOC_000020 - chr1:3195450-3195477 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS26 XLOC_000021 - chr1:3197089-3197116 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS27 XLOC_000022 - chr1:3197246-3197273 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS28 XLOC_000023 - chr1:3197346-3197373 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS29 XLOC_000024 - chr1:3197425-3197452 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS3 XLOC_000003 - chr1:3111545-3111576 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS30 XLOC_000025 - chr1:3200022-3200191 q1 q2 NOTEST 959058 705514 -0.442943 0.376027 0.706897 1 no
+TSS32 XLOC_000026 - chr1:3200325-3200352 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS33 XLOC_000027 - chr1:3200430-3200457 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS34 XLOC_000028 - chr1:3201007-3201039 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS35 XLOC_000029 - chr1:3201077-3201481 q1 q2 NOTEST 77513.9 285108 1.87898 -1.76152 0.0781506 1 no
+TSS37 XLOC_000030 - chr1:3201596-3201666 q1 q2 OK 1.89853e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.150149 no
+TSS38 XLOC_000031 - chr1:3201672-3201699 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS39 XLOC_000032 - chr1:3201725-3201809 q1 q2 OK 1.31744e+07 0 -1.79769e+308 -1.79769e+308 0.0416323 0.150149 no
+TSS4 XLOC_000004 - chr1:3174765-3174792 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS40 XLOC_000033 Xkr4 chr1:3211521-3211561 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS41 XLOC_000034 Xkr4 chr1:3212213-3212292 q1 q2 OK 0 8.3103e+06 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS42 XLOC_000035 Xkr4 chr1:3212367-3212439 q1 q2 OK 0 2.4671e+07 1.79769e+308 1.79769e+308 0.0512352 0.150149 no
+TSS43 XLOC_000036 Xkr4 chr1:3212717-3212801 q1 q2 NOTEST 4.39147e+06 0 -1.79769e+308 -1.79769e+308 0.158655 1 no
+TSS44 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 NOTEST 3.99739e+06 1.82908e+06 -1.12794 0.489836 0.62425 1 no
+TSS45 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 NOTEST 1.36901e+06 0 0 0 1 1 no
+TSS46 XLOC_000038 Xkr4 chr1:3240606-3240633 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS47 XLOC_000039 Xkr4 chr1:3242479-3242512 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS48 XLOC_000040 Xkr4 chr1:3242633-3242923 q1 q2 NOTEST 56312.4 372827 2.72698 -1.67622 0.0936947 1 no
+TSS49 XLOC_000041 Xkr4 chr1:3242924-3243005 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS5 XLOC_000005 - chr1:3187401-3187428 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS50 XLOC_000042 Xkr4 chr1:3243018-3243079 q1 q2 OK 0 2.66226e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS51 XLOC_000043 Xkr4 chr1:3243108-3243154 q1 q2 OK 9.99919e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TSS52 XLOC_000044 Xkr4 chr1:3243347-3243401 q1 q2 OK 0 5.0951e+07 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS53 XLOC_000045 Xkr4 chr1:3254079-3254106 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS54 XLOC_000046 Xkr4 chr1:3256974-3257011 q1 q2 OK 0 2.06814e+09 1.79769e+308 1.79769e+308 0.0786496 0.150149 no
+TSS55 XLOC_000047 Xkr4 chr1:3277155-3277182 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS56 XLOC_000048 Xkr4 chr1:3277190-3277218 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS57 XLOC_000049 Xkr4 chr1:3277913-3278390 q1 q2 NOTEST 265614 41870.3 -2.66534 2.48499 0.0129556 1 no
+TSS59 XLOC_000050 Xkr4 chr1:3280117-3280144 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS6 XLOC_000006 - chr1:3188521-3188548 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS60 XLOC_000051 Xkr4 chr1:3280498-3280525 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS61 XLOC_000052 Xkr4 chr1:3280686-3280741 q1 q2 OK 0 2.29576e+07 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TSS62 XLOC_000053 Xkr4 chr1:3282504-3282531 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS63 XLOC_000054 Xkr4 chr1:3282650-3282677 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS64 XLOC_000055 Xkr4 chr1:3282760-3282832 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS65 XLOC_000056 Xkr4 chr1:3284966-3284993 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS66 XLOC_000057 Xkr4 chr1:3290488-3290553 q1 q2 OK 0 9.79535e+06 1.79769e+308 1.79769e+308 0.158655 0.158655 no
+TSS67 XLOC_000058 Xkr4 chr1:3290798-3290859 q1 q2 OK 1.8095e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TSS68 XLOC_000059 Xkr4 chr1:3290919-3291273 q1 q2 NOTEST 342218 75524 -2.17991 1.96162 0.049807 1 no
+TSS7 XLOC_000007 - chr1:3189810-3190789 q1 q2 NOTEST 368900 429265 0.21864 -0.483034 0.629072 1 no
+TSS70 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 937403 137917 -2.76487 1.66807 0.0953024 1 no
+TSS71 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS72 XLOC_000061 Xkr4 chr1:3299691-3299733 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS73 XLOC_000062 Xkr4 chr1:3300051-3300078 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS74 XLOC_000063 Xkr4 chr1:3307748-3307775 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS75 XLOC_000064 Xkr4 chr1:3318620-3318647 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS76 XLOC_000065 Xkr4 chr1:3318999-3319051 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS77 XLOC_000066 Xkr4 chr1:3330527-3330554 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS78 XLOC_000067 Xkr4 chr1:3351240-3351311 q1 q2 OK 8.91489e+06 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TSS79 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS80 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 585828 0 -1.79769e+308 -1.79769e+308 0.0512352 1 no
+TSS81 XLOC_000069 Xkr4 chr1:3356180-3356225 q1 q2 OK 1.19208e+08 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TSS82 XLOC_000070 Xkr4 chr1:3363076-3363176 q1 q2 NOTEST 4.42166e+06 0 -1.79769e+308 -1.79769e+308 0.0786496 1 no
+TSS83 XLOC_000071 Xkr4 chr1:3363214-3363278 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS84 XLOC_000072 Xkr4 chr1:3363387-3363446 q1 q2 OK 4.28358e+07 0 -1.79769e+308 -1.79769e+308 0.0786496 0.150149 no
+TSS85 XLOC_000073 Xkr4 chr1:3363753-3363849 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS86 XLOC_000074 Xkr4 chr1:3364871-3364919 q1 q2 OK 7.29939e+07 0 -1.79769e+308 -1.79769e+308 0.158655 0.158655 no
+TSS87 XLOC_000075 Xkr4 chr1:3367135-3367162 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS88 XLOC_000076 Xkr4 chr1:3367210-3367237 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS89 XLOC_000077 Xkr4 chr1:3367333-3367382 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS90 XLOC_000078 Xkr4 chr1:3369580-3369607 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS91 XLOC_000079 Xkr4 chr1:3375001-3375028 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS92 XLOC_000080 Xkr4 chr1:3377211-3377262 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS93 XLOC_000081 Xkr4 chr1:3379888-3379915 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS94 XLOC_000082 Xkr4 chr1:3386739-3386836 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS95 XLOC_000083 Xkr4 chr1:3391325-3391352 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS96 XLOC_000084 Xkr4 chr1:3435841-3435880 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS97 XLOC_000085 Xkr4 chr1:3447761-3447788 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS98 XLOC_000086 Xkr4 chr1:3450906-3450965 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS99 XLOC_000087 Xkr4 chr1:3451051-3451109 q1 q2 NOTEST 0 0 0 0 1 1 no
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out4.txt
--- a/test-data/cuffdiff_out4.txt
+++ b/test-data/cuffdiff_out4.txt
@@ -1,1 +1,1 @@
-test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 ln(fold_change) test_stat p_value q_value significant
+test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 log2(fold_change) test_stat p_value q_value significant
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out5.txt
--- a/test-data/cuffdiff_out5.txt
+++ b/test-data/cuffdiff_out5.txt
@@ -1,99 +1,91 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status q1_FPKM q1_conf_lo q1_conf_hi q2_FPKM q2_conf_lo q2_conf_hi
-TCONS_00000001 c Xkr4 XLOC_000001 - - chr1:3204754-3204833 79 - OK 0 0 0 5.42247e+06 0 1.3091e+07
-TCONS_00000002 - - XLOC_000002 - - chr1:3111449-3111490 41 - OK 0 0 0 1.39654e+08 0 4.18963e+08
-TCONS_00000003 - - XLOC_000003 - - chr1:3111545-3111576 31 - OK 0 0 0 0 0 0
-TCONS_00000004 - - XLOC_000007 - - chr1:3189810-3190789 142 - OK 2.49256e+06 0 5.08341e+06 5.29759e+06 686576 9.90861e+06
-TCONS_00000005 - - XLOC_000007 - - chr1:3189810-3190789 31 - OK 0 0 0 0 0 0
-TCONS_00000006 - - XLOC_000007 - - chr1:3189810-3190789 27 - OK 0 0 0 0 0 0
-TCONS_00000007 - - XLOC_000009 - - chr1:3191512-3192077 131 - OK 2.77423e+06 0 5.7461e+06 6.7156e+06 774909 1.26563e+07
-TCONS_00000008 - - XLOC_000009 - - chr1:3191512-3192077 69 - OK 1.11098e+07 0 3.60229e+07 3.03942e+07 0 6.3641e+07
-TCONS_00000009 - - XLOC_000011 - - chr1:3192441-3192494 53 - OK 0 0 0 5.56023e+07 0 1.19806e+08
-TCONS_00000010 - - XLOC_000012 - - chr1:3192550-3192629 79 - OK 0 0 0 2.71123e+06 0 8.1337e+06
-TCONS_00000011 - - XLOC_000014 - - chr1:3192731-3192811 80 - OK 0 0 0 0 0 0
-TCONS_00000012 - - XLOC_000015 - - chr1:3192940-3193042 102 - OK 0 0 0 3.93442e+06 0 8.47748e+06
-TCONS_00000013 - - XLOC_000016 - - chr1:3194185-3194226 41 - OK 0 0 0 1.39654e+08 0 4.18963e+08
-TCONS_00000014 - - XLOC_000017 - - chr1:3194302-3194329 27 - OK 0 0 0 0 0 0
-TCONS_00000015 - - XLOC_000019 - - chr1:3195083-3195110 27 - OK 0 0 0 0 0 0
-TCONS_00000016 - - XLOC_000020 - - chr1:3195450-3195477 27 - OK 0 0 0 0 0 0
-TCONS_00000017 - - XLOC_000021 - - chr1:3197089-3197116 27 - OK 0 0 0 0 0 0
-TCONS_00000018 - - XLOC_000022 - - chr1:3197246-3197273 27 - OK 0 0 0 0 0 0
-TCONS_00000019 - - XLOC_000023 - - chr1:3197346-3197373 27 - OK 0 0 0 0 0 0
-TCONS_00000020 - - XLOC_000025 - - chr1:3200022-3200191 169 - OK 460348 0 991912 460348 0 991912
-TCONS_00000021 - - XLOC_000026 - - chr1:3200325-3200352 27 - OK 0 0 0 0 0 0
-TCONS_00000022 - - XLOC_000029 - - chr1:3201077-3201481 404 - OK 37206.6 0 80169.2 186033 15366.6 356700
-TCONS_00000023 - - XLOC_000031 - - chr1:3201672-3201699 27 - OK 0 0 0 0 0 0
-TCONS_00000024 i Xkr4 XLOC_000034 - - chr1:3212213-3212292 79 - OK 0 0 0 5.42247e+06 0 1.3091e+07
-TCONS_00000025 i Xkr4 XLOC_000035 - - chr1:3212367-3212439 72 - OK 0 0 0 1.60978e+07 0 3.46859e+07
-TCONS_00000026 i Xkr4 XLOC_000037 - - chr1:3213095-3213192 97 - OK 2.38694e+06 0 5.76259e+06 1.19347e+06 0 3.58042e+06
-TCONS_00000027 i Xkr4 XLOC_000040 - - chr1:3242633-3242923 290 - OK 27029.9 0 81089.8 243269 0 494190
-TCONS_00000028 i Xkr4 XLOC_000042 - - chr1:3243018-3243079 61 - OK 0 0 0 1.73712e+07 0 4.19378e+07
-TCONS_00000029 i Xkr4 XLOC_000044 - - chr1:3243347-3243401 54 - OK 0 0 0 3.32455e+07 0 8.02618e+07
-TCONS_00000030 i Xkr4 XLOC_000046 - - chr1:3256974-3257011 37 - OK 0 0 0 1.34946e+09 0 3.25789e+09
-TCONS_00000031 i Xkr4 XLOC_000048 - - chr1:3277190-3277218 28 - OK 0 0 0 0 0 0
-TCONS_00000032 i Xkr4 XLOC_000049 - - chr1:3277913-3278390 27 - OK 0 0 0 0 0 0
-TCONS_00000033 i Xkr4 XLOC_000052 - - chr1:3280686-3280741 55 - OK 0 0 0 1.49798e+07 0 4.49395e+07
-TCONS_00000034 i Xkr4 XLOC_000057 - - chr1:3290488-3290553 65 - OK 0 0 0 6.39146e+06 0 1.91744e+07
-TCONS_00000035 i Xkr4 XLOC_000059 - - chr1:3290919-3291273 84 - OK 6.40392e+06 0 1.55816e+07 0 0 0
-TCONS_00000036 i Xkr4 XLOC_000059 - - chr1:3290919-3291273 98 - OK 1.2964e+06 0 4.55711e+06 1.46758e+06 0 4.47705e+06
-TCONS_00000037 i Xkr4 XLOC_000060 - - chr1:3299443-3299664 55 - OK 0 0 0 0 0 0
-TCONS_00000038 i Xkr4 XLOC_000062 - - chr1:3300051-3300078 27 - OK 0 0 0 0 0 0
-TCONS_00000039 i Xkr4 XLOC_000065 - - chr1:3318999-3319051 52 - OK 0 0 0 0 0 0
-TCONS_00000040 i Xkr4 XLOC_000068 - - chr1:3355887-3356119 27 - OK 0 0 0 0 0 0
-TCONS_00000041 i Xkr4 XLOC_000071 - - chr1:3363214-3363278 64 - OK 0 0 0 0 0 0
-TCONS_00000042 i Xkr4 XLOC_000073 - - chr1:3363753-3363849 96 - OK 0 0 0 0 0 0
-TCONS_00000043 i Xkr4 XLOC_000075 - - chr1:3367135-3367162 27 - OK 0 0 0 0 0 0
-TCONS_00000044 i Xkr4 XLOC_000077 - - chr1:3367333-3367382 49 - OK 0 0 0 0 0 0
-TCONS_00000045 i Xkr4 XLOC_000080 - - chr1:3377211-3377262 51 - OK 0 0 0 0 0 0
-TCONS_00000046 i Xkr4 XLOC_000083 - - chr1:3391325-3391352 27 - OK 0 0 0 0 0 0
-TCONS_00000047 i Xkr4 XLOC_000084 - - chr1:3435841-3435880 39 - OK 0 0 0 0 0 0
-TCONS_00000048 i Xkr4 XLOC_000085 - - chr1:3447761-3447788 27 - OK 0 0 0 0 0 0
-TCONS_00000049 i Xkr4 XLOC_000086 - - chr1:3450906-3450965 59 - OK 0 0 0 0 0 0
-TCONS_00000050 i Xkr4 XLOC_000087 - - chr1:3451051-3451109 58 - OK 0 0 0 0 0 0
-TCONS_00000051 - - XLOC_000004 - - chr1:3174765-3174792 27 - OK 0 0 0 0 0 0
-TCONS_00000052 - - XLOC_000005 - - chr1:3187401-3187428 27 - OK 0 0 0 0 0 0
-TCONS_00000053 - - XLOC_000006 - - chr1:3188521-3188548 27 - OK 0 0 0 0 0 0
-TCONS_00000054 - - XLOC_000007 - - chr1:3189810-3190789 979 - OK 171639 69105.7 274173 239968 172568 307367
-TCONS_00000055 - - XLOC_000008 - - chr1:3190858-3191434 576 - OK 227564 66605.9 388523 240951 73918.5 407983
-TCONS_00000056 - - XLOC_000009 - - chr1:3191512-3192077 565 - OK 175955 38281.8 313628 319423 117942 520904
-TCONS_00000057 - - XLOC_000010 - - chr1:3192250-3192336 86 - OK 1.91712e+06 0 5.75136e+06 1.91712e+06 0 5.75136e+06
-TCONS_00000058 - - XLOC_000013 - - chr1:3192649-3192676 27 - OK 0 0 0 0 0 0
-TCONS_00000059 - - XLOC_000018 - - chr1:3194706-3194733 27 - OK 0 0 0 0 0 0
-TCONS_00000060 - - XLOC_000024 - - chr1:3197425-3197452 27 - OK 0 0 0 0 0 0
-TCONS_00000061 - - XLOC_000027 - - chr1:3200430-3200457 27 - OK 0 0 0 0 0 0
-TCONS_00000062 - - XLOC_000028 - - chr1:3201007-3201039 32 - OK 0 0 0 0 0 0
-TCONS_00000063 - - XLOC_000029 - - chr1:3201077-3201481 27 - OK 0 0 0 0 0 0
-TCONS_00000064 - - XLOC_000030 - - chr1:3201596-3201666 70 - OK 9.11292e+06 0 2.20005e+07 0 0 0
-TCONS_00000065 - - XLOC_000032 - - chr1:3201725-3201809 84 - OK 8.43162e+06 0 1.81676e+07 0 0 0
-TCONS_00000066 i Xkr4 XLOC_000033 - - chr1:3211521-3211561 40 - OK 0 0 0 0 0 0
-TCONS_00000067 i Xkr4 XLOC_000036 - - chr1:3212717-3212801 84 - OK 2.10791e+06 0 6.32372e+06 0 0 0
-TCONS_00000068 i Xkr4 XLOC_000038 - - chr1:3240606-3240633 27 - OK 0 0 0 0 0 0
-TCONS_00000069 i Xkr4 XLOC_000039 - - chr1:3242479-3242512 33 - OK 0 0 0 0 0 0
-TCONS_00000070 i Xkr4 XLOC_000041 - - chr1:3242924-3243005 81 - OK 0 0 0 0 0 0
-TCONS_00000071 i Xkr4 XLOC_000043 - - chr1:3243108-3243154 46 - OK 4.79961e+07 0 1.43988e+08 0 0 0
-TCONS_00000072 i Xkr4 XLOC_000045 - - chr1:3254079-3254106 27 - OK 0 0 0 0 0 0
-TCONS_00000073 i Xkr4 XLOC_000047 - - chr1:3277155-3277182 27 - OK 0 0 0 0 0 0
-TCONS_00000074 i Xkr4 XLOC_000049 - - chr1:3277913-3278390 477 - OK 127495 8942.18 246048 27320.3 0 58867.2
-TCONS_00000075 i Xkr4 XLOC_000050 - - chr1:3280117-3280144 27 - OK 0 0 0 0 0 0
-TCONS_00000076 i Xkr4 XLOC_000051 - - chr1:3280498-3280525 27 - OK 0 0 0 0 0 0
-TCONS_00000077 i Xkr4 XLOC_000053 - - chr1:3282504-3282531 27 - OK 0 0 0 0 0 0
-TCONS_00000078 i Xkr4 XLOC_000054 - - chr1:3282650-3282677 27 - OK 0 0 0 0 0 0
-TCONS_00000079 i Xkr4 XLOC_000055 - - chr1:3282760-3282832 72 - OK 0 0 0 0 0 0
-TCONS_00000080 i Xkr4 XLOC_000056 - - chr1:3284966-3284993 27 - OK 0 0 0 0 0 0
-TCONS_00000081 i Xkr4 XLOC_000058 - - chr1:3290798-3290859 61 - OK 8.68561e+06 0 2.60568e+07 0 0 0
-TCONS_00000082 i Xkr4 XLOC_000059 - - chr1:3290919-3291273 354 - OK 95795.4 0 201253 28263.3 0 76569.5
-TCONS_00000083 i Xkr4 XLOC_000060 - - chr1:3299443-3299664 197 - OK 449954 0 952175 89990.7 0 269972
-TCONS_00000084 i Xkr4 XLOC_000061 - - chr1:3299691-3299733 42 - OK 0 0 0 0 0 0
-TCONS_00000085 i Xkr4 XLOC_000063 - - chr1:3307748-3307775 27 - OK 0 0 0 0 0 0
-TCONS_00000086 i Xkr4 XLOC_000064 - - chr1:3318620-3318647 27 - OK 0 0 0 0 0 0
-TCONS_00000087 i Xkr4 XLOC_000066 - - chr1:3330527-3330554 27 - OK 0 0 0 0 0 0
-TCONS_00000088 i Xkr4 XLOC_000067 - - chr1:3351240-3351311 71 - OK 4.27915e+06 0 1.28374e+07 0 0 0
-TCONS_00000089 i Xkr4 XLOC_000068 - - chr1:3355887-3356119 212 - OK 281197 0 605895 0 0 0
-TCONS_00000090 i Xkr4 XLOC_000069 - - chr1:3356180-3356225 45 - OK 5.72196e+07 0 1.71659e+08 0 0 0
-TCONS_00000091 i Xkr4 XLOC_000070 - - chr1:3363076-3363176 100 - OK 2.1224e+06 0 5.12392e+06 0 0 0
-TCONS_00000092 i Xkr4 XLOC_000072 - - chr1:3363387-3363446 59 - OK 3.08417e+07 0 6.64547e+07 0 0 0
-TCONS_00000093 i Xkr4 XLOC_000074 - - chr1:3364871-3364919 48 - OK 3.50371e+07 0 1.05111e+08 0 0 0
-TCONS_00000094 i Xkr4 XLOC_000076 - - chr1:3367210-3367237 27 - OK 0 0 0 0 0 0
-TCONS_00000095 i Xkr4 XLOC_000078 - - chr1:3369580-3369607 27 - OK 0 0 0 0 0 0
-TCONS_00000096 i Xkr4 XLOC_000079 - - chr1:3375001-3375028 27 - OK 0 0 0 0 0 0
-TCONS_00000097 i Xkr4 XLOC_000081 - - chr1:3379888-3379915 27 - OK 0 0 0 0 0 0
-TCONS_00000098 i Xkr4 XLOC_000082 - - chr1:3386739-3386836 97 - OK 0 0 0 0 0 0
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage q1_FPKM q1_conf_lo q1_conf_hi q1_status q2_FPKM q2_conf_lo q2_conf_hi q2_status
+TCONS_00000001 c Xkr4 XLOC_000001 Xkr4 TSS1 chr1:3204754-3204833 79 - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+TCONS_00000002 - - XLOC_000002 - TSS2 chr1:3111449-3111490 41 - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+TCONS_00000003 - - XLOC_000003 - TSS3 chr1:3111545-3111576 31 - 0 0 0 OK 0 0 0 OK
+TCONS_00000009 - - XLOC_000011 - TSS16 chr1:3192441-3192494 53 - 0 0 0 OK 5.68095e+07 0 1.3715e+08 OK
+TCONS_00000010 - - XLOC_000012 - TSS17 chr1:3192550-3192629 79 - 0 0 0 OK 4.15515e+06 0 1.24654e+07 OK
+TCONS_00000011 - - XLOC_000014 - TSS19 chr1:3192731-3192811 80 - 0 0 0 OK 0 0 0 OK
+TCONS_00000012 - - XLOC_000015 - TSS20 chr1:3192940-3193042 102 - 0 0 0 OK 6.02976e+06 0 1.34147e+07 OK
+TCONS_00000013 - - XLOC_000016 - TSS21 chr1:3194185-3194226 41 - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+TCONS_00000014 - - XLOC_000017 - TSS22 chr1:3194302-3194329 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000015 - - XLOC_000019 - TSS24 chr1:3195083-3195110 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000016 - - XLOC_000020 - TSS25 chr1:3195450-3195477 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000017 - - XLOC_000021 - TSS26 chr1:3197089-3197116 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000018 - - XLOC_000022 - TSS27 chr1:3197246-3197273 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000019 - - XLOC_000023 - TSS28 chr1:3197346-3197373 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000020 - - XLOC_000025 - TSS30 chr1:3200022-3200191 169 - 959058 0 2.06648e+06 OK 705514 0 1.52017e+06 OK
+TCONS_00000021 - - XLOC_000026 - TSS32 chr1:3200325-3200352 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000022 - - XLOC_000029 - TSS35 chr1:3201077-3201481 404 - 77513.9 0 167019 OK 285108 21736.5 548480 OK
+TCONS_00000023 - - XLOC_000031 - TSS38 chr1:3201672-3201699 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000024 i Xkr4 XLOC_000034 Xkr4 TSS41 chr1:3212213-3212292 79 - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+TCONS_00000025 i Xkr4 XLOC_000035 Xkr4 TSS42 chr1:3212367-3212439 72 - 0 0 0 OK 2.4671e+07 0 5.48867e+07 OK
+TCONS_00000026 i Xkr4 XLOC_000037 Xkr4 TSS44 chr1:3213095-3213242 97 - 3.99739e+06 3.99339e+06 4.00139e+06 LOWDATA 1.82908e+06 0 5.48723e+06 OK
+TCONS_00000027 i Xkr4 XLOC_000040 Xkr4 TSS48 chr1:3242633-3242923 290 - 56312.4 0 168937 OK 372827 0 761430 OK
+TCONS_00000028 i Xkr4 XLOC_000042 Xkr4 TSS50 chr1:3243018-3243079 61 - 0 0 0 OK 2.66226e+07 0 6.42725e+07 OK
+TCONS_00000029 i Xkr4 XLOC_000044 Xkr4 TSS52 chr1:3243347-3243401 54 - 0 0 0 OK 5.0951e+07 0 1.23007e+08 OK
+TCONS_00000030 i Xkr4 XLOC_000046 Xkr4 TSS54 chr1:3256974-3257011 37 - 0 0 0 OK 2.06814e+09 0 4.99293e+09 OK
+TCONS_00000031 i Xkr4 XLOC_000048 Xkr4 TSS56 chr1:3277190-3277218 28 - 0 0 0 OK 0 0 0 OK
+TCONS_00000033 i Xkr4 XLOC_000052 Xkr4 TSS61 chr1:3280686-3280741 55 - 0 0 0 OK 2.29576e+07 0 6.88728e+07 OK
+TCONS_00000034 i Xkr4 XLOC_000057 Xkr4 TSS66 chr1:3290488-3290553 65 - 0 0 0 OK 9.79535e+06 0 2.9386e+07 OK
+TCONS_00000037 i Xkr4 XLOC_000060 Xkr4 TSS71 chr1:3299443-3299664 55 - 0 0 0 OK 0 0 0 OK
+TCONS_00000038 i Xkr4 XLOC_000062 Xkr4 TSS73 chr1:3300051-3300078 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000039 i Xkr4 XLOC_000065 Xkr4 TSS76 chr1:3318999-3319051 52 - 0 0 0 OK 0 0 0 OK
+TCONS_00000040 i Xkr4 XLOC_000068 Xkr4 TSS79 chr1:3355887-3356119 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000041 i Xkr4 XLOC_000071 Xkr4 TSS83 chr1:3363214-3363278 64 - 0 0 0 OK 0 0 0 OK
+TCONS_00000042 i Xkr4 XLOC_000073 Xkr4 TSS85 chr1:3363753-3363849 96 - 0 0 0 OK 0 0 0 OK
+TCONS_00000043 i Xkr4 XLOC_000075 Xkr4 TSS87 chr1:3367135-3367162 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000044 i Xkr4 XLOC_000077 Xkr4 TSS89 chr1:3367333-3367382 49 - 0 0 0 OK 0 0 0 OK
+TCONS_00000045 i Xkr4 XLOC_000080 Xkr4 TSS92 chr1:3377211-3377262 51 - 0 0 0 OK 0 0 0 OK
+TCONS_00000046 i Xkr4 XLOC_000083 Xkr4 TSS95 chr1:3391325-3391352 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000047 i Xkr4 XLOC_000084 Xkr4 TSS96 chr1:3435841-3435880 39 - 0 0 0 OK 0 0 0 OK
+TCONS_00000048 i Xkr4 XLOC_000085 Xkr4 TSS97 chr1:3447761-3447788 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000049 i Xkr4 XLOC_000086 Xkr4 TSS98 chr1:3450906-3450965 59 - 0 0 0 OK 0 0 0 OK
+TCONS_00000050 i Xkr4 XLOC_000087 Xkr4 TSS99 chr1:3451051-3451109 58 - 0 0 0 OK 0 0 0 OK
+TCONS_00000051 - - XLOC_000004 - TSS4 chr1:3174765-3174792 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000052 - - XLOC_000005 - TSS5 chr1:3187401-3187428 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000053 - - XLOC_000006 - TSS6 chr1:3188521-3188548 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000054 - - XLOC_000007 - TSS7 chr1:3189810-3190789 979 - 368900 151353 586447 OK 429265 337221 521309 OK
+TCONS_00000055 - - XLOC_000008 - TSS11 chr1:3190858-3191434 576 - 404373 101434 707312 OK 338500 95761.5 581239 OK
+TCONS_00000056 - - XLOC_000009 - TSS12 chr1:3191512-3192077 565 - 402276 96829.4 707722 OK 686974 410563 963384 OK
+TCONS_00000057 - - XLOC_000010 - TSS15 chr1:3192250-3192336 86 - 3.994e+06 0 1.1982e+07 OK 2.93812e+06 0 8.81435e+06 OK
+TCONS_00000058 - - XLOC_000013 - TSS18 chr1:3192649-3192676 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000059 - - XLOC_000018 - TSS23 chr1:3194706-3194733 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000060 - - XLOC_000024 - TSS29 chr1:3197425-3197452 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000062 - - XLOC_000027 - TSS33 chr1:3200430-3200457 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000063 - - XLOC_000028 - TSS34 chr1:3201007-3201039 32 - 0 0 0 OK 0 0 0 OK
+TCONS_00000065 - - XLOC_000030 - TSS37 chr1:3201596-3201666 70 - 1.89853e+07 0 4.58345e+07 OK 0 0 0 OK
+TCONS_00000066 - - XLOC_000032 - TSS39 chr1:3201725-3201809 84 - 1.31744e+07 0 2.83869e+07 OK 0 0 0 OK
+TCONS_00000067 i Xkr4 XLOC_000033 Xkr4 TSS40 chr1:3211521-3211561 40 - 0 0 0 OK 0 0 0 OK
+TCONS_00000068 i Xkr4 XLOC_000036 Xkr4 TSS43 chr1:3212717-3212801 84 - 4.39147e+06 0 1.31744e+07 OK 0 0 0 OK
+TCONS_00000069 i Xkr4 XLOC_000037 Xkr4 TSS45 chr1:3213095-3213242 124 - 1.36901e+06 1.36667e+06 1.37135e+06 LOWDATA 0 0 0 OK
+TCONS_00000070 i Xkr4 XLOC_000038 Xkr4 TSS46 chr1:3240606-3240633 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000071 i Xkr4 XLOC_000039 Xkr4 TSS47 chr1:3242479-3242512 33 - 0 0 0 OK 0 0 0 OK
+TCONS_00000072 i Xkr4 XLOC_000041 Xkr4 TSS49 chr1:3242924-3243005 81 - 0 0 0 OK 0 0 0 OK
+TCONS_00000073 i Xkr4 XLOC_000043 Xkr4 TSS51 chr1:3243108-3243154 46 - 9.99919e+07 0 2.99976e+08 OK 0 0 0 OK
+TCONS_00000074 i Xkr4 XLOC_000045 Xkr4 TSS53 chr1:3254079-3254106 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000075 i Xkr4 XLOC_000047 Xkr4 TSS55 chr1:3277155-3277182 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000076 i Xkr4 XLOC_000049 Xkr4 TSS57 chr1:3277913-3278390 477 - 265614 16793 514436 OK 41870.3 0 90217.9 OK
+TCONS_00000077 i Xkr4 XLOC_000050 Xkr4 TSS59 chr1:3280117-3280144 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000078 i Xkr4 XLOC_000051 Xkr4 TSS60 chr1:3280498-3280525 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000079 i Xkr4 XLOC_000053 Xkr4 TSS62 chr1:3282504-3282531 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000080 i Xkr4 XLOC_000054 Xkr4 TSS63 chr1:3282650-3282677 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000081 i Xkr4 XLOC_000055 Xkr4 TSS64 chr1:3282760-3282832 72 - 0 0 0 OK 0 0 0 OK
+TCONS_00000082 i Xkr4 XLOC_000056 Xkr4 TSS65 chr1:3284966-3284993 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000083 i Xkr4 XLOC_000058 Xkr4 TSS67 chr1:3290798-3290859 61 - 1.8095e+07 0 5.4285e+07 OK 0 0 0 OK
+TCONS_00000084 i Xkr4 XLOC_000059 Xkr4 TSS68 chr1:3290919-3291273 354 - 342218 0 691214 OK 75524 0 162732 OK
+TCONS_00000085 i Xkr4 XLOC_000060 Xkr4 TSS70 chr1:3299443-3299664 197 - 937403 0 1.99795e+06 OK 137917 0 413751 OK
+TCONS_00000086 i Xkr4 XLOC_000061 Xkr4 TSS72 chr1:3299691-3299733 42 - 0 0 0 OK 0 0 0 OK
+TCONS_00000087 i Xkr4 XLOC_000063 Xkr4 TSS74 chr1:3307748-3307775 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000088 i Xkr4 XLOC_000064 Xkr4 TSS75 chr1:3318620-3318647 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000089 i Xkr4 XLOC_000066 Xkr4 TSS77 chr1:3330527-3330554 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000090 i Xkr4 XLOC_000067 Xkr4 TSS78 chr1:3351240-3351311 71 - 8.91489e+06 0 2.67447e+07 OK 0 0 0 OK
+TCONS_00000091 i Xkr4 XLOC_000068 Xkr4 TSS80 chr1:3355887-3356119 212 - 585828 0 1.30332e+06 OK 0 0 0 OK
+TCONS_00000092 i Xkr4 XLOC_000069 Xkr4 TSS81 chr1:3356180-3356225 45 - 1.19208e+08 0 3.57623e+08 OK 0 0 0 OK
+TCONS_00000093 i Xkr4 XLOC_000070 Xkr4 TSS82 chr1:3363076-3363176 100 - 4.42166e+06 0 1.06748e+07 OK 0 0 0 OK
+TCONS_00000094 i Xkr4 XLOC_000072 Xkr4 TSS84 chr1:3363387-3363446 59 - 4.28358e+07 0 1.03415e+08 OK 0 0 0 OK
+TCONS_00000095 i Xkr4 XLOC_000074 Xkr4 TSS86 chr1:3364871-3364919 48 - 7.29939e+07 0 2.18982e+08 OK 0 0 0 OK
+TCONS_00000096 i Xkr4 XLOC_000076 Xkr4 TSS88 chr1:3367210-3367237 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000097 i Xkr4 XLOC_000078 Xkr4 TSS90 chr1:3369580-3369607 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000098 i Xkr4 XLOC_000079 Xkr4 TSS91 chr1:3375001-3375028 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000099 i Xkr4 XLOC_000081 Xkr4 TSS93 chr1:3379888-3379915 27 - 0 0 0 OK 0 0 0 OK
+TCONS_00000100 i Xkr4 XLOC_000082 Xkr4 TSS94 chr1:3386739-3386836 97 - 0 0 0 OK 0 0 0 OK
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out6.txt
--- a/test-data/cuffdiff_out6.txt
+++ b/test-data/cuffdiff_out6.txt
@@ -1,88 +1,88 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status q1_FPKM q1_conf_lo q1_conf_hi q2_FPKM q2_conf_lo q2_conf_hi
-XLOC_000001 - - XLOC_000001 - - chr1:3204754-3204833 - - OK 0 0 0 5.42247e+06 0 1.3091e+07
-XLOC_000002 - - XLOC_000002 - - chr1:3111449-3111490 - - OK 0 0 0 1.39654e+08 0 4.18963e+08
-XLOC_000003 - - XLOC_000003 - - chr1:3111545-3111576 - - OK 0 0 0 0 0 0
-XLOC_000004 - - XLOC_000004 - - chr1:3174765-3174792 - - OK 0 0 0 0 0 0
-XLOC_000005 - - XLOC_000005 - - chr1:3187401-3187428 - - OK 0 0 0 0 0 0
-XLOC_000006 - - XLOC_000006 - - chr1:3188521-3188548 - - OK 0 0 0 0 0 0
-XLOC_000007 - - XLOC_000007 - - chr1:3189810-3190789 - - OK 2.6642e+06 71325.8 5.25708e+06 5.53756e+06 926051 1.01491e+07
-XLOC_000008 - - XLOC_000008 - - chr1:3190858-3191434 - - OK 227564 66605.9 388523 240951 73918.5 407983
-XLOC_000009 - - XLOC_000009 - - chr1:3191512-3192077 - - OK 1.406e+07 0 3.91501e+07 3.74293e+07 3.65533e+06 7.12032e+07
-XLOC_000010 - - XLOC_000010 - - chr1:3192250-3192336 - - OK 1.91712e+06 0 5.75136e+06 1.91712e+06 0 5.75136e+06
-XLOC_000011 - - XLOC_000011 - - chr1:3192441-3192494 - - OK 0 0 0 5.56023e+07 0 1.19806e+08
-XLOC_000012 - - XLOC_000012 - - chr1:3192550-3192629 - - OK 0 0 0 2.71123e+06 0 8.1337e+06
-XLOC_000013 - - XLOC_000013 - - chr1:3192649-3192676 - - OK 0 0 0 0 0 0
-XLOC_000014 - - XLOC_000014 - - chr1:3192731-3192811 - - OK 0 0 0 0 0 0
-XLOC_000015 - - XLOC_000015 - - chr1:3192940-3193042 - - OK 0 0 0 3.93442e+06 0 8.47748e+06
-XLOC_000016 - - XLOC_000016 - - chr1:3194185-3194226 - - OK 0 0 0 1.39654e+08 0 4.18963e+08
-XLOC_000017 - - XLOC_000017 - - chr1:3194302-3194329 - - OK 0 0 0 0 0 0
-XLOC_000018 - - XLOC_000018 - - chr1:3194706-3194733 - - OK 0 0 0 0 0 0
-XLOC_000019 - - XLOC_000019 - - chr1:3195083-3195110 - - OK 0 0 0 0 0 0
-XLOC_000020 - - XLOC_000020 - - chr1:3195450-3195477 - - OK 0 0 0 0 0 0
-XLOC_000021 - - XLOC_000021 - - chr1:3197089-3197116 - - OK 0 0 0 0 0 0
-XLOC_000022 - - XLOC_000022 - - chr1:3197246-3197273 - - OK 0 0 0 0 0 0
-XLOC_000023 - - XLOC_000023 - - chr1:3197346-3197373 - - OK 0 0 0 0 0 0
-XLOC_000024 - - XLOC_000024 - - chr1:3197425-3197452 - - OK 0 0 0 0 0 0
-XLOC_000025 - - XLOC_000025 - - chr1:3200022-3200191 - - OK 460348 0 991912 460348 0 991912
-XLOC_000026 - - XLOC_000026 - - chr1:3200325-3200352 - - OK 0 0 0 0 0 0
-XLOC_000027 - - XLOC_000027 - - chr1:3200430-3200457 - - OK 0 0 0 0 0 0
-XLOC_000028 - - XLOC_000028 - - chr1:3201007-3201039 - - OK 0 0 0 0 0 0
-XLOC_000029 - - XLOC_000029 - - chr1:3201077-3201481 - - OK 37206.6 0 80169.2 186033 15366.6 356700
-XLOC_000030 - - XLOC_000030 - - chr1:3201596-3201666 - - OK 9.11292e+06 0 2.20005e+07 0 0 0
-XLOC_000031 - - XLOC_000031 - - chr1:3201672-3201699 - - OK 0 0 0 0 0 0
-XLOC_000032 - - XLOC_000032 - - chr1:3201725-3201809 - - OK 8.43162e+06 0 1.81676e+07 0 0 0
-XLOC_000033 - - XLOC_000033 - - chr1:3211521-3211561 - - OK 0 0 0 0 0 0
-XLOC_000034 - - XLOC_000034 - - chr1:3212213-3212292 - - OK 0 0 0 5.42247e+06 0 1.3091e+07
-XLOC_000035 - - XLOC_000035 - - chr1:3212367-3212439 - - OK 0 0 0 1.60978e+07 0 3.46859e+07
-XLOC_000036 - - XLOC_000036 - - chr1:3212717-3212801 - - OK 2.10791e+06 0 6.32372e+06 0 0 0
-XLOC_000037 - - XLOC_000037 - - chr1:3213095-3213192 - - OK 2.38694e+06 0 5.76259e+06 1.19347e+06 0 3.58042e+06
-XLOC_000038 - - XLOC_000038 - - chr1:3240606-3240633 - - OK 0 0 0 0 0 0
-XLOC_000039 - - XLOC_000039 - - chr1:3242479-3242512 - - OK 0 0 0 0 0 0
-XLOC_000040 - - XLOC_000040 - - chr1:3242633-3242923 - - OK 27029.9 0 81089.8 243269 0 494190
-XLOC_000041 - - XLOC_000041 - - chr1:3242924-3243005 - - OK 0 0 0 0 0 0
-XLOC_000042 - - XLOC_000042 - - chr1:3243018-3243079 - - OK 0 0 0 1.73712e+07 0 4.19378e+07
-XLOC_000043 - - XLOC_000043 - - chr1:3243108-3243154 - - OK 4.79961e+07 0 1.43988e+08 0 0 0
-XLOC_000044 - - XLOC_000044 - - chr1:3243347-3243401 - - OK 0 0 0 3.32455e+07 0 8.02618e+07
-XLOC_000045 - - XLOC_000045 - - chr1:3254079-3254106 - - OK 0 0 0 0 0 0
-XLOC_000046 - - XLOC_000046 - - chr1:3256974-3257011 - - OK 0 0 0 1.34946e+09 0 3.25789e+09
-XLOC_000047 - - XLOC_000047 - - chr1:3277155-3277182 - - OK 0 0 0 0 0 0
-XLOC_000048 - - XLOC_000048 - - chr1:3277190-3277218 - - OK 0 0 0 0 0 0
-XLOC_000049 - - XLOC_000049 - - chr1:3277913-3278390 - - OK 127495 8942.18 246048 27320.3 0 58867.2
-XLOC_000050 - - XLOC_000050 - - chr1:3280117-3280144 - - OK 0 0 0 0 0 0
-XLOC_000051 - - XLOC_000051 - - chr1:3280498-3280525 - - OK 0 0 0 0 0 0
-XLOC_000052 - - XLOC_000052 - - chr1:3280686-3280741 - - OK 0 0 0 1.49798e+07 0 4.49395e+07
-XLOC_000053 - - XLOC_000053 - - chr1:3282504-3282531 - - OK 0 0 0 0 0 0
-XLOC_000054 - - XLOC_000054 - - chr1:3282650-3282677 - - OK 0 0 0 0 0 0
-XLOC_000055 - - XLOC_000055 - - chr1:3282760-3282832 - - OK 0 0 0 0 0 0
-XLOC_000056 - - XLOC_000056 - - chr1:3284966-3284993 - - OK 0 0 0 0 0 0
-XLOC_000057 - - XLOC_000057 - - chr1:3290488-3290553 - - OK 0 0 0 6.39146e+06 0 1.91744e+07
-XLOC_000058 - - XLOC_000058 - - chr1:3290798-3290859 - - OK 8.68561e+06 0 2.60568e+07 0 0 0
-XLOC_000059 - - XLOC_000059 - - chr1:3290919-3291273 - - OK 7.79612e+06 0 1.75364e+07 1.49584e+06 0 4.5057e+06
-XLOC_000060 - - XLOC_000060 - - chr1:3299443-3299664 - - OK 449954 0 952175 89990.7 0 269972
-XLOC_000061 - - XLOC_000061 - - chr1:3299691-3299733 - - OK 0 0 0 0 0 0
-XLOC_000062 - - XLOC_000062 - - chr1:3300051-3300078 - - OK 0 0 0 0 0 0
-XLOC_000063 - - XLOC_000063 - - chr1:3307748-3307775 - - OK 0 0 0 0 0 0
-XLOC_000064 - - XLOC_000064 - - chr1:3318620-3318647 - - OK 0 0 0 0 0 0
-XLOC_000065 - - XLOC_000065 - - chr1:3318999-3319051 - - OK 0 0 0 0 0 0
-XLOC_000066 - - XLOC_000066 - - chr1:3330527-3330554 - - OK 0 0 0 0 0 0
-XLOC_000067 - - XLOC_000067 - - chr1:3351240-3351311 - - OK 4.27915e+06 0 1.28374e+07 0 0 0
-XLOC_000068 - - XLOC_000068 - - chr1:3355887-3356119 - - OK 281197 0 605895 0 0 0
-XLOC_000069 - - XLOC_000069 - - chr1:3356180-3356225 - - OK 5.72196e+07 0 1.71659e+08 0 0 0
-XLOC_000070 - - XLOC_000070 - - chr1:3363076-3363176 - - OK 2.1224e+06 0 5.12392e+06 0 0 0
-XLOC_000071 - - XLOC_000071 - - chr1:3363214-3363278 - - OK 0 0 0 0 0 0
-XLOC_000072 - - XLOC_000072 - - chr1:3363387-3363446 - - OK 3.08417e+07 0 6.64547e+07 0 0 0
-XLOC_000073 - - XLOC_000073 - - chr1:3363753-3363849 - - OK 0 0 0 0 0 0
-XLOC_000074 - - XLOC_000074 - - chr1:3364871-3364919 - - OK 3.50371e+07 0 1.05111e+08 0 0 0
-XLOC_000075 - - XLOC_000075 - - chr1:3367135-3367162 - - OK 0 0 0 0 0 0
-XLOC_000076 - - XLOC_000076 - - chr1:3367210-3367237 - - OK 0 0 0 0 0 0
-XLOC_000077 - - XLOC_000077 - - chr1:3367333-3367382 - - OK 0 0 0 0 0 0
-XLOC_000078 - - XLOC_000078 - - chr1:3369580-3369607 - - OK 0 0 0 0 0 0
-XLOC_000079 - - XLOC_000079 - - chr1:3375001-3375028 - - OK 0 0 0 0 0 0
-XLOC_000080 - - XLOC_000080 - - chr1:3377211-3377262 - - OK 0 0 0 0 0 0
-XLOC_000081 - - XLOC_000081 - - chr1:3379888-3379915 - - OK 0 0 0 0 0 0
-XLOC_000082 - - XLOC_000082 - - chr1:3386739-3386836 - - OK 0 0 0 0 0 0
-XLOC_000083 - - XLOC_000083 - - chr1:3391325-3391352 - - OK 0 0 0 0 0 0
-XLOC_000084 - - XLOC_000084 - - chr1:3435841-3435880 - - OK 0 0 0 0 0 0
-XLOC_000085 - - XLOC_000085 - - chr1:3447761-3447788 - - OK 0 0 0 0 0 0
-XLOC_000086 - - XLOC_000086 - - chr1:3450906-3450965 - - OK 0 0 0 0 0 0
-XLOC_000087 - - XLOC_000087 - - chr1:3451051-3451109 - - OK 0 0 0 0 0 0
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage q1_FPKM q1_conf_lo q1_conf_hi q1_status q2_FPKM q2_conf_lo q2_conf_hi q2_status
+XLOC_000001 - - XLOC_000001 Xkr4 TSS1 chr1:3204754-3204833 - - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+XLOC_000002 - - XLOC_000002 - TSS2 chr1:3111449-3111490 - - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+XLOC_000003 - - XLOC_000003 - TSS3 chr1:3111545-3111576 - - 0 0 0 OK 0 0 0 OK
+XLOC_000004 - - XLOC_000004 - TSS4 chr1:3174765-3174792 - - 0 0 0 OK 0 0 0 OK
+XLOC_000005 - - XLOC_000005 - TSS5 chr1:3187401-3187428 - - 0 0 0 OK 0 0 0 OK
+XLOC_000006 - - XLOC_000006 - TSS6 chr1:3188521-3188548 - - 0 0 0 OK 0 0 0 OK
+XLOC_000007 - - XLOC_000007 - TSS7 chr1:3189810-3190789 - - 368900 151353 586447 OK 429265 337221 521309 OK
+XLOC_000008 - - XLOC_000008 - TSS11 chr1:3190858-3191434 - - 404373 101434 707312 OK 338500 95761.5 581239 OK
+XLOC_000009 - - XLOC_000009 - TSS12 chr1:3191512-3192077 - - 402276 96829.4 707722 OK 686974 410563 963384 OK
+XLOC_000010 - - XLOC_000010 - TSS15 chr1:3192250-3192336 - - 3.994e+06 0 1.1982e+07 OK 2.93812e+06 0 8.81435e+06 OK
+XLOC_000011 - - XLOC_000011 - TSS16 chr1:3192441-3192494 - - 0 0 0 OK 5.68095e+07 0 1.3715e+08 OK
+XLOC_000012 - - XLOC_000012 - TSS17 chr1:3192550-3192629 - - 0 0 0 OK 4.15515e+06 0 1.24654e+07 OK
+XLOC_000013 - - XLOC_000013 - TSS18 chr1:3192649-3192676 - - 0 0 0 OK 0 0 0 OK
+XLOC_000014 - - XLOC_000014 - TSS19 chr1:3192731-3192811 - - 0 0 0 OK 0 0 0 OK
+XLOC_000015 - - XLOC_000015 - TSS20 chr1:3192940-3193042 - - 0 0 0 OK 6.02976e+06 0 1.34147e+07 OK
+XLOC_000016 - - XLOC_000016 - TSS21 chr1:3194185-3194226 - - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+XLOC_000017 - - XLOC_000017 - TSS22 chr1:3194302-3194329 - - 0 0 0 OK 0 0 0 OK
+XLOC_000018 - - XLOC_000018 - TSS23 chr1:3194706-3194733 - - 0 0 0 OK 0 0 0 OK
+XLOC_000019 - - XLOC_000019 - TSS24 chr1:3195083-3195110 - - 0 0 0 OK 0 0 0 OK
+XLOC_000020 - - XLOC_000020 - TSS25 chr1:3195450-3195477 - - 0 0 0 OK 0 0 0 OK
+XLOC_000021 - - XLOC_000021 - TSS26 chr1:3197089-3197116 - - 0 0 0 OK 0 0 0 OK
+XLOC_000022 - - XLOC_000022 - TSS27 chr1:3197246-3197273 - - 0 0 0 OK 0 0 0 OK
+XLOC_000023 - - XLOC_000023 - TSS28 chr1:3197346-3197373 - - 0 0 0 OK 0 0 0 OK
+XLOC_000024 - - XLOC_000024 - TSS29 chr1:3197425-3197452 - - 0 0 0 OK 0 0 0 OK
+XLOC_000025 - - XLOC_000025 - TSS30 chr1:3200022-3200191 - - 959058 0 2.06648e+06 OK 705514 0 1.52017e+06 OK
+XLOC_000026 - - XLOC_000026 - TSS32 chr1:3200325-3200352 - - 0 0 0 OK 0 0 0 OK
+XLOC_000027 - - XLOC_000027 - TSS33 chr1:3200430-3200457 - - 0 0 0 OK 0 0 0 OK
+XLOC_000028 - - XLOC_000028 - TSS34 chr1:3201007-3201039 - - 0 0 0 OK 0 0 0 OK
+XLOC_000029 - - XLOC_000029 - TSS35 chr1:3201077-3201481 - - 77513.9 0 167019 OK 285108 21736.5 548480 OK
+XLOC_000030 - - XLOC_000030 - TSS37 chr1:3201596-3201666 - - 1.89853e+07 0 4.58345e+07 OK 0 0 0 OK
+XLOC_000031 - - XLOC_000031 - TSS38 chr1:3201672-3201699 - - 0 0 0 OK 0 0 0 OK
+XLOC_000032 - - XLOC_000032 - TSS39 chr1:3201725-3201809 - - 1.31744e+07 0 2.83869e+07 OK 0 0 0 OK
+XLOC_000033 - - XLOC_000033 Xkr4 TSS40 chr1:3211521-3211561 - - 0 0 0 OK 0 0 0 OK
+XLOC_000034 - - XLOC_000034 Xkr4 TSS41 chr1:3212213-3212292 - - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+XLOC_000035 - - XLOC_000035 Xkr4 TSS42 chr1:3212367-3212439 - - 0 0 0 OK 2.4671e+07 0 5.48867e+07 OK
+XLOC_000036 - - XLOC_000036 Xkr4 TSS43 chr1:3212717-3212801 - - 4.39147e+06 0 1.31744e+07 OK 0 0 0 OK
+XLOC_000037 - - XLOC_000037 Xkr4 TSS44,TSS45 chr1:3213095-3213242 - - 5.3664e+06 0 1.39795e+07 LOWDATA 1.82908e+06 0 5.48723e+06 OK
+XLOC_000038 - - XLOC_000038 Xkr4 TSS46 chr1:3240606-3240633 - - 0 0 0 OK 0 0 0 OK
+XLOC_000039 - - XLOC_000039 Xkr4 TSS47 chr1:3242479-3242512 - - 0 0 0 OK 0 0 0 OK
+XLOC_000040 - - XLOC_000040 Xkr4 TSS48 chr1:3242633-3242923 - - 56312.4 0 168937 OK 372827 0 761430 OK
+XLOC_000041 - - XLOC_000041 Xkr4 TSS49 chr1:3242924-3243005 - - 0 0 0 OK 0 0 0 OK
+XLOC_000042 - - XLOC_000042 Xkr4 TSS50 chr1:3243018-3243079 - - 0 0 0 OK 2.66226e+07 0 6.42725e+07 OK
+XLOC_000043 - - XLOC_000043 Xkr4 TSS51 chr1:3243108-3243154 - - 9.99919e+07 0 2.99976e+08 OK 0 0 0 OK
+XLOC_000044 - - XLOC_000044 Xkr4 TSS52 chr1:3243347-3243401 - - 0 0 0 OK 5.0951e+07 0 1.23007e+08 OK
+XLOC_000045 - - XLOC_000045 Xkr4 TSS53 chr1:3254079-3254106 - - 0 0 0 OK 0 0 0 OK
+XLOC_000046 - - XLOC_000046 Xkr4 TSS54 chr1:3256974-3257011 - - 0 0 0 OK 2.06814e+09 0 4.99293e+09 OK
+XLOC_000047 - - XLOC_000047 Xkr4 TSS55 chr1:3277155-3277182 - - 0 0 0 OK 0 0 0 OK
+XLOC_000048 - - XLOC_000048 Xkr4 TSS56 chr1:3277190-3277218 - - 0 0 0 OK 0 0 0 OK
+XLOC_000049 - - XLOC_000049 Xkr4 TSS57 chr1:3277913-3278390 - - 265614 16793 514436 OK 41870.3 0 90217.9 OK
+XLOC_000050 - - XLOC_000050 Xkr4 TSS59 chr1:3280117-3280144 - - 0 0 0 OK 0 0 0 OK
+XLOC_000051 - - XLOC_000051 Xkr4 TSS60 chr1:3280498-3280525 - - 0 0 0 OK 0 0 0 OK
+XLOC_000052 - - XLOC_000052 Xkr4 TSS61 chr1:3280686-3280741 - - 0 0 0 OK 2.29576e+07 0 6.88728e+07 OK
+XLOC_000053 - - XLOC_000053 Xkr4 TSS62 chr1:3282504-3282531 - - 0 0 0 OK 0 0 0 OK
+XLOC_000054 - - XLOC_000054 Xkr4 TSS63 chr1:3282650-3282677 - - 0 0 0 OK 0 0 0 OK
+XLOC_000055 - - XLOC_000055 Xkr4 TSS64 chr1:3282760-3282832 - - 0 0 0 OK 0 0 0 OK
+XLOC_000056 - - XLOC_000056 Xkr4 TSS65 chr1:3284966-3284993 - - 0 0 0 OK 0 0 0 OK
+XLOC_000057 - - XLOC_000057 Xkr4 TSS66 chr1:3290488-3290553 - - 0 0 0 OK 9.79535e+06 0 2.9386e+07 OK
+XLOC_000058 - - XLOC_000058 Xkr4 TSS67 chr1:3290798-3290859 - - 1.8095e+07 0 5.4285e+07 OK 0 0 0 OK
+XLOC_000059 - - XLOC_000059 Xkr4 TSS68 chr1:3290919-3291273 - - 342218 0 691214 OK 75524 0 162732 OK
+XLOC_000060 - - XLOC_000060 Xkr4 TSS70,TSS71 chr1:3299443-3299664 - - 937403 0 1.99795e+06 OK 137917 0 413751 OK
+XLOC_000061 - - XLOC_000061 Xkr4 TSS72 chr1:3299691-3299733 - - 0 0 0 OK 0 0 0 OK
+XLOC_000062 - - XLOC_000062 Xkr4 TSS73 chr1:3300051-3300078 - - 0 0 0 OK 0 0 0 OK
+XLOC_000063 - - XLOC_000063 Xkr4 TSS74 chr1:3307748-3307775 - - 0 0 0 OK 0 0 0 OK
+XLOC_000064 - - XLOC_000064 Xkr4 TSS75 chr1:3318620-3318647 - - 0 0 0 OK 0 0 0 OK
+XLOC_000065 - - XLOC_000065 Xkr4 TSS76 chr1:3318999-3319051 - - 0 0 0 OK 0 0 0 OK
+XLOC_000066 - - XLOC_000066 Xkr4 TSS77 chr1:3330527-3330554 - - 0 0 0 OK 0 0 0 OK
+XLOC_000067 - - XLOC_000067 Xkr4 TSS78 chr1:3351240-3351311 - - 8.91489e+06 0 2.67447e+07 OK 0 0 0 OK
+XLOC_000068 - - XLOC_000068 Xkr4 TSS79,TSS80 chr1:3355887-3356119 - - 585828 0 1.30332e+06 OK 0 0 0 OK
+XLOC_000069 - - XLOC_000069 Xkr4 TSS81 chr1:3356180-3356225 - - 1.19208e+08 0 3.57623e+08 OK 0 0 0 OK
+XLOC_000070 - - XLOC_000070 Xkr4 TSS82 chr1:3363076-3363176 - - 4.42166e+06 0 1.06748e+07 OK 0 0 0 OK
+XLOC_000071 - - XLOC_000071 Xkr4 TSS83 chr1:3363214-3363278 - - 0 0 0 OK 0 0 0 OK
+XLOC_000072 - - XLOC_000072 Xkr4 TSS84 chr1:3363387-3363446 - - 4.28358e+07 0 1.03415e+08 OK 0 0 0 OK
+XLOC_000073 - - XLOC_000073 Xkr4 TSS85 chr1:3363753-3363849 - - 0 0 0 OK 0 0 0 OK
+XLOC_000074 - - XLOC_000074 Xkr4 TSS86 chr1:3364871-3364919 - - 7.29939e+07 0 2.18982e+08 OK 0 0 0 OK
+XLOC_000075 - - XLOC_000075 Xkr4 TSS87 chr1:3367135-3367162 - - 0 0 0 OK 0 0 0 OK
+XLOC_000076 - - XLOC_000076 Xkr4 TSS88 chr1:3367210-3367237 - - 0 0 0 OK 0 0 0 OK
+XLOC_000077 - - XLOC_000077 Xkr4 TSS89 chr1:3367333-3367382 - - 0 0 0 OK 0 0 0 OK
+XLOC_000078 - - XLOC_000078 Xkr4 TSS90 chr1:3369580-3369607 - - 0 0 0 OK 0 0 0 OK
+XLOC_000079 - - XLOC_000079 Xkr4 TSS91 chr1:3375001-3375028 - - 0 0 0 OK 0 0 0 OK
+XLOC_000080 - - XLOC_000080 Xkr4 TSS92 chr1:3377211-3377262 - - 0 0 0 OK 0 0 0 OK
+XLOC_000081 - - XLOC_000081 Xkr4 TSS93 chr1:3379888-3379915 - - 0 0 0 OK 0 0 0 OK
+XLOC_000082 - - XLOC_000082 Xkr4 TSS94 chr1:3386739-3386836 - - 0 0 0 OK 0 0 0 OK
+XLOC_000083 - - XLOC_000083 Xkr4 TSS95 chr1:3391325-3391352 - - 0 0 0 OK 0 0 0 OK
+XLOC_000084 - - XLOC_000084 Xkr4 TSS96 chr1:3435841-3435880 - - 0 0 0 OK 0 0 0 OK
+XLOC_000085 - - XLOC_000085 Xkr4 TSS97 chr1:3447761-3447788 - - 0 0 0 OK 0 0 0 OK
+XLOC_000086 - - XLOC_000086 Xkr4 TSS98 chr1:3450906-3450965 - - 0 0 0 OK 0 0 0 OK
+XLOC_000087 - - XLOC_000087 Xkr4 TSS99 chr1:3451051-3451109 - - 0 0 0 OK 0 0 0 OK
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out7.txt
--- a/test-data/cuffdiff_out7.txt
+++ b/test-data/cuffdiff_out7.txt
@@ -1,1 +1,91 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage q1_FPKM q1_conf_lo q1_conf_hi q1_status q2_FPKM q2_conf_lo q2_conf_hi q2_status
+TSS1 - - XLOC_000001 Xkr4 TSS1 chr1:3204754-3204833 - - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+TSS11 - - XLOC_000008 - TSS11 chr1:3190858-3191434 - - 404373 101434 707312 OK 338500 95761.5 581239 OK
+TSS12 - - XLOC_000009 - TSS12 chr1:3191512-3192077 - - 402276 96829.4 707722 OK 686974 410563 963384 OK
+TSS15 - - XLOC_000010 - TSS15 chr1:3192250-3192336 - - 3.994e+06 0 1.1982e+07 OK 2.93812e+06 0 8.81435e+06 OK
+TSS16 - - XLOC_000011 - TSS16 chr1:3192441-3192494 - - 0 0 0 OK 5.68095e+07 0 1.3715e+08 OK
+TSS17 - - XLOC_000012 - TSS17 chr1:3192550-3192629 - - 0 0 0 OK 4.15515e+06 0 1.24654e+07 OK
+TSS18 - - XLOC_000013 - TSS18 chr1:3192649-3192676 - - 0 0 0 OK 0 0 0 OK
+TSS19 - - XLOC_000014 - TSS19 chr1:3192731-3192811 - - 0 0 0 OK 0 0 0 OK
+TSS2 - - XLOC_000002 - TSS2 chr1:3111449-3111490 - - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+TSS20 - - XLOC_000015 - TSS20 chr1:3192940-3193042 - - 0 0 0 OK 6.02976e+06 0 1.34147e+07 OK
+TSS21 - - XLOC_000016 - TSS21 chr1:3194185-3194226 - - 0 0 0 OK 2.1403e+08 0 6.42089e+08 OK
+TSS22 - - XLOC_000017 - TSS22 chr1:3194302-3194329 - - 0 0 0 OK 0 0 0 OK
+TSS23 - - XLOC_000018 - TSS23 chr1:3194706-3194733 - - 0 0 0 OK 0 0 0 OK
+TSS24 - - XLOC_000019 - TSS24 chr1:3195083-3195110 - - 0 0 0 OK 0 0 0 OK
+TSS25 - - XLOC_000020 - TSS25 chr1:3195450-3195477 - - 0 0 0 OK 0 0 0 OK
+TSS26 - - XLOC_000021 - TSS26 chr1:3197089-3197116 - - 0 0 0 OK 0 0 0 OK
+TSS27 - - XLOC_000022 - TSS27 chr1:3197246-3197273 - - 0 0 0 OK 0 0 0 OK
+TSS28 - - XLOC_000023 - TSS28 chr1:3197346-3197373 - - 0 0 0 OK 0 0 0 OK
+TSS29 - - XLOC_000024 - TSS29 chr1:3197425-3197452 - - 0 0 0 OK 0 0 0 OK
+TSS3 - - XLOC_000003 - TSS3 chr1:3111545-3111576 - - 0 0 0 OK 0 0 0 OK
+TSS30 - - XLOC_000025 - TSS30 chr1:3200022-3200191 - - 959058 0 2.06648e+06 OK 705514 0 1.52017e+06 OK
+TSS32 - - XLOC_000026 - TSS32 chr1:3200325-3200352 - - 0 0 0 OK 0 0 0 OK
+TSS33 - - XLOC_000027 - TSS33 chr1:3200430-3200457 - - 0 0 0 OK 0 0 0 OK
+TSS34 - - XLOC_000028 - TSS34 chr1:3201007-3201039 - - 0 0 0 OK 0 0 0 OK
+TSS35 - - XLOC_000029 - TSS35 chr1:3201077-3201481 - - 77513.9 0 167019 OK 285108 21736.5 548480 OK
+TSS37 - - XLOC_000030 - TSS37 chr1:3201596-3201666 - - 1.89853e+07 0 4.58345e+07 OK 0 0 0 OK
+TSS38 - - XLOC_000031 - TSS38 chr1:3201672-3201699 - - 0 0 0 OK 0 0 0 OK
+TSS39 - - XLOC_000032 - TSS39 chr1:3201725-3201809 - - 1.31744e+07 0 2.83869e+07 OK 0 0 0 OK
+TSS4 - - XLOC_000004 - TSS4 chr1:3174765-3174792 - - 0 0 0 OK 0 0 0 OK
+TSS40 - - XLOC_000033 Xkr4 TSS40 chr1:3211521-3211561 - - 0 0 0 OK 0 0 0 OK
+TSS41 - - XLOC_000034 Xkr4 TSS41 chr1:3212213-3212292 - - 0 0 0 OK 8.3103e+06 0 2.00628e+07 OK
+TSS42 - - XLOC_000035 Xkr4 TSS42 chr1:3212367-3212439 - - 0 0 0 OK 2.4671e+07 0 5.48867e+07 OK
+TSS43 - - XLOC_000036 Xkr4 TSS43 chr1:3212717-3212801 - - 4.39147e+06 0 1.31744e+07 OK 0 0 0 OK
+TSS44 - - XLOC_000037 Xkr4 TSS44 chr1:3213095-3213242 - - 3.99739e+06 0 1.3943e+07 LOWDATA 1.82908e+06 0 5.48723e+06 OK
+TSS45 - - XLOC_000037 Xkr4 TSS45 chr1:3213095-3213242 - - 1.36901e+06 0 5.30211e+06 LOWDATA 0 0 0 OK
+TSS46 - - XLOC_000038 Xkr4 TSS46 chr1:3240606-3240633 - - 0 0 0 OK 0 0 0 OK
+TSS47 - - XLOC_000039 Xkr4 TSS47 chr1:3242479-3242512 - - 0 0 0 OK 0 0 0 OK
+TSS48 - - XLOC_000040 Xkr4 TSS48 chr1:3242633-3242923 - - 56312.4 0 168937 OK 372827 0 761430 OK
+TSS49 - - XLOC_000041 Xkr4 TSS49 chr1:3242924-3243005 - - 0 0 0 OK 0 0 0 OK
+TSS5 - - XLOC_000005 - TSS5 chr1:3187401-3187428 - - 0 0 0 OK 0 0 0 OK
+TSS50 - - XLOC_000042 Xkr4 TSS50 chr1:3243018-3243079 - - 0 0 0 OK 2.66226e+07 0 6.42725e+07 OK
+TSS51 - - XLOC_000043 Xkr4 TSS51 chr1:3243108-3243154 - - 9.99919e+07 0 2.99976e+08 OK 0 0 0 OK
+TSS52 - - XLOC_000044 Xkr4 TSS52 chr1:3243347-3243401 - - 0 0 0 OK 5.0951e+07 0 1.23007e+08 OK
+TSS53 - - XLOC_000045 Xkr4 TSS53 chr1:3254079-3254106 - - 0 0 0 OK 0 0 0 OK
+TSS54 - - XLOC_000046 Xkr4 TSS54 chr1:3256974-3257011 - - 0 0 0 OK 2.06814e+09 0 4.99293e+09 OK
+TSS55 - - XLOC_000047 Xkr4 TSS55 chr1:3277155-3277182 - - 0 0 0 OK 0 0 0 OK
+TSS56 - - XLOC_000048 Xkr4 TSS56 chr1:3277190-3277218 - - 0 0 0 OK 0 0 0 OK
+TSS57 - - XLOC_000049 Xkr4 TSS57 chr1:3277913-3278390 - - 265614 16793 514436 OK 41870.3 0 90217.9 OK
+TSS59 - - XLOC_000050 Xkr4 TSS59 chr1:3280117-3280144 - - 0 0 0 OK 0 0 0 OK
+TSS6 - - XLOC_000006 - TSS6 chr1:3188521-3188548 - - 0 0 0 OK 0 0 0 OK
+TSS60 - - XLOC_000051 Xkr4 TSS60 chr1:3280498-3280525 - - 0 0 0 OK 0 0 0 OK
+TSS61 - - XLOC_000052 Xkr4 TSS61 chr1:3280686-3280741 - - 0 0 0 OK 2.29576e+07 0 6.88728e+07 OK
+TSS62 - - XLOC_000053 Xkr4 TSS62 chr1:3282504-3282531 - - 0 0 0 OK 0 0 0 OK
+TSS63 - - XLOC_000054 Xkr4 TSS63 chr1:3282650-3282677 - - 0 0 0 OK 0 0 0 OK
+TSS64 - - XLOC_000055 Xkr4 TSS64 chr1:3282760-3282832 - - 0 0 0 OK 0 0 0 OK
+TSS65 - - XLOC_000056 Xkr4 TSS65 chr1:3284966-3284993 - - 0 0 0 OK 0 0 0 OK
+TSS66 - - XLOC_000057 Xkr4 TSS66 chr1:3290488-3290553 - - 0 0 0 OK 9.79535e+06 0 2.9386e+07 OK
+TSS67 - - XLOC_000058 Xkr4 TSS67 chr1:3290798-3290859 - - 1.8095e+07 0 5.4285e+07 OK 0 0 0 OK
+TSS68 - - XLOC_000059 Xkr4 TSS68 chr1:3290919-3291273 - - 342218 0 691214 OK 75524 0 162732 OK
+TSS7 - - XLOC_000007 - TSS7 chr1:3189810-3190789 - - 368900 151353 586447 OK 429265 337221 521309 OK
+TSS70 - - XLOC_000060 Xkr4 TSS70 chr1:3299443-3299664 - - 937403 0 1.99795e+06 OK 137917 0 413751 OK
+TSS71 - - XLOC_000060 Xkr4 TSS71 chr1:3299443-3299664 - - 0 0 0 OK 0 0 0 OK
+TSS72 - - XLOC_000061 Xkr4 TSS72 chr1:3299691-3299733 - - 0 0 0 OK 0 0 0 OK
+TSS73 - - XLOC_000062 Xkr4 TSS73 chr1:3300051-3300078 - - 0 0 0 OK 0 0 0 OK
+TSS74 - - XLOC_000063 Xkr4 TSS74 chr1:3307748-3307775 - - 0 0 0 OK 0 0 0 OK
+TSS75 - - XLOC_000064 Xkr4 TSS75 chr1:3318620-3318647 - - 0 0 0 OK 0 0 0 OK
+TSS76 - - XLOC_000065 Xkr4 TSS76 chr1:3318999-3319051 - - 0 0 0 OK 0 0 0 OK
+TSS77 - - XLOC_000066 Xkr4 TSS77 chr1:3330527-3330554 - - 0 0 0 OK 0 0 0 OK
+TSS78 - - XLOC_000067 Xkr4 TSS78 chr1:3351240-3351311 - - 8.91489e+06 0 2.67447e+07 OK 0 0 0 OK
+TSS79 - - XLOC_000068 Xkr4 TSS79 chr1:3355887-3356119 - - 0 0 0 OK 0 0 0 OK
+TSS80 - - XLOC_000068 Xkr4 TSS80 chr1:3355887-3356119 - - 585828 0 1.30332e+06 OK 0 0 0 OK
+TSS81 - - XLOC_000069 Xkr4 TSS81 chr1:3356180-3356225 - - 1.19208e+08 0 3.57623e+08 OK 0 0 0 OK
+TSS82 - - XLOC_000070 Xkr4 TSS82 chr1:3363076-3363176 - - 4.42166e+06 0 1.06748e+07 OK 0 0 0 OK
+TSS83 - - XLOC_000071 Xkr4 TSS83 chr1:3363214-3363278 - - 0 0 0 OK 0 0 0 OK
+TSS84 - - XLOC_000072 Xkr4 TSS84 chr1:3363387-3363446 - - 4.28358e+07 0 1.03415e+08 OK 0 0 0 OK
+TSS85 - - XLOC_000073 Xkr4 TSS85 chr1:3363753-3363849 - - 0 0 0 OK 0 0 0 OK
+TSS86 - - XLOC_000074 Xkr4 TSS86 chr1:3364871-3364919 - - 7.29939e+07 0 2.18982e+08 OK 0 0 0 OK
+TSS87 - - XLOC_000075 Xkr4 TSS87 chr1:3367135-3367162 - - 0 0 0 OK 0 0 0 OK
+TSS88 - - XLOC_000076 Xkr4 TSS88 chr1:3367210-3367237 - - 0 0 0 OK 0 0 0 OK
+TSS89 - - XLOC_000077 Xkr4 TSS89 chr1:3367333-3367382 - - 0 0 0 OK 0 0 0 OK
+TSS90 - - XLOC_000078 Xkr4 TSS90 chr1:3369580-3369607 - - 0 0 0 OK 0 0 0 OK
+TSS91 - - XLOC_000079 Xkr4 TSS91 chr1:3375001-3375028 - - 0 0 0 OK 0 0 0 OK
+TSS92 - - XLOC_000080 Xkr4 TSS92 chr1:3377211-3377262 - - 0 0 0 OK 0 0 0 OK
+TSS93 - - XLOC_000081 Xkr4 TSS93 chr1:3379888-3379915 - - 0 0 0 OK 0 0 0 OK
+TSS94 - - XLOC_000082 Xkr4 TSS94 chr1:3386739-3386836 - - 0 0 0 OK 0 0 0 OK
+TSS95 - - XLOC_000083 Xkr4 TSS95 chr1:3391325-3391352 - - 0 0 0 OK 0 0 0 OK
+TSS96 - - XLOC_000084 Xkr4 TSS96 chr1:3435841-3435880 - - 0 0 0 OK 0 0 0 OK
+TSS97 - - XLOC_000085 Xkr4 TSS97 chr1:3447761-3447788 - - 0 0 0 OK 0 0 0 OK
+TSS98 - - XLOC_000086 Xkr4 TSS98 chr1:3450906-3450965 - - 0 0 0 OK 0 0 0 OK
+TSS99 - - XLOC_000087 Xkr4 TSS99 chr1:3451051-3451109 - - 0 0 0 OK 0 0 0 OK
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out8.txt
--- a/test-data/cuffdiff_out8.txt
+++ b/test-data/cuffdiff_out8.txt
@@ -1,1 +1,1 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 test-data/cuffdiff_out9.txt
--- a/test-data/cuffdiff_out9.txt
+++ b/test-data/cuffdiff_out9.txt
@@ -1,1 +1,91 @@
test_id gene_id gene locus sample_1 sample_2 status value_1 value_2 sqrt(JS) test_stat p_value q_value significant
+TSS1 XLOC_000001 Xkr4 chr1:3204754-3204833 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS11 XLOC_000008 - chr1:3190858-3191434 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS12 XLOC_000009 - chr1:3191512-3192077 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS15 XLOC_000010 - chr1:3192250-3192336 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS16 XLOC_000011 - chr1:3192441-3192494 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS17 XLOC_000012 - chr1:3192550-3192629 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS18 XLOC_000013 - chr1:3192649-3192676 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS19 XLOC_000014 - chr1:3192731-3192811 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS2 XLOC_000002 - chr1:3111449-3111490 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS20 XLOC_000015 - chr1:3192940-3193042 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS21 XLOC_000016 - chr1:3194185-3194226 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS22 XLOC_000017 - chr1:3194302-3194329 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS23 XLOC_000018 - chr1:3194706-3194733 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS24 XLOC_000019 - chr1:3195083-3195110 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS25 XLOC_000020 - chr1:3195450-3195477 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS26 XLOC_000021 - chr1:3197089-3197116 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS27 XLOC_000022 - chr1:3197246-3197273 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS28 XLOC_000023 - chr1:3197346-3197373 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS29 XLOC_000024 - chr1:3197425-3197452 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS3 XLOC_000003 - chr1:3111545-3111576 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS30 XLOC_000025 - chr1:3200022-3200191 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS32 XLOC_000026 - chr1:3200325-3200352 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS33 XLOC_000027 - chr1:3200430-3200457 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS34 XLOC_000028 - chr1:3201007-3201039 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS35 XLOC_000029 - chr1:3201077-3201481 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS37 XLOC_000030 - chr1:3201596-3201666 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS38 XLOC_000031 - chr1:3201672-3201699 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS39 XLOC_000032 - chr1:3201725-3201809 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS4 XLOC_000004 - chr1:3174765-3174792 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS40 XLOC_000033 Xkr4 chr1:3211521-3211561 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS41 XLOC_000034 Xkr4 chr1:3212213-3212292 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS42 XLOC_000035 Xkr4 chr1:3212367-3212439 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS43 XLOC_000036 Xkr4 chr1:3212717-3212801 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS44 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 FAIL 0 0 0 0 0 1 no
+TSS45 XLOC_000037 Xkr4 chr1:3213095-3213242 q1 q2 FAIL 0 0 0 0 0 1 no
+TSS46 XLOC_000038 Xkr4 chr1:3240606-3240633 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS47 XLOC_000039 Xkr4 chr1:3242479-3242512 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS48 XLOC_000040 Xkr4 chr1:3242633-3242923 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS49 XLOC_000041 Xkr4 chr1:3242924-3243005 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS5 XLOC_000005 - chr1:3187401-3187428 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS50 XLOC_000042 Xkr4 chr1:3243018-3243079 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS51 XLOC_000043 Xkr4 chr1:3243108-3243154 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS52 XLOC_000044 Xkr4 chr1:3243347-3243401 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS53 XLOC_000045 Xkr4 chr1:3254079-3254106 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS54 XLOC_000046 Xkr4 chr1:3256974-3257011 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS55 XLOC_000047 Xkr4 chr1:3277155-3277182 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS56 XLOC_000048 Xkr4 chr1:3277190-3277218 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS57 XLOC_000049 Xkr4 chr1:3277913-3278390 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS59 XLOC_000050 Xkr4 chr1:3280117-3280144 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS6 XLOC_000006 - chr1:3188521-3188548 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS60 XLOC_000051 Xkr4 chr1:3280498-3280525 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS61 XLOC_000052 Xkr4 chr1:3280686-3280741 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS62 XLOC_000053 Xkr4 chr1:3282504-3282531 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS63 XLOC_000054 Xkr4 chr1:3282650-3282677 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS64 XLOC_000055 Xkr4 chr1:3282760-3282832 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS65 XLOC_000056 Xkr4 chr1:3284966-3284993 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS66 XLOC_000057 Xkr4 chr1:3290488-3290553 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS67 XLOC_000058 Xkr4 chr1:3290798-3290859 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS68 XLOC_000059 Xkr4 chr1:3290919-3291273 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS7 XLOC_000007 - chr1:3189810-3190789 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS70 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 0 0 0 0 1 1 no
+TSS71 XLOC_000060 Xkr4 chr1:3299443-3299664 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS72 XLOC_000061 Xkr4 chr1:3299691-3299733 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS73 XLOC_000062 Xkr4 chr1:3300051-3300078 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS74 XLOC_000063 Xkr4 chr1:3307748-3307775 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS75 XLOC_000064 Xkr4 chr1:3318620-3318647 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS76 XLOC_000065 Xkr4 chr1:3318999-3319051 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS77 XLOC_000066 Xkr4 chr1:3330527-3330554 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS78 XLOC_000067 Xkr4 chr1:3351240-3351311 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS79 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS80 XLOC_000068 Xkr4 chr1:3355887-3356119 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS81 XLOC_000069 Xkr4 chr1:3356180-3356225 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS82 XLOC_000070 Xkr4 chr1:3363076-3363176 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS83 XLOC_000071 Xkr4 chr1:3363214-3363278 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS84 XLOC_000072 Xkr4 chr1:3363387-3363446 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS85 XLOC_000073 Xkr4 chr1:3363753-3363849 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS86 XLOC_000074 Xkr4 chr1:3364871-3364919 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS87 XLOC_000075 Xkr4 chr1:3367135-3367162 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS88 XLOC_000076 Xkr4 chr1:3367210-3367237 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS89 XLOC_000077 Xkr4 chr1:3367333-3367382 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS90 XLOC_000078 Xkr4 chr1:3369580-3369607 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS91 XLOC_000079 Xkr4 chr1:3375001-3375028 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS92 XLOC_000080 Xkr4 chr1:3377211-3377262 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS93 XLOC_000081 Xkr4 chr1:3379888-3379915 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS94 XLOC_000082 Xkr4 chr1:3386739-3386836 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS95 XLOC_000083 Xkr4 chr1:3391325-3391352 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS96 XLOC_000084 Xkr4 chr1:3435841-3435880 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS97 XLOC_000085 Xkr4 chr1:3447761-3447788 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS98 XLOC_000086 Xkr4 chr1:3450906-3450965 q1 q2 NOTEST 0 0 0 0 0 1 no
+TSS99 XLOC_000087 Xkr4 chr1:3451051-3451109 q1 q2 NOTEST 0 0 0 0 0 1 no
diff -r 277403d31907d71e5e77694c0c97c16772f23e27 -r 511941e1aea7bcb24a1e30b1e8ac59bf0ba6a3d6 tools/ngs_rna/cuffdiff_wrapper.xml
--- a/tools/ngs_rna/cuffdiff_wrapper.xml
+++ b/tools/ngs_rna/cuffdiff_wrapper.xml
@@ -164,7 +164,7 @@
<output name="cds_diff" file="cuffdiff_out11.txt"/><output name="cds_exp_fpkm_tracking" file="cuffdiff_out4.txt"/><output name="cds_fpkm_tracking" file="cuffdiff_out8.txt"/>
- <output name="tss_groups_exp" file="cuffdiff_out3.txt"/>
+ <output name="tss_groups_exp" file="cuffdiff_out3.txt" lines_diff="200"/><output name="tss_groups_fpkm_tracking" file="cuffdiff_out7.txt"/><output name="genes_exp" file="cuffdiff_out2.txt" lines_diff="200"/><output name="genes_fpkm_tracking" file="cuffdiff_out6.txt" lines_diff="200"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Update Cuffcompare test data to be compatible with v1.1.0
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/277403d31907/
changeset: 277403d31907
user: jgoecks
date: 2011-11-18 20:58:25
summary: Update Cuffcompare test data to be compatible with v1.1.0
affected #: 6 files
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out1.tmap
--- a/test-data/cuffcompare_out1.tmap
+++ b/test-data/cuffcompare_out1.tmap
@@ -1,51 +1,51 @@
ref_gene_id ref_id class_code cuff_gene_id cuff_id FMI FPKM FPKM_conf_lo FPKM_conf_hi cov len major_iso_id ref_match_len
-- - u CUFF.1 CUFF.1.1 100 0.000000 0.000000 0.000000 0.000000 41 CUFF.1.1 -
-- - u CUFF.3 CUFF.3.1 100 0.000000 0.000000 0.000000 0.000000 31 CUFF.3.1 -
-- - u CUFF.5 CUFF.5.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.5.1 -
-- - u CUFF.7 CUFF.7.1 100 0.000000 0.000000 0.000000 0.000000 169 CUFF.7.1 -
-- - u CUFF.9 CUFF.9.1 100 0.000000 0.000000 0.000000 0.000000 404 CUFF.9.1 -
-- - u CUFF.11 CUFF.11.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.11.1 -
-- - u CUFF.13 CUFF.13.1 100 0.000000 0.000000 0.000000 0.000000 79 CUFF.13.1 -
-- - u CUFF.15 CUFF.15.1 100 0.000000 0.000000 0.000000 0.000000 79 CUFF.15.1 -
-- - u CUFF.17 CUFF.17.1 100 0.000000 0.000000 0.000000 0.000000 97 CUFF.17.1 -
-- - u CUFF.19 CUFF.19.1 100 0.000000 0.000000 0.000000 0.000000 72 CUFF.19.1 -
-- - u CUFF.21 CUFF.21.1 100 0.000000 0.000000 0.000000 0.000000 61 CUFF.21.1 -
-- - u CUFF.23 CUFF.23.1 100 0.000000 0.000000 0.000000 0.000000 54 CUFF.23.1 -
-- - u CUFF.25 CUFF.25.1 100 0.000000 0.000000 0.000000 0.000000 290 CUFF.25.1 -
-- - u CUFF.27 CUFF.27.1 100 0.000000 0.000000 0.000000 0.000000 37 CUFF.27.1 -
-- - u CUFF.29 CUFF.29.1 100 0.000000 0.000000 0.000000 0.000000 142 CUFF.29.1 -
-- - u CUFF.31 CUFF.31.1 100 0.000000 0.000000 0.000000 0.000000 31 CUFF.31.1 -
-- - u CUFF.33 CUFF.33.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.33.1 -
-- - u CUFF.35 CUFF.35.1 100 0.000000 0.000000 0.000000 0.000000 131 CUFF.35.1 -
-- - u CUFF.37 CUFF.37.1 100 0.000000 0.000000 0.000000 0.000000 69 CUFF.37.1 -
-- - u CUFF.39 CUFF.39.1 100 0.000000 0.000000 0.000000 0.000000 53 CUFF.39.1 -
-- - u CUFF.41 CUFF.41.1 100 0.000000 0.000000 0.000000 0.000000 79 CUFF.41.1 -
-- - u CUFF.43 CUFF.43.1 100 0.000000 0.000000 0.000000 0.000000 80 CUFF.43.1 -
-- - u CUFF.45 CUFF.45.1 100 0.000000 0.000000 0.000000 0.000000 102 CUFF.45.1 -
-- - u CUFF.47 CUFF.47.1 100 0.000000 0.000000 0.000000 0.000000 41 CUFF.47.1 -
-- - u CUFF.49 CUFF.49.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.49.1 -
-- - u CUFF.51 CUFF.51.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.51.1 -
-- - u CUFF.53 CUFF.53.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.53.1 -
-- - u CUFF.55 CUFF.55.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.55.1 -
-- - u CUFF.57 CUFF.57.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.57.1 -
-- - u CUFF.59 CUFF.59.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.59.1 -
-- - u CUFF.61 CUFF.61.1 100 0.000000 0.000000 0.000000 0.000000 28 CUFF.61.1 -
-- - u CUFF.63 CUFF.63.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.63.1 -
-- - u CUFF.65 CUFF.65.1 100 0.000000 0.000000 0.000000 0.000000 55 CUFF.65.1 -
-- - u CUFF.67 CUFF.67.1 100 0.000000 0.000000 0.000000 0.000000 65 CUFF.67.1 -
-- - u CUFF.69 CUFF.69.1 100 0.000000 0.000000 0.000000 0.000000 84 CUFF.69.1 -
-- - u CUFF.71 CUFF.71.1 100 0.000000 0.000000 0.000000 0.000000 98 CUFF.71.1 -
-- - u CUFF.73 CUFF.73.1 100 0.000000 0.000000 0.000000 0.000000 55 CUFF.73.1 -
-- - u CUFF.75 CUFF.75.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.75.1 -
-- - u CUFF.77 CUFF.77.1 100 0.000000 0.000000 0.000000 0.000000 52 CUFF.77.1 -
-- - u CUFF.79 CUFF.79.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.79.1 -
-- - u CUFF.81 CUFF.81.1 100 0.000000 0.000000 0.000000 0.000000 64 CUFF.81.1 -
-- - u CUFF.83 CUFF.83.1 100 0.000000 0.000000 0.000000 0.000000 96 CUFF.83.1 -
-- - u CUFF.85 CUFF.85.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.85.1 -
-- - u CUFF.87 CUFF.87.1 100 0.000000 0.000000 0.000000 0.000000 49 CUFF.87.1 -
-- - u CUFF.89 CUFF.89.1 100 0.000000 0.000000 0.000000 0.000000 51 CUFF.89.1 -
-- - u CUFF.91 CUFF.91.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.91.1 -
-- - u CUFF.93 CUFF.93.1 100 0.000000 0.000000 0.000000 0.000000 39 CUFF.93.1 -
-- - u CUFF.95 CUFF.95.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.95.1 -
-- - u CUFF.97 CUFF.97.1 100 0.000000 0.000000 0.000000 0.000000 59 CUFF.97.1 -
-- - u CUFF.99 CUFF.99.1 100 0.000000 0.000000 0.000000 0.000000 58 CUFF.99.1 -
+- - u CUFF.1 CUFF.1.1 100 20.607936 0.000000 49.751960 1.317073 41 CUFF.1.1 -
+- - u CUFF.3 CUFF.3.1 100 27.255658 0.000000 65.800979 1.741935 31 CUFF.3.1 -
+- - u CUFF.5 CUFF.5.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.5.1 -
+- - u CUFF.7 CUFF.7.1 100 9.999117 0.000000 19.998234 0.639053 169 CUFF.7.1 -
+- - u CUFF.9 CUFF.9.1 100 17.776896 9.153835 26.399957 1.136139 404 CUFF.9.1 -
+- - u CUFF.11 CUFF.11.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.11.1 -
+Xkr4 Xkr4 c CUFF.13 CUFF.13.1 100 10.695258 0.000000 25.820637 0.683544 79 CUFF.13.1 3634
+Xkr4 Xkr4 i CUFF.15 CUFF.15.1 100 10.695258 0.000000 25.820637 0.683544 79 CUFF.15.1 3634
+Xkr4 Xkr4 i CUFF.17 CUFF.17.1 100 8.710571 0.000000 21.029179 0.556701 97 CUFF.17.1 3634
+Xkr4 Xkr4 i CUFF.19 CUFF.19.1 100 29.337687 3.097262 55.578113 1.875000 72 CUFF.19.1 3634
+Xkr4 Xkr4 i CUFF.21 CUFF.21.1 100 13.851236 0.000000 33.439842 0.885246 61 CUFF.21.1 3634
+Xkr4 Xkr4 i CUFF.23 CUFF.23.1 100 23.470150 0.000000 50.571145 1.500000 54 CUFF.23.1 3634
+Xkr4 Xkr4 i CUFF.25 CUFF.25.1 100 14.567679 5.354270 23.781089 0.931034 290 CUFF.25.1 3634
+Xkr4 Xkr4 i CUFF.27 CUFF.27.1 100 34.253732 0.000000 73.806535 2.189189 37 CUFF.27.1 3634
+- - u CUFF.29 CUFF.29.1 100 107.103219 71.402146 142.804292 6.845070 142 CUFF.29.1 -
+- - u CUFF.31 CUFF.31.1 100 122.650461 40.883487 204.417435 7.838710 31 CUFF.31.1 -
+- - u CUFF.33 CUFF.33.1 100 109.527366 26.732460 192.322273 7.000000 27 CUFF.33.1 -
+- - u CUFF.35 CUFF.35.1 100 96.747183 61.420107 132.074259 6.183206 131 CUFF.35.1 -
+- - u CUFF.37 CUFF.37.1 100 104.085013 53.596365 154.573660 6.652174 69 CUFF.37.1 -
+- - u CUFF.39 CUFF.39.1 100 23.912983 0.000000 51.525317 1.528302 53 CUFF.39.1 -
+- - u CUFF.41 CUFF.41.1 100 10.695258 0.000000 25.820637 0.683544 79 CUFF.41.1 -
+- - u CUFF.43 CUFF.43.1 100 10.561567 0.000000 25.497879 0.675000 80 CUFF.43.1 -
+- - u CUFF.45 CUFF.45.1 100 20.708956 2.186303 39.231609 1.323529 102 CUFF.45.1 -
+- - u CUFF.47 CUFF.47.1 100 20.607936 0.000000 49.751960 1.317073 41 CUFF.47.1 -
+- - u CUFF.49 CUFF.49.1 100 15.646767 0.000000 46.940300 1.000000 27 CUFF.49.1 -
+- - u CUFF.51 CUFF.51.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.51.1 -
+- - u CUFF.53 CUFF.53.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.53.1 -
+- - u CUFF.55 CUFF.55.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.55.1 -
+- - u CUFF.57 CUFF.57.1 100 15.646767 0.000000 46.940300 1.000000 27 CUFF.57.1 -
+- - u CUFF.59 CUFF.59.1 100 15.646767 0.000000 46.940300 1.000000 27 CUFF.59.1 -
+Xkr4 Xkr4 i CUFF.61 CUFF.61.1 100 45.263860 0.000000 97.530065 2.892857 28 CUFF.61.1 3634
+Xkr4 Xkr4 i CUFF.63 CUFF.63.1 100 15.646767 0.000000 46.940300 1.000000 27 CUFF.63.1 3634
+Xkr4 Xkr4 i CUFF.65 CUFF.65.1 100 15.362280 0.000000 37.087825 0.981818 55 CUFF.65.1 3634
+Xkr4 Xkr4 i CUFF.67 CUFF.67.1 100 12.998852 0.000000 31.382005 0.830769 65 CUFF.67.1 3634
+Xkr4 Xkr4 i CUFF.69 CUFF.69.1 100 10.058636 0.000000 24.283695 0.642857 84 CUFF.69.1 3634
+Xkr4 Xkr4 i CUFF.71 CUFF.71.1 100 8.621688 0.000000 20.814595 0.551020 98 CUFF.71.1 3634
+Xkr4 Xkr4 i CUFF.73 CUFF.73.1 100 15.362280 0.000000 37.087825 0.981818 55 CUFF.73.1 3634
+Xkr4 Xkr4 i CUFF.75 CUFF.75.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.75.1 3634
+Xkr4 Xkr4 i CUFF.77 CUFF.77.1 100 16.248565 0.000000 39.227507 1.038462 52 CUFF.77.1 3634
+Xkr4 Xkr4 i CUFF.79 CUFF.79.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.79.1 3634
+Xkr4 Xkr4 i CUFF.81 CUFF.81.1 100 13.201959 0.000000 31.872349 0.843750 64 CUFF.81.1 3634
+Xkr4 Xkr4 i CUFF.83 CUFF.83.1 100 13.201959 0.000000 28.446269 0.843750 96 CUFF.83.1 3634
+Xkr4 Xkr4 i CUFF.85 CUFF.85.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.85.1 3634
+Xkr4 Xkr4 i CUFF.87 CUFF.87.1 100 17.243375 0.000000 41.629191 1.102041 49 CUFF.87.1 3634
+Xkr4 Xkr4 i CUFF.89 CUFF.89.1 100 16.567165 0.000000 39.996674 1.058824 51 CUFF.89.1 3634
+Xkr4 Xkr4 i CUFF.91 CUFF.91.1 100 31.293533 0.000000 75.549272 2.000000 27 CUFF.91.1 3634
+Xkr4 Xkr4 i CUFF.93 CUFF.93.1 100 21.664754 0.000000 52.303342 1.384615 39 CUFF.93.1 3634
+Xkr4 Xkr4 i CUFF.95 CUFF.95.1 100 46.940300 0.000000 101.142289 3.000000 27 CUFF.95.1 3634
+Xkr4 Xkr4 i CUFF.97 CUFF.97.1 100 21.481154 0.000000 46.285454 1.372881 59 CUFF.97.1 3634
+Xkr4 Xkr4 i CUFF.99 CUFF.99.1 100 14.567679 0.000000 35.169489 0.931034 58 CUFF.99.1 3634
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out2.refmap
--- a/test-data/cuffcompare_out2.refmap
+++ b/test-data/cuffcompare_out2.refmap
@@ -1,1 +1,2 @@
ref_gene_id ref_id class_code cuff_id_list
+Xkr4 Xkr4 c CUFF.13|CUFF.13.1
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out3.tmap
--- a/test-data/cuffcompare_out3.tmap
+++ b/test-data/cuffcompare_out3.tmap
@@ -1,51 +1,51 @@
ref_gene_id ref_id class_code cuff_gene_id cuff_id FMI FPKM FPKM_conf_lo FPKM_conf_hi cov len major_iso_id ref_match_len
-- - u CUFF.1 CUFF.1.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.1.1 -
-- - u CUFF.3 CUFF.3.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.3.1 -
-- - u CUFF.5 CUFF.5.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.5.1 -
-- - u CUFF.7 CUFF.7.1 100 0.000000 0.000000 0.000000 0.000000 576 CUFF.7.1 -
-- - u CUFF.9 CUFF.9.1 100 0.000000 0.000000 0.000000 0.000000 565 CUFF.9.1 -
-- - u CUFF.11 CUFF.11.1 100 0.000000 0.000000 0.000000 0.000000 979 CUFF.11.1 -
-- - u CUFF.13 CUFF.13.1 100 0.000000 0.000000 0.000000 0.000000 86 CUFF.13.1 -
-- - u CUFF.15 CUFF.15.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.15.1 -
-- - u CUFF.17 CUFF.17.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.17.1 -
-- - u CUFF.19 CUFF.19.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.19.1 -
-- - u CUFF.21 CUFF.21.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.21.1 -
-- - u CUFF.23 CUFF.23.1 100 0.000000 0.000000 0.000000 0.000000 88 CUFF.23.1 -
-- - u CUFF.25 CUFF.25.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.25.1 -
-- - u CUFF.26 CUFF.26.1 100 0.000000 0.000000 0.000000 0.000000 32 CUFF.26.1 -
-- - u CUFF.29 CUFF.29.1 100 0.000000 0.000000 0.000000 0.000000 70 CUFF.29.1 -
-- - u CUFF.31 CUFF.31.1 100 0.000000 0.000000 0.000000 0.000000 84 CUFF.31.1 -
-- - u CUFF.33 CUFF.33.1 100 0.000000 0.000000 0.000000 0.000000 40 CUFF.33.1 -
-- - u CUFF.35 CUFF.35.1 100 0.000000 0.000000 0.000000 0.000000 84 CUFF.35.1 -
-- - u CUFF.37 CUFF.37.1 100 0.000000 0.000000 0.000000 0.000000 124 CUFF.37.1 -
-- - u CUFF.39 CUFF.39.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.39.1 -
-- - u CUFF.41 CUFF.41.1 100 0.000000 0.000000 0.000000 0.000000 33 CUFF.41.1 -
-- - u CUFF.43 CUFF.43.1 100 0.000000 0.000000 0.000000 0.000000 81 CUFF.43.1 -
-- - u CUFF.45 CUFF.45.1 100 0.000000 0.000000 0.000000 0.000000 46 CUFF.45.1 -
-- - u CUFF.47 CUFF.47.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.47.1 -
-- - u CUFF.49 CUFF.49.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.49.1 -
-- - u CUFF.51 CUFF.51.1 100 0.000000 0.000000 0.000000 0.000000 477 CUFF.51.1 -
-- - u CUFF.53 CUFF.53.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.53.1 -
-- - u CUFF.55 CUFF.55.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.55.1 -
-- - u CUFF.57 CUFF.57.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.57.1 -
-- - u CUFF.59 CUFF.59.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.59.1 -
-- - u CUFF.61 CUFF.61.1 100 0.000000 0.000000 0.000000 0.000000 72 CUFF.61.1 -
-- - u CUFF.63 CUFF.63.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.63.1 -
-- - u CUFF.65 CUFF.65.1 100 0.000000 0.000000 0.000000 0.000000 61 CUFF.65.1 -
-- - u CUFF.67 CUFF.67.1 100 0.000000 0.000000 0.000000 0.000000 197 CUFF.67.1 -
-- - u CUFF.69 CUFF.69.1 100 0.000000 0.000000 0.000000 0.000000 354 CUFF.69.1 -
-- - u CUFF.71 CUFF.71.1 100 0.000000 0.000000 0.000000 0.000000 42 CUFF.71.1 -
-- - u CUFF.73 CUFF.73.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.73.1 -
-- - u CUFF.75 CUFF.75.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.75.1 -
-- - u CUFF.77 CUFF.77.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.77.1 -
-- - u CUFF.79 CUFF.79.1 100 0.000000 0.000000 0.000000 0.000000 71 CUFF.79.1 -
-- - u CUFF.81 CUFF.81.1 100 0.000000 0.000000 0.000000 0.000000 212 CUFF.81.1 -
-- - u CUFF.83 CUFF.83.1 100 0.000000 0.000000 0.000000 0.000000 45 CUFF.83.1 -
-- - u CUFF.85 CUFF.85.1 100 0.000000 0.000000 0.000000 0.000000 100 CUFF.85.1 -
-- - u CUFF.87 CUFF.87.1 100 0.000000 0.000000 0.000000 0.000000 59 CUFF.87.1 -
-- - u CUFF.89 CUFF.89.1 100 0.000000 0.000000 0.000000 0.000000 48 CUFF.89.1 -
-- - u CUFF.91 CUFF.91.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.91.1 -
-- - u CUFF.93 CUFF.93.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.93.1 -
-- - u CUFF.95 CUFF.95.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.95.1 -
-- - u CUFF.97 CUFF.97.1 100 0.000000 0.000000 0.000000 0.000000 27 CUFF.97.1 -
-- - u CUFF.99 CUFF.99.1 100 0.000000 0.000000 0.000000 0.000000 97 CUFF.99.1 -
+- - u CUFF.1 CUFF.1.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.1.1 -
+- - u CUFF.3 CUFF.3.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.3.1 -
+- - u CUFF.5 CUFF.5.1 100 21.226627 0.000000 59.889707 1.205672 27 CUFF.5.1 -
+- - u CUFF.7 CUFF.7.1 100 29.709524 19.806349 39.612698 1.687500 576 CUFF.7.1 -
+- - u CUFF.9 CUFF.9.1 100 34.072933 23.364686 44.781179 1.935341 565 CUFF.9.1 -
+- - u CUFF.11 CUFF.11.1 100 32.531777 24.582998 40.480555 1.847804 979 CUFF.11.1 -
+- - u CUFF.13 CUFF.13.1 100 16.582060 0.000000 35.729373 0.941860 86 CUFF.13.1 -
+- - u CUFF.15 CUFF.15.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.15.1 -
+- - u CUFF.17 CUFF.17.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.17.1 -
+- - u CUFF.19 CUFF.19.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.19.1 -
+- - u CUFF.21 CUFF.21.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.21.1 -
+- - u CUFF.23 CUFF.23.1 100 16.205195 0.000000 34.917342 0.920455 88 CUFF.23.1 -
+- - u CUFF.25 CUFF.25.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.25.1 -
+- - u CUFF.26 CUFF.26.1 100 29.709524 0.000000 71.725135 1.687500 32 CUFF.26.1 -
+- - u CUFF.29 CUFF.29.1 100 13.581496 0.000000 32.788633 0.771429 70 CUFF.29.1 -
+- - u CUFF.31 CUFF.31.1 100 22.635827 0.000000 45.271655 1.285714 84 CUFF.31.1 -
+Xkr4 Xkr4 i CUFF.33 CUFF.33.1 100 23.767619 0.000000 57.380108 1.350000 40 CUFF.33.1 3634
+Xkr4 Xkr4 i CUFF.35 CUFF.35.1 100 11.317914 0.000000 27.323861 0.642857 84 CUFF.35.1 3634
+Xkr4 Xkr4 i CUFF.37 CUFF.37.1 100 11.500461 0.000000 24.780049 0.653226 124 CUFF.37.1 3634
+Xkr4 Xkr4 i CUFF.39 CUFF.39.1 100 52.816931 0.000000 113.804669 3.000000 27 CUFF.39.1 3634
+Xkr4 Xkr4 i CUFF.41 CUFF.41.1 100 43.213852 0.000000 93.112911 2.454545 33 CUFF.41.1 3634
+Xkr4 Xkr4 i CUFF.43 CUFF.43.1 100 23.474191 0.000000 46.948383 1.333333 81 CUFF.43.1 3634
+Xkr4 Xkr4 i CUFF.45 CUFF.45.1 100 20.667495 0.000000 49.895746 1.173913 46 CUFF.45.1 3634
+Xkr4 Xkr4 i CUFF.47 CUFF.47.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.47.1 3634
+Xkr4 Xkr4 i CUFF.49 CUFF.49.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.49.1 3634
+Xkr4 Xkr4 i CUFF.51 CUFF.51.1 100 14.948188 7.228977 22.667399 0.849057 477 CUFF.51.1 3634
+Xkr4 Xkr4 i CUFF.53 CUFF.53.1 100 52.816931 0.000000 113.804669 3.000000 27 CUFF.53.1 3634
+Xkr4 Xkr4 i CUFF.55 CUFF.55.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.55.1 3634
+Xkr4 Xkr4 i CUFF.57 CUFF.57.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.57.1 3634
+Xkr4 Xkr4 i CUFF.59 CUFF.59.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.59.1 3634
+Xkr4 Xkr4 i CUFF.61 CUFF.61.1 100 13.204233 0.000000 31.877838 0.750000 72 CUFF.61.1 3634
+Xkr4 Xkr4 i CUFF.63 CUFF.63.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.63.1 3634
+Xkr4 Xkr4 i CUFF.65 CUFF.65.1 100 31.170648 0.000000 62.341295 1.770492 61 CUFF.65.1 3634
+Xkr4 Xkr4 i CUFF.67 CUFF.67.1 100 15.681351 3.378764 27.983938 0.890700 197 CUFF.67.1 3634
+Xkr4 Xkr4 i CUFF.69 CUFF.69.1 100 18.799247 8.750627 28.847866 1.067797 354 CUFF.69.1 3634
+Xkr4 Xkr4 i CUFF.71 CUFF.71.1 100 22.635827 0.000000 54.647722 1.285714 42 CUFF.71.1 3634
+Xkr4 Xkr4 i CUFF.73 CUFF.73.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.73.1 3634
+Xkr4 Xkr4 i CUFF.75 CUFF.75.1 100 52.816931 0.000000 113.804669 3.000000 27 CUFF.75.1 3634
+Xkr4 Xkr4 i CUFF.77 CUFF.77.1 100 17.605644 0.000000 52.816931 1.000000 27 CUFF.77.1 3634
+Xkr4 Xkr4 i CUFF.79 CUFF.79.1 100 13.390208 0.000000 32.326821 0.760563 71 CUFF.79.1 3634
+Xkr4 Xkr4 i CUFF.81 CUFF.81.1 100 11.211141 1.183592 21.238690 0.636792 212 CUFF.81.1 3634
+Xkr4 Xkr4 i CUFF.83 CUFF.83.1 100 21.126772 0.000000 51.004540 1.200000 45 CUFF.83.1 3634
+Xkr4 Xkr4 i CUFF.85 CUFF.85.1 100 19.014095 0.000000 38.028190 1.080000 100 CUFF.85.1 3634
+Xkr4 Xkr4 i CUFF.87 CUFF.87.1 100 24.170460 0.000000 52.080103 1.372881 59 CUFF.87.1 3634
+Xkr4 Xkr4 i CUFF.89 CUFF.89.1 100 29.709524 0.000000 64.015126 1.687500 48 CUFF.89.1 3634
+Xkr4 Xkr4 i CUFF.91 CUFF.91.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.91.1 3634
+Xkr4 Xkr4 i CUFF.93 CUFF.93.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.93.1 3634
+Xkr4 Xkr4 i CUFF.95 CUFF.95.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.95.1 3634
+Xkr4 Xkr4 i CUFF.97 CUFF.97.1 100 35.211287 0.000000 85.007567 2.000000 27 CUFF.97.1 3634
+Xkr4 Xkr4 i CUFF.99 CUFF.99.1 100 19.602160 0.000000 39.204320 1.113402 97 CUFF.99.1 3634
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out5.gtf
--- a/test-data/cuffcompare_out5.gtf
+++ b/test-data/cuffcompare_out5.gtf
@@ -1,90 +1,90 @@
-chr1 Cufflinks exon 3111450 3111490 . . . gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "1"; oId "CUFF.1.1"; class_code "u";
-chr1 Cufflinks exon 3111546 3111576 . . . gene_id "XLOC_000002"; transcript_id "TCONS_00000002"; exon_number "1"; oId "CUFF.3.1"; class_code "u";
-chr1 Cufflinks exon 3174766 3174792 . . . gene_id "XLOC_000003"; transcript_id "TCONS_00000051"; exon_number "1"; oId "CUFF.1.1"; class_code "u";
-chr1 Cufflinks exon 3187402 3187428 . . . gene_id "XLOC_000004"; transcript_id "TCONS_00000052"; exon_number "1"; oId "CUFF.3.1"; class_code "u";
-chr1 Cufflinks exon 3188522 3188548 . . . gene_id "XLOC_000005"; transcript_id "TCONS_00000053"; exon_number "1"; oId "CUFF.5.1"; class_code "u";
-chr1 Cufflinks exon 3189811 3190789 . . . gene_id "XLOC_000006"; transcript_id "TCONS_00000054"; exon_number "1"; oId "CUFF.11.1"; class_code "u";
-chr1 Cufflinks exon 3190859 3191434 . . . gene_id "XLOC_000007"; transcript_id "TCONS_00000055"; exon_number "1"; oId "CUFF.7.1"; class_code "u";
-chr1 Cufflinks exon 3191513 3192077 . . . gene_id "XLOC_000008"; transcript_id "TCONS_00000056"; exon_number "1"; oId "CUFF.9.1"; class_code "u";
-chr1 Cufflinks exon 3192251 3192336 . . . gene_id "XLOC_000009"; transcript_id "TCONS_00000057"; exon_number "1"; oId "CUFF.13.1"; class_code "u";
-chr1 Cufflinks exon 3192442 3192494 . . . gene_id "XLOC_000010"; transcript_id "TCONS_00000008"; exon_number "1"; oId "CUFF.39.1"; class_code "u";
-chr1 Cufflinks exon 3192551 3192629 . . . gene_id "XLOC_000011"; transcript_id "TCONS_00000009"; exon_number "1"; oId "CUFF.41.1"; class_code "u";
-chr1 Cufflinks exon 3192650 3192676 . . . gene_id "XLOC_000012"; transcript_id "TCONS_00000058"; exon_number "1"; oId "CUFF.15.1"; class_code "u";
-chr1 Cufflinks exon 3192732 3192811 . . . gene_id "XLOC_000013"; transcript_id "TCONS_00000010"; exon_number "1"; oId "CUFF.43.1"; class_code "u";
-chr1 Cufflinks exon 3192941 3193042 . . . gene_id "XLOC_000014"; transcript_id "TCONS_00000011"; exon_number "1"; oId "CUFF.45.1"; class_code "u";
-chr1 Cufflinks exon 3194186 3194226 . . . gene_id "XLOC_000015"; transcript_id "TCONS_00000012"; exon_number "1"; oId "CUFF.47.1"; class_code "u";
-chr1 Cufflinks exon 3194303 3194329 . . . gene_id "XLOC_000016"; transcript_id "TCONS_00000013"; exon_number "1"; oId "CUFF.49.1"; class_code "u";
-chr1 Cufflinks exon 3194707 3194733 . . . gene_id "XLOC_000017"; transcript_id "TCONS_00000059"; exon_number "1"; oId "CUFF.17.1"; class_code "u";
-chr1 Cufflinks exon 3195084 3195110 . . . gene_id "XLOC_000018"; transcript_id "TCONS_00000014"; exon_number "1"; oId "CUFF.51.1"; class_code "u";
-chr1 Cufflinks exon 3195451 3195477 . . . gene_id "XLOC_000019"; transcript_id "TCONS_00000015"; exon_number "1"; oId "CUFF.53.1"; class_code "u";
-chr1 Cufflinks exon 3197090 3197116 . . . gene_id "XLOC_000020"; transcript_id "TCONS_00000016"; exon_number "1"; oId "CUFF.55.1"; class_code "u";
-chr1 Cufflinks exon 3197247 3197273 . . . gene_id "XLOC_000021"; transcript_id "TCONS_00000017"; exon_number "1"; oId "CUFF.57.1"; class_code "u";
-chr1 Cufflinks exon 3197347 3197373 . . . gene_id "XLOC_000022"; transcript_id "TCONS_00000018"; exon_number "1"; oId "CUFF.59.1"; class_code "u";
-chr1 Cufflinks exon 3197426 3197452 . . . gene_id "XLOC_000023"; transcript_id "TCONS_00000060"; exon_number "1"; oId "CUFF.19.1"; class_code "u";
-chr1 Cufflinks exon 3200023 3200191 . . . gene_id "XLOC_000024"; transcript_id "TCONS_00000019"; exon_number "1"; oId "CUFF.7.1"; class_code "u";
-chr1 Cufflinks exon 3200326 3200352 . . . gene_id "XLOC_000025"; transcript_id "TCONS_00000020"; exon_number "1"; oId "CUFF.5.1"; class_code "u";
-chr1 Cufflinks exon 3200431 3200457 . . . gene_id "XLOC_000026"; transcript_id "TCONS_00000062"; exon_number "1"; oId "CUFF.21.1"; class_code "u";
-chr1 Cufflinks exon 3201008 3201039 . . . gene_id "XLOC_000027"; transcript_id "TCONS_00000063"; exon_number "1"; oId "CUFF.26.1"; class_code "u";
-chr1 Cufflinks exon 3201078 3201481 . . . gene_id "XLOC_000028"; transcript_id "TCONS_00000021"; exon_number "1"; oId "CUFF.9.1"; class_code "u";
-chr1 Cufflinks exon 3201597 3201666 . . . gene_id "XLOC_000029"; transcript_id "TCONS_00000065"; exon_number "1"; oId "CUFF.29.1"; class_code "u";
-chr1 Cufflinks exon 3201673 3201699 . . . gene_id "XLOC_000030"; transcript_id "TCONS_00000022"; exon_number "1"; oId "CUFF.11.1"; class_code "u";
-chr1 Cufflinks exon 3201726 3201809 . . . gene_id "XLOC_000031"; transcript_id "TCONS_00000066"; exon_number "1"; oId "CUFF.31.1"; class_code "u";
-chr1 Cufflinks exon 3204755 3204833 . . . gene_id "XLOC_000032"; transcript_id "TCONS_00000023"; exon_number "1"; oId "CUFF.13.1"; class_code "u";
-chr1 Cufflinks exon 3211522 3211561 . . . gene_id "XLOC_000033"; transcript_id "TCONS_00000067"; exon_number "1"; oId "CUFF.33.1"; class_code "u";
-chr1 Cufflinks exon 3212214 3212292 . . . gene_id "XLOC_000034"; transcript_id "TCONS_00000024"; exon_number "1"; oId "CUFF.15.1"; class_code "u";
-chr1 Cufflinks exon 3212368 3212439 . . . gene_id "XLOC_000035"; transcript_id "TCONS_00000025"; exon_number "1"; oId "CUFF.19.1"; class_code "u";
-chr1 Cufflinks exon 3212718 3212801 . . . gene_id "XLOC_000036"; transcript_id "TCONS_00000068"; exon_number "1"; oId "CUFF.35.1"; class_code "u";
-chr1 Cufflinks exon 3213096 3213192 . . . gene_id "XLOC_000037"; transcript_id "TCONS_00000026"; exon_number "1"; oId "CUFF.17.1"; class_code "u";
-chr1 Cufflinks exon 3213119 3213242 . . . gene_id "XLOC_000037"; transcript_id "TCONS_00000069"; exon_number "1"; oId "CUFF.37.1"; class_code "u";
-chr1 Cufflinks exon 3240607 3240633 . . . gene_id "XLOC_000038"; transcript_id "TCONS_00000070"; exon_number "1"; oId "CUFF.39.1"; class_code "u";
-chr1 Cufflinks exon 3242480 3242512 . . . gene_id "XLOC_000039"; transcript_id "TCONS_00000071"; exon_number "1"; oId "CUFF.41.1"; class_code "u";
-chr1 Cufflinks exon 3242634 3242923 . . . gene_id "XLOC_000040"; transcript_id "TCONS_00000027"; exon_number "1"; oId "CUFF.25.1"; class_code "u";
-chr1 Cufflinks exon 3242925 3243005 . . . gene_id "XLOC_000041"; transcript_id "TCONS_00000072"; exon_number "1"; oId "CUFF.43.1"; class_code "u";
-chr1 Cufflinks exon 3243019 3243079 . . . gene_id "XLOC_000042"; transcript_id "TCONS_00000028"; exon_number "1"; oId "CUFF.21.1"; class_code "u";
-chr1 Cufflinks exon 3243109 3243154 . . . gene_id "XLOC_000043"; transcript_id "TCONS_00000073"; exon_number "1"; oId "CUFF.45.1"; class_code "u";
-chr1 Cufflinks exon 3243348 3243401 . . . gene_id "XLOC_000044"; transcript_id "TCONS_00000029"; exon_number "1"; oId "CUFF.23.1"; class_code "u";
-chr1 Cufflinks exon 3254080 3254106 . . . gene_id "XLOC_000045"; transcript_id "TCONS_00000074"; exon_number "1"; oId "CUFF.47.1"; class_code "u";
-chr1 Cufflinks exon 3256975 3257011 . . . gene_id "XLOC_000046"; transcript_id "TCONS_00000030"; exon_number "1"; oId "CUFF.27.1"; class_code "u";
-chr1 Cufflinks exon 3277156 3277182 . . . gene_id "XLOC_000047"; transcript_id "TCONS_00000075"; exon_number "1"; oId "CUFF.49.1"; class_code "u";
-chr1 Cufflinks exon 3277191 3277218 . . . gene_id "XLOC_000048"; transcript_id "TCONS_00000031"; exon_number "1"; oId "CUFF.61.1"; class_code "u";
-chr1 Cufflinks exon 3277914 3278390 . . . gene_id "XLOC_000049"; transcript_id "TCONS_00000076"; exon_number "1"; oId "CUFF.51.1"; class_code "u";
-chr1 Cufflinks exon 3280118 3280144 . . . gene_id "XLOC_000050"; transcript_id "TCONS_00000077"; exon_number "1"; oId "CUFF.53.1"; class_code "u";
-chr1 Cufflinks exon 3280499 3280525 . . . gene_id "XLOC_000051"; transcript_id "TCONS_00000078"; exon_number "1"; oId "CUFF.55.1"; class_code "u";
-chr1 Cufflinks exon 3280687 3280741 . . . gene_id "XLOC_000052"; transcript_id "TCONS_00000033"; exon_number "1"; oId "CUFF.65.1"; class_code "u";
-chr1 Cufflinks exon 3282505 3282531 . . . gene_id "XLOC_000053"; transcript_id "TCONS_00000079"; exon_number "1"; oId "CUFF.57.1"; class_code "u";
-chr1 Cufflinks exon 3282651 3282677 . . . gene_id "XLOC_000054"; transcript_id "TCONS_00000080"; exon_number "1"; oId "CUFF.59.1"; class_code "u";
-chr1 Cufflinks exon 3282761 3282832 . . . gene_id "XLOC_000055"; transcript_id "TCONS_00000081"; exon_number "1"; oId "CUFF.61.1"; class_code "u";
-chr1 Cufflinks exon 3284967 3284993 . . . gene_id "XLOC_000056"; transcript_id "TCONS_00000082"; exon_number "1"; oId "CUFF.63.1"; class_code "u";
-chr1 Cufflinks exon 3290489 3290553 . . . gene_id "XLOC_000057"; transcript_id "TCONS_00000034"; exon_number "1"; oId "CUFF.67.1"; class_code "u";
-chr1 Cufflinks exon 3290799 3290859 . . . gene_id "XLOC_000058"; transcript_id "TCONS_00000083"; exon_number "1"; oId "CUFF.65.1"; class_code "u";
-chr1 Cufflinks exon 3290920 3291273 . . . gene_id "XLOC_000059"; transcript_id "TCONS_00000084"; exon_number "1"; oId "CUFF.69.1"; class_code "u";
-chr1 Cufflinks exon 3299444 3299640 . . . gene_id "XLOC_000060"; transcript_id "TCONS_00000085"; exon_number "1"; oId "CUFF.67.1"; class_code "u";
-chr1 Cufflinks exon 3299610 3299664 . . . gene_id "XLOC_000060"; transcript_id "TCONS_00000037"; exon_number "1"; oId "CUFF.73.1"; class_code "u";
-chr1 Cufflinks exon 3299692 3299733 . . . gene_id "XLOC_000061"; transcript_id "TCONS_00000086"; exon_number "1"; oId "CUFF.71.1"; class_code "u";
-chr1 Cufflinks exon 3300052 3300078 . . . gene_id "XLOC_000062"; transcript_id "TCONS_00000038"; exon_number "1"; oId "CUFF.75.1"; class_code "u";
-chr1 Cufflinks exon 3307749 3307775 . . . gene_id "XLOC_000063"; transcript_id "TCONS_00000087"; exon_number "1"; oId "CUFF.73.1"; class_code "u";
-chr1 Cufflinks exon 3318621 3318647 . . . gene_id "XLOC_000064"; transcript_id "TCONS_00000088"; exon_number "1"; oId "CUFF.75.1"; class_code "u";
-chr1 Cufflinks exon 3319000 3319051 . . . gene_id "XLOC_000065"; transcript_id "TCONS_00000039"; exon_number "1"; oId "CUFF.77.1"; class_code "u";
-chr1 Cufflinks exon 3330528 3330554 . . . gene_id "XLOC_000066"; transcript_id "TCONS_00000089"; exon_number "1"; oId "CUFF.77.1"; class_code "u";
-chr1 Cufflinks exon 3351241 3351311 . . . gene_id "XLOC_000067"; transcript_id "TCONS_00000090"; exon_number "1"; oId "CUFF.79.1"; class_code "u";
-chr1 Cufflinks exon 3355888 3355914 . . . gene_id "XLOC_000068"; transcript_id "TCONS_00000040"; exon_number "1"; oId "CUFF.79.1"; class_code "u";
-chr1 Cufflinks exon 3355908 3356119 . . . gene_id "XLOC_000068"; transcript_id "TCONS_00000091"; exon_number "1"; oId "CUFF.81.1"; class_code "u";
-chr1 Cufflinks exon 3356181 3356225 . . . gene_id "XLOC_000069"; transcript_id "TCONS_00000092"; exon_number "1"; oId "CUFF.83.1"; class_code "u";
-chr1 Cufflinks exon 3363077 3363176 . . . gene_id "XLOC_000070"; transcript_id "TCONS_00000093"; exon_number "1"; oId "CUFF.85.1"; class_code "u";
-chr1 Cufflinks exon 3363215 3363278 . . . gene_id "XLOC_000071"; transcript_id "TCONS_00000041"; exon_number "1"; oId "CUFF.81.1"; class_code "u";
-chr1 Cufflinks exon 3363388 3363446 . . . gene_id "XLOC_000072"; transcript_id "TCONS_00000094"; exon_number "1"; oId "CUFF.87.1"; class_code "u";
-chr1 Cufflinks exon 3363754 3363849 . . . gene_id "XLOC_000073"; transcript_id "TCONS_00000042"; exon_number "1"; oId "CUFF.83.1"; class_code "u";
-chr1 Cufflinks exon 3364872 3364919 . . . gene_id "XLOC_000074"; transcript_id "TCONS_00000095"; exon_number "1"; oId "CUFF.89.1"; class_code "u";
-chr1 Cufflinks exon 3367136 3367162 . . . gene_id "XLOC_000075"; transcript_id "TCONS_00000043"; exon_number "1"; oId "CUFF.85.1"; class_code "u";
-chr1 Cufflinks exon 3367211 3367237 . . . gene_id "XLOC_000076"; transcript_id "TCONS_00000096"; exon_number "1"; oId "CUFF.91.1"; class_code "u";
-chr1 Cufflinks exon 3367334 3367382 . . . gene_id "XLOC_000077"; transcript_id "TCONS_00000044"; exon_number "1"; oId "CUFF.87.1"; class_code "u";
-chr1 Cufflinks exon 3369581 3369607 . . . gene_id "XLOC_000078"; transcript_id "TCONS_00000097"; exon_number "1"; oId "CUFF.93.1"; class_code "u";
-chr1 Cufflinks exon 3375002 3375028 . . . gene_id "XLOC_000079"; transcript_id "TCONS_00000098"; exon_number "1"; oId "CUFF.95.1"; class_code "u";
-chr1 Cufflinks exon 3377212 3377262 . . . gene_id "XLOC_000080"; transcript_id "TCONS_00000045"; exon_number "1"; oId "CUFF.89.1"; class_code "u";
-chr1 Cufflinks exon 3379889 3379915 . . . gene_id "XLOC_000081"; transcript_id "TCONS_00000099"; exon_number "1"; oId "CUFF.97.1"; class_code "u";
-chr1 Cufflinks exon 3386740 3386836 . . . gene_id "XLOC_000082"; transcript_id "TCONS_00000100"; exon_number "1"; oId "CUFF.99.1"; class_code "u";
-chr1 Cufflinks exon 3391326 3391352 . . . gene_id "XLOC_000083"; transcript_id "TCONS_00000046"; exon_number "1"; oId "CUFF.91.1"; class_code "u";
-chr1 Cufflinks exon 3435842 3435880 . . . gene_id "XLOC_000084"; transcript_id "TCONS_00000047"; exon_number "1"; oId "CUFF.93.1"; class_code "u";
-chr1 Cufflinks exon 3447762 3447788 . . . gene_id "XLOC_000085"; transcript_id "TCONS_00000048"; exon_number "1"; oId "CUFF.95.1"; class_code "u";
-chr1 Cufflinks exon 3450907 3450965 . . . gene_id "XLOC_000086"; transcript_id "TCONS_00000049"; exon_number "1"; oId "CUFF.97.1"; class_code "u";
-chr1 Cufflinks exon 3451052 3451109 . . . gene_id "XLOC_000087"; transcript_id "TCONS_00000050"; exon_number "1"; oId "CUFF.99.1"; class_code "u";
+chr1 Cufflinks exon 3204755 3204833 . - . gene_id "XLOC_000001"; transcript_id "TCONS_00000001"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.13.1"; nearest_ref "Xkr4"; class_code "c"; tss_id "TSS1";
+chr1 Cufflinks exon 3111450 3111490 . . . gene_id "XLOC_000002"; transcript_id "TCONS_00000002"; exon_number "1"; oId "CUFF.1.1"; class_code "u"; tss_id "TSS2";
+chr1 Cufflinks exon 3111546 3111576 . . . gene_id "XLOC_000003"; transcript_id "TCONS_00000003"; exon_number "1"; oId "CUFF.3.1"; class_code "u"; tss_id "TSS3";
+chr1 Cufflinks exon 3174766 3174792 . . . gene_id "XLOC_000004"; transcript_id "TCONS_00000051"; exon_number "1"; oId "CUFF.1.1"; class_code "u"; tss_id "TSS4";
+chr1 Cufflinks exon 3187402 3187428 . . . gene_id "XLOC_000005"; transcript_id "TCONS_00000052"; exon_number "1"; oId "CUFF.3.1"; class_code "u"; tss_id "TSS5";
+chr1 Cufflinks exon 3188522 3188548 . . . gene_id "XLOC_000006"; transcript_id "TCONS_00000053"; exon_number "1"; oId "CUFF.5.1"; class_code "u"; tss_id "TSS6";
+chr1 Cufflinks exon 3189811 3190789 . . . gene_id "XLOC_000007"; transcript_id "TCONS_00000054"; exon_number "1"; oId "CUFF.11.1"; class_code "u"; tss_id "TSS7";
+chr1 Cufflinks exon 3190859 3191434 . . . gene_id "XLOC_000008"; transcript_id "TCONS_00000055"; exon_number "1"; oId "CUFF.7.1"; class_code "u"; tss_id "TSS11";
+chr1 Cufflinks exon 3191513 3192077 . . . gene_id "XLOC_000009"; transcript_id "TCONS_00000056"; exon_number "1"; oId "CUFF.9.1"; class_code "u"; tss_id "TSS12";
+chr1 Cufflinks exon 3192251 3192336 . . . gene_id "XLOC_000010"; transcript_id "TCONS_00000057"; exon_number "1"; oId "CUFF.13.1"; class_code "u"; tss_id "TSS15";
+chr1 Cufflinks exon 3192442 3192494 . . . gene_id "XLOC_000011"; transcript_id "TCONS_00000009"; exon_number "1"; oId "CUFF.39.1"; class_code "u"; tss_id "TSS16";
+chr1 Cufflinks exon 3192551 3192629 . . . gene_id "XLOC_000012"; transcript_id "TCONS_00000010"; exon_number "1"; oId "CUFF.41.1"; class_code "u"; tss_id "TSS17";
+chr1 Cufflinks exon 3192650 3192676 . . . gene_id "XLOC_000013"; transcript_id "TCONS_00000058"; exon_number "1"; oId "CUFF.15.1"; class_code "u"; tss_id "TSS18";
+chr1 Cufflinks exon 3192732 3192811 . . . gene_id "XLOC_000014"; transcript_id "TCONS_00000011"; exon_number "1"; oId "CUFF.43.1"; class_code "u"; tss_id "TSS19";
+chr1 Cufflinks exon 3192941 3193042 . . . gene_id "XLOC_000015"; transcript_id "TCONS_00000012"; exon_number "1"; oId "CUFF.45.1"; class_code "u"; tss_id "TSS20";
+chr1 Cufflinks exon 3194186 3194226 . . . gene_id "XLOC_000016"; transcript_id "TCONS_00000013"; exon_number "1"; oId "CUFF.47.1"; class_code "u"; tss_id "TSS21";
+chr1 Cufflinks exon 3194303 3194329 . . . gene_id "XLOC_000017"; transcript_id "TCONS_00000014"; exon_number "1"; oId "CUFF.49.1"; class_code "u"; tss_id "TSS22";
+chr1 Cufflinks exon 3194707 3194733 . . . gene_id "XLOC_000018"; transcript_id "TCONS_00000059"; exon_number "1"; oId "CUFF.17.1"; class_code "u"; tss_id "TSS23";
+chr1 Cufflinks exon 3195084 3195110 . . . gene_id "XLOC_000019"; transcript_id "TCONS_00000015"; exon_number "1"; oId "CUFF.51.1"; class_code "u"; tss_id "TSS24";
+chr1 Cufflinks exon 3195451 3195477 . . . gene_id "XLOC_000020"; transcript_id "TCONS_00000016"; exon_number "1"; oId "CUFF.53.1"; class_code "u"; tss_id "TSS25";
+chr1 Cufflinks exon 3197090 3197116 . . . gene_id "XLOC_000021"; transcript_id "TCONS_00000017"; exon_number "1"; oId "CUFF.55.1"; class_code "u"; tss_id "TSS26";
+chr1 Cufflinks exon 3197247 3197273 . . . gene_id "XLOC_000022"; transcript_id "TCONS_00000018"; exon_number "1"; oId "CUFF.57.1"; class_code "u"; tss_id "TSS27";
+chr1 Cufflinks exon 3197347 3197373 . . . gene_id "XLOC_000023"; transcript_id "TCONS_00000019"; exon_number "1"; oId "CUFF.59.1"; class_code "u"; tss_id "TSS28";
+chr1 Cufflinks exon 3197426 3197452 . . . gene_id "XLOC_000024"; transcript_id "TCONS_00000060"; exon_number "1"; oId "CUFF.19.1"; class_code "u"; tss_id "TSS29";
+chr1 Cufflinks exon 3200023 3200191 . . . gene_id "XLOC_000025"; transcript_id "TCONS_00000020"; exon_number "1"; oId "CUFF.7.1"; class_code "u"; tss_id "TSS30";
+chr1 Cufflinks exon 3200326 3200352 . . . gene_id "XLOC_000026"; transcript_id "TCONS_00000021"; exon_number "1"; oId "CUFF.5.1"; class_code "u"; tss_id "TSS32";
+chr1 Cufflinks exon 3200431 3200457 . . . gene_id "XLOC_000027"; transcript_id "TCONS_00000062"; exon_number "1"; oId "CUFF.21.1"; class_code "u"; tss_id "TSS33";
+chr1 Cufflinks exon 3201008 3201039 . . . gene_id "XLOC_000028"; transcript_id "TCONS_00000063"; exon_number "1"; oId "CUFF.26.1"; class_code "u"; tss_id "TSS34";
+chr1 Cufflinks exon 3201078 3201481 . . . gene_id "XLOC_000029"; transcript_id "TCONS_00000022"; exon_number "1"; oId "CUFF.9.1"; class_code "u"; tss_id "TSS35";
+chr1 Cufflinks exon 3201597 3201666 . . . gene_id "XLOC_000030"; transcript_id "TCONS_00000065"; exon_number "1"; oId "CUFF.29.1"; class_code "u"; tss_id "TSS37";
+chr1 Cufflinks exon 3201673 3201699 . . . gene_id "XLOC_000031"; transcript_id "TCONS_00000023"; exon_number "1"; oId "CUFF.11.1"; class_code "u"; tss_id "TSS38";
+chr1 Cufflinks exon 3201726 3201809 . . . gene_id "XLOC_000032"; transcript_id "TCONS_00000066"; exon_number "1"; oId "CUFF.31.1"; class_code "u"; tss_id "TSS39";
+chr1 Cufflinks exon 3211522 3211561 . . . gene_id "XLOC_000033"; transcript_id "TCONS_00000067"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.33.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS40";
+chr1 Cufflinks exon 3212214 3212292 . . . gene_id "XLOC_000034"; transcript_id "TCONS_00000024"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.15.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS41";
+chr1 Cufflinks exon 3212368 3212439 . . . gene_id "XLOC_000035"; transcript_id "TCONS_00000025"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.19.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS42";
+chr1 Cufflinks exon 3212718 3212801 . . . gene_id "XLOC_000036"; transcript_id "TCONS_00000068"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.35.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS43";
+chr1 Cufflinks exon 3213096 3213192 . . . gene_id "XLOC_000037"; transcript_id "TCONS_00000026"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.17.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS44";
+chr1 Cufflinks exon 3213119 3213242 . . . gene_id "XLOC_000037"; transcript_id "TCONS_00000069"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.37.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS45";
+chr1 Cufflinks exon 3240607 3240633 . . . gene_id "XLOC_000038"; transcript_id "TCONS_00000070"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.39.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS46";
+chr1 Cufflinks exon 3242480 3242512 . . . gene_id "XLOC_000039"; transcript_id "TCONS_00000071"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.41.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS47";
+chr1 Cufflinks exon 3242634 3242923 . . . gene_id "XLOC_000040"; transcript_id "TCONS_00000027"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.25.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS48";
+chr1 Cufflinks exon 3242925 3243005 . . . gene_id "XLOC_000041"; transcript_id "TCONS_00000072"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.43.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS49";
+chr1 Cufflinks exon 3243019 3243079 . . . gene_id "XLOC_000042"; transcript_id "TCONS_00000028"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.21.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS50";
+chr1 Cufflinks exon 3243109 3243154 . . . gene_id "XLOC_000043"; transcript_id "TCONS_00000073"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.45.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS51";
+chr1 Cufflinks exon 3243348 3243401 . . . gene_id "XLOC_000044"; transcript_id "TCONS_00000029"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.23.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS52";
+chr1 Cufflinks exon 3254080 3254106 . . . gene_id "XLOC_000045"; transcript_id "TCONS_00000074"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.47.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS53";
+chr1 Cufflinks exon 3256975 3257011 . . . gene_id "XLOC_000046"; transcript_id "TCONS_00000030"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.27.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS54";
+chr1 Cufflinks exon 3277156 3277182 . . . gene_id "XLOC_000047"; transcript_id "TCONS_00000075"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.49.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS55";
+chr1 Cufflinks exon 3277191 3277218 . . . gene_id "XLOC_000048"; transcript_id "TCONS_00000031"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.61.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS56";
+chr1 Cufflinks exon 3277914 3278390 . . . gene_id "XLOC_000049"; transcript_id "TCONS_00000076"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.51.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS57";
+chr1 Cufflinks exon 3280118 3280144 . . . gene_id "XLOC_000050"; transcript_id "TCONS_00000077"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.53.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS59";
+chr1 Cufflinks exon 3280499 3280525 . . . gene_id "XLOC_000051"; transcript_id "TCONS_00000078"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.55.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS60";
+chr1 Cufflinks exon 3280687 3280741 . . . gene_id "XLOC_000052"; transcript_id "TCONS_00000033"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.65.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS61";
+chr1 Cufflinks exon 3282505 3282531 . . . gene_id "XLOC_000053"; transcript_id "TCONS_00000079"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.57.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS62";
+chr1 Cufflinks exon 3282651 3282677 . . . gene_id "XLOC_000054"; transcript_id "TCONS_00000080"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.59.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS63";
+chr1 Cufflinks exon 3282761 3282832 . . . gene_id "XLOC_000055"; transcript_id "TCONS_00000081"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.61.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS64";
+chr1 Cufflinks exon 3284967 3284993 . . . gene_id "XLOC_000056"; transcript_id "TCONS_00000082"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.63.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS65";
+chr1 Cufflinks exon 3290489 3290553 . . . gene_id "XLOC_000057"; transcript_id "TCONS_00000034"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.67.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS66";
+chr1 Cufflinks exon 3290799 3290859 . . . gene_id "XLOC_000058"; transcript_id "TCONS_00000083"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.65.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS67";
+chr1 Cufflinks exon 3290920 3291273 . . . gene_id "XLOC_000059"; transcript_id "TCONS_00000084"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.69.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS68";
+chr1 Cufflinks exon 3299444 3299640 . . . gene_id "XLOC_000060"; transcript_id "TCONS_00000085"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.67.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS70";
+chr1 Cufflinks exon 3299610 3299664 . . . gene_id "XLOC_000060"; transcript_id "TCONS_00000037"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.73.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS71";
+chr1 Cufflinks exon 3299692 3299733 . . . gene_id "XLOC_000061"; transcript_id "TCONS_00000086"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.71.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS72";
+chr1 Cufflinks exon 3300052 3300078 . . . gene_id "XLOC_000062"; transcript_id "TCONS_00000038"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.75.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS73";
+chr1 Cufflinks exon 3307749 3307775 . . . gene_id "XLOC_000063"; transcript_id "TCONS_00000087"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.73.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS74";
+chr1 Cufflinks exon 3318621 3318647 . . . gene_id "XLOC_000064"; transcript_id "TCONS_00000088"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.75.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS75";
+chr1 Cufflinks exon 3319000 3319051 . . . gene_id "XLOC_000065"; transcript_id "TCONS_00000039"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.77.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS76";
+chr1 Cufflinks exon 3330528 3330554 . . . gene_id "XLOC_000066"; transcript_id "TCONS_00000089"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.77.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS77";
+chr1 Cufflinks exon 3351241 3351311 . . . gene_id "XLOC_000067"; transcript_id "TCONS_00000090"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.79.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS78";
+chr1 Cufflinks exon 3355888 3355914 . . . gene_id "XLOC_000068"; transcript_id "TCONS_00000040"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.79.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS79";
+chr1 Cufflinks exon 3355908 3356119 . . . gene_id "XLOC_000068"; transcript_id "TCONS_00000091"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.81.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS80";
+chr1 Cufflinks exon 3356181 3356225 . . . gene_id "XLOC_000069"; transcript_id "TCONS_00000092"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.83.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS81";
+chr1 Cufflinks exon 3363077 3363176 . . . gene_id "XLOC_000070"; transcript_id "TCONS_00000093"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.85.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS82";
+chr1 Cufflinks exon 3363215 3363278 . . . gene_id "XLOC_000071"; transcript_id "TCONS_00000041"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.81.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS83";
+chr1 Cufflinks exon 3363388 3363446 . . . gene_id "XLOC_000072"; transcript_id "TCONS_00000094"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.87.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS84";
+chr1 Cufflinks exon 3363754 3363849 . . . gene_id "XLOC_000073"; transcript_id "TCONS_00000042"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.83.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS85";
+chr1 Cufflinks exon 3364872 3364919 . . . gene_id "XLOC_000074"; transcript_id "TCONS_00000095"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.89.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS86";
+chr1 Cufflinks exon 3367136 3367162 . . . gene_id "XLOC_000075"; transcript_id "TCONS_00000043"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.85.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS87";
+chr1 Cufflinks exon 3367211 3367237 . . . gene_id "XLOC_000076"; transcript_id "TCONS_00000096"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.91.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS88";
+chr1 Cufflinks exon 3367334 3367382 . . . gene_id "XLOC_000077"; transcript_id "TCONS_00000044"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.87.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS89";
+chr1 Cufflinks exon 3369581 3369607 . . . gene_id "XLOC_000078"; transcript_id "TCONS_00000097"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.93.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS90";
+chr1 Cufflinks exon 3375002 3375028 . . . gene_id "XLOC_000079"; transcript_id "TCONS_00000098"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.95.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS91";
+chr1 Cufflinks exon 3377212 3377262 . . . gene_id "XLOC_000080"; transcript_id "TCONS_00000045"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.89.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS92";
+chr1 Cufflinks exon 3379889 3379915 . . . gene_id "XLOC_000081"; transcript_id "TCONS_00000099"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.97.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS93";
+chr1 Cufflinks exon 3386740 3386836 . . . gene_id "XLOC_000082"; transcript_id "TCONS_00000100"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.99.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS94";
+chr1 Cufflinks exon 3391326 3391352 . . . gene_id "XLOC_000083"; transcript_id "TCONS_00000046"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.91.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS95";
+chr1 Cufflinks exon 3435842 3435880 . . . gene_id "XLOC_000084"; transcript_id "TCONS_00000047"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.93.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS96";
+chr1 Cufflinks exon 3447762 3447788 . . . gene_id "XLOC_000085"; transcript_id "TCONS_00000048"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.95.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS97";
+chr1 Cufflinks exon 3450907 3450965 . . . gene_id "XLOC_000086"; transcript_id "TCONS_00000049"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.97.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS98";
+chr1 Cufflinks exon 3451052 3451109 . . . gene_id "XLOC_000087"; transcript_id "TCONS_00000050"; exon_number "1"; gene_name "Xkr4"; oId "CUFF.99.1"; nearest_ref "Xkr4"; class_code "i"; tss_id "TSS99";
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out6.tracking
--- a/test-data/cuffcompare_out6.tracking
+++ b/test-data/cuffcompare_out6.tracking
@@ -1,100 +1,100 @@
-TCONS_00000001 XLOC_000001 - u q1:CUFF.1|CUFF.1.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000002 XLOC_000002 - u q1:CUFF.3|CUFF.3.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000003 XLOC_000006 - u q1:CUFF.29|CUFF.29.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000004 XLOC_000006 - u q1:CUFF.31|CUFF.31.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000005 XLOC_000006 - u q1:CUFF.33|CUFF.33.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000006 XLOC_000008 - u q1:CUFF.35|CUFF.35.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000007 XLOC_000008 - u q1:CUFF.37|CUFF.37.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000008 XLOC_000010 - u q1:CUFF.39|CUFF.39.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000009 XLOC_000011 - u q1:CUFF.41|CUFF.41.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000010 XLOC_000013 - u q1:CUFF.43|CUFF.43.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000011 XLOC_000014 - u q1:CUFF.45|CUFF.45.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000012 XLOC_000015 - u q1:CUFF.47|CUFF.47.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000013 XLOC_000016 - u q1:CUFF.49|CUFF.49.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000014 XLOC_000018 - u q1:CUFF.51|CUFF.51.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000015 XLOC_000019 - u q1:CUFF.53|CUFF.53.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000016 XLOC_000020 - u q1:CUFF.55|CUFF.55.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000017 XLOC_000021 - u q1:CUFF.57|CUFF.57.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000018 XLOC_000022 - u q1:CUFF.59|CUFF.59.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000019 XLOC_000024 - u q1:CUFF.7|CUFF.7.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000020 XLOC_000025 - u q1:CUFF.5|CUFF.5.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000021 XLOC_000028 - u q1:CUFF.9|CUFF.9.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000022 XLOC_000030 - u q1:CUFF.11|CUFF.11.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000023 XLOC_000032 - u q1:CUFF.13|CUFF.13.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000024 XLOC_000034 - u q1:CUFF.15|CUFF.15.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000025 XLOC_000035 - u q1:CUFF.19|CUFF.19.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000026 XLOC_000037 - u q1:CUFF.17|CUFF.17.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000027 XLOC_000040 - u q1:CUFF.25|CUFF.25.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000028 XLOC_000042 - u q1:CUFF.21|CUFF.21.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000029 XLOC_000044 - u q1:CUFF.23|CUFF.23.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000030 XLOC_000046 - u q1:CUFF.27|CUFF.27.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000031 XLOC_000048 - u q1:CUFF.61|CUFF.61.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000032 XLOC_000049 - u q1:CUFF.63|CUFF.63.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000033 XLOC_000052 - u q1:CUFF.65|CUFF.65.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000034 XLOC_000057 - u q1:CUFF.67|CUFF.67.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000035 XLOC_000059 - u q1:CUFF.69|CUFF.69.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000036 XLOC_000059 - u q1:CUFF.71|CUFF.71.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000037 XLOC_000060 - u q1:CUFF.73|CUFF.73.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000038 XLOC_000062 - u q1:CUFF.75|CUFF.75.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000039 XLOC_000065 - u q1:CUFF.77|CUFF.77.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000040 XLOC_000068 - u q1:CUFF.79|CUFF.79.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000041 XLOC_000071 - u q1:CUFF.81|CUFF.81.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000042 XLOC_000073 - u q1:CUFF.83|CUFF.83.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000043 XLOC_000075 - u q1:CUFF.85|CUFF.85.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000044 XLOC_000077 - u q1:CUFF.87|CUFF.87.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000045 XLOC_000080 - u q1:CUFF.89|CUFF.89.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000046 XLOC_000083 - u q1:CUFF.91|CUFF.91.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000047 XLOC_000084 - u q1:CUFF.93|CUFF.93.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000048 XLOC_000085 - u q1:CUFF.95|CUFF.95.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000049 XLOC_000086 - u q1:CUFF.97|CUFF.97.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000050 XLOC_000087 - u q1:CUFF.99|CUFF.99.1|100|0.000000|0.000000|0.000000|0.000000|- -
-TCONS_00000051 XLOC_000003 - u - q2:CUFF.1|CUFF.1.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000052 XLOC_000004 - u - q2:CUFF.3|CUFF.3.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000053 XLOC_000005 - u - q2:CUFF.5|CUFF.5.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000054 XLOC_000006 - u - q2:CUFF.11|CUFF.11.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000055 XLOC_000007 - u - q2:CUFF.7|CUFF.7.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000056 XLOC_000008 - u - q2:CUFF.9|CUFF.9.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000057 XLOC_000009 - u - q2:CUFF.13|CUFF.13.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000058 XLOC_000012 - u - q2:CUFF.15|CUFF.15.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000059 XLOC_000017 - u - q2:CUFF.17|CUFF.17.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000060 XLOC_000023 - u - q2:CUFF.19|CUFF.19.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000061 XLOC_000024 - u - q2:CUFF.23|CUFF.23.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000062 XLOC_000026 - u - q2:CUFF.21|CUFF.21.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000063 XLOC_000027 - u - q2:CUFF.26|CUFF.26.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000064 XLOC_000028 - u - q2:CUFF.25|CUFF.25.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000065 XLOC_000029 - u - q2:CUFF.29|CUFF.29.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000066 XLOC_000031 - u - q2:CUFF.31|CUFF.31.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000067 XLOC_000033 - u - q2:CUFF.33|CUFF.33.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000068 XLOC_000036 - u - q2:CUFF.35|CUFF.35.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000069 XLOC_000037 - u - q2:CUFF.37|CUFF.37.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000070 XLOC_000038 - u - q2:CUFF.39|CUFF.39.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000071 XLOC_000039 - u - q2:CUFF.41|CUFF.41.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000072 XLOC_000041 - u - q2:CUFF.43|CUFF.43.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000073 XLOC_000043 - u - q2:CUFF.45|CUFF.45.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000074 XLOC_000045 - u - q2:CUFF.47|CUFF.47.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000075 XLOC_000047 - u - q2:CUFF.49|CUFF.49.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000076 XLOC_000049 - u - q2:CUFF.51|CUFF.51.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000077 XLOC_000050 - u - q2:CUFF.53|CUFF.53.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000078 XLOC_000051 - u - q2:CUFF.55|CUFF.55.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000079 XLOC_000053 - u - q2:CUFF.57|CUFF.57.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000080 XLOC_000054 - u - q2:CUFF.59|CUFF.59.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000081 XLOC_000055 - u - q2:CUFF.61|CUFF.61.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000082 XLOC_000056 - u - q2:CUFF.63|CUFF.63.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000083 XLOC_000058 - u - q2:CUFF.65|CUFF.65.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000084 XLOC_000059 - u - q2:CUFF.69|CUFF.69.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000085 XLOC_000060 - u - q2:CUFF.67|CUFF.67.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000086 XLOC_000061 - u - q2:CUFF.71|CUFF.71.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000087 XLOC_000063 - u - q2:CUFF.73|CUFF.73.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000088 XLOC_000064 - u - q2:CUFF.75|CUFF.75.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000089 XLOC_000066 - u - q2:CUFF.77|CUFF.77.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000090 XLOC_000067 - u - q2:CUFF.79|CUFF.79.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000091 XLOC_000068 - u - q2:CUFF.81|CUFF.81.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000092 XLOC_000069 - u - q2:CUFF.83|CUFF.83.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000093 XLOC_000070 - u - q2:CUFF.85|CUFF.85.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000094 XLOC_000072 - u - q2:CUFF.87|CUFF.87.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000095 XLOC_000074 - u - q2:CUFF.89|CUFF.89.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000096 XLOC_000076 - u - q2:CUFF.91|CUFF.91.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000097 XLOC_000078 - u - q2:CUFF.93|CUFF.93.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000098 XLOC_000079 - u - q2:CUFF.95|CUFF.95.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000099 XLOC_000081 - u - q2:CUFF.97|CUFF.97.1|100|0.000000|0.000000|0.000000|0.000000|-
-TCONS_00000100 XLOC_000082 - u - q2:CUFF.99|CUFF.99.1|100|0.000000|0.000000|0.000000|0.000000|-
+TCONS_00000001 XLOC_000001 Xkr4|Xkr4 c q1:CUFF.13|CUFF.13.1|100|10.695258|0.000000|25.820637|0.683544|- -
+TCONS_00000002 XLOC_000002 - u q1:CUFF.1|CUFF.1.1|100|20.607936|0.000000|49.751960|1.317073|- -
+TCONS_00000003 XLOC_000003 - u q1:CUFF.3|CUFF.3.1|100|27.255658|0.000000|65.800979|1.741935|- -
+TCONS_00000004 XLOC_000007 - u q1:CUFF.29|CUFF.29.1|100|107.103219|71.402146|142.804292|6.845070|- -
+TCONS_00000005 XLOC_000007 - u q1:CUFF.31|CUFF.31.1|100|122.650461|40.883487|204.417435|7.838710|- -
+TCONS_00000006 XLOC_000007 - u q1:CUFF.33|CUFF.33.1|100|109.527366|26.732460|192.322273|7.000000|- -
+TCONS_00000007 XLOC_000009 - u q1:CUFF.35|CUFF.35.1|100|96.747183|61.420107|132.074259|6.183206|- -
+TCONS_00000008 XLOC_000009 - u q1:CUFF.37|CUFF.37.1|100|104.085013|53.596365|154.573660|6.652174|- -
+TCONS_00000009 XLOC_000011 - u q1:CUFF.39|CUFF.39.1|100|23.912983|0.000000|51.525317|1.528302|- -
+TCONS_00000010 XLOC_000012 - u q1:CUFF.41|CUFF.41.1|100|10.695258|0.000000|25.820637|0.683544|- -
+TCONS_00000011 XLOC_000014 - u q1:CUFF.43|CUFF.43.1|100|10.561567|0.000000|25.497879|0.675000|- -
+TCONS_00000012 XLOC_000015 - u q1:CUFF.45|CUFF.45.1|100|20.708956|2.186303|39.231609|1.323529|- -
+TCONS_00000013 XLOC_000016 - u q1:CUFF.47|CUFF.47.1|100|20.607936|0.000000|49.751960|1.317073|- -
+TCONS_00000014 XLOC_000017 - u q1:CUFF.49|CUFF.49.1|100|15.646767|0.000000|46.940300|1.000000|- -
+TCONS_00000015 XLOC_000019 - u q1:CUFF.51|CUFF.51.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000016 XLOC_000020 - u q1:CUFF.53|CUFF.53.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000017 XLOC_000021 - u q1:CUFF.55|CUFF.55.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000018 XLOC_000022 - u q1:CUFF.57|CUFF.57.1|100|15.646767|0.000000|46.940300|1.000000|- -
+TCONS_00000019 XLOC_000023 - u q1:CUFF.59|CUFF.59.1|100|15.646767|0.000000|46.940300|1.000000|- -
+TCONS_00000020 XLOC_000025 - u q1:CUFF.7|CUFF.7.1|100|9.999117|0.000000|19.998234|0.639053|- -
+TCONS_00000021 XLOC_000026 - u q1:CUFF.5|CUFF.5.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000022 XLOC_000029 - u q1:CUFF.9|CUFF.9.1|100|17.776896|9.153835|26.399957|1.136139|- -
+TCONS_00000023 XLOC_000031 - u q1:CUFF.11|CUFF.11.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000024 XLOC_000034 Xkr4|Xkr4 i q1:CUFF.15|CUFF.15.1|100|10.695258|0.000000|25.820637|0.683544|- -
+TCONS_00000025 XLOC_000035 Xkr4|Xkr4 i q1:CUFF.19|CUFF.19.1|100|29.337687|3.097262|55.578113|1.875000|- -
+TCONS_00000026 XLOC_000037 Xkr4|Xkr4 i q1:CUFF.17|CUFF.17.1|100|8.710571|0.000000|21.029179|0.556701|- -
+TCONS_00000027 XLOC_000040 Xkr4|Xkr4 i q1:CUFF.25|CUFF.25.1|100|14.567679|5.354270|23.781089|0.931034|- -
+TCONS_00000028 XLOC_000042 Xkr4|Xkr4 i q1:CUFF.21|CUFF.21.1|100|13.851236|0.000000|33.439842|0.885246|- -
+TCONS_00000029 XLOC_000044 Xkr4|Xkr4 i q1:CUFF.23|CUFF.23.1|100|23.470150|0.000000|50.571145|1.500000|- -
+TCONS_00000030 XLOC_000046 Xkr4|Xkr4 i q1:CUFF.27|CUFF.27.1|100|34.253732|0.000000|73.806535|2.189189|- -
+TCONS_00000031 XLOC_000048 Xkr4|Xkr4 i q1:CUFF.61|CUFF.61.1|100|45.263860|0.000000|97.530065|2.892857|- -
+TCONS_00000032 XLOC_000049 Xkr4|Xkr4 i q1:CUFF.63|CUFF.63.1|100|15.646767|0.000000|46.940300|1.000000|- -
+TCONS_00000033 XLOC_000052 Xkr4|Xkr4 i q1:CUFF.65|CUFF.65.1|100|15.362280|0.000000|37.087825|0.981818|- -
+TCONS_00000034 XLOC_000057 Xkr4|Xkr4 i q1:CUFF.67|CUFF.67.1|100|12.998852|0.000000|31.382005|0.830769|- -
+TCONS_00000035 XLOC_000059 Xkr4|Xkr4 i q1:CUFF.69|CUFF.69.1|100|10.058636|0.000000|24.283695|0.642857|- -
+TCONS_00000036 XLOC_000059 Xkr4|Xkr4 i q1:CUFF.71|CUFF.71.1|100|8.621688|0.000000|20.814595|0.551020|- -
+TCONS_00000037 XLOC_000060 Xkr4|Xkr4 i q1:CUFF.73|CUFF.73.1|100|15.362280|0.000000|37.087825|0.981818|- -
+TCONS_00000038 XLOC_000062 Xkr4|Xkr4 i q1:CUFF.75|CUFF.75.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000039 XLOC_000065 Xkr4|Xkr4 i q1:CUFF.77|CUFF.77.1|100|16.248565|0.000000|39.227507|1.038462|- -
+TCONS_00000040 XLOC_000068 Xkr4|Xkr4 i q1:CUFF.79|CUFF.79.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000041 XLOC_000071 Xkr4|Xkr4 i q1:CUFF.81|CUFF.81.1|100|13.201959|0.000000|31.872349|0.843750|- -
+TCONS_00000042 XLOC_000073 Xkr4|Xkr4 i q1:CUFF.83|CUFF.83.1|100|13.201959|0.000000|28.446269|0.843750|- -
+TCONS_00000043 XLOC_000075 Xkr4|Xkr4 i q1:CUFF.85|CUFF.85.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000044 XLOC_000077 Xkr4|Xkr4 i q1:CUFF.87|CUFF.87.1|100|17.243375|0.000000|41.629191|1.102041|- -
+TCONS_00000045 XLOC_000080 Xkr4|Xkr4 i q1:CUFF.89|CUFF.89.1|100|16.567165|0.000000|39.996674|1.058824|- -
+TCONS_00000046 XLOC_000083 Xkr4|Xkr4 i q1:CUFF.91|CUFF.91.1|100|31.293533|0.000000|75.549272|2.000000|- -
+TCONS_00000047 XLOC_000084 Xkr4|Xkr4 i q1:CUFF.93|CUFF.93.1|100|21.664754|0.000000|52.303342|1.384615|- -
+TCONS_00000048 XLOC_000085 Xkr4|Xkr4 i q1:CUFF.95|CUFF.95.1|100|46.940300|0.000000|101.142289|3.000000|- -
+TCONS_00000049 XLOC_000086 Xkr4|Xkr4 i q1:CUFF.97|CUFF.97.1|100|21.481154|0.000000|46.285454|1.372881|- -
+TCONS_00000050 XLOC_000087 Xkr4|Xkr4 i q1:CUFF.99|CUFF.99.1|100|14.567679|0.000000|35.169489|0.931034|- -
+TCONS_00000051 XLOC_000004 - u - q2:CUFF.1|CUFF.1.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000052 XLOC_000005 - u - q2:CUFF.3|CUFF.3.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000053 XLOC_000006 - u - q2:CUFF.5|CUFF.5.1|100|21.226627|0.000000|59.889707|1.205672|-
+TCONS_00000054 XLOC_000007 - u - q2:CUFF.11|CUFF.11.1|100|32.531777|24.582998|40.480555|1.847804|-
+TCONS_00000055 XLOC_000008 - u - q2:CUFF.7|CUFF.7.1|100|29.709524|19.806349|39.612698|1.687500|-
+TCONS_00000056 XLOC_000009 - u - q2:CUFF.9|CUFF.9.1|100|34.072933|23.364686|44.781179|1.935341|-
+TCONS_00000057 XLOC_000010 - u - q2:CUFF.13|CUFF.13.1|100|16.582060|0.000000|35.729373|0.941860|-
+TCONS_00000058 XLOC_000013 - u - q2:CUFF.15|CUFF.15.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000059 XLOC_000018 - u - q2:CUFF.17|CUFF.17.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000060 XLOC_000024 - u - q2:CUFF.19|CUFF.19.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000061 XLOC_000025 - u - q2:CUFF.23|CUFF.23.1|100|16.205195|0.000000|34.917342|0.920455|-
+TCONS_00000062 XLOC_000027 - u - q2:CUFF.21|CUFF.21.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000063 XLOC_000028 - u - q2:CUFF.26|CUFF.26.1|100|29.709524|0.000000|71.725135|1.687500|-
+TCONS_00000064 XLOC_000029 - u - q2:CUFF.25|CUFF.25.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000065 XLOC_000030 - u - q2:CUFF.29|CUFF.29.1|100|13.581496|0.000000|32.788633|0.771429|-
+TCONS_00000066 XLOC_000032 - u - q2:CUFF.31|CUFF.31.1|100|22.635827|0.000000|45.271655|1.285714|-
+TCONS_00000067 XLOC_000033 Xkr4|Xkr4 i - q2:CUFF.33|CUFF.33.1|100|23.767619|0.000000|57.380108|1.350000|-
+TCONS_00000068 XLOC_000036 Xkr4|Xkr4 i - q2:CUFF.35|CUFF.35.1|100|11.317914|0.000000|27.323861|0.642857|-
+TCONS_00000069 XLOC_000037 Xkr4|Xkr4 i - q2:CUFF.37|CUFF.37.1|100|11.500461|0.000000|24.780049|0.653226|-
+TCONS_00000070 XLOC_000038 Xkr4|Xkr4 i - q2:CUFF.39|CUFF.39.1|100|52.816931|0.000000|113.804669|3.000000|-
+TCONS_00000071 XLOC_000039 Xkr4|Xkr4 i - q2:CUFF.41|CUFF.41.1|100|43.213852|0.000000|93.112911|2.454545|-
+TCONS_00000072 XLOC_000041 Xkr4|Xkr4 i - q2:CUFF.43|CUFF.43.1|100|23.474191|0.000000|46.948383|1.333333|-
+TCONS_00000073 XLOC_000043 Xkr4|Xkr4 i - q2:CUFF.45|CUFF.45.1|100|20.667495|0.000000|49.895746|1.173913|-
+TCONS_00000074 XLOC_000045 Xkr4|Xkr4 i - q2:CUFF.47|CUFF.47.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000075 XLOC_000047 Xkr4|Xkr4 i - q2:CUFF.49|CUFF.49.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000076 XLOC_000049 Xkr4|Xkr4 i - q2:CUFF.51|CUFF.51.1|100|14.948188|7.228977|22.667399|0.849057|-
+TCONS_00000077 XLOC_000050 Xkr4|Xkr4 i - q2:CUFF.53|CUFF.53.1|100|52.816931|0.000000|113.804669|3.000000|-
+TCONS_00000078 XLOC_000051 Xkr4|Xkr4 i - q2:CUFF.55|CUFF.55.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000079 XLOC_000053 Xkr4|Xkr4 i - q2:CUFF.57|CUFF.57.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000080 XLOC_000054 Xkr4|Xkr4 i - q2:CUFF.59|CUFF.59.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000081 XLOC_000055 Xkr4|Xkr4 i - q2:CUFF.61|CUFF.61.1|100|13.204233|0.000000|31.877838|0.750000|-
+TCONS_00000082 XLOC_000056 Xkr4|Xkr4 i - q2:CUFF.63|CUFF.63.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000083 XLOC_000058 Xkr4|Xkr4 i - q2:CUFF.65|CUFF.65.1|100|31.170648|0.000000|62.341295|1.770492|-
+TCONS_00000084 XLOC_000059 Xkr4|Xkr4 i - q2:CUFF.69|CUFF.69.1|100|18.799247|8.750627|28.847866|1.067797|-
+TCONS_00000085 XLOC_000060 Xkr4|Xkr4 i - q2:CUFF.67|CUFF.67.1|100|15.681351|3.378764|27.983938|0.890700|-
+TCONS_00000086 XLOC_000061 Xkr4|Xkr4 i - q2:CUFF.71|CUFF.71.1|100|22.635827|0.000000|54.647722|1.285714|-
+TCONS_00000087 XLOC_000063 Xkr4|Xkr4 i - q2:CUFF.73|CUFF.73.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000088 XLOC_000064 Xkr4|Xkr4 i - q2:CUFF.75|CUFF.75.1|100|52.816931|0.000000|113.804669|3.000000|-
+TCONS_00000089 XLOC_000066 Xkr4|Xkr4 i - q2:CUFF.77|CUFF.77.1|100|17.605644|0.000000|52.816931|1.000000|-
+TCONS_00000090 XLOC_000067 Xkr4|Xkr4 i - q2:CUFF.79|CUFF.79.1|100|13.390208|0.000000|32.326821|0.760563|-
+TCONS_00000091 XLOC_000068 Xkr4|Xkr4 i - q2:CUFF.81|CUFF.81.1|100|11.211141|1.183592|21.238690|0.636792|-
+TCONS_00000092 XLOC_000069 Xkr4|Xkr4 i - q2:CUFF.83|CUFF.83.1|100|21.126772|0.000000|51.004540|1.200000|-
+TCONS_00000093 XLOC_000070 Xkr4|Xkr4 i - q2:CUFF.85|CUFF.85.1|100|19.014095|0.000000|38.028190|1.080000|-
+TCONS_00000094 XLOC_000072 Xkr4|Xkr4 i - q2:CUFF.87|CUFF.87.1|100|24.170460|0.000000|52.080103|1.372881|-
+TCONS_00000095 XLOC_000074 Xkr4|Xkr4 i - q2:CUFF.89|CUFF.89.1|100|29.709524|0.000000|64.015126|1.687500|-
+TCONS_00000096 XLOC_000076 Xkr4|Xkr4 i - q2:CUFF.91|CUFF.91.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000097 XLOC_000078 Xkr4|Xkr4 i - q2:CUFF.93|CUFF.93.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000098 XLOC_000079 Xkr4|Xkr4 i - q2:CUFF.95|CUFF.95.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000099 XLOC_000081 Xkr4|Xkr4 i - q2:CUFF.97|CUFF.97.1|100|35.211287|0.000000|85.007567|2.000000|-
+TCONS_00000100 XLOC_000082 Xkr4|Xkr4 i - q2:CUFF.99|CUFF.99.1|100|19.602160|0.000000|39.204320|1.113402|-
diff -r bde09cbd60865053ffd0ab05138d6fa3e594d399 -r 277403d31907d71e5e77694c0c97c16772f23e27 test-data/cuffcompare_out7.txt
--- a/test-data/cuffcompare_out7.txt
+++ b/test-data/cuffcompare_out7.txt
@@ -1,13 +1,26 @@
-# Cuffcompare v1.0.3 | Command line was:
-#cuffcompare -o cc_output -r cuffcompare_in3.gtf -R cuffcompare_in1.gtf cuffcompare_in2.gtf
+# Cuffcompare v1.1.0 | Command line was:
+#cuffcompare -o cc_output -r /Users/jeremy/projects/galaxy-central/database/files/010/dataset_10115.dat -R ./input1 ./input2
#
-#= Summary for dataset: cuffcompare_in1.gtf :
+#= Summary for dataset: ./input1 :
# Query mRNAs : 50 in 50 loci (0 multi-exon transcripts)
# (0 multi-transcript loci, ~1.0 transcripts per locus)
-# Reference mRNAs : 0 in 0 loci (0 multi-exon)
+# Reference mRNAs : 1 in 1 loci (1 multi-exon)
+# Corresponding super-loci: 1
+#--------------------| Sn | Sp | fSn | fSp
+ Base level: 2.2 2.3 - -
+ Exon level: 0.0 0.0 0.0 0.0
+ Intron level: 0.0 nan 0.0 nan
+Intron chain level: 0.0 nan 0.0 nan
+ Transcript level: 0.0 0.0 0.0 0.0
+ Locus level: 0.0 0.0 0.0 0.0
+ Missed exons: 2/3 ( 66.7%)
+ Wrong exons: 49/50 ( 98.0%)
+ Missed introns: 2/2 (100.0%)
+ Missed loci: 0/1 ( 0.0%)
+ Wrong loci: 49/50 ( 98.0%)
-#= Summary for dataset: cuffcompare_in2.gtf :
+#= Summary for dataset: ./input2 :
# Query mRNAs : 50 in 50 loci (0 multi-exon transcripts)
# (0 multi-transcript loci, ~1.0 transcripts per locus)
# Reference mRNAs : 0 in 0 loci (0 multi-exon)
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/bde09cbd6086/
changeset: bde09cbd6086
user: jgoecks
date: 2011-11-18 20:37:43
summary: Update test data for cufflinks v1.1.0
affected #: 3 files
diff -r ded0418d7dae7fba69461495d46c936324f9883a -r bde09cbd60865053ffd0ab05138d6fa3e594d399 test-data/cufflinks_out1.gtf
--- a/test-data/cufflinks_out1.gtf
+++ b/test-data/cufflinks_out1.gtf
@@ -1,4 +1,4 @@
-test_chromosome Cufflinks transcript 53 550 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; FPKM "10679134.4063403048"; frac "1.000000"; conf_lo "8543307.525072"; conf_hi "12814961.287608"; cov "145.770185";
-test_chromosome Cufflinks exon 53 250 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "1"; FPKM "10679134.4063403048"; frac "1.000000"; conf_lo "8543307.525072"; conf_hi "12814961.287608"; cov "145.770185";
-test_chromosome Cufflinks exon 351 400 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "2"; FPKM "10679134.4063403048"; frac "1.000000"; conf_lo "8543307.525072"; conf_hi "12814961.287608"; cov "145.770185";
-test_chromosome Cufflinks exon 501 550 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "3"; FPKM "10679134.4063403048"; frac "1.000000"; conf_lo "8543307.525072"; conf_hi "12814961.287608"; cov "145.770185";
+test_chromosome Cufflinks transcript 53 550 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; FPKM "10465551.7182135005"; frac "1.000000"; conf_lo "8351190.978554"; conf_hi "12579912.457873"; cov "142.854781";
+test_chromosome Cufflinks exon 53 250 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "1"; FPKM "10465551.7182135005"; frac "1.000000"; conf_lo "8351190.978554"; conf_hi "12579912.457873"; cov "142.854781";
+test_chromosome Cufflinks exon 351 400 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "2"; FPKM "10465551.7182135005"; frac "1.000000"; conf_lo "8351190.978554"; conf_hi "12579912.457873"; cov "142.854781";
+test_chromosome Cufflinks exon 501 550 1000 + . gene_id "CUFF.1"; transcript_id "CUFF.1.1"; exon_number "3"; FPKM "10465551.7182135005"; frac "1.000000"; conf_lo "8351190.978554"; conf_hi "12579912.457873"; cov "142.854781";
diff -r ded0418d7dae7fba69461495d46c936324f9883a -r bde09cbd60865053ffd0ab05138d6fa3e594d399 test-data/cufflinks_out2.fpkm_tracking
--- a/test-data/cufflinks_out2.fpkm_tracking
+++ b/test-data/cufflinks_out2.fpkm_tracking
@@ -1,2 +1,2 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status FPKM FPKM_conf_lo FPKM_conf_hi
-CUFF.1.1 - - CUFF.1 - - test_chromosome:52-550 298 145.77 OK 1.06791e+07 8.54331e+06 1.2815e+07
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage FPKM FPKM_conf_lo FPKM_conf_hi FPKM_status
+CUFF.1.1 - - CUFF.1 - - test_chromosome:52-550 298 142.855 1.04656e+07 8.35119e+06 1.25799e+07 OK
diff -r ded0418d7dae7fba69461495d46c936324f9883a -r bde09cbd60865053ffd0ab05138d6fa3e594d399 test-data/cufflinks_out3.fpkm_tracking
--- a/test-data/cufflinks_out3.fpkm_tracking
+++ b/test-data/cufflinks_out3.fpkm_tracking
@@ -1,2 +1,2 @@
-tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage status FPKM FPKM_conf_lo FPKM_conf_hi
-CUFF.1 - - CUFF.1 - - test_chromosome:52-550 - - OK 1.06791e+07 8.54331e+06 1.2815e+07
+tracking_id class_code nearest_ref_id gene_id gene_short_name tss_id locus length coverage FPKM FPKM_conf_lo FPKM_conf_hi FPKM_status
+CUFF.1 - - CUFF.1 - - test_chromosome:52-550 - - 1.04656e+07 8.35119e+06 1.25799e+07 OK
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/68aefd386f5c/
changeset: 68aefd386f5c
branch: updates-for-tophat-1.3.1+
user: natefoo
date: 2011-11-18 20:16:47
summary: Closed branch updates-for-tophat-1.3.1+
affected #: 0 files
https://bitbucket.org/galaxy/galaxy-central/changeset/ded0418d7dae/
changeset: ded0418d7dae
user: natefoo
date: 2011-11-18 20:17:34
summary: Merged updates-for-tophat-1.3.1+ branch closing.
affected #: 0 files
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: greg: Add disk_usage methods to tool shed's User model object - fixes server error when viewing User Preferences.
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/e8a4a9b1ed14/
changeset: e8a4a9b1ed14
user: greg
date: 2011-11-18 20:04:29
summary: Add disk_usage methods to tool shed's User model object - fixes server error when viewing User Preferences.
affected #: 2 files
diff -r ccbee8d11a6a75b8cee78cc9647a31e0dc32894c -r e8a4a9b1ed1460ac259d5ed4a188906a47ff2a7e lib/galaxy/webapps/community/config.py
--- a/lib/galaxy/webapps/community/config.py
+++ b/lib/galaxy/webapps/community/config.py
@@ -41,6 +41,7 @@
self.cookie_path = kwargs.get( "cookie_path", "/" )
# web API
self.enable_api = string_as_bool( kwargs.get( 'enable_api', False ) )
+ self.enable_quotas = string_as_bool( kwargs.get( 'enable_quotas', False ) )
self.datatypes_config = kwargs.get( 'datatypes_config_file', 'datatypes_conf.xml' )
self.test_conf = resolve_path( kwargs.get( "test_conf", "" ), self.root )
self.id_secret = kwargs.get( "id_secret", "USING THE DEFAULT IS NOT SECURE!" )
diff -r ccbee8d11a6a75b8cee78cc9647a31e0dc32894c -r e8a4a9b1ed1460ac259d5ed4a188906a47ff2a7e lib/galaxy/webapps/community/model/__init__.py
--- a/lib/galaxy/webapps/community/model/__init__.py
+++ b/lib/galaxy/webapps/community/model/__init__.py
@@ -26,6 +26,14 @@
def check_password( self, cleartext ):
"""Check if 'cleartext' matches 'self.password' when hashed."""
return self.password == new_secure_hash( text_type=cleartext )
+ def get_disk_usage( self, nice_size=False ):
+ return 0
+ def set_disk_usage( self, bytes ):
+ pass
+ total_disk_usage = property( get_disk_usage, set_disk_usage )
+ @property
+ def nice_total_disk_usage( self ):
+ return 0
class Group( object ):
def __init__( self, name = None ):
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Do not use route memory when creating URLs to metadata files.
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/ccbee8d11a6a/
changeset: ccbee8d11a6a
user: jgoecks
date: 2011-11-18 19:56:19
summary: Do not use route memory when creating URLs to metadata files.
affected #: 1 file
diff -r 689aa9c246fed392b4eccbf6642d4871a7cf612f -r ccbee8d11a6a75b8cee78cc9647a31e0dc32894c templates/root/history_common.mako
--- a/templates/root/history_common.mako
+++ b/templates/root/history_common.mako
@@ -13,7 +13,7 @@
to_ext=data.ext )}">Download Dataset</a><a>Additional Files</a>
%for file_type in meta_files:
- <a class="action-button" href="${h.url_for( controller='dataset', action='get_metadata_file', \
+ <a class="action-button" href="${h.url_for( controller='/dataset', action='get_metadata_file', \
hda_id=dataset_id, metadata_name=file_type )}">Download ${file_type}</a>
%endfor
</div>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: dan: Update GenomeSpace import from file browser tool to use new versioned API.
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/689aa9c246fe/
changeset: 689aa9c246fe
user: dan
date: 2011-11-18 19:48:06
summary: Update GenomeSpace import from file browser tool to use new versioned API.
affected #: 2 files
diff -r 43219da282f61f1a3ee2f2578a247f673116ac7b -r 689aa9c246fed392b4eccbf6642d4871a7cf612f tools/data_source/genomespace_file_browser.py
--- a/tools/data_source/genomespace_file_browser.py
+++ b/tools/data_source/genomespace_file_browser.py
@@ -8,32 +8,16 @@
pkg_resources.require( "simplejson" )
import simplejson
+GENOMESPACE_API_VERSION_STRING = "v1.0"
+GENOMESPACE_SERVER_URL_PROPERTIES = "http://www.genomespace.org/sites/genomespacefiles/config/serverurl.properti…"
+
CHUNK_SIZE = 2**20 #1mb
DEFAULT_GALAXY_EXT = "data"
#genomespace format identifier is the URL
-GENOMESPACE_FORMAT_IDENTIFIER_TO_GENOMESPACE_EXT = { 'http://www.genomespace.org/datamanager/dataformat/res/0.0.0': 'res',
- 'http://www.genomespace.org/datamanager/dataformat/cbs/0.0.0': 'CBS',
- 'http://www.genomespace.org/datamanager/dataformat/lowercasetxt/0.0.0': 'lowercasetxt',
- 'http://www.genomespace.org/datamanager/dataformat/gff/0.0.0': 'GFF',
- 'http://www.genomespace.org/datamanager/dataformat/reversedtxt/0.0.0': 'reversedtxt',
- 'http://www.genomespace.org/datamanager/dataformat/gxp/0.0.0': 'gxp',
- 'http://www.genomespace.org/datamanager/dataformat/unknown/0.0.0': 'unknown',
- 'http://www.genomespace.org/datamanager/dataformat/gtf/0.0.0': 'GTF',
- 'http://www.genomespace.org/datamanager/dataformat/cn/0.0.0': 'cn',
- 'http://www.genomespace.org/datamanager/dataformat/gct/0.0.0': 'gct',
- 'http://www.genomespace.org/datamanager/dataformat/nowhitespace/0.0.0': 'nowhitespace',
- 'http://www.genomespace.org/datamanager/dataformat/gistic/0.0.0': 'GISTIC',
- 'http://www.genomespace.org/datamanager/dataformat/rifles/0.0.0': 'rifles',
- 'http://www.genomespace.org/datamanager/dataformat/bed/0.0.0': 'bed',
- 'http://www.genomespace.org/datamanager/dataformat/txt/0.0.0': 'txt',
- 'http://www.genomespace.org/datamanager/dataformat/uppercasetxt/0.0.0': 'uppercasetxt',
- 'http://www.genomespace.org/datamanager/dataformat/xcn/0.0.0': 'xcn',
- 'http://www.genomespace.org/datamanager/dataformat/gmt/0.0.0': 'gmt',
- 'http://www.genomespace.org/datamanager/dataformat/genomicatab/0.0.0': 'genomicatab',
- 'http://www.genomespace.org/datamanager/dataformat/lifes/0.0.0': 'lifes' }
-
+GENOMESPACE_FORMAT_IDENTIFIER_TO_GENOMESPACE_EXT = {} #TODO: fix this so it is not a global variable
+#TODO: we should use a better way to set up this mapping
GENOMESPACE_EXT_TO_GALAXY_EXT = {'rifles': 'rifles',
'lifes': 'lifes',
'cn': 'cn',
@@ -48,29 +32,13 @@
'reversedtxt': 'reversedtxt',
'nowhitespace': 'nowhitespace',
'unknown': 'unknown',
- 'txt': 'txt', 'uppercasetxt':
- 'uppercasetxt',
+ 'txt': 'txt',
+ 'uppercasetxt': 'uppercasetxt',
'GISTIC': 'gistic',
'GFF': 'gff',
'gmt': 'gmt',
'gct': 'gct'}
-'''
-https://dmdev.genomespace.org:8444/datamanager/dataformat/list
-from galaxy import eggs
-import pkg_resources
-pkg_resources.require( "simplejson" )
-import simplejson
-formats = simplejson.loads( '[{"name":"GISTIC","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gistic\/0.0.0","fileExtension":"gistic"},{"name":"GFF","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gff\/0.0.0","fileExtension":"seg"},{"name":"gct","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gct\/0.0.0","fileExtension":"gct"},{"name":"lifes","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/lifes\/0.0.0","fileExtension":"lifes"},{"name":"GTF","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gtf\/0.0.0","fileExtension":"gtf"},{"name":"rifles","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/rifles\/0.0.0","fileExtension":"rifles"},{"name":"CBS","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/cbs\/0.0.0","fileExtension":"cbs"},{"name":"unknown","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/unknown\/0.0.0"},{"name":"reversedtxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/reversedtxt\/0.0.0","fileExtension":"reversedtxt"},{"name":"res","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/res\/0.0.0","fileExtension":"res"},{"name":"cn","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/cn\/0.0.0","fileExtension":"cn"},{"name":"gmt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gmt\/0.0.0","fileExtension":"gmt"},{"name":"bed","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/bed\/0.0.0","fileExtension":"bed"},{"name":"gxp","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gxp\/0.0.0","fileExtension":"gxp"},{"name":"uppercasetxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/uppercasetxt\/0.0.0","fileExtension":"uppertxt"},{"name":"lowercasetxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/lowercasetxt\/0.0.0","fileExtension":"lowertxt"},{"name":"genomicatab","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/genomicatab\/0.0.0","fileExtension":"tab"},{"name":"nowhitespace","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/nowhitespace\/0.0.0","fileExtension":"nowhitespace"},{"name":"xcn","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/xcn\/0.0.0","fileExtension":"xcn"},{"name":"txt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/txt\/0.0.0","fileExtension":"txt"}]' )
-formats = [{"name":"GISTIC","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gistic\/0.0.0","fileExtension":"gistic"},{"name":"GFF","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gff\/0.0.0","fileExtension":"seg"},{"name":"gct","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gct\/0.0.0","fileExtension":"gct"},{"name":"lifes","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/lifes\/0.0.0","fileExtension":"lifes"},{"name":"GTF","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gtf\/0.0.0","fileExtension":"gtf"},{"name":"rifles","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/rifles\/0.0.0","fileExtension":"rifles"},{"name":"CBS","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/cbs\/0.0.0","fileExtension":"cbs"},{"name":"unknown","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/unknown\/0.0.0"},{"name":"reversedtxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/reversedtxt\/0.0.0","fileExtension":"reversedtxt"},{"name":"res","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/res\/0.0.0","fileExtension":"res"},{"name":"cn","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/cn\/0.0.0","fileExtension":"cn"},{"name":"gmt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gmt\/0.0.0","fileExtension":"gmt"},{"name":"bed","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/bed\/0.0.0","fileExtension":"bed"},{"name":"gxp","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/gxp\/0.0.0","fileExtension":"gxp"},{"name":"uppercasetxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/uppercasetxt\/0.0.0","fileExtension":"uppertxt"},{"name":"lowercasetxt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/lowercasetxt\/0.0.0","fileExtension":"lowertxt"},{"name":"genomicatab","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/genomicatab\/0.0.0","fileExtension":"tab"},{"name":"nowhitespace","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/nowhitespace\/0.0.0","fileExtension":"nowhitespace"},{"name":"xcn","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/xcn\/0.0.0","fileExtension":"xcn"},{"name":"txt","version":"0.0.0","url":"http:\/\/www.genomespace.org\/datamanager\/dataformat\/txt\/0.0.0","fileExtension":"txt"}]
-GENOMESPACE_FORMAT_IDENTIFIER_TO_GALAXY_EXT = {}
-for format in formats:
- GENOMESPACE_FORMAT_IDENTIFIER_TO_GALAXY_EXT[ format[ 'url' ] ] = format['name']
-
-print GENOMESPACE_FORMAT_IDENTIFIER_TO_GALAXY_EXT
-#do manual change to galaxy exts
-'''
-
def chunk_write( source_stream, target_stream, source_method = "read", target_method="write" ):
source_method = getattr( source_stream, source_method )
@@ -101,7 +69,28 @@
ext = DEFAULT_GALAXY_EXT
return ext
-def download_from_genomespace_file_browser( json_parameter_file ):
+def get_genomespace_site_urls():
+ genomespace_sites = {}
+ for line in urllib2.urlopen( GENOMESPACE_SERVER_URL_PROPERTIES ).read().split( '\n' ):
+ line = line.rstrip()
+ if not line or line.startswith( "#" ):
+ continue
+ server, line = line.split( '.', 1 )
+ if server not in genomespace_sites:
+ genomespace_sites[server] = {}
+ line = line.split( "=", 1 )
+ genomespace_sites[server][line[0]] = line[1]
+ return genomespace_sites
+
+def set_genomespace_format_identifiers( url_opener, dm_site ):
+ gs_request = urllib2.Request( "%s/%s/dataformat/list" % ( dm_site, GENOMESPACE_API_VERSION_STRING ) )
+ gs_request.get_method = lambda: 'GET'
+ opened_gs_request = url_opener.open( gs_request )
+ genomespace_formats = simplejson.loads( opened_gs_request.read() )
+ for format in genomespace_formats:
+ GENOMESPACE_FORMAT_IDENTIFIER_TO_GENOMESPACE_EXT[ format['url'] ] = format['name']
+
+def download_from_genomespace_file_browser( json_parameter_file, genomespace_site ):
json_params = simplejson.loads( open( json_parameter_file, 'r' ).read() )
datasource_params = json_params.get( 'param_dict' )
username = datasource_params.get( "gs-username", None )
@@ -111,6 +100,10 @@
dataset_id = json_params['output_data'][0]['dataset_id']
hda_id = json_params['output_data'][0]['hda_id']
url_opener = get_cookie_opener( username, token )
+ #load and set genomespace format ids to galaxy exts
+ genomespace_site_dict = get_genomespace_site_urls()[ genomespace_site ]
+ set_genomespace_format_identifiers( url_opener, genomespace_site_dict['dmServer'] )
+
file_url_prefix = "fileUrl"
file_type_prefix = "fileFormat"
metadata_parameter_file = open( json_params['job_config']['TOOL_PROVIDED_JOB_METADATA_FILE'], 'wb' )
@@ -149,6 +142,7 @@
#Parse Command Line
parser = optparse.OptionParser()
parser.add_option( '-p', '--json_parameter_file', dest='json_parameter_file', action='store', type="string", default=None, help='json_parameter_file' )
+ parser.add_option( '-s', '--genomespace_site', dest='genomespace_site', action='store', type="string", default=None, help='genomespace_site' )
(options, args) = parser.parse_args()
- download_from_genomespace_file_browser( options.json_parameter_file )
+ download_from_genomespace_file_browser( options.json_parameter_file, options.genomespace_site )
diff -r 43219da282f61f1a3ee2f2578a247f673116ac7b -r 689aa9c246fed392b4eccbf6642d4871a7cf612f tools/data_source/genomespace_file_browser_dev.xml
--- a/tools/data_source/genomespace_file_browser_dev.xml
+++ b/tools/data_source/genomespace_file_browser_dev.xml
@@ -1,7 +1,7 @@
<?xml version="1.0"?><tool name="GenomeSpace import" id="genomespace_file_browser_dev" tool_type="data_source" add_galaxy_url="False" force_history_refresh="True" version="0.0.1">
- <description>from file browser</description>
- <command interpreter="python">genomespace_file_browser.py --json_parameter_file "${output}"</command>
+ <description>from file browser (development)</description>
+ <command interpreter="python">genomespace_file_browser.py --json_parameter_file "${output}" --genomespace_site "dev"</command><inputs action="https://dmdev.genomespace.org:8444/datamanager/defaultdirectory" check_values="False" method="post"><display>go to GenomeSpace Data Manager </display><param name="appCallbackUrl" type="baseurl" value="/tool_runner?tool_id=genomespace_file_browser_dev&runtool_btn=Execute" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: Trackster performance improvements: (a) build tile messages only once during tile creation and (b) move tiles rather than show/hide tiles when scrolling.
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/43219da282f6/
changeset: 43219da282f6
user: jgoecks
date: 2011-11-18 17:52:24
summary: Trackster performance improvements: (a) build tile messages only once during tile creation and (b) move tiles rather than show/hide tiles when scrolling.
affected #: 4 files
diff -r 1b24edc2108eaa2a5e82015d6462a49418cb9f28 -r 43219da282f61f1a3ee2f2578a247f673116ac7b static/june_2007_style/blue/trackster.css
--- a/static/june_2007_style/blue/trackster.css
+++ b/static/june_2007_style/blue/trackster.css
@@ -24,7 +24,7 @@
.track{background:white;}
.track-header{text-align:left;padding:4px 0px;color:#666;}
.track-header .menubutton{margin-left:0px;}
-.track-content{text-align:center;border-top:1px solid #eee;border-bottom:2px solid #eee;background:#eee url('../images/tracks/diag_bg.gif');min-height:16px;}
+.track-content{text-align:center;border-top:1px solid #eee;border-bottom:2px solid #eee;background:#eee url('../images/tracks/diag_bg.gif');min-height:16px;position:relative;}
.track-name{float:left;margin-top:2px;height:16px;}
.label-track .track-content{background:white;}
.track-tile{background:white;}
diff -r 1b24edc2108eaa2a5e82015d6462a49418cb9f28 -r 43219da282f61f1a3ee2f2578a247f673116ac7b static/june_2007_style/trackster.css.tmpl
--- a/static/june_2007_style/trackster.css.tmpl
+++ b/static/june_2007_style/trackster.css.tmpl
@@ -161,6 +161,7 @@
border-bottom: 2px solid #eee;
background: #eee url('../images/tracks/diag_bg.gif');
min-height: 16px;
+ position: relative;
}
.track-name {
diff -r 1b24edc2108eaa2a5e82015d6462a49418cb9f28 -r 43219da282f61f1a3ee2f2578a247f673116ac7b static/scripts/packed/trackster.js
--- a/static/scripts/packed/trackster.js
+++ b/static/scripts/packed/trackster.js
@@ -1,1 +1,1 @@
-var class_module=function(b,a){var c=function(){var f=arguments[0];for(var e=1;e<arguments.length;e++){var d=arguments[e];for(key in d){f[key]=d[key]}}return f};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var m=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(u,t,v,r,i,s){return(Math.max(u,r)-Math.min(u,r))+(Math.max(t,i)-Math.min(t,i))+(Math.max(v,s)-Math.min(v,s))};var g,n,f,k,p,h,q,c,d,b,o,l=false;do{g=Math.random()*16777215;n=g|16711680;f=g|65280;k=g|255;d=m(n,f,k);l=true;for(var j=0;j<a.length;j++){p=a[j];h=p|16711680;q=p|65280;c=p|255;b=m(h,q,c);o=e(n,f,k,h,q,c);if((Math.abs(d-b)<125)||(o<500)){l=false;break}}}while(!l);return"#"+(16777216+g).toString(16).substr(1,6)};var trackster_module=function(f,X){var p=f("class").extend,s=f("slotting"),M=f("painters");var ae=function(af,ag){this.document=af;this.default_font=ag!==undefined?ag:"9px Monaco, Lucida Console, monospace";this.dummy_canvas=this.new_canvas();this.dummy_context=this.dummy_canvas.getContext("2d");this.dummy_context.font=this.default_font;this.char_width_px=this.dummy_context.measureText("A").width;this.patterns={};this.load_pattern("right_strand","/visualization/strand_right.png");this.load_pattern("left_strand","/visualization/strand_left.png");this.load_pattern("right_strand_inv","/visualization/strand_right_inv.png");this.load_pattern("left_strand_inv","/visualization/strand_left_inv.png")};p(ae.prototype,{load_pattern:function(af,aj){var ag=this.patterns,ah=this.dummy_context,ai=new Image();ai.src=image_path+aj;ai.onload=function(){ag[af]=ah.createPattern(ai,"repeat")}},get_pattern:function(af){return this.patterns[af]},new_canvas:function(){var af=this.document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(af)}af.manager=this;return af}});var n={};var l=function(af,ag){n[af.attr("id")]=ag};var m=function(af,ah,aj,ai){aj=".group";var ag={};n[af.attr("id")]=ai;af.bind("drag",{handle:"."+ah,relative:true},function(ar,at){var aq=$(this);var aw=$(this).parent(),an=aw.children(),ap=n[$(this).attr("id")],am,al,au,ak,ao;al=$(this).parents(aj);if(al.length!==0){au=al.position().top;ak=au+al.outerHeight();if(at.offsetY<au){$(this).insertBefore(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable_before(ap,av);return}else{if(at.offsetY>ak){$(this).insertAfter(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable(ap);return}}}al=null;for(ao=0;ao<an.length;ao++){am=$(an.get(ao));au=am.position().top;ak=au+am.outerHeight();if(am.is(aj)&&this!==am.get(0)&&at.offsetY>=au&&at.offsetY<=ak){if(at.offsetY-au<ak-at.offsetY){am.find(".content-div").prepend(this)}else{am.find(".content-div").append(this)}if(ap.container){ap.container.remove_drawable(ap)}n[am.attr("id")].add_drawable(ap);return}}for(ao=0;ao<an.length;ao++){if(at.offsetY<$(an.get(ao)).position().top){break}}if(ao===an.length){if(this!==an.get(ao-1)){aw.append(this);n[aw.attr("id")].move_drawable(ap,ao)}}else{if(this!==an.get(ao)){$(this).insertBefore(an.get(ao));n[aw.attr("id")].move_drawable(ap,(at.deltaY>0?ao-1:ao))}}}).bind("dragstart",function(){ag["border-top"]=af.css("border-top");ag["border-bottom"]=af.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(ag)})};X.moveable=m;var ad=16,H=9,E=20,T=H+2,z=100,J=12000,R=200,C=5,v=10,L=5000,w=100,o="There was an error in indexing this dataset. ",K="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",F="No data for this chrom/contig.",t="Currently indexing... please wait",x="Tool cannot be rerun: ",a="Loading data...",Y="Ready for display",d=10,u=5,B=5;function Z(ag,af){if(!af){af=0}var ah=Math.pow(10,af);return Math.round(ag*ah)/ah}var c=function(af){this.num_elements=af;this.clear()};p(c.prototype,{get:function(ag){var af=this.key_ary.indexOf(ag);if(af!==-1){if(this.obj_cache[ag].stale){this.key_ary.splice(af,1);delete this.obj_cache[ag]}else{this.move_key_to_end(ag,af)}}return this.obj_cache[ag]},set:function(ag,ah){if(!this.obj_cache[ag]){if(this.key_ary.length>=this.num_elements){var af=this.key_ary.shift();delete this.obj_cache[af]}this.key_ary.push(ag)}this.obj_cache[ag]=ah;return ah},move_key_to_end:function(ag,af){this.key_ary.splice(af,1);this.key_ary.push(ag)},clear:function(){this.obj_cache={};this.key_ary=[]},size:function(){return this.key_ary.length}});var S=function(ag,af,ah){c.call(this,ag);this.track=af;this.subset=(ah!==undefined?ah:true)};p(S.prototype,c.prototype,{load_data:function(ao,aj,am,ag,al){var an=this.track.view.chrom,ai={chrom:an,low:ao,high:aj,mode:am,resolution:ag,dataset_id:this.track.dataset_id,hda_ldda:this.track.hda_ldda};$.extend(ai,al);if(this.track.filters_manager){var ap=[];var af=this.track.filters_manager.filters;for(var ak=0;ak<af.length;ak++){ap[ap.length]=af[ak].name}ai.filter_cols=JSON.stringify(ap)}var ah=this;return $.getJSON(this.track.data_url,ai,function(aq){ah.set_data(ao,aj,am,aq)})},get_data:function(af,aj,ak,ag,ai){var ah=this.get_data_from_cache(af,aj,ak);if(ah){return ah}ah=this.load_data(af,aj,ak,ag,ai);this.set_data(af,aj,ak,ah);return ah},DEEP_DATA_REQ:"deep",BROAD_DATA_REQ:"breadth",get_more_data:function(an,ai,am,ah,al,aj){var ao=this.get_data_from_cache(an,ai,am);if(!ao){console.log("ERROR: no current data for: ",this.track,an,ai,am,ah,al);return}ao.stale=true;var ag=an;if(aj===this.DEEP_DATA_REQ){$.extend(al,{start_val:ao.data.length+1})}else{if(aj===this.BROAD_DATA_REQ){ag=(ao.max_high?ao.max_high:ao.data[ao.data.length-1][2])+1}}var af=this,ak=this.load_data(ag,ai,am,ah,al);new_data_available=$.Deferred();this.set_data(an,ai,am,new_data_available);$.when(ak).then(function(ap){if(ap.data){ap.data=ao.data.concat(ap.data);if(ap.max_low){ap.max_low=ao.max_low}if(ap.message){ap.message=ap.message.replace(/[0-9]+/,ap.data.length)}}af.set_data(an,ai,am,ap);new_data_available.resolve(ap)});return new_data_available},get_data_from_cache:function(af,ag,ah){return this.get(this.gen_key(af,ag,ah))},set_data:function(ag,ah,ai,af){return this.set(this.gen_key(ag,ah,ai),af)},gen_key:function(af,ah,ai){var ag=af+"_"+ah+"_"+ai;return ag},split_key:function(af){return af.split("_")}});var I=function(ag,af,ah){S.call(this,ag,af,ah)};p(I.prototype,S.prototype,c.prototype,{load_data:function(af,ai,aj,ag,ah){if(ag>1){return{data:null}}return S.prototype.load_data.call(this,af,ai,aj,ag,ah)}});var q=function(ai,ag,af,ah,ak){if(!q.id_counter){q.id_counter=0}this.id=q.id_counter++;this.name=ai;this.view=ag;this.container=af;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ai}],saved_values:ah,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=ak;this.is_overview=false;this.content_visible=true;this.container_div=this.build_container_div();this.header_div=this.build_header_div();if(this.header_div){this.container_div.append(this.header_div);this.icons_div=this.build_icons_div().hide();this.header_div.append(this.icons_div);this.header_div.dblclick(function(al){al.stopPropagation()});var aj=this;this.container_div.hover(function(){aj.icons_div.show()},function(){aj.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};p(q.prototype,{init:function(){},request_draw:function(){},_draw:function(){},to_json:function(){},update_icons:function(){},set_name:function(af){this.old_name=this.name;this.name=af;this.name_div.text(this.name)},revert_name:function(){this.name=this.old_name;this.name_div.text(this.name)},remove:function(){this.container.remove_drawable(this);this.container_div.hide(0,function(){$(this).remove();view.update_intro_div();view.has_changes=true})},build_container_div:function(){},build_header_div:function(){},build_icons_div:function(){},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var y=function(aj,ai,ag,af,ah,ak){q.call(this,ai,ag,af,ah,ak);this.obj_type=aj;this.drawables=[]};p(y.prototype,q.prototype,{init:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af].init()}},_draw:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af]._draw()}},to_json:function(){var ag=[];for(var af=0;af<this.drawables.length;af++){ag.push(this.drawables[af].to_json())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:ag}},add_drawable:function(af){this.drawables.push(af);af.container=this},add_drawable_before:function(ah,af){var ag=this.drawables.indexOf(af);if(ag!=-1){this.drawables.splice(ag,0,ah);return true}return false},remove_drawable:function(ag){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);ag.container=null;return true}return false},move_drawable:function(ag,ah){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);this.drawables.splice(ah,0,ag);return true}return false}});var Q=function(ai,ag,af,ah){y.call(this,"DrawableGroup",ai,ag,af,ah,"group-handle");this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);l(this.container_div,this);l(this.content_div,this);m(this.container_div,this.drag_handle_class,".group",this)};p(Q.prototype,q.prototype,y.prototype,{build_container_div:function(){return $("<div/>").addClass("group").attr("id","group_"+this.id).appendTo(this.container.content_div)},build_header_div:function(){var af=$("<div/>").addClass("track-header");af.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(af);return af},build_icons_div:function(){var af=$("<div/>").css("float","left");this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show group content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(af);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(af);this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(af);var ag=this;this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var aj=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},ah=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ai=function(ak){if((ak.keyCode||ak.which)===27){aj()}else{if((ak.keyCode||ak.which)===13){ah()}}};$(window).bind("keypress.check_enter_esc",ai);show_modal("Configure Group",ag.config.build_form(),{Cancel:aj,OK:ah})});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return af},hide_contents:function(){this.content_div.hide()},show_contents:function(){this.content_div.show();this.request_draw()}});var ac=function(af,ai,ah,ag){y.call(this,"View");this.container=af;this.chrom=null;this.vis_id=ah;this.dbkey=ag;this.title=ai;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new ae(af.get(0).ownerDocument);this.reset()};p(ac.prototype,y.prototype,{init:function(){var ah=this.container,af=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ah);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ah);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ah);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;l(this.viewport_container,af);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ai=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_tracks()});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var ag=function(aj){if(aj.type==="focusout"||(aj.keyCode||aj.which)===13||(aj.keyCode||aj.which)===27){if((aj.keyCode||aj.which)!==27){af.go_to($(this).val())}$(this).hide();$(this).val("");af.location_span.show();af.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",ag).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tipsy({gravity:"n"}).appendTo(this.nav_controls);this.location_span.click(function(){af.location_span.hide();af.chrom_select.hide();af.nav_input.val(af.chrom+":"+af.low+"-"+af.high);af.nav_input.css("display","inline-block");af.nav_input.select();af.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tipsy({gravity:"n"}).click(function(){af.zoom_out();af.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){af.zoom_in();af.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){af.change_chrom(af.chrom_select.val())});this.browser_content_div.click(function(aj){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(aj){af.zoom_in(aj.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(aj,ak){this.current_x=ak.offsetX}).bind("drag",function(aj,al){var am=al.offsetX-this.current_x;this.current_x=al.offsetX;var ak=Math.round(am/af.viewport_container.width()*(af.max_high-af.max_low));af.move_delta(-ak)});this.overview_close.click(function(){af.reset_overview()});this.viewport_container.bind("draginit",function(aj,ak){if(aj.clientX>af.viewport_container.width()-16){return false}}).bind("dragstart",function(aj,ak){ak.original_low=af.low;ak.current_height=aj.clientY;ak.current_x=ak.offsetX}).bind("drag",function(al,an){var aj=$(this);var ao=an.offsetX-an.current_x;var ak=aj.scrollTop()-(al.clientY-an.current_height);aj.scrollTop(ak);an.current_height=al.clientY;an.current_x=an.offsetX;var am=Math.round(ao/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}).bind("mousewheel",function(al,an,ak,aj){if(ak){ak*=50;var am=Math.round(-ak/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}});this.top_labeltrack.bind("dragstart",function(aj,ak){return $("<div />").css({height:af.browser_content_div.height()+af.top_labeltrack.height()+af.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(an,ao){$(ao.proxy).css({left:Math.min(an.pageX,ao.startX),width:Math.abs(an.pageX-ao.startX)});var ak=Math.min(an.pageX,ao.startX)-af.container.offset().left,aj=Math.max(an.pageX,ao.startX)-af.container.offset().left,am=(af.high-af.low),al=af.viewport_container.width();af.update_location(Math.round(ak/al*am)+af.low,Math.round(aj/al*am)+af.low)}).bind("dragend",function(ao,ap){var ak=Math.min(ao.pageX,ap.startX),aj=Math.max(ao.pageX,ap.startX),am=(af.high-af.low),al=af.viewport_container.width(),an=af.low;af.low=Math.round(ak/al*am)+an;af.high=Math.round(aj/al*am)+an;$(ap.proxy).remove();af.request_redraw()});this.add_label_track(new ab(this,{content_div:this.top_labeltrack}));this.add_label_track(new ab(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){af.resize_window()});$(document).bind("redraw",function(){af.redraw()});this.reset();$(window).trigger("resize")},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.show()}else{this.intro_div.hide()}},update_location:function(af,ag){this.location_span.text(commatize(af)+" - "+commatize(ag));this.nav_input.val(this.chrom+":"+commatize(af)+"-"+commatize(ag))},load_chroms:function(ah){ah.num=w;$.extend(ah,(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey}));var af=this,ag=$.Deferred();$.ajax({url:chrom_url,data:ah,dataType:"json",success:function(aj){if(aj.chrom_info.length===0){alert("Invalid chromosome: "+ah.chrom);return}if(aj.reference){af.add_label_track(new A(af))}af.chrom_data=aj.chrom_info;var am='<option value="">Select Chrom/Contig</option>';for(var al=0,ai=af.chrom_data.length;al<ai;al++){var ak=af.chrom_data[al].chrom;am+='<option value="'+ak+'">'+ak+"</option>"}if(aj.prev_chroms){am+='<option value="previous">Previous '+w+"</option>"}if(aj.next_chroms){am+='<option value="next">Next '+w+"</option>"}af.chrom_select.html(am);af.chrom_start_index=aj.start_index;ag.resolve(aj)},error:function(){alert("Could not load chroms for this dbkey:",af.dbkey)}});return ag},change_chrom:function(ak,ag,am){if(!ak||ak==="None"){return}var ah=this;if(ak==="previous"){ah.load_chroms({low:this.chrom_start_index-w});return}if(ak==="next"){ah.load_chroms({low:this.chrom_start_index+w});return}var al=$.grep(ah.chrom_data,function(an,ao){return an.chrom===ak})[0];if(al===undefined){ah.load_chroms({chrom:ak},function(){ah.change_chrom(ak,ag,am)});return}else{if(ak!==ah.chrom){ah.chrom=ak;ah.chrom_select.val(ah.chrom);ah.max_high=al.len-1;ah.reset();ah.request_redraw(true);for(var aj=0,af=ah.drawables.length;aj<af;aj++){var ai=ah.drawables[aj];if(ai.init){ai.init()}}}if(ag!==undefined&&am!==undefined){ah.low=Math.max(ag,0);ah.high=Math.min(am,ah.max_high)}ah.reset_overview();ah.request_redraw()}},go_to:function(aj){aj=aj.replace(/ |,/g,"");var an=this,af,ai,ag=aj.split(":"),al=ag[0],am=ag[1];if(am!==undefined){try{var ak=am.split("-");af=parseInt(ak[0],10);ai=parseInt(ak[1],10)}catch(ah){return false}}an.change_chrom(al,af,ai)},move_fraction:function(ah){var af=this;var ag=af.high-af.low;this.move_delta(ah*ag)},move_delta:function(ah){var af=this;var ag=af.high-af.low;if(af.low-ah<af.max_low){af.low=af.max_low;af.high=af.max_low+ag}else{if(af.high-ah>af.max_high){af.high=af.max_high;af.low=af.max_high-ag}else{af.high-=ah;af.low-=ah}}af.request_redraw()},add_drawable:function(af){y.prototype.add_drawable.call(this,af);af.init();this.has_changes=true;this.update_intro_div()},add_label_track:function(af){af.view=this;af.init();this.label_tracks.push(af)},remove_drawable:function(ah,ag){y.prototype.remove_drawable.call(this,ah);if(ag){var af=this;ah.container_div.hide(0,function(){$(this).remove();af.update_intro_div()});this.has_changes=true}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(an,af,am,ag){var al=this,aj=(ag?[ag]:al.drawables),ah;var ag;for(var ak=0;ak<aj.length;ak++){ag=aj[ak];ah=-1;for(var ai=0;ai<al.tracks_to_be_redrawn.length;ai++){if(al.tracks_to_be_redrawn[ai][0]===ag){ah=ai;break}}if(ah<0){al.tracks_to_be_redrawn.push([ag,af,am])}else{al.tracks_to_be_redrawn[ak][1]=af;al.tracks_to_be_redrawn[ak][2]=am}}requestAnimationFrame(function(){al._redraw(an)})},_redraw:function(ap){var am=this.low,ai=this.high;if(am<this.max_low){am=this.max_low}if(ai>this.max_high){ai=this.max_high}var ao=this.high-this.low;if(this.high!==0&&ao<this.min_separation){ai=am+this.min_separation}this.low=Math.floor(am);this.high=Math.ceil(ai);this.resolution=Math.pow(C,Math.ceil(Math.log((this.high-this.low)/R)/Math.log(C)));this.zoom_res=Math.pow(v,Math.max(0,Math.ceil(Math.log(this.resolution,v)/Math.log(v))));var af=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var al=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var aq=13;this.overview_box.css({left:af,width:Math.max(aq,al)}).show();if(al<aq){this.overview_box.css("left",af-(aq-al)/2)}if(this.overview_highlight){this.overview_highlight.css({left:af,width:al})}this.update_location(this.low,this.high);if(!ap){var ah,ag,an;for(var aj=0,ak=this.tracks_to_be_redrawn.length;aj<ak;aj++){ah=this.tracks_to_be_redrawn[aj][0];ag=this.tracks_to_be_redrawn[aj][1];an=this.tracks_to_be_redrawn[aj][2];if(ah){ah._draw(ag,an)}}this.tracks_to_be_redrawn=[];for(aj=0,ak=this.label_tracks.length;aj<ak;aj++){this.label_tracks[aj]._draw()}}},zoom_in:function(ag,ah){if(this.max_high===0||this.high-this.low<this.min_separation){return}var ai=this.high-this.low,aj=ai/2+this.low,af=(ai/this.zoom_factor)/2;if(ag){aj=ag/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(aj-af);this.high=Math.round(aj+af);this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var ag=this.high-this.low,ah=ag/2+this.low,af=(ag*this.zoom_factor)/2;this.low=Math.round(ah-af);this.high=Math.round(ah+af);this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.nav_container.width(this.container.width());this.request_redraw()},set_overview:function(ah){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ah.dataset_id){return}this.overview_viewport.find(".track").remove()}var ag=ah.copy({content_div:this.overview_viewport}),af=this;ag.header_div.hide();ag.is_overview=true;af.overview_drawable=ag;this.overview_drawable.postdraw_actions=function(){af.overview_highlight.show().height(af.overview_drawable.content_div.height());af.overview_viewport.height(af.overview_drawable.content_div.height()+af.overview_box.outerHeight());af.overview_close.show();af.resize_window()};this.overview_drawable.init();af.has_changes=true},reset_overview:function(){$(".tipsy").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var r=function(ah,al){this.track=ah;this.name=al.name;this.params=[];var at=al.params;for(var ai=0;ai<at.length;ai++){var an=at[ai],ag=an.name,ar=an.label,aj=unescape(an.html),au=an.value,ap=an.type;if(ap==="number"){this.params[this.params.length]=new g(ag,ar,aj,au,an.min,an.max)}else{if(ap=="select"){this.params[this.params.length]=new O(ag,ar,aj,au)}else{console.log("WARNING: unrecognized tool parameter type:",ag,ap)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(aw){aw.stopPropagation()}).click(function(aw){aw.stopPropagation()}).bind("dblclick",function(aw){aw.stopPropagation()});var aq=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var ao=this.params;var am=this;$.each(this.params,function(ax,aA){var az=$("<div>").addClass("param-row").appendTo(am.parent_div);var aw=$("<div>").addClass("param-label").text(aA.label).appendTo(az);var ay=$("<div/>").addClass("slider").html(aA.html).appendTo(az);ay.find(":input").val(aA.value);$("<div style='clear: both;'/>").appendTo(az)});this.parent_div.find("input").click(function(){$(this).select()});var av=$("<div>").addClass("param-row").appendTo(this.parent_div);var ak=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(av);var af=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(av);var am=this;af.click(function(){am.run_on_region()});ak.click(function(){am.run_on_dataset()})};p(r.prototype,{get_param_values_dict:function(){var af={};this.parent_div.find(":input").each(function(){var ag=$(this).attr("name"),ah=$(this).val();af[ag]=JSON.stringify(ah)});return af},get_param_values:function(){var ag=[];var af={};this.parent_div.find(":input").each(function(){var ah=$(this).attr("name"),ai=$(this).val();if(ah){ag[ag.length]=ai}});return ag},run_on_dataset:function(){var af=this;af.run({dataset_id:this.track.original_dataset_id,tool_id:af.name},null,function(ag){show_modal(af.name+" is Running",af.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var ag={dataset_id:this.track.original_dataset_id,chrom:this.track.view.chrom,low:this.track.view.low,high:this.track.view.high,tool_id:this.name},aj=this.track,ah=ag.tool_id+aj.tool_region_and_parameters_str(ag.chrom,ag.low,ag.high),af;if(aj.container===view){var ai=new Q(this.name,this.track.view,this.track.container);aj.container.add_drawable(ai);aj.container.remove_drawable(aj);ai.add_drawable(aj);aj.container_div.appendTo(ai.content_div);af=ai}else{af=aj.container}var ak=new aj.constructor(ah,view,af,"hda");ak.init_for_tool_data();ak.change_mode(aj.mode);af.add_drawable(ak);ak.content_div.text("Starting job.");this.run(ag,ak,function(al){ak.dataset_id=al.dataset_id;ak.content_div.text("Running job.");ak.init()})},run:function(ag,ah,ai){$.extend(ag,this.get_param_values_dict());var af=function(){$.getJSON(rerun_tool_url,ag,function(aj){if(aj==="no converter"){ah.container_div.addClass("error");ah.content_div.text(K)}else{if(aj.error){ah.container_div.addClass("error");ah.content_div.text(x+aj.message)}else{if(aj==="pending"){ah.container_div.addClass("pending");ah.content_div.text("Converting input data so that it can be used quickly with tool.");setTimeout(af,2000)}else{ai(aj)}}}})};af()}});var O=function(ag,af,ah,ai){this.name=ag;this.label=af;this.html=ah;this.value=ai};var g=function(ah,ag,aj,ak,ai,af){O.call(this,ah,ag,aj,ak);this.min=ai;this.max=af};var h=function(ag,af,ah,ai){this.name=ag;this.index=af;this.tool_id=ah;this.tool_exp_name=ai};var V=function(ag,af,ah,ai){h.call(this,ag,af,ah,ai);this.low=-Number.MAX_VALUE;this.high=Number.MAX_VALUE;this.min=Number.MAX_VALUE;this.max=-Number.MAX_VALUE;this.container=null;this.slider=null;this.slider_label=null};p(V.prototype,{applies_to:function(af){if(af.length>this.index){return true}return false},keep:function(af){if(!this.applies_to(af)){return true}var ag=af[this.index];return(isNaN(ag)||(ag>=this.low&&ag<=this.high))},update_attrs:function(ag){var af=false;if(!this.applies_to(ag)){return af}if(ag[this.index]<this.min){this.min=Math.floor(ag[this.index]);af=true}if(ag[this.index]>this.max){this.max=Math.ceil(ag[this.index]);af=true}return af},update_ui_elt:function(){if(this.min!=this.max){this.container.show()}else{this.container.hide()}var ah=function(ak,ai){var aj=ai-ak;return(aj<=2?0.01:1)};var ag=this.slider.slider("option","min"),af=this.slider.slider("option","max");if(this.min<ag||this.max>af){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",ah(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var aa=function(aq,ay){this.track=aq;this.filters=[];for(var at=0;at<ay.length;at++){var au=ay[at],az=au.name,af=au.type,ah=au.index,ax=au.tool_id,aw=au.tool_exp_name;if(af==="int"||af==="float"){this.filters[at]=new V(az,ah,ax,aw)}else{console.log("ERROR: unsupported filter: ",az,af)}}var ai=function(aA,aB,aC){aA.click(function(){var aD=aB.text();max=parseFloat(aC.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(aC.slider("option","values")){input_size=2*input_size+1;multi_value=true}aB.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",aD).appendTo(aB).focus().select().click(function(aE){aE.stopPropagation()}).blur(function(){$(this).remove();aB.text(aD)}).keyup(function(aI){if(aI.keyCode===27){$(this).trigger("blur")}else{if(aI.keyCode===13){var aG=aC.slider("option","min"),aE=aC.slider("option","max"),aH=function(aJ){return(isNaN(aJ)||aJ>aE||aJ<aG)},aF=$(this).val();if(!multi_value){aF=parseFloat(aF);if(aH(aF)){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}else{aF=aF.split("-");aF=[parseFloat(aF[0]),parseFloat(aF[1])];if(aH(aF[0])||aH(aF[1])){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}aC.slider((multi_value?"values":"value"),aF)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(aA){aA.stopPropagation()}).click(function(aA){aA.stopPropagation()}).bind("dblclick",function(aA){aA.stopPropagation()}).bind("keydown",function(aA){aA.stopPropagation()});var av=$("<div/>").addClass("sliders").appendTo(this.parent_div);var an=this;$.each(this.filters,function(aD,aF){aF.container=$("<div/>").addClass("filter-row slider-row").appendTo(av);var aE=$("<div/>").addClass("elt-label").appendTo(aF.container);var aC=$("<span/>").addClass("slider-name").text(aF.name+" ").appendTo(aE);var aB=$("<span/>");var aH=$("<span/>").addClass("slider-value").appendTo(aE).append("[").append(aB).append("]");var aA=$("<div/>").addClass("slider").appendTo(aF.container);aF.control_element=$("<div/>").attr("id",aF.name+"-filter-control").appendTo(aA);var aG=[0,0];aF.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aJ,aK){var aI=aK.values;aB.text(aI[0]+"-"+aI[1]);aF.low=aI[0];aF.high=aI[1];an.track.request_draw(true,true)},change:function(aI,aJ){aF.control_element.slider("option","slide").call(aF.control_element,aI,aJ)}});aF.slider=aF.control_element;aF.slider_label=aB;ai(aH,aB,aF.control_element);$("<div style='clear: both;'/>").appendTo(aF.container)});if(this.filters.length!==0){var ak=$("<div/>").addClass("param-row").appendTo(av);var am=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ak);var ag=this;am.click(function(){ag.run_on_dataset()})}var ap=$("<div/>").addClass("display-controls").appendTo(this.parent_div),ar,al,ao,aj={Transparency:function(aA){an.alpha_filter=aA},Height:function(aA){an.height_filter=aA}};$.each(aj,function(aC,aB){ar=$("<div/>").addClass("filter-row").appendTo(ap),al=$("<span/>").addClass("elt-label").text(aC+":").appendTo(ar),ao=$("<select/>").attr("name",aC+"_dropdown").css("float","right").appendTo(ar);$("<option/>").attr("value",-1).text("== None ==").appendTo(ao);for(var aA=0;aA<an.filters.length;aA++){$("<option/>").attr("value",aA).text(an.filters[aA].name).appendTo(ao)}ao.change(function(){$(this).children("option:selected").each(function(){var aD=parseInt($(this).val());aj[aC]((aD>=0?an.filters[aD]:null));an.track.request_draw(true,true)})});$("<div style='clear: both;'/>").appendTo(ar)});$("<div style='clear: both;'/>").appendTo(this.parent_div)};p(aa.prototype,{reset_filters:function(){for(var af=0;af<this.filters.length;af++){filter=this.filters[af];filter.slider.slider("option","values",[filter.min,filter.max])}this.alpha_filter=null;this.height_filter=null},run_on_dataset:function(){var an=function(ar,ap,aq){if(!(ap in ar)){ar[ap]=aq}return ar[ap]};var ah={},af,ag,ai;for(var aj=0;aj<this.filters.length;aj++){af=this.filters[aj];if(af.tool_id){if(af.min!=af.low){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" >= "+af.low}if(af.max!=af.high){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" <= "+af.high}}}var al=[];for(var ao in ah){al[al.length]=[ao,ah[ao]]}var am=al.length;(function ak(aw,at){var aq=at[0],ar=aq[0],av=aq[1],au="("+av.join(") and (")+")",ap={cond:au,input:aw,target_dataset_id:aw,tool_id:ar},at=at.slice(1);$.getJSON(run_tool_url,ap,function(ax){if(ax.error){show_modal("Filter Dataset","Error running tool "+ar,{Close:hide_modal})}else{if(at.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{ak(ax.dataset_id,at)}}})})(this.track.dataset_id,al)}});var D=function(af,ag){M.Scaler.call(this,ag);this.filter=af};D.prototype.gen_val=function(af){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(af[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var G=function(af){this.track=af.track;this.params=af.params;this.values={};this.restore_values((af.saved_values?af.saved_values:{}));this.onchange=af.onchange};p(G.prototype,{restore_values:function(af){var ag=this;$.each(this.params,function(ah,ai){if(af[ai.key]!==undefined){ag.values[ai.key]=af[ai.key]}else{ag.values[ai.key]=ai.default_value}})},build_form:function(){var ai=this;var af=$("<div />");var ah;function ag(am,aj){for(var ao=0;ao<am.length;ao++){ah=am[ao];if(ah.hidden){continue}var ak="param_"+ao;var at=ai.values[ah.key];var av=$("<div class='form-row' />").appendTo(aj);av.append($("<label />").attr("for",ak).text(ah.label+":"));if(ah.type==="bool"){av.append($('<input type="checkbox" />').attr("id",ak).attr("name",ak).attr("checked",at))}else{if(ah.type==="text"){av.append($('<input type="text"/>').attr("id",ak).val(at).click(function(){$(this).select()}))}else{if(ah.type=="select"){var aq=$("<select />").attr("id",ak);for(var an=0;an<ah.options.length;an++){$("<option/>").text(ah.options[an].label).attr("value",ah.options[an].value).appendTo(aq)}aq.val(at);av.append(aq)}else{if(ah.type==="color"){var ap=$("<input />").attr("id",ak).attr("name",ak).val(at);var ar=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();var al=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(ar);var au=$("<div/>").appendTo(al).farbtastic({width:100,height:100,callback:ap,color:at});$("<div />").append(ap).append(ar).appendTo(av).bind("click",function(aw){ar.css({left:$(this).position().left+$(ap).width()+5,top:$(this).position().top-($(ar).height()/2)+($(ap).height()/2)}).show();$(document).bind("click.color-picker",function(){ar.hide();$(document).unbind("click.color-picker")});aw.stopPropagation()})}else{av.append($("<input />").attr("id",ak).attr("name",ak).val(at))}}}}if(ah.help){av.append($("<div class='help'/>").text(ah.help))}}}ag(this.params,af);return af},update_from_form:function(af){var ah=this;var ag=false;$.each(this.params,function(ai,ak){if(!ak.hidden){var al="param_"+ai;var aj=af.find("#"+al).val();if(ak.type==="float"){aj=parseFloat(aj)}else{if(ak.type==="int"){aj=parseInt(aj)}else{if(ak.type==="bool"){aj=af.find("#"+al).is(":checked")}}}if(aj!==ah.values[ak.key]){ah.values[ak.key]=aj;ag=true}}});if(ag){this.onchange()}}});var b=function(af,ai,ah,ag,aj){this.track=af;this.index=ai;this.low=ai*R*ah;this.high=(ai+1)*R*ah;this.resolution=ah;this.canvas=$("<div class='track-tile'/>").append(ag);this.data=aj;this.stale=false};b.prototype.predisplay_actions=function(){};var k=function(af,ai,ah,ag,aj,ak){b.call(this,af,ai,ah,ag,aj);this.max_val=ak};p(k.prototype,b.prototype);var P=function(af,aj,ai,ah,al,am,ak,ag){b.call(this,af,aj,ai,ah,al);this.mode=am;this.message=ak;this.feature_mapper=ag};p(P.prototype,b.prototype);P.prototype.predisplay_actions=function(){var ag=this,af={};if(ag.mode!=="Pack"){return}$(this.canvas).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).siblings(".feature-popup").remove()}).mousemove(function(ar){if(!this.hovered){return}var am=$(this).offset(),aq=ar.pageX-am.left,ap=ar.pageY-am.top,aw=ag.feature_mapper.get_feature_data(aq,ap),an=(aw?aw[0]:null);$(this).siblings(".feature-popup").each(function(){if(!an||$(this).attr("id")!==an.toString()){$(this).remove()}});if(aw){var ai=af[an];if(!ai){var an=aw[0],at={name:aw[3],start:aw[1],end:aw[2],strand:aw[4]},al=ag.track.filters_manager.filters,ak;for(var ao=0;ao<al.length;ao++){ak=al[ao];at[ak.name]=aw[ak.index]}var ai=$("<div/>").attr("id",an).addClass("feature-popup"),ax=$("<table/>"),av,au,ay;for(av in at){au=at[av];ay=$("<tr/>").appendTo(ax);$("<th/>").appendTo(ay).text(av);$("<td/>").attr("align","left").appendTo(ay).text(typeof(au)=="number"?Z(au,2):au)}ai.append($("<div class='feature-popup-inner'>").append(ax));af[an]=ai}ai.appendTo($(ag.canvas).parent());var aj=aq+parseInt(ag.canvas.css("left"))-ai.width()/2,ah=ap+parseInt(ag.canvas.css("top"))+7;ai.css("left",aj+"px").css("top",ah+"px")}else{if(!ar.isPropagationStopped()){ar.stopPropagation();$(this).siblings().each(function(){$(this).trigger(ar)})}}}).mouseleave(function(){$(this).siblings(".feature-popup").remove()})};var i=function(ai,ag,af,ah,aj,ak){q.call(this,ai,ag,af,{},"draghandle");this.data_url=(aj?aj:default_data_url);this.data_url_extra_params={};this.data_query_wait=(ak?ak:L);this.dataset_check_url=converted_datasets_state_url;if(!i.id_counter){i.id_counter=0}this.id=i.id_counter++;this.content_div=$("<div class='track-content'>").appendTo(this.container_div);this.container.content_div.append(this.container_div)};p(i.prototype,q.prototype,{build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var af=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(af)}this.name_div=$("<div/>").addClass("track-name").appendTo(af).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return af},build_icons_div:function(){var aj=$("<div/>").css("float","left");this.mode_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set display mode").addClass("icon-button chevron-expand").tipsy({gravity:"s"}).appendTo(aj);this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show track content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(aj);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(aj);this.overview_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set as overview").addClass("icon-button overview-icon").tipsy({gravity:"s"}).appendTo(aj);this.filters_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Filters").addClass("icon-button filters-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.tools_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Tools").addClass("icon-button tools-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(aj);var ag=this;if(ag.display_modes!==undefined){var al=(ag.config&&ag.config.values.mode?ag.config.values.mode:ag.display_modes[0]);ag.mode=al;this.mode_icon.attr("title","Set display mode (now: "+ag.mode+")");var ai={};for(var ah=0,af=ag.display_modes.length;ah<af;ah++){var ak=ag.display_modes[ah];ai[ak]=function(am){return function(){ag.change_mode(am);ag.icons_div.show();ag.container_div.mouseleave(function(){ag.icons_div.hide()})}}(ak)}make_popupmenu(this.mode_icon,ai)}this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var ao=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},am=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},an=function(ap){if((ap.keyCode||ap.which)===27){ao()}else{if((ap.keyCode||ap.which)===13){am()}}};$(window).bind("keypress.check_enter_esc",an);show_modal("Configure Track",ag.config.build_form(),{Cancel:ao,OK:am})});this.overview_icon.click(function(){ag.view.set_overview(ag)});this.filters_icon.click(function(){ag.filters_div.toggle();ag.filters_manager.reset_filters()});this.tools_icon.click(function(){ag.dynamic_tool_div.toggle();if(ag.dynamic_tool_div.is(":visible")){ag.set_name(ag.name+ag.tool_region_and_parameters_str())}else{ag.revert_name()}$(".tipsy").remove()});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return aj},hide_contents:function(){this.content_div.children().remove();this.content_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.content_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},get_type:function(){if(this instanceof ab){return"LabelTrack"}else{if(this instanceof A){return"ReferenceTrack"}else{if(this instanceof j){return"LineTrack"}else{if(this instanceof W){return"ReadTrack"}else{if(this instanceof U){return"VcfTrack"}else{if(this instanceof e){return"FeatureTrack"}}}}}}return""},init:function(){var af=this;af.enabled=false;af.tile_cache.clear();af.data_manager.clear();af.initial_canvas=undefined;af.content_div.css("height","auto");af.container_div.removeClass("nodata error pending");if(!af.dataset_id){return}$.getJSON(converted_datasets_state_url,{hda_ldda:af.hda_ldda,dataset_id:af.dataset_id,chrom:af.view.chrom},function(ag){if(!ag||ag==="error"||ag.kind==="error"){af.container_div.addClass("error");af.content_div.text(o);if(ag.message){var ah=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+ag.message+"</pre>",{Close:hide_modal})});af.content_div.append(ah)}}else{if(ag==="no converter"){af.container_div.addClass("error");af.content_div.text(K)}else{if(ag==="no data"||(ag.data!==undefined&&(ag.data===null||ag.data.length===0))){af.container_div.addClass("nodata");af.content_div.text(F)}else{if(ag==="pending"){af.container_div.addClass("pending");af.content_div.text(t);setTimeout(function(){af.init()},af.data_query_wait)}else{if(ag.status==="data"){if(ag.valid_chroms){af.valid_chroms=ag.valid_chroms;af.update_icons()}af.content_div.text(Y);if(af.view.chrom){af.content_div.text("");af.content_div.css("height",af.height_px+"px");af.enabled=true;$.when(af.predraw_init()).done(function(){af.container_div.removeClass("nodata error pending");af.request_draw()})}}}}}}});this.update_icons()},predraw_init:function(){}});var N=function(aj,ah,ag,ai,al,ak){i.call(this,aj,ah,ag,ai);var af=this,ah=af.view;m(af.container_div,af.drag_handle_class,".group",af);this.filters_manager=new aa(this,(al!==undefined?al:{}));this.filters_available=false;this.filters_visible=false;this.tool=(ak!==undefined&&obj_length(ak)>0?new r(this,ak):undefined);if(this.header_div){if(this.filters_manager){this.filters_div=this.filters_manager.parent_div;this.header_div.after(this.filters_div)}if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}};p(N.prototype,q.prototype,i.prototype,{copy:function(af){return new this.constructor(this.name,this.view,af,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool)},to_json:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,}},change_mode:function(ag){var af=this;af.mode=ag;af.config.values.mode=ag;af.tile_cache.clear();af.request_draw();this.mode_icon.attr("title","Set display mode (now: "+af.mode+")");return af},update_icons:function(){var af=this;if(af.filters_available>0){af.filters_icon.show()}else{af.filters_icon.hide()}if(af.tool){af.tools_icon.show()}else{af.tools_icon.hide()}},_gen_tile_cache_key:function(ag,ah,af){return ag+"_"+ah+"_"+af},request_draw:function(ag,af){this.view.request_redraw(false,ag,af,this)},_draw:function(ah,ap){if(!this.enabled){return}if(!this.content_visible){return}if(!(this instanceof A)&&(!this.dataset_id)){return}var ao=this.view.low,al=this.view.high,am=al-ao,ai=this.view.container.width(),at=ai/am,ak=this.view.resolution,ar=$("<div style='position: relative;'></div>");if(this.is_overview){ao=this.view.max_low;al=this.view.max_high;ak=Math.pow(C,Math.ceil(Math.log((view.max_high-view.max_low)/R)/Math.log(C)));at=ai/(view.max_high-view.max_low)}if(!ap){this.content_div.children().remove()}this.content_div.append(ar);this.max_height=0;var ag=Math.floor(ao/ak/R);var an=true;var aq=[];var af=0;while((ag*R*ak)<al){tile=this.draw_helper(ah,ai,ag,ak,ar,at);if(tile){aq.push(tile)}else{an=false}ag+=1;af++}var aj=this;if(an){aj.postdraw_actions(aq,ai,at,ap)}},postdraw_actions:function(aj,ak,al,af){var ah=this;var ai=false;for(var ag=0;ag<aj.length;ag++){if(aj[ag].message){ai=true;break}}if(ai){for(var ag=0;ag<aj.length;ag++){tile=aj[ag];if(!tile.message){tile.canvas.css("padding-top",E)}}}},draw_helper:function(ag,ah,ai,al,ar,aw,at,am){var aj=this,aq=this._gen_tile_cache_key(ah,aw,ai),an=ai*R*al,av=an+R*al;var ao=(ag?undefined:aj.tile_cache.get(aq));if(ao){aj.show_tile(ao,ar,aw);return ao}var ap=function(ax){return("isResolved" in ax)};var ak=true;var af=aj.data_manager.get_data(an,av,aj.mode,al,aj.data_url_extra_params);if(ap(af)){ak=false}var au;if(view.reference_track&&aw>view.canvas_manager.char_width_px){au=view.reference_track.data_manager.get_data(an,av,aj.mode,al,view.reference_track.data_url_extra_params);if(ap(au)){ak=false}}if(ak){p(af,am);var ao=aj.draw_tile(af,aj.mode,al,ai,aw,au);if(ao!==undefined){aj.tile_cache.set(aq,ao);aj.show_tile(ao,ar,aw)}return ao}$.when(af,au).then(function(){view.request_redraw(false,false,false,aj)});return null},show_tile:function(al,an,ao){var ah=this,ag=al.canvas,ak=ag;if(al.message){var ap=$("<div/>"),am=$("<div/>").addClass("tile-message").text(al.message).css({height:E-1,width:al.canvas.width}).appendTo(ap),aj=$("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(am),af=$("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(am);ap.append(ag);ak=ap;aj.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.DEEP_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()});af.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.BROAD_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()})}al.predisplay_actions();var ai=(al.low-(this.is_overview?this.view.max_low:this.view.low))*ao;if(this.left_offset){ai-=this.left_offset}ak.css({position:"absolute",top:0,left:ai,height:""});an.append(ak);ah.max_height=Math.max(ah.max_height,ak.height());ah.content_div.css("height",ah.max_height+"px");an.children().css("height",ah.max_height+"px")},_get_tile_bounds:function(af,ag){var ai=af*R*ag,aj=R*ag,ah=(ai+aj<=this.view.max_high?ai+aj:this.view.max_high);return[ai,ah]},tool_region_and_parameters_str:function(ah,af,ai){var ag=this,aj=(ah!==undefined&&af!==undefined&&ai!==undefined?ah+":"+af+"-"+ai:"all");return" - region=["+aj+"], parameters=["+ag.tool.get_param_values().join(", ")+"]"},init_for_tool_data:function(){this.data_url=raw_data_url;this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.predraw_init=function(){var ag=this;var af=function(){if(ag.data_manager.size()===0){setTimeout(af,300)}else{ag.data_url=default_data_url;ag.data_query_wait=L;ag.dataset_state_url=converted_datasets_state_url;$.getJSON(ag.dataset_state_url,{dataset_id:ag.dataset_id,hda_ldda:ag.hda_ldda},function(ah){})}};af()}}});var ab=function(ag,af){i.call(this,"label",ag,af,false,{});this.container_div.addClass("label-track")};p(ab.prototype,i.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var ah=this.view,ai=ah.high-ah.low,al=Math.floor(Math.pow(10,Math.floor(Math.log(ai)/Math.log(10)))),af=Math.floor(ah.low/al)*al,aj=this.view.container.width(),ag=$("<div style='position: relative; height: 1.3em;'></div>");while(af<ah.high){var ak=(af-ah.low)/ai*aj;ag.append($("<div class='label'>"+commatize(af)+"</div>").css({position:"absolute",left:ak-1}));af+=al}this.content_div.children(":first").remove();this.content_div.append(ag)}});var A=function(af){N.call(this,"reference",af,{content_div:af.top_labeltrack},{});af.reference_track=this;this.left_offset=200;this.height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:af.dbkey};this.data_manager=new I(B,this,false);this.tile_cache=new c(u)};p(A.prototype,q.prototype,N.prototype,{build_header_div:function(){},init:function(){this.enabled=true},draw_tile:function(ap,al,ak,ag,aq){var aj=this,ah=R*ak;if(aq>this.view.canvas_manager.char_width_px){if(ap.data===null){aj.content_div.css("height","0px");return}var ai=this.view.canvas_manager.new_canvas();var ao=ai.getContext("2d");ai.width=Math.ceil(ah*aq+aj.left_offset);ai.height=aj.height_px;ao.font=ao.canvas.manager.default_font;ao.textAlign="center";ap=ap.data;for(var am=0,an=ap.length;am<an;am++){var af=Math.round(am*aq);ao.fillText(ap[am],af+aj.left_offset,10)}return new b(aj,ag,ak,ai,ap)}this.content_div.css("height","0px")}});var j=function(ak,ai,ah,al,af,aj){var ag=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";N.call(this,ak,ai,ah,aj);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=al;this.dataset_id=af;this.original_dataset_id=af;this.data_manager=new S(B,this);this.tile_cache=new c(u);this.left_offset=0;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.height_px,hidden:true}],saved_values:aj,onchange:function(){ag.set_name(ag.prefs.name);ag.vertical_range=ag.prefs.max_value-ag.prefs.min_value;$("#linetrack_"+ag.dataset_id+"_minval").text(ag.prefs.min_value);$("#linetrack_"+ag.dataset_id+"_maxval").text(ag.prefs.max_value);ag.tile_cache.clear();ag.request_draw()}});this.prefs=this.config.values;this.height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value;this.add_resize_handle()};p(j.prototype,q.prototype,N.prototype,{add_resize_handle:function(){var af=this;var ai=false;var ah=false;var ag=$("<div class='track-resize'>");$(af.container_div).hover(function(){if(af.content_visible){ai=true;ag.show()}},function(){ai=false;if(!ah){ag.hide()}});ag.hide().bind("dragstart",function(aj,ak){ah=true;ak.original_height=$(af.content_div).height()}).bind("drag",function(ak,al){var aj=Math.min(Math.max(al.original_height+al.deltaY,af.min_height_px),af.max_height_px);$(af.content_div).css("height",aj);af.height_px=aj;af.request_draw(true)}).bind("dragend",function(aj,ak){af.tile_cache.clear();ah=false;if(!ai){ag.hide()}af.config.values.height=af.height_px}).appendTo(af.container_div)},predraw_init:function(){var af=this;af.vertical_range=undefined;return $.getJSON(af.data_url,{stats:true,chrom:af.view.chrom,low:null,high:null,hda_ldda:af.hda_ldda,dataset_id:af.dataset_id},function(ag){af.container_div.addClass("line-track");var aj=ag.data;if(isNaN(parseFloat(af.prefs.min_value))||isNaN(parseFloat(af.prefs.max_value))){var ah=aj.min;var al=aj.max;ah=Math.floor(Math.min(0,Math.max(ah,aj.mean-2*aj.sd)));al=Math.ceil(Math.max(0,Math.min(al,aj.mean+2*aj.sd)));af.prefs.min_value=ah;af.prefs.max_value=al;$("#track_"+af.dataset_id+"_minval").val(af.prefs.min_value);$("#track_"+af.dataset_id+"_maxval").val(af.prefs.max_value)}af.vertical_range=af.prefs.max_value-af.prefs.min_value;af.total_frequency=aj.total_frequency;af.container_div.find(".yaxislabel").remove();var ak=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_minval").text(Z(af.prefs.min_value,3));var ai=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_maxval").text(Z(af.prefs.max_value,3));ai.css({position:"absolute",top:"24px",left:"10px"});ai.prependTo(af.container_div);ak.css({position:"absolute",bottom:"2px",left:"10px"});ak.prependTo(af.container_div)})},draw_tile:function(ar,ak,aj,ah,aq){if(this.vertical_range===undefined){return}var af=this._get_tile_bounds(ah,aj),al=af[0],ap=af[1],ag=Math.ceil((ap-al)*aq),an=this.height_px;var ai=this.view.canvas_manager.new_canvas();ai.width=ag,ai.height=an;var ao=ai.getContext("2d");var am=new M.LinePainter(ar.data,al,ap,this.prefs,ak);am.draw(ao,ag,an);return new b(this.track,ah,aj,ai,ar.data)}});var e=function(af,al,ag,ak,an,am,ai,aj){var ah=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];N.call(this,af,al,ag,am,ai,aj);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){ah.set_name(ah.prefs.name);ah.tile_cache.clear();ah.set_painter_from_config();ah.request_draw()}});this.prefs=this.config.values;this.height_px=0;this.container_div.addClass("feature-track");this.hda_ldda=ak;this.dataset_id=an;this.original_dataset_id=an;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.inc_slots={};this.start_end_dct={};this.tile_cache=new c(d);this.data_manager=new S(20,this);this.left_offset=200;this.set_painter_from_config()};p(e.prototype,q.prototype,N.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=M.ArcLinkedFeaturePainter}else{this.painter=M.LinkedFeaturePainter}},postdraw_actions:function(av,af,aw,au){N.prototype.postdraw_actions.call(this,av,au);var ai=this;if(au){var ak=ai.content_div.children();var al=false;for(var aj=ak.length-1,ap=0;aj>=ap;aj--){var ah=$(ak[aj]);if(al){ah.remove()}else{if(ah.children().length!==0){al=true}}}}if(ai.mode=="Histogram"){var ao=-1;for(var aj=0;aj<av.length;aj++){var at=av[aj].max_val;if(at>ao){ao=at}}for(var aj=0;aj<av.length;aj++){var ar=av[aj];if(ar.max_val!==ao){ar.canvas.remove();ai.draw_helper(true,af,ar.index,ar.resolution,ar.canvas.parent(),aw,[],{max:ao})}}}if(ai.filters_manager){var ag=ai.filters_manager.filters;for(var an=0;an<ag.length;an++){ag[an].update_ui_elt()}var am=false,aq;for(var aj=0;aj<av.length;aj++){if(av[aj].data.length){aq=av[aj].data[0];for(var an=0;an<ag.length;an++){if(ag[an].applies_to(aq)){am=true;break}}}}if(ai.filters_available!==am){ai.filters_available=am;if(!ai.filters_available){ai.filters_div.hide()}ai.update_icons()}}},update_auto_mode:function(af){var af;if(this.mode=="Auto"){if(af=="no_detail"){af="feature spans"}else{if(af=="summary_tree"){af="coverage histogram"}}this.mode_icon.attr("title","Set display mode (now: Auto/"+af+")")}},incremental_slots:function(aj,ag,ai){var ah=this.view.canvas_manager.dummy_context,af=this.inc_slots[aj];if(!af||(af.mode!==ai)){af=new (s.FeatureSlotter)(aj,ai==="Pack",z,function(ak){return ah.measureText(ak)});af.mode=ai;this.inc_slots[aj]=af}return af.slot_features(ag)},get_summary_tree_data:function(aj,am,ah,av){if(av>ah-am){av=ah-am}var aq=Math.floor((ah-am)/av),au=[],ai=0;var ak=0,al=0,ap,at=0,an=[],ar,ao;var ag=function(ay,ax,az,aw){ay[0]=ax+az*aw;ay[1]=ax+(az+1)*aw};while(at<av&&ak!==aj.length){var af=false;for(;at<av&&!af;at++){ag(an,am,at,aq);for(al=ak;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){af=true;break}}if(af){break}}data_start_index=al;au[au.length]=ar=[an[0],0];for(;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){ar[1]++}else{break}}if(ar[1]>ai){ai=ar[1]}at++}return{max:ai,delta:aq,data:au}},draw_tile:function(au,ax,aB,aF,ap,ai){var ay=this,ak=ay._get_tile_bounds(aF,aB),aI=ak[0],ag=ak[1],aw=ag-aI,az=Math.ceil(aw*ap),aO=25,aj=this.left_offset,av,al;if(ax==="Auto"){if(au.dataset_type==="summary_tree"){ax=au.dataset_type}else{if(au.extra_info==="no_detail"||ay.is_overview){ax="no_detail"}else{var aN=au.data;if(this.view.high-this.view.low>J){ax="Squish"}else{ax="Pack"}}}this.update_auto_mode(ax)}if(ax==="summary_tree"||ax==="Histogram"){al=this.summary_draw_height;this.container_div.find(".yaxislabel").remove();var af=$("<div />").addClass("yaxislabel");af.text(au.max);af.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});af.prependTo(this.container_div);var ah=this.view.canvas_manager.new_canvas();ah.width=az+aj;ah.height=al+T;if(au.dataset_type!="summary_tree"){var aq=this.get_summary_tree_data(au.data,aI,ag,200);if(au.max){aq.max=au.max}au=aq}var aK=new M.SummaryTreePainter(au,aI,ag,this.prefs);var aA=ah.getContext("2d");aA.translate(aj,T);aK.draw(aA,az,al);return new k(ay,aF,aB,ah,au.data,au.max)}var av,an=1;if(ax==="no_detail"||ax==="Squish"||ax==="Pack"){an=this.incremental_slots(ap,au.data,ax);av=this.inc_slots[ap].slots}var ao=[];if(au.data){var ar=this.filters_manager.filters;for(var aC=0,aE=au.data.length;aC<aE;aC++){var am=au.data[aC];var aD=false;var at;for(var aH=0,aM=ar.length;aH<aM;aH++){at=ar[aH];at.update_attrs(am);if(!at.keep(am)){aD=true;break}}if(!aD){ao.push(am)}}}var aL=(this.filters_manager.alpha_filter?new D(this.filters_manager.alpha_filter):null);var aJ=(this.filters_manager.height_filter?new D(this.filters_manager.height_filter):null);var aK=new (this.painter)(ao,aI,ag,this.prefs,ax,aL,aJ,ai);var al=Math.max(ad,aK.get_required_height(an,az));var ah=this.view.canvas_manager.new_canvas();var aG=null;ah.width=az+aj;ah.height=al;var aA=ah.getContext("2d");aA.fillStyle=this.prefs.block_color;aA.font=aA.canvas.manager.default_font;aA.textAlign="right";this.container_div.find(".yaxislabel").remove();if(au.data){aA.translate(aj,0);aG=aK.draw(aA,az,al,av);aG.translation=-aj}return new P(ay,aF,aB,ah,au.data,ax,au.message,aG)}});var U=function(ak,ah,ag,am,af,aj,al,ai){e.call(this,ak,ah,ag,am,af,aj,al,ai);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:aj,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter};p(U.prototype,q.prototype,N.prototype,e.prototype);var W=function(af,ak,ag,aj,an,am,ah){e.call(this,af,ak,ag,aj,an,am,ah);var ai=get_random_color(),al=get_random_color([ai,"#ffffff"]);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ai},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:al},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter;this.update_icons()};p(W.prototype,q.prototype,N.prototype,e.prototype);X.View=ac;X.DrawableGroup=Q;X.LineTrack=j;X.FeatureTrack=e;X.ReadTrack=W;X.VcfTrack=U};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.include_label=h;this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,s=this.slots,h=this.start_end_dct,y=[],A=[],n=0,z=this.max_rows;for(var w=0,x=m.length;w<x;w++){var l=m[w],o=l[0];if(s[o]!==undefined){n=Math.max(n,s[o]);A.push(s[o])}else{y.push(w)}}var q=function(F,G){for(var E=0;E<=z;E++){var C=false,H=h[E];if(H!==undefined){for(var B=0,D=H.length;B<D;B++){var i=H[B];if(G>i[0]&&F<i[1]){C=true;break}}}if(!C){return E}}return -1};for(var w=0,x=y.length;w<x;w++){var l=m[y[w]],o=l[0],u=l[1],f=l[2],r=l[3],g=Math.floor(u*p),k=Math.ceil(f*p),v=this.measureText(r).width,j;if(r!==undefined&&this.include_label){v+=(d+a);if(g-v>=0){g-=v;j="left"}else{k+=v;j="right"}}var t=q(g,k);if(t>=0){if(h[t]===undefined){h[t]=[]}h[t].push([g,k]);s[o]=t;n=Math.max(n,t)}else{}}return n+1}})};var painters_module=function(i,x){var u=i("class").extend;var p=function(I,A,G,z,F,D){if(D===undefined){D=4}var C=z-A;var B=F-G;var E=Math.floor(Math.sqrt(C*C+B*B)/D);var J=C/E;var H=B/E;var y;for(y=0;y<E;y++,A+=J,G+=H){if(y%2!==0){continue}I.fillRect(A,G,D,1)}};var q=function(B,A,z,E){var D=A-E/2,C=A+E/2,F=z-Math.sqrt(E*3/2);B.beginPath();B.moveTo(D,F);B.lineTo(C,F);B.lineTo(A,z);B.lineTo(D,F);B.strokeStyle=this.fillStyle;B.fill();B.stroke();B.closePath()};var d=function(y){this.default_val=(y?y:1)};d.prototype.gen_val=function(y){return this.default_val};var l=function(A,C,y,z,B){this.data=A;this.view_start=C;this.view_end=y;this.prefs=u({},this.default_prefs,z);this.mode=B};l.prototype.default_prefs={};var v=function(A,C,y,z,B){l.call(this,A,C,y,z,B)};v.prototype.default_prefs={show_counts:false};v.prototype.draw=function(M,z,L){var E=this.view_start,O=this.view_end-this.view_start,N=z/O;var J=this.data.data,I=this.data.delta,G=this.data.max,B=L;delta_x_px=Math.ceil(I*N);M.save();for(var C=0,D=J.length;C<D;C++){var H=Math.floor((J[C][0]-E)*N);var F=J[C][1];if(!F){continue}var K=F/G*L;if(F!==0&&K<1){K=1}M.fillStyle=this.prefs.block_color;M.fillRect(H,B-K,delta_x_px,K);var A=4;if(this.prefs.show_counts&&(M.measureText(F).width+A)<delta_x_px){M.fillStyle=this.prefs.label_color;M.textAlign="center";M.fillText(F,H+(delta_x_px/2),10)}}M.restore()};var b=function(y,C,E,F,A){l.call(this,y,C,E,F,A);if(this.prefs.min_value===undefined){var G=Infinity;for(var z=0,B=this.data.length;z<B;z++){G=Math.min(G,this.data[z][1])}this.prefs.min_value=G}if(this.prefs.max_value===undefined){var D=-Infinity;for(var z=0,B=this.data.length;z<B;z++){D=Math.max(D,this.data[z][1])}this.prefs.max_value=D}};b.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};b.prototype.draw=function(N,M,K){var F=false,H=this.prefs.min_value,D=this.prefs.max_value,J=D-H,z=K,A=this.view_start,L=this.view_end-this.view_start,B=M/L,I=this.mode,T=this.data;N.save();var U=Math.round(K+H/J*K);if(I!=="Intensity"){N.fillStyle="#aaa";N.fillRect(0,U,M,1)}N.beginPath();var R,E,C;if(T.length>1){C=Math.ceil((T[1][0]-T[0][0])*B)}else{C=10}for(var O=0,P=T.length;O<P;O++){N.fillStyle=this.prefs.color;R=Math.round((T[O][0]-A)*B);E=T[O][1];var Q=false,G=false;if(E===null){if(F&&I==="Filled"){N.lineTo(R,z)}F=false;continue}if(E<H){G=true;E=H}else{if(E>D){Q=true;E=D}}if(I==="Histogram"){E=Math.round(E/J*z);N.fillRect(R,U,C,-E)}else{if(I==="Intensity"){E=255-Math.floor((E-H)/J*255);N.fillStyle="rgb("+E+","+E+","+E+")";N.fillRect(R,0,C,z)}else{E=Math.round(z-(E-H)/J*z);if(F){N.lineTo(R,E)}else{F=true;if(I==="Filled"){N.moveTo(R,z);N.lineTo(R,E)}else{N.moveTo(R,E)}}}}N.fillStyle=this.prefs.overflow_color;if(Q||G){var S;if(I==="Histogram"||I==="Intensity"){S=C}else{R-=2;S=4}if(Q){N.fillRect(R,0,S,3)}if(G){N.fillRect(R,z-3,S,3)}}N.fillStyle=this.prefs.color}if(I==="Filled"){if(F){N.lineTo(R,U);N.lineTo(0,U)}N.fill()}else{N.stroke()}N.restore()};var m=function(y){this.feature_positions={};this.slot_height=y;this.translation=0;this.y_translation=0};m.prototype.map_feature_data=function(z,B,y,A){if(!this.feature_positions[B]){this.feature_positions[B]=[]}this.feature_positions[B].push({data:z,x_start:y,x_end:A})};m.prototype.get_feature_data=function(z,D){var C=Math.floor((D-this.y_translation)/this.slot_height),B;if(!this.feature_positions[C]){return null}z+=this.translation;for(var A=0;A<this.feature_positions[C].length;A++){B=this.feature_positions[C][A];if(z>=B.x_start&&z<=B.x_end){return B.data}}};var o=function(A,D,y,z,C,E,B){l.call(this,A,D,y,z,C);this.alpha_scaler=(E?E:new d());this.height_scaler=(B?B:new d())};o.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};u(o.prototype,{get_required_height:function(A,z){var y=y_scale=this.get_row_height(),B=this.mode;if(B==="no_detail"||B==="Squish"||B==="Pack"){y=A*y_scale}return y+this.get_top_padding(z)+this.get_bottom_padding(z)},get_top_padding:function(y){return 0},get_bottom_padding:function(y){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(K,I,G,F){var Q=this.data,D=this.view_start,M=this.view_end;K.save();K.fillStyle=this.prefs.block_color;K.textAlign="right";var H=this.view_end-this.view_start,E=I/H,L=this.get_row_height(),P=new m(L),B;for(var N=0,O=Q.length;N<O;N++){var A=Q[N],C=A[0],J=A[1],y=A[2],z=(F&&F[C]!==undefined?F[C]:null);if((J<M&&y>D)&&(this.mode=="Dense"||z!==null)){B=this.draw_element(K,this.mode,A,z,D,M,E,L,I);P.map_feature_data(A,z,B[0],B[1])}}K.restore();P.y_translation=this.get_top_padding(I);return P},draw_element:function(E,A,G,C,B,D,F,z,y){console.log("WARNING: Unimplemented function.");return[0,0]}});var c=10,h=3,k=5,w=10,f=1,s=9,e=3,a=9,j=2,g="#ccc";var r=function(A,D,y,z,C,E,B){o.call(this,A,D,y,z,C,E,B);this.draw_background_connector=true;this.draw_individual_connectors=false};u(r.prototype,o.prototype,{get_row_height:function(){var z=this.mode,y;if(z==="Dense"){y=c}else{if(z==="no_detail"){y=h}else{if(z==="Squish"){y=k}else{y=w}}}return y},draw_element:function(M,D,X,H,O,aj,an,ap,y){var T=X[0],al=X[1],ad=X[2],Q=X[3],ae=Math.floor(Math.max(0,(al-O)*an)),N=Math.ceil(Math.min(y,Math.max(0,(ad-O)*an))),ac=ae,ao=N,aa=(D==="Dense"?0:(0+H))*ap+this.get_top_padding(y),L,ah,R=null,ar=null,B=this.prefs.block_color,ag=this.prefs.label_color;M.globalAlpha=this.alpha_scaler.gen_val(X);if(D==="Dense"){H=1}if(D==="no_detail"){M.fillStyle=B;M.fillRect(ae,aa+5,N-ae,f)}else{var K=X[4],Z=X[5],af=X[6],C=X[7],V=true;if(Z&&af){R=Math.floor(Math.max(0,(Z-O)*an));ar=Math.ceil(Math.min(y,Math.max(0,(af-O)*an)))}var am,U;if(D==="Squish"){am=1;U=e;V=false}else{if(D==="Dense"){am=5;U=s}else{am=5;U=a}}if(!C){M.fillStyle=B;M.fillRect(ae,aa+1,N-ae,U);if(K&&V){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}M.fillRect(ae,aa+1,N-ae,U)}}else{var J,W;if(D==="Squish"||D==="Dense"){J=aa+Math.floor(e/2)+1;W=1}else{if(K){J=aa;W=U}else{J+=(e/2)+1;W=1}}if(this.draw_background_connector){if(D==="Squish"||D==="Dense"){M.fillStyle=g}else{if(K){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand")}}}else{M.fillStyle=g}}M.fillRect(ae,J,N-ae,W)}var E;for(var ak=0,A=C.length;ak<A;ak++){var F=C[ak],z=Math.floor(Math.max(0,(F[0]-O)*an)),Y=Math.ceil(Math.min(y,Math.max((F[1]-O)*an))),S,ab;if(z>Y){continue}M.fillStyle=B;M.fillRect(z,aa+(U-am)/2+1,Y-z,am);if(R!==undefined&&af>Z&&!(z>ar||Y<R)){var ai=Math.max(z,R),I=Math.min(Y,ar);M.fillRect(ai,aa+1,I-ai,U);if(C.length==1&&D=="Pack"){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}if(ai+14<I){ai+=2;I-=2}M.fillRect(ai,aa+1,I-ai,U)}}if(this.draw_individual_connectors&&S){this.draw_connector(M,S,ab,z,Y,aa)}S=z;ab=Y}if(D==="Pack"){M.globalAlpha=1;M.fillStyle="white";var G=this.height_scaler.gen_val(X),P=Math.ceil(U*G),aq=Math.round((U-P)/2);if(G!==1){M.fillRect(ae,J+1,N-ae,aq);M.fillRect(ae,J+U-aq+1,N-ae,aq)}}}M.globalAlpha=1;if(D==="Pack"&&al>O){M.fillStyle=ag;if(O===0&&ae-M.measureText(Q).width<0){M.textAlign="left";M.fillText(Q,N+j,aa+8);ao+=M.measureText(Q).width+j}else{M.textAlign="right";M.fillText(Q,ae-j,aa+8);ac-=M.measureText(Q).width+j}}}M.globalAlpha=1;return[ac,ao]}});var t=function(B,E,y,A,D,F,C,z){o.call(this,B,E,y,A,D,F,C);this.ref_seq=(z?z.data:null)};u(t.prototype,o.prototype,{get_row_height:function(){var y,z=this.mode;if(z==="Dense"){y=c}else{if(z==="Squish"){y=k}else{y=w;if(this.prefs.show_insertions){y*=2}}}return y},draw_read:function(K,A,ag,V,L,aa,ad,C,B,M){K.textAlign="center";var J=this,R=[L,aa],Z=0,W=0,D=0,F=K.canvas.manager.char_width_px,y=(B==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var O=[];if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){D=Math.round(ag/2)}if(!C){C=[[0,M.length]]}for(var G=0,I=C.length;G<I;G++){var z=C[G],E="MIDNSHP=X"[z[0]],S=z[1];if(E==="H"||E==="S"){Z-=S}var U=ad+Z,Y=Math.floor(Math.max(0,(U-L)*ag)),ab=Math.floor(Math.max(0,(U+S-L)*ag));if(Y===ab){ab+=1}switch(E){case"H":break;case"S":case"M":case"=":if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(D>0){K.fillStyle=y;K.fillRect(Y-D,V+1,ab-Y,9);K.fillStyle=g;for(var af=0,H=N.length;af<H;af++){if(this.prefs.show_differences&&this.ref_seq){var P=this.ref_seq[U-L+af];if(!P||P.toLowerCase()===N[af].toLowerCase()){continue}}if(U+af>=L&&U+af<=aa){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X,V+9)}}}else{K.fillStyle=y;K.fillRect(Y,V+4,ab-Y,e)}}W+=S;Z+=S;break;case"N":K.fillStyle=g;K.fillRect(Y-D,V+5,ab-Y,1);Z+=S;break;case"D":K.fillStyle="red";K.fillRect(Y-D,V+4,ab-Y,3);Z+=S;break;case"P":break;case"I":var ah=Y-D;if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(this.prefs.show_insertions){var T=Y-(ab-Y)/2;if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){K.fillStyle="yellow";K.fillRect(T-D,V-9,ab-Y,9);O[O.length]={type:"triangle",data:[ah,V+4,5]};K.fillStyle=g;switch(compute_overlap([U,U+S],R)){case (OVERLAP_START):N=N.slice(L-U);break;case (OVERLAP_END):N=N.slice(0,U-aa);break;case (CONTAINED_BY):break;case (CONTAINS):N=N.slice(L-U,U-aa);break}for(var af=0,H=N.length;af<H;af++){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X-(ab-Y)/2,V)}}else{K.fillStyle="yellow";K.fillRect(T,V+(this.mode!=="Dense"?2:5),ab-Y,(A!=="Dense"?e:s))}}else{if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){O.push({type:"text",data:[N.length,ah,V+9]})}else{}}}W+=S;break;case"X":W+=S;break}}K.fillStyle="yellow";var Q,ai,ae;for(var ac=0;ac<O.length;ac++){Q=O[ac];ai=Q.type;ae=Q.data;if(ai==="text"){K.save();K.font="bold "+K.font;K.fillText(ae[0],ae[1],ae[2]);K.restore()}else{if(ai=="triangle"){q(K,ae[0],ae[1],ae[2])}}}},draw_element:function(R,M,E,B,U,z,I,S,P){var H=E[0],Q=E[1],A=E[2],J=E[3],D=Math.floor(Math.max(0,(Q-U)*I)),F=Math.ceil(Math.min(P,Math.max(0,(A-U)*I))),C=(M==="Dense"?0:(0+B))*S,G=this.prefs.label_color,O=0;if((M==="Pack"||this.mode==="Auto")&&I>R.canvas.manager.char_width_px){var O=Math.round(I/2)}if(E[5] instanceof Array){var N=Math.floor(Math.max(0,(E[4][0]-U)*I)),L=Math.ceil(Math.min(P,Math.max(0,(E[4][1]-U)*I))),K=Math.floor(Math.max(0,(E[5][0]-U)*I)),y=Math.ceil(Math.min(P,Math.max(0,(E[5][1]-U)*I)));if(E[4][1]>=U&&E[4][0]<=z&&E[4][2]){this.draw_read(R,M,I,C,U,z,E[4][0],E[4][2],E[4][3],E[4][4])}if(E[5][1]>=U&&E[5][0]<=z&&E[5][2]){this.draw_read(R,M,I,C,U,z,E[5][0],E[5][2],E[5][3],E[5][4])}if(K>L){R.fillStyle=g;p(R,L-O,C+5,K-O,C+5)}}else{this.draw_read(R,M,I,C,U,z,Q,E[4],E[5],E[6])}if(M==="Pack"&&Q>U&&J!=="."){R.fillStyle=this.prefs.label_color;var T=1;if(T===0&&D-R.measureText(J).width<0){R.textAlign="left";R.fillText(J,F+j-O,C+8)}else{R.textAlign="right";R.fillText(J,D-j-O,C+8)}}return[0,0]}});var n=function(A,D,y,z,C,E,B){r.call(this,A,D,y,z,C,E,B);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};u(n.prototype,o.prototype,r.prototype,{calculate_longest_feature_length:function(){var z=0;for(var C=0,y=this.data.length;C<y;C++){var B=this.data[C],A=B[1],D=B[2];z=Math.max(z,D-A)}return z},get_top_padding:function(z){var y=this.view_end-this.view_start,A=z/y;return Math.min(128,Math.ceil((this.longest_feature_length/2)*A))},draw_connector:function(G,B,F,H,E,D){var y=(F+H)/2,C=H-y;var A=Math.PI,z=0;if(C>0){G.beginPath();G.arc(y,D,H-y,Math.PI,0);G.stroke()}}});x.Scaler=d;x.SummaryTreePainter=v;x.LinePainter=b;x.LinkedFeaturePainter=r;x.ReadPainter=t;x.ArcLinkedFeaturePainter=n};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
+var class_module=function(b,a){var c=function(){var f=arguments[0];for(var e=1;e<arguments.length;e++){var d=arguments[e];for(key in d){f[key]=d[key]}}return f};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var m=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(u,t,v,r,i,s){return(Math.max(u,r)-Math.min(u,r))+(Math.max(t,i)-Math.min(t,i))+(Math.max(v,s)-Math.min(v,s))};var g,n,f,k,p,h,q,c,d,b,o,l=false;do{g=Math.random()*16777215;n=g|16711680;f=g|65280;k=g|255;d=m(n,f,k);l=true;for(var j=0;j<a.length;j++){p=a[j];h=p|16711680;q=p|65280;c=p|255;b=m(h,q,c);o=e(n,f,k,h,q,c);if((Math.abs(d-b)<125)||(o<500)){l=false;break}}}while(!l);return"#"+(16777216+g).toString(16).substr(1,6)};var trackster_module=function(f,X){var p=f("class").extend,s=f("slotting"),M=f("painters");var ae=function(af,ag){this.document=af;this.default_font=ag!==undefined?ag:"9px Monaco, Lucida Console, monospace";this.dummy_canvas=this.new_canvas();this.dummy_context=this.dummy_canvas.getContext("2d");this.dummy_context.font=this.default_font;this.char_width_px=this.dummy_context.measureText("A").width;this.patterns={};this.load_pattern("right_strand","/visualization/strand_right.png");this.load_pattern("left_strand","/visualization/strand_left.png");this.load_pattern("right_strand_inv","/visualization/strand_right_inv.png");this.load_pattern("left_strand_inv","/visualization/strand_left_inv.png")};p(ae.prototype,{load_pattern:function(af,aj){var ag=this.patterns,ah=this.dummy_context,ai=new Image();ai.src=image_path+aj;ai.onload=function(){ag[af]=ah.createPattern(ai,"repeat")}},get_pattern:function(af){return this.patterns[af]},new_canvas:function(){var af=this.document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(af)}af.manager=this;return af}});var n={};var l=function(af,ag){n[af.attr("id")]=ag};var m=function(af,ah,aj,ai){aj=".group";var ag={};n[af.attr("id")]=ai;af.bind("drag",{handle:"."+ah,relative:true},function(ar,at){var aq=$(this);var aw=$(this).parent(),an=aw.children(),ap=n[$(this).attr("id")],am,al,au,ak,ao;al=$(this).parents(aj);if(al.length!==0){au=al.position().top;ak=au+al.outerHeight();if(at.offsetY<au){$(this).insertBefore(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable_before(ap,av);return}else{if(at.offsetY>ak){$(this).insertAfter(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable(ap);return}}}al=null;for(ao=0;ao<an.length;ao++){am=$(an.get(ao));au=am.position().top;ak=au+am.outerHeight();if(am.is(aj)&&this!==am.get(0)&&at.offsetY>=au&&at.offsetY<=ak){if(at.offsetY-au<ak-at.offsetY){am.find(".content-div").prepend(this)}else{am.find(".content-div").append(this)}if(ap.container){ap.container.remove_drawable(ap)}n[am.attr("id")].add_drawable(ap);return}}for(ao=0;ao<an.length;ao++){if(at.offsetY<$(an.get(ao)).position().top){break}}if(ao===an.length){if(this!==an.get(ao-1)){aw.append(this);n[aw.attr("id")].move_drawable(ap,ao)}}else{if(this!==an.get(ao)){$(this).insertBefore(an.get(ao));n[aw.attr("id")].move_drawable(ap,(at.deltaY>0?ao-1:ao))}}}).bind("dragstart",function(){ag["border-top"]=af.css("border-top");ag["border-bottom"]=af.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(ag)})};X.moveable=m;var ad=16,H=9,E=20,T=H+2,z=100,J=12000,R=200,C=5,v=10,L=5000,w=100,o="There was an error in indexing this dataset. ",K="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",F="No data for this chrom/contig.",t="Currently indexing... please wait",x="Tool cannot be rerun: ",a="Loading data...",Y="Ready for display",d=10,u=5,B=5;function Z(ag,af){if(!af){af=0}var ah=Math.pow(10,af);return Math.round(ag*ah)/ah}var c=function(af){this.num_elements=af;this.clear()};p(c.prototype,{get:function(ag){var af=this.key_ary.indexOf(ag);if(af!==-1){if(this.obj_cache[ag].stale){this.key_ary.splice(af,1);delete this.obj_cache[ag]}else{this.move_key_to_end(ag,af)}}return this.obj_cache[ag]},set:function(ag,ah){if(!this.obj_cache[ag]){if(this.key_ary.length>=this.num_elements){var af=this.key_ary.shift();delete this.obj_cache[af]}this.key_ary.push(ag)}this.obj_cache[ag]=ah;return ah},move_key_to_end:function(ag,af){this.key_ary.splice(af,1);this.key_ary.push(ag)},clear:function(){this.obj_cache={};this.key_ary=[]},size:function(){return this.key_ary.length}});var S=function(ag,af,ah){c.call(this,ag);this.track=af;this.subset=(ah!==undefined?ah:true)};p(S.prototype,c.prototype,{load_data:function(ao,aj,am,ag,al){var an=this.track.view.chrom,ai={chrom:an,low:ao,high:aj,mode:am,resolution:ag,dataset_id:this.track.dataset_id,hda_ldda:this.track.hda_ldda};$.extend(ai,al);if(this.track.filters_manager){var ap=[];var af=this.track.filters_manager.filters;for(var ak=0;ak<af.length;ak++){ap[ap.length]=af[ak].name}ai.filter_cols=JSON.stringify(ap)}var ah=this;return $.getJSON(this.track.data_url,ai,function(aq){ah.set_data(ao,aj,am,aq)})},get_data:function(af,aj,ak,ag,ai){var ah=this.get_data_from_cache(af,aj,ak);if(ah){return ah}ah=this.load_data(af,aj,ak,ag,ai);this.set_data(af,aj,ak,ah);return ah},DEEP_DATA_REQ:"deep",BROAD_DATA_REQ:"breadth",get_more_data:function(an,ai,am,ah,al,aj){var ao=this.get_data_from_cache(an,ai,am);if(!ao){console.log("ERROR: no current data for: ",this.track,an,ai,am,ah,al);return}ao.stale=true;var ag=an;if(aj===this.DEEP_DATA_REQ){$.extend(al,{start_val:ao.data.length+1})}else{if(aj===this.BROAD_DATA_REQ){ag=(ao.max_high?ao.max_high:ao.data[ao.data.length-1][2])+1}}var af=this,ak=this.load_data(ag,ai,am,ah,al);new_data_available=$.Deferred();this.set_data(an,ai,am,new_data_available);$.when(ak).then(function(ap){if(ap.data){ap.data=ao.data.concat(ap.data);if(ap.max_low){ap.max_low=ao.max_low}if(ap.message){ap.message=ap.message.replace(/[0-9]+/,ap.data.length)}}af.set_data(an,ai,am,ap);new_data_available.resolve(ap)});return new_data_available},get_data_from_cache:function(af,ag,ah){return this.get(this.gen_key(af,ag,ah))},set_data:function(ag,ah,ai,af){return this.set(this.gen_key(ag,ah,ai),af)},gen_key:function(af,ah,ai){var ag=af+"_"+ah+"_"+ai;return ag},split_key:function(af){return af.split("_")}});var I=function(ag,af,ah){S.call(this,ag,af,ah)};p(I.prototype,S.prototype,c.prototype,{load_data:function(af,ai,aj,ag,ah){if(ag>1){return{data:null}}return S.prototype.load_data.call(this,af,ai,aj,ag,ah)}});var q=function(ai,ag,af,ah,ak){if(!q.id_counter){q.id_counter=0}this.id=q.id_counter++;this.name=ai;this.view=ag;this.container=af;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ai}],saved_values:ah,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=ak;this.is_overview=false;this.content_visible=true;this.container_div=this.build_container_div();this.header_div=this.build_header_div();if(this.header_div){this.container_div.append(this.header_div);this.icons_div=this.build_icons_div().hide();this.header_div.append(this.icons_div);this.header_div.dblclick(function(al){al.stopPropagation()});var aj=this;this.container_div.hover(function(){aj.icons_div.show()},function(){aj.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};p(q.prototype,{init:function(){},request_draw:function(){},_draw:function(){},to_json:function(){},update_icons:function(){},set_name:function(af){this.old_name=this.name;this.name=af;this.name_div.text(this.name)},revert_name:function(){this.name=this.old_name;this.name_div.text(this.name)},remove:function(){this.container.remove_drawable(this);this.container_div.hide(0,function(){$(this).remove();view.update_intro_div();view.has_changes=true})},build_container_div:function(){},build_header_div:function(){},build_icons_div:function(){},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var y=function(aj,ai,ag,af,ah,ak){q.call(this,ai,ag,af,ah,ak);this.obj_type=aj;this.drawables=[]};p(y.prototype,q.prototype,{init:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af].init()}},_draw:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af]._draw()}},to_json:function(){var ag=[];for(var af=0;af<this.drawables.length;af++){ag.push(this.drawables[af].to_json())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:ag}},add_drawable:function(af){this.drawables.push(af);af.container=this},add_drawable_before:function(ah,af){var ag=this.drawables.indexOf(af);if(ag!=-1){this.drawables.splice(ag,0,ah);return true}return false},remove_drawable:function(ag){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);ag.container=null;return true}return false},move_drawable:function(ag,ah){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);this.drawables.splice(ah,0,ag);return true}return false}});var Q=function(ai,ag,af,ah){y.call(this,"DrawableGroup",ai,ag,af,ah,"group-handle");this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);l(this.container_div,this);l(this.content_div,this);m(this.container_div,this.drag_handle_class,".group",this)};p(Q.prototype,q.prototype,y.prototype,{build_container_div:function(){return $("<div/>").addClass("group").attr("id","group_"+this.id).appendTo(this.container.content_div)},build_header_div:function(){var af=$("<div/>").addClass("track-header");af.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(af);return af},build_icons_div:function(){var af=$("<div/>").css("float","left");this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show group content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(af);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(af);this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(af);var ag=this;this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var aj=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},ah=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ai=function(ak){if((ak.keyCode||ak.which)===27){aj()}else{if((ak.keyCode||ak.which)===13){ah()}}};$(window).bind("keypress.check_enter_esc",ai);show_modal("Configure Group",ag.config.build_form(),{Cancel:aj,OK:ah})});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return af},hide_contents:function(){this.content_div.hide()},show_contents:function(){this.content_div.show();this.request_draw()}});var ac=function(af,ai,ah,ag){y.call(this,"View");this.container=af;this.chrom=null;this.vis_id=ah;this.dbkey=ag;this.title=ai;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new ae(af.get(0).ownerDocument);this.reset()};p(ac.prototype,y.prototype,{init:function(){var ah=this.container,af=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ah);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ah);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ah);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;l(this.viewport_container,af);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ai=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_tracks()});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var ag=function(aj){if(aj.type==="focusout"||(aj.keyCode||aj.which)===13||(aj.keyCode||aj.which)===27){if((aj.keyCode||aj.which)!==27){af.go_to($(this).val())}$(this).hide();$(this).val("");af.location_span.show();af.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",ag).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tipsy({gravity:"n"}).appendTo(this.nav_controls);this.location_span.click(function(){af.location_span.hide();af.chrom_select.hide();af.nav_input.val(af.chrom+":"+af.low+"-"+af.high);af.nav_input.css("display","inline-block");af.nav_input.select();af.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tipsy({gravity:"n"}).click(function(){af.zoom_out();af.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){af.zoom_in();af.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){af.change_chrom(af.chrom_select.val())});this.browser_content_div.click(function(aj){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(aj){af.zoom_in(aj.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(aj,ak){this.current_x=ak.offsetX}).bind("drag",function(aj,al){var am=al.offsetX-this.current_x;this.current_x=al.offsetX;var ak=Math.round(am/af.viewport_container.width()*(af.max_high-af.max_low));af.move_delta(-ak)});this.overview_close.click(function(){af.reset_overview()});this.viewport_container.bind("draginit",function(aj,ak){if(aj.clientX>af.viewport_container.width()-16){return false}}).bind("dragstart",function(aj,ak){ak.original_low=af.low;ak.current_height=aj.clientY;ak.current_x=ak.offsetX}).bind("drag",function(al,an){var aj=$(this);var ao=an.offsetX-an.current_x;var ak=aj.scrollTop()-(al.clientY-an.current_height);aj.scrollTop(ak);an.current_height=al.clientY;an.current_x=an.offsetX;var am=Math.round(ao/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}).bind("mousewheel",function(al,an,ak,aj){if(ak){ak*=50;var am=Math.round(-ak/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}});this.top_labeltrack.bind("dragstart",function(aj,ak){return $("<div />").css({height:af.browser_content_div.height()+af.top_labeltrack.height()+af.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(an,ao){$(ao.proxy).css({left:Math.min(an.pageX,ao.startX),width:Math.abs(an.pageX-ao.startX)});var ak=Math.min(an.pageX,ao.startX)-af.container.offset().left,aj=Math.max(an.pageX,ao.startX)-af.container.offset().left,am=(af.high-af.low),al=af.viewport_container.width();af.update_location(Math.round(ak/al*am)+af.low,Math.round(aj/al*am)+af.low)}).bind("dragend",function(ao,ap){var ak=Math.min(ao.pageX,ap.startX),aj=Math.max(ao.pageX,ap.startX),am=(af.high-af.low),al=af.viewport_container.width(),an=af.low;af.low=Math.round(ak/al*am)+an;af.high=Math.round(aj/al*am)+an;$(ap.proxy).remove();af.request_redraw()});this.add_label_track(new ab(this,{content_div:this.top_labeltrack}));this.add_label_track(new ab(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){af.resize_window()});$(document).bind("redraw",function(){af.redraw()});this.reset();$(window).trigger("resize")},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.show()}else{this.intro_div.hide()}},update_location:function(af,ag){this.location_span.text(commatize(af)+" - "+commatize(ag));this.nav_input.val(this.chrom+":"+commatize(af)+"-"+commatize(ag))},load_chroms:function(ah){ah.num=w;$.extend(ah,(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey}));var af=this,ag=$.Deferred();$.ajax({url:chrom_url,data:ah,dataType:"json",success:function(aj){if(aj.chrom_info.length===0){alert("Invalid chromosome: "+ah.chrom);return}if(aj.reference){af.add_label_track(new A(af))}af.chrom_data=aj.chrom_info;var am='<option value="">Select Chrom/Contig</option>';for(var al=0,ai=af.chrom_data.length;al<ai;al++){var ak=af.chrom_data[al].chrom;am+='<option value="'+ak+'">'+ak+"</option>"}if(aj.prev_chroms){am+='<option value="previous">Previous '+w+"</option>"}if(aj.next_chroms){am+='<option value="next">Next '+w+"</option>"}af.chrom_select.html(am);af.chrom_start_index=aj.start_index;ag.resolve(aj)},error:function(){alert("Could not load chroms for this dbkey:",af.dbkey)}});return ag},change_chrom:function(ak,ag,am){if(!ak||ak==="None"){return}var ah=this;if(ak==="previous"){ah.load_chroms({low:this.chrom_start_index-w});return}if(ak==="next"){ah.load_chroms({low:this.chrom_start_index+w});return}var al=$.grep(ah.chrom_data,function(an,ao){return an.chrom===ak})[0];if(al===undefined){ah.load_chroms({chrom:ak},function(){ah.change_chrom(ak,ag,am)});return}else{if(ak!==ah.chrom){ah.chrom=ak;ah.chrom_select.val(ah.chrom);ah.max_high=al.len-1;ah.reset();ah.request_redraw(true);for(var aj=0,af=ah.drawables.length;aj<af;aj++){var ai=ah.drawables[aj];if(ai.init){ai.init()}}}if(ag!==undefined&&am!==undefined){ah.low=Math.max(ag,0);ah.high=Math.min(am,ah.max_high)}ah.reset_overview();ah.request_redraw()}},go_to:function(aj){aj=aj.replace(/ |,/g,"");var an=this,af,ai,ag=aj.split(":"),al=ag[0],am=ag[1];if(am!==undefined){try{var ak=am.split("-");af=parseInt(ak[0],10);ai=parseInt(ak[1],10)}catch(ah){return false}}an.change_chrom(al,af,ai)},move_fraction:function(ah){var af=this;var ag=af.high-af.low;this.move_delta(ah*ag)},move_delta:function(ah){var af=this;var ag=af.high-af.low;if(af.low-ah<af.max_low){af.low=af.max_low;af.high=af.max_low+ag}else{if(af.high-ah>af.max_high){af.high=af.max_high;af.low=af.max_high-ag}else{af.high-=ah;af.low-=ah}}af.request_redraw()},add_drawable:function(af){y.prototype.add_drawable.call(this,af);af.init();this.has_changes=true;this.update_intro_div()},add_label_track:function(af){af.view=this;af.init();this.label_tracks.push(af)},remove_drawable:function(ah,ag){y.prototype.remove_drawable.call(this,ah);if(ag){var af=this;ah.container_div.hide(0,function(){$(this).remove();af.update_intro_div()});this.has_changes=true}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(an,af,am,ag){var al=this,aj=(ag?[ag]:al.drawables),ah;var ag;for(var ak=0;ak<aj.length;ak++){ag=aj[ak];ah=-1;for(var ai=0;ai<al.tracks_to_be_redrawn.length;ai++){if(al.tracks_to_be_redrawn[ai][0]===ag){ah=ai;break}}if(ah<0){al.tracks_to_be_redrawn.push([ag,af,am])}else{al.tracks_to_be_redrawn[ak][1]=af;al.tracks_to_be_redrawn[ak][2]=am}}requestAnimationFrame(function(){al._redraw(an)})},_redraw:function(ap){var am=this.low,ai=this.high;if(am<this.max_low){am=this.max_low}if(ai>this.max_high){ai=this.max_high}var ao=this.high-this.low;if(this.high!==0&&ao<this.min_separation){ai=am+this.min_separation}this.low=Math.floor(am);this.high=Math.ceil(ai);this.resolution=Math.pow(C,Math.ceil(Math.log((this.high-this.low)/R)/Math.log(C)));this.zoom_res=Math.pow(v,Math.max(0,Math.ceil(Math.log(this.resolution,v)/Math.log(v))));var af=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var al=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var aq=13;this.overview_box.css({left:af,width:Math.max(aq,al)}).show();if(al<aq){this.overview_box.css("left",af-(aq-al)/2)}if(this.overview_highlight){this.overview_highlight.css({left:af,width:al})}this.update_location(this.low,this.high);if(!ap){var ah,ag,an;for(var aj=0,ak=this.tracks_to_be_redrawn.length;aj<ak;aj++){ah=this.tracks_to_be_redrawn[aj][0];ag=this.tracks_to_be_redrawn[aj][1];an=this.tracks_to_be_redrawn[aj][2];if(ah){ah._draw(ag,an)}}this.tracks_to_be_redrawn=[];for(aj=0,ak=this.label_tracks.length;aj<ak;aj++){this.label_tracks[aj]._draw()}}},zoom_in:function(ag,ah){if(this.max_high===0||this.high-this.low<this.min_separation){return}var ai=this.high-this.low,aj=ai/2+this.low,af=(ai/this.zoom_factor)/2;if(ag){aj=ag/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(aj-af);this.high=Math.round(aj+af);this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var ag=this.high-this.low,ah=ag/2+this.low,af=(ag*this.zoom_factor)/2;this.low=Math.round(ah-af);this.high=Math.round(ah+af);this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.nav_container.width(this.container.width());this.request_redraw()},set_overview:function(ah){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ah.dataset_id){return}this.overview_viewport.find(".track").remove()}var ag=ah.copy({content_div:this.overview_viewport}),af=this;ag.header_div.hide();ag.is_overview=true;af.overview_drawable=ag;this.overview_drawable.postdraw_actions=function(){af.overview_highlight.show().height(af.overview_drawable.content_div.height());af.overview_viewport.height(af.overview_drawable.content_div.height()+af.overview_box.outerHeight());af.overview_close.show();af.resize_window()};this.overview_drawable.init();af.has_changes=true},reset_overview:function(){$(".tipsy").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var r=function(ah,al){this.track=ah;this.name=al.name;this.params=[];var at=al.params;for(var ai=0;ai<at.length;ai++){var an=at[ai],ag=an.name,ar=an.label,aj=unescape(an.html),au=an.value,ap=an.type;if(ap==="number"){this.params[this.params.length]=new g(ag,ar,aj,au,an.min,an.max)}else{if(ap=="select"){this.params[this.params.length]=new O(ag,ar,aj,au)}else{console.log("WARNING: unrecognized tool parameter type:",ag,ap)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(aw){aw.stopPropagation()}).click(function(aw){aw.stopPropagation()}).bind("dblclick",function(aw){aw.stopPropagation()});var aq=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var ao=this.params;var am=this;$.each(this.params,function(ax,aA){var az=$("<div>").addClass("param-row").appendTo(am.parent_div);var aw=$("<div>").addClass("param-label").text(aA.label).appendTo(az);var ay=$("<div/>").addClass("slider").html(aA.html).appendTo(az);ay.find(":input").val(aA.value);$("<div style='clear: both;'/>").appendTo(az)});this.parent_div.find("input").click(function(){$(this).select()});var av=$("<div>").addClass("param-row").appendTo(this.parent_div);var ak=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(av);var af=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(av);var am=this;af.click(function(){am.run_on_region()});ak.click(function(){am.run_on_dataset()})};p(r.prototype,{get_param_values_dict:function(){var af={};this.parent_div.find(":input").each(function(){var ag=$(this).attr("name"),ah=$(this).val();af[ag]=JSON.stringify(ah)});return af},get_param_values:function(){var ag=[];var af={};this.parent_div.find(":input").each(function(){var ah=$(this).attr("name"),ai=$(this).val();if(ah){ag[ag.length]=ai}});return ag},run_on_dataset:function(){var af=this;af.run({dataset_id:this.track.original_dataset_id,tool_id:af.name},null,function(ag){show_modal(af.name+" is Running",af.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var ag={dataset_id:this.track.original_dataset_id,chrom:this.track.view.chrom,low:this.track.view.low,high:this.track.view.high,tool_id:this.name},aj=this.track,ah=ag.tool_id+aj.tool_region_and_parameters_str(ag.chrom,ag.low,ag.high),af;if(aj.container===view){var ai=new Q(this.name,this.track.view,this.track.container);aj.container.add_drawable(ai);aj.container.remove_drawable(aj);ai.add_drawable(aj);aj.container_div.appendTo(ai.content_div);af=ai}else{af=aj.container}var ak=new aj.constructor(ah,view,af,"hda");ak.init_for_tool_data();ak.change_mode(aj.mode);af.add_drawable(ak);ak.content_div.text("Starting job.");this.run(ag,ak,function(al){ak.dataset_id=al.dataset_id;ak.content_div.text("Running job.");ak.init()})},run:function(ag,ah,ai){$.extend(ag,this.get_param_values_dict());var af=function(){$.getJSON(rerun_tool_url,ag,function(aj){if(aj==="no converter"){ah.container_div.addClass("error");ah.content_div.text(K)}else{if(aj.error){ah.container_div.addClass("error");ah.content_div.text(x+aj.message)}else{if(aj==="pending"){ah.container_div.addClass("pending");ah.content_div.text("Converting input data so that it can be used quickly with tool.");setTimeout(af,2000)}else{ai(aj)}}}})};af()}});var O=function(ag,af,ah,ai){this.name=ag;this.label=af;this.html=ah;this.value=ai};var g=function(ah,ag,aj,ak,ai,af){O.call(this,ah,ag,aj,ak);this.min=ai;this.max=af};var h=function(ag,af,ah,ai){this.name=ag;this.index=af;this.tool_id=ah;this.tool_exp_name=ai};var V=function(ag,af,ah,ai){h.call(this,ag,af,ah,ai);this.low=-Number.MAX_VALUE;this.high=Number.MAX_VALUE;this.min=Number.MAX_VALUE;this.max=-Number.MAX_VALUE;this.container=null;this.slider=null;this.slider_label=null};p(V.prototype,{applies_to:function(af){if(af.length>this.index){return true}return false},keep:function(af){if(!this.applies_to(af)){return true}var ag=af[this.index];return(isNaN(ag)||(ag>=this.low&&ag<=this.high))},update_attrs:function(ag){var af=false;if(!this.applies_to(ag)){return af}if(ag[this.index]<this.min){this.min=Math.floor(ag[this.index]);af=true}if(ag[this.index]>this.max){this.max=Math.ceil(ag[this.index]);af=true}return af},update_ui_elt:function(){if(this.min!=this.max){this.container.show()}else{this.container.hide()}var ah=function(ak,ai){var aj=ai-ak;return(aj<=2?0.01:1)};var ag=this.slider.slider("option","min"),af=this.slider.slider("option","max");if(this.min<ag||this.max>af){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",ah(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var aa=function(aq,ay){this.track=aq;this.filters=[];for(var at=0;at<ay.length;at++){var au=ay[at],az=au.name,af=au.type,ah=au.index,ax=au.tool_id,aw=au.tool_exp_name;if(af==="int"||af==="float"){this.filters[at]=new V(az,ah,ax,aw)}else{console.log("ERROR: unsupported filter: ",az,af)}}var ai=function(aA,aB,aC){aA.click(function(){var aD=aB.text();max=parseFloat(aC.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(aC.slider("option","values")){input_size=2*input_size+1;multi_value=true}aB.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",aD).appendTo(aB).focus().select().click(function(aE){aE.stopPropagation()}).blur(function(){$(this).remove();aB.text(aD)}).keyup(function(aI){if(aI.keyCode===27){$(this).trigger("blur")}else{if(aI.keyCode===13){var aG=aC.slider("option","min"),aE=aC.slider("option","max"),aH=function(aJ){return(isNaN(aJ)||aJ>aE||aJ<aG)},aF=$(this).val();if(!multi_value){aF=parseFloat(aF);if(aH(aF)){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}else{aF=aF.split("-");aF=[parseFloat(aF[0]),parseFloat(aF[1])];if(aH(aF[0])||aH(aF[1])){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}aC.slider((multi_value?"values":"value"),aF)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(aA){aA.stopPropagation()}).click(function(aA){aA.stopPropagation()}).bind("dblclick",function(aA){aA.stopPropagation()}).bind("keydown",function(aA){aA.stopPropagation()});var av=$("<div/>").addClass("sliders").appendTo(this.parent_div);var an=this;$.each(this.filters,function(aD,aF){aF.container=$("<div/>").addClass("filter-row slider-row").appendTo(av);var aE=$("<div/>").addClass("elt-label").appendTo(aF.container);var aC=$("<span/>").addClass("slider-name").text(aF.name+" ").appendTo(aE);var aB=$("<span/>");var aH=$("<span/>").addClass("slider-value").appendTo(aE).append("[").append(aB).append("]");var aA=$("<div/>").addClass("slider").appendTo(aF.container);aF.control_element=$("<div/>").attr("id",aF.name+"-filter-control").appendTo(aA);var aG=[0,0];aF.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aJ,aK){var aI=aK.values;aB.text(aI[0]+"-"+aI[1]);aF.low=aI[0];aF.high=aI[1];an.track.request_draw(true,true)},change:function(aI,aJ){aF.control_element.slider("option","slide").call(aF.control_element,aI,aJ)}});aF.slider=aF.control_element;aF.slider_label=aB;ai(aH,aB,aF.control_element);$("<div style='clear: both;'/>").appendTo(aF.container)});if(this.filters.length!==0){var ak=$("<div/>").addClass("param-row").appendTo(av);var am=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ak);var ag=this;am.click(function(){ag.run_on_dataset()})}var ap=$("<div/>").addClass("display-controls").appendTo(this.parent_div),ar,al,ao,aj={Transparency:function(aA){an.alpha_filter=aA},Height:function(aA){an.height_filter=aA}};$.each(aj,function(aC,aB){ar=$("<div/>").addClass("filter-row").appendTo(ap),al=$("<span/>").addClass("elt-label").text(aC+":").appendTo(ar),ao=$("<select/>").attr("name",aC+"_dropdown").css("float","right").appendTo(ar);$("<option/>").attr("value",-1).text("== None ==").appendTo(ao);for(var aA=0;aA<an.filters.length;aA++){$("<option/>").attr("value",aA).text(an.filters[aA].name).appendTo(ao)}ao.change(function(){$(this).children("option:selected").each(function(){var aD=parseInt($(this).val());aj[aC]((aD>=0?an.filters[aD]:null));an.track.request_draw(true,true)})});$("<div style='clear: both;'/>").appendTo(ar)});$("<div style='clear: both;'/>").appendTo(this.parent_div)};p(aa.prototype,{reset_filters:function(){for(var af=0;af<this.filters.length;af++){filter=this.filters[af];filter.slider.slider("option","values",[filter.min,filter.max])}this.alpha_filter=null;this.height_filter=null},run_on_dataset:function(){var an=function(ar,ap,aq){if(!(ap in ar)){ar[ap]=aq}return ar[ap]};var ah={},af,ag,ai;for(var aj=0;aj<this.filters.length;aj++){af=this.filters[aj];if(af.tool_id){if(af.min!=af.low){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" >= "+af.low}if(af.max!=af.high){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" <= "+af.high}}}var al=[];for(var ao in ah){al[al.length]=[ao,ah[ao]]}var am=al.length;(function ak(aw,at){var aq=at[0],ar=aq[0],av=aq[1],au="("+av.join(") and (")+")",ap={cond:au,input:aw,target_dataset_id:aw,tool_id:ar},at=at.slice(1);$.getJSON(run_tool_url,ap,function(ax){if(ax.error){show_modal("Filter Dataset","Error running tool "+ar,{Close:hide_modal})}else{if(at.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{ak(ax.dataset_id,at)}}})})(this.track.dataset_id,al)}});var D=function(af,ag){M.Scaler.call(this,ag);this.filter=af};D.prototype.gen_val=function(af){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(af[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var G=function(af){this.track=af.track;this.params=af.params;this.values={};this.restore_values((af.saved_values?af.saved_values:{}));this.onchange=af.onchange};p(G.prototype,{restore_values:function(af){var ag=this;$.each(this.params,function(ah,ai){if(af[ai.key]!==undefined){ag.values[ai.key]=af[ai.key]}else{ag.values[ai.key]=ai.default_value}})},build_form:function(){var ai=this;var af=$("<div />");var ah;function ag(am,aj){for(var ao=0;ao<am.length;ao++){ah=am[ao];if(ah.hidden){continue}var ak="param_"+ao;var at=ai.values[ah.key];var av=$("<div class='form-row' />").appendTo(aj);av.append($("<label />").attr("for",ak).text(ah.label+":"));if(ah.type==="bool"){av.append($('<input type="checkbox" />').attr("id",ak).attr("name",ak).attr("checked",at))}else{if(ah.type==="text"){av.append($('<input type="text"/>').attr("id",ak).val(at).click(function(){$(this).select()}))}else{if(ah.type=="select"){var aq=$("<select />").attr("id",ak);for(var an=0;an<ah.options.length;an++){$("<option/>").text(ah.options[an].label).attr("value",ah.options[an].value).appendTo(aq)}aq.val(at);av.append(aq)}else{if(ah.type==="color"){var ap=$("<input />").attr("id",ak).attr("name",ak).val(at);var ar=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();var al=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(ar);var au=$("<div/>").appendTo(al).farbtastic({width:100,height:100,callback:ap,color:at});$("<div />").append(ap).append(ar).appendTo(av).bind("click",function(aw){ar.css({left:$(this).position().left+$(ap).width()+5,top:$(this).position().top-($(ar).height()/2)+($(ap).height()/2)}).show();$(document).bind("click.color-picker",function(){ar.hide();$(document).unbind("click.color-picker")});aw.stopPropagation()})}else{av.append($("<input />").attr("id",ak).attr("name",ak).val(at))}}}}if(ah.help){av.append($("<div class='help'/>").text(ah.help))}}}ag(this.params,af);return af},update_from_form:function(af){var ah=this;var ag=false;$.each(this.params,function(ai,ak){if(!ak.hidden){var al="param_"+ai;var aj=af.find("#"+al).val();if(ak.type==="float"){aj=parseFloat(aj)}else{if(ak.type==="int"){aj=parseInt(aj)}else{if(ak.type==="bool"){aj=af.find("#"+al).is(":checked")}}}if(aj!==ah.values[ak.key]){ah.values[ak.key]=aj;ag=true}}});if(ag){this.onchange()}}});var b=function(af,ai,ah,ag,aj){this.track=af;this.index=ai;this.low=ai*R*ah;this.high=(ai+1)*R*ah;this.resolution=ah;this.canvas=$("<div class='track-tile'/>").append(ag);this.data=aj;this.stale=false};b.prototype.predisplay_actions=function(){};var k=function(af,ai,ah,ag,aj,ak){b.call(this,af,ai,ah,ag,aj);this.max_val=ak};p(k.prototype,b.prototype);var P=function(ah,am,ai,ag,ak,al,ap,an){b.call(this,ah,am,ai,ag,ak);this.mode=al;this.message=ap;this.feature_mapper=an;if(this.message){var ag=this.canvas.children()[0],ao=$("<div/>").addClass("tile-message").text(this.message).css({height:E-1,width:ag.width}).prependTo(this.canvas),aj=$("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(ao),af=$("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(ao);aj.click(function(){tile.stale=true;ah.data_manager.get_more_data(tile.low,tile.high,ah.mode,tile.resolution,{},ah.data_manager.DEEP_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()});af.click(function(){tile.stale=true;ah.data_manager.get_more_data(tile.low,tile.high,ah.mode,tile.resolution,{},ah.data_manager.BROAD_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()})}};p(P.prototype,b.prototype);P.prototype.predisplay_actions=function(){var ag=this,af={};if(ag.mode!=="Pack"){return}$(this.canvas).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).siblings(".feature-popup").remove()}).mousemove(function(ar){if(!this.hovered){return}var am=$(this).offset(),aq=ar.pageX-am.left,ap=ar.pageY-am.top,aw=ag.feature_mapper.get_feature_data(aq,ap),an=(aw?aw[0]:null);$(this).siblings(".feature-popup").each(function(){if(!an||$(this).attr("id")!==an.toString()){$(this).remove()}});if(aw){var ai=af[an];if(!ai){var an=aw[0],at={name:aw[3],start:aw[1],end:aw[2],strand:aw[4]},al=ag.track.filters_manager.filters,ak;for(var ao=0;ao<al.length;ao++){ak=al[ao];at[ak.name]=aw[ak.index]}var ai=$("<div/>").attr("id",an).addClass("feature-popup"),ax=$("<table/>"),av,au,ay;for(av in at){au=at[av];ay=$("<tr/>").appendTo(ax);$("<th/>").appendTo(ay).text(av);$("<td/>").attr("align","left").appendTo(ay).text(typeof(au)=="number"?Z(au,2):au)}ai.append($("<div class='feature-popup-inner'>").append(ax));af[an]=ai}ai.appendTo($(ag.canvas).parent());var aj=aq+parseInt(ag.canvas.css("left"))-ai.width()/2,ah=ap+parseInt(ag.canvas.css("top"))+7;ai.css("left",aj+"px").css("top",ah+"px")}else{if(!ar.isPropagationStopped()){ar.stopPropagation();$(this).siblings().each(function(){$(this).trigger(ar)})}}}).mouseleave(function(){$(this).siblings(".feature-popup").remove()})};var i=function(ai,ag,af,ah,aj,ak){q.call(this,ai,ag,af,{},"draghandle");this.data_url=(aj?aj:default_data_url);this.data_url_extra_params={};this.data_query_wait=(ak?ak:L);this.dataset_check_url=converted_datasets_state_url;if(!i.id_counter){i.id_counter=0}this.id=i.id_counter++;this.content_div=$("<div class='track-content'>").appendTo(this.container_div);this.container.content_div.append(this.container_div)};p(i.prototype,q.prototype,{build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var af=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(af)}this.name_div=$("<div/>").addClass("track-name").appendTo(af).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return af},build_icons_div:function(){var aj=$("<div/>").css("float","left");this.mode_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set display mode").addClass("icon-button chevron-expand").tipsy({gravity:"s"}).appendTo(aj);this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show track content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(aj);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(aj);this.overview_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set as overview").addClass("icon-button overview-icon").tipsy({gravity:"s"}).appendTo(aj);this.filters_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Filters").addClass("icon-button filters-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.tools_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Tools").addClass("icon-button tools-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(aj);var ag=this;if(ag.display_modes!==undefined){var al=(ag.config&&ag.config.values.mode?ag.config.values.mode:ag.display_modes[0]);ag.mode=al;this.mode_icon.attr("title","Set display mode (now: "+ag.mode+")");var ai={};for(var ah=0,af=ag.display_modes.length;ah<af;ah++){var ak=ag.display_modes[ah];ai[ak]=function(am){return function(){ag.change_mode(am);ag.icons_div.show();ag.container_div.mouseleave(function(){ag.icons_div.hide()})}}(ak)}make_popupmenu(this.mode_icon,ai)}this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var ao=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},am=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},an=function(ap){if((ap.keyCode||ap.which)===27){ao()}else{if((ap.keyCode||ap.which)===13){am()}}};$(window).bind("keypress.check_enter_esc",an);show_modal("Configure Track",ag.config.build_form(),{Cancel:ao,OK:am})});this.overview_icon.click(function(){ag.view.set_overview(ag)});this.filters_icon.click(function(){ag.filters_div.toggle();ag.filters_manager.reset_filters()});this.tools_icon.click(function(){ag.dynamic_tool_div.toggle();if(ag.dynamic_tool_div.is(":visible")){ag.set_name(ag.name+ag.tool_region_and_parameters_str())}else{ag.revert_name()}$(".tipsy").remove()});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return aj},hide_contents:function(){this.content_div.children().remove();this.content_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.content_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},get_type:function(){if(this instanceof ab){return"LabelTrack"}else{if(this instanceof A){return"ReferenceTrack"}else{if(this instanceof j){return"LineTrack"}else{if(this instanceof W){return"ReadTrack"}else{if(this instanceof U){return"VcfTrack"}else{if(this instanceof e){return"FeatureTrack"}}}}}}return""},init:function(){var af=this;af.enabled=false;af.tile_cache.clear();af.data_manager.clear();af.initial_canvas=undefined;af.content_div.css("height","auto");af.container_div.removeClass("nodata error pending");if(!af.dataset_id){return}$.getJSON(converted_datasets_state_url,{hda_ldda:af.hda_ldda,dataset_id:af.dataset_id,chrom:af.view.chrom},function(ag){if(!ag||ag==="error"||ag.kind==="error"){af.container_div.addClass("error");af.content_div.text(o);if(ag.message){var ah=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+ag.message+"</pre>",{Close:hide_modal})});af.content_div.append(ah)}}else{if(ag==="no converter"){af.container_div.addClass("error");af.content_div.text(K)}else{if(ag==="no data"||(ag.data!==undefined&&(ag.data===null||ag.data.length===0))){af.container_div.addClass("nodata");af.content_div.text(F)}else{if(ag==="pending"){af.container_div.addClass("pending");af.content_div.text(t);setTimeout(function(){af.init()},af.data_query_wait)}else{if(ag.status==="data"){if(ag.valid_chroms){af.valid_chroms=ag.valid_chroms;af.update_icons()}af.content_div.text(Y);if(af.view.chrom){af.content_div.text("");af.content_div.css("height",af.height_px+"px");af.enabled=true;$.when(af.predraw_init()).done(function(){af.container_div.removeClass("nodata error pending");af.request_draw()})}}}}}}});this.update_icons()},predraw_init:function(){}});var N=function(aj,ah,ag,ai,al,ak){i.call(this,aj,ah,ag,ai);var af=this,ah=af.view;m(af.container_div,af.drag_handle_class,".group",af);this.filters_manager=new aa(this,(al!==undefined?al:{}));this.filters_available=false;this.filters_visible=false;this.tool=(ak!==undefined&&obj_length(ak)>0?new r(this,ak):undefined);if(this.header_div){if(this.filters_manager){this.filters_div=this.filters_manager.parent_div;this.header_div.after(this.filters_div)}if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}};p(N.prototype,q.prototype,i.prototype,{copy:function(af){return new this.constructor(this.name,this.view,af,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool)},to_json:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,}},change_mode:function(ag){var af=this;af.mode=ag;af.config.values.mode=ag;af.tile_cache.clear();af.request_draw();this.mode_icon.attr("title","Set display mode (now: "+af.mode+")");return af},update_icons:function(){var af=this;if(af.filters_available>0){af.filters_icon.show()}else{af.filters_icon.hide()}if(af.tool){af.tools_icon.show()}else{af.tools_icon.hide()}},_gen_tile_cache_key:function(ag,ah,af){return ag+"_"+ah+"_"+af},request_draw:function(ag,af){this.view.request_redraw(false,ag,af,this)},_draw:function(ah,ap){if(!this.enabled){return}if(!this.content_visible){return}if(!(this instanceof A)&&(!this.dataset_id)){return}var ao=this.view.low,al=this.view.high,am=al-ao,ai=this.view.container.width(),at=ai/am,ak=this.view.resolution,ar=this.content_div;if(this.is_overview){ao=this.view.max_low;al=this.view.max_high;ak=Math.pow(C,Math.ceil(Math.log((view.max_high-view.max_low)/R)/Math.log(C)));at=ai/(view.max_high-view.max_low)}if(!ap){this.content_div.children().addClass("remove")}this.max_height=0;var ag=Math.floor(ao/ak/R);var an=true;var aq=[];var af=0;while((ag*R*ak)<al){tile=this.draw_helper(ah,ai,ag,ak,ar,at);if(tile){aq.push(tile)}else{an=false}ag+=1;af++}if(!ap){this.content_div.children(".remove").remove()}var aj=this;if(an){aj.postdraw_actions(aq,ai,at,ap)}},postdraw_actions:function(aj,ak,al,af){var ah=this;var ai=false;for(var ag=0;ag<aj.length;ag++){if(aj[ag].message){ai=true;break}}if(ai){for(var ag=0;ag<aj.length;ag++){tile=aj[ag];if(!tile.message){tile.canvas.css("padding-top",E)}}}},draw_helper:function(ag,ah,ai,al,ar,aw,at,am){var aj=this,aq=this._gen_tile_cache_key(ah,aw,ai),an=ai*R*al,av=an+R*al;var ao=(ag?undefined:aj.tile_cache.get(aq));if(ao){aj.show_tile(ao,ar,aw);return ao}var ap=function(ax){return("isResolved" in ax)};var ak=true;var af=aj.data_manager.get_data(an,av,aj.mode,al,aj.data_url_extra_params);if(ap(af)){ak=false}var au;if(view.reference_track&&aw>view.canvas_manager.char_width_px){au=view.reference_track.data_manager.get_data(an,av,aj.mode,al,view.reference_track.data_url_extra_params);if(ap(au)){ak=false}}if(ak){p(af,am);var ao=aj.draw_tile(af,aj.mode,al,ai,aw,au);if(ao!==undefined){aj.tile_cache.set(aq,ao);aj.show_tile(ao,ar,aw)}return ao}$.when(af,au).then(function(){view.request_redraw(false,false,false,aj)});return null},show_tile:function(ah,aj,ak){var ag=this,af=ah.canvas;ah.predisplay_actions();var ai=(ah.low-(this.is_overview?this.view.max_low:this.view.low))*ak;if(this.left_offset){ai-=this.left_offset}af.css({position:"absolute",top:0,left:ai,height:""});if(af.hasClass("remove")){af.removeClass("remove")}else{aj.append(af)}ag.max_height=Math.max(ag.max_height,af.height());ag.content_div.css("height",ag.max_height+"px");aj.children().css("height",ag.max_height+"px")},_get_tile_bounds:function(af,ag){var ai=af*R*ag,aj=R*ag,ah=(ai+aj<=this.view.max_high?ai+aj:this.view.max_high);return[ai,ah]},tool_region_and_parameters_str:function(ah,af,ai){var ag=this,aj=(ah!==undefined&&af!==undefined&&ai!==undefined?ah+":"+af+"-"+ai:"all");return" - region=["+aj+"], parameters=["+ag.tool.get_param_values().join(", ")+"]"},init_for_tool_data:function(){this.data_url=raw_data_url;this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.predraw_init=function(){var ag=this;var af=function(){if(ag.data_manager.size()===0){setTimeout(af,300)}else{ag.data_url=default_data_url;ag.data_query_wait=L;ag.dataset_state_url=converted_datasets_state_url;$.getJSON(ag.dataset_state_url,{dataset_id:ag.dataset_id,hda_ldda:ag.hda_ldda},function(ah){})}};af()}}});var ab=function(ag,af){i.call(this,"label",ag,af,false,{});this.container_div.addClass("label-track")};p(ab.prototype,i.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var ah=this.view,ai=ah.high-ah.low,al=Math.floor(Math.pow(10,Math.floor(Math.log(ai)/Math.log(10)))),af=Math.floor(ah.low/al)*al,aj=this.view.container.width(),ag=$("<div style='position: relative; height: 1.3em;'></div>");while(af<ah.high){var ak=(af-ah.low)/ai*aj;ag.append($("<div class='label'>"+commatize(af)+"</div>").css({position:"absolute",left:ak-1}));af+=al}this.content_div.children(":first").remove();this.content_div.append(ag)}});var A=function(af){N.call(this,"reference",af,{content_div:af.top_labeltrack},{});af.reference_track=this;this.left_offset=200;this.height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:af.dbkey};this.data_manager=new I(B,this,false);this.tile_cache=new c(u)};p(A.prototype,q.prototype,N.prototype,{build_header_div:function(){},init:function(){this.enabled=true},draw_tile:function(ap,al,ak,ag,aq){var aj=this,ah=R*ak;if(aq>this.view.canvas_manager.char_width_px){if(ap.data===null){aj.content_div.css("height","0px");return}var ai=this.view.canvas_manager.new_canvas();var ao=ai.getContext("2d");ai.width=Math.ceil(ah*aq+aj.left_offset);ai.height=aj.height_px;ao.font=ao.canvas.manager.default_font;ao.textAlign="center";ap=ap.data;for(var am=0,an=ap.length;am<an;am++){var af=Math.round(am*aq);ao.fillText(ap[am],af+aj.left_offset,10)}return new b(aj,ag,ak,ai,ap)}this.content_div.css("height","0px")}});var j=function(ak,ai,ah,al,af,aj){var ag=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";N.call(this,ak,ai,ah,aj);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=al;this.dataset_id=af;this.original_dataset_id=af;this.data_manager=new S(B,this);this.tile_cache=new c(u);this.left_offset=0;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.height_px,hidden:true}],saved_values:aj,onchange:function(){ag.set_name(ag.prefs.name);ag.vertical_range=ag.prefs.max_value-ag.prefs.min_value;$("#linetrack_"+ag.dataset_id+"_minval").text(ag.prefs.min_value);$("#linetrack_"+ag.dataset_id+"_maxval").text(ag.prefs.max_value);ag.tile_cache.clear();ag.request_draw()}});this.prefs=this.config.values;this.height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value;this.add_resize_handle()};p(j.prototype,q.prototype,N.prototype,{add_resize_handle:function(){var af=this;var ai=false;var ah=false;var ag=$("<div class='track-resize'>");$(af.container_div).hover(function(){if(af.content_visible){ai=true;ag.show()}},function(){ai=false;if(!ah){ag.hide()}});ag.hide().bind("dragstart",function(aj,ak){ah=true;ak.original_height=$(af.content_div).height()}).bind("drag",function(ak,al){var aj=Math.min(Math.max(al.original_height+al.deltaY,af.min_height_px),af.max_height_px);$(af.content_div).css("height",aj);af.height_px=aj;af.request_draw(true)}).bind("dragend",function(aj,ak){af.tile_cache.clear();ah=false;if(!ai){ag.hide()}af.config.values.height=af.height_px}).appendTo(af.container_div)},predraw_init:function(){var af=this;af.vertical_range=undefined;return $.getJSON(af.data_url,{stats:true,chrom:af.view.chrom,low:null,high:null,hda_ldda:af.hda_ldda,dataset_id:af.dataset_id},function(ag){af.container_div.addClass("line-track");var aj=ag.data;if(isNaN(parseFloat(af.prefs.min_value))||isNaN(parseFloat(af.prefs.max_value))){var ah=aj.min;var al=aj.max;ah=Math.floor(Math.min(0,Math.max(ah,aj.mean-2*aj.sd)));al=Math.ceil(Math.max(0,Math.min(al,aj.mean+2*aj.sd)));af.prefs.min_value=ah;af.prefs.max_value=al;$("#track_"+af.dataset_id+"_minval").val(af.prefs.min_value);$("#track_"+af.dataset_id+"_maxval").val(af.prefs.max_value)}af.vertical_range=af.prefs.max_value-af.prefs.min_value;af.total_frequency=aj.total_frequency;af.container_div.find(".yaxislabel").remove();var ak=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_minval").text(Z(af.prefs.min_value,3));var ai=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_maxval").text(Z(af.prefs.max_value,3));ai.css({position:"absolute",top:"24px",left:"10px"});ai.prependTo(af.container_div);ak.css({position:"absolute",bottom:"2px",left:"10px"});ak.prependTo(af.container_div)})},draw_tile:function(ar,ak,aj,ah,aq){if(this.vertical_range===undefined){return}var af=this._get_tile_bounds(ah,aj),al=af[0],ap=af[1],ag=Math.ceil((ap-al)*aq),an=this.height_px;var ai=this.view.canvas_manager.new_canvas();ai.width=ag,ai.height=an;var ao=ai.getContext("2d");var am=new M.LinePainter(ar.data,al,ap,this.prefs,ak);am.draw(ao,ag,an);return new b(this.track,ah,aj,ai,ar.data)}});var e=function(af,al,ag,ak,an,am,ai,aj){var ah=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];N.call(this,af,al,ag,am,ai,aj);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){ah.set_name(ah.prefs.name);ah.tile_cache.clear();ah.set_painter_from_config();ah.request_draw()}});this.prefs=this.config.values;this.height_px=0;this.container_div.addClass("feature-track");this.hda_ldda=ak;this.dataset_id=an;this.original_dataset_id=an;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.inc_slots={};this.start_end_dct={};this.tile_cache=new c(d);this.data_manager=new S(20,this);this.left_offset=200;this.set_painter_from_config()};p(e.prototype,q.prototype,N.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=M.ArcLinkedFeaturePainter}else{this.painter=M.LinkedFeaturePainter}},postdraw_actions:function(av,af,aw,au){N.prototype.postdraw_actions.call(this,av,au);var ai=this;if(au){var ak=ai.content_div.children();var al=false;for(var aj=ak.length-1,ap=0;aj>=ap;aj--){var ah=$(ak[aj]);if(al){ah.remove()}else{if(ah.children().length!==0){al=true}}}}if(ai.mode=="Histogram"){var ao=-1;for(var aj=0;aj<av.length;aj++){var at=av[aj].max_val;if(at>ao){ao=at}}for(var aj=0;aj<av.length;aj++){var ar=av[aj];if(ar.max_val!==ao){ar.canvas.remove();ai.draw_helper(true,af,ar.index,ar.resolution,ar.canvas.parent(),aw,[],{max:ao})}}}if(ai.filters_manager){var ag=ai.filters_manager.filters;for(var an=0;an<ag.length;an++){ag[an].update_ui_elt()}var am=false,aq;for(var aj=0;aj<av.length;aj++){if(av[aj].data.length){aq=av[aj].data[0];for(var an=0;an<ag.length;an++){if(ag[an].applies_to(aq)){am=true;break}}}}if(ai.filters_available!==am){ai.filters_available=am;if(!ai.filters_available){ai.filters_div.hide()}ai.update_icons()}}},update_auto_mode:function(af){var af;if(this.mode=="Auto"){if(af=="no_detail"){af="feature spans"}else{if(af=="summary_tree"){af="coverage histogram"}}this.mode_icon.attr("title","Set display mode (now: Auto/"+af+")")}},incremental_slots:function(aj,ag,ai){var ah=this.view.canvas_manager.dummy_context,af=this.inc_slots[aj];if(!af||(af.mode!==ai)){af=new (s.FeatureSlotter)(aj,ai==="Pack",z,function(ak){return ah.measureText(ak)});af.mode=ai;this.inc_slots[aj]=af}return af.slot_features(ag)},get_summary_tree_data:function(aj,am,ah,av){if(av>ah-am){av=ah-am}var aq=Math.floor((ah-am)/av),au=[],ai=0;var ak=0,al=0,ap,at=0,an=[],ar,ao;var ag=function(ay,ax,az,aw){ay[0]=ax+az*aw;ay[1]=ax+(az+1)*aw};while(at<av&&ak!==aj.length){var af=false;for(;at<av&&!af;at++){ag(an,am,at,aq);for(al=ak;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){af=true;break}}if(af){break}}data_start_index=al;au[au.length]=ar=[an[0],0];for(;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){ar[1]++}else{break}}if(ar[1]>ai){ai=ar[1]}at++}return{max:ai,delta:aq,data:au}},draw_tile:function(au,ax,aB,aF,ap,ai){var ay=this,ak=ay._get_tile_bounds(aF,aB),aI=ak[0],ag=ak[1],aw=ag-aI,az=Math.ceil(aw*ap),aO=25,aj=this.left_offset,av,al;if(ax==="Auto"){if(au.dataset_type==="summary_tree"){ax=au.dataset_type}else{if(au.extra_info==="no_detail"||ay.is_overview){ax="no_detail"}else{var aN=au.data;if(this.view.high-this.view.low>J){ax="Squish"}else{ax="Pack"}}}this.update_auto_mode(ax)}if(ax==="summary_tree"||ax==="Histogram"){al=this.summary_draw_height;this.container_div.find(".yaxislabel").remove();var af=$("<div />").addClass("yaxislabel");af.text(au.max);af.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});af.prependTo(this.container_div);var ah=this.view.canvas_manager.new_canvas();ah.width=az+aj;ah.height=al+T;if(au.dataset_type!="summary_tree"){var aq=this.get_summary_tree_data(au.data,aI,ag,200);if(au.max){aq.max=au.max}au=aq}var aK=new M.SummaryTreePainter(au,aI,ag,this.prefs);var aA=ah.getContext("2d");aA.translate(aj,T);aK.draw(aA,az,al);return new k(ay,aF,aB,ah,au.data,au.max)}var av,an=1;if(ax==="no_detail"||ax==="Squish"||ax==="Pack"){an=this.incremental_slots(ap,au.data,ax);av=this.inc_slots[ap].slots}var ao=[];if(au.data){var ar=this.filters_manager.filters;for(var aC=0,aE=au.data.length;aC<aE;aC++){var am=au.data[aC];var aD=false;var at;for(var aH=0,aM=ar.length;aH<aM;aH++){at=ar[aH];at.update_attrs(am);if(!at.keep(am)){aD=true;break}}if(!aD){ao.push(am)}}}var aL=(this.filters_manager.alpha_filter?new D(this.filters_manager.alpha_filter):null);var aJ=(this.filters_manager.height_filter?new D(this.filters_manager.height_filter):null);var aK=new (this.painter)(ao,aI,ag,this.prefs,ax,aL,aJ,ai);var al=Math.max(ad,aK.get_required_height(an,az));var ah=this.view.canvas_manager.new_canvas();var aG=null;ah.width=az+aj;ah.height=al;var aA=ah.getContext("2d");aA.fillStyle=this.prefs.block_color;aA.font=aA.canvas.manager.default_font;aA.textAlign="right";this.container_div.find(".yaxislabel").remove();if(au.data){aA.translate(aj,0);aG=aK.draw(aA,az,al,av);aG.translation=-aj}return new P(ay,aF,aB,ah,au.data,ax,au.message,aG)}});var U=function(ak,ah,ag,am,af,aj,al,ai){e.call(this,ak,ah,ag,am,af,aj,al,ai);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:aj,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter};p(U.prototype,q.prototype,N.prototype,e.prototype);var W=function(af,ak,ag,aj,an,am,ah){e.call(this,af,ak,ag,aj,an,am,ah);var ai=get_random_color(),al=get_random_color([ai,"#ffffff"]);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ai},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:al},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter;this.update_icons()};p(W.prototype,q.prototype,N.prototype,e.prototype);X.View=ac;X.DrawableGroup=Q;X.LineTrack=j;X.FeatureTrack=e;X.ReadTrack=W;X.VcfTrack=U};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.include_label=h;this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,s=this.slots,h=this.start_end_dct,y=[],A=[],n=0,z=this.max_rows;for(var w=0,x=m.length;w<x;w++){var l=m[w],o=l[0];if(s[o]!==undefined){n=Math.max(n,s[o]);A.push(s[o])}else{y.push(w)}}var q=function(F,G){for(var E=0;E<=z;E++){var C=false,H=h[E];if(H!==undefined){for(var B=0,D=H.length;B<D;B++){var i=H[B];if(G>i[0]&&F<i[1]){C=true;break}}}if(!C){return E}}return -1};for(var w=0,x=y.length;w<x;w++){var l=m[y[w]],o=l[0],u=l[1],f=l[2],r=l[3],g=Math.floor(u*p),k=Math.ceil(f*p),v=this.measureText(r).width,j;if(r!==undefined&&this.include_label){v+=(d+a);if(g-v>=0){g-=v;j="left"}else{k+=v;j="right"}}var t=q(g,k);if(t>=0){if(h[t]===undefined){h[t]=[]}h[t].push([g,k]);s[o]=t;n=Math.max(n,t)}else{}}return n+1}})};var painters_module=function(i,x){var u=i("class").extend;var p=function(I,A,G,z,F,D){if(D===undefined){D=4}var C=z-A;var B=F-G;var E=Math.floor(Math.sqrt(C*C+B*B)/D);var J=C/E;var H=B/E;var y;for(y=0;y<E;y++,A+=J,G+=H){if(y%2!==0){continue}I.fillRect(A,G,D,1)}};var q=function(B,A,z,E){var D=A-E/2,C=A+E/2,F=z-Math.sqrt(E*3/2);B.beginPath();B.moveTo(D,F);B.lineTo(C,F);B.lineTo(A,z);B.lineTo(D,F);B.strokeStyle=this.fillStyle;B.fill();B.stroke();B.closePath()};var d=function(y){this.default_val=(y?y:1)};d.prototype.gen_val=function(y){return this.default_val};var l=function(A,C,y,z,B){this.data=A;this.view_start=C;this.view_end=y;this.prefs=u({},this.default_prefs,z);this.mode=B};l.prototype.default_prefs={};var v=function(A,C,y,z,B){l.call(this,A,C,y,z,B)};v.prototype.default_prefs={show_counts:false};v.prototype.draw=function(M,z,L){var E=this.view_start,O=this.view_end-this.view_start,N=z/O;var J=this.data.data,I=this.data.delta,G=this.data.max,B=L;delta_x_px=Math.ceil(I*N);M.save();for(var C=0,D=J.length;C<D;C++){var H=Math.floor((J[C][0]-E)*N);var F=J[C][1];if(!F){continue}var K=F/G*L;if(F!==0&&K<1){K=1}M.fillStyle=this.prefs.block_color;M.fillRect(H,B-K,delta_x_px,K);var A=4;if(this.prefs.show_counts&&(M.measureText(F).width+A)<delta_x_px){M.fillStyle=this.prefs.label_color;M.textAlign="center";M.fillText(F,H+(delta_x_px/2),10)}}M.restore()};var b=function(y,C,E,F,A){l.call(this,y,C,E,F,A);if(this.prefs.min_value===undefined){var G=Infinity;for(var z=0,B=this.data.length;z<B;z++){G=Math.min(G,this.data[z][1])}this.prefs.min_value=G}if(this.prefs.max_value===undefined){var D=-Infinity;for(var z=0,B=this.data.length;z<B;z++){D=Math.max(D,this.data[z][1])}this.prefs.max_value=D}};b.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};b.prototype.draw=function(N,M,K){var F=false,H=this.prefs.min_value,D=this.prefs.max_value,J=D-H,z=K,A=this.view_start,L=this.view_end-this.view_start,B=M/L,I=this.mode,T=this.data;N.save();var U=Math.round(K+H/J*K);if(I!=="Intensity"){N.fillStyle="#aaa";N.fillRect(0,U,M,1)}N.beginPath();var R,E,C;if(T.length>1){C=Math.ceil((T[1][0]-T[0][0])*B)}else{C=10}for(var O=0,P=T.length;O<P;O++){N.fillStyle=this.prefs.color;R=Math.round((T[O][0]-A)*B);E=T[O][1];var Q=false,G=false;if(E===null){if(F&&I==="Filled"){N.lineTo(R,z)}F=false;continue}if(E<H){G=true;E=H}else{if(E>D){Q=true;E=D}}if(I==="Histogram"){E=Math.round(E/J*z);N.fillRect(R,U,C,-E)}else{if(I==="Intensity"){E=255-Math.floor((E-H)/J*255);N.fillStyle="rgb("+E+","+E+","+E+")";N.fillRect(R,0,C,z)}else{E=Math.round(z-(E-H)/J*z);if(F){N.lineTo(R,E)}else{F=true;if(I==="Filled"){N.moveTo(R,z);N.lineTo(R,E)}else{N.moveTo(R,E)}}}}N.fillStyle=this.prefs.overflow_color;if(Q||G){var S;if(I==="Histogram"||I==="Intensity"){S=C}else{R-=2;S=4}if(Q){N.fillRect(R,0,S,3)}if(G){N.fillRect(R,z-3,S,3)}}N.fillStyle=this.prefs.color}if(I==="Filled"){if(F){N.lineTo(R,U);N.lineTo(0,U)}N.fill()}else{N.stroke()}N.restore()};var m=function(y){this.feature_positions={};this.slot_height=y;this.translation=0;this.y_translation=0};m.prototype.map_feature_data=function(z,B,y,A){if(!this.feature_positions[B]){this.feature_positions[B]=[]}this.feature_positions[B].push({data:z,x_start:y,x_end:A})};m.prototype.get_feature_data=function(z,D){var C=Math.floor((D-this.y_translation)/this.slot_height),B;if(!this.feature_positions[C]){return null}z+=this.translation;for(var A=0;A<this.feature_positions[C].length;A++){B=this.feature_positions[C][A];if(z>=B.x_start&&z<=B.x_end){return B.data}}};var o=function(A,D,y,z,C,E,B){l.call(this,A,D,y,z,C);this.alpha_scaler=(E?E:new d());this.height_scaler=(B?B:new d())};o.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};u(o.prototype,{get_required_height:function(A,z){var y=y_scale=this.get_row_height(),B=this.mode;if(B==="no_detail"||B==="Squish"||B==="Pack"){y=A*y_scale}return y+this.get_top_padding(z)+this.get_bottom_padding(z)},get_top_padding:function(y){return 0},get_bottom_padding:function(y){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(K,I,G,F){var Q=this.data,D=this.view_start,M=this.view_end;K.save();K.fillStyle=this.prefs.block_color;K.textAlign="right";var H=this.view_end-this.view_start,E=I/H,L=this.get_row_height(),P=new m(L),B;for(var N=0,O=Q.length;N<O;N++){var A=Q[N],C=A[0],J=A[1],y=A[2],z=(F&&F[C]!==undefined?F[C]:null);if((J<M&&y>D)&&(this.mode=="Dense"||z!==null)){B=this.draw_element(K,this.mode,A,z,D,M,E,L,I);P.map_feature_data(A,z,B[0],B[1])}}K.restore();P.y_translation=this.get_top_padding(I);return P},draw_element:function(E,A,G,C,B,D,F,z,y){console.log("WARNING: Unimplemented function.");return[0,0]}});var c=10,h=3,k=5,w=10,f=1,s=9,e=3,a=9,j=2,g="#ccc";var r=function(A,D,y,z,C,E,B){o.call(this,A,D,y,z,C,E,B);this.draw_background_connector=true;this.draw_individual_connectors=false};u(r.prototype,o.prototype,{get_row_height:function(){var z=this.mode,y;if(z==="Dense"){y=c}else{if(z==="no_detail"){y=h}else{if(z==="Squish"){y=k}else{y=w}}}return y},draw_element:function(M,D,X,H,O,aj,an,ap,y){var T=X[0],al=X[1],ad=X[2],Q=X[3],ae=Math.floor(Math.max(0,(al-O)*an)),N=Math.ceil(Math.min(y,Math.max(0,(ad-O)*an))),ac=ae,ao=N,aa=(D==="Dense"?0:(0+H))*ap+this.get_top_padding(y),L,ah,R=null,ar=null,B=this.prefs.block_color,ag=this.prefs.label_color;M.globalAlpha=this.alpha_scaler.gen_val(X);if(D==="Dense"){H=1}if(D==="no_detail"){M.fillStyle=B;M.fillRect(ae,aa+5,N-ae,f)}else{var K=X[4],Z=X[5],af=X[6],C=X[7],V=true;if(Z&&af){R=Math.floor(Math.max(0,(Z-O)*an));ar=Math.ceil(Math.min(y,Math.max(0,(af-O)*an)))}var am,U;if(D==="Squish"){am=1;U=e;V=false}else{if(D==="Dense"){am=5;U=s}else{am=5;U=a}}if(!C){M.fillStyle=B;M.fillRect(ae,aa+1,N-ae,U);if(K&&V){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}M.fillRect(ae,aa+1,N-ae,U)}}else{var J,W;if(D==="Squish"||D==="Dense"){J=aa+Math.floor(e/2)+1;W=1}else{if(K){J=aa;W=U}else{J+=(e/2)+1;W=1}}if(this.draw_background_connector){if(D==="Squish"||D==="Dense"){M.fillStyle=g}else{if(K){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand")}}}else{M.fillStyle=g}}M.fillRect(ae,J,N-ae,W)}var E;for(var ak=0,A=C.length;ak<A;ak++){var F=C[ak],z=Math.floor(Math.max(0,(F[0]-O)*an)),Y=Math.ceil(Math.min(y,Math.max((F[1]-O)*an))),S,ab;if(z>Y){continue}M.fillStyle=B;M.fillRect(z,aa+(U-am)/2+1,Y-z,am);if(R!==undefined&&af>Z&&!(z>ar||Y<R)){var ai=Math.max(z,R),I=Math.min(Y,ar);M.fillRect(ai,aa+1,I-ai,U);if(C.length==1&&D=="Pack"){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}if(ai+14<I){ai+=2;I-=2}M.fillRect(ai,aa+1,I-ai,U)}}if(this.draw_individual_connectors&&S){this.draw_connector(M,S,ab,z,Y,aa)}S=z;ab=Y}if(D==="Pack"){M.globalAlpha=1;M.fillStyle="white";var G=this.height_scaler.gen_val(X),P=Math.ceil(U*G),aq=Math.round((U-P)/2);if(G!==1){M.fillRect(ae,J+1,N-ae,aq);M.fillRect(ae,J+U-aq+1,N-ae,aq)}}}M.globalAlpha=1;if(D==="Pack"&&al>O){M.fillStyle=ag;if(O===0&&ae-M.measureText(Q).width<0){M.textAlign="left";M.fillText(Q,N+j,aa+8);ao+=M.measureText(Q).width+j}else{M.textAlign="right";M.fillText(Q,ae-j,aa+8);ac-=M.measureText(Q).width+j}}}M.globalAlpha=1;return[ac,ao]}});var t=function(B,E,y,A,D,F,C,z){o.call(this,B,E,y,A,D,F,C);this.ref_seq=(z?z.data:null)};u(t.prototype,o.prototype,{get_row_height:function(){var y,z=this.mode;if(z==="Dense"){y=c}else{if(z==="Squish"){y=k}else{y=w;if(this.prefs.show_insertions){y*=2}}}return y},draw_read:function(K,A,ag,V,L,aa,ad,C,B,M){K.textAlign="center";var J=this,R=[L,aa],Z=0,W=0,D=0,F=K.canvas.manager.char_width_px,y=(B==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var O=[];if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){D=Math.round(ag/2)}if(!C){C=[[0,M.length]]}for(var G=0,I=C.length;G<I;G++){var z=C[G],E="MIDNSHP=X"[z[0]],S=z[1];if(E==="H"||E==="S"){Z-=S}var U=ad+Z,Y=Math.floor(Math.max(0,(U-L)*ag)),ab=Math.floor(Math.max(0,(U+S-L)*ag));if(Y===ab){ab+=1}switch(E){case"H":break;case"S":case"M":case"=":if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(D>0){K.fillStyle=y;K.fillRect(Y-D,V+1,ab-Y,9);K.fillStyle=g;for(var af=0,H=N.length;af<H;af++){if(this.prefs.show_differences&&this.ref_seq){var P=this.ref_seq[U-L+af];if(!P||P.toLowerCase()===N[af].toLowerCase()){continue}}if(U+af>=L&&U+af<=aa){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X,V+9)}}}else{K.fillStyle=y;K.fillRect(Y,V+4,ab-Y,e)}}W+=S;Z+=S;break;case"N":K.fillStyle=g;K.fillRect(Y-D,V+5,ab-Y,1);Z+=S;break;case"D":K.fillStyle="red";K.fillRect(Y-D,V+4,ab-Y,3);Z+=S;break;case"P":break;case"I":var ah=Y-D;if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(this.prefs.show_insertions){var T=Y-(ab-Y)/2;if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){K.fillStyle="yellow";K.fillRect(T-D,V-9,ab-Y,9);O[O.length]={type:"triangle",data:[ah,V+4,5]};K.fillStyle=g;switch(compute_overlap([U,U+S],R)){case (OVERLAP_START):N=N.slice(L-U);break;case (OVERLAP_END):N=N.slice(0,U-aa);break;case (CONTAINED_BY):break;case (CONTAINS):N=N.slice(L-U,U-aa);break}for(var af=0,H=N.length;af<H;af++){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X-(ab-Y)/2,V)}}else{K.fillStyle="yellow";K.fillRect(T,V+(this.mode!=="Dense"?2:5),ab-Y,(A!=="Dense"?e:s))}}else{if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){O.push({type:"text",data:[N.length,ah,V+9]})}else{}}}W+=S;break;case"X":W+=S;break}}K.fillStyle="yellow";var Q,ai,ae;for(var ac=0;ac<O.length;ac++){Q=O[ac];ai=Q.type;ae=Q.data;if(ai==="text"){K.save();K.font="bold "+K.font;K.fillText(ae[0],ae[1],ae[2]);K.restore()}else{if(ai=="triangle"){q(K,ae[0],ae[1],ae[2])}}}},draw_element:function(R,M,E,B,U,z,I,S,P){var H=E[0],Q=E[1],A=E[2],J=E[3],D=Math.floor(Math.max(0,(Q-U)*I)),F=Math.ceil(Math.min(P,Math.max(0,(A-U)*I))),C=(M==="Dense"?0:(0+B))*S,G=this.prefs.label_color,O=0;if((M==="Pack"||this.mode==="Auto")&&I>R.canvas.manager.char_width_px){var O=Math.round(I/2)}if(E[5] instanceof Array){var N=Math.floor(Math.max(0,(E[4][0]-U)*I)),L=Math.ceil(Math.min(P,Math.max(0,(E[4][1]-U)*I))),K=Math.floor(Math.max(0,(E[5][0]-U)*I)),y=Math.ceil(Math.min(P,Math.max(0,(E[5][1]-U)*I)));if(E[4][1]>=U&&E[4][0]<=z&&E[4][2]){this.draw_read(R,M,I,C,U,z,E[4][0],E[4][2],E[4][3],E[4][4])}if(E[5][1]>=U&&E[5][0]<=z&&E[5][2]){this.draw_read(R,M,I,C,U,z,E[5][0],E[5][2],E[5][3],E[5][4])}if(K>L){R.fillStyle=g;p(R,L-O,C+5,K-O,C+5)}}else{this.draw_read(R,M,I,C,U,z,Q,E[4],E[5],E[6])}if(M==="Pack"&&Q>U&&J!=="."){R.fillStyle=this.prefs.label_color;var T=1;if(T===0&&D-R.measureText(J).width<0){R.textAlign="left";R.fillText(J,F+j-O,C+8)}else{R.textAlign="right";R.fillText(J,D-j-O,C+8)}}return[0,0]}});var n=function(A,D,y,z,C,E,B){r.call(this,A,D,y,z,C,E,B);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};u(n.prototype,o.prototype,r.prototype,{calculate_longest_feature_length:function(){var z=0;for(var C=0,y=this.data.length;C<y;C++){var B=this.data[C],A=B[1],D=B[2];z=Math.max(z,D-A)}return z},get_top_padding:function(z){var y=this.view_end-this.view_start,A=z/y;return Math.min(128,Math.ceil((this.longest_feature_length/2)*A))},draw_connector:function(G,B,F,H,E,D){var y=(F+H)/2,C=H-y;var A=Math.PI,z=0;if(C>0){G.beginPath();G.arc(y,D,H-y,Math.PI,0);G.stroke()}}});x.Scaler=d;x.SummaryTreePainter=v;x.LinePainter=b;x.LinkedFeaturePainter=r;x.ReadPainter=t;x.ArcLinkedFeaturePainter=n};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
diff -r 1b24edc2108eaa2a5e82015d6462a49418cb9f28 -r 43219da282f61f1a3ee2f2578a247f673116ac7b static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -2318,10 +2318,43 @@
extend(SummaryTreeTile.prototype, Tile.prototype);
var FeatureTrackTile = function(track, index, resolution, canvas, data, mode, message, feature_mapper) {
+ // Attribute init.
Tile.call(this, track, index, resolution, canvas, data);
this.mode = mode;
this.message = message;
this.feature_mapper = feature_mapper;
+
+ // Add message + action icons to tile's "canvas" TODO: rename canvas to element/html or something similar.
+ if (this.message) {
+ var
+ canvas = this.canvas.children()[0],
+ message_div = $("<div/>").addClass("tile-message").text(this.message).
+ // -1 to account for border.
+ css({'height': ERROR_PADDING-1, 'width': canvas.width}).prependTo(this.canvas),
+ more_down_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(message_div),
+ more_across_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(message_div);
+
+ // Set up actions for icons.
+ more_down_icon.click(function() {
+ // Mark tile as stale, request more data, and redraw track.
+ tile.stale = true;
+ track.data_manager.get_more_data(tile.low, tile.high, track.mode, tile.resolution, {}, track.data_manager.DEEP_DATA_REQ);
+ track.request_draw();
+ }).dblclick(function(e) {
+ // Do not propogate as this would normally zoom in.
+ e.stopPropagation();
+ });
+
+ more_across_icon.click(function() {
+ // Mark tile as stale, request more data, and redraw track.
+ tile.stale = true;
+ track.data_manager.get_more_data(tile.low, tile.high, track.mode, tile.resolution, {}, track.data_manager.BROAD_DATA_REQ);
+ track.request_draw();
+ }).dblclick(function(e) {
+ // Do not propogate as this would normally zoom in.
+ e.stopPropagation();
+ });
+ }
};
extend(FeatureTrackTile.prototype, Tile.prototype);
@@ -2852,7 +2885,8 @@
// w_scale units are pixels per base.
w_scale = width / range,
resolution = this.view.resolution,
- parent_element = $("<div style='position: relative;'></div>");
+ // FIXME: parent element is not currently needed, but it may be useful for multitrack drawing.
+ parent_element = this.content_div;
// For overview, adjust high, low, resolution, and w_scale.
if (this.is_overview) {
@@ -2861,9 +2895,19 @@
resolution = Math.pow(RESOLUTION, Math.ceil( Math.log( (view.max_high - view.max_low) / DENSITY ) / Math.log(RESOLUTION) ));
w_scale = width / (view.max_high - view.max_low);
}
+
+ //
+ // Method for moving and/or removing tiles:
+ // (a) mark all elements for removal using class 'remove'
+ // (b) during tile drawing/placement, remove class for elements that are moved;
+ // this occurs in show_tile()
+ // (c) after drawing all tiles, remove elements still marked for removal
+ // (i.e. that still have class 'remove').
+ //
- if (!clear_after) { this.content_div.children().remove(); }
- this.content_div.append( parent_element );
+ // Step (a) for (re)moving tiles.
+ if (!clear_after) { this.content_div.children().addClass("remove"); }
+
this.max_height = 0;
// Index of first tile that overlaps visible region
var tile_index = Math.floor( low / resolution / DENSITY );
@@ -2882,6 +2926,9 @@
tile_index += 1;
tile_count++;
}
+
+ // Step (c) for (re)moving tiles.
+ if (!clear_after) { this.content_div.children(".remove").remove(); }
// Use interval to check if tiles have been drawn. When all tiles are drawn, call post-draw actions.
var track = this;
@@ -2978,65 +3025,36 @@
return null;
},
/**
- * Show track tile and perform associated actions.
+ * Show track tile and perform associated actions. Showing tile may actually move
+ * an existing tile rather than reshowing it.
*/
show_tile: function(tile, parent_element, w_scale) {
- // Readability.
var
track = this,
- canvas = tile.canvas,
- tile_element = canvas;
+ tile_element = tile.canvas;
//
- // If tile has message, display message and button to show more data.
- // TODO: need to handle other messages, not assume message === show more data.
- //
- if (tile.message) {
- var
- container_div = $("<div/>"),
- message_div = $("<div/>").addClass("tile-message").text(tile.message).
- // -1 to account for border.
- css({'height': ERROR_PADDING-1, 'width': tile.canvas.width}).appendTo(container_div),
- more_down_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(message_div),
- more_across_icon = $("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(message_div);
- container_div.append(canvas);
- tile_element = container_div;
-
- // Set up actions for icons.
- more_down_icon.click(function() {
- // Mark tile as stale, request more data, and redraw track.
- tile.stale = true;
- track.data_manager.get_more_data(tile.low, tile.high, track.mode, tile.resolution, {}, track.data_manager.DEEP_DATA_REQ);
- track.request_draw();
- }).dblclick(function(e) {
- // Do not propogate as this would normally zoom in.
- e.stopPropagation();
- });
-
- more_across_icon.click(function() {
- // Mark tile as stale, request more data, and redraw track.
- tile.stale = true;
- track.data_manager.get_more_data(tile.low, tile.high, track.mode, tile.resolution, {}, track.data_manager.BROAD_DATA_REQ);
- track.request_draw();
- }).dblclick(function(e) {
- // Do not propogate as this would normally zoom in.
- e.stopPropagation();
- });
- }
-
- //
- // Show tile element.
+ // Show/move tile element.
//
tile.predisplay_actions();
- // Position tile element, recalculate left position at display time
+ // Position tile element based on current viewport.
var left = ( tile.low - (this.is_overview? this.view.max_low : this.view.low) ) * w_scale;
if (this.left_offset) {
left -= this.left_offset;
}
tile_element.css({ position: 'absolute', top: 0, left: left, height: '' });
- parent_element.append(tile_element);
+
+ if ( tile_element.hasClass("remove") ) {
+ // Step (b) for (re)moving tiles. See _draw() function for description of algorithm
+ // for removing tiles.
+ tile_element.removeClass("remove");
+ }
+ else {
+ // Showing new tile.
+ parent_element.append(tile_element);
+ }
// Set track height.
track.max_height = Math.max(track.max_height, tile_element.height());
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: natefoo: Commit missing template for user impersonation (Thanks Dan).
by Bitbucket 18 Nov '11
by Bitbucket 18 Nov '11
18 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/1b24edc2108e/
changeset: 1b24edc2108e
user: natefoo
date: 2011-11-18 16:10:18
summary: Commit missing template for user impersonation (Thanks Dan).
affected #: 1 file
diff -r b258de1e6cea497052ae4eda1857bac3a7fdd935 -r 1b24edc2108eaa2a5e82015d6462a49418cb9f28 templates/admin/impersonate.mako
--- /dev/null
+++ b/templates/admin/impersonate.mako
@@ -0,0 +1,29 @@
+<%inherit file="/base.mako"/>
+<%namespace file="/message.mako" import="render_msg" />
+
+%if message:
+ ${render_msg( message, status )}
+%endif
+
+%if emails:
+ <div class="toolForm">
+ <div class="toolFormTitle">Impersonate another user</div>
+ <div class="toolFormBody">
+ <form name="impersonate" id="impersonate" action="${h.url_for( controller='admin', action='impersonate' )}" method="post" >
+ <div class="form-row">
+ <label>
+ User to impersonate:
+ </label>
+ <select name="email" class='text-and-autocomplete-select'>
+ %for email in emails:
+ <option>${email}</option>
+ %endfor
+ </select>
+ </div>
+ <div class="form-row">
+ <input type="submit" name="impersonate_button" value="Impersonate"/>
+ </div>
+ </form>
+ </div>
+ </div>
+%endif
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/b258de1e6cea/
changeset: b258de1e6cea
user: jgoecks
date: 2011-11-17 21:08:49
summary: Pack js scripts.
affected #: 1 file
diff -r d39523d118fe21d71c994d185c2a0d96196f09b0 -r b258de1e6cea497052ae4eda1857bac3a7fdd935 static/scripts/packed/trackster.js
--- a/static/scripts/packed/trackster.js
+++ b/static/scripts/packed/trackster.js
@@ -1,1 +1,1 @@
-var class_module=function(b,a){var c=function(){var f=arguments[0];for(var e=1;e<arguments.length;e++){var d=arguments[e];for(key in d){f[key]=d[key]}}return f};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var m=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(u,t,v,r,i,s){return(Math.max(u,r)-Math.min(u,r))+(Math.max(t,i)-Math.min(t,i))+(Math.max(v,s)-Math.min(v,s))};var g,n,f,k,p,h,q,c,d,b,o,l=false;do{g=Math.random()*16777215;n=g|16711680;f=g|65280;k=g|255;d=m(n,f,k);l=true;for(var j=0;j<a.length;j++){p=a[j];h=p|16711680;q=p|65280;c=p|255;b=m(h,q,c);o=e(n,f,k,h,q,c);if((Math.abs(d-b)<125)||(o<500)){l=false;break}}}while(!l);return"#"+(16777216+g).toString(16).substr(1,6)};var trackster_module=function(f,X){var p=f("class").extend,s=f("slotting"),M=f("painters");var ae=function(af,ag){this.document=af;this.default_font=ag!==undefined?ag:"9px Monaco, Lucida Console, monospace";this.dummy_canvas=this.new_canvas();this.dummy_context=this.dummy_canvas.getContext("2d");this.dummy_context.font=this.default_font;this.char_width_px=this.dummy_context.measureText("A").width;this.patterns={};this.load_pattern("right_strand","/visualization/strand_right.png");this.load_pattern("left_strand","/visualization/strand_left.png");this.load_pattern("right_strand_inv","/visualization/strand_right_inv.png");this.load_pattern("left_strand_inv","/visualization/strand_left_inv.png")};p(ae.prototype,{load_pattern:function(af,aj){var ag=this.patterns,ah=this.dummy_context,ai=new Image();ai.src=image_path+aj;ai.onload=function(){ag[af]=ah.createPattern(ai,"repeat")}},get_pattern:function(af){return this.patterns[af]},new_canvas:function(){var af=this.document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(af)}af.manager=this;return af}});var n={};var l=function(af,ag){n[af.attr("id")]=ag};var m=function(af,ah,aj,ai){aj=".group";var ag={};n[af.attr("id")]=ai;af.bind("drag",{handle:"."+ah,relative:true},function(ar,at){var aq=$(this);var aw=$(this).parent(),an=aw.children(),ap=n[$(this).attr("id")],am,al,au,ak,ao;al=$(this).parents(aj);if(al.length!==0){au=al.position().top;ak=au+al.outerHeight();if(at.offsetY<au){$(this).insertBefore(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable_before(ap,av);return}else{if(at.offsetY>ak){$(this).insertAfter(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable(ap);return}}}al=null;for(ao=0;ao<an.length;ao++){am=$(an.get(ao));au=am.position().top;ak=au+am.outerHeight();if(am.is(aj)&&this!==am.get(0)&&at.offsetY>=au&&at.offsetY<=ak){if(at.offsetY-au<ak-at.offsetY){am.find(".content-div").prepend(this)}else{am.find(".content-div").append(this)}if(ap.container){ap.container.remove_drawable(ap)}n[am.attr("id")].add_drawable(ap);return}}for(ao=0;ao<an.length;ao++){if(at.offsetY<$(an.get(ao)).position().top){break}}if(ao===an.length){if(this!==an.get(ao-1)){aw.append(this);n[aw.attr("id")].move_drawable(ap,ao)}}else{if(this!==an.get(ao)){$(this).insertBefore(an.get(ao));n[aw.attr("id")].move_drawable(ap,(at.deltaY>0?ao-1:ao))}}}).bind("dragstart",function(){ag["border-top"]=af.css("border-top");ag["border-bottom"]=af.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(ag)})};X.moveable=m;var ad=16,H=9,E=20,T=H+2,z=100,J=12000,R=200,C=5,v=10,L=5000,w=100,o="There was an error in indexing this dataset. ",K="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",F="No data for this chrom/contig.",t="Currently indexing... please wait",x="Tool cannot be rerun: ",a="Loading data...",Y="Ready for display",d=10,u=5,B=5;function Z(ag,af){if(!af){af=0}var ah=Math.pow(10,af);return Math.round(ag*ah)/ah}var c=function(af){this.num_elements=af;this.clear()};p(c.prototype,{get:function(ag){var af=this.key_ary.indexOf(ag);if(af!==-1){if(this.obj_cache[ag].stale){this.key_ary.splice(af,1);delete this.obj_cache[ag]}else{this.move_key_to_end(ag,af)}}return this.obj_cache[ag]},set:function(ag,ah){if(!this.obj_cache[ag]){if(this.key_ary.length>=this.num_elements){var af=this.key_ary.shift();delete this.obj_cache[af]}this.key_ary.push(ag)}this.obj_cache[ag]=ah;return ah},move_key_to_end:function(ag,af){this.key_ary.splice(af,1);this.key_ary.push(ag)},clear:function(){this.obj_cache={};this.key_ary=[]},size:function(){return this.key_ary.length}});var S=function(ag,af,ah){c.call(this,ag);this.track=af;this.subset=(ah!==undefined?ah:true)};p(S.prototype,c.prototype,{load_data:function(ao,aj,am,ag,al){var an=this.track.view.chrom,ai={chrom:an,low:ao,high:aj,mode:am,resolution:ag,dataset_id:this.track.dataset_id,hda_ldda:this.track.hda_ldda};$.extend(ai,al);if(this.track.filters_manager){var ap=[];var af=this.track.filters_manager.filters;for(var ak=0;ak<af.length;ak++){ap[ap.length]=af[ak].name}ai.filter_cols=JSON.stringify(ap)}var ah=this;return $.getJSON(this.track.data_url,ai,function(aq){ah.set_data(ao,aj,am,aq)})},get_data:function(af,aj,ak,ag,ai){var ah=this.get_data_from_cache(af,aj,ak);if(ah){return ah}ah=this.load_data(af,aj,ak,ag,ai);this.set_data(af,aj,ak,ah);return ah},DEEP_DATA_REQ:"deep",BROAD_DATA_REQ:"breadth",get_more_data:function(an,ai,am,ah,al,aj){var ao=this.get_data_from_cache(an,ai,am);if(!ao){console.log("ERROR: no current data for: ",this.track,an,ai,am,ah,al);return}ao.stale=true;var ag=an;if(aj===this.DEEP_DATA_REQ){$.extend(al,{start_val:ao.data.length+1})}else{if(aj===this.BROAD_DATA_REQ){ag=(ao.max_high?ao.max_high:ao.data[ao.data.length-1][2])+1}}var af=this,ak=this.load_data(ag,ai,am,ah,al);new_data_available=$.Deferred();this.set_data(an,ai,am,new_data_available);$.when(ak).then(function(ap){if(ap.data){ap.data=ao.data.concat(ap.data);if(ap.max_low){ap.max_low=ao.max_low}if(ap.message){ap.message=ap.message.replace(/[0-9]+/,ap.data.length)}}af.set_data(an,ai,am,ap);new_data_available.resolve(ap)});return new_data_available},get_data_from_cache:function(af,ag,ah){return this.get(this.gen_key(af,ag,ah))},set_data:function(ag,ah,ai,af){return this.set(this.gen_key(ag,ah,ai),af)},gen_key:function(af,ah,ai){var ag=af+"_"+ah+"_"+ai;return ag},split_key:function(af){return af.split("_")}});var I=function(ag,af,ah){S.call(this,ag,af,ah)};p(I.prototype,S.prototype,c.prototype,{load_data:function(af,ai,aj,ag,ah){if(ag>1){return{data:null}}return S.prototype.load_data.call(this,af,ai,aj,ag,ah)}});var q=function(ai,ag,af,ah,aj){if(!q.id_counter){q.id_counter=0}this.id=q.id_counter++;this.name=ai;this.view=ag;this.container=af;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ai}],saved_values:ah,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=aj;this.is_overview=false};p(q.prototype,{init:function(){},request_draw:function(){},_draw:function(){},to_json:function(){},update_icons:function(){},set_name:function(af){this.old_name=this.name;this.name=af;this.name_div.text(this.name)},revert_name:function(){this.name=this.old_name;this.name_div.text(this.name)},remove:function(){this.container.remove_drawable(this);this.container_div.hide(0,function(){$(this).remove();view.update_intro_div();view.has_changes=true})}});var y=function(aj,ai,ag,af,ah,ak){q.call(this,ai,ag,af,ah,ak);this.obj_type=aj;this.drawables=[]};p(y.prototype,q.prototype,{init:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af].init()}},_draw:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af]._draw()}},to_json:function(){var ag=[];for(var af=0;af<this.drawables.length;af++){ag.push(this.drawables[af].to_json())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:ag}},add_drawable:function(af){this.drawables.push(af);af.container=this},add_drawable_before:function(ah,af){var ag=this.drawables.indexOf(af);if(ag!=-1){this.drawables.splice(ag,0,ah);return true}return false},remove_drawable:function(ag){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);ag.container=null;return true}return false},move_drawable:function(ag,ah){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);this.drawables.splice(ah,0,ag);return true}return false}});var Q=function(ai,ag,af,ah){y.call(this,"DrawableGroup",ai,ag,af,ah,"group-handle");this.container_div=$("<div/>").addClass("group").attr("id","group_"+this.id).appendTo(this.container.content_div);this.header_div=$("<div/>").addClass("track-header").appendTo(this.container_div);this.header_div.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("group-name menubutton popup").text(this.name).appendTo(this.header_div);this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);l(this.container_div,this);l(this.content_div,this);m(this.container_div,this.drag_handle_class,".group",this);this.update_icons()};p(Q.prototype,q.prototype,y.prototype,{update_icons:function(){var ag=this;var af={};af["Edit configuration"]=function(){var aj=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},ah=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ai=function(ak){if((ak.keyCode||ak.which)===27){aj()}else{if((ak.keyCode||ak.which)===13){ah()}}};$(window).bind("keypress.check_enter_esc",ai);show_modal("Configure Group",ag.config.build_form(),{Cancel:aj,OK:ah})};af.Remove=function(){ag.remove()};make_popupmenu(ag.name_div,af)}});var ac=function(af,ai,ah,ag){y.call(this,"View");this.container=af;this.chrom=null;this.vis_id=ah;this.dbkey=ag;this.title=ai;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new ae(af.get(0).ownerDocument);this.reset()};p(ac.prototype,y.prototype,{init:function(){var ah=this.container,af=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ah);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ah);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ah);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;l(this.viewport_container,af);this.intro_div=$("<div/>").addClass("intro");var ai=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_tracks()});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var ag=function(aj){if(aj.type==="focusout"||(aj.keyCode||aj.which)===13||(aj.keyCode||aj.which)===27){if((aj.keyCode||aj.which)!==27){af.go_to($(this).val())}$(this).hide();$(this).val("");af.location_span.show();af.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",ag).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tipsy({gravity:"n"}).appendTo(this.nav_controls);this.location_span.click(function(){af.location_span.hide();af.chrom_select.hide();af.nav_input.val(af.chrom+":"+af.low+"-"+af.high);af.nav_input.css("display","inline-block");af.nav_input.select();af.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tipsy({gravity:"n"}).click(function(){af.zoom_out();af.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){af.zoom_in();af.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){af.change_chrom(af.chrom_select.val())});this.browser_content_div.click(function(aj){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(aj){af.zoom_in(aj.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(aj,ak){this.current_x=ak.offsetX}).bind("drag",function(aj,al){var am=al.offsetX-this.current_x;this.current_x=al.offsetX;var ak=Math.round(am/af.viewport_container.width()*(af.max_high-af.max_low));af.move_delta(-ak)});this.overview_close.click(function(){af.reset_overview()});this.viewport_container.bind("draginit",function(aj,ak){if(aj.clientX>af.viewport_container.width()-16){return false}}).bind("dragstart",function(aj,ak){ak.original_low=af.low;ak.current_height=aj.clientY;ak.current_x=ak.offsetX}).bind("drag",function(al,an){var aj=$(this);var ao=an.offsetX-an.current_x;var ak=aj.scrollTop()-(al.clientY-an.current_height);aj.scrollTop(ak);an.current_height=al.clientY;an.current_x=an.offsetX;var am=Math.round(ao/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}).bind("mousewheel",function(al,an,ak,aj){if(ak){ak*=50;var am=Math.round(-ak/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}});this.top_labeltrack.bind("dragstart",function(aj,ak){return $("<div />").css({height:af.browser_content_div.height()+af.top_labeltrack.height()+af.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(an,ao){$(ao.proxy).css({left:Math.min(an.pageX,ao.startX),width:Math.abs(an.pageX-ao.startX)});var ak=Math.min(an.pageX,ao.startX)-af.container.offset().left,aj=Math.max(an.pageX,ao.startX)-af.container.offset().left,am=(af.high-af.low),al=af.viewport_container.width();af.update_location(Math.round(ak/al*am)+af.low,Math.round(aj/al*am)+af.low)}).bind("dragend",function(ao,ap){var ak=Math.min(ao.pageX,ap.startX),aj=Math.max(ao.pageX,ap.startX),am=(af.high-af.low),al=af.viewport_container.width(),an=af.low;af.low=Math.round(ak/al*am)+an;af.high=Math.round(aj/al*am)+an;$(ap.proxy).remove();af.request_redraw()});this.add_label_track(new ab(this,{content_div:this.top_labeltrack}));this.add_label_track(new ab(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){af.resize_window()});$(document).bind("redraw",function(){af.redraw()});this.reset();$(window).trigger("resize")},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.appendTo(this.viewport_container)}else{this.intro_div.remove()}},update_location:function(af,ag){this.location_span.text(commatize(af)+" - "+commatize(ag));this.nav_input.val(this.chrom+":"+commatize(af)+"-"+commatize(ag))},load_chroms:function(ah){ah.num=w;$.extend(ah,(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey}));var af=this,ag=$.Deferred();$.ajax({url:chrom_url,data:ah,dataType:"json",success:function(aj){if(aj.chrom_info.length===0){alert("Invalid chromosome: "+ah.chrom);return}if(aj.reference){af.add_label_track(new A(af))}af.chrom_data=aj.chrom_info;var am='<option value="">Select Chrom/Contig</option>';for(var al=0,ai=af.chrom_data.length;al<ai;al++){var ak=af.chrom_data[al].chrom;am+='<option value="'+ak+'">'+ak+"</option>"}if(aj.prev_chroms){am+='<option value="previous">Previous '+w+"</option>"}if(aj.next_chroms){am+='<option value="next">Next '+w+"</option>"}af.chrom_select.html(am);af.chrom_start_index=aj.start_index;ag.resolve(aj)},error:function(){alert("Could not load chroms for this dbkey:",af.dbkey)}});return ag},change_chrom:function(ak,ag,am){if(!ak||ak==="None"){return}var ah=this;if(ak==="previous"){ah.load_chroms({low:this.chrom_start_index-w});return}if(ak==="next"){ah.load_chroms({low:this.chrom_start_index+w});return}var al=$.grep(ah.chrom_data,function(an,ao){return an.chrom===ak})[0];if(al===undefined){ah.load_chroms({chrom:ak},function(){ah.change_chrom(ak,ag,am)});return}else{if(ak!==ah.chrom){ah.chrom=ak;ah.chrom_select.val(ah.chrom);ah.max_high=al.len-1;ah.reset();ah.request_redraw(true);for(var aj=0,af=ah.drawables.length;aj<af;aj++){var ai=ah.drawables[aj];if(ai.init){ai.init()}}}if(ag!==undefined&&am!==undefined){ah.low=Math.max(ag,0);ah.high=Math.min(am,ah.max_high)}ah.reset_overview();ah.request_redraw()}},go_to:function(aj){aj=aj.replace(/ |,/g,"");var an=this,af,ai,ag=aj.split(":"),al=ag[0],am=ag[1];if(am!==undefined){try{var ak=am.split("-");af=parseInt(ak[0],10);ai=parseInt(ak[1],10)}catch(ah){return false}}an.change_chrom(al,af,ai)},move_fraction:function(ah){var af=this;var ag=af.high-af.low;this.move_delta(ah*ag)},move_delta:function(ah){var af=this;var ag=af.high-af.low;if(af.low-ah<af.max_low){af.low=af.max_low;af.high=af.max_low+ag}else{if(af.high-ah>af.max_high){af.high=af.max_high;af.low=af.max_high-ag}else{af.high-=ah;af.low-=ah}}af.request_redraw()},add_drawable:function(af){y.prototype.add_drawable.call(this,af);af.init();this.has_changes=true;this.update_intro_div()},add_label_track:function(af){af.view=this;af.init();this.label_tracks.push(af)},remove_drawable:function(ah,ag){y.prototype.remove_drawable.call(this,ah);if(ag){var af=this;ah.container_div.hide(0,function(){$(this).remove();af.update_intro_div()});this.has_changes=true}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(an,af,am,ag){var al=this,aj=(ag?[ag]:al.drawables),ah;var ag;for(var ak=0;ak<aj.length;ak++){ag=aj[ak];ah=-1;for(var ai=0;ai<al.tracks_to_be_redrawn.length;ai++){if(al.tracks_to_be_redrawn[ai][0]===ag){ah=ai;break}}if(ah<0){al.tracks_to_be_redrawn.push([ag,af,am])}else{al.tracks_to_be_redrawn[ak][1]=af;al.tracks_to_be_redrawn[ak][2]=am}}requestAnimationFrame(function(){al._redraw(an)})},_redraw:function(ap){var am=this.low,ai=this.high;if(am<this.max_low){am=this.max_low}if(ai>this.max_high){ai=this.max_high}var ao=this.high-this.low;if(this.high!==0&&ao<this.min_separation){ai=am+this.min_separation}this.low=Math.floor(am);this.high=Math.ceil(ai);this.resolution=Math.pow(C,Math.ceil(Math.log((this.high-this.low)/R)/Math.log(C)));this.zoom_res=Math.pow(v,Math.max(0,Math.ceil(Math.log(this.resolution,v)/Math.log(v))));var af=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var al=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var aq=13;this.overview_box.css({left:af,width:Math.max(aq,al)}).show();if(al<aq){this.overview_box.css("left",af-(aq-al)/2)}if(this.overview_highlight){this.overview_highlight.css({left:af,width:al})}this.update_location(this.low,this.high);if(!ap){var ah,ag,an;for(var aj=0,ak=this.tracks_to_be_redrawn.length;aj<ak;aj++){ah=this.tracks_to_be_redrawn[aj][0];ag=this.tracks_to_be_redrawn[aj][1];an=this.tracks_to_be_redrawn[aj][2];if(ah){ah._draw(ag,an)}}this.tracks_to_be_redrawn=[];for(aj=0,ak=this.label_tracks.length;aj<ak;aj++){this.label_tracks[aj]._draw()}}},zoom_in:function(ag,ah){if(this.max_high===0||this.high-this.low<this.min_separation){return}var ai=this.high-this.low,aj=ai/2+this.low,af=(ai/this.zoom_factor)/2;if(ag){aj=ag/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(aj-af);this.high=Math.round(aj+af);this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var ag=this.high-this.low,ah=ag/2+this.low,af=(ag*this.zoom_factor)/2;this.low=Math.round(ah-af);this.high=Math.round(ah+af);this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.nav_container.width(this.container.width());this.request_redraw()},set_overview:function(ah){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ah.dataset_id){return}this.overview_viewport.find(".track").remove()}var ag=ah.copy({content_div:this.overview_viewport}),af=this;ag.header_div.hide();ag.is_overview=true;af.overview_drawable=ag;this.overview_drawable.postdraw_actions=function(){af.overview_highlight.show().height(af.overview_drawable.content_div.height());af.overview_viewport.height(af.overview_drawable.content_div.height()+af.overview_box.outerHeight());af.overview_close.show();af.resize_window()};this.overview_drawable.init();af.has_changes=true},reset_overview:function(){$(".tipsy").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var r=function(ah,al){this.track=ah;this.name=al.name;this.params=[];var at=al.params;for(var ai=0;ai<at.length;ai++){var an=at[ai],ag=an.name,ar=an.label,aj=unescape(an.html),au=an.value,ap=an.type;if(ap==="number"){this.params[this.params.length]=new g(ag,ar,aj,au,an.min,an.max)}else{if(ap=="select"){this.params[this.params.length]=new O(ag,ar,aj,au)}else{console.log("WARNING: unrecognized tool parameter type:",ag,ap)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(aw){aw.stopPropagation()}).click(function(aw){aw.stopPropagation()}).bind("dblclick",function(aw){aw.stopPropagation()});var aq=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var ao=this.params;var am=this;$.each(this.params,function(ax,aA){var az=$("<div>").addClass("param-row").appendTo(am.parent_div);var aw=$("<div>").addClass("param-label").text(aA.label).appendTo(az);var ay=$("<div/>").addClass("slider").html(aA.html).appendTo(az);ay.find(":input").val(aA.value);$("<div style='clear: both;'/>").appendTo(az)});this.parent_div.find("input").click(function(){$(this).select()});var av=$("<div>").addClass("param-row").appendTo(this.parent_div);var ak=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(av);var af=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(av);var am=this;af.click(function(){am.run_on_region()});ak.click(function(){am.run_on_dataset()})};p(r.prototype,{get_param_values_dict:function(){var af={};this.parent_div.find(":input").each(function(){var ag=$(this).attr("name"),ah=$(this).val();af[ag]=JSON.stringify(ah)});return af},get_param_values:function(){var ag=[];var af={};this.parent_div.find(":input").each(function(){var ah=$(this).attr("name"),ai=$(this).val();if(ah){ag[ag.length]=ai}});return ag},run_on_dataset:function(){var af=this;af.run({dataset_id:this.track.original_dataset_id,tool_id:af.name},null,function(ag){show_modal(af.name+" is Running",af.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var ag={dataset_id:this.track.original_dataset_id,chrom:this.track.view.chrom,low:this.track.view.low,high:this.track.view.high,tool_id:this.name},aj=this.track,ah=ag.tool_id+aj.tool_region_and_parameters_str(ag.chrom,ag.low,ag.high),af;if(aj.container===view){var ai=new Q(this.name,this.track.view,this.track.container);aj.container.add_drawable(ai);aj.container.remove_drawable(aj);ai.add_drawable(aj);aj.container_div.appendTo(ai.content_div);af=ai}else{af=aj.container}var ak=new aj.constructor(ah,view,af,"hda");ak.init_for_tool_data();ak.change_mode(aj.mode);af.add_drawable(ak);ak.content_div.text("Starting job.");this.run(ag,ak,function(al){ak.dataset_id=al.dataset_id;ak.content_div.text("Running job.");ak.init()})},run:function(ag,ah,ai){$.extend(ag,this.get_param_values_dict());var af=function(){$.getJSON(rerun_tool_url,ag,function(aj){if(aj==="no converter"){ah.container_div.addClass("error");ah.content_div.text(K)}else{if(aj.error){ah.container_div.addClass("error");ah.content_div.text(x+aj.message)}else{if(aj==="pending"){ah.container_div.addClass("pending");ah.content_div.text("Converting input data so that it can be used quickly with tool.");setTimeout(af,2000)}else{ai(aj)}}}})};af()}});var O=function(ag,af,ah,ai){this.name=ag;this.label=af;this.html=ah;this.value=ai};var g=function(ah,ag,aj,ak,ai,af){O.call(this,ah,ag,aj,ak);this.min=ai;this.max=af};var h=function(ag,af,ah,ai){this.name=ag;this.index=af;this.tool_id=ah;this.tool_exp_name=ai};var V=function(ag,af,ah,ai){h.call(this,ag,af,ah,ai);this.low=-Number.MAX_VALUE;this.high=Number.MAX_VALUE;this.min=Number.MAX_VALUE;this.max=-Number.MAX_VALUE;this.container=null;this.slider=null;this.slider_label=null};p(V.prototype,{applies_to:function(af){if(af.length>this.index){return true}return false},keep:function(af){if(!this.applies_to(af)){return true}var ag=af[this.index];return(isNaN(ag)||(ag>=this.low&&ag<=this.high))},update_attrs:function(ag){var af=false;if(!this.applies_to(ag)){return af}if(ag[this.index]<this.min){this.min=Math.floor(ag[this.index]);af=true}if(ag[this.index]>this.max){this.max=Math.ceil(ag[this.index]);af=true}return af},update_ui_elt:function(){if(this.min!=this.max){this.container.show()}else{this.container.hide()}var ah=function(ak,ai){var aj=ai-ak;return(aj<=2?0.01:1)};var ag=this.slider.slider("option","min"),af=this.slider.slider("option","max");if(this.min<ag||this.max>af){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",ah(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var aa=function(aq,ay){this.track=aq;this.filters=[];for(var at=0;at<ay.length;at++){var au=ay[at],az=au.name,af=au.type,ah=au.index,ax=au.tool_id,aw=au.tool_exp_name;if(af==="int"||af==="float"){this.filters[at]=new V(az,ah,ax,aw)}else{console.log("ERROR: unsupported filter: ",az,af)}}var ai=function(aA,aB,aC){aA.click(function(){var aD=aB.text();max=parseFloat(aC.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(aC.slider("option","values")){input_size=2*input_size+1;multi_value=true}aB.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",aD).appendTo(aB).focus().select().click(function(aE){aE.stopPropagation()}).blur(function(){$(this).remove();aB.text(aD)}).keyup(function(aI){if(aI.keyCode===27){$(this).trigger("blur")}else{if(aI.keyCode===13){var aG=aC.slider("option","min"),aE=aC.slider("option","max"),aH=function(aJ){return(isNaN(aJ)||aJ>aE||aJ<aG)},aF=$(this).val();if(!multi_value){aF=parseFloat(aF);if(aH(aF)){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}else{aF=aF.split("-");aF=[parseFloat(aF[0]),parseFloat(aF[1])];if(aH(aF[0])||aH(aF[1])){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}aC.slider((multi_value?"values":"value"),aF)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(aA){aA.stopPropagation()}).click(function(aA){aA.stopPropagation()}).bind("dblclick",function(aA){aA.stopPropagation()}).bind("keydown",function(aA){aA.stopPropagation()});var av=$("<div/>").addClass("sliders").appendTo(this.parent_div);var an=this;$.each(this.filters,function(aD,aF){aF.container=$("<div/>").addClass("filter-row slider-row").appendTo(av);var aE=$("<div/>").addClass("elt-label").appendTo(aF.container);var aC=$("<span/>").addClass("slider-name").text(aF.name+" ").appendTo(aE);var aB=$("<span/>");var aH=$("<span/>").addClass("slider-value").appendTo(aE).append("[").append(aB).append("]");var aA=$("<div/>").addClass("slider").appendTo(aF.container);aF.control_element=$("<div/>").attr("id",aF.name+"-filter-control").appendTo(aA);var aG=[0,0];aF.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aJ,aK){var aI=aK.values;aB.text(aI[0]+"-"+aI[1]);aF.low=aI[0];aF.high=aI[1];an.track.request_draw(true,true)},change:function(aI,aJ){aF.control_element.slider("option","slide").call(aF.control_element,aI,aJ)}});aF.slider=aF.control_element;aF.slider_label=aB;ai(aH,aB,aF.control_element);$("<div style='clear: both;'/>").appendTo(aF.container)});if(this.filters.length!==0){var ak=$("<div/>").addClass("param-row").appendTo(av);var am=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ak);var ag=this;am.click(function(){ag.run_on_dataset()})}var ap=$("<div/>").addClass("display-controls").appendTo(this.parent_div),ar,al,ao,aj={Transparency:function(aA){an.alpha_filter=aA},Height:function(aA){an.height_filter=aA}};$.each(aj,function(aC,aB){ar=$("<div/>").addClass("filter-row").appendTo(ap),al=$("<span/>").addClass("elt-label").text(aC+":").appendTo(ar),ao=$("<select/>").attr("name",aC+"_dropdown").css("float","right").appendTo(ar);$("<option/>").attr("value",-1).text("== None ==").appendTo(ao);for(var aA=0;aA<an.filters.length;aA++){$("<option/>").attr("value",aA).text(an.filters[aA].name).appendTo(ao)}ao.change(function(){$(this).children("option:selected").each(function(){var aD=parseInt($(this).val());aj[aC]((aD>=0?an.filters[aD]:null));an.track.request_draw(true,true)})});$("<div style='clear: both;'/>").appendTo(ar)});$("<div style='clear: both;'/>").appendTo(this.parent_div)};p(aa.prototype,{reset_filters:function(){for(var af=0;af<this.filters.length;af++){filter=this.filters[af];filter.slider.slider("option","values",[filter.min,filter.max])}this.alpha_filter=null;this.height_filter=null},run_on_dataset:function(){var an=function(ar,ap,aq){if(!(ap in ar)){ar[ap]=aq}return ar[ap]};var ah={},af,ag,ai;for(var aj=0;aj<this.filters.length;aj++){af=this.filters[aj];if(af.tool_id){if(af.min!=af.low){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" >= "+af.low}if(af.max!=af.high){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" <= "+af.high}}}var al=[];for(var ao in ah){al[al.length]=[ao,ah[ao]]}var am=al.length;(function ak(aw,at){var aq=at[0],ar=aq[0],av=aq[1],au="("+av.join(") and (")+")",ap={cond:au,input:aw,target_dataset_id:aw,tool_id:ar},at=at.slice(1);$.getJSON(run_tool_url,ap,function(ax){if(ax.error){show_modal("Filter Dataset","Error running tool "+ar,{Close:hide_modal})}else{if(at.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{ak(ax.dataset_id,at)}}})})(this.track.dataset_id,al)}});var D=function(af,ag){M.Scaler.call(this,ag);this.filter=af};D.prototype.gen_val=function(af){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(af[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var G=function(af){this.track=af.track;this.params=af.params;this.values={};this.restore_values((af.saved_values?af.saved_values:{}));this.onchange=af.onchange};p(G.prototype,{restore_values:function(af){var ag=this;$.each(this.params,function(ah,ai){if(af[ai.key]!==undefined){ag.values[ai.key]=af[ai.key]}else{ag.values[ai.key]=ai.default_value}})},build_form:function(){var ai=this;var af=$("<div />");var ah;function ag(am,aj){for(var ao=0;ao<am.length;ao++){ah=am[ao];if(ah.hidden){continue}var ak="param_"+ao;var at=ai.values[ah.key];var av=$("<div class='form-row' />").appendTo(aj);av.append($("<label />").attr("for",ak).text(ah.label+":"));if(ah.type==="bool"){av.append($('<input type="checkbox" />').attr("id",ak).attr("name",ak).attr("checked",at))}else{if(ah.type==="text"){av.append($('<input type="text"/>').attr("id",ak).val(at).click(function(){$(this).select()}))}else{if(ah.type=="select"){var aq=$("<select />").attr("id",ak);for(var an=0;an<ah.options.length;an++){$("<option/>").text(ah.options[an].label).attr("value",ah.options[an].value).appendTo(aq)}aq.val(at);av.append(aq)}else{if(ah.type==="color"){var ap=$("<input />").attr("id",ak).attr("name",ak).val(at);var ar=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();var al=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(ar);var au=$("<div/>").appendTo(al).farbtastic({width:100,height:100,callback:ap,color:at});$("<div />").append(ap).append(ar).appendTo(av).bind("click",function(aw){ar.css({left:$(this).position().left+$(ap).width()+5,top:$(this).position().top-($(ar).height()/2)+($(ap).height()/2)}).show();$(document).bind("click.color-picker",function(){ar.hide();$(document).unbind("click.color-picker")});aw.stopPropagation()})}else{av.append($("<input />").attr("id",ak).attr("name",ak).val(at))}}}}if(ah.help){av.append($("<div class='help'/>").text(ah.help))}}}ag(this.params,af);return af},update_from_form:function(af){var ah=this;var ag=false;$.each(this.params,function(ai,ak){if(!ak.hidden){var al="param_"+ai;var aj=af.find("#"+al).val();if(ak.type==="float"){aj=parseFloat(aj)}else{if(ak.type==="int"){aj=parseInt(aj)}else{if(ak.type==="bool"){aj=af.find("#"+al).is(":checked")}}}if(aj!==ah.values[ak.key]){ah.values[ak.key]=aj;ag=true}}});if(ag){this.onchange()}}});var b=function(af,ai,ah,ag,aj){this.track=af;this.index=ai;this.low=ai*R*ah;this.high=(ai+1)*R*ah;this.resolution=ah;this.canvas=$("<div class='track-tile'/>").append(ag);this.data=aj;this.stale=false};b.prototype.predisplay_actions=function(){};var k=function(af,ai,ah,ag,aj,ak){b.call(this,af,ai,ah,ag,aj);this.max_val=ak};p(k.prototype,b.prototype);var P=function(af,aj,ai,ah,al,am,ak,ag){b.call(this,af,aj,ai,ah,al);this.mode=am;this.message=ak;this.feature_mapper=ag};p(P.prototype,b.prototype);P.prototype.predisplay_actions=function(){var ag=this,af={};if(ag.mode!=="Pack"){return}$(this.canvas).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).siblings(".feature-popup").remove()}).mousemove(function(ar){if(!this.hovered){return}var am=$(this).offset(),aq=ar.pageX-am.left,ap=ar.pageY-am.top,aw=ag.feature_mapper.get_feature_data(aq,ap),an=(aw?aw[0]:null);$(this).siblings(".feature-popup").each(function(){if(!an||$(this).attr("id")!==an.toString()){$(this).remove()}});if(aw){var ai=af[an];if(!ai){var an=aw[0],at={name:aw[3],start:aw[1],end:aw[2],strand:aw[4]},al=ag.track.filters_manager.filters,ak;for(var ao=0;ao<al.length;ao++){ak=al[ao];at[ak.name]=aw[ak.index]}var ai=$("<div/>").attr("id",an).addClass("feature-popup"),ax=$("<table/>"),av,au,ay;for(av in at){au=at[av];ay=$("<tr/>").appendTo(ax);$("<th/>").appendTo(ay).text(av);$("<td/>").attr("align","left").appendTo(ay).text(typeof(au)=="number"?Z(au,2):au)}ai.append($("<div class='feature-popup-inner'>").append(ax));af[an]=ai}ai.appendTo($(ag.canvas).parent());var aj=aq+parseInt(ag.canvas.css("left"))-ai.width()/2,ah=ap+parseInt(ag.canvas.css("top"))+7;ai.css("left",aj+"px").css("top",ah+"px")}else{if(!ar.isPropagationStopped()){ar.stopPropagation();$(this).siblings().each(function(){$(this).trigger(ar)})}}}).mouseleave(function(){$(this).siblings(".feature-popup").remove()})};var i=function(ai,aq,aj,am,ar,ah,ag){q.call(this,ai,aq,aj,{},"draghandle");this.data_url=(ah?ah:default_data_url);this.data_url_extra_params={};this.data_query_wait=(ag?ag:L);this.dataset_check_url=converted_datasets_state_url;this.content_visible=true;if(!i.id_counter){i.id_counter=0}this.id=i.id_counter++;this.container_div=$("<div />").addClass("track").attr("id","track_"+this.id).css("position","relative");if(am){this.header_div=$("<div class='track-header' />").appendTo(this.container_div);if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(this.header_div)}this.name_div=$("<div/>").addClass("track-name").appendTo(this.header_div).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());this.icons_div=$("<div/>").css("float","left").appendTo(this.header_div).hide();this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show track content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(this.icons_div);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(this.icons_div);this.overview_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set as overview").addClass("icon-button overview-icon").tipsy({gravity:"s"}).appendTo(this.icons_div);this.filters_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Filters").addClass("icon-button filters-icon").tipsy({gravity:"s"}).appendTo(this.icons_div).hide();this.tools_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Tools").addClass("icon-button tools-icon").tipsy({gravity:"s"}).appendTo(this.icons_div).hide();this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(this.icons_div);var ak=this;this.header_div.dblclick(function(at){at.stopPropagation()});this.toggle_icon.click(function(){if(ak.content_visible){ak.toggle_icon.addClass("toggle-expand").removeClass("toggle");ak.hide_contents();ak.mode_div.hide();ak.content_visible=false}else{ak.toggle_icon.addClass("toggle").removeClass("toggle-expand");ak.content_visible=true;ak.mode_div.show();ak.show_contents()}});this.settings_icon.click(function(){var av=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},at=function(){ak.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},au=function(aw){if((aw.keyCode||aw.which)===27){av()}else{if((aw.keyCode||aw.which)===13){at()}}};$(window).bind("keypress.check_enter_esc",au);show_modal("Configure Track",ak.config.build_form(),{Cancel:av,OK:at})});this.overview_icon.click(function(){ak.view.set_overview(ak)});this.filters_icon.click(function(){ak.filters_div.toggle();ak.filters_manager.reset_filters()});this.tools_icon.click(function(){ak.dynamic_tool_div.toggle();if(ak.dynamic_tool_div.is(":visible")){ak.set_name(ak.name+ak.tool_region_and_parameters_str())}else{ak.revert_name()}$(".tipsy").remove()});this.remove_icon.click(function(){$(".tipsy").remove();ak.remove()});if(ak.display_modes!==undefined){if(ak.mode_div===undefined){ak.mode_div=$("<div class='right-float menubutton popup' />").appendTo(ak.header_div);var al=(ak.config&&ak.config.values.mode?ak.config.values.mode:ak.display_modes[0]);ak.mode=al;ak.mode_div.text(al);var af={};for(var an=0,ap=ak.display_modes.length;an<ap;an++){var ao=ak.display_modes[an];af[ao]=function(at){return function(){ak.change_mode(at)}}(ao)}make_popupmenu(ak.mode_div,af)}else{ak.mode_div.hide()}this.header_div.append($("<div/>").css("clear","both"));this.container_div.hover(function(){ak.icons_div.show()},function(){ak.icons_div.hide()})}}this.content_div=$("<div class='track-content'>").appendTo(this.container_div);this.container.content_div.append(this.container_div)};p(i.prototype,q.prototype,{get_type:function(){if(this instanceof ab){return"LabelTrack"}else{if(this instanceof A){return"ReferenceTrack"}else{if(this instanceof j){return"LineTrack"}else{if(this instanceof W){return"ReadTrack"}else{if(this instanceof U){return"VcfTrack"}else{if(this instanceof e){return"FeatureTrack"}}}}}}return""},init:function(){var af=this;af.enabled=false;af.tile_cache.clear();af.data_manager.clear();af.initial_canvas=undefined;af.content_div.css("height","auto");af.container_div.removeClass("nodata error pending");if(!af.dataset_id){return}$.getJSON(converted_datasets_state_url,{hda_ldda:af.hda_ldda,dataset_id:af.dataset_id,chrom:af.view.chrom},function(ag){if(!ag||ag==="error"||ag.kind==="error"){af.container_div.addClass("error");af.content_div.text(o);if(ag.message){var ah=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+ag.message+"</pre>",{Close:hide_modal})});af.content_div.append(ah)}}else{if(ag==="no converter"){af.container_div.addClass("error");af.content_div.text(K)}else{if(ag==="no data"||(ag.data!==undefined&&(ag.data===null||ag.data.length===0))){af.container_div.addClass("nodata");af.content_div.text(F)}else{if(ag==="pending"){af.container_div.addClass("pending");af.content_div.text(t);setTimeout(function(){af.init()},af.data_query_wait)}else{if(ag.status==="data"){if(ag.valid_chroms){af.valid_chroms=ag.valid_chroms;af.update_icons()}af.content_div.text(Y);if(af.view.chrom){af.content_div.text("");af.content_div.css("height",af.height_px+"px");af.enabled=true;$.when(af.predraw_init()).done(function(){af.container_div.removeClass("nodata error pending");af.request_draw()})}}}}}}});this.update_icons()},hide_contents:function(){this.content_div.children().remove();this.content_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.content_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},predraw_init:function(){}});var N=function(aj,ah,ag,am,ai,al,ak){i.call(this,aj,ah,ag,am,ai);var af=this,ah=af.view;m(af.container_div,af.drag_handle_class,".group",af);this.filters_manager=new aa(this,(al!==undefined?al:{}));this.filters_available=false;this.filters_visible=false;this.tool=(ak!==undefined&&obj_length(ak)>0?new r(this,ak):undefined);if(this.header_div){if(this.filters_manager){this.filters_div=this.filters_manager.parent_div;this.header_div.after(this.filters_div)}if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}};p(N.prototype,q.prototype,i.prototype,{copy:function(af){return new this.constructor(this.name,this.view,af,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool)},to_json:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,}},change_mode:function(ag){var af=this;af.mode_div.text(ag);af.mode=ag;af.config.values.mode=ag;af.tile_cache.clear();af.request_draw();return af},update_icons:function(){var af=this;if(af.filters_available>0){af.filters_icon.show()}else{af.filters_icon.hide()}if(af.tool){af.tools_icon.show()}else{af.tools_icon.hide()}},_gen_tile_cache_key:function(ag,ah,af){return ag+"_"+ah+"_"+af},request_draw:function(ag,af){this.view.request_redraw(false,ag,af,this)},_draw:function(ah,ap){if(!this.enabled){return}if(!this.content_visible){return}if(!(this instanceof A)&&(!this.dataset_id)){return}var ao=this.view.low,al=this.view.high,am=al-ao,ai=this.view.container.width(),at=ai/am,ak=this.view.resolution,ar=$("<div style='position: relative;'></div>");if(this.is_overview){ao=this.view.max_low;al=this.view.max_high;ak=Math.pow(C,Math.ceil(Math.log((view.max_high-view.max_low)/R)/Math.log(C)));at=ai/(view.max_high-view.max_low)}if(!ap){this.content_div.children().remove()}this.content_div.append(ar);this.max_height=0;var ag=Math.floor(ao/ak/R);var an=true;var aq=[];var af=0;while((ag*R*ak)<al){tile=this.draw_helper(ah,ai,ag,ak,ar,at);if(tile){aq.push(tile)}else{an=false}ag+=1;af++}var aj=this;if(an){aj.postdraw_actions(aq,ai,at,ap)}},postdraw_actions:function(aj,ak,al,af){var ah=this;var ai=false;for(var ag=0;ag<aj.length;ag++){if(aj[ag].message){ai=true;break}}if(ai){for(var ag=0;ag<aj.length;ag++){tile=aj[ag];if(!tile.message){tile.canvas.css("padding-top",E)}}}},draw_helper:function(ag,ah,ai,al,ar,aw,at,am){var aj=this,aq=this._gen_tile_cache_key(ah,aw,ai),an=ai*R*al,av=an+R*al;var ao=(ag?undefined:aj.tile_cache.get(aq));if(ao){aj.show_tile(ao,ar,aw);return ao}var ap=function(ax){return("isResolved" in ax)};var ak=true;var af=aj.data_manager.get_data(an,av,aj.mode,al,aj.data_url_extra_params);if(ap(af)){ak=false}var au;if(view.reference_track&&aw>view.canvas_manager.char_width_px){au=view.reference_track.data_manager.get_data(an,av,aj.mode,al,view.reference_track.data_url_extra_params);if(ap(au)){ak=false}}if(ak){p(af,am);var ao=aj.draw_tile(af,aj.mode,al,ai,aw,au);if(ao!==undefined){aj.tile_cache.set(aq,ao);aj.show_tile(ao,ar,aw)}return ao}$.when(af,au).then(function(){view.request_redraw(false,false,false,aj)});return null},show_tile:function(al,an,ao){var ah=this,ag=al.canvas,ak=ag;if(al.message){var ap=$("<div/>"),am=$("<div/>").addClass("tile-message").text(al.message).css({height:E-1,width:al.canvas.width}).appendTo(ap),aj=$("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(am),af=$("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(am);ap.append(ag);ak=ap;aj.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.DEEP_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()});af.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.BROAD_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()})}al.predisplay_actions();var ai=(al.low-(this.is_overview?this.view.max_low:this.view.low))*ao;if(this.left_offset){ai-=this.left_offset}ak.css({position:"absolute",top:0,left:ai,height:""});an.append(ak);ah.max_height=Math.max(ah.max_height,ak.height());ah.content_div.css("height",ah.max_height+"px");an.children().css("height",ah.max_height+"px")},_get_tile_bounds:function(af,ag){var ai=af*R*ag,aj=R*ag,ah=(ai+aj<=this.view.max_high?ai+aj:this.view.max_high);return[ai,ah]},tool_region_and_parameters_str:function(ah,af,ai){var ag=this,aj=(ah!==undefined&&af!==undefined&&ai!==undefined?ah+":"+af+"-"+ai:"all");return" - region=["+aj+"], parameters=["+ag.tool.get_param_values().join(", ")+"]"},init_for_tool_data:function(){this.data_url=raw_data_url;this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.predraw_init=function(){var ag=this;var af=function(){if(ag.data_manager.size()===0){setTimeout(af,300)}else{ag.data_url=default_data_url;ag.data_query_wait=L;ag.dataset_state_url=converted_datasets_state_url;$.getJSON(ag.dataset_state_url,{dataset_id:ag.dataset_id,hda_ldda:ag.hda_ldda},function(ah){})}};af()}}});var ab=function(ag,af){i.call(this,"label",ag,af,false,{});this.container_div.addClass("label-track")};p(ab.prototype,i.prototype,{init:function(){this.enabled=true},_draw:function(){var ah=this.view,ai=ah.high-ah.low,al=Math.floor(Math.pow(10,Math.floor(Math.log(ai)/Math.log(10)))),af=Math.floor(ah.low/al)*al,aj=this.view.container.width(),ag=$("<div style='position: relative; height: 1.3em;'></div>");while(af<ah.high){var ak=(af-ah.low)/ai*aj;ag.append($("<div class='label'>"+commatize(af)+"</div>").css({position:"absolute",left:ak-1}));af+=al}this.content_div.children(":first").remove();this.content_div.append(ag)}});var A=function(af){N.call(this,"reference",af,{content_div:af.top_labeltrack},false,{});af.reference_track=this;this.left_offset=200;this.height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:af.dbkey};this.data_manager=new I(B,this,false);this.tile_cache=new c(u)};p(A.prototype,q.prototype,N.prototype,{init:function(){this.enabled=true},draw_tile:function(ap,al,ak,ag,aq){var aj=this,ah=R*ak;if(aq>this.view.canvas_manager.char_width_px){if(ap.data===null){aj.content_div.css("height","0px");return}var ai=this.view.canvas_manager.new_canvas();var ao=ai.getContext("2d");ai.width=Math.ceil(ah*aq+aj.left_offset);ai.height=aj.height_px;ao.font=ao.canvas.manager.default_font;ao.textAlign="center";ap=ap.data;for(var am=0,an=ap.length;am<an;am++){var af=Math.round(am*aq);ao.fillText(ap[am],af+aj.left_offset,10)}return new b(aj,ag,ak,ai,ap)}this.content_div.css("height","0px")}});var j=function(ak,ai,ah,al,af,aj){var ag=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";N.call(this,ak,ai,ah,true,aj);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=al;this.dataset_id=af;this.original_dataset_id=af;this.data_manager=new S(B,this);this.tile_cache=new c(u);this.left_offset=0;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.height_px,hidden:true}],saved_values:aj,onchange:function(){ag.set_name(ag.prefs.name);ag.vertical_range=ag.prefs.max_value-ag.prefs.min_value;$("#linetrack_"+ag.dataset_id+"_minval").text(ag.prefs.min_value);$("#linetrack_"+ag.dataset_id+"_maxval").text(ag.prefs.max_value);ag.tile_cache.clear();ag.request_draw()}});this.prefs=this.config.values;this.height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value;this.add_resize_handle()};p(j.prototype,q.prototype,N.prototype,{add_resize_handle:function(){var af=this;var ai=false;var ah=false;var ag=$("<div class='track-resize'>");$(af.container_div).hover(function(){if(af.content_visible){ai=true;ag.show()}},function(){ai=false;if(!ah){ag.hide()}});ag.hide().bind("dragstart",function(aj,ak){ah=true;ak.original_height=$(af.content_div).height()}).bind("drag",function(ak,al){var aj=Math.min(Math.max(al.original_height+al.deltaY,af.min_height_px),af.max_height_px);$(af.content_div).css("height",aj);af.height_px=aj;af.request_draw(true)}).bind("dragend",function(aj,ak){af.tile_cache.clear();ah=false;if(!ai){ag.hide()}af.config.values.height=af.height_px}).appendTo(af.container_div)},predraw_init:function(){var af=this;af.vertical_range=undefined;return $.getJSON(af.data_url,{stats:true,chrom:af.view.chrom,low:null,high:null,hda_ldda:af.hda_ldda,dataset_id:af.dataset_id},function(ag){af.container_div.addClass("line-track");var aj=ag.data;if(isNaN(parseFloat(af.prefs.min_value))||isNaN(parseFloat(af.prefs.max_value))){var ah=aj.min;var al=aj.max;ah=Math.floor(Math.min(0,Math.max(ah,aj.mean-2*aj.sd)));al=Math.ceil(Math.max(0,Math.min(al,aj.mean+2*aj.sd)));af.prefs.min_value=ah;af.prefs.max_value=al;$("#track_"+af.dataset_id+"_minval").val(af.prefs.min_value);$("#track_"+af.dataset_id+"_maxval").val(af.prefs.max_value)}af.vertical_range=af.prefs.max_value-af.prefs.min_value;af.total_frequency=aj.total_frequency;af.container_div.find(".yaxislabel").remove();var ak=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_minval").text(Z(af.prefs.min_value,3));var ai=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_maxval").text(Z(af.prefs.max_value,3));ai.css({position:"absolute",top:"24px",left:"10px"});ai.prependTo(af.container_div);ak.css({position:"absolute",bottom:"2px",left:"10px"});ak.prependTo(af.container_div)})},draw_tile:function(ar,ak,aj,ah,aq){if(this.vertical_range===undefined){return}var af=this._get_tile_bounds(ah,aj),al=af[0],ap=af[1],ag=Math.ceil((ap-al)*aq),an=this.height_px;var ai=this.view.canvas_manager.new_canvas();ai.width=ag,ai.height=an;var ao=ai.getContext("2d");var am=new M.LinePainter(ar.data,al,ap,this.prefs,ak);am.draw(ao,ag,an);return new b(this.track,ah,aj,ai,ar.data)}});var e=function(af,al,ag,ak,an,am,ai,aj){var ah=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];N.call(this,af,al,ag,true,am,ai,aj);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){ah.set_name(ah.prefs.name);ah.tile_cache.clear();ah.set_painter_from_config();ah.request_draw()}});this.prefs=this.config.values;this.height_px=0;this.container_div.addClass("feature-track");this.hda_ldda=ak;this.dataset_id=an;this.original_dataset_id=an;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.inc_slots={};this.start_end_dct={};this.tile_cache=new c(d);this.data_manager=new S(20,this);this.left_offset=200;this.set_painter_from_config()};p(e.prototype,q.prototype,N.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=M.ArcLinkedFeaturePainter}else{this.painter=M.LinkedFeaturePainter}},postdraw_actions:function(av,af,aw,au){N.prototype.postdraw_actions.call(this,av,au);var ai=this;if(au){var ak=ai.content_div.children();var al=false;for(var aj=ak.length-1,ap=0;aj>=ap;aj--){var ah=$(ak[aj]);if(al){ah.remove()}else{if(ah.children().length!==0){al=true}}}}if(ai.mode=="Histogram"){var ao=-1;for(var aj=0;aj<av.length;aj++){var at=av[aj].max_val;if(at>ao){ao=at}}for(var aj=0;aj<av.length;aj++){var ar=av[aj];if(ar.max_val!==ao){ar.canvas.remove();ai.draw_helper(true,af,ar.index,ar.resolution,ar.canvas.parent(),aw,[],{max:ao})}}}if(ai.filters_manager){var ag=ai.filters_manager.filters;for(var an=0;an<ag.length;an++){ag[an].update_ui_elt()}var am=false,aq;for(var aj=0;aj<av.length;aj++){if(av[aj].data.length){aq=av[aj].data[0];for(var an=0;an<ag.length;an++){if(ag[an].applies_to(aq)){am=true;break}}}}if(ai.filters_available!==am){ai.filters_available=am;if(!ai.filters_available){ai.filters_div.hide()}ai.update_icons()}}},update_auto_mode:function(af){if(this.mode=="Auto"){if(af=="no_detail"){af="feature spans"}else{if(af=="summary_tree"){af="coverage histogram"}}this.mode_div.text("Auto ("+af+")")}},incremental_slots:function(aj,ag,ai){var ah=this.view.canvas_manager.dummy_context,af=this.inc_slots[aj];if(!af||(af.mode!==ai)){af=new (s.FeatureSlotter)(aj,ai==="Pack",z,function(ak){return ah.measureText(ak)});af.mode=ai;this.inc_slots[aj]=af}return af.slot_features(ag)},get_summary_tree_data:function(aj,am,ah,av){if(av>ah-am){av=ah-am}var aq=Math.floor((ah-am)/av),au=[],ai=0;var ak=0,al=0,ap,at=0,an=[],ar,ao;var ag=function(ay,ax,az,aw){ay[0]=ax+az*aw;ay[1]=ax+(az+1)*aw};while(at<av&&ak!==aj.length){var af=false;for(;at<av&&!af;at++){ag(an,am,at,aq);for(al=ak;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){af=true;break}}if(af){break}}data_start_index=al;au[au.length]=ar=[an[0],0];for(;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){ar[1]++}else{break}}if(ar[1]>ai){ai=ar[1]}at++}return{max:ai,delta:aq,data:au}},draw_tile:function(au,ax,aB,aF,ap,ai){var ay=this,ak=ay._get_tile_bounds(aF,aB),aI=ak[0],ag=ak[1],aw=ag-aI,az=Math.ceil(aw*ap),aO=25,aj=this.left_offset,av,al;if(ax==="Auto"){if(au.dataset_type==="summary_tree"){ax=au.dataset_type}else{if(au.extra_info==="no_detail"||ay.is_overview){ax="no_detail"}else{var aN=au.data;if(this.view.high-this.view.low>J){ax="Squish"}else{ax="Pack"}}}this.update_auto_mode(ax)}if(ax==="summary_tree"||ax==="Histogram"){al=this.summary_draw_height;this.container_div.find(".yaxislabel").remove();var af=$("<div />").addClass("yaxislabel");af.text(au.max);af.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});af.prependTo(this.container_div);var ah=this.view.canvas_manager.new_canvas();ah.width=az+aj;ah.height=al+T;if(au.dataset_type!="summary_tree"){var aq=this.get_summary_tree_data(au.data,aI,ag,200);if(au.max){aq.max=au.max}au=aq}var aK=new M.SummaryTreePainter(au,aI,ag,this.prefs);var aA=ah.getContext("2d");aA.translate(aj,T);aK.draw(aA,az,al);return new k(ay,aF,aB,ah,au.data,au.max)}var av,an=1;if(ax==="no_detail"||ax==="Squish"||ax==="Pack"){an=this.incremental_slots(ap,au.data,ax);av=this.inc_slots[ap].slots}var ao=[];if(au.data){var ar=this.filters_manager.filters;for(var aC=0,aE=au.data.length;aC<aE;aC++){var am=au.data[aC];var aD=false;var at;for(var aH=0,aM=ar.length;aH<aM;aH++){at=ar[aH];at.update_attrs(am);if(!at.keep(am)){aD=true;break}}if(!aD){ao.push(am)}}}var aL=(this.filters_manager.alpha_filter?new D(this.filters_manager.alpha_filter):null);var aJ=(this.filters_manager.height_filter?new D(this.filters_manager.height_filter):null);var aK=new (this.painter)(ao,aI,ag,this.prefs,ax,aL,aJ,ai);var al=Math.max(ad,aK.get_required_height(an,az));var ah=this.view.canvas_manager.new_canvas();var aG=null;ah.width=az+aj;ah.height=al;var aA=ah.getContext("2d");aA.fillStyle=this.prefs.block_color;aA.font=aA.canvas.manager.default_font;aA.textAlign="right";this.container_div.find(".yaxislabel").remove();if(au.data){aA.translate(aj,0);aG=aK.draw(aA,az,al,av);aG.translation=-aj}return new P(ay,aF,aB,ah,au.data,ax,au.message,aG)}});var U=function(ak,ah,ag,am,af,aj,al,ai){e.call(this,ak,ah,ag,am,af,aj,al,ai);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:aj,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter};p(U.prototype,q.prototype,N.prototype,e.prototype);var W=function(af,ak,ag,aj,an,am,ah){e.call(this,af,ak,ag,aj,an,am,ah);var ai=get_random_color(),al=get_random_color([ai,"#ffffff"]);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ai},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:al},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter;this.update_icons()};p(W.prototype,q.prototype,N.prototype,e.prototype);X.View=ac;X.DrawableGroup=Q;X.LineTrack=j;X.FeatureTrack=e;X.ReadTrack=W;X.VcfTrack=U};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.include_label=h;this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,s=this.slots,h=this.start_end_dct,y=[],A=[],n=0,z=this.max_rows;for(var w=0,x=m.length;w<x;w++){var l=m[w],o=l[0];if(s[o]!==undefined){n=Math.max(n,s[o]);A.push(s[o])}else{y.push(w)}}var q=function(F,G){for(var E=0;E<=z;E++){var C=false,H=h[E];if(H!==undefined){for(var B=0,D=H.length;B<D;B++){var i=H[B];if(G>i[0]&&F<i[1]){C=true;break}}}if(!C){return E}}return -1};for(var w=0,x=y.length;w<x;w++){var l=m[y[w]],o=l[0],u=l[1],f=l[2],r=l[3],g=Math.floor(u*p),k=Math.ceil(f*p),v=this.measureText(r).width,j;if(r!==undefined&&this.include_label){v+=(d+a);if(g-v>=0){g-=v;j="left"}else{k+=v;j="right"}}var t=q(g,k);if(t>=0){if(h[t]===undefined){h[t]=[]}h[t].push([g,k]);s[o]=t;n=Math.max(n,t)}else{}}return n+1}})};var painters_module=function(i,x){var u=i("class").extend;var p=function(I,A,G,z,F,D){if(D===undefined){D=4}var C=z-A;var B=F-G;var E=Math.floor(Math.sqrt(C*C+B*B)/D);var J=C/E;var H=B/E;var y;for(y=0;y<E;y++,A+=J,G+=H){if(y%2!==0){continue}I.fillRect(A,G,D,1)}};var q=function(B,A,z,E){var D=A-E/2,C=A+E/2,F=z-Math.sqrt(E*3/2);B.beginPath();B.moveTo(D,F);B.lineTo(C,F);B.lineTo(A,z);B.lineTo(D,F);B.strokeStyle=this.fillStyle;B.fill();B.stroke();B.closePath()};var d=function(y){this.default_val=(y?y:1)};d.prototype.gen_val=function(y){return this.default_val};var l=function(A,C,y,z,B){this.data=A;this.view_start=C;this.view_end=y;this.prefs=u({},this.default_prefs,z);this.mode=B};l.prototype.default_prefs={};var v=function(A,C,y,z,B){l.call(this,A,C,y,z,B)};v.prototype.default_prefs={show_counts:false};v.prototype.draw=function(M,z,L){var E=this.view_start,O=this.view_end-this.view_start,N=z/O;var J=this.data.data,I=this.data.delta,G=this.data.max,B=L;delta_x_px=Math.ceil(I*N);M.save();for(var C=0,D=J.length;C<D;C++){var H=Math.floor((J[C][0]-E)*N);var F=J[C][1];if(!F){continue}var K=F/G*L;if(F!==0&&K<1){K=1}M.fillStyle=this.prefs.block_color;M.fillRect(H,B-K,delta_x_px,K);var A=4;if(this.prefs.show_counts&&(M.measureText(F).width+A)<delta_x_px){M.fillStyle=this.prefs.label_color;M.textAlign="center";M.fillText(F,H+(delta_x_px/2),10)}}M.restore()};var b=function(y,C,E,F,A){l.call(this,y,C,E,F,A);if(this.prefs.min_value===undefined){var G=Infinity;for(var z=0,B=this.data.length;z<B;z++){G=Math.min(G,this.data[z][1])}this.prefs.min_value=G}if(this.prefs.max_value===undefined){var D=-Infinity;for(var z=0,B=this.data.length;z<B;z++){D=Math.max(D,this.data[z][1])}this.prefs.max_value=D}};b.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};b.prototype.draw=function(N,M,K){var F=false,H=this.prefs.min_value,D=this.prefs.max_value,J=D-H,z=K,A=this.view_start,L=this.view_end-this.view_start,B=M/L,I=this.mode,T=this.data;N.save();var U=Math.round(K+H/J*K);if(I!=="Intensity"){N.fillStyle="#aaa";N.fillRect(0,U,M,1)}N.beginPath();var R,E,C;if(T.length>1){C=Math.ceil((T[1][0]-T[0][0])*B)}else{C=10}for(var O=0,P=T.length;O<P;O++){N.fillStyle=this.prefs.color;R=Math.round((T[O][0]-A)*B);E=T[O][1];var Q=false,G=false;if(E===null){if(F&&I==="Filled"){N.lineTo(R,z)}F=false;continue}if(E<H){G=true;E=H}else{if(E>D){Q=true;E=D}}if(I==="Histogram"){E=Math.round(E/J*z);N.fillRect(R,U,C,-E)}else{if(I==="Intensity"){E=255-Math.floor((E-H)/J*255);N.fillStyle="rgb("+E+","+E+","+E+")";N.fillRect(R,0,C,z)}else{E=Math.round(z-(E-H)/J*z);if(F){N.lineTo(R,E)}else{F=true;if(I==="Filled"){N.moveTo(R,z);N.lineTo(R,E)}else{N.moveTo(R,E)}}}}N.fillStyle=this.prefs.overflow_color;if(Q||G){var S;if(I==="Histogram"||I==="Intensity"){S=C}else{R-=2;S=4}if(Q){N.fillRect(R,0,S,3)}if(G){N.fillRect(R,z-3,S,3)}}N.fillStyle=this.prefs.color}if(I==="Filled"){if(F){N.lineTo(R,U);N.lineTo(0,U)}N.fill()}else{N.stroke()}N.restore()};var m=function(y){this.feature_positions={};this.slot_height=y;this.translation=0;this.y_translation=0};m.prototype.map_feature_data=function(z,B,y,A){if(!this.feature_positions[B]){this.feature_positions[B]=[]}this.feature_positions[B].push({data:z,x_start:y,x_end:A})};m.prototype.get_feature_data=function(z,D){var C=Math.floor((D-this.y_translation)/this.slot_height),B;if(!this.feature_positions[C]){return null}z+=this.translation;for(var A=0;A<this.feature_positions[C].length;A++){B=this.feature_positions[C][A];if(z>=B.x_start&&z<=B.x_end){return B.data}}};var o=function(A,D,y,z,C,E,B){l.call(this,A,D,y,z,C);this.alpha_scaler=(E?E:new d());this.height_scaler=(B?B:new d())};o.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};u(o.prototype,{get_required_height:function(A,z){var y=y_scale=this.get_row_height(),B=this.mode;if(B==="no_detail"||B==="Squish"||B==="Pack"){y=A*y_scale}return y+this.get_top_padding(z)+this.get_bottom_padding(z)},get_top_padding:function(y){return 0},get_bottom_padding:function(y){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(K,I,G,F){var Q=this.data,D=this.view_start,M=this.view_end;K.save();K.fillStyle=this.prefs.block_color;K.textAlign="right";var H=this.view_end-this.view_start,E=I/H,L=this.get_row_height(),P=new m(L),B;for(var N=0,O=Q.length;N<O;N++){var A=Q[N],C=A[0],J=A[1],y=A[2],z=(F&&F[C]!==undefined?F[C]:null);if((J<M&&y>D)&&(this.mode=="Dense"||z!==null)){B=this.draw_element(K,this.mode,A,z,D,M,E,L,I);P.map_feature_data(A,z,B[0],B[1])}}K.restore();P.y_translation=this.get_top_padding(I);return P},draw_element:function(E,A,G,C,B,D,F,z,y){console.log("WARNING: Unimplemented function.");return[0,0]}});var c=10,h=3,k=5,w=10,f=1,s=9,e=3,a=9,j=2,g="#ccc";var r=function(A,D,y,z,C,E,B){o.call(this,A,D,y,z,C,E,B);this.draw_background_connector=true;this.draw_individual_connectors=false};u(r.prototype,o.prototype,{get_row_height:function(){var z=this.mode,y;if(z==="Dense"){y=c}else{if(z==="no_detail"){y=h}else{if(z==="Squish"){y=k}else{y=w}}}return y},draw_element:function(M,D,X,H,O,aj,an,ap,y){var T=X[0],al=X[1],ad=X[2],Q=X[3],ae=Math.floor(Math.max(0,(al-O)*an)),N=Math.ceil(Math.min(y,Math.max(0,(ad-O)*an))),ac=ae,ao=N,aa=(D==="Dense"?0:(0+H))*ap+this.get_top_padding(y),L,ah,R=null,ar=null,B=this.prefs.block_color,ag=this.prefs.label_color;M.globalAlpha=this.alpha_scaler.gen_val(X);if(D==="Dense"){H=1}if(D==="no_detail"){M.fillStyle=B;M.fillRect(ae,aa+5,N-ae,f)}else{var K=X[4],Z=X[5],af=X[6],C=X[7],V=true;if(Z&&af){R=Math.floor(Math.max(0,(Z-O)*an));ar=Math.ceil(Math.min(y,Math.max(0,(af-O)*an)))}var am,U;if(D==="Squish"){am=1;U=e;V=false}else{if(D==="Dense"){am=5;U=s}else{am=5;U=a}}if(!C){M.fillStyle=B;M.fillRect(ae,aa+1,N-ae,U);if(K&&V){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}M.fillRect(ae,aa+1,N-ae,U)}}else{var J,W;if(D==="Squish"||D==="Dense"){J=aa+Math.floor(e/2)+1;W=1}else{if(K){J=aa;W=U}else{J+=(e/2)+1;W=1}}if(this.draw_background_connector){if(D==="Squish"||D==="Dense"){M.fillStyle=g}else{if(K){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand")}}}else{M.fillStyle=g}}M.fillRect(ae,J,N-ae,W)}var E;for(var ak=0,A=C.length;ak<A;ak++){var F=C[ak],z=Math.floor(Math.max(0,(F[0]-O)*an)),Y=Math.ceil(Math.min(y,Math.max((F[1]-O)*an))),S,ab;if(z>Y){continue}M.fillStyle=B;M.fillRect(z,aa+(U-am)/2+1,Y-z,am);if(R!==undefined&&af>Z&&!(z>ar||Y<R)){var ai=Math.max(z,R),I=Math.min(Y,ar);M.fillRect(ai,aa+1,I-ai,U);if(C.length==1&&D=="Pack"){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}if(ai+14<I){ai+=2;I-=2}M.fillRect(ai,aa+1,I-ai,U)}}if(this.draw_individual_connectors&&S){this.draw_connector(M,S,ab,z,Y,aa)}S=z;ab=Y}if(D==="Pack"){M.globalAlpha=1;M.fillStyle="white";var G=this.height_scaler.gen_val(X),P=Math.ceil(U*G),aq=Math.round((U-P)/2);if(G!==1){M.fillRect(ae,J+1,N-ae,aq);M.fillRect(ae,J+U-aq+1,N-ae,aq)}}}M.globalAlpha=1;if(D==="Pack"&&al>O){M.fillStyle=ag;if(O===0&&ae-M.measureText(Q).width<0){M.textAlign="left";M.fillText(Q,N+j,aa+8);ao+=M.measureText(Q).width+j}else{M.textAlign="right";M.fillText(Q,ae-j,aa+8);ac-=M.measureText(Q).width+j}}}M.globalAlpha=1;return[ac,ao]}});var t=function(B,E,y,A,D,F,C,z){o.call(this,B,E,y,A,D,F,C);this.ref_seq=(z?z.data:null)};u(t.prototype,o.prototype,{get_row_height:function(){var y,z=this.mode;if(z==="Dense"){y=c}else{if(z==="Squish"){y=k}else{y=w;if(this.prefs.show_insertions){y*=2}}}return y},draw_read:function(K,A,ag,V,L,aa,ad,C,B,M){K.textAlign="center";var J=this,R=[L,aa],Z=0,W=0,D=0,F=K.canvas.manager.char_width_px,y=(B==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var O=[];if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){D=Math.round(ag/2)}if(!C){C=[[0,M.length]]}for(var G=0,I=C.length;G<I;G++){var z=C[G],E="MIDNSHP=X"[z[0]],S=z[1];if(E==="H"||E==="S"){Z-=S}var U=ad+Z,Y=Math.floor(Math.max(0,(U-L)*ag)),ab=Math.floor(Math.max(0,(U+S-L)*ag));if(Y===ab){ab+=1}switch(E){case"H":break;case"S":case"M":case"=":if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(D>0){K.fillStyle=y;K.fillRect(Y-D,V+1,ab-Y,9);K.fillStyle=g;for(var af=0,H=N.length;af<H;af++){if(this.prefs.show_differences&&this.ref_seq){var P=this.ref_seq[U-L+af];if(!P||P.toLowerCase()===N[af].toLowerCase()){continue}}if(U+af>=L&&U+af<=aa){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X,V+9)}}}else{K.fillStyle=y;K.fillRect(Y,V+4,ab-Y,e)}}W+=S;Z+=S;break;case"N":K.fillStyle=g;K.fillRect(Y-D,V+5,ab-Y,1);Z+=S;break;case"D":K.fillStyle="red";K.fillRect(Y-D,V+4,ab-Y,3);Z+=S;break;case"P":break;case"I":var ah=Y-D;if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(this.prefs.show_insertions){var T=Y-(ab-Y)/2;if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){K.fillStyle="yellow";K.fillRect(T-D,V-9,ab-Y,9);O[O.length]={type:"triangle",data:[ah,V+4,5]};K.fillStyle=g;switch(compute_overlap([U,U+S],R)){case (OVERLAP_START):N=N.slice(L-U);break;case (OVERLAP_END):N=N.slice(0,U-aa);break;case (CONTAINED_BY):break;case (CONTAINS):N=N.slice(L-U,U-aa);break}for(var af=0,H=N.length;af<H;af++){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X-(ab-Y)/2,V)}}else{K.fillStyle="yellow";K.fillRect(T,V+(this.mode!=="Dense"?2:5),ab-Y,(A!=="Dense"?e:s))}}else{if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){O.push({type:"text",data:[N.length,ah,V+9]})}else{}}}W+=S;break;case"X":W+=S;break}}K.fillStyle="yellow";var Q,ai,ae;for(var ac=0;ac<O.length;ac++){Q=O[ac];ai=Q.type;ae=Q.data;if(ai==="text"){K.save();K.font="bold "+K.font;K.fillText(ae[0],ae[1],ae[2]);K.restore()}else{if(ai=="triangle"){q(K,ae[0],ae[1],ae[2])}}}},draw_element:function(R,M,E,B,U,z,I,S,P){var H=E[0],Q=E[1],A=E[2],J=E[3],D=Math.floor(Math.max(0,(Q-U)*I)),F=Math.ceil(Math.min(P,Math.max(0,(A-U)*I))),C=(M==="Dense"?0:(0+B))*S,G=this.prefs.label_color,O=0;if((M==="Pack"||this.mode==="Auto")&&I>R.canvas.manager.char_width_px){var O=Math.round(I/2)}if(E[5] instanceof Array){var N=Math.floor(Math.max(0,(E[4][0]-U)*I)),L=Math.ceil(Math.min(P,Math.max(0,(E[4][1]-U)*I))),K=Math.floor(Math.max(0,(E[5][0]-U)*I)),y=Math.ceil(Math.min(P,Math.max(0,(E[5][1]-U)*I)));if(E[4][1]>=U&&E[4][0]<=z&&E[4][2]){this.draw_read(R,M,I,C,U,z,E[4][0],E[4][2],E[4][3],E[4][4])}if(E[5][1]>=U&&E[5][0]<=z&&E[5][2]){this.draw_read(R,M,I,C,U,z,E[5][0],E[5][2],E[5][3],E[5][4])}if(K>L){R.fillStyle=g;p(R,L-O,C+5,K-O,C+5)}}else{this.draw_read(R,M,I,C,U,z,Q,E[4],E[5],E[6])}if(M==="Pack"&&Q>U&&J!=="."){R.fillStyle=this.prefs.label_color;var T=1;if(T===0&&D-R.measureText(J).width<0){R.textAlign="left";R.fillText(J,F+j-O,C+8)}else{R.textAlign="right";R.fillText(J,D-j-O,C+8)}}return[0,0]}});var n=function(A,D,y,z,C,E,B){r.call(this,A,D,y,z,C,E,B);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};u(n.prototype,o.prototype,r.prototype,{calculate_longest_feature_length:function(){var z=0;for(var C=0,y=this.data.length;C<y;C++){var B=this.data[C],A=B[1],D=B[2];z=Math.max(z,D-A)}return z},get_top_padding:function(z){var y=this.view_end-this.view_start,A=z/y;return Math.min(128,Math.ceil((this.longest_feature_length/2)*A))},draw_connector:function(G,B,F,H,E,D){var y=(F+H)/2,C=H-y;var A=Math.PI,z=0;if(C>0){G.beginPath();G.arc(y,D,H-y,Math.PI,0);G.stroke()}}});x.Scaler=d;x.SummaryTreePainter=v;x.LinePainter=b;x.LinkedFeaturePainter=r;x.ReadPainter=t;x.ArcLinkedFeaturePainter=n};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
+var class_module=function(b,a){var c=function(){var f=arguments[0];for(var e=1;e<arguments.length;e++){var d=arguments[e];for(key in d){f[key]=d[key]}}return f};a.extend=c};var requestAnimationFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(b,a){window.setTimeout(b,1000/60)}})();var BEFORE=1001,CONTAINS=1002,OVERLAP_START=1003,OVERLAP_END=1004,CONTAINED_BY=1005,AFTER=1006;var compute_overlap=function(e,b){var g=e[0],f=e[1],d=b[0],c=b[1],a;if(g<d){if(f<d){a=BEFORE}else{if(f<=c){a=OVERLAP_START}else{a=CONTAINS}}}else{if(g>c){a=AFTER}else{if(f<=c){a=CONTAINED_BY}else{a=OVERLAP_END}}}return a};var is_overlap=function(c,b){var a=compute_overlap(c,b);return(a!==BEFORE&&a!==AFTER)};var get_random_color=function(a){if(!a){a="#ffffff"}if(typeof(a)==="string"){a=[a]}for(var j=0;j<a.length;j++){a[j]=parseInt(a[j].slice(1),16)}var m=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(u,t,v,r,i,s){return(Math.max(u,r)-Math.min(u,r))+(Math.max(t,i)-Math.min(t,i))+(Math.max(v,s)-Math.min(v,s))};var g,n,f,k,p,h,q,c,d,b,o,l=false;do{g=Math.random()*16777215;n=g|16711680;f=g|65280;k=g|255;d=m(n,f,k);l=true;for(var j=0;j<a.length;j++){p=a[j];h=p|16711680;q=p|65280;c=p|255;b=m(h,q,c);o=e(n,f,k,h,q,c);if((Math.abs(d-b)<125)||(o<500)){l=false;break}}}while(!l);return"#"+(16777216+g).toString(16).substr(1,6)};var trackster_module=function(f,X){var p=f("class").extend,s=f("slotting"),M=f("painters");var ae=function(af,ag){this.document=af;this.default_font=ag!==undefined?ag:"9px Monaco, Lucida Console, monospace";this.dummy_canvas=this.new_canvas();this.dummy_context=this.dummy_canvas.getContext("2d");this.dummy_context.font=this.default_font;this.char_width_px=this.dummy_context.measureText("A").width;this.patterns={};this.load_pattern("right_strand","/visualization/strand_right.png");this.load_pattern("left_strand","/visualization/strand_left.png");this.load_pattern("right_strand_inv","/visualization/strand_right_inv.png");this.load_pattern("left_strand_inv","/visualization/strand_left_inv.png")};p(ae.prototype,{load_pattern:function(af,aj){var ag=this.patterns,ah=this.dummy_context,ai=new Image();ai.src=image_path+aj;ai.onload=function(){ag[af]=ah.createPattern(ai,"repeat")}},get_pattern:function(af){return this.patterns[af]},new_canvas:function(){var af=this.document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(af)}af.manager=this;return af}});var n={};var l=function(af,ag){n[af.attr("id")]=ag};var m=function(af,ah,aj,ai){aj=".group";var ag={};n[af.attr("id")]=ai;af.bind("drag",{handle:"."+ah,relative:true},function(ar,at){var aq=$(this);var aw=$(this).parent(),an=aw.children(),ap=n[$(this).attr("id")],am,al,au,ak,ao;al=$(this).parents(aj);if(al.length!==0){au=al.position().top;ak=au+al.outerHeight();if(at.offsetY<au){$(this).insertBefore(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable_before(ap,av);return}else{if(at.offsetY>ak){$(this).insertAfter(al);var av=n[al.attr("id")];av.remove_drawable(ap);av.container.add_drawable(ap);return}}}al=null;for(ao=0;ao<an.length;ao++){am=$(an.get(ao));au=am.position().top;ak=au+am.outerHeight();if(am.is(aj)&&this!==am.get(0)&&at.offsetY>=au&&at.offsetY<=ak){if(at.offsetY-au<ak-at.offsetY){am.find(".content-div").prepend(this)}else{am.find(".content-div").append(this)}if(ap.container){ap.container.remove_drawable(ap)}n[am.attr("id")].add_drawable(ap);return}}for(ao=0;ao<an.length;ao++){if(at.offsetY<$(an.get(ao)).position().top){break}}if(ao===an.length){if(this!==an.get(ao-1)){aw.append(this);n[aw.attr("id")].move_drawable(ap,ao)}}else{if(this!==an.get(ao)){$(this).insertBefore(an.get(ao));n[aw.attr("id")].move_drawable(ap,(at.deltaY>0?ao-1:ao))}}}).bind("dragstart",function(){ag["border-top"]=af.css("border-top");ag["border-bottom"]=af.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(ag)})};X.moveable=m;var ad=16,H=9,E=20,T=H+2,z=100,J=12000,R=200,C=5,v=10,L=5000,w=100,o="There was an error in indexing this dataset. ",K="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",F="No data for this chrom/contig.",t="Currently indexing... please wait",x="Tool cannot be rerun: ",a="Loading data...",Y="Ready for display",d=10,u=5,B=5;function Z(ag,af){if(!af){af=0}var ah=Math.pow(10,af);return Math.round(ag*ah)/ah}var c=function(af){this.num_elements=af;this.clear()};p(c.prototype,{get:function(ag){var af=this.key_ary.indexOf(ag);if(af!==-1){if(this.obj_cache[ag].stale){this.key_ary.splice(af,1);delete this.obj_cache[ag]}else{this.move_key_to_end(ag,af)}}return this.obj_cache[ag]},set:function(ag,ah){if(!this.obj_cache[ag]){if(this.key_ary.length>=this.num_elements){var af=this.key_ary.shift();delete this.obj_cache[af]}this.key_ary.push(ag)}this.obj_cache[ag]=ah;return ah},move_key_to_end:function(ag,af){this.key_ary.splice(af,1);this.key_ary.push(ag)},clear:function(){this.obj_cache={};this.key_ary=[]},size:function(){return this.key_ary.length}});var S=function(ag,af,ah){c.call(this,ag);this.track=af;this.subset=(ah!==undefined?ah:true)};p(S.prototype,c.prototype,{load_data:function(ao,aj,am,ag,al){var an=this.track.view.chrom,ai={chrom:an,low:ao,high:aj,mode:am,resolution:ag,dataset_id:this.track.dataset_id,hda_ldda:this.track.hda_ldda};$.extend(ai,al);if(this.track.filters_manager){var ap=[];var af=this.track.filters_manager.filters;for(var ak=0;ak<af.length;ak++){ap[ap.length]=af[ak].name}ai.filter_cols=JSON.stringify(ap)}var ah=this;return $.getJSON(this.track.data_url,ai,function(aq){ah.set_data(ao,aj,am,aq)})},get_data:function(af,aj,ak,ag,ai){var ah=this.get_data_from_cache(af,aj,ak);if(ah){return ah}ah=this.load_data(af,aj,ak,ag,ai);this.set_data(af,aj,ak,ah);return ah},DEEP_DATA_REQ:"deep",BROAD_DATA_REQ:"breadth",get_more_data:function(an,ai,am,ah,al,aj){var ao=this.get_data_from_cache(an,ai,am);if(!ao){console.log("ERROR: no current data for: ",this.track,an,ai,am,ah,al);return}ao.stale=true;var ag=an;if(aj===this.DEEP_DATA_REQ){$.extend(al,{start_val:ao.data.length+1})}else{if(aj===this.BROAD_DATA_REQ){ag=(ao.max_high?ao.max_high:ao.data[ao.data.length-1][2])+1}}var af=this,ak=this.load_data(ag,ai,am,ah,al);new_data_available=$.Deferred();this.set_data(an,ai,am,new_data_available);$.when(ak).then(function(ap){if(ap.data){ap.data=ao.data.concat(ap.data);if(ap.max_low){ap.max_low=ao.max_low}if(ap.message){ap.message=ap.message.replace(/[0-9]+/,ap.data.length)}}af.set_data(an,ai,am,ap);new_data_available.resolve(ap)});return new_data_available},get_data_from_cache:function(af,ag,ah){return this.get(this.gen_key(af,ag,ah))},set_data:function(ag,ah,ai,af){return this.set(this.gen_key(ag,ah,ai),af)},gen_key:function(af,ah,ai){var ag=af+"_"+ah+"_"+ai;return ag},split_key:function(af){return af.split("_")}});var I=function(ag,af,ah){S.call(this,ag,af,ah)};p(I.prototype,S.prototype,c.prototype,{load_data:function(af,ai,aj,ag,ah){if(ag>1){return{data:null}}return S.prototype.load_data.call(this,af,ai,aj,ag,ah)}});var q=function(ai,ag,af,ah,ak){if(!q.id_counter){q.id_counter=0}this.id=q.id_counter++;this.name=ai;this.view=ag;this.container=af;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ai}],saved_values:ah,onchange:function(){this.track.set_name(this.track.config.values.name)}});this.prefs=this.config.values;this.drag_handle_class=ak;this.is_overview=false;this.content_visible=true;this.container_div=this.build_container_div();this.header_div=this.build_header_div();if(this.header_div){this.container_div.append(this.header_div);this.icons_div=this.build_icons_div().hide();this.header_div.append(this.icons_div);this.header_div.dblclick(function(al){al.stopPropagation()});var aj=this;this.container_div.hover(function(){aj.icons_div.show()},function(){aj.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};p(q.prototype,{init:function(){},request_draw:function(){},_draw:function(){},to_json:function(){},update_icons:function(){},set_name:function(af){this.old_name=this.name;this.name=af;this.name_div.text(this.name)},revert_name:function(){this.name=this.old_name;this.name_div.text(this.name)},remove:function(){this.container.remove_drawable(this);this.container_div.hide(0,function(){$(this).remove();view.update_intro_div();view.has_changes=true})},build_container_div:function(){},build_header_div:function(){},build_icons_div:function(){},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var y=function(aj,ai,ag,af,ah,ak){q.call(this,ai,ag,af,ah,ak);this.obj_type=aj;this.drawables=[]};p(y.prototype,q.prototype,{init:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af].init()}},_draw:function(){for(var af=0;af<this.drawables.length;af++){this.drawables[af]._draw()}},to_json:function(){var ag=[];for(var af=0;af<this.drawables.length;af++){ag.push(this.drawables[af].to_json())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:ag}},add_drawable:function(af){this.drawables.push(af);af.container=this},add_drawable_before:function(ah,af){var ag=this.drawables.indexOf(af);if(ag!=-1){this.drawables.splice(ag,0,ah);return true}return false},remove_drawable:function(ag){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);ag.container=null;return true}return false},move_drawable:function(ag,ah){var af=this.drawables.indexOf(ag);if(af!=-1){this.drawables.splice(af,1);this.drawables.splice(ah,0,ag);return true}return false}});var Q=function(ai,ag,af,ah){y.call(this,"DrawableGroup",ai,ag,af,ah,"group-handle");this.content_div=$("<div/>").addClass("content-div").attr("id","group_"+this.id+"_content_div").appendTo(this.container_div);l(this.container_div,this);l(this.content_div,this);m(this.container_div,this.drag_handle_class,".group",this)};p(Q.prototype,q.prototype,y.prototype,{build_container_div:function(){return $("<div/>").addClass("group").attr("id","group_"+this.id).appendTo(this.container.content_div)},build_header_div:function(){var af=$("<div/>").addClass("track-header");af.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(af);return af},build_icons_div:function(){var af=$("<div/>").css("float","left");this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show group content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(af);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(af);this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(af);var ag=this;this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var aj=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},ah=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ai=function(ak){if((ak.keyCode||ak.which)===27){aj()}else{if((ak.keyCode||ak.which)===13){ah()}}};$(window).bind("keypress.check_enter_esc",ai);show_modal("Configure Group",ag.config.build_form(),{Cancel:aj,OK:ah})});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return af},hide_contents:function(){this.content_div.hide()},show_contents:function(){this.content_div.show();this.request_draw()}});var ac=function(af,ai,ah,ag){y.call(this,"View");this.container=af;this.chrom=null;this.vis_id=ah;this.dbkey=ag;this.title=ai;this.label_tracks=[];this.tracks_to_be_redrawn=[];this.max_low=0;this.max_high=0;this.zoom_factor=3;this.min_separation=30;this.has_changes=false;this.load_chroms_deferred=null;this.init();this.canvas_manager=new ae(af.get(0).ownerDocument);this.reset()};p(ac.prototype,y.prototype,{init:function(){var ah=this.container,af=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ah);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ah);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ah);this.top_labeltrack=$("<div/>").addClass("top-labeltrack").appendTo(this.top_container);this.viewport_container=$("<div/>").addClass("viewport-container").attr("id","viewport-container").appendTo(this.browser_content_div);this.content_div=this.viewport_container;l(this.viewport_container,af);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ai=$("<div/>").text("Add Datasets to Visualization").addClass("action-button").appendTo(this.intro_div).click(function(){add_tracks()});this.nav_labeltrack=$("<div/>").addClass("nav-labeltrack").appendTo(this.bottom_container);this.nav_container=$("<div/>").addClass("nav-container").prependTo(this.top_container);this.nav=$("<div/>").addClass("nav").appendTo(this.nav_container);this.overview=$("<div/>").addClass("overview").appendTo(this.bottom_container);this.overview_viewport=$("<div/>").addClass("overview-viewport").appendTo(this.overview);this.overview_close=$("<a/>").attr("href","javascript:void(0);").attr("title","Close overview").addClass("icon-button overview-close tooltip").hide().appendTo(this.overview_viewport);this.overview_highlight=$("<div/>").addClass("overview-highlight").hide().appendTo(this.overview_viewport);this.overview_box_background=$("<div/>").addClass("overview-boxback").appendTo(this.overview_viewport);this.overview_box=$("<div/>").addClass("overview-box").appendTo(this.overview_viewport);this.default_overview_height=this.overview_box.height();this.nav_controls=$("<div/>").addClass("nav-controls").appendTo(this.nav);this.chrom_select=$("<select/>").attr({name:"chrom"}).css("width","15em").addClass("no-autocomplete").append("<option value=''>Loading</option>").appendTo(this.nav_controls);var ag=function(aj){if(aj.type==="focusout"||(aj.keyCode||aj.which)===13||(aj.keyCode||aj.which)===27){if((aj.keyCode||aj.which)!==27){af.go_to($(this).val())}$(this).hide();$(this).val("");af.location_span.show();af.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",ag).appendTo(this.nav_controls);this.location_span=$("<span/>").addClass("location").attr("original-title","Click to change location").tipsy({gravity:"n"}).appendTo(this.nav_controls);this.location_span.click(function(){af.location_span.hide();af.chrom_select.hide();af.nav_input.val(af.chrom+":"+af.low+"-"+af.high);af.nav_input.css("display","inline-block");af.nav_input.select();af.nav_input.focus()});if(this.vis_id!==undefined){this.hidden_input=$("<input/>").attr("type","hidden").val(this.vis_id).appendTo(this.nav_controls)}this.zo_link=$("<a/>").attr("id","zoom-out").attr("title","Zoom out").tipsy({gravity:"n"}).click(function(){af.zoom_out();af.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){af.zoom_in();af.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){af.change_chrom(af.chrom_select.val())});this.browser_content_div.click(function(aj){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(aj){af.zoom_in(aj.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(aj,ak){this.current_x=ak.offsetX}).bind("drag",function(aj,al){var am=al.offsetX-this.current_x;this.current_x=al.offsetX;var ak=Math.round(am/af.viewport_container.width()*(af.max_high-af.max_low));af.move_delta(-ak)});this.overview_close.click(function(){af.reset_overview()});this.viewport_container.bind("draginit",function(aj,ak){if(aj.clientX>af.viewport_container.width()-16){return false}}).bind("dragstart",function(aj,ak){ak.original_low=af.low;ak.current_height=aj.clientY;ak.current_x=ak.offsetX}).bind("drag",function(al,an){var aj=$(this);var ao=an.offsetX-an.current_x;var ak=aj.scrollTop()-(al.clientY-an.current_height);aj.scrollTop(ak);an.current_height=al.clientY;an.current_x=an.offsetX;var am=Math.round(ao/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}).bind("mousewheel",function(al,an,ak,aj){if(ak){ak*=50;var am=Math.round(-ak/af.viewport_container.width()*(af.high-af.low));af.move_delta(am)}});this.top_labeltrack.bind("dragstart",function(aj,ak){return $("<div />").css({height:af.browser_content_div.height()+af.top_labeltrack.height()+af.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(an,ao){$(ao.proxy).css({left:Math.min(an.pageX,ao.startX),width:Math.abs(an.pageX-ao.startX)});var ak=Math.min(an.pageX,ao.startX)-af.container.offset().left,aj=Math.max(an.pageX,ao.startX)-af.container.offset().left,am=(af.high-af.low),al=af.viewport_container.width();af.update_location(Math.round(ak/al*am)+af.low,Math.round(aj/al*am)+af.low)}).bind("dragend",function(ao,ap){var ak=Math.min(ao.pageX,ap.startX),aj=Math.max(ao.pageX,ap.startX),am=(af.high-af.low),al=af.viewport_container.width(),an=af.low;af.low=Math.round(ak/al*am)+an;af.high=Math.round(aj/al*am)+an;$(ap.proxy).remove();af.request_redraw()});this.add_label_track(new ab(this,{content_div:this.top_labeltrack}));this.add_label_track(new ab(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){af.resize_window()});$(document).bind("redraw",function(){af.redraw()});this.reset();$(window).trigger("resize")},update_intro_div:function(){if(this.drawables.length===0){this.intro_div.show()}else{this.intro_div.hide()}},update_location:function(af,ag){this.location_span.text(commatize(af)+" - "+commatize(ag));this.nav_input.val(this.chrom+":"+commatize(af)+"-"+commatize(ag))},load_chroms:function(ah){ah.num=w;$.extend(ah,(this.vis_id!==undefined?{vis_id:this.vis_id}:{dbkey:this.dbkey}));var af=this,ag=$.Deferred();$.ajax({url:chrom_url,data:ah,dataType:"json",success:function(aj){if(aj.chrom_info.length===0){alert("Invalid chromosome: "+ah.chrom);return}if(aj.reference){af.add_label_track(new A(af))}af.chrom_data=aj.chrom_info;var am='<option value="">Select Chrom/Contig</option>';for(var al=0,ai=af.chrom_data.length;al<ai;al++){var ak=af.chrom_data[al].chrom;am+='<option value="'+ak+'">'+ak+"</option>"}if(aj.prev_chroms){am+='<option value="previous">Previous '+w+"</option>"}if(aj.next_chroms){am+='<option value="next">Next '+w+"</option>"}af.chrom_select.html(am);af.chrom_start_index=aj.start_index;ag.resolve(aj)},error:function(){alert("Could not load chroms for this dbkey:",af.dbkey)}});return ag},change_chrom:function(ak,ag,am){if(!ak||ak==="None"){return}var ah=this;if(ak==="previous"){ah.load_chroms({low:this.chrom_start_index-w});return}if(ak==="next"){ah.load_chroms({low:this.chrom_start_index+w});return}var al=$.grep(ah.chrom_data,function(an,ao){return an.chrom===ak})[0];if(al===undefined){ah.load_chroms({chrom:ak},function(){ah.change_chrom(ak,ag,am)});return}else{if(ak!==ah.chrom){ah.chrom=ak;ah.chrom_select.val(ah.chrom);ah.max_high=al.len-1;ah.reset();ah.request_redraw(true);for(var aj=0,af=ah.drawables.length;aj<af;aj++){var ai=ah.drawables[aj];if(ai.init){ai.init()}}}if(ag!==undefined&&am!==undefined){ah.low=Math.max(ag,0);ah.high=Math.min(am,ah.max_high)}ah.reset_overview();ah.request_redraw()}},go_to:function(aj){aj=aj.replace(/ |,/g,"");var an=this,af,ai,ag=aj.split(":"),al=ag[0],am=ag[1];if(am!==undefined){try{var ak=am.split("-");af=parseInt(ak[0],10);ai=parseInt(ak[1],10)}catch(ah){return false}}an.change_chrom(al,af,ai)},move_fraction:function(ah){var af=this;var ag=af.high-af.low;this.move_delta(ah*ag)},move_delta:function(ah){var af=this;var ag=af.high-af.low;if(af.low-ah<af.max_low){af.low=af.max_low;af.high=af.max_low+ag}else{if(af.high-ah>af.max_high){af.high=af.max_high;af.low=af.max_high-ag}else{af.high-=ah;af.low-=ah}}af.request_redraw()},add_drawable:function(af){y.prototype.add_drawable.call(this,af);af.init();this.has_changes=true;this.update_intro_div()},add_label_track:function(af){af.view=this;af.init();this.label_tracks.push(af)},remove_drawable:function(ah,ag){y.prototype.remove_drawable.call(this,ah);if(ag){var af=this;ah.container_div.hide(0,function(){$(this).remove();af.update_intro_div()});this.has_changes=true}},reset:function(){this.low=this.max_low;this.high=this.max_high;this.viewport_container.find(".yaxislabel").remove()},request_redraw:function(an,af,am,ag){var al=this,aj=(ag?[ag]:al.drawables),ah;var ag;for(var ak=0;ak<aj.length;ak++){ag=aj[ak];ah=-1;for(var ai=0;ai<al.tracks_to_be_redrawn.length;ai++){if(al.tracks_to_be_redrawn[ai][0]===ag){ah=ai;break}}if(ah<0){al.tracks_to_be_redrawn.push([ag,af,am])}else{al.tracks_to_be_redrawn[ak][1]=af;al.tracks_to_be_redrawn[ak][2]=am}}requestAnimationFrame(function(){al._redraw(an)})},_redraw:function(ap){var am=this.low,ai=this.high;if(am<this.max_low){am=this.max_low}if(ai>this.max_high){ai=this.max_high}var ao=this.high-this.low;if(this.high!==0&&ao<this.min_separation){ai=am+this.min_separation}this.low=Math.floor(am);this.high=Math.ceil(ai);this.resolution=Math.pow(C,Math.ceil(Math.log((this.high-this.low)/R)/Math.log(C)));this.zoom_res=Math.pow(v,Math.max(0,Math.ceil(Math.log(this.resolution,v)/Math.log(v))));var af=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var al=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var aq=13;this.overview_box.css({left:af,width:Math.max(aq,al)}).show();if(al<aq){this.overview_box.css("left",af-(aq-al)/2)}if(this.overview_highlight){this.overview_highlight.css({left:af,width:al})}this.update_location(this.low,this.high);if(!ap){var ah,ag,an;for(var aj=0,ak=this.tracks_to_be_redrawn.length;aj<ak;aj++){ah=this.tracks_to_be_redrawn[aj][0];ag=this.tracks_to_be_redrawn[aj][1];an=this.tracks_to_be_redrawn[aj][2];if(ah){ah._draw(ag,an)}}this.tracks_to_be_redrawn=[];for(aj=0,ak=this.label_tracks.length;aj<ak;aj++){this.label_tracks[aj]._draw()}}},zoom_in:function(ag,ah){if(this.max_high===0||this.high-this.low<this.min_separation){return}var ai=this.high-this.low,aj=ai/2+this.low,af=(ai/this.zoom_factor)/2;if(ag){aj=ag/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(aj-af);this.high=Math.round(aj+af);this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var ag=this.high-this.low,ah=ag/2+this.low,af=(ag*this.zoom_factor)/2;this.low=Math.round(ah-af);this.high=Math.round(ah+af);this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.nav_container.width(this.container.width());this.request_redraw()},set_overview:function(ah){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ah.dataset_id){return}this.overview_viewport.find(".track").remove()}var ag=ah.copy({content_div:this.overview_viewport}),af=this;ag.header_div.hide();ag.is_overview=true;af.overview_drawable=ag;this.overview_drawable.postdraw_actions=function(){af.overview_highlight.show().height(af.overview_drawable.content_div.height());af.overview_viewport.height(af.overview_drawable.content_div.height()+af.overview_box.outerHeight());af.overview_close.show();af.resize_window()};this.overview_drawable.init();af.has_changes=true},reset_overview:function(){$(".tipsy").remove();this.overview_viewport.find(".track-tile").remove();this.overview_viewport.height(this.default_overview_height);this.overview_box.height(this.default_overview_height);this.overview_close.hide();this.overview_highlight.hide();view.resize_window();view.overview_drawable=null}});var r=function(ah,al){this.track=ah;this.name=al.name;this.params=[];var at=al.params;for(var ai=0;ai<at.length;ai++){var an=at[ai],ag=an.name,ar=an.label,aj=unescape(an.html),au=an.value,ap=an.type;if(ap==="number"){this.params[this.params.length]=new g(ag,ar,aj,au,an.min,an.max)}else{if(ap=="select"){this.params[this.params.length]=new O(ag,ar,aj,au)}else{console.log("WARNING: unrecognized tool parameter type:",ag,ap)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(aw){aw.stopPropagation()}).click(function(aw){aw.stopPropagation()}).bind("dblclick",function(aw){aw.stopPropagation()});var aq=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var ao=this.params;var am=this;$.each(this.params,function(ax,aA){var az=$("<div>").addClass("param-row").appendTo(am.parent_div);var aw=$("<div>").addClass("param-label").text(aA.label).appendTo(az);var ay=$("<div/>").addClass("slider").html(aA.html).appendTo(az);ay.find(":input").val(aA.value);$("<div style='clear: both;'/>").appendTo(az)});this.parent_div.find("input").click(function(){$(this).select()});var av=$("<div>").addClass("param-row").appendTo(this.parent_div);var ak=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(av);var af=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(av);var am=this;af.click(function(){am.run_on_region()});ak.click(function(){am.run_on_dataset()})};p(r.prototype,{get_param_values_dict:function(){var af={};this.parent_div.find(":input").each(function(){var ag=$(this).attr("name"),ah=$(this).val();af[ag]=JSON.stringify(ah)});return af},get_param_values:function(){var ag=[];var af={};this.parent_div.find(":input").each(function(){var ah=$(this).attr("name"),ai=$(this).val();if(ah){ag[ag.length]=ai}});return ag},run_on_dataset:function(){var af=this;af.run({dataset_id:this.track.original_dataset_id,tool_id:af.name},null,function(ag){show_modal(af.name+" is Running",af.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var ag={dataset_id:this.track.original_dataset_id,chrom:this.track.view.chrom,low:this.track.view.low,high:this.track.view.high,tool_id:this.name},aj=this.track,ah=ag.tool_id+aj.tool_region_and_parameters_str(ag.chrom,ag.low,ag.high),af;if(aj.container===view){var ai=new Q(this.name,this.track.view,this.track.container);aj.container.add_drawable(ai);aj.container.remove_drawable(aj);ai.add_drawable(aj);aj.container_div.appendTo(ai.content_div);af=ai}else{af=aj.container}var ak=new aj.constructor(ah,view,af,"hda");ak.init_for_tool_data();ak.change_mode(aj.mode);af.add_drawable(ak);ak.content_div.text("Starting job.");this.run(ag,ak,function(al){ak.dataset_id=al.dataset_id;ak.content_div.text("Running job.");ak.init()})},run:function(ag,ah,ai){$.extend(ag,this.get_param_values_dict());var af=function(){$.getJSON(rerun_tool_url,ag,function(aj){if(aj==="no converter"){ah.container_div.addClass("error");ah.content_div.text(K)}else{if(aj.error){ah.container_div.addClass("error");ah.content_div.text(x+aj.message)}else{if(aj==="pending"){ah.container_div.addClass("pending");ah.content_div.text("Converting input data so that it can be used quickly with tool.");setTimeout(af,2000)}else{ai(aj)}}}})};af()}});var O=function(ag,af,ah,ai){this.name=ag;this.label=af;this.html=ah;this.value=ai};var g=function(ah,ag,aj,ak,ai,af){O.call(this,ah,ag,aj,ak);this.min=ai;this.max=af};var h=function(ag,af,ah,ai){this.name=ag;this.index=af;this.tool_id=ah;this.tool_exp_name=ai};var V=function(ag,af,ah,ai){h.call(this,ag,af,ah,ai);this.low=-Number.MAX_VALUE;this.high=Number.MAX_VALUE;this.min=Number.MAX_VALUE;this.max=-Number.MAX_VALUE;this.container=null;this.slider=null;this.slider_label=null};p(V.prototype,{applies_to:function(af){if(af.length>this.index){return true}return false},keep:function(af){if(!this.applies_to(af)){return true}var ag=af[this.index];return(isNaN(ag)||(ag>=this.low&&ag<=this.high))},update_attrs:function(ag){var af=false;if(!this.applies_to(ag)){return af}if(ag[this.index]<this.min){this.min=Math.floor(ag[this.index]);af=true}if(ag[this.index]>this.max){this.max=Math.ceil(ag[this.index]);af=true}return af},update_ui_elt:function(){if(this.min!=this.max){this.container.show()}else{this.container.hide()}var ah=function(ak,ai){var aj=ai-ak;return(aj<=2?0.01:1)};var ag=this.slider.slider("option","min"),af=this.slider.slider("option","max");if(this.min<ag||this.max>af){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",ah(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var aa=function(aq,ay){this.track=aq;this.filters=[];for(var at=0;at<ay.length;at++){var au=ay[at],az=au.name,af=au.type,ah=au.index,ax=au.tool_id,aw=au.tool_exp_name;if(af==="int"||af==="float"){this.filters[at]=new V(az,ah,ax,aw)}else{console.log("ERROR: unsupported filter: ",az,af)}}var ai=function(aA,aB,aC){aA.click(function(){var aD=aB.text();max=parseFloat(aC.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(aC.slider("option","values")){input_size=2*input_size+1;multi_value=true}aB.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",aD).appendTo(aB).focus().select().click(function(aE){aE.stopPropagation()}).blur(function(){$(this).remove();aB.text(aD)}).keyup(function(aI){if(aI.keyCode===27){$(this).trigger("blur")}else{if(aI.keyCode===13){var aG=aC.slider("option","min"),aE=aC.slider("option","max"),aH=function(aJ){return(isNaN(aJ)||aJ>aE||aJ<aG)},aF=$(this).val();if(!multi_value){aF=parseFloat(aF);if(aH(aF)){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}else{aF=aF.split("-");aF=[parseFloat(aF[0]),parseFloat(aF[1])];if(aH(aF[0])||aH(aF[1])){alert("Parameter value must be in the range ["+aG+"-"+aE+"]");return $(this)}}aC.slider((multi_value?"values":"value"),aF)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(aA){aA.stopPropagation()}).click(function(aA){aA.stopPropagation()}).bind("dblclick",function(aA){aA.stopPropagation()}).bind("keydown",function(aA){aA.stopPropagation()});var av=$("<div/>").addClass("sliders").appendTo(this.parent_div);var an=this;$.each(this.filters,function(aD,aF){aF.container=$("<div/>").addClass("filter-row slider-row").appendTo(av);var aE=$("<div/>").addClass("elt-label").appendTo(aF.container);var aC=$("<span/>").addClass("slider-name").text(aF.name+" ").appendTo(aE);var aB=$("<span/>");var aH=$("<span/>").addClass("slider-value").appendTo(aE).append("[").append(aB).append("]");var aA=$("<div/>").addClass("slider").appendTo(aF.container);aF.control_element=$("<div/>").attr("id",aF.name+"-filter-control").appendTo(aA);var aG=[0,0];aF.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aJ,aK){var aI=aK.values;aB.text(aI[0]+"-"+aI[1]);aF.low=aI[0];aF.high=aI[1];an.track.request_draw(true,true)},change:function(aI,aJ){aF.control_element.slider("option","slide").call(aF.control_element,aI,aJ)}});aF.slider=aF.control_element;aF.slider_label=aB;ai(aH,aB,aF.control_element);$("<div style='clear: both;'/>").appendTo(aF.container)});if(this.filters.length!==0){var ak=$("<div/>").addClass("param-row").appendTo(av);var am=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ak);var ag=this;am.click(function(){ag.run_on_dataset()})}var ap=$("<div/>").addClass("display-controls").appendTo(this.parent_div),ar,al,ao,aj={Transparency:function(aA){an.alpha_filter=aA},Height:function(aA){an.height_filter=aA}};$.each(aj,function(aC,aB){ar=$("<div/>").addClass("filter-row").appendTo(ap),al=$("<span/>").addClass("elt-label").text(aC+":").appendTo(ar),ao=$("<select/>").attr("name",aC+"_dropdown").css("float","right").appendTo(ar);$("<option/>").attr("value",-1).text("== None ==").appendTo(ao);for(var aA=0;aA<an.filters.length;aA++){$("<option/>").attr("value",aA).text(an.filters[aA].name).appendTo(ao)}ao.change(function(){$(this).children("option:selected").each(function(){var aD=parseInt($(this).val());aj[aC]((aD>=0?an.filters[aD]:null));an.track.request_draw(true,true)})});$("<div style='clear: both;'/>").appendTo(ar)});$("<div style='clear: both;'/>").appendTo(this.parent_div)};p(aa.prototype,{reset_filters:function(){for(var af=0;af<this.filters.length;af++){filter=this.filters[af];filter.slider.slider("option","values",[filter.min,filter.max])}this.alpha_filter=null;this.height_filter=null},run_on_dataset:function(){var an=function(ar,ap,aq){if(!(ap in ar)){ar[ap]=aq}return ar[ap]};var ah={},af,ag,ai;for(var aj=0;aj<this.filters.length;aj++){af=this.filters[aj];if(af.tool_id){if(af.min!=af.low){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" >= "+af.low}if(af.max!=af.high){ag=an(ah,af.tool_id,[]);ag[ag.length]=af.tool_exp_name+" <= "+af.high}}}var al=[];for(var ao in ah){al[al.length]=[ao,ah[ao]]}var am=al.length;(function ak(aw,at){var aq=at[0],ar=aq[0],av=aq[1],au="("+av.join(") and (")+")",ap={cond:au,input:aw,target_dataset_id:aw,tool_id:ar},at=at.slice(1);$.getJSON(run_tool_url,ap,function(ax){if(ax.error){show_modal("Filter Dataset","Error running tool "+ar,{Close:hide_modal})}else{if(at.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{ak(ax.dataset_id,at)}}})})(this.track.dataset_id,al)}});var D=function(af,ag){M.Scaler.call(this,ag);this.filter=af};D.prototype.gen_val=function(af){if(this.filter.high===Number.MAX_VALUE||this.filter.low===-Number.MAX_VALUE||this.filter.low===this.filter.high){return this.default_val}return((parseFloat(af[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var G=function(af){this.track=af.track;this.params=af.params;this.values={};this.restore_values((af.saved_values?af.saved_values:{}));this.onchange=af.onchange};p(G.prototype,{restore_values:function(af){var ag=this;$.each(this.params,function(ah,ai){if(af[ai.key]!==undefined){ag.values[ai.key]=af[ai.key]}else{ag.values[ai.key]=ai.default_value}})},build_form:function(){var ai=this;var af=$("<div />");var ah;function ag(am,aj){for(var ao=0;ao<am.length;ao++){ah=am[ao];if(ah.hidden){continue}var ak="param_"+ao;var at=ai.values[ah.key];var av=$("<div class='form-row' />").appendTo(aj);av.append($("<label />").attr("for",ak).text(ah.label+":"));if(ah.type==="bool"){av.append($('<input type="checkbox" />').attr("id",ak).attr("name",ak).attr("checked",at))}else{if(ah.type==="text"){av.append($('<input type="text"/>').attr("id",ak).val(at).click(function(){$(this).select()}))}else{if(ah.type=="select"){var aq=$("<select />").attr("id",ak);for(var an=0;an<ah.options.length;an++){$("<option/>").text(ah.options[an].label).attr("value",ah.options[an].value).appendTo(aq)}aq.val(at);av.append(aq)}else{if(ah.type==="color"){var ap=$("<input />").attr("id",ak).attr("name",ak).val(at);var ar=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();var al=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(ar);var au=$("<div/>").appendTo(al).farbtastic({width:100,height:100,callback:ap,color:at});$("<div />").append(ap).append(ar).appendTo(av).bind("click",function(aw){ar.css({left:$(this).position().left+$(ap).width()+5,top:$(this).position().top-($(ar).height()/2)+($(ap).height()/2)}).show();$(document).bind("click.color-picker",function(){ar.hide();$(document).unbind("click.color-picker")});aw.stopPropagation()})}else{av.append($("<input />").attr("id",ak).attr("name",ak).val(at))}}}}if(ah.help){av.append($("<div class='help'/>").text(ah.help))}}}ag(this.params,af);return af},update_from_form:function(af){var ah=this;var ag=false;$.each(this.params,function(ai,ak){if(!ak.hidden){var al="param_"+ai;var aj=af.find("#"+al).val();if(ak.type==="float"){aj=parseFloat(aj)}else{if(ak.type==="int"){aj=parseInt(aj)}else{if(ak.type==="bool"){aj=af.find("#"+al).is(":checked")}}}if(aj!==ah.values[ak.key]){ah.values[ak.key]=aj;ag=true}}});if(ag){this.onchange()}}});var b=function(af,ai,ah,ag,aj){this.track=af;this.index=ai;this.low=ai*R*ah;this.high=(ai+1)*R*ah;this.resolution=ah;this.canvas=$("<div class='track-tile'/>").append(ag);this.data=aj;this.stale=false};b.prototype.predisplay_actions=function(){};var k=function(af,ai,ah,ag,aj,ak){b.call(this,af,ai,ah,ag,aj);this.max_val=ak};p(k.prototype,b.prototype);var P=function(af,aj,ai,ah,al,am,ak,ag){b.call(this,af,aj,ai,ah,al);this.mode=am;this.message=ak;this.feature_mapper=ag};p(P.prototype,b.prototype);P.prototype.predisplay_actions=function(){var ag=this,af={};if(ag.mode!=="Pack"){return}$(this.canvas).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).siblings(".feature-popup").remove()}).mousemove(function(ar){if(!this.hovered){return}var am=$(this).offset(),aq=ar.pageX-am.left,ap=ar.pageY-am.top,aw=ag.feature_mapper.get_feature_data(aq,ap),an=(aw?aw[0]:null);$(this).siblings(".feature-popup").each(function(){if(!an||$(this).attr("id")!==an.toString()){$(this).remove()}});if(aw){var ai=af[an];if(!ai){var an=aw[0],at={name:aw[3],start:aw[1],end:aw[2],strand:aw[4]},al=ag.track.filters_manager.filters,ak;for(var ao=0;ao<al.length;ao++){ak=al[ao];at[ak.name]=aw[ak.index]}var ai=$("<div/>").attr("id",an).addClass("feature-popup"),ax=$("<table/>"),av,au,ay;for(av in at){au=at[av];ay=$("<tr/>").appendTo(ax);$("<th/>").appendTo(ay).text(av);$("<td/>").attr("align","left").appendTo(ay).text(typeof(au)=="number"?Z(au,2):au)}ai.append($("<div class='feature-popup-inner'>").append(ax));af[an]=ai}ai.appendTo($(ag.canvas).parent());var aj=aq+parseInt(ag.canvas.css("left"))-ai.width()/2,ah=ap+parseInt(ag.canvas.css("top"))+7;ai.css("left",aj+"px").css("top",ah+"px")}else{if(!ar.isPropagationStopped()){ar.stopPropagation();$(this).siblings().each(function(){$(this).trigger(ar)})}}}).mouseleave(function(){$(this).siblings(".feature-popup").remove()})};var i=function(ai,ag,af,ah,aj,ak){q.call(this,ai,ag,af,{},"draghandle");this.data_url=(aj?aj:default_data_url);this.data_url_extra_params={};this.data_query_wait=(ak?ak:L);this.dataset_check_url=converted_datasets_state_url;if(!i.id_counter){i.id_counter=0}this.id=i.id_counter++;this.content_div=$("<div class='track-content'>").appendTo(this.container_div);this.container.content_div.append(this.container_div)};p(i.prototype,q.prototype,{build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var af=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(af)}this.name_div=$("<div/>").addClass("track-name").appendTo(af).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return af},build_icons_div:function(){var aj=$("<div/>").css("float","left");this.mode_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set display mode").addClass("icon-button chevron-expand").tipsy({gravity:"s"}).appendTo(aj);this.toggle_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Hide/show track content").addClass("icon-button toggle").tipsy({gravity:"s"}).appendTo(aj);this.settings_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Edit settings").addClass("icon-button settings-icon").tipsy({gravity:"s"}).appendTo(aj);this.overview_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Set as overview").addClass("icon-button overview-icon").tipsy({gravity:"s"}).appendTo(aj);this.filters_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Filters").addClass("icon-button filters-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.tools_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Tools").addClass("icon-button tools-icon").tipsy({gravity:"s"}).appendTo(aj).hide();this.remove_icon=$("<a/>").attr("href","javascript:void(0);").attr("title","Remove").addClass("icon-button remove-icon").tipsy({gravity:"s"}).appendTo(aj);var ag=this;if(ag.display_modes!==undefined){var al=(ag.config&&ag.config.values.mode?ag.config.values.mode:ag.display_modes[0]);ag.mode=al;this.mode_icon.attr("title","Set display mode (now: "+ag.mode+")");var ai={};for(var ah=0,af=ag.display_modes.length;ah<af;ah++){var ak=ag.display_modes[ah];ai[ak]=function(am){return function(){ag.change_mode(am);ag.icons_div.show();ag.container_div.mouseleave(function(){ag.icons_div.hide()})}}(ak)}make_popupmenu(this.mode_icon,ai)}this.toggle_icon.click(function(){if(ag.content_visible){ag.toggle_icon.addClass("toggle-expand").removeClass("toggle");ag.hide_contents();ag.content_visible=false}else{ag.toggle_icon.addClass("toggle").removeClass("toggle-expand");ag.content_visible=true;ag.show_contents()}});this.settings_icon.click(function(){var ao=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},am=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},an=function(ap){if((ap.keyCode||ap.which)===27){ao()}else{if((ap.keyCode||ap.which)===13){am()}}};$(window).bind("keypress.check_enter_esc",an);show_modal("Configure Track",ag.config.build_form(),{Cancel:ao,OK:am})});this.overview_icon.click(function(){ag.view.set_overview(ag)});this.filters_icon.click(function(){ag.filters_div.toggle();ag.filters_manager.reset_filters()});this.tools_icon.click(function(){ag.dynamic_tool_div.toggle();if(ag.dynamic_tool_div.is(":visible")){ag.set_name(ag.name+ag.tool_region_and_parameters_str())}else{ag.revert_name()}$(".tipsy").remove()});this.remove_icon.click(function(){$(".tipsy").remove();ag.remove()});return aj},hide_contents:function(){this.content_div.children().remove();this.content_div.hide();this.container_div.find(".yaxislabel, .track-resize").hide()},show_contents:function(){this.content_div.show();this.container_div.find(".yaxislabel, .track-resize").show();this.request_draw()},get_type:function(){if(this instanceof ab){return"LabelTrack"}else{if(this instanceof A){return"ReferenceTrack"}else{if(this instanceof j){return"LineTrack"}else{if(this instanceof W){return"ReadTrack"}else{if(this instanceof U){return"VcfTrack"}else{if(this instanceof e){return"FeatureTrack"}}}}}}return""},init:function(){var af=this;af.enabled=false;af.tile_cache.clear();af.data_manager.clear();af.initial_canvas=undefined;af.content_div.css("height","auto");af.container_div.removeClass("nodata error pending");if(!af.dataset_id){return}$.getJSON(converted_datasets_state_url,{hda_ldda:af.hda_ldda,dataset_id:af.dataset_id,chrom:af.view.chrom},function(ag){if(!ag||ag==="error"||ag.kind==="error"){af.container_div.addClass("error");af.content_div.text(o);if(ag.message){var ah=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+ag.message+"</pre>",{Close:hide_modal})});af.content_div.append(ah)}}else{if(ag==="no converter"){af.container_div.addClass("error");af.content_div.text(K)}else{if(ag==="no data"||(ag.data!==undefined&&(ag.data===null||ag.data.length===0))){af.container_div.addClass("nodata");af.content_div.text(F)}else{if(ag==="pending"){af.container_div.addClass("pending");af.content_div.text(t);setTimeout(function(){af.init()},af.data_query_wait)}else{if(ag.status==="data"){if(ag.valid_chroms){af.valid_chroms=ag.valid_chroms;af.update_icons()}af.content_div.text(Y);if(af.view.chrom){af.content_div.text("");af.content_div.css("height",af.height_px+"px");af.enabled=true;$.when(af.predraw_init()).done(function(){af.container_div.removeClass("nodata error pending");af.request_draw()})}}}}}}});this.update_icons()},predraw_init:function(){}});var N=function(aj,ah,ag,ai,al,ak){i.call(this,aj,ah,ag,ai);var af=this,ah=af.view;m(af.container_div,af.drag_handle_class,".group",af);this.filters_manager=new aa(this,(al!==undefined?al:{}));this.filters_available=false;this.filters_visible=false;this.tool=(ak!==undefined&&obj_length(ak)>0?new r(this,ak):undefined);if(this.header_div){if(this.filters_manager){this.filters_div=this.filters_manager.parent_div;this.header_div.after(this.filters_div)}if(this.tool){this.dynamic_tool_div=this.tool.parent_div;this.header_div.after(this.dynamic_tool_div)}}};p(N.prototype,q.prototype,i.prototype,{copy:function(af){return new this.constructor(this.name,this.view,af,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool)},to_json:function(){return{track_type:this.get_type(),name:this.name,hda_ldda:this.hda_ldda,dataset_id:this.dataset_id,prefs:this.prefs,mode:this.mode,}},change_mode:function(ag){var af=this;af.mode=ag;af.config.values.mode=ag;af.tile_cache.clear();af.request_draw();this.mode_icon.attr("title","Set display mode (now: "+af.mode+")");return af},update_icons:function(){var af=this;if(af.filters_available>0){af.filters_icon.show()}else{af.filters_icon.hide()}if(af.tool){af.tools_icon.show()}else{af.tools_icon.hide()}},_gen_tile_cache_key:function(ag,ah,af){return ag+"_"+ah+"_"+af},request_draw:function(ag,af){this.view.request_redraw(false,ag,af,this)},_draw:function(ah,ap){if(!this.enabled){return}if(!this.content_visible){return}if(!(this instanceof A)&&(!this.dataset_id)){return}var ao=this.view.low,al=this.view.high,am=al-ao,ai=this.view.container.width(),at=ai/am,ak=this.view.resolution,ar=$("<div style='position: relative;'></div>");if(this.is_overview){ao=this.view.max_low;al=this.view.max_high;ak=Math.pow(C,Math.ceil(Math.log((view.max_high-view.max_low)/R)/Math.log(C)));at=ai/(view.max_high-view.max_low)}if(!ap){this.content_div.children().remove()}this.content_div.append(ar);this.max_height=0;var ag=Math.floor(ao/ak/R);var an=true;var aq=[];var af=0;while((ag*R*ak)<al){tile=this.draw_helper(ah,ai,ag,ak,ar,at);if(tile){aq.push(tile)}else{an=false}ag+=1;af++}var aj=this;if(an){aj.postdraw_actions(aq,ai,at,ap)}},postdraw_actions:function(aj,ak,al,af){var ah=this;var ai=false;for(var ag=0;ag<aj.length;ag++){if(aj[ag].message){ai=true;break}}if(ai){for(var ag=0;ag<aj.length;ag++){tile=aj[ag];if(!tile.message){tile.canvas.css("padding-top",E)}}}},draw_helper:function(ag,ah,ai,al,ar,aw,at,am){var aj=this,aq=this._gen_tile_cache_key(ah,aw,ai),an=ai*R*al,av=an+R*al;var ao=(ag?undefined:aj.tile_cache.get(aq));if(ao){aj.show_tile(ao,ar,aw);return ao}var ap=function(ax){return("isResolved" in ax)};var ak=true;var af=aj.data_manager.get_data(an,av,aj.mode,al,aj.data_url_extra_params);if(ap(af)){ak=false}var au;if(view.reference_track&&aw>view.canvas_manager.char_width_px){au=view.reference_track.data_manager.get_data(an,av,aj.mode,al,view.reference_track.data_url_extra_params);if(ap(au)){ak=false}}if(ak){p(af,am);var ao=aj.draw_tile(af,aj.mode,al,ai,aw,au);if(ao!==undefined){aj.tile_cache.set(aq,ao);aj.show_tile(ao,ar,aw)}return ao}$.when(af,au).then(function(){view.request_redraw(false,false,false,aj)});return null},show_tile:function(al,an,ao){var ah=this,ag=al.canvas,ak=ag;if(al.message){var ap=$("<div/>"),am=$("<div/>").addClass("tile-message").text(al.message).css({height:E-1,width:al.canvas.width}).appendTo(ap),aj=$("<a href='javascript:void(0);'/>").addClass("icon more-down").appendTo(am),af=$("<a href='javascript:void(0);'/>").addClass("icon more-across").appendTo(am);ap.append(ag);ak=ap;aj.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.DEEP_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()});af.click(function(){al.stale=true;ah.data_manager.get_more_data(al.low,al.high,ah.mode,al.resolution,{},ah.data_manager.BROAD_DATA_REQ);ah.request_draw()}).dblclick(function(aq){aq.stopPropagation()})}al.predisplay_actions();var ai=(al.low-(this.is_overview?this.view.max_low:this.view.low))*ao;if(this.left_offset){ai-=this.left_offset}ak.css({position:"absolute",top:0,left:ai,height:""});an.append(ak);ah.max_height=Math.max(ah.max_height,ak.height());ah.content_div.css("height",ah.max_height+"px");an.children().css("height",ah.max_height+"px")},_get_tile_bounds:function(af,ag){var ai=af*R*ag,aj=R*ag,ah=(ai+aj<=this.view.max_high?ai+aj:this.view.max_high);return[ai,ah]},tool_region_and_parameters_str:function(ah,af,ai){var ag=this,aj=(ah!==undefined&&af!==undefined&&ai!==undefined?ah+":"+af+"-"+ai:"all");return" - region=["+aj+"], parameters=["+ag.tool.get_param_values().join(", ")+"]"},init_for_tool_data:function(){this.data_url=raw_data_url;this.data_query_wait=1000;this.dataset_check_url=dataset_state_url;this.predraw_init=function(){var ag=this;var af=function(){if(ag.data_manager.size()===0){setTimeout(af,300)}else{ag.data_url=default_data_url;ag.data_query_wait=L;ag.dataset_state_url=converted_datasets_state_url;$.getJSON(ag.dataset_state_url,{dataset_id:ag.dataset_id,hda_ldda:ag.hda_ldda},function(ah){})}};af()}}});var ab=function(ag,af){i.call(this,"label",ag,af,false,{});this.container_div.addClass("label-track")};p(ab.prototype,i.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var ah=this.view,ai=ah.high-ah.low,al=Math.floor(Math.pow(10,Math.floor(Math.log(ai)/Math.log(10)))),af=Math.floor(ah.low/al)*al,aj=this.view.container.width(),ag=$("<div style='position: relative; height: 1.3em;'></div>");while(af<ah.high){var ak=(af-ah.low)/ai*aj;ag.append($("<div class='label'>"+commatize(af)+"</div>").css({position:"absolute",left:ak-1}));af+=al}this.content_div.children(":first").remove();this.content_div.append(ag)}});var A=function(af){N.call(this,"reference",af,{content_div:af.top_labeltrack},{});af.reference_track=this;this.left_offset=200;this.height_px=12;this.container_div.addClass("reference-track");this.content_div.css("background","none");this.content_div.css("min-height","0px");this.content_div.css("border","none");this.data_url=reference_url;this.data_url_extra_params={dbkey:af.dbkey};this.data_manager=new I(B,this,false);this.tile_cache=new c(u)};p(A.prototype,q.prototype,N.prototype,{build_header_div:function(){},init:function(){this.enabled=true},draw_tile:function(ap,al,ak,ag,aq){var aj=this,ah=R*ak;if(aq>this.view.canvas_manager.char_width_px){if(ap.data===null){aj.content_div.css("height","0px");return}var ai=this.view.canvas_manager.new_canvas();var ao=ai.getContext("2d");ai.width=Math.ceil(ah*aq+aj.left_offset);ai.height=aj.height_px;ao.font=ao.canvas.manager.default_font;ao.textAlign="center";ap=ap.data;for(var am=0,an=ap.length;am<an;am++){var af=Math.round(am*aq);ao.fillText(ap[am],af+aj.left_offset,10)}return new b(aj,ag,ak,ai,ap)}this.content_div.css("height","0px")}});var j=function(ak,ai,ah,al,af,aj){var ag=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";N.call(this,ak,ai,ah,aj);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=al;this.dataset_id=af;this.original_dataset_id=af;this.data_manager=new S(B,this);this.tile_cache=new c(u);this.left_offset=0;this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"color",label:"Color",type:"color",default_value:get_random_color()},{key:"min_value",label:"Min Value",type:"float",default_value:undefined},{key:"max_value",label:"Max Value",type:"float",default_value:undefined},{key:"mode",type:"string",default_value:this.mode,hidden:true},{key:"height",type:"int",default_value:this.height_px,hidden:true}],saved_values:aj,onchange:function(){ag.set_name(ag.prefs.name);ag.vertical_range=ag.prefs.max_value-ag.prefs.min_value;$("#linetrack_"+ag.dataset_id+"_minval").text(ag.prefs.min_value);$("#linetrack_"+ag.dataset_id+"_maxval").text(ag.prefs.max_value);ag.tile_cache.clear();ag.request_draw()}});this.prefs=this.config.values;this.height_px=this.config.values.height;this.vertical_range=this.config.values.max_value-this.config.values.min_value;this.add_resize_handle()};p(j.prototype,q.prototype,N.prototype,{add_resize_handle:function(){var af=this;var ai=false;var ah=false;var ag=$("<div class='track-resize'>");$(af.container_div).hover(function(){if(af.content_visible){ai=true;ag.show()}},function(){ai=false;if(!ah){ag.hide()}});ag.hide().bind("dragstart",function(aj,ak){ah=true;ak.original_height=$(af.content_div).height()}).bind("drag",function(ak,al){var aj=Math.min(Math.max(al.original_height+al.deltaY,af.min_height_px),af.max_height_px);$(af.content_div).css("height",aj);af.height_px=aj;af.request_draw(true)}).bind("dragend",function(aj,ak){af.tile_cache.clear();ah=false;if(!ai){ag.hide()}af.config.values.height=af.height_px}).appendTo(af.container_div)},predraw_init:function(){var af=this;af.vertical_range=undefined;return $.getJSON(af.data_url,{stats:true,chrom:af.view.chrom,low:null,high:null,hda_ldda:af.hda_ldda,dataset_id:af.dataset_id},function(ag){af.container_div.addClass("line-track");var aj=ag.data;if(isNaN(parseFloat(af.prefs.min_value))||isNaN(parseFloat(af.prefs.max_value))){var ah=aj.min;var al=aj.max;ah=Math.floor(Math.min(0,Math.max(ah,aj.mean-2*aj.sd)));al=Math.ceil(Math.max(0,Math.min(al,aj.mean+2*aj.sd)));af.prefs.min_value=ah;af.prefs.max_value=al;$("#track_"+af.dataset_id+"_minval").val(af.prefs.min_value);$("#track_"+af.dataset_id+"_maxval").val(af.prefs.max_value)}af.vertical_range=af.prefs.max_value-af.prefs.min_value;af.total_frequency=aj.total_frequency;af.container_div.find(".yaxislabel").remove();var ak=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_minval").text(Z(af.prefs.min_value,3));var ai=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+af.dataset_id+"_maxval").text(Z(af.prefs.max_value,3));ai.css({position:"absolute",top:"24px",left:"10px"});ai.prependTo(af.container_div);ak.css({position:"absolute",bottom:"2px",left:"10px"});ak.prependTo(af.container_div)})},draw_tile:function(ar,ak,aj,ah,aq){if(this.vertical_range===undefined){return}var af=this._get_tile_bounds(ah,aj),al=af[0],ap=af[1],ag=Math.ceil((ap-al)*aq),an=this.height_px;var ai=this.view.canvas_manager.new_canvas();ai.width=ag,ai.height=an;var ao=ai.getContext("2d");var am=new M.LinePainter(ar.data,al,ap,this.prefs,ak);am.draw(ao,ag,an);return new b(this.track,ah,aj,ai,ar.data)}});var e=function(af,al,ag,ak,an,am,ai,aj){var ah=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];N.call(this,af,al,ag,am,ai,aj);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true,help:"Show the number of items in each bin when drawing summary histogram"},{key:"connector_style",label:"Connector style",type:"select",default_value:"fishbones",options:[{label:"Line with arrows",value:"fishbone"},{label:"Arcs",value:"arcs"}]},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){ah.set_name(ah.prefs.name);ah.tile_cache.clear();ah.set_painter_from_config();ah.request_draw()}});this.prefs=this.config.values;this.height_px=0;this.container_div.addClass("feature-track");this.hda_ldda=ak;this.dataset_id=an;this.original_dataset_id=an;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.inc_slots={};this.start_end_dct={};this.tile_cache=new c(d);this.data_manager=new S(20,this);this.left_offset=200;this.set_painter_from_config()};p(e.prototype,q.prototype,N.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=M.ArcLinkedFeaturePainter}else{this.painter=M.LinkedFeaturePainter}},postdraw_actions:function(av,af,aw,au){N.prototype.postdraw_actions.call(this,av,au);var ai=this;if(au){var ak=ai.content_div.children();var al=false;for(var aj=ak.length-1,ap=0;aj>=ap;aj--){var ah=$(ak[aj]);if(al){ah.remove()}else{if(ah.children().length!==0){al=true}}}}if(ai.mode=="Histogram"){var ao=-1;for(var aj=0;aj<av.length;aj++){var at=av[aj].max_val;if(at>ao){ao=at}}for(var aj=0;aj<av.length;aj++){var ar=av[aj];if(ar.max_val!==ao){ar.canvas.remove();ai.draw_helper(true,af,ar.index,ar.resolution,ar.canvas.parent(),aw,[],{max:ao})}}}if(ai.filters_manager){var ag=ai.filters_manager.filters;for(var an=0;an<ag.length;an++){ag[an].update_ui_elt()}var am=false,aq;for(var aj=0;aj<av.length;aj++){if(av[aj].data.length){aq=av[aj].data[0];for(var an=0;an<ag.length;an++){if(ag[an].applies_to(aq)){am=true;break}}}}if(ai.filters_available!==am){ai.filters_available=am;if(!ai.filters_available){ai.filters_div.hide()}ai.update_icons()}}},update_auto_mode:function(af){var af;if(this.mode=="Auto"){if(af=="no_detail"){af="feature spans"}else{if(af=="summary_tree"){af="coverage histogram"}}this.mode_icon.attr("title","Set display mode (now: Auto/"+af+")")}},incremental_slots:function(aj,ag,ai){var ah=this.view.canvas_manager.dummy_context,af=this.inc_slots[aj];if(!af||(af.mode!==ai)){af=new (s.FeatureSlotter)(aj,ai==="Pack",z,function(ak){return ah.measureText(ak)});af.mode=ai;this.inc_slots[aj]=af}return af.slot_features(ag)},get_summary_tree_data:function(aj,am,ah,av){if(av>ah-am){av=ah-am}var aq=Math.floor((ah-am)/av),au=[],ai=0;var ak=0,al=0,ap,at=0,an=[],ar,ao;var ag=function(ay,ax,az,aw){ay[0]=ax+az*aw;ay[1]=ax+(az+1)*aw};while(at<av&&ak!==aj.length){var af=false;for(;at<av&&!af;at++){ag(an,am,at,aq);for(al=ak;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){af=true;break}}if(af){break}}data_start_index=al;au[au.length]=ar=[an[0],0];for(;al<aj.length;al++){ap=aj[al].slice(1,3);if(is_overlap(ap,an)){ar[1]++}else{break}}if(ar[1]>ai){ai=ar[1]}at++}return{max:ai,delta:aq,data:au}},draw_tile:function(au,ax,aB,aF,ap,ai){var ay=this,ak=ay._get_tile_bounds(aF,aB),aI=ak[0],ag=ak[1],aw=ag-aI,az=Math.ceil(aw*ap),aO=25,aj=this.left_offset,av,al;if(ax==="Auto"){if(au.dataset_type==="summary_tree"){ax=au.dataset_type}else{if(au.extra_info==="no_detail"||ay.is_overview){ax="no_detail"}else{var aN=au.data;if(this.view.high-this.view.low>J){ax="Squish"}else{ax="Pack"}}}this.update_auto_mode(ax)}if(ax==="summary_tree"||ax==="Histogram"){al=this.summary_draw_height;this.container_div.find(".yaxislabel").remove();var af=$("<div />").addClass("yaxislabel");af.text(au.max);af.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});af.prependTo(this.container_div);var ah=this.view.canvas_manager.new_canvas();ah.width=az+aj;ah.height=al+T;if(au.dataset_type!="summary_tree"){var aq=this.get_summary_tree_data(au.data,aI,ag,200);if(au.max){aq.max=au.max}au=aq}var aK=new M.SummaryTreePainter(au,aI,ag,this.prefs);var aA=ah.getContext("2d");aA.translate(aj,T);aK.draw(aA,az,al);return new k(ay,aF,aB,ah,au.data,au.max)}var av,an=1;if(ax==="no_detail"||ax==="Squish"||ax==="Pack"){an=this.incremental_slots(ap,au.data,ax);av=this.inc_slots[ap].slots}var ao=[];if(au.data){var ar=this.filters_manager.filters;for(var aC=0,aE=au.data.length;aC<aE;aC++){var am=au.data[aC];var aD=false;var at;for(var aH=0,aM=ar.length;aH<aM;aH++){at=ar[aH];at.update_attrs(am);if(!at.keep(am)){aD=true;break}}if(!aD){ao.push(am)}}}var aL=(this.filters_manager.alpha_filter?new D(this.filters_manager.alpha_filter):null);var aJ=(this.filters_manager.height_filter?new D(this.filters_manager.height_filter):null);var aK=new (this.painter)(ao,aI,ag,this.prefs,ax,aL,aJ,ai);var al=Math.max(ad,aK.get_required_height(an,az));var ah=this.view.canvas_manager.new_canvas();var aG=null;ah.width=az+aj;ah.height=al;var aA=ah.getContext("2d");aA.fillStyle=this.prefs.block_color;aA.font=aA.canvas.manager.default_font;aA.textAlign="right";this.container_div.find(".yaxislabel").remove();if(au.data){aA.translate(aj,0);aG=aK.draw(aA,az,al,av);aG.translation=-aj}return new P(ay,aF,aB,ah,au.data,ax,au.message,aG)}});var U=function(ak,ah,ag,am,af,aj,al,ai){e.call(this,ak,ah,ag,am,af,aj,al,ai);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ak},{key:"block_color",label:"Block color",type:"color",default_value:get_random_color()},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:aj,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter};p(U.prototype,q.prototype,N.prototype,e.prototype);var W=function(af,ak,ag,aj,an,am,ah){e.call(this,af,ak,ag,aj,an,am,ah);var ai=get_random_color(),al=get_random_color([ai,"#ffffff"]);this.config=new G({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{key:"block_color",label:"Block and sense strand color",type:"color",default_value:ai},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:al},{key:"label_color",label:"Label color",type:"color",default_value:"black"},{key:"show_insertions",label:"Show insertions",type:"bool",default_value:false},{key:"show_differences",label:"Show differences only",type:"bool",default_value:true},{key:"show_counts",label:"Show summary counts",type:"bool",default_value:true},{key:"mode",type:"string",default_value:this.mode,hidden:true},],saved_values:am,onchange:function(){this.track.set_name(this.track.prefs.name);this.track.tile_cache.clear();this.track.request_draw()}});this.prefs=this.config.values;this.painter=M.ReadPainter;this.update_icons()};p(W.prototype,q.prototype,N.prototype,e.prototype);X.View=ac;X.DrawableGroup=Q;X.LineTrack=j;X.FeatureTrack=e;X.ReadTrack=W;X.VcfTrack=U};var slotting_module=function(c,b){var e=c("class").extend;var d=2,a=5;b.FeatureSlotter=function(i,h,f,g){this.slots={};this.start_end_dct={};this.w_scale=i;this.include_label=h;this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,s=this.slots,h=this.start_end_dct,y=[],A=[],n=0,z=this.max_rows;for(var w=0,x=m.length;w<x;w++){var l=m[w],o=l[0];if(s[o]!==undefined){n=Math.max(n,s[o]);A.push(s[o])}else{y.push(w)}}var q=function(F,G){for(var E=0;E<=z;E++){var C=false,H=h[E];if(H!==undefined){for(var B=0,D=H.length;B<D;B++){var i=H[B];if(G>i[0]&&F<i[1]){C=true;break}}}if(!C){return E}}return -1};for(var w=0,x=y.length;w<x;w++){var l=m[y[w]],o=l[0],u=l[1],f=l[2],r=l[3],g=Math.floor(u*p),k=Math.ceil(f*p),v=this.measureText(r).width,j;if(r!==undefined&&this.include_label){v+=(d+a);if(g-v>=0){g-=v;j="left"}else{k+=v;j="right"}}var t=q(g,k);if(t>=0){if(h[t]===undefined){h[t]=[]}h[t].push([g,k]);s[o]=t;n=Math.max(n,t)}else{}}return n+1}})};var painters_module=function(i,x){var u=i("class").extend;var p=function(I,A,G,z,F,D){if(D===undefined){D=4}var C=z-A;var B=F-G;var E=Math.floor(Math.sqrt(C*C+B*B)/D);var J=C/E;var H=B/E;var y;for(y=0;y<E;y++,A+=J,G+=H){if(y%2!==0){continue}I.fillRect(A,G,D,1)}};var q=function(B,A,z,E){var D=A-E/2,C=A+E/2,F=z-Math.sqrt(E*3/2);B.beginPath();B.moveTo(D,F);B.lineTo(C,F);B.lineTo(A,z);B.lineTo(D,F);B.strokeStyle=this.fillStyle;B.fill();B.stroke();B.closePath()};var d=function(y){this.default_val=(y?y:1)};d.prototype.gen_val=function(y){return this.default_val};var l=function(A,C,y,z,B){this.data=A;this.view_start=C;this.view_end=y;this.prefs=u({},this.default_prefs,z);this.mode=B};l.prototype.default_prefs={};var v=function(A,C,y,z,B){l.call(this,A,C,y,z,B)};v.prototype.default_prefs={show_counts:false};v.prototype.draw=function(M,z,L){var E=this.view_start,O=this.view_end-this.view_start,N=z/O;var J=this.data.data,I=this.data.delta,G=this.data.max,B=L;delta_x_px=Math.ceil(I*N);M.save();for(var C=0,D=J.length;C<D;C++){var H=Math.floor((J[C][0]-E)*N);var F=J[C][1];if(!F){continue}var K=F/G*L;if(F!==0&&K<1){K=1}M.fillStyle=this.prefs.block_color;M.fillRect(H,B-K,delta_x_px,K);var A=4;if(this.prefs.show_counts&&(M.measureText(F).width+A)<delta_x_px){M.fillStyle=this.prefs.label_color;M.textAlign="center";M.fillText(F,H+(delta_x_px/2),10)}}M.restore()};var b=function(y,C,E,F,A){l.call(this,y,C,E,F,A);if(this.prefs.min_value===undefined){var G=Infinity;for(var z=0,B=this.data.length;z<B;z++){G=Math.min(G,this.data[z][1])}this.prefs.min_value=G}if(this.prefs.max_value===undefined){var D=-Infinity;for(var z=0,B=this.data.length;z<B;z++){D=Math.max(D,this.data[z][1])}this.prefs.max_value=D}};b.prototype.default_prefs={min_value:undefined,max_value:undefined,mode:"Histogram",color:"#000",overflow_color:"#F66"};b.prototype.draw=function(N,M,K){var F=false,H=this.prefs.min_value,D=this.prefs.max_value,J=D-H,z=K,A=this.view_start,L=this.view_end-this.view_start,B=M/L,I=this.mode,T=this.data;N.save();var U=Math.round(K+H/J*K);if(I!=="Intensity"){N.fillStyle="#aaa";N.fillRect(0,U,M,1)}N.beginPath();var R,E,C;if(T.length>1){C=Math.ceil((T[1][0]-T[0][0])*B)}else{C=10}for(var O=0,P=T.length;O<P;O++){N.fillStyle=this.prefs.color;R=Math.round((T[O][0]-A)*B);E=T[O][1];var Q=false,G=false;if(E===null){if(F&&I==="Filled"){N.lineTo(R,z)}F=false;continue}if(E<H){G=true;E=H}else{if(E>D){Q=true;E=D}}if(I==="Histogram"){E=Math.round(E/J*z);N.fillRect(R,U,C,-E)}else{if(I==="Intensity"){E=255-Math.floor((E-H)/J*255);N.fillStyle="rgb("+E+","+E+","+E+")";N.fillRect(R,0,C,z)}else{E=Math.round(z-(E-H)/J*z);if(F){N.lineTo(R,E)}else{F=true;if(I==="Filled"){N.moveTo(R,z);N.lineTo(R,E)}else{N.moveTo(R,E)}}}}N.fillStyle=this.prefs.overflow_color;if(Q||G){var S;if(I==="Histogram"||I==="Intensity"){S=C}else{R-=2;S=4}if(Q){N.fillRect(R,0,S,3)}if(G){N.fillRect(R,z-3,S,3)}}N.fillStyle=this.prefs.color}if(I==="Filled"){if(F){N.lineTo(R,U);N.lineTo(0,U)}N.fill()}else{N.stroke()}N.restore()};var m=function(y){this.feature_positions={};this.slot_height=y;this.translation=0;this.y_translation=0};m.prototype.map_feature_data=function(z,B,y,A){if(!this.feature_positions[B]){this.feature_positions[B]=[]}this.feature_positions[B].push({data:z,x_start:y,x_end:A})};m.prototype.get_feature_data=function(z,D){var C=Math.floor((D-this.y_translation)/this.slot_height),B;if(!this.feature_positions[C]){return null}z+=this.translation;for(var A=0;A<this.feature_positions[C].length;A++){B=this.feature_positions[C][A];if(z>=B.x_start&&z<=B.x_end){return B.data}}};var o=function(A,D,y,z,C,E,B){l.call(this,A,D,y,z,C);this.alpha_scaler=(E?E:new d());this.height_scaler=(B?B:new d())};o.prototype.default_prefs={block_color:"#FFF",connector_color:"#FFF"};u(o.prototype,{get_required_height:function(A,z){var y=y_scale=this.get_row_height(),B=this.mode;if(B==="no_detail"||B==="Squish"||B==="Pack"){y=A*y_scale}return y+this.get_top_padding(z)+this.get_bottom_padding(z)},get_top_padding:function(y){return 0},get_bottom_padding:function(y){return Math.max(Math.round(this.get_row_height()/2),5)},draw:function(K,I,G,F){var Q=this.data,D=this.view_start,M=this.view_end;K.save();K.fillStyle=this.prefs.block_color;K.textAlign="right";var H=this.view_end-this.view_start,E=I/H,L=this.get_row_height(),P=new m(L),B;for(var N=0,O=Q.length;N<O;N++){var A=Q[N],C=A[0],J=A[1],y=A[2],z=(F&&F[C]!==undefined?F[C]:null);if((J<M&&y>D)&&(this.mode=="Dense"||z!==null)){B=this.draw_element(K,this.mode,A,z,D,M,E,L,I);P.map_feature_data(A,z,B[0],B[1])}}K.restore();P.y_translation=this.get_top_padding(I);return P},draw_element:function(E,A,G,C,B,D,F,z,y){console.log("WARNING: Unimplemented function.");return[0,0]}});var c=10,h=3,k=5,w=10,f=1,s=9,e=3,a=9,j=2,g="#ccc";var r=function(A,D,y,z,C,E,B){o.call(this,A,D,y,z,C,E,B);this.draw_background_connector=true;this.draw_individual_connectors=false};u(r.prototype,o.prototype,{get_row_height:function(){var z=this.mode,y;if(z==="Dense"){y=c}else{if(z==="no_detail"){y=h}else{if(z==="Squish"){y=k}else{y=w}}}return y},draw_element:function(M,D,X,H,O,aj,an,ap,y){var T=X[0],al=X[1],ad=X[2],Q=X[3],ae=Math.floor(Math.max(0,(al-O)*an)),N=Math.ceil(Math.min(y,Math.max(0,(ad-O)*an))),ac=ae,ao=N,aa=(D==="Dense"?0:(0+H))*ap+this.get_top_padding(y),L,ah,R=null,ar=null,B=this.prefs.block_color,ag=this.prefs.label_color;M.globalAlpha=this.alpha_scaler.gen_val(X);if(D==="Dense"){H=1}if(D==="no_detail"){M.fillStyle=B;M.fillRect(ae,aa+5,N-ae,f)}else{var K=X[4],Z=X[5],af=X[6],C=X[7],V=true;if(Z&&af){R=Math.floor(Math.max(0,(Z-O)*an));ar=Math.ceil(Math.min(y,Math.max(0,(af-O)*an)))}var am,U;if(D==="Squish"){am=1;U=e;V=false}else{if(D==="Dense"){am=5;U=s}else{am=5;U=a}}if(!C){M.fillStyle=B;M.fillRect(ae,aa+1,N-ae,U);if(K&&V){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}M.fillRect(ae,aa+1,N-ae,U)}}else{var J,W;if(D==="Squish"||D==="Dense"){J=aa+Math.floor(e/2)+1;W=1}else{if(K){J=aa;W=U}else{J+=(e/2)+1;W=1}}if(this.draw_background_connector){if(D==="Squish"||D==="Dense"){M.fillStyle=g}else{if(K){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand")}}}else{M.fillStyle=g}}M.fillRect(ae,J,N-ae,W)}var E;for(var ak=0,A=C.length;ak<A;ak++){var F=C[ak],z=Math.floor(Math.max(0,(F[0]-O)*an)),Y=Math.ceil(Math.min(y,Math.max((F[1]-O)*an))),S,ab;if(z>Y){continue}M.fillStyle=B;M.fillRect(z,aa+(U-am)/2+1,Y-z,am);if(R!==undefined&&af>Z&&!(z>ar||Y<R)){var ai=Math.max(z,R),I=Math.min(Y,ar);M.fillRect(ai,aa+1,I-ai,U);if(C.length==1&&D=="Pack"){if(K==="+"){M.fillStyle=M.canvas.manager.get_pattern("right_strand_inv")}else{if(K==="-"){M.fillStyle=M.canvas.manager.get_pattern("left_strand_inv")}}if(ai+14<I){ai+=2;I-=2}M.fillRect(ai,aa+1,I-ai,U)}}if(this.draw_individual_connectors&&S){this.draw_connector(M,S,ab,z,Y,aa)}S=z;ab=Y}if(D==="Pack"){M.globalAlpha=1;M.fillStyle="white";var G=this.height_scaler.gen_val(X),P=Math.ceil(U*G),aq=Math.round((U-P)/2);if(G!==1){M.fillRect(ae,J+1,N-ae,aq);M.fillRect(ae,J+U-aq+1,N-ae,aq)}}}M.globalAlpha=1;if(D==="Pack"&&al>O){M.fillStyle=ag;if(O===0&&ae-M.measureText(Q).width<0){M.textAlign="left";M.fillText(Q,N+j,aa+8);ao+=M.measureText(Q).width+j}else{M.textAlign="right";M.fillText(Q,ae-j,aa+8);ac-=M.measureText(Q).width+j}}}M.globalAlpha=1;return[ac,ao]}});var t=function(B,E,y,A,D,F,C,z){o.call(this,B,E,y,A,D,F,C);this.ref_seq=(z?z.data:null)};u(t.prototype,o.prototype,{get_row_height:function(){var y,z=this.mode;if(z==="Dense"){y=c}else{if(z==="Squish"){y=k}else{y=w;if(this.prefs.show_insertions){y*=2}}}return y},draw_read:function(K,A,ag,V,L,aa,ad,C,B,M){K.textAlign="center";var J=this,R=[L,aa],Z=0,W=0,D=0,F=K.canvas.manager.char_width_px,y=(B==="+"?this.prefs.block_color:this.prefs.reverse_strand_color);var O=[];if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){D=Math.round(ag/2)}if(!C){C=[[0,M.length]]}for(var G=0,I=C.length;G<I;G++){var z=C[G],E="MIDNSHP=X"[z[0]],S=z[1];if(E==="H"||E==="S"){Z-=S}var U=ad+Z,Y=Math.floor(Math.max(0,(U-L)*ag)),ab=Math.floor(Math.max(0,(U+S-L)*ag));if(Y===ab){ab+=1}switch(E){case"H":break;case"S":case"M":case"=":if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(D>0){K.fillStyle=y;K.fillRect(Y-D,V+1,ab-Y,9);K.fillStyle=g;for(var af=0,H=N.length;af<H;af++){if(this.prefs.show_differences&&this.ref_seq){var P=this.ref_seq[U-L+af];if(!P||P.toLowerCase()===N[af].toLowerCase()){continue}}if(U+af>=L&&U+af<=aa){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X,V+9)}}}else{K.fillStyle=y;K.fillRect(Y,V+4,ab-Y,e)}}W+=S;Z+=S;break;case"N":K.fillStyle=g;K.fillRect(Y-D,V+5,ab-Y,1);Z+=S;break;case"D":K.fillStyle="red";K.fillRect(Y-D,V+4,ab-Y,3);Z+=S;break;case"P":break;case"I":var ah=Y-D;if(is_overlap([U,U+S],R)){var N=M.slice(W,W+S);if(this.prefs.show_insertions){var T=Y-(ab-Y)/2;if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){K.fillStyle="yellow";K.fillRect(T-D,V-9,ab-Y,9);O[O.length]={type:"triangle",data:[ah,V+4,5]};K.fillStyle=g;switch(compute_overlap([U,U+S],R)){case (OVERLAP_START):N=N.slice(L-U);break;case (OVERLAP_END):N=N.slice(0,U-aa);break;case (CONTAINED_BY):break;case (CONTAINS):N=N.slice(L-U,U-aa);break}for(var af=0,H=N.length;af<H;af++){var X=Math.floor(Math.max(0,(U+af-L)*ag));K.fillText(N[af],X-(ab-Y)/2,V)}}else{K.fillStyle="yellow";K.fillRect(T,V+(this.mode!=="Dense"?2:5),ab-Y,(A!=="Dense"?e:s))}}else{if((A==="Pack"||this.mode==="Auto")&&M!==undefined&&ag>F){O.push({type:"text",data:[N.length,ah,V+9]})}else{}}}W+=S;break;case"X":W+=S;break}}K.fillStyle="yellow";var Q,ai,ae;for(var ac=0;ac<O.length;ac++){Q=O[ac];ai=Q.type;ae=Q.data;if(ai==="text"){K.save();K.font="bold "+K.font;K.fillText(ae[0],ae[1],ae[2]);K.restore()}else{if(ai=="triangle"){q(K,ae[0],ae[1],ae[2])}}}},draw_element:function(R,M,E,B,U,z,I,S,P){var H=E[0],Q=E[1],A=E[2],J=E[3],D=Math.floor(Math.max(0,(Q-U)*I)),F=Math.ceil(Math.min(P,Math.max(0,(A-U)*I))),C=(M==="Dense"?0:(0+B))*S,G=this.prefs.label_color,O=0;if((M==="Pack"||this.mode==="Auto")&&I>R.canvas.manager.char_width_px){var O=Math.round(I/2)}if(E[5] instanceof Array){var N=Math.floor(Math.max(0,(E[4][0]-U)*I)),L=Math.ceil(Math.min(P,Math.max(0,(E[4][1]-U)*I))),K=Math.floor(Math.max(0,(E[5][0]-U)*I)),y=Math.ceil(Math.min(P,Math.max(0,(E[5][1]-U)*I)));if(E[4][1]>=U&&E[4][0]<=z&&E[4][2]){this.draw_read(R,M,I,C,U,z,E[4][0],E[4][2],E[4][3],E[4][4])}if(E[5][1]>=U&&E[5][0]<=z&&E[5][2]){this.draw_read(R,M,I,C,U,z,E[5][0],E[5][2],E[5][3],E[5][4])}if(K>L){R.fillStyle=g;p(R,L-O,C+5,K-O,C+5)}}else{this.draw_read(R,M,I,C,U,z,Q,E[4],E[5],E[6])}if(M==="Pack"&&Q>U&&J!=="."){R.fillStyle=this.prefs.label_color;var T=1;if(T===0&&D-R.measureText(J).width<0){R.textAlign="left";R.fillText(J,F+j-O,C+8)}else{R.textAlign="right";R.fillText(J,D-j-O,C+8)}}return[0,0]}});var n=function(A,D,y,z,C,E,B){r.call(this,A,D,y,z,C,E,B);this.longest_feature_length=this.calculate_longest_feature_length();this.draw_background_connector=false;this.draw_individual_connectors=true};u(n.prototype,o.prototype,r.prototype,{calculate_longest_feature_length:function(){var z=0;for(var C=0,y=this.data.length;C<y;C++){var B=this.data[C],A=B[1],D=B[2];z=Math.max(z,D-A)}return z},get_top_padding:function(z){var y=this.view_end-this.view_start,A=z/y;return Math.min(128,Math.ceil((this.longest_feature_length/2)*A))},draw_connector:function(G,B,F,H,E,D){var y=(F+H)/2,C=H-y;var A=Math.PI,z=0;if(C>0){G.beginPath();G.arc(y,D,H-y,Math.PI,0);G.stroke()}}});x.Scaler=d;x.SummaryTreePainter=v;x.LinePainter=b;x.LinkedFeaturePainter=r;x.ReadPainter=t;x.ArcLinkedFeaturePainter=n};(function(d){var c={};var b=function(e){return c[e]};var a=function(f,g){var e={};g(b,e);c[f]=e};a("class",class_module);a("slotting",slotting_module);a("painters",painters_module);a("trackster",trackster_module);for(key in c.trackster){d[key]=c.trackster[key]}})(window);
\ No newline at end of file
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/d39523d118fe/
changeset: d39523d118fe
user: dan
date: 2011-11-17 20:18:55
summary: Update tool_conf.xml.sample.
affected #: 1 file
diff -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec -r d39523d118fe21d71c994d185c2a0d96196f09b0 tool_conf.xml.sample
--- a/tool_conf.xml.sample
+++ b/tool_conf.xml.sample
@@ -378,6 +378,8 @@
<tool file="samtools/samtools_rmdup.xml" /></section><section name="NGS: GATK Tools (beta)" id="gatk">
+ <label text="Alignment Utilities" id="gatk_bam_utilities"/>
+ <tool file="gatk/depth_of_coverage.xml" /><label text="Realignment" id="gatk_realignment" /><tool file="gatk/realigner_target_creator.xml" />
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/4e075c43e20f/
changeset: 4e075c43e20f
user: dan
date: 2011-11-17 20:17:42
summary: Add DepthOfCoverage GATK tool.
affected #: 7 files
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1.log.contains
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1.log.contains
@@ -0,0 +1,6 @@
+TraversalEngine - [INITIALIZATION COMPLETE; TRAVERSAL STARTING]
+TraversalEngine - Location processed.sites runtime per.1M.sites completed total.runtime remaining
+DepthOfCoverageWalker - Printing summary info
+DepthOfCoverageWalker - Printing locus summary
+TraversalEngine - Total runtime
+TraversalEngine - 0 reads were filtered out during traversal out of 10 total (0.00%)
\ No newline at end of file
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_cumulative_coverage_counts_sample.tabular
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_cumulative_coverage_counts_sample.tabular
@@ -0,0 +1,2 @@
+ gte_0 gte_1 gte_2 gte_3 gte_4 gte_5 gte_6 gte_7 gte_8 gte_9 gte_10 gte_11 gte_12 gte_13 gte_14 gte_15 gte_16 gte_17 gte_18 gte_19 gte_20 gte_21 gte_22 gte_23 gte_24 gte_25 gte_26 gte_27 gte_28 gte_29 gte_30 gte_31 gte_32 gte_33 gte_34 gte_35 gte_36 gte_37 gte_38 gte_39 gte_40 gte_41 gte_42 gte_43 gte_44 gte_45 gte_46 gte_47 gte_48 gte_49 gte_50 gte_51 gte_52 gte_53 gte_54 gte_55 gte_56 gte_57 gte_58 gte_59 gte_60 gte_61 gte_62 gte_63 gte_64 gte_65 gte_66 gte_67 gte_68 gte_69 gte_70 gte_71 gte_72 gte_73 gte_74 gte_75 gte_76 gte_77 gte_78 gte_79 gte_80 gte_81 gte_82 gte_83 gte_84 gte_85 gte_86 gte_87 gte_88 gte_89 gte_90 gte_91 gte_92 gte_93 gte_94 gte_95 gte_96 gte_97 gte_98 gte_99 gte_100 gte_101 gte_102 gte_103 gte_104 gte_105 gte_106 gte_107 gte_108 gte_109 gte_110 gte_111 gte_112 gte_113 gte_114 gte_115 gte_116 gte_117 gte_118 gte_119 gte_120 gte_121 gte_122 gte_123 gte_124 gte_125 gte_126 gte_127 gte_128 gte_129 gte_130 gte_131 gte_132 gte_133 gte_134 gte_135 gte_136 gte_137 gte_138 gte_139 gte_140 gte_141 gte_142 gte_143 gte_144 gte_145 gte_146 gte_147 gte_148 gte_149 gte_150 gte_151 gte_152 gte_153 gte_154 gte_155 gte_156 gte_157 gte_158 gte_159 gte_160 gte_161 gte_162 gte_163 gte_164 gte_165 gte_166 gte_167 gte_168 gte_169 gte_170 gte_171 gte_172 gte_173 gte_174 gte_175 gte_176 gte_177 gte_178 gte_179 gte_180 gte_181 gte_182 gte_183 gte_184 gte_185 gte_186 gte_187 gte_188 gte_189 gte_190 gte_191 gte_192 gte_193 gte_194 gte_195 gte_196 gte_197 gte_198 gte_199 gte_200 gte_201 gte_202 gte_203 gte_204 gte_205 gte_206 gte_207 gte_208 gte_209 gte_210 gte_211 gte_212 gte_213 gte_214 gte_215 gte_216 gte_217 gte_218 gte_219 gte_220 gte_221 gte_222 gte_223 gte_224 gte_225 gte_226 gte_227 gte_228 gte_229 gte_230 gte_231 gte_232 gte_233 gte_234 gte_235 gte_236 gte_237 gte_238 gte_239 gte_240 gte_241 gte_242 gte_243 gte_244 gte_245 gte_246 gte_247 gte_248 gte_249 gte_250 gte_251 gte_252 gte_253 gte_254 gte_255 gte_256 gte_257 gte_258 gte_259 gte_260 gte_261 gte_262 gte_263 gte_264 gte_265 gte_266 gte_267 gte_268 gte_269 gte_270 gte_271 gte_272 gte_273 gte_274 gte_275 gte_276 gte_277 gte_278 gte_279 gte_280 gte_281 gte_282 gte_283 gte_284 gte_285 gte_286 gte_287 gte_288 gte_289 gte_290 gte_291 gte_292 gte_293 gte_294 gte_295 gte_296 gte_297 gte_298 gte_299 gte_300 gte_301 gte_302 gte_303 gte_304 gte_305 gte_306 gte_307 gte_308 gte_309 gte_310 gte_311 gte_312 gte_313 gte_314 gte_315 gte_316 gte_317 gte_318 gte_319 gte_320 gte_321 gte_322 gte_323 gte_324 gte_325 gte_326 gte_327 gte_328 gte_329 gte_330 gte_331 gte_332 gte_333 gte_334 gte_335 gte_336 gte_337 gte_338 gte_339 gte_340 gte_341 gte_342 gte_343 gte_344 gte_345 gte_346 gte_347 gte_348 gte_349 gte_350 gte_351 gte_352 gte_353 gte_354 gte_355 gte_356 gte_357 gte_358 gte_359 gte_360 gte_361 gte_362 gte_363 gte_364 gte_365 gte_366 gte_367 gte_368 gte_369 gte_370 gte_371 gte_372 gte_373 gte_374 gte_375 gte_376 gte_377 gte_378 gte_379 gte_380 gte_381 gte_382 gte_383 gte_384 gte_385 gte_386 gte_387 gte_388 gte_389 gte_390 gte_391 gte_392 gte_393 gte_394 gte_395 gte_396 gte_397 gte_398 gte_399 gte_400 gte_401 gte_402 gte_403 gte_404 gte_405 gte_406 gte_407 gte_408 gte_409 gte_410 gte_411 gte_412 gte_413 gte_414 gte_415 gte_416 gte_417 gte_418 gte_419 gte_420 gte_421 gte_422 gte_423 gte_424 gte_425 gte_426 gte_427 gte_428 gte_429 gte_430 gte_431 gte_432 gte_433 gte_434 gte_435 gte_436 gte_437 gte_438 gte_439 gte_440 gte_441 gte_442 gte_443 gte_444 gte_445 gte_446 gte_447 gte_448 gte_449 gte_450 gte_451 gte_452 gte_453 gte_454 gte_455 gte_456 gte_457 gte_458 gte_459 gte_460 gte_461 gte_462 gte_463 gte_464 gte_465 gte_466 gte_467 gte_468 gte_469 gte_470 gte_471 gte_472 gte_473 gte_474 gte_475 gte_476 gte_477 gte_478 gte_479 gte_480 gte_481 gte_482 gte_483 gte_484 gte_485 gte_486 gte_487 gte_488 gte_489 gte_490 gte_491 gte_492 gte_493 gte_494 gte_495 gte_496 gte_497 gte_498 gte_499 gte_500
+NSamples_1 5386 43 41 40 38 37 36 34 32 30 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_output_cumulative_coverage_proportions_sample.tabular
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_output_cumulative_coverage_proportions_sample.tabular
@@ -0,0 +1,2 @@
+ gte_0 gte_1 gte_2 gte_3 gte_4 gte_5 gte_6 gte_7 gte_8 gte_9 gte_10 gte_11 gte_12 gte_13 gte_14 gte_15 gte_16 gte_17 gte_18 gte_19 gte_20 gte_21 gte_22 gte_23 gte_24 gte_25 gte_26 gte_27 gte_28 gte_29 gte_30 gte_31 gte_32 gte_33 gte_34 gte_35 gte_36 gte_37 gte_38 gte_39 gte_40 gte_41 gte_42 gte_43 gte_44 gte_45 gte_46 gte_47 gte_48 gte_49 gte_50 gte_51 gte_52 gte_53 gte_54 gte_55 gte_56 gte_57 gte_58 gte_59 gte_60 gte_61 gte_62 gte_63 gte_64 gte_65 gte_66 gte_67 gte_68 gte_69 gte_70 gte_71 gte_72 gte_73 gte_74 gte_75 gte_76 gte_77 gte_78 gte_79 gte_80 gte_81 gte_82 gte_83 gte_84 gte_85 gte_86 gte_87 gte_88 gte_89 gte_90 gte_91 gte_92 gte_93 gte_94 gte_95 gte_96 gte_97 gte_98 gte_99 gte_100 gte_101 gte_102 gte_103 gte_104 gte_105 gte_106 gte_107 gte_108 gte_109 gte_110 gte_111 gte_112 gte_113 gte_114 gte_115 gte_116 gte_117 gte_118 gte_119 gte_120 gte_121 gte_122 gte_123 gte_124 gte_125 gte_126 gte_127 gte_128 gte_129 gte_130 gte_131 gte_132 gte_133 gte_134 gte_135 gte_136 gte_137 gte_138 gte_139 gte_140 gte_141 gte_142 gte_143 gte_144 gte_145 gte_146 gte_147 gte_148 gte_149 gte_150 gte_151 gte_152 gte_153 gte_154 gte_155 gte_156 gte_157 gte_158 gte_159 gte_160 gte_161 gte_162 gte_163 gte_164 gte_165 gte_166 gte_167 gte_168 gte_169 gte_170 gte_171 gte_172 gte_173 gte_174 gte_175 gte_176 gte_177 gte_178 gte_179 gte_180 gte_181 gte_182 gte_183 gte_184 gte_185 gte_186 gte_187 gte_188 gte_189 gte_190 gte_191 gte_192 gte_193 gte_194 gte_195 gte_196 gte_197 gte_198 gte_199 gte_200 gte_201 gte_202 gte_203 gte_204 gte_205 gte_206 gte_207 gte_208 gte_209 gte_210 gte_211 gte_212 gte_213 gte_214 gte_215 gte_216 gte_217 gte_218 gte_219 gte_220 gte_221 gte_222 gte_223 gte_224 gte_225 gte_226 gte_227 gte_228 gte_229 gte_230 gte_231 gte_232 gte_233 gte_234 gte_235 gte_236 gte_237 gte_238 gte_239 gte_240 gte_241 gte_242 gte_243 gte_244 gte_245 gte_246 gte_247 gte_248 gte_249 gte_250 gte_251 gte_252 gte_253 gte_254 gte_255 gte_256 gte_257 gte_258 gte_259 gte_260 gte_261 gte_262 gte_263 gte_264 gte_265 gte_266 gte_267 gte_268 gte_269 gte_270 gte_271 gte_272 gte_273 gte_274 gte_275 gte_276 gte_277 gte_278 gte_279 gte_280 gte_281 gte_282 gte_283 gte_284 gte_285 gte_286 gte_287 gte_288 gte_289 gte_290 gte_291 gte_292 gte_293 gte_294 gte_295 gte_296 gte_297 gte_298 gte_299 gte_300 gte_301 gte_302 gte_303 gte_304 gte_305 gte_306 gte_307 gte_308 gte_309 gte_310 gte_311 gte_312 gte_313 gte_314 gte_315 gte_316 gte_317 gte_318 gte_319 gte_320 gte_321 gte_322 gte_323 gte_324 gte_325 gte_326 gte_327 gte_328 gte_329 gte_330 gte_331 gte_332 gte_333 gte_334 gte_335 gte_336 gte_337 gte_338 gte_339 gte_340 gte_341 gte_342 gte_343 gte_344 gte_345 gte_346 gte_347 gte_348 gte_349 gte_350 gte_351 gte_352 gte_353 gte_354 gte_355 gte_356 gte_357 gte_358 gte_359 gte_360 gte_361 gte_362 gte_363 gte_364 gte_365 gte_366 gte_367 gte_368 gte_369 gte_370 gte_371 gte_372 gte_373 gte_374 gte_375 gte_376 gte_377 gte_378 gte_379 gte_380 gte_381 gte_382 gte_383 gte_384 gte_385 gte_386 gte_387 gte_388 gte_389 gte_390 gte_391 gte_392 gte_393 gte_394 gte_395 gte_396 gte_397 gte_398 gte_399 gte_400 gte_401 gte_402 gte_403 gte_404 gte_405 gte_406 gte_407 gte_408 gte_409 gte_410 gte_411 gte_412 gte_413 gte_414 gte_415 gte_416 gte_417 gte_418 gte_419 gte_420 gte_421 gte_422 gte_423 gte_424 gte_425 gte_426 gte_427 gte_428 gte_429 gte_430 gte_431 gte_432 gte_433 gte_434 gte_435 gte_436 gte_437 gte_438 gte_439 gte_440 gte_441 gte_442 gte_443 gte_444 gte_445 gte_446 gte_447 gte_448 gte_449 gte_450 gte_451 gte_452 gte_453 gte_454 gte_455 gte_456 gte_457 gte_458 gte_459 gte_460 gte_461 gte_462 gte_463 gte_464 gte_465 gte_466 gte_467 gte_468 gte_469 gte_470 gte_471 gte_472 gte_473 gte_474 gte_475 gte_476 gte_477 gte_478 gte_479 gte_480 gte_481 gte_482 gte_483 gte_484 gte_485 gte_486 gte_487 gte_488 gte_489 gte_490 gte_491 gte_492 gte_493 gte_494 gte_495 gte_496 gte_497 gte_498 gte_499 gte_500
+A Fake phiX Sample 1.00 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_per_locus_coverage.tabular
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_per_locus_coverage.tabular
@@ -0,0 +1,5387 @@
+Locus Total_Depth Average_Depth_sample Depth_for_A Fake phiX Sample
+phiX174:1 0 0.00 0
+phiX174:2 0 0.00 0
+phiX174:3 0 0.00 0
+phiX174:4 0 0.00 0
+phiX174:5 0 0.00 0
+phiX174:6 0 0.00 0
+phiX174:7 0 0.00 0
+phiX174:8 0 0.00 0
+phiX174:9 0 0.00 0
+phiX174:10 0 0.00 0
+phiX174:11 0 0.00 0
+phiX174:12 0 0.00 0
+phiX174:13 0 0.00 0
+phiX174:14 0 0.00 0
+phiX174:15 0 0.00 0
+phiX174:16 0 0.00 0
+phiX174:17 0 0.00 0
+phiX174:18 0 0.00 0
+phiX174:19 0 0.00 0
+phiX174:20 0 0.00 0
+phiX174:21 0 0.00 0
+phiX174:22 0 0.00 0
+phiX174:23 0 0.00 0
+phiX174:24 0 0.00 0
+phiX174:25 0 0.00 0
+phiX174:26 0 0.00 0
+phiX174:27 0 0.00 0
+phiX174:28 0 0.00 0
+phiX174:29 0 0.00 0
+phiX174:30 0 0.00 0
+phiX174:31 0 0.00 0
+phiX174:32 0 0.00 0
+phiX174:33 0 0.00 0
+phiX174:34 0 0.00 0
+phiX174:35 0 0.00 0
+phiX174:36 0 0.00 0
+phiX174:37 0 0.00 0
+phiX174:38 0 0.00 0
+phiX174:39 0 0.00 0
+phiX174:40 0 0.00 0
+phiX174:41 0 0.00 0
+phiX174:42 0 0.00 0
+phiX174:43 0 0.00 0
+phiX174:44 0 0.00 0
+phiX174:45 0 0.00 0
+phiX174:46 0 0.00 0
+phiX174:47 0 0.00 0
+phiX174:48 0 0.00 0
+phiX174:49 0 0.00 0
+phiX174:50 0 0.00 0
+phiX174:51 0 0.00 0
+phiX174:52 0 0.00 0
+phiX174:53 0 0.00 0
+phiX174:54 0 0.00 0
+phiX174:55 0 0.00 0
+phiX174:56 0 0.00 0
+phiX174:57 0 0.00 0
+phiX174:58 0 0.00 0
+phiX174:59 0 0.00 0
+phiX174:60 0 0.00 0
+phiX174:61 0 0.00 0
+phiX174:62 0 0.00 0
+phiX174:63 0 0.00 0
+phiX174:64 0 0.00 0
+phiX174:65 0 0.00 0
+phiX174:66 0 0.00 0
+phiX174:67 0 0.00 0
+phiX174:68 0 0.00 0
+phiX174:69 0 0.00 0
+phiX174:70 0 0.00 0
+phiX174:71 0 0.00 0
+phiX174:72 0 0.00 0
+phiX174:73 0 0.00 0
+phiX174:74 0 0.00 0
+phiX174:75 0 0.00 0
+phiX174:76 0 0.00 0
+phiX174:77 0 0.00 0
+phiX174:78 0 0.00 0
+phiX174:79 0 0.00 0
+phiX174:80 0 0.00 0
+phiX174:81 0 0.00 0
+phiX174:82 0 0.00 0
+phiX174:83 0 0.00 0
+phiX174:84 0 0.00 0
+phiX174:85 0 0.00 0
+phiX174:86 0 0.00 0
+phiX174:87 0 0.00 0
+phiX174:88 0 0.00 0
+phiX174:89 0 0.00 0
+phiX174:90 0 0.00 0
+phiX174:91 0 0.00 0
+phiX174:92 0 0.00 0
+phiX174:93 0 0.00 0
+phiX174:94 0 0.00 0
+phiX174:95 0 0.00 0
+phiX174:96 0 0.00 0
+phiX174:97 0 0.00 0
+phiX174:98 0 0.00 0
+phiX174:99 0 0.00 0
+phiX174:100 0 0.00 0
+phiX174:101 0 0.00 0
+phiX174:102 0 0.00 0
+phiX174:103 0 0.00 0
+phiX174:104 0 0.00 0
+phiX174:105 0 0.00 0
+phiX174:106 0 0.00 0
+phiX174:107 0 0.00 0
+phiX174:108 0 0.00 0
+phiX174:109 0 0.00 0
+phiX174:110 0 0.00 0
+phiX174:111 0 0.00 0
+phiX174:112 0 0.00 0
+phiX174:113 0 0.00 0
+phiX174:114 0 0.00 0
+phiX174:115 0 0.00 0
+phiX174:116 0 0.00 0
+phiX174:117 0 0.00 0
+phiX174:118 0 0.00 0
+phiX174:119 0 0.00 0
+phiX174:120 0 0.00 0
+phiX174:121 0 0.00 0
+phiX174:122 0 0.00 0
+phiX174:123 0 0.00 0
+phiX174:124 0 0.00 0
+phiX174:125 0 0.00 0
+phiX174:126 0 0.00 0
+phiX174:127 0 0.00 0
+phiX174:128 0 0.00 0
+phiX174:129 0 0.00 0
+phiX174:130 0 0.00 0
+phiX174:131 0 0.00 0
+phiX174:132 0 0.00 0
+phiX174:133 0 0.00 0
+phiX174:134 0 0.00 0
+phiX174:135 0 0.00 0
+phiX174:136 0 0.00 0
+phiX174:137 0 0.00 0
+phiX174:138 0 0.00 0
+phiX174:139 0 0.00 0
+phiX174:140 0 0.00 0
+phiX174:141 0 0.00 0
+phiX174:142 0 0.00 0
+phiX174:143 0 0.00 0
+phiX174:144 0 0.00 0
+phiX174:145 0 0.00 0
+phiX174:146 0 0.00 0
+phiX174:147 0 0.00 0
+phiX174:148 0 0.00 0
+phiX174:149 0 0.00 0
+phiX174:150 0 0.00 0
+phiX174:151 0 0.00 0
+phiX174:152 0 0.00 0
+phiX174:153 0 0.00 0
+phiX174:154 0 0.00 0
+phiX174:155 0 0.00 0
+phiX174:156 0 0.00 0
+phiX174:157 0 0.00 0
+phiX174:158 0 0.00 0
+phiX174:159 0 0.00 0
+phiX174:160 0 0.00 0
+phiX174:161 0 0.00 0
+phiX174:162 0 0.00 0
+phiX174:163 0 0.00 0
+phiX174:164 0 0.00 0
+phiX174:165 0 0.00 0
+phiX174:166 0 0.00 0
+phiX174:167 0 0.00 0
+phiX174:168 0 0.00 0
+phiX174:169 0 0.00 0
+phiX174:170 0 0.00 0
+phiX174:171 0 0.00 0
+phiX174:172 0 0.00 0
+phiX174:173 0 0.00 0
+phiX174:174 0 0.00 0
+phiX174:175 0 0.00 0
+phiX174:176 0 0.00 0
+phiX174:177 0 0.00 0
+phiX174:178 0 0.00 0
+phiX174:179 0 0.00 0
+phiX174:180 0 0.00 0
+phiX174:181 0 0.00 0
+phiX174:182 0 0.00 0
+phiX174:183 0 0.00 0
+phiX174:184 0 0.00 0
+phiX174:185 0 0.00 0
+phiX174:186 0 0.00 0
+phiX174:187 0 0.00 0
+phiX174:188 0 0.00 0
+phiX174:189 0 0.00 0
+phiX174:190 0 0.00 0
+phiX174:191 0 0.00 0
+phiX174:192 0 0.00 0
+phiX174:193 0 0.00 0
+phiX174:194 0 0.00 0
+phiX174:195 0 0.00 0
+phiX174:196 0 0.00 0
+phiX174:197 0 0.00 0
+phiX174:198 0 0.00 0
+phiX174:199 0 0.00 0
+phiX174:200 0 0.00 0
+phiX174:201 0 0.00 0
+phiX174:202 0 0.00 0
+phiX174:203 0 0.00 0
+phiX174:204 0 0.00 0
+phiX174:205 0 0.00 0
+phiX174:206 0 0.00 0
+phiX174:207 0 0.00 0
+phiX174:208 0 0.00 0
+phiX174:209 0 0.00 0
+phiX174:210 0 0.00 0
+phiX174:211 0 0.00 0
+phiX174:212 0 0.00 0
+phiX174:213 0 0.00 0
+phiX174:214 0 0.00 0
+phiX174:215 0 0.00 0
+phiX174:216 0 0.00 0
+phiX174:217 0 0.00 0
+phiX174:218 0 0.00 0
+phiX174:219 0 0.00 0
+phiX174:220 0 0.00 0
+phiX174:221 0 0.00 0
+phiX174:222 0 0.00 0
+phiX174:223 0 0.00 0
+phiX174:224 0 0.00 0
+phiX174:225 0 0.00 0
+phiX174:226 0 0.00 0
+phiX174:227 0 0.00 0
+phiX174:228 0 0.00 0
+phiX174:229 0 0.00 0
+phiX174:230 0 0.00 0
+phiX174:231 0 0.00 0
+phiX174:232 0 0.00 0
+phiX174:233 0 0.00 0
+phiX174:234 0 0.00 0
+phiX174:235 0 0.00 0
+phiX174:236 0 0.00 0
+phiX174:237 0 0.00 0
+phiX174:238 0 0.00 0
+phiX174:239 0 0.00 0
+phiX174:240 0 0.00 0
+phiX174:241 0 0.00 0
+phiX174:242 0 0.00 0
+phiX174:243 0 0.00 0
+phiX174:244 0 0.00 0
+phiX174:245 0 0.00 0
+phiX174:246 0 0.00 0
+phiX174:247 0 0.00 0
+phiX174:248 0 0.00 0
+phiX174:249 0 0.00 0
+phiX174:250 0 0.00 0
+phiX174:251 0 0.00 0
+phiX174:252 0 0.00 0
+phiX174:253 0 0.00 0
+phiX174:254 0 0.00 0
+phiX174:255 0 0.00 0
+phiX174:256 0 0.00 0
+phiX174:257 0 0.00 0
+phiX174:258 0 0.00 0
+phiX174:259 0 0.00 0
+phiX174:260 0 0.00 0
+phiX174:261 0 0.00 0
+phiX174:262 0 0.00 0
+phiX174:263 0 0.00 0
+phiX174:264 0 0.00 0
+phiX174:265 0 0.00 0
+phiX174:266 0 0.00 0
+phiX174:267 0 0.00 0
+phiX174:268 0 0.00 0
+phiX174:269 0 0.00 0
+phiX174:270 0 0.00 0
+phiX174:271 0 0.00 0
+phiX174:272 0 0.00 0
+phiX174:273 0 0.00 0
+phiX174:274 0 0.00 0
+phiX174:275 0 0.00 0
+phiX174:276 0 0.00 0
+phiX174:277 0 0.00 0
+phiX174:278 0 0.00 0
+phiX174:279 0 0.00 0
+phiX174:280 0 0.00 0
+phiX174:281 0 0.00 0
+phiX174:282 0 0.00 0
+phiX174:283 0 0.00 0
+phiX174:284 0 0.00 0
+phiX174:285 0 0.00 0
+phiX174:286 0 0.00 0
+phiX174:287 0 0.00 0
+phiX174:288 0 0.00 0
+phiX174:289 0 0.00 0
+phiX174:290 0 0.00 0
+phiX174:291 0 0.00 0
+phiX174:292 0 0.00 0
+phiX174:293 0 0.00 0
+phiX174:294 0 0.00 0
+phiX174:295 0 0.00 0
+phiX174:296 0 0.00 0
+phiX174:297 0 0.00 0
+phiX174:298 0 0.00 0
+phiX174:299 0 0.00 0
+phiX174:300 0 0.00 0
+phiX174:301 0 0.00 0
+phiX174:302 0 0.00 0
+phiX174:303 0 0.00 0
+phiX174:304 0 0.00 0
+phiX174:305 0 0.00 0
+phiX174:306 0 0.00 0
+phiX174:307 0 0.00 0
+phiX174:308 0 0.00 0
+phiX174:309 0 0.00 0
+phiX174:310 0 0.00 0
+phiX174:311 0 0.00 0
+phiX174:312 0 0.00 0
+phiX174:313 0 0.00 0
+phiX174:314 0 0.00 0
+phiX174:315 0 0.00 0
+phiX174:316 0 0.00 0
+phiX174:317 0 0.00 0
+phiX174:318 0 0.00 0
+phiX174:319 0 0.00 0
+phiX174:320 0 0.00 0
+phiX174:321 0 0.00 0
+phiX174:322 0 0.00 0
+phiX174:323 0 0.00 0
+phiX174:324 0 0.00 0
+phiX174:325 0 0.00 0
+phiX174:326 0 0.00 0
+phiX174:327 0 0.00 0
+phiX174:328 0 0.00 0
+phiX174:329 0 0.00 0
+phiX174:330 0 0.00 0
+phiX174:331 0 0.00 0
+phiX174:332 0 0.00 0
+phiX174:333 0 0.00 0
+phiX174:334 0 0.00 0
+phiX174:335 0 0.00 0
+phiX174:336 0 0.00 0
+phiX174:337 0 0.00 0
+phiX174:338 0 0.00 0
+phiX174:339 0 0.00 0
+phiX174:340 0 0.00 0
+phiX174:341 0 0.00 0
+phiX174:342 0 0.00 0
+phiX174:343 0 0.00 0
+phiX174:344 0 0.00 0
+phiX174:345 0 0.00 0
+phiX174:346 0 0.00 0
+phiX174:347 0 0.00 0
+phiX174:348 0 0.00 0
+phiX174:349 0 0.00 0
+phiX174:350 0 0.00 0
+phiX174:351 0 0.00 0
+phiX174:352 0 0.00 0
+phiX174:353 0 0.00 0
+phiX174:354 0 0.00 0
+phiX174:355 0 0.00 0
+phiX174:356 0 0.00 0
+phiX174:357 0 0.00 0
+phiX174:358 0 0.00 0
+phiX174:359 0 0.00 0
+phiX174:360 0 0.00 0
+phiX174:361 0 0.00 0
+phiX174:362 0 0.00 0
+phiX174:363 0 0.00 0
+phiX174:364 0 0.00 0
+phiX174:365 0 0.00 0
+phiX174:366 0 0.00 0
+phiX174:367 0 0.00 0
+phiX174:368 0 0.00 0
+phiX174:369 0 0.00 0
+phiX174:370 0 0.00 0
+phiX174:371 0 0.00 0
+phiX174:372 0 0.00 0
+phiX174:373 0 0.00 0
+phiX174:374 0 0.00 0
+phiX174:375 0 0.00 0
+phiX174:376 0 0.00 0
+phiX174:377 0 0.00 0
+phiX174:378 0 0.00 0
+phiX174:379 0 0.00 0
+phiX174:380 0 0.00 0
+phiX174:381 0 0.00 0
+phiX174:382 0 0.00 0
+phiX174:383 0 0.00 0
+phiX174:384 0 0.00 0
+phiX174:385 0 0.00 0
+phiX174:386 0 0.00 0
+phiX174:387 0 0.00 0
+phiX174:388 0 0.00 0
+phiX174:389 0 0.00 0
+phiX174:390 0 0.00 0
+phiX174:391 0 0.00 0
+phiX174:392 0 0.00 0
+phiX174:393 0 0.00 0
+phiX174:394 0 0.00 0
+phiX174:395 0 0.00 0
+phiX174:396 0 0.00 0
+phiX174:397 0 0.00 0
+phiX174:398 0 0.00 0
+phiX174:399 0 0.00 0
+phiX174:400 0 0.00 0
+phiX174:401 0 0.00 0
+phiX174:402 0 0.00 0
+phiX174:403 0 0.00 0
+phiX174:404 0 0.00 0
+phiX174:405 0 0.00 0
+phiX174:406 0 0.00 0
+phiX174:407 0 0.00 0
+phiX174:408 0 0.00 0
+phiX174:409 0 0.00 0
+phiX174:410 0 0.00 0
+phiX174:411 0 0.00 0
+phiX174:412 0 0.00 0
+phiX174:413 0 0.00 0
+phiX174:414 0 0.00 0
+phiX174:415 0 0.00 0
+phiX174:416 0 0.00 0
+phiX174:417 0 0.00 0
+phiX174:418 0 0.00 0
+phiX174:419 0 0.00 0
+phiX174:420 0 0.00 0
+phiX174:421 0 0.00 0
+phiX174:422 0 0.00 0
+phiX174:423 0 0.00 0
+phiX174:424 0 0.00 0
+phiX174:425 0 0.00 0
+phiX174:426 0 0.00 0
+phiX174:427 0 0.00 0
+phiX174:428 0 0.00 0
+phiX174:429 0 0.00 0
+phiX174:430 0 0.00 0
+phiX174:431 0 0.00 0
+phiX174:432 0 0.00 0
+phiX174:433 0 0.00 0
+phiX174:434 0 0.00 0
+phiX174:435 0 0.00 0
+phiX174:436 0 0.00 0
+phiX174:437 0 0.00 0
+phiX174:438 0 0.00 0
+phiX174:439 0 0.00 0
+phiX174:440 0 0.00 0
+phiX174:441 0 0.00 0
+phiX174:442 0 0.00 0
+phiX174:443 0 0.00 0
+phiX174:444 0 0.00 0
+phiX174:445 0 0.00 0
+phiX174:446 0 0.00 0
+phiX174:447 0 0.00 0
+phiX174:448 0 0.00 0
+phiX174:449 0 0.00 0
+phiX174:450 0 0.00 0
+phiX174:451 0 0.00 0
+phiX174:452 0 0.00 0
+phiX174:453 0 0.00 0
+phiX174:454 0 0.00 0
+phiX174:455 0 0.00 0
+phiX174:456 0 0.00 0
+phiX174:457 0 0.00 0
+phiX174:458 0 0.00 0
+phiX174:459 0 0.00 0
+phiX174:460 0 0.00 0
+phiX174:461 0 0.00 0
+phiX174:462 0 0.00 0
+phiX174:463 0 0.00 0
+phiX174:464 0 0.00 0
+phiX174:465 0 0.00 0
+phiX174:466 0 0.00 0
+phiX174:467 0 0.00 0
+phiX174:468 0 0.00 0
+phiX174:469 0 0.00 0
+phiX174:470 0 0.00 0
+phiX174:471 0 0.00 0
+phiX174:472 0 0.00 0
+phiX174:473 0 0.00 0
+phiX174:474 0 0.00 0
+phiX174:475 0 0.00 0
+phiX174:476 0 0.00 0
+phiX174:477 0 0.00 0
+phiX174:478 0 0.00 0
+phiX174:479 0 0.00 0
+phiX174:480 0 0.00 0
+phiX174:481 0 0.00 0
+phiX174:482 0 0.00 0
+phiX174:483 0 0.00 0
+phiX174:484 0 0.00 0
+phiX174:485 0 0.00 0
+phiX174:486 0 0.00 0
+phiX174:487 0 0.00 0
+phiX174:488 0 0.00 0
+phiX174:489 0 0.00 0
+phiX174:490 0 0.00 0
+phiX174:491 0 0.00 0
+phiX174:492 0 0.00 0
+phiX174:493 0 0.00 0
+phiX174:494 0 0.00 0
+phiX174:495 0 0.00 0
+phiX174:496 0 0.00 0
+phiX174:497 0 0.00 0
+phiX174:498 0 0.00 0
+phiX174:499 0 0.00 0
+phiX174:500 0 0.00 0
+phiX174:501 0 0.00 0
+phiX174:502 0 0.00 0
+phiX174:503 0 0.00 0
+phiX174:504 0 0.00 0
+phiX174:505 0 0.00 0
+phiX174:506 0 0.00 0
+phiX174:507 0 0.00 0
+phiX174:508 0 0.00 0
+phiX174:509 0 0.00 0
+phiX174:510 0 0.00 0
+phiX174:511 0 0.00 0
+phiX174:512 0 0.00 0
+phiX174:513 0 0.00 0
+phiX174:514 0 0.00 0
+phiX174:515 0 0.00 0
+phiX174:516 0 0.00 0
+phiX174:517 0 0.00 0
+phiX174:518 0 0.00 0
+phiX174:519 0 0.00 0
+phiX174:520 0 0.00 0
+phiX174:521 0 0.00 0
+phiX174:522 0 0.00 0
+phiX174:523 0 0.00 0
+phiX174:524 0 0.00 0
+phiX174:525 0 0.00 0
+phiX174:526 0 0.00 0
+phiX174:527 0 0.00 0
+phiX174:528 0 0.00 0
+phiX174:529 0 0.00 0
+phiX174:530 0 0.00 0
+phiX174:531 0 0.00 0
+phiX174:532 0 0.00 0
+phiX174:533 0 0.00 0
+phiX174:534 0 0.00 0
+phiX174:535 0 0.00 0
+phiX174:536 0 0.00 0
+phiX174:537 0 0.00 0
+phiX174:538 0 0.00 0
+phiX174:539 0 0.00 0
+phiX174:540 0 0.00 0
+phiX174:541 0 0.00 0
+phiX174:542 0 0.00 0
+phiX174:543 0 0.00 0
+phiX174:544 0 0.00 0
+phiX174:545 0 0.00 0
+phiX174:546 0 0.00 0
+phiX174:547 0 0.00 0
+phiX174:548 0 0.00 0
+phiX174:549 0 0.00 0
+phiX174:550 0 0.00 0
+phiX174:551 0 0.00 0
+phiX174:552 0 0.00 0
+phiX174:553 0 0.00 0
+phiX174:554 0 0.00 0
+phiX174:555 0 0.00 0
+phiX174:556 0 0.00 0
+phiX174:557 0 0.00 0
+phiX174:558 0 0.00 0
+phiX174:559 0 0.00 0
+phiX174:560 0 0.00 0
+phiX174:561 0 0.00 0
+phiX174:562 0 0.00 0
+phiX174:563 0 0.00 0
+phiX174:564 0 0.00 0
+phiX174:565 0 0.00 0
+phiX174:566 0 0.00 0
+phiX174:567 0 0.00 0
+phiX174:568 0 0.00 0
+phiX174:569 0 0.00 0
+phiX174:570 0 0.00 0
+phiX174:571 0 0.00 0
+phiX174:572 0 0.00 0
+phiX174:573 0 0.00 0
+phiX174:574 0 0.00 0
+phiX174:575 0 0.00 0
+phiX174:576 0 0.00 0
+phiX174:577 0 0.00 0
+phiX174:578 0 0.00 0
+phiX174:579 0 0.00 0
+phiX174:580 0 0.00 0
+phiX174:581 0 0.00 0
+phiX174:582 0 0.00 0
+phiX174:583 0 0.00 0
+phiX174:584 0 0.00 0
+phiX174:585 0 0.00 0
+phiX174:586 0 0.00 0
+phiX174:587 0 0.00 0
+phiX174:588 0 0.00 0
+phiX174:589 0 0.00 0
+phiX174:590 0 0.00 0
+phiX174:591 0 0.00 0
+phiX174:592 0 0.00 0
+phiX174:593 0 0.00 0
+phiX174:594 0 0.00 0
+phiX174:595 0 0.00 0
+phiX174:596 0 0.00 0
+phiX174:597 0 0.00 0
+phiX174:598 0 0.00 0
+phiX174:599 0 0.00 0
+phiX174:600 0 0.00 0
+phiX174:601 0 0.00 0
+phiX174:602 0 0.00 0
+phiX174:603 0 0.00 0
+phiX174:604 0 0.00 0
+phiX174:605 0 0.00 0
+phiX174:606 0 0.00 0
+phiX174:607 0 0.00 0
+phiX174:608 0 0.00 0
+phiX174:609 0 0.00 0
+phiX174:610 0 0.00 0
+phiX174:611 0 0.00 0
+phiX174:612 0 0.00 0
+phiX174:613 0 0.00 0
+phiX174:614 0 0.00 0
+phiX174:615 0 0.00 0
+phiX174:616 0 0.00 0
+phiX174:617 0 0.00 0
+phiX174:618 0 0.00 0
+phiX174:619 0 0.00 0
+phiX174:620 0 0.00 0
+phiX174:621 0 0.00 0
+phiX174:622 0 0.00 0
+phiX174:623 0 0.00 0
+phiX174:624 0 0.00 0
+phiX174:625 0 0.00 0
+phiX174:626 0 0.00 0
+phiX174:627 0 0.00 0
+phiX174:628 0 0.00 0
+phiX174:629 0 0.00 0
+phiX174:630 0 0.00 0
+phiX174:631 0 0.00 0
+phiX174:632 0 0.00 0
+phiX174:633 0 0.00 0
+phiX174:634 0 0.00 0
+phiX174:635 0 0.00 0
+phiX174:636 0 0.00 0
+phiX174:637 0 0.00 0
+phiX174:638 0 0.00 0
+phiX174:639 0 0.00 0
+phiX174:640 0 0.00 0
+phiX174:641 0 0.00 0
+phiX174:642 0 0.00 0
+phiX174:643 0 0.00 0
+phiX174:644 0 0.00 0
+phiX174:645 0 0.00 0
+phiX174:646 0 0.00 0
+phiX174:647 0 0.00 0
+phiX174:648 0 0.00 0
+phiX174:649 0 0.00 0
+phiX174:650 0 0.00 0
+phiX174:651 0 0.00 0
+phiX174:652 0 0.00 0
+phiX174:653 0 0.00 0
+phiX174:654 0 0.00 0
+phiX174:655 0 0.00 0
+phiX174:656 0 0.00 0
+phiX174:657 0 0.00 0
+phiX174:658 0 0.00 0
+phiX174:659 0 0.00 0
+phiX174:660 0 0.00 0
+phiX174:661 0 0.00 0
+phiX174:662 0 0.00 0
+phiX174:663 0 0.00 0
+phiX174:664 0 0.00 0
+phiX174:665 0 0.00 0
+phiX174:666 0 0.00 0
+phiX174:667 0 0.00 0
+phiX174:668 0 0.00 0
+phiX174:669 0 0.00 0
+phiX174:670 0 0.00 0
+phiX174:671 0 0.00 0
+phiX174:672 0 0.00 0
+phiX174:673 0 0.00 0
+phiX174:674 0 0.00 0
+phiX174:675 0 0.00 0
+phiX174:676 0 0.00 0
+phiX174:677 0 0.00 0
+phiX174:678 0 0.00 0
+phiX174:679 0 0.00 0
+phiX174:680 0 0.00 0
+phiX174:681 0 0.00 0
+phiX174:682 0 0.00 0
+phiX174:683 0 0.00 0
+phiX174:684 0 0.00 0
+phiX174:685 0 0.00 0
+phiX174:686 0 0.00 0
+phiX174:687 0 0.00 0
+phiX174:688 0 0.00 0
+phiX174:689 0 0.00 0
+phiX174:690 0 0.00 0
+phiX174:691 0 0.00 0
+phiX174:692 0 0.00 0
+phiX174:693 0 0.00 0
+phiX174:694 0 0.00 0
+phiX174:695 0 0.00 0
+phiX174:696 0 0.00 0
+phiX174:697 0 0.00 0
+phiX174:698 0 0.00 0
+phiX174:699 0 0.00 0
+phiX174:700 0 0.00 0
+phiX174:701 0 0.00 0
+phiX174:702 0 0.00 0
+phiX174:703 0 0.00 0
+phiX174:704 0 0.00 0
+phiX174:705 0 0.00 0
+phiX174:706 0 0.00 0
+phiX174:707 0 0.00 0
+phiX174:708 0 0.00 0
+phiX174:709 0 0.00 0
+phiX174:710 0 0.00 0
+phiX174:711 0 0.00 0
+phiX174:712 0 0.00 0
+phiX174:713 0 0.00 0
+phiX174:714 0 0.00 0
+phiX174:715 0 0.00 0
+phiX174:716 0 0.00 0
+phiX174:717 0 0.00 0
+phiX174:718 0 0.00 0
+phiX174:719 0 0.00 0
+phiX174:720 0 0.00 0
+phiX174:721 0 0.00 0
+phiX174:722 0 0.00 0
+phiX174:723 0 0.00 0
+phiX174:724 0 0.00 0
+phiX174:725 0 0.00 0
+phiX174:726 0 0.00 0
+phiX174:727 0 0.00 0
+phiX174:728 0 0.00 0
+phiX174:729 0 0.00 0
+phiX174:730 0 0.00 0
+phiX174:731 0 0.00 0
+phiX174:732 0 0.00 0
+phiX174:733 0 0.00 0
+phiX174:734 0 0.00 0
+phiX174:735 0 0.00 0
+phiX174:736 0 0.00 0
+phiX174:737 0 0.00 0
+phiX174:738 0 0.00 0
+phiX174:739 0 0.00 0
+phiX174:740 0 0.00 0
+phiX174:741 0 0.00 0
+phiX174:742 0 0.00 0
+phiX174:743 0 0.00 0
+phiX174:744 0 0.00 0
+phiX174:745 0 0.00 0
+phiX174:746 0 0.00 0
+phiX174:747 0 0.00 0
+phiX174:748 0 0.00 0
+phiX174:749 0 0.00 0
+phiX174:750 0 0.00 0
+phiX174:751 0 0.00 0
+phiX174:752 0 0.00 0
+phiX174:753 0 0.00 0
+phiX174:754 0 0.00 0
+phiX174:755 0 0.00 0
+phiX174:756 0 0.00 0
+phiX174:757 0 0.00 0
+phiX174:758 0 0.00 0
+phiX174:759 0 0.00 0
+phiX174:760 0 0.00 0
+phiX174:761 0 0.00 0
+phiX174:762 0 0.00 0
+phiX174:763 0 0.00 0
+phiX174:764 0 0.00 0
+phiX174:765 0 0.00 0
+phiX174:766 0 0.00 0
+phiX174:767 0 0.00 0
+phiX174:768 0 0.00 0
+phiX174:769 0 0.00 0
+phiX174:770 0 0.00 0
+phiX174:771 0 0.00 0
+phiX174:772 0 0.00 0
+phiX174:773 0 0.00 0
+phiX174:774 0 0.00 0
+phiX174:775 0 0.00 0
+phiX174:776 0 0.00 0
+phiX174:777 0 0.00 0
+phiX174:778 0 0.00 0
+phiX174:779 0 0.00 0
+phiX174:780 0 0.00 0
+phiX174:781 0 0.00 0
+phiX174:782 0 0.00 0
+phiX174:783 0 0.00 0
+phiX174:784 0 0.00 0
+phiX174:785 0 0.00 0
+phiX174:786 0 0.00 0
+phiX174:787 0 0.00 0
+phiX174:788 0 0.00 0
+phiX174:789 0 0.00 0
+phiX174:790 0 0.00 0
+phiX174:791 0 0.00 0
+phiX174:792 0 0.00 0
+phiX174:793 0 0.00 0
+phiX174:794 0 0.00 0
+phiX174:795 0 0.00 0
+phiX174:796 0 0.00 0
+phiX174:797 0 0.00 0
+phiX174:798 0 0.00 0
+phiX174:799 0 0.00 0
+phiX174:800 0 0.00 0
+phiX174:801 0 0.00 0
+phiX174:802 0 0.00 0
+phiX174:803 0 0.00 0
+phiX174:804 0 0.00 0
+phiX174:805 0 0.00 0
+phiX174:806 0 0.00 0
+phiX174:807 0 0.00 0
+phiX174:808 0 0.00 0
+phiX174:809 0 0.00 0
+phiX174:810 0 0.00 0
+phiX174:811 0 0.00 0
+phiX174:812 0 0.00 0
+phiX174:813 0 0.00 0
+phiX174:814 0 0.00 0
+phiX174:815 0 0.00 0
+phiX174:816 0 0.00 0
+phiX174:817 0 0.00 0
+phiX174:818 0 0.00 0
+phiX174:819 0 0.00 0
+phiX174:820 0 0.00 0
+phiX174:821 0 0.00 0
+phiX174:822 0 0.00 0
+phiX174:823 0 0.00 0
+phiX174:824 0 0.00 0
+phiX174:825 0 0.00 0
+phiX174:826 0 0.00 0
+phiX174:827 0 0.00 0
+phiX174:828 0 0.00 0
+phiX174:829 0 0.00 0
+phiX174:830 0 0.00 0
+phiX174:831 0 0.00 0
+phiX174:832 0 0.00 0
+phiX174:833 0 0.00 0
+phiX174:834 0 0.00 0
+phiX174:835 0 0.00 0
+phiX174:836 0 0.00 0
+phiX174:837 0 0.00 0
+phiX174:838 0 0.00 0
+phiX174:839 0 0.00 0
+phiX174:840 0 0.00 0
+phiX174:841 0 0.00 0
+phiX174:842 0 0.00 0
+phiX174:843 0 0.00 0
+phiX174:844 0 0.00 0
+phiX174:845 0 0.00 0
+phiX174:846 0 0.00 0
+phiX174:847 0 0.00 0
+phiX174:848 0 0.00 0
+phiX174:849 0 0.00 0
+phiX174:850 0 0.00 0
+phiX174:851 0 0.00 0
+phiX174:852 0 0.00 0
+phiX174:853 0 0.00 0
+phiX174:854 0 0.00 0
+phiX174:855 0 0.00 0
+phiX174:856 0 0.00 0
+phiX174:857 0 0.00 0
+phiX174:858 0 0.00 0
+phiX174:859 0 0.00 0
+phiX174:860 0 0.00 0
+phiX174:861 0 0.00 0
+phiX174:862 0 0.00 0
+phiX174:863 0 0.00 0
+phiX174:864 0 0.00 0
+phiX174:865 0 0.00 0
+phiX174:866 0 0.00 0
+phiX174:867 0 0.00 0
+phiX174:868 0 0.00 0
+phiX174:869 0 0.00 0
+phiX174:870 0 0.00 0
+phiX174:871 0 0.00 0
+phiX174:872 0 0.00 0
+phiX174:873 0 0.00 0
+phiX174:874 0 0.00 0
+phiX174:875 0 0.00 0
+phiX174:876 0 0.00 0
+phiX174:877 0 0.00 0
+phiX174:878 0 0.00 0
+phiX174:879 0 0.00 0
+phiX174:880 0 0.00 0
+phiX174:881 0 0.00 0
+phiX174:882 0 0.00 0
+phiX174:883 0 0.00 0
+phiX174:884 0 0.00 0
+phiX174:885 0 0.00 0
+phiX174:886 0 0.00 0
+phiX174:887 0 0.00 0
+phiX174:888 0 0.00 0
+phiX174:889 0 0.00 0
+phiX174:890 0 0.00 0
+phiX174:891 0 0.00 0
+phiX174:892 0 0.00 0
+phiX174:893 0 0.00 0
+phiX174:894 0 0.00 0
+phiX174:895 0 0.00 0
+phiX174:896 0 0.00 0
+phiX174:897 0 0.00 0
+phiX174:898 0 0.00 0
+phiX174:899 0 0.00 0
+phiX174:900 0 0.00 0
+phiX174:901 0 0.00 0
+phiX174:902 0 0.00 0
+phiX174:903 0 0.00 0
+phiX174:904 0 0.00 0
+phiX174:905 0 0.00 0
+phiX174:906 0 0.00 0
+phiX174:907 0 0.00 0
+phiX174:908 0 0.00 0
+phiX174:909 0 0.00 0
+phiX174:910 0 0.00 0
+phiX174:911 0 0.00 0
+phiX174:912 0 0.00 0
+phiX174:913 0 0.00 0
+phiX174:914 0 0.00 0
+phiX174:915 0 0.00 0
+phiX174:916 0 0.00 0
+phiX174:917 0 0.00 0
+phiX174:918 0 0.00 0
+phiX174:919 0 0.00 0
+phiX174:920 0 0.00 0
+phiX174:921 0 0.00 0
+phiX174:922 0 0.00 0
+phiX174:923 0 0.00 0
+phiX174:924 0 0.00 0
+phiX174:925 0 0.00 0
+phiX174:926 0 0.00 0
+phiX174:927 0 0.00 0
+phiX174:928 0 0.00 0
+phiX174:929 0 0.00 0
+phiX174:930 0 0.00 0
+phiX174:931 0 0.00 0
+phiX174:932 0 0.00 0
+phiX174:933 0 0.00 0
+phiX174:934 0 0.00 0
+phiX174:935 0 0.00 0
+phiX174:936 0 0.00 0
+phiX174:937 0 0.00 0
+phiX174:938 0 0.00 0
+phiX174:939 0 0.00 0
+phiX174:940 0 0.00 0
+phiX174:941 0 0.00 0
+phiX174:942 0 0.00 0
+phiX174:943 0 0.00 0
+phiX174:944 0 0.00 0
+phiX174:945 0 0.00 0
+phiX174:946 0 0.00 0
+phiX174:947 0 0.00 0
+phiX174:948 0 0.00 0
+phiX174:949 0 0.00 0
+phiX174:950 0 0.00 0
+phiX174:951 0 0.00 0
+phiX174:952 0 0.00 0
+phiX174:953 0 0.00 0
+phiX174:954 0 0.00 0
+phiX174:955 0 0.00 0
+phiX174:956 0 0.00 0
+phiX174:957 0 0.00 0
+phiX174:958 0 0.00 0
+phiX174:959 0 0.00 0
+phiX174:960 0 0.00 0
+phiX174:961 0 0.00 0
+phiX174:962 0 0.00 0
+phiX174:963 0 0.00 0
+phiX174:964 0 0.00 0
+phiX174:965 0 0.00 0
+phiX174:966 0 0.00 0
+phiX174:967 0 0.00 0
+phiX174:968 0 0.00 0
+phiX174:969 0 0.00 0
+phiX174:970 0 0.00 0
+phiX174:971 0 0.00 0
+phiX174:972 0 0.00 0
+phiX174:973 0 0.00 0
+phiX174:974 0 0.00 0
+phiX174:975 0 0.00 0
+phiX174:976 0 0.00 0
+phiX174:977 0 0.00 0
+phiX174:978 0 0.00 0
+phiX174:979 0 0.00 0
+phiX174:980 0 0.00 0
+phiX174:981 0 0.00 0
+phiX174:982 0 0.00 0
+phiX174:983 0 0.00 0
+phiX174:984 0 0.00 0
+phiX174:985 0 0.00 0
+phiX174:986 0 0.00 0
+phiX174:987 0 0.00 0
+phiX174:988 0 0.00 0
+phiX174:989 0 0.00 0
+phiX174:990 0 0.00 0
+phiX174:991 0 0.00 0
+phiX174:992 0 0.00 0
+phiX174:993 0 0.00 0
+phiX174:994 0 0.00 0
+phiX174:995 0 0.00 0
+phiX174:996 0 0.00 0
+phiX174:997 0 0.00 0
+phiX174:998 0 0.00 0
+phiX174:999 0 0.00 0
+phiX174:1000 0 0.00 0
+phiX174:1001 0 0.00 0
+phiX174:1002 0 0.00 0
+phiX174:1003 0 0.00 0
+phiX174:1004 0 0.00 0
+phiX174:1005 0 0.00 0
+phiX174:1006 0 0.00 0
+phiX174:1007 0 0.00 0
+phiX174:1008 0 0.00 0
+phiX174:1009 0 0.00 0
+phiX174:1010 0 0.00 0
+phiX174:1011 0 0.00 0
+phiX174:1012 0 0.00 0
+phiX174:1013 0 0.00 0
+phiX174:1014 0 0.00 0
+phiX174:1015 0 0.00 0
+phiX174:1016 0 0.00 0
+phiX174:1017 0 0.00 0
+phiX174:1018 0 0.00 0
+phiX174:1019 0 0.00 0
+phiX174:1020 0 0.00 0
+phiX174:1021 0 0.00 0
+phiX174:1022 0 0.00 0
+phiX174:1023 0 0.00 0
+phiX174:1024 0 0.00 0
+phiX174:1025 0 0.00 0
+phiX174:1026 0 0.00 0
+phiX174:1027 0 0.00 0
+phiX174:1028 0 0.00 0
+phiX174:1029 0 0.00 0
+phiX174:1030 0 0.00 0
+phiX174:1031 0 0.00 0
+phiX174:1032 0 0.00 0
+phiX174:1033 0 0.00 0
+phiX174:1034 0 0.00 0
+phiX174:1035 0 0.00 0
+phiX174:1036 0 0.00 0
+phiX174:1037 0 0.00 0
+phiX174:1038 0 0.00 0
+phiX174:1039 0 0.00 0
+phiX174:1040 0 0.00 0
+phiX174:1041 0 0.00 0
+phiX174:1042 0 0.00 0
+phiX174:1043 0 0.00 0
+phiX174:1044 0 0.00 0
+phiX174:1045 0 0.00 0
+phiX174:1046 0 0.00 0
+phiX174:1047 0 0.00 0
+phiX174:1048 0 0.00 0
+phiX174:1049 0 0.00 0
+phiX174:1050 0 0.00 0
+phiX174:1051 0 0.00 0
+phiX174:1052 0 0.00 0
+phiX174:1053 0 0.00 0
+phiX174:1054 0 0.00 0
+phiX174:1055 0 0.00 0
+phiX174:1056 0 0.00 0
+phiX174:1057 0 0.00 0
+phiX174:1058 0 0.00 0
+phiX174:1059 0 0.00 0
+phiX174:1060 0 0.00 0
+phiX174:1061 0 0.00 0
+phiX174:1062 0 0.00 0
+phiX174:1063 0 0.00 0
+phiX174:1064 0 0.00 0
+phiX174:1065 0 0.00 0
+phiX174:1066 0 0.00 0
+phiX174:1067 0 0.00 0
+phiX174:1068 0 0.00 0
+phiX174:1069 0 0.00 0
+phiX174:1070 0 0.00 0
+phiX174:1071 0 0.00 0
+phiX174:1072 0 0.00 0
+phiX174:1073 0 0.00 0
+phiX174:1074 0 0.00 0
+phiX174:1075 0 0.00 0
+phiX174:1076 0 0.00 0
+phiX174:1077 0 0.00 0
+phiX174:1078 0 0.00 0
+phiX174:1079 0 0.00 0
+phiX174:1080 0 0.00 0
+phiX174:1081 0 0.00 0
+phiX174:1082 0 0.00 0
+phiX174:1083 0 0.00 0
+phiX174:1084 0 0.00 0
+phiX174:1085 0 0.00 0
+phiX174:1086 0 0.00 0
+phiX174:1087 0 0.00 0
+phiX174:1088 0 0.00 0
+phiX174:1089 0 0.00 0
+phiX174:1090 0 0.00 0
+phiX174:1091 0 0.00 0
+phiX174:1092 0 0.00 0
+phiX174:1093 0 0.00 0
+phiX174:1094 0 0.00 0
+phiX174:1095 0 0.00 0
+phiX174:1096 0 0.00 0
+phiX174:1097 0 0.00 0
+phiX174:1098 0 0.00 0
+phiX174:1099 0 0.00 0
+phiX174:1100 0 0.00 0
+phiX174:1101 0 0.00 0
+phiX174:1102 0 0.00 0
+phiX174:1103 0 0.00 0
+phiX174:1104 0 0.00 0
+phiX174:1105 0 0.00 0
+phiX174:1106 0 0.00 0
+phiX174:1107 0 0.00 0
+phiX174:1108 0 0.00 0
+phiX174:1109 0 0.00 0
+phiX174:1110 0 0.00 0
+phiX174:1111 0 0.00 0
+phiX174:1112 0 0.00 0
+phiX174:1113 0 0.00 0
+phiX174:1114 0 0.00 0
+phiX174:1115 0 0.00 0
+phiX174:1116 0 0.00 0
+phiX174:1117 0 0.00 0
+phiX174:1118 0 0.00 0
+phiX174:1119 0 0.00 0
+phiX174:1120 0 0.00 0
+phiX174:1121 0 0.00 0
+phiX174:1122 0 0.00 0
+phiX174:1123 0 0.00 0
+phiX174:1124 0 0.00 0
+phiX174:1125 0 0.00 0
+phiX174:1126 0 0.00 0
+phiX174:1127 0 0.00 0
+phiX174:1128 0 0.00 0
+phiX174:1129 0 0.00 0
+phiX174:1130 0 0.00 0
+phiX174:1131 0 0.00 0
+phiX174:1132 0 0.00 0
+phiX174:1133 0 0.00 0
+phiX174:1134 0 0.00 0
+phiX174:1135 0 0.00 0
+phiX174:1136 0 0.00 0
+phiX174:1137 0 0.00 0
+phiX174:1138 0 0.00 0
+phiX174:1139 0 0.00 0
+phiX174:1140 0 0.00 0
+phiX174:1141 0 0.00 0
+phiX174:1142 0 0.00 0
+phiX174:1143 0 0.00 0
+phiX174:1144 0 0.00 0
+phiX174:1145 0 0.00 0
+phiX174:1146 0 0.00 0
+phiX174:1147 0 0.00 0
+phiX174:1148 0 0.00 0
+phiX174:1149 0 0.00 0
+phiX174:1150 0 0.00 0
+phiX174:1151 0 0.00 0
+phiX174:1152 0 0.00 0
+phiX174:1153 0 0.00 0
+phiX174:1154 0 0.00 0
+phiX174:1155 0 0.00 0
+phiX174:1156 0 0.00 0
+phiX174:1157 0 0.00 0
+phiX174:1158 0 0.00 0
+phiX174:1159 0 0.00 0
+phiX174:1160 0 0.00 0
+phiX174:1161 0 0.00 0
+phiX174:1162 0 0.00 0
+phiX174:1163 0 0.00 0
+phiX174:1164 0 0.00 0
+phiX174:1165 0 0.00 0
+phiX174:1166 0 0.00 0
+phiX174:1167 0 0.00 0
+phiX174:1168 0 0.00 0
+phiX174:1169 0 0.00 0
+phiX174:1170 0 0.00 0
+phiX174:1171 0 0.00 0
+phiX174:1172 0 0.00 0
+phiX174:1173 0 0.00 0
+phiX174:1174 0 0.00 0
+phiX174:1175 0 0.00 0
+phiX174:1176 0 0.00 0
+phiX174:1177 0 0.00 0
+phiX174:1178 0 0.00 0
+phiX174:1179 0 0.00 0
+phiX174:1180 0 0.00 0
+phiX174:1181 0 0.00 0
+phiX174:1182 0 0.00 0
+phiX174:1183 0 0.00 0
+phiX174:1184 0 0.00 0
+phiX174:1185 0 0.00 0
+phiX174:1186 0 0.00 0
+phiX174:1187 0 0.00 0
+phiX174:1188 0 0.00 0
+phiX174:1189 0 0.00 0
+phiX174:1190 0 0.00 0
+phiX174:1191 0 0.00 0
+phiX174:1192 0 0.00 0
+phiX174:1193 0 0.00 0
+phiX174:1194 0 0.00 0
+phiX174:1195 0 0.00 0
+phiX174:1196 0 0.00 0
+phiX174:1197 0 0.00 0
+phiX174:1198 0 0.00 0
+phiX174:1199 0 0.00 0
+phiX174:1200 0 0.00 0
+phiX174:1201 0 0.00 0
+phiX174:1202 0 0.00 0
+phiX174:1203 0 0.00 0
+phiX174:1204 0 0.00 0
+phiX174:1205 0 0.00 0
+phiX174:1206 0 0.00 0
+phiX174:1207 0 0.00 0
+phiX174:1208 0 0.00 0
+phiX174:1209 0 0.00 0
+phiX174:1210 0 0.00 0
+phiX174:1211 0 0.00 0
+phiX174:1212 0 0.00 0
+phiX174:1213 0 0.00 0
+phiX174:1214 0 0.00 0
+phiX174:1215 0 0.00 0
+phiX174:1216 0 0.00 0
+phiX174:1217 0 0.00 0
+phiX174:1218 0 0.00 0
+phiX174:1219 0 0.00 0
+phiX174:1220 0 0.00 0
+phiX174:1221 0 0.00 0
+phiX174:1222 0 0.00 0
+phiX174:1223 0 0.00 0
+phiX174:1224 0 0.00 0
+phiX174:1225 0 0.00 0
+phiX174:1226 0 0.00 0
+phiX174:1227 0 0.00 0
+phiX174:1228 0 0.00 0
+phiX174:1229 0 0.00 0
+phiX174:1230 0 0.00 0
+phiX174:1231 0 0.00 0
+phiX174:1232 0 0.00 0
+phiX174:1233 0 0.00 0
+phiX174:1234 0 0.00 0
+phiX174:1235 0 0.00 0
+phiX174:1236 0 0.00 0
+phiX174:1237 0 0.00 0
+phiX174:1238 0 0.00 0
+phiX174:1239 0 0.00 0
+phiX174:1240 0 0.00 0
+phiX174:1241 0 0.00 0
+phiX174:1242 0 0.00 0
+phiX174:1243 0 0.00 0
+phiX174:1244 0 0.00 0
+phiX174:1245 0 0.00 0
+phiX174:1246 0 0.00 0
+phiX174:1247 0 0.00 0
+phiX174:1248 0 0.00 0
+phiX174:1249 0 0.00 0
+phiX174:1250 0 0.00 0
+phiX174:1251 0 0.00 0
+phiX174:1252 0 0.00 0
+phiX174:1253 0 0.00 0
+phiX174:1254 0 0.00 0
+phiX174:1255 0 0.00 0
+phiX174:1256 0 0.00 0
+phiX174:1257 0 0.00 0
+phiX174:1258 0 0.00 0
+phiX174:1259 0 0.00 0
+phiX174:1260 0 0.00 0
+phiX174:1261 0 0.00 0
+phiX174:1262 0 0.00 0
+phiX174:1263 0 0.00 0
+phiX174:1264 0 0.00 0
+phiX174:1265 0 0.00 0
+phiX174:1266 0 0.00 0
+phiX174:1267 0 0.00 0
+phiX174:1268 0 0.00 0
+phiX174:1269 0 0.00 0
+phiX174:1270 0 0.00 0
+phiX174:1271 0 0.00 0
+phiX174:1272 0 0.00 0
+phiX174:1273 0 0.00 0
+phiX174:1274 0 0.00 0
+phiX174:1275 0 0.00 0
+phiX174:1276 0 0.00 0
+phiX174:1277 0 0.00 0
+phiX174:1278 0 0.00 0
+phiX174:1279 0 0.00 0
+phiX174:1280 0 0.00 0
+phiX174:1281 0 0.00 0
+phiX174:1282 0 0.00 0
+phiX174:1283 0 0.00 0
+phiX174:1284 0 0.00 0
+phiX174:1285 0 0.00 0
+phiX174:1286 0 0.00 0
+phiX174:1287 0 0.00 0
+phiX174:1288 0 0.00 0
+phiX174:1289 0 0.00 0
+phiX174:1290 0 0.00 0
+phiX174:1291 0 0.00 0
+phiX174:1292 0 0.00 0
+phiX174:1293 0 0.00 0
+phiX174:1294 0 0.00 0
+phiX174:1295 0 0.00 0
+phiX174:1296 0 0.00 0
+phiX174:1297 0 0.00 0
+phiX174:1298 0 0.00 0
+phiX174:1299 0 0.00 0
+phiX174:1300 0 0.00 0
+phiX174:1301 0 0.00 0
+phiX174:1302 0 0.00 0
+phiX174:1303 0 0.00 0
+phiX174:1304 0 0.00 0
+phiX174:1305 0 0.00 0
+phiX174:1306 0 0.00 0
+phiX174:1307 0 0.00 0
+phiX174:1308 0 0.00 0
+phiX174:1309 0 0.00 0
+phiX174:1310 0 0.00 0
+phiX174:1311 0 0.00 0
+phiX174:1312 0 0.00 0
+phiX174:1313 0 0.00 0
+phiX174:1314 0 0.00 0
+phiX174:1315 0 0.00 0
+phiX174:1316 0 0.00 0
+phiX174:1317 0 0.00 0
+phiX174:1318 0 0.00 0
+phiX174:1319 0 0.00 0
+phiX174:1320 0 0.00 0
+phiX174:1321 0 0.00 0
+phiX174:1322 0 0.00 0
+phiX174:1323 0 0.00 0
+phiX174:1324 0 0.00 0
+phiX174:1325 0 0.00 0
+phiX174:1326 0 0.00 0
+phiX174:1327 0 0.00 0
+phiX174:1328 0 0.00 0
+phiX174:1329 0 0.00 0
+phiX174:1330 0 0.00 0
+phiX174:1331 0 0.00 0
+phiX174:1332 0 0.00 0
+phiX174:1333 0 0.00 0
+phiX174:1334 0 0.00 0
+phiX174:1335 0 0.00 0
+phiX174:1336 0 0.00 0
+phiX174:1337 0 0.00 0
+phiX174:1338 0 0.00 0
+phiX174:1339 0 0.00 0
+phiX174:1340 0 0.00 0
+phiX174:1341 0 0.00 0
+phiX174:1342 0 0.00 0
+phiX174:1343 0 0.00 0
+phiX174:1344 0 0.00 0
+phiX174:1345 0 0.00 0
+phiX174:1346 0 0.00 0
+phiX174:1347 0 0.00 0
+phiX174:1348 0 0.00 0
+phiX174:1349 0 0.00 0
+phiX174:1350 0 0.00 0
+phiX174:1351 0 0.00 0
+phiX174:1352 0 0.00 0
+phiX174:1353 0 0.00 0
+phiX174:1354 0 0.00 0
+phiX174:1355 0 0.00 0
+phiX174:1356 0 0.00 0
+phiX174:1357 0 0.00 0
+phiX174:1358 0 0.00 0
+phiX174:1359 0 0.00 0
+phiX174:1360 0 0.00 0
+phiX174:1361 0 0.00 0
+phiX174:1362 0 0.00 0
+phiX174:1363 0 0.00 0
+phiX174:1364 0 0.00 0
+phiX174:1365 0 0.00 0
+phiX174:1366 0 0.00 0
+phiX174:1367 0 0.00 0
+phiX174:1368 0 0.00 0
+phiX174:1369 0 0.00 0
+phiX174:1370 0 0.00 0
+phiX174:1371 0 0.00 0
+phiX174:1372 0 0.00 0
+phiX174:1373 0 0.00 0
+phiX174:1374 0 0.00 0
+phiX174:1375 0 0.00 0
+phiX174:1376 0 0.00 0
+phiX174:1377 0 0.00 0
+phiX174:1378 0 0.00 0
+phiX174:1379 0 0.00 0
+phiX174:1380 0 0.00 0
+phiX174:1381 0 0.00 0
+phiX174:1382 0 0.00 0
+phiX174:1383 0 0.00 0
+phiX174:1384 0 0.00 0
+phiX174:1385 0 0.00 0
+phiX174:1386 0 0.00 0
+phiX174:1387 0 0.00 0
+phiX174:1388 0 0.00 0
+phiX174:1389 0 0.00 0
+phiX174:1390 0 0.00 0
+phiX174:1391 0 0.00 0
+phiX174:1392 0 0.00 0
+phiX174:1393 0 0.00 0
+phiX174:1394 0 0.00 0
+phiX174:1395 0 0.00 0
+phiX174:1396 0 0.00 0
+phiX174:1397 0 0.00 0
+phiX174:1398 0 0.00 0
+phiX174:1399 0 0.00 0
+phiX174:1400 0 0.00 0
+phiX174:1401 0 0.00 0
+phiX174:1402 0 0.00 0
+phiX174:1403 0 0.00 0
+phiX174:1404 0 0.00 0
+phiX174:1405 0 0.00 0
+phiX174:1406 0 0.00 0
+phiX174:1407 0 0.00 0
+phiX174:1408 0 0.00 0
+phiX174:1409 0 0.00 0
+phiX174:1410 0 0.00 0
+phiX174:1411 1 1.00 1
+phiX174:1412 3 3.00 3
+phiX174:1413 5 5.00 5
+phiX174:1414 6 6.00 6
+phiX174:1415 7 7.00 7
+phiX174:1416 8 8.00 8
+phiX174:1417 9 9.00 9
+phiX174:1418 10 10.00 10
+phiX174:1419 10 10.00 10
+phiX174:1420 10 10.00 10
+phiX174:1421 10 10.00 10
+phiX174:1422 10 10.00 10
+phiX174:1423 10 10.00 10
+phiX174:1424 10 10.00 10
+phiX174:1425 10 10.00 10
+phiX174:1426 10 10.00 10
+phiX174:1427 10 10.00 10
+phiX174:1428 10 10.00 10
+phiX174:1429 10 10.00 10
+phiX174:1430 10 10.00 10
+phiX174:1431 10 10.00 10
+phiX174:1432 10 10.00 10
+phiX174:1433 10 10.00 10
+phiX174:1434 10 10.00 10
+phiX174:1435 10 10.00 10
+phiX174:1436 10 10.00 10
+phiX174:1437 10 10.00 10
+phiX174:1438 10 10.00 10
+phiX174:1439 10 10.00 10
+phiX174:1440 10 10.00 10
+phiX174:1441 10 10.00 10
+phiX174:1442 10 10.00 10
+phiX174:1443 10 10.00 10
+phiX174:1444 7 7.00 7
+phiX174:1445 10 10.00 10
+phiX174:1446 10 10.00 10
+phiX174:1447 10 10.00 10
+phiX174:1448 8 8.00 8
+phiX174:1449 6 6.00 6
+phiX174:1450 4 4.00 4
+phiX174:1451 3 3.00 3
+phiX174:1452 2 2.00 2
+phiX174:1453 1 1.00 1
+phiX174:1454 0 0.00 0
+phiX174:1455 0 0.00 0
+phiX174:1456 0 0.00 0
+phiX174:1457 0 0.00 0
+phiX174:1458 0 0.00 0
+phiX174:1459 0 0.00 0
+phiX174:1460 0 0.00 0
+phiX174:1461 0 0.00 0
+phiX174:1462 0 0.00 0
+phiX174:1463 0 0.00 0
+phiX174:1464 0 0.00 0
+phiX174:1465 0 0.00 0
+phiX174:1466 0 0.00 0
+phiX174:1467 0 0.00 0
+phiX174:1468 0 0.00 0
+phiX174:1469 0 0.00 0
+phiX174:1470 0 0.00 0
+phiX174:1471 0 0.00 0
+phiX174:1472 0 0.00 0
+phiX174:1473 0 0.00 0
+phiX174:1474 0 0.00 0
+phiX174:1475 0 0.00 0
+phiX174:1476 0 0.00 0
+phiX174:1477 0 0.00 0
+phiX174:1478 0 0.00 0
+phiX174:1479 0 0.00 0
+phiX174:1480 0 0.00 0
+phiX174:1481 0 0.00 0
+phiX174:1482 0 0.00 0
+phiX174:1483 0 0.00 0
+phiX174:1484 0 0.00 0
+phiX174:1485 0 0.00 0
+phiX174:1486 0 0.00 0
+phiX174:1487 0 0.00 0
+phiX174:1488 0 0.00 0
+phiX174:1489 0 0.00 0
+phiX174:1490 0 0.00 0
+phiX174:1491 0 0.00 0
+phiX174:1492 0 0.00 0
+phiX174:1493 0 0.00 0
+phiX174:1494 0 0.00 0
+phiX174:1495 0 0.00 0
+phiX174:1496 0 0.00 0
+phiX174:1497 0 0.00 0
+phiX174:1498 0 0.00 0
+phiX174:1499 0 0.00 0
+phiX174:1500 0 0.00 0
+phiX174:1501 0 0.00 0
+phiX174:1502 0 0.00 0
+phiX174:1503 0 0.00 0
+phiX174:1504 0 0.00 0
+phiX174:1505 0 0.00 0
+phiX174:1506 0 0.00 0
+phiX174:1507 0 0.00 0
+phiX174:1508 0 0.00 0
+phiX174:1509 0 0.00 0
+phiX174:1510 0 0.00 0
+phiX174:1511 0 0.00 0
+phiX174:1512 0 0.00 0
+phiX174:1513 0 0.00 0
+phiX174:1514 0 0.00 0
+phiX174:1515 0 0.00 0
+phiX174:1516 0 0.00 0
+phiX174:1517 0 0.00 0
+phiX174:1518 0 0.00 0
+phiX174:1519 0 0.00 0
+phiX174:1520 0 0.00 0
+phiX174:1521 0 0.00 0
+phiX174:1522 0 0.00 0
+phiX174:1523 0 0.00 0
+phiX174:1524 0 0.00 0
+phiX174:1525 0 0.00 0
+phiX174:1526 0 0.00 0
+phiX174:1527 0 0.00 0
+phiX174:1528 0 0.00 0
+phiX174:1529 0 0.00 0
+phiX174:1530 0 0.00 0
+phiX174:1531 0 0.00 0
+phiX174:1532 0 0.00 0
+phiX174:1533 0 0.00 0
+phiX174:1534 0 0.00 0
+phiX174:1535 0 0.00 0
+phiX174:1536 0 0.00 0
+phiX174:1537 0 0.00 0
+phiX174:1538 0 0.00 0
+phiX174:1539 0 0.00 0
+phiX174:1540 0 0.00 0
+phiX174:1541 0 0.00 0
+phiX174:1542 0 0.00 0
+phiX174:1543 0 0.00 0
+phiX174:1544 0 0.00 0
+phiX174:1545 0 0.00 0
+phiX174:1546 0 0.00 0
+phiX174:1547 0 0.00 0
+phiX174:1548 0 0.00 0
+phiX174:1549 0 0.00 0
+phiX174:1550 0 0.00 0
+phiX174:1551 0 0.00 0
+phiX174:1552 0 0.00 0
+phiX174:1553 0 0.00 0
+phiX174:1554 0 0.00 0
+phiX174:1555 0 0.00 0
+phiX174:1556 0 0.00 0
+phiX174:1557 0 0.00 0
+phiX174:1558 0 0.00 0
+phiX174:1559 0 0.00 0
+phiX174:1560 0 0.00 0
+phiX174:1561 0 0.00 0
+phiX174:1562 0 0.00 0
+phiX174:1563 0 0.00 0
+phiX174:1564 0 0.00 0
+phiX174:1565 0 0.00 0
+phiX174:1566 0 0.00 0
+phiX174:1567 0 0.00 0
+phiX174:1568 0 0.00 0
+phiX174:1569 0 0.00 0
+phiX174:1570 0 0.00 0
+phiX174:1571 0 0.00 0
+phiX174:1572 0 0.00 0
+phiX174:1573 0 0.00 0
+phiX174:1574 0 0.00 0
+phiX174:1575 0 0.00 0
+phiX174:1576 0 0.00 0
+phiX174:1577 0 0.00 0
+phiX174:1578 0 0.00 0
+phiX174:1579 0 0.00 0
+phiX174:1580 0 0.00 0
+phiX174:1581 0 0.00 0
+phiX174:1582 0 0.00 0
+phiX174:1583 0 0.00 0
+phiX174:1584 0 0.00 0
+phiX174:1585 0 0.00 0
+phiX174:1586 0 0.00 0
+phiX174:1587 0 0.00 0
+phiX174:1588 0 0.00 0
+phiX174:1589 0 0.00 0
+phiX174:1590 0 0.00 0
+phiX174:1591 0 0.00 0
+phiX174:1592 0 0.00 0
+phiX174:1593 0 0.00 0
+phiX174:1594 0 0.00 0
+phiX174:1595 0 0.00 0
+phiX174:1596 0 0.00 0
+phiX174:1597 0 0.00 0
+phiX174:1598 0 0.00 0
+phiX174:1599 0 0.00 0
+phiX174:1600 0 0.00 0
+phiX174:1601 0 0.00 0
+phiX174:1602 0 0.00 0
+phiX174:1603 0 0.00 0
+phiX174:1604 0 0.00 0
+phiX174:1605 0 0.00 0
+phiX174:1606 0 0.00 0
+phiX174:1607 0 0.00 0
+phiX174:1608 0 0.00 0
+phiX174:1609 0 0.00 0
+phiX174:1610 0 0.00 0
+phiX174:1611 0 0.00 0
+phiX174:1612 0 0.00 0
+phiX174:1613 0 0.00 0
+phiX174:1614 0 0.00 0
+phiX174:1615 0 0.00 0
+phiX174:1616 0 0.00 0
+phiX174:1617 0 0.00 0
+phiX174:1618 0 0.00 0
+phiX174:1619 0 0.00 0
+phiX174:1620 0 0.00 0
+phiX174:1621 0 0.00 0
+phiX174:1622 0 0.00 0
+phiX174:1623 0 0.00 0
+phiX174:1624 0 0.00 0
+phiX174:1625 0 0.00 0
+phiX174:1626 0 0.00 0
+phiX174:1627 0 0.00 0
+phiX174:1628 0 0.00 0
+phiX174:1629 0 0.00 0
+phiX174:1630 0 0.00 0
+phiX174:1631 0 0.00 0
+phiX174:1632 0 0.00 0
+phiX174:1633 0 0.00 0
+phiX174:1634 0 0.00 0
+phiX174:1635 0 0.00 0
+phiX174:1636 0 0.00 0
+phiX174:1637 0 0.00 0
+phiX174:1638 0 0.00 0
+phiX174:1639 0 0.00 0
+phiX174:1640 0 0.00 0
+phiX174:1641 0 0.00 0
+phiX174:1642 0 0.00 0
+phiX174:1643 0 0.00 0
+phiX174:1644 0 0.00 0
+phiX174:1645 0 0.00 0
+phiX174:1646 0 0.00 0
+phiX174:1647 0 0.00 0
+phiX174:1648 0 0.00 0
+phiX174:1649 0 0.00 0
+phiX174:1650 0 0.00 0
+phiX174:1651 0 0.00 0
+phiX174:1652 0 0.00 0
+phiX174:1653 0 0.00 0
+phiX174:1654 0 0.00 0
+phiX174:1655 0 0.00 0
+phiX174:1656 0 0.00 0
+phiX174:1657 0 0.00 0
+phiX174:1658 0 0.00 0
+phiX174:1659 0 0.00 0
+phiX174:1660 0 0.00 0
+phiX174:1661 0 0.00 0
+phiX174:1662 0 0.00 0
+phiX174:1663 0 0.00 0
+phiX174:1664 0 0.00 0
+phiX174:1665 0 0.00 0
+phiX174:1666 0 0.00 0
+phiX174:1667 0 0.00 0
+phiX174:1668 0 0.00 0
+phiX174:1669 0 0.00 0
+phiX174:1670 0 0.00 0
+phiX174:1671 0 0.00 0
+phiX174:1672 0 0.00 0
+phiX174:1673 0 0.00 0
+phiX174:1674 0 0.00 0
+phiX174:1675 0 0.00 0
+phiX174:1676 0 0.00 0
+phiX174:1677 0 0.00 0
+phiX174:1678 0 0.00 0
+phiX174:1679 0 0.00 0
+phiX174:1680 0 0.00 0
+phiX174:1681 0 0.00 0
+phiX174:1682 0 0.00 0
+phiX174:1683 0 0.00 0
+phiX174:1684 0 0.00 0
+phiX174:1685 0 0.00 0
+phiX174:1686 0 0.00 0
+phiX174:1687 0 0.00 0
+phiX174:1688 0 0.00 0
+phiX174:1689 0 0.00 0
+phiX174:1690 0 0.00 0
+phiX174:1691 0 0.00 0
+phiX174:1692 0 0.00 0
+phiX174:1693 0 0.00 0
+phiX174:1694 0 0.00 0
+phiX174:1695 0 0.00 0
+phiX174:1696 0 0.00 0
+phiX174:1697 0 0.00 0
+phiX174:1698 0 0.00 0
+phiX174:1699 0 0.00 0
+phiX174:1700 0 0.00 0
+phiX174:1701 0 0.00 0
+phiX174:1702 0 0.00 0
+phiX174:1703 0 0.00 0
+phiX174:1704 0 0.00 0
+phiX174:1705 0 0.00 0
+phiX174:1706 0 0.00 0
+phiX174:1707 0 0.00 0
+phiX174:1708 0 0.00 0
+phiX174:1709 0 0.00 0
+phiX174:1710 0 0.00 0
+phiX174:1711 0 0.00 0
+phiX174:1712 0 0.00 0
+phiX174:1713 0 0.00 0
+phiX174:1714 0 0.00 0
+phiX174:1715 0 0.00 0
+phiX174:1716 0 0.00 0
+phiX174:1717 0 0.00 0
+phiX174:1718 0 0.00 0
+phiX174:1719 0 0.00 0
+phiX174:1720 0 0.00 0
+phiX174:1721 0 0.00 0
+phiX174:1722 0 0.00 0
+phiX174:1723 0 0.00 0
+phiX174:1724 0 0.00 0
+phiX174:1725 0 0.00 0
+phiX174:1726 0 0.00 0
+phiX174:1727 0 0.00 0
+phiX174:1728 0 0.00 0
+phiX174:1729 0 0.00 0
+phiX174:1730 0 0.00 0
+phiX174:1731 0 0.00 0
+phiX174:1732 0 0.00 0
+phiX174:1733 0 0.00 0
+phiX174:1734 0 0.00 0
+phiX174:1735 0 0.00 0
+phiX174:1736 0 0.00 0
+phiX174:1737 0 0.00 0
+phiX174:1738 0 0.00 0
+phiX174:1739 0 0.00 0
+phiX174:1740 0 0.00 0
+phiX174:1741 0 0.00 0
+phiX174:1742 0 0.00 0
+phiX174:1743 0 0.00 0
+phiX174:1744 0 0.00 0
+phiX174:1745 0 0.00 0
+phiX174:1746 0 0.00 0
+phiX174:1747 0 0.00 0
+phiX174:1748 0 0.00 0
+phiX174:1749 0 0.00 0
+phiX174:1750 0 0.00 0
+phiX174:1751 0 0.00 0
+phiX174:1752 0 0.00 0
+phiX174:1753 0 0.00 0
+phiX174:1754 0 0.00 0
+phiX174:1755 0 0.00 0
+phiX174:1756 0 0.00 0
+phiX174:1757 0 0.00 0
+phiX174:1758 0 0.00 0
+phiX174:1759 0 0.00 0
+phiX174:1760 0 0.00 0
+phiX174:1761 0 0.00 0
+phiX174:1762 0 0.00 0
+phiX174:1763 0 0.00 0
+phiX174:1764 0 0.00 0
+phiX174:1765 0 0.00 0
+phiX174:1766 0 0.00 0
+phiX174:1767 0 0.00 0
+phiX174:1768 0 0.00 0
+phiX174:1769 0 0.00 0
+phiX174:1770 0 0.00 0
+phiX174:1771 0 0.00 0
+phiX174:1772 0 0.00 0
+phiX174:1773 0 0.00 0
+phiX174:1774 0 0.00 0
+phiX174:1775 0 0.00 0
+phiX174:1776 0 0.00 0
+phiX174:1777 0 0.00 0
+phiX174:1778 0 0.00 0
+phiX174:1779 0 0.00 0
+phiX174:1780 0 0.00 0
+phiX174:1781 0 0.00 0
+phiX174:1782 0 0.00 0
+phiX174:1783 0 0.00 0
+phiX174:1784 0 0.00 0
+phiX174:1785 0 0.00 0
+phiX174:1786 0 0.00 0
+phiX174:1787 0 0.00 0
+phiX174:1788 0 0.00 0
+phiX174:1789 0 0.00 0
+phiX174:1790 0 0.00 0
+phiX174:1791 0 0.00 0
+phiX174:1792 0 0.00 0
+phiX174:1793 0 0.00 0
+phiX174:1794 0 0.00 0
+phiX174:1795 0 0.00 0
+phiX174:1796 0 0.00 0
+phiX174:1797 0 0.00 0
+phiX174:1798 0 0.00 0
+phiX174:1799 0 0.00 0
+phiX174:1800 0 0.00 0
+phiX174:1801 0 0.00 0
+phiX174:1802 0 0.00 0
+phiX174:1803 0 0.00 0
+phiX174:1804 0 0.00 0
+phiX174:1805 0 0.00 0
+phiX174:1806 0 0.00 0
+phiX174:1807 0 0.00 0
+phiX174:1808 0 0.00 0
+phiX174:1809 0 0.00 0
+phiX174:1810 0 0.00 0
+phiX174:1811 0 0.00 0
+phiX174:1812 0 0.00 0
+phiX174:1813 0 0.00 0
+phiX174:1814 0 0.00 0
+phiX174:1815 0 0.00 0
+phiX174:1816 0 0.00 0
+phiX174:1817 0 0.00 0
+phiX174:1818 0 0.00 0
+phiX174:1819 0 0.00 0
+phiX174:1820 0 0.00 0
+phiX174:1821 0 0.00 0
+phiX174:1822 0 0.00 0
+phiX174:1823 0 0.00 0
+phiX174:1824 0 0.00 0
+phiX174:1825 0 0.00 0
+phiX174:1826 0 0.00 0
+phiX174:1827 0 0.00 0
+phiX174:1828 0 0.00 0
+phiX174:1829 0 0.00 0
+phiX174:1830 0 0.00 0
+phiX174:1831 0 0.00 0
+phiX174:1832 0 0.00 0
+phiX174:1833 0 0.00 0
+phiX174:1834 0 0.00 0
+phiX174:1835 0 0.00 0
+phiX174:1836 0 0.00 0
+phiX174:1837 0 0.00 0
+phiX174:1838 0 0.00 0
+phiX174:1839 0 0.00 0
+phiX174:1840 0 0.00 0
+phiX174:1841 0 0.00 0
+phiX174:1842 0 0.00 0
+phiX174:1843 0 0.00 0
+phiX174:1844 0 0.00 0
+phiX174:1845 0 0.00 0
+phiX174:1846 0 0.00 0
+phiX174:1847 0 0.00 0
+phiX174:1848 0 0.00 0
+phiX174:1849 0 0.00 0
+phiX174:1850 0 0.00 0
+phiX174:1851 0 0.00 0
+phiX174:1852 0 0.00 0
+phiX174:1853 0 0.00 0
+phiX174:1854 0 0.00 0
+phiX174:1855 0 0.00 0
+phiX174:1856 0 0.00 0
+phiX174:1857 0 0.00 0
+phiX174:1858 0 0.00 0
+phiX174:1859 0 0.00 0
+phiX174:1860 0 0.00 0
+phiX174:1861 0 0.00 0
+phiX174:1862 0 0.00 0
+phiX174:1863 0 0.00 0
+phiX174:1864 0 0.00 0
+phiX174:1865 0 0.00 0
+phiX174:1866 0 0.00 0
+phiX174:1867 0 0.00 0
+phiX174:1868 0 0.00 0
+phiX174:1869 0 0.00 0
+phiX174:1870 0 0.00 0
+phiX174:1871 0 0.00 0
+phiX174:1872 0 0.00 0
+phiX174:1873 0 0.00 0
+phiX174:1874 0 0.00 0
+phiX174:1875 0 0.00 0
+phiX174:1876 0 0.00 0
+phiX174:1877 0 0.00 0
+phiX174:1878 0 0.00 0
+phiX174:1879 0 0.00 0
+phiX174:1880 0 0.00 0
+phiX174:1881 0 0.00 0
+phiX174:1882 0 0.00 0
+phiX174:1883 0 0.00 0
+phiX174:1884 0 0.00 0
+phiX174:1885 0 0.00 0
+phiX174:1886 0 0.00 0
+phiX174:1887 0 0.00 0
+phiX174:1888 0 0.00 0
+phiX174:1889 0 0.00 0
+phiX174:1890 0 0.00 0
+phiX174:1891 0 0.00 0
+phiX174:1892 0 0.00 0
+phiX174:1893 0 0.00 0
+phiX174:1894 0 0.00 0
+phiX174:1895 0 0.00 0
+phiX174:1896 0 0.00 0
+phiX174:1897 0 0.00 0
+phiX174:1898 0 0.00 0
+phiX174:1899 0 0.00 0
+phiX174:1900 0 0.00 0
+phiX174:1901 0 0.00 0
+phiX174:1902 0 0.00 0
+phiX174:1903 0 0.00 0
+phiX174:1904 0 0.00 0
+phiX174:1905 0 0.00 0
+phiX174:1906 0 0.00 0
+phiX174:1907 0 0.00 0
+phiX174:1908 0 0.00 0
+phiX174:1909 0 0.00 0
+phiX174:1910 0 0.00 0
+phiX174:1911 0 0.00 0
+phiX174:1912 0 0.00 0
+phiX174:1913 0 0.00 0
+phiX174:1914 0 0.00 0
+phiX174:1915 0 0.00 0
+phiX174:1916 0 0.00 0
+phiX174:1917 0 0.00 0
+phiX174:1918 0 0.00 0
+phiX174:1919 0 0.00 0
+phiX174:1920 0 0.00 0
+phiX174:1921 0 0.00 0
+phiX174:1922 0 0.00 0
+phiX174:1923 0 0.00 0
+phiX174:1924 0 0.00 0
+phiX174:1925 0 0.00 0
+phiX174:1926 0 0.00 0
+phiX174:1927 0 0.00 0
+phiX174:1928 0 0.00 0
+phiX174:1929 0 0.00 0
+phiX174:1930 0 0.00 0
+phiX174:1931 0 0.00 0
+phiX174:1932 0 0.00 0
+phiX174:1933 0 0.00 0
+phiX174:1934 0 0.00 0
+phiX174:1935 0 0.00 0
+phiX174:1936 0 0.00 0
+phiX174:1937 0 0.00 0
+phiX174:1938 0 0.00 0
+phiX174:1939 0 0.00 0
+phiX174:1940 0 0.00 0
+phiX174:1941 0 0.00 0
+phiX174:1942 0 0.00 0
+phiX174:1943 0 0.00 0
+phiX174:1944 0 0.00 0
+phiX174:1945 0 0.00 0
+phiX174:1946 0 0.00 0
+phiX174:1947 0 0.00 0
+phiX174:1948 0 0.00 0
+phiX174:1949 0 0.00 0
+phiX174:1950 0 0.00 0
+phiX174:1951 0 0.00 0
+phiX174:1952 0 0.00 0
+phiX174:1953 0 0.00 0
+phiX174:1954 0 0.00 0
+phiX174:1955 0 0.00 0
+phiX174:1956 0 0.00 0
+phiX174:1957 0 0.00 0
+phiX174:1958 0 0.00 0
+phiX174:1959 0 0.00 0
+phiX174:1960 0 0.00 0
+phiX174:1961 0 0.00 0
+phiX174:1962 0 0.00 0
+phiX174:1963 0 0.00 0
+phiX174:1964 0 0.00 0
+phiX174:1965 0 0.00 0
+phiX174:1966 0 0.00 0
+phiX174:1967 0 0.00 0
+phiX174:1968 0 0.00 0
+phiX174:1969 0 0.00 0
+phiX174:1970 0 0.00 0
+phiX174:1971 0 0.00 0
+phiX174:1972 0 0.00 0
+phiX174:1973 0 0.00 0
+phiX174:1974 0 0.00 0
+phiX174:1975 0 0.00 0
+phiX174:1976 0 0.00 0
+phiX174:1977 0 0.00 0
+phiX174:1978 0 0.00 0
+phiX174:1979 0 0.00 0
+phiX174:1980 0 0.00 0
+phiX174:1981 0 0.00 0
+phiX174:1982 0 0.00 0
+phiX174:1983 0 0.00 0
+phiX174:1984 0 0.00 0
+phiX174:1985 0 0.00 0
+phiX174:1986 0 0.00 0
+phiX174:1987 0 0.00 0
+phiX174:1988 0 0.00 0
+phiX174:1989 0 0.00 0
+phiX174:1990 0 0.00 0
+phiX174:1991 0 0.00 0
+phiX174:1992 0 0.00 0
+phiX174:1993 0 0.00 0
+phiX174:1994 0 0.00 0
+phiX174:1995 0 0.00 0
+phiX174:1996 0 0.00 0
+phiX174:1997 0 0.00 0
+phiX174:1998 0 0.00 0
+phiX174:1999 0 0.00 0
+phiX174:2000 0 0.00 0
+phiX174:2001 0 0.00 0
+phiX174:2002 0 0.00 0
+phiX174:2003 0 0.00 0
+phiX174:2004 0 0.00 0
+phiX174:2005 0 0.00 0
+phiX174:2006 0 0.00 0
+phiX174:2007 0 0.00 0
+phiX174:2008 0 0.00 0
+phiX174:2009 0 0.00 0
+phiX174:2010 0 0.00 0
+phiX174:2011 0 0.00 0
+phiX174:2012 0 0.00 0
+phiX174:2013 0 0.00 0
+phiX174:2014 0 0.00 0
+phiX174:2015 0 0.00 0
+phiX174:2016 0 0.00 0
+phiX174:2017 0 0.00 0
+phiX174:2018 0 0.00 0
+phiX174:2019 0 0.00 0
+phiX174:2020 0 0.00 0
+phiX174:2021 0 0.00 0
+phiX174:2022 0 0.00 0
+phiX174:2023 0 0.00 0
+phiX174:2024 0 0.00 0
+phiX174:2025 0 0.00 0
+phiX174:2026 0 0.00 0
+phiX174:2027 0 0.00 0
+phiX174:2028 0 0.00 0
+phiX174:2029 0 0.00 0
+phiX174:2030 0 0.00 0
+phiX174:2031 0 0.00 0
+phiX174:2032 0 0.00 0
+phiX174:2033 0 0.00 0
+phiX174:2034 0 0.00 0
+phiX174:2035 0 0.00 0
+phiX174:2036 0 0.00 0
+phiX174:2037 0 0.00 0
+phiX174:2038 0 0.00 0
+phiX174:2039 0 0.00 0
+phiX174:2040 0 0.00 0
+phiX174:2041 0 0.00 0
+phiX174:2042 0 0.00 0
+phiX174:2043 0 0.00 0
+phiX174:2044 0 0.00 0
+phiX174:2045 0 0.00 0
+phiX174:2046 0 0.00 0
+phiX174:2047 0 0.00 0
+phiX174:2048 0 0.00 0
+phiX174:2049 0 0.00 0
+phiX174:2050 0 0.00 0
+phiX174:2051 0 0.00 0
+phiX174:2052 0 0.00 0
+phiX174:2053 0 0.00 0
+phiX174:2054 0 0.00 0
+phiX174:2055 0 0.00 0
+phiX174:2056 0 0.00 0
+phiX174:2057 0 0.00 0
+phiX174:2058 0 0.00 0
+phiX174:2059 0 0.00 0
+phiX174:2060 0 0.00 0
+phiX174:2061 0 0.00 0
+phiX174:2062 0 0.00 0
+phiX174:2063 0 0.00 0
+phiX174:2064 0 0.00 0
+phiX174:2065 0 0.00 0
+phiX174:2066 0 0.00 0
+phiX174:2067 0 0.00 0
+phiX174:2068 0 0.00 0
+phiX174:2069 0 0.00 0
+phiX174:2070 0 0.00 0
+phiX174:2071 0 0.00 0
+phiX174:2072 0 0.00 0
+phiX174:2073 0 0.00 0
+phiX174:2074 0 0.00 0
+phiX174:2075 0 0.00 0
+phiX174:2076 0 0.00 0
+phiX174:2077 0 0.00 0
+phiX174:2078 0 0.00 0
+phiX174:2079 0 0.00 0
+phiX174:2080 0 0.00 0
+phiX174:2081 0 0.00 0
+phiX174:2082 0 0.00 0
+phiX174:2083 0 0.00 0
+phiX174:2084 0 0.00 0
+phiX174:2085 0 0.00 0
+phiX174:2086 0 0.00 0
+phiX174:2087 0 0.00 0
+phiX174:2088 0 0.00 0
+phiX174:2089 0 0.00 0
+phiX174:2090 0 0.00 0
+phiX174:2091 0 0.00 0
+phiX174:2092 0 0.00 0
+phiX174:2093 0 0.00 0
+phiX174:2094 0 0.00 0
+phiX174:2095 0 0.00 0
+phiX174:2096 0 0.00 0
+phiX174:2097 0 0.00 0
+phiX174:2098 0 0.00 0
+phiX174:2099 0 0.00 0
+phiX174:2100 0 0.00 0
+phiX174:2101 0 0.00 0
+phiX174:2102 0 0.00 0
+phiX174:2103 0 0.00 0
+phiX174:2104 0 0.00 0
+phiX174:2105 0 0.00 0
+phiX174:2106 0 0.00 0
+phiX174:2107 0 0.00 0
+phiX174:2108 0 0.00 0
+phiX174:2109 0 0.00 0
+phiX174:2110 0 0.00 0
+phiX174:2111 0 0.00 0
+phiX174:2112 0 0.00 0
+phiX174:2113 0 0.00 0
+phiX174:2114 0 0.00 0
+phiX174:2115 0 0.00 0
+phiX174:2116 0 0.00 0
+phiX174:2117 0 0.00 0
+phiX174:2118 0 0.00 0
+phiX174:2119 0 0.00 0
+phiX174:2120 0 0.00 0
+phiX174:2121 0 0.00 0
+phiX174:2122 0 0.00 0
+phiX174:2123 0 0.00 0
+phiX174:2124 0 0.00 0
+phiX174:2125 0 0.00 0
+phiX174:2126 0 0.00 0
+phiX174:2127 0 0.00 0
+phiX174:2128 0 0.00 0
+phiX174:2129 0 0.00 0
+phiX174:2130 0 0.00 0
+phiX174:2131 0 0.00 0
+phiX174:2132 0 0.00 0
+phiX174:2133 0 0.00 0
+phiX174:2134 0 0.00 0
+phiX174:2135 0 0.00 0
+phiX174:2136 0 0.00 0
+phiX174:2137 0 0.00 0
+phiX174:2138 0 0.00 0
+phiX174:2139 0 0.00 0
+phiX174:2140 0 0.00 0
+phiX174:2141 0 0.00 0
+phiX174:2142 0 0.00 0
+phiX174:2143 0 0.00 0
+phiX174:2144 0 0.00 0
+phiX174:2145 0 0.00 0
+phiX174:2146 0 0.00 0
+phiX174:2147 0 0.00 0
+phiX174:2148 0 0.00 0
+phiX174:2149 0 0.00 0
+phiX174:2150 0 0.00 0
+phiX174:2151 0 0.00 0
+phiX174:2152 0 0.00 0
+phiX174:2153 0 0.00 0
+phiX174:2154 0 0.00 0
+phiX174:2155 0 0.00 0
+phiX174:2156 0 0.00 0
+phiX174:2157 0 0.00 0
+phiX174:2158 0 0.00 0
+phiX174:2159 0 0.00 0
+phiX174:2160 0 0.00 0
+phiX174:2161 0 0.00 0
+phiX174:2162 0 0.00 0
+phiX174:2163 0 0.00 0
+phiX174:2164 0 0.00 0
+phiX174:2165 0 0.00 0
+phiX174:2166 0 0.00 0
+phiX174:2167 0 0.00 0
+phiX174:2168 0 0.00 0
+phiX174:2169 0 0.00 0
+phiX174:2170 0 0.00 0
+phiX174:2171 0 0.00 0
+phiX174:2172 0 0.00 0
+phiX174:2173 0 0.00 0
+phiX174:2174 0 0.00 0
+phiX174:2175 0 0.00 0
+phiX174:2176 0 0.00 0
+phiX174:2177 0 0.00 0
+phiX174:2178 0 0.00 0
+phiX174:2179 0 0.00 0
+phiX174:2180 0 0.00 0
+phiX174:2181 0 0.00 0
+phiX174:2182 0 0.00 0
+phiX174:2183 0 0.00 0
+phiX174:2184 0 0.00 0
+phiX174:2185 0 0.00 0
+phiX174:2186 0 0.00 0
+phiX174:2187 0 0.00 0
+phiX174:2188 0 0.00 0
+phiX174:2189 0 0.00 0
+phiX174:2190 0 0.00 0
+phiX174:2191 0 0.00 0
+phiX174:2192 0 0.00 0
+phiX174:2193 0 0.00 0
+phiX174:2194 0 0.00 0
+phiX174:2195 0 0.00 0
+phiX174:2196 0 0.00 0
+phiX174:2197 0 0.00 0
+phiX174:2198 0 0.00 0
+phiX174:2199 0 0.00 0
+phiX174:2200 0 0.00 0
+phiX174:2201 0 0.00 0
+phiX174:2202 0 0.00 0
+phiX174:2203 0 0.00 0
+phiX174:2204 0 0.00 0
+phiX174:2205 0 0.00 0
+phiX174:2206 0 0.00 0
+phiX174:2207 0 0.00 0
+phiX174:2208 0 0.00 0
+phiX174:2209 0 0.00 0
+phiX174:2210 0 0.00 0
+phiX174:2211 0 0.00 0
+phiX174:2212 0 0.00 0
+phiX174:2213 0 0.00 0
+phiX174:2214 0 0.00 0
+phiX174:2215 0 0.00 0
+phiX174:2216 0 0.00 0
+phiX174:2217 0 0.00 0
+phiX174:2218 0 0.00 0
+phiX174:2219 0 0.00 0
+phiX174:2220 0 0.00 0
+phiX174:2221 0 0.00 0
+phiX174:2222 0 0.00 0
+phiX174:2223 0 0.00 0
+phiX174:2224 0 0.00 0
+phiX174:2225 0 0.00 0
+phiX174:2226 0 0.00 0
+phiX174:2227 0 0.00 0
+phiX174:2228 0 0.00 0
+phiX174:2229 0 0.00 0
+phiX174:2230 0 0.00 0
+phiX174:2231 0 0.00 0
+phiX174:2232 0 0.00 0
+phiX174:2233 0 0.00 0
+phiX174:2234 0 0.00 0
+phiX174:2235 0 0.00 0
+phiX174:2236 0 0.00 0
+phiX174:2237 0 0.00 0
+phiX174:2238 0 0.00 0
+phiX174:2239 0 0.00 0
+phiX174:2240 0 0.00 0
+phiX174:2241 0 0.00 0
+phiX174:2242 0 0.00 0
+phiX174:2243 0 0.00 0
+phiX174:2244 0 0.00 0
+phiX174:2245 0 0.00 0
+phiX174:2246 0 0.00 0
+phiX174:2247 0 0.00 0
+phiX174:2248 0 0.00 0
+phiX174:2249 0 0.00 0
+phiX174:2250 0 0.00 0
+phiX174:2251 0 0.00 0
+phiX174:2252 0 0.00 0
+phiX174:2253 0 0.00 0
+phiX174:2254 0 0.00 0
+phiX174:2255 0 0.00 0
+phiX174:2256 0 0.00 0
+phiX174:2257 0 0.00 0
+phiX174:2258 0 0.00 0
+phiX174:2259 0 0.00 0
+phiX174:2260 0 0.00 0
+phiX174:2261 0 0.00 0
+phiX174:2262 0 0.00 0
+phiX174:2263 0 0.00 0
+phiX174:2264 0 0.00 0
+phiX174:2265 0 0.00 0
+phiX174:2266 0 0.00 0
+phiX174:2267 0 0.00 0
+phiX174:2268 0 0.00 0
+phiX174:2269 0 0.00 0
+phiX174:2270 0 0.00 0
+phiX174:2271 0 0.00 0
+phiX174:2272 0 0.00 0
+phiX174:2273 0 0.00 0
+phiX174:2274 0 0.00 0
+phiX174:2275 0 0.00 0
+phiX174:2276 0 0.00 0
+phiX174:2277 0 0.00 0
+phiX174:2278 0 0.00 0
+phiX174:2279 0 0.00 0
+phiX174:2280 0 0.00 0
+phiX174:2281 0 0.00 0
+phiX174:2282 0 0.00 0
+phiX174:2283 0 0.00 0
+phiX174:2284 0 0.00 0
+phiX174:2285 0 0.00 0
+phiX174:2286 0 0.00 0
+phiX174:2287 0 0.00 0
+phiX174:2288 0 0.00 0
+phiX174:2289 0 0.00 0
+phiX174:2290 0 0.00 0
+phiX174:2291 0 0.00 0
+phiX174:2292 0 0.00 0
+phiX174:2293 0 0.00 0
+phiX174:2294 0 0.00 0
+phiX174:2295 0 0.00 0
+phiX174:2296 0 0.00 0
+phiX174:2297 0 0.00 0
+phiX174:2298 0 0.00 0
+phiX174:2299 0 0.00 0
+phiX174:2300 0 0.00 0
+phiX174:2301 0 0.00 0
+phiX174:2302 0 0.00 0
+phiX174:2303 0 0.00 0
+phiX174:2304 0 0.00 0
+phiX174:2305 0 0.00 0
+phiX174:2306 0 0.00 0
+phiX174:2307 0 0.00 0
+phiX174:2308 0 0.00 0
+phiX174:2309 0 0.00 0
+phiX174:2310 0 0.00 0
+phiX174:2311 0 0.00 0
+phiX174:2312 0 0.00 0
+phiX174:2313 0 0.00 0
+phiX174:2314 0 0.00 0
+phiX174:2315 0 0.00 0
+phiX174:2316 0 0.00 0
+phiX174:2317 0 0.00 0
+phiX174:2318 0 0.00 0
+phiX174:2319 0 0.00 0
+phiX174:2320 0 0.00 0
+phiX174:2321 0 0.00 0
+phiX174:2322 0 0.00 0
+phiX174:2323 0 0.00 0
+phiX174:2324 0 0.00 0
+phiX174:2325 0 0.00 0
+phiX174:2326 0 0.00 0
+phiX174:2327 0 0.00 0
+phiX174:2328 0 0.00 0
+phiX174:2329 0 0.00 0
+phiX174:2330 0 0.00 0
+phiX174:2331 0 0.00 0
+phiX174:2332 0 0.00 0
+phiX174:2333 0 0.00 0
+phiX174:2334 0 0.00 0
+phiX174:2335 0 0.00 0
+phiX174:2336 0 0.00 0
+phiX174:2337 0 0.00 0
+phiX174:2338 0 0.00 0
+phiX174:2339 0 0.00 0
+phiX174:2340 0 0.00 0
+phiX174:2341 0 0.00 0
+phiX174:2342 0 0.00 0
+phiX174:2343 0 0.00 0
+phiX174:2344 0 0.00 0
+phiX174:2345 0 0.00 0
+phiX174:2346 0 0.00 0
+phiX174:2347 0 0.00 0
+phiX174:2348 0 0.00 0
+phiX174:2349 0 0.00 0
+phiX174:2350 0 0.00 0
+phiX174:2351 0 0.00 0
+phiX174:2352 0 0.00 0
+phiX174:2353 0 0.00 0
+phiX174:2354 0 0.00 0
+phiX174:2355 0 0.00 0
+phiX174:2356 0 0.00 0
+phiX174:2357 0 0.00 0
+phiX174:2358 0 0.00 0
+phiX174:2359 0 0.00 0
+phiX174:2360 0 0.00 0
+phiX174:2361 0 0.00 0
+phiX174:2362 0 0.00 0
+phiX174:2363 0 0.00 0
+phiX174:2364 0 0.00 0
+phiX174:2365 0 0.00 0
+phiX174:2366 0 0.00 0
+phiX174:2367 0 0.00 0
+phiX174:2368 0 0.00 0
+phiX174:2369 0 0.00 0
+phiX174:2370 0 0.00 0
+phiX174:2371 0 0.00 0
+phiX174:2372 0 0.00 0
+phiX174:2373 0 0.00 0
+phiX174:2374 0 0.00 0
+phiX174:2375 0 0.00 0
+phiX174:2376 0 0.00 0
+phiX174:2377 0 0.00 0
+phiX174:2378 0 0.00 0
+phiX174:2379 0 0.00 0
+phiX174:2380 0 0.00 0
+phiX174:2381 0 0.00 0
+phiX174:2382 0 0.00 0
+phiX174:2383 0 0.00 0
+phiX174:2384 0 0.00 0
+phiX174:2385 0 0.00 0
+phiX174:2386 0 0.00 0
+phiX174:2387 0 0.00 0
+phiX174:2388 0 0.00 0
+phiX174:2389 0 0.00 0
+phiX174:2390 0 0.00 0
+phiX174:2391 0 0.00 0
+phiX174:2392 0 0.00 0
+phiX174:2393 0 0.00 0
+phiX174:2394 0 0.00 0
+phiX174:2395 0 0.00 0
+phiX174:2396 0 0.00 0
+phiX174:2397 0 0.00 0
+phiX174:2398 0 0.00 0
+phiX174:2399 0 0.00 0
+phiX174:2400 0 0.00 0
+phiX174:2401 0 0.00 0
+phiX174:2402 0 0.00 0
+phiX174:2403 0 0.00 0
+phiX174:2404 0 0.00 0
+phiX174:2405 0 0.00 0
+phiX174:2406 0 0.00 0
+phiX174:2407 0 0.00 0
+phiX174:2408 0 0.00 0
+phiX174:2409 0 0.00 0
+phiX174:2410 0 0.00 0
+phiX174:2411 0 0.00 0
+phiX174:2412 0 0.00 0
+phiX174:2413 0 0.00 0
+phiX174:2414 0 0.00 0
+phiX174:2415 0 0.00 0
+phiX174:2416 0 0.00 0
+phiX174:2417 0 0.00 0
+phiX174:2418 0 0.00 0
+phiX174:2419 0 0.00 0
+phiX174:2420 0 0.00 0
+phiX174:2421 0 0.00 0
+phiX174:2422 0 0.00 0
+phiX174:2423 0 0.00 0
+phiX174:2424 0 0.00 0
+phiX174:2425 0 0.00 0
+phiX174:2426 0 0.00 0
+phiX174:2427 0 0.00 0
+phiX174:2428 0 0.00 0
+phiX174:2429 0 0.00 0
+phiX174:2430 0 0.00 0
+phiX174:2431 0 0.00 0
+phiX174:2432 0 0.00 0
+phiX174:2433 0 0.00 0
+phiX174:2434 0 0.00 0
+phiX174:2435 0 0.00 0
+phiX174:2436 0 0.00 0
+phiX174:2437 0 0.00 0
+phiX174:2438 0 0.00 0
+phiX174:2439 0 0.00 0
+phiX174:2440 0 0.00 0
+phiX174:2441 0 0.00 0
+phiX174:2442 0 0.00 0
+phiX174:2443 0 0.00 0
+phiX174:2444 0 0.00 0
+phiX174:2445 0 0.00 0
+phiX174:2446 0 0.00 0
+phiX174:2447 0 0.00 0
+phiX174:2448 0 0.00 0
+phiX174:2449 0 0.00 0
+phiX174:2450 0 0.00 0
+phiX174:2451 0 0.00 0
+phiX174:2452 0 0.00 0
+phiX174:2453 0 0.00 0
+phiX174:2454 0 0.00 0
+phiX174:2455 0 0.00 0
+phiX174:2456 0 0.00 0
+phiX174:2457 0 0.00 0
+phiX174:2458 0 0.00 0
+phiX174:2459 0 0.00 0
+phiX174:2460 0 0.00 0
+phiX174:2461 0 0.00 0
+phiX174:2462 0 0.00 0
+phiX174:2463 0 0.00 0
+phiX174:2464 0 0.00 0
+phiX174:2465 0 0.00 0
+phiX174:2466 0 0.00 0
+phiX174:2467 0 0.00 0
+phiX174:2468 0 0.00 0
+phiX174:2469 0 0.00 0
+phiX174:2470 0 0.00 0
+phiX174:2471 0 0.00 0
+phiX174:2472 0 0.00 0
+phiX174:2473 0 0.00 0
+phiX174:2474 0 0.00 0
+phiX174:2475 0 0.00 0
+phiX174:2476 0 0.00 0
+phiX174:2477 0 0.00 0
+phiX174:2478 0 0.00 0
+phiX174:2479 0 0.00 0
+phiX174:2480 0 0.00 0
+phiX174:2481 0 0.00 0
+phiX174:2482 0 0.00 0
+phiX174:2483 0 0.00 0
+phiX174:2484 0 0.00 0
+phiX174:2485 0 0.00 0
+phiX174:2486 0 0.00 0
+phiX174:2487 0 0.00 0
+phiX174:2488 0 0.00 0
+phiX174:2489 0 0.00 0
+phiX174:2490 0 0.00 0
+phiX174:2491 0 0.00 0
+phiX174:2492 0 0.00 0
+phiX174:2493 0 0.00 0
+phiX174:2494 0 0.00 0
+phiX174:2495 0 0.00 0
+phiX174:2496 0 0.00 0
+phiX174:2497 0 0.00 0
+phiX174:2498 0 0.00 0
+phiX174:2499 0 0.00 0
+phiX174:2500 0 0.00 0
+phiX174:2501 0 0.00 0
+phiX174:2502 0 0.00 0
+phiX174:2503 0 0.00 0
+phiX174:2504 0 0.00 0
+phiX174:2505 0 0.00 0
+phiX174:2506 0 0.00 0
+phiX174:2507 0 0.00 0
+phiX174:2508 0 0.00 0
+phiX174:2509 0 0.00 0
+phiX174:2510 0 0.00 0
+phiX174:2511 0 0.00 0
+phiX174:2512 0 0.00 0
+phiX174:2513 0 0.00 0
+phiX174:2514 0 0.00 0
+phiX174:2515 0 0.00 0
+phiX174:2516 0 0.00 0
+phiX174:2517 0 0.00 0
+phiX174:2518 0 0.00 0
+phiX174:2519 0 0.00 0
+phiX174:2520 0 0.00 0
+phiX174:2521 0 0.00 0
+phiX174:2522 0 0.00 0
+phiX174:2523 0 0.00 0
+phiX174:2524 0 0.00 0
+phiX174:2525 0 0.00 0
+phiX174:2526 0 0.00 0
+phiX174:2527 0 0.00 0
+phiX174:2528 0 0.00 0
+phiX174:2529 0 0.00 0
+phiX174:2530 0 0.00 0
+phiX174:2531 0 0.00 0
+phiX174:2532 0 0.00 0
+phiX174:2533 0 0.00 0
+phiX174:2534 0 0.00 0
+phiX174:2535 0 0.00 0
+phiX174:2536 0 0.00 0
+phiX174:2537 0 0.00 0
+phiX174:2538 0 0.00 0
+phiX174:2539 0 0.00 0
+phiX174:2540 0 0.00 0
+phiX174:2541 0 0.00 0
+phiX174:2542 0 0.00 0
+phiX174:2543 0 0.00 0
+phiX174:2544 0 0.00 0
+phiX174:2545 0 0.00 0
+phiX174:2546 0 0.00 0
+phiX174:2547 0 0.00 0
+phiX174:2548 0 0.00 0
+phiX174:2549 0 0.00 0
+phiX174:2550 0 0.00 0
+phiX174:2551 0 0.00 0
+phiX174:2552 0 0.00 0
+phiX174:2553 0 0.00 0
+phiX174:2554 0 0.00 0
+phiX174:2555 0 0.00 0
+phiX174:2556 0 0.00 0
+phiX174:2557 0 0.00 0
+phiX174:2558 0 0.00 0
+phiX174:2559 0 0.00 0
+phiX174:2560 0 0.00 0
+phiX174:2561 0 0.00 0
+phiX174:2562 0 0.00 0
+phiX174:2563 0 0.00 0
+phiX174:2564 0 0.00 0
+phiX174:2565 0 0.00 0
+phiX174:2566 0 0.00 0
+phiX174:2567 0 0.00 0
+phiX174:2568 0 0.00 0
+phiX174:2569 0 0.00 0
+phiX174:2570 0 0.00 0
+phiX174:2571 0 0.00 0
+phiX174:2572 0 0.00 0
+phiX174:2573 0 0.00 0
+phiX174:2574 0 0.00 0
+phiX174:2575 0 0.00 0
+phiX174:2576 0 0.00 0
+phiX174:2577 0 0.00 0
+phiX174:2578 0 0.00 0
+phiX174:2579 0 0.00 0
+phiX174:2580 0 0.00 0
+phiX174:2581 0 0.00 0
+phiX174:2582 0 0.00 0
+phiX174:2583 0 0.00 0
+phiX174:2584 0 0.00 0
+phiX174:2585 0 0.00 0
+phiX174:2586 0 0.00 0
+phiX174:2587 0 0.00 0
+phiX174:2588 0 0.00 0
+phiX174:2589 0 0.00 0
+phiX174:2590 0 0.00 0
+phiX174:2591 0 0.00 0
+phiX174:2592 0 0.00 0
+phiX174:2593 0 0.00 0
+phiX174:2594 0 0.00 0
+phiX174:2595 0 0.00 0
+phiX174:2596 0 0.00 0
+phiX174:2597 0 0.00 0
+phiX174:2598 0 0.00 0
+phiX174:2599 0 0.00 0
+phiX174:2600 0 0.00 0
+phiX174:2601 0 0.00 0
+phiX174:2602 0 0.00 0
+phiX174:2603 0 0.00 0
+phiX174:2604 0 0.00 0
+phiX174:2605 0 0.00 0
+phiX174:2606 0 0.00 0
+phiX174:2607 0 0.00 0
+phiX174:2608 0 0.00 0
+phiX174:2609 0 0.00 0
+phiX174:2610 0 0.00 0
+phiX174:2611 0 0.00 0
+phiX174:2612 0 0.00 0
+phiX174:2613 0 0.00 0
+phiX174:2614 0 0.00 0
+phiX174:2615 0 0.00 0
+phiX174:2616 0 0.00 0
+phiX174:2617 0 0.00 0
+phiX174:2618 0 0.00 0
+phiX174:2619 0 0.00 0
+phiX174:2620 0 0.00 0
+phiX174:2621 0 0.00 0
+phiX174:2622 0 0.00 0
+phiX174:2623 0 0.00 0
+phiX174:2624 0 0.00 0
+phiX174:2625 0 0.00 0
+phiX174:2626 0 0.00 0
+phiX174:2627 0 0.00 0
+phiX174:2628 0 0.00 0
+phiX174:2629 0 0.00 0
+phiX174:2630 0 0.00 0
+phiX174:2631 0 0.00 0
+phiX174:2632 0 0.00 0
+phiX174:2633 0 0.00 0
+phiX174:2634 0 0.00 0
+phiX174:2635 0 0.00 0
+phiX174:2636 0 0.00 0
+phiX174:2637 0 0.00 0
+phiX174:2638 0 0.00 0
+phiX174:2639 0 0.00 0
+phiX174:2640 0 0.00 0
+phiX174:2641 0 0.00 0
+phiX174:2642 0 0.00 0
+phiX174:2643 0 0.00 0
+phiX174:2644 0 0.00 0
+phiX174:2645 0 0.00 0
+phiX174:2646 0 0.00 0
+phiX174:2647 0 0.00 0
+phiX174:2648 0 0.00 0
+phiX174:2649 0 0.00 0
+phiX174:2650 0 0.00 0
+phiX174:2651 0 0.00 0
+phiX174:2652 0 0.00 0
+phiX174:2653 0 0.00 0
+phiX174:2654 0 0.00 0
+phiX174:2655 0 0.00 0
+phiX174:2656 0 0.00 0
+phiX174:2657 0 0.00 0
+phiX174:2658 0 0.00 0
+phiX174:2659 0 0.00 0
+phiX174:2660 0 0.00 0
+phiX174:2661 0 0.00 0
+phiX174:2662 0 0.00 0
+phiX174:2663 0 0.00 0
+phiX174:2664 0 0.00 0
+phiX174:2665 0 0.00 0
+phiX174:2666 0 0.00 0
+phiX174:2667 0 0.00 0
+phiX174:2668 0 0.00 0
+phiX174:2669 0 0.00 0
+phiX174:2670 0 0.00 0
+phiX174:2671 0 0.00 0
+phiX174:2672 0 0.00 0
+phiX174:2673 0 0.00 0
+phiX174:2674 0 0.00 0
+phiX174:2675 0 0.00 0
+phiX174:2676 0 0.00 0
+phiX174:2677 0 0.00 0
+phiX174:2678 0 0.00 0
+phiX174:2679 0 0.00 0
+phiX174:2680 0 0.00 0
+phiX174:2681 0 0.00 0
+phiX174:2682 0 0.00 0
+phiX174:2683 0 0.00 0
+phiX174:2684 0 0.00 0
+phiX174:2685 0 0.00 0
+phiX174:2686 0 0.00 0
+phiX174:2687 0 0.00 0
+phiX174:2688 0 0.00 0
+phiX174:2689 0 0.00 0
+phiX174:2690 0 0.00 0
+phiX174:2691 0 0.00 0
+phiX174:2692 0 0.00 0
+phiX174:2693 0 0.00 0
+phiX174:2694 0 0.00 0
+phiX174:2695 0 0.00 0
+phiX174:2696 0 0.00 0
+phiX174:2697 0 0.00 0
+phiX174:2698 0 0.00 0
+phiX174:2699 0 0.00 0
+phiX174:2700 0 0.00 0
+phiX174:2701 0 0.00 0
+phiX174:2702 0 0.00 0
+phiX174:2703 0 0.00 0
+phiX174:2704 0 0.00 0
+phiX174:2705 0 0.00 0
+phiX174:2706 0 0.00 0
+phiX174:2707 0 0.00 0
+phiX174:2708 0 0.00 0
+phiX174:2709 0 0.00 0
+phiX174:2710 0 0.00 0
+phiX174:2711 0 0.00 0
+phiX174:2712 0 0.00 0
+phiX174:2713 0 0.00 0
+phiX174:2714 0 0.00 0
+phiX174:2715 0 0.00 0
+phiX174:2716 0 0.00 0
+phiX174:2717 0 0.00 0
+phiX174:2718 0 0.00 0
+phiX174:2719 0 0.00 0
+phiX174:2720 0 0.00 0
+phiX174:2721 0 0.00 0
+phiX174:2722 0 0.00 0
+phiX174:2723 0 0.00 0
+phiX174:2724 0 0.00 0
+phiX174:2725 0 0.00 0
+phiX174:2726 0 0.00 0
+phiX174:2727 0 0.00 0
+phiX174:2728 0 0.00 0
+phiX174:2729 0 0.00 0
+phiX174:2730 0 0.00 0
+phiX174:2731 0 0.00 0
+phiX174:2732 0 0.00 0
+phiX174:2733 0 0.00 0
+phiX174:2734 0 0.00 0
+phiX174:2735 0 0.00 0
+phiX174:2736 0 0.00 0
+phiX174:2737 0 0.00 0
+phiX174:2738 0 0.00 0
+phiX174:2739 0 0.00 0
+phiX174:2740 0 0.00 0
+phiX174:2741 0 0.00 0
+phiX174:2742 0 0.00 0
+phiX174:2743 0 0.00 0
+phiX174:2744 0 0.00 0
+phiX174:2745 0 0.00 0
+phiX174:2746 0 0.00 0
+phiX174:2747 0 0.00 0
+phiX174:2748 0 0.00 0
+phiX174:2749 0 0.00 0
+phiX174:2750 0 0.00 0
+phiX174:2751 0 0.00 0
+phiX174:2752 0 0.00 0
+phiX174:2753 0 0.00 0
+phiX174:2754 0 0.00 0
+phiX174:2755 0 0.00 0
+phiX174:2756 0 0.00 0
+phiX174:2757 0 0.00 0
+phiX174:2758 0 0.00 0
+phiX174:2759 0 0.00 0
+phiX174:2760 0 0.00 0
+phiX174:2761 0 0.00 0
+phiX174:2762 0 0.00 0
+phiX174:2763 0 0.00 0
+phiX174:2764 0 0.00 0
+phiX174:2765 0 0.00 0
+phiX174:2766 0 0.00 0
+phiX174:2767 0 0.00 0
+phiX174:2768 0 0.00 0
+phiX174:2769 0 0.00 0
+phiX174:2770 0 0.00 0
+phiX174:2771 0 0.00 0
+phiX174:2772 0 0.00 0
+phiX174:2773 0 0.00 0
+phiX174:2774 0 0.00 0
+phiX174:2775 0 0.00 0
+phiX174:2776 0 0.00 0
+phiX174:2777 0 0.00 0
+phiX174:2778 0 0.00 0
+phiX174:2779 0 0.00 0
+phiX174:2780 0 0.00 0
+phiX174:2781 0 0.00 0
+phiX174:2782 0 0.00 0
+phiX174:2783 0 0.00 0
+phiX174:2784 0 0.00 0
+phiX174:2785 0 0.00 0
+phiX174:2786 0 0.00 0
+phiX174:2787 0 0.00 0
+phiX174:2788 0 0.00 0
+phiX174:2789 0 0.00 0
+phiX174:2790 0 0.00 0
+phiX174:2791 0 0.00 0
+phiX174:2792 0 0.00 0
+phiX174:2793 0 0.00 0
+phiX174:2794 0 0.00 0
+phiX174:2795 0 0.00 0
+phiX174:2796 0 0.00 0
+phiX174:2797 0 0.00 0
+phiX174:2798 0 0.00 0
+phiX174:2799 0 0.00 0
+phiX174:2800 0 0.00 0
+phiX174:2801 0 0.00 0
+phiX174:2802 0 0.00 0
+phiX174:2803 0 0.00 0
+phiX174:2804 0 0.00 0
+phiX174:2805 0 0.00 0
+phiX174:2806 0 0.00 0
+phiX174:2807 0 0.00 0
+phiX174:2808 0 0.00 0
+phiX174:2809 0 0.00 0
+phiX174:2810 0 0.00 0
+phiX174:2811 0 0.00 0
+phiX174:2812 0 0.00 0
+phiX174:2813 0 0.00 0
+phiX174:2814 0 0.00 0
+phiX174:2815 0 0.00 0
+phiX174:2816 0 0.00 0
+phiX174:2817 0 0.00 0
+phiX174:2818 0 0.00 0
+phiX174:2819 0 0.00 0
+phiX174:2820 0 0.00 0
+phiX174:2821 0 0.00 0
+phiX174:2822 0 0.00 0
+phiX174:2823 0 0.00 0
+phiX174:2824 0 0.00 0
+phiX174:2825 0 0.00 0
+phiX174:2826 0 0.00 0
+phiX174:2827 0 0.00 0
+phiX174:2828 0 0.00 0
+phiX174:2829 0 0.00 0
+phiX174:2830 0 0.00 0
+phiX174:2831 0 0.00 0
+phiX174:2832 0 0.00 0
+phiX174:2833 0 0.00 0
+phiX174:2834 0 0.00 0
+phiX174:2835 0 0.00 0
+phiX174:2836 0 0.00 0
+phiX174:2837 0 0.00 0
+phiX174:2838 0 0.00 0
+phiX174:2839 0 0.00 0
+phiX174:2840 0 0.00 0
+phiX174:2841 0 0.00 0
+phiX174:2842 0 0.00 0
+phiX174:2843 0 0.00 0
+phiX174:2844 0 0.00 0
+phiX174:2845 0 0.00 0
+phiX174:2846 0 0.00 0
+phiX174:2847 0 0.00 0
+phiX174:2848 0 0.00 0
+phiX174:2849 0 0.00 0
+phiX174:2850 0 0.00 0
+phiX174:2851 0 0.00 0
+phiX174:2852 0 0.00 0
+phiX174:2853 0 0.00 0
+phiX174:2854 0 0.00 0
+phiX174:2855 0 0.00 0
+phiX174:2856 0 0.00 0
+phiX174:2857 0 0.00 0
+phiX174:2858 0 0.00 0
+phiX174:2859 0 0.00 0
+phiX174:2860 0 0.00 0
+phiX174:2861 0 0.00 0
+phiX174:2862 0 0.00 0
+phiX174:2863 0 0.00 0
+phiX174:2864 0 0.00 0
+phiX174:2865 0 0.00 0
+phiX174:2866 0 0.00 0
+phiX174:2867 0 0.00 0
+phiX174:2868 0 0.00 0
+phiX174:2869 0 0.00 0
+phiX174:2870 0 0.00 0
+phiX174:2871 0 0.00 0
+phiX174:2872 0 0.00 0
+phiX174:2873 0 0.00 0
+phiX174:2874 0 0.00 0
+phiX174:2875 0 0.00 0
+phiX174:2876 0 0.00 0
+phiX174:2877 0 0.00 0
+phiX174:2878 0 0.00 0
+phiX174:2879 0 0.00 0
+phiX174:2880 0 0.00 0
+phiX174:2881 0 0.00 0
+phiX174:2882 0 0.00 0
+phiX174:2883 0 0.00 0
+phiX174:2884 0 0.00 0
+phiX174:2885 0 0.00 0
+phiX174:2886 0 0.00 0
+phiX174:2887 0 0.00 0
+phiX174:2888 0 0.00 0
+phiX174:2889 0 0.00 0
+phiX174:2890 0 0.00 0
+phiX174:2891 0 0.00 0
+phiX174:2892 0 0.00 0
+phiX174:2893 0 0.00 0
+phiX174:2894 0 0.00 0
+phiX174:2895 0 0.00 0
+phiX174:2896 0 0.00 0
+phiX174:2897 0 0.00 0
+phiX174:2898 0 0.00 0
+phiX174:2899 0 0.00 0
+phiX174:2900 0 0.00 0
+phiX174:2901 0 0.00 0
+phiX174:2902 0 0.00 0
+phiX174:2903 0 0.00 0
+phiX174:2904 0 0.00 0
+phiX174:2905 0 0.00 0
+phiX174:2906 0 0.00 0
+phiX174:2907 0 0.00 0
+phiX174:2908 0 0.00 0
+phiX174:2909 0 0.00 0
+phiX174:2910 0 0.00 0
+phiX174:2911 0 0.00 0
+phiX174:2912 0 0.00 0
+phiX174:2913 0 0.00 0
+phiX174:2914 0 0.00 0
+phiX174:2915 0 0.00 0
+phiX174:2916 0 0.00 0
+phiX174:2917 0 0.00 0
+phiX174:2918 0 0.00 0
+phiX174:2919 0 0.00 0
+phiX174:2920 0 0.00 0
+phiX174:2921 0 0.00 0
+phiX174:2922 0 0.00 0
+phiX174:2923 0 0.00 0
+phiX174:2924 0 0.00 0
+phiX174:2925 0 0.00 0
+phiX174:2926 0 0.00 0
+phiX174:2927 0 0.00 0
+phiX174:2928 0 0.00 0
+phiX174:2929 0 0.00 0
+phiX174:2930 0 0.00 0
+phiX174:2931 0 0.00 0
+phiX174:2932 0 0.00 0
+phiX174:2933 0 0.00 0
+phiX174:2934 0 0.00 0
+phiX174:2935 0 0.00 0
+phiX174:2936 0 0.00 0
+phiX174:2937 0 0.00 0
+phiX174:2938 0 0.00 0
+phiX174:2939 0 0.00 0
+phiX174:2940 0 0.00 0
+phiX174:2941 0 0.00 0
+phiX174:2942 0 0.00 0
+phiX174:2943 0 0.00 0
+phiX174:2944 0 0.00 0
+phiX174:2945 0 0.00 0
+phiX174:2946 0 0.00 0
+phiX174:2947 0 0.00 0
+phiX174:2948 0 0.00 0
+phiX174:2949 0 0.00 0
+phiX174:2950 0 0.00 0
+phiX174:2951 0 0.00 0
+phiX174:2952 0 0.00 0
+phiX174:2953 0 0.00 0
+phiX174:2954 0 0.00 0
+phiX174:2955 0 0.00 0
+phiX174:2956 0 0.00 0
+phiX174:2957 0 0.00 0
+phiX174:2958 0 0.00 0
+phiX174:2959 0 0.00 0
+phiX174:2960 0 0.00 0
+phiX174:2961 0 0.00 0
+phiX174:2962 0 0.00 0
+phiX174:2963 0 0.00 0
+phiX174:2964 0 0.00 0
+phiX174:2965 0 0.00 0
+phiX174:2966 0 0.00 0
+phiX174:2967 0 0.00 0
+phiX174:2968 0 0.00 0
+phiX174:2969 0 0.00 0
+phiX174:2970 0 0.00 0
+phiX174:2971 0 0.00 0
+phiX174:2972 0 0.00 0
+phiX174:2973 0 0.00 0
+phiX174:2974 0 0.00 0
+phiX174:2975 0 0.00 0
+phiX174:2976 0 0.00 0
+phiX174:2977 0 0.00 0
+phiX174:2978 0 0.00 0
+phiX174:2979 0 0.00 0
+phiX174:2980 0 0.00 0
+phiX174:2981 0 0.00 0
+phiX174:2982 0 0.00 0
+phiX174:2983 0 0.00 0
+phiX174:2984 0 0.00 0
+phiX174:2985 0 0.00 0
+phiX174:2986 0 0.00 0
+phiX174:2987 0 0.00 0
+phiX174:2988 0 0.00 0
+phiX174:2989 0 0.00 0
+phiX174:2990 0 0.00 0
+phiX174:2991 0 0.00 0
+phiX174:2992 0 0.00 0
+phiX174:2993 0 0.00 0
+phiX174:2994 0 0.00 0
+phiX174:2995 0 0.00 0
+phiX174:2996 0 0.00 0
+phiX174:2997 0 0.00 0
+phiX174:2998 0 0.00 0
+phiX174:2999 0 0.00 0
+phiX174:3000 0 0.00 0
+phiX174:3001 0 0.00 0
+phiX174:3002 0 0.00 0
+phiX174:3003 0 0.00 0
+phiX174:3004 0 0.00 0
+phiX174:3005 0 0.00 0
+phiX174:3006 0 0.00 0
+phiX174:3007 0 0.00 0
+phiX174:3008 0 0.00 0
+phiX174:3009 0 0.00 0
+phiX174:3010 0 0.00 0
+phiX174:3011 0 0.00 0
+phiX174:3012 0 0.00 0
+phiX174:3013 0 0.00 0
+phiX174:3014 0 0.00 0
+phiX174:3015 0 0.00 0
+phiX174:3016 0 0.00 0
+phiX174:3017 0 0.00 0
+phiX174:3018 0 0.00 0
+phiX174:3019 0 0.00 0
+phiX174:3020 0 0.00 0
+phiX174:3021 0 0.00 0
+phiX174:3022 0 0.00 0
+phiX174:3023 0 0.00 0
+phiX174:3024 0 0.00 0
+phiX174:3025 0 0.00 0
+phiX174:3026 0 0.00 0
+phiX174:3027 0 0.00 0
+phiX174:3028 0 0.00 0
+phiX174:3029 0 0.00 0
+phiX174:3030 0 0.00 0
+phiX174:3031 0 0.00 0
+phiX174:3032 0 0.00 0
+phiX174:3033 0 0.00 0
+phiX174:3034 0 0.00 0
+phiX174:3035 0 0.00 0
+phiX174:3036 0 0.00 0
+phiX174:3037 0 0.00 0
+phiX174:3038 0 0.00 0
+phiX174:3039 0 0.00 0
+phiX174:3040 0 0.00 0
+phiX174:3041 0 0.00 0
+phiX174:3042 0 0.00 0
+phiX174:3043 0 0.00 0
+phiX174:3044 0 0.00 0
+phiX174:3045 0 0.00 0
+phiX174:3046 0 0.00 0
+phiX174:3047 0 0.00 0
+phiX174:3048 0 0.00 0
+phiX174:3049 0 0.00 0
+phiX174:3050 0 0.00 0
+phiX174:3051 0 0.00 0
+phiX174:3052 0 0.00 0
+phiX174:3053 0 0.00 0
+phiX174:3054 0 0.00 0
+phiX174:3055 0 0.00 0
+phiX174:3056 0 0.00 0
+phiX174:3057 0 0.00 0
+phiX174:3058 0 0.00 0
+phiX174:3059 0 0.00 0
+phiX174:3060 0 0.00 0
+phiX174:3061 0 0.00 0
+phiX174:3062 0 0.00 0
+phiX174:3063 0 0.00 0
+phiX174:3064 0 0.00 0
+phiX174:3065 0 0.00 0
+phiX174:3066 0 0.00 0
+phiX174:3067 0 0.00 0
+phiX174:3068 0 0.00 0
+phiX174:3069 0 0.00 0
+phiX174:3070 0 0.00 0
+phiX174:3071 0 0.00 0
+phiX174:3072 0 0.00 0
+phiX174:3073 0 0.00 0
+phiX174:3074 0 0.00 0
+phiX174:3075 0 0.00 0
+phiX174:3076 0 0.00 0
+phiX174:3077 0 0.00 0
+phiX174:3078 0 0.00 0
+phiX174:3079 0 0.00 0
+phiX174:3080 0 0.00 0
+phiX174:3081 0 0.00 0
+phiX174:3082 0 0.00 0
+phiX174:3083 0 0.00 0
+phiX174:3084 0 0.00 0
+phiX174:3085 0 0.00 0
+phiX174:3086 0 0.00 0
+phiX174:3087 0 0.00 0
+phiX174:3088 0 0.00 0
+phiX174:3089 0 0.00 0
+phiX174:3090 0 0.00 0
+phiX174:3091 0 0.00 0
+phiX174:3092 0 0.00 0
+phiX174:3093 0 0.00 0
+phiX174:3094 0 0.00 0
+phiX174:3095 0 0.00 0
+phiX174:3096 0 0.00 0
+phiX174:3097 0 0.00 0
+phiX174:3098 0 0.00 0
+phiX174:3099 0 0.00 0
+phiX174:3100 0 0.00 0
+phiX174:3101 0 0.00 0
+phiX174:3102 0 0.00 0
+phiX174:3103 0 0.00 0
+phiX174:3104 0 0.00 0
+phiX174:3105 0 0.00 0
+phiX174:3106 0 0.00 0
+phiX174:3107 0 0.00 0
+phiX174:3108 0 0.00 0
+phiX174:3109 0 0.00 0
+phiX174:3110 0 0.00 0
+phiX174:3111 0 0.00 0
+phiX174:3112 0 0.00 0
+phiX174:3113 0 0.00 0
+phiX174:3114 0 0.00 0
+phiX174:3115 0 0.00 0
+phiX174:3116 0 0.00 0
+phiX174:3117 0 0.00 0
+phiX174:3118 0 0.00 0
+phiX174:3119 0 0.00 0
+phiX174:3120 0 0.00 0
+phiX174:3121 0 0.00 0
+phiX174:3122 0 0.00 0
+phiX174:3123 0 0.00 0
+phiX174:3124 0 0.00 0
+phiX174:3125 0 0.00 0
+phiX174:3126 0 0.00 0
+phiX174:3127 0 0.00 0
+phiX174:3128 0 0.00 0
+phiX174:3129 0 0.00 0
+phiX174:3130 0 0.00 0
+phiX174:3131 0 0.00 0
+phiX174:3132 0 0.00 0
+phiX174:3133 0 0.00 0
+phiX174:3134 0 0.00 0
+phiX174:3135 0 0.00 0
+phiX174:3136 0 0.00 0
+phiX174:3137 0 0.00 0
+phiX174:3138 0 0.00 0
+phiX174:3139 0 0.00 0
+phiX174:3140 0 0.00 0
+phiX174:3141 0 0.00 0
+phiX174:3142 0 0.00 0
+phiX174:3143 0 0.00 0
+phiX174:3144 0 0.00 0
+phiX174:3145 0 0.00 0
+phiX174:3146 0 0.00 0
+phiX174:3147 0 0.00 0
+phiX174:3148 0 0.00 0
+phiX174:3149 0 0.00 0
+phiX174:3150 0 0.00 0
+phiX174:3151 0 0.00 0
+phiX174:3152 0 0.00 0
+phiX174:3153 0 0.00 0
+phiX174:3154 0 0.00 0
+phiX174:3155 0 0.00 0
+phiX174:3156 0 0.00 0
+phiX174:3157 0 0.00 0
+phiX174:3158 0 0.00 0
+phiX174:3159 0 0.00 0
+phiX174:3160 0 0.00 0
+phiX174:3161 0 0.00 0
+phiX174:3162 0 0.00 0
+phiX174:3163 0 0.00 0
+phiX174:3164 0 0.00 0
+phiX174:3165 0 0.00 0
+phiX174:3166 0 0.00 0
+phiX174:3167 0 0.00 0
+phiX174:3168 0 0.00 0
+phiX174:3169 0 0.00 0
+phiX174:3170 0 0.00 0
+phiX174:3171 0 0.00 0
+phiX174:3172 0 0.00 0
+phiX174:3173 0 0.00 0
+phiX174:3174 0 0.00 0
+phiX174:3175 0 0.00 0
+phiX174:3176 0 0.00 0
+phiX174:3177 0 0.00 0
+phiX174:3178 0 0.00 0
+phiX174:3179 0 0.00 0
+phiX174:3180 0 0.00 0
+phiX174:3181 0 0.00 0
+phiX174:3182 0 0.00 0
+phiX174:3183 0 0.00 0
+phiX174:3184 0 0.00 0
+phiX174:3185 0 0.00 0
+phiX174:3186 0 0.00 0
+phiX174:3187 0 0.00 0
+phiX174:3188 0 0.00 0
+phiX174:3189 0 0.00 0
+phiX174:3190 0 0.00 0
+phiX174:3191 0 0.00 0
+phiX174:3192 0 0.00 0
+phiX174:3193 0 0.00 0
+phiX174:3194 0 0.00 0
+phiX174:3195 0 0.00 0
+phiX174:3196 0 0.00 0
+phiX174:3197 0 0.00 0
+phiX174:3198 0 0.00 0
+phiX174:3199 0 0.00 0
+phiX174:3200 0 0.00 0
+phiX174:3201 0 0.00 0
+phiX174:3202 0 0.00 0
+phiX174:3203 0 0.00 0
+phiX174:3204 0 0.00 0
+phiX174:3205 0 0.00 0
+phiX174:3206 0 0.00 0
+phiX174:3207 0 0.00 0
+phiX174:3208 0 0.00 0
+phiX174:3209 0 0.00 0
+phiX174:3210 0 0.00 0
+phiX174:3211 0 0.00 0
+phiX174:3212 0 0.00 0
+phiX174:3213 0 0.00 0
+phiX174:3214 0 0.00 0
+phiX174:3215 0 0.00 0
+phiX174:3216 0 0.00 0
+phiX174:3217 0 0.00 0
+phiX174:3218 0 0.00 0
+phiX174:3219 0 0.00 0
+phiX174:3220 0 0.00 0
+phiX174:3221 0 0.00 0
+phiX174:3222 0 0.00 0
+phiX174:3223 0 0.00 0
+phiX174:3224 0 0.00 0
+phiX174:3225 0 0.00 0
+phiX174:3226 0 0.00 0
+phiX174:3227 0 0.00 0
+phiX174:3228 0 0.00 0
+phiX174:3229 0 0.00 0
+phiX174:3230 0 0.00 0
+phiX174:3231 0 0.00 0
+phiX174:3232 0 0.00 0
+phiX174:3233 0 0.00 0
+phiX174:3234 0 0.00 0
+phiX174:3235 0 0.00 0
+phiX174:3236 0 0.00 0
+phiX174:3237 0 0.00 0
+phiX174:3238 0 0.00 0
+phiX174:3239 0 0.00 0
+phiX174:3240 0 0.00 0
+phiX174:3241 0 0.00 0
+phiX174:3242 0 0.00 0
+phiX174:3243 0 0.00 0
+phiX174:3244 0 0.00 0
+phiX174:3245 0 0.00 0
+phiX174:3246 0 0.00 0
+phiX174:3247 0 0.00 0
+phiX174:3248 0 0.00 0
+phiX174:3249 0 0.00 0
+phiX174:3250 0 0.00 0
+phiX174:3251 0 0.00 0
+phiX174:3252 0 0.00 0
+phiX174:3253 0 0.00 0
+phiX174:3254 0 0.00 0
+phiX174:3255 0 0.00 0
+phiX174:3256 0 0.00 0
+phiX174:3257 0 0.00 0
+phiX174:3258 0 0.00 0
+phiX174:3259 0 0.00 0
+phiX174:3260 0 0.00 0
+phiX174:3261 0 0.00 0
+phiX174:3262 0 0.00 0
+phiX174:3263 0 0.00 0
+phiX174:3264 0 0.00 0
+phiX174:3265 0 0.00 0
+phiX174:3266 0 0.00 0
+phiX174:3267 0 0.00 0
+phiX174:3268 0 0.00 0
+phiX174:3269 0 0.00 0
+phiX174:3270 0 0.00 0
+phiX174:3271 0 0.00 0
+phiX174:3272 0 0.00 0
+phiX174:3273 0 0.00 0
+phiX174:3274 0 0.00 0
+phiX174:3275 0 0.00 0
+phiX174:3276 0 0.00 0
+phiX174:3277 0 0.00 0
+phiX174:3278 0 0.00 0
+phiX174:3279 0 0.00 0
+phiX174:3280 0 0.00 0
+phiX174:3281 0 0.00 0
+phiX174:3282 0 0.00 0
+phiX174:3283 0 0.00 0
+phiX174:3284 0 0.00 0
+phiX174:3285 0 0.00 0
+phiX174:3286 0 0.00 0
+phiX174:3287 0 0.00 0
+phiX174:3288 0 0.00 0
+phiX174:3289 0 0.00 0
+phiX174:3290 0 0.00 0
+phiX174:3291 0 0.00 0
+phiX174:3292 0 0.00 0
+phiX174:3293 0 0.00 0
+phiX174:3294 0 0.00 0
+phiX174:3295 0 0.00 0
+phiX174:3296 0 0.00 0
+phiX174:3297 0 0.00 0
+phiX174:3298 0 0.00 0
+phiX174:3299 0 0.00 0
+phiX174:3300 0 0.00 0
+phiX174:3301 0 0.00 0
+phiX174:3302 0 0.00 0
+phiX174:3303 0 0.00 0
+phiX174:3304 0 0.00 0
+phiX174:3305 0 0.00 0
+phiX174:3306 0 0.00 0
+phiX174:3307 0 0.00 0
+phiX174:3308 0 0.00 0
+phiX174:3309 0 0.00 0
+phiX174:3310 0 0.00 0
+phiX174:3311 0 0.00 0
+phiX174:3312 0 0.00 0
+phiX174:3313 0 0.00 0
+phiX174:3314 0 0.00 0
+phiX174:3315 0 0.00 0
+phiX174:3316 0 0.00 0
+phiX174:3317 0 0.00 0
+phiX174:3318 0 0.00 0
+phiX174:3319 0 0.00 0
+phiX174:3320 0 0.00 0
+phiX174:3321 0 0.00 0
+phiX174:3322 0 0.00 0
+phiX174:3323 0 0.00 0
+phiX174:3324 0 0.00 0
+phiX174:3325 0 0.00 0
+phiX174:3326 0 0.00 0
+phiX174:3327 0 0.00 0
+phiX174:3328 0 0.00 0
+phiX174:3329 0 0.00 0
+phiX174:3330 0 0.00 0
+phiX174:3331 0 0.00 0
+phiX174:3332 0 0.00 0
+phiX174:3333 0 0.00 0
+phiX174:3334 0 0.00 0
+phiX174:3335 0 0.00 0
+phiX174:3336 0 0.00 0
+phiX174:3337 0 0.00 0
+phiX174:3338 0 0.00 0
+phiX174:3339 0 0.00 0
+phiX174:3340 0 0.00 0
+phiX174:3341 0 0.00 0
+phiX174:3342 0 0.00 0
+phiX174:3343 0 0.00 0
+phiX174:3344 0 0.00 0
+phiX174:3345 0 0.00 0
+phiX174:3346 0 0.00 0
+phiX174:3347 0 0.00 0
+phiX174:3348 0 0.00 0
+phiX174:3349 0 0.00 0
+phiX174:3350 0 0.00 0
+phiX174:3351 0 0.00 0
+phiX174:3352 0 0.00 0
+phiX174:3353 0 0.00 0
+phiX174:3354 0 0.00 0
+phiX174:3355 0 0.00 0
+phiX174:3356 0 0.00 0
+phiX174:3357 0 0.00 0
+phiX174:3358 0 0.00 0
+phiX174:3359 0 0.00 0
+phiX174:3360 0 0.00 0
+phiX174:3361 0 0.00 0
+phiX174:3362 0 0.00 0
+phiX174:3363 0 0.00 0
+phiX174:3364 0 0.00 0
+phiX174:3365 0 0.00 0
+phiX174:3366 0 0.00 0
+phiX174:3367 0 0.00 0
+phiX174:3368 0 0.00 0
+phiX174:3369 0 0.00 0
+phiX174:3370 0 0.00 0
+phiX174:3371 0 0.00 0
+phiX174:3372 0 0.00 0
+phiX174:3373 0 0.00 0
+phiX174:3374 0 0.00 0
+phiX174:3375 0 0.00 0
+phiX174:3376 0 0.00 0
+phiX174:3377 0 0.00 0
+phiX174:3378 0 0.00 0
+phiX174:3379 0 0.00 0
+phiX174:3380 0 0.00 0
+phiX174:3381 0 0.00 0
+phiX174:3382 0 0.00 0
+phiX174:3383 0 0.00 0
+phiX174:3384 0 0.00 0
+phiX174:3385 0 0.00 0
+phiX174:3386 0 0.00 0
+phiX174:3387 0 0.00 0
+phiX174:3388 0 0.00 0
+phiX174:3389 0 0.00 0
+phiX174:3390 0 0.00 0
+phiX174:3391 0 0.00 0
+phiX174:3392 0 0.00 0
+phiX174:3393 0 0.00 0
+phiX174:3394 0 0.00 0
+phiX174:3395 0 0.00 0
+phiX174:3396 0 0.00 0
+phiX174:3397 0 0.00 0
+phiX174:3398 0 0.00 0
+phiX174:3399 0 0.00 0
+phiX174:3400 0 0.00 0
+phiX174:3401 0 0.00 0
+phiX174:3402 0 0.00 0
+phiX174:3403 0 0.00 0
+phiX174:3404 0 0.00 0
+phiX174:3405 0 0.00 0
+phiX174:3406 0 0.00 0
+phiX174:3407 0 0.00 0
+phiX174:3408 0 0.00 0
+phiX174:3409 0 0.00 0
+phiX174:3410 0 0.00 0
+phiX174:3411 0 0.00 0
+phiX174:3412 0 0.00 0
+phiX174:3413 0 0.00 0
+phiX174:3414 0 0.00 0
+phiX174:3415 0 0.00 0
+phiX174:3416 0 0.00 0
+phiX174:3417 0 0.00 0
+phiX174:3418 0 0.00 0
+phiX174:3419 0 0.00 0
+phiX174:3420 0 0.00 0
+phiX174:3421 0 0.00 0
+phiX174:3422 0 0.00 0
+phiX174:3423 0 0.00 0
+phiX174:3424 0 0.00 0
+phiX174:3425 0 0.00 0
+phiX174:3426 0 0.00 0
+phiX174:3427 0 0.00 0
+phiX174:3428 0 0.00 0
+phiX174:3429 0 0.00 0
+phiX174:3430 0 0.00 0
+phiX174:3431 0 0.00 0
+phiX174:3432 0 0.00 0
+phiX174:3433 0 0.00 0
+phiX174:3434 0 0.00 0
+phiX174:3435 0 0.00 0
+phiX174:3436 0 0.00 0
+phiX174:3437 0 0.00 0
+phiX174:3438 0 0.00 0
+phiX174:3439 0 0.00 0
+phiX174:3440 0 0.00 0
+phiX174:3441 0 0.00 0
+phiX174:3442 0 0.00 0
+phiX174:3443 0 0.00 0
+phiX174:3444 0 0.00 0
+phiX174:3445 0 0.00 0
+phiX174:3446 0 0.00 0
+phiX174:3447 0 0.00 0
+phiX174:3448 0 0.00 0
+phiX174:3449 0 0.00 0
+phiX174:3450 0 0.00 0
+phiX174:3451 0 0.00 0
+phiX174:3452 0 0.00 0
+phiX174:3453 0 0.00 0
+phiX174:3454 0 0.00 0
+phiX174:3455 0 0.00 0
+phiX174:3456 0 0.00 0
+phiX174:3457 0 0.00 0
+phiX174:3458 0 0.00 0
+phiX174:3459 0 0.00 0
+phiX174:3460 0 0.00 0
+phiX174:3461 0 0.00 0
+phiX174:3462 0 0.00 0
+phiX174:3463 0 0.00 0
+phiX174:3464 0 0.00 0
+phiX174:3465 0 0.00 0
+phiX174:3466 0 0.00 0
+phiX174:3467 0 0.00 0
+phiX174:3468 0 0.00 0
+phiX174:3469 0 0.00 0
+phiX174:3470 0 0.00 0
+phiX174:3471 0 0.00 0
+phiX174:3472 0 0.00 0
+phiX174:3473 0 0.00 0
+phiX174:3474 0 0.00 0
+phiX174:3475 0 0.00 0
+phiX174:3476 0 0.00 0
+phiX174:3477 0 0.00 0
+phiX174:3478 0 0.00 0
+phiX174:3479 0 0.00 0
+phiX174:3480 0 0.00 0
+phiX174:3481 0 0.00 0
+phiX174:3482 0 0.00 0
+phiX174:3483 0 0.00 0
+phiX174:3484 0 0.00 0
+phiX174:3485 0 0.00 0
+phiX174:3486 0 0.00 0
+phiX174:3487 0 0.00 0
+phiX174:3488 0 0.00 0
+phiX174:3489 0 0.00 0
+phiX174:3490 0 0.00 0
+phiX174:3491 0 0.00 0
+phiX174:3492 0 0.00 0
+phiX174:3493 0 0.00 0
+phiX174:3494 0 0.00 0
+phiX174:3495 0 0.00 0
+phiX174:3496 0 0.00 0
+phiX174:3497 0 0.00 0
+phiX174:3498 0 0.00 0
+phiX174:3499 0 0.00 0
+phiX174:3500 0 0.00 0
+phiX174:3501 0 0.00 0
+phiX174:3502 0 0.00 0
+phiX174:3503 0 0.00 0
+phiX174:3504 0 0.00 0
+phiX174:3505 0 0.00 0
+phiX174:3506 0 0.00 0
+phiX174:3507 0 0.00 0
+phiX174:3508 0 0.00 0
+phiX174:3509 0 0.00 0
+phiX174:3510 0 0.00 0
+phiX174:3511 0 0.00 0
+phiX174:3512 0 0.00 0
+phiX174:3513 0 0.00 0
+phiX174:3514 0 0.00 0
+phiX174:3515 0 0.00 0
+phiX174:3516 0 0.00 0
+phiX174:3517 0 0.00 0
+phiX174:3518 0 0.00 0
+phiX174:3519 0 0.00 0
+phiX174:3520 0 0.00 0
+phiX174:3521 0 0.00 0
+phiX174:3522 0 0.00 0
+phiX174:3523 0 0.00 0
+phiX174:3524 0 0.00 0
+phiX174:3525 0 0.00 0
+phiX174:3526 0 0.00 0
+phiX174:3527 0 0.00 0
+phiX174:3528 0 0.00 0
+phiX174:3529 0 0.00 0
+phiX174:3530 0 0.00 0
+phiX174:3531 0 0.00 0
+phiX174:3532 0 0.00 0
+phiX174:3533 0 0.00 0
+phiX174:3534 0 0.00 0
+phiX174:3535 0 0.00 0
+phiX174:3536 0 0.00 0
+phiX174:3537 0 0.00 0
+phiX174:3538 0 0.00 0
+phiX174:3539 0 0.00 0
+phiX174:3540 0 0.00 0
+phiX174:3541 0 0.00 0
+phiX174:3542 0 0.00 0
+phiX174:3543 0 0.00 0
+phiX174:3544 0 0.00 0
+phiX174:3545 0 0.00 0
+phiX174:3546 0 0.00 0
+phiX174:3547 0 0.00 0
+phiX174:3548 0 0.00 0
+phiX174:3549 0 0.00 0
+phiX174:3550 0 0.00 0
+phiX174:3551 0 0.00 0
+phiX174:3552 0 0.00 0
+phiX174:3553 0 0.00 0
+phiX174:3554 0 0.00 0
+phiX174:3555 0 0.00 0
+phiX174:3556 0 0.00 0
+phiX174:3557 0 0.00 0
+phiX174:3558 0 0.00 0
+phiX174:3559 0 0.00 0
+phiX174:3560 0 0.00 0
+phiX174:3561 0 0.00 0
+phiX174:3562 0 0.00 0
+phiX174:3563 0 0.00 0
+phiX174:3564 0 0.00 0
+phiX174:3565 0 0.00 0
+phiX174:3566 0 0.00 0
+phiX174:3567 0 0.00 0
+phiX174:3568 0 0.00 0
+phiX174:3569 0 0.00 0
+phiX174:3570 0 0.00 0
+phiX174:3571 0 0.00 0
+phiX174:3572 0 0.00 0
+phiX174:3573 0 0.00 0
+phiX174:3574 0 0.00 0
+phiX174:3575 0 0.00 0
+phiX174:3576 0 0.00 0
+phiX174:3577 0 0.00 0
+phiX174:3578 0 0.00 0
+phiX174:3579 0 0.00 0
+phiX174:3580 0 0.00 0
+phiX174:3581 0 0.00 0
+phiX174:3582 0 0.00 0
+phiX174:3583 0 0.00 0
+phiX174:3584 0 0.00 0
+phiX174:3585 0 0.00 0
+phiX174:3586 0 0.00 0
+phiX174:3587 0 0.00 0
+phiX174:3588 0 0.00 0
+phiX174:3589 0 0.00 0
+phiX174:3590 0 0.00 0
+phiX174:3591 0 0.00 0
+phiX174:3592 0 0.00 0
+phiX174:3593 0 0.00 0
+phiX174:3594 0 0.00 0
+phiX174:3595 0 0.00 0
+phiX174:3596 0 0.00 0
+phiX174:3597 0 0.00 0
+phiX174:3598 0 0.00 0
+phiX174:3599 0 0.00 0
+phiX174:3600 0 0.00 0
+phiX174:3601 0 0.00 0
+phiX174:3602 0 0.00 0
+phiX174:3603 0 0.00 0
+phiX174:3604 0 0.00 0
+phiX174:3605 0 0.00 0
+phiX174:3606 0 0.00 0
+phiX174:3607 0 0.00 0
+phiX174:3608 0 0.00 0
+phiX174:3609 0 0.00 0
+phiX174:3610 0 0.00 0
+phiX174:3611 0 0.00 0
+phiX174:3612 0 0.00 0
+phiX174:3613 0 0.00 0
+phiX174:3614 0 0.00 0
+phiX174:3615 0 0.00 0
+phiX174:3616 0 0.00 0
+phiX174:3617 0 0.00 0
+phiX174:3618 0 0.00 0
+phiX174:3619 0 0.00 0
+phiX174:3620 0 0.00 0
+phiX174:3621 0 0.00 0
+phiX174:3622 0 0.00 0
+phiX174:3623 0 0.00 0
+phiX174:3624 0 0.00 0
+phiX174:3625 0 0.00 0
+phiX174:3626 0 0.00 0
+phiX174:3627 0 0.00 0
+phiX174:3628 0 0.00 0
+phiX174:3629 0 0.00 0
+phiX174:3630 0 0.00 0
+phiX174:3631 0 0.00 0
+phiX174:3632 0 0.00 0
+phiX174:3633 0 0.00 0
+phiX174:3634 0 0.00 0
+phiX174:3635 0 0.00 0
+phiX174:3636 0 0.00 0
+phiX174:3637 0 0.00 0
+phiX174:3638 0 0.00 0
+phiX174:3639 0 0.00 0
+phiX174:3640 0 0.00 0
+phiX174:3641 0 0.00 0
+phiX174:3642 0 0.00 0
+phiX174:3643 0 0.00 0
+phiX174:3644 0 0.00 0
+phiX174:3645 0 0.00 0
+phiX174:3646 0 0.00 0
+phiX174:3647 0 0.00 0
+phiX174:3648 0 0.00 0
+phiX174:3649 0 0.00 0
+phiX174:3650 0 0.00 0
+phiX174:3651 0 0.00 0
+phiX174:3652 0 0.00 0
+phiX174:3653 0 0.00 0
+phiX174:3654 0 0.00 0
+phiX174:3655 0 0.00 0
+phiX174:3656 0 0.00 0
+phiX174:3657 0 0.00 0
+phiX174:3658 0 0.00 0
+phiX174:3659 0 0.00 0
+phiX174:3660 0 0.00 0
+phiX174:3661 0 0.00 0
+phiX174:3662 0 0.00 0
+phiX174:3663 0 0.00 0
+phiX174:3664 0 0.00 0
+phiX174:3665 0 0.00 0
+phiX174:3666 0 0.00 0
+phiX174:3667 0 0.00 0
+phiX174:3668 0 0.00 0
+phiX174:3669 0 0.00 0
+phiX174:3670 0 0.00 0
+phiX174:3671 0 0.00 0
+phiX174:3672 0 0.00 0
+phiX174:3673 0 0.00 0
+phiX174:3674 0 0.00 0
+phiX174:3675 0 0.00 0
+phiX174:3676 0 0.00 0
+phiX174:3677 0 0.00 0
+phiX174:3678 0 0.00 0
+phiX174:3679 0 0.00 0
+phiX174:3680 0 0.00 0
+phiX174:3681 0 0.00 0
+phiX174:3682 0 0.00 0
+phiX174:3683 0 0.00 0
+phiX174:3684 0 0.00 0
+phiX174:3685 0 0.00 0
+phiX174:3686 0 0.00 0
+phiX174:3687 0 0.00 0
+phiX174:3688 0 0.00 0
+phiX174:3689 0 0.00 0
+phiX174:3690 0 0.00 0
+phiX174:3691 0 0.00 0
+phiX174:3692 0 0.00 0
+phiX174:3693 0 0.00 0
+phiX174:3694 0 0.00 0
+phiX174:3695 0 0.00 0
+phiX174:3696 0 0.00 0
+phiX174:3697 0 0.00 0
+phiX174:3698 0 0.00 0
+phiX174:3699 0 0.00 0
+phiX174:3700 0 0.00 0
+phiX174:3701 0 0.00 0
+phiX174:3702 0 0.00 0
+phiX174:3703 0 0.00 0
+phiX174:3704 0 0.00 0
+phiX174:3705 0 0.00 0
+phiX174:3706 0 0.00 0
+phiX174:3707 0 0.00 0
+phiX174:3708 0 0.00 0
+phiX174:3709 0 0.00 0
+phiX174:3710 0 0.00 0
+phiX174:3711 0 0.00 0
+phiX174:3712 0 0.00 0
+phiX174:3713 0 0.00 0
+phiX174:3714 0 0.00 0
+phiX174:3715 0 0.00 0
+phiX174:3716 0 0.00 0
+phiX174:3717 0 0.00 0
+phiX174:3718 0 0.00 0
+phiX174:3719 0 0.00 0
+phiX174:3720 0 0.00 0
+phiX174:3721 0 0.00 0
+phiX174:3722 0 0.00 0
+phiX174:3723 0 0.00 0
+phiX174:3724 0 0.00 0
+phiX174:3725 0 0.00 0
+phiX174:3726 0 0.00 0
+phiX174:3727 0 0.00 0
+phiX174:3728 0 0.00 0
+phiX174:3729 0 0.00 0
+phiX174:3730 0 0.00 0
+phiX174:3731 0 0.00 0
+phiX174:3732 0 0.00 0
+phiX174:3733 0 0.00 0
+phiX174:3734 0 0.00 0
+phiX174:3735 0 0.00 0
+phiX174:3736 0 0.00 0
+phiX174:3737 0 0.00 0
+phiX174:3738 0 0.00 0
+phiX174:3739 0 0.00 0
+phiX174:3740 0 0.00 0
+phiX174:3741 0 0.00 0
+phiX174:3742 0 0.00 0
+phiX174:3743 0 0.00 0
+phiX174:3744 0 0.00 0
+phiX174:3745 0 0.00 0
+phiX174:3746 0 0.00 0
+phiX174:3747 0 0.00 0
+phiX174:3748 0 0.00 0
+phiX174:3749 0 0.00 0
+phiX174:3750 0 0.00 0
+phiX174:3751 0 0.00 0
+phiX174:3752 0 0.00 0
+phiX174:3753 0 0.00 0
+phiX174:3754 0 0.00 0
+phiX174:3755 0 0.00 0
+phiX174:3756 0 0.00 0
+phiX174:3757 0 0.00 0
+phiX174:3758 0 0.00 0
+phiX174:3759 0 0.00 0
+phiX174:3760 0 0.00 0
+phiX174:3761 0 0.00 0
+phiX174:3762 0 0.00 0
+phiX174:3763 0 0.00 0
+phiX174:3764 0 0.00 0
+phiX174:3765 0 0.00 0
+phiX174:3766 0 0.00 0
+phiX174:3767 0 0.00 0
+phiX174:3768 0 0.00 0
+phiX174:3769 0 0.00 0
+phiX174:3770 0 0.00 0
+phiX174:3771 0 0.00 0
+phiX174:3772 0 0.00 0
+phiX174:3773 0 0.00 0
+phiX174:3774 0 0.00 0
+phiX174:3775 0 0.00 0
+phiX174:3776 0 0.00 0
+phiX174:3777 0 0.00 0
+phiX174:3778 0 0.00 0
+phiX174:3779 0 0.00 0
+phiX174:3780 0 0.00 0
+phiX174:3781 0 0.00 0
+phiX174:3782 0 0.00 0
+phiX174:3783 0 0.00 0
+phiX174:3784 0 0.00 0
+phiX174:3785 0 0.00 0
+phiX174:3786 0 0.00 0
+phiX174:3787 0 0.00 0
+phiX174:3788 0 0.00 0
+phiX174:3789 0 0.00 0
+phiX174:3790 0 0.00 0
+phiX174:3791 0 0.00 0
+phiX174:3792 0 0.00 0
+phiX174:3793 0 0.00 0
+phiX174:3794 0 0.00 0
+phiX174:3795 0 0.00 0
+phiX174:3796 0 0.00 0
+phiX174:3797 0 0.00 0
+phiX174:3798 0 0.00 0
+phiX174:3799 0 0.00 0
+phiX174:3800 0 0.00 0
+phiX174:3801 0 0.00 0
+phiX174:3802 0 0.00 0
+phiX174:3803 0 0.00 0
+phiX174:3804 0 0.00 0
+phiX174:3805 0 0.00 0
+phiX174:3806 0 0.00 0
+phiX174:3807 0 0.00 0
+phiX174:3808 0 0.00 0
+phiX174:3809 0 0.00 0
+phiX174:3810 0 0.00 0
+phiX174:3811 0 0.00 0
+phiX174:3812 0 0.00 0
+phiX174:3813 0 0.00 0
+phiX174:3814 0 0.00 0
+phiX174:3815 0 0.00 0
+phiX174:3816 0 0.00 0
+phiX174:3817 0 0.00 0
+phiX174:3818 0 0.00 0
+phiX174:3819 0 0.00 0
+phiX174:3820 0 0.00 0
+phiX174:3821 0 0.00 0
+phiX174:3822 0 0.00 0
+phiX174:3823 0 0.00 0
+phiX174:3824 0 0.00 0
+phiX174:3825 0 0.00 0
+phiX174:3826 0 0.00 0
+phiX174:3827 0 0.00 0
+phiX174:3828 0 0.00 0
+phiX174:3829 0 0.00 0
+phiX174:3830 0 0.00 0
+phiX174:3831 0 0.00 0
+phiX174:3832 0 0.00 0
+phiX174:3833 0 0.00 0
+phiX174:3834 0 0.00 0
+phiX174:3835 0 0.00 0
+phiX174:3836 0 0.00 0
+phiX174:3837 0 0.00 0
+phiX174:3838 0 0.00 0
+phiX174:3839 0 0.00 0
+phiX174:3840 0 0.00 0
+phiX174:3841 0 0.00 0
+phiX174:3842 0 0.00 0
+phiX174:3843 0 0.00 0
+phiX174:3844 0 0.00 0
+phiX174:3845 0 0.00 0
+phiX174:3846 0 0.00 0
+phiX174:3847 0 0.00 0
+phiX174:3848 0 0.00 0
+phiX174:3849 0 0.00 0
+phiX174:3850 0 0.00 0
+phiX174:3851 0 0.00 0
+phiX174:3852 0 0.00 0
+phiX174:3853 0 0.00 0
+phiX174:3854 0 0.00 0
+phiX174:3855 0 0.00 0
+phiX174:3856 0 0.00 0
+phiX174:3857 0 0.00 0
+phiX174:3858 0 0.00 0
+phiX174:3859 0 0.00 0
+phiX174:3860 0 0.00 0
+phiX174:3861 0 0.00 0
+phiX174:3862 0 0.00 0
+phiX174:3863 0 0.00 0
+phiX174:3864 0 0.00 0
+phiX174:3865 0 0.00 0
+phiX174:3866 0 0.00 0
+phiX174:3867 0 0.00 0
+phiX174:3868 0 0.00 0
+phiX174:3869 0 0.00 0
+phiX174:3870 0 0.00 0
+phiX174:3871 0 0.00 0
+phiX174:3872 0 0.00 0
+phiX174:3873 0 0.00 0
+phiX174:3874 0 0.00 0
+phiX174:3875 0 0.00 0
+phiX174:3876 0 0.00 0
+phiX174:3877 0 0.00 0
+phiX174:3878 0 0.00 0
+phiX174:3879 0 0.00 0
+phiX174:3880 0 0.00 0
+phiX174:3881 0 0.00 0
+phiX174:3882 0 0.00 0
+phiX174:3883 0 0.00 0
+phiX174:3884 0 0.00 0
+phiX174:3885 0 0.00 0
+phiX174:3886 0 0.00 0
+phiX174:3887 0 0.00 0
+phiX174:3888 0 0.00 0
+phiX174:3889 0 0.00 0
+phiX174:3890 0 0.00 0
+phiX174:3891 0 0.00 0
+phiX174:3892 0 0.00 0
+phiX174:3893 0 0.00 0
+phiX174:3894 0 0.00 0
+phiX174:3895 0 0.00 0
+phiX174:3896 0 0.00 0
+phiX174:3897 0 0.00 0
+phiX174:3898 0 0.00 0
+phiX174:3899 0 0.00 0
+phiX174:3900 0 0.00 0
+phiX174:3901 0 0.00 0
+phiX174:3902 0 0.00 0
+phiX174:3903 0 0.00 0
+phiX174:3904 0 0.00 0
+phiX174:3905 0 0.00 0
+phiX174:3906 0 0.00 0
+phiX174:3907 0 0.00 0
+phiX174:3908 0 0.00 0
+phiX174:3909 0 0.00 0
+phiX174:3910 0 0.00 0
+phiX174:3911 0 0.00 0
+phiX174:3912 0 0.00 0
+phiX174:3913 0 0.00 0
+phiX174:3914 0 0.00 0
+phiX174:3915 0 0.00 0
+phiX174:3916 0 0.00 0
+phiX174:3917 0 0.00 0
+phiX174:3918 0 0.00 0
+phiX174:3919 0 0.00 0
+phiX174:3920 0 0.00 0
+phiX174:3921 0 0.00 0
+phiX174:3922 0 0.00 0
+phiX174:3923 0 0.00 0
+phiX174:3924 0 0.00 0
+phiX174:3925 0 0.00 0
+phiX174:3926 0 0.00 0
+phiX174:3927 0 0.00 0
+phiX174:3928 0 0.00 0
+phiX174:3929 0 0.00 0
+phiX174:3930 0 0.00 0
+phiX174:3931 0 0.00 0
+phiX174:3932 0 0.00 0
+phiX174:3933 0 0.00 0
+phiX174:3934 0 0.00 0
+phiX174:3935 0 0.00 0
+phiX174:3936 0 0.00 0
+phiX174:3937 0 0.00 0
+phiX174:3938 0 0.00 0
+phiX174:3939 0 0.00 0
+phiX174:3940 0 0.00 0
+phiX174:3941 0 0.00 0
+phiX174:3942 0 0.00 0
+phiX174:3943 0 0.00 0
+phiX174:3944 0 0.00 0
+phiX174:3945 0 0.00 0
+phiX174:3946 0 0.00 0
+phiX174:3947 0 0.00 0
+phiX174:3948 0 0.00 0
+phiX174:3949 0 0.00 0
+phiX174:3950 0 0.00 0
+phiX174:3951 0 0.00 0
+phiX174:3952 0 0.00 0
+phiX174:3953 0 0.00 0
+phiX174:3954 0 0.00 0
+phiX174:3955 0 0.00 0
+phiX174:3956 0 0.00 0
+phiX174:3957 0 0.00 0
+phiX174:3958 0 0.00 0
+phiX174:3959 0 0.00 0
+phiX174:3960 0 0.00 0
+phiX174:3961 0 0.00 0
+phiX174:3962 0 0.00 0
+phiX174:3963 0 0.00 0
+phiX174:3964 0 0.00 0
+phiX174:3965 0 0.00 0
+phiX174:3966 0 0.00 0
+phiX174:3967 0 0.00 0
+phiX174:3968 0 0.00 0
+phiX174:3969 0 0.00 0
+phiX174:3970 0 0.00 0
+phiX174:3971 0 0.00 0
+phiX174:3972 0 0.00 0
+phiX174:3973 0 0.00 0
+phiX174:3974 0 0.00 0
+phiX174:3975 0 0.00 0
+phiX174:3976 0 0.00 0
+phiX174:3977 0 0.00 0
+phiX174:3978 0 0.00 0
+phiX174:3979 0 0.00 0
+phiX174:3980 0 0.00 0
+phiX174:3981 0 0.00 0
+phiX174:3982 0 0.00 0
+phiX174:3983 0 0.00 0
+phiX174:3984 0 0.00 0
+phiX174:3985 0 0.00 0
+phiX174:3986 0 0.00 0
+phiX174:3987 0 0.00 0
+phiX174:3988 0 0.00 0
+phiX174:3989 0 0.00 0
+phiX174:3990 0 0.00 0
+phiX174:3991 0 0.00 0
+phiX174:3992 0 0.00 0
+phiX174:3993 0 0.00 0
+phiX174:3994 0 0.00 0
+phiX174:3995 0 0.00 0
+phiX174:3996 0 0.00 0
+phiX174:3997 0 0.00 0
+phiX174:3998 0 0.00 0
+phiX174:3999 0 0.00 0
+phiX174:4000 0 0.00 0
+phiX174:4001 0 0.00 0
+phiX174:4002 0 0.00 0
+phiX174:4003 0 0.00 0
+phiX174:4004 0 0.00 0
+phiX174:4005 0 0.00 0
+phiX174:4006 0 0.00 0
+phiX174:4007 0 0.00 0
+phiX174:4008 0 0.00 0
+phiX174:4009 0 0.00 0
+phiX174:4010 0 0.00 0
+phiX174:4011 0 0.00 0
+phiX174:4012 0 0.00 0
+phiX174:4013 0 0.00 0
+phiX174:4014 0 0.00 0
+phiX174:4015 0 0.00 0
+phiX174:4016 0 0.00 0
+phiX174:4017 0 0.00 0
+phiX174:4018 0 0.00 0
+phiX174:4019 0 0.00 0
+phiX174:4020 0 0.00 0
+phiX174:4021 0 0.00 0
+phiX174:4022 0 0.00 0
+phiX174:4023 0 0.00 0
+phiX174:4024 0 0.00 0
+phiX174:4025 0 0.00 0
+phiX174:4026 0 0.00 0
+phiX174:4027 0 0.00 0
+phiX174:4028 0 0.00 0
+phiX174:4029 0 0.00 0
+phiX174:4030 0 0.00 0
+phiX174:4031 0 0.00 0
+phiX174:4032 0 0.00 0
+phiX174:4033 0 0.00 0
+phiX174:4034 0 0.00 0
+phiX174:4035 0 0.00 0
+phiX174:4036 0 0.00 0
+phiX174:4037 0 0.00 0
+phiX174:4038 0 0.00 0
+phiX174:4039 0 0.00 0
+phiX174:4040 0 0.00 0
+phiX174:4041 0 0.00 0
+phiX174:4042 0 0.00 0
+phiX174:4043 0 0.00 0
+phiX174:4044 0 0.00 0
+phiX174:4045 0 0.00 0
+phiX174:4046 0 0.00 0
+phiX174:4047 0 0.00 0
+phiX174:4048 0 0.00 0
+phiX174:4049 0 0.00 0
+phiX174:4050 0 0.00 0
+phiX174:4051 0 0.00 0
+phiX174:4052 0 0.00 0
+phiX174:4053 0 0.00 0
+phiX174:4054 0 0.00 0
+phiX174:4055 0 0.00 0
+phiX174:4056 0 0.00 0
+phiX174:4057 0 0.00 0
+phiX174:4058 0 0.00 0
+phiX174:4059 0 0.00 0
+phiX174:4060 0 0.00 0
+phiX174:4061 0 0.00 0
+phiX174:4062 0 0.00 0
+phiX174:4063 0 0.00 0
+phiX174:4064 0 0.00 0
+phiX174:4065 0 0.00 0
+phiX174:4066 0 0.00 0
+phiX174:4067 0 0.00 0
+phiX174:4068 0 0.00 0
+phiX174:4069 0 0.00 0
+phiX174:4070 0 0.00 0
+phiX174:4071 0 0.00 0
+phiX174:4072 0 0.00 0
+phiX174:4073 0 0.00 0
+phiX174:4074 0 0.00 0
+phiX174:4075 0 0.00 0
+phiX174:4076 0 0.00 0
+phiX174:4077 0 0.00 0
+phiX174:4078 0 0.00 0
+phiX174:4079 0 0.00 0
+phiX174:4080 0 0.00 0
+phiX174:4081 0 0.00 0
+phiX174:4082 0 0.00 0
+phiX174:4083 0 0.00 0
+phiX174:4084 0 0.00 0
+phiX174:4085 0 0.00 0
+phiX174:4086 0 0.00 0
+phiX174:4087 0 0.00 0
+phiX174:4088 0 0.00 0
+phiX174:4089 0 0.00 0
+phiX174:4090 0 0.00 0
+phiX174:4091 0 0.00 0
+phiX174:4092 0 0.00 0
+phiX174:4093 0 0.00 0
+phiX174:4094 0 0.00 0
+phiX174:4095 0 0.00 0
+phiX174:4096 0 0.00 0
+phiX174:4097 0 0.00 0
+phiX174:4098 0 0.00 0
+phiX174:4099 0 0.00 0
+phiX174:4100 0 0.00 0
+phiX174:4101 0 0.00 0
+phiX174:4102 0 0.00 0
+phiX174:4103 0 0.00 0
+phiX174:4104 0 0.00 0
+phiX174:4105 0 0.00 0
+phiX174:4106 0 0.00 0
+phiX174:4107 0 0.00 0
+phiX174:4108 0 0.00 0
+phiX174:4109 0 0.00 0
+phiX174:4110 0 0.00 0
+phiX174:4111 0 0.00 0
+phiX174:4112 0 0.00 0
+phiX174:4113 0 0.00 0
+phiX174:4114 0 0.00 0
+phiX174:4115 0 0.00 0
+phiX174:4116 0 0.00 0
+phiX174:4117 0 0.00 0
+phiX174:4118 0 0.00 0
+phiX174:4119 0 0.00 0
+phiX174:4120 0 0.00 0
+phiX174:4121 0 0.00 0
+phiX174:4122 0 0.00 0
+phiX174:4123 0 0.00 0
+phiX174:4124 0 0.00 0
+phiX174:4125 0 0.00 0
+phiX174:4126 0 0.00 0
+phiX174:4127 0 0.00 0
+phiX174:4128 0 0.00 0
+phiX174:4129 0 0.00 0
+phiX174:4130 0 0.00 0
+phiX174:4131 0 0.00 0
+phiX174:4132 0 0.00 0
+phiX174:4133 0 0.00 0
+phiX174:4134 0 0.00 0
+phiX174:4135 0 0.00 0
+phiX174:4136 0 0.00 0
+phiX174:4137 0 0.00 0
+phiX174:4138 0 0.00 0
+phiX174:4139 0 0.00 0
+phiX174:4140 0 0.00 0
+phiX174:4141 0 0.00 0
+phiX174:4142 0 0.00 0
+phiX174:4143 0 0.00 0
+phiX174:4144 0 0.00 0
+phiX174:4145 0 0.00 0
+phiX174:4146 0 0.00 0
+phiX174:4147 0 0.00 0
+phiX174:4148 0 0.00 0
+phiX174:4149 0 0.00 0
+phiX174:4150 0 0.00 0
+phiX174:4151 0 0.00 0
+phiX174:4152 0 0.00 0
+phiX174:4153 0 0.00 0
+phiX174:4154 0 0.00 0
+phiX174:4155 0 0.00 0
+phiX174:4156 0 0.00 0
+phiX174:4157 0 0.00 0
+phiX174:4158 0 0.00 0
+phiX174:4159 0 0.00 0
+phiX174:4160 0 0.00 0
+phiX174:4161 0 0.00 0
+phiX174:4162 0 0.00 0
+phiX174:4163 0 0.00 0
+phiX174:4164 0 0.00 0
+phiX174:4165 0 0.00 0
+phiX174:4166 0 0.00 0
+phiX174:4167 0 0.00 0
+phiX174:4168 0 0.00 0
+phiX174:4169 0 0.00 0
+phiX174:4170 0 0.00 0
+phiX174:4171 0 0.00 0
+phiX174:4172 0 0.00 0
+phiX174:4173 0 0.00 0
+phiX174:4174 0 0.00 0
+phiX174:4175 0 0.00 0
+phiX174:4176 0 0.00 0
+phiX174:4177 0 0.00 0
+phiX174:4178 0 0.00 0
+phiX174:4179 0 0.00 0
+phiX174:4180 0 0.00 0
+phiX174:4181 0 0.00 0
+phiX174:4182 0 0.00 0
+phiX174:4183 0 0.00 0
+phiX174:4184 0 0.00 0
+phiX174:4185 0 0.00 0
+phiX174:4186 0 0.00 0
+phiX174:4187 0 0.00 0
+phiX174:4188 0 0.00 0
+phiX174:4189 0 0.00 0
+phiX174:4190 0 0.00 0
+phiX174:4191 0 0.00 0
+phiX174:4192 0 0.00 0
+phiX174:4193 0 0.00 0
+phiX174:4194 0 0.00 0
+phiX174:4195 0 0.00 0
+phiX174:4196 0 0.00 0
+phiX174:4197 0 0.00 0
+phiX174:4198 0 0.00 0
+phiX174:4199 0 0.00 0
+phiX174:4200 0 0.00 0
+phiX174:4201 0 0.00 0
+phiX174:4202 0 0.00 0
+phiX174:4203 0 0.00 0
+phiX174:4204 0 0.00 0
+phiX174:4205 0 0.00 0
+phiX174:4206 0 0.00 0
+phiX174:4207 0 0.00 0
+phiX174:4208 0 0.00 0
+phiX174:4209 0 0.00 0
+phiX174:4210 0 0.00 0
+phiX174:4211 0 0.00 0
+phiX174:4212 0 0.00 0
+phiX174:4213 0 0.00 0
+phiX174:4214 0 0.00 0
+phiX174:4215 0 0.00 0
+phiX174:4216 0 0.00 0
+phiX174:4217 0 0.00 0
+phiX174:4218 0 0.00 0
+phiX174:4219 0 0.00 0
+phiX174:4220 0 0.00 0
+phiX174:4221 0 0.00 0
+phiX174:4222 0 0.00 0
+phiX174:4223 0 0.00 0
+phiX174:4224 0 0.00 0
+phiX174:4225 0 0.00 0
+phiX174:4226 0 0.00 0
+phiX174:4227 0 0.00 0
+phiX174:4228 0 0.00 0
+phiX174:4229 0 0.00 0
+phiX174:4230 0 0.00 0
+phiX174:4231 0 0.00 0
+phiX174:4232 0 0.00 0
+phiX174:4233 0 0.00 0
+phiX174:4234 0 0.00 0
+phiX174:4235 0 0.00 0
+phiX174:4236 0 0.00 0
+phiX174:4237 0 0.00 0
+phiX174:4238 0 0.00 0
+phiX174:4239 0 0.00 0
+phiX174:4240 0 0.00 0
+phiX174:4241 0 0.00 0
+phiX174:4242 0 0.00 0
+phiX174:4243 0 0.00 0
+phiX174:4244 0 0.00 0
+phiX174:4245 0 0.00 0
+phiX174:4246 0 0.00 0
+phiX174:4247 0 0.00 0
+phiX174:4248 0 0.00 0
+phiX174:4249 0 0.00 0
+phiX174:4250 0 0.00 0
+phiX174:4251 0 0.00 0
+phiX174:4252 0 0.00 0
+phiX174:4253 0 0.00 0
+phiX174:4254 0 0.00 0
+phiX174:4255 0 0.00 0
+phiX174:4256 0 0.00 0
+phiX174:4257 0 0.00 0
+phiX174:4258 0 0.00 0
+phiX174:4259 0 0.00 0
+phiX174:4260 0 0.00 0
+phiX174:4261 0 0.00 0
+phiX174:4262 0 0.00 0
+phiX174:4263 0 0.00 0
+phiX174:4264 0 0.00 0
+phiX174:4265 0 0.00 0
+phiX174:4266 0 0.00 0
+phiX174:4267 0 0.00 0
+phiX174:4268 0 0.00 0
+phiX174:4269 0 0.00 0
+phiX174:4270 0 0.00 0
+phiX174:4271 0 0.00 0
+phiX174:4272 0 0.00 0
+phiX174:4273 0 0.00 0
+phiX174:4274 0 0.00 0
+phiX174:4275 0 0.00 0
+phiX174:4276 0 0.00 0
+phiX174:4277 0 0.00 0
+phiX174:4278 0 0.00 0
+phiX174:4279 0 0.00 0
+phiX174:4280 0 0.00 0
+phiX174:4281 0 0.00 0
+phiX174:4282 0 0.00 0
+phiX174:4283 0 0.00 0
+phiX174:4284 0 0.00 0
+phiX174:4285 0 0.00 0
+phiX174:4286 0 0.00 0
+phiX174:4287 0 0.00 0
+phiX174:4288 0 0.00 0
+phiX174:4289 0 0.00 0
+phiX174:4290 0 0.00 0
+phiX174:4291 0 0.00 0
+phiX174:4292 0 0.00 0
+phiX174:4293 0 0.00 0
+phiX174:4294 0 0.00 0
+phiX174:4295 0 0.00 0
+phiX174:4296 0 0.00 0
+phiX174:4297 0 0.00 0
+phiX174:4298 0 0.00 0
+phiX174:4299 0 0.00 0
+phiX174:4300 0 0.00 0
+phiX174:4301 0 0.00 0
+phiX174:4302 0 0.00 0
+phiX174:4303 0 0.00 0
+phiX174:4304 0 0.00 0
+phiX174:4305 0 0.00 0
+phiX174:4306 0 0.00 0
+phiX174:4307 0 0.00 0
+phiX174:4308 0 0.00 0
+phiX174:4309 0 0.00 0
+phiX174:4310 0 0.00 0
+phiX174:4311 0 0.00 0
+phiX174:4312 0 0.00 0
+phiX174:4313 0 0.00 0
+phiX174:4314 0 0.00 0
+phiX174:4315 0 0.00 0
+phiX174:4316 0 0.00 0
+phiX174:4317 0 0.00 0
+phiX174:4318 0 0.00 0
+phiX174:4319 0 0.00 0
+phiX174:4320 0 0.00 0
+phiX174:4321 0 0.00 0
+phiX174:4322 0 0.00 0
+phiX174:4323 0 0.00 0
+phiX174:4324 0 0.00 0
+phiX174:4325 0 0.00 0
+phiX174:4326 0 0.00 0
+phiX174:4327 0 0.00 0
+phiX174:4328 0 0.00 0
+phiX174:4329 0 0.00 0
+phiX174:4330 0 0.00 0
+phiX174:4331 0 0.00 0
+phiX174:4332 0 0.00 0
+phiX174:4333 0 0.00 0
+phiX174:4334 0 0.00 0
+phiX174:4335 0 0.00 0
+phiX174:4336 0 0.00 0
+phiX174:4337 0 0.00 0
+phiX174:4338 0 0.00 0
+phiX174:4339 0 0.00 0
+phiX174:4340 0 0.00 0
+phiX174:4341 0 0.00 0
+phiX174:4342 0 0.00 0
+phiX174:4343 0 0.00 0
+phiX174:4344 0 0.00 0
+phiX174:4345 0 0.00 0
+phiX174:4346 0 0.00 0
+phiX174:4347 0 0.00 0
+phiX174:4348 0 0.00 0
+phiX174:4349 0 0.00 0
+phiX174:4350 0 0.00 0
+phiX174:4351 0 0.00 0
+phiX174:4352 0 0.00 0
+phiX174:4353 0 0.00 0
+phiX174:4354 0 0.00 0
+phiX174:4355 0 0.00 0
+phiX174:4356 0 0.00 0
+phiX174:4357 0 0.00 0
+phiX174:4358 0 0.00 0
+phiX174:4359 0 0.00 0
+phiX174:4360 0 0.00 0
+phiX174:4361 0 0.00 0
+phiX174:4362 0 0.00 0
+phiX174:4363 0 0.00 0
+phiX174:4364 0 0.00 0
+phiX174:4365 0 0.00 0
+phiX174:4366 0 0.00 0
+phiX174:4367 0 0.00 0
+phiX174:4368 0 0.00 0
+phiX174:4369 0 0.00 0
+phiX174:4370 0 0.00 0
+phiX174:4371 0 0.00 0
+phiX174:4372 0 0.00 0
+phiX174:4373 0 0.00 0
+phiX174:4374 0 0.00 0
+phiX174:4375 0 0.00 0
+phiX174:4376 0 0.00 0
+phiX174:4377 0 0.00 0
+phiX174:4378 0 0.00 0
+phiX174:4379 0 0.00 0
+phiX174:4380 0 0.00 0
+phiX174:4381 0 0.00 0
+phiX174:4382 0 0.00 0
+phiX174:4383 0 0.00 0
+phiX174:4384 0 0.00 0
+phiX174:4385 0 0.00 0
+phiX174:4386 0 0.00 0
+phiX174:4387 0 0.00 0
+phiX174:4388 0 0.00 0
+phiX174:4389 0 0.00 0
+phiX174:4390 0 0.00 0
+phiX174:4391 0 0.00 0
+phiX174:4392 0 0.00 0
+phiX174:4393 0 0.00 0
+phiX174:4394 0 0.00 0
+phiX174:4395 0 0.00 0
+phiX174:4396 0 0.00 0
+phiX174:4397 0 0.00 0
+phiX174:4398 0 0.00 0
+phiX174:4399 0 0.00 0
+phiX174:4400 0 0.00 0
+phiX174:4401 0 0.00 0
+phiX174:4402 0 0.00 0
+phiX174:4403 0 0.00 0
+phiX174:4404 0 0.00 0
+phiX174:4405 0 0.00 0
+phiX174:4406 0 0.00 0
+phiX174:4407 0 0.00 0
+phiX174:4408 0 0.00 0
+phiX174:4409 0 0.00 0
+phiX174:4410 0 0.00 0
+phiX174:4411 0 0.00 0
+phiX174:4412 0 0.00 0
+phiX174:4413 0 0.00 0
+phiX174:4414 0 0.00 0
+phiX174:4415 0 0.00 0
+phiX174:4416 0 0.00 0
+phiX174:4417 0 0.00 0
+phiX174:4418 0 0.00 0
+phiX174:4419 0 0.00 0
+phiX174:4420 0 0.00 0
+phiX174:4421 0 0.00 0
+phiX174:4422 0 0.00 0
+phiX174:4423 0 0.00 0
+phiX174:4424 0 0.00 0
+phiX174:4425 0 0.00 0
+phiX174:4426 0 0.00 0
+phiX174:4427 0 0.00 0
+phiX174:4428 0 0.00 0
+phiX174:4429 0 0.00 0
+phiX174:4430 0 0.00 0
+phiX174:4431 0 0.00 0
+phiX174:4432 0 0.00 0
+phiX174:4433 0 0.00 0
+phiX174:4434 0 0.00 0
+phiX174:4435 0 0.00 0
+phiX174:4436 0 0.00 0
+phiX174:4437 0 0.00 0
+phiX174:4438 0 0.00 0
+phiX174:4439 0 0.00 0
+phiX174:4440 0 0.00 0
+phiX174:4441 0 0.00 0
+phiX174:4442 0 0.00 0
+phiX174:4443 0 0.00 0
+phiX174:4444 0 0.00 0
+phiX174:4445 0 0.00 0
+phiX174:4446 0 0.00 0
+phiX174:4447 0 0.00 0
+phiX174:4448 0 0.00 0
+phiX174:4449 0 0.00 0
+phiX174:4450 0 0.00 0
+phiX174:4451 0 0.00 0
+phiX174:4452 0 0.00 0
+phiX174:4453 0 0.00 0
+phiX174:4454 0 0.00 0
+phiX174:4455 0 0.00 0
+phiX174:4456 0 0.00 0
+phiX174:4457 0 0.00 0
+phiX174:4458 0 0.00 0
+phiX174:4459 0 0.00 0
+phiX174:4460 0 0.00 0
+phiX174:4461 0 0.00 0
+phiX174:4462 0 0.00 0
+phiX174:4463 0 0.00 0
+phiX174:4464 0 0.00 0
+phiX174:4465 0 0.00 0
+phiX174:4466 0 0.00 0
+phiX174:4467 0 0.00 0
+phiX174:4468 0 0.00 0
+phiX174:4469 0 0.00 0
+phiX174:4470 0 0.00 0
+phiX174:4471 0 0.00 0
+phiX174:4472 0 0.00 0
+phiX174:4473 0 0.00 0
+phiX174:4474 0 0.00 0
+phiX174:4475 0 0.00 0
+phiX174:4476 0 0.00 0
+phiX174:4477 0 0.00 0
+phiX174:4478 0 0.00 0
+phiX174:4479 0 0.00 0
+phiX174:4480 0 0.00 0
+phiX174:4481 0 0.00 0
+phiX174:4482 0 0.00 0
+phiX174:4483 0 0.00 0
+phiX174:4484 0 0.00 0
+phiX174:4485 0 0.00 0
+phiX174:4486 0 0.00 0
+phiX174:4487 0 0.00 0
+phiX174:4488 0 0.00 0
+phiX174:4489 0 0.00 0
+phiX174:4490 0 0.00 0
+phiX174:4491 0 0.00 0
+phiX174:4492 0 0.00 0
+phiX174:4493 0 0.00 0
+phiX174:4494 0 0.00 0
+phiX174:4495 0 0.00 0
+phiX174:4496 0 0.00 0
+phiX174:4497 0 0.00 0
+phiX174:4498 0 0.00 0
+phiX174:4499 0 0.00 0
+phiX174:4500 0 0.00 0
+phiX174:4501 0 0.00 0
+phiX174:4502 0 0.00 0
+phiX174:4503 0 0.00 0
+phiX174:4504 0 0.00 0
+phiX174:4505 0 0.00 0
+phiX174:4506 0 0.00 0
+phiX174:4507 0 0.00 0
+phiX174:4508 0 0.00 0
+phiX174:4509 0 0.00 0
+phiX174:4510 0 0.00 0
+phiX174:4511 0 0.00 0
+phiX174:4512 0 0.00 0
+phiX174:4513 0 0.00 0
+phiX174:4514 0 0.00 0
+phiX174:4515 0 0.00 0
+phiX174:4516 0 0.00 0
+phiX174:4517 0 0.00 0
+phiX174:4518 0 0.00 0
+phiX174:4519 0 0.00 0
+phiX174:4520 0 0.00 0
+phiX174:4521 0 0.00 0
+phiX174:4522 0 0.00 0
+phiX174:4523 0 0.00 0
+phiX174:4524 0 0.00 0
+phiX174:4525 0 0.00 0
+phiX174:4526 0 0.00 0
+phiX174:4527 0 0.00 0
+phiX174:4528 0 0.00 0
+phiX174:4529 0 0.00 0
+phiX174:4530 0 0.00 0
+phiX174:4531 0 0.00 0
+phiX174:4532 0 0.00 0
+phiX174:4533 0 0.00 0
+phiX174:4534 0 0.00 0
+phiX174:4535 0 0.00 0
+phiX174:4536 0 0.00 0
+phiX174:4537 0 0.00 0
+phiX174:4538 0 0.00 0
+phiX174:4539 0 0.00 0
+phiX174:4540 0 0.00 0
+phiX174:4541 0 0.00 0
+phiX174:4542 0 0.00 0
+phiX174:4543 0 0.00 0
+phiX174:4544 0 0.00 0
+phiX174:4545 0 0.00 0
+phiX174:4546 0 0.00 0
+phiX174:4547 0 0.00 0
+phiX174:4548 0 0.00 0
+phiX174:4549 0 0.00 0
+phiX174:4550 0 0.00 0
+phiX174:4551 0 0.00 0
+phiX174:4552 0 0.00 0
+phiX174:4553 0 0.00 0
+phiX174:4554 0 0.00 0
+phiX174:4555 0 0.00 0
+phiX174:4556 0 0.00 0
+phiX174:4557 0 0.00 0
+phiX174:4558 0 0.00 0
+phiX174:4559 0 0.00 0
+phiX174:4560 0 0.00 0
+phiX174:4561 0 0.00 0
+phiX174:4562 0 0.00 0
+phiX174:4563 0 0.00 0
+phiX174:4564 0 0.00 0
+phiX174:4565 0 0.00 0
+phiX174:4566 0 0.00 0
+phiX174:4567 0 0.00 0
+phiX174:4568 0 0.00 0
+phiX174:4569 0 0.00 0
+phiX174:4570 0 0.00 0
+phiX174:4571 0 0.00 0
+phiX174:4572 0 0.00 0
+phiX174:4573 0 0.00 0
+phiX174:4574 0 0.00 0
+phiX174:4575 0 0.00 0
+phiX174:4576 0 0.00 0
+phiX174:4577 0 0.00 0
+phiX174:4578 0 0.00 0
+phiX174:4579 0 0.00 0
+phiX174:4580 0 0.00 0
+phiX174:4581 0 0.00 0
+phiX174:4582 0 0.00 0
+phiX174:4583 0 0.00 0
+phiX174:4584 0 0.00 0
+phiX174:4585 0 0.00 0
+phiX174:4586 0 0.00 0
+phiX174:4587 0 0.00 0
+phiX174:4588 0 0.00 0
+phiX174:4589 0 0.00 0
+phiX174:4590 0 0.00 0
+phiX174:4591 0 0.00 0
+phiX174:4592 0 0.00 0
+phiX174:4593 0 0.00 0
+phiX174:4594 0 0.00 0
+phiX174:4595 0 0.00 0
+phiX174:4596 0 0.00 0
+phiX174:4597 0 0.00 0
+phiX174:4598 0 0.00 0
+phiX174:4599 0 0.00 0
+phiX174:4600 0 0.00 0
+phiX174:4601 0 0.00 0
+phiX174:4602 0 0.00 0
+phiX174:4603 0 0.00 0
+phiX174:4604 0 0.00 0
+phiX174:4605 0 0.00 0
+phiX174:4606 0 0.00 0
+phiX174:4607 0 0.00 0
+phiX174:4608 0 0.00 0
+phiX174:4609 0 0.00 0
+phiX174:4610 0 0.00 0
+phiX174:4611 0 0.00 0
+phiX174:4612 0 0.00 0
+phiX174:4613 0 0.00 0
+phiX174:4614 0 0.00 0
+phiX174:4615 0 0.00 0
+phiX174:4616 0 0.00 0
+phiX174:4617 0 0.00 0
+phiX174:4618 0 0.00 0
+phiX174:4619 0 0.00 0
+phiX174:4620 0 0.00 0
+phiX174:4621 0 0.00 0
+phiX174:4622 0 0.00 0
+phiX174:4623 0 0.00 0
+phiX174:4624 0 0.00 0
+phiX174:4625 0 0.00 0
+phiX174:4626 0 0.00 0
+phiX174:4627 0 0.00 0
+phiX174:4628 0 0.00 0
+phiX174:4629 0 0.00 0
+phiX174:4630 0 0.00 0
+phiX174:4631 0 0.00 0
+phiX174:4632 0 0.00 0
+phiX174:4633 0 0.00 0
+phiX174:4634 0 0.00 0
+phiX174:4635 0 0.00 0
+phiX174:4636 0 0.00 0
+phiX174:4637 0 0.00 0
+phiX174:4638 0 0.00 0
+phiX174:4639 0 0.00 0
+phiX174:4640 0 0.00 0
+phiX174:4641 0 0.00 0
+phiX174:4642 0 0.00 0
+phiX174:4643 0 0.00 0
+phiX174:4644 0 0.00 0
+phiX174:4645 0 0.00 0
+phiX174:4646 0 0.00 0
+phiX174:4647 0 0.00 0
+phiX174:4648 0 0.00 0
+phiX174:4649 0 0.00 0
+phiX174:4650 0 0.00 0
+phiX174:4651 0 0.00 0
+phiX174:4652 0 0.00 0
+phiX174:4653 0 0.00 0
+phiX174:4654 0 0.00 0
+phiX174:4655 0 0.00 0
+phiX174:4656 0 0.00 0
+phiX174:4657 0 0.00 0
+phiX174:4658 0 0.00 0
+phiX174:4659 0 0.00 0
+phiX174:4660 0 0.00 0
+phiX174:4661 0 0.00 0
+phiX174:4662 0 0.00 0
+phiX174:4663 0 0.00 0
+phiX174:4664 0 0.00 0
+phiX174:4665 0 0.00 0
+phiX174:4666 0 0.00 0
+phiX174:4667 0 0.00 0
+phiX174:4668 0 0.00 0
+phiX174:4669 0 0.00 0
+phiX174:4670 0 0.00 0
+phiX174:4671 0 0.00 0
+phiX174:4672 0 0.00 0
+phiX174:4673 0 0.00 0
+phiX174:4674 0 0.00 0
+phiX174:4675 0 0.00 0
+phiX174:4676 0 0.00 0
+phiX174:4677 0 0.00 0
+phiX174:4678 0 0.00 0
+phiX174:4679 0 0.00 0
+phiX174:4680 0 0.00 0
+phiX174:4681 0 0.00 0
+phiX174:4682 0 0.00 0
+phiX174:4683 0 0.00 0
+phiX174:4684 0 0.00 0
+phiX174:4685 0 0.00 0
+phiX174:4686 0 0.00 0
+phiX174:4687 0 0.00 0
+phiX174:4688 0 0.00 0
+phiX174:4689 0 0.00 0
+phiX174:4690 0 0.00 0
+phiX174:4691 0 0.00 0
+phiX174:4692 0 0.00 0
+phiX174:4693 0 0.00 0
+phiX174:4694 0 0.00 0
+phiX174:4695 0 0.00 0
+phiX174:4696 0 0.00 0
+phiX174:4697 0 0.00 0
+phiX174:4698 0 0.00 0
+phiX174:4699 0 0.00 0
+phiX174:4700 0 0.00 0
+phiX174:4701 0 0.00 0
+phiX174:4702 0 0.00 0
+phiX174:4703 0 0.00 0
+phiX174:4704 0 0.00 0
+phiX174:4705 0 0.00 0
+phiX174:4706 0 0.00 0
+phiX174:4707 0 0.00 0
+phiX174:4708 0 0.00 0
+phiX174:4709 0 0.00 0
+phiX174:4710 0 0.00 0
+phiX174:4711 0 0.00 0
+phiX174:4712 0 0.00 0
+phiX174:4713 0 0.00 0
+phiX174:4714 0 0.00 0
+phiX174:4715 0 0.00 0
+phiX174:4716 0 0.00 0
+phiX174:4717 0 0.00 0
+phiX174:4718 0 0.00 0
+phiX174:4719 0 0.00 0
+phiX174:4720 0 0.00 0
+phiX174:4721 0 0.00 0
+phiX174:4722 0 0.00 0
+phiX174:4723 0 0.00 0
+phiX174:4724 0 0.00 0
+phiX174:4725 0 0.00 0
+phiX174:4726 0 0.00 0
+phiX174:4727 0 0.00 0
+phiX174:4728 0 0.00 0
+phiX174:4729 0 0.00 0
+phiX174:4730 0 0.00 0
+phiX174:4731 0 0.00 0
+phiX174:4732 0 0.00 0
+phiX174:4733 0 0.00 0
+phiX174:4734 0 0.00 0
+phiX174:4735 0 0.00 0
+phiX174:4736 0 0.00 0
+phiX174:4737 0 0.00 0
+phiX174:4738 0 0.00 0
+phiX174:4739 0 0.00 0
+phiX174:4740 0 0.00 0
+phiX174:4741 0 0.00 0
+phiX174:4742 0 0.00 0
+phiX174:4743 0 0.00 0
+phiX174:4744 0 0.00 0
+phiX174:4745 0 0.00 0
+phiX174:4746 0 0.00 0
+phiX174:4747 0 0.00 0
+phiX174:4748 0 0.00 0
+phiX174:4749 0 0.00 0
+phiX174:4750 0 0.00 0
+phiX174:4751 0 0.00 0
+phiX174:4752 0 0.00 0
+phiX174:4753 0 0.00 0
+phiX174:4754 0 0.00 0
+phiX174:4755 0 0.00 0
+phiX174:4756 0 0.00 0
+phiX174:4757 0 0.00 0
+phiX174:4758 0 0.00 0
+phiX174:4759 0 0.00 0
+phiX174:4760 0 0.00 0
+phiX174:4761 0 0.00 0
+phiX174:4762 0 0.00 0
+phiX174:4763 0 0.00 0
+phiX174:4764 0 0.00 0
+phiX174:4765 0 0.00 0
+phiX174:4766 0 0.00 0
+phiX174:4767 0 0.00 0
+phiX174:4768 0 0.00 0
+phiX174:4769 0 0.00 0
+phiX174:4770 0 0.00 0
+phiX174:4771 0 0.00 0
+phiX174:4772 0 0.00 0
+phiX174:4773 0 0.00 0
+phiX174:4774 0 0.00 0
+phiX174:4775 0 0.00 0
+phiX174:4776 0 0.00 0
+phiX174:4777 0 0.00 0
+phiX174:4778 0 0.00 0
+phiX174:4779 0 0.00 0
+phiX174:4780 0 0.00 0
+phiX174:4781 0 0.00 0
+phiX174:4782 0 0.00 0
+phiX174:4783 0 0.00 0
+phiX174:4784 0 0.00 0
+phiX174:4785 0 0.00 0
+phiX174:4786 0 0.00 0
+phiX174:4787 0 0.00 0
+phiX174:4788 0 0.00 0
+phiX174:4789 0 0.00 0
+phiX174:4790 0 0.00 0
+phiX174:4791 0 0.00 0
+phiX174:4792 0 0.00 0
+phiX174:4793 0 0.00 0
+phiX174:4794 0 0.00 0
+phiX174:4795 0 0.00 0
+phiX174:4796 0 0.00 0
+phiX174:4797 0 0.00 0
+phiX174:4798 0 0.00 0
+phiX174:4799 0 0.00 0
+phiX174:4800 0 0.00 0
+phiX174:4801 0 0.00 0
+phiX174:4802 0 0.00 0
+phiX174:4803 0 0.00 0
+phiX174:4804 0 0.00 0
+phiX174:4805 0 0.00 0
+phiX174:4806 0 0.00 0
+phiX174:4807 0 0.00 0
+phiX174:4808 0 0.00 0
+phiX174:4809 0 0.00 0
+phiX174:4810 0 0.00 0
+phiX174:4811 0 0.00 0
+phiX174:4812 0 0.00 0
+phiX174:4813 0 0.00 0
+phiX174:4814 0 0.00 0
+phiX174:4815 0 0.00 0
+phiX174:4816 0 0.00 0
+phiX174:4817 0 0.00 0
+phiX174:4818 0 0.00 0
+phiX174:4819 0 0.00 0
+phiX174:4820 0 0.00 0
+phiX174:4821 0 0.00 0
+phiX174:4822 0 0.00 0
+phiX174:4823 0 0.00 0
+phiX174:4824 0 0.00 0
+phiX174:4825 0 0.00 0
+phiX174:4826 0 0.00 0
+phiX174:4827 0 0.00 0
+phiX174:4828 0 0.00 0
+phiX174:4829 0 0.00 0
+phiX174:4830 0 0.00 0
+phiX174:4831 0 0.00 0
+phiX174:4832 0 0.00 0
+phiX174:4833 0 0.00 0
+phiX174:4834 0 0.00 0
+phiX174:4835 0 0.00 0
+phiX174:4836 0 0.00 0
+phiX174:4837 0 0.00 0
+phiX174:4838 0 0.00 0
+phiX174:4839 0 0.00 0
+phiX174:4840 0 0.00 0
+phiX174:4841 0 0.00 0
+phiX174:4842 0 0.00 0
+phiX174:4843 0 0.00 0
+phiX174:4844 0 0.00 0
+phiX174:4845 0 0.00 0
+phiX174:4846 0 0.00 0
+phiX174:4847 0 0.00 0
+phiX174:4848 0 0.00 0
+phiX174:4849 0 0.00 0
+phiX174:4850 0 0.00 0
+phiX174:4851 0 0.00 0
+phiX174:4852 0 0.00 0
+phiX174:4853 0 0.00 0
+phiX174:4854 0 0.00 0
+phiX174:4855 0 0.00 0
+phiX174:4856 0 0.00 0
+phiX174:4857 0 0.00 0
+phiX174:4858 0 0.00 0
+phiX174:4859 0 0.00 0
+phiX174:4860 0 0.00 0
+phiX174:4861 0 0.00 0
+phiX174:4862 0 0.00 0
+phiX174:4863 0 0.00 0
+phiX174:4864 0 0.00 0
+phiX174:4865 0 0.00 0
+phiX174:4866 0 0.00 0
+phiX174:4867 0 0.00 0
+phiX174:4868 0 0.00 0
+phiX174:4869 0 0.00 0
+phiX174:4870 0 0.00 0
+phiX174:4871 0 0.00 0
+phiX174:4872 0 0.00 0
+phiX174:4873 0 0.00 0
+phiX174:4874 0 0.00 0
+phiX174:4875 0 0.00 0
+phiX174:4876 0 0.00 0
+phiX174:4877 0 0.00 0
+phiX174:4878 0 0.00 0
+phiX174:4879 0 0.00 0
+phiX174:4880 0 0.00 0
+phiX174:4881 0 0.00 0
+phiX174:4882 0 0.00 0
+phiX174:4883 0 0.00 0
+phiX174:4884 0 0.00 0
+phiX174:4885 0 0.00 0
+phiX174:4886 0 0.00 0
+phiX174:4887 0 0.00 0
+phiX174:4888 0 0.00 0
+phiX174:4889 0 0.00 0
+phiX174:4890 0 0.00 0
+phiX174:4891 0 0.00 0
+phiX174:4892 0 0.00 0
+phiX174:4893 0 0.00 0
+phiX174:4894 0 0.00 0
+phiX174:4895 0 0.00 0
+phiX174:4896 0 0.00 0
+phiX174:4897 0 0.00 0
+phiX174:4898 0 0.00 0
+phiX174:4899 0 0.00 0
+phiX174:4900 0 0.00 0
+phiX174:4901 0 0.00 0
+phiX174:4902 0 0.00 0
+phiX174:4903 0 0.00 0
+phiX174:4904 0 0.00 0
+phiX174:4905 0 0.00 0
+phiX174:4906 0 0.00 0
+phiX174:4907 0 0.00 0
+phiX174:4908 0 0.00 0
+phiX174:4909 0 0.00 0
+phiX174:4910 0 0.00 0
+phiX174:4911 0 0.00 0
+phiX174:4912 0 0.00 0
+phiX174:4913 0 0.00 0
+phiX174:4914 0 0.00 0
+phiX174:4915 0 0.00 0
+phiX174:4916 0 0.00 0
+phiX174:4917 0 0.00 0
+phiX174:4918 0 0.00 0
+phiX174:4919 0 0.00 0
+phiX174:4920 0 0.00 0
+phiX174:4921 0 0.00 0
+phiX174:4922 0 0.00 0
+phiX174:4923 0 0.00 0
+phiX174:4924 0 0.00 0
+phiX174:4925 0 0.00 0
+phiX174:4926 0 0.00 0
+phiX174:4927 0 0.00 0
+phiX174:4928 0 0.00 0
+phiX174:4929 0 0.00 0
+phiX174:4930 0 0.00 0
+phiX174:4931 0 0.00 0
+phiX174:4932 0 0.00 0
+phiX174:4933 0 0.00 0
+phiX174:4934 0 0.00 0
+phiX174:4935 0 0.00 0
+phiX174:4936 0 0.00 0
+phiX174:4937 0 0.00 0
+phiX174:4938 0 0.00 0
+phiX174:4939 0 0.00 0
+phiX174:4940 0 0.00 0
+phiX174:4941 0 0.00 0
+phiX174:4942 0 0.00 0
+phiX174:4943 0 0.00 0
+phiX174:4944 0 0.00 0
+phiX174:4945 0 0.00 0
+phiX174:4946 0 0.00 0
+phiX174:4947 0 0.00 0
+phiX174:4948 0 0.00 0
+phiX174:4949 0 0.00 0
+phiX174:4950 0 0.00 0
+phiX174:4951 0 0.00 0
+phiX174:4952 0 0.00 0
+phiX174:4953 0 0.00 0
+phiX174:4954 0 0.00 0
+phiX174:4955 0 0.00 0
+phiX174:4956 0 0.00 0
+phiX174:4957 0 0.00 0
+phiX174:4958 0 0.00 0
+phiX174:4959 0 0.00 0
+phiX174:4960 0 0.00 0
+phiX174:4961 0 0.00 0
+phiX174:4962 0 0.00 0
+phiX174:4963 0 0.00 0
+phiX174:4964 0 0.00 0
+phiX174:4965 0 0.00 0
+phiX174:4966 0 0.00 0
+phiX174:4967 0 0.00 0
+phiX174:4968 0 0.00 0
+phiX174:4969 0 0.00 0
+phiX174:4970 0 0.00 0
+phiX174:4971 0 0.00 0
+phiX174:4972 0 0.00 0
+phiX174:4973 0 0.00 0
+phiX174:4974 0 0.00 0
+phiX174:4975 0 0.00 0
+phiX174:4976 0 0.00 0
+phiX174:4977 0 0.00 0
+phiX174:4978 0 0.00 0
+phiX174:4979 0 0.00 0
+phiX174:4980 0 0.00 0
+phiX174:4981 0 0.00 0
+phiX174:4982 0 0.00 0
+phiX174:4983 0 0.00 0
+phiX174:4984 0 0.00 0
+phiX174:4985 0 0.00 0
+phiX174:4986 0 0.00 0
+phiX174:4987 0 0.00 0
+phiX174:4988 0 0.00 0
+phiX174:4989 0 0.00 0
+phiX174:4990 0 0.00 0
+phiX174:4991 0 0.00 0
+phiX174:4992 0 0.00 0
+phiX174:4993 0 0.00 0
+phiX174:4994 0 0.00 0
+phiX174:4995 0 0.00 0
+phiX174:4996 0 0.00 0
+phiX174:4997 0 0.00 0
+phiX174:4998 0 0.00 0
+phiX174:4999 0 0.00 0
+phiX174:5000 0 0.00 0
+phiX174:5001 0 0.00 0
+phiX174:5002 0 0.00 0
+phiX174:5003 0 0.00 0
+phiX174:5004 0 0.00 0
+phiX174:5005 0 0.00 0
+phiX174:5006 0 0.00 0
+phiX174:5007 0 0.00 0
+phiX174:5008 0 0.00 0
+phiX174:5009 0 0.00 0
+phiX174:5010 0 0.00 0
+phiX174:5011 0 0.00 0
+phiX174:5012 0 0.00 0
+phiX174:5013 0 0.00 0
+phiX174:5014 0 0.00 0
+phiX174:5015 0 0.00 0
+phiX174:5016 0 0.00 0
+phiX174:5017 0 0.00 0
+phiX174:5018 0 0.00 0
+phiX174:5019 0 0.00 0
+phiX174:5020 0 0.00 0
+phiX174:5021 0 0.00 0
+phiX174:5022 0 0.00 0
+phiX174:5023 0 0.00 0
+phiX174:5024 0 0.00 0
+phiX174:5025 0 0.00 0
+phiX174:5026 0 0.00 0
+phiX174:5027 0 0.00 0
+phiX174:5028 0 0.00 0
+phiX174:5029 0 0.00 0
+phiX174:5030 0 0.00 0
+phiX174:5031 0 0.00 0
+phiX174:5032 0 0.00 0
+phiX174:5033 0 0.00 0
+phiX174:5034 0 0.00 0
+phiX174:5035 0 0.00 0
+phiX174:5036 0 0.00 0
+phiX174:5037 0 0.00 0
+phiX174:5038 0 0.00 0
+phiX174:5039 0 0.00 0
+phiX174:5040 0 0.00 0
+phiX174:5041 0 0.00 0
+phiX174:5042 0 0.00 0
+phiX174:5043 0 0.00 0
+phiX174:5044 0 0.00 0
+phiX174:5045 0 0.00 0
+phiX174:5046 0 0.00 0
+phiX174:5047 0 0.00 0
+phiX174:5048 0 0.00 0
+phiX174:5049 0 0.00 0
+phiX174:5050 0 0.00 0
+phiX174:5051 0 0.00 0
+phiX174:5052 0 0.00 0
+phiX174:5053 0 0.00 0
+phiX174:5054 0 0.00 0
+phiX174:5055 0 0.00 0
+phiX174:5056 0 0.00 0
+phiX174:5057 0 0.00 0
+phiX174:5058 0 0.00 0
+phiX174:5059 0 0.00 0
+phiX174:5060 0 0.00 0
+phiX174:5061 0 0.00 0
+phiX174:5062 0 0.00 0
+phiX174:5063 0 0.00 0
+phiX174:5064 0 0.00 0
+phiX174:5065 0 0.00 0
+phiX174:5066 0 0.00 0
+phiX174:5067 0 0.00 0
+phiX174:5068 0 0.00 0
+phiX174:5069 0 0.00 0
+phiX174:5070 0 0.00 0
+phiX174:5071 0 0.00 0
+phiX174:5072 0 0.00 0
+phiX174:5073 0 0.00 0
+phiX174:5074 0 0.00 0
+phiX174:5075 0 0.00 0
+phiX174:5076 0 0.00 0
+phiX174:5077 0 0.00 0
+phiX174:5078 0 0.00 0
+phiX174:5079 0 0.00 0
+phiX174:5080 0 0.00 0
+phiX174:5081 0 0.00 0
+phiX174:5082 0 0.00 0
+phiX174:5083 0 0.00 0
+phiX174:5084 0 0.00 0
+phiX174:5085 0 0.00 0
+phiX174:5086 0 0.00 0
+phiX174:5087 0 0.00 0
+phiX174:5088 0 0.00 0
+phiX174:5089 0 0.00 0
+phiX174:5090 0 0.00 0
+phiX174:5091 0 0.00 0
+phiX174:5092 0 0.00 0
+phiX174:5093 0 0.00 0
+phiX174:5094 0 0.00 0
+phiX174:5095 0 0.00 0
+phiX174:5096 0 0.00 0
+phiX174:5097 0 0.00 0
+phiX174:5098 0 0.00 0
+phiX174:5099 0 0.00 0
+phiX174:5100 0 0.00 0
+phiX174:5101 0 0.00 0
+phiX174:5102 0 0.00 0
+phiX174:5103 0 0.00 0
+phiX174:5104 0 0.00 0
+phiX174:5105 0 0.00 0
+phiX174:5106 0 0.00 0
+phiX174:5107 0 0.00 0
+phiX174:5108 0 0.00 0
+phiX174:5109 0 0.00 0
+phiX174:5110 0 0.00 0
+phiX174:5111 0 0.00 0
+phiX174:5112 0 0.00 0
+phiX174:5113 0 0.00 0
+phiX174:5114 0 0.00 0
+phiX174:5115 0 0.00 0
+phiX174:5116 0 0.00 0
+phiX174:5117 0 0.00 0
+phiX174:5118 0 0.00 0
+phiX174:5119 0 0.00 0
+phiX174:5120 0 0.00 0
+phiX174:5121 0 0.00 0
+phiX174:5122 0 0.00 0
+phiX174:5123 0 0.00 0
+phiX174:5124 0 0.00 0
+phiX174:5125 0 0.00 0
+phiX174:5126 0 0.00 0
+phiX174:5127 0 0.00 0
+phiX174:5128 0 0.00 0
+phiX174:5129 0 0.00 0
+phiX174:5130 0 0.00 0
+phiX174:5131 0 0.00 0
+phiX174:5132 0 0.00 0
+phiX174:5133 0 0.00 0
+phiX174:5134 0 0.00 0
+phiX174:5135 0 0.00 0
+phiX174:5136 0 0.00 0
+phiX174:5137 0 0.00 0
+phiX174:5138 0 0.00 0
+phiX174:5139 0 0.00 0
+phiX174:5140 0 0.00 0
+phiX174:5141 0 0.00 0
+phiX174:5142 0 0.00 0
+phiX174:5143 0 0.00 0
+phiX174:5144 0 0.00 0
+phiX174:5145 0 0.00 0
+phiX174:5146 0 0.00 0
+phiX174:5147 0 0.00 0
+phiX174:5148 0 0.00 0
+phiX174:5149 0 0.00 0
+phiX174:5150 0 0.00 0
+phiX174:5151 0 0.00 0
+phiX174:5152 0 0.00 0
+phiX174:5153 0 0.00 0
+phiX174:5154 0 0.00 0
+phiX174:5155 0 0.00 0
+phiX174:5156 0 0.00 0
+phiX174:5157 0 0.00 0
+phiX174:5158 0 0.00 0
+phiX174:5159 0 0.00 0
+phiX174:5160 0 0.00 0
+phiX174:5161 0 0.00 0
+phiX174:5162 0 0.00 0
+phiX174:5163 0 0.00 0
+phiX174:5164 0 0.00 0
+phiX174:5165 0 0.00 0
+phiX174:5166 0 0.00 0
+phiX174:5167 0 0.00 0
+phiX174:5168 0 0.00 0
+phiX174:5169 0 0.00 0
+phiX174:5170 0 0.00 0
+phiX174:5171 0 0.00 0
+phiX174:5172 0 0.00 0
+phiX174:5173 0 0.00 0
+phiX174:5174 0 0.00 0
+phiX174:5175 0 0.00 0
+phiX174:5176 0 0.00 0
+phiX174:5177 0 0.00 0
+phiX174:5178 0 0.00 0
+phiX174:5179 0 0.00 0
+phiX174:5180 0 0.00 0
+phiX174:5181 0 0.00 0
+phiX174:5182 0 0.00 0
+phiX174:5183 0 0.00 0
+phiX174:5184 0 0.00 0
+phiX174:5185 0 0.00 0
+phiX174:5186 0 0.00 0
+phiX174:5187 0 0.00 0
+phiX174:5188 0 0.00 0
+phiX174:5189 0 0.00 0
+phiX174:5190 0 0.00 0
+phiX174:5191 0 0.00 0
+phiX174:5192 0 0.00 0
+phiX174:5193 0 0.00 0
+phiX174:5194 0 0.00 0
+phiX174:5195 0 0.00 0
+phiX174:5196 0 0.00 0
+phiX174:5197 0 0.00 0
+phiX174:5198 0 0.00 0
+phiX174:5199 0 0.00 0
+phiX174:5200 0 0.00 0
+phiX174:5201 0 0.00 0
+phiX174:5202 0 0.00 0
+phiX174:5203 0 0.00 0
+phiX174:5204 0 0.00 0
+phiX174:5205 0 0.00 0
+phiX174:5206 0 0.00 0
+phiX174:5207 0 0.00 0
+phiX174:5208 0 0.00 0
+phiX174:5209 0 0.00 0
+phiX174:5210 0 0.00 0
+phiX174:5211 0 0.00 0
+phiX174:5212 0 0.00 0
+phiX174:5213 0 0.00 0
+phiX174:5214 0 0.00 0
+phiX174:5215 0 0.00 0
+phiX174:5216 0 0.00 0
+phiX174:5217 0 0.00 0
+phiX174:5218 0 0.00 0
+phiX174:5219 0 0.00 0
+phiX174:5220 0 0.00 0
+phiX174:5221 0 0.00 0
+phiX174:5222 0 0.00 0
+phiX174:5223 0 0.00 0
+phiX174:5224 0 0.00 0
+phiX174:5225 0 0.00 0
+phiX174:5226 0 0.00 0
+phiX174:5227 0 0.00 0
+phiX174:5228 0 0.00 0
+phiX174:5229 0 0.00 0
+phiX174:5230 0 0.00 0
+phiX174:5231 0 0.00 0
+phiX174:5232 0 0.00 0
+phiX174:5233 0 0.00 0
+phiX174:5234 0 0.00 0
+phiX174:5235 0 0.00 0
+phiX174:5236 0 0.00 0
+phiX174:5237 0 0.00 0
+phiX174:5238 0 0.00 0
+phiX174:5239 0 0.00 0
+phiX174:5240 0 0.00 0
+phiX174:5241 0 0.00 0
+phiX174:5242 0 0.00 0
+phiX174:5243 0 0.00 0
+phiX174:5244 0 0.00 0
+phiX174:5245 0 0.00 0
+phiX174:5246 0 0.00 0
+phiX174:5247 0 0.00 0
+phiX174:5248 0 0.00 0
+phiX174:5249 0 0.00 0
+phiX174:5250 0 0.00 0
+phiX174:5251 0 0.00 0
+phiX174:5252 0 0.00 0
+phiX174:5253 0 0.00 0
+phiX174:5254 0 0.00 0
+phiX174:5255 0 0.00 0
+phiX174:5256 0 0.00 0
+phiX174:5257 0 0.00 0
+phiX174:5258 0 0.00 0
+phiX174:5259 0 0.00 0
+phiX174:5260 0 0.00 0
+phiX174:5261 0 0.00 0
+phiX174:5262 0 0.00 0
+phiX174:5263 0 0.00 0
+phiX174:5264 0 0.00 0
+phiX174:5265 0 0.00 0
+phiX174:5266 0 0.00 0
+phiX174:5267 0 0.00 0
+phiX174:5268 0 0.00 0
+phiX174:5269 0 0.00 0
+phiX174:5270 0 0.00 0
+phiX174:5271 0 0.00 0
+phiX174:5272 0 0.00 0
+phiX174:5273 0 0.00 0
+phiX174:5274 0 0.00 0
+phiX174:5275 0 0.00 0
+phiX174:5276 0 0.00 0
+phiX174:5277 0 0.00 0
+phiX174:5278 0 0.00 0
+phiX174:5279 0 0.00 0
+phiX174:5280 0 0.00 0
+phiX174:5281 0 0.00 0
+phiX174:5282 0 0.00 0
+phiX174:5283 0 0.00 0
+phiX174:5284 0 0.00 0
+phiX174:5285 0 0.00 0
+phiX174:5286 0 0.00 0
+phiX174:5287 0 0.00 0
+phiX174:5288 0 0.00 0
+phiX174:5289 0 0.00 0
+phiX174:5290 0 0.00 0
+phiX174:5291 0 0.00 0
+phiX174:5292 0 0.00 0
+phiX174:5293 0 0.00 0
+phiX174:5294 0 0.00 0
+phiX174:5295 0 0.00 0
+phiX174:5296 0 0.00 0
+phiX174:5297 0 0.00 0
+phiX174:5298 0 0.00 0
+phiX174:5299 0 0.00 0
+phiX174:5300 0 0.00 0
+phiX174:5301 0 0.00 0
+phiX174:5302 0 0.00 0
+phiX174:5303 0 0.00 0
+phiX174:5304 0 0.00 0
+phiX174:5305 0 0.00 0
+phiX174:5306 0 0.00 0
+phiX174:5307 0 0.00 0
+phiX174:5308 0 0.00 0
+phiX174:5309 0 0.00 0
+phiX174:5310 0 0.00 0
+phiX174:5311 0 0.00 0
+phiX174:5312 0 0.00 0
+phiX174:5313 0 0.00 0
+phiX174:5314 0 0.00 0
+phiX174:5315 0 0.00 0
+phiX174:5316 0 0.00 0
+phiX174:5317 0 0.00 0
+phiX174:5318 0 0.00 0
+phiX174:5319 0 0.00 0
+phiX174:5320 0 0.00 0
+phiX174:5321 0 0.00 0
+phiX174:5322 0 0.00 0
+phiX174:5323 0 0.00 0
+phiX174:5324 0 0.00 0
+phiX174:5325 0 0.00 0
+phiX174:5326 0 0.00 0
+phiX174:5327 0 0.00 0
+phiX174:5328 0 0.00 0
+phiX174:5329 0 0.00 0
+phiX174:5330 0 0.00 0
+phiX174:5331 0 0.00 0
+phiX174:5332 0 0.00 0
+phiX174:5333 0 0.00 0
+phiX174:5334 0 0.00 0
+phiX174:5335 0 0.00 0
+phiX174:5336 0 0.00 0
+phiX174:5337 0 0.00 0
+phiX174:5338 0 0.00 0
+phiX174:5339 0 0.00 0
+phiX174:5340 0 0.00 0
+phiX174:5341 0 0.00 0
+phiX174:5342 0 0.00 0
+phiX174:5343 0 0.00 0
+phiX174:5344 0 0.00 0
+phiX174:5345 0 0.00 0
+phiX174:5346 0 0.00 0
+phiX174:5347 0 0.00 0
+phiX174:5348 0 0.00 0
+phiX174:5349 0 0.00 0
+phiX174:5350 0 0.00 0
+phiX174:5351 0 0.00 0
+phiX174:5352 0 0.00 0
+phiX174:5353 0 0.00 0
+phiX174:5354 0 0.00 0
+phiX174:5355 0 0.00 0
+phiX174:5356 0 0.00 0
+phiX174:5357 0 0.00 0
+phiX174:5358 0 0.00 0
+phiX174:5359 0 0.00 0
+phiX174:5360 0 0.00 0
+phiX174:5361 0 0.00 0
+phiX174:5362 0 0.00 0
+phiX174:5363 0 0.00 0
+phiX174:5364 0 0.00 0
+phiX174:5365 0 0.00 0
+phiX174:5366 0 0.00 0
+phiX174:5367 0 0.00 0
+phiX174:5368 0 0.00 0
+phiX174:5369 0 0.00 0
+phiX174:5370 0 0.00 0
+phiX174:5371 0 0.00 0
+phiX174:5372 0 0.00 0
+phiX174:5373 0 0.00 0
+phiX174:5374 0 0.00 0
+phiX174:5375 0 0.00 0
+phiX174:5376 0 0.00 0
+phiX174:5377 0 0.00 0
+phiX174:5378 0 0.00 0
+phiX174:5379 0 0.00 0
+phiX174:5380 0 0.00 0
+phiX174:5381 0 0.00 0
+phiX174:5382 0 0.00 0
+phiX174:5383 0 0.00 0
+phiX174:5384 0 0.00 0
+phiX174:5385 0 0.00 0
+phiX174:5386 0 0.00 0
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_statistics_sample.tabular
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_statistics_sample.tabular
@@ -0,0 +1,2 @@
+Source_of_reads from_0_to_1) from_1_to_2) from_2_to_3) from_3_to_4) from_4_to_5) from_5_to_6) from_6_to_7) from_7_to_8) from_8_to_9) from_9_to_10) from_10_to_11) from_11_to_12) from_12_to_13) from_13_to_14) from_14_to_15) from_15_to_16) from_16_to_17) from_17_to_18) from_18_to_19) from_19_to_20) from_20_to_21) from_21_to_22) from_22_to_23) from_23_to_24) from_24_to_25) from_25_to_26) from_26_to_27) from_27_to_28) from_28_to_29) from_29_to_30) from_30_to_31) from_31_to_32) from_32_to_33) from_33_to_34) from_34_to_35) from_35_to_36) from_36_to_37) from_37_to_38) from_38_to_39) from_39_to_40) from_40_to_41) from_41_to_42) from_42_to_43) from_43_to_44) from_44_to_45) from_45_to_46) from_46_to_47) from_47_to_48) from_48_to_49) from_49_to_50) from_50_to_51) from_51_to_52) from_52_to_53) from_53_to_54) from_54_to_55) from_55_to_56) from_56_to_57) from_57_to_58) from_58_to_59) from_59_to_60) from_60_to_61) from_61_to_62) from_62_to_63) from_63_to_64) from_64_to_65) from_65_to_66) from_66_to_67) from_67_to_68) from_68_to_69) from_69_to_70) from_70_to_71) from_71_to_72) from_72_to_73) from_73_to_74) from_74_to_75) from_75_to_76) from_76_to_77) from_77_to_78) from_78_to_79) from_79_to_80) from_80_to_81) from_81_to_82) from_82_to_83) from_83_to_84) from_84_to_85) from_85_to_86) from_86_to_87) from_87_to_88) from_88_to_89) from_89_to_90) from_90_to_91) from_91_to_92) from_92_to_93) from_93_to_94) from_94_to_95) from_95_to_96) from_96_to_97) from_97_to_98) from_98_to_99) from_99_to_100) from_100_to_101) from_101_to_102) from_102_to_103) from_103_to_104) from_104_to_105) from_105_to_106) from_106_to_107) from_107_to_108) from_108_to_109) from_109_to_110) from_110_to_111) from_111_to_112) from_112_to_113) from_113_to_114) from_114_to_115) from_115_to_116) from_116_to_117) from_117_to_118) from_118_to_119) from_119_to_120) from_120_to_121) from_121_to_122) from_122_to_123) from_123_to_124) from_124_to_125) from_125_to_126) from_126_to_127) from_127_to_128) from_128_to_129) from_129_to_130) from_130_to_131) from_131_to_132) from_132_to_133) from_133_to_134) from_134_to_135) from_135_to_136) from_136_to_137) from_137_to_138) from_138_to_139) from_139_to_140) from_140_to_141) from_141_to_142) from_142_to_143) from_143_to_144) from_144_to_145) from_145_to_146) from_146_to_147) from_147_to_148) from_148_to_149) from_149_to_150) from_150_to_151) from_151_to_152) from_152_to_153) from_153_to_154) from_154_to_155) from_155_to_156) from_156_to_157) from_157_to_158) from_158_to_159) from_159_to_160) from_160_to_161) from_161_to_162) from_162_to_163) from_163_to_164) from_164_to_165) from_165_to_166) from_166_to_167) from_167_to_168) from_168_to_169) from_169_to_170) from_170_to_171) from_171_to_172) from_172_to_173) from_173_to_174) from_174_to_175) from_175_to_176) from_176_to_177) from_177_to_178) from_178_to_179) from_179_to_180) from_180_to_181) from_181_to_182) from_182_to_183) from_183_to_184) from_184_to_185) from_185_to_186) from_186_to_187) from_187_to_188) from_188_to_189) from_189_to_190) from_190_to_191) from_191_to_192) from_192_to_193) from_193_to_194) from_194_to_195) from_195_to_196) from_196_to_197) from_197_to_198) from_198_to_199) from_199_to_200) from_200_to_201) from_201_to_202) from_202_to_203) from_203_to_204) from_204_to_205) from_205_to_206) from_206_to_207) from_207_to_208) from_208_to_209) from_209_to_210) from_210_to_211) from_211_to_212) from_212_to_213) from_213_to_214) from_214_to_215) from_215_to_216) from_216_to_217) from_217_to_218) from_218_to_219) from_219_to_220) from_220_to_221) from_221_to_222) from_222_to_223) from_223_to_224) from_224_to_225) from_225_to_226) from_226_to_227) from_227_to_228) from_228_to_229) from_229_to_230) from_230_to_231) from_231_to_232) from_232_to_233) from_233_to_234) from_234_to_235) from_235_to_236) from_236_to_237) from_237_to_238) from_238_to_239) from_239_to_240) from_240_to_241) from_241_to_242) from_242_to_243) from_243_to_244) from_244_to_245) from_245_to_246) from_246_to_247) from_247_to_248) from_248_to_249) from_249_to_250) from_250_to_251) from_251_to_252) from_252_to_253) from_253_to_254) from_254_to_255) from_255_to_256) from_256_to_257) from_257_to_258) from_258_to_259) from_259_to_260) from_260_to_261) from_261_to_262) from_262_to_263) from_263_to_264) from_264_to_265) from_265_to_266) from_266_to_267) from_267_to_268) from_268_to_269) from_269_to_270) from_270_to_271) from_271_to_272) from_272_to_273) from_273_to_274) from_274_to_275) from_275_to_276) from_276_to_277) from_277_to_278) from_278_to_279) from_279_to_280) from_280_to_281) from_281_to_282) from_282_to_283) from_283_to_284) from_284_to_285) from_285_to_286) from_286_to_287) from_287_to_288) from_288_to_289) from_289_to_290) from_290_to_291) from_291_to_292) from_292_to_293) from_293_to_294) from_294_to_295) from_295_to_296) from_296_to_297) from_297_to_298) from_298_to_299) from_299_to_300) from_300_to_301) from_301_to_302) from_302_to_303) from_303_to_304) from_304_to_305) from_305_to_306) from_306_to_307) from_307_to_308) from_308_to_309) from_309_to_310) from_310_to_311) from_311_to_312) from_312_to_313) from_313_to_314) from_314_to_315) from_315_to_316) from_316_to_317) from_317_to_318) from_318_to_319) from_319_to_320) from_320_to_321) from_321_to_322) from_322_to_323) from_323_to_324) from_324_to_325) from_325_to_326) from_326_to_327) from_327_to_328) from_328_to_329) from_329_to_330) from_330_to_331) from_331_to_332) from_332_to_333) from_333_to_334) from_334_to_335) from_335_to_336) from_336_to_337) from_337_to_338) from_338_to_339) from_339_to_340) from_340_to_341) from_341_to_342) from_342_to_343) from_343_to_344) from_344_to_345) from_345_to_346) from_346_to_347) from_347_to_348) from_348_to_349) from_349_to_350) from_350_to_351) from_351_to_352) from_352_to_353) from_353_to_354) from_354_to_355) from_355_to_356) from_356_to_357) from_357_to_358) from_358_to_359) from_359_to_360) from_360_to_361) from_361_to_362) from_362_to_363) from_363_to_364) from_364_to_365) from_365_to_366) from_366_to_367) from_367_to_368) from_368_to_369) from_369_to_370) from_370_to_371) from_371_to_372) from_372_to_373) from_373_to_374) from_374_to_375) from_375_to_376) from_376_to_377) from_377_to_378) from_378_to_379) from_379_to_380) from_380_to_381) from_381_to_382) from_382_to_383) from_383_to_384) from_384_to_385) from_385_to_386) from_386_to_387) from_387_to_388) from_388_to_389) from_389_to_390) from_390_to_391) from_391_to_392) from_392_to_393) from_393_to_394) from_394_to_395) from_395_to_396) from_396_to_397) from_397_to_398) from_398_to_399) from_399_to_400) from_400_to_401) from_401_to_402) from_402_to_403) from_403_to_404) from_404_to_405) from_405_to_406) from_406_to_407) from_407_to_408) from_408_to_409) from_409_to_410) from_410_to_411) from_411_to_412) from_412_to_413) from_413_to_414) from_414_to_415) from_415_to_416) from_416_to_417) from_417_to_418) from_418_to_419) from_419_to_420) from_420_to_421) from_421_to_422) from_422_to_423) from_423_to_424) from_424_to_425) from_425_to_426) from_426_to_427) from_427_to_428) from_428_to_429) from_429_to_430) from_430_to_431) from_431_to_432) from_432_to_433) from_433_to_434) from_434_to_435) from_435_to_436) from_436_to_437) from_437_to_438) from_438_to_439) from_439_to_440) from_440_to_441) from_441_to_442) from_442_to_443) from_443_to_444) from_444_to_445) from_445_to_446) from_446_to_447) from_447_to_448) from_448_to_449) from_449_to_450) from_450_to_451) from_451_to_452) from_452_to_453) from_453_to_454) from_454_to_455) from_455_to_456) from_456_to_457) from_457_to_458) from_458_to_459) from_459_to_460) from_460_to_461) from_461_to_462) from_462_to_463) from_463_to_464) from_464_to_465) from_465_to_466) from_466_to_467) from_467_to_468) from_468_to_469) from_469_to_470) from_470_to_471) from_471_to_472) from_472_to_473) from_473_to_474) from_474_to_475) from_475_to_476) from_476_to_477) from_477_to_478) from_478_to_479) from_479_to_480) from_480_to_481) from_481_to_482) from_482_to_483) from_483_to_484) from_484_to_485) from_485_to_486) from_486_to_487) from_487_to_488) from_488_to_489) from_489_to_490) from_490_to_491) from_491_to_492) from_492_to_493) from_493_to_494) from_494_to_495) from_495_to_496) from_496_to_497) from_497_to_498) from_498_to_499) from_499_to_500) from_500_to_inf
+sample_A Fake phiX Sample 5343 2 1 2 1 1 2 2 2 1 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_summary_sample.tabular
--- /dev/null
+++ b/test-data/gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_summary_sample.tabular
@@ -0,0 +1,3 @@
+sample_id total mean granular_third_quartile granular_median granular_first_quartile %_bases_above_15
+A Fake phiX Sample 360 0.07 1 1 1 0.0
+Total 360 0.07 N/A N/A N/A
diff -r 16cf802f921189fd5d2a8cba4a04926065afff1c -r 4e075c43e20fd8f2b8a8015b2830b4b9704b83ec tools/gatk/depth_of_coverage.xml
--- /dev/null
+++ b/tools/gatk/depth_of_coverage.xml
@@ -0,0 +1,923 @@
+<tool id="gatk_depth_of_coverage" name="Depth of Coverage" version="0.0.1">
+ <description>on BAM files</description>
+ <requirements>
+ <requirement type="package" version="1.3">gatk</requirement>
+ </requirements>
+ <command interpreter="python">gatk_wrapper.py
+ --max_jvm_heap_fraction "1"
+ --stdout "${output_log}"
+ #for $i, $input_bam in enumerate( $reference_source.input_bams ):
+ -d "-I" "${input_bam.input_bam}" "${input_bam.input_bam.ext}" "gatk_input_${i}"
+ -d "" "${input_bam.input_bam.metadata.bam_index}" "bam_index" "gatk_input_${i}" ##hardcode galaxy ext type as bam_index
+ #end for
+ -p 'java
+ -jar "${GALAXY_DATA_INDEX_DIR}/shared/jars/gatk/GenomeAnalysisTK.jar"
+ -T "DepthOfCoverage"
+ ##--num_threads 4 ##hard coded, for now
+
+ -et "NO_ET" ##ET no phone home
+ #if $reference_source.reference_source_selector != "history":
+ -R "${reference_source.ref_file.fields.path}"
+ #end if
+ #if str( $input_calculate_coverage_over_genes ) != "None":
+ --calculateCoverageOverGenes "${input_calculate_coverage_over_genes}"
+ #end if
+ #if str( $partition_type ) != "None":
+ #for $pt in str( $partition_type ).split( ',' ):
+ --partitionType "${pt}"
+ #end for
+ #end if
+ --out "${output_per_locus_coverage}"
+
+ #for $ct_group in $summary_coverage_threshold_group:
+ --summaryCoverageThreshold "${ct_group.summary_coverage_threshold}"
+ #end for
+ --outputFormat "${output_format}"
+ '
+
+ ##start standard gatk options
+ #if $gatk_param_type.gatk_param_type_selector == "advanced":
+ #for $sample_metadata in $gatk_param_type.sample_metadata:
+ -p '--sample_metadata "${sample_metadata.sample_metadata_file}"'
+ #end for
+ #for $read_filter in $gatk_param_type.read_filter:
+ -p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
+ ###raise Exception( str( dir( $read_filter ) ) )
+ #for $name, $param in $read_filter.read_filter_type.iteritems():
+ #if $name not in [ "__current_case__", "read_filter_type_selector" ]:
+ --${name} "${param}"
+ #end if
+ #end for
+ '
+ #end for
+ #for $interval_count, $input_intervals in enumerate( $gatk_param_type.input_interval_repeat ):
+ -d "--intervals" "${input_intervals.input_intervals}" "${input_intervals.input_intervals.ext}" "input_intervals_${interval_count}"
+ #end for
+
+ #for $interval_count, $input_intervals in enumerate( $gatk_param_type.input_exclude_interval_repeat ):
+ -d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
+ #end for
+
+ -p '--BTI_merge_rule "${gatk_param_type.BTI_merge_rule}"'
+
+ -p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
+ #if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
+ -p '--${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_type_selector} "${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_value}"'
+ #end if
+ -p '
+ --baq "${gatk_param_type.baq}"
+ --baqGapOpenPenalty "${gatk_param_type.baq_gap_open_penalty}"
+ ${gatk_param_type.use_original_qualities}
+ --defaultBaseQualities "${gatk_param_type.default_base_qualities}"
+ --validation_strictness "${gatk_param_type.validation_strictness}"
+ --interval_merging "${gatk_param_type.interval_merging}"
+ ${gatk_param_type.disable_experimental_low_memory_sharding}
+ ${gatk_param_type.non_deterministic_random_seed}
+ '
+ #for $rg_black_list_count, $rg_black_list in enumerate( $gatk_param_type.read_group_black_list_repeat ):
+ #if $rg_black_list.read_group_black_list_type.read_group_black_list_type_selector == "file":
+ -d "--read_group_black_list" "${rg_black_list.read_group_black_list_type.read_group_black_list}" "txt" "input_read_group_black_list_${rg_black_list_count}"
+ #else
+ -p '--read_group_black_list "${rg_black_list.read_group_black_list_type.read_group_black_list}"'
+ #end if
+ #end for
+ #end if
+
+ #if $reference_source.reference_source_selector == "history":
+ -d "-R" "${reference_source.ref_file}" "${reference_source.ref_file.ext}" "gatk_input"
+ #end if
+ ##end standard gatk options
+ ##start analysis specific options
+ #if $analysis_param_type.analysis_param_type_selector == "advanced":
+ -p '
+ ${analysis_param_type.ignore_deletion_sites}
+ ${analysis_param_type.include_deletions}
+ --maxBaseQuality "${analysis_param_type.max_base_quality}"
+ --maxMappingQuality "${analysis_param_type.max_mapping_quality}"
+ --minBaseQuality "${analysis_param_type.min_base_quality}"
+ --minMappingQuality "${analysis_param_type.min_mapping_quality}"
+ --nBins "${analysis_param_type.n_bins}"
+ ${analysis_param_type.omit_depth_output_at_each_base}
+ ${analysis_param_type.omit_interval_statistics}
+ ${analysis_param_type.omit_locus_table}
+ ${analysis_param_type.omit_per_sample_stats}
+ ${analysis_param_type.print_base_counts}
+ ${analysis_param_type.print_bin_endpoints_and_exit}
+ --start "${analysis_param_type.start}"
+ --stop "${analysis_param_type.stop}"
+ '
+ #end if
+ ##Move additional files to final location
+ #if str( $partition_type ) != "None":
+ #set $partition_types = str( $partition_type ).split( ',' )
+ #else:
+ #set $partition_types = [ 'sample' ]
+ #end if
+ #if 'sample' in $partition_types and ( str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.print_bin_endpoints_and_exit ) == "" ):
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_per_sample_stats ) == "":
+ && mv ${output_per_locus_coverage}.sample_summary ${output_summary_sample}
+ && mv ${output_per_locus_coverage}.sample_statistics ${output_statistics_sample}
+ #end if
+ #if $gatk_param_type.gatk_param_type_selector == "advanced" and len( $gatk_param_type.input_interval_repeat ) and str( $gatk_param_type.omit_interval_statistics ) == "":
+ && mv ${output_per_locus_coverage}.sample_interval_summary ${output_interval_summary_sample}
+ && mv ${output_per_locus_coverage}.sample_interval_statistics ${output_interval_statistics_sample}
+ #end if
+ #if str( $input_calculate_coverage_over_genes ) != "None":
+ && mv ${output_per_locus_coverage}.sample_gene_summary ${output_gene_summary_sample}
+ && mv ${output_per_locus_coverage}.sample_gene_statistics ${output_gene_statistics_sample}
+ #end if
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_depth_output_at_each_base ) == "":
+ && mv ${output_per_locus_coverage}.sample_cumulative_coverage_counts ${output_cumulative_coverage_counts_sample}
+ && mv ${output_per_locus_coverage}.sample_cumulative_coverage_proportions ${output_cumulative_coverage_proportions_sample}
+ #end if
+ #end if
+
+ #if 'readgroup' in $partition_types and ( str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.print_bin_endpoints_and_exit ) == "" ):
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_per_sample_stats ) == "":
+ && mv ${output_per_locus_coverage}.read_group_summary ${output_summary_readgroup}
+ && mv ${output_per_locus_coverage}.read_group_statistics ${output_statistics_readgroup}
+ #end if
+ #if $gatk_param_type.gatk_param_type_selector == "advanced" and len( $gatk_param_type.input_interval_repeat ) and str( $gatk_param_type.omit_interval_statistics ) == "":
+ && mv ${output_per_locus_coverage}.read_group_interval_summary ${output_interval_summary_readgroup}
+ && mv ${output_per_locus_coverage}.read_group_interval_statistics ${output_interval_statistics_readgroup}
+ #end if
+ #if str( $input_calculate_coverage_over_genes ) != "None":
+ && mv ${output_per_locus_coverage}.read_group_gene_summary ${output_gene_summary_readgroup}
+ && mv ${output_per_locus_coverage}.read_group_gene_statistics ${output_gene_statistics_readgroup}
+ #end if
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_depth_output_at_each_base ) == "":
+ && mv ${output_per_locus_coverage}.read_group_cumulative_coverage_counts ${output_cumulative_coverage_counts_readgroup}
+ && mv ${output_per_locus_coverage}.read_group_cumulative_coverage_proportions ${output_cumulative_coverage_proportions_readgroup}
+ #end if
+ #end if
+
+ #if 'library' in $partition_types and ( str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.print_bin_endpoints_and_exit ) == "" ):
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_per_sample_stats ) == "":
+ && mv ${output_per_locus_coverage}.library_summary ${output_summary_library}
+ && mv ${output_per_locus_coverage}.library_statistics ${output_statistics_library}
+ #end if
+ #if $gatk_param_type.gatk_param_type_selector == "advanced" and len( $gatk_param_type.input_interval_repeat ) and str( $gatk_param_type.omit_interval_statistics ) == "":
+ && mv ${output_per_locus_coverage}.library_interval_summary ${output_interval_summary_library}
+ && mv ${output_per_locus_coverage}.library_interval_statistics ${output_interval_statistics_library}
+ #end if
+ #if str( $input_calculate_coverage_over_genes ) != "None":
+ && mv ${output_per_locus_coverage}.library_gene_summary ${output_gene_summary_library}
+ && mv ${output_per_locus_coverage}.library_gene_statistics ${output_gene_statistics_library}
+ #end if
+ #if str( $analysis_param_type.analysis_param_type_selector ) == "basic" or str( $analysis_param_type.omit_depth_output_at_each_base ) == "":
+ && mv ${output_per_locus_coverage}.library_cumulative_coverage_counts ${output_cumulative_coverage_counts_library}
+ && mv ${output_per_locus_coverage}.library_cumulative_coverage_proportions ${output_cumulative_coverage_proportions_library}
+ #end if
+ #end if
+
+
+ </command>
+ <inputs>
+ <conditional name="reference_source">
+ <param name="reference_source_selector" type="select" label="Choose the source for the reference list">
+ <option value="cached">Locally cached</option>
+ <option value="history">History</option>
+ </param>
+ <when value="cached">
+ <repeat name="input_bams" title="BAM file" min="1">
+ <param name="input_bam" type="data" format="bam" label="BAM file">
+ <validator type="unspecified_build" />
+ <validator type="metadata" check="bam_index" message="Metadata missing, click the pencil icon in the history item and use the auto-detect feature to correct this issue."/>
+ <validator type="dataset_metadata_in_data_table" table_name="gatk_picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build." /><!-- fixme!!! this needs to be a select -->
+ </param>
+ </repeat>
+ <param name="ref_file" type="select" label="Using reference genome">
+ <options from_data_table="gatk_picard_indexes">
+ <!-- <filter type="data_meta" key="dbkey" ref="input_bam" column="dbkey"/> does not yet work in a repeat...-->
+ </options>
+ </param>
+ </when>
+ <when value="history"><!-- FIX ME!!!! -->
+ <repeat name="input_bams" title="BAM file" min="1">
+ <param name="input_bam" type="data" format="bam" label="BAM file" >
+ <validator type="metadata" check="bam_index" message="Metadata missing, click the pencil icon in the history item and use the auto-detect feature to correct this issue."/>
+ </param>
+ </repeat>
+ <param name="ref_file" type="data" format="fasta" label="Using reference file" />
+ </when>
+ </conditional>
+
+ <param name="input_calculate_coverage_over_genes" type="data" format="data" label="RefSeq Rod" optional="True" />
+
+ <param name="partition_type" type="select" label="Partition type for depth of coverage" multiple="True" display="checkboxes">
+ <option value="sample" selected="True">sample</option>
+ <option value="readgroup">readgroup</option>
+ <option value="library">library</option>
+ </param>
+
+ <repeat name="summary_coverage_threshold_group" title="Summary coverage threshold">
+ <param name="summary_coverage_threshold" type="integer" value="15" label="for summary file outputs, report the % of bases covered to >= this number" />
+ </repeat>
+
+ <param name="output_format" type="select" label="Output format" >
+ <option value="csv">csv</option>
+ <option value="table">table</option>
+ <option value="rtable" selected="True">rtable</option>
+ </param>
+
+ <conditional name="gatk_param_type">
+ <param name="gatk_param_type_selector" type="select" label="Basic or Advanced GATK options">
+ <option value="basic" selected="True">Basic</option>
+ <option value="advanced">Advanced</option>
+ </param>
+ <when value="basic">
+ <!-- Do nothing here -->
+ </when>
+ <when value="advanced">
+ <repeat name="sample_metadata" title="Sample Metadata">
+ <param name="sample_metadata_file" type="data" format="txt" label="Sample file in JSON format" />
+ </repeat>
+ <repeat name="read_filter" title="Read Filter">
+ <conditional name="read_filter_type">
+ <param name="read_filter_type_selector" type="select" label="Read Filter Type">
+ <option value="MaxReadLength" selected="True">MaxReadLength</option>
+ <option value="ZeroMappingQualityRead">ZeroMappingQualityRead</option>
+ </param>
+ <when value="ZeroMappingQualityRead">
+ <!-- no extra options -->
+ </when>
+ <when value="MaxReadLength">
+ <param name="maxReadLength" type="integer" value="76" label="Max Read Length"/>
+ </when>
+ </conditional>
+ </repeat>
+ <repeat name="input_interval_repeat" title="Operate on Genomic intervals">
+ <param name="input_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" />
+ </repeat>
+ <repeat name="input_exclude_interval_repeat" title="Exclude Genomic intervals">
+ <param name="input_exclude_intervals" type="data" format="bed,gatk_interval,picard_interval_list" label="Genomic intervals" />
+ </repeat>
+
+ <param name="BTI_merge_rule" type="select" label="BTI merge rule">
+ <option value="UNION" selected="True">UNION</option>
+ <option value="INTERSECTION">INTERSECTION</option>
+ </param>
+
+ <conditional name="downsampling_type">
+ <param name="downsampling_type_selector" type="select" label="Type of reads downsampling to employ at a given locus" help="Downsampling Type">
+ <option value="NONE" selected="True">NONE</option>
+ <option value="ALL_READS">ALL_READS</option>
+ <option value="BY_SAMPLE">BY_SAMPLE</option>
+ </param>
+ <when value="NONE">
+ <!-- no more options here -->
+ </when>
+ <when value="ALL_READS">
+ <conditional name="downsample_to_type">
+ <param name="downsample_to_type_selector" type="select" label="Type of reads downsampling to employ at a given locus" help="Downsampling Type">
+ <option value="downsample_to_fraction" selected="True">Downsample by Fraction</option>
+ <option value="downsample_to_coverage">Downsample by Coverage</option>
+ </param>
+ <when value="downsample_to_fraction">
+ <param name="downsample_to_value" type="float" label="Fraction [0.0-1.0] of reads to downsample to" value="1" min="0" max="1"/>
+ </when>
+ <when value="downsample_to_coverage">
+ <param name="downsample_to_value" type="integer" label="Coverage to downsample to at any given locus" value="0"/>
+ </when>
+ </conditional>
+ </when>
+ <when value="BY_SAMPLE">
+ <conditional name="downsample_to_type">
+ <param name="downsample_to_type_selector" type="select" label="Type of reads downsampling to employ at a given locus" help="Downsampling Type">
+ <option value="downsample_to_fraction" selected="True">Downsample by Fraction</option>
+ <option value="downsample_to_coverage">Downsample by Coverage</option>
+ </param>
+ <when value="downsample_to_fraction">
+ <param name="downsample_to_value" type="float" label="Fraction [0.0-1.0] of reads to downsample to" value="1" min="0" max="1"/>
+ </when>
+ <when value="downsample_to_coverage">
+ <param name="downsample_to_value" type="integer" label="Coverage to downsample to at any given locus" value="0"/>
+ </when>
+ </conditional>
+ </when>
+ </conditional>
+ <param name="baq" type="select" label="Type of BAQ calculation to apply in the engine">
+ <option value="OFF" selected="True">OFF</option>
+ <option value="CALCULATE_AS_NECESSARY">CALCULATE_AS_NECESSARY</option>
+ <option value="RECALCULATE">RECALCULATE</option>
+ </param>
+ <param name="baq_gap_open_penalty" type="float" label="BAQ gap open penalty (Phred Scaled)" value="40" help="Default value is 40. 30 is perhaps better for whole genome call sets."/>
+ <param name="use_original_qualities" type="boolean" truevalue="--useOriginalQualities" falsevalue="" label="Use the original base quality scores from the OQ tag" />
+ <param name="default_base_qualities" type="integer" label="Value to be used for all base quality scores, when some are missing" value="-1"/>
+ <param name="validation_strictness" type="select" label="How strict should we be with validation">
+ <option value="STRICT" selected="True">STRICT</option>
+ <option value="LENIENT">LENIENT</option>
+ <option value="SILENT">SILENT</option>
+ <!-- <option value="DEFAULT_STRINGENCY">DEFAULT_STRINGENCY</option> listed in docs, but not valid value...-->
+ </param>
+ <param name="interval_merging" type="select" label="Interval merging rule">
+ <option value="ALL" selected="True">ALL</option>
+ <option value="OVERLAPPING_ONLY">OVERLAPPING_ONLY</option>
+ </param>
+
+ <repeat name="read_group_black_list_repeat" title="Read group black list">
+ <conditional name="read_group_black_list_type">
+ <param name="read_group_black_list_type_selector" type="select" label="Type of reads read group black list">
+ <option value="file" selected="True">Filters in file</option>
+ <option value="text">Specify filters as a string</option>
+ </param>
+ <when value="file">
+ <param name="read_group_black_list" type="data" format="txt" label="Read group black list file" />
+ </when>
+ <when value="text">
+ <param name="read_group_black_list" type="text" value="tag:string" label="Read group black list tag:string" />
+ </when>
+ </conditional>
+ </repeat>
+
+ <param name="disable_experimental_low_memory_sharding" type="boolean" truevalue="--disable_experimental_low_memory_sharding" falsevalue="" label="Disable experimental low-memory sharding functionality." checked="False"/>
+ <param name="non_deterministic_random_seed" type="boolean" truevalue="--nonDeterministicRandomSeed" falsevalue="" label="Makes the GATK behave non deterministically, that is, the random numbers generated will be different in every run" checked="False" />
+
+ </when>
+ </conditional>
+
+ <conditional name="analysis_param_type">
+ <param name="analysis_param_type_selector" type="select" label="Basic or Advanced Analysis options">
+ <option value="basic" selected="True">Basic</option>
+ <option value="advanced">Advanced</option>
+ </param>
+ <when value="basic">
+ <!-- Do nothing here -->
+ </when>
+ <when value="advanced">
+ <param name="ignore_deletion_sites" type="boolean" truevalue="--ignoreDeletionSites" falsevalue="" checked="False" label="Ignore sites consisting only of deletions" />
+ <param name="include_deletions" type="boolean" truevalue="--includeDeletions" falsevalue="" checked="False" label="Include information on deletions" />
+ <param name="max_base_quality" type="integer" value="127" label="Maximum quality of bases to count towards depth" />
+ <param name="min_base_quality" type="integer" value="-1" label="Minimum quality of bases to count towards depth" />
+ <param name="max_mapping_quality" type="integer" value="2147483647" label="Maximum mapping quality of reads to count towards depth." />
+ <param name="min_mapping_quality" type="integer" value="127" label="Minimum mapping quality of reads to count towards depth" />
+ <param name="n_bins" type="integer" value="499" label="Number of bins to use for granular binning" />
+ <param name="omit_depth_output_at_each_base" type="boolean" truevalue="--omitDepthOutputAtEachBase" falsevalue="" checked="False" label="Omit the output of the depth of coverage at each base" />
+ <param name="omit_interval_statistics" type="boolean" truevalue="--omitIntervalStatistics" falsevalue="" checked="False" label="Omit the per-interval statistics section" />
+ <param name="omit_locus_table" type="boolean" truevalue="--omitLocusTable" falsevalue="" checked="False" label="Do not calculate the per-sample per-depth counts of loci" />
+ <param name="omit_per_sample_stats" type="boolean" truevalue="--omitPerSampleStats" falsevalue="" checked="False" label="Omit the summary files per-sample." />
+ <param name="print_base_counts" type="boolean" truevalue="--printBaseCounts" falsevalue="" checked="False" label="Add base counts to per-locus output" />
+ <param name="print_bin_endpoints_and_exit" type="boolean" truevalue="--printBinEndpointsAndExit" falsevalue="" checked="False" label="Print the bin values and exits immediately" />
+ <param name="start" type="integer" value="1" label="Starting (left endpoint) for granular binning" />
+ <param name="stop" type="integer" value="500" label="Ending (right endpoint) for granular binning" />
+ </when>
+ </conditional>
+ </inputs>
+ <outputs>
+ <data format="tabular" name="output_per_locus_coverage" label="${tool.name} on ${on_string} (per locus coverage)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_summary_sample" label="${tool.name} on ${on_string} (output summary sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_statistics_sample" label="${tool.name} on ${on_string} (output statistics sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_summary_sample" label="${tool.name} on ${on_string} (output interval summary sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_statistics_sample" label="${tool.name} on ${on_string} (output interval statistics sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_summary_sample" label="${tool.name} on ${on_string} (output gene summary sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_statistics_sample" label="${tool.name} on ${on_string} (output gene statistics sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_counts_sample" label="${tool.name} on ${on_string} (output cumulative coverage counts sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_proportions_sample" label="${tool.name} on ${on_string} (output cumulative coverage proportions sample)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'sample' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+
+ <data format="tabular" name="output_summary_readgroup" label="${tool.name} on ${on_string} (output summary readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_statistics_readgroup" label="${tool.name} on ${on_string} (output statistics readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_summary_readgroup" label="${tool.name} on ${on_string} (output interval summary readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_statistics_readgroup" label="${tool.name} on ${on_string} (output interval statistics readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_summary_readgroup" label="${tool.name} on ${on_string} (output gene summary readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'readgroup' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_statistics_readgroup" label="${tool.name} on ${on_string} (output gene statistics readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'readgroup' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_counts_readgroup" label="${tool.name} on ${on_string} (output cumulative coverage counts readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_proportions_readgroup" label="${tool.name} on ${on_string} (output cumulative coverage proportions readgroup)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>'readgroup' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+
+ <data format="tabular" name="output_summary_library" label="${tool.name} on ${on_string} (output summary library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_statistics_library" label="${tool.name} on ${on_string} (output statistics library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_per_sample_stats'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_summary_library" label="${tool.name} on ${on_string} (output interval summary library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_interval_statistics_library" label="${tool.name} on ${on_string} (output interval statistics library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <filter>gatk_param_type['gatk_param_type_selector'] == "advanced" and len( gatk_param_type['input_interval_repeat'] )</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_interval_statistics'] == False</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_summary_library" label="${tool.name} on ${on_string} (output gene summary library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'library' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_gene_statistics_library" label="${tool.name} on ${on_string} (output gene statistics library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>input_calculate_coverage_over_genes is not None and 'library' in partition_type or not partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_counts_library" label="${tool.name} on ${on_string} (output cumulative coverage counts library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+ <data format="tabular" name="output_cumulative_coverage_proportions_library" label="${tool.name} on ${on_string} (output cumulative coverage proportions library)" >
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['omit_depth_output_at_each_base'] == False</filter>
+ <filter>analysis_param_type['analysis_param_type_selector'] == "basic" or analysis_param_type['print_bin_endpoints_and_exit'] == False</filter>
+ <filter>'library' in partition_type</filter>
+ <actions>
+ <conditional name="output_format">
+ <when value="rtable">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ <when value="csv">
+ <action type="format">
+ <option type="from_param" name="output_format" />
+ </action>
+ </when>
+ </conditional>
+ </actions>
+ </data>
+
+ <data format="tabular" name="output_log" label="${tool.name} on ${on_string} (log)" />
+ </outputs>
+ <trackster_conf/>
+ <tests>
+ <test>
+ <param name="reference_source_selector" value="history" />
+ <param name="ref_file" value="phiX.fasta" ftype="fasta" />
+ <param name="input_bam" value="gatk/gatk_table_recalibration/gatk_table_recalibration_out_1.bam" ftype="bam" />
+ <param name="input_calculate_coverage_over_genes" />
+ <param name="partition_type" value="sample" />
+ <param name="summary_coverage_threshold_group" value="0" />
+ <param name="output_format" value="rtable" />
+ <param name="gatk_param_type_selector" value="basic" />
+ <param name="analysis_param_type_selector" value="basic" />
+ <output name="output_per_locus_coverage" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_per_locus_coverage.tabular" />
+ <output name="output_summary_sample" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_summary_sample.tabular" />
+ <output name="output_statistics_sample" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_statistics_sample.tabular" />
+ <output name="output_cumulative_coverage_counts_sample" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_cumulative_coverage_counts_sample.tabular" />
+ <output name="output_cumulative_coverage_proportions_sample" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1_output_output_cumulative_coverage_proportions_sample.tabular" />
+ <output name="output_log" file="gatk/gatk_depth_of_coverage/gatk_depth_of_coverage_out_1.log.contains" compare="contains" />
+ </test>
+ </tests>
+ <help>
+**What it does**
+
+DepthOfCoverage processes a set of bam files to determine coverage at different levels of partitioning and aggregation. Coverage can be analyzed per locus, per interval, per gene, or in total; can be partitioned by sample, by read group, by technology, by center, or by library; and can be summarized by mean, median, quartiles, and/or percentage of bases covered to or beyond a threshold. Additionally, reads and bases can be filtered by mapping or base quality score.
+
+For more information on the GATK Depth of Coverage, see this `tool specific page <http://www.broadinstitute.org/gsa/wiki/index.php/Depth_of_Coverage>`_.
+
+To learn about best practices for variant detection using GATK, see this `overview <http://www.broadinstitute.org/gsa/wiki/index.php/Best_Practice_Variant_Detection_with_the_GATK_v3>`_.
+
+If you encounter errors, please view the `GATK FAQ <http://www.broadinstitute.org/gsa/wiki/index.php/Frequently_Asked_Questions>`_.
+
+------
+
+**Inputs**
+
+GenomeAnalysisTK: DepthOfCoverage accepts aligned BAM input files.
+
+
+**Outputs**
+
+The output is in various table formats.
+
+
+Go `here <http://www.broadinstitute.org/gsa/wiki/index.php/Input_files_for_the_GATK>`_ for details on GATK file formats.
+
+-------
+
+**Settings**::
+
+ calculateCoverageOverGenes File NA Calculate the coverage statistics over this list of genes. Currently accepts RefSeq.
+ ignoreDeletionSites boolean false Ignore sites consisting only of deletions
+ includeDeletions boolean false Include information on deletions
+ maxBaseQuality byte 127 Maximum quality of bases to count towards depth. Defaults to 127 (Byte.MAX_VALUE).
+ maxMappingQuality int 2147483647 Maximum mapping quality of reads to count towards depth. Defaults to 2^31-1 (Integer.MAX_VALUE).
+ minBaseQuality byte -1 Minimum quality of bases to count towards depth. Defaults to -1.
+ minMappingQuality int -1 Minimum mapping quality of reads to count towards depth. Defaults to -1.
+ nBins int 499 Number of bins to use for granular binning
+ omitDepthOutputAtEachBase boolean false Will omit the output of the depth of coverage at each base, which should result in speedup
+ omitIntervalStatistics boolean false Will omit the per-interval statistics section, which should result in speedup
+ omitLocusTable boolean false Will not calculate the per-sample per-depth counts of loci, which should result in speedup
+ omitPerSampleStats boolean false Omits the summary files per-sample. These statistics are still calculated, so this argument will not improve runtime.
+ outputFormat String rtable the format of the output file (e.g. csv, table, rtable); defaults to r-readable table
+ partitionType Set[Partition] [sample] Partition type for depth of coverage. Defaults to sample. Can be any combination of sample, readgroup, library.
+ printBaseCounts boolean false Will add base counts to per-locus output.
+ printBinEndpointsAndExit boolean false Prints the bin values and exits immediately. Use to calibrate what bins you want before running on data.
+ start int 1 Starting (left endpoint) for granular binning
+ stop int 500 Ending (right endpoint) for granular binning
+ summaryCoverageThreshold int[] [15] for summary file outputs, report the % of bases coverd to >= this number. Defaults to 15; can take multiple arguments.
+
+------
+
+**Citation**
+
+For the underlying tool, please cite `DePristo MA, Banks E, Poplin R, Garimella KV, Maguire JR, Hartl C, Philippakis AA, del Angel G, Rivas MA, Hanna M, McKenna A, Fennell TJ, Kernytsky AM, Sivachenko AY, Cibulskis K, Gabriel SB, Altshuler D, Daly MJ. A framework for variation discovery and genotyping using next-generation DNA sequencing data. Nat Genet. 2011 May;43(5):491-8. <http://www.ncbi.nlm.nih.gov/pubmed/21478889>`_
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
+ </help>
+</tool>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/16cf802f9211/
changeset: 16cf802f9211
user: dan
date: 2011-11-17 17:13:53
summary: Update GATK to version 1.3.
affected #: 19 files
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.html
--- a/test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.html
+++ b/test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.html
@@ -6,12 +6,29 @@
<p/><ul><li><a href="A Fake phiX Sample.CycleCovariate.dat">A Fake phiX Sample.CycleCovariate.dat</a></li>
+<li><a href="A Fake phiX Sample.CycleCovariate.dat.Cycle_hist.pdf">A Fake phiX Sample.CycleCovariate.dat.Cycle_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.CycleCovariate.dat.qual_diff_v_Cycle.pdf">A Fake phiX Sample.CycleCovariate.dat.qual_diff_v_Cycle.pdf</a></li>
+<li><a href="A Fake phiX Sample.CycleCovariate.dat.reported_qual_v_Cycle.pdf">A Fake phiX Sample.CycleCovariate.dat.reported_qual_v_Cycle.pdf</a></li><li><a href="A Fake phiX Sample.DinucCovariate.dat">A Fake phiX Sample.DinucCovariate.dat</a></li>
+<li><a href="A Fake phiX Sample.DinucCovariate.dat.Dinuc_hist.pdf">A Fake phiX Sample.DinucCovariate.dat.Dinuc_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.DinucCovariate.dat.qual_diff_v_Dinuc.pdf">A Fake phiX Sample.DinucCovariate.dat.qual_diff_v_Dinuc.pdf</a></li>
+<li><a href="A Fake phiX Sample.DinucCovariate.dat.reported_qual_v_Dinuc.pdf">A Fake phiX Sample.DinucCovariate.dat.reported_qual_v_Dinuc.pdf</a></li><li><a href="A Fake phiX Sample.HomopolymerCovariate.dat">A Fake phiX Sample.HomopolymerCovariate.dat</a></li>
+<li><a href="A Fake phiX Sample.HomopolymerCovariate.dat.Homopolymer_hist.pdf">A Fake phiX Sample.HomopolymerCovariate.dat.Homopolymer_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.HomopolymerCovariate.dat.qual_diff_v_Homopolymer.pdf">A Fake phiX Sample.HomopolymerCovariate.dat.qual_diff_v_Homopolymer.pdf</a></li>
+<li><a href="A Fake phiX Sample.HomopolymerCovariate.dat.reported_qual_v_Homopolymer.pdf">A Fake phiX Sample.HomopolymerCovariate.dat.reported_qual_v_Homopolymer.pdf</a></li><li><a href="A Fake phiX Sample.MinimumNQSCovariate.dat">A Fake phiX Sample.MinimumNQSCovariate.dat</a></li>
+<li><a href="A Fake phiX Sample.MinimumNQSCovariate.dat.MinimumNQS_hist.pdf">A Fake phiX Sample.MinimumNQSCovariate.dat.MinimumNQS_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.MinimumNQSCovariate.dat.qual_diff_v_MinimumNQS.pdf">A Fake phiX Sample.MinimumNQSCovariate.dat.qual_diff_v_MinimumNQS.pdf</a></li>
+<li><a href="A Fake phiX Sample.MinimumNQSCovariate.dat.reported_qual_v_MinimumNQS.pdf">A Fake phiX Sample.MinimumNQSCovariate.dat.reported_qual_v_MinimumNQS.pdf</a></li><li><a href="A Fake phiX Sample.PositionCovariate.dat">A Fake phiX Sample.PositionCovariate.dat</a></li>
+<li><a href="A Fake phiX Sample.PositionCovariate.dat.Position_hist.pdf">A Fake phiX Sample.PositionCovariate.dat.Position_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.PositionCovariate.dat.qual_diff_v_Position.pdf">A Fake phiX Sample.PositionCovariate.dat.qual_diff_v_Position.pdf</a></li>
+<li><a href="A Fake phiX Sample.PositionCovariate.dat.reported_qual_v_Position.pdf">A Fake phiX Sample.PositionCovariate.dat.reported_qual_v_Position.pdf</a></li><li><a href="A Fake phiX Sample.QualityScoreCovariate.dat">A Fake phiX Sample.QualityScoreCovariate.dat</a></li>
-<li><a href="A.qual_diff_v_Fake.pdf">A.qual_diff_v_Fake.pdf</a></li>
+<li><a href="A Fake phiX Sample.QualityScoreCovariate.dat.quality_emp_hist.pdf">A Fake phiX Sample.QualityScoreCovariate.dat.quality_emp_hist.pdf</a></li>
+<li><a href="A Fake phiX Sample.QualityScoreCovariate.dat.quality_emp_v_stated.pdf">A Fake phiX Sample.QualityScoreCovariate.dat.quality_emp_v_stated.pdf</a></li>
+<li><a href="A Fake phiX Sample.QualityScoreCovariate.dat.quality_rep_hist.pdf">A Fake phiX Sample.QualityScoreCovariate.dat.quality_rep_hist.pdf</a></li></ul></body></html>
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_count_covariates/gatk_count_covariates_out_1.log.contains
--- a/test-data/gatk/gatk_count_covariates/gatk_count_covariates_out_1.log.contains
+++ b/test-data/gatk/gatk_count_covariates/gatk_count_covariates_out_1.log.contains
@@ -11,4 +11,3 @@
CountCovariatesWalker - Writing raw recalibration data...
CountCovariatesWalker - ...done!
TraversalEngine - Total runtime
-TraversalEngine - 0 reads were filtered out during traversal out of 20 total (0.00%)
\ No newline at end of file
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.log.contains
--- a/test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.log.contains
+++ b/test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.log.contains
@@ -10,4 +10,3 @@
UnifiedGenotyper - % confidently called bases of callable loci 100.000
UnifiedGenotyper - Actual calls made 1
TraversalEngine - Total runtime
-TraversalEngine - 0 reads were filtered out during traversal out of 20 total (0.00%)
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.vcf
--- a/test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.vcf
+++ b/test-data/gatk/gatk_unified_genotyper/gatk_unified_genotyper_out_1.vcf
@@ -25,4 +25,4 @@
##contig=<ID=phiX174,length=5386>
##reference=file:///var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-aSMuO5/gatk_input.fasta
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT A Fake phiX Sample
-phiX174 1443 . AC . 0 . DB;DP=10;MQ=37.74;MQ0=0;QD=0.00 GT:DP:PL ./.:10:0,0,0
+phiX174 1443 . AC . 0 . DP=10;MQ=37.74;MQ0=0;QD=0.00 GT:DP:PL ./.:10:0,0,0
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_variant_annotator/gatk_variant_annotator_out_1.vcf
--- a/test-data/gatk/gatk_variant_annotator/gatk_variant_annotator_out_1.vcf
+++ b/test-data/gatk/gatk_variant_annotator/gatk_variant_annotator_out_1.vcf
@@ -28,4 +28,4 @@
##reference=file:///var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-aSMuO5/gatk_input.fasta
##reference=file:///var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-gaJtgB/gatk_input.fasta
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT A Fake phiX Sample
-phiX174 1443 . AC . 0 . DB;DP=10;MQ=37.74;MQ0=0;QD=0.00 GT:DP:PL ./.:10:0,0,0
+phiX174 1443 . AC . 0 . DP=10;MQ=37.74;MQ0=0;QD=0.00 GT:DP:PL ./.:10:0,0,0
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c test-data/gatk/gatk_variant_combine/gatk_variant_combine_out_1.vcf
--- a/test-data/gatk/gatk_variant_combine/gatk_variant_combine_out_1.vcf
+++ b/test-data/gatk/gatk_variant_combine/gatk_variant_combine_out_1.vcf
@@ -30,4 +30,4 @@
##reference=file:///var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-aSMuO5/gatk_input.fasta
##reference=file:///var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-bFIpbp/gatk_input.fasta
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT A Fake phiX Sample
-phiX174 1443 . AC . . PASS AC=0;AF=0.00;AN=0;DB;DP=10;MQ=37.74;MQ0=0;QD=0.00;set=ReferenceInAll GT:DP:PL ./.:10:0,0,0
+phiX174 1443 . AC . . PASS AC=0;AF=0.00;AN=0;DP=10;MQ=37.74;MQ0=0;QD=0.00;set=ReferenceInAll GT:DP:PL ./.:10:0,0,0
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/analyze_covariates.xml
--- a/tools/gatk/analyze_covariates.xml
+++ b/tools/gatk/analyze_covariates.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_analyze_covariates" name="Analyze Covariates" version="0.0.3">
+<tool id="gatk_analyze_covariates" name="Analyze Covariates" version="0.0.4"><description>- draw plots</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
@@ -13,8 +13,7 @@
-outputDir "${output_html.files_path}"
##--num_threads 4 ##hard coded, for now
##-log "${output_log}"
- ##-Rscript,--path_to_Rscript path_to_Rscript; on path is good enough
- -resources "${GALAXY_DATA_INDEX_DIR}/gatk/R"
+ ##-Rscript,--path_to_Rscript path_to_Rscript; on path is good enough
#if $analysis_param_type.analysis_param_type_selector == "advanced":
--ignoreQ "${analysis_param_type.ignore_q}"
--numRG "${analysis_param_type.num_read_groups}"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/count_covariates.xml
--- a/tools/gatk/count_covariates.xml
+++ b/tools/gatk/count_covariates.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_count_covariates" name="Count Covariates" version="0.0.3">
+<tool id="gatk_count_covariates" name="Count Covariates" version="0.0.4"><description>on BAM files</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/indel_realigner.xml
--- a/tools/gatk/indel_realigner.xml
+++ b/tools/gatk/indel_realigner.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_indel_realigner" name="Indel Realigner" version="0.0.4">
+<tool id="gatk_indel_realigner" name="Indel Realigner" version="0.0.5"><description>- perform local realignment</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/realigner_target_creator.xml
--- a/tools/gatk/realigner_target_creator.xml
+++ b/tools/gatk/realigner_target_creator.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_realigner_target_creator" name="Realigner Target Creator" version="0.0.3">
+<tool id="gatk_realigner_target_creator" name="Realigner Target Creator" version="0.0.4"><description>for use in local realignment</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/table_recalibration.xml
--- a/tools/gatk/table_recalibration.xml
+++ b/tools/gatk/table_recalibration.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_table_recalibration" name="Table Recalibration" version="0.0.3">
+<tool id="gatk_table_recalibration" name="Table Recalibration" version="0.0.4"><description>on BAM files</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/unified_genotyper.xml
--- a/tools/gatk/unified_genotyper.xml
+++ b/tools/gatk/unified_genotyper.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_unified_genotyper" name="Unified Genotyper" version="0.0.3">
+<tool id="gatk_unified_genotyper" name="Unified Genotyper" version="0.0.4"><description>SNP and indel caller</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
@@ -104,7 +104,6 @@
--output_mode "${analysis_param_type.output_mode}"
${analysis_param_type.compute_SLOD}
--min_base_quality_score "${analysis_param_type.min_base_quality_score}"
- --min_mapping_quality_score "${analysis_param_type.min_mapping_quality_score}"
--max_deletion_fraction "${analysis_param_type.max_deletion_fraction}"
--min_indel_count_for_genotyping "${analysis_param_type.min_indel_count_for_genotyping}"
--indel_heterozygosity "${analysis_param_type.indel_heterozygosity}"
@@ -343,7 +342,6 @@
</param><param name="compute_SLOD" type="boolean" truevalue="--computeSLOD" falsevalue="" label="Compute the SLOD" /><param name="min_base_quality_score" type="integer" value="17" label="Minimum base quality required to consider a base for calling" />
- <param name="min_mapping_quality_score" type="integer" value="20" label="Minimum read mapping quality required to consider a read for calling" /><param name="max_deletion_fraction" type="float" value="0.05" label="Maximum fraction of reads with deletions spanning this locus for it to be callable" help="to disable, set to < 0 or > 1" /><param name="min_indel_count_for_genotyping" type="integer" value="5" label="Minimum number of consensus indels required to trigger genotyping run" /><param name="indel_heterozygosity" type="float" value="0.000125" label="Heterozygosity for indel calling" help="1.0/8000==0.000125"/>
@@ -417,7 +415,6 @@
<param name="output_mode" value="EMIT_ALL_CONFIDENT_SITES" /><param name="compute_SLOD" /><param name="min_base_quality_score" value="17" />
- <param name="min_mapping_quality_score" value="20" /><param name="max_deletion_fraction" value="-1" /><param name="min_indel_count_for_genotyping" value="2" /><param name="indel_heterozygosity" value="0.000125" />
@@ -471,7 +468,6 @@
standard_min_confidence_threshold_for_emitting The minimum phred-scaled confidence threshold at which variants not at 'trigger' track sites should be emitted (and filtered if less than the calling threshold)
noSLOD If provided, we will not calculate the SLOD
min_base_quality_score Minimum base quality required to consider a base for calling
- min_mapping_quality_score Minimum read mapping quality required to consider a read for calling
max_deletion_fraction Maximum fraction of reads with deletions spanning this locus for it to be callable [to disable, set to < 0 or > 1; default:0.05]
min_indel_count_for_genotyping Minimum number of consensus indels required to trigger genotyping run
indel_heterozygosity Heterozygosity for indel calling
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_annotator.xml
--- a/tools/gatk/variant_annotator.xml
+++ b/tools/gatk/variant_annotator.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_annotator" name="Variant Annotator" version="0.0.2">
+<tool id="gatk_variant_annotator" name="Variant Annotator" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_apply_recalibration.xml
--- a/tools/gatk/variant_apply_recalibration.xml
+++ b/tools/gatk/variant_apply_recalibration.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_apply_recalibration" name="Apply Variant Recalibration" version="0.0.2">
+<tool id="gatk_variant_apply_recalibration" name="Apply Variant Recalibration" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_combine.xml
--- a/tools/gatk/variant_combine.xml
+++ b/tools/gatk/variant_combine.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_combine" name="Combine Variants" version="0.0.2">
+<tool id="gatk_variant_combine" name="Combine Variants" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_eval.xml
--- a/tools/gatk/variant_eval.xml
+++ b/tools/gatk/variant_eval.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_eval" name="Eval Variants" version="0.0.2">
+<tool id="gatk_variant_eval" name="Eval Variants" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_filtration.xml
--- a/tools/gatk/variant_filtration.xml
+++ b/tools/gatk/variant_filtration.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_filtration" name="Variant Filtration" version="0.0.2">
+<tool id="gatk_variant_filtration" name="Variant Filtration" version="0.0.3"><description>on VCF files</description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variant_recalibrator.xml
--- a/tools/gatk/variant_recalibrator.xml
+++ b/tools/gatk/variant_recalibrator.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_variant_recalibrator" name="Variant Recalibrator" version="0.0.2">
+<tool id="gatk_variant_recalibrator" name="Variant Recalibrator" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
diff -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed -r 16cf802f921189fd5d2a8cba4a04926065afff1c tools/gatk/variants_validate.xml
--- a/tools/gatk/variants_validate.xml
+++ b/tools/gatk/variants_validate.xml
@@ -1,7 +1,7 @@
-<tool id="gatk_validate_variants" name="Validate Variants" version="0.0.2">
+<tool id="gatk_validate_variants" name="Validate Variants" version="0.0.3"><description></description><requirements>
- <requirement type="package" version="1.2">gatk</requirement>
+ <requirement type="package" version="1.3">gatk</requirement></requirements><command interpreter="python">gatk_wrapper.py
--max_jvm_heap_fraction "1"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: jgoecks: When fetching BAM data for Trackster, use BAI from metadata when possible rather than waiting for converted dataset with duplicate BAI.
by Bitbucket 17 Nov '11
by Bitbucket 17 Nov '11
17 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/12ecc1ea2821/
changeset: 12ecc1ea2821
user: jgoecks
date: 2011-11-17 15:12:19
summary: When fetching BAM data for Trackster, use BAI from metadata when possible rather than waiting for converted dataset with duplicate BAI.
affected #: 1 file
diff -r 486196344e13fcf1d6826ce714bf05cca4e6f6a7 -r 12ecc1ea2821255e81e4fb6de402108e4f30e0ed lib/galaxy/web/controllers/tracks.py
--- a/lib/galaxy/web/controllers/tracks.py
+++ b/lib/galaxy/web/controllers/tracks.py
@@ -607,8 +607,16 @@
else:
tracks_dataset_type = data_sources['data']['name']
data_provider_class = get_data_provider( name=tracks_dataset_type, original_dataset=dataset )
- converted_dataset = dataset.get_converted_dataset( trans, tracks_dataset_type )
- deps = dataset.get_converted_dataset_deps( trans, tracks_dataset_type )
+ # HACK: Use bai from bam HDA's metadata if available. This saves
+ # the client from waiting a long time to generate a duplicate
+ # bam via a converted dataset.
+ if dataset.ext == "bam" and dataset.metadata.get( "bam_index", None ) is not None:
+ converted_dataset = dataset.metadata.bam_index
+ deps = None
+ else:
+ # Default behavior.
+ converted_dataset = dataset.get_converted_dataset( trans, tracks_dataset_type )
+ deps = dataset.get_converted_dataset_deps( trans, tracks_dataset_type )
data_provider = data_provider_class( converted_dataset=converted_dataset, original_dataset=dataset, dependencies=deps )
# Get and return data from data_provider.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0

commit/galaxy-central: epaniagu: fix tool_form.mako js typo affecting "drill_down" input
by Bitbucket 17 Nov '11
by Bitbucket 17 Nov '11
17 Nov '11
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/7f59c8839d75/
changeset: 7f59c8839d75
user: epaniagu
date: 2011-11-16 23:25:26
summary: fix tool_form.mako js typo affecting "drill_down" input
affected #: 1 file
diff -r aeb72f7dc945f5c51270f6757b6ec6b2d5544cba -r 7f59c8839d75208ebcf02cda1b4f28865e0967d6 templates/tool_form.mako
--- a/templates/tool_form.mako
+++ b/templates/tool_form.mako
@@ -38,7 +38,7 @@
parent_li.find( 'span' ).wrapInner( '<a/>' ).find( 'a' ).click( function() {
sub_ul.toggle();
- (this).html( sub_ul.is(":hidden") ? '[+]' : '[-]' );
+ $(this).html( sub_ul.is(":hidden") ? '[+]' : '[-]' );
});
parent_li.append( sub_ul );
});
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0