From 170f9d2d77bd5ea5d1aed5235252364617ebc2e7 Mon Sep 17 00:00:00 2001 From: Wen-Yu Chung Date: Fri, 19 Dec 2008 12:25:52 -0500 Subject: [PATCH] fixed for short read build distribution tool. remove unused arrays. also update test data output. --- test-data/454Score.png | Bin 3861 -> 4315 bytes tools/metag_tools/short_reads_figure_score.py | 35 +++++++----------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/test-data/454Score.png b/test-data/454Score.png index 98b01e702dcf496ced428a1b82994f1aef7a6a30..189dea2c6f29fecbe4f5e4a6fba35f8635838ee4 100644 GIT binary patch literal 4315 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 Sk?qvKg&WtoyIgh(KKvg_JsdFr literal 3861 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 Df*8g$ diff --git a/tools/metag_tools/short_reads_figure_score.py b/tools/metag_tools/short_reads_figure_score.py index 2d7f43b6085..c3d73ea9ef8 100644 --- a/tools/metag_tools/short_reads_figure_score.py +++ b/tools/metag_tools/short_reads_figure_score.py @@ -62,6 +62,9 @@ def merge_to_20_datapoints( score ): return score_points def __main__(): + + invalid_lines = 0 + infile_score_name = sys.argv[1].strip() outfile_R_name = sys.argv[2].strip() @@ -150,7 +153,7 @@ def __main__(): number_of_points = 20 else: number_of_points = read_length - quality_score = {} # quantile dictionary + read_length_threshold = 100 # minimal read length for 454 file score_points = [] score_matrix = [] @@ -177,12 +180,7 @@ def __main__(): big = 0 tmp_array.append( big ) score_points.append( tmp_array ) - # quartile - for j, k in enumerate( tmp_array ): - if quality_score.has_key( ( j, k ) ): - quality_score[ ( j, k ) ] += 1 - else: - quality_score[ ( j, k ) ] = 1 + elif seq_method == '454': # skip the last fasta sequence score = '' @@ -203,12 +201,6 @@ def __main__(): score_points_tmp = merge_to_20_datapoints( score ) score_points.append( score_points_tmp ) tmp_array = score_points_tmp - # quartile - for j, k in enumerate( tmp_array ): - if quality_score.has_key( ( j, k ) ): - quality_score[ ( j, k ) ] += 1 - else: - quality_score[ ( j ,k ) ] = 1 score = '' else: score = "%s %s" % ( score, line ) @@ -222,19 +214,16 @@ def __main__(): score_points_tmp = merge_to_20_datapoints( score ) score_points.append( score_points_tmp ) tmp_array = score_points_tmp - for j, k in enumerate( tmp_array ): - if quality_score.has_key( ( j, k ) ): - quality_score[ ( j, k ) ] += 1 - else: - quality_score[ ( j, k ) ] = 1 # reverse the matrix, for R - tmp_array = [] for i in range( number_of_points - 1 ): - for j in range( len( score_points ) ): - tmp_array.append( int( score_points[j][i] ) ) - score_matrix.append( tmp_array ) tmp_array = [] + for j in range( len( score_points ) ): + try: + tmp_array.append( int( score_points[j][i] ) ) + except: + invalid_lines += 1 + score_matrix.append( tmp_array ) # generate pdf figures #outfile_R_pdf = outfile_R_name @@ -268,6 +257,8 @@ def __main__(): if invalid_scores > 0: print 'Skipped %d invalid scores. ' % invalid_scores + if invalid_lines > 0: + print 'Skipped %d invalid lines. ' % invalid_lines if empty_score_matrix_columns > 0: print '%d missing scores in score_matrix. ' % empty_score_matrix_columns