Mercurial > repos > pjbriggs > macs21
annotate macs21_wrapper.py @ 1:d0986d2be693 draft
Substantial reimplementation of internals, also renamed id and version.
author | pjbriggs |
---|---|
date | Thu, 29 Jan 2015 11:11:21 -0500 |
parents | fdad0c8c0957 |
children | 15889783e759 |
rev | line source |
---|---|
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
1 #!/bin/env python |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
2 # |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
3 # Galaxy wrapper to run MACS 2.1 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
4 # |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
5 # Completely rewritten from the original macs2 wrapped by Ziru Zhou |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
6 # taken from http://toolshed.g2.bx.psu.edu/view/modencode-dcc/macs2 |
0 | 7 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
8 import sys |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
9 import os |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
10 import subprocess |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
11 import tempfile |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
12 import shutil |
0 | 13 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
14 def move_file(working_dir,name,destination): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
15 """Move a file 'name' from 'working_dir' to 'destination' |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
16 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
17 """ |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
18 if destination is None: |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
19 # Nothing to do |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
20 return |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
21 source = os.path.join(working_dir,name) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
22 if os.path.exists(source): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
23 shutil.move(source,destination) |
0 | 24 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
25 def convert_xls_to_interval(xls_file,interval_file,header=None): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
26 """Convert MACS XLS file to interval |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
27 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
28 From the MACS readme: "Coordinates in XLS is 1-based which is different with |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
29 BED format." |
0 | 30 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
31 However this function no longer performs any coordinate conversions, it |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
32 simply ensures that any blank or non-data lines are commented out |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
33 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
34 """ |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
35 fp = open(interval_file,'wb') |
0 | 36 if header: |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
37 fp.write('#%s\n' % header) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
38 for line in open(xls_file): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
39 # Keep all existing comment lines |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
40 if line.startswith('#'): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
41 fp.write(line) |
0 | 42 else: |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
43 # Split line into fields and test to see if |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
44 # the 'start' field is actually an integer |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
45 fields = line.split('\t') |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
46 if len(fields) > 1: |
0 | 47 try: |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
48 int(fields[1]) |
0 | 49 except ValueError: |
50 # Integer conversion failed so comment out | |
51 # "bad" line instead | |
52 fields[0] = "#%s" % fields[0] | |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
53 fp.write( '\t'.join( fields ) ) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
54 fp.close() |
0 | 55 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
56 if __name__ == "__main__": |
0 | 57 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
58 # Echo the command line |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
59 print ' '.join(sys.argv) |
0 | 60 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
61 # Initialise output files - values are set by reading from |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
62 # the command line supplied by the Galaxy wrapper |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
63 output_extra_html = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
64 output_extra_path = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
65 output_broadpeaks = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
66 output_gappedpeaks = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
67 output_narrowpeaks = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
68 output_treat_pileup = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
69 output_lambda_bedgraph = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
70 output_xls_to_interval_peaks_file = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
71 output_peaks = None |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
72 output_bdgcmp = None |
0 | 73 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
74 # Build the MACS 2.1 command line |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
75 # Initial arguments are always the same: command & input ChIP-seq file name |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
76 cmdline = ["macs2 %s -t %s" % (sys.argv[1],sys.argv[2])] |
0 | 77 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
78 # Process remaining args |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
79 for arg in sys.argv[3:]: |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
80 if arg.startswith('--format='): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
81 # Convert format to uppercase |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
82 format_ = arg.split('=')[1].upper() |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
83 cmdline.append("--format=%s" % format_) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
84 elif arg.startswith('--name='): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
85 # Replace whitespace in name with underscores |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
86 experiment_name = '_'.join(arg.split('=')[1].split()) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
87 cmdline.append("--name=%s" % experiment_name) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
88 elif arg.startswith('--output-'): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
89 # Handle destinations for output files |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
90 arg0,filen = arg.split('=') |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
91 if arg0 == '--output-summits': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
92 output_summits = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
93 elif arg0 == '--output-extra-files': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
94 output_extra_html = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
95 elif arg0 == '--output-extra-files-path': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
96 output_extra_path = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
97 elif arg0 == '--output-broadpeaks': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
98 output_broadpeaks = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
99 elif arg0 == '--output-gappedpeaks': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
100 output_gappedpeaks = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
101 elif arg0 == '--output-narrowpeaks': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
102 output_narrowpeaks = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
103 elif arg0 == '--output-pileup': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
104 output_treat_pileup = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
105 elif arg0 == '--output-lambda-bedgraph': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
106 output_lambda_bedgraph = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
107 elif arg0 == '--output-xls-to-interval': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
108 output_xls_to_interval_peaks_file = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
109 elif arg0 == '--output-peaks': |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
110 output_peaks = filen |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
111 else: |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
112 # Pass remaining args directly to MACS |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
113 # command line |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
114 cmdline.append(arg) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
115 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
116 cmdline = ' '.join(cmdline) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
117 print "Generated command line:\n%s" % cmdline |
0 | 118 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
119 # Execute MACS2 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
120 # |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
121 # Make a working directory |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
122 working_dir = tempfile.mkdtemp() |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
123 # |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
124 # Collect stderr in a file for reporting later |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
125 stderr_filen = tempfile.NamedTemporaryFile().name |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
126 # |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
127 # Run MACS2 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
128 proc = subprocess.Popen(args=cmdline,shell=True,cwd=working_dir, |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
129 stderr=open(stderr_filen,'wb')) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
130 proc.wait() |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
131 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
132 # Run R script to create PDF from model script |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
133 if os.path.exists(os.path.join(working_dir,"%s_model.r" % experiment_name)): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
134 cmdline = 'R --vanilla --slave < "%s_model.r" > "%s_model.r.log"' % \ |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
135 (experiment_name, experiment_name) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
136 proc = subprocess.Popen(args=cmdline,shell=True,cwd=working_dir) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
137 proc.wait() |
0 | 138 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
139 # Convert XLS to interval, if requested |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
140 if output_xls_to_interval_peaks_file is not None: |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
141 peaks_xls_file = os.path.join(working_dir,'%s_peaks.xls' % experiment_name ) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
142 if os.path.exists(peaks_xls_file): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
143 convert_xls_to_interval(peaks_xls_file,output_xls_to_interval_peaks_file, |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
144 header='peaks file') |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
145 |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
146 # Move MACS2 output files from working dir to their final destinations |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
147 move_file(working_dir,"%s_summits.bed" % experiment_name,output_summits) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
148 move_file(working_dir,"%s_peaks.xls" % experiment_name,output_peaks) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
149 move_file(working_dir,"%s_peaks.narrowPeak" % experiment_name,output_narrowpeaks) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
150 move_file(working_dir,"%s_peaks.broadPeak" % experiment_name,output_broadpeaks) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
151 move_file(working_dir,"%s_peaks.gappedPeak" % experiment_name,output_gappedpeaks) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
152 move_file(working_dir,"%s_treat_pileup.bdg" % experiment_name,output_treat_pileup) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
153 move_file(working_dir,"%s_control_lambda.bdg" % experiment_name,output_lambda_bedgraph) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
154 move_file(working_dir,"bdgcmp_out.bdg",output_bdgcmp) |
0 | 155 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
156 # Move remaining file to the 'extra files' path and link from the HTML |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
157 # file to allow user to access them from within Galaxy |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
158 html_file = open(output_extra_html,'wb') |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
159 html_file.write('<html><head><title>Additional output created by MACS (%s)</title></head><body><h3>Additional Files:</h3><p><ul>\n' % experiment_name) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
160 # Make the 'extra files' directory |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
161 os.mkdir(output_extra_path) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
162 # Move the files |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
163 for filen in sorted(os.listdir(working_dir)): |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
164 shutil.move(os.path.join(working_dir,filen), |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
165 os.path.join(output_extra_path,filen)) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
166 html_file.write( '<li><a href="%s">%s</a></li>\n' % (filen,filen)) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
167 # All files moved, close out HTML |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
168 html_file.write( '</ul></p>\n' ) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
169 # Append any stderr output |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
170 html_file.write('<h3>Messages from MACS:</h3>\n<p><pre>%s</pre></p>\n' % |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
171 open(stderr_filen,'rb').read()) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
172 html_file.write('</body></html>\n') |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
173 html_file.close() |
0 | 174 |
1
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
175 # Clean up the working directory and files |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
176 os.unlink(stderr_filen) |
d0986d2be693
Substantial reimplementation of internals, also renamed id and version.
pjbriggs
parents:
0
diff
changeset
|
177 os.rmdir(working_dir) |