def plot_and_save_all_genes(data, fitter, fits, dirname, show_change_distributions): ensure_dir(dirname) to_plot = [] genes = set( ) # use the genes from the fits and not from 'data' to support sharding (k_of_n) for ds_fits in fits.itervalues(): for g, r in ds_fits.iterkeys(): genes.add(g) for g in sorted(genes): genedir = join(dirname, g[:g.index(cfg.exon_separator)] ) #does nothing if gene name does not contain the exon ensure_dir(genedir) filename = join(genedir, '{}.png'.format(g)) if isfile(filename): print 'Figure already exists for gene {}. skipping...'.format(g) continue region_series_fits = _extract_gene_data(data, g, fits) if show_change_distributions: bin_centers = fits.change_distribution_params.bin_centers else: bin_centers = None to_plot.append((g, region_series_fits, filename, bin_centers)) pool = Parallel(_plot_genes_job) pool(pool.delay(*args) for args in to_plot)
def plot_and_save_all_exons_from_series(fits, exons_dir, series_dir): to_plot = [] ensure_dir(exons_dir) keys = set() for ds_fits in fits.itervalues(): for g, r in ds_fits.iterkeys(): keys.add((g[:g.index(cfg.exon_separator)], r)) for g, r in keys: gene_dir = join(exons_dir, g) ensure_dir(gene_dir) filename = join(gene_dir, '{}-{}.png'.format(g, r)) if isfile(filename): print 'Figure already exists for gene {} in region {}. skipping...'.format( g, r) continue to_plot.append((g, r, filename, series_dir)) pool = Parallel(_plot_exons_from_series_job) pool(pool.delay(*args) for args in to_plot)
def plot_and_save_all_genes(data, fitter, fits, dirname, show_change_distributions): ensure_dir(dirname) to_plot = [] genes = set() # use the genes from the fits and not from 'data' to support sharding (k_of_n) for ds_fits in fits.itervalues(): for g,r in ds_fits.iterkeys(): genes.add(g) for g in sorted(genes): filename = join(dirname, '{}.png'.format(g)) if isfile(filename): print 'Figure already exists for gene {}. skipping...'.format(g) continue region_series_fits = _extract_gene_data(data,g,fits) if show_change_distributions: bin_centers = fits.change_distribution_params.bin_centers else: bin_centers = None to_plot.append((g,region_series_fits,filename, bin_centers)) pool = Parallel(_plot_genes_job) pool(pool.delay(*args) for args in to_plot)
def plot_and_save_all_series(data, fitter, fits, dirname, use_correlations, show_change_distributions, exons_layout=False, figure_kw=None): ensure_dir(dirname) to_plot = [] for dsfits in fits.itervalues(): for (g, r), fit in dsfits.iteritems(): genedir = join( dirname, g[:g.index(cfg.exon_separator)] if exons_layout else g) ensure_dir(genedir) filename = join(genedir, 'fit-{}-{}.png'.format(g, r)) if isfile(filename): print 'Figure already exists for {}@{}. skipping...'.format( g, r) continue series = data.get_one_series(g, r) if show_change_distributions and hasattr( fit, 'change_distribution_weights'): change_distribution = Bunch( centers=fits.change_distribution_params.bin_centers, weights=fit.change_distribution_weights, ) else: change_distribution = None to_plot.append((series, fit, filename, use_correlations, change_distribution, figure_kw)) if cfg.parallel_run_locally: for args in to_plot: _plot_series_job(*args) else: pool = Parallel(_plot_series_job) pool(pool.delay(*args) for args in to_plot)
def plot_and_save_all_exons(data, fitter, fits, dirname): ensure_dir(dirname) to_plot = [] genes, regions = set(), set() for ds_fits in fits.itervalues(): for g, r in ds_fits.iterkeys(): genes.add(g[:g.index(cfg.exon_separator)]) regions.add(r) for g in sorted(genes): for r in sorted(regions): gene_dir = join(dirname, g) ensure_dir(gene_dir) filename = join(gene_dir, '{}-{}.png'.format(g, r)) if isfile(filename): print 'Figure already exists for gene {} in region {}. skipping...'.format( g, r) continue exons_series_fits = _extract_exons_data(data, g, r, fits) if not np.count_nonzero(exons_series_fits): continue to_plot.append((g, r, exons_series_fits, filename)) pool = Parallel(_plot_exons_job) pool(pool.delay(*args) for args in to_plot)
def plot_and_save_all_series(data, fitter, fits, dirname, use_correlations, show_change_distributions, figure_kw=None): ensure_dir(dirname) to_plot = [] for dsfits in fits.itervalues(): for (g,r),fit in dsfits.iteritems(): filename = join(dirname, 'fit-{}-{}.png'.format(g,r)) if isfile(filename): print 'Figure already exists for {}@{}. skipping...'.format(g,r) continue series = data.get_one_series(g,r) if show_change_distributions and hasattr(fit, 'change_distribution_weights'): change_distribution = Bunch( centers = fits.change_distribution_params.bin_centers, weights = fit.change_distribution_weights, ) else: change_distribution = None to_plot.append((series,fit,filename,use_correlations, change_distribution, figure_kw)) if cfg.parallel_run_locally: for args in to_plot: _plot_series_job(*args) else: pool = Parallel(_plot_series_job) pool(pool.delay(*args) for args in to_plot)
def _make_layer(self, transitions, stride=1): return Parallel(transitions)
def get_all_colantuoni_ages(): ids = range(749899, 750168) # copied from main accession page pool = Parallel(get_age, verbosity=1) ages = pool(pool.delay(_id) for _id in ids) return ages