galaxy-commits
  Threads by month 
                
            - ----- 2025 -----
 - November
 - October
 - September
 - August
 - July
 - 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
 
January 2012
- 1 participants
 - 95 discussions
 
                    
                        2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/324d442b8fb0/
changeset:   324d442b8fb0
branch:      sam_merge_patch
user:        natefoo
date:        2012-01-23 20:22:50
summary:     Closed branch sam_merge_patch
affected #:  0 files
https://bitbucket.org/galaxy/galaxy-central/changeset/d61fdfdce8bc/
changeset:   d61fdfdce8bc
user:        natefoo
date:        2012-01-23 20:23:22
summary:     Merge closed branch
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: natefoo: Add	tool_dependency_dir to the sample config.
                        
                        
by Bitbucket 23 Jan '12
                    by Bitbucket 23 Jan '12
23 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/2e8f52ffe75d/
changeset:   2e8f52ffe75d
user:        natefoo
date:        2012-01-23 18:29:00
summary:     Add tool_dependency_dir to the sample config.
affected #:  1 file
diff -r 542cc69a44865797deb688a6b29c7aac603f6da2 -r 2e8f52ffe75ddf6e1009789745aabffa90edaac9 universe_wsgi.ini.sample
--- a/universe_wsgi.ini.sample
+++ b/universe_wsgi.ini.sample
@@ -131,6 +131,11 @@
 # Other tool config files must include the tool_path as an attribute in the <toolbox> tag.
 #tool_path = tools
 
+# Path to the directory in which managed tool dependencies are placed.  To use
+# the dependency system, see the documentation at:
+# http://wiki.g2.bx.psu.edu/Admin/Config/Tool%20Dependencies
+#tool_dependency_dir = None
+
 # Enable automatic installation of tools that used to be in the Galaxy
 # distribution but are now in the main Galaxy tool shed.  The tools
 # that will be installed are configured in the config file named
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/542cc69a4486/
changeset:   542cc69a4486
user:        dan
date:        2012-01-23 17:37:49
summary:     GATK Updates.
affected #:  7 files
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 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
@@ -1,6 +1,6 @@
 ##fileformat=VCFv4.1
 ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
 ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
 ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
 ##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
@@ -9,7 +9,7 @@
 ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
 ##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
 ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Filtered Depth">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
 ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
 ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
 ##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
@@ -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	.	DP=10;MQ=37.74;MQ0=0;QD=0.00	GT:DP:PL	./.:10:0,0,0
+phiX174	1443	.	AC	.	0	.	DB;DP=10;MQ=37.74;MQ0=0	GT	./.
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 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
@@ -1,6 +1,6 @@
 ##fileformat=VCFv4.1
 ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
 ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
 ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
 ##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
@@ -10,7 +10,7 @@
 ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
 ##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
 ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Filtered Depth">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
 ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
 ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
 ##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
@@ -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	.	DP=10;MQ=37.74;MQ0=0;QD=0.00	GT:DP:PL	./.:10:0,0,0
+phiX174	1443	.	AC	.	0	.	DB;DP=10;MQ=37.74;MQ0=0	GT	./.
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 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
@@ -1,7 +1,7 @@
 ##fileformat=VCFv4.1
 ##CombineVariants="analysis_type=CombineVariants input_file=[] sample_metadata=[] read_buffer_size=null phone_home=NO_ET read_filter=[] intervals=null excludeIntervals=null reference_sequence=/var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-bFIpbp/gatk_input.fasta rodBind=[] rodToIntervalTrackName=null BTI_merge_rule=UNION nonDeterministicRandomSeed=false downsampling_type=null downsample_to_fraction=null downsample_to_coverage=null baq=OFF baqGapOpenPenalty=40.0 performanceLog=null useOriginalQualities=false defaultBaseQualities=-1 validation_strictness=SILENT unsafe=null num_threads=1 interval_merging=ALL read_group_black_list=null processingTracker=null restartProcessingTracker=false processingTrackerStatusFile=null processingTrackerID=-1 allow_intervals_with_unindexed_bam=false disable_experimental_low_memory_sharding=false logging_level=INFO log_to_file=null help=false variant=[(RodBinding name=from_variant_annotator source=/var/folders/78/786YaG3QH58XnzrWynoDBk+++TI/-Tmp-/tmp-gatk-bFIpbp/input_variant_from_variant_annotator.vcf)] out=org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub NO_HEADER=org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub sites_only=org.broadinstitute.sting.gatk.io.stubs.VCFWriterStub genotypemergeoption=PRIORITIZE filteredrecordsmergetype=KEEP_IF_ANY_UNFILTERED rod_priority_list=from_variant_annotator printComplexMerges=false filteredAreUncalled=false minimalVCF=false setKey=set assumeIdenticalSamples=false minimumN=1 mergeInfoWithMaxAC=false"
 ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
 ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
 ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
 ##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
@@ -11,7 +11,7 @@
 ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
 ##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
 ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Filtered Depth">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
 ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
 ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
 ##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
@@ -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;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;DB;DP=10;MQ=37.74;MQ0=0;set=ReferenceInAll	GT	./.
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 test-data/gatk/gatk_variant_eval/gatk_variant_eval_out_1.tabular
--- a/test-data/gatk/gatk_variant_eval/gatk_variant_eval_out_1.tabular
+++ b/test-data/gatk/gatk_variant_eval/gatk_variant_eval_out_1.tabular
@@ -1,36 +1,30 @@
 ##:GATKReport.v0.2 CompOverlap : The overlap between eval and comp sites
-CompOverlap  CompRod  EvalRod  JexlExpression  Novelty  nEvalVariants  novelSites  nVariantsAtComp  compRate    nConcordant  concordantRate
-CompOverlap  dbsnp    input_0  none            all      0              0           0                0.00000000  0            0.00000000    
-CompOverlap  dbsnp    input_0  none            known    0              0           0                0.00000000  0            0.00000000    
-CompOverlap  dbsnp    input_0  none            novel    0              0           0                0.00000000  0            0.00000000    
+CompOverlap  CompRod  EvalRod  JexlExpression  Novelty  nEvalVariants  novelSites  nVariantsAtComp  compRate  nConcordant  concordantRate
+CompOverlap  dbsnp    input_0  none            all                  0           0                0      0.00            0            0.00
+CompOverlap  dbsnp    input_0  none            known                0           0                0      0.00            0            0.00
+CompOverlap  dbsnp    input_0  none            novel                0           0                0      0.00            0            0.00
 
 ##:GATKReport.v0.2 CountVariants : Counts different classes of variants in the sample
-CountVariants  CompRod  EvalRod  JexlExpression  Novelty  nProcessedLoci  nCalledLoci  nRefLoci  nVariantLoci  variantRate  variantRatePerBp  nSNPs  nMNPs  nInsertions  nDeletions  nComplex  nMixed  nNoCalls  nHets  nHomRef  nHomVar  nSingletons  nHomDerived  heterozygosity  heterozygosityPerBp  hetHomRatio  indelRate   indelRatePerBp  deletionInsertionRatio
-CountVariants  dbsnp    input_0  none            all      5386            1            1         0             0.00000000   0.00000000        0      0      0            0           0         0       1         0      0        0        0            0            0.00000000      0.00000000           0.00000000   0.00000000  0.00000000      0.00000000            
-CountVariants  dbsnp    input_0  none            known    5386            1            1         0             0.00000000   0.00000000        0      0      0            0           0         0       1         0      0        0        0            0            0.00000000      0.00000000           0.00000000   0.00000000  0.00000000      0.00000000            
-CountVariants  dbsnp    input_0  none            novel    5386            0            0         0             0.00000000   0.00000000        0      0      0            0           0         0       0         0      0        0        0            0            0.00000000      0.00000000           0.00000000   0.00000000  0.00000000      0.00000000            
-
-##:GATKReport.v0.2 SimpleMetricsByAC.metrics : TiTv by allele count
-SimpleMetricsByAC.metrics  CompRod  EvalRod  JexlExpression  Novelty  row  AC  nTi  nTv  n  TiTv
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            all      ac0  0   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            all      ac1  1   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            all      ac2  2   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            known    ac0  0   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            known    ac1  1   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            known    ac2  2   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            novel    ac0  0   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            novel    ac1  1   0    0    0  0.0 
-SimpleMetricsByAC.metrics  dbsnp    input_0  none            novel    ac2  2   0    0    0  0.0 
+CountVariants  CompRod  EvalRod  JexlExpression  Novelty  nProcessedLoci  nCalledLoci  nRefLoci  nVariantLoci  variantRate  variantRatePerBp  nSNPs  nMNPs  nInsertions  nDeletions  nComplex  nSymbolic  nMixed  nNoCalls  nHets  nHomRef  nHomVar  nSingletons  nHomDerived  heterozygosity  heterozygosityPerBp  hetHomRatio  indelRate  indelRatePerBp  deletionInsertionRatio
+CountVariants  dbsnp    input_0  none            all                5386            1         1             0   0.00000000        0.00000000      0      0            0           0         0          0       0         1      0        0        0            0            0        0.00e+00                 0.00         0.00   0.00e+00            0.00                    0.00
+CountVariants  dbsnp    input_0  none            known              5386            1         1             0   0.00000000        0.00000000      0      0            0           0         0          0       0         1      0        0        0            0            0        0.00e+00                 0.00         0.00   0.00e+00            0.00                    0.00
+CountVariants  dbsnp    input_0  none            novel              5386            0         0             0   0.00000000        0.00000000      0      0            0           0         0          0       0         0      0        0        0            0            0        0.00e+00                 0.00         0.00   0.00e+00            0.00                    0.00
 
 ##:GATKReport.v0.2 TiTvVariantEvaluator : Ti/Tv Variant Evaluator
-TiTvVariantEvaluator  CompRod  EvalRod  JexlExpression  Novelty  nTi  nTv  tiTvRatio   nTiInComp  nTvInComp  TiTvRatioStandard  nTiDerived  nTvDerived  tiTvDerivedRatio
-TiTvVariantEvaluator  dbsnp    input_0  none            all      0    0    0.00000000  0          0          0.00000000         0           0           0.00000000      
-TiTvVariantEvaluator  dbsnp    input_0  none            known    0    0    0.00000000  0          0          0.00000000         0           0           0.00000000      
-TiTvVariantEvaluator  dbsnp    input_0  none            novel    0    0    0.00000000  0          0          0.00000000         0           0           0.00000000      
+TiTvVariantEvaluator  CompRod  EvalRod  JexlExpression  Novelty  nTi  nTv  tiTvRatio  nTiInComp  nTvInComp  TiTvRatioStandard  nTiDerived  nTvDerived  tiTvDerivedRatio
+TiTvVariantEvaluator  dbsnp    input_0  none            all        0    0       0.00          0          0               0.00           0           0              0.00
+TiTvVariantEvaluator  dbsnp    input_0  none            known      0    0       0.00          0          0               0.00           0           0              0.00
+TiTvVariantEvaluator  dbsnp    input_0  none            novel      0    0       0.00          0          0               0.00           0           0              0.00
 
 ##:GATKReport.v0.2 ValidationReport : Assess site accuracy and sensitivity of callset against follow-up validation assay
-ValidationReport  CompRod  EvalRod  JexlExpression  Novelty  nComp  TP  FP  FN  TN  sensitivity  specificity   PPV  FDR  CompMonoEvalNoCall  CompMonoEvalFiltered  CompMonoEvalMono  CompMonoEvalPoly  CompPolyEvalNoCall  CompPolyEvalFiltered  CompPolyEvalMono  CompPolyEvalPoly  CompFiltered  nDifferentAlleleSites
-ValidationReport  dbsnp    input_0  none            all      43     0   0   0   43  NaN          100.00000000  NaN  NaN  42                  0                     1                 0                 0                   0                     0                 0                 0             0                    
-ValidationReport  dbsnp    input_0  none            known    1      0   0   0   1   NaN          100.00000000  NaN  NaN  0                   0                     1                 0                 0                   0                     0                 0                 0             0                    
-ValidationReport  dbsnp    input_0  none            novel    42     0   0   0   42  NaN          100.00000000  NaN  NaN  42                  0                     0                 0                 0                   0                     0                 0                 0             0                    
+ValidationReport  CompRod  EvalRod  JexlExpression  Novelty  nComp  TP  FP  FN  TN  sensitivity  specificity  PPV  FDR  CompMonoEvalNoCall  CompMonoEvalFiltered  CompMonoEvalMono  CompMonoEvalPoly  CompPolyEvalNoCall  CompPolyEvalFiltered  CompPolyEvalMono  CompPolyEvalPoly  CompFiltered  nDifferentAlleleSites
+ValidationReport  dbsnp    input_0  none            all         43   0   0   0  43          NaN       100.00  NaN  NaN                  42                     0                 1                 0                   0                     0                 0                 0             0                      0
+ValidationReport  dbsnp    input_0  none            known        1   0   0   0   1          NaN       100.00  NaN  NaN                   0                     0                 1                 0                   0                     0                 0                 0             0                      0
+ValidationReport  dbsnp    input_0  none            novel       42   0   0   0  42          NaN       100.00  NaN  NaN                  42                     0                 0                 0                   0                     0                 0                 0             0                      0
 
+##:GATKReport.v0.2 VariantSummary : 1000 Genomes Phase I summary of variants table
+VariantSummary  CompRod  EvalRod  JexlExpression  Novelty  nSamples  nProcessedLoci  nSNPs  TiTvRatio  SNPNoveltyRate  nSNPsPerSample  TiTvRatioPerSample  SNPDPPerSample  nIndels  IndelNoveltyRate  nIndelsPerSample  IndelDPPerSample  nSVs  SVNoveltyRate  nSVsPerSample
+VariantSummary  dbsnp    input_0  none            all             1            5386      0       0.00              NA               0                0.00             0.0        0                NA                 0               0.0     0             NA              0
+VariantSummary  dbsnp    input_0  none            known           1            5386      0       0.00              NA               0                0.00             0.0        0                NA                 0               0.0     0             NA              0
+VariantSummary  dbsnp    input_0  none            novel           1            5386      0       0.00              NA               0                0.00             0.0        0                NA                 0               0.0     0             NA              0
+
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 test-data/gatk/gatk_variant_select/gatk_variant_select_out_1.vcf
--- a/test-data/gatk/gatk_variant_select/gatk_variant_select_out_1.vcf
+++ b/test-data/gatk/gatk_variant_select/gatk_variant_select_out_1.vcf
@@ -1,6 +1,6 @@
 ##fileformat=VCFv4.1
 ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">
 ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
 ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
 ##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
@@ -10,7 +10,7 @@
 ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
 ##INFO=<ID=BaseQRankSum,Number=1,Type=Float,Description="Z-score from Wilcoxon rank sum test of Alt Vs. Ref base qualities">
 ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Filtered Depth">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth; some reads may have been filtered">
 ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
 ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
 ##INFO=<ID=FS,Number=1,Type=Float,Description="Phred-scaled p-value using Fisher's exact test to detect strand bias">
@@ -27,5 +27,6 @@
 ##contig=<ID=phiX174,length=5386>
 ##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
+##source=SelectVariants
 #CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	A Fake phiX Sample
-phiX174	1443	.	AC	.	0	.	AC=0;AF=0.00;AN=0;DP=0;MQ=37.74;MQ0=0;QD=0.00	GT:DP:PL	./.:10:0,0,0
+phiX174	1443	.	AC	.	0	.	AC=0;AF=0.00;AN=0;DB;DP=0;MQ=37.74;MQ0=0	GT	./.
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 tools/gatk/variant_annotator.xml
--- a/tools/gatk/variant_annotator.xml
+++ b/tools/gatk/variant_annotator.xml
@@ -25,13 +25,13 @@
     #if str( $annotations_type.annotations_type_selector ) == "use_all_annotations":
         --useAllAnnotations
     #else:
-        #if str( $annotations_type.annotations ) != "None":
+        #if $annotations_type.annotations:
             #for $annotation in str( $annotations_type.annotations.fields.gatk_value ).split( ',' ):
                 --annotation "${annotation}"
             #end for
         #end if
     #end if
-    #if str( $exclude_annotations ) != "None":
+    #if $exclude_annotations:
         #for $annotation in str( $exclude_annotations.fields.gatk_value ).split( ',' ):
             --excludeAnnotation "${annotation}"
         #end for
@@ -383,6 +383,7 @@
           <param name="input_variant_bti" /><param name="annotations_type_selector" value="choose" /><param name="annotations" value="AlleleBalance,BaseQualityRankSumTest,DepthOfCoverage,HomopolymerRun,MappingQualityRankSumTest,MappingQualityZero,QualByDepth,RMSMappingQuality,SpanningDeletions,HaplotypeScore" />
+          <param name="additional_annotations" value="0" /><param name="dbsnp_rod_bind_type_selector" value="set_dbsnp" /><param name="dbsnp_input_rod" value="gatk/fake_phiX_variant_locations.vcf" ftype="vcf" /><param name="snpEff_rod_bind_type_selector" value="exclude_snpEff" />
diff -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 -r 542cc69a44865797deb688a6b29c7aac603f6da2 tools/gatk/variants_validate.xml
--- a/tools/gatk/variants_validate.xml
+++ b/tools/gatk/variants_validate.xml
@@ -12,7 +12,7 @@
     -T "ValidateVariants"
     
     -et "NO_ET" ##ET no phone home
-    --num_threads 4 ##hard coded, for now
+    ##--num_threads 4 ##hard coded, for now
     ##-log "${output_log}" ##don't use this to log to file, instead directly capture stdout
     #if $reference_source.reference_source_selector != "history":
         -R "${reference_source.ref_file.fields.path}"
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: Ignore DrmCommunicationException when checking job state. Thanks Ed Kirton.
                        
                        
by Bitbucket 23 Jan '12
                    by Bitbucket 23 Jan '12
23 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/84ee6eeedb41/
changeset:   84ee6eeedb41
user:        natefoo
date:        2012-01-23 17:04:04
summary:     Ignore DrmCommunicationException when checking job state.  Thanks Ed Kirton.
affected #:  1 file
diff -r d56513828dc6f7c23b0e5b85f5ac33ce212587b7 -r 84ee6eeedb41b507c5e79d6f3e0d2a50a694adb6 lib/galaxy/jobs/runners/drmaa.py
--- a/lib/galaxy/jobs/runners/drmaa.py
+++ b/lib/galaxy/jobs/runners/drmaa.py
@@ -278,6 +278,9 @@
                 log.debug("(%s/%s) job left DRM queue with following message: %s" % ( galaxy_job_id, job_id, e ) )
                 self.work_queue.put( ( 'finish', drm_job_state ) )
                 continue
+            except drmaa.DrmCommunicationException, e:
+                log.warning("(%s/%s) unable to communicate with DRM: %s" % ( galaxy_job_id, job_id, e ))
+                continue
             except Exception, e:
                 # so we don't kill the monitor thread
                 log.exception("(%s/%s) Unable to check job status" % ( galaxy_job_id, job_id ) )
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
                            
                          
                          
                            
    
                          
                        
                    23 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/d56513828dc6/
changeset:   d56513828dc6
user:        greg
date:        2012-01-23 15:44:22
summary:     Fix for loading tools from tool config(s).
affected #:  1 file
diff -r 73bae197e5fe3a420cd90326d80c7a2173e619a8 -r d56513828dc6f7c23b0e5b85f5ac33ce212587b7 lib/galaxy/tools/__init__.py
--- a/lib/galaxy/tools/__init__.py
+++ b/lib/galaxy/tools/__init__.py
@@ -107,10 +107,11 @@
                 self.load_section_tag_set( elem, self.tool_panel, tool_path )
             elif elem.tag == 'label':
                 self.load_label_tag_set( elem, self.tool_panel )
-        shed_tool_conf_dict = dict( config_filename=config_filename,
-                                    tool_path=tool_path,
-                                    config_elems=config_elems )
-        self.shed_tool_confs.append( shed_tool_conf_dict )
+        if parsing_shed_tool_conf:
+            shed_tool_conf_dict = dict( config_filename=config_filename,
+                                        tool_path=tool_path,
+                                        config_elems=config_elems )
+            self.shed_tool_confs.append( shed_tool_conf_dict )
     def get_tool( self, tool_id, tool_version=None ):
         # Attempt to locate the tool in our in-memory dictionary.
         if tool_id in self.tools_by_id:
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 find valid chroms because this is computationally expensive and not currently used.
                        
                        
by Bitbucket 23 Jan '12
                    by Bitbucket 23 Jan '12
23 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/73bae197e5fe/
changeset:   73bae197e5fe
user:        jgoecks
date:        2012-01-23 01:48:05
summary:     Do not find valid chroms because this is computationally expensive and not currently used.
affected #:  1 file
diff -r 9b7a615b39648a2911c483f8d3b693931ca5c1b4 -r 73bae197e5fe3a420cd90326d80c7a2173e619a8 lib/galaxy/web/controllers/tracks.py
--- a/lib/galaxy/web/controllers/tracks.py
+++ b/lib/galaxy/web/controllers/tracks.py
@@ -535,6 +535,8 @@
         if msg:
             return msg
             
+        # NOTE: finding valid chroms is prohibitive for large summary trees and is not currently used by
+        # the client.
         valid_chroms = None
         # Check for data in the genome window.
         if data_sources.get( 'index' ):
@@ -543,15 +545,14 @@
             indexer = get_data_provider( tracks_dataset_type )( converted_dataset, dataset )
             if not indexer.has_data( chrom ):
                 return messages.NO_DATA
-            valid_chroms = indexer.valid_chroms()
+            #valid_chroms = indexer.valid_chroms()
         else:
             # Standalone data provider
             standalone_provider = get_data_provider( data_sources['data_standalone']['name'] )( dataset )
             kwargs = {"stats": True}
             if not standalone_provider.has_data( chrom ):
                 return messages.NO_DATA
-            valid_chroms = standalone_provider.valid_chroms()
-
+            #valid_chroms = standalone_provider.valid_chroms()
             
         # Have data if we get here
         return { "status": messages.DATA, "valid_chroms": valid_chroms }
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: fix bugs in summary tree display & pack script.
                        
                        
by Bitbucket 22 Jan '12
                    by Bitbucket 22 Jan '12
22 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/9b7a615b3964/
changeset:   9b7a615b3964
user:        jgoecks
date:        2012-01-22 22:21:59
summary:     Trackster: fix bugs in summary tree display & pack script.
affected #:  2 files
diff -r 34db794299d3b79e1c9a92fff65e6222c70f4031 -r 9b7a615b39648a2911c483f8d3b693931ca5c1b4 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 is_deferred=function(a){return("isResolved" in a)};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 n=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(v,u,w,s,i,t){return(Math.max(v,s)-Math.min(v,s))+(Math.max(u,i)-Math.min(u,i))+(Math.max(w,t)-Math.min(w,t))};var g,o,f,k,q,h,r,c,d,b,p,m=false,l=0;do{g=Math.round(Math.random()*16777215);o=(g&16711680)>>16;f=(g&65280)>>8;k=g&255;d=n(o,f,k);m=true;for(var j=0;j<a.length;j++){q=a[j];h=(q&16711680)>>16;r=(q&65280)>>8;c=q&255;b=n(h,r,c);p=e(o,f,k,h,r,c);if((Math.abs(d-b)<40)||(p<200)){m=false;break}}l++}while(!m&&l<=10);return"#"+(16777216+g).toString(16).substr(1,6)};var create_action_icon=function(c,b,a){return $("<a/>").attr("href","javascript:void(0);").attr("title",c).addClass("icon-button").addClass(b).tipsy({gravity:"s"}).click(a)};var trackster_module=function(e,X){var p=e("class").extend,s=e("slotting"),L=e("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,F=9,C=20,T=F+2,y=100,I=12000,Q=200,A=5,u=10,K=5000,v=100,o="There was an error in indexing this dataset. ",J="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",D="No data for this chrom/contig.",t="Currently indexing... please wait",w="Tool cannot be rerun: ",a="Loading data...",Y="Ready for display",R=10,H=20;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,aq)})},get_data:function(af,aj,ak,ag,ai){var ah=this.get(af,aj);if(ah&&(is_deferred(ah)||this.track.data_and_mode_compatible(ah,ak))){return ah}ah=this.load_data(af,aj,ak,ag,ai);this.set_data(af,aj,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(an,ai);if(!(ao&&this.track.data_and_mode_compatible(ao,am))){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,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,ap);new_data_available.resolve(ap)});return new_data_available},get:function(af,ag){return c.prototype.get.call(this,this.gen_key(af,ag))},set_data:function(ag,ah,af){return this.set(this.gen_key(ag,ah),af)},gen_key:function(af,ah){var ag=af+"_"+ah;return ag},split_key:function(af){return af.split("_")}});var G=function(ag,af,ah){S.call(this,ag,af,ah)};p(G.prototype,S.prototype,c.prototype,{get:S.prototype.get,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 E({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.action_icons={};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=$("<div/>").css("float","left").hide().appendTo(this.header_div);this.build_action_icons(this.action_icons_def);this.header_div.append($("<div style='clear: both'/>"));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)}};q.prototype.action_icons_def=[{name:"toggle_icon",title:"Hide/show content",css_class:"toggle",on_click_fn:function(af){if(af.content_visible){af.action_icons.toggle_icon.addClass("toggle-expand").removeClass("toggle");af.hide_contents();af.content_visible=false}else{af.action_icons.toggle_icon.addClass("toggle").removeClass("toggle-expand");af.content_visible=true;af.show_contents()}}},{name:"settings_icon",title:"Edit settings",css_class:"settings-icon",on_click_fn:function(ag){var ai=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},af=function(){ag.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ah=function(aj){if((aj.keyCode||aj.which)===27){ai()}else{if((aj.keyCode||aj.which)===13){af()}}};$(window).bind("keypress.check_enter_esc",ah);show_modal("Configure",ag.config.build_form(),{Cancel:ai,OK:af})}},{name:"remove_icon",title:"Remove",css_class:"remove-icon",on_click_fn:function(af){$(".tipsy").remove();af.remove()}}];p(q.prototype,{init:function(){},can_draw:function(){if(this.enabled&&this.content_visible){return true}return false},request_draw:function(){},_draw:function(){},to_dict:function(){},from_dict:function(af){},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(){},add_action_icon:function(ag,ak,aj,ai,af){var ah=this;this.action_icons[ag]=$("<a/>").attr("href","javascript:void(0);").attr("title",ak).addClass("icon-button").addClass(aj).tipsy({gravity:"s"}).click(function(){ai(ah)}).appendTo(this.icons_div)},build_action_icons:function(af){var ah;for(var ag=0;ag<af.length;ag++){ah=af[ag];this.add_action_icon(ah.name,ah.title,ah.css_class,ah.on_click_fn,ah.prepend)}},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var x=function(aj,ai,ag,af,ah,ak){q.call(this,ai,ag,af,ah,ak);this.obj_type=aj;this.drawables=[]};p(x.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_dict:function(){var ag=[];for(var af=0;af<this.drawables.length;af++){ag.push(this.drawables[af].to_dict())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:ag}},from_dict:function(al,af){var ak=new this.constructor(al.name,view,af,al.prefs,view.viewport_container,view);var ag,aj,ai;for(var ah=0;ah<al.drawables.length;ah++){ag=al.drawables[ah];aj=ag.obj_type;if(!aj){aj=ag.track_type}ai=addable_objects[aj].prototype.from_dict(ag,ak);ak.add_drawable(ai)}return ak},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},replace_drawable:function(ah,af,ag){var ai=this.drawables.indexOf(ah);if(ai!==-1){this.drawables[ai]=af;if(ag){ah.container_div.replaceWith(af.container_div)}}return ai},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 P=function(ai,ag,af,ah){x.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(P.prototype,q.prototype,x.prototype,{action_icons_def:[{name:"composite_icon",title:"Show composite track",css_class:"layers-stack",on_click_fn:function(af){af.show_composite_track()}}].concat(q.prototype.action_icons_def),build_container_div:function(){var af=$("<div/>").addClass("group").attr("id","group_"+this.id);if(this.container){this.container.content_div.append(af)}return af},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},hide_contents:function(){this.content_div.hide()},show_contents:function(){this.content_div.show();this.request_draw()},update_icons:function(){var ah,aj=true,ai=this.drawables[0].get_type(),af=0;for(var ag=0;ag<this.drawables.length;ag++){ah=this.drawables[ag];if(ah.get_type()!==ai){can_composite=false;break}if(ah instanceof d){af++}}if(aj||af===1){this.action_icons.composite_icon.show()}else{this.action_icons.composite_icon.hide();$(".tipsy").remove()}},show_composite_track:function(){var af=new h("Composite Track",this.view,this,this.drawables);this.add_drawable(af);af.request_draw()},add_drawable:function(af){x.prototype.add_drawable.call(this,af);this.update_icons()},remove_drawable:function(af){x.prototype.remove_drawable.call(this,af);this.update_icons()},from_dict:function(ai,af){var ah=x.prototype.from_dict.call(this,ai,af);for(var ag=0;ag<ah.drawables.length;ag++){ah.content_div.append(ah.drawables[ag].container_div)}return ah}});var ac=function(af,ai,ah,ag){x.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,x.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=v;ah.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 z(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 '+v+"</option>"}if(aj.next_chroms){am+='<option value="next">Next '+v+"</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-v});return}if(ak==="next"){ah.load_chroms({low:this.chrom_start_index+v});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){x.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){x.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(A,Math.ceil(Math.log((this.high-this.low)/Q)/Math.log(A)));this.zoom_res=Math.pow(u,Math.max(0,Math.ceil(Math.log(this.resolution,u)/Math.log(u))));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.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()};af.overview_drawable.request_draw();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 f(ag,ar,aj,au,an.min,an.max)}else{if(ap=="select"){this.params[this.params.length]=new N(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("param-input").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},ak=this.track,ah=ag.tool_id+ak.tool_region_and_parameters_str(ag.chrom,ag.low,ag.high),af;if(ak.container===view){var aj=new P(this.name,this.track.view);var ai=ak.container.replace_drawable(ak,aj,false);aj.container_div.insertBefore(ak.view.content_div.children()[ai]);aj.add_drawable(ak);ak.container_div.appendTo(aj.content_div);af=aj}else{af=ak.container}var al=new ak.constructor(ah,view,af,"hda");al.init_for_tool_data();al.change_mode(ak.mode);af.add_drawable(al);al.content_div.text("Starting job.");this.run(ag,al,function(am){al.dataset_id=am.dataset_id;al.content_div.text("Running job.");al.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(J)}else{if(aj.error){ah.container_div.addClass("error");ah.content_div.text(w+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 N=function(ag,af,ah,ai){this.name=ag;this.label=af;this.html=ah;this.value=ai};var f=function(ah,ag,aj,ak,ai,af){N.call(this,ah,ag,aj,ak);this.min=ai;this.max=af};var g=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){g.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(ah,aq){this.track=ah;this.filters=[];for(var al=0;al<aq.length;al++){var af=aq[al],ag=af.name,ap=af.type,an=af.index,at=af.tool_id,ai=af.tool_exp_name;if(ap==="int"||ap==="float"){this.filters[al]=new V(ag,an,at,ai)}else{console.log("ERROR: unsupported filter: ",ag,ap)}}var ao=function(au,av,aw){au.click(function(){var ax=av.text();max=parseFloat(aw.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(aw.slider("option","values")){input_size=2*input_size+1;multi_value=true}av.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",ax).appendTo(av).focus().select().click(function(ay){ay.stopPropagation()}).blur(function(){$(this).remove();av.text(ax)}).keyup(function(aC){if(aC.keyCode===27){$(this).trigger("blur")}else{if(aC.keyCode===13){var aA=aw.slider("option","min"),ay=aw.slider("option","max"),aB=function(aD){return(isNaN(aD)||aD>ay||aD<aA)},az=$(this).val();if(!multi_value){az=parseFloat(az);if(aB(az)){alert("Parameter value must be in the range ["+aA+"-"+ay+"]");return $(this)}}else{az=az.split("-");az=[parseFloat(az[0]),parseFloat(az[1])];if(aB(az[0])||aB(az[1])){alert("Parameter value must be in the range ["+aA+"-"+ay+"]");return $(this)}}aw.slider((multi_value?"values":"value"),az)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(au){au.stopPropagation()}).click(function(au){au.stopPropagation()}).bind("dblclick",function(au){au.stopPropagation()}).bind("keydown",function(au){au.stopPropagation()});var aj=this;$.each(this.filters,function(aA,av){av.container=$("<div/>").addClass("filter-row slider-row").appendTo(aj.parent_div);var au=$("<div/>").addClass("elt-label").appendTo(av.container);var aD=$("<span/>").addClass("slider-name").text(av.name+"  ").appendTo(au);var aw=$("<span/>");var ax=$("<span/>").addClass("slider-value").appendTo(au).append("[").append(aw).append("]");var aC=$("<div/>").addClass("slider").appendTo(av.container);av.control_element=$("<div/>").attr("id",av.name+"-filter-control").appendTo(aC);var ay=[0,0];av.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aG,aH){var aF=aH.values;aw.text(aF[0]+"-"+aF[1]);av.low=aF[0];av.high=aF[1];aj.track.request_draw(true,true)},change:function(aF,aG){av.control_element.slider("option","slide").call(av.control_element,aF,aG)}});av.slider=av.control_element;av.slider_label=aw;ao(ax,aw,av.control_element);var aE=$("<div/>").addClass("display-controls").appendTo(av.container),az=create_action_icon("Use filter for data transparency","layer-transparent",function(){if(aj.alpha_filter!==av){aj.alpha_filter=av;$(".layer-transparent").removeClass("active").hide();az.addClass("active").show()}else{aj.alpha_filter=null;az.removeClass("active")}aj.track.request_draw(true,true)}).appendTo(aE).hide(),aB=create_action_icon("Use filter for data height","arrow-resize-090",function(){if(aj.height_filter!==av){aj.height_filter=av;$(".arrow-resize-090").removeClass("active").hide();aB.addClass("active").show()}else{aj.height_filter=null;aB.removeClass("active")}aj.track.request_draw(true,true)}).appendTo(aE).hide();av.container.hover(function(){az.show();aB.show()},function(){if(aj.alpha_filter!==av){az.hide()}if(aj.height_filter!==av){aB.hide()}});$("<div style='clear: both;'/>").appendTo(av.container)});if(this.filters.length!==0){var ar=$("<div/>").addClass("param-row").appendTo(this.parent_div);var am=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(ar);var ak=this;am.click(function(){ak.run_on_dataset()})}};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 B=function(af,ag){L.Scaler.call(this,ag);this.filter=af};B.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 E=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(E.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(al,aj){for(var an=0;an<al.length;an++){ah=al[an];if(ah.hidden){continue}var ak="param_"+an;var ar=ai.values[ah.key];var at=$("<div class='form-row' />").appendTo(aj);at.append($("<label />").attr("for",ak).text(ah.label+":"));if(ah.type==="bool"){at.append($('<input type="checkbox" />').attr("id",ak).attr("name",ak).attr("checked",ar))}else{if(ah.type==="text"){at.append($('<input type="text"/>').attr("id",ak).val(ar).click(function(){$(this).select()}))}else{if(ah.type=="select"){var ap=$("<select />").attr("id",ak);for(var am=0;am<ah.options.length;am++){$("<option/>").text(ah.options[am].label).attr("value",ah.options[am].value).appendTo(ap)}ap.val(ar);at.append(ap)}else{if(ah.type==="color"){var ao=$("<input />").attr("id",ak).attr("name",ak).val(ar);var aq=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();(function(au,av){var ax=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(av);var aw=$("<div/>").appendTo(ax).farbtastic({width:100,height:100,callback:au,color:ar});$("<div />").append(au).append(av).appendTo(at).bind("click",function(ay){$(".tipsy").hide();av.css({left:$(this).position().left+$(au).width()+5,top:$(this).position().top-($(av).height()/2)+($(au).height()/2)}).show();$(document).bind("click.color-picker",function(){av.hide();$(document).unbind("click.color-picker")});ay.stopPropagation()})})(ao,aq)}else{at.append($("<input />").attr("id",ak).attr("name",ak).val(ar))}}}}if(ah.help){at.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*Q*ah;this.high=(ai+1)*Q*ah;this.resolution=ah;this.html_elt=$("<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 O=function(ai,an,aj,ah,al,at,am,au,ag,aq){b.call(this,ai,an,aj,ah,al);this.mode=am;this.feature_mapper=aq;this.has_icons=false;if(au||!ag){this.has_icons=true;var ao=this;ah=this.html_elt.children()[0],message_div=$("<div/>").addClass("tile-message").css({height:C-1,width:ah.width}).prependTo(this.html_elt);if(!ag){var ap=$("<a href='javascript:void(0);'/>").addClass("icon exclamation").attr("title","To minimize track height, not all features in this region are displayed. Click to display more.").tipsy({gravity:"s"}).appendTo(message_div).click(function(){$(".tipsy").hide();ao.track.slotters[at].max_rows*=2;ao.track.request_draw(true)})}if(au){var ar=al.length,ak=$("<a href='javascript:void(0);'/>").addClass("icon more-down").attr("title","For speed, only the first "+ar+" features in this region were obtained from server. Click to get more data including depth").tipsy({gravity:"s"}).appendTo(message_div),af=$("<a href='javascript:void(0);'/>").addClass("icon more-across").attr("title","For speed, only the first "+ar+" features in this region were obtained from server. Click to get more data excluding depth").tipsy({gravity:"s"}).appendTo(message_div);ak.click(function(){ao.stale=true;ai.data_manager.get_more_data(ao.low,ao.high,ai.mode,ao.resolution,{},ai.data_manager.DEEP_DATA_REQ);$(".tipsy").hide();ai.request_draw()}).dblclick(function(av){av.stopPropagation()});af.click(function(){ao.stale=true;ai.data_manager.get_more_data(ao.low,ao.high,ai.mode,ao.resolution,{},ai.data_manager.BROAD_DATA_REQ);$(".tipsy").hide();ai.request_draw()}).dblclick(function(av){av.stopPropagation()})}}};p(O.prototype,b.prototype);O.prototype.predisplay_actions=function(){var ag=this,af={};if(ag.mode!=="Pack"){return}$(this.html_elt).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.html_elt).parent());var aj=aq+parseInt(ag.html_elt.css("left"))-ai.width()/2,ah=ap+parseInt(ag.html_elt.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,ak,aj,al){q.call(this,ai,ag,af,{},"draghandle");this.data_url=(aj?aj:default_data_url);this.data_url_extra_params={};this.data_query_wait=(al?al:K);this.dataset_check_url=converted_datasets_state_url;this.data_manager=(ak?ak:new S(H,this));this.content_div=$("<div class='track-content'>").appendTo(this.container_div);if(this.container){this.container.content_div.append(this.container_div)}};p(i.prototype,q.prototype,{action_icons_def:[{name:"mode_icon",title:"Set display mode",css_class:"chevron-expand",on_click_fn:function(){}},q.prototype.action_icons_def[0],{name:"overview_icon",title:"Set as overview",css_class:"overview-icon",on_click_fn:function(af){af.view.set_overview(af)}},q.prototype.action_icons_def[1],{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(af){af.filters_div.toggle();af.filters_manager.reset_filters()}},{name:"tools_icon",title:"Tools",css_class:"tools-icon",on_click_fn:function(af){af.dynamic_tool_div.toggle();if(af.dynamic_tool_div.is(":visible")){af.set_name(af.name+af.tool_region_and_parameters_str())}else{af.revert_name()}$(".tipsy").remove()}},q.prototype.action_icons_def[2]],can_draw:function(){if(this.dataset_id&&q.prototype.can_draw.call(this)){return true}return false},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_action_icons:function(){q.prototype.build_action_icons.call(this,this.action_icons_def);var ag=this;if(ag.display_modes!==undefined){var ak=(ag.config&&ag.config.values.mode?ag.config.values.mode:ag.display_modes[0]);ag.mode=ak;this.action_icons.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 aj=ag.display_modes[ah];ai[aj]=function(al){return function(){ag.change_mode(al);ag.icons_div.show();ag.container_div.mouseleave(function(){ag.icons_div.hide()})}}(aj)}make_popupmenu(this.action_icons.mode_icon,ai)}},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 z){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 h){return"CompositeTrack"}else{if(this instanceof d){return"FeatureTrack"}}}}}}}return""},init:function(){var af=this;af.enabled=false;af.tile_cache.clear();af.data_manager.clear();af.content_div.css("height","auto");af.content_div.children().remove();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(J)}else{if(ag==="no data"||(ag.data!==undefined&&(ag.data===null||ag.data.length===0))){af.container_div.addClass("nodata");af.content_div.text(D)}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 M=function(aj,ah,ag,ai,am,al,ak){i.call(this,aj,ah,ag,ai,ak);var af=this,ah=af.view;m(af.container_div,af.drag_handle_class,".group",af);this.filters_manager=new aa(this,(am!==undefined?am:{}));this.filters_available=false;this.filters_visible=false;this.tool=(al!==undefined&&obj_length(al)>0?new r(this,al):undefined);this.tile_cache=new c(R);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(M.prototype,q.prototype,i.prototype,{copy:function(af){var ag=new this.constructor(this.name,this.view,af,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool,this.data_manager);ag.change_mode(this.mode);ag.enabled=this.enabled;return ag},to_dict: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,}},from_dict:function(ah,ag){var af=new this.constructor(ah.name,view,ag,ah.hda_ldda,ah.dataset_id,ah.prefs,ah.filters,ah.tool);if(ah.mode){af.change_mode(ah.mode)}return af},change_mode:function(ag){var af=this;af.mode=ag;af.config.values.mode=ag;af.tile_cache.clear();af.request_draw();this.action_icons.mode_icon.attr("title","Set display mode (now: "+af.mode+")");return af},update_icons:function(){var af=this;if(af.filters_available){af.action_icons.filters_icon.show()}else{af.action_icons.filters_icon.hide()}if(af.tool){af.action_icons.tools_icon.show()}else{af.action_icons.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,ar){if(!this.can_draw()){return}var ap=this.view.low,al=this.view.high,an=al-ap,ai=this.view.container.width(),av=ai/an,ak=this.view.resolution,au=this.content_div;if(this.is_overview){ap=this.view.max_low;al=this.view.max_high;ak=Math.pow(A,Math.ceil(Math.log((view.max_high-view.max_low)/Q)/Math.log(A)));av=ai/(view.max_high-view.max_low)}if(!ar){this.content_div.children().addClass("remove")}this.max_height=0;var ag=Math.floor(ap/ak/Q);var ao=true;var at=[];var af=0;var am=function(aw){return(aw&&"track" in aw)};while((ag*Q*ak)<al){var aq=this.draw_helper(ah,ai,ag,ak,au,av);if(am(aq)){at.push(aq)}else{ao=false}ag+=1;af++}if(!ar){this.content_div.children(".remove").remove()}var aj=this;if(ao){aj.postdraw_actions(at,ai,av,ar)}},postdraw_actions:function(ai,aj,al,af){var ah=this;var ak=false;for(var ag=0;ag<ai.length;ag++){if(ai[ag].has_icons){ak=true;break}}if(ak){for(var ag=0;ag<ai.length;ag++){tile=ai[ag];if(!tile.has_icons){tile.html_elt.css("padding-top",C)}}}},draw_helper:function(af,ar,ax,av,ak,al,at){var aq=this,aA=this._gen_tile_cache_key(ar,al,ax),ay=ax*Q*av,ag=ay+Q*av;if(!at){at={}}var az=(af?undefined:aq.tile_cache.get(aA));if(az){aq.show_tile(az,ak,al);return az}var ao=true;var aw=aq.data_manager.get_data(ay,ag,aq.mode,av,aq.data_url_extra_params);if(is_deferred(aw)){ao=false}var am;if(view.reference_track&&al>view.canvas_manager.char_width_px){am=view.reference_track.data_manager.get_data(ay,ag,aq.mode,av,view.reference_track.data_url_extra_params);if(is_deferred(am)){ao=false}}if(ao){p(aw,at.more_tile_data);var an=aq.mode;if(an==="Auto"){an=aq.get_mode(aw);aq.update_auto_mode(an)}var ah=aq.view.canvas_manager.new_canvas(),ai=aq._get_tile_bounds(ax,av),ay=ai[0],ag=ai[1],ar=Math.ceil((ag-ay)*al)+aq.left_offset,ap=aq.get_canvas_height(aw,an,al,ar);ah.width=ar;ah.height=ap;var au=ah.getContext("2d");au.translate(this.left_offset,0);var az=aq.draw_tile(aw,au,an,av,ax,al,am);if(az!==undefined){aq.tile_cache.set(aA,az);aq.show_tile(az,ak,al)}return az}var aj=$.Deferred();$.when(aw,am).then(function(){view.request_redraw(false,false,false,aq);aj.resolve()});return aj},get_canvas_height:function(af,ah,ai,ag){return this.height_px},draw_tile:function(af,ah,ak,aj,ag,al,ai){console.log("Warning: TiledTrack.draw_tile() not implemented.")},show_tile:function(ah,aj,ak){var ag=this,af=ah.html_elt;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*Q*ag,aj=Q*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(", ")+"]"},data_and_mode_compatible:function(af,ag){return true},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=K;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 h=function(ai,ah,ag,af){this.display_modes=af[0].display_modes;M.call(this,ai,ah,ag);this.drawables=[];this.left_offset=0;if(af){var al=[],ak;for(var aj=0;aj<af.length;aj++){ak=af[aj];al.push(ak.dataset_id);this.drawables[aj]=ak.copy();if(ak.left_offset>this.left_offset){this.left_offset=ak.left_offset}}this.enabled=true}this.update_icons();this.obj_type="CompositeTrack"};p(h.prototype,M.prototype,{to_dict:x.prototype.to_dict,add_drawable:x.prototype.add_drawable,from_dict:function(al,af){var ak=new this.constructor(al.name,view,af,al.prefs,view.viewport_container,view);var ag,aj,ai;for(var ah=0;ah<al.drawables.length;ah++){ag=al.drawables[ah];aj=ag.obj_type;if(!aj){aj=ag.track_type}ai=addable_objects[aj].prototype.from_dict(ag);ak.add_drawable(ai)}return ak},change_mode:function(af){M.prototype.change_mode.call(this,af);for(var ag=0;ag<this.drawables.length;ag++){this.drawables[ag].change_mode(af)}},init:function(){this.enabled=true;this.request_draw()},update_icons:function(){this.action_icons.filters_icon.hide();this.action_icons.tools_icon.hide()},can_draw:q.prototype.can_draw,draw_helper:function(ag,av,aB,ay,am,ao,aw){var au=this,aF=this._gen_tile_cache_key(av,ao,aB),aC=aB*Q*ay,ah=aC+Q*ay;if(!aw){aw={}}var aE=(ag?undefined:au.tile_cache.get(aF));if(aE){au.show_tile(aE,am,ao);return aE}var an=[],au,ar=true,az,ap;for(var aA=0;aA<this.drawables.length;aA++){au=this.drawables[aA];az=au.data_manager.get_data(aC,ah,au.mode,ay,au.data_url_extra_params);if(is_deferred(az)){ar=false}an.push(az);ap=null;if(view.reference_track&&ao>view.canvas_manager.char_width_px){ap=view.reference_track.data_manager.get_data(aC,ah,au.mode,ay,view.reference_track.data_url_extra_params);if(is_deferred(ap)){ar=false}}an.push(ap)}if(ar){p(az,aw.more_tile_data);this.tile_predraw_init();var aj=au.view.canvas_manager.new_canvas(),ak=au._get_tile_bounds(aB,ay),aC=ak[0],ah=ak[1],aD=0,av=Math.ceil((ah-aC)*ao)+this.left_offset,at=0,ai=[];var af=0;for(var aA=0;aA<this.drawables.length;aA++,aD+=2){au=this.drawables[aA];az=an[aD];var aq=au.mode;if(aq==="Auto"){aq=au.get_mode(az);au.update_auto_mode(aq)}ai.push(aq);af=au.get_canvas_height(az,aq,ao,av);if(af>at){at=af}}aj.width=av;aj.height=(aw.height?aw.height:at);aD=0;var ax=aj.getContext("2d");ax.translate(this.left_offset,0);ax.globalAlpha=0.5;ax.globalCompositeOperation="source-over";for(var aA=0;aA<this.drawables.length;aA++,aD+=2){au=this.drawables[aA];az=an[aD];ap=an[aD+1];aE=au.draw_tile(az,ax,ai[aA],ay,aB,ao,ap)}this.tile_cache.set(aF,aE);this.show_tile(aE,am,ao);return aE}var al=$.Deferred(),au=this;$.when.apply($,an).then(function(){view.request_redraw(false,false,false,au);al.resolve()});return al},tile_predraw_init:function(){var ai=Number.MAX_VALUE,af=-ai,ag;for(var ah=0;ah<this.drawables.length;ah++){ag=this.drawables[ah];if(ag instanceof j){if(ag.prefs.min_value<ai){ai=ag.prefs.min_value}if(ag.prefs.max_value>af){af=ag.prefs.max_value}}}for(var ah=0;ah<this.drawables.length;ah++){ag=this.drawables[ah];ag.prefs.min_value=ai;ag.prefs.max_value=af}},postdraw_actions:function(ah,ak,am,ag){M.prototype.postdraw_actions.call(this,ah,ak,am,ag);var aj=-1;for(var ai=0;ai<ah.length;ai++){var af=ah[ai].html_elt.find("canvas").height();if(af>aj){aj=af}}for(var ai=0;ai<ah.length;ai++){var al=ah[ai];if(al.html_elt.find("canvas").height()!==aj){this.draw_helper(true,ak,al.index,al.resolution,al.html_elt.parent(),am,{height:aj});al.html_elt.remove()}}}});var z=function(af){M.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 G(H,this,false)};p(z.prototype,q.prototype,M.prototype,{build_header_div:function(){},init:function(){this.enabled=true},can_draw:q.prototype.can_draw,draw_tile:function(an,ao,ak,aj,ag,ap){var ai=this;if(ap>this.view.canvas_manager.char_width_px){if(an.data===null){ai.content_div.css("height","0px");return}var ah=ao.canvas;ao.font=ao.canvas.manager.default_font;ao.textAlign="center";an=an.data;for(var al=0,am=an.length;al<am;al++){var af=Math.round(al*ap);ao.fillText(an[al],af,10)}return new b(ai,ag,aj,ah,an)}this.content_div.css("height","0px")}});var j=function(af,am,ag,al,ao,an,aj,ak,ah){var ai=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";M.call(this,af,am,ag,an,aj,ak,ah);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=al;this.dataset_id=ao;this.original_dataset_id=ao;this.left_offset=0;this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:af},{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:an,onchange:function(){ai.set_name(ai.prefs.name);ai.vertical_range=ai.prefs.max_value-ai.prefs.min_value;$("#linetrack_"+ai.dataset_id+"_minval").text(ai.prefs.min_value);$("#linetrack_"+ai.dataset_id+"_maxval").text(ai.prefs.max_value);ai.tile_cache.clear();ai.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,M.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(ap,an,ak,ai,ag,ao){if(this.vertical_range===undefined){return}var ah=an.canvas,af=this._get_tile_bounds(ag,ai),aj=af[0],am=af[1],al=new L.LinePainter(ap.data,aj,am,this.prefs,ak);al.draw(an,ah.width,ah.height,ao);return new b(this.track,ag,ai,ah,ap.data)}});var d=function(af,am,ag,al,ao,an,aj,ak,ah){var ai=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];M.call(this,af,am,ag,an,aj,ak,ah);this.config=new E({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:an,onchange:function(){ai.set_name(ai.prefs.name);ai.tile_cache.clear();ai.set_painter_from_config();ai.request_draw()}});this.prefs=this.config.values;this.height_px=0;this.container_div.addClass("feature-track");this.hda_ldda=al;this.dataset_id=ao;this.original_dataset_id=ao;this.show_labels_scale=0.001;this.showing_details=false;this.summary_draw_height=30;this.slotters={};this.start_end_dct={};this.left_offset=200;this.set_painter_from_config()};p(d.prototype,q.prototype,M.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=L.ArcLinkedFeaturePainter}else{this.painter=L.LinkedFeaturePainter}},postdraw_actions:function(at,an,aj,ah){M.prototype.postdraw_actions.call(this,at,ah);var am=this;if(ah){var ax=am.content_div.children();var aw=false;for(var ap=ax.length-1,aq=0;ap>=aq;ap--){var ai=$(ax[ap]);if(aw){ai.remove()}else{if(ai.children().length!==0){aw=true}}}}if(am.mode=="Histogram"){var ag=-1;for(var ap=0;ap<at.length;ap++){var ao=at[ap].max_val;if(ao>ag){ag=ao}}for(var ap=0;ap<at.length;ap++){var av=at[ap];if(av.max_val!==ag){av.html_elt.remove();am.draw_helper(true,an,av.index,av.resolution,av.html_elt.parent(),aj,{more_tile_data:{max:ag}})}}}if(am.filters_manager){var ak=am.filters_manager.filters;for(var ar=0;ar<ak.length;ar++){ak[ar].update_ui_elt()}var au=false,af,al;for(var ap=0;ap<at.length;ap++){if(at[ap].data.length){af=at[ap].data[0];for(var ar=0;ar<ak.length;ar++){al=ak[ar];if(al.applies_to(af)&&al.min!==al.max){au=true;break}}}}if(am.filters_available!==au){am.filters_available=au;if(!am.filters_available){am.filters_div.hide()}am.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.action_icons.mode_icon.attr("title","Set display mode (now: Auto/"+af+")")}},incremental_slots:function(aj,af,ai){var ag=this.view.canvas_manager.dummy_context,ah=this.slotters[aj];if(!ah||(ah.mode!==ai)){ah=new (s.FeatureSlotter)(aj,ai,y,function(ak){return ag.measureText(ak)});this.slotters[aj]=ah}return ah.slot_features(af)},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}},get_mode:function(af){if(af.dataset_type==="summary_tree"){mode="summary_tree"}else{if(af.extra_info==="no_detail"||this.is_overview){mode="no_detail"}else{if(this.view.high-this.view.low>I){mode="Squish"}else{mode="Pack"}}}return mode},get_canvas_height:function(af,aj,ak,ag){if(aj==="summary_tree"||aj==="Histogram"){return this.summary_draw_height+T}else{var ai=this.incremental_slots(ak,af.data,aj);var ah=new (this.painter)(null,null,null,this.prefs,aj);return Math.max(ad,ah.get_required_height(ai,ag))}},draw_tile:function(ar,aw,au,ax,aB,an,ai){var av=this,ah=aw.canvas,ak=this._get_tile_bounds(aB,ax),aE=ak[0],ag=ak[1],aJ=25,aj=this.left_offset;if(au==="summary_tree"||au==="Histogram"){this.container_div.find(".yaxislabel").remove();var af=$("<div />").addClass("yaxislabel");af.text(ar.max);af.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});af.prependTo(this.container_div);if(ar.dataset_type!="summary_tree"){var ao=this.get_summary_tree_data(ar.data,aE,ag,200);if(ar.max){ao.max=ar.max}ar=ao}var aG=new L.SummaryTreePainter(ar,aE,ag,this.prefs);aw.translate(0,T);aG.draw(aw,ah.width,ah.height,an);return new k(av,aB,ax,ah,ar.data,ar.max)}var am=[],at=this.slotters[an].slots;all_slotted=true;if(ar.data){var ap=this.filters_manager.filters;for(var ay=0,aA=ar.data.length;ay<aA;ay++){var al=ar.data[ay];var az=false;var aq;for(var aD=0,aI=ap.length;aD<aI;aD++){aq=ap[aD];aq.update_attrs(al);if(!aq.keep(al)){az=true;break}}if(!az){am.push(al);if(!(al[0] in at)){all_slotted=false}}}}var aH=(this.filters_manager.alpha_filter?new B(this.filters_manager.alpha_filter):null);var aF=(this.filters_manager.height_filter?new B(this.filters_manager.height_filter):null);var aG=new (this.painter)(am,aE,ag,this.prefs,au,aH,aF,ai);var aC=null;aw.fillStyle=this.prefs.block_color;aw.font=aw.canvas.manager.default_font;aw.textAlign="right";this.container_div.find(".yaxislabel").remove();if(ar.data){aC=aG.draw(aw,ah.width,ah.height,an,at);aC.translation=-aj}return new O(av,aB,ax,ah,ar.data,an,au,ar.message,all_slotted,aC)},data_and_mode_compatible:function(af,ag){if(ag==="Auto"){return true}else{if(af.extra_info==="no_detail"||af.dataset_type==="summary_tree"){return false}else{return true}}},});var U=function(af,al,ag,ak,an,am,ai,aj,ah){d.call(this,af,al,ag,ak,an,am,ai,aj,ah);this.config=new E({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_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: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=L.ReadPainter};p(U.prototype,q.prototype,M.prototype,d.prototype);var W=function(af,al,ag,ak,ao,an,ai,ah){d.call(this,af,al,ag,ak,ao,an,ai,ah);var aj=get_random_color(),am=get_random_color([aj,"#ffffff"]);this.config=new E({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:aj},{key:"reverse_strand_color",label:"Antisense strand color",type:"color",default_value:am},{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:an,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=L.ReadPainter;this.update_icons()};p(W.prototype,q.prototype,M.prototype,d.prototype);X.View=ac;X.DrawableGroup=P;X.LineTrack=j;X.FeatureTrack=d;X.ReadTrack=W;X.VcfTrack=U;X.CompositeTrack=h};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.mode=h;this.include_label=(h==="Pack");this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,h=this.start_end_dct,x=[],z=[],n=0,y=this.max_rows;for(var v=0,w=m.length;v<w;v++){var k=m[v],o=k[0];if(this.slots[o]!==undefined){n=Math.max(n,this.slots[o]);z.push(this.slots[o])}else{x.push(v)}}var q=function(E,F){for(var D=0;D<=y;D++){var B=false,G=h[D];if(G!==undefined){for(var A=0,C=G.length;A<C;A++){var i=G[A];if(F>i[0]&&E<i[1]){B=true;break}}}if(!B){return D}}return -1};for(var v=0,w=x.length;v<w;v++){var k=m[x[v]],o=k[0],t=k[1],f=k[2],r=k[3],g=Math.floor(t*p),l=Math.ceil(f*p),u=this.measureText(r).width,j;if(r!==undefined&&this.include_label){u+=(d+a);if(g-u>=0){g-=u;j="left"}else{l+=u;j="right"}}var s=q(g,l);if(s>=0){if(h[s]===undefined){h[s]=[]}h[s].push([g,l]);this.slots[o]=s;n=Math.max(n,s)}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={};l.prototype.draw=function(z,A,y,B){};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,N){var E=this.view_start,O=this.view_end-this.view_start;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(S,Q,N,D){var I=false,K=this.prefs.min_value,F=this.prefs.max_value,M=F-K,B=N,C=this.view_start,P=this.view_end-this.view_start,L=this.mode,aa=this.data;S.save();var ac=Math.round(N+K/M*N);if(L!=="Intensity"){S.fillStyle="#aaa";S.fillRect(0,ac,Q,1)}S.beginPath();var Y,G,E;if(aa.length>1){E=Math.ceil((aa[1][0]-aa[0][0])*D)}else{E=10}var A=parseInt(this.prefs.color.slice(1),16),H=(A&16711680)>>16,R=(A&65280)>>8,V=A&255;for(var T=0,U=aa.length;T<U;T++){S.fillStyle=S.strokeStyle=this.prefs.color;Y=Math.round((aa[T][0]-C)*D);G=aa[T][1];var W=false,J=false;if(G===null){if(I&&L==="Filled"){S.lineTo(Y,B)}I=false;continue}if(G<K){J=true;G=K}else{if(G>F){W=true;G=F}}if(L==="Histogram"){G=Math.round(G/M*B);S.fillRect(Y,ac,E,-G)}else{if(L==="Intensity"){var z=(G-K)/M,O=Math.round(H+(255-H)*(1-z)),X=Math.round(R+(255-R)*(1-z)),ab=Math.round(V+(255-V)*(1-z));S.fillStyle="rgb("+O+","+X+","+ab+")";S.fillRect(Y,0,E,B)}else{G=Math.round(B-(G-K)/M*B);if(I){S.lineTo(Y,G)}else{I=true;if(L==="Filled"){S.moveTo(Y,B);S.lineTo(Y,G)}else{S.moveTo(Y,G)}}}}S.fillStyle=this.prefs.overflow_color;if(W||J){var Z;if(L==="Histogram"||L==="Intensity"){Z=E}else{Y-=2;Z=4}if(W){S.fillRect(Y,0,Z,3)}if(J){S.fillRect(Y,B-3,Z,3)}}S.fillStyle=this.prefs.color}if(L==="Filled"){if(I){S.lineTo(Y,ac);S.lineTo(0,ac)}S.fill()}else{S.stroke()}S.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,E,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,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]-1,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]-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 is_deferred=function(a){return("isResolved" in a)};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 n=function(t,s,i){return((t*299)+(s*587)+(i*114))/1000};var e=function(v,u,w,s,i,t){return(Math.max(v,s)-Math.min(v,s))+(Math.max(u,i)-Math.min(u,i))+(Math.max(w,t)-Math.min(w,t))};var g,o,f,k,q,h,r,c,d,b,p,m=false,l=0;do{g=Math.round(Math.random()*16777215);o=(g&16711680)>>16;f=(g&65280)>>8;k=g&255;d=n(o,f,k);m=true;for(var j=0;j<a.length;j++){q=a[j];h=(q&16711680)>>16;r=(q&65280)>>8;c=q&255;b=n(h,r,c);p=e(o,f,k,h,r,c);if((Math.abs(d-b)<40)||(p<200)){m=false;break}}l++}while(!m&&l<=10);return"#"+(16777216+g).toString(16).substr(1,6)};var create_action_icon=function(c,b,a){return $("<a/>").attr("href","javascript:void(0);").attr("title",c).addClass("icon-button").addClass(b).tipsy({gravity:"s"}).click(a)};var trackster_module=function(e,W){var p=e("class").extend,s=e("slotting"),L=e("painters");var ad=function(ae,af){this.document=ae;this.default_font=af!==undefined?af:"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(ad.prototype,{load_pattern:function(ae,ai){var af=this.patterns,ag=this.dummy_context,ah=new Image();ah.src=image_path+ai;ah.onload=function(){af[ae]=ag.createPattern(ah,"repeat")}},get_pattern:function(ae){return this.patterns[ae]},new_canvas:function(){var ae=this.document.createElement("canvas");if(window.G_vmlCanvasManager){G_vmlCanvasManager.initElement(ae)}ae.manager=this;return ae}});var n={};var l=function(ae,af){n[ae.attr("id")]=af};var m=function(ae,ag,ai,ah){ai=".group";var af={};n[ae.attr("id")]=ah;ae.bind("drag",{handle:"."+ag,relative:true},function(aq,ar){var ap=$(this);var av=$(this).parent(),am=av.children(),ao=n[$(this).attr("id")],al,ak,at,aj,an;ak=$(this).parents(ai);if(ak.length!==0){at=ak.position().top;aj=at+ak.outerHeight();if(ar.offsetY<at){$(this).insertBefore(ak);var au=n[ak.attr("id")];au.remove_drawable(ao);au.container.add_drawable_before(ao,au);return}else{if(ar.offsetY>aj){$(this).insertAfter(ak);var au=n[ak.attr("id")];au.remove_drawable(ao);au.container.add_drawable(ao);return}}}ak=null;for(an=0;an<am.length;an++){al=$(am.get(an));at=al.position().top;aj=at+al.outerHeight();if(al.is(ai)&&this!==al.get(0)&&ar.offsetY>=at&&ar.offsetY<=aj){if(ar.offsetY-at<aj-ar.offsetY){al.find(".content-div").prepend(this)}else{al.find(".content-div").append(this)}if(ao.container){ao.container.remove_drawable(ao)}n[al.attr("id")].add_drawable(ao);return}}for(an=0;an<am.length;an++){if(ar.offsetY<$(am.get(an)).position().top){break}}if(an===am.length){if(this!==am.get(an-1)){av.append(this);n[av.attr("id")].move_drawable(ao,an)}}else{if(this!==am.get(an)){$(this).insertBefore(am.get(an));n[av.attr("id")].move_drawable(ao,(ar.deltaY>0?an-1:an))}}}).bind("dragstart",function(){af["border-top"]=ae.css("border-top");af["border-bottom"]=ae.css("border-bottom");$(this).css({"border-top":"1px solid blue","border-bottom":"1px solid blue"})}).bind("dragend",function(){$(this).css(af)})};W.moveable=m;var ac=16,F=9,C=20,y=100,I=12000,Q=200,A=5,u=10,K=5000,v=100,o="There was an error in indexing this dataset. ",J="A converter for this dataset is not installed. Please check your datatypes_conf.xml file.",D="No data for this chrom/contig.",t="Currently indexing... please wait",w="Tool cannot be rerun: ",a="Loading data...",X="Ready for display",R=10,H=20;function Y(af,ae){if(!ae){ae=0}var ag=Math.pow(10,ae);return Math.round(af*ag)/ag}var c=function(ae){this.num_elements=ae;this.clear()};p(c.prototype,{get:function(af){var ae=this.key_ary.indexOf(af);if(ae!==-1){if(this.obj_cache[af].stale){this.key_ary.splice(ae,1);delete this.obj_cache[af]}else{this.move_key_to_end(af,ae)}}return this.obj_cache[af]},set:function(af,ag){if(!this.obj_cache[af]){if(this.key_ary.length>=this.num_elements){var ae=this.key_ary.shift();delete this.obj_cache[ae]}this.key_ary.push(af)}this.obj_cache[af]=ag;return ag},move_key_to_end:function(af,ae){this.key_ary.splice(ae,1);this.key_ary.push(af)},clear:function(){this.obj_cache={};this.key_ary=[]},size:function(){return this.key_ary.length}});var S=function(af,ae,ag){c.call(this,af);this.track=ae;this.subset=(ag!==undefined?ag:true)};p(S.prototype,c.prototype,{load_data:function(an,ai,al,af,ak){var am=this.track.view.chrom,ah={chrom:am,low:an,high:ai,mode:al,resolution:af,dataset_id:this.track.dataset_id,hda_ldda:this.track.hda_ldda};$.extend(ah,ak);if(this.track.filters_manager){var ao=[];var ae=this.track.filters_manager.filters;for(var aj=0;aj<ae.length;aj++){ao[ao.length]=ae[aj].name}ah.filter_cols=JSON.stringify(ao)}var ag=this;return $.getJSON(this.track.data_url,ah,function(ap){ag.set_data(an,ai,ap)})},get_data:function(ae,ai,aj,af,ah){var ag=this.get(ae,ai);if(ag&&(is_deferred(ag)||this.track.data_and_mode_compatible(ag,aj))){return ag}ag=this.load_data(ae,ai,aj,af,ah);this.set_data(ae,ai,ag);return ag},DEEP_DATA_REQ:"deep",BROAD_DATA_REQ:"breadth",get_more_data:function(am,ah,al,ag,ak,ai){var an=this.get(am,ah);if(!(an&&this.track.data_and_mode_compatible(an,al))){console.log("ERROR: no current data for: ",this.track,am,ah,al,ag,ak);return}an.stale=true;var af=am;if(ai===this.DEEP_DATA_REQ){$.extend(ak,{start_val:an.data.length+1})}else{if(ai===this.BROAD_DATA_REQ){af=(an.max_high?an.max_high:an.data[an.data.length-1][2])+1}}var ae=this,aj=this.load_data(af,ah,al,ag,ak);new_data_available=$.Deferred();this.set_data(am,ah,new_data_available);$.when(aj).then(function(ao){if(ao.data){ao.data=an.data.concat(ao.data);if(ao.max_low){ao.max_low=an.max_low}if(ao.message){ao.message=ao.message.replace(/[0-9]+/,ao.data.length)}}ae.set_data(am,ah,ao);new_data_available.resolve(ao)});return new_data_available},get:function(ae,af){return c.prototype.get.call(this,this.gen_key(ae,af))},set_data:function(af,ag,ae){return this.set(this.gen_key(af,ag),ae)},gen_key:function(ae,ag){var af=ae+"_"+ag;return af},split_key:function(ae){return ae.split("_")}});var G=function(af,ae,ag){S.call(this,af,ae,ag)};p(G.prototype,S.prototype,c.prototype,{get:S.prototype.get,load_data:function(ae,ah,ai,af,ag){if(af>1){return{data:null}}return S.prototype.load_data.call(this,ae,ah,ai,af,ag)}});var q=function(ah,af,ae,ag,aj){if(!q.id_counter){q.id_counter=0}this.id=q.id_counter++;this.name=ah;this.view=af;this.container=ae;this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ah}],saved_values:ag,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;this.action_icons={};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=$("<div/>").css("float","left").hide().appendTo(this.header_div);this.build_action_icons(this.action_icons_def);this.header_div.append($("<div style='clear: both'/>"));this.header_div.dblclick(function(ak){ak.stopPropagation()});var ai=this;this.container_div.hover(function(){ai.icons_div.show()},function(){ai.icons_div.hide()});$("<div style='clear: both'/>").appendTo(this.container_div)}};q.prototype.action_icons_def=[{name:"toggle_icon",title:"Hide/show content",css_class:"toggle",on_click_fn:function(ae){if(ae.content_visible){ae.action_icons.toggle_icon.addClass("toggle-expand").removeClass("toggle");ae.hide_contents();ae.content_visible=false}else{ae.action_icons.toggle_icon.addClass("toggle").removeClass("toggle-expand");ae.content_visible=true;ae.show_contents()}}},{name:"settings_icon",title:"Edit settings",css_class:"settings-icon",on_click_fn:function(af){var ah=function(){hide_modal();$(window).unbind("keypress.check_enter_esc")},ae=function(){af.config.update_from_form($(".dialog-box"));hide_modal();$(window).unbind("keypress.check_enter_esc")},ag=function(ai){if((ai.keyCode||ai.which)===27){ah()}else{if((ai.keyCode||ai.which)===13){ae()}}};$(window).bind("keypress.check_enter_esc",ag);show_modal("Configure",af.config.build_form(),{Cancel:ah,OK:ae})}},{name:"remove_icon",title:"Remove",css_class:"remove-icon",on_click_fn:function(ae){$(".tipsy").remove();ae.remove()}}];p(q.prototype,{init:function(){},can_draw:function(){if(this.enabled&&this.content_visible){return true}return false},request_draw:function(){},_draw:function(){},to_dict:function(){},from_dict:function(ae){},update_icons:function(){},set_name:function(ae){this.old_name=this.name;this.name=ae;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(){},add_action_icon:function(af,aj,ai,ah,ae){var ag=this;this.action_icons[af]=$("<a/>").attr("href","javascript:void(0);").attr("title",aj).addClass("icon-button").addClass(ai).tipsy({gravity:"s"}).click(function(){ah(ag)}).appendTo(this.icons_div)},build_action_icons:function(ae){var ag;for(var af=0;af<ae.length;af++){ag=ae[af];this.add_action_icon(ag.name,ag.title,ag.css_class,ag.on_click_fn,ag.prepend)}},update_icons:function(){},hide_contents:function(){},show_contents:function(){}});var x=function(ai,ah,af,ae,ag,aj){q.call(this,ah,af,ae,ag,aj);this.obj_type=ai;this.drawables=[]};p(x.prototype,q.prototype,{init:function(){for(var ae=0;ae<this.drawables.length;ae++){this.drawables[ae].init()}},_draw:function(){for(var ae=0;ae<this.drawables.length;ae++){this.drawables[ae]._draw()}},to_dict:function(){var af=[];for(var ae=0;ae<this.drawables.length;ae++){af.push(this.drawables[ae].to_dict())}return{name:this.name,prefs:this.prefs,obj_type:this.obj_type,drawables:af}},from_dict:function(ak,ae){var aj=new this.constructor(ak.name,view,ae,ak.prefs,view.viewport_container,view);var af,ai,ah;for(var ag=0;ag<ak.drawables.length;ag++){af=ak.drawables[ag];ai=af.obj_type;if(!ai){ai=af.track_type}ah=addable_objects[ai].prototype.from_dict(af,aj);aj.add_drawable(ah)}return aj},add_drawable:function(ae){this.drawables.push(ae);ae.container=this},add_drawable_before:function(ag,ae){var af=this.drawables.indexOf(ae);if(af!=-1){this.drawables.splice(af,0,ag);return true}return false},replace_drawable:function(ag,ae,af){var ah=this.drawables.indexOf(ag);if(ah!==-1){this.drawables[ah]=ae;if(af){ag.container_div.replaceWith(ae.container_div)}}return ah},remove_drawable:function(af){var ae=this.drawables.indexOf(af);if(ae!=-1){this.drawables.splice(ae,1);af.container=null;return true}return false},move_drawable:function(af,ag){var ae=this.drawables.indexOf(af);if(ae!=-1){this.drawables.splice(ae,1);this.drawables.splice(ag,0,af);return true}return false}});var P=function(ah,af,ae,ag){x.call(this,"DrawableGroup",ah,af,ae,ag,"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(P.prototype,q.prototype,x.prototype,{action_icons_def:[{name:"composite_icon",title:"Show composite track",css_class:"layers-stack",on_click_fn:function(ae){ae.show_composite_track()}}].concat(q.prototype.action_icons_def),build_container_div:function(){var ae=$("<div/>").addClass("group").attr("id","group_"+this.id);if(this.container){this.container.content_div.append(ae)}return ae},build_header_div:function(){var ae=$("<div/>").addClass("track-header");ae.append($("<div/>").addClass(this.drag_handle_class));this.name_div=$("<div/>").addClass("track-name").text(this.name).appendTo(ae);return ae},hide_contents:function(){this.content_div.hide()},show_contents:function(){this.content_div.show();this.request_draw()},update_icons:function(){var ag,ai=true,ah=this.drawables[0].get_type(),ae=0;for(var af=0;af<this.drawables.length;af++){ag=this.drawables[af];if(ag.get_type()!==ah){can_composite=false;break}if(ag instanceof d){ae++}}if(ai||ae===1){this.action_icons.composite_icon.show()}else{this.action_icons.composite_icon.hide();$(".tipsy").remove()}},show_composite_track:function(){var ae=new h("Composite Track",this.view,this,this.drawables);this.add_drawable(ae);ae.request_draw()},add_drawable:function(ae){x.prototype.add_drawable.call(this,ae);this.update_icons()},remove_drawable:function(ae){x.prototype.remove_drawable.call(this,ae);this.update_icons()},from_dict:function(ah,ae){var ag=x.prototype.from_dict.call(this,ah,ae);for(var af=0;af<ag.drawables.length;af++){ag.content_div.append(ag.drawables[af].container_div)}return ag}});var ab=function(ae,ah,ag,af){x.call(this,"View");this.container=ae;this.chrom=null;this.vis_id=ag;this.dbkey=af;this.title=ah;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 ad(ae.get(0).ownerDocument);this.reset()};p(ab.prototype,x.prototype,{init:function(){var ag=this.container,ae=this;this.top_container=$("<div/>").addClass("top-container").appendTo(ag);this.browser_content_div=$("<div/>").addClass("content").css("position","relative").appendTo(ag);this.bottom_container=$("<div/>").addClass("bottom-container").appendTo(ag);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,ae);this.intro_div=$("<div/>").addClass("intro").appendTo(this.viewport_container).hide();var ah=$("<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 af=function(ai){if(ai.type==="focusout"||(ai.keyCode||ai.which)===13||(ai.keyCode||ai.which)===27){if((ai.keyCode||ai.which)!==27){ae.go_to($(this).val())}$(this).hide();$(this).val("");ae.location_span.show();ae.chrom_select.show()}};this.nav_input=$("<input/>").addClass("nav-input").hide().bind("keyup focusout",af).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(){ae.location_span.hide();ae.chrom_select.hide();ae.nav_input.val(ae.chrom+":"+ae.low+"-"+ae.high);ae.nav_input.css("display","inline-block");ae.nav_input.select();ae.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(){ae.zoom_out();ae.request_redraw()}).appendTo(this.nav_controls);this.zi_link=$("<a/>").attr("id","zoom-in").attr("title","Zoom in").tipsy({gravity:"n"}).click(function(){ae.zoom_in();ae.request_redraw()}).appendTo(this.nav_controls);this.load_chroms_deferred=this.load_chroms({low:0});this.chrom_select.bind("change",function(){ae.change_chrom(ae.chrom_select.val())});this.browser_content_div.click(function(ai){$(this).find("input").trigger("blur")});this.browser_content_div.bind("dblclick",function(ai){ae.zoom_in(ai.pageX,this.viewport_container)});this.overview_box.bind("dragstart",function(ai,aj){this.current_x=aj.offsetX}).bind("drag",function(ai,ak){var al=ak.offsetX-this.current_x;this.current_x=ak.offsetX;var aj=Math.round(al/ae.viewport_container.width()*(ae.max_high-ae.max_low));ae.move_delta(-aj)});this.overview_close.click(function(){ae.reset_overview()});this.viewport_container.bind("draginit",function(ai,aj){if(ai.clientX>ae.viewport_container.width()-16){return false}}).bind("dragstart",function(ai,aj){aj.original_low=ae.low;aj.current_height=ai.clientY;aj.current_x=aj.offsetX}).bind("drag",function(ak,am){var ai=$(this);var an=am.offsetX-am.current_x;var aj=ai.scrollTop()-(ak.clientY-am.current_height);ai.scrollTop(aj);am.current_height=ak.clientY;am.current_x=am.offsetX;var al=Math.round(an/ae.viewport_container.width()*(ae.high-ae.low));ae.move_delta(al)}).bind("mousewheel",function(ak,am,aj,ai){if(aj){aj*=50;var al=Math.round(-aj/ae.viewport_container.width()*(ae.high-ae.low));ae.move_delta(al)}});this.top_labeltrack.bind("dragstart",function(ai,aj){return $("<div />").css({height:ae.browser_content_div.height()+ae.top_labeltrack.height()+ae.nav_labeltrack.height()+1,top:"0px",position:"absolute","background-color":"#ccf",opacity:0.5,"z-index":1000}).appendTo($(this))}).bind("drag",function(am,an){$(an.proxy).css({left:Math.min(am.pageX,an.startX),width:Math.abs(am.pageX-an.startX)});var aj=Math.min(am.pageX,an.startX)-ae.container.offset().left,ai=Math.max(am.pageX,an.startX)-ae.container.offset().left,al=(ae.high-ae.low),ak=ae.viewport_container.width();ae.update_location(Math.round(aj/ak*al)+ae.low,Math.round(ai/ak*al)+ae.low)}).bind("dragend",function(an,ao){var aj=Math.min(an.pageX,ao.startX),ai=Math.max(an.pageX,ao.startX),al=(ae.high-ae.low),ak=ae.viewport_container.width(),am=ae.low;ae.low=Math.round(aj/ak*al)+am;ae.high=Math.round(ai/ak*al)+am;$(ao.proxy).remove();ae.request_redraw()});this.add_label_track(new aa(this,{content_div:this.top_labeltrack}));this.add_label_track(new aa(this,{content_div:this.nav_labeltrack}));$(window).bind("resize",function(){ae.resize_window()});$(document).bind("redraw",function(){ae.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(ae,af){this.location_span.text(commatize(ae)+" - "+commatize(af));this.nav_input.val(this.chrom+":"+commatize(ae)+"-"+commatize(af))},load_chroms:function(ag){ag.num=v;ag.dbkey=this.dbkey;var ae=this,af=$.Deferred();$.ajax({url:chrom_url,data:ag,dataType:"json",success:function(ai){if(ai.chrom_info.length===0){alert("Invalid chromosome: "+ag.chrom);return}if(ai.reference){ae.add_label_track(new z(ae))}ae.chrom_data=ai.chrom_info;var al='<option value="">Select Chrom/Contig</option>';for(var ak=0,ah=ae.chrom_data.length;ak<ah;ak++){var aj=ae.chrom_data[ak].chrom;al+='<option value="'+aj+'">'+aj+"</option>"}if(ai.prev_chroms){al+='<option value="previous">Previous '+v+"</option>"}if(ai.next_chroms){al+='<option value="next">Next '+v+"</option>"}ae.chrom_select.html(al);ae.chrom_start_index=ai.start_index;af.resolve(ai)},error:function(){alert("Could not load chroms for this dbkey:",ae.dbkey)}});return af},change_chrom:function(aj,af,al){if(!aj||aj==="None"){return}var ag=this;if(aj==="previous"){ag.load_chroms({low:this.chrom_start_index-v});return}if(aj==="next"){ag.load_chroms({low:this.chrom_start_index+v});return}var ak=$.grep(ag.chrom_data,function(am,an){return am.chrom===aj})[0];if(ak===undefined){ag.load_chroms({chrom:aj},function(){ag.change_chrom(aj,af,al)});return}else{if(aj!==ag.chrom){ag.chrom=aj;ag.chrom_select.val(ag.chrom);ag.max_high=ak.len-1;ag.reset();ag.request_redraw(true);for(var ai=0,ae=ag.drawables.length;ai<ae;ai++){var ah=ag.drawables[ai];if(ah.init){ah.init()}}}if(af!==undefined&&al!==undefined){ag.low=Math.max(af,0);ag.high=Math.min(al,ag.max_high)}ag.reset_overview();ag.request_redraw()}},go_to:function(ai){ai=ai.replace(/ |,/g,"");var am=this,ae,ah,af=ai.split(":"),ak=af[0],al=af[1];if(al!==undefined){try{var aj=al.split("-");ae=parseInt(aj[0],10);ah=parseInt(aj[1],10)}catch(ag){return false}}am.change_chrom(ak,ae,ah)},move_fraction:function(ag){var ae=this;var af=ae.high-ae.low;this.move_delta(ag*af)},move_delta:function(ag){var ae=this;var af=ae.high-ae.low;if(ae.low-ag<ae.max_low){ae.low=ae.max_low;ae.high=ae.max_low+af}else{if(ae.high-ag>ae.max_high){ae.high=ae.max_high;ae.low=ae.max_high-af}else{ae.high-=ag;ae.low-=ag}}ae.request_redraw()},add_drawable:function(ae){x.prototype.add_drawable.call(this,ae);ae.init();this.has_changes=true;this.update_intro_div()},add_label_track:function(ae){ae.view=this;ae.init();this.label_tracks.push(ae)},remove_drawable:function(ag,af){x.prototype.remove_drawable.call(this,ag);if(af){var ae=this;ag.container_div.hide(0,function(){$(this).remove();ae.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(am,ae,al,af){var ak=this,ai=(af?[af]:ak.drawables),ag;var af;for(var aj=0;aj<ai.length;aj++){af=ai[aj];ag=-1;for(var ah=0;ah<ak.tracks_to_be_redrawn.length;ah++){if(ak.tracks_to_be_redrawn[ah][0]===af){ag=ah;break}}if(ag<0){ak.tracks_to_be_redrawn.push([af,ae,al])}else{ak.tracks_to_be_redrawn[aj][1]=ae;ak.tracks_to_be_redrawn[aj][2]=al}}requestAnimationFrame(function(){ak._redraw(am)})},_redraw:function(ao){var al=this.low,ah=this.high;if(al<this.max_low){al=this.max_low}if(ah>this.max_high){ah=this.max_high}var an=this.high-this.low;if(this.high!==0&&an<this.min_separation){ah=al+this.min_separation}this.low=Math.floor(al);this.high=Math.ceil(ah);this.resolution=Math.pow(A,Math.ceil(Math.log((this.high-this.low)/Q)/Math.log(A)));this.zoom_res=Math.pow(u,Math.max(0,Math.ceil(Math.log(this.resolution,u)/Math.log(u))));var ae=(this.low/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var ak=((this.high-this.low)/(this.max_high-this.max_low)*this.overview_viewport.width())||0;var ap=13;this.overview_box.css({left:ae,width:Math.max(ap,ak)}).show();if(ak<ap){this.overview_box.css("left",ae-(ap-ak)/2)}if(this.overview_highlight){this.overview_highlight.css({left:ae,width:ak})}this.update_location(this.low,this.high);if(!ao){var ag,af,am;for(var ai=0,aj=this.tracks_to_be_redrawn.length;ai<aj;ai++){ag=this.tracks_to_be_redrawn[ai][0];af=this.tracks_to_be_redrawn[ai][1];am=this.tracks_to_be_redrawn[ai][2];if(ag){ag._draw(af,am)}}this.tracks_to_be_redrawn=[];for(ai=0,aj=this.label_tracks.length;ai<aj;ai++){this.label_tracks[ai]._draw()}}},zoom_in:function(af,ag){if(this.max_high===0||this.high-this.low<this.min_separation){return}var ah=this.high-this.low,ai=ah/2+this.low,ae=(ah/this.zoom_factor)/2;if(af){ai=af/this.viewport_container.width()*(this.high-this.low)+this.low}this.low=Math.round(ai-ae);this.high=Math.round(ai+ae);this.request_redraw()},zoom_out:function(){if(this.max_high===0){return}var af=this.high-this.low,ag=af/2+this.low,ae=(af*this.zoom_factor)/2;this.low=Math.round(ag-ae);this.high=Math.round(ag+ae);this.request_redraw()},resize_window:function(){this.viewport_container.height(this.container.height()-this.top_container.height()-this.bottom_container.height());this.request_redraw()},set_overview:function(ag){if(this.overview_drawable){if(this.overview_drawable.dataset_id===ag.dataset_id){return}this.overview_viewport.find(".track").remove()}var af=ag.copy({content_div:this.overview_viewport}),ae=this;af.header_div.hide();af.is_overview=true;ae.overview_drawable=af;this.overview_drawable.postdraw_actions=function(){ae.overview_highlight.show().height(ae.overview_drawable.content_div.height());ae.overview_viewport.height(ae.overview_drawable.content_div.height()+ae.overview_box.outerHeight());ae.overview_close.show();ae.resize_window()};ae.overview_drawable.request_draw();ae.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(ag,ak){this.track=ag;this.name=ak.name;this.params=[];var ar=ak.params;for(var ah=0;ah<ar.length;ah++){var am=ar[ah],af=am.name,aq=am.label,ai=unescape(am.html),at=am.value,ao=am.type;if(ao==="number"){this.params[this.params.length]=new f(af,aq,ai,at,am.min,am.max)}else{if(ao=="select"){this.params[this.params.length]=new N(af,aq,ai,at)}else{console.log("WARNING: unrecognized tool parameter type:",af,ao)}}}this.parent_div=$("<div/>").addClass("dynamic-tool").hide();this.parent_div.bind("drag",function(av){av.stopPropagation()}).click(function(av){av.stopPropagation()}).bind("dblclick",function(av){av.stopPropagation()});var ap=$("<div class='tool-name'>").appendTo(this.parent_div).text(this.name);var an=this.params;var al=this;$.each(this.params,function(aw,az){var ay=$("<div>").addClass("param-row").appendTo(al.parent_div);var av=$("<div>").addClass("param-label").text(az.label).appendTo(ay);var ax=$("<div/>").addClass("param-input").html(az.html).appendTo(ay);ax.find(":input").val(az.value);$("<div style='clear: both;'/>").appendTo(ay)});this.parent_div.find("input").click(function(){$(this).select()});var au=$("<div>").addClass("param-row").appendTo(this.parent_div);var aj=$("<input type='submit'>").attr("value","Run on complete dataset").appendTo(au);var ae=$("<input type='submit'>").attr("value","Run on visible region").css("margin-left","3em").appendTo(au);var al=this;ae.click(function(){al.run_on_region()});aj.click(function(){al.run_on_dataset()})};p(r.prototype,{get_param_values_dict:function(){var ae={};this.parent_div.find(":input").each(function(){var af=$(this).attr("name"),ag=$(this).val();ae[af]=JSON.stringify(ag)});return ae},get_param_values:function(){var af=[];var ae={};this.parent_div.find(":input").each(function(){var ag=$(this).attr("name"),ah=$(this).val();if(ag){af[af.length]=ah}});return af},run_on_dataset:function(){var ae=this;ae.run({dataset_id:this.track.original_dataset_id,tool_id:ae.name},null,function(af){show_modal(ae.name+" is Running",ae.name+" is running on the complete dataset. Tool outputs are in dataset's history.",{Close:hide_modal})})},run_on_region:function(){var af={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,ag=af.tool_id+aj.tool_region_and_parameters_str(af.chrom,af.low,af.high),ae;if(aj.container===view){var ai=new P(this.name,this.track.view);var ah=aj.container.replace_drawable(aj,ai,false);ai.container_div.insertBefore(aj.view.content_div.children()[ah]);ai.add_drawable(aj);aj.container_div.appendTo(ai.content_div);ae=ai}else{ae=aj.container}var ak=new aj.constructor(ag,view,ae,"hda");ak.init_for_tool_data();ak.change_mode(aj.mode);ae.add_drawable(ak);ak.content_div.text("Starting job.");this.run(af,ak,function(al){ak.dataset_id=al.dataset_id;ak.content_div.text("Running job.");ak.init()})},run:function(af,ag,ah){$.extend(af,this.get_param_values_dict());var ae=function(){$.getJSON(rerun_tool_url,af,function(ai){if(ai==="no converter"){ag.container_div.addClass("error");ag.content_div.text(J)}else{if(ai.error){ag.container_div.addClass("error");ag.content_div.text(w+ai.message)}else{if(ai==="pending"){ag.container_div.addClass("pending");ag.content_div.text("Converting input data so that it can be used quickly with tool.");setTimeout(ae,2000)}else{ah(ai)}}}})};ae()}});var N=function(af,ae,ag,ah){this.name=af;this.label=ae;this.html=ag;this.value=ah};var f=function(ag,af,ai,aj,ah,ae){N.call(this,ag,af,ai,aj);this.min=ah;this.max=ae};var g=function(af,ae,ag,ah){this.name=af;this.index=ae;this.tool_id=ag;this.tool_exp_name=ah};var U=function(af,ae,ag,ah){g.call(this,af,ae,ag,ah);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(U.prototype,{applies_to:function(ae){if(ae.length>this.index){return true}return false},keep:function(ae){if(!this.applies_to(ae)){return true}var af=ae[this.index];return(isNaN(af)||(af>=this.low&&af<=this.high))},update_attrs:function(af){var ae=false;if(!this.applies_to(af)){return ae}if(af[this.index]<this.min){this.min=Math.floor(af[this.index]);ae=true}if(af[this.index]>this.max){this.max=Math.ceil(af[this.index]);ae=true}return ae},update_ui_elt:function(){if(this.min!=this.max){this.container.show()}else{this.container.hide()}var ag=function(aj,ah){var ai=ah-aj;return(ai<=2?0.01:1)};var af=this.slider.slider("option","min"),ae=this.slider.slider("option","max");if(this.min<af||this.max>ae){this.slider.slider("option","min",this.min);this.slider.slider("option","max",this.max);this.slider.slider("option","step",ag(this.min,this.max));this.slider.slider("option","values",[this.min,this.max])}}});var Z=function(ag,ap){this.track=ag;this.filters=[];for(var ak=0;ak<ap.length;ak++){var ae=ap[ak],af=ae.name,ao=ae.type,am=ae.index,ar=ae.tool_id,ah=ae.tool_exp_name;if(ao==="int"||ao==="float"){this.filters[ak]=new U(af,am,ar,ah)}else{console.log("ERROR: unsupported filter: ",af,ao)}}var an=function(at,au,av){at.click(function(){var aw=au.text();max=parseFloat(av.slider("option","max")),input_size=(max<=1?4:max<=1000000?max.toString().length:6),multi_value=false;if(av.slider("option","values")){input_size=2*input_size+1;multi_value=true}au.text("");$("<input type='text'/>").attr("size",input_size).attr("maxlength",input_size).attr("value",aw).appendTo(au).focus().select().click(function(ax){ax.stopPropagation()}).blur(function(){$(this).remove();au.text(aw)}).keyup(function(aB){if(aB.keyCode===27){$(this).trigger("blur")}else{if(aB.keyCode===13){var az=av.slider("option","min"),ax=av.slider("option","max"),aA=function(aC){return(isNaN(aC)||aC>ax||aC<az)},ay=$(this).val();if(!multi_value){ay=parseFloat(ay);if(aA(ay)){alert("Parameter value must be in the range ["+az+"-"+ax+"]");return $(this)}}else{ay=ay.split("-");ay=[parseFloat(ay[0]),parseFloat(ay[1])];if(aA(ay[0])||aA(ay[1])){alert("Parameter value must be in the range ["+az+"-"+ax+"]");return $(this)}}av.slider((multi_value?"values":"value"),ay)}}})})};this.parent_div=$("<div/>").addClass("filters").hide();this.parent_div.bind("drag",function(at){at.stopPropagation()}).click(function(at){at.stopPropagation()}).bind("dblclick",function(at){at.stopPropagation()}).bind("keydown",function(at){at.stopPropagation()});var ai=this;$.each(this.filters,function(az,au){au.container=$("<div/>").addClass("filter-row slider-row").appendTo(ai.parent_div);var at=$("<div/>").addClass("elt-label").appendTo(au.container);var aC=$("<span/>").addClass("slider-name").text(au.name+"  ").appendTo(at);var av=$("<span/>");var aw=$("<span/>").addClass("slider-value").appendTo(at).append("[").append(av).append("]");var aB=$("<div/>").addClass("slider").appendTo(au.container);au.control_element=$("<div/>").attr("id",au.name+"-filter-control").appendTo(aB);var ax=[0,0];au.control_element.slider({range:true,min:Number.MAX_VALUE,max:-Number.MIN_VALUE,values:[0,0],slide:function(aF,aG){var aE=aG.values;av.text(aE[0]+"-"+aE[1]);au.low=aE[0];au.high=aE[1];ai.track.request_draw(true,true)},change:function(aE,aF){au.control_element.slider("option","slide").call(au.control_element,aE,aF)}});au.slider=au.control_element;au.slider_label=av;an(aw,av,au.control_element);var aD=$("<div/>").addClass("display-controls").appendTo(au.container),ay=create_action_icon("Use filter for data transparency","layer-transparent",function(){if(ai.alpha_filter!==au){ai.alpha_filter=au;$(".layer-transparent").removeClass("active").hide();ay.addClass("active").show()}else{ai.alpha_filter=null;ay.removeClass("active")}ai.track.request_draw(true,true)}).appendTo(aD).hide(),aA=create_action_icon("Use filter for data height","arrow-resize-090",function(){if(ai.height_filter!==au){ai.height_filter=au;$(".arrow-resize-090").removeClass("active").hide();aA.addClass("active").show()}else{ai.height_filter=null;aA.removeClass("active")}ai.track.request_draw(true,true)}).appendTo(aD).hide();au.container.hover(function(){ay.show();aA.show()},function(){if(ai.alpha_filter!==au){ay.hide()}if(ai.height_filter!==au){aA.hide()}});$("<div style='clear: both;'/>").appendTo(au.container)});if(this.filters.length!==0){var aq=$("<div/>").addClass("param-row").appendTo(this.parent_div);var al=$("<input type='submit'/>").attr("value","Run on complete dataset").appendTo(aq);var aj=this;al.click(function(){aj.run_on_dataset()})}};p(Z.prototype,{reset_filters:function(){for(var ae=0;ae<this.filters.length;ae++){filter=this.filters[ae];filter.slider.slider("option","values",[filter.min,filter.max])}this.alpha_filter=null;this.height_filter=null},run_on_dataset:function(){var am=function(aq,ao,ap){if(!(ao in aq)){aq[ao]=ap}return aq[ao]};var ag={},ae,af,ah;for(var ai=0;ai<this.filters.length;ai++){ae=this.filters[ai];if(ae.tool_id){if(ae.min!=ae.low){af=am(ag,ae.tool_id,[]);af[af.length]=ae.tool_exp_name+" >= "+ae.low}if(ae.max!=ae.high){af=am(ag,ae.tool_id,[]);af[af.length]=ae.tool_exp_name+" <= "+ae.high}}}var ak=[];for(var an in ag){ak[ak.length]=[an,ag[an]]}var al=ak.length;(function aj(av,ar){var ap=ar[0],aq=ap[0],au=ap[1],at="("+au.join(") and (")+")",ao={cond:at,input:av,target_dataset_id:av,tool_id:aq},ar=ar.slice(1);$.getJSON(run_tool_url,ao,function(aw){if(aw.error){show_modal("Filter Dataset","Error running tool "+aq,{Close:hide_modal})}else{if(ar.length===0){show_modal("Filtering Dataset","Filter(s) are running on the complete dataset. Outputs are in dataset's history.",{Close:hide_modal})}else{aj(aw.dataset_id,ar)}}})})(this.track.dataset_id,ak)}});var B=function(ae,af){L.Scaler.call(this,af);this.filter=ae};B.prototype.gen_val=function(ae){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(ae[this.filter.index])-this.filter.low)/(this.filter.high-this.filter.low))};var E=function(ae){this.track=ae.track;this.params=ae.params;this.values={};this.restore_values((ae.saved_values?ae.saved_values:{}));this.onchange=ae.onchange};p(E.prototype,{restore_values:function(ae){var af=this;$.each(this.params,function(ag,ah){if(ae[ah.key]!==undefined){af.values[ah.key]=ae[ah.key]}else{af.values[ah.key]=ah.default_value}})},build_form:function(){var ah=this;var ae=$("<div />");var ag;function af(ak,ai){for(var am=0;am<ak.length;am++){ag=ak[am];if(ag.hidden){continue}var aj="param_"+am;var aq=ah.values[ag.key];var ar=$("<div class='form-row' />").appendTo(ai);ar.append($("<label />").attr("for",aj).text(ag.label+":"));if(ag.type==="bool"){ar.append($('<input type="checkbox" />').attr("id",aj).attr("name",aj).attr("checked",aq))}else{if(ag.type==="text"){ar.append($('<input type="text"/>').attr("id",aj).val(aq).click(function(){$(this).select()}))}else{if(ag.type=="select"){var ao=$("<select />").attr("id",aj);for(var al=0;al<ag.options.length;al++){$("<option/>").text(ag.options[al].label).attr("value",ag.options[al].value).appendTo(ao)}ao.val(aq);ar.append(ao)}else{if(ag.type==="color"){var an=$("<input />").attr("id",aj).attr("name",aj).val(aq);var ap=$("<div class='tipsy tipsy-west' style='position: absolute;' />").hide();(function(at,au){var aw=$("<div style='background-color: black; padding: 10px;'></div>").appendTo(au);var av=$("<div/>").appendTo(aw).farbtastic({width:100,height:100,callback:at,color:aq});$("<div />").append(at).append(au).appendTo(ar).bind("click",function(ax){$(".tipsy").hide();au.css({left:$(this).position().left+$(at).width()+5,top:$(this).position().top-($(au).height()/2)+($(at).height()/2)}).show();$(document).bind("click.color-picker",function(){au.hide();$(document).unbind("click.color-picker")});ax.stopPropagation()})})(an,ap)}else{ar.append($("<input />").attr("id",aj).attr("name",aj).val(aq))}}}}if(ag.help){ar.append($("<div class='help'/>").text(ag.help))}}}af(this.params,ae);return ae},update_from_form:function(ae){var ag=this;var af=false;$.each(this.params,function(ah,aj){if(!aj.hidden){var ak="param_"+ah;var ai=ae.find("#"+ak).val();if(aj.type==="float"){ai=parseFloat(ai)}else{if(aj.type==="int"){ai=parseInt(ai)}else{if(aj.type==="bool"){ai=ae.find("#"+ak).is(":checked")}}}if(ai!==ag.values[aj.key]){ag.values[aj.key]=ai;af=true}}});if(af){this.onchange()}}});var b=function(ae,ah,ag,af,ai){this.track=ae;this.index=ah;this.low=ah*Q*ag;this.high=(ah+1)*Q*ag;this.resolution=ag;this.html_elt=$("<div class='track-tile'/>").append(af);this.data=ai;this.stale=false};b.prototype.predisplay_actions=function(){};var k=function(ae,ah,ag,af,ai,aj){b.call(this,ae,ah,ag,af,ai);this.max_val=aj};p(k.prototype,b.prototype);var O=function(ah,am,ai,ag,ak,ar,al,at,af,ap){b.call(this,ah,am,ai,ag,ak);this.mode=al;this.feature_mapper=ap;this.has_icons=false;if(at||!af){this.has_icons=true;var an=this;ag=this.html_elt.children()[0],message_div=$("<div/>").addClass("tile-message").css({height:C-1,width:ag.width}).prependTo(this.html_elt);if(!af){var ao=$("<a href='javascript:void(0);'/>").addClass("icon exclamation").attr("title","To minimize track height, not all features in this region are displayed. Click to display more.").tipsy({gravity:"s"}).appendTo(message_div).click(function(){$(".tipsy").hide();an.track.slotters[ar].max_rows*=2;an.track.request_draw(true)})}if(at){var aq=ak.length,aj=$("<a href='javascript:void(0);'/>").addClass("icon more-down").attr("title","For speed, only the first "+aq+" features in this region were obtained from server. Click to get more data including depth").tipsy({gravity:"s"}).appendTo(message_div),ae=$("<a href='javascript:void(0);'/>").addClass("icon more-across").attr("title","For speed, only the first "+aq+" features in this region were obtained from server. Click to get more data excluding depth").tipsy({gravity:"s"}).appendTo(message_div);aj.click(function(){an.stale=true;ah.data_manager.get_more_data(an.low,an.high,ah.mode,an.resolution,{},ah.data_manager.DEEP_DATA_REQ);$(".tipsy").hide();ah.request_draw()}).dblclick(function(au){au.stopPropagation()});ae.click(function(){an.stale=true;ah.data_manager.get_more_data(an.low,an.high,ah.mode,an.resolution,{},ah.data_manager.BROAD_DATA_REQ);$(".tipsy").hide();ah.request_draw()}).dblclick(function(au){au.stopPropagation()})}}};p(O.prototype,b.prototype);O.prototype.predisplay_actions=function(){var af=this,ae={};if(af.mode!=="Pack"){return}$(this.html_elt).hover(function(){this.hovered=true;$(this).mousemove()},function(){this.hovered=false;$(this).siblings(".feature-popup").remove()}).mousemove(function(aq){if(!this.hovered){return}var al=$(this).offset(),ap=aq.pageX-al.left,ao=aq.pageY-al.top,av=af.feature_mapper.get_feature_data(ap,ao),am=(av?av[0]:null);$(this).siblings(".feature-popup").each(function(){if(!am||$(this).attr("id")!==am.toString()){$(this).remove()}});if(av){var ah=ae[am];if(!ah){var am=av[0],ar={name:av[3],start:av[1],end:av[2],strand:av[4]},ak=af.track.filters_manager.filters,aj;for(var an=0;an<ak.length;an++){aj=ak[an];ar[aj.name]=av[aj.index]}var ah=$("<div/>").attr("id",am).addClass("feature-popup"),aw=$("<table/>"),au,at,ax;for(au in ar){at=ar[au];ax=$("<tr/>").appendTo(aw);$("<th/>").appendTo(ax).text(au);$("<td/>").attr("align","left").appendTo(ax).text(typeof(at)=="number"?Y(at,2):at)}ah.append($("<div class='feature-popup-inner'>").append(aw));ae[am]=ah}ah.appendTo($(af.html_elt).parent());var ai=ap+parseInt(af.html_elt.css("left"))-ah.width()/2,ag=ao+parseInt(af.html_elt.css("top"))+7;ah.css("left",ai+"px").css("top",ag+"px")}else{if(!aq.isPropagationStopped()){aq.stopPropagation();$(this).siblings().each(function(){$(this).trigger(aq)})}}}).mouseleave(function(){$(this).siblings(".feature-popup").remove()})};var i=function(ah,af,ae,ag,aj,ai,ak){q.call(this,ah,af,ae,{},"draghandle");this.data_url=(ai?ai:default_data_url);this.data_url_extra_params={};this.data_query_wait=(ak?ak:K);this.dataset_check_url=converted_datasets_state_url;this.data_manager=(aj?aj:new S(H,this));this.content_div=$("<div class='track-content'>").appendTo(this.container_div);if(this.container){this.container.content_div.append(this.container_div)}};p(i.prototype,q.prototype,{action_icons_def:[{name:"mode_icon",title:"Set display mode",css_class:"chevron-expand",on_click_fn:function(){}},q.prototype.action_icons_def[0],{name:"overview_icon",title:"Set as overview",css_class:"overview-icon",on_click_fn:function(ae){ae.view.set_overview(ae)}},q.prototype.action_icons_def[1],{name:"filters_icon",title:"Filters",css_class:"filters-icon",on_click_fn:function(ae){ae.filters_div.toggle();ae.filters_manager.reset_filters()}},{name:"tools_icon",title:"Tools",css_class:"tools-icon",on_click_fn:function(ae){ae.dynamic_tool_div.toggle();if(ae.dynamic_tool_div.is(":visible")){ae.set_name(ae.name+ae.tool_region_and_parameters_str())}else{ae.revert_name()}$(".tipsy").remove()}},q.prototype.action_icons_def[2]],can_draw:function(){if(this.dataset_id&&q.prototype.can_draw.call(this)){return true}return false},build_container_div:function(){return $("<div/>").addClass("track").attr("id","track_"+this.id).css("position","relative")},build_header_div:function(){var ae=$("<div class='track-header'/>");if(this.view.editor){this.drag_div=$("<div/>").addClass(this.drag_handle_class).appendTo(ae)}this.name_div=$("<div/>").addClass("track-name").appendTo(ae).text(this.name).attr("id",this.name.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9\-]/g,"").toLowerCase());return ae},build_action_icons:function(){q.prototype.build_action_icons.call(this,this.action_icons_def);var af=this;if(af.display_modes!==undefined){var aj=(af.config&&af.config.values.mode?af.config.values.mode:af.display_modes[0]);af.mode=aj;this.action_icons.mode_icon.attr("title","Set display mode (now: "+af.mode+")");var ah={};for(var ag=0,ae=af.display_modes.length;ag<ae;ag++){var ai=af.display_modes[ag];ah[ai]=function(ak){return function(){af.change_mode(ak);af.icons_div.show();af.container_div.mouseleave(function(){af.icons_div.hide()})}}(ai)}make_popupmenu(this.action_icons.mode_icon,ah)}},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 aa){return"LabelTrack"}else{if(this instanceof z){return"ReferenceTrack"}else{if(this instanceof j){return"LineTrack"}else{if(this instanceof V){return"ReadTrack"}else{if(this instanceof T){return"VcfTrack"}else{if(this instanceof h){return"CompositeTrack"}else{if(this instanceof d){return"FeatureTrack"}}}}}}}return""},init:function(){var ae=this;ae.enabled=false;ae.tile_cache.clear();ae.data_manager.clear();ae.content_div.css("height","auto");ae.content_div.children().remove();ae.container_div.removeClass("nodata error pending");if(!ae.dataset_id){return}$.getJSON(converted_datasets_state_url,{hda_ldda:ae.hda_ldda,dataset_id:ae.dataset_id,chrom:ae.view.chrom},function(af){if(!af||af==="error"||af.kind==="error"){ae.container_div.addClass("error");ae.content_div.text(o);if(af.message){var ag=$(" <a href='javascript:void(0);'></a>").text("View error").click(function(){show_modal("Trackster Error","<pre>"+af.message+"</pre>",{Close:hide_modal})});ae.content_div.append(ag)}}else{if(af==="no converter"){ae.container_div.addClass("error");ae.content_div.text(J)}else{if(af==="no data"||(af.data!==undefined&&(af.data===null||af.data.length===0))){ae.container_div.addClass("nodata");ae.content_div.text(D)}else{if(af==="pending"){ae.container_div.addClass("pending");ae.content_div.text(t);setTimeout(function(){ae.init()},ae.data_query_wait)}else{if(af.status==="data"){if(af.valid_chroms){ae.valid_chroms=af.valid_chroms;ae.update_icons()}ae.content_div.text(X);if(ae.view.chrom){ae.content_div.text("");ae.content_div.css("height",ae.height_px+"px");ae.enabled=true;$.when(ae.predraw_init()).done(function(){ae.container_div.removeClass("nodata error pending");ae.request_draw()})}}}}}}});this.update_icons()},predraw_init:function(){}});var M=function(ai,ag,af,ah,al,ak,aj){i.call(this,ai,ag,af,ah,aj);var ae=this,ag=ae.view;m(ae.container_div,ae.drag_handle_class,".group",ae);this.filters_manager=new Z(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);this.tile_cache=new c(R);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(M.prototype,q.prototype,i.prototype,{copy:function(ae){var af=new this.constructor(this.name,this.view,ae,this.hda_ldda,this.dataset_id,this.prefs,this.filters,this.tool,this.data_manager);af.change_mode(this.mode);af.enabled=this.enabled;return af},to_dict: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,}},from_dict:function(ag,af){var ae=new this.constructor(ag.name,view,af,ag.hda_ldda,ag.dataset_id,ag.prefs,ag.filters,ag.tool);if(ag.mode){ae.change_mode(ag.mode)}return ae},change_mode:function(af){var ae=this;ae.mode=af;ae.config.values.mode=af;ae.tile_cache.clear();ae.request_draw();this.action_icons.mode_icon.attr("title","Set display mode (now: "+ae.mode+")");return ae},update_icons:function(){var ae=this;if(ae.filters_available){ae.action_icons.filters_icon.show()}else{ae.action_icons.filters_icon.hide()}if(ae.tool){ae.action_icons.tools_icon.show()}else{ae.action_icons.tools_icon.hide()}},_gen_tile_cache_key:function(af,ag,ae){return af+"_"+ag+"_"+ae},request_draw:function(af,ae){this.view.request_redraw(false,af,ae,this)},_draw:function(ag,aq){if(!this.can_draw()){return}var ao=this.view.low,ak=this.view.high,am=ak-ao,ah=this.view.container.width(),au=ah/am,aj=this.view.resolution,at=this.content_div;if(this.is_overview){ao=this.view.max_low;ak=this.view.max_high;aj=Math.pow(A,Math.ceil(Math.log((view.max_high-view.max_low)/Q)/Math.log(A)));au=ah/(view.max_high-view.max_low)}if(!aq){this.content_div.children().addClass("remove")}this.max_height=0;var af=Math.floor(ao/aj/Q);var an=true;var ar=[];var ae=0;var al=function(av){return(av&&"track" in av)};while((af*Q*aj)<ak){var ap=this.draw_helper(ag,ah,af,aj,at,au);if(al(ap)){ar.push(ap)}else{an=false}af+=1;ae++}if(!aq){this.content_div.children(".remove").remove()}var ai=this;if(an){ai.postdraw_actions(ar,ah,au,aq)}},postdraw_actions:function(ah,ai,ak,ae){var ag=this;var aj=false;for(var af=0;af<ah.length;af++){if(ah[af].has_icons){aj=true;break}}if(aj){for(var af=0;af<ah.length;af++){tile=ah[af];if(!tile.has_icons){tile.html_elt.css("padding-top",C)}}}},draw_helper:function(ae,aq,aw,au,aj,ak,ar){var ap=this,az=this._gen_tile_cache_key(aq,ak,aw),ax=aw*Q*au,af=ax+Q*au;if(!ar){ar={}}var ay=(ae?undefined:ap.tile_cache.get(az));if(ay){ap.show_tile(ay,aj,ak);return ay}var an=true;var av=ap.data_manager.get_data(ax,af,ap.mode,au,ap.data_url_extra_params);if(is_deferred(av)){an=false}var al;if(view.reference_track&&ak>view.canvas_manager.char_width_px){al=view.reference_track.data_manager.get_data(ax,af,ap.mode,au,view.reference_track.data_url_extra_params);if(is_deferred(al)){an=false}}if(an){p(av,ar.more_tile_data);var am=ap.mode;if(am==="Auto"){am=ap.get_mode(av);ap.update_auto_mode(am)}var ag=ap.view.canvas_manager.new_canvas(),ah=ap._get_tile_bounds(aw,au),ax=ah[0],af=ah[1],aq=Math.ceil((af-ax)*ak)+ap.left_offset,ao=ap.get_canvas_height(av,am,ak,aq);ag.width=aq;ag.height=ao;var at=ag.getContext("2d");at.translate(this.left_offset,0);var ay=ap.draw_tile(av,at,am,au,aw,ak,al);if(ay!==undefined){ap.tile_cache.set(az,ay);ap.show_tile(ay,aj,ak)}return ay}var ai=$.Deferred();$.when(av,al).then(function(){view.request_redraw(false,false,false,ap);ai.resolve()});return ai},get_canvas_height:function(ae,ag,ah,af){return this.height_px},draw_tile:function(ae,ag,aj,ai,af,ak,ah){console.log("Warning: TiledTrack.draw_tile() not implemented.")},show_tile:function(ag,ai,aj){var af=this,ae=ag.html_elt;ag.predisplay_actions();var ah=(ag.low-(this.is_overview?this.view.max_low:this.view.low))*aj;if(this.left_offset){ah-=this.left_offset}ae.css({position:"absolute",top:0,left:ah,height:""});if(ae.hasClass("remove")){ae.removeClass("remove")}else{ai.append(ae)}af.max_height=Math.max(af.max_height,ae.height());af.content_div.css("height",af.max_height+"px");ai.children().css("height",af.max_height+"px")},_get_tile_bounds:function(ae,af){var ah=ae*Q*af,ai=Q*af,ag=(ah+ai<=this.view.max_high?ah+ai:this.view.max_high);return[ah,ag]},tool_region_and_parameters_str:function(ag,ae,ah){var af=this,ai=(ag!==undefined&&ae!==undefined&&ah!==undefined?ag+":"+ae+"-"+ah:"all");return" - region=["+ai+"], parameters=["+af.tool.get_param_values().join(", ")+"]"},data_and_mode_compatible:function(ae,af){return true},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 af=this;var ae=function(){if(af.data_manager.size()===0){setTimeout(ae,300)}else{af.data_url=default_data_url;af.data_query_wait=K;af.dataset_state_url=converted_datasets_state_url;$.getJSON(af.dataset_state_url,{dataset_id:af.dataset_id,hda_ldda:af.hda_ldda},function(ag){})}};ae()}}});var aa=function(af,ae){i.call(this,"label",af,ae,false,{});this.container_div.addClass("label-track")};p(aa.prototype,i.prototype,{build_header_div:function(){},init:function(){this.enabled=true},_draw:function(){var ag=this.view,ah=ag.high-ag.low,ak=Math.floor(Math.pow(10,Math.floor(Math.log(ah)/Math.log(10)))),ae=Math.floor(ag.low/ak)*ak,ai=this.view.container.width(),af=$("<div style='position: relative; height: 1.3em;'></div>");while(ae<ag.high){var aj=(ae-ag.low)/ah*ai;af.append($("<div class='label'>"+commatize(ae)+"</div>").css({position:"absolute",left:aj-1}));ae+=ak}this.content_div.children(":first").remove();this.content_div.append(af)}});var h=function(ah,ag,af,ae){this.display_modes=ae[0].display_modes;M.call(this,ah,ag,af);this.drawables=[];this.left_offset=0;if(ae){var ak=[],aj;for(var ai=0;ai<ae.length;ai++){aj=ae[ai];ak.push(aj.dataset_id);this.drawables[ai]=aj.copy();if(aj.left_offset>this.left_offset){this.left_offset=aj.left_offset}}this.enabled=true}this.update_icons();this.obj_type="CompositeTrack"};p(h.prototype,M.prototype,{to_dict:x.prototype.to_dict,add_drawable:x.prototype.add_drawable,from_dict:function(ak,ae){var aj=new this.constructor(ak.name,view,ae,ak.prefs,view.viewport_container,view);var af,ai,ah;for(var ag=0;ag<ak.drawables.length;ag++){af=ak.drawables[ag];ai=af.obj_type;if(!ai){ai=af.track_type}ah=addable_objects[ai].prototype.from_dict(af);aj.add_drawable(ah)}return aj},change_mode:function(ae){M.prototype.change_mode.call(this,ae);for(var af=0;af<this.drawables.length;af++){this.drawables[af].change_mode(ae)}},init:function(){this.enabled=true;this.request_draw()},update_icons:function(){this.action_icons.filters_icon.hide();this.action_icons.tools_icon.hide()},can_draw:q.prototype.can_draw,draw_helper:function(af,au,aA,ax,al,an,av){var at=this,aE=this._gen_tile_cache_key(au,an,aA),aB=aA*Q*ax,ag=aB+Q*ax;if(!av){av={}}var aD=(af?undefined:at.tile_cache.get(aE));if(aD){at.show_tile(aD,al,an);return aD}var am=[],at,aq=true,ay,ao;for(var az=0;az<this.drawables.length;az++){at=this.drawables[az];ay=at.data_manager.get_data(aB,ag,at.mode,ax,at.data_url_extra_params);if(is_deferred(ay)){aq=false}am.push(ay);ao=null;if(view.reference_track&&an>view.canvas_manager.char_width_px){ao=view.reference_track.data_manager.get_data(aB,ag,at.mode,ax,view.reference_track.data_url_extra_params);if(is_deferred(ao)){aq=false}}am.push(ao)}if(aq){p(ay,av.more_tile_data);this.tile_predraw_init();var ai=at.view.canvas_manager.new_canvas(),aj=at._get_tile_bounds(aA,ax),aB=aj[0],ag=aj[1],aC=0,au=Math.ceil((ag-aB)*an)+this.left_offset,ar=0,ah=[];var ae=0;for(var az=0;az<this.drawables.length;az++,aC+=2){at=this.drawables[az];ay=am[aC];var ap=at.mode;if(ap==="Auto"){ap=at.get_mode(ay);at.update_auto_mode(ap)}ah.push(ap);ae=at.get_canvas_height(ay,ap,an,au);if(ae>ar){ar=ae}}ai.width=au;ai.height=(av.height?av.height:ar);aC=0;var aw=ai.getContext("2d");aw.translate(this.left_offset,0);aw.globalAlpha=0.5;aw.globalCompositeOperation="source-over";for(var az=0;az<this.drawables.length;az++,aC+=2){at=this.drawables[az];ay=am[aC];ao=am[aC+1];aD=at.draw_tile(ay,aw,ah[az],ax,aA,an,ao)}this.tile_cache.set(aE,aD);this.show_tile(aD,al,an);return aD}var ak=$.Deferred(),at=this;$.when.apply($,am).then(function(){view.request_redraw(false,false,false,at);ak.resolve()});return ak},tile_predraw_init:function(){var ah=Number.MAX_VALUE,ae=-ah,af;for(var ag=0;ag<this.drawables.length;ag++){af=this.drawables[ag];if(af instanceof j){if(af.prefs.min_value<ah){ah=af.prefs.min_value}if(af.prefs.max_value>ae){ae=af.prefs.max_value}}}for(var ag=0;ag<this.drawables.length;ag++){af=this.drawables[ag];af.prefs.min_value=ah;af.prefs.max_value=ae}},postdraw_actions:function(ag,aj,al,af){M.prototype.postdraw_actions.call(this,ag,aj,al,af);var ai=-1;for(var ah=0;ah<ag.length;ah++){var ae=ag[ah].html_elt.find("canvas").height();if(ae>ai){ai=ae}}for(var ah=0;ah<ag.length;ah++){var ak=ag[ah];if(ak.html_elt.find("canvas").height()!==ai){this.draw_helper(true,aj,ak.index,ak.resolution,ak.html_elt.parent(),al,{height:ai});ak.html_elt.remove()}}}});var z=function(ae){M.call(this,"reference",ae,{content_div:ae.top_labeltrack},{});ae.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:ae.dbkey};this.data_manager=new G(H,this,false)};p(z.prototype,q.prototype,M.prototype,{build_header_div:function(){},init:function(){this.enabled=true},can_draw:q.prototype.can_draw,draw_tile:function(am,an,aj,ai,af,ao){var ah=this;if(ao>this.view.canvas_manager.char_width_px){if(am.data===null){ah.content_div.css("height","0px");return}var ag=an.canvas;an.font=an.canvas.manager.default_font;an.textAlign="center";am=am.data;for(var ak=0,al=am.length;ak<al;ak++){var ae=Math.round(ak*ao);an.fillText(am[ak],ae,10)}return new b(ah,af,ai,ag,am)}this.content_div.css("height","0px")}});var j=function(ae,al,af,ak,an,am,ai,aj,ag){var ah=this;this.display_modes=["Histogram","Line","Filled","Intensity"];this.mode="Histogram";M.call(this,ae,al,af,am,ai,aj,ag);this.min_height_px=16;this.max_height_px=400;this.height_px=32;this.hda_ldda=ak;this.dataset_id=an;this.original_dataset_id=an;this.left_offset=0;this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ae},{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:am,onchange:function(){ah.set_name(ah.prefs.name);ah.vertical_range=ah.prefs.max_value-ah.prefs.min_value;$("#linetrack_"+ah.dataset_id+"_minval").text(ah.prefs.min_value);$("#linetrack_"+ah.dataset_id+"_maxval").text(ah.prefs.max_value);ah.tile_cache.clear();ah.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,M.prototype,{add_resize_handle:function(){var ae=this;var ah=false;var ag=false;var af=$("<div class='track-resize'>");$(ae.container_div).hover(function(){if(ae.content_visible){ah=true;af.show()}},function(){ah=false;if(!ag){af.hide()}});af.hide().bind("dragstart",function(ai,aj){ag=true;aj.original_height=$(ae.content_div).height()}).bind("drag",function(aj,ak){var ai=Math.min(Math.max(ak.original_height+ak.deltaY,ae.min_height_px),ae.max_height_px);$(ae.content_div).css("height",ai);ae.height_px=ai;ae.request_draw(true)}).bind("dragend",function(ai,aj){ae.tile_cache.clear();ag=false;if(!ah){af.hide()}ae.config.values.height=ae.height_px}).appendTo(ae.container_div)},predraw_init:function(){var ae=this;ae.vertical_range=undefined;return $.getJSON(ae.data_url,{stats:true,chrom:ae.view.chrom,low:null,high:null,hda_ldda:ae.hda_ldda,dataset_id:ae.dataset_id},function(af){ae.container_div.addClass("line-track");var ai=af.data;if(isNaN(parseFloat(ae.prefs.min_value))||isNaN(parseFloat(ae.prefs.max_value))){var ag=ai.min;var ak=ai.max;ag=Math.floor(Math.min(0,Math.max(ag,ai.mean-2*ai.sd)));ak=Math.ceil(Math.max(0,Math.min(ak,ai.mean+2*ai.sd)));ae.prefs.min_value=ag;ae.prefs.max_value=ak;$("#track_"+ae.dataset_id+"_minval").val(ae.prefs.min_value);$("#track_"+ae.dataset_id+"_maxval").val(ae.prefs.max_value)}ae.vertical_range=ae.prefs.max_value-ae.prefs.min_value;ae.total_frequency=ai.total_frequency;ae.container_div.find(".yaxislabel").remove();var aj=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+ae.dataset_id+"_minval").text(Y(ae.prefs.min_value,3));var ah=$("<div />").addClass("yaxislabel").attr("id","linetrack_"+ae.dataset_id+"_maxval").text(Y(ae.prefs.max_value,3));ah.css({position:"absolute",top:"24px",left:"10px"});ah.prependTo(ae.container_div);aj.css({position:"absolute",bottom:"2px",left:"10px"});aj.prependTo(ae.container_div)})},draw_tile:function(ao,am,aj,ah,af,an){if(this.vertical_range===undefined){return}var ag=am.canvas,ae=this._get_tile_bounds(af,ah),ai=ae[0],al=ae[1],ak=new L.LinePainter(ao.data,ai,al,this.prefs,aj);ak.draw(am,ag.width,ag.height,an);return new b(this.track,af,ah,ag,ao.data)}});var d=function(ae,al,af,ak,an,am,ai,aj,ag){var ah=this;this.display_modes=["Auto","Histogram","Dense","Squish","Pack"];M.call(this,ae,al,af,am,ai,aj,ag);this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ae},{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.slotters={};this.start_end_dct={};this.left_offset=200;this.set_painter_from_config()};p(d.prototype,q.prototype,M.prototype,{set_painter_from_config:function(){if(this.config.values.connector_style=="arcs"){this.painter=L.ArcLinkedFeaturePainter}else{this.painter=L.LinkedFeaturePainter}},postdraw_actions:function(ar,am,ai,ag){M.prototype.postdraw_actions.call(this,ar,ag);var al=this;if(ag){var aw=al.content_div.children();var av=false;for(var ao=aw.length-1,ap=0;ao>=ap;ao--){var ah=$(aw[ao]);if(av){ah.remove()}else{if(ah.children().length!==0){av=true}}}}if(al.mode=="Histogram"){var af=-1;for(var ao=0;ao<ar.length;ao++){var an=ar[ao].max_val;if(an>af){af=an}}for(var ao=0;ao<ar.length;ao++){var au=ar[ao];if(au.max_val!==af){au.html_elt.remove();al.draw_helper(true,am,au.index,au.resolution,au.html_elt.parent(),ai,{more_tile_data:{max:af}})}}}if(al.filters_manager){var aj=al.filters_manager.filters;for(var aq=0;aq<aj.length;aq++){aj[aq].update_ui_elt()}var at=false,ae,ak;for(var ao=0;ao<ar.length;ao++){if(ar[ao].data.length){ae=ar[ao].data[0];for(var aq=0;aq<aj.length;aq++){ak=aj[aq];if(ak.applies_to(ae)&&ak.min!==ak.max){at=true;break}}}}if(al.filters_available!==at){al.filters_available=at;if(!al.filters_available){al.filters_div.hide()}al.update_icons()}}},update_auto_mode:function(ae){var ae;if(this.mode=="Auto"){if(ae=="no_detail"){ae="feature spans"}else{if(ae=="summary_tree"){ae="coverage histogram"}}this.action_icons.mode_icon.attr("title","Set display mode (now: Auto/"+ae+")")}},incremental_slots:function(ai,ae,ah){var af=this.view.canvas_manager.dummy_context,ag=this.slotters[ai];if(!ag||(ag.mode!==ah)){ag=new (s.FeatureSlotter)(ai,ah,y,function(aj){return af.measureText(aj)});this.slotters[ai]=ag}return ag.slot_features(ae)},get_summary_tree_data:function(ai,al,ag,au){if(au>ag-al){au=ag-al}var ap=Math.floor((ag-al)/au),at=[],ah=0;var aj=0,ak=0,ao,ar=0,am=[],aq,an;var af=function(ax,aw,ay,av){ax[0]=aw+ay*av;ax[1]=aw+(ay+1)*av};while(ar<au&&aj!==ai.length){var ae=false;for(;ar<au&&!ae;ar++){af(am,al,ar,ap);for(ak=aj;ak<ai.length;ak++){ao=ai[ak].slice(1,3);if(is_overlap(ao,am)){ae=true;break}}if(ae){break}}data_start_index=ak;at[at.length]=aq=[am[0],0];for(;ak<ai.length;ak++){ao=ai[ak].slice(1,3);if(is_overlap(ao,am)){aq[1]++}else{break}}if(aq[1]>ah){ah=aq[1]}ar++}return{max:ah,delta:ap,data:at}},get_mode:function(ae){if(ae.dataset_type==="summary_tree"){mode="summary_tree"}else{if(ae.extra_info==="no_detail"||this.is_overview){mode="no_detail"}else{if(this.view.high-this.view.low>I){mode="Squish"}else{mode="Pack"}}}return mode},get_canvas_height:function(ae,ai,aj,af){if(ai==="summary_tree"||ai==="Histogram"){return this.summary_draw_height}else{var ah=this.incremental_slots(aj,ae.data,ai);var ag=new (this.painter)(null,null,null,this.prefs,ai);return Math.max(ac,ag.get_required_height(ah,af))}},draw_tile:function(aq,av,at,aw,aA,am,ah){var au=this,ag=av.canvas,aj=this._get_tile_bounds(aA,aw),aD=aj[0],af=aj[1],aI=25,ai=this.left_offset;if(at==="summary_tree"||at==="Histogram"){this.container_div.find(".yaxislabel").remove();var ae=$("<div />").addClass("yaxislabel");ae.text(aq.max);ae.css({position:"absolute",top:"24px",left:"10px",color:this.prefs.label_color});ae.prependTo(this.container_div);if(aq.dataset_type!="summary_tree"){var an=this.get_summary_tree_data(aq.data,aD,af,200);if(aq.max){an.max=aq.max}aq=an}var aF=new L.SummaryTreePainter(aq,aD,af,this.prefs);aF.draw(av,ag.width,ag.height,am);return new k(au,aA,aw,ag,aq.data,aq.max)}var al=[],ar=this.slotters[am].slots;all_slotted=true;if(aq.data){var ao=this.filters_manager.filters;for(var ax=0,az=aq.data.length;ax<az;ax++){var ak=aq.data[ax];var ay=false;var ap;for(var aC=0,aH=ao.length;aC<aH;aC++){ap=ao[aC];ap.update_attrs(ak);if(!ap.keep(ak)){ay=true;break}}if(!ay){al.push(ak);if(!(ak[0] in ar)){all_slotted=false}}}}var aG=(this.filters_manager.alpha_filter?new B(this.filters_manager.alpha_filter):null);var aE=(this.filters_manager.height_filter?new B(this.filters_manager.height_filter):null);var aF=new (this.painter)(al,aD,af,this.prefs,at,aG,aE,ah);var aB=null;av.fillStyle=this.prefs.block_color;av.font=av.canvas.manager.default_font;av.textAlign="right";this.container_div.find(".yaxislabel").remove();if(aq.data){aB=aF.draw(av,ag.width,ag.height,am,ar);aB.translation=-ai}return new O(au,aA,aw,ag,aq.data,am,at,aq.message,all_slotted,aB)},data_and_mode_compatible:function(ae,af){if(af==="Auto"){return true}else{if(ae.extra_info==="no_detail"||ae.dataset_type==="summary_tree"){return false}else{return true}}},});var T=function(ae,ak,af,aj,am,al,ah,ai,ag){d.call(this,ae,ak,af,aj,am,al,ah,ai,ag);this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ae},{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:al,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=L.ReadPainter};p(T.prototype,q.prototype,M.prototype,d.prototype);var V=function(ae,ak,af,aj,an,am,ah,ag){d.call(this,ae,ak,af,aj,an,am,ah,ag);var ai=get_random_color(),al=get_random_color([ai,"#ffffff"]);this.config=new E({track:this,params:[{key:"name",label:"Name",type:"text",default_value:ae},{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=L.ReadPainter;this.update_icons()};p(V.prototype,q.prototype,M.prototype,d.prototype);W.View=ab;W.DrawableGroup=P;W.LineTrack=j;W.FeatureTrack=d;W.ReadTrack=V;W.VcfTrack=T;W.CompositeTrack=h};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.mode=h;this.include_label=(h==="Pack");this.max_rows=f;this.measureText=g};e(b.FeatureSlotter.prototype,{slot_features:function(m){var p=this.w_scale,h=this.start_end_dct,x=[],z=[],n=0,y=this.max_rows;for(var v=0,w=m.length;v<w;v++){var k=m[v],o=k[0];if(this.slots[o]!==undefined){n=Math.max(n,this.slots[o]);z.push(this.slots[o])}else{x.push(v)}}var q=function(E,F){for(var D=0;D<=y;D++){var B=false,G=h[D];if(G!==undefined){for(var A=0,C=G.length;A<C;A++){var i=G[A];if(F>i[0]&&E<i[1]){B=true;break}}}if(!B){return D}}return -1};for(var v=0,w=x.length;v<w;v++){var k=m[x[v]],o=k[0],t=k[1],f=k[2],r=k[3],g=Math.floor(t*p),l=Math.ceil(f*p),u=this.measureText(r).width,j;if(r!==undefined&&this.include_label){u+=(d+a);if(g-u>=0){g-=u;j="left"}else{l+=u;j="right"}}var s=q(g,l);if(s>=0){if(h[s]===undefined){h[s]=[]}h[s].push([g,l]);this.slots[o]=s;n=Math.max(n,s)}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={};l.prototype.draw=function(z,A,y,B){};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(L,z,K,M){var E=this.view_start,N=this.view_end-this.view_start,I=this.data.data,G=this.data.max,B=K;delta_x_px=Math.ceil(this.data.delta*M);L.save();for(var C=0,D=I.length;C<D;C++){var H=Math.floor((I[C][0]-E)*M);var F=I[C][1];if(!F){continue}var J=F/G*K;if(F!==0&&J<1){J=1}L.fillStyle=this.prefs.block_color;L.fillRect(H,B-J,delta_x_px,J);var A=4;if(this.prefs.show_counts&&(L.measureText(F).width+A)<delta_x_px){L.fillStyle=this.prefs.label_color;L.textAlign="center";L.fillText(F,H+(delta_x_px/2),10)}}L.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(S,Q,N,D){var I=false,K=this.prefs.min_value,F=this.prefs.max_value,M=F-K,B=N,C=this.view_start,P=this.view_end-this.view_start,L=this.mode,aa=this.data;S.save();var ac=Math.round(N+K/M*N);if(L!=="Intensity"){S.fillStyle="#aaa";S.fillRect(0,ac,Q,1)}S.beginPath();var Y,G,E;if(aa.length>1){E=Math.ceil((aa[1][0]-aa[0][0])*D)}else{E=10}var A=parseInt(this.prefs.color.slice(1),16),H=(A&16711680)>>16,R=(A&65280)>>8,V=A&255;for(var T=0,U=aa.length;T<U;T++){S.fillStyle=S.strokeStyle=this.prefs.color;Y=Math.round((aa[T][0]-C)*D);G=aa[T][1];var W=false,J=false;if(G===null){if(I&&L==="Filled"){S.lineTo(Y,B)}I=false;continue}if(G<K){J=true;G=K}else{if(G>F){W=true;G=F}}if(L==="Histogram"){G=Math.round(G/M*B);S.fillRect(Y,ac,E,-G)}else{if(L==="Intensity"){var z=(G-K)/M,O=Math.round(H+(255-H)*(1-z)),X=Math.round(R+(255-R)*(1-z)),ab=Math.round(V+(255-V)*(1-z));S.fillStyle="rgb("+O+","+X+","+ab+")";S.fillRect(Y,0,E,B)}else{G=Math.round(B-(G-K)/M*B);if(I){S.lineTo(Y,G)}else{I=true;if(L==="Filled"){S.moveTo(Y,B);S.lineTo(Y,G)}else{S.moveTo(Y,G)}}}}S.fillStyle=this.prefs.overflow_color;if(W||J){var Z;if(L==="Histogram"||L==="Intensity"){Z=E}else{Y-=2;Z=4}if(W){S.fillRect(Y,0,Z,3)}if(J){S.fillRect(Y,B-3,Z,3)}}S.fillStyle=this.prefs.color}if(L==="Filled"){if(I){S.lineTo(Y,ac);S.lineTo(0,ac)}S.fill()}else{S.stroke()}S.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,E,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,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]-1,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]-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 34db794299d3b79e1c9a92fff65e6222c70f4031 -r 9b7a615b39648a2911c483f8d3b693931ca5c1b4 static/scripts/trackster.js
--- a/static/scripts/trackster.js
+++ b/static/scripts/trackster.js
@@ -373,7 +373,6 @@
     CHAR_HEIGHT_PX = 9,
     // Padding at the top of tracks for error messages
     ERROR_PADDING = 20,
-    SUMMARY_TREE_TOP_PADDING = CHAR_HEIGHT_PX + 2,
     // Maximum number of rows un a slotted track
     MAX_FEATURE_DEPTH = 100,
     // Minimum width for window for squish to be used.
@@ -4149,7 +4148,7 @@
     get_canvas_height: function(result, mode, w_scale, canvas_width) {
         if (mode === "summary_tree" || mode === "Histogram") {
             // Extra padding at top of summary tree so label does not overlap data.
-            return this.summary_draw_height + SUMMARY_TREE_TOP_PADDING;
+            return this.summary_draw_height;
         }
         else {
             // All other modes require slotting.
@@ -4199,8 +4198,6 @@
             }
             // Paint summary tree into canvas
             var painter = new painters.SummaryTreePainter(result, tile_low, tile_high, this.prefs);
-            // FIXME: it shouldn't be necessary to build in padding.
-            ctx.translate(0, SUMMARY_TREE_TOP_PADDING);
             painter.draw(ctx, canvas.width, canvas.height, w_scale);
             return new SummaryTreeTile(track, tile_index, resolution, canvas, result.data, result.max);
         }
@@ -4623,16 +4620,15 @@
 SummaryTreePainter.prototype.default_prefs = { show_counts: false };
 
 SummaryTreePainter.prototype.draw = function(ctx, width, height, w_scale) {
-    
     var view_start = this.view_start,
-        view_range = this.view_end - this.view_start;
-    
-    var points = this.data.data, delta = this.data.delta, max = this.data.max,
+        view_range = this.view_end - this.view_start,
+        points = this.data.data,
+        max = this.data.max,
         // Set base Y so that max label and data do not overlap. Base Y is where rectangle bases
         // start. However, height of each rectangle is relative to required_height; hence, the
         // max rectangle is required_height.
         base_y = height;
-        delta_x_px = Math.ceil(delta * w_scale);
+        delta_x_px = Math.ceil(this.data.delta * w_scale);
     ctx.save();
     
     for (var i = 0, len = points.length; i < len; i++) {
@@ -4640,10 +4636,10 @@
         var y = points[i][1];
         
         if (!y) { continue; }
-        var y_px = y / max * height
+        var y_px = y / max * height;
         if (y !== 0 && y_px < 1) { y_px = 1; }
 
-        ctx.fillStyle = this.prefs.block_color;        
+        ctx.fillStyle = this.prefs.block_color;
         ctx.fillRect( x, base_y - y_px, delta_x_px, y_px );
         
         // Draw number count if it can fit the number with some padding, otherwise things clump up
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
                            
                          
                          
                            
    
                          
                        
                    
                    
                        4 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/6345c9c5f79e/
changeset:   6345c9c5f79e
user:        jgoecks
date:        2012-01-22 20:06:18
summary:     Update test data for cufflinks v1.3.0
affected #:  3 files
diff -r ef0a2b1c879b51c215afd445c248eb604645b29f -r 6345c9c5f79e80706a6466ae24b5480e56a26062 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 "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";
+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";
diff -r ef0a2b1c879b51c215afd445c248eb604645b29f -r 6345c9c5f79e80706a6466ae24b5480e56a26062 test-data/cufflinks_out4.txt
--- /dev/null
+++ b/test-data/cufflinks_out4.txt
@@ -0,0 +1,1 @@
+100.000000
diff -r ef0a2b1c879b51c215afd445c248eb604645b29f -r 6345c9c5f79e80706a6466ae24b5480e56a26062 tools/ngs_rna/cufflinks_wrapper.xml
--- a/tools/ngs_rna/cufflinks_wrapper.xml
+++ b/tools/ngs_rna/cufflinks_wrapper.xml
@@ -132,6 +132,7 @@
             <output name="genes_expression" format="tabular" lines_diff="2" file="cufflinks_out3.fpkm_tracking"/><output name="transcripts_expression" format="tabular" lines_diff="2" file="cufflinks_out2.fpkm_tracking"/><output name="assembled_isoforms" file="cufflinks_out1.gtf"/>
+            <output name="global_model" file="cufflinks_out4.txt"/></test></tests>
 
https://bitbucket.org/galaxy/galaxy-central/changeset/a533f050b897/
changeset:   a533f050b897
user:        jgoecks
date:        2012-01-22 20:19:46
summary:     Update test-data for cuffcompare v1.3.0
affected #:  2 files
diff -r 6345c9c5f79e80706a6466ae24b5480e56a26062 -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc test-data/cuffcompare_out5.gtf
--- a/test-data/cuffcompare_out5.gtf
+++ b/test-data/cuffcompare_out5.gtf
@@ -5,86 +5,86 @@
 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";
+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 "TSS10";
+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 "TSS11";
+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 "TSS13";
+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 "TSS14";
+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 "TSS15";
+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 "TSS16";
+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 "TSS17";
+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 "TSS18";
+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 "TSS19";
+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 "TSS20";
+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 "TSS21";
+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 "TSS22";
+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 "TSS23";
+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 "TSS24";
+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 "TSS25";
+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 "TSS26";
+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 "TSS27";
+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 "TSS28";
+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 "TSS29";
+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 "TSS30";
+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 "TSS31";
+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 "TSS32";
+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 "TSS33";
+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 "TSS34";
+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 "TSS35";
+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 "TSS36";
+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 "TSS37";
+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 "TSS38";
+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 "TSS39";
+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 "TSS40";
+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 "TSS40";
+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 "TSS41";
+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 "TSS42";
+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 "TSS43";
+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 "TSS44";
+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 "TSS45";
+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 "TSS46";
+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 "TSS47";
+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 "TSS48";
+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 "TSS49";
+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 "TSS50";
+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 "TSS51";
+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 "TSS52";
+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 "TSS54";
+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 "TSS55";
+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 "TSS56";
+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 "TSS57";
+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 "TSS58";
+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 "TSS59";
+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 "TSS60";
+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 "TSS61";
+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 "TSS62";
+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 "TSS63";
+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 "TSS65";
+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 "TSS66";
+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 "TSS67";
+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 "TSS68";
+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 "TSS69";
+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 "TSS70";
+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 "TSS71";
+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 "TSS72";
+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 "TSS73";
+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 "TSS74";
+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 "TSS74";
+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 "TSS75";
+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 "TSS76";
+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 "TSS77";
+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 "TSS78";
+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 "TSS79";
+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 "TSS80";
+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 "TSS81";
+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 "TSS82";
+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 "TSS83";
+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 "TSS84";
+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 "TSS85";
+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 "TSS86";
+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 "TSS87";
+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 "TSS88";
+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 "TSS89";
+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 "TSS90";
+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 "TSS91";
+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 "TSS92";
+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 "TSS93";
diff -r 6345c9c5f79e80706a6466ae24b5480e56a26062 -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc test-data/cuffcompare_out7.txt
--- a/test-data/cuffcompare_out7.txt
+++ b/test-data/cuffcompare_out7.txt
@@ -1,5 +1,5 @@
-# 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
+# Cuffcompare v1.3.0 | Command line was:
+#cuffcompare -o cc_output -r /Users/jeremy/projects/galaxy-central/database/files/010/dataset_10703.dat -R ./input1 ./input2
 #
 
 #= Summary for dataset: ./input1 :
@@ -14,11 +14,15 @@
 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%)
+
+Matching intron chains:       0
+         Matching loci:       0
+
+          Missed exons:       2/3	( 66.7%)
+           Novel exons:      49/50	( 98.0%)
+        Missed introns:       2/2	(100.0%)
+           Missed loci:       0/1	(  0.0%)
+            Novel loci:      49/50	( 98.0%)
 
 #= Summary for dataset: ./input2 :
 #     Query mRNAs :      50 in      50 loci  (0 multi-exon transcripts)
https://bitbucket.org/galaxy/galaxy-central/changeset/e5c37f9787b7/
changeset:   e5c37f9787b7
user:        jgoecks
date:        2012-01-22 20:35:13
summary:     Update cuffdiff test data for v1.3.0
affected #:  4 files
diff -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc -r e5c37f9787b72231f31782e9e41f9e379afdb04c test-data/cuffdiff_out10.txt
--- a/test-data/cuffdiff_out10.txt
+++ b/test-data/cuffdiff_out10.txt
@@ -5,10 +5,10 @@
 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_000007	XLOC_000007	-	chr1:3189810-3190789	q1	q2	NOTEST	0	0	0	0	0	1	no
+XLOC_000008	XLOC_000008	-	chr1:3190858-3191434	q1	q2	NOTEST	0	0	0	0	0	1	no
+XLOC_000009	XLOC_000009	-	chr1:3191512-3192077	q1	q2	NOTEST	0	0	0	0	0	1	no
+XLOC_000010	XLOC_000010	-	chr1:3192250-3192336	q1	q2	NOTEST	0	0	0	0	0	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
@@ -23,11 +23,11 @@
 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_000025	XLOC_000025	-	chr1:3200022-3200191	q1	q2	NOTEST	0	0	0	0	0	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_000029	XLOC_000029	-	chr1:3201077-3201481	q1	q2	NOTEST	0	0	0	0	0	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
@@ -35,10 +35,10 @@
 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_000037	XLOC_000037	Xkr4	chr1:3213095-3213242	q1	q2	NOTEST	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_000040	XLOC_000040	Xkr4	chr1:3242633-3242923	q1	q2	NOTEST	0	0	0	0	0	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
@@ -47,7 +47,7 @@
 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_000049	XLOC_000049	Xkr4	chr1:3277913-3278390	q1	q2	NOTEST	0	0	0	0	0	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
@@ -57,8 +57,8 @@
 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_000059	XLOC_000059	Xkr4	chr1:3290919-3291273	q1	q2	NOTEST	0	0	0	0	0	1	no
+XLOC_000060	XLOC_000060	Xkr4	chr1:3299443-3299664	q1	q2	NOTEST	0	0	0	0	0	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
diff -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc -r e5c37f9787b72231f31782e9e41f9e379afdb04c test-data/cuffdiff_out7.txt
--- a/test-data/cuffdiff_out7.txt
+++ b/test-data/cuffdiff_out7.txt
@@ -1,91 +1,89 @@
 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
+TSS10	-	-	XLOC_000008	-	TSS10	chr1:3190858-3191434	-	-	474092	138279	809906	OK	369273	113039	625507	OK
+TSS11	-	-	XLOC_000009	-	TSS11	chr1:3191512-3192077	-	-	502845	149756	855934	OK	739818	487934	991702	OK
+TSS13	-	-	XLOC_000010	-	TSS13	chr1:3192250-3192336	-	-	3.994e+06	0	1.1982e+07	OK	2.93812e+06	0	8.81435e+06	OK
+TSS14	-	-	XLOC_000011	-	TSS14	chr1:3192441-3192494	-	-	0	0	0	OK	8.52143e+07	0	1.83611e+08	OK
+TSS15	-	-	XLOC_000012	-	TSS15	chr1:3192550-3192629	-	-	0	0	0	OK	4.15515e+06	0	1.24654e+07	OK
+TSS16	-	-	XLOC_000013	-	TSS16	chr1:3192649-3192676	-	-	0	0	0	OK	0	0	0	OK
+TSS17	-	-	XLOC_000014	-	TSS17	chr1:3192731-3192811	-	-	0	0	0	OK	0	0	0	OK
+TSS18	-	-	XLOC_000015	-	TSS18	chr1:3192940-3193042	-	-	0	0	0	OK	6.02976e+06	0	1.34147e+07	OK
+TSS19	-	-	XLOC_000016	-	TSS19	chr1:3194185-3194226	-	-	0	0	0	OK	2.1403e+08	0	6.42089e+08	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
+TSS20	-	-	XLOC_000017	-	TSS20	chr1:3194302-3194329	-	-	0	0	0	OK	0	0	0	OK
+TSS21	-	-	XLOC_000018	-	TSS21	chr1:3194706-3194733	-	-	0	0	0	OK	0	0	0	OK
+TSS22	-	-	XLOC_000019	-	TSS22	chr1:3195083-3195110	-	-	0	0	0	OK	0	0	0	OK
+TSS23	-	-	XLOC_000020	-	TSS23	chr1:3195450-3195477	-	-	0	0	0	OK	0	0	0	OK
+TSS24	-	-	XLOC_000021	-	TSS24	chr1:3197089-3197116	-	-	0	0	0	OK	0	0	0	OK
+TSS25	-	-	XLOC_000022	-	TSS25	chr1:3197246-3197273	-	-	0	0	0	OK	0	0	0	OK
+TSS26	-	-	XLOC_000023	-	TSS26	chr1:3197346-3197373	-	-	0	0	0	OK	0	0	0	OK
+TSS27	-	-	XLOC_000024	-	TSS27	chr1:3197425-3197452	-	-	0	0	0	OK	0	0	0	OK
+TSS28	-	-	XLOC_000025	-	TSS28	chr1:3200022-3200191	-	-	959058	0	2.06648e+06	OK	705514	0	1.52017e+06	OK
+TSS29	-	-	XLOC_000026	-	TSS29	chr1:3200325-3200352	-	-	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
+TSS30	-	-	XLOC_000027	-	TSS30	chr1:3200430-3200457	-	-	0	0	0	OK	0	0	0	OK
+TSS31	-	-	XLOC_000028	-	TSS31	chr1:3201007-3201039	-	-	0	0	0	OK	0	0	0	OK
+TSS32	-	-	XLOC_000029	-	TSS32	chr1:3201077-3201481	-	-	77513.9	0	167019	OK	285108	21736.5	548480	OK
+TSS33	-	-	XLOC_000030	-	TSS33	chr1:3201596-3201666	-	-	1.89853e+07	0	4.58345e+07	OK	0	0	0	OK
+TSS34	-	-	XLOC_000031	-	TSS34	chr1:3201672-3201699	-	-	0	0	0	OK	0	0	0	OK
+TSS35	-	-	XLOC_000032	-	TSS35	chr1:3201725-3201809	-	-	1.75659e+07	0	3.90796e+07	OK	0	0	0	OK
+TSS36	-	-	XLOC_000033	Xkr4	TSS36	chr1:3211521-3211561	-	-	0	0	0	OK	0	0	0	OK
+TSS37	-	-	XLOC_000034	Xkr4	TSS37	chr1:3212213-3212292	-	-	0	0	0	OK	8.3103e+06	0	2.00628e+07	OK
+TSS38	-	-	XLOC_000035	Xkr4	TSS38	chr1:3212367-3212439	-	-	0	0	0	OK	2.4671e+07	0	5.48867e+07	OK
+TSS39	-	-	XLOC_000036	Xkr4	TSS39	chr1:3212717-3212801	-	-	4.39147e+06	0	1.31744e+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
+TSS40	-	-	XLOC_000037	Xkr4	TSS40	chr1:3213095-3213242	-	-	8.89174e+06	0	2.05036e+07	OK	1.82908e+06	0	5.48723e+06	OK
+TSS41	-	-	XLOC_000038	Xkr4	TSS41	chr1:3240606-3240633	-	-	0	0	0	OK	0	0	0	OK
+TSS42	-	-	XLOC_000039	Xkr4	TSS42	chr1:3242479-3242512	-	-	0	0	0	OK	0	0	0	OK
+TSS43	-	-	XLOC_000040	Xkr4	TSS43	chr1:3242633-3242923	-	-	56312.4	0	168937	OK	372827	0	761430	OK
+TSS44	-	-	XLOC_000041	Xkr4	TSS44	chr1:3242924-3243005	-	-	0	0	0	OK	0	0	0	OK
+TSS45	-	-	XLOC_000042	Xkr4	TSS45	chr1:3243018-3243079	-	-	0	0	0	OK	2.66226e+07	0	6.42725e+07	OK
+TSS46	-	-	XLOC_000043	Xkr4	TSS46	chr1:3243108-3243154	-	-	9.99919e+07	0	2.99976e+08	OK	0	0	0	OK
+TSS47	-	-	XLOC_000044	Xkr4	TSS47	chr1:3243347-3243401	-	-	0	0	0	OK	5.0951e+07	0	1.23007e+08	OK
+TSS48	-	-	XLOC_000045	Xkr4	TSS48	chr1:3254079-3254106	-	-	0	0	0	OK	0	0	0	OK
+TSS49	-	-	XLOC_000046	Xkr4	TSS49	chr1:3256974-3257011	-	-	0	0	0	OK	2.06814e+09	0	4.99293e+09	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
+TSS50	-	-	XLOC_000047	Xkr4	TSS50	chr1:3277155-3277182	-	-	0	0	0	OK	0	0	0	OK
+TSS51	-	-	XLOC_000048	Xkr4	TSS51	chr1:3277190-3277218	-	-	0	0	0	OK	0	0	0	OK
+TSS52	-	-	XLOC_000049	Xkr4	TSS52	chr1:3277913-3278390	-	-	265614	16793	514436	OK	41870.3	0	90217.9	OK
+TSS54	-	-	XLOC_000050	Xkr4	TSS54	chr1:3280117-3280144	-	-	0	0	0	OK	0	0	0	OK
+TSS55	-	-	XLOC_000051	Xkr4	TSS55	chr1:3280498-3280525	-	-	0	0	0	OK	0	0	0	OK
+TSS56	-	-	XLOC_000052	Xkr4	TSS56	chr1:3280686-3280741	-	-	0	0	0	OK	2.29576e+07	0	6.88728e+07	OK
+TSS57	-	-	XLOC_000053	Xkr4	TSS57	chr1:3282504-3282531	-	-	0	0	0	OK	0	0	0	OK
+TSS58	-	-	XLOC_000054	Xkr4	TSS58	chr1:3282650-3282677	-	-	0	0	0	OK	0	0	0	OK
+TSS59	-	-	XLOC_000055	Xkr4	TSS59	chr1:3282760-3282832	-	-	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
+TSS60	-	-	XLOC_000056	Xkr4	TSS60	chr1:3284966-3284993	-	-	0	0	0	OK	0	0	0	OK
+TSS61	-	-	XLOC_000057	Xkr4	TSS61	chr1:3290488-3290553	-	-	0	0	0	OK	9.79535e+06	0	2.9386e+07	OK
+TSS62	-	-	XLOC_000058	Xkr4	TSS62	chr1:3290798-3290859	-	-	1.8095e+07	0	5.4285e+07	OK	0	0	0	OK
+TSS63	-	-	XLOC_000059	Xkr4	TSS63	chr1:3290919-3291273	-	-	342218	0	691214	OK	75524	0	162732	OK
+TSS65	-	-	XLOC_000060	Xkr4	TSS65	chr1:3299443-3299664	-	-	937403	0	1.99795e+06	OK	137917	0	413751	OK
+TSS66	-	-	XLOC_000060	Xkr4	TSS66	chr1:3299443-3299664	-	-	0	0	0	OK	0	0	0	OK
+TSS67	-	-	XLOC_000061	Xkr4	TSS67	chr1:3299691-3299733	-	-	0	0	0	OK	0	0	0	OK
+TSS68	-	-	XLOC_000062	Xkr4	TSS68	chr1:3300051-3300078	-	-	0	0	0	OK	0	0	0	OK
+TSS69	-	-	XLOC_000063	Xkr4	TSS69	chr1:3307748-3307775	-	-	0	0	0	OK	0	0	0	OK
+TSS7	-	-	XLOC_000007	-	TSS7	chr1:3189810-3190789	-	-	415851	231920	599782	OK	458870	363705	554035	OK
+TSS70	-	-	XLOC_000064	Xkr4	TSS70	chr1:3318620-3318647	-	-	0	0	0	OK	0	0	0	OK
+TSS71	-	-	XLOC_000065	Xkr4	TSS71	chr1:3318999-3319051	-	-	0	0	0	OK	0	0	0	OK
+TSS72	-	-	XLOC_000066	Xkr4	TSS72	chr1:3330527-3330554	-	-	0	0	0	OK	0	0	0	OK
+TSS73	-	-	XLOC_000067	Xkr4	TSS73	chr1:3351240-3351311	-	-	8.91489e+06	0	2.67447e+07	OK	0	0	0	OK
+TSS74	-	-	XLOC_000068	Xkr4	TSS74	chr1:3355887-3356119	-	-	585828	0	1.30332e+06	OK	0	0	0	OK
+TSS75	-	-	XLOC_000069	Xkr4	TSS75	chr1:3356180-3356225	-	-	1.19208e+08	0	3.57623e+08	OK	0	0	0	OK
+TSS76	-	-	XLOC_000070	Xkr4	TSS76	chr1:3363076-3363176	-	-	4.42166e+06	0	1.06748e+07	OK	0	0	0	OK
+TSS77	-	-	XLOC_000071	Xkr4	TSS77	chr1:3363214-3363278	-	-	0	0	0	OK	0	0	0	OK
+TSS78	-	-	XLOC_000072	Xkr4	TSS78	chr1:3363387-3363446	-	-	6.42536e+07	0	1.38447e+08	OK	0	0	0	OK
+TSS79	-	-	XLOC_000073	Xkr4	TSS79	chr1:3363753-3363849	-	-	0	0	0	OK	0	0	0	OK
+TSS80	-	-	XLOC_000074	Xkr4	TSS80	chr1:3364871-3364919	-	-	7.29939e+07	0	2.18982e+08	OK	0	0	0	OK
+TSS81	-	-	XLOC_000075	Xkr4	TSS81	chr1:3367135-3367162	-	-	0	0	0	OK	0	0	0	OK
+TSS82	-	-	XLOC_000076	Xkr4	TSS82	chr1:3367210-3367237	-	-	0	0	0	OK	0	0	0	OK
+TSS83	-	-	XLOC_000077	Xkr4	TSS83	chr1:3367333-3367382	-	-	0	0	0	OK	0	0	0	OK
+TSS84	-	-	XLOC_000078	Xkr4	TSS84	chr1:3369580-3369607	-	-	0	0	0	OK	0	0	0	OK
+TSS85	-	-	XLOC_000079	Xkr4	TSS85	chr1:3375001-3375028	-	-	0	0	0	OK	0	0	0	OK
+TSS86	-	-	XLOC_000080	Xkr4	TSS86	chr1:3377211-3377262	-	-	0	0	0	OK	0	0	0	OK
+TSS87	-	-	XLOC_000081	Xkr4	TSS87	chr1:3379888-3379915	-	-	0	0	0	OK	0	0	0	OK
+TSS88	-	-	XLOC_000082	Xkr4	TSS88	chr1:3386739-3386836	-	-	0	0	0	OK	0	0	0	OK
+TSS89	-	-	XLOC_000083	Xkr4	TSS89	chr1:3391325-3391352	-	-	0	0	0	OK	0	0	0	OK
+TSS90	-	-	XLOC_000084	Xkr4	TSS90	chr1:3435841-3435880	-	-	0	0	0	OK	0	0	0	OK
+TSS91	-	-	XLOC_000085	Xkr4	TSS91	chr1:3447761-3447788	-	-	0	0	0	OK	0	0	0	OK
+TSS92	-	-	XLOC_000086	Xkr4	TSS92	chr1:3450906-3450965	-	-	0	0	0	OK	0	0	0	OK
+TSS93	-	-	XLOC_000087	Xkr4	TSS93	chr1:3451051-3451109	-	-	0	0	0	OK	0	0	0	OK
diff -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc -r e5c37f9787b72231f31782e9e41f9e379afdb04c test-data/cuffdiff_out9.txt
--- a/test-data/cuffdiff_out9.txt
+++ b/test-data/cuffdiff_out9.txt
@@ -1,91 +1,89 @@
 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
+TSS10	XLOC_000008	-	chr1:3190858-3191434	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS11	XLOC_000009	-	chr1:3191512-3192077	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS13	XLOC_000010	-	chr1:3192250-3192336	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS14	XLOC_000011	-	chr1:3192441-3192494	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS15	XLOC_000012	-	chr1:3192550-3192629	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS16	XLOC_000013	-	chr1:3192649-3192676	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS17	XLOC_000014	-	chr1:3192731-3192811	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS18	XLOC_000015	-	chr1:3192940-3193042	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS19	XLOC_000016	-	chr1:3194185-3194226	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
+TSS20	XLOC_000017	-	chr1:3194302-3194329	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS21	XLOC_000018	-	chr1:3194706-3194733	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS22	XLOC_000019	-	chr1:3195083-3195110	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS23	XLOC_000020	-	chr1:3195450-3195477	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS24	XLOC_000021	-	chr1:3197089-3197116	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS25	XLOC_000022	-	chr1:3197246-3197273	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS26	XLOC_000023	-	chr1:3197346-3197373	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS27	XLOC_000024	-	chr1:3197425-3197452	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS28	XLOC_000025	-	chr1:3200022-3200191	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS29	XLOC_000026	-	chr1:3200325-3200352	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
+TSS30	XLOC_000027	-	chr1:3200430-3200457	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS31	XLOC_000028	-	chr1:3201007-3201039	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS32	XLOC_000029	-	chr1:3201077-3201481	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS33	XLOC_000030	-	chr1:3201596-3201666	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS34	XLOC_000031	-	chr1:3201672-3201699	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS35	XLOC_000032	-	chr1:3201725-3201809	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS36	XLOC_000033	Xkr4	chr1:3211521-3211561	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS37	XLOC_000034	Xkr4	chr1:3212213-3212292	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS38	XLOC_000035	Xkr4	chr1:3212367-3212439	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS39	XLOC_000036	Xkr4	chr1:3212717-3212801	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
+TSS40	XLOC_000037	Xkr4	chr1:3213095-3213242	q1	q2	OK	0	0	0.249945	0.143447	0.135175	0.135175	no
+TSS41	XLOC_000038	Xkr4	chr1:3240606-3240633	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS42	XLOC_000039	Xkr4	chr1:3242479-3242512	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS43	XLOC_000040	Xkr4	chr1:3242633-3242923	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS44	XLOC_000041	Xkr4	chr1:3242924-3243005	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS45	XLOC_000042	Xkr4	chr1:3243018-3243079	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS46	XLOC_000043	Xkr4	chr1:3243108-3243154	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS47	XLOC_000044	Xkr4	chr1:3243347-3243401	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS48	XLOC_000045	Xkr4	chr1:3254079-3254106	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS49	XLOC_000046	Xkr4	chr1:3256974-3257011	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
+TSS50	XLOC_000047	Xkr4	chr1:3277155-3277182	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS51	XLOC_000048	Xkr4	chr1:3277190-3277218	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS52	XLOC_000049	Xkr4	chr1:3277913-3278390	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS54	XLOC_000050	Xkr4	chr1:3280117-3280144	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS55	XLOC_000051	Xkr4	chr1:3280498-3280525	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS56	XLOC_000052	Xkr4	chr1:3280686-3280741	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS57	XLOC_000053	Xkr4	chr1:3282504-3282531	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS58	XLOC_000054	Xkr4	chr1:3282650-3282677	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS59	XLOC_000055	Xkr4	chr1:3282760-3282832	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
+TSS60	XLOC_000056	Xkr4	chr1:3284966-3284993	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS61	XLOC_000057	Xkr4	chr1:3290488-3290553	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS62	XLOC_000058	Xkr4	chr1:3290798-3290859	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS63	XLOC_000059	Xkr4	chr1:3290919-3291273	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS65	XLOC_000060	Xkr4	chr1:3299443-3299664	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS66	XLOC_000060	Xkr4	chr1:3299443-3299664	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS67	XLOC_000061	Xkr4	chr1:3299691-3299733	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS68	XLOC_000062	Xkr4	chr1:3300051-3300078	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS69	XLOC_000063	Xkr4	chr1:3307748-3307775	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS7	XLOC_000007	-	chr1:3189810-3190789	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS70	XLOC_000064	Xkr4	chr1:3318620-3318647	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS71	XLOC_000065	Xkr4	chr1:3318999-3319051	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS72	XLOC_000066	Xkr4	chr1:3330527-3330554	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS73	XLOC_000067	Xkr4	chr1:3351240-3351311	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS74	XLOC_000068	Xkr4	chr1:3355887-3356119	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS75	XLOC_000069	Xkr4	chr1:3356180-3356225	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS76	XLOC_000070	Xkr4	chr1:3363076-3363176	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS77	XLOC_000071	Xkr4	chr1:3363214-3363278	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS78	XLOC_000072	Xkr4	chr1:3363387-3363446	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS79	XLOC_000073	Xkr4	chr1:3363753-3363849	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS80	XLOC_000074	Xkr4	chr1:3364871-3364919	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS81	XLOC_000075	Xkr4	chr1:3367135-3367162	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS82	XLOC_000076	Xkr4	chr1:3367210-3367237	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS83	XLOC_000077	Xkr4	chr1:3367333-3367382	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS84	XLOC_000078	Xkr4	chr1:3369580-3369607	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS85	XLOC_000079	Xkr4	chr1:3375001-3375028	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS86	XLOC_000080	Xkr4	chr1:3377211-3377262	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS87	XLOC_000081	Xkr4	chr1:3379888-3379915	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS88	XLOC_000082	Xkr4	chr1:3386739-3386836	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS89	XLOC_000083	Xkr4	chr1:3391325-3391352	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS90	XLOC_000084	Xkr4	chr1:3435841-3435880	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS91	XLOC_000085	Xkr4	chr1:3447761-3447788	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS92	XLOC_000086	Xkr4	chr1:3450906-3450965	q1	q2	NOTEST	0	0	0	0	0	1	no
+TSS93	XLOC_000087	Xkr4	chr1:3451051-3451109	q1	q2	NOTEST	0	0	0	0	0	1	no
diff -r a533f050b897cb68359b4e5d8974cfdcc60d1cfc -r e5c37f9787b72231f31782e9e41f9e379afdb04c tools/ngs_rna/cuffdiff_wrapper.xml
--- a/tools/ngs_rna/cuffdiff_wrapper.xml
+++ b/tools/ngs_rna/cuffdiff_wrapper.xml
@@ -151,7 +151,7 @@
                 <param name="aligned_reads2" value="cuffdiff_in2.sam" ftype="sam" /><!-- Defaults. --><param name="fdr" value="0.05" />
-                <param name="min_alignment_count" value="0" ftype="sam" />
+                <param name="min_alignment_count" value="0" /><param name="do_bias_correction" value="No" /><param name="do_normalization" value="No" /><param name="sPaired" value="single" ftype="sam" />
https://bitbucket.org/galaxy/galaxy-central/changeset/34db794299d3/
changeset:   34db794299d3
user:        jgoecks
date:        2012-01-22 20:39:19
summary:     Remove unneeded ftype attribute.
affected #:  1 file
diff -r e5c37f9787b72231f31782e9e41f9e379afdb04c -r 34db794299d3b79e1c9a92fff65e6222c70f4031 tools/ngs_rna/cuffdiff_wrapper.xml
--- a/tools/ngs_rna/cuffdiff_wrapper.xml
+++ b/tools/ngs_rna/cuffdiff_wrapper.xml
@@ -154,7 +154,7 @@
                 <param name="min_alignment_count" value="0" /><param name="do_bias_correction" value="No" /><param name="do_normalization" value="No" />
-                <param name="sPaired" value="single" ftype="sam" />
+                <param name="sPaired" value="single"/><!-- 
                     Line diffs are needed because cuffdiff does not produce deterministic output.
                     TODO: can we find datasets that lead to deterministic behavior?
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: Fix for setting up column assignments for dynamic options wrt tool data tables when the index file is missing.
                        
                        
by Bitbucket 20 Jan '12
                    by Bitbucket 20 Jan '12
20 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/ef0a2b1c879b/
changeset:   ef0a2b1c879b
user:        dan
date:        2012-01-20 22:40:34
summary:     Fix for setting up column assignments for dynamic options wrt tool data tables when the index file is missing.
affected #:  1 file
diff -r 8a597b83448f66523531c782b027dd000e277644 -r ef0a2b1c879b51c215afd445c248eb604645b29f lib/galaxy/tools/parameters/dynamic_options.py
--- a/lib/galaxy/tools/parameters/dynamic_options.py
+++ b/lib/galaxy/tools/parameters/dynamic_options.py
@@ -411,16 +411,15 @@
             app = tool_param.tool.app
             if tool_data_table_name in app.tool_data_tables:
                 self.tool_data_table = app.tool_data_tables[ tool_data_table_name ]
+                # Column definitions are optional, but if provided override those from the table
+                if elem.find( "column" ) is not None:
+                    self.parse_column_definitions( elem )
+                else:
+                    self.columns = self.tool_data_table.columns
                 # Set self.missing_index_file if the index file to
                 # which the tool_data_table refers does not exist.
                 if self.tool_data_table.missing_index_file:
                     self.missing_index_file = self.tool_data_table.missing_index_file
-                else:
-                    # Column definitions are optional, but if provided override those from the table
-                    if elem.find( "column" ) is not None:
-                        self.parse_column_definitions( elem )
-                    else:
-                        self.columns = self.tool_data_table.columns
             else:
                 self.missing_tool_data_table_name = tool_data_table_name
                 log.warn( "Data table named '%s' is required by tool but not configured" % tool_data_table_name )
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
                            
                          
                          
                            
    
                          
                        
                    20 Jan '12
                    
                        1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/8a597b83448f/
changeset:   8a597b83448f
user:        natefoo
date:        2012-01-20 22:20:13
summary:     Fix for the object store doctest.
affected #:  1 file
diff -r ea34f05c3c212754ba79bdfb4959233cea2837b3 -r 8a597b83448f66523531c782b027dd000e277644 lib/galaxy/objectstore/__init__.py
--- a/lib/galaxy/objectstore/__init__.py
+++ b/lib/galaxy/objectstore/__init__.py
@@ -195,11 +195,12 @@
     >>> from galaxy.util.bunch import Bunch
     >>> import tempfile
     >>> file_path=tempfile.mkdtemp()
-    >>> s = DiskObjectStore(Bunch(umask=077), file_path=file_path)
-    >>> s.create(1)
-    >>> s.exists(1)
+    >>> obj = Bunch(id=1)
+    >>> s = DiskObjectStore(Bunch(umask=077, job_working_directory=file_path, new_file_path=file_path), file_path=file_path)
+    >>> s.create(obj)
+    >>> s.exists(obj)
     True
-    >>> assert s.get_filename(1) == file_path + '/000/dataset_1.dat'
+    >>> assert s.get_filename(obj) == file_path + '/000/dataset_1.dat'
     """
     def __init__(self, config, file_path=None, extra_dirs=None):
         super(DiskObjectStore, self).__init__()
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