changeset 0:d427e5acb9ee draft default tip

Imported from capsule None
author devteam
date Tue, 01 Apr 2014 10:52:01 -0400
parents
children
files getIndelRates_3way.py getIndelRates_3way.xml test-data/indelrates_3way.tabular test-data/indels_3way.tabular tool_dependencies.xml
diffstat 5 files changed, 482 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getIndelRates_3way.py	Tue Apr 01 10:52:01 2014 -0400
@@ -0,0 +1,244 @@
+#!/usr/bin/env python
+#Guruprasad Ananda
+
+import sys, os, tempfile
+import fileinput
+from warnings import warn
+
+from galaxy.tools.util.galaxyops import *
+from bx.intervals.io import *
+
+from bx.intervals.operations import quicksect
+
+def stop_err(msg):
+    sys.stderr.write(msg)
+    sys.exit()
+
+
+def counter(node, start, end, sort_col):
+    global full, blk_len, blk_list
+    if node.start < start:
+        if node.right:
+            counter(node.right, start, end, sort_col)
+    elif start <= node.start <= end and start <= node.end <= end:
+        full += 1
+        if node.other[0] not in blk_list:
+            blk_list.append(node.other[0])
+            blk_len += int(node.other[sort_col+2])
+        if node.left and node.left.maxend > start:
+            counter(node.left, start, end, sort_col)
+        if node.right:
+            counter(node.right, start, end, sort_col)
+    elif node.start > end:
+        if node.left:
+            counter(node.left, start, end, sort_col)
+
+
+infile = sys.argv[1]
+fout = open(sys.argv[2],'w')
+int_file = sys.argv[3]
+if int_file != "None": #User has specified an interval file
+    try:
+        fint = open(int_file, 'r')
+        dbkey_i = sys.argv[4]
+        chr_col_i, start_col_i, end_col_i, strand_col_i = parse_cols_arg( sys.argv[5] )
+    except:
+        stop_err("Unable to open input Interval file")
+
+
+def main():
+    for i, line in enumerate( file ( infile )):
+        line = line.rstrip('\r\n')
+        if len( line )>0 and not line.startswith( '#' ):
+            elems = line.split( '\t' )
+            break
+        if i == 30:
+            break # Hopefully we'll never get here...
+        
+    if len( elems ) != 18:
+        stop_err( "This tool only works on tabular data output by 'Fetch Indels from 3-way alignments' tool. The data in your input dataset is either missing or not formatted properly." )
+    
+    for i, line in enumerate( file ( infile )):
+        line = line.rstrip('\r\n')
+        elems = line.split('\t')
+        try:
+            assert int(elems[0])
+            assert len(elems) == 18
+            if int_file != "None":
+                if dbkey_i not in elems[3] and  dbkey_i not in elems[8] and dbkey_i not in elems[13]:
+                    stop_err("The species build corresponding to your interval file is not present in the Indel file.") 
+                if dbkey_i in elems[3]:
+                    sort_col = 4
+                elif dbkey_i in elems[8]:
+                    sort_col = 9
+                elif dbkey_i in elems[13]:
+                    sort_col = 14
+            else:
+                species = []
+                species.append( elems[3].split('.')[0] )
+                species.append( elems[8].split('.')[0] )
+                species.append( elems[13].split('.')[0] )
+                sort_col = 0    #Based on block numbers
+            break
+        except:
+            continue
+    
+    fin = open(infile, 'r')
+    skipped = 0
+    
+    if int_file == "None":
+        sorted_infile = tempfile.NamedTemporaryFile()
+        cmdline = "sort -n -k"+str(1)+" -o "+sorted_infile.name+" "+infile
+        try:
+            os.system(cmdline)
+        except:
+            stop_err("Encountered error while sorting the input file.")
+        print >> fout, "#Block\t%s_InsRate\t%s_InsRate\t%s_InsRate\t%s_DelRate\t%s_DelRate\t%s_DelRate" % ( species[0], species[1], species[2], species[0], species[1], species[2] )
+        prev_bnum = -1
+        sorted_infile.seek(0)
+        for line in sorted_infile.readlines():
+            line = line.rstrip('\r\n')
+            elems = line.split('\t')
+            try:
+                assert int(elems[0])
+                assert len(elems) == 18
+                new_bnum = int(elems[0])
+                if new_bnum != prev_bnum:
+                    if prev_bnum != -1:
+                        irate = []
+                        drate = []
+                        for i, elem in enumerate(inserts):
+                            try:
+                                irate.append(str("%.2e" % (inserts[i]/blen[i])))
+                            except:
+                                irate.append('0')
+                            try:
+                                drate.append(str("%.2e" % (deletes[i]/blen[i])))
+                            except:
+                                drate.append('0')
+                        print >> fout, "%s\t%s\t%s" % ( prev_bnum, '\t'.join(irate) , '\t'.join(drate) )
+                    inserts = [0.0, 0.0, 0.0]
+                    deletes = [0.0, 0.0, 0.0]
+                    blen = []
+                    blen.append( int(elems[6]) )
+                    blen.append( int(elems[11]) )
+                    blen.append( int(elems[16]) )
+                line_sp = elems[1].split('.')[0]
+                sp_ind = species.index(line_sp)
+                if elems[1].endswith('insert'):
+                    inserts[sp_ind] += 1
+                elif elems[1].endswith('delete'):
+                    deletes[sp_ind] += 1
+                prev_bnum = new_bnum
+            except Exception, ei:
+                #print >>sys.stderr, ei
+                continue
+        irate = []
+        drate = []
+        for i, elem in enumerate(inserts):
+            try:
+                irate.append(str("%.2e" % (inserts[i]/blen[i])))
+            except:
+                irate.append('0')
+            try:
+                drate.append(str("%.2e" % (deletes[i]/blen[i])))
+            except:
+                drate.append('0')
+        print >> fout, "%s\t%s\t%s" % ( prev_bnum, '\t'.join(irate) , '\t'.join(drate) )
+        sys.exit()
+    
+    inf = open(infile, 'r')
+    start_met = False
+    end_met = False
+    sp_file = tempfile.NamedTemporaryFile()
+    for n, line in enumerate(inf):
+        line = line.rstrip('\r\n')
+        elems = line.split('\t')
+        try:
+            assert int(elems[0])
+            assert len(elems) == 18
+            if dbkey_i not in elems[1]:
+                if not(start_met):
+                    continue
+                else:
+                    sp_end = n
+                    break
+            else:
+                print >> sp_file, line
+                if not(start_met):
+                    start_met = True
+                    sp_start = n
+        except:
+            continue
+    
+    try:
+        assert sp_end
+    except:
+        sp_end = n+1
+    
+    sp_file.seek(0)
+    win = NiceReaderWrapper( fileinput.FileInput( int_file ),
+                                chrom_col=chr_col_i,
+                                start_col=start_col_i,
+                                end_col=end_col_i,
+                                strand_col=strand_col_i,
+                                fix_strand=True)
+    
+    indel = NiceReaderWrapper( fileinput.FileInput( sp_file.name ),
+                                chrom_col=1,
+                                start_col=sort_col,
+                                end_col=sort_col+1,
+                                strand_col=-1,
+                                fix_strand=True)
+    
+    indelTree = quicksect.IntervalTree()
+    for item in indel:
+        if type( item ) is GenomicInterval:
+            indelTree.insert( item, indel.linenum, item.fields )
+    result = []
+    
+    global full, blk_len, blk_list
+    for interval in win:
+        if type( interval ) is Header:
+            pass
+        if type( interval ) is Comment:
+            pass
+        elif type( interval ) == GenomicInterval:
+            chrom = interval.chrom
+            start = int(interval.start)
+            end = int(interval.end)
+            if start > end:
+                warn( "Interval start after end!" )
+            ins_chr = "%s.%s_insert" % ( dbkey_i, chrom )
+            del_chr = "%s.%s_delete" % ( dbkey_i, chrom )
+            irate = 0
+            drate = 0
+            if ins_chr not in indelTree.chroms and del_chr not in indelTree.chroms:
+                pass
+            else:
+                if ins_chr in indelTree.chroms:
+                    full = 0.0
+                    blk_len = 0
+                    blk_list = []
+                    root = indelTree.chroms[ins_chr]    #root node for the chrom insertion tree
+                    counter(root, start, end, sort_col)
+                    if blk_len:
+                        irate = full/blk_len
+                
+                if del_chr in indelTree.chroms:
+                    full = 0.0
+                    blk_len = 0
+                    blk_list = []
+                    root = indelTree.chroms[del_chr]    #root node for the chrom insertion tree
+                    counter(root, start, end, sort_col)
+                    if blk_len:
+                        drate = full/blk_len
+                
+            interval.fields.append(str("%.2e" %irate))
+            interval.fields.append(str("%.2e" %drate))
+            print >> fout, "\t".join(interval.fields)
+            fout.flush()
+
+
+if __name__ == "__main__":
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getIndelRates_3way.xml	Tue Apr 01 10:52:01 2014 -0400
@@ -0,0 +1,65 @@
+<tool id="indelRates_3way" name="Estimate Indel Rates" version="1.0.0">
+  <description> for 3-way alignments</description>
+  <requirements>
+    <requirement type="package" version="0.7.1">bx-python</requirement>
+    <requirement type="package" version="1.0.0">galaxy-ops</requirement>
+  </requirements>
+  <command interpreter="python">
+    getIndelRates_3way.py $input1 $out_file1 
+    #if $region.type == "align"
+        "None"
+    #else
+        $region.input2 $input2.dbkey $input2.metadata.chromCol,$input2.metadata.startCol,$input2.metadata.endCol,$input2.metadata.strandCol
+    #end if
+  </command>
+  <inputs>
+    <page>
+        <param format="tabular" name="input1" type="data" label="Select dataset containing Indels"/>
+        
+        <conditional name="region">
+          <param name="type" type="select" label="Estimate rates corresponding to" multiple="false">
+            <option value="win" selected="True">Intervals in your history</option>
+            <option value="align">Alignment block</option>
+         </param>
+         <when value="win">
+            <param format="interval" name="input2" type="data" label="Choose intervals">
+                <validator type="unspecified_build" />
+            </param>
+          </when>
+          <when value="align" />
+      </conditional>
+     
+    </page>
+  </inputs>
+  <outputs>
+    <data format="tabular" name="out_file1" metadata_source="input1"/>
+  </outputs>
+
+  <tests>
+    <test>
+      <param name="input1" value="indels_3way.tabular"/>
+      <param name="type" value="align"/>
+      <output name="out_file1" file="indelrates_3way.tabular"/>
+    </test>
+  </tests>
+
+ <help> 
+
+.. class:: infomark
+
+**What it does**
+
+This tool estimates the insertion and deletion rates for alignments in a window of specified size. Rates are computed over the total adjusted lengths (adjusted by disregarding masked bases) of all the alignments blocks from the indel file that fall within that window.
+  
+-----
+
+.. class:: warningmark
+
+**Note**
+
+This tool only works on the output of the 'Estimate Indel Rates for 3-way alignments' tool.   
+
+</help>  
+
+
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/indelrates_3way.tabular	Tue Apr 01 10:52:01 2014 -0400
@@ -0,0 +1,15 @@
+#Block	hg18_InsRate	panTro2_InsRate	canFam2_InsRate	hg18_DelRate	panTro2_DelRate	canFam2_DelRate
+1	0.00e+00	6.90e-03	6.90e-03	0.00e+00	0.00e+00	1.38e-02
+2	0.00e+00	0.00e+00	1.27e-02	7.25e-04	0.00e+00	6.36e-03
+3	0.00e+00	0.00e+00	6.21e-03	0.00e+00	0.00e+00	6.21e-03
+4	0.00e+00	0.00e+00	2.07e-02	0.00e+00	0.00e+00	5.18e-03
+5	0.00e+00	0.00e+00	2.54e-02	0.00e+00	0.00e+00	1.69e-02
+6	0.00e+00	0.00e+00	9.61e-04	0.00e+00	0.00e+00	0.00e+00
+7	0.00e+00	0.00e+00	1.97e-02	0.00e+00	0.00e+00	5.62e-03
+8	0.00e+00	1.71e-03	1.17e-02	0.00e+00	1.71e-03	6.67e-03
+9	0.00e+00	0.00e+00	1.05e-02	2.72e-03	0.00e+00	1.83e-02
+10	0.00e+00	3.26e-03	1.51e-02	0.00e+00	0.00e+00	1.89e-02
+12	1.25e-03	0.00e+00	8.70e-03	0.00e+00	0.00e+00	1.24e-02
+13	0.00e+00	0.00e+00	6.76e-03	0.00e+00	0.00e+00	4.73e-02
+14	0.00e+00	0.00e+00	4.93e-03	1.23e-03	1.23e-03	5.55e-03
+15	0.00e+00	0.00e+00	2.29e-02	0.00e+00	0.00e+00	1.38e-02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/indels_3way.tabular	Tue Apr 01 10:52:01 2014 -0400
@@ -0,0 +1,149 @@
+#block	indel_type	indel_length	ingroup1	ingroup1_start	ingroup1_end	ingroup1_alignSize	ingroup1_orient	ingroup2	ingroup2_start	ingroup2_end	ingroup2_alignSize	ingroup2_orient	outgroup	outgroup_start	outgroup_end	outgroup_alignSize	outgroup_orient
+12	hg18.chr1_insert	1	hg18.chr1	57213	57213	802	+	panTro2.chrUn	9724391	9724392	801	+	canFam2.chr30	3360548	3360549	805	-
+2	hg18.chr1_delete	4	hg18.chr1	48103	48104	1380	+	panTro2.chrUn	9713713	9713716	1384	+	canFam2.chr30	3367755	3367758	1415	-
+9	hg18.chr1_delete	35	hg18.chr1	55389	55390	367	+	panTro2.chrUn	9721584	9721618	402	+	canFam2.chr30	3361661	3361695	382	-
+14	hg18.chr1_delete	1	hg18.chr1	58770	58771	1628	+	panTro2.chrUn	9725949	9725949	1631	+	canFam2.chr30	3357056	3357056	1623	-
+14	hg18.chr1_delete	4	hg18.chr1	58770	58771	1628	+	panTro2.chrUn	9725950	9725953	1631	+	canFam2.chr30	3357058	3357061	1623	-
+1	panTro2.chrUn_insert	2	hg18.chr1	46857	46858	143	+	panTro2.chrUn	9712465	9712466	145	+	canFam2.chr30	3368190	3368191	145	-
+8	panTro2.chrUn_insert	4	hg18.chr1	54744	54745	582	+	panTro2.chrUn	9720936	9720939	585	+	canFam2.chr30	3362635	3362636	600	-
+10	panTro2.chrUn_insert	35	hg18.chr1	55984	55985	272	+	panTro2.chrUn	9721981	9722015	307	+	canFam2.chr30	3361105	3361106	265	-
+8	panTro2.chrUn_delete	1	hg18.chr1	54979	54979	582	+	panTro2.chrUn	9721173	9721174	585	+	canFam2.chr30	3362890	3362890	600	-
+14	panTro2.chrUn_delete	1	hg18.chr1	59015	59015	1628	+	panTro2.chrUn	9726197	9726198	1631	+	canFam2.chr30	3357328	3357328	1623	-
+14	panTro2.chrUn_delete	1	hg18.chr1	60211	60211	1628	+	panTro2.chrUn	9727392	9727393	1631	+	canFam2.chr30	3358490	3358490	1623	-
+1	canFam2.chr30_insert	4	hg18.chr1	46796	46797	143	+	panTro2.chrUn	9712403	9712404	145	+	canFam2.chr30	3368127	3368130	145	-
+2	canFam2.chr30_insert	8	hg18.chr1	47138	47139	1380	+	panTro2.chrUn	9712747	9712748	1384	+	canFam2.chr30	3366730	3366737	1415	-
+2	canFam2.chr30_insert	3	hg18.chr1	47263	47264	1380	+	panTro2.chrUn	9712872	9712873	1384	+	canFam2.chr30	3366862	3366864	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	47293	47294	1380	+	panTro2.chrUn	9712902	9712903	1384	+	canFam2.chr30	3366895	3366895	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	47312	47313	1380	+	panTro2.chrUn	9712921	9712922	1384	+	canFam2.chr30	3366915	3366915	1415	-
+2	canFam2.chr30_insert	7	hg18.chr1	47440	47441	1380	+	panTro2.chrUn	9713049	9713050	1384	+	canFam2.chr30	3367044	3367050	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	47528	47529	1380	+	panTro2.chrUn	9713137	9713138	1384	+	canFam2.chr30	3367138	3367138	1415	-
+2	canFam2.chr30_insert	10	hg18.chr1	47546	47547	1380	+	panTro2.chrUn	9713155	9713156	1384	+	canFam2.chr30	3367157	3367166	1415	-
+2	canFam2.chr30_insert	4	hg18.chr1	47562	47563	1380	+	panTro2.chrUn	9713171	9713172	1384	+	canFam2.chr30	3367183	3367186	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	47648	47649	1380	+	panTro2.chrUn	9713257	9713258	1384	+	canFam2.chr30	3367273	3367273	1415	-
+2	canFam2.chr30_insert	3	hg18.chr1	47672	47673	1380	+	panTro2.chrUn	9713281	9713282	1384	+	canFam2.chr30	3367298	3367300	1415	-
+2	canFam2.chr30_insert	5	hg18.chr1	47734	47735	1380	+	panTro2.chrUn	9713343	9713344	1384	+	canFam2.chr30	3367361	3367365	1415	-
+2	canFam2.chr30_insert	2	hg18.chr1	47759	47760	1380	+	panTro2.chrUn	9713368	9713369	1384	+	canFam2.chr30	3367391	3367392	1415	-
+2	canFam2.chr30_insert	2	hg18.chr1	47835	47836	1380	+	panTro2.chrUn	9713444	9713445	1384	+	canFam2.chr30	3367469	3367470	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	48017	48018	1380	+	panTro2.chrUn	9713626	9713627	1384	+	canFam2.chr30	3367653	3367653	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	48035	48036	1380	+	panTro2.chrUn	9713644	9713645	1384	+	canFam2.chr30	3367672	3367672	1415	-
+2	canFam2.chr30_insert	4	hg18.chr1	48091	48092	1380	+	panTro2.chrUn	9713700	9713701	1384	+	canFam2.chr30	3367729	3367732	1415	-
+2	canFam2.chr30_insert	10	hg18.chr1	48103	48104	1380	+	panTro2.chrUn	9713712	9713713	1384	+	canFam2.chr30	3367745	3367754	1415	-
+2	canFam2.chr30_insert	1	hg18.chr1	48232	48233	1380	+	panTro2.chrUn	9713845	9713846	1384	+	canFam2.chr30	3367870	3367870	1415	-
+3	canFam2.chr30_insert	15	hg18.chr1	48379	48380	455	+	panTro2.chrUn	9714289	9714290	455	+	canFam2.chr30	3366038	3366052	483	-
+3	canFam2.chr30_insert	21	hg18.chr1	48426	48427	455	+	panTro2.chrUn	9714336	9714337	455	+	canFam2.chr30	3366096	3366116	483	-
+3	canFam2.chr30_insert	1	hg18.chr1	48523	48524	455	+	panTro2.chrUn	9714433	9714434	455	+	canFam2.chr30	3366213	3366213	483	-
+4	canFam2.chr30_insert	8	hg18.chr1	52535	52536	183	+	panTro2.chrUn	9718438	9718439	183	+	canFam2.chr30	3364655	3364662	193	-
+4	canFam2.chr30_insert	1	hg18.chr1	52555	52556	183	+	panTro2.chrUn	9718458	9718459	183	+	canFam2.chr30	3364683	3364683	193	-
+4	canFam2.chr30_insert	1	hg18.chr1	52588	52589	183	+	panTro2.chrUn	9718491	9718492	183	+	canFam2.chr30	3364717	3364717	193	-
+4	canFam2.chr30_insert	4	hg18.chr1	52691	52692	183	+	panTro2.chrUn	9718594	9718595	183	+	canFam2.chr30	3364817	3364820	193	-
+5	canFam2.chr30_insert	3	hg18.chr1	52709	52710	115	+	panTro2.chrUn	9718612	9718613	115	+	canFam2.chr30	3364525	3364527	118	-
+5	canFam2.chr30_insert	1	hg18.chr1	52754	52755	115	+	panTro2.chrUn	9718657	9718658	115	+	canFam2.chr30	3364571	3364571	118	-
+5	canFam2.chr30_insert	4	hg18.chr1	52763	52764	115	+	panTro2.chrUn	9718666	9718667	115	+	canFam2.chr30	3364581	3364584	118	-
+6	canFam2.chr30_insert	1	hg18.chr1	53848	53849	1040	+	panTro2.chrUn	9719751	9719752	1040	+	canFam2.chr30	3364511	3364511	1041	-
+7	canFam2.chr30_insert	4	hg18.chr1	53869	53870	335	+	panTro2.chrUn	9719772	9719773	335	+	canFam2.chr30	3363136	3363139	356	-
+7	canFam2.chr30_insert	1	hg18.chr1	53899	53900	335	+	panTro2.chrUn	9719802	9719803	335	+	canFam2.chr30	3363168	3363168	356	-
+7	canFam2.chr30_insert	1	hg18.chr1	53921	53922	335	+	panTro2.chrUn	9719824	9719825	335	+	canFam2.chr30	3363191	3363191	356	-
+7	canFam2.chr30_insert	8	hg18.chr1	53938	53939	335	+	panTro2.chrUn	9719841	9719842	335	+	canFam2.chr30	3363209	3363216	356	-
+7	canFam2.chr30_insert	7	hg18.chr1	53970	53971	335	+	panTro2.chrUn	9719873	9719874	335	+	canFam2.chr30	3363249	3363255	356	-
+7	canFam2.chr30_insert	5	hg18.chr1	54101	54102	335	+	panTro2.chrUn	9720004	9720005	335	+	canFam2.chr30	3363383	3363387	356	-
+7	canFam2.chr30_insert	1	hg18.chr1	54164	54165	335	+	panTro2.chrUn	9720067	9720068	335	+	canFam2.chr30	3363451	3363451	356	-
+8	canFam2.chr30_insert	1	hg18.chr1	54579	54580	582	+	panTro2.chrUn	9720770	9720771	585	+	canFam2.chr30	3362472	3362472	600	-
+8	canFam2.chr30_insert	1	hg18.chr1	54654	54655	582	+	panTro2.chrUn	9720845	9720846	585	+	canFam2.chr30	3362547	3362547	600	-
+8	canFam2.chr30_insert	1	hg18.chr1	54691	54692	582	+	panTro2.chrUn	9720882	9720883	585	+	canFam2.chr30	3362585	3362585	600	-
+8	canFam2.chr30_insert	18	hg18.chr1	54775	54776	582	+	panTro2.chrUn	9720970	9720971	585	+	canFam2.chr30	3362667	3362684	600	-
+8	canFam2.chr30_insert	1	hg18.chr1	54799	54800	582	+	panTro2.chrUn	9720994	9720995	585	+	canFam2.chr30	3362709	3362709	600	-
+8	canFam2.chr30_insert	4	hg18.chr1	54944	54945	582	+	panTro2.chrUn	9721139	9721140	585	+	canFam2.chr30	3362851	3362854	600	-
+8	canFam2.chr30_insert	1	hg18.chr1	54969	54970	582	+	panTro2.chrUn	9721164	9721165	585	+	canFam2.chr30	3362880	3362880	600	-
+9	canFam2.chr30_insert	1	hg18.chr1	55360	55361	367	+	panTro2.chrUn	9721554	9721555	402	+	canFam2.chr30	3361632	3361632	382	-
+9	canFam2.chr30_insert	1	hg18.chr1	55378	55379	367	+	panTro2.chrUn	9721572	9721573	402	+	canFam2.chr30	3361651	3361651	382	-
+9	canFam2.chr30_insert	1	hg18.chr1	55396	55397	367	+	panTro2.chrUn	9721625	9721626	402	+	canFam2.chr30	3361703	3361703	382	-
+9	canFam2.chr30_insert	2	hg18.chr1	55444	55445	367	+	panTro2.chrUn	9721673	9721674	402	+	canFam2.chr30	3361752	3361753	382	-
+10	canFam2.chr30_insert	1	hg18.chr1	55776	55777	272	+	panTro2.chrUn	9721772	9721773	307	+	canFam2.chr30	3360902	3360902	265	-
+10	canFam2.chr30_insert	5	hg18.chr1	55864	55865	272	+	panTro2.chrUn	9721860	9721861	307	+	canFam2.chr30	3360991	3360995	265	-
+10	canFam2.chr30_insert	2	hg18.chr1	55969	55970	272	+	panTro2.chrUn	9721965	9721966	307	+	canFam2.chr30	3361087	3361088	265	-
+10	canFam2.chr30_insert	2	hg18.chr1	55980	55981	272	+	panTro2.chrUn	9721976	9721977	307	+	canFam2.chr30	3361100	3361101	265	-
+12	canFam2.chr30_insert	33	hg18.chr1	56722	56723	802	+	panTro2.chrUn	9723901	9723902	801	+	canFam2.chr30	3360035	3360067	805	-
+12	canFam2.chr30_insert	1	hg18.chr1	56746	56747	802	+	panTro2.chrUn	9723925	9723926	801	+	canFam2.chr30	3360092	3360092	805	-
+12	canFam2.chr30_insert	1	hg18.chr1	56836	56837	802	+	panTro2.chrUn	9724015	9724016	801	+	canFam2.chr30	3360183	3360183	805	-
+12	canFam2.chr30_insert	1	hg18.chr1	56864	56865	802	+	panTro2.chrUn	9724043	9724044	801	+	canFam2.chr30	3360212	3360212	805	-
+12	canFam2.chr30_insert	1	hg18.chr1	56894	56895	802	+	panTro2.chrUn	9724073	9724074	801	+	canFam2.chr30	3360243	3360243	805	-
+12	canFam2.chr30_insert	2	hg18.chr1	57161	57162	802	+	panTro2.chrUn	9724340	9724341	801	+	canFam2.chr30	3360496	3360497	805	-
+12	canFam2.chr30_insert	1	hg18.chr1	57352	57353	802	+	panTro2.chrUn	9724530	9724531	801	+	canFam2.chr30	3360680	3360680	805	-
+13	canFam2.chr30_insert	2	hg18.chr1	58529	58530	176	+	panTro2.chrUn	9725707	9725708	176	+	canFam2.chr30	3359565	3359566	148	-
+14	canFam2.chr30_insert	1	hg18.chr1	58700	58701	1628	+	panTro2.chrUn	9725878	9725879	1631	+	canFam2.chr30	3356984	3356984	1623	-
+14	canFam2.chr30_insert	1	hg18.chr1	58709	58710	1628	+	panTro2.chrUn	9725887	9725888	1631	+	canFam2.chr30	3356994	3356994	1623	-
+14	canFam2.chr30_insert	1	hg18.chr1	58770	58771	1628	+	panTro2.chrUn	9725949	9725950	1631	+	canFam2.chr30	3357057	3357057	1623	-
+14	canFam2.chr30_insert	1	hg18.chr1	58772	58773	1628	+	panTro2.chrUn	9725955	9725956	1631	+	canFam2.chr30	3357064	3357064	1623	-
+14	canFam2.chr30_insert	15	hg18.chr1	58800	58801	1628	+	panTro2.chrUn	9725983	9725984	1631	+	canFam2.chr30	3357093	3357107	1623	-
+14	canFam2.chr30_insert	9	hg18.chr1	58808	58809	1628	+	panTro2.chrUn	9725991	9725992	1631	+	canFam2.chr30	3357116	3357124	1623	-
+14	canFam2.chr30_insert	1	hg18.chr1	60032	60033	1628	+	panTro2.chrUn	9727214	9727215	1631	+	canFam2.chr30	3358319	3358319	1623	-
+14	canFam2.chr30_insert	4	hg18.chr1	60148	60149	1628	+	panTro2.chrUn	9727330	9727331	1631	+	canFam2.chr30	3358426	3358429	1623	-
+15	canFam2.chr30_insert	1	hg18.chr1	60326	60327	230	+	panTro2.chrUn	9727507	9727508	230	+	canFam2.chr30	3356643	3356643	218	-
+15	canFam2.chr30_insert	2	hg18.chr1	60353	60354	230	+	panTro2.chrUn	9727534	9727535	230	+	canFam2.chr30	3356671	3356672	218	-
+15	canFam2.chr30_insert	1	hg18.chr1	60391	60392	230	+	panTro2.chrUn	9727572	9727573	230	+	canFam2.chr30	3356711	3356711	218	-
+15	canFam2.chr30_insert	1	hg18.chr1	60466	60467	230	+	panTro2.chrUn	9727647	9727648	230	+	canFam2.chr30	3356783	3356783	218	-
+15	canFam2.chr30_insert	5	hg18.chr1	60476	60477	230	+	panTro2.chrUn	9727657	9727658	230	+	canFam2.chr30	3356794	3356798	218	-
+1	canFam2.chr30_delete	1	hg18.chr1	46857	46857	143	+	panTro2.chrUn	9712464	9712464	145	+	canFam2.chr30	3368190	3368191	145	-
+1	canFam2.chr30_delete	1	hg18.chr1	46900	46900	143	+	panTro2.chrUn	9712509	9712509	145	+	canFam2.chr30	3368232	3368233	145	-
+2	canFam2.chr30_delete	7	hg18.chr1	47080	47086	1380	+	panTro2.chrUn	9712689	9712695	1384	+	canFam2.chr30	3366677	3366678	1415	-
+2	canFam2.chr30_delete	1	hg18.chr1	47168	47168	1380	+	panTro2.chrUn	9712777	9712777	1384	+	canFam2.chr30	3366766	3366767	1415	-
+2	canFam2.chr30_delete	1	hg18.chr1	47482	47482	1380	+	panTro2.chrUn	9713091	9713091	1384	+	canFam2.chr30	3367091	3367092	1415	-
+2	canFam2.chr30_delete	2	hg18.chr1	47703	47704	1380	+	panTro2.chrUn	9713312	9713313	1384	+	canFam2.chr30	3367330	3367331	1415	-
+2	canFam2.chr30_delete	15	hg18.chr1	48139	48153	1380	+	panTro2.chrUn	9713752	9713766	1384	+	canFam2.chr30	3367793	3367794	1415	-
+2	canFam2.chr30_delete	1	hg18.chr1	48160	48160	1380	+	panTro2.chrUn	9713773	9713773	1384	+	canFam2.chr30	3367799	3367800	1415	-
+2	canFam2.chr30_delete	1	hg18.chr1	48174	48174	1380	+	panTro2.chrUn	9713787	9713787	1384	+	canFam2.chr30	3367812	3367813	1415	-
+2	canFam2.chr30_delete	1	hg18.chr1	48197	48197	1380	+	panTro2.chrUn	9713810	9713810	1384	+	canFam2.chr30	3367834	3367835	1415	-
+2	canFam2.chr30_delete	5	hg18.chr1	48280	48284	1380	+	panTro2.chrUn	9713893	9713897	1384	+	canFam2.chr30	3367917	3367918	1415	-
+3	canFam2.chr30_delete	4	hg18.chr1	48344	48347	455	+	panTro2.chrUn	9714254	9714257	455	+	canFam2.chr30	3366005	3366006	483	-
+3	canFam2.chr30_delete	4	hg18.chr1	48410	48413	455	+	panTro2.chrUn	9714320	9714323	455	+	canFam2.chr30	3366082	3366083	483	-
+3	canFam2.chr30_delete	1	hg18.chr1	48470	48470	455	+	panTro2.chrUn	9714380	9714380	455	+	canFam2.chr30	3366159	3366160	483	-
+4	canFam2.chr30_delete	4	hg18.chr1	52639	52642	183	+	panTro2.chrUn	9718542	9718545	183	+	canFam2.chr30	3364767	3364768	193	-
+5	canFam2.chr30_delete	3	hg18.chr1	52707	52709	115	+	panTro2.chrUn	9718610	9718612	115	+	canFam2.chr30	3364524	3364525	118	-
+5	canFam2.chr30_delete	2	hg18.chr1	52743	52744	115	+	panTro2.chrUn	9718646	9718647	115	+	canFam2.chr30	3364560	3364561	118	-
+7	canFam2.chr30_delete	2	hg18.chr1	53879	53880	335	+	panTro2.chrUn	9719782	9719783	335	+	canFam2.chr30	3363148	3363149	356	-
+7	canFam2.chr30_delete	4	hg18.chr1	54052	54055	335	+	panTro2.chrUn	9719955	9719958	335	+	canFam2.chr30	3363336	3363337	356	-
+8	canFam2.chr30_delete	1	hg18.chr1	54634	54634	582	+	panTro2.chrUn	9720825	9720825	585	+	canFam2.chr30	3362526	3362527	600	-
+8	canFam2.chr30_delete	3	hg18.chr1	54710	54712	582	+	panTro2.chrUn	9720901	9720903	585	+	canFam2.chr30	3362603	3362604	600	-
+8	canFam2.chr30_delete	4	hg18.chr1	54876	54879	582	+	panTro2.chrUn	9721071	9721074	585	+	canFam2.chr30	3362785	3362786	600	-
+8	canFam2.chr30_delete	1	hg18.chr1	54984	54984	582	+	panTro2.chrUn	9721178	9721178	585	+	canFam2.chr30	3362894	3362895	600	-
+9	canFam2.chr30_delete	1	hg18.chr1	55131	55131	367	+	panTro2.chrUn	9721325	9721325	402	+	canFam2.chr30	3361420	3361421	382	-
+9	canFam2.chr30_delete	6	hg18.chr1	55213	55218	367	+	panTro2.chrUn	9721407	9721412	402	+	canFam2.chr30	3361501	3361502	382	-
+9	canFam2.chr30_delete	1	hg18.chr1	55308	55308	367	+	panTro2.chrUn	9721502	9721502	402	+	canFam2.chr30	3361590	3361591	382	-
+9	canFam2.chr30_delete	4	hg18.chr1	55324	55327	367	+	panTro2.chrUn	9721518	9721521	402	+	canFam2.chr30	3361605	3361606	382	-
+9	canFam2.chr30_delete	7	hg18.chr1	55340	55346	367	+	panTro2.chrUn	9721534	9721540	402	+	canFam2.chr30	3361617	3361618	382	-
+9	canFam2.chr30_delete	2	hg18.chr1	55386	55387	367	+	panTro2.chrUn	9721580	9721581	402	+	canFam2.chr30	3361658	3361659	382	-
+9	canFam2.chr30_delete	4	hg18.chr1	55457	55460	367	+	panTro2.chrUn	9721686	9721689	402	+	canFam2.chr30	3361765	3361766	382	-
+10	canFam2.chr30_delete	11	hg18.chr1	55893	55903	272	+	panTro2.chrUn	9721889	9721899	307	+	canFam2.chr30	3361023	3361024	265	-
+10	canFam2.chr30_delete	1	hg18.chr1	55924	55924	272	+	panTro2.chrUn	9721920	9721920	307	+	canFam2.chr30	3361043	3361044	265	-
+10	canFam2.chr30_delete	1	hg18.chr1	55939	55939	272	+	panTro2.chrUn	9721935	9721935	307	+	canFam2.chr30	3361057	3361058	265	-
+10	canFam2.chr30_delete	1	hg18.chr1	55959	55959	272	+	panTro2.chrUn	9721955	9721955	307	+	canFam2.chr30	3361076	3361077	265	-
+10	canFam2.chr30_delete	3	hg18.chr1	56001	56003	272	+	panTro2.chrUn	9722032	9722034	307	+	canFam2.chr30	3361121	3361122	265	-
+12	canFam2.chr30_delete	6	hg18.chr1	56611	56616	802	+	panTro2.chrUn	9723790	9723795	801	+	canFam2.chr30	3359929	3359930	805	-
+12	canFam2.chr30_delete	1	hg18.chr1	56696	56696	802	+	panTro2.chrUn	9723875	9723875	801	+	canFam2.chr30	3360008	3360009	805	-
+12	canFam2.chr30_delete	7	hg18.chr1	56911	56917	802	+	panTro2.chrUn	9724090	9724096	801	+	canFam2.chr30	3360259	3360260	805	-
+12	canFam2.chr30_delete	3	hg18.chr1	56991	56993	802	+	panTro2.chrUn	9724170	9724172	801	+	canFam2.chr30	3360332	3360333	805	-
+12	canFam2.chr30_delete	5	hg18.chr1	57110	57114	802	+	panTro2.chrUn	9724289	9724293	801	+	canFam2.chr30	3360448	3360449	805	-
+12	canFam2.chr30_delete	1	hg18.chr1	57217	57217	802	+	panTro2.chrUn	9724395	9724395	801	+	canFam2.chr30	3360551	3360552	805	-
+12	canFam2.chr30_delete	5	hg18.chr1	57247	57251	802	+	panTro2.chrUn	9724425	9724429	801	+	canFam2.chr30	3360580	3360581	805	-
+12	canFam2.chr30_delete	2	hg18.chr1	57310	57311	802	+	panTro2.chrUn	9724488	9724489	801	+	canFam2.chr30	3360638	3360639	805	-
+12	canFam2.chr30_delete	2	hg18.chr1	57379	57380	802	+	panTro2.chrUn	9724557	9724558	801	+	canFam2.chr30	3360706	3360707	805	-
+12	canFam2.chr30_delete	4	hg18.chr1	57387	57390	802	+	panTro2.chrUn	9724565	9724568	801	+	canFam2.chr30	3360712	3360713	805	-
+13	canFam2.chr30_delete	3	hg18.chr1	58409	58411	176	+	panTro2.chrUn	9725587	9725589	176	+	canFam2.chr30	3359468	3359469	148	-
+13	canFam2.chr30_delete	1	hg18.chr1	58434	58434	176	+	panTro2.chrUn	9725612	9725612	176	+	canFam2.chr30	3359490	3359491	148	-
+13	canFam2.chr30_delete	2	hg18.chr1	58446	58447	176	+	panTro2.chrUn	9725624	9725625	176	+	canFam2.chr30	3359501	3359502	148	-
+13	canFam2.chr30_delete	8	hg18.chr1	58470	58477	176	+	panTro2.chrUn	9725648	9725655	176	+	canFam2.chr30	3359523	3359524	148	-
+13	canFam2.chr30_delete	5	hg18.chr1	58488	58492	176	+	panTro2.chrUn	9725666	9725670	176	+	canFam2.chr30	3359533	3359534	148	-
+13	canFam2.chr30_delete	6	hg18.chr1	58510	58515	176	+	panTro2.chrUn	9725688	9725693	176	+	canFam2.chr30	3359550	3359551	148	-
+13	canFam2.chr30_delete	5	hg18.chr1	58565	58569	176	+	panTro2.chrUn	9725743	9725747	176	+	canFam2.chr30	3359601	3359602	148	-
+14	canFam2.chr30_delete	1	hg18.chr1	58669	58669	1628	+	panTro2.chrUn	9725847	9725847	1631	+	canFam2.chr30	3356952	3356953	1623	-
+14	canFam2.chr30_delete	3	hg18.chr1	58849	58851	1628	+	panTro2.chrUn	9726032	9726034	1631	+	canFam2.chr30	3357164	3357165	1623	-
+14	canFam2.chr30_delete	10	hg18.chr1	59342	59351	1628	+	panTro2.chrUn	9726524	9726533	1631	+	canFam2.chr30	3357654	3357655	1623	-
+14	canFam2.chr30_delete	1	hg18.chr1	59561	59561	1628	+	panTro2.chrUn	9726743	9726743	1631	+	canFam2.chr30	3357863	3357864	1623	-
+14	canFam2.chr30_delete	11	hg18.chr1	59887	59897	1628	+	panTro2.chrUn	9727069	9727079	1631	+	canFam2.chr30	3358188	3358189	1623	-
+14	canFam2.chr30_delete	5	hg18.chr1	59908	59912	1628	+	panTro2.chrUn	9727090	9727094	1631	+	canFam2.chr30	3358198	3358199	1623	-
+14	canFam2.chr30_delete	6	hg18.chr1	60052	60057	1628	+	panTro2.chrUn	9727234	9727239	1631	+	canFam2.chr30	3358338	3358339	1623	-
+14	canFam2.chr30_delete	4	hg18.chr1	60111	60114	1628	+	panTro2.chrUn	9727293	9727296	1631	+	canFam2.chr30	3358391	3358392	1623	-
+14	canFam2.chr30_delete	2	hg18.chr1	60183	60184	1628	+	panTro2.chrUn	9727365	9727366	1631	+	canFam2.chr30	3358463	3358464	1623	-
+15	canFam2.chr30_delete	4	hg18.chr1	60400	60403	230	+	panTro2.chrUn	9727581	9727584	230	+	canFam2.chr30	3356719	3356720	218	-
+15	canFam2.chr30_delete	8	hg18.chr1	60506	60513	230	+	panTro2.chrUn	9727687	9727694	230	+	canFam2.chr30	3356827	3356828	218	-
+15	canFam2.chr30_delete	10	hg18.chr1	60520	60529	230	+	panTro2.chrUn	9727701	9727710	230	+	canFam2.chr30	3356833	3356834	218	-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Tue Apr 01 10:52:01 2014 -0400
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="bx-python" version="0.7.1">
+      <repository changeset_revision="41eb9d9f667d" name="package_bx_python_0_7" owner="devteam" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="galaxy-ops" version="1.0.0">
+      <repository changeset_revision="4e39032e4ec6" name="package_galaxy_ops_1_0_0" owner="devteam" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>