예제 #1
0
def correlation(mat_file_1, mat_file_2):
    """
    Draws the plot
    """

    blockades_1 = read_mat(mat_file_1)
    blockades_1 = sp._fractional_blockades(blockades_1)
    blockades_1 = sp._filter_by_duration(blockades_1, 0.5, 20)
    blockades_1 = map(lambda b: sp.discretize(sp._trim_flank_noise(b.eventTrace), 20), blockades_1)

    blockades_2 = read_mat(mat_file_2)
    blockades_2 = sp._fractional_blockades(blockades_2)
    blockades_2 = sp._filter_by_duration(blockades_2, 0.5, 20)
    blockades_2 = map(lambda b: sp.discretize(sp._trim_flank_noise(b.eventTrace), 20), blockades_2)

    self_corr = []
    cross_corr = []
    for blockade in blockades_1:
        block_self = []
        for other in blockades_1:
            block_self.append(1 - distance.correlation(blockade, other))
        block_cross = []
        for other in blockades_2:
            block_cross.append(1 - distance.correlation(blockade, other))
        self_corr.append(np.mean(block_self))
        cross_corr.append(np.mean(block_cross))

    mean_self = np.median(self_corr)
    mean_cross = np.median(cross_corr)

    matplotlib.rcParams.update({"font.size": 16})
    fig = plt.subplot()

    fig.spines["right"].set_visible(False)
    fig.spines["top"].set_visible(False)
    fig.get_xaxis().tick_bottom()
    fig.get_yaxis().tick_left()
    fig.set_xlim(-0.6, 0.6)
    fig.set_ylim(-0.6, 0.6)
    fig.set_xlabel("(H3 tail, H3 tail) correlation")
    fig.set_ylabel("(H3 tail, CCL5) correlation")

    for y in [-0.4, -0.2, 0, 0.2, 0.4]:
        plt.plot((-0.6, 0.6), (y, y), "--",
                 lw=0.5, color="black")
        plt.plot((y, y), (-0.6, 0.6), "--",
                 lw=0.5, color="black")

    plt.plot((-0.6, 0.6), (mean_cross, mean_cross), "--",
             lw=1.5, color="red")
    plt.plot((mean_self, mean_self), (-0.6, 0.6), "--",
             lw=1.5, color="red")

    fig.scatter(self_corr, cross_corr, linewidth=0.5, c="dodgerblue", 
                s=30, edgecolor="blue")

    plt.tight_layout()
    plt.show()
예제 #2
0
def frequency_distribution(blockades_file, detailed):
    """
    Plots the frequency distribution
    """
    blockades = read_mat(blockades_file)
    blockades = sp._fractional_blockades(blockades)
    blockades = sp._filter_by_duration(blockades, 0.5, 20)

    peaks_count = {}
    for blockade in blockades:
        if detailed:
            detailed_plots(blockade)

        signal = blockade.eventTrace[1000:-1000]
        xx, yy = sp.find_peaks(signal)
        peaks_count[blockade] = len(xx) / blockade.ms_Dwell * 5 / 4

    mean = np.mean(peaks_count.values())
    errors = map(lambda e: peaks_count[e] - mean, blockades)
    lengths = map(lambda e: e.ms_Dwell, blockades)

    f, (s1, s2) = plt.subplots(2)
    s1.scatter(lengths, errors)
    s2.hist(peaks_count.values(), bins=100)
    plt.show()
예제 #3
0
def frequency_distribution(blockades_file, detailed):
    """
    Plots the frequency distribution
    """
    blockades = read_mat(blockades_file)
    blockades = sp._fractional_blockades(blockades)
    blockades = sp._filter_by_duration(blockades, 0.5, 20)

    peaks_count = {}
    for blockade in blockades:
        if detailed:
            detailed_plots(blockade)

        signal = blockade.eventTrace[1000:-1000]
        xx, yy = sp.find_peaks(signal)
        peaks_count[blockade] = len(xx) / blockade.ms_Dwell * 5 / 4

    mean = np.mean(peaks_count.values())
    errors = map(lambda e: peaks_count[e] - mean, blockades)
    lengths = map(lambda e: e.ms_Dwell, blockades)

    f, (s1, s2) = plt.subplots(2)
    s1.scatter(lengths, errors)
    s2.hist(peaks_count.values(), bins=100)
    plt.show()
예제 #4
0
def frequency_plot(blockade_files):
    """
    Draws the plot
    """
    datasets_names = []
    frequencies = []
    for file in blockade_files:
        blockades = read_mat(file)
        blockades = sp._fractional_blockades(blockades)
        blockades = sp._filter_by_duration(blockades, 0.5, 20)

        dataset_freqs = []
        for blockade in blockades:
            xx, yy = sp.find_peaks(blockade.eventTrace[1000:-1000])
            dataset_freqs.append(len(xx) / blockade.ms_Dwell * 5 / 4)

        frequencies.append(dataset_freqs)
        datasets_names.append(os.path.basename(file).split(".")[0])

    x_axis = np.arange(min(sum(frequencies, [])) - 10, max(sum(frequencies, [])) + 10, 0.1)
    matplotlib.rcParams.update({"font.size": 16})
    fig = plt.subplot()

    colors = ["blue", "green", "red", "cyan"]
    for distr, name, color in zip(frequencies, datasets_names, colors):
        density = gaussian_kde(distr)
        density.covariance_factor = lambda: 0.25
        density._compute_covariance
        gauss_dens = density(x_axis)

        fig.spines["right"].set_visible(False)
        fig.spines["top"].set_visible(False)
        fig.get_xaxis().tick_bottom()
        fig.get_yaxis().tick_left()
        fig.set_ylim(0, 0.16)

        fig.plot(x_axis, gauss_dens, antialiased=True, linewidth=2, color=color, alpha=0.7, label=name)
        fig.fill_between(x_axis, gauss_dens, alpha=0.5, antialiased=True, color=color)

    fig.set_xlabel("Fluctuation frequency, 1/ms")
    legend = fig.legend(loc="upper left", frameon=False)
    for label in legend.get_lines():
        label.set_linewidth(3)
    for label in legend.get_texts():
        label.set_fontsize(16)
    plt.show()
예제 #5
0
def correlation(mat_file_1, mat_file_2):
    """
    Draws the plot
    """

    blockades_1 = read_mat(mat_file_1)
    blockades_1 = sp._fractional_blockades(blockades_1)
    blockades_1 = sp._filter_by_duration(blockades_1, 0.5, 20)
    blockades_1 = map(
        lambda b: sp.discretize(sp._trim_flank_noise(b.eventTrace), 20),
        blockades_1)

    blockades_2 = read_mat(mat_file_2)
    blockades_2 = sp._fractional_blockades(blockades_2)
    blockades_2 = sp._filter_by_duration(blockades_2, 0.5, 20)
    blockades_2 = map(
        lambda b: sp.discretize(sp._trim_flank_noise(b.eventTrace), 20),
        blockades_2)

    self_corr = []
    cross_corr = []
    for blockade in blockades_1:
        block_self = []
        for other in blockades_1:
            block_self.append(1 - distance.correlation(blockade, other))
        block_cross = []
        for other in blockades_2:
            block_cross.append(1 - distance.correlation(blockade, other))
        self_corr.append(np.mean(block_self))
        cross_corr.append(np.mean(block_cross))

    mean_self = np.median(self_corr)
    mean_cross = np.median(cross_corr)

    matplotlib.rcParams.update({"font.size": 16})
    fig = plt.subplot()

    fig.spines["right"].set_visible(False)
    fig.spines["top"].set_visible(False)
    fig.get_xaxis().tick_bottom()
    fig.get_yaxis().tick_left()
    fig.set_xlim(-0.6, 0.6)
    fig.set_ylim(-0.6, 0.6)
    fig.set_xlabel("(H3 tail, H3 tail) correlation")
    fig.set_ylabel("(H3 tail, CCL5) correlation")

    for y in [-0.4, -0.2, 0, 0.2, 0.4]:
        plt.plot((-0.6, 0.6), (y, y), "--", lw=0.5, color="black")
        plt.plot((y, y), (-0.6, 0.6), "--", lw=0.5, color="black")

    plt.plot((-0.6, 0.6), (mean_cross, mean_cross), "--", lw=1.5, color="red")
    plt.plot((mean_self, mean_self), (-0.6, 0.6), "--", lw=1.5, color="red")

    fig.scatter(self_corr,
                cross_corr,
                linewidth=0.5,
                c="dodgerblue",
                s=30,
                edgecolor="blue")

    plt.tight_layout()
    plt.show()