Mercurial > repos > pjbriggs > amplicon_analysis_pipeline
annotate amplicon_analysis_pipeline.py @ 0:47ec9c6f44b8 draft
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
author | pjbriggs |
---|---|
date | Thu, 09 Nov 2017 10:13:29 -0500 |
parents | |
children | 1c1902e12caf |
rev | line source |
---|---|
0
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
1 #!/usr/bin/env python |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
2 # |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
3 # Wrapper script to run Amplicon_analysis_pipeline.sh |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
4 # from Galaxy tool |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
5 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
6 import sys |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
7 import os |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
8 import argparse |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
9 import subprocess |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
10 import glob |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
11 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
12 class PipelineCmd(object): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
13 def __init__(self,cmd): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
14 self.cmd = [str(cmd)] |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
15 def add_args(self,*args): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
16 for arg in args: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
17 self.cmd.append(str(arg)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
18 def __repr__(self): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
19 return ' '.join([str(arg) for arg in self.cmd]) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
20 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
21 def ahref(target,name=None,type=None): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
22 if name is None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
23 name = os.path.basename(target) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
24 ahref = "<a href='%s'" % target |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
25 if type is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
26 ahref += " type='%s'" % type |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
27 ahref += ">%s</a>" % name |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
28 return ahref |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
29 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
30 def check_errors(): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
31 # Errors in Amplicon_analysis_pipeline.log |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
32 with open('Amplicon_analysis_pipeline.log','r') as pipeline_log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
33 log = pipeline_log.read() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
34 if "Names in the first column of Metatable.txt and in the second column of Final_name.txt do not match" in log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
35 print_error("""*** Sample IDs don't match dataset names *** |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
36 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
37 The sample IDs (first column of the Metatable file) don't match the |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
38 supplied sample names for the input Fastq pairs. |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
39 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
40 # Errors in pipeline output |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
41 with open('pipeline.log','r') as pipeline_log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
42 log = pipeline_log.read() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
43 if "Errors and/or warnings detected in mapping file" in log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
44 with open("Metatable_log/Metatable.log","r") as metatable_log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
45 # Echo the Metatable log file to the tool log |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
46 print_error("""*** Error in Metatable mapping file *** |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
47 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
48 %s""" % metatable_log.read()) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
49 elif "No header line was found in mapping file" in log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
50 # Report error to the tool log |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
51 print_error("""*** No header in Metatable mapping file *** |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
52 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
53 Check you've specified the correct file as the input Metatable""") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
54 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
55 def print_error(message): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
56 width = max([len(line) for line in message.split('\n')]) + 4 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
57 sys.stderr.write("\n%s\n" % ('*'*width)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
58 for line in message.split('\n'): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
59 sys.stderr.write("* %s%s *\n" % (line,' '*(width-len(line)-4))) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
60 sys.stderr.write("%s\n\n" % ('*'*width)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
61 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
62 def clean_up_name(sample): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
63 # Remove trailing "_L[0-9]+_001" from Fastq |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
64 # pair names |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
65 split_name = sample.split('_') |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
66 if split_name[-1] == "001": |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
67 split_name = split_name[:-1] |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
68 if split_name[-1].startswith('L'): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
69 try: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
70 int(split_name[-1][1:]) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
71 split_name = split_name[:-1] |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
72 except ValueError: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
73 pass |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
74 return '_'.join(split_name) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
75 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
76 def list_outputs(filen=None): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
77 # List the output directory contents |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
78 # If filen is specified then will be the filename to |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
79 # write to, otherwise write to stdout |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
80 if filen is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
81 fp = open(filen,'w') |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
82 else: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
83 fp = sys.stdout |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
84 results_dir = os.path.abspath("RESULTS") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
85 fp.write("Listing contents of output dir %s:\n" % results_dir) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
86 ix = 0 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
87 for d,dirs,files in os.walk(results_dir): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
88 ix += 1 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
89 fp.write("-- %d: %s\n" % (ix, |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
90 os.path.relpath(d,results_dir))) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
91 for f in files: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
92 ix += 1 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
93 fp.write("---- %d: %s\n" % (ix, |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
94 os.path.relpath(f,results_dir))) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
95 # Close output file |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
96 if filen is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
97 fp.close() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
98 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
99 if __name__ == "__main__": |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
100 # Command line |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
101 print "Amplicon analysis: starting" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
102 p = argparse.ArgumentParser() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
103 p.add_argument("metatable", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
104 metavar="METATABLE_FILE", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
105 help="Metatable.txt file") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
106 p.add_argument("fastq_pairs", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
107 metavar="SAMPLE_NAME FQ_R1 FQ_R2", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
108 nargs="+", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
109 default=list(), |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
110 help="Triplets of SAMPLE_NAME followed by " |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
111 "a R1/R2 FASTQ file pair") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
112 p.add_argument("-g",dest="forward_pcr_primer") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
113 p.add_argument("-G",dest="reverse_pcr_primer") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
114 p.add_argument("-q",dest="trimming_threshold") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
115 p.add_argument("-O",dest="minimum_overlap") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
116 p.add_argument("-L",dest="minimum_length") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
117 p.add_argument("-l",dest="sliding_window_length") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
118 p.add_argument("-P",dest="pipeline", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
119 choices=["vsearch","uparse","qiime"], |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
120 type=str.lower, |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
121 default="vsearch") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
122 p.add_argument("-S",dest="use_silva",action="store_true") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
123 p.add_argument("-r",dest="reference_data_path") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
124 p.add_argument("-c",dest="categories_file") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
125 args = p.parse_args() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
126 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
127 # Build the environment for running the pipeline |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
128 print "Amplicon analysis: building the environment" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
129 metatable_file = os.path.abspath(args.metatable) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
130 os.symlink(metatable_file,"Metatable.txt") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
131 print "-- made symlink to Metatable.txt" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
132 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
133 # Link to Categories.txt file (if provided) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
134 if args.categories_file is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
135 categories_file = os.path.abspath(args.categories_file) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
136 os.symlink(categories_file,"Categories.txt") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
137 print "-- made symlink to Categories.txt" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
138 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
139 # Link to FASTQs and construct Final_name.txt file |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
140 sample_names = [] |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
141 with open("Final_name.txt",'w') as final_name: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
142 fastqs = iter(args.fastq_pairs) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
143 for sample_name,fqr1,fqr2 in zip(fastqs,fastqs,fastqs): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
144 sample_name = clean_up_name(sample_name) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
145 r1 = "%s_R1_.fastq" % sample_name |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
146 r2 = "%s_R2_.fastq" % sample_name |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
147 os.symlink(fqr1,r1) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
148 os.symlink(fqr2,r2) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
149 final_name.write("%s\n" % '\t'.join((r1,sample_name))) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
150 final_name.write("%s\n" % '\t'.join((r2,sample_name))) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
151 sample_names.append(sample_name) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
152 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
153 # Construct the pipeline command |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
154 print "Amplicon analysis: constructing pipeline command" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
155 pipeline = PipelineCmd("Amplicon_analysis_pipeline.sh") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
156 if args.forward_pcr_primer: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
157 pipeline.add_args("-g",args.forward_pcr_primer) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
158 if args.reverse_pcr_primer: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
159 pipeline.add_args("-G",args.reverse_pcr_primer) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
160 if args.trimming_threshold: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
161 pipeline.add_args("-q",args.trimming_threshold) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
162 if args.minimum_overlap: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
163 pipeline.add_args("-O",args.minimum_overlap) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
164 if args.minimum_length: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
165 pipeline.add_args("-L",args.minimum_length) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
166 if args.sliding_window_length: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
167 pipeline.add_args("-l",args.sliding_window_length) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
168 if args.reference_data_path: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
169 pipeline.add_args("-r",args.reference_data_path) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
170 pipeline.add_args("-P",args.pipeline) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
171 if args.use_silva: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
172 pipeline.add_args("-S") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
173 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
174 # Echo the pipeline command to stdout |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
175 print "Running %s" % pipeline |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
176 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
177 # Run the pipeline |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
178 with open("pipeline.log","w") as pipeline_out: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
179 try: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
180 subprocess.check_call(pipeline.cmd, |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
181 stdout=pipeline_out, |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
182 stderr=subprocess.STDOUT) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
183 exit_code = 0 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
184 print "Pipeline completed ok" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
185 except subprocess.CalledProcessError as ex: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
186 # Non-zero exit status |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
187 sys.stderr.write("Pipeline failed: exit code %s\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
188 ex.returncode) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
189 exit_code = ex.returncode |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
190 except Exception as ex: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
191 # Some other problem |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
192 sys.stderr.write("Unexpected error: %s\n" % str(ex)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
193 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
194 # Write out the list of outputs |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
195 outputs_file = "Pipeline_outputs.txt" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
196 list_outputs(outputs_file) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
197 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
198 # Check for log file |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
199 log_file = "Amplicon_analysis_pipeline.log" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
200 if os.path.exists(log_file): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
201 print "Found log file: %s" % log_file |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
202 if exit_code == 0: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
203 # Create an HTML file to link to log files etc |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
204 # NB the paths to the files should be correct once |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
205 # copied by Galaxy on job completion |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
206 with open("pipeline_outputs.html","w") as html_out: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
207 html_out.write("""<html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
208 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
209 <title>Amplicon analysis pipeline: log files</title> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
210 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
211 <body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
212 <h1>Amplicon analysis pipeline: log files</h1> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
213 <ul> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
214 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
215 html_out.write( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
216 "<li>%s</li>\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
217 ahref("Amplicon_analysis_pipeline.log", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
218 type="text/plain")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
219 html_out.write( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
220 "<li>%s</li>\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
221 ahref("pipeline.log",type="text/plain")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
222 html_out.write( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
223 "<li>%s</li>\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
224 ahref("Pipeline_outputs.txt", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
225 type="text/plain")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
226 html_out.write( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
227 "<li>%s</li>\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
228 ahref("Metatable.html")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
229 html_out.write("""<ul> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
230 </body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
231 </html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
232 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
233 else: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
234 # Check for known error messages |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
235 check_errors() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
236 # Write pipeline stdout to tool stderr |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
237 sys.stderr.write("\nOutput from pipeline:\n") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
238 with open("pipeline.log",'r') as log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
239 sys.stderr.write("%s" % log.read()) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
240 # Write log file contents to tool log |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
241 print "\nAmplicon_analysis_pipeline.log:" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
242 with open(log_file,'r') as log: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
243 print "%s" % log.read() |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
244 else: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
245 sys.stderr.write("ERROR missing log file \"%s\"\n" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
246 log_file) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
247 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
248 # Handle FastQC boxplots |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
249 print "Amplicon analysis: collating per base quality boxplots" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
250 with open("fastqc_quality_boxplots.html","w") as quality_boxplots: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
251 # PHRED value for trimming |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
252 phred_score = 20 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
253 if args.trimming_threshold is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
254 phred_score = args.trimming_threshold |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
255 # Write header for HTML output file |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
256 quality_boxplots.write("""<html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
257 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
258 <title>Amplicon analysis pipeline: Per-base Quality Boxplots (FastQC)</title> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
259 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
260 <body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
261 <h1>Amplicon analysis pipeline: Per-base Quality Boxplots (FastQC)</h1> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
262 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
263 # Look for raw and trimmed FastQC output for each sample |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
264 for sample_name in sample_names: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
265 fastqc_dir = os.path.join(sample_name,"FastQC") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
266 quality_boxplots.write("<h2>%s</h2>" % sample_name) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
267 for d in ("Raw","cutdapt_sickle/Q%s" % phred_score): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
268 quality_boxplots.write("<h3>%s</h3>" % d) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
269 fastqc_html_files = glob.glob( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
270 os.path.join(fastqc_dir,d,"*_fastqc.html")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
271 if not fastqc_html_files: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
272 quality_boxplots.write("<p>No FastQC outputs found</p>") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
273 continue |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
274 # Pull out the per-base quality boxplots |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
275 for f in fastqc_html_files: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
276 boxplot = None |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
277 with open(f) as fp: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
278 for line in fp.read().split(">"): |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
279 try: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
280 line.index("alt=\"Per base quality graph\"") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
281 boxplot = line + ">" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
282 break |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
283 except ValueError: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
284 pass |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
285 if boxplot is None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
286 boxplot = "Missing plot" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
287 quality_boxplots.write("<h4>%s</h4><p>%s</p>" % |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
288 (os.path.basename(f), |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
289 boxplot)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
290 quality_boxplots.write("""</body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
291 </html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
292 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
293 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
294 # Handle additional output when categories file was supplied |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
295 if args.categories_file is not None: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
296 # Alpha diversity boxplots |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
297 print "Amplicon analysis: indexing alpha diversity boxplots" |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
298 boxplots_dir = os.path.abspath( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
299 os.path.join("RESULTS", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
300 "%s_%s" % (args.pipeline.title(), |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
301 ("gg" if not args.use_silva |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
302 else "silva")), |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
303 "Alpha_diversity", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
304 "Alpha_diversity_boxplot", |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
305 "Categories_shannon")) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
306 print "Amplicon analysis: gathering PDFs from %s" % boxplots_dir |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
307 boxplot_pdfs = [os.path.basename(pdf) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
308 for pdf in |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
309 sorted(glob.glob( |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
310 os.path.join(boxplots_dir,"*.pdf")))] |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
311 with open("alpha_diversity_boxplots.html","w") as boxplots_out: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
312 boxplots_out.write("""<html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
313 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
314 <title>Amplicon analysis pipeline: Alpha Diversity Boxplots (Shannon)</title> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
315 <head> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
316 <body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
317 <h1>Amplicon analysis pipeline: Alpha Diversity Boxplots (Shannon)</h1> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
318 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
319 boxplots_out.write("<ul>\n") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
320 for pdf in boxplot_pdfs: |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
321 boxplots_out.write("<li>%s</li>\n" % ahref(pdf)) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
322 boxplots_out.write("<ul>\n") |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
323 boxplots_out.write("""</body> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
324 </html> |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
325 """) |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
326 |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
327 # Finish |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
328 print "Amplicon analysis: finishing, exit code: %s" % exit_code |
47ec9c6f44b8
planemo upload for repository https://github.com/pjbriggs/Amplicon_analysis-galaxy commit b63924933a03255872077beb4d0fde49d77afa92
pjbriggs
parents:
diff
changeset
|
329 sys.exit(exit_code) |