annotate macs21_wrapper.py @ 0:fdad0c8c0957 draft

Uploaded initial version to test toolshed.
author pjbriggs
date Wed, 21 Jan 2015 11:07:37 -0500
parents
children d0986d2be693
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
1 #purpose: macs2 python wrapper
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
2 #author: Ziru Zhou
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
3 #date: November, 2012
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
4
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
5 import sys, subprocess, tempfile, shutil, glob, os, os.path, gzip
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
6 from galaxy import eggs
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
7 import pkg_resources
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
8 pkg_resources.require( "simplejson" )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
9 import simplejson
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
10
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
11 CHUNK_SIZE = 1024
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
12
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
13 #==========================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
14 #functions
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
15 #==========================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
16 def gunzip_cat_glob_path( glob_path, target_filename, delete = False ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
17 out = open( target_filename, 'wb' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
18 for filename in glob.glob( glob_path ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
19 fh = gzip.open( filename, 'rb' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
20 while True:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
21 data = fh.read( CHUNK_SIZE )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
22 if data:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
23 out.write( data )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
24 else:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
25 break
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
26 fh.close()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
27 if delete:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
28 os.unlink( filename )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
29 out.close()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
30
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
31 def xls_to_interval( xls_file, interval_file, header = None ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
32 out = open( interval_file, 'wb' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
33 if header:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
34 out.write( '#%s\n' % header )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
35 wrote_header = False
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
36 #From macs readme: Coordinates in XLS is 1-based which is different with BED format.
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
37 #PJB: updated to keep original 'start' coordinate i.e. do not convert to BED
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
38 for line in open( xls_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
39 #keep all existing comment lines
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
40 if line.startswith( '#' ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
41 out.write( line )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
42 #added for macs2 since there is an extra newline
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
43 ##elif line.startswith( '\n' ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
44 ## out.write( line )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
45 elif not wrote_header:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
46 out.write( '#%s' % line )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
47 print line
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
48 wrote_header = True
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
49 else:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
50 fields = line.split( '\t' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
51 if len( fields ) > 1:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
52 try:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
53 # Try to convert 'start' to int and shift
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
54 ##fields[1] = str( int( fields[1] ) - 1 )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
55 # PJB don't correct, just test to see if it's an integer
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
56 int( fields[1] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
57 except ValueError:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
58 # Integer conversion failed so comment out
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
59 # "bad" line instead
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
60 fields[0] = "#%s" % fields[0]
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
61 out.write( '\t'.join( fields ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
62 out.close()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
63
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
64 #==========================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
65 #main
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
66 #==========================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
67 def main():
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
68 #take in options file and output file names
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
69 options = simplejson.load( open( sys.argv[1] ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
70 outputs = simplejson.load( open( sys.argv[2] ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
71
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
72 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
73 #parse options and execute macs2
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
74 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
75 #default inputs that are in every major command
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
76 experiment_name = '_'.join( options['experiment_name'].split() ) #save experiment name here, it will be used by macs for some file names
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
77 cmdline = "macs2 %s -t %s" % ( options['command'], ",".join( options['input_chipseq'] ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
78 if options['input_control']:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
79 cmdline = "%s -c %s" % ( cmdline, ",".join( options['input_control'] ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
80
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
81 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
82 if (options['command'] == "callpeak"):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
83 output_summits_bed = outputs['output_summits_bed_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
84 output_extra_html = outputs['output_extra_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
85 output_extra_path = outputs['output_extra_file_path']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
86 output_peaks = outputs['output_peaks_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
87 output_narrowpeaks = outputs['output_narrowpeaks_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
88 output_broadpeaks = outputs['output_broadpeaks_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
89 output_gappedpeaks = outputs['output_gappedpeaks_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
90 output_xls_to_interval_peaks_file = outputs['output_xls_to_interval_peaks_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
91 output_treat_pileup = outputs['output_treat_pileup_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
92 output_lambda_bedgraph = outputs['output_lambda_bedgraph_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
93
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
94 cmdline = "%s --format='%s' --name='%s' --gsize='%s' --bw='%s'" % ( cmdline, options['format'], experiment_name, options['gsize'], options['bw'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
95 if (options['broad'] == 'broad'):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
96 cmdline = "%s --broad --broad-cutoff='%s'" % ( cmdline, options['broad_cutoff'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
97 if 'pvalue' in options:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
98 cmdline = "%s --pvalue='%s'" % ( cmdline, options['pvalue'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
99 elif 'qvalue' in options:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
100 cmdline = "%s --qvalue='%s'" % ( cmdline, options['qvalue'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
101 cmdline = "%s --mfold %s %s %s %s %s %s --keep-dup %s" % (cmdline, options['mfoldlo'], options['mfoldhi'], options['nolambda'], options['bdg'], options['spmr'], options['call_summits'], options['keep_dup'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
102
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
103 if 'nomodel' in options:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
104 cmdline = "%s --nomodel --extsize='%s'" % ( cmdline, options['nomodel'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
105 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
106 if (options['command'] == "bdgcmp"):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
107 output_bdgcmp = outputs['output_bdgcmp_file']
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
108
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
109 cmdline = "%s -m %s -p %s -o bdgcmp_out.bdg" % ( cmdline, options['m'], options['pseudocount'] )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
110 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
111
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
112 tmp_dir = tempfile.mkdtemp() #macs makes very messy output, need to contain it into a temp dir, then provide to user
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
113 stderr_name = tempfile.NamedTemporaryFile().name # redirect stderr here, macs provides lots of info via stderr, make it into a report
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
114 proc = subprocess.Popen( args=cmdline, shell=True, cwd=tmp_dir, stderr=open( stderr_name, 'wb' ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
115 proc.wait()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
116 #We don't want to set tool run to error state if only warnings or info, e.g. mfold could be decreased to improve model, but let user view macs log
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
117 #Do not terminate if error code, allow dataset (e.g. log) creation and cleanup
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
118 if proc.returncode:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
119 stderr_f = open( stderr_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
120 while True:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
121 chunk = stderr_f.read( CHUNK_SIZE )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
122 if not chunk:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
123 stderr_f.close()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
124 break
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
125 sys.stderr.write( chunk )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
126
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
127 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
128 #copy files created by macs2 to appripriate directory with the provided names
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
129 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
130
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
131 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
132 #move files generated by callpeak command
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
133 if (options['command'] == "callpeak"):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
134 #run R to create pdf from model script
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
135 if os.path.exists( os.path.join( tmp_dir, "%s_model.r" % experiment_name ) ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
136 cmdline = 'R --vanilla --slave < "%s_model.r" > "%s_model.r.log"' % ( experiment_name, experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
137 proc = subprocess.Popen( args=cmdline, shell=True, cwd=tmp_dir )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
138 proc.wait()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
139
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
140 #move bed out to proper output file
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
141 created_bed_name = os.path.join( tmp_dir, "%s_summits.bed" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
142 if os.path.exists( created_bed_name ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
143 shutil.move( created_bed_name, output_summits_bed )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
144
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
145 #OICR peak_xls file
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
146 created_peak_xls_file = os.path.join( tmp_dir, "%s_peaks.xls" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
147 if os.path.exists( created_peak_xls_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
148 # shutil.copy( created_peak_xls_file, os.path.join ( "/mnt/galaxyData/tmp/", "%s_peaks.xls" % ( os.path.basename(output_extra_path) )))
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
149 shutil.copyfile( created_peak_xls_file, output_peaks )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
150
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
151 #peaks.encodepeaks (narrowpeaks) file
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
152 created_narrowpeak_file = os.path.join (tmp_dir, "%s_peaks.narrowPeak" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
153 if os.path.exists( created_narrowpeak_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
154 shutil.move (created_narrowpeak_file, output_narrowpeaks )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
155
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
156 #peaks.broadpeaks file
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
157 created_broadpeak_file = os.path.join (tmp_dir, "%s_peaks.broadPeak" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
158 if os.path.exists( created_broadpeak_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
159 shutil.move (created_broadpeak_file, output_broadpeaks )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
160
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
161 #peaks.gappedpeaks file
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
162 created_gappedpeak_file = os.path.join (tmp_dir, "%s_peaks.gappedPeak" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
163 if os.path.exists( created_gappedpeak_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
164 shutil.move (created_gappedpeak_file, output_gappedpeaks )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
165
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
166 #parse xls files to interval files as needed
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
167 #if 'xls_to_interval' in options:
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
168 if (options['xls_to_interval'] == "True"):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
169 create_peak_xls_file = os.path.join( tmp_dir, '%s_peaks.xls' % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
170 if os.path.exists( create_peak_xls_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
171 xls_to_interval( create_peak_xls_file, output_xls_to_interval_peaks_file, header = 'peaks file' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
172
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
173 #bedgraph bedgraph files
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
174 if (options['bdg']):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
175 created_treat_pileup_file = os.path.join (tmp_dir, "%s_treat_pileup.bdg" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
176 if os.path.exists( created_treat_pileup_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
177 shutil.move (created_treat_pileup_file, output_treat_pileup )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
178 created_lambda_bedgraph_file = os.path.join (tmp_dir, "%s_control_lambda.bdg" % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
179 if os.path.exists( created_lambda_bedgraph_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
180 shutil.move (created_lambda_bedgraph_file, output_lambda_bedgraph )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
181
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
182 #move all remaining files to extra files path of html file output to allow user download
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
183 out_html = open( output_extra_html, 'wb' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
184 out_html.write( '<html><head><title>Additional output created by MACS (%s)</title></head><body><h3>Additional Files:</h3><p><ul>\n' % experiment_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
185 os.mkdir( output_extra_path )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
186 for filename in sorted( os.listdir( tmp_dir ) ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
187 shutil.move( os.path.join( tmp_dir, filename ), os.path.join( output_extra_path, filename ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
188 out_html.write( '<li><a href="%s">%s</a></li>\n' % ( filename, filename ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
189 #out_html.write( '<li><a href="%s">%s</a>peakxls %s SomethingDifferent tmp_dir %s path %s exp_name %s</li>\n' % ( created_peak_xls_file, filename, filename, tmp_dir, output_extra_path, experiment_name ) )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
190 out_html.write( '</ul></p>\n' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
191 out_html.write( '<h3>Messages from MACS:</h3>\n<p><pre>%s</pre></p>\n' % open( stderr_name, 'rb' ).read() )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
192 out_html.write( '</body></html>\n' )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
193 out_html.close()
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
194
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
195 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
196 #move files generated by bdgcmp command
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
197 if (options['command'] == "bdgcmp"):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
198 created_bdgcmp_file = os.path.join (tmp_dir, "bdgcmp_out.bdg" )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
199 if os.path.exists( created_bdgcmp_file ):
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
200 shutil.move (created_bdgcmp_file, output_bdgcmp )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
201
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
202 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
203 #cleanup
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
204 #=================================================================================
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
205 os.unlink( stderr_name )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
206 os.rmdir( tmp_dir )
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
207
fdad0c8c0957 Uploaded initial version to test toolshed.
pjbriggs
parents:
diff changeset
208 if __name__ == "__main__": main()