Mercurial > repos > dave > test_repository
changeset 5:b95d7c323cc9 draft default tip
Uploaded
author | dave |
---|---|
date | Thu, 12 Jun 2014 10:33:20 -0400 |
parents | 46aee6903d8f |
children | |
files | join.py joiner.xml jøin.py j♥in.py pho test-data/1.bed test-data/2.bed test-data/joiner_out1.bed test-data/joiner_out2.bed test-data/joiner_out3.bed test-data/joiner_out4.bed tool_dependencies.xml |
diffstat | 11 files changed, 929 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/join.py Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,1 @@ +#øæå♥
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/joiner.xml Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,180 @@ +<tool id="join1" name="Join two Datasets" version="2.0.2"> + <description>side by side on a specified field</description> + <command interpreter="python">join.py $input1 $input2 $field1 $field2 $out_file1 $unmatched $partial --index_depth=3 --buffer=50000000 --fill_options_file=$fill_options_file</command> + <inputs> + <param format="tabular" name="input1" type="data" label="Join"/> + <param name="field1" label="using column" type="data_column" data_ref="input1" /> + <param format="tabular" name="input2" type="data" label="with" /> + <param name="field2" label="and column" type="data_column" data_ref="input2" /> + <param name="unmatched" type="select" label="Keep lines of first input that do not join with second input"> + <option value="-u">Yes</option> + <option value="" selected="true">No</option> + </param> + <param name="partial" type="select" label="Keep lines of first input that are incomplete"> + <option value="-p">Yes</option> + <option value="" selected="true">No</option> + </param> + <conditional name="fill_empty_columns"> + <param name="fill_empty_columns_switch" type="select" label="Fill empty columns"> + <option value="no_fill" selected="True">No</option> + <option value="fill_empty">Yes</option> + </param> + <when value="no_fill"> + <!-- do nothing --> + </when> + <when value="fill_empty"> + <param type="select" name="fill_columns_by" label="Only fill unjoined rows"> + <option value="fill_unjoined_only" selected="True">Yes</option> + <option value="fill_all">No</option> + </param> + <conditional name="do_fill_empty_columns"> + <param name="column_fill_type" type="select" label="Fill Columns by"> + <option value="single_fill_value" selected="True">Single fill value</option> + <option value="fill_value_by_column">Values by column</option> + </param> + <when value="single_fill_value"> + <param type="text" name="fill_value" label="Fill value" value="."/> + </when> + <when value="fill_value_by_column"> + <repeat name="column_fill1" title="Fill Column for Input 1"> + <param name="column_number1" label="Column" type="data_column" data_ref="input1" /> + <param type="text" name="fill_value1" value="."/> + </repeat> + <repeat name="column_fill2" title="Fill Column for Input 2"> + <param name="column_number2" label="Column" type="data_column" data_ref="input2" /> + <param type="text" name="fill_value2" value="."/> + </repeat> + </when> + </conditional> + </when> + </conditional> + </inputs> + <configfiles> + <configfile name="fill_options_file"><% +import simplejson +%> +#set $__fill_options = {} +#if $fill_empty_columns['fill_empty_columns_switch'] == 'fill_empty': + #set $__fill_options['fill_unjoined_only'] = $fill_empty_columns['fill_columns_by'].value == 'fill_unjoined_only' + #if $fill_empty_columns['do_fill_empty_columns']['column_fill_type'] == 'single_fill_value': + #set $__start_fill = $fill_empty_columns['do_fill_empty_columns']['fill_value'].value + #else: + #set $__start_fill = "" + #end if + #set $__fill_options['file1_columns'] = [ __start_fill for i in range( int( $input1.metadata.columns ) ) ] + #set $__fill_options['file2_columns'] = [ __start_fill for i in range( int( $input2.metadata.columns ) ) ] + #if $fill_empty_columns['do_fill_empty_columns']['column_fill_type'] == 'fill_value_by_column': + #for column_fill1 in $fill_empty_columns['do_fill_empty_columns']['column_fill1']: + #set $__fill_options['file1_columns'][ int( column_fill1['column_number1'].value ) - 1 ] = column_fill1['fill_value1'].value + #end for + #for column_fill2 in $fill_empty_columns['do_fill_empty_columns']['column_fill2']: + #set $__fill_options['file2_columns'][ int( column_fill2['column_number2'].value ) - 1 ] = column_fill2['fill_value2'].value + #end for + #end if +#end if +${simplejson.dumps( __fill_options )} + </configfile> + </configfiles> + <outputs> + <data format="input" name="out_file1" metadata_source="input1" /> + </outputs> + <tests> + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <param name="field1" value="2"/> + <param name="field2" value="2"/> + <param name="unmatched" value=""/> + <param name="partial" value=""/> + <param name="fill_empty_columns_switch" value="no_fill"/> + <output name="out_file1" file="joiner_out1.bed"/> + </test> + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <param name="field1" value="2"/> + <param name="field2" value="2"/> + <param name="unmatched" value="Yes"/> + <param name="partial" value="Yes"/> + <param name="fill_empty_columns_switch" value="no_fill"/> + <output name="out_file1" file="joiner_out2.bed"/> + </test> + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <param name="field1" value="2"/> + <param name="field2" value="2"/> + <param name="unmatched" value="Yes"/> + <param name="partial" value="Yes"/> + <param name="fill_empty_columns_switch" value="fill_empty"/> + <param name="fill_columns_by" value="fill_all"/> + <param name="column_fill_type" value="single_fill_value"/> + <param name="fill_value" value="~"/> + <output name="out_file1" file="joiner_out3.bed"/> + </test> + <test> + <param name="input1" value="1.bed"/> + <param name="input2" value="2.bed"/> + <param name="field1" value="2"/> + <param name="field2" value="2"/> + <param name="unmatched" value="Yes"/> + <param name="partial" value="Yes"/> + <param name="fill_empty_columns_switch" value="fill_empty"/> + <param name="fill_columns_by" value="fill_all"/> + <param name="column_fill_type" value="fill_value_by_column"/> + <param name="column_number1" value="6"/> + <param name="fill_value1" value="+"/> + <param name="column_number2" value="1"/> + <param name="fill_value2" value="NoChrom"/> + <output name="out_file1" file="joiner_out4.bed"/> + </test> + </tests> + <help> + +.. class:: warningmark + +**This tool will attempt to reuse the metadata from your first input.** To change metadata assignments click on the "edit attributes" link of the history item generated by this tool. + +.. class:: infomark + +**TIP:** If your data is not TAB delimited, use *Text Manipulation->Convert* + +----- + +**Syntax** + +This tool joins lines of two datasets on a common field. An empty string ("") is not a valid identifier. +You may choose to include lines of your first input that do not join with your second input. + +- Columns are referenced with a **number**. For example, **3** refers to the 3rd column of a tab-delimited file. + +----- + +**Example** + +Dataset1:: + + chr1 10 20 geneA + chr1 50 80 geneB + chr5 10 40 geneL + +Dataset2:: + + geneA tumor-supressor + geneB Foxp2 + geneC Gnas1 + geneE INK4a + +Joining the 4th column of Dataset1 with the 1st column of Dataset2 will yield:: + + chr1 10 20 geneA geneA tumor-suppressor + chr1 50 80 geneB geneB Foxp2 + +Joining the 4th column of Dataset1 with the 1st column of Dataset2, while keeping all lines from Dataset1, will yield:: + + chr1 10 20 geneA geneA tumor-suppressor + chr1 50 80 geneB geneB Foxp2 + chr5 10 40 geneL + +</help> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jøin.py Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,370 @@ +#!/usr/bin/env python +#Dan Blankenberg +""" +Script to Join Two Files on specified columns. + +Takes two tab delimited files, two column numbers (base 1) and outputs a new tab delimited file with lines joined by tabs. +User can also opt to have have non-joining rows of file1 echoed. + +""" + +import optparse, os, sys, tempfile, struct +import psyco_full + +try: + simple_json_exception = None + from galaxy import eggs + from galaxy.util.bunch import Bunch + from galaxy.util import stringify_dictionary_keys + import pkg_resources + pkg_resources.require("simplejson") + import simplejson +except Exception, e: + simplejson_exception = e + simplejson = None + + +class OffsetList: + def __init__( self, filesize = 0, fmt = None ): + self.file = tempfile.NamedTemporaryFile( 'w+b' ) + if fmt: + self.fmt = fmt + elif filesize and filesize <= sys.maxint * 2: + self.fmt = 'I' + else: + self.fmt = 'Q' + self.fmt_size = struct.calcsize( self.fmt ) + @property + def size( self ): + self.file.flush() + return self.file_size / self.fmt_size + @property + def file_size( self ): + self.file.flush() + return os.stat( self.file.name ).st_size + def add_offset( self, offset ): + if not isinstance( offset, list ): + offset = [offset] + self.file.seek( self.file_size ) + for off in offset: + self.file.write( struct.pack( self.fmt, off ) ) + def get_offsets( self, start = 0 ): + self.file.seek( start * self.fmt_size ) + while True: + packed = self.file.read( self.fmt_size ) + if not packed: break + yield struct.unpack( self.fmt, packed )[0] + def get_offset_by_index( self, index ): + self.file.seek( index * self.fmt_size ) + return struct.unpack( self.fmt, self.file.read( self.fmt_size ) )[0] + def set_offset_at_index( self, index, offset ): + if not isinstance( offset, list ): + offset = [offset] + if index >= self.size: + self.add_offset( offset ) + else: + temp_file = tempfile.NamedTemporaryFile( 'w+b' ) + self.file.seek( 0 ) + temp_file.write( self.file.read( ( index ) * self.fmt_size ) ) + for off in offset: + temp_file.write( struct.pack( self.fmt, off ) ) + temp_file.write( self.file.read() ) + self.file = temp_file + +class SortedOffsets( OffsetList ): + def __init__( self, indexed_filename, column, split = None ): + OffsetList.__init__( self, os.stat( indexed_filename ).st_size ) + self.indexed_filename = indexed_filename + self.indexed_file = open( indexed_filename, 'rb' ) + self.column = column + self.split = split + self.last_identifier = None + self.last_identifier_merged = None + self.last_offset_merged = 0 + def merge_with_dict( self, new_offset_dict ): + if not new_offset_dict: return #no items to merge in + keys = new_offset_dict.keys() + keys.sort() + identifier2 = keys.pop( 0 ) + + result_offsets = OffsetList( fmt = self.fmt ) + offsets1 = enumerate( self.get_offsets() ) + try: + index1, offset1 = offsets1.next() + identifier1 = self.get_identifier_by_offset( offset1 ) + except StopIteration: + offset1 = None + identifier1 = None + index1 = 0 + + while True: + if identifier1 is None and identifier2 is None: + self.file = result_offsets.file #self is now merged results + return + elif identifier1 is None or ( identifier2 and identifier2 < identifier1 ): + result_offsets.add_offset( new_offset_dict[identifier2] ) + if keys: + identifier2 = keys.pop( 0 ) + else: + identifier2 = None + elif identifier2 is None: + result_offsets.file.seek( result_offsets.file_size ) + self.file.seek( index1 * self.fmt_size ) + result_offsets.file.write( self.file.read() ) + identifier1 = None + offset1 = None + else: + result_offsets.add_offset( offset1 ) + try: + index1, offset1 = offsets1.next() + identifier1 = self.get_identifier_by_offset( offset1 ) + except StopIteration: + offset1 = None + identifier1 = None + index1 += 1 +#methods to help link offsets to lines, ids, etc + def get_identifier_by_line( self, line ): + if isinstance( line, str ): + fields = line.rstrip( '\r\n' ).split( self.split ) + if self.column < len( fields ): + return fields[self.column] + return None + def get_line_by_offset( self, offset ): + self.indexed_file.seek( offset ) + return self.indexed_file.readline() + def get_identifier_by_offset( self, offset ): + return self.get_identifier_by_line( self.get_line_by_offset( offset ) ) + +#indexed set of offsets, index is built on demand +class OffsetIndex: + def __init__( self, filename, column, split = None, index_depth = 3 ): + self.filename = filename + self.file = open( filename, 'rb' ) + self.column = column + self.split = split + self._offsets = {} + self._index = None + self.index_depth = index_depth + def _build_index( self ): + self._index = {} + for start_char, sorted_offsets in self._offsets.items(): + self._index[start_char]={} + for i, offset in enumerate( sorted_offsets.get_offsets() ): + identifier = sorted_offsets.get_identifier_by_offset( offset ) + if identifier[0:self.index_depth] not in self._index[start_char]: + self._index[start_char][identifier[0:self.index_depth]] = i + def get_lines_by_identifier( self, identifier ): + if not identifier: return + #if index doesn't exist, build it + if self._index is None: self._build_index() + + #identifier cannot exist + if identifier[0] not in self._index or identifier[0:self.index_depth] not in self._index[identifier[0]]: + return + #identifier might exist, search for it + offset_index = self._index[identifier[0]][identifier[0:self.index_depth]] + while True: + if offset_index >= self._offsets[identifier[0]].size: + return + offset = self._offsets[identifier[0]].get_offset_by_index( offset_index ) + identifier2 = self._offsets[identifier[0]].get_identifier_by_offset( offset ) + if not identifier2 or identifier2 > identifier: + return + if identifier2 == identifier: + yield self._offsets[identifier[0]].get_line_by_offset( offset ) + offset_index += 1 + def get_offsets( self ): + keys = self._offsets.keys() + keys.sort() + for key in keys: + for offset in self._offsets[key].get_offsets(): + yield offset + def get_line_by_offset( self, offset ): + self.file.seek( offset ) + return self.file.readline() + def get_identifiers_offsets( self ): + keys = self._offsets.keys() + keys.sort() + for key in keys: + for offset in self._offsets[key].get_offsets(): + yield self._offsets[key].get_identifier_by_offset( offset ), offset + def get_identifier_by_line( self, line ): + if isinstance( line, str ): + fields = line.rstrip( '\r\n' ).split( self.split ) + if self.column < len( fields ): + return fields[self.column] + return None + def merge_with_dict( self, d ): + if not d: return #no data to merge + self._index = None + keys = d.keys() + keys.sort() + identifier = keys.pop( 0 ) + first_char = identifier[0] + temp = { identifier: d[identifier] } + while True: + if not keys: + if first_char not in self._offsets: + self._offsets[first_char] = SortedOffsets( self.filename, self.column, self.split ) + self._offsets[first_char].merge_with_dict( temp ) + return + identifier = keys.pop( 0 ) + if identifier[0] == first_char: + temp[identifier] = d[identifier] + else: + if first_char not in self._offsets: + self._offsets[first_char] = SortedOffsets( self.filename, self.column, self.split ) + self._offsets[first_char].merge_with_dict( temp ) + temp = { identifier: d[identifier] } + first_char = identifier[0] + +class BufferedIndex: + def __init__( self, filename, column, split = None, buffer = 1000000, index_depth = 3 ): + self.index = OffsetIndex( filename, column, split, index_depth ) + self.buffered_offsets = {} + f = open( filename, 'rb' ) + offset = f.tell() + identified_offset_count = 1 + while True: + offset = f.tell() + line = f.readline() + if not line: break #EOF + identifier = self.index.get_identifier_by_line( line ) + if identifier: + #flush buffered offsets, if buffer size reached + if buffer and identified_offset_count % buffer == 0: + self.index.merge_with_dict( self.buffered_offsets ) + self.buffered_offsets = {} + if identifier not in self.buffered_offsets: + self.buffered_offsets[identifier] = [] + self.buffered_offsets[identifier].append( offset ) + identified_offset_count += 1 + f.close() + + def get_lines_by_identifier( self, identifier ): + for line in self.index.get_lines_by_identifier( identifier ): + yield line + if identifier in self.buffered_offsets: + for offset in self.buffered_offsets[identifier]: + yield self.index.get_line_by_offset( offset ) + + +def fill_empty_columns( line, split, fill_values ): + if not fill_values: + return line + filled_columns = [] + for i, field in enumerate( line.split( split ) ): + if field or i >= len( fill_values ): + filled_columns.append( field ) + else: + filled_columns.append( fill_values[i] ) + if len( fill_values ) > len( filled_columns ): + filled_columns.extend( fill_values[ len( filled_columns ) : ] ) + return split.join( filled_columns ) + + +def join_files( filename1, column1, filename2, column2, out_filename, split = None, buffer = 1000000, keep_unmatched = False, keep_partial = False, index_depth = 3, fill_options = None ): + #return identifier based upon line + def get_identifier_by_line( line, column, split = None ): + if isinstance( line, str ): + fields = line.rstrip( '\r\n' ).split( split ) + if column < len( fields ): + return fields[column] + return None + if fill_options is None: + fill_options = Bunch( fill_unjoined_only = True, file1_columns = None, file2_columns = None ) + out = open( out_filename, 'w+b' ) + index = BufferedIndex( filename2, column2, split, buffer, index_depth ) + for line1 in open( filename1, 'rb' ): + identifier = get_identifier_by_line( line1, column1, split ) + if identifier: + written = False + for line2 in index.get_lines_by_identifier( identifier ): + if not fill_options.fill_unjoined_only: + out.write( "%s%s%s\n" % ( fill_empty_columns( line1.rstrip( '\r\n' ), split, fill_options.file1_columns ), split, fill_empty_columns( line2.rstrip( '\r\n' ), split, fill_options.file2_columns ) ) ) + else: + out.write( "%s%s%s\n" % ( line1.rstrip( '\r\n' ), split, line2.rstrip( '\r\n' ) ) ) + written = True + if not written and keep_unmatched: + out.write( fill_empty_columns( line1.rstrip( '\r\n' ), split, fill_options.file1_columns ) ) + if fill_options: + if fill_options.file2_columns: + out.write( "%s%s" % ( split, fill_empty_columns( "", split, fill_options.file2_columns ) ) ) + out.write( "\n" ) + elif keep_partial: + out.write( fill_empty_columns( line1.rstrip( '\r\n' ), split, fill_options.file1_columns ) ) + if fill_options: + if fill_options.file2_columns: + out.write( "%s%s" % ( split, fill_empty_columns( "", split, fill_options.file2_columns ) ) ) + out.write( "\n" ) + out.close() + +def main(): + parser = optparse.OptionParser() + parser.add_option( + '-b','--buffer', + dest='buffer', + type='int',default=1000000, + help='Number of lines to buffer at a time. Default: 1,000,000 lines. A buffer of 0 will attempt to use memory only.' + ) + parser.add_option( + '-d','--index_depth', + dest='index_depth', + type='int',default=3, + help='Depth to use on filebased offset indexing. Default: 3.' + ) + parser.add_option( + '-p','--keep_partial', + action='store_true', + dest='keep_partial', + default=False, + help='Keep rows in first input which are missing identifiers.') + parser.add_option( + '-u','--keep_unmatched', + action='store_true', + dest='keep_unmatched', + default=False, + help='Keep rows in first input which are not joined with the second input.') + parser.add_option( + '-f','--fill_options_file', + dest='fill_options_file', + type='str',default=None, + help='Fill empty columns with a values from a JSONified file.') + + + options, args = parser.parse_args() + + fill_options = None + if options.fill_options_file is not None: + try: + if simplejson is None: + raise simplejson_exception + fill_options = Bunch( **stringify_dictionary_keys( simplejson.load( open( options.fill_options_file ) ) ) ) #simplejson.load( open( options.fill_options_file ) ) + except Exception, e: + print "Warning: Ignoring fill options due to simplejson error (%s)." % e + if fill_options is None: + fill_options = Bunch() + if 'fill_unjoined_only' not in fill_options: + fill_options.fill_unjoined_only = True + if 'file1_columns' not in fill_options: + fill_options.file1_columns = None + if 'file2_columns' not in fill_options: + fill_options.file2_columns = None + + + try: + filename1 = args[0] + filename2 = args[1] + column1 = int( args[2] ) - 1 + column2 = int( args[3] ) - 1 + out_filename = args[4] + except: + print >> sys.stderr, "Error parsing command line." + sys.exit() + + #Character for splitting fields and joining lines + split = "\t" + + return join_files( filename1, column1, filename2, column2, out_filename, split, options.buffer, options.keep_unmatched, options.keep_partial, options.index_depth, fill_options = fill_options ) + +if __name__ == "__main__": main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/j♥in.py Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,1 @@ +#øæå♥
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/1.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,65 @@ +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 -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/2.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,68 @@ +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 -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/joiner_out1.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,49 @@ +chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + +chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - chr11 116211733 116212337 BC005380_cds_0_0_chr11_116211734_r 0 - +chr12 38440094 38440321 CCDS8736.1_cds_0_0_chr12_38440095_r 0 - chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - +chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + +chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - chr15 41679161 41679250 NM_153700_cds_0_0_chr15_41679162_r 0 - +chr16 142908 143003 CCDS10397.1_cds_0_0_chr16_142909_f 0 + chr16 142908 143003 NM_005332_cds_0_0_chr16_142909_f 0 + +chr16 244413 244681 CCDS10402.1_cds_0_0_chr16_244414_f 0 + chr16 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + +chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + +chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - chr18 59455932 59456337 AB046400_cds_0_0_chr18_59455933_r 0 - +chr19 59068595 59069564 CCDS12866.1_cds_0_0_chr19_59068596_f 0 + chr19 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + +chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + chr19 59297998 59298008 NM_004542_cds_0_0_chr19_59297999_f 0 + +chr2 118288583 118288668 CCDS2120.1_cds_0_0_chr2_118288584_f 0 + chr2 118288583 118288668 NM_006773_cds_0_0_chr2_118288584_f 0 + +chr2 220229609 220230869 CCDS2443.1_cds_0_0_chr2_220229610_r 0 - chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - +chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + chr20 33513606 33513792 AF022655_cds_1_0_chr20_33513607_f 0 + +chr21 32869641 32870022 CCDS13615.1_cds_0_0_chr21_32869642_r 0 - chr21 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - +chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + chr21 33321040 33322012 NM_005806_cds_1_0_chr21_33321041_f 0 + +chr22 30120223 30120265 CCDS13897.1_cds_0_0_chr22_30120224_f 0 + chr22 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - chr22 30160419 30160661 BC032941_cds_0_0_chr22_30160420_r 0 - +chr5 131424298 131424460 CCDS4149.1_cds_0_0_chr5_131424299_f 0 + chr5 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + chr5 131621326 131621419 BC003096_cds_0_0_chr5_131621327_f 0 + +chr6 108299600 108299744 CCDS5061.1_cds_0_0_chr6_108299601_r 0 - chr6 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + +chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - chr9 128787519 128789136 NM_014908_cds_0_0_chr9_128787520_r 0 - +chrX 122745047 122745924 CCDS14606.1_cds_0_0_chrX_122745048_f 0 + chrX 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + +chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 - \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/joiner_out2.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,65 @@ +chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + +chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - chr11 116211733 116212337 BC005380_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 - chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - +chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + +chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - chr15 41679161 41679250 NM_153700_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 142908 143003 NM_005332_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 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + +chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + +chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - chr18 59455932 59456337 AB046400_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 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + +chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + chr19 59297998 59298008 NM_004542_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 118288583 118288668 NM_006773_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 - chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - +chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + chr20 33513606 33513792 AF022655_cds_1_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 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - +chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + chr21 33321040 33322012 NM_005806_cds_1_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 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - chr22 30160419 30160661 BC032941_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 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + chr5 131621326 131621419 BC003096_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 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + +chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - chr9 128787519 128789136 NM_014908_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 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + +chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 - \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/joiner_out3.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,65 @@ +chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + +chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - chr11 116211733 116212337 BC005380_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 - chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - +chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + +chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - chr15 41679161 41679250 NM_153700_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 142908 143003 NM_005332_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 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + +chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + +chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - chr18 59455932 59456337 AB046400_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 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + +chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + chr19 59297998 59298008 NM_004542_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 118288583 118288668 NM_006773_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 - chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - +chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + chr20 33513606 33513792 AF022655_cds_1_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 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - +chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + chr21 33321040 33322012 NM_005806_cds_1_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 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - chr22 30160419 30160661 BC032941_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 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + chr5 131621326 131621419 BC003096_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 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + +chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - chr9 128787519 128789136 NM_014908_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 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + +chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/joiner_out4.bed Thu Jun 12 10:33:20 2014 -0400 @@ -0,0 +1,65 @@ +chr1 147962192 147962580 CCDS989.1_cds_0_0_chr1_147962193_r 0 - chr1 147962192 147962580 NM_005997_cds_0_0_chr1_147962193_r 0 - +chr1 147984545 147984630 CCDS990.1_cds_0_0_chr1_147984546_f 0 + chr1 147984545 147984630 BC007833_cds_0_0_chr1_147984546_f 0 + +chr1 148078400 148078582 CCDS993.1_cds_0_0_chr1_148078401_r 0 - chr1 148078400 148078582 AJ011123_cds_0_0_chr1_148078401_r 0 - +chr1 148185136 148185276 CCDS996.1_cds_0_0_chr1_148185137_f 0 + chr1 148185136 148185276 NM_002796_cds_0_0_chr1_148185137_f 0 + +chr10 55251623 55253124 CCDS7248.1_cds_0_0_chr10_55251624_r 0 - chr10 55251623 55253124 AY029205_cds_0_0_chr10_55251624_r 0 - +chr11 116124407 116124501 CCDS8374.1_cds_0_0_chr11_116124408_r 0 - chr11 116124407 116124501 AK057832_cds_0_0_chr11_116124408_r 0 - +chr11 116206508 116206563 CCDS8377.1_cds_0_0_chr11_116206509_f 0 + chr11 116206508 116206563 NM_000040_cds_1_0_chr11_116206509_f 0 + +chr11 116211733 116212337 CCDS8378.1_cds_0_0_chr11_116211734_r 0 - chr11 116211733 116212337 BC005380_cds_0_0_chr11_116211734_r 0 - +chr11 1812377 1812407 CCDS7726.1_cds_0_0_chr11_1812378_f 0 + NoChrom +chr12 38440094 38440321 CCDS8736.1_cds_0_0_chr12_38440095_r 0 - chr12 38440094 38440321 NM_052885_cds_0_0_chr12_38440095_r 0 - +chr13 112381694 112381953 CCDS9526.1_cds_0_0_chr13_112381695_f 0 + chr13 112381694 112381953 NM_207440_cds_1_0_chr13_112381695_f 0 + +chr14 98710240 98712285 CCDS9949.1_cds_0_0_chr14_98710241_r 0 - chr14 98710240 98712285 NM_022898_cds_0_0_chr14_98710241_r 0 - +chr15 41486872 41487060 CCDS10096.1_cds_0_0_chr15_41486873_r 0 - chr15 41486872 41487060 BX537418_cds_0_0_chr15_41486873_r 0 - +chr15 41673708 41673857 CCDS10097.1_cds_0_0_chr15_41673709_f 0 + chr15 41673708 41673857 AK223365_cds_0_0_chr15_41673709_f 0 + +chr15 41679161 41679250 CCDS10098.1_cds_0_0_chr15_41679162_r 0 - chr15 41679161 41679250 NM_153700_cds_0_0_chr15_41679162_r 0 - +chr15 41826029 41826196 CCDS10101.1_cds_0_0_chr15_41826030_f 0 + NoChrom +chr16 142908 143003 CCDS10397.1_cds_0_0_chr16_142909_f 0 + chr16 142908 143003 NM_005332_cds_0_0_chr16_142909_f 0 + +chr16 179963 180135 CCDS10401.1_cds_0_0_chr16_179964_r 0 - NoChrom +chr16 244413 244681 CCDS10402.1_cds_0_0_chr16_244414_f 0 + chr16 244413 244681 AK057165_cds_2_0_chr16_244414_f 0 + +chr16 259268 259383 CCDS10403.1_cds_0_0_chr16_259269_r 0 - chr16 259268 259383 AB016929_cds_0_0_chr16_259269_r 0 - +chr18 23786114 23786321 CCDS11891.1_cds_0_0_chr18_23786115_r 0 - chr18 23786114 23786321 NM_001792_cds_0_0_chr18_23786115_r 0 - +chr18 59406881 59407046 CCDS11985.1_cds_0_0_chr18_59406882_f 0 + chr18 59406881 59407046 NM_012397_cds_1_0_chr18_59406882_f 0 + +chr18 59455932 59456337 CCDS11986.1_cds_0_0_chr18_59455933_r 0 - chr18 59455932 59456337 AB046400_cds_0_0_chr18_59455933_r 0 - +chr18 59600586 59600754 CCDS11988.1_cds_0_0_chr18_59600587_f 0 + NoChrom +chr19 59068595 59069564 CCDS12866.1_cds_0_0_chr19_59068596_f 0 + chr19 59068595 59069564 BC013995_cds_1_0_chr19_59068596_f 0 + +chr19 59236026 59236146 CCDS12872.1_cds_0_0_chr19_59236027_r 0 - chr19 59236026 59236146 NM_198481_cds_0_0_chr19_59236027_r 0 - +chr19 59297998 59298008 CCDS12877.1_cds_0_0_chr19_59297999_f 0 + chr19 59297998 59298008 NM_004542_cds_0_0_chr19_59297999_f 0 + +chr19 59302168 59302288 CCDS12878.1_cds_0_0_chr19_59302169_r 0 - NoChrom +chr2 118288583 118288668 CCDS2120.1_cds_0_0_chr2_118288584_f 0 + chr2 118288583 118288668 NM_006773_cds_0_0_chr2_118288584_f 0 + +chr2 118394148 118394202 CCDS2121.1_cds_0_0_chr2_118394149_r 0 - NoChrom +chr2 220190202 220190242 CCDS2441.1_cds_0_0_chr2_220190203_f 0 + NoChrom +chr2 220229609 220230869 CCDS2443.1_cds_0_0_chr2_220229610_r 0 - chr2 220229609 220230869 NM_024536_cds_0_0_chr2_220229610_r 0 - +chr20 33330413 33330423 CCDS13249.1_cds_0_0_chr20_33330414_r 0 - chr20 33330413 33330423 NM_181466_cds_0_0_chr20_33330414_r 0 - +chr20 33513606 33513792 CCDS13255.1_cds_0_0_chr20_33513607_f 0 + chr20 33513606 33513792 AF022655_cds_1_0_chr20_33513607_f 0 + +chr20 33579500 33579527 CCDS13256.1_cds_0_0_chr20_33579501_r 0 - NoChrom +chr20 33593260 33593348 CCDS13257.1_cds_0_0_chr20_33593261_f 0 + NoChrom +chr21 32707032 32707192 CCDS13614.1_cds_0_0_chr21_32707033_f 0 + NoChrom +chr21 32869641 32870022 CCDS13615.1_cds_0_0_chr21_32869642_r 0 - chr21 32869641 32870022 NM_018277_cds_3_0_chr21_32869642_r 0 - +chr21 33321040 33322012 CCDS13620.1_cds_0_0_chr21_33321041_f 0 + chr21 33321040 33322012 NM_005806_cds_1_0_chr21_33321041_f 0 + +chr21 33744994 33745040 CCDS13625.1_cds_0_0_chr21_33744995_r 0 - NoChrom +chr22 30120223 30120265 CCDS13897.1_cds_0_0_chr22_30120224_f 0 + chr22 30120223 30120265 NM_004147_cds_0_0_chr22_30120224_f 0 + +chr22 30160419 30160661 CCDS13898.1_cds_0_0_chr22_30160420_r 0 - chr22 30160419 30160661 BC032941_cds_0_0_chr22_30160420_r 0 - +chr22 30665273 30665360 CCDS13901.1_cds_0_0_chr22_30665274_f 0 + NoChrom +chr22 30939054 30939266 CCDS13903.1_cds_0_0_chr22_30939055_r 0 - NoChrom +chr5 131424298 131424460 CCDS4149.1_cds_0_0_chr5_131424299_f 0 + chr5 131424298 131424460 NM_000588_cds_0_0_chr5_131424299_f 0 + +chr5 131556601 131556672 CCDS4151.1_cds_0_0_chr5_131556602_r 0 - chr5 131556601 131556672 BC035813_cds_0_0_chr5_131556602_r 0 - +chr5 131621326 131621419 CCDS4152.1_cds_0_0_chr5_131621327_f 0 + chr5 131621326 131621419 BC003096_cds_0_0_chr5_131621327_f 0 + +chr5 131847541 131847666 CCDS4155.1_cds_0_0_chr5_131847542_r 0 - NoChrom +chr6 108299600 108299744 CCDS5061.1_cds_0_0_chr6_108299601_r 0 - chr6 108299600 108299744 NM_007214_cds_0_0_chr6_108299601_r 0 - +chr6 108594662 108594687 CCDS5063.1_cds_0_0_chr6_108594663_f 0 + chr6 108594662 108594687 NM_003269_cds_0_0_chr6_108594663_f 0 + +chr6 108640045 108640151 CCDS5064.1_cds_0_0_chr6_108640046_r 0 - chr6 108640045 108640151 NM_003795_cds_0_0_chr6_108640046_r 0 - +chr6 108722976 108723115 CCDS5067.1_cds_0_0_chr6_108722977_f 0 + chr6 108722976 108723115 NM_145315_cds_0_0_chr6_108722977_f 0 + +chr7 113660517 113660685 CCDS5760.1_cds_0_0_chr7_113660518_f 0 + chr7 113660517 113660685 AF467257_cds_1_0_chr7_113660518_f 0 + +chr7 116512159 116512389 CCDS5771.1_cds_0_0_chr7_116512160_r 0 - chr7 116512159 116512389 NM_003391_cds_0_0_chr7_116512160_r 0 - +chr7 116714099 116714152 CCDS5773.1_cds_0_0_chr7_116714100_f 0 + chr7 116714099 116714152 NM_000492_cds_0_0_chr7_116714100_f 0 + +chr7 116945541 116945787 CCDS5774.1_cds_0_0_chr7_116945542_r 0 - chr7 116945541 116945787 AF377960_cds_0_0_chr7_116945542_r 0 - +chr8 118881131 118881317 CCDS6324.1_cds_0_0_chr8_118881132_r 0 - chr8 118881131 118881317 NM_000127_cds_0_0_chr8_118881132_r 0 - +chr9 128764156 128764189 CCDS6914.1_cds_0_0_chr9_128764157_f 0 + chr9 128764156 128764189 BC051300_cds_0_0_chr9_128764157_f 0 + +chr9 128787519 128789136 CCDS6915.1_cds_0_0_chr9_128787520_r 0 - chr9 128787519 128789136 NM_014908_cds_0_0_chr9_128787520_r 0 - +chr9 128882427 128882523 CCDS6917.1_cds_0_0_chr9_128882428_f 0 + NoChrom +chr9 128937229 128937445 CCDS6919.1_cds_0_0_chr9_128937230_r 0 - NoChrom +chrX 122745047 122745924 CCDS14606.1_cds_0_0_chrX_122745048_f 0 + chrX 122745047 122745924 NM_001167_cds_1_0_chrX_122745048_f 0 + +chrX 152648964 152649196 CCDS14733.1_cds_0_0_chrX_152648965_r 0 - chrX 152648964 152649196 NM_000425_cds_0_0_chrX_152648965_r 0 - +chrX 152691446 152691471 CCDS14735.1_cds_0_0_chrX_152691447_f 0 + chrX 152691446 152691471 AF101728_cds_0_0_chrX_152691447_f 0 + +chrX 152694029 152694263 CCDS14736.1_cds_0_0_chrX_152694030_r 0 - chrX 152694029 152694263 BC052303_cds_0_0_chrX_152694030_r 0 -
--- a/tool_dependencies.xml Wed Jul 24 09:15:52 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -<?xml version="1.0"?> -<!-- Generic repository_depencencies.xml file for misc sequence tools --> -<repositories description="This requires Biopython as a dependency."> -<!-- Leave out the tool shed and revision to get the current tool shed and latest revision at the time of upload --> -<repository owner="biopython" name="package_biopython_1_61" /> -</repositories> -