def writeTraitPage(filename, title, desc, commonGenes, pfilter_cutoff): traitpage = htmltools.createPage(title, scripts={'sorttable.js':'javascript'}) htmltools.pageDescription(traitpage, desc) traitChi = computeTraitStatistics(commonGenes, pfilter_cutoff) significance_pairs = [ (i, trait, traitChi[trait][5]) for i, trait in enumerate(traitChi.keys()) ] significance_levels = [ pval for (i, trait, pval) in significance_pairs ] FDR = computePermutationTest(traitChi, commonGenes, significance_levels, __ITERATIONS) FDR_map = dict( [ ( trait, FDR[i] ) for (i, trait, pval) in significance_pairs ] ) traitTable = [] for trait in traitChi: (cnt, oddsratio, kappa, numgenes, fisher_exact, fisher_p, genes) = traitChi[trait] fdr_value = FDR_map[trait] translate = trait.replace(" ","_").replace("/", " or ").replace("\\", " or ") if len(trait) > 38: trait = trait[:35] + "..." alink = "<a href=\"traitlists/%s.html\">%s</a>" % (translate, trait) entry = [alink, cnt, numgenes, "%.7f" % (fisher_exact), "%.7f" % (fisher_p), "%.1f" % (oddsratio), "%.4f" % (kappa), fdr_value] traitTable.append(entry) traitTable = sorted(traitTable, key=lambda item: -item[1]) htmltools.createTable( traitpage, traitTable, ["Disease/Trait", "# RE Genes", "# Trait Genes", "fisher exact", "p-value", "odds ratio", "kappa", "FDR"], "traitlisthead", None, ["traitcol", "recol", "genecol", "fishercol","pcol", "oddscol", "kappacol","bencol"], "sortable", None) htmltools.endPage(traitpage) htmltools.savePage(traitpage, filename)
def writeGenePage(output_dir, filename, title, desc, total, geneTable): genepage = htmltools.createPage(title) htmltools.pageDescription(genepage, desc) newTable=[] for row in geneTable: drugcount = 0 if row[0] in drugDB.__drugDict: drugcount = len(drugDB.__drugDict[row[0]]) if os.path.exists(os.sep.join([output_dir,"genelists",row[0]+".html"])): newTable.append(["<a href=\"genelists/%s.html\">%s</a>" % (row[0], geneDB.__original_names[row[0]]), row[1], drugcount]) else: newTable.append([geneDB.__original_names[row[0]], row[1], drugcount]) htmltools.createTable(genepage, newTable, ["Gene","#Associated Traits", "#Targeted Drugs"], "genelisthead", None, ["genecol","traitcol", "drugcol"],"genetable",None) htmltools.endPage(genepage) htmltools.savePage(genepage, filename)
overlap = commonGenes & studyGenes & drugDB.__geneSet indexpage.div.open(class_="links") indexpage.p.open() indexpage.add("Total overlap of drugbank, GWAS, and Rapidly Evolving geneset: ") indexpage.a(str(len(overlap)), href="all_genes.html") if os.path.exists(os.sep.join([output_dir, "DAVID", "david_all.xhtml"])): indexpage.br() indexpage.a("DAVID Results", href="DAVID/david_all.xhtml") indexpage.p.close() indexpage.div.close() htmltools.endPage(indexpage) htmltools.savePage(indexpage, os.sep.join([output_dir, "index.html"])) print "" if not skip_listings: print "Creating trait listings..." computeTraitGeneLists(studyGenes, drugDB.__geneSet, pfilter_cutoff) computeTraitDrugLists(studyGenes, drugDB.__geneSet, pfilter_cutoff) createTraitListingsHTML(os.sep.join([output_dir, "traitlists"])) print "Creating gene listings..." createGeneListingsHTML(os.sep.join([output_dir,"genelists"])) print "Creating referenced HTML gene and trait list reports..." # write trait frequency tables