Mercurial > repos > pjbriggs > amplicon_analysis_pipeline
comparison amplicon_analysis_pipeline.py @ 1:1c1902e12caf draft
Updated to version 1.2.1.0
| author | pjbriggs |
|---|---|
| date | Wed, 25 Apr 2018 03:54:00 -0400 |
| parents | 47ec9c6f44b8 |
| children | 3ab198df8f3f |
comparison
equal
deleted
inserted
replaced
| 0:47ec9c6f44b8 | 1:1c1902e12caf |
|---|---|
| 118 p.add_argument("-P",dest="pipeline", | 118 p.add_argument("-P",dest="pipeline", |
| 119 choices=["vsearch","uparse","qiime"], | 119 choices=["vsearch","uparse","qiime"], |
| 120 type=str.lower, | 120 type=str.lower, |
| 121 default="vsearch") | 121 default="vsearch") |
| 122 p.add_argument("-S",dest="use_silva",action="store_true") | 122 p.add_argument("-S",dest="use_silva",action="store_true") |
| 123 p.add_argument("-H",dest="use_homd",action="store_true") | |
| 123 p.add_argument("-r",dest="reference_data_path") | 124 p.add_argument("-r",dest="reference_data_path") |
| 124 p.add_argument("-c",dest="categories_file") | 125 p.add_argument("-c",dest="categories_file") |
| 125 args = p.parse_args() | 126 args = p.parse_args() |
| 126 | 127 |
| 127 # Build the environment for running the pipeline | 128 # Build the environment for running the pipeline |
| 147 os.symlink(fqr1,r1) | 148 os.symlink(fqr1,r1) |
| 148 os.symlink(fqr2,r2) | 149 os.symlink(fqr2,r2) |
| 149 final_name.write("%s\n" % '\t'.join((r1,sample_name))) | 150 final_name.write("%s\n" % '\t'.join((r1,sample_name))) |
| 150 final_name.write("%s\n" % '\t'.join((r2,sample_name))) | 151 final_name.write("%s\n" % '\t'.join((r2,sample_name))) |
| 151 sample_names.append(sample_name) | 152 sample_names.append(sample_name) |
| 153 | |
| 154 # Reference database | |
| 155 if args.use_silva: | |
| 156 ref_database = "silva" | |
| 157 elif args.use_homd: | |
| 158 ref_database = "homd" | |
| 159 else: | |
| 160 ref_database = "gg" | |
| 152 | 161 |
| 153 # Construct the pipeline command | 162 # Construct the pipeline command |
| 154 print "Amplicon analysis: constructing pipeline command" | 163 print "Amplicon analysis: constructing pipeline command" |
| 155 pipeline = PipelineCmd("Amplicon_analysis_pipeline.sh") | 164 pipeline = PipelineCmd("Amplicon_analysis_pipeline.sh") |
| 156 if args.forward_pcr_primer: | 165 if args.forward_pcr_primer: |
| 166 if args.sliding_window_length: | 175 if args.sliding_window_length: |
| 167 pipeline.add_args("-l",args.sliding_window_length) | 176 pipeline.add_args("-l",args.sliding_window_length) |
| 168 if args.reference_data_path: | 177 if args.reference_data_path: |
| 169 pipeline.add_args("-r",args.reference_data_path) | 178 pipeline.add_args("-r",args.reference_data_path) |
| 170 pipeline.add_args("-P",args.pipeline) | 179 pipeline.add_args("-P",args.pipeline) |
| 171 if args.use_silva: | 180 if ref_database == "silva": |
| 172 pipeline.add_args("-S") | 181 pipeline.add_args("-S") |
| 182 elif ref_database == "homd": | |
| 183 pipeline.add_args("-H") | |
| 173 | 184 |
| 174 # Echo the pipeline command to stdout | 185 # Echo the pipeline command to stdout |
| 175 print "Running %s" % pipeline | 186 print "Running %s" % pipeline |
| 176 | 187 |
| 177 # Run the pipeline | 188 # Run the pipeline |
| 188 ex.returncode) | 199 ex.returncode) |
| 189 exit_code = ex.returncode | 200 exit_code = ex.returncode |
| 190 except Exception as ex: | 201 except Exception as ex: |
| 191 # Some other problem | 202 # Some other problem |
| 192 sys.stderr.write("Unexpected error: %s\n" % str(ex)) | 203 sys.stderr.write("Unexpected error: %s\n" % str(ex)) |
| 204 exit_code = 1 | |
| 193 | 205 |
| 194 # Write out the list of outputs | 206 # Write out the list of outputs |
| 195 outputs_file = "Pipeline_outputs.txt" | 207 outputs_file = "Pipeline_outputs.txt" |
| 196 list_outputs(outputs_file) | 208 list_outputs(outputs_file) |
| 197 | 209 |
| 296 # Alpha diversity boxplots | 308 # Alpha diversity boxplots |
| 297 print "Amplicon analysis: indexing alpha diversity boxplots" | 309 print "Amplicon analysis: indexing alpha diversity boxplots" |
| 298 boxplots_dir = os.path.abspath( | 310 boxplots_dir = os.path.abspath( |
| 299 os.path.join("RESULTS", | 311 os.path.join("RESULTS", |
| 300 "%s_%s" % (args.pipeline.title(), | 312 "%s_%s" % (args.pipeline.title(), |
| 301 ("gg" if not args.use_silva | 313 ref_database), |
| 302 else "silva")), | |
| 303 "Alpha_diversity", | 314 "Alpha_diversity", |
| 304 "Alpha_diversity_boxplot", | 315 "Alpha_diversity_boxplot", |
| 305 "Categories_shannon")) | 316 "Categories_shannon")) |
| 306 print "Amplicon analysis: gathering PDFs from %s" % boxplots_dir | 317 print "Amplicon analysis: gathering PDFs from %s" % boxplots_dir |
| 307 boxplot_pdfs = [os.path.basename(pdf) | 318 boxplot_pdfs = [os.path.basename(pdf) |