Mercurial > repos > konradpaszkiewicz > assemblystats
comparison assembly_stats_txt.py @ 0:6544228ea290 default tip
Migrated tool version 1.0.1 from old tool shed archive to new tool shed repository
| author | konradpaszkiewicz |
|---|---|
| date | Tue, 07 Jun 2011 16:24:46 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:6544228ea290 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 #Version 1.01 - bugs kindly corrected by Jan van Haarst | |
| 3 import pkg_resources | |
| 4 import logging, os, string, sys, tempfile, glob, shutil, types, urllib | |
| 5 import shlex, subprocess | |
| 6 from optparse import OptionParser, OptionGroup | |
| 7 from stat import * | |
| 8 | |
| 9 | |
| 10 log = logging.getLogger( __name__ ) | |
| 11 | |
| 12 assert sys.version_info[:2] >= ( 2, 4 ) | |
| 13 | |
| 14 def stop_err( msg ): | |
| 15 sys.stderr.write( "%s\n" % msg ) | |
| 16 sys.exit() | |
| 17 | |
| 18 def __main__(): | |
| 19 #Parse Command Line | |
| 20 s = 'assembly_stats_txt.py: argv = %s\n' % (sys.argv) | |
| 21 argcnt = len(sys.argv) | |
| 22 html_file = sys.argv[1] | |
| 23 working_dir = sys.argv[2] | |
| 24 type = sys.argv[3] | |
| 25 bucket = sys.argv[4] | |
| 26 input = sys.argv[5] | |
| 27 stats = sys.argv[6] | |
| 28 sortedcontigs = sys.argv[7] | |
| 29 histogrampng = sys.argv[8] | |
| 30 summedcontigspng = sys.argv[9] | |
| 31 histogramdata = sys.argv[10] | |
| 32 summedcontigdata = sys.argv[11] | |
| 33 try: # for test - needs this done | |
| 34 os.makedirs(working_dir) | |
| 35 except Exception, e: | |
| 36 stop_err( 'Error running assembly_stats_txt.py ' + str( e ) ) | |
| 37 | |
| 38 | |
| 39 cmdline = '%s/fasta_summary.pl -i %s -t %s %s -o %s > /dev/null' % (os.path.dirname(sys.argv[0]),input, type, bucket, working_dir) | |
| 40 try: | |
| 41 proc = subprocess.Popen( args=cmdline, shell=True, stderr=subprocess.PIPE ) | |
| 42 returncode = proc.wait() | |
| 43 # get stderr, allowing for case where it's very large | |
| 44 stderr = '' | |
| 45 buffsize = 1048576 | |
| 46 try: | |
| 47 while True: | |
| 48 stderr += proc.stderr.read( buffsize ) | |
| 49 if not stderr or len( stderr ) % buffsize != 0: | |
| 50 break | |
| 51 except OverflowError: | |
| 52 pass | |
| 53 if returncode != 0: | |
| 54 raise Exception, stderr | |
| 55 except Exception, e: | |
| 56 stop_err( 'Error running assembly_stats.py ' + str( e ) ) | |
| 57 | |
| 58 stats_path = os.path.join(working_dir,'stats.txt') | |
| 59 sorted_contigs_path = os.path.join(working_dir,'sorted_contigs.fa') | |
| 60 histogram_png_path = os.path.join(working_dir,'histogram_bins.dat.png') | |
| 61 summed_contigs_path = os.path.join(working_dir,'summed_contig_lengths.dat.png') | |
| 62 histogram_data_path = os.path.join(working_dir,'histogram_bins.dat') | |
| 63 summed_contigs_data_path = os.path.join(working_dir,'summed_contig_lengths.dat') | |
| 64 | |
| 65 out = open(stats,'w') | |
| 66 for line in open( stats_path ): | |
| 67 out.write( "%s" % (line) ) | |
| 68 out.close() | |
| 69 | |
| 70 out = open(sortedcontigs,'w') | |
| 71 for line in open(sorted_contigs_path ): | |
| 72 out.write( "%s" % (line) ) | |
| 73 out.close() | |
| 74 | |
| 75 out = open(histogrampng,'w') | |
| 76 for line in open(histogram_png_path ): | |
| 77 out.write( "%s" % (line) ) | |
| 78 out.close() | |
| 79 | |
| 80 out = open(summedcontigspng,'w') | |
| 81 for line in open(summed_contigs_path ): | |
| 82 out.write( "%s" % (line) ) | |
| 83 out.close() | |
| 84 | |
| 85 | |
| 86 out = open(histogramdata,'w') | |
| 87 for line in open(histogram_data_path ): | |
| 88 out.write( "%s" % (line) ) | |
| 89 out.close() | |
| 90 | |
| 91 out = open(summedcontigdata,'w') | |
| 92 for line in open(summed_contigs_data_path ): | |
| 93 out.write( "%s" % (line) ) | |
| 94 out.close() | |
| 95 | |
| 96 | |
| 97 | |
| 98 | |
| 99 | |
| 100 | |
| 101 | |
| 102 | |
| 103 | |
| 104 # rval = ['<html><head><title>Assembly stats Galaxy Composite Dataset </title></head><p/>'] | |
| 105 # rval.append('<div>%s<p/></div>' % (cmdline) ) | |
| 106 # rval.append('<div>This composite dataset is composed of the following files:<p/><ul>') | |
| 107 # rval.append( '<li><a href="%s" type="text/plain">%s </a>%s</li>' % (stats_path,'stats.txt','stats.txt' ) ) | |
| 108 # rval.append( '<li><a href="%s" type="text/plain">%s </a>%s</li>' % (sorted_contigs_path,'sorted_contigs.fa','sorted_contigs.fa' ) ) | |
| 109 # rval.append( '<li><a href="%s" type="image/png">%s </a>%s</li>' % (histogram_png_path,'histogram_bins.dat.png','histogram_bins.dat.png' ) ) | |
| 110 # rval.append( '<li><a href="%s" type="image/png">%s </a>%s</li>' % (summed_contigs_path,'summed_contig_lengths.dat.png','summed_contig_lengths.dat.png' ) ) | |
| 111 # rval.append( '<li><a href="%s" type="text/plain">%s </a>%s</li>' % (histogram_data_path,'histogram_bins.dat','histogram_bins.dat' ) ) | |
| 112 # rval.append( '<li><a href="%s" type="text/plain">%s </a>%s</li>' % (summed_contigs_data_path,'summed_contig_lengths.dat','summed_contig_lengths.dat' ) ) | |
| 113 | |
| 114 | |
| 115 # | |
| 116 # rval.append( '</ul></div></html>' ) | |
| 117 # f = file(html_file,'w') | |
| 118 # f.write("\n".join( rval )) | |
| 119 # f.write('\n') | |
| 120 # f.close() | |
| 121 | |
| 122 if __name__ == "__main__": __main__() |
