Example #1
0
def filter_peaks_based_on_peak_shape_worker2(max_peaks, i_list, rt_list,
                                             max_peaks_all):

    max_fold_change_score = -1
    best_rt = -1
    best_i = -1

    for rt, i in max_peaks:

        rt_left, rt_right = chrom.get_peak_boundary(rt_list, i_list, rt)
        i_apex = float(i)
        i_left = peak_groups.get_intensity_for_closest_rt(
            rt_left, rt_list, i_list)
        i_right = peak_groups.get_intensity_for_closest_rt(
            rt_right, rt_list, i_list)
        fold_change_left = i_apex / (i_left + 1.0)
        fold_change_right = i_apex / (i_right + 1.0)

        fold_change_score = fold_change_left * fold_change_right

        if fold_change_score > max_fold_change_score:
            max_fold_change_score = fold_change_score
            best_rt = rt
            best_i = i

    max_peaks_all.append((best_rt, best_i))

    return max_peaks_all
Example #2
0
def filter_peaks_based_on_peak_shape_worker2(max_peaks, i_list, rt_list, max_peaks_all):

    max_fold_change_score = -1
    best_rt = -1
    best_i = -1

    for rt, i in max_peaks:

        rt_left, rt_right = chrom.get_peak_boundary(rt_list, i_list, rt)
        i_apex = float(i)
        i_left = peak_groups.get_intensity_for_closest_rt(rt_left, rt_list, i_list)
        i_right = peak_groups.get_intensity_for_closest_rt(rt_right, rt_list, i_list)
        fold_change_left = i_apex / (i_left + 1.0)
        fold_change_right = i_apex / (i_right + 1.0)

        fold_change_score = fold_change_left * fold_change_right

        if fold_change_score > max_fold_change_score:
            max_fold_change_score = fold_change_score
            best_rt = rt
            best_i = i

    max_peaks_all.append((best_rt, best_i))

    return max_peaks_all
Example #3
0
def filter_peaks_based_on_peak_shape_worker(max_peaks, i_list, rt_list, max_peaks_all):

    for rt, i in max_peaks:

        rt_left, rt_right = chrom.get_peak_boundary(rt_list, i_list, rt)
        i_apex = float(i)
        i_left = peak_groups.get_intensity_for_closest_rt(rt_left, rt_list, i_list)
        i_right = peak_groups.get_intensity_for_closest_rt(rt_right, rt_list, i_list)
        fold_change_left = i_apex / (i_left + 1.0)
        fold_change_right = i_apex / (i_right + 1.0)

        if fold_change_left >= parameters.PEAK_SHAPE_FOLD_VARIATION_CRUDE and fold_change_right >= parameters.PEAK_SHAPE_FOLD_VARIATION_CRUDE:
            max_peaks_all.append((rt, i))

    return max_peaks_all
Example #4
0
def filter_peaks_based_on_peak_shape_worker(max_peaks, i_list, rt_list,
                                            max_peaks_all):

    for rt, i in max_peaks:

        rt_left, rt_right = chrom.get_peak_boundary(rt_list, i_list, rt)
        i_apex = float(i)
        i_left = peak_groups.get_intensity_for_closest_rt(
            rt_left, rt_list, i_list)
        i_right = peak_groups.get_intensity_for_closest_rt(
            rt_right, rt_list, i_list)
        fold_change_left = i_apex / (i_left + 1.0)
        fold_change_right = i_apex / (i_right + 1.0)

        if fold_change_left >= parameters.PEAK_SHAPE_FOLD_VARIATION_CRUDE and fold_change_right >= parameters.PEAK_SHAPE_FOLD_VARIATION_CRUDE:
            max_peaks_all.append((rt, i))

    return max_peaks_all
Example #5
0
def find_matched_fragments(chrom_data, tg, sample, rt):

    # fold_change = 0.1 by default

    matched_fragments = []
    matched_fragments_rt_list = []
    matched_fragments_i_list = []
    matched_fragments_peak_rt_left = []
    matched_fragments_peak_rt_right = []

    for fragment in chrom_data[tg][sample].keys():

        if fragment != tg:

            if hasattr(chrom_data[tg][sample][fragment], 'peak_apex_rt_list'):
                peak_apex_rt_list = chrom_data[tg][sample][fragment].peak_apex_rt_list
                peak_apex_i_list = chrom_data[tg][sample][fragment].peak_apex_i_list

                if peak_apex_rt_list != 'NA':

                    for rt0, i in zip(peak_apex_rt_list, peak_apex_i_list):

                        if abs(rt - rt0) < parameters.MAX_RT_TOLERANCE:  # 10 s for 2hr gradient

                            matched_fragments.append(fragment)
                            matched_fragments_rt_list.append(rt0)
                            matched_fragments_i_list.append(i)
                            rt_list = chrom_data[tg][sample][fragment].rt_list
                            i_list = chrom_data[tg][sample][fragment].i_list
                            rt_left, rt_right = chrom.get_peak_boundary(rt_list, i_list, rt0)
                            matched_fragments_peak_rt_left.append(rt_left)
                            matched_fragments_peak_rt_right.append(rt_right)

                            break

    return matched_fragments, matched_fragments_rt_list, matched_fragments_i_list, matched_fragments_peak_rt_left, matched_fragments_peak_rt_right