def create_top_correlations_html(data, fitter, fits, scores, regions, n_top=None): if n_top is None: n_top = len(scores) basedir = join(results_dir(), fit_results_relative_path(data,fitter)) ensure_dir(basedir) gene_dir = 'gene-subplot' series_dir = 'gene-region-fits' def key_func(score): g,r,pval,lst_R2 = score return r scores.sort(key=key_func) top_genes = [g for g,r,pval,lst_R2 in scores[:n_top]] top_scores = {g:r for g,r,pval,lst_R2 in scores[:n_top]} top_pvals = {g:pval for g,r,pval,lst_R2 in scores[:n_top]} def get_onset_time(fit): a,h,mu,_ = fit.theta age = age_scaler.unscale(mu) txt = 'onset = {:.3g} years'.format(age) cls = '' return txt,cls create_html( data, fitter, fits, basedir, gene_dir, series_dir, gene_names = top_genes, region_names = regions, extra_columns = [('r',top_scores),('p-value',top_pvals)], extra_fields_per_fit = [get_onset_time], b_inline_images = True, b_R2_dist = False, ttl = 'Fit for genes with top Spearman correlations', filename = 'top-gradual-maturation', )
def create_top_genes_html(data, fitter, fits, scores, regions, n_top=None, filename_suffix=''): if n_top is None: n_top = len(scores) basedir = join(results_dir(), fit_results_relative_path(data,fitter)) ensure_dir(basedir) gene_dir = 'gene-subplot' series_dir = 'gene-region-fits' def key_func(score): g,pval,qval = score return pval scores.sort(key=key_func) top_genes = [g for g,pval,qval in scores[:n_top]] top_pvals = {g:pval for g,pval,qval in scores[:n_top]} top_qvals = {g:qval for g,pval,qval in scores[:n_top]} n = len(scores) n05 = len([g for g,pval,qval in scores if qval < 0.05]) n01 = len([g for g,pval,qval in scores if qval < 0.01]) top_text = """\ <pre> one sided t-test: {regions[0]} < {regions[1]} {n05}/{n} q-values < 0.05 {n01}/{n} q_values < 0.01 </pre> """.format(**locals()) def get_onset_time(fit): a,h,mu,_ = fit.theta age = age_scaler.unscale(mu) return 'onset = {:.3g} years'.format(age) def get_onset_dist(fit): mu_vals = fit.theta_samples[2,:] mu = mu_vals.mean() vLow,vHigh = np.percentile(mu_vals, (20,80)) mu = age_scaler.unscale(mu) vLow = age_scaler.unscale(vLow) vHigh = age_scaler.unscale(vHigh) txt = 'onset reestimate (mean [20%, 80%]) = {:.3g} [{:.3g},{:.3g}]'.format(mu,vLow,vHigh) cls = '' return txt,cls create_html( data, fitter, fits, basedir, gene_dir, series_dir, gene_names = top_genes, region_names = regions, extra_columns = [('p-value',top_pvals), ('q-value',top_qvals)], extra_fields_per_fit = [get_onset_time, get_onset_dist], b_inline_images = True, inline_image_size = '30%', b_R2_dist = False, ttl = 'Fit for genes with top t-test scores', top_text = top_text, filename = 'gradual-maturation-t-test' + filename_suffix, )
def create_top_correlations_html(data, fitter, fits, scores, regions, n_top=None): if n_top is None: n_top = len(scores) basedir = join(results_dir(), fit_results_relative_path(data, fitter)) ensure_dir(basedir) gene_dir = 'gene-subplot' series_dir = 'gene-region-fits' def key_func(score): g, r, pval, lst_R2 = score return r scores.sort(key=key_func) top_genes = [g for g, r, pval, lst_R2 in scores[:n_top]] top_scores = {g: r for g, r, pval, lst_R2 in scores[:n_top]} top_pvals = {g: pval for g, r, pval, lst_R2 in scores[:n_top]} def get_onset_time(fit): a, h, mu, _ = fit.theta age = age_scaler.unscale(mu) txt = 'onset = {:.3g} years'.format(age) cls = '' return txt, cls create_html( data, fitter, fits, basedir, gene_dir, series_dir, gene_names=top_genes, region_names=regions, extra_columns=[('r', top_scores), ('p-value', top_pvals)], extra_fields_per_fit=[get_onset_time], b_inline_images=True, b_R2_dist=False, ttl='Fit for genes with top Spearman correlations', filename='top-gradual-maturation', )
def create_top_genes_html(data, fitter, fits, scores, regions, n_top=None, filename_suffix=''): if n_top is None: n_top = len(scores) basedir = join(results_dir(), fit_results_relative_path(data, fitter)) ensure_dir(basedir) gene_dir = 'gene-subplot' series_dir = 'gene-region-fits' def key_func(score): g, pval, qval = score return pval scores.sort(key=key_func) top_genes = [g for g, pval, qval in scores[:n_top]] top_pvals = {g: pval for g, pval, qval in scores[:n_top]} top_qvals = {g: qval for g, pval, qval in scores[:n_top]} n = len(scores) n05 = len([g for g, pval, qval in scores if qval < 0.05]) n01 = len([g for g, pval, qval in scores if qval < 0.01]) top_text = """\ <pre> one sided t-test: {regions[0]} < {regions[1]} {n05}/{n} q-values < 0.05 {n01}/{n} q_values < 0.01 </pre> """.format(**locals()) def get_onset_time(fit): a, h, mu, _ = fit.theta age = age_scaler.unscale(mu) return 'onset = {:.3g} years'.format(age) def get_onset_dist(fit): mu_vals = fit.theta_samples[2, :] mu = mu_vals.mean() vLow, vHigh = np.percentile(mu_vals, (20, 80)) mu = age_scaler.unscale(mu) vLow = age_scaler.unscale(vLow) vHigh = age_scaler.unscale(vHigh) txt = 'onset reestimate (mean [20%, 80%]) = {:.3g} [{:.3g},{:.3g}]'.format( mu, vLow, vHigh) cls = '' return txt, cls create_html( data, fitter, fits, basedir, gene_dir, series_dir, gene_names=top_genes, region_names=regions, extra_columns=[('p-value', top_pvals), ('q-value', top_qvals)], extra_fields_per_fit=[get_onset_time, get_onset_dist], b_inline_images=True, inline_image_size='30%', b_R2_dist=False, ttl='Fit for genes with top t-test scores', top_text=top_text, filename='gradual-maturation-t-test' + filename_suffix, )