changeset 0:dc20f447c0e2 draft

Uploaded tool tarball.
author devteam
date Mon, 26 Aug 2013 14:14:08 -0400
parents
children 250151b4d934
files bam_to_sam.py bam_to_sam.xml test-data/bam_to_sam_in1.bam test-data/bam_to_sam_in1.sam test-data/bam_to_sam_in2.bam test-data/bam_to_sam_in2.sam test-data/bam_to_sam_out1.sam test-data/bam_to_sam_out2.sam test-data/bam_to_sam_out3.sam tool_dependencies.xml
diffstat 10 files changed, 280 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bam_to_sam.py	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,129 @@
+#!/usr/bin/env python
+"""
+Converts BAM data to sorted SAM data.
+usage: bam_to_sam.py [options]
+   --input1: SAM file to be converted
+   --output1: output dataset in bam format
+"""
+
+import optparse, os, sys, subprocess, tempfile, shutil
+from galaxy import eggs
+import pkg_resources; pkg_resources.require( "bx-python" )
+from bx.cookbook import doc_optparse
+#from galaxy import util
+
+def stop_err( msg ):
+    sys.stderr.write( '%s\n' % msg )
+    sys.exit()
+
+def __main__():
+    #Parse Command Line
+    parser = optparse.OptionParser()
+    parser.add_option( '', '--input1', dest='input1', help='The input SAM dataset' )
+    parser.add_option( '', '--output1', dest='output1', help='The output BAM dataset' )
+    parser.add_option( '', '--header', dest='header', action='store_true', default=False, help='Write SAM Header' )
+    ( options, args ) = parser.parse_args()
+
+    # output version # of tool
+    try:
+        tmp = tempfile.NamedTemporaryFile().name
+        tmp_stdout = open( tmp, 'wb' )
+        proc = subprocess.Popen( args='samtools 2>&1', shell=True, stdout=tmp_stdout )
+        tmp_stdout.close()
+        returncode = proc.wait()
+        stdout = None
+        for line in open( tmp_stdout.name, 'rb' ):
+            if line.lower().find( 'version' ) >= 0:
+                stdout = line.strip()
+                break
+        if stdout:
+            sys.stdout.write( 'Samtools %s\n' % stdout )
+        else:
+            raise Exception
+    except:
+        sys.stdout.write( 'Could not determine Samtools version\n' )
+
+    tmp_dir = tempfile.mkdtemp( dir='.' )
+
+    try:
+        # exit if input file empty
+        if os.path.getsize( options.input1 ) == 0:
+            raise Exception, 'Initial BAM file empty'
+        # Sort alignments by leftmost coordinates. File <out.prefix>.bam will be created. This command
+        # may also create temporary files <out.prefix>.%d.bam when the whole alignment cannot be fitted
+        # into memory ( controlled by option -m ).
+        tmp_sorted_aligns_file = tempfile.NamedTemporaryFile( dir=tmp_dir )
+        tmp_sorted_aligns_file_base = tmp_sorted_aligns_file.name
+        tmp_sorted_aligns_file_name = '%s.bam' % tmp_sorted_aligns_file.name
+        tmp_sorted_aligns_file.close()
+        command = 'samtools sort %s %s' % ( options.input1, tmp_sorted_aligns_file_base )
+        tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
+        tmp_stderr = open( tmp, 'wb' )
+        proc = subprocess.Popen( args=command, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
+        returncode = proc.wait()
+        tmp_stderr.close()
+        # get stderr, allowing for case where it's very large
+        tmp_stderr = open( tmp, 'rb' )
+        stderr = ''
+        buffsize = 1048576
+        try:
+            while True:
+                stderr += tmp_stderr.read( buffsize )
+                if not stderr or len( stderr ) % buffsize != 0:
+                    break
+        except OverflowError:
+            pass
+        tmp_stderr.close()
+        if returncode != 0:
+            raise Exception, stderr
+        # exit if sorted BAM file empty
+        if os.path.getsize( tmp_sorted_aligns_file_name) == 0:
+            raise Exception, 'Intermediate sorted BAM file empty'
+    except Exception, e:
+        #clean up temp files
+        if os.path.exists( tmp_dir ):
+            shutil.rmtree( tmp_dir )
+        stop_err( 'Error sorting alignments from (%s), %s' % ( options.input1, str( e ) ) )
+
+
+    try:
+        # Extract all alignments from the input BAM file to SAM format ( since no region is specified, all the alignments will be extracted ).
+        if options.header:
+            view_options = "-h"
+        else:
+            view_options = ""
+        command = 'samtools view %s -o %s %s' % ( view_options, options.output1, tmp_sorted_aligns_file_name )
+        tmp = tempfile.NamedTemporaryFile( dir=tmp_dir ).name
+        tmp_stderr = open( tmp, 'wb' )
+        proc = subprocess.Popen( args=command, shell=True, cwd=tmp_dir, stderr=tmp_stderr.fileno() )
+        returncode = proc.wait()
+        tmp_stderr.close()
+        # get stderr, allowing for case where it's very large
+        tmp_stderr = open( tmp, 'rb' )
+        stderr = ''
+        buffsize = 1048576
+        try:
+            while True:
+                stderr += tmp_stderr.read( buffsize )
+                if not stderr or len( stderr ) % buffsize != 0:
+                    break
+        except OverflowError:
+            pass
+        tmp_stderr.close()
+        if returncode != 0:
+            raise Exception, stderr
+    except Exception, e:
+        #clean up temp files
+        if os.path.exists( tmp_dir ):
+            shutil.rmtree( tmp_dir )
+        stop_err( 'Error extracting alignments from (%s), %s' % ( options.input1, str( e ) ) )
+    #clean up temp files
+    if os.path.exists( tmp_dir ):
+        shutil.rmtree( tmp_dir )
+    # check that there are results in the output file
+    if os.path.getsize( options.output1 ) > 0:
+        sys.stdout.write( 'BAM file converted to SAM' )
+    else:
+        stop_err( 'The output file is empty, there may be an error with your input file.' )
+
+if __name__=="__main__": __main__()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bam_to_sam.xml	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,66 @@
+<tool id="bam_to_sam" name="BAM-to-SAM" version="1.0.3">
+  <requirements>
+    <requirement type="package" version="0.1.18">samtools</requirement>
+  </requirements>
+  <description>converts BAM format to SAM format</description>
+  <command interpreter="python">
+    bam_to_sam.py
+      --input1=$input1
+      --output1=$output1
+      $header
+  </command>
+  <inputs>
+    <param name="input1" type="data" format="bam" label="BAM File to Convert" />
+    <param name="header" type="boolean" truevalue="--header" falsevalue="" checked="False" label="Include header in output" />
+  </inputs>
+  <outputs>
+    <data format="sam" name="output1" label="${tool.name} on ${on_string}: converted SAM" />
+  </outputs>
+  <tests>
+    <test>
+      <!--
+      Bam-to-Sam command:
+      samtools view -o bam_to_sam_out1.sam test-data/bam_to_sam_in1.bam
+      bam_to_sam_in1.bam can be created from bam_to_sam_in1.sam
+      -->
+      <param name="input1" value="bam_to_sam_in1.bam" ftype="bam" />
+      <param name="header" value="" />
+      <output name="output1" file="bam_to_sam_out1.sam" sorted="True" />
+    </test>
+    <test>
+      <!--
+      Bam-to-Sam command:
+      samtools view -o bam_to_sam_out2.sam test-data/bam_to_sam_in2.bam
+      bam_to_sam_in2.bam can be created from bam_to_sam_in2.sam
+      -->
+      <param name="input1" value="bam_to_sam_in2.bam" ftype="bam" />
+      <param name="header" value="" />
+      <output name="output1" file="bam_to_sam_out2.sam" sorted="True" />
+    </test>
+    <test>
+      <!--
+      Bam-to-Sam command:
+      samtools view -h -o bam_to_sam_out3.sam test-data/bam_to_sam_in1.bam
+      bam_to_sam_in1.bam can be created from bam_to_sam_in1.sam
+      -->
+      <param name="input1" value="bam_to_sam_in1.bam" ftype="bam" />
+      <param name="header" value="--header" />
+      <output name="output1" file="bam_to_sam_out3.sam" sorted="True" lines_diff="6" /><!-- header param not working in func tests so won't produce correct 6-line header (fine in browser) -->
+    </test>
+  </tests>
+  <help>
+
+**What it does**
+
+This tool uses the SAMTools_ toolkit to produce a SAM file from a BAM file.
+
+.. _SAMTools: http://samtools.sourceforge.net/samtools.shtml
+
+------
+
+**Citation**
+
+For the underlying tool, please cite `Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15;25(16):2078-9. &lt;http://www.ncbi.nlm.nih.gov/pubmed/19505943&gt;`_
+
+  </help>
+</tool>
Binary file test-data/bam_to_sam_in1.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam_to_sam_in1.sam	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,14 @@
+@HD	VN:1.0	SO:coordinate
+@SQ	SN:chr1	LN:101
+@SQ	SN:chr7	LN:404
+@SQ	SN:chr8	LN:202
+@RG	ID:0	SM:Hi,Mom!
+@PG	ID:1	PN:Hey!	VN:2.0
+both_reads_align_clip_marked	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_present_only_first_aligns	89	chr7	1	255	101M	*	0	0	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+read_2_too_many_gaps	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	147	chr7	16	255	101M	=	21	-96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	99	chr7	21	255	101M	=	16	96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_marked	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+read_2_too_many_gaps	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+both_reads_present_only_first_aligns	165	*	0	0	*	chr7	1	0	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
Binary file test-data/bam_to_sam_in2.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam_to_sam_in2.sam	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,25 @@
+@HD	VN:1.0	SO:coordinate
+@SQ	SN:chr1	LN:10001
+@SQ	SN:chr2	LN:100001
+@SQ	SN:chr3	LN:10001
+@SQ	SN:chr4	LN:1001
+@RG	ID:rg1	SM:s1
+@RG	ID:rg2	SM:s3
+bar:record:4	77	chr1	1	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:6	77	chr1	1	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:1	77	chr1	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:3	77	chr1	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:1	141	chr1	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:7	77	chr1	20	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:8	77	chr1	30	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:4	141	chr1	40	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:5	77	chr1	40	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:6	141	chr1	50	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg2
+bar:record:2	77	chr2	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:2	141	chr2	30	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg2
+bar:record:3	141	chr3	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:8	141	chr3	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:5	141	chr3	40	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:9	77	chr4	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:7	141	chr4	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:9	141	chr4	60	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam_to_sam_out1.sam	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,8 @@
+both_reads_align_clip_marked	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_present_only_first_aligns	89	chr7	1	255	101M	*	0	0	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+read_2_too_many_gaps	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	147	chr7	16	255	101M	=	21	-96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	99	chr7	21	255	101M	=	16	96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_marked	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+read_2_too_many_gaps	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+both_reads_present_only_first_aligns	165	*	0	0	*	chr7	1	0	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam_to_sam_out2.sam	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,18 @@
+bar:record:4	77	chr1	1	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:6	77	chr1	1	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:1	77	chr1	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:3	77	chr1	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:1	141	chr1	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:7	77	chr1	20	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:8	77	chr1	30	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:4	141	chr1	40	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:5	77	chr1	40	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg2
+bar:record:6	141	chr1	50	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg2
+bar:record:2	77	chr2	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:2	141	chr2	30	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg2
+bar:record:3	141	chr3	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:8	141	chr3	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:5	141	chr3	40	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:9	77	chr4	10	0	*	*	0	0	AAAAAAAAAAAAA	1111111111111	RG:Z:rg1
+bar:record:7	141	chr4	20	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
+bar:record:9	141	chr4	60	0	*	*	0	0	CCCCCCCCCCCCC	2222222222222	RG:Z:rg1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bam_to_sam_out3.sam	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,14 @@
+@HD	VN:1.0	SO:coordinate
+@SQ	SN:chr1	LN:101
+@SQ	SN:chr7	LN:404
+@SQ	SN:chr8	LN:202
+@RG	ID:0	SM:Hi,Mom!
+@PG	ID:1	PN:Hey!	VN:2.0
+both_reads_align_clip_marked	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_present_only_first_aligns	89	chr7	1	255	101M	*	0	0	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+read_2_too_many_gaps	83	chr7	1	255	101M	=	302	201	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	147	chr7	16	255	101M	=	21	-96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_adapter	99	chr7	21	255	101M	=	16	96	CAACAGAAGCNGGNATCTGTGTTTGTGTTTCGGATTTCCTGCTGAANNGNTTNTCGNNTCNNNNNNNNATCCCGATTTCNTTCCGCAGCTNACCTCCCAAN	)'.*.+2,))&&'&*/)-&*-)&.-)&)&),/-&&..)./.,.).*&&,&.&&-)&&&0*&&&&&&&&/32/,01460&&/6/*0*/2/283//36868/&	RG:Z:0
+both_reads_align_clip_marked	163	chr7	302	255	101M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+read_2_too_many_gaps	163	chr7	302	255	10M1D10M5I76M	=	1	-201	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
+both_reads_present_only_first_aligns	165	*	0	0	*	chr7	1	0	NCGCGGCATCNCGATTTCTTTCCGCAGCTAACCTCCCGACAGATCGGCAGCGCGTCGTGTAGGTTATTATGGTACATCTTGTCGTGCGGCNAGAGCATACA	&/15445666651/566666553+2/14/&/555512+3/)-'/-&-'*+))*''13+3)'//++''/'))/3+&*5++)&'2+&+/*&-&&*)&-./1'1	RG:Z:0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Mon Aug 26 14:14:08 2013 -0400
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="samtools" version="0.1.18">
+        <repository changeset_revision="a7936f4ea405" name="package_samtools_0_1_18" owner="devteam" toolshed="http://toolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>