Mercurial > repos > nml > assemblystats
comparison assembly_stats_txt.py @ 0:ad2b274663f8 draft
planemo upload for repository https://github.com/phac-nml/galaxy_tools commit 3f9ae719338c7c8db81d645b8ee09727e2d9ce23
| author | nml |
|---|---|
| date | Tue, 07 Nov 2017 12:28:31 -0500 |
| parents | |
| children | 7556309ffbaf |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:ad2b274663f8 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 # -*- coding: utf-8 -*- | |
| 3 | |
| 4 # Version 1.01 - bugs kindly corrected by Jan van Haarst | |
| 5 # Modified by Matthew Gopez October 13th, 2017 | |
| 6 | |
| 7 import logging | |
| 8 import os | |
| 9 import subprocess | |
| 10 import sys | |
| 11 | |
| 12 | |
| 13 log = logging.getLogger(__name__) | |
| 14 | |
| 15 assert sys.version_info[:2] >= (2, 4) | |
| 16 | |
| 17 | |
| 18 def stop_err(msg): | |
| 19 sys.stderr.write('%s\n' % msg) | |
| 20 sys.exit() | |
| 21 | |
| 22 | |
| 23 def __main__(): | |
| 24 | |
| 25 # Parse Command Line | |
| 26 | |
| 27 working_dir = sys.argv[2] | |
| 28 type = sys.argv[3] | |
| 29 bucket = sys.argv[4] | |
| 30 input = sys.argv[5] | |
| 31 stats = sys.argv[6] | |
| 32 sortedcontigs = sys.argv[7] | |
| 33 histogrampng = sys.argv[8] | |
| 34 summedcontigspng = sys.argv[9] | |
| 35 histogramdata = sys.argv[10] | |
| 36 summedcontigdata = sys.argv[11] | |
| 37 try: # for test - needs this done | |
| 38 os.makedirs(working_dir) | |
| 39 except Exception, e: | |
| 40 stop_err('Error running assembly_stats_txt.py ' + str(e)) | |
| 41 | |
| 42 cmdline = '%s/fasta_summary.pl -i %s -t %s %s -o %s > /dev/null' \ | |
| 43 % (os.path.dirname(sys.argv[0]), input, type, bucket, | |
| 44 working_dir) | |
| 45 try: | |
| 46 proc = subprocess.Popen(args=cmdline, shell=True, | |
| 47 stderr=subprocess.PIPE) | |
| 48 returncode = proc.wait() | |
| 49 | |
| 50 # get stderr, allowing for case where it's very large | |
| 51 | |
| 52 stderr = '' | |
| 53 buffsize = 1048576 | |
| 54 try: | |
| 55 while True: | |
| 56 stderr += proc.stderr.read(buffsize) | |
| 57 if not stderr or len(stderr) % buffsize != 0: | |
| 58 break | |
| 59 except OverflowError: | |
| 60 pass | |
| 61 if returncode != 0: | |
| 62 raise Exception | |
| 63 except Exception, e: | |
| 64 stop_err('Error running assembly_stats.py ' + str(e)) | |
| 65 | |
| 66 stats_path = os.path.join(working_dir, 'stats.txt') | |
| 67 sorted_contigs_path = os.path.join(working_dir, 'sorted_contigs.fa') | |
| 68 histogram_png_path = os.path.join(working_dir, | |
| 69 'histogram_bins.dat.png') | |
| 70 summed_contigs_path = os.path.join(working_dir, | |
| 71 'summed_contig_lengths.dat.png') | |
| 72 histogram_data_path = os.path.join(working_dir, 'histogram_bins.dat') | |
| 73 summed_contigs_data_path = os.path.join(working_dir, | |
| 74 'summed_contig_lengths.dat') | |
| 75 | |
| 76 out = open(stats, 'w') | |
| 77 for line in open(stats_path): | |
| 78 out.write('%s' % line) | |
| 79 out.close() | |
| 80 | |
| 81 out = open(sortedcontigs, 'w') | |
| 82 for line in open(sorted_contigs_path): | |
| 83 out.write('%s' % line) | |
| 84 out.close() | |
| 85 | |
| 86 out = open(histogrampng, 'w') | |
| 87 for line in open(histogram_png_path): | |
| 88 out.write('%s' % line) | |
| 89 out.close() | |
| 90 | |
| 91 out = open(summedcontigspng, 'w') | |
| 92 for line in open(summed_contigs_path): | |
| 93 out.write('%s' % line) | |
| 94 out.close() | |
| 95 | |
| 96 out = open(histogramdata, 'w') | |
| 97 for line in open(histogram_data_path): | |
| 98 out.write('%s' % line) | |
| 99 out.close() | |
| 100 | |
| 101 out = open(summedcontigdata, 'w') | |
| 102 for line in open(summed_contigs_data_path): | |
| 103 out.write('%s' % line) | |
| 104 out.close() | |
| 105 | |
| 106 | |
| 107 if __name__ == '__main__': | |
| 108 __main__() |
