Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
length = len(database.findAll('DTG'))
fig_num = self.fignum if self.fignum <= length else length
for idx in range(fig_num):
# extract statistical resutls from results.edb file
enrich_term, hit_ind, nes, pval, fdr= gsea_edb_parser(results_path, index=idx)
gene_set = gene_set_dict.get(enrich_term)
# calculate enrichment score
RES = enrichment_score(gene_list=gene_list,
correl_vector=correl_vector,
gene_set=gene_set,
weighted_score_type=self.weighted_score_type,
nperm=0)[-1]
# plotting
term = enrich_term.replace('/','_').replace(":","_")
outfile = '{0}/{1}.{2}.{3}'.format(self.outdir, term, self.module, self.format)
gseaplot(rank_metric=rank_metric, term=enrich_term,
hit_indices=hit_ind, nes=nes, pval=pval, fdr=fdr,
RES=RES, pheno_pos=pos, pheno_neg=neg,
figsize=self.figsize, ofname=outfile)
self._logger.info("Congratulations! Your plots have been reproduced successfully!\n")
for i, temp in enumerate(tempes):
name, rnk = names[i], rankings[i]
self._logger.info("Calculate Enrichment Score for Sample: %s "%name)
es, esnull, hit_ind, RES = temp.get()
# create results subdir
self.outdir= os.path.join(outdir, str(name))
mkdirs(self.outdir)
# save results
self.resultsOnSamples[name] = pd.Series(data=es, index=subsets, name=name)
# plotting
if self._noplot: continue
self._logger.info("Plotting Sample: %s \n" % name)
for i, term in enumerate(subsets):
term = term.replace('/','_').replace(":","_")
outfile = '{0}/{1}.{2}.{3}'.format(self.outdir, term, self.module, self.format)
gseaplot(rank_metric=rnk, term=term,
hit_indices=hit_ind[i], nes=es[i], pval=1, fdr=1,
RES=RES[i], pheno_pos='', pheno_neg='',
figsize=self.figsize, ofname=outfile)
# save es, nes to file
self._save(outdir)
return
if self._outdir is None: return
#Plotting
top_term = self.res2d.index[:graph_num]
# multi-threading
pool = Pool(self._processes)
for gs in top_term:
hit = results.get(gs)['hit_indices']
NES = 'nes' if self.module != 'ssgsea' else 'es'
term = gs.replace('/','_').replace(":","_")
outfile = '{0}/{1}.{2}.{3}'.format(self.outdir, term, self.module, self.format)
# gseaplot(rank_metric=rank_metric, term=term, hit_indices=hit,
# nes=results.get(gs)[NES], pval=results.get(gs)['pval'],
# fdr=results.get(gs)['fdr'], RES=results.get(gs)['RES'],
# pheno_pos=pheno_pos, pheno_neg=pheno_neg, figsize=figsize,
# ofname=outfile)
pool.apply_async(gseaplot, args=(rank_metric, term, hit, results.get(gs)[NES],
results.get(gs)['pval'],results.get(gs)['fdr'],
results.get(gs)['RES'],
pheno_pos, pheno_neg,
figsize, 'seismic', outfile))
if self.module == 'gsea':
outfile2 = "{0}/{1}.heatmap.{2}".format(self.outdir, term, self.format)
# heatmap(df=self.heatmat.iloc[hit, :], title=term, ofname=outfile2,
# z_score=0, figsize=(self._width, len(hit)/2))
pool.apply_async(heatmap, args=(self.heatmat.iloc[hit, :], 0, term,
(self._width, len(hit)/2+2), 'RdBu_r',
True, True, outfile2))
pool.close()
pool.join()