details: http://www.bx.psu.edu/hg/galaxy/rev/2d7f872ddaf8 changeset: 1615:2d7f872ddaf8 user: Greg Von Kuster <greg@bx.psu.edu> date: Mon Nov 10 14:22:01 2008 -0500 description: Add functioal test baseline support for the repeat construct, more work needed ( e.g., multiple repeat elements, refresh_on_change when the input to be refreshed is within a repeat construct ). Added functional tests for some tools that use this construct. 14 file(s) affected in this change: lib/galaxy/tools/test.py test-data/2.tabular test-data/XY_Plot_1_out.pdf test-data/build_ucsc_custom_track_out1.customtrack test-data/cat_wrapper_out1.bed test-data/customTrack_output.dat test-data/eq-cat.dat test-data/groupby_out1.dat test/base/twilltestcase.py test/functional/test_toolbox.py tools/filters/catWrapper.xml tools/plotting/xy_plot.xml tools/stats/grouping.xml tools/visualization/build_ucsc_custom_track.xml diffs (1267 lines): diff -r 99b4d554afd1 -r 2d7f872ddaf8 lib/galaxy/tools/test.py --- a/lib/galaxy/tools/test.py Mon Nov 10 12:41:29 2008 -0500 +++ b/lib/galaxy/tools/test.py Mon Nov 10 14:22:01 2008 -0500 @@ -1,6 +1,7 @@ import new, sys import galaxy.util import parameters +from parameters import basic from parameters import grouping from elementtree.ElementTree import XML @@ -19,11 +20,10 @@ self.error = False self.exception = None def add_param( self, name, value, extra ): - # FIXME: This needs to be updated for parameter grouping support try: if name not in self.tool.inputs: for input_name, input_value in self.tool.inputs.items(): - if isinstance( input_value, grouping.Conditional ): + if isinstance( input_value, grouping.Conditional ) or isinstance( input_value, grouping.Repeat ): self.__expand_grouping_for_data_input(name, value, extra, input_name, input_value) elif isinstance( self.tool.inputs[name], parameters.DataToolParameter ): self.required_files.append( ( value, extra ) ) @@ -31,13 +31,24 @@ self.inputs.append( ( name, value, extra ) ) def add_output( self, name, file ): self.outputs.append( ( name, file ) ) - def __expand_grouping_for_data_input(self, name, value, extra, grouping_name, grouping_value): - if name != grouping_value.test_param.name: - for case in grouping_value.cases: - for case_input_name, case_input_value in case.inputs.items(): - if case_input_name == name and isinstance( case_input_value, parameters.DataToolParameter ): - self.required_files.append( ( value, extra ) ) - return True - elif isinstance( case_input_value, grouping.Conditional ): - self.__expand_grouping_for_data_input(name, value, extra, case_input_name, case_input_value) - + def __expand_grouping_for_data_input( self, name, value, extra, grouping_name, grouping_value ): + # Currently handles grouping.Conditional and grouping.Repeat + if isinstance( grouping_value, grouping.Conditional ): + if name != grouping_value.test_param.name: + for case in grouping_value.cases: + for case_input_name, case_input_value in case.inputs.items(): + if case_input_name == name and isinstance( case_input_value, basic.DataToolParameter ): + self.required_files.append( ( value, extra ) ) + return True + elif isinstance( case_input_value, grouping.Conditional ): + self.__expand_grouping_for_data_input(name, value, extra, case_input_name, case_input_value) + elif isinstance( grouping_value, grouping.Repeat ): + # FIXME: grouping.Repeat can only handle 1 repeat param element since the param name + # is something like "input2" and the expanded page display is something like "queries_0|input2". + # The problem is that the only param name on the page is "input2", and adding more test input params + # with the same name ( "input2" ) is not yet supported in our test code ( the lat one added is the only + # one used ). + for input_name, input_value in grouping_value.inputs.items(): + if input_name == name and isinstance( input_value, basic.DataToolParameter ): + self.required_files.append( ( value, extra ) ) + return True diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/2.tabular --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/2.tabular Mon Nov 10 14:22:01 2008 -0500 @@ -0,0 +1,10 @@ +1 68 4.1 +2 71 4.6 +3 62 3.8 +4 75 4.4 +5 58 3.2 +6 60 3.1 +7 67 3.8 +8 68 4.1 +9 71 4.3 +10 69 3.7 diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/XY_Plot_1_out.pdf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/XY_Plot_1_out.pdf Mon Nov 10 14:22:01 2008 -0500 @@ -0,0 +1,171 @@ +%PDF-1.1 +%âãÏÓ\r +1 0 obj +<< +/CreationDate (D:20081107092106) +/ModDate (D:20081107092106) +/Title (R Graphics Output) +/Producer (R 2.6.2) +/Creator (R) +>> +endobj +2 0 obj +<< +/Type /Catalog +/Pages 3 0 R +>> +endobj +5 0 obj +<< +/Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /ZapfDingbats +>> +endobj +6 0 obj +<< +/Type /Page +/Parent 3 0 R +/Contents 7 0 R +/Resources 4 0 R +>> +endobj +7 0 obj +<< +/Length 8 0 R +>> +stream +q +Q q +0.000 0.000 0.000 RG +0.75 w +[] 0 d +1 J +1 j +10.00 M +106.99 73.44 m 389.07 73.44 l S +106.99 73.44 m 106.99 66.24 l S +177.51 73.44 m 177.51 66.24 l S +248.03 73.44 m 248.03 66.24 l S +318.55 73.44 m 318.55 66.24 l S +389.07 73.44 m 389.07 66.24 l S +BT +0.000 0.000 0.000 rg +/F2 1 Tf 12.00 0.00 -0.00 12.00 103.66 47.52 Tm (2) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 174.18 47.52 Tm (4) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 244.69 47.52 Tm (6) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 315.21 47.52 Tm (8) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 382.39 47.52 Tm (10) Tj +ET +59.04 117.16 m 59.04 361.87 l S +59.04 117.16 m 51.84 117.16 l S +59.04 198.73 m 51.84 198.73 l S +59.04 280.30 m 51.84 280.30 l S +59.04 361.87 m 51.84 361.87 l S +BT +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 110.49 Tm (60) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 192.06 Tm (65) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 273.63 Tm (70) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 41.76 355.19 Tm (75) Tj +ET +59.04 73.44 m +401.76 73.44 l +401.76 372.96 l +59.04 372.96 l +59.04 73.44 l +S +Q q +BT +0.000 0.000 0.000 rg +/F3 1 Tf 14.00 0.00 -0.00 14.00 175.16 397.45 Tm (Example XY Plot) Tj +/F2 1 Tf 12.00 0.00 -0.00 12.00 204.73 18.72 Tm (Column 1) Tj +/F2 1 Tf 0.00 12.00 -12.00 0.00 12.96 197.53 Tm (Column 2) Tj +ET +Q q 59.04 73.44 342.72 299.52 re W n +1.000 0.000 0.000 RG +0.75 w +[ 3.00 5.00] 0 d +1 J +1 j +10.00 M +71.73 247.67 m +106.99 296.61 l +142.25 149.79 l +177.51 361.87 l +212.77 84.53 l +248.03 117.16 l +283.29 231.36 l +318.55 247.67 l +353.81 296.61 l +389.07 263.98 l +S +Q +endstream +endobj +8 0 obj +1503 +endobj +3 0 obj +<< +/Type /Pages +/Kids [ +6 0 R +] +/Count 1 +/MediaBox [0 0 432 432] +>> +endobj +4 0 obj +<< +/ProcSet [/PDF /Text] +/Font << /F1 5 0 R /F2 10 0 R /F3 11 0 R >> +/ExtGState << >> +>> +endobj +9 0 obj +<< +/Type /Encoding +/BaseEncoding /WinAnsiEncoding +/Differences [ 45/minus 96/quoteleft +144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent +/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] +>> +endobj +10 0 obj << +/Type /Font +/Subtype /Type1 +/Name /F2 +/BaseFont /Helvetica +/Encoding 9 0 R +>> endobj +11 0 obj << +/Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding 9 0 R +>> endobj +xref +0 12 +0000000000 65535 f +0000000021 00000 n +0000000163 00000 n +0000001951 00000 n +0000002034 00000 n +0000000212 00000 n +0000000295 00000 n +0000000375 00000 n +0000001931 00000 n +0000002138 00000 n +0000002395 00000 n +0000002492 00000 n +trailer +<< +/Size 12 +/Info 1 0 R +/Root 2 0 R +>> +startxref +2594 +%%EOF diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/build_ucsc_custom_track_out1.customtrack --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/build_ucsc_custom_track_out1.customtrack Mon Nov 10 14:22:01 2008 -0500 @@ -0,0 +1,8 @@ +track name="User Track" description="User Supplied Track (from Galaxy)" color=0,0,0 visibility=1 +chr2 31608 36385 NM_001077710 0 - 31608 36385 0 2 19,946, 0,3831, +chr2 208154 246341 NM_015677 0 - 208810 232800 0 12 847,57,79,169,129,113,74,60,65,114,111,135, 0,6709,11811,12868,14946,16005,24643,25348,29383,31576,34850,38052, +chr2 254871 262481 NM_001040649 0 + 254964 262258 0 3 136,74,445, 0,6994,7165, +chr2 254895 268280 NM_004300 0 + 254964 267304 0 6 112,74,114,62,106,1054, 0,6970,7141,10244,12084,12331, +chr2 254895 268280 NM_007099 0 + 254964 267304 0 6 112,74,114,62,106,1054, 0,6970,7296,10244,12084,12331, +chr2 269928 277837 NM_001002919 0 - 270146 277835 0 6 221,65,81,54,22,53, 0,3182,6194,6361,7654,7856, + diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/cat_wrapper_out1.bed --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/cat_wrapper_out1.bed Mon Nov 10 14:22:01 2008 -0500 @@ -0,0 +1,133 @@ +chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + +chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - +chr11 1812377 1812407 CCDS7726.1_cds_0_0_chr11_1812378_f 0 + +chr12 38440094 38440321 CCDS8736.1_cds_0_0_chr12_38440095_r 0 - +chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + +chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - +chr15 41826029 41826196 CCDS10101.1_cds_0_0_chr15_41826030_f 0 + +chr16 142908 143003 CCDS10397.1_cds_0_0_chr16_142909_f 0 + +chr16 179963 180135 CCDS10401.1_cds_0_0_chr16_179964_r 0 - +chr16 244413 244681 CCDS10402.1_cds_0_0_chr16_244414_f 0 + +chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + +chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - +chr18 59600586 59600754 CCDS11988.1_cds_0_0_chr18_59600587_f 0 + +chr19 59068595 59069564 CCDS12866.1_cds_0_0_chr19_59068596_f 0 + +chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + +chr19 59302168 59302288 CCDS12878.1_cds_0_0_chr19_59302169_r 0 - +chr2 118288583 118288668 CCDS2120.1_cds_0_0_chr2_118288584_f 0 + +chr2 118394148 118394202 CCDS2121.1_cds_0_0_chr2_118394149_r 0 - +chr2 220190202 220190242 CCDS2441.1_cds_0_0_chr2_220190203_f 0 + +chr2 220229609 220230869 CCDS2443.1_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - +chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + +chr20 33579500 33579527 CCDS13256.1_cds_0_0_chr20_33579501_r 0 - +chr20 33593260 33593348 CCDS13257.1_cds_0_0_chr20_33593261_f 0 + +chr21 32707032 32707192 CCDS13614.1_cds_0_0_chr21_32707033_f 0 + +chr21 32869641 32870022 CCDS13615.1_cds_0_0_chr21_32869642_r 0 - +chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + +chr21 33744994 33745040 CCDS13625.1_cds_0_0_chr21_33744995_r 0 - +chr22 30120223 30120265 CCDS13897.1_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - +chr22 30665273 30665360 CCDS13901.1_cds_0_0_chr22_30665274_f 0 + +chr22 30939054 30939266 CCDS13903.1_cds_0_0_chr22_30939055_r 0 - +chr5 131424298 131424460 CCDS4149.1_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + +chr5 131847541 131847666 CCDS4155.1_cds_0_0_chr5_131847542_r 0 - +chr6 108299600 108299744 CCDS5061.1_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + +chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - +chr9 128882427 128882523 CCDS6917.1_cds_0_0_chr9_128882428_f 0 + +chr9 128937229 128937445 CCDS6919.1_cds_0_0_chr9_128937230_r 0 - +chrX 122745047 122745924 CCDS14606.1_cds_0_0_chrX_122745048_f 0 + +chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - +chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + +chr11 116211733 116212337 BC005380_cds_0_0_chr11_116211734_r 0 - +chr11 130745911 130745993 AY358331_cds_0_0_chr11_130745912_f 0 + +chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - +chr12 38905200 38905351 AY792511_cds_0_0_chr12_38905201_f 0 + +chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + +chr13 29680676 29680875 NM_032116_cds_0_0_chr13_29680677_r 0 - +chr14 98521864 98521922 U88895_cds_0_0_chr14_98521865_f 0 + +chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 NM_153700_cds_0_0_chr15_41679162_r 0 - +chr15 41773540 41773689 AK223365_cds_0_0_chr15_41773541_f 0 + +chr16 142908 143003 NM_005332_cds_0_0_chr16_142909_f 0 + +chr16 179197 179339 BC065198_cds_0_0_chr16_179198_r 0 - +chr16 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + +chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + +chr18 59455932 59456337 AB046400_cds_0_0_chr18_59455933_r 0 - +chr18 59528407 59528575 AY792326_cds_0_0_chr18_59528408_f 0 + +chr19 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + +chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 NM_004542_cds_0_0_chr19_59297999_f 0 + +chr19 59318205 59318718 AK128544_cds_3_0_chr19_59318206_r 0 - +chr2 118288583 118288668 NM_006773_cds_0_0_chr2_118288584_f 0 + +chr2 118390395 118390500 BC005078_cds_0_0_chr2_118390396_r 0 - +chr2 220108689 220109267 AY125465_cds_0_0_chr2_220108690_f 0 + +chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - +chr20 33485370 33486123 BC085019_cds_1_0_chr20_33485371_f 0 + +chr20 33488491 33489122 NM_000557_cds_1_0_chr20_33488492_r 0 - +chr20 33513606 33513792 AF022655_cds_1_0_chr20_33513607_f 0 + +chr21 32687402 32687588 NM_032910_cds_0_0_chr21_32687403_f 0 + +chr21 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - +chr21 33321040 33322012 NM_005806_cds_1_0_chr21_33321041_f 0 + +chr21 33728358 33728724 AK129657_cds_0_0_chr21_33728359_r 0 - +chr22 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 BC032941_cds_0_0_chr22_30160420_r 0 - +chr22 30228824 30228916 NM_001007467_cds_1_0_chr22_30228825_f 0 + +chr22 30340151 30340376 CR456540_cds_0_0_chr22_30340152_r 0 - +chr5 131311206 131311254 AF099740_cds_11_0_chr5_131311207_r 0 - +chr5 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 BC003096_cds_0_0_chr5_131621327_f 0 + +chr6 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + +chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 NM_014908_cds_0_0_chr9_128787520_r 0 - +chr9 128789552 128789584 NM_015354_cds_0_0_chr9_128789553_f 0 + +chr9 128850516 128850624 AB058751_cds_0_0_chr9_128850517_r 0 - +chrX 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + +chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 - diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/customTrack_output.dat --- a/test-data/customTrack_output.dat Mon Nov 10 12:41:29 2008 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,359 +0,0 @@ -track name='customTrack1.bed' visibility=1 color=0,0,0 -chr2 31608 36385 NM_001077710 0 - 31608 36385 0 2 19,946, 0,3831, -chr2 208154 246341 NM_015677 0 - 208810 232800 0 12 847,57,79,169,129,113,74,60,65,114,111,135, 0,6709,11811,12868,14946,16005,24643,25348,29383,31576,34850,38052, -chr2 254871 262481 NM_001040649 0 + 254964 262258 0 3 136,74,445, 0,6994,7165, -chr2 254895 268280 NM_004300 0 + 254964 267304 0 6 112,74,114,62,106,1054, 0,6970,7141,10244,12084,12331, -chr2 254895 268280 NM_007099 0 + 254964 267304 0 6 112,74,114,62,106,1054, 0,6970,7296,10244,12084,12331, -chr2 269928 277837 NM_001002919 0 - 270146 277835 0 6 221,65,81,54,22,53, 0,3182,6194,6361,7654,7856, - -track name='customTrack2.bed' visibility=2 color=255,0,0 -chr2 36124 36160 GC_rich 29 + -chr2 36572 36711 (CCCCG)n 247 + -chr2 36610 36800 C-rich 392 + -chr2 37778 37853 GA-rich 206 + -chr2 38158 39025 L1PA10 6050 + -chr2 39034 39201 L1M4c 431 - -chr2 39235 39279 MIR 201 + -chr2 39436 40499 L1PA16 5353 + -chr2 40733 40949 L1M5 321 + -chr2 41007 41090 Charlie1 360 + -chr2 41090 41137 LTR45 532 - -chr2 41137 41554 MSTB 2312 + -chr2 41554 41696 LTR45B 626 - -chr2 41651 41716 MER5A1 236 - -chr2 41739 41815 LTR45 469 - -chr2 41852 41969 Charlie1 236 + -chr2 41987 42034 FLAM_C 702 + -chr2 42034 42445 MSTA 2481 + -chr2 42445 42548 FLAM_C 702 + -chr2 42565 42681 Charlie1 470 + -chr2 42761 42807 L2 185 - -chr2 42835 43469 L1M5 903 + -chr2 43469 43551 AluJ/FLAM 508 + -chr2 43626 43721 MER33 393 + -chr2 43770 43929 L1M5 262 + -chr2 44897 45496 LTR71B 1895 - -chr2 45970 46426 L1M2b 1705 + -chr2 46426 46670 THE1B 1704 - -chr2 46744 46941 MER52D 245 + -chr2 47216 47483 MER52D 1052 + -chr2 47484 48495 MER52D 4223 + -chr2 48495 49053 MER52-int 3942 + -chr2 49172 49903 MER52-int 5089 + -chr2 49932 50066 THE1B 735 - -chr2 50070 51136 L1M2b 3786 + -chr2 51136 51399 AluY 2214 + -chr2 51399 51727 L1M2b 3786 + -chr2 51719 52002 L1MA5 1983 + -chr2 52002 52275 AluJb 1906 + -chr2 52289 52336 (TAAA)n 423 + -chr2 52336 52400 L1MA5 1983 + -chr2 52400 52625 AluSq 1665 + -chr2 52625 52683 L1MA5 1983 + -chr2 52709 52837 FLAM_C 734 - -chr2 54453 54517 MER94 494 + -chr2 54517 54809 AluSx 2081 - -chr2 54809 54860 MER94 494 + -chr2 54866 54998 MIR3 332 + -chr2 59062 59093 AT_rich 31 + -chr2 60498 60560 MIRb 192 + -chr2 61205 61717 MLT1H 754 + -chr2 62079 62552 MLT1D 2121 + -chr2 62909 63061 MER67A 375 + -chr2 63742 64034 AluSx 1506 - -chr2 64185 64306 MLT1H 280 - -chr2 64641 65101 MER4A1 3135 + -chr2 66342 66707 THE1B 2550 - -chr2 66707 68238 MLT1H-int 3238 - -chr2 68240 68605 THE1B 2399 - -chr2 69792 69907 MIRb 240 + -chr2 69909 70264 MER4A1 2647 - -chr2 70452 70639 MIR 228 + -chr2 70876 71234 MLT1J1 575 - -chr2 72494 72620 L1ME3B 400 - -chr2 72645 73168 MER90a 2062 - -chr2 74780 74914 MIRb 213 + -chr2 74983 75046 MIR3 180 + -chr2 75251 75291 MIRm 198 - -chr2 75313 75430 MIRb 215 - -chr2 75652 75823 MIRb 225 + -chr2 77049 77357 AluJo 1747 + -chr2 77438 77474 AT_rich 22 + -chr2 77475 77811 L1MC4 683 - -chr2 77813 78125 L1MC4a 1528 - -chr2 78125 78408 AluJo 1550 + -chr2 78408 78515 L1MC4a 1528 - -chr2 78515 78553 (CA)n 342 + -chr2 78553 78726 L1MC4a 1528 - -chr2 79305 79613 L1MC4 506 + -chr2 80122 80210 L1MC4 231 + -chr2 80251 80559 L1MC 1036 + -chr2 80569 80809 L1PA7 11967 + -chr2 80809 82246 LTR12C 9549 + -chr2 82246 84045 L1PA7 11967 + -chr2 84045 85055 LTR5A 8123 + -chr2 85055 89392 L1PA7 20590 + -chr2 89556 89820 AluY 1994 + -chr2 90168 90462 L2 554 - -chr2 90462 90717 AluSx 1621 + -chr2 90717 90841 L2 554 - -chr2 91794 91832 AT_rich 24 + -chr2 92171 92375 MIRb 363 + -chr2 92468 93502 L1MA4A 4118 - -chr2 93497 96075 L1MA4A 11775 - -chr2 96408 97310 L1MA4A 9242 - -chr2 97310 97600 AluSx 2107 - -chr2 97600 99410 L1MA4A 9242 - -chr2 99671 99720 (GGAA)n 317 + -chr2 100500 100526 AT_rich 26 + -chr2 100790 100850 L1M5 226 + -chr2 101493 101736 MIRb 664 - -chr2 102084 102384 AluSx 2334 - -chr2 103029 103104 L2 287 + -chr2 103525 103696 L3 282 - -chr2 103888 104191 AluSx 2269 + -chr2 104206 104332 L2 292 + -chr2 104498 104580 MIRb 248 - -chr2 105772 105883 L2 270 + -chr2 106293 106594 AluSc 2269 + -chr2 106705 107055 L2 539 - -chr2 107056 107905 MER45B 3388 - -chr2 107963 108173 Charlie4a 1340 + -chr2 108173 108471 AluSg 2024 + -chr2 108471 108687 Charlie4a 1340 + -chr2 108706 109100 L2 906 - -chr2 109366 109439 HAL1 264 - -chr2 109439 109730 AluSx 1921 + -chr2 109730 109812 HAL1 264 - -chr2 110514 110571 MER5B 225 + -chr2 111186 111304 MER94 459 + -chr2 111642 111836 MIR 654 - -chr2 111936 112346 L2 309 - -chr2 112452 112477 (TGAA)n 225 + -chr2 112938 113010 MIRb 180 + -chr2 115295 115402 MIR 343 + -chr2 115424 115551 MIR 412 - -chr2 116167 117645 SVA 11488 + -chr2 117805 118013 MIRb 306 - -chr2 118824 119831 L1PB 5354 - -chr2 120000 120038 (TAAA)n 197 + -chr2 120670 120807 MER5B 553 + -chr2 120921 121233 AluJo 1929 - -chr2 122648 122930 AluSp 2141 + -chr2 123099 123410 AluJb 1619 + -chr2 123519 123681 L1ME3A 325 + -chr2 123710 123775 LTR43 242 - -chr2 123841 124183 LTR43B 1146 - -chr2 124264 124603 L1ME3A 939 + -chr2 125097 125705 L1MC1 3512 + -chr2 125706 126048 MSTA 2544 + -chr2 126048 126347 AluSx 1849 + -chr2 126347 126409 MSTA 2544 + -chr2 127755 128321 L1MA9 2460 - -chr2 128314 128822 L1MA9 1912 + -chr2 128822 128844 AT_rich 22 + -chr2 128906 129305 MLT1A1 1893 + -chr2 131614 132043 MSTA 2057 - -chr2 132398 132645 AluY 1947 + -chr2 133039 133106 AT_rich 32 + -chr2 133111 133341 PABL_A 1802 - -chr2 133341 134756 PABL_A-int 10971 - -chr2 135007 135054 L2 184 - -chr2 135074 135147 L2 249 + -chr2 135270 135471 L1MEb 333 - -chr2 135510 135690 Tigger1 669 + -chr2 135672 135884 Tigger1 1251 + -chr2 135884 135947 L1M2 8741 - -chr2 135947 136253 AluSp 2298 - -chr2 136253 136888 L1M2 8741 - -chr2 136888 136922 (TTTA)n 224 + -chr2 136922 137816 L1M2 8741 - -chr2 137816 138169 THE1B 2055 - -chr2 138169 138639 L1M2 8741 - -chr2 138641 139121 MER44C 2479 + -chr2 139144 139808 MER4A 2394 + -chr2 139810 140042 MER44C 1272 + -chr2 140046 140215 L1M2 664 - -chr2 140215 140675 MER4A1 3468 + -chr2 140675 140763 L1M2 664 - -chr2 141552 142024 L1MEb 591 - -chr2 142058 142213 MER51A 538 + -chr2 142215 142519 MER51B 1633 + -chr2 142638 142787 HAL1b 319 - -chr2 143395 143564 LTR17 1225 - -chr2 143580 143698 AluY 902 + -chr2 143698 144298 LTR17 4934 - -chr2 144298 144589 HERV17 2415 - -chr2 144579 144620 HERV17 305 - -chr2 144612 148188 HERV17 30373 - -chr2 148187 150021 HERV17 13802 - -chr2 150021 150782 LTR17 6037 - -chr2 151296 151390 L2 190 - -chr2 152021 152314 AluJb 1532 + -chr2 153860 154064 L3 484 + -chr2 154147 155500 L1PA7 7363 + -chr2 155550 155627 L4 184 + -chr2 156586 156729 MIRb 240 + -chr2 157888 159232 L1MC2 4364 + -chr2 159933 160007 MIR3 196 + -chr2 160097 160129 AT_rich 32 + -chr2 160901 160950 (CA)n 378 + -chr2 161462 161773 AluY 2636 + -chr2 161926 162002 Kanga1 233 - -chr2 164118 164211 HAL1 264 + -chr2 164330 164435 (CATATA)n 450 + -chr2 164435 164679 AluSx 1559 - -chr2 164780 164802 AT_rich 22 + -chr2 164931 165118 MIRb 183 - -chr2 167243 167542 AluSx 1867 + -chr2 168414 168510 L1PB1 3181 + -chr2 168510 168537 (TA)n 182 + -chr2 168537 168572 (CA)n 324 + -chr2 168572 168923 L1PB1 3181 + -chr2 169914 170344 LTR35-int 677 + -chr2 170349 170763 LTR35-int 1559 + -chr2 170771 170917 L1PA4 1004 + -chr2 170998 172290 LTR57-int 5968 + -chr2 171342 173675 LOR1-int 6255 + -chr2 173750 173972 LOR1-int 625 + -chr2 174098 174198 LTR49-int 367 + -chr2 174202 174392 LOR1-int 1108 + -chr2 174395 174681 MER49 4056 + -chr2 174681 175052 THE1C 2588 + -chr2 175052 175497 MER49 4056 + -chr2 175684 176055 LOR1-int 351 + -chr2 176246 176698 LTR35 736 + -chr2 176818 176841 AT_rich 23 + -chr2 176990 177493 MLT1F2 1583 + -chr2 177497 177522 (CAAAAA)n 225 + -chr2 177538 177765 L1MC4 481 + -chr2 177880 178397 LTR22C 2762 - -chr2 178522 178630 AluJb 728 + -chr2 178895 178998 L1M5 261 + -chr2 179170 179198 AT_rich 21 + -chr2 179978 180161 MER20 331 + -chr2 180330 180509 L1MB2 1075 + -chr2 180509 181898 LTR12C 8168 - -chr2 181898 181924 L1MB2 1075 + -chr2 181903 182185 L1MB2 1132 + -chr2 182394 182433 (T)n 246 + -chr2 182441 182653 AluSg 1644 - -chr2 185331 185446 L1M4 246 - -chr2 185937 186497 MER92B 900 - -chr2 189807 189920 L2 242 + -chr2 190069 190208 L2 229 - -chr2 190610 190778 MIR 271 - -chr2 190936 191064 MIRb 241 + -chr2 192383 192531 L1MC4a 279 - -chr2 192614 192967 MSTA 1342 + -chr2 193615 193737 L1M4 416 - -chr2 194139 194517 MSTA 2196 + -chr2 195051 195659 MER4B 3688 + -chr2 196994 197082 (GGAA)n 1047 + -chr2 197082 197262 (GGGA)n 1431 + -chr2 197262 197302 (GGAA)n 1047 + -chr2 197302 197482 (GGGA)n 1347 + -chr2 197482 197502 (GGAA)n 1047 + -chr2 197502 197682 (GGGA)n 1368 + -chr2 197682 197714 (GGAA)n 1047 + -chr2 197714 197752 polypurine 219 + -chr2 198076 198423 MLT1A0 1472 + -chr2 199454 199677 L2 323 + -chr2 199741 199990 L2 449 + -chr2 201304 201337 AT_rich 26 + -chr2 201543 201737 MIRb 344 - -chr2 202374 203301 Tigger1 6366 - -chr2 203546 203694 L1MC2 594 - -chr2 204844 204905 Alu 426 + -chr2 204907 205020 L1MD 245 - -chr2 205310 205354 (CA)n 248 + -chr2 205572 205611 AT_rich 25 + -chr2 205757 206463 L1ME1 2227 - -chr2 206478 206741 L1MA4 1087 - -chr2 207057 207228 L1M3de 232 - -chr2 207784 208051 L2 525 - -chr2 208713 208734 AT_rich 21 + -chr2 209284 209645 MLT1A0 1607 + -chr2 210181 210214 (TAA)n 236 + -chr2 211053 211149 MIR 223 - -chr2 212441 212529 MER20 473 + -chr2 213153 213232 MIRb 221 - -chr2 215176 215279 Charlie2 435 - -chr2 215309 215572 Charlie2 466 - -chr2 215762 215892 L1MC4a 248 + -chr2 216077 216489 L1MC4a 421 + -chr2 217210 217559 L1MC4a 326 + -chr2 217567 217588 AT_rich 21 + -chr2 217889 217910 (TG)n 189 + -chr2 219447 219753 AluYa5 2878 + -chr2 220529 220769 AluSx 1445 - -chr2 221199 221228 AT_rich 22 + -chr2 221477 221524 (CATATA)n 240 + -chr2 222442 222742 L1PA6 2387 - -chr2 222746 222958 L1ME4a 234 + -chr2 224460 224564 MIRb 253 - -chr2 224875 225175 AluSq 2314 - -chr2 226239 226463 MIR 272 + -chr2 226463 226678 MIR 378 + -chr2 227578 227831 L1MA4 1053 + -chr2 228067 228259 LTR52 326 + -chr2 228259 228303 (TG)n 396 + -chr2 228303 228355 LTR52 326 + -chr2 229207 229376 MER105 586 + -chr2 229713 232723 L1M4b 6457 + -chr2 232723 232751 (CAA)n 231 + -chr2 232751 233606 L1M4 3745 + -chr2 233633 233769 LTR16A1 309 + -chr2 233780 233825 MIRb 246 + -chr2 234214 234524 AluY 2373 + -chr2 234527 234584 (GAAA)n 326 + -chr2 234597 234715 MIR 217 - -chr2 235457 235691 MIR 371 - -chr2 235866 235892 (TAAAAA)n 201 + -chr2 235913 236224 AluSq 2400 + -chr2 236591 236642 GA-rich 202 + -chr2 237758 237789 AT_rich 24 + -chr2 241682 241737 MER5A 222 - -chr2 242099 242222 MER5A 250 - -chr2 243203 243830 MER41B 4374 + -chr2 244057 244136 AT_rich 44 + -chr2 244592 245160 MER4A 1940 + -chr2 245335 245610 AluJo 1518 + -chr2 246060 246409 L1ME2 2049 - -chr2 246409 246714 AluSq 2369 + -chr2 246714 247040 L1ME2 2049 - -chr2 247032 247373 L1PREC2 1625 - -chr2 247373 247786 MER57B 2701 + -chr2 247790 248410 L1PREC2 3920 - -chr2 248438 249129 L1MEc 575 - -chr2 249353 249388 AT_rich 28 + -chr2 249505 249889 L1MC 354 + -chr2 253987 254010 GC_rich 23 + -chr2 256504 257206 MER44C 3540 - -chr2 257237 257619 L2 869 - -chr2 257626 257758 MER105 414 - -chr2 257758 258055 MER58B 701 - -chr2 258065 258208 L2 435 - -chr2 259635 259758 MER39 618 + -chr2 259816 260040 MER39 688 + -chr2 260145 260244 L2 235 + -chr2 260590 260618 AT_rich 28 + -chr2 260619 260678 MER21C 340 + -chr2 260678 260979 MER77 442 + -chr2 261078 261136 L2 193 + -chr2 261228 261475 MER8 820 + -chr2 261491 261567 Charlie9 244 - -chr2 263033 263317 MSTD 409 - -chr2 263469 263560 MER58A 287 + -chr2 263885 264181 AluJo 1552 + -chr2 265538 265751 MIR 405 - -chr2 265969 265990 AT_rich 21 + -chr2 266132 266443 L2 310 + -chr2 268083 268107 AT_rich 24 + -chr2 272348 272439 L2 215 + -chr2 274262 274365 MER5A1 525 - -chr2 274737 274812 MIR3 296 + -chr2 275187 275231 MIR 229 + -chr2 277448 277470 (A)n 198 + -chr2 277738 277788 GC_rich 36 + - diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/eq-cat.dat --- a/test-data/eq-cat.dat Mon Nov 10 12:41:29 2008 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - -chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + -chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - -chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + -chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - -chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - -chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + -chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - -chr11 1812377 1812407 CCDS7726.1_cds_0_0_chr11_1812378_f 0 + -chr12 38440094 38440321 CCDS8736.1_cds_0_0_chr12_38440095_r 0 - -chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + -chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - -chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - -chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + -chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - -chr15 41826029 41826196 CCDS10101.1_cds_0_0_chr15_41826030_f 0 + -chr16 142908 143003 CCDS10397.1_cds_0_0_chr16_142909_f 0 + -chr16 179963 180135 CCDS10401.1_cds_0_0_chr16_179964_r 0 - -chr16 244413 244681 CCDS10402.1_cds_0_0_chr16_244414_f 0 + -chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - -chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - -chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + -chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - -chr18 59600586 59600754 CCDS11988.1_cds_0_0_chr18_59600587_f 0 + -chr19 59068595 59069564 CCDS12866.1_cds_0_0_chr19_59068596_f 0 + -chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - -chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + -chr19 59302168 59302288 CCDS12878.1_cds_0_0_chr19_59302169_r 0 - -chr2 118288583 118288668 CCDS2120.1_cds_0_0_chr2_118288584_f 0 + -chr2 118394148 118394202 CCDS2121.1_cds_0_0_chr2_118394149_r 0 - -chr2 220190202 220190242 CCDS2441.1_cds_0_0_chr2_220190203_f 0 + -chr2 220229609 220230869 CCDS2443.1_cds_0_0_chr2_220229610_r 0 - -chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - -chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + -chr20 33579500 33579527 CCDS13256.1_cds_0_0_chr20_33579501_r 0 - -chr20 33593260 33593348 CCDS13257.1_cds_0_0_chr20_33593261_f 0 + -chr21 32707032 32707192 CCDS13614.1_cds_0_0_chr21_32707033_f 0 + -chr21 32869641 32870022 CCDS13615.1_cds_0_0_chr21_32869642_r 0 - -chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + -chr21 33744994 33745040 CCDS13625.1_cds_0_0_chr21_33744995_r 0 - -chr22 30120223 30120265 CCDS13897.1_cds_0_0_chr22_30120224_f 0 + -chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - -chr22 30665273 30665360 CCDS13901.1_cds_0_0_chr22_30665274_f 0 + -chr22 30939054 30939266 CCDS13903.1_cds_0_0_chr22_30939055_r 0 - -chr5 131424298 131424460 CCDS4149.1_cds_0_0_chr5_131424299_f 0 + -chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - -chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + -chr5 131847541 131847666 CCDS4155.1_cds_0_0_chr5_131847542_r 0 - -chr6 108299600 108299744 CCDS5061.1_cds_0_0_chr6_108299601_r 0 - -chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + -chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - -chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + -chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + -chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - -chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + -chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - -chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - -chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + -chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - -chr9 128882427 128882523 CCDS6917.1_cds_0_0_chr9_128882428_f 0 + -chr9 128937229 128937445 CCDS6919.1_cds_0_0_chr9_128937230_r 0 - -chrX 122745047 122745924 CCDS14606.1_cds_0_0_chrX_122745048_f 0 + -chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - -chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + -chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - -chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - -chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + -chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - -chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + -chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - -chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - -chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + -chr11 116211733 116212337 BC005380_cds_0_0_chr11_116211734_r 0 - -chr11 130745911 130745993 AY358331_cds_0_0_chr11_130745912_f 0 + -chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - -chr12 38905200 38905351 AY792511_cds_0_0_chr12_38905201_f 0 + -chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + -chr13 29680676 29680875 NM_032116_cds_0_0_chr13_29680677_r 0 - -chr14 98521864 98521922 U88895_cds_0_0_chr14_98521865_f 0 + -chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - -chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - -chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + -chr15 41679161 41679250 NM_153700_cds_0_0_chr15_41679162_r 0 - -chr15 41773540 41773689 AK223365_cds_0_0_chr15_41773541_f 0 + -chr16 142908 143003 NM_005332_cds_0_0_chr16_142909_f 0 + -chr16 179197 179339 BC065198_cds_0_0_chr16_179198_r 0 - -chr16 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + -chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - -chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - -chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + -chr18 59455932 59456337 AB046400_cds_0_0_chr18_59455933_r 0 - -chr18 59528407 59528575 AY792326_cds_0_0_chr18_59528408_f 0 + -chr19 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + -chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - -chr19 59297998 59298008 NM_004542_cds_0_0_chr19_59297999_f 0 + -chr19 59318205 59318718 AK128544_cds_3_0_chr19_59318206_r 0 - -chr2 118288583 118288668 NM_006773_cds_0_0_chr2_118288584_f 0 + -chr2 118390395 118390500 BC005078_cds_0_0_chr2_118390396_r 0 - -chr2 220108689 220109267 AY125465_cds_0_0_chr2_220108690_f 0 + -chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - -chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - -chr20 33485370 33486123 BC085019_cds_1_0_chr20_33485371_f 0 + -chr20 33488491 33489122 NM_000557_cds_1_0_chr20_33488492_r 0 - -chr20 33513606 33513792 AF022655_cds_1_0_chr20_33513607_f 0 + -chr21 32687402 32687588 NM_032910_cds_0_0_chr21_32687403_f 0 + -chr21 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - -chr21 33321040 33322012 NM_005806_cds_1_0_chr21_33321041_f 0 + -chr21 33728358 33728724 AK129657_cds_0_0_chr21_33728359_r 0 - -chr22 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + -chr22 30160419 30160661 BC032941_cds_0_0_chr22_30160420_r 0 - -chr22 30228824 30228916 NM_001007467_cds_1_0_chr22_30228825_f 0 + -chr22 30340151 30340376 CR456540_cds_0_0_chr22_30340152_r 0 - -chr5 131311206 131311254 AF099740_cds_11_0_chr5_131311207_r 0 - -chr5 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + -chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - -chr5 131621326 131621419 BC003096_cds_0_0_chr5_131621327_f 0 + -chr6 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - -chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + -chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - -chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + -chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + -chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - -chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + -chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - -chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - -chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + -chr9 128787519 128789136 NM_014908_cds_0_0_chr9_128787520_r 0 - -chr9 128789552 128789584 NM_015354_cds_0_0_chr9_128789553_f 0 + -chr9 128850516 128850624 AB058751_cds_0_0_chr9_128850517_r 0 - -chrX 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + -chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - -chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + -chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 - diff -r 99b4d554afd1 -r 2d7f872ddaf8 test-data/groupby_out1.dat --- a/test-data/groupby_out1.dat Mon Nov 10 12:41:29 2008 -0500 +++ b/test-data/groupby_out1.dat Mon Nov 10 14:22:01 2008 -0500 @@ -1,20 +1,21 @@ -chr1 148052568.25 -chr10 55251623.00 -chr11 87588756.25 -chr12 38440094.00 -chr13 112381694.00 -chr14 98710240.00 -chr15 41666442.50 -chr16 206638.00 -chr18 50562378.25 -chr19 59226196.75 -chr2 169275635.50 -chr20 33504194.75 -chr21 33160676.75 -chr22 30471242.25 -chr5 131612441.50 -chr6 108564320.75 -chr7 115958079.00 -chr8 118881131.00 -chr9 128842832.75 -chrX 145194871.50 \ No newline at end of file +chr10 55251623.000000 +chr11 87588756.250000 +chr1 148052568.250000 +chr12 38440094.000000 +chr13 112381694.000000 +chr14 98710240.000000 +chr15 41666442.500000 +chr16 206638.000000 +chr18 50562378.250000 +chr19 59226196.750000 +chr20 33504194.750000 +chr2 118341365.500000 +chr21 33160676.750000 +chr2 220209905.500000 +chr22 30471242.250000 +chr5 131612441.500000 +chr6 108564320.750000 +chr7 115958079.000000 +chr8 118881131.000000 +chr9 128842832.750000 +chrX 145194871.500000 diff -r 99b4d554afd1 -r 2d7f872ddaf8 test/base/twilltestcase.py --- a/test/base/twilltestcase.py Mon Nov 10 12:41:29 2008 -0500 +++ b/test/base/twilltestcase.py Mon Nov 10 14:22:01 2008 -0500 @@ -420,13 +420,16 @@ def submit_form( self, form_no=0, button="runtool_btn", **kwd ): """Populates and submits a form from the keyword arguments.""" + # An HTMLForm contains a sequence of Controls. Supported control classes are: + # TextControl, FileControl, ListControl, RadioControl, CheckboxControl, SelectControl, + # SubmitControl, ImageControl for i, f in enumerate( self.showforms() ): if i == form_no: break - # An HTMLForm contains a sequence of Controls. Supported control classes are: - # TextControl, FileControl, ListControl, RadioControl, CheckboxControl, SelectControl, - # SubmitControl, ImageControl + # To help with debugging a tool, print out the form controls when the test fails + print "form '%s' contains the following controls ( note the values )" % f.name for i, control in enumerate( f.controls ): + print "control %d: %s" % ( i, str( control ) ) try: # Check for refresh_on_change attribute, submit a change if required if 'refresh_on_change' in control.attrs.keys(): @@ -504,10 +507,15 @@ tc.code( 200 ) """Functions associated with Galaxy tools""" - def run_tool( self, tool_id, **kwd ): + def run_tool( self, tool_id, repeat_name=None, **kwd ): tool_id = tool_id.replace(" ", "+") """Runs the tool 'tool_id' and passes it the key/values from the *kwd""" self.visit_url( "%s/tool_runner/index?tool_id=%s" % (self.url, tool_id) ) + if repeat_name is not None: + repeat_button = '%s_add' % repeat_name + # Submit the "repeat" form button to add an input) + tc.submit( repeat_button ) + print "button '%s' clicked" % repeat_button tc.find( 'runtool_btn' ) self.submit_form( **kwd ) @@ -516,14 +524,10 @@ tool_id = "ucsc_table_direct1" track_string = urllib.urlencode( track_params ) galaxy_url = urllib.quote_plus( "%s/tool_runner/index?" % self.url ) - self.visit_url( "http://genome.ucsc.edu/cgi-bin/hgTables?GALAXY_URL=%s&hgta_compressType=none&tool_id=%s&%s" % ( galaxy_url, tool_id, track_string ) ) tc.fv( "1","hgta_doTopSubmit", "get output" ) self.submit_form( button="get output" )#, **track_params ) - - tc.fv( "1","hgta_doGalaxyQuery", "Send query to Galaxy" ) - self.submit_form( button="Send query to Galaxy" )#, **output_params ) #AssertionError: Attempting to set field 'fbQual' to value '['whole']' in form 'None' threw exception: no matching forms! control: <RadioControl(fbQual=[whole, upstreamAll, endAll])> def wait( self, maxiter=20 ): diff -r 99b4d554afd1 -r 2d7f872ddaf8 test/functional/test_toolbox.py --- a/test/functional/test_toolbox.py Mon Nov 10 12:41:29 2008 -0500 +++ b/test/functional/test_toolbox.py Mon Nov 10 14:22:01 2008 -0500 @@ -1,5 +1,7 @@ import sys import new +from galaxy.tools.parameters import grouping +from galaxy.tools.parameters import basic from base.twilltestcase import TwillTestCase toolbox = None @@ -22,7 +24,7 @@ self.upload_file( fname, ftype=extra.get( 'ftype', 'auto' ), dbkey=extra.get( 'dbkey', 'hg17' ) ) print "Uploaded file: ", fname, ", ftype: ", extra.get( 'ftype', 'auto' ), ", extra: ", extra # We need to handle the case where we've uploaded a valid compressed file since the upload - # tool will have decompressed it on the fly. + # tool will have uncompressed it on the fly. all_inputs = {} for name, value, _ in self.testdef.inputs: if value: @@ -31,11 +33,16 @@ value = value.rstrip( end ) break all_inputs[ name ] = value - + # See if we have a grouping.Repeat element + repeat_name = None + for input_name, input_value in self.testdef.tool.inputs_by_page[0].items(): + if isinstance( input_value, grouping.Repeat ): + repeat_name = input_name + break # Do the first page page_inputs = self.__expand_grouping(self.testdef.tool.inputs_by_page[0], all_inputs) # Run the tool - self.run_tool( self.testdef.tool.id, **page_inputs ) + self.run_tool( self.testdef.tool.id, repeat_name=repeat_name, **page_inputs ) print "page_inputs (0)", page_inputs # Do other pages if they exist for i in range( 1, self.testdef.tool.npages ): @@ -52,24 +59,48 @@ def shortDescription( self ): return self.name - def __expand_grouping(self, tool_inputs, declared_inputs ): - from galaxy.tools.parameters import grouping + def __expand_grouping( self, tool_inputs, declared_inputs, repeat_index=0, repeat_sep='' ): expanded_inputs = {} for key, value in tool_inputs.items(): if isinstance(value, grouping.Conditional): for i, case in enumerate(value.cases): if declared_inputs[value.test_param.name] == case.value: if isinstance(case.value, str): - expanded_inputs["%s|%s" % (value.name, value.test_param.name)] = case.value.split(",") + if repeat_sep: + cond_sep = "%s%s" % ( repeat_sep, value.test_param.name ) + else: + cond_sep = "%s|%s" % ( value.name, value.test_param.name ) + expanded_inputs[ cond_sep ] = case.value.split( "," ) else: - expanded_inputs["%s|%s" % (value.name, value.test_param.name)] = case.value + if repeat_sep: + cond_sep = "%s%s" % ( repeat_sep, value.test_param.name ) + else: + cond_sep = "%s|%s" % ( value.name, value.test_param.name ) + expanded_inputs[ cond_sep ] = case.value for input_name, input_value in case.inputs.items(): if isinstance(input_value, grouping.Conditional): - expanded_inputs.update(self.__expand_grouping({input_name:input_value}), declared_inputs) + expanded_inputs.update( self.__expand_grouping( { input_name:input_value }, declared_inputs, repeat_index=repeat_index, repeat_sep=repeat_sep ) ) elif isinstance(declared_inputs[input_name], str): - expanded_inputs.update({"%s|%s" % (value.name, input_name):declared_inputs[input_name].split(",")}) + if repeat_sep: + cond_sep = "%s%s" % ( repeat_sep, input_name ) + else: + cond_sep = "%s|%s" % ( value.name, input_name ) + expanded_inputs.update( { cond_sep : declared_inputs[ input_name ].split( "," ) } ) else: - expanded_inputs.update({"%s|%s" % (value.name, input_name):declared_inputs[input_name]}) + if repeat_sep: + cond_sep = "%s%s" % ( repeat_sep, input_name ) + else: + cond_sep = "%s|%s" % ( value.name, input_name ) + expanded_inputs.update( { cond_sep : declared_inputs[ input_name ] } ) + elif isinstance( value, grouping.Repeat ): + for r_name, r_value in value.inputs.items(): + repeat_sep = "%s_%d|%s" % ( value.name, repeat_index, r_name ) + if isinstance( r_value, grouping.Conditional ): + cond_sep = repeat_sep + "|" + expanded_inputs.update( self.__expand_grouping( { r_name:r_value }, declared_inputs, repeat_index=repeat_index, repeat_sep=cond_sep ) ) + else: + expanded_inputs.update( { repeat_sep : [ declared_inputs[ r_name ] ] } ) + repeat_index += 1 elif isinstance(declared_inputs[value.name], str): expanded_inputs[value.name] = declared_inputs[value.name].split(",") else: diff -r 99b4d554afd1 -r 2d7f872ddaf8 tools/filters/catWrapper.xml --- a/tools/filters/catWrapper.xml Mon Nov 10 12:41:29 2008 -0500 +++ b/tools/filters/catWrapper.xml Mon Nov 10 14:22:01 2008 -0500 @@ -1,35 +1,39 @@ <tool id="cat1" name="Concatenate queries"> - <description>tail-to-head</description> - <command interpreter="python"> - catWrapper.py - $out_file1 - $input1 - #for $q in $queries - ${q.input2} - #end for - </command> - <inputs> - <param name="input1" type="data" label="Concatenate Query"/> - <repeat name="queries" title="Query"> - <param name="input2" type="data" label="Select" /> - </repeat> - - </inputs> - <outputs> - <data name="out_file1" format="input" metadata_source="input1"/> - </outputs> - - <!-- - <tests> - <test> - <param name="input1" value="1.bed"/> - <param name="input2" value="2.bed"/> - <output name="out_file1" file="eq-cat.dat"/> - </test> - </tests> - --> - - <help> + <description>tail-to-head</description> + <command interpreter="python"> + catWrapper.py + $out_file1 + $input1 + #for $q in $queries + ${q.input2} + #end for + </command> + <inputs> + <param name="input1" type="data" label="Concatenate Query"/> + <repeat name="queries" title="Query"> + <param name="input2" type="data" label="Select" /> + </repeat> + </inputs> + <outputs> + <data name="out_file1" format="input" metadata_source="input1"/> + </outputs> + <tests> + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <output name="out_file1" file="cat_wrapper_out1.bed"/> + </test> + <!--TODO: if possible, enhance the underlying test code to handle this test + the problem is multiple params with the same name "input2" + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <param name="input2" value="3.bed"/> + <output name="out_file1" file="cat_wrapper_out2.bed"/> + </test> + --> + </tests> + <help> .. class:: warningmark @@ -71,5 +75,5 @@ chr2 100000030 200000955 P 0 + chr2 100000015 200000999 Q 0 + -</help> + </help> </tool> diff -r 99b4d554afd1 -r 2d7f872ddaf8 tools/plotting/xy_plot.xml --- a/tools/plotting/xy_plot.xml Mon Nov 10 12:41:29 2008 -0500 +++ b/tools/plotting/xy_plot.xml Mon Nov 10 14:22:01 2008 -0500 @@ -94,7 +94,25 @@ <outputs> <data format="pdf" name="out_file1" /> </outputs> - + <!-- + TODO: figure out how to change the submit_form() method to correctly handle refreshing the + form when the input for refresh is within a repeat construct ( like this tool ) + <tests> + <test> + <param name="main" value="Example XY Plot"/> + <param name="xlab" value="Column 1"/> + <param name="ylab" value="Column 2"/> + <param name="input" value="2.tabular" ftype="tabular"/> + <param name="xcol" value="1"/> + <param name="ycol" value="2"/> + <param name="type" value="line"/> + <param name="lty" value="dashed"/> + <param name="col" value="2"/> + <param name="lwd" value="1.0"/> + <output name="out_file1" file="XY_Plot_1_out.pdf"/> + </test> + </tests> + --> <help> .. class:: infomark diff -r 99b4d554afd1 -r 2d7f872ddaf8 tools/stats/grouping.xml --- a/tools/stats/grouping.xml Mon Nov 10 12:41:29 2008 -0500 +++ b/tools/stats/grouping.xml Mon Nov 10 14:22:01 2008 -0500 @@ -40,17 +40,19 @@ </requirements> <tests> <!-- Test valid data --> - <!-- Testing this tool will not be possible unless / until the twill team inplements an - enhancement to allow for mouse clicks in the test cases... + <!-- TODO: fix this tool so that it works on various platforms + The following test should then work... <test> <param name="input1" value="1.bed"/> <param name="groupcol" value="1"/> - <param name="operations" value="mean 2"/> + <param name="optype" value="mean"/> + <param name="opcol" value="2"/> + <param name="opround" value="no"/> <output name="out_file1" file="groupby_out1.dat"/> </test> --> <!-- Test data with an invalid value in a column --> - <!-- + <!-- TODO: fix this test... <test> <param name="input1" value="1.tabular"/> <param name="groupcol" value="1"/> diff -r 99b4d554afd1 -r 2d7f872ddaf8 tools/visualization/build_ucsc_custom_track.xml --- a/tools/visualization/build_ucsc_custom_track.xml Mon Nov 10 12:41:29 2008 -0500 +++ b/tools/visualization/build_ucsc_custom_track.xml Mon Nov 10 14:22:01 2008 -0500 @@ -52,22 +52,17 @@ <outputs> <data format="customtrack" name="out_file1" /> </outputs> - <!-- - <tests> - <test> - <param name="primary" value="customTrack1.bed" /> - <param name="primary_color" value="0-0-0" /> - <param name="primary_visib" value="1" /> - <param name="primary_name" value="customTrack1.bed" /> - <param name="newdata" value="customTrack2.bed" /> - <param name="status" value="1" /> - <param name="Color" value="255-0-0" /> - <param name="Visibility" value="2" /> - <param name="other_names" value="customTrack2.bed" /> - <output name="out_file1" file="customTrack_output.dat" /> - </test> + <tests> + <!--TODO: add a 2nd test here that includes 2 tracks --> + <test> + <param name="input" value="customTrack1.bed" /> + <param name="name" value="User Track" /> + <param name="description" value="User Supplied Track (from Galaxy)" /> + <param name="color" value="0-0-0" /> + <param name="visibility" value="1" /> + <output name="out_file1" file="build_ucsc_custom_track_out1.customtrack" /> + </test> </tests> - --> <help> .. class:: infomark