Mercurial > repos > devteam > bowtie_wrappers
comparison bowtie_wrapper.py @ 5:306077e393d4 draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/bowtie_wrappers commit b2e1043bf4db38be490fec298a1829f8e4a1c48e
author | devteam |
---|---|
date | Thu, 18 Aug 2016 10:20:09 -0400 |
parents | df86f29bedee |
children | 2c811e06006a |
comparison
equal
deleted
inserted
replaced
4:df86f29bedee | 5:306077e393d4 |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 | 2 |
3 """ | 3 """ |
4 Runs Bowtie on single-end or paired-end data. | 4 Runs Bowtie on single-end or paired-end data. |
5 For use with Bowtie v. 0.12.7 | |
6 | 5 |
7 usage: bowtie_wrapper.py [options] | 6 usage: bowtie_wrapper.py [options] |
8 -t, --threads=t: The number of threads to run | 7 -t, --threads=t: The number of threads to run |
9 -o, --output=o: The output file | 8 -o, --output=o: The output file |
10 --output_unmapped_reads=: File name for unmapped reads (single-end) | 9 --output_unmapped_reads=: File name for unmapped reads (single-end) |
11 --output_unmapped_reads_l=: File name for unmapped reads (left, paired-end) | 10 --output_unmapped_reads_l=: File name for unmapped reads (left, paired-end) |
12 --output_unmapped_reads_r=: File name for unmapped reads (right, paired-end) | 11 --output_unmapped_reads_r=: File name for unmapped reads (right, paired-end) |
13 --output_suppressed_reads=: File name for suppressed reads because of max setting (single-end) | 12 --output_suppressed_reads=: File name for suppressed reads because of max setting (single-end) |
14 --output_suppressed_reads_l=: File name for suppressed reads because of max setting (left, paired-end) | 13 --output_suppressed_reads_l=: File name for suppressed reads because of max setting (left, paired-end) |
15 --output_suppressed_reads_r=: File name for suppressed reads because of max setting (right, paired-end) | 14 --output_suppressed_reads_r=: File name for suppressed reads because of max setting (right, paired-end) |
15 --output_mapping_stats=: File name for mapping statistics (output on stderr by bowtie) | |
16 -i, --input1=i: The (forward or single-end) reads file in Sanger FASTQ format | 16 -i, --input1=i: The (forward or single-end) reads file in Sanger FASTQ format |
17 -I, --input2=I: The reverse reads file in Sanger FASTQ format | 17 -I, --input2=I: The reverse reads file in Sanger FASTQ format |
18 -4, --dataType=4: The type of data (SOLiD or Solexa) | 18 -4, --dataType=4: The type of data (SOLiD or Solexa) |
19 -2, --paired=2: Whether the data is single- or paired-end | 19 -2, --paired=2: Whether the data is single- or paired-end |
20 -g, --genomeSource=g: The type of reference provided | 20 -g, --genomeSource=g: The type of reference provided |
84 parser.add_option( '', '--output_unmapped_reads_l', dest='output_unmapped_reads_l', help='File name for unmapped reads (left, paired-end)' ) | 84 parser.add_option( '', '--output_unmapped_reads_l', dest='output_unmapped_reads_l', help='File name for unmapped reads (left, paired-end)' ) |
85 parser.add_option( '', '--output_unmapped_reads_r', dest='output_unmapped_reads_r', help='File name for unmapped reads (right, paired-end)' ) | 85 parser.add_option( '', '--output_unmapped_reads_r', dest='output_unmapped_reads_r', help='File name for unmapped reads (right, paired-end)' ) |
86 parser.add_option( '', '--output_suppressed_reads', dest='output_suppressed_reads', help='File name for suppressed reads because of max setting (single-end)' ) | 86 parser.add_option( '', '--output_suppressed_reads', dest='output_suppressed_reads', help='File name for suppressed reads because of max setting (single-end)' ) |
87 parser.add_option( '', '--output_suppressed_reads_l', dest='output_suppressed_reads_l', help='File name for suppressed reads because of max setting (left, paired-end)' ) | 87 parser.add_option( '', '--output_suppressed_reads_l', dest='output_suppressed_reads_l', help='File name for suppressed reads because of max setting (left, paired-end)' ) |
88 parser.add_option( '', '--output_suppressed_reads_r', dest='output_suppressed_reads_r', help='File name for suppressed reads because of max setting (right, paired-end)' ) | 88 parser.add_option( '', '--output_suppressed_reads_r', dest='output_suppressed_reads_r', help='File name for suppressed reads because of max setting (right, paired-end)' ) |
89 parser.add_option( '', '--output_mapping_stats', dest='output_mapping_stats', help='File for mapping statistics (i.e. stderr from bowtie)' ) | |
89 parser.add_option( '-4', '--dataType', dest='dataType', help='The type of data (SOLiD or Solexa)' ) | 90 parser.add_option( '-4', '--dataType', dest='dataType', help='The type of data (SOLiD or Solexa)' ) |
90 parser.add_option( '-i', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format' ) | 91 parser.add_option( '-i', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format' ) |
91 parser.add_option( '-I', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format' ) | 92 parser.add_option( '-I', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format' ) |
92 parser.add_option( '-2', '--paired', dest='paired', help='Whether the data is single- or paired-end' ) | 93 parser.add_option( '-2', '--paired', dest='paired', help='Whether the data is single- or paired-end' ) |
93 parser.add_option( '-g', '--genomeSource', dest='genomeSource', help='The type of reference provided' ) | 94 parser.add_option( '-g', '--genomeSource', dest='genomeSource', help='The type of reference provided' ) |
413 else: | 414 else: |
414 cmd2 = 'bowtie %s %s %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.output ) | 415 cmd2 = 'bowtie %s %s %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.output ) |
415 # align | 416 # align |
416 tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name | 417 tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name |
417 tmp_stderr = open( tmp, 'wb' ) | 418 tmp_stderr = open( tmp, 'wb' ) |
418 proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno() ) | 419 proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_index_dir, stdout=sys.stdout, stderr=tmp_stderr.fileno() ) |
419 returncode = proc.wait() | 420 returncode = proc.wait() |
420 tmp_stderr.close() | 421 tmp_stderr.close() |
421 # get stderr, allowing for case where it's very large | 422 # get stderr, allowing for case where it's very large |
422 tmp_stderr = open( tmp, 'rb' ) | 423 tmp_stderr = open( tmp, 'rb' ) |
423 stderr = '' | 424 stderr = '' |
430 except OverflowError: | 431 except OverflowError: |
431 pass | 432 pass |
432 tmp_stderr.close() | 433 tmp_stderr.close() |
433 if returncode != 0: | 434 if returncode != 0: |
434 raise Exception, stderr | 435 raise Exception, stderr |
436 elif options.output_mapping_stats is not None: | |
437 # Write stderr (containing the mapping statistics) to a named file | |
438 with open(options.output_mapping_stats, 'w') as mapping_stats: | |
439 mapping_stats.write( stderr ) | |
435 # get suppressed and unmapped reads output files in place if appropriate | 440 # get suppressed and unmapped reads output files in place if appropriate |
436 if options.paired == 'paired' and tmp_suppressed_file_name and \ | 441 if options.paired == 'paired' and tmp_suppressed_file_name and \ |
437 options.output_suppressed_reads_l and options.output_suppressed_reads_r: | 442 options.output_suppressed_reads_l and options.output_suppressed_reads_r: |
438 try: | 443 try: |
439 left = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' ) | 444 left = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' ) |