comparison bismark_methylation_extractor.py @ 18:862fb59a9a25 draft

Uploaded
author bgruening
date Mon, 14 Apr 2014 16:42:38 -0400
parents c066c09db337
children
comparison
equal deleted inserted replaced
17:73508c5b4273 18:862fb59a9a25
25 parser = argparse.ArgumentParser(description='Wrapper for the bismark methylation caller.') 25 parser = argparse.ArgumentParser(description='Wrapper for the bismark methylation caller.')
26 26
27 # input options 27 # input options
28 parser.add_argument( '--bismark_path', dest='bismark_path', help='Path to the bismark perl scripts' ) 28 parser.add_argument( '--bismark_path', dest='bismark_path', help='Path to the bismark perl scripts' )
29 29
30 parser.add_argument( '--infile', help='Input file in SAM format.' ) 30 parser.add_argument( '--infile', help='Input file in SAM or BAM format.' )
31 parser.add_argument( '--single-end', dest='single_end', action="store_true" ) 31 parser.add_argument( '--single-end', dest='single_end', action="store_true" )
32 parser.add_argument( '--paired-end', dest='paired_end', action="store_true" ) 32 parser.add_argument( '--paired-end', dest='paired_end', action="store_true" )
33 33
34 parser.add_argument( '--report-file', dest='report_file' ) 34 parser.add_argument( '--report-file', dest='report_file' )
35 parser.add_argument( '--comprehensive', action="store_true" ) 35 parser.add_argument( '--comprehensive', action="store_true" )
36 parser.add_argument( '--merge-non-cpg', dest='merge_non_cpg', action="store_true" ) 36 parser.add_argument( '--merge-non-cpg', dest='merge_non_cpg', action="store_true" )
37 parser.add_argument( '--no-overlap', dest='no_overlap', action="store_true" ) 37 parser.add_argument( '--no-overlap', dest='no_overlap', action="store_true" )
38 parser.add_argument( '--compress' ) 38 parser.add_argument( '--compress' )
91 if args.merge_non_cpg: 91 if args.merge_non_cpg:
92 additional_opts += ' --merge_non_CpG ' 92 additional_opts += ' --merge_non_CpG '
93 if args.report_file: 93 if args.report_file:
94 additional_opts += ' --report ' 94 additional_opts += ' --report '
95 95
96 96 #detect BAM file, use samtools view if it is a bam file
97 # Final command: 97 f = open (args.infile, 'rb')
98 cmd = cmd % (output_dir, additional_opts, args.infile) 98 sig = f.read(4)
99 f.close()
100 if sig == '\x1f\x8b\x08\x04' :
101 cmd = cmd % (output_dir, additional_opts, '-')
102 cmd = 'samtools view %s | %s' % (args.infile, cmd )
103 else :
104 cmd = cmd % (output_dir, additional_opts, args.infile)
99 105
100 # Run 106 # Run
101 try: 107 try:
102 tmp_out = tempfile.NamedTemporaryFile().name 108 tmp_out = tempfile.NamedTemporaryFile().name
103 tmp_stdout = open( tmp_out, 'wb' ) 109 tmp_stdout = open( tmp_out, 'wb' )