# HG changeset patch
# User devteam
# Date 1396357903 14400
# Node ID 332a7de8f98a164c106d861f598b9695e017b4ed
Imported from capsule None
diff -r 000000000000 -r 332a7de8f98a analyze_covariates.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/analyze_covariates.xml Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,101 @@
+
+ - draw plots
+
+ gatk
+
+
+ gatk_macros.xml
+
+ gatk_wrapper.py
+ --max_jvm_heap_fraction "1"
+ --stdout "${output_log}"
+ --html_report_from_directory "${output_html}" "${output_html.files_path}"
+ -p 'java
+ -jar "${JAVA_JAR_PATH}/AnalyzeCovariates.jar"
+ -recalFile "${input_recal}"
+ -outputDir "${output_html.files_path}"
+ ##--num_threads 4 ##hard coded, for now
+ ##-log "${output_log}"
+ ##-Rscript,--path_to_Rscript path_to_Rscript; on path is good enough
+ #if $analysis_param_type.analysis_param_type_selector == "advanced":
+ --ignoreQ "${analysis_param_type.ignore_q}"
+ --numRG "${analysis_param_type.num_read_groups}"
+ --max_quality_score "${analysis_param_type.max_quality_score}"
+ --max_histogram_value "${analysis_param_type.max_histogram_value}"
+ ${analysis_param_type.do_indel_quality}
+ #end if
+ '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**What it does**
+
+Create collapsed versions of the recal csv file and call R scripts to plot residual error versus the various covariates.
+
+For more information on base quality score recalibration using the GATK, see this `tool specific page <http://www.broadinstitute.org/gsa/wiki/index.php/Base_quality_score_recalibration>`_.
+
+To learn about best practices for variant detection using GATK, see this `overview <http://www.broadinstitute.org/gsa/wiki/index.php/Best_Practice_Variant_Detection_with_the_GATK_v3>`_.
+
+If you encounter errors, please view the `GATK FAQ <http://www.broadinstitute.org/gsa/wiki/index.php/Frequently_Asked_Questions>`_.
+
+------
+
+**Inputs**
+
+GenomeAnalysisTK: AnalyzeCovariates accepts an recal CSV file.
+
+
+**Outputs**
+
+The output is in CSV and HTML files with links to PDF graphs and a data files.
+
+
+Go `here <http://www.broadinstitute.org/gsa/wiki/index.php/Input_files_for_the_GATK>`_ for details on GATK file formats.
+
+-------
+
+**Settings**::
+
+ recal_file The input recal csv file to analyze
+ output_dir The directory in which to output all the plots and intermediate data files
+ path_to_Rscript The path to your implementation of Rscript. For Broad users this is maybe /broad/tools/apps/R-2.6.0/bin/Rscript
+ path_to_resources Path to resources folder holding the Sting R scripts.
+ ignoreQ Ignore bases with reported quality less than this number.
+ numRG Only process N read groups. Default value: -1 (process all read groups)
+ max_quality_score The integer value at which to cap the quality scores, default is 50
+ max_histogram_value If supplied, this value will be the max value of the histogram plots
+ do_indel_quality If supplied, this value will be the max value of the histogram plots
+
+@CITATION_SECTION@
+
+
diff -r 000000000000 -r 332a7de8f98a gatk_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gatk_macros.xml Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,305 @@
+
+
+ ##start standard gatk options
+ #if $gatk_param_type.gatk_param_type_selector == "advanced":
+ #for $pedigree in $gatk_param_type.pedigree:
+ -p '--pedigree "${pedigree.pedigree_file}"'
+ #end for
+ #for $pedigree_string in $gatk_param_type.pedigree_string_repeat:
+ -p '--pedigreeString "${pedigree_string.pedigree_string}"'
+ #end for
+ -p '--pedigreeValidationType "${gatk_param_type.pedigree_validation_type}"'
+ #for $read_filter in $gatk_param_type.read_filter:
+ -p '--read_filter "${read_filter.read_filter_type.read_filter_type_selector}"
+ ###raise Exception( str( dir( $read_filter ) ) )
+ #for $name, $param in $read_filter.read_filter_type.iteritems():
+ #if $name not in [ "__current_case__", "read_filter_type_selector" ]:
+ #if hasattr( $param.input, 'truevalue' ):
+ ${param}
+ #else:
+ --${name} "${param}"
+ #end if
+ #end if
+ #end for
+ '
+ #end for
+ #for $interval_count, $input_intervals in enumerate( $gatk_param_type.input_interval_repeat ):
+ -d "--intervals" "${input_intervals.input_intervals}" "${input_intervals.input_intervals.ext}" "input_intervals_${interval_count}"
+ #end for
+
+ #for $interval_count, $input_intervals in enumerate( $gatk_param_type.input_exclude_interval_repeat ):
+ -d "--excludeIntervals" "${input_intervals.input_exclude_intervals}" "${input_intervals.input_exclude_intervals.ext}" "input_exlude_intervals_${interval_count}"
+ #end for
+
+ -p '--interval_set_rule "${gatk_param_type.interval_set_rule}"'
+
+ -p '--downsampling_type "${gatk_param_type.downsampling_type.downsampling_type_selector}"'
+ #if str( $gatk_param_type.downsampling_type.downsampling_type_selector ) != "NONE":
+ -p '--${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_type_selector} "${gatk_param_type.downsampling_type.downsample_to_type.downsample_to_value}"'
+ #end if
+ -p '
+ --baq "${gatk_param_type.baq}"
+ --baqGapOpenPenalty "${gatk_param_type.baq_gap_open_penalty}"
+ ${gatk_param_type.use_original_qualities}
+ --defaultBaseQualities "${gatk_param_type.default_base_qualities}"
+ --validation_strictness "${gatk_param_type.validation_strictness}"
+ --interval_merging "${gatk_param_type.interval_merging}"
+ ${gatk_param_type.disable_experimental_low_memory_sharding}
+ ${gatk_param_type.non_deterministic_random_seed}
+ '
+ #for $rg_black_list_count, $rg_black_list in enumerate( $gatk_param_type.read_group_black_list_repeat ):
+ #if $rg_black_list.read_group_black_list_type.read_group_black_list_type_selector == "file":
+ -d "--read_group_black_list" "${rg_black_list.read_group_black_list_type.read_group_black_list}" "txt" "input_read_group_black_list_${rg_black_list_count}"
+ #else
+ -p '--read_group_black_list "${rg_black_list.read_group_black_list_type.read_group_black_list}"'
+ #end if
+ #end for
+ #end if
+
+ #if str( $reference_source.reference_source_selector ) == "history":
+ -d "-R" "${reference_source.ref_file}" "${reference_source.ref_file.ext}" "gatk_input"
+ #end if
+ ##end standard gatk options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ------
+
+**Citation**
+
+For the underlying tool, please cite `DePristo MA, Banks E, Poplin R, Garimella KV, Maguire JR, Hartl C, Philippakis AA, del Angel G, Rivas MA, Hanna M, McKenna A, Fennell TJ, Kernytsky AM, Sivachenko AY, Cibulskis K, Gabriel SB, Altshuler D, Daly MJ. A framework for variation discovery and genotyping using next-generation DNA sequencing data. Nat Genet. 2011 May;43(5):491-8. <http://www.ncbi.nlm.nih.gov/pubmed/21478889>`_
+
+If you use this tool in Galaxy, please cite Blankenberg D, et al. *In preparation.*
+
+
+
\ No newline at end of file
diff -r 000000000000 -r 332a7de8f98a gatk_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gatk_wrapper.py Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,126 @@
+#!/usr/bin/env python
+#Dan Blankenberg
+
+"""
+A wrapper script for running the GenomeAnalysisTK.jar commands.
+"""
+
+import sys, optparse, os, tempfile, subprocess, shutil
+from binascii import unhexlify
+from string import Template
+
+GALAXY_EXT_TO_GATK_EXT = { 'gatk_interval':'intervals', 'bam_index':'bam.bai', 'gatk_dbsnp':'dbSNP', 'picard_interval_list':'interval_list' } #items not listed here will use the galaxy extension as-is
+GALAXY_EXT_TO_GATK_FILE_TYPE = GALAXY_EXT_TO_GATK_EXT #for now, these are the same, but could be different if needed
+DEFAULT_GATK_PREFIX = "gatk_file"
+CHUNK_SIZE = 2**20 #1mb
+
+
+def cleanup_before_exit( tmp_dir ):
+ if tmp_dir and os.path.exists( tmp_dir ):
+ shutil.rmtree( tmp_dir )
+
+def gatk_filename_from_galaxy( galaxy_filename, galaxy_ext, target_dir = None, prefix = None ):
+ suffix = GALAXY_EXT_TO_GATK_EXT.get( galaxy_ext, galaxy_ext )
+ if prefix is None:
+ prefix = DEFAULT_GATK_PREFIX
+ if target_dir is None:
+ target_dir = os.getcwd()
+ gatk_filename = os.path.join( target_dir, "%s.%s" % ( prefix, suffix ) )
+ os.symlink( galaxy_filename, gatk_filename )
+ return gatk_filename
+
+def gatk_filetype_argument_substitution( argument, galaxy_ext ):
+ return argument % dict( file_type = GALAXY_EXT_TO_GATK_FILE_TYPE.get( galaxy_ext, galaxy_ext ) )
+
+def open_file_from_option( filename, mode = 'rb' ):
+ if filename:
+ return open( filename, mode = mode )
+ return None
+
+def html_report_from_directory( html_out, dir ):
+ html_out.write( '\n
\nGalaxy - GATK Output\n\n\n\n\n' )
+ for fname in sorted( os.listdir( dir ) ):
+ html_out.write( '- %s
\n' % ( fname, fname ) )
+ html_out.write( '
\n\n\n' )
+
+def index_bam_files( bam_filenames, tmp_dir ):
+ for bam_filename in bam_filenames:
+ bam_index_filename = "%s.bai" % bam_filename
+ if not os.path.exists( bam_index_filename ):
+ #need to index this bam file
+ stderr_name = tempfile.NamedTemporaryFile( prefix = "bam_index_stderr" ).name
+ command = 'samtools index %s %s' % ( bam_filename, bam_index_filename )
+ proc = subprocess.Popen( args=command, shell=True, stderr=open( stderr_name, 'wb' ) )
+ return_code = proc.wait()
+ if return_code:
+ for line in open( stderr_name ):
+ print >> sys.stderr, line
+ os.unlink( stderr_name ) #clean up
+ cleanup_before_exit( tmp_dir )
+ raise Exception( "Error indexing BAM file" )
+ os.unlink( stderr_name ) #clean up
+
+def __main__():
+ #Parse Command Line
+ parser = optparse.OptionParser()
+ parser.add_option( '-p', '--pass_through', dest='pass_through_options', action='append', type="string", help='These options are passed through directly to GATK, without any modification.' )
+ parser.add_option( '-o', '--pass_through_options', dest='pass_through_options_encoded', action='append', type="string", help='These options are passed through directly to GATK, with decoding from binascii.unhexlify.' )
+ parser.add_option( '-d', '--dataset', dest='datasets', action='append', type="string", nargs=4, help='"-argument" "original_filename" "galaxy_filetype" "name_prefix"' )
+ parser.add_option( '', '--max_jvm_heap', dest='max_jvm_heap', action='store', type="string", default=None, help='If specified, the maximum java virtual machine heap size will be set to the provide value.' )
+ parser.add_option( '', '--max_jvm_heap_fraction', dest='max_jvm_heap_fraction', action='store', type="int", default=None, help='If specified, the maximum java virtual machine heap size will be set to the provide value as a fraction of total physical memory.' )
+ parser.add_option( '', '--stdout', dest='stdout', action='store', type="string", default=None, help='If specified, the output of stdout will be written to this file.' )
+ parser.add_option( '', '--stderr', dest='stderr', action='store', type="string", default=None, help='If specified, the output of stderr will be written to this file.' )
+ parser.add_option( '', '--html_report_from_directory', dest='html_report_from_directory', action='append', type="string", nargs=2, help='"Target HTML File" "Directory"')
+ (options, args) = parser.parse_args()
+
+ tmp_dir = tempfile.mkdtemp( prefix='tmp-gatk-' )
+ if options.pass_through_options:
+ cmd = ' '.join( options.pass_through_options )
+ else:
+ cmd = ''
+ if options.pass_through_options_encoded:
+ cmd = '%s %s' % ( cmd, ' '.join( map( unhexlify, options.pass_through_options_encoded ) ) )
+ if options.max_jvm_heap is not None:
+ cmd = cmd.replace( 'java ', 'java -Xmx%s ' % ( options.max_jvm_heap ), 1 )
+ elif options.max_jvm_heap_fraction is not None:
+ cmd = cmd.replace( 'java ', 'java -XX:DefaultMaxRAMFraction=%s -XX:+UseParallelGC ' % ( options.max_jvm_heap_fraction ), 1 )
+ bam_filenames = []
+ if options.datasets:
+ for ( dataset_arg, filename, galaxy_ext, prefix ) in options.datasets:
+ gatk_filename = gatk_filename_from_galaxy( filename, galaxy_ext, target_dir = tmp_dir, prefix = prefix )
+ if dataset_arg:
+ cmd = '%s %s "%s"' % ( cmd, gatk_filetype_argument_substitution( dataset_arg, galaxy_ext ), gatk_filename )
+ if galaxy_ext == "bam":
+ bam_filenames.append( gatk_filename )
+ index_bam_files( bam_filenames, tmp_dir )
+ #set up stdout and stderr output options
+ stdout = open_file_from_option( options.stdout, mode = 'wb' )
+ stderr = open_file_from_option( options.stderr, mode = 'wb' )
+ #if no stderr file is specified, we'll use our own
+ if stderr is None:
+ stderr = tempfile.NamedTemporaryFile( prefix="gatk-stderr-", dir=tmp_dir )
+
+ proc = subprocess.Popen( args=cmd, stdout=stdout, stderr=stderr, shell=True, cwd=tmp_dir )
+ return_code = proc.wait()
+
+ if return_code:
+ stderr_target = sys.stderr
+ else:
+ stderr_target = sys.stdout
+ stderr.flush()
+ stderr.seek(0)
+ while True:
+ chunk = stderr.read( CHUNK_SIZE )
+ if chunk:
+ stderr_target.write( chunk )
+ else:
+ break
+ stderr.close()
+ #generate html reports
+ if options.html_report_from_directory:
+ for ( html_filename, html_dir ) in options.html_report_from_directory:
+ html_report_from_directory( open( html_filename, 'wb' ), html_dir )
+
+ cleanup_before_exit( tmp_dir )
+
+if __name__=="__main__": __main__()
diff -r 000000000000 -r 332a7de8f98a test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.html Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,34 @@
+
+
+Galaxy - GATK Output
+
+
+
+
+
+
diff -r 000000000000 -r 332a7de8f98a test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.log.contains
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gatk/gatk_analyze_covariates/gatk_analyze_covariates_out_1.log.contains Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,9 @@
+Program Name: org.broadinstitute.sting.analyzecovariates.AnalyzeCovariates
+Reading in input csv file...
+...Done!
+Writing out intermediate tables for R...
+Writing out data tables for read group: A Fake phiX Sample with 340 observations and aggregate residual error = -9.136
+...Done!
+Calling analysis R scripts and writing out figures...
+Analyzing read group: A Fake phiX Sample
+...Done!
diff -r 000000000000 -r 332a7de8f98a test-data/gatk/gatk_count_covariates/gatk_count_covariates_out_1.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gatk/gatk_count_covariates/gatk_count_covariates_out_1.csv Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,246 @@
+# Counted Sites 41
+# Counted Bases 340
+# Skipped Sites 2
+# Fraction Skipped 1 / 21 bp
+ReadGroup,QualityScore,Cycle,Dinuc,Homopolymer,MinimumNQS,Position,nObservations,nMismatches,Qempirical
+A Fake phiX Sample,26,1,NN,0,26,0,9,0,40
+A Fake phiX Sample,26,1,NN,1,26,0,1,0,40
+A Fake phiX Sample,26,2,AG,0,26,1,1,0,40
+A Fake phiX Sample,26,2,CC,0,26,1,1,0,40
+A Fake phiX Sample,26,2,CG,0,26,1,3,0,40
+A Fake phiX Sample,26,2,GC,0,26,1,2,0,40
+A Fake phiX Sample,26,2,GC,1,26,1,1,0,40
+A Fake phiX Sample,26,2,GT,0,26,1,1,0,40
+A Fake phiX Sample,26,2,TG,1,26,1,1,0,40
+A Fake phiX Sample,26,3,CC,0,26,2,1,0,40
+A Fake phiX Sample,26,3,CG,0,26,2,3,0,40
+A Fake phiX Sample,26,3,GC,0,26,2,1,0,40
+A Fake phiX Sample,26,3,GC,1,26,2,2,0,40
+A Fake phiX Sample,26,3,GG,0,26,2,1,0,40
+A Fake phiX Sample,26,3,GT,0,26,2,1,0,40
+A Fake phiX Sample,26,3,TG,1,26,2,1,0,40
+A Fake phiX Sample,26,4,CC,0,26,3,2,0,40
+A Fake phiX Sample,26,4,CG,0,26,3,2,0,40
+A Fake phiX Sample,26,4,GA,0,26,3,1,0,40
+A Fake phiX Sample,26,4,GC,1,26,3,2,0,40
+A Fake phiX Sample,26,4,GG,0,26,3,1,0,40
+A Fake phiX Sample,26,4,GT,0,26,3,1,0,40
+A Fake phiX Sample,26,4,TG,1,26,3,1,0,40
+A Fake phiX Sample,26,5,AT,0,26,4,1,0,40
+A Fake phiX Sample,26,5,CC,0,26,4,2,0,40
+A Fake phiX Sample,26,5,CG,0,26,4,2,0,40
+A Fake phiX Sample,26,5,GA,0,26,4,1,0,40
+A Fake phiX Sample,26,5,GC,1,26,4,1,0,40
+A Fake phiX Sample,26,5,GG,0,26,4,1,0,40
+A Fake phiX Sample,26,5,GT,0,26,4,1,0,40
+A Fake phiX Sample,26,5,TG,1,26,4,1,0,40
+A Fake phiX Sample,26,6,AT,0,26,5,1,0,40
+A Fake phiX Sample,26,6,CC,0,26,5,1,0,40
+A Fake phiX Sample,26,6,CG,0,26,5,2,0,40
+A Fake phiX Sample,26,6,GA,0,26,5,1,0,40
+A Fake phiX Sample,26,6,GG,0,26,5,1,0,40
+A Fake phiX Sample,26,6,GT,0,26,5,2,0,40
+A Fake phiX Sample,26,6,TG,0,26,5,1,0,40
+A Fake phiX Sample,26,6,TG,1,26,5,1,0,40
+A Fake phiX Sample,26,7,AT,0,26,6,1,0,40
+A Fake phiX Sample,26,7,CG,0,26,6,1,0,40
+A Fake phiX Sample,26,7,GA,0,26,6,2,1,3
+A Fake phiX Sample,26,7,GG,0,26,6,1,0,40
+A Fake phiX Sample,26,7,GT,0,26,6,2,0,40
+A Fake phiX Sample,26,7,TG,0,26,6,1,0,40
+A Fake phiX Sample,26,7,TG,1,26,6,2,0,40
+A Fake phiX Sample,26,8,AC,0,26,7,1,0,40
+A Fake phiX Sample,26,8,AT,0,26,7,1,0,40
+A Fake phiX Sample,26,8,GA,0,26,7,2,1,3
+A Fake phiX Sample,26,8,GG,0,26,7,2,0,40
+A Fake phiX Sample,26,8,GT,0,26,7,1,0,40
+A Fake phiX Sample,26,8,TG,0,26,7,1,0,40
+A Fake phiX Sample,26,8,TG,1,26,7,2,0,40
+A Fake phiX Sample,26,9,AC,0,26,8,1,0,40
+A Fake phiX Sample,26,9,AT,0,26,8,1,0,40
+A Fake phiX Sample,26,9,CT,0,26,8,1,0,40
+A Fake phiX Sample,26,9,GA,0,26,8,3,1,5
+A Fake phiX Sample,26,9,GG,0,26,8,2,0,40
+A Fake phiX Sample,26,9,TG,0,26,8,1,0,40
+A Fake phiX Sample,26,9,TG,1,26,8,1,0,40
+A Fake phiX Sample,26,10,AC,0,26,9,1,0,40
+A Fake phiX Sample,26,10,AT,0,26,9,2,0,40
+A Fake phiX Sample,26,10,CT,0,26,9,1,0,40
+A Fake phiX Sample,26,10,GA,0,26,9,3,1,5
+A Fake phiX Sample,26,10,GG,0,26,9,1,0,40
+A Fake phiX Sample,26,10,TG,0,26,9,2,0,40
+A Fake phiX Sample,26,11,AC,0,26,10,1,0,40
+A Fake phiX Sample,26,11,AT,0,26,10,2,0,40
+A Fake phiX Sample,26,11,CT,0,26,10,1,0,40
+A Fake phiX Sample,26,11,GA,0,26,10,3,1,5
+A Fake phiX Sample,26,11,TG,0,26,10,3,0,40
+A Fake phiX Sample,26,12,AC,0,26,11,1,0,40
+A Fake phiX Sample,26,12,AC,1,26,11,1,0,40
+A Fake phiX Sample,26,12,AT,0,26,11,1,0,40
+A Fake phiX Sample,26,12,CT,0,26,11,1,0,40
+A Fake phiX Sample,26,12,GA,0,26,11,2,1,3
+A Fake phiX Sample,26,12,GC,1,26,11,1,0,40
+A Fake phiX Sample,26,12,TG,0,26,11,3,0,40
+A Fake phiX Sample,26,13,AC,0,26,12,1,0,40
+A Fake phiX Sample,26,13,AC,1,26,12,1,0,40
+A Fake phiX Sample,26,13,CC,0,26,12,2,0,40
+A Fake phiX Sample,26,13,CT,0,26,12,1,0,40
+A Fake phiX Sample,26,13,GA,0,26,12,2,1,3
+A Fake phiX Sample,26,13,GC,1,26,12,1,0,40
+A Fake phiX Sample,26,13,TG,0,26,12,2,0,40
+A Fake phiX Sample,26,14,AC,0,26,13,1,0,40
+A Fake phiX Sample,26,14,AC,1,26,13,1,0,40
+A Fake phiX Sample,26,14,CC,0,26,13,2,0,40
+A Fake phiX Sample,26,14,CG,0,26,13,1,0,40
+A Fake phiX Sample,26,14,CT,0,26,13,2,0,40
+A Fake phiX Sample,26,14,GA,0,26,13,1,0,40
+A Fake phiX Sample,26,14,GC,1,26,13,1,0,40
+A Fake phiX Sample,26,14,TG,0,26,13,1,0,40
+A Fake phiX Sample,26,15,AC,1,26,14,1,0,40
+A Fake phiX Sample,26,15,CC,0,26,14,2,0,40
+A Fake phiX Sample,26,15,CG,0,26,14,1,0,40
+A Fake phiX Sample,26,15,CT,0,26,14,2,0,40
+A Fake phiX Sample,26,15,GA,0,26,14,1,0,40
+A Fake phiX Sample,26,15,GT,0,26,14,1,0,40
+A Fake phiX Sample,26,15,TG,0,26,14,2,0,40
+A Fake phiX Sample,26,16,AC,1,26,15,1,0,40
+A Fake phiX Sample,26,16,CC,0,26,15,1,0,40
+A Fake phiX Sample,26,16,CG,0,26,15,1,0,40
+A Fake phiX Sample,26,16,CT,0,26,15,1,0,40
+A Fake phiX Sample,26,16,GA,0,26,15,2,0,40
+A Fake phiX Sample,26,16,GT,0,26,15,1,0,40
+A Fake phiX Sample,26,16,TA,0,26,15,1,0,40
+A Fake phiX Sample,26,16,TG,0,26,15,2,0,40
+A Fake phiX Sample,26,17,AC,1,26,16,3,0,40
+A Fake phiX Sample,26,17,CC,0,26,16,1,0,40
+A Fake phiX Sample,26,17,CG,0,26,16,1,0,40
+A Fake phiX Sample,26,17,GA,0,26,16,2,0,40
+A Fake phiX Sample,26,17,GT,0,26,16,1,0,40
+A Fake phiX Sample,26,17,TA,0,26,16,1,0,40
+A Fake phiX Sample,26,17,TG,0,26,16,1,0,40
+A Fake phiX Sample,26,18,AC,1,26,17,3,0,40
+A Fake phiX Sample,26,18,CC,0,26,17,3,0,40
+A Fake phiX Sample,26,18,CG,0,26,17,1,0,40
+A Fake phiX Sample,26,18,GA,0,26,17,1,0,40
+A Fake phiX Sample,26,18,GT,0,26,17,1,0,40
+A Fake phiX Sample,26,18,TA,0,26,17,1,0,40
+A Fake phiX Sample,26,19,AC,1,26,18,2,0,40
+A Fake phiX Sample,26,19,CC,0,26,18,3,0,40
+A Fake phiX Sample,26,19,CG,0,26,18,3,0,40
+A Fake phiX Sample,26,19,GT,0,26,18,1,0,40
+A Fake phiX Sample,26,19,TA,0,26,18,1,0,40
+A Fake phiX Sample,26,20,AC,1,26,19,1,0,40
+A Fake phiX Sample,26,20,CC,0,26,19,2,0,40
+A Fake phiX Sample,26,20,CG,0,26,19,3,0,40
+A Fake phiX Sample,26,20,GA,0,26,19,1,0,40
+A Fake phiX Sample,26,20,GT,0,26,19,2,0,40
+A Fake phiX Sample,26,20,TA,0,26,19,1,0,40
+A Fake phiX Sample,26,21,AC,1,26,20,1,0,40
+A Fake phiX Sample,26,21,AG,1,26,20,1,0,40
+A Fake phiX Sample,26,21,CC,0,26,20,1,0,40
+A Fake phiX Sample,26,21,CG,0,26,20,2,0,40
+A Fake phiX Sample,26,21,GA,0,26,20,1,0,40
+A Fake phiX Sample,26,21,GT,0,26,20,2,0,40
+A Fake phiX Sample,26,21,TA,0,26,20,2,0,40
+A Fake phiX Sample,26,22,AC,1,26,21,2,0,40
+A Fake phiX Sample,26,22,AG,1,26,21,1,0,40
+A Fake phiX Sample,26,22,CC,0,26,21,1,0,40
+A Fake phiX Sample,26,22,CG,0,26,21,1,0,40
+A Fake phiX Sample,26,22,GA,0,26,21,1,0,40
+A Fake phiX Sample,26,22,GG,0,26,21,1,0,40
+A Fake phiX Sample,26,22,GT,0,26,21,1,0,40
+A Fake phiX Sample,26,22,TA,0,26,21,2,0,40
+A Fake phiX Sample,26,23,AC,1,26,22,2,0,40
+A Fake phiX Sample,26,23,AG,1,26,22,1,0,40
+A Fake phiX Sample,26,23,CC,0,26,22,2,0,40
+A Fake phiX Sample,26,23,CG,0,26,22,1,0,40
+A Fake phiX Sample,26,23,GA,0,26,22,1,0,40
+A Fake phiX Sample,26,23,GC,0,26,22,1,0,40
+A Fake phiX Sample,26,23,GG,0,26,22,1,0,40
+A Fake phiX Sample,26,23,TA,0,26,22,1,0,40
+A Fake phiX Sample,26,24,AC,1,26,23,1,0,40
+A Fake phiX Sample,26,24,AG,1,26,23,1,0,40
+A Fake phiX Sample,26,24,CC,0,26,23,2,0,40
+A Fake phiX Sample,26,24,CG,0,26,23,2,0,40
+A Fake phiX Sample,26,24,CT,0,26,23,1,0,40
+A Fake phiX Sample,26,24,GA,0,26,23,1,0,40
+A Fake phiX Sample,26,24,GC,0,26,23,1,0,40
+A Fake phiX Sample,26,24,GG,0,26,23,1,0,40
+A Fake phiX Sample,26,25,AG,1,26,24,1,0,40
+A Fake phiX Sample,26,25,CC,0,26,24,1,0,40
+A Fake phiX Sample,26,25,CG,0,26,24,2,0,40
+A Fake phiX Sample,26,25,CT,0,26,24,1,0,40
+A Fake phiX Sample,26,25,GA,0,26,24,2,0,40
+A Fake phiX Sample,26,25,GC,0,26,24,1,0,40
+A Fake phiX Sample,26,25,GG,0,26,24,1,0,40
+A Fake phiX Sample,26,25,TA,1,26,24,1,0,40
+A Fake phiX Sample,26,26,AG,1,26,25,2,0,40
+A Fake phiX Sample,26,26,CG,0,26,25,1,0,40
+A Fake phiX Sample,26,26,CT,0,26,25,1,0,40
+A Fake phiX Sample,26,26,GA,0,26,25,2,0,40
+A Fake phiX Sample,26,26,GC,0,26,25,1,0,40
+A Fake phiX Sample,26,26,GG,0,26,25,1,0,40
+A Fake phiX Sample,26,26,TA,1,26,25,1,0,40
+A Fake phiX Sample,26,27,AC,2,26,26,1,0,40
+A Fake phiX Sample,26,27,AG,1,26,26,2,0,40
+A Fake phiX Sample,26,27,CT,0,26,26,1,0,40
+A Fake phiX Sample,26,27,GA,0,26,26,1,0,40
+A Fake phiX Sample,26,27,GC,0,26,26,1,0,40
+A Fake phiX Sample,26,27,GG,0,26,26,2,0,40
+A Fake phiX Sample,26,27,TA,1,26,26,1,0,40
+A Fake phiX Sample,26,28,AC,2,26,27,1,0,40
+A Fake phiX Sample,26,28,AG,1,26,27,1,0,40
+A Fake phiX Sample,26,28,CC,1,26,27,1,0,40
+A Fake phiX Sample,26,28,CT,0,26,27,1,0,40
+A Fake phiX Sample,26,28,GC,0,26,27,2,0,40
+A Fake phiX Sample,26,28,GG,0,26,27,2,0,40
+A Fake phiX Sample,26,28,TA,1,26,27,1,0,40
+A Fake phiX Sample,26,29,AC,2,26,28,1,0,40
+A Fake phiX Sample,26,29,CC,1,26,28,1,0,40
+A Fake phiX Sample,26,29,CT,0,26,28,2,0,40
+A Fake phiX Sample,26,29,GC,0,26,28,2,0,40
+A Fake phiX Sample,26,29,GG,0,26,28,1,0,40
+A Fake phiX Sample,26,29,TA,1,26,28,1,0,40
+A Fake phiX Sample,26,30,AC,2,26,29,1,0,40
+A Fake phiX Sample,26,30,CC,1,26,29,1,0,40
+A Fake phiX Sample,26,30,CT,0,26,29,3,0,40
+A Fake phiX Sample,26,30,GC,0,26,29,1,0,40
+A Fake phiX Sample,26,30,TA,1,26,29,2,0,40
+A Fake phiX Sample,26,31,AC,2,26,30,1,0,40
+A Fake phiX Sample,26,31,CC,1,26,30,1,0,40
+A Fake phiX Sample,26,31,CT,0,26,30,2,0,40
+A Fake phiX Sample,26,31,TA,1,26,30,3,0,40
+A Fake phiX Sample,26,32,AA,0,26,31,1,0,40
+A Fake phiX Sample,26,32,AC,1,26,31,1,0,40
+A Fake phiX Sample,26,32,AC,2,26,31,1,0,40
+A Fake phiX Sample,26,32,CC,1,26,31,1,0,40
+A Fake phiX Sample,26,32,CT,0,26,31,1,0,40
+A Fake phiX Sample,26,32,TA,1,26,31,2,0,40
+A Fake phiX Sample,26,33,AA,0,26,32,1,0,40
+A Fake phiX Sample,26,33,AC,1,26,32,1,0,40
+A Fake phiX Sample,26,33,AC,2,26,32,1,0,40
+A Fake phiX Sample,26,33,AT,0,26,32,1,0,40
+A Fake phiX Sample,26,33,CC,1,26,32,1,0,40
+A Fake phiX Sample,26,33,CT,0,26,32,1,0,40
+A Fake phiX Sample,26,33,TA,1,26,32,1,0,40
+A Fake phiX Sample,26,34,AA,0,26,33,1,0,40
+A Fake phiX Sample,26,34,AC,1,26,33,1,0,40
+A Fake phiX Sample,26,34,AT,0,26,33,1,0,40
+A Fake phiX Sample,26,34,CC,1,26,33,1,0,40
+A Fake phiX Sample,26,34,CT,0,26,33,2,0,40
+A Fake phiX Sample,26,34,TA,1,26,33,1,0,40
+A Fake phiX Sample,26,34,TG,0,26,33,1,0,40
+A Fake phiX Sample,26,35,AA,0,26,34,1,0,40
+A Fake phiX Sample,26,35,AT,0,26,34,1,0,40
+A Fake phiX Sample,26,35,CT,0,26,34,2,0,40
+A Fake phiX Sample,26,35,GA,0,26,34,1,0,40
+A Fake phiX Sample,26,35,TA,1,26,34,2,0,40
+A Fake phiX Sample,26,35,TG,0,26,34,1,0,40
+A Fake phiX Sample,26,36,AA,0,26,35,2,0,40
+A Fake phiX Sample,26,36,AG,0,26,35,1,0,40
+A Fake phiX Sample,26,36,AT,0,26,35,1,0,40
+A Fake phiX Sample,26,36,CT,0,26,35,2,0,40
+A Fake phiX Sample,26,36,GA,0,26,35,1,0,40
+A Fake phiX Sample,26,36,TA,0,26,35,2,0,40
+A Fake phiX Sample,26,36,TG,0,26,35,1,0,40
+EOF
diff -r 000000000000 -r 332a7de8f98a tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Tue Apr 01 09:11:43 2014 -0400
@@ -0,0 +1,6 @@
+
+
+
+
+
+