diff --git a/src/metric.py b/src/metric.py index 49d0f4a..c9b598f 100644 --- a/src/metric.py +++ b/src/metric.py @@ -409,20 +409,7 @@ def run(args): sig_algn_dic['ss'] = moves sig_algn_dic['ref_name'] = "" - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) draw_data['y_min'] = np.nanmin(y) draw_data['y_max'] = np.nanmax(y) @@ -612,20 +599,7 @@ def run(args): # print(len(moves)) # print(fasta_seq) - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) # print(len(sig_algn_dic['ss'])) draw_data['y_min'] = np.nanmin(y) @@ -824,20 +798,7 @@ def run(args): sig_algn_dic['ref_name'] = ref_name sig_algn_dic['ref_pos_dic'] = ref_pos_dic - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) # print(len(moves)) # print(fasta_seq) diff --git a/src/plot.py b/src/plot.py index 3d1aaa7..c5f2ce1 100644 --- a/src/plot.py +++ b/src/plot.py @@ -677,20 +677,7 @@ def run(args): sig_algn_dic['data_is_rna'] = data_is_rna sig_algn_dic['ss'] = moves - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) if args.fixed_width: sig_algn_dic['tag_name'] = args.tag_name + indt + "base_shift: " + str(draw_data["base_shift"]) + indt + "scale:" + scaling_str + indt + "fixed_width: " + str(args.base_width) + indt + strand_dir + indt + "region: " @@ -902,20 +889,7 @@ def run(args): sig_algn_dic['ss'] = moves # print(len(moves)) # print(fasta_seq) - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) if args.fixed_width: sig_algn_dic['tag_name'] = args.tag_name + indt + "base_shift: " + str(draw_data["base_shift"]) + indt + "scale:" + scaling_str + indt + "fixed_width: " + str(args.base_width) + indt + strand_dir + indt + "region: " + ref_name + ":" @@ -1120,20 +1094,7 @@ def run(args): sig_algn_dic['data_is_rna'] = data_is_rna sig_algn_dic['ss'] = moves - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) if args.fixed_width: sig_algn_dic['tag_name'] = args.tag_name + indt + "base_shift: " + str(draw_data["base_shift"]) + indt + "scale:" + scaling_str + indt + "fixed_width: " + str(args.base_width) + indt + strand_dir + indt + "region: " + ref_name + ":" diff --git a/src/plot_pileup.py b/src/plot_pileup.py index c2a452e..b86ad42 100644 --- a/src/plot_pileup.py +++ b/src/plot_pileup.py @@ -573,22 +573,9 @@ def run(args): sig_algn_dic['ss'] = moves # print(len(moves)) # print(fasta_seq) - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) # print(len(sig_algn_dic['ss'])) - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] - sig_algn_dic['tag_name'] = args.tag_name + indt + "base_shift: " + str(draw_data["base_shift"]) + indt + "scale:" + scaling_str + indt + "fixed_width: " + str(args.base_width) + indt + strand_dir + indt + "region: " + ref_name + ":" y_min = math.floor(np.nanmin(y)) @@ -803,20 +790,7 @@ def run(args): sig_algn_dic['ss'] = moves # print(len(moves)) # print(fasta_seq) - signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq) - - if draw_data["base_shift"] < 0: - abs_base_shift = abs(draw_data["base_shift"]) - x = signal_tuple[0] - x_real = signal_tuple[1] - y = signal_tuple[2] - y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] - y = np.concatenate((y_prefix, y), axis=0) - x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) - x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) - signal_tuple = (x, x_real, y) - moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift - sig_algn_dic['ss'] = moves_prefix + sig_algn_dic['ss'] + signal_tuple, region_tuple, sig_algn_dic, fasta_seq = plot_utils.adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dic, fasta_seq, draw_data) sig_algn_dic['tag_name'] = args.tag_name + indt + "base_shift: " + str(draw_data["base_shift"]) + indt + "scale:" + scaling_str + indt + "fixed_width: " + str(args.base_width) + indt + strand_dir + indt + "region: " + ref_name + ":" diff --git a/src/plot_utils.py b/src/plot_utils.py index fed7d93..05b57e2 100644 --- a/src/plot_utils.py +++ b/src/plot_utils.py @@ -19,7 +19,7 @@ def get_base_color_map(): base_color_map = {'A': '#d6f5d6', 'C': '#ccccff', 'T': '#ffcccc', 'G': '#ffedcc', 'U': '#ffcccc', 'N': '#fafafe', 'M': '#000000', 'R': '#000000', 'W': '#000000', 'S': '#000000', 'Y': '#000000', 'K': '#000000', 'V': '#000000', 'H': '#000000', 'D': '#000000', 'B': '#000000'} return base_color_map -def adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_data, fasta_seq): +def adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_data, fasta_seq, draw_data): if sig_algn_data["data_is_rna"]: ref_region_start_diff = region_tuple[1] - region_tuple[3] else: @@ -62,6 +62,20 @@ def adjust_before_plotting(ref_seq_len, signal_tuple, region_tuple, sig_algn_dat y = signal_tuple[2][eat_signal:] signal_tuple = (x, x_real, y) sig_algn_data['ss'] = moves + + if draw_data["base_shift"] < 0: + abs_base_shift = abs(draw_data["base_shift"]) + x = signal_tuple[0] + x_real = signal_tuple[1] + y = signal_tuple[2] + y_prefix = [np.nan] * abs_base_shift * draw_data["fixed_base_width"] + y = np.concatenate((y_prefix, y), axis=0) + x_real = np.concatenate(([1] * abs_base_shift * draw_data["fixed_base_width"], x_real), axis=0) + x = list(range(1, len(x) + 1 + abs_base_shift * draw_data["fixed_base_width"])) + signal_tuple = (x, x_real, y) + moves_prefix = [str(draw_data["fixed_base_width"])] * abs_base_shift + sig_algn_data['ss'] = moves_prefix + sig_algn_data['ss'] + return signal_tuple, region_tuple, sig_algn_data, fasta_seq def create_figure(args, plot_mode): p_defualt = None