def calculate_kern(attribute_of_interaction_, sample_, l_limit, up_limit, number_of_bins, colour = ("r", "b"), weights_ = None, bandwidth_pos = None, bandwidth_neg = None): prob_ = {} bins_ = {} import kern_density_est kern_density_est.plot_atr = plot_atr_kernel xgrid = [[],[]] xgrid[0] = np.linspace(l_limit, up_limit, number_of_bins[0]) xgrid[1] = np.linspace(l_limit, up_limit, number_of_bins[1]) if domain: if attribute_of_interaction_ == "distance": prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["positive_interactions"], colour[0], xgrid[0], weights = weights_["positive_interactions"], bandwidth = bandwidth_pos) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["negative_interactions"], colour[1], xgrid[1], weights = weights_["negative_interactions"], bandwidth = bandwidth_neg) else: prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth = bandwidth_pos) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth = bandwidth_neg) else: prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth=bandwidth_pos) prob_["negative_interactions"], bins_["negative_interactions"] = [], [] if not(Sample_MoG_classificator): prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth=bandwidth_neg) if use_smooth_prior_for_estimation: return prob_, bins_ else: return [[], []], [[], []]
def calculate_kern(attribute_of_interaction_, sample_, l_limit, up_limit, number_of_bins, colour=("r", "b"), weights_=None, bandwidth_pos=None, bandwidth_neg=None): prob_ = {} bins_ = {} import kern_density_est kern_density_est.plot_atr = plot_atr_kernel xgrid = [[], []] xgrid[0] = np.linspace(l_limit, up_limit, number_of_bins[0]) xgrid[1] = np.linspace(l_limit, up_limit, number_of_bins[1]) if domain: if attribute_of_interaction_ == "distance": prob_["positive_interactions"], bins_[ "positive_interactions"] = kern_density_est.kern_scipy_gaus_weighted( sample_["positive_interactions"], colour[0], xgrid[0], weights=weights_["positive_interactions"], bandwidth=bandwidth_pos) prob_["negative_interactions"], bins_[ "negative_interactions"] = kern_density_est.kern_scipy_gaus_weighted( sample_["negative_interactions"], colour[1], xgrid[1], weights=weights_["negative_interactions"], bandwidth=bandwidth_neg) else: prob_["positive_interactions"], bins_[ "positive_interactions"] = kern_density_est.kern_scipy_gaus( sample_["positive_interactions"], colour[0], xgrid[0], bandwidth=bandwidth_pos) prob_["negative_interactions"], bins_[ "negative_interactions"] = kern_density_est.kern_scipy_gaus( sample_["negative_interactions"], colour[1], xgrid[1], bandwidth=bandwidth_neg) else: prob_["positive_interactions"], bins_[ "positive_interactions"] = kern_density_est.kern_scipy_gaus( sample_["positive_interactions"], colour[0], xgrid[0], bandwidth=bandwidth_pos) prob_["negative_interactions"], bins_[ "negative_interactions"] = [], [] if not (Sample_MoG_classificator): prob_["negative_interactions"], bins_[ "negative_interactions"] = kern_density_est.kern_scipy_gaus( sample_["negative_interactions"], colour[1], xgrid[1], bandwidth=bandwidth_neg) if use_smooth_prior_for_estimation: return prob_, bins_ else: return [[], []], [[], []]
def calculate_or_plot_kern(attribute_of_interaction_, sample_, l_limit, up_limit, number_of_bins, colour = ("r", "b"), weights_ = None, bandwidth_pos = None, bandwidth_neg = None): prob_ = {} bins_ = {} import kern_density_est kern_density_est.plot_atr = plot_atr_kernel xgrid = [[],[]] xgrid[0] = np.linspace(l_limit, up_limit, number_of_bins[0]) xgrid[1] = np.linspace(l_limit, up_limit, number_of_bins[1]) if domain: if attribute_of_interaction_ == "distance": #prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["positive_interactions"], colour[0], xgrid[0], weights = weights_["positive_interactions"], bandwidth = "scott", factor = None)#bandwidth_pos) #prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["negative_interactions"], colour[1], xgrid[1], weights = weights_["negative_interactions"], bandwidth = "scott", factor = None)#bandwidth_neg) prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["positive_interactions"], colour[0], xgrid[0], weights = weights_["positive_interactions"], bandwidth = bandwidth_pos, plot_atr = True)#bandwidth_pos) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus_weighted(sample_["negative_interactions"], colour[1], xgrid[1], weights = weights_["negative_interactions"], bandwidth = bandwidth_neg, plot_atr = True)#bandwidth_neg) #bandwidth_pos = kern_density_est.cross_validation(sample_["positive_interactions"])# * sample_["positive_interactions"].std(ddof=1) #bandwidth_neg = kern_density_est.cross_validation(sample_["negative_interactions"])# * sample_["negative_interactions"].std(ddof=1) #prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kernel_weighted_samples(sample_["positive_interactions"], colour[0], xgrid[0], weights = weights_["positive_interactions"], fft = False, bw=bandwidth_pos) #prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kernel_weighted_samples(sample_["negative_interactions"], colour[1], xgrid[1], weights = weights_["negative_interactions"], fft = False, bw=bandwidth_neg) else: #kernel_ = "gaussian" #bandwidth_pos = kern_density_est.cross_validation(sample_["positive_interactions"], kernel = kernel_) # kernel = #bandwidth_neg = kern_density_est.cross_validation(sample_["negative_interactions"], kernel = kernel_) #prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_sklearn_expon(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth = bandwidth_pos, kernel_ = kernel_) #prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_sklearn_expon(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth = bandwidth_neg, kernel_ = kernel_) bandwidth_pos = kern_density_est.chrom_cross_validation_correlation(prior_elements, data_set_name, thresholds = np.linspace(0.01, .4, 200), classification_of_interactions = "positive_interactions", plot_likelihood_function = False) bandwidth_neg = kern_density_est.chrom_cross_validation_correlation(prior_elements, data_set_name, thresholds = np.linspace(0.01, .4, 200), classification_of_interactions = "negative_interactions", plot_likelihood_function = False) prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth = bandwidth_pos) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth = bandwidth_neg) else: #if attribute_of_interaction_ == "distance": bandwidth_pos = optimum["distance"][ite] #else: bandwidth_pos = optimum[data_set_name] if attribute_of_interaction_ == "distance" and positive_or_negative_side == "negative_side": label_1, label_2 = None, None else: label_1, label_2 = "positive interactions", "negative interactions" if likelihood_cross_validation: if attribute_of_interaction_ == "correlation": bandwidth_pos = kern_density_est.chrom_cross_validation_correlation(prior_elements, data_set_name, thresholds = np.linspace(0.01, .4, 200), classification_of_interactions = "positive_interactions", plot_likelihood_function = False) print bandwidth_pos prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth = bandwidth_pos, label = label_1) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth = "scott", label = label_2) else: bandwidth_pos = kern_density_est.cross_validation(sample_["positive_interactions"])# * sample_["positive_interactions"].std(ddof=1) print bandwidth_pos prob_["positive_interactions"], bins_["positive_interactions"] = kern_density_est.kern_scipy_gaus(sample_["positive_interactions"], colour[0], xgrid[0], bandwidth=bandwidth_pos, label = label_1) prob_["negative_interactions"], bins_["negative_interactions"] = kern_density_est.kern_scipy_gaus(sample_["negative_interactions"], colour[1], xgrid[1], bandwidth="scott", label = label_2) if use_smooth_prior_for_estimation: return prob_, bins_ else: return [[], []], [[], []]