diff options
author | Zachary Sloan | 2012-11-02 18:11:55 -0500 |
---|---|---|
committer | Zachary Sloan | 2012-11-02 18:11:55 -0500 |
commit | 65a6a9c5f21d42fa43d13823be632760abbc4891 (patch) | |
tree | 4a39956079c5c54b69e5b1bc28c1d9a62f02c369 /wqflask | |
parent | 63faa277e4bf484f42e96e5064fbe6e31dfb331b (diff) | |
download | genenetwork2-65a6a9c5f21d42fa43d13823be632760abbc4891.tar.gz |
Created search objects for GeneRIF and GeneWiki searches
Got search results to display
Refactored the template for show_trait page
Diffstat (limited to 'wqflask')
-rw-r--r-- | wqflask/wqflask/do_search.py | 89 | ||||
-rw-r--r-- | wqflask/wqflask/parser.py | 7 | ||||
-rw-r--r-- | wqflask/wqflask/search_results.py | 966 | ||||
-rw-r--r-- | wqflask/wqflask/static/new/javascript/dataset_menu_structure.json | 2904 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait.html | 1218 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_calculate_correlations.html | 130 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_details.html | 63 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_edit_data.html | 163 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_mapping_tools.html | 382 | ||||
-rw-r--r-- | wqflask/wqflask/templates/show_trait_statistics.html | 433 |
10 files changed, 4240 insertions, 2115 deletions
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py index 19c6fa74..2641431c 100644 --- a/wqflask/wqflask/do_search.py +++ b/wqflask/wqflask/do_search.py @@ -9,6 +9,9 @@ from pprint import pformat as pf class DoSearch(object): """Parent class containing parameters/functions used for all searches""" + # Used to translate search phrases into classes + search_types = dict() + def __init__(self, search_term, dataset, cursor, db_conn): self.search_term = search_term self.dataset = dataset @@ -28,14 +31,20 @@ class DoSearch(object): return self.db_conn.escape_string(str(stringy)) def normalize_spaces(self, stringy): - """Strips out newlines extra spaces and replaces them with just spaces""" + """Strips out newlines/extra spaces and replaces them with just spaces""" step_one = " ".join(stringy.split()) return step_one + + @classmethod + def get_search(cls, search_type): + return cls.search_types[search_type] class ProbeSetSearch(DoSearch): """A search within an mRNA expression dataset""" + DoSearch.search_types['ProbeSet'] = "ProbeSetSearch" + base_query = """SELECT ProbeSet.Name as TNAME, 0 as thistable, ProbeSetXRef.Mean as TMEAN, @@ -47,6 +56,24 @@ class ProbeSetSearch(DoSearch): ProbeSet.name_num as TNAME_NUM FROM ProbeSetXRef, ProbeSet """ + def compile_final_query(self, from_clause, where_clause): + """Generates the final query string""" + + from_clause = self.normalize_spaces(from_clause) + + query = (self.base_query + + """%s + WHERE %s + and ProbeSet.Id = ProbeSetXRef.ProbeSetId + and ProbeSetXRef.ProbeSetFreezeId = %s + """ % (self.escape(from_clause), + where_clause, + self.escape(self.dataset.id))) + + print("query is:", pf(query)) + + return query + def run(self): """Generates and runs a simple search of an mRNA expression dataset""" @@ -73,6 +100,8 @@ class ProbeSetSearch(DoSearch): class PhenotypeSearch(DoSearch): """A search within a phenotype dataset""" + DoSearch.search_types['Publish'] = "PhenotypeSearch" + base_query = """SELECT PublishXRef.Id, PublishFreeze.createtime as thistable, Publication.PubMed_ID as Publication_PubMed_ID, @@ -128,6 +157,8 @@ class PhenotypeSearch(DoSearch): class GenotypeSearch(DoSearch): """A search within a genotype dataset""" + + DoSearch.search_types['Geno'] = "GenotypeSearch" base_query = """SELECT Geno.Name, GenoFreeze.createtime as thistable, @@ -169,9 +200,42 @@ class GenotypeSearch(DoSearch): return self.execute(query) +class RifSearch(ProbeSetSearch): + """Searches for traits with a Gene RIF entry including the search term.""" + + DoSearch.search_types['RIF'] = "RifSearch" + + def run(self): + where_clause = """( %s.symbol = GeneRIF_BASIC.symbol and + MATCH (GeneRIF_BASIC.comment) + AGAINST ('+%s' IN BOOLEAN MODE)) """ % (self.dataset.type, self.search_term) + + from_clause = ", GeneRIF_BASIC " + query = self.compile_final_query(from_clause, where_clause) + + return self.execute(query) + +class WikiSearch(ProbeSetSearch): + """Searches GeneWiki for traits other people have annotated""" + + DoSearch.search_types['WIKI'] = "WikiSearch" + + def run(self): + where_clause = """%s.symbol = GeneRIF.symbol + and GeneRIF.versionId=0 and GeneRIF.display>0 + and (GeneRIF.comment REGEXP '%s' or GeneRIF.initial = '%s') + """ % (self.dataset.type, "[[:<:]]"+self.search_term+"[[:>:]]", self.search_term) + + from_clause = ", GeneRIF " + query = self.compile_final_query(from_clause, where_clause) + + return self.execute(query) + class GoSearch(ProbeSetSearch): """Searches for synapse-associated genes listed in the Gene Ontology.""" + DoSearch.search_types['GO'] = "GoSearch" + def run(self): field = 'GOterm.acc' go_id = 'GO:' + ('0000000'+self.search_term)[-7:] @@ -181,23 +245,13 @@ class GoSearch(ProbeSetSearch): GOterm.id=GOassociation.term_id""" % ( self.db_conn.escape_string(self.dataset.type))) - clause_item = " %s = '%s' and %s " % (field, go_id, statements) + where_clause = " %s = '%s' and %s " % (field, go_id, statements) - # - gene_ontology_from_table = """ , db_GeneOntology.term as GOterm, + from_clause = """ , db_GeneOntology.term as GOterm, db_GeneOntology.association as GOassociation, db_GeneOntology.gene_product as GOgene_product """ - - gene_ontology_from_table = self.normalize_spaces(gene_ontology_from_table) - - query = (self.base_query + - """%s - WHERE %s - and ProbeSet.Id = ProbeSetXRef.ProbeSetId - and ProbeSetXRef.ProbeSetFreezeId = %s - """ % (self.db_conn.escape_string(gene_ontology_from_table), - clause_item, - self.db_conn.escape_string(str(self.dataset.id)))) + + query = self.compile_final_query(from_clause, where_clause) return self.execute(query) @@ -227,8 +281,11 @@ if __name__ == "__main__": dataset_name = "HC_M2_0606_P" dataset = webqtlDataset(dataset_name, cursor) - results = ProbeSetSearch("salt", dataset, cursor, db_conn).run() + #results = ProbeSetSearch("salt", dataset, cursor, db_conn).run() + #results = RifSearch("diabetes", dataset, cursor, db_conn).run() + results = WikiSearch("nicotine", dataset, cursor, db_conn).run() #results = PhenotypeSearch("brain", dataset, cursor, db_conn).run() #results = GenotypeSearch("rs13475699", dataset, cursor, db_conn).run() #results = GoSearch("0045202", dataset, cursor, db_conn).run() + print("results are:", pf(results))
\ No newline at end of file diff --git a/wqflask/wqflask/parser.py b/wqflask/wqflask/parser.py index e34992a0..e693b2b8 100644 --- a/wqflask/wqflask/parser.py +++ b/wqflask/wqflask/parser.py @@ -4,6 +4,7 @@ import re from pprint import pformat as pf + def parse(pstring): pstring = re.split(r"""(?:(\w+\s*=\s*\([^)]*\))|(\w+\s*[=:]\w+)|(\w+))""", pstring) pstring = [item.strip() for item in pstring if item and item.strip()] @@ -28,9 +29,11 @@ def parse(pstring): value = [value.strip() for value in values if value.strip()] term = dict(key=key, seperator=seperator, - value=value) + search_term=value) else: - term = dict(search_term = item) + term = dict(key=None, + seperator=None, + search_term = item) items.append(term) print(pf(items)) diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py index c82f16c1..a97ea8fd 100644 --- a/wqflask/wqflask/search_results.py +++ b/wqflask/wqflask/search_results.py @@ -42,7 +42,6 @@ from utility import formatting #from base.JinjaPage import JinjaEnv, JinjaPage - class SearchResultPage(templatePage): maxReturn = 3000 @@ -144,20 +143,6 @@ class SearchResultPage(templatePage): self.species_id = webqtlDatabaseFunction.retrieveSpeciesId(self.cursor, self.dataset.group) - ########################################### - # make sure search from same type of datasets - ########################################### - #dbTypes = map(lambda X: X.type, self.dataset) - #db_types = [table.type for table in self.dataset] - #self.db_type = db_types[0] - #for item in dbTypes: - # if item != self.dbType: - # heading = "Search Result" - # detail = ["Search can only be performed among the same type of datasets"] - # self.error(heading=heading,detail=detail,error="Error") - # return - - #self.db_type = self.dataset.type if self.dataset.type == "Publish": self.search_fields = ['Phenotype.Post_publication_description', @@ -191,273 +176,61 @@ class SearchResultPage(templatePage): elif self.dataset.type == "Geno": self.search_fields = ['Name','Chr'] - self.search() self.gen_search_result() - ########################################### - # Search Options - ########################################### - #self.matchwhole = fd['matchwhole'] - #split result into pages - #self.pageNumber = fd.get('pageno', 0) - # - #try: - # self.pageNumber = int(self.pageNumber) - #except Exception as why: - # print(why) - # self.pageNumber = 0 - - - ########################################### - # Generate Mysql Query - ########################################### - - # Sam: We presume lines below aren't used... - #geneIdListQuery = fd.get('geneId', '') - #if geneIdListQuery: - # geneIdListQuery = string.replace(geneIdListQuery, ",", " ") - # geneIdListQuery = " geneId=%s" % string.join(string.split(geneIdListQuery), "-") - - #self.ANDkeyword = fd.get('ANDkeyword', "") - #self.ORkeyword = fd.get('ORkeyword', "") - - #self.ORkeyword += geneIdListQuery - - #self.ANDkeyword = self.ANDkeyword.replace("\\", "").strip() - #self.ORkeyword = self.ORkeyword.replace("\\", "").strip() - #user defined sort option - #self.orderByUserInput = fd.get('orderByUserInput', "").strip() - #default sort option if user have not defined - #self.orderByDefalut = "" - - #XZ, Dec/16/2010: I add examples to help understand this block of code. See details in function pattersearch. - # - ##XZ: self._1mPattern examples: WIKI=xxx, RIF=xxx, GO:0045202 - #self._1mPattern = re.compile('\s*(\S+)\s*[:=]\s*([a-zA-Z-\+\d\.]+)\s*') - # - ##XZ: self._2mPattern examples: Mean=(15.0 16.0), Range=(10 100), LRS=(Low_LRS_limit, High_LRS_limit), pvalue=(Low_limit, High_limit), Range=(10 100) - #self._2mPattern = re.compile('\s*(\S+)\s*[=in]{1,2}\s*\(\s*([-\d\.]+)[, \t]+([-\d\.]+)[, \t]*([-\d\.]*)\s*\)') - # - ##XZ: self._3mPattern examples: Position=(Chr1 98 104), Pos=(Chr1 98 104), Mb=(Chr1 98 104), CisLRS=(Low_LRS_limit, High_LRS_limit, Mb_buffer), TransLRS=(Low_LRS_limit, High_LRS_limit, Mb_buffer) - #self._3mPattern = re.compile('\s*(\S+)\s*[=in]{1,2}\s*\(\s*[Cc][Hh][Rr]([^, \t]+)[, \t]+([-\d\.]+)[, \t]+([-\d\.]+)\s*\)') - # - ##XZ: self._5mPattern examples: LRS=(Low_LRS_limit, High_LRS_limit, ChrNN, Mb_Low_Limit, Mb_High_Limit) - #self._5mPattern = re.compile('\s*(\S+)\s*[=in]{1,2}\s*\(\s*([-\d\.]+)[, \t]+([-\d\.]+)[, \t]+[Cc][Hh][Rr]([^, \t]+)[, \t]+([-\d\.]+)[, \t]+([-\d\.]+)\s*\)') - - #Error, No keyword input - #if not (self.ORkeyword or self.ANDkeyword): - # heading = "Search Result" - # detail = ["Please make sure to enter either your search terms (genes, traits, markers), or advanced search commands."] - # self.error(heading=heading,detail=detail,error="No search terms were entered") - # return - - #query clauses - #self.ANDQuery = [] - #self.ORQuery = [] - ##descriptions, one for OR search, one for AND search - #self.ANDDescriptionText = [] - #self.ORDescriptionText = [] - - #if not self.normalSearch(): - # return - #if not self.patternSearch(): - # return - #if not self.assembleQuery(): - # return - #self.nresults = self.executeQuery() - # - #if len(self.dataset) > 1: - # dbUrl = "Multiple phenotype datasets" - # dbUrlLink = " were" - #else: - # dbUrl = self.dataset[0].genHTML() - # dbUrlLink = " was" - - #SearchText = HT.Blockquote('GeneNetwork searched the ', dbUrl, ' for all records ') - #if self.ORkeyword2: - # NNN = len(self.ORkeyword2) - # if NNN > 1: - # SearchText.append(' that match the terms ') - # else: - # SearchText.append(' that match the term ') - # for j, term in enumerate(self.ORkeyword2): - # SearchText.append(HT.U(term)) - # if NNN > 1 and j < NNN-2: - # SearchText.append(", ") - # elif j == NNN-2: - # SearchText.append(", or ") - # else: - # pass - #if self.ORDescriptionText: - # if self.ORkeyword2: - # SearchText.append("; ") - # else: - # SearchText.append(" ") - # for j, item in enumerate(self.ORDescriptionText): - # SearchText.append(item) - # if j < len(self.ORDescriptionText) -1: - # SearchText.append(";") - # - #if (self.ORkeyword2 or self.ORDescriptionText) and (self.ANDkeyword2 or self.ANDDescriptionText): - # SearchText.append("; ") - #if self.ANDkeyword2: - # if (self.ORkeyword2 or self.ORDescriptionText): - # SearchText.append(' records') - # NNN = len(self.ANDkeyword2) - # if NNN > 1: - # SearchText.append(' that match the terms ') - # else: - # SearchText.append(' that match the term ') - # for j, term in enumerate(self.ANDkeyword2): - # SearchText.append(HT.U(term)) - # if NNN > 1 and j < NNN-2: - # SearchText.append(", ") - # elif j == NNN-2: - # SearchText.append(", and ") - # else: - # pass - #if self.ANDDescriptionText: - # if self.ANDkeyword2: - # SearchText.append(" and ") - # else: - # SearchText.append(" ") - # for j, item in enumerate(self.ANDDescriptionText): - # SearchText.append(item) - # if j < len(self.ANDDescriptionText) -1: - # SearchText.append(" and ") - # - #SearchText.append(". ") - #if self.nresults == 0: - # heading = "Search Result" - # detail = ["Sorry, GeneNetwork did not find any records matching your request. Please check the syntax or try the ANY rather than the ALL field."] - # self.error(heading=heading,intro = SearchText.contents,detail=detail,error="Not Found") - # return - #elif self.nresults == 1: - # SearchText.append(HT.P(), 'GeneNetwork found one record that matches your request. To study this record, click on its text below. To add this record to your Selection window, use the checkbox and then click the ', HT.Strong('Add to Collection'),' button. ') - #elif self.nresults >= 1 and self.nresults <= self.maxReturn: - # SearchText.append(HT.P(), 'GeneNetwork found a total of ', HT.Span(self.nresults, Class='fwb cr'), ' records. To study any one of these records, click on its ID below. To add one or more records to your Selection window, use the checkbox and then click the ' , HT.Strong('Add to Collection'),' button. ') - #else: - # SearchText.append(' A total of ',HT.Span(self.nresults, Class='fwb cr'), ' records were found.') - # heading = "Search Result" - # # Modified by Hongqiang Li - # # detail = ["The terms you entered match %d records. Please modify your search to generate %d or fewer matches, or review " % (self.nresults, self.maxReturn), HT.Href(text='Search Help', target='_blank', url='http://web2qtl.utmem.edu/searchHelp.html', Class='fs14'), " to learn more about syntax and the use of wildcard characters."] - # detail = ["The terms you entered match %d records. Please modify your search to generate %d or fewer matches, or review " % (self.nresults, self.maxReturn), HT.Href(text='Search Help', target='_blank', url='%s/searchHelp.html' % webqtlConfig.PORTADDR, Class='fs14'), " to learn more about syntax and the use of wildcard characters."] - # # - # self.error(heading=heading,intro = SearchText.contents,detail=detail,error="Over %d" % self.maxReturn) - # return - - - #TD_LR.append(HT.Paragraph('Search Results', Class="title"), SearchText) - - #self.dict['body'] = str(TD_LR) - #self.dict['js1'] = '' - #self.dict['js2'] = 'onLoad="pageOffset()"' - #self.dict['layer'] = self.generateWarningLayer() - def gen_search_result(self): - #pageTable = HT.TableLite(cellSpacing=2,cellPadding=0,width="100%",border=0) - - #last_result = False - self.trait_list = [] # result_set represents the results for each search term; a search of # "shh grin2b" would have two sets of results, one for each term - for result_set in self.results: - for result in result_set: - if not result: - continue - #last_result = False - - seq = 1 - group = self.dataset.group - self.form_name = form_name = 'show_dataset_'+group - - tblobj = {} - species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=group) - - #### Excel file - - # Todo: Replace this with official Python temp file naming functions? - filename= webqtlUtil.genRandStr("Search_") - #xlsUrl = HT.Input(type='button', value = 'Download Table', onClick= "location.href='/tmp/%s.xls'" % filename, Class='button') - # Create a new Excel workbook - #workbook = xl.Writer('%s.xls' % (webqtlConfig.TMPDIR+filename)) - #headingStyle = workbook.add_format(align = 'center', bold = 1, border = 1, size=13, fg_color = 0x1E, color="white") - - #XZ, 3/18/2010: pay attention to the line number of header in this file. As of today, there are 7 lines. - #worksheet = self.createExcelFileWithTitleAndFooter(workbook=workbook, db=this_trait.db, returnNumber=len(self.trait_list)) - newrow = 7 - - #### Excel file stuff stops - - if self.dataset.type == "ProbeSet": - #for item in result: - print("foo locals are:", locals()) - probe_set_id = result[1] - print("probe_set_id is:", pf(probe_set_id)) - this_trait = webqtlTrait(db=self.dataset, name=probe_set_id, cursor=self.cursor) - this_trait.retrieveInfo(QTL=True) - print("this_trait is:", pf(this_trait)) - self.trait_list.append(this_trait) - print("self.trait_list is:", pf(self.trait_list)) - - #tblobj['header'] = self.getTableHeaderForProbeSet(worksheet=worksheet, newrow=newrow, headingStyle=headingStyle) - - #newrow += 1 - - sortby = self.getSortByValue(datasetType="ProbeSet") - - tblobj['body'] = self.getTableBodyForProbeSet(trait_list=self.trait_list, formName=self.form_name, newrow=newrow, species=species) - - #workbook.close() - #objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb') - #cPickle.dump(tblobj, objfile) - #objfile.close() - - #div = HT.Div(webqtlUtil.genTableObj(tblobj, filename, sortby), Id="sortable") - - #pageTable.append(HT.TR(HT.TD(div))) - elif self.dataset.type == "Publish": - #tblobj['header'] = self.getTableHeaderForPublish(worksheet=worksheet, newrow=newrow, headingStyle=headingStyle) - - #newrow += 1 - - sortby = self.getSortByValue(datasetType="Publish") - - #tblobj['body'] = self.getTableBodyForPublish(trait_list=self.trait_list, formName=mainfmName, worksheet=worksheet, newrow=newrow, species=species) - - #workbook.close() - #objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb') - #cPickle.dump(tblobj, objfile) - #objfile.close() - - #div = HT.Div(webqtlUtil.genTableObj(tblobj, filename, sortby), Id="sortable") - - #pageTable.append(HT.TR(HT.TD(div))) - elif self.dataset.type == "Geno": - tblobj['header'] = self.getTableHeaderForGeno(worksheet=worksheet, newrow=newrow, headingStyle=headingStyle) - - newrow += 1 - sortby = self.getSortByValue(datasetType="Geno") - - #tblobj['body'] = self.getTableBodyForGeno(trait_list=self.trait_list, form_name=form_name, worksheet=worksheet, newrow=newrow) - - #workbook.close() - #objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb') - #cPickle.dump(tblobj, objfile) - #objfile.close() - - #div = HT.Div(webqtlUtil.genTableObj(tblobj, filename, sortby), Id="sortable") - # - #pageTable.append(HT.TR(HT.TD(div))) - - - #traitForm = HT.Form(cgi= os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), enctype='multipart/form-data', name=thisFormName, submit=HT.Input(type='hidden')) - hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':'_','CellID':'_','group':group} - hddn['incparentsf1']='ON' + print("self.results is:", pf(self.results)) + for result in self.results: + if not result: + continue + + seq = 1 + group = self.dataset.group + self.form_name = form_name = 'show_dataset_'+group + + tblobj = {} + species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=group) + + #### Excel file + + # Todo: Replace this with official Python temp file naming functions? + filename= webqtlUtil.genRandStr("Search_") + #xlsUrl = HT.Input(type='button', value = 'Download Table', onClick= "location.href='/tmp/%s.xls'" % filename, Class='button') + # Create a new Excel workbook + #workbook = xl.Writer('%s.xls' % (webqtlConfig.TMPDIR+filename)) + #headingStyle = workbook.add_format(align = 'center', bold = 1, border = 1, size=13, fg_color = 0x1E, color="white") + + #XZ, 3/18/2010: pay attention to the line number of header in this file. As of today, there are 7 lines. + #worksheet = self.createExcelFileWithTitleAndFooter(workbook=workbook, db=this_trait.db, returnNumber=len(self.trait_list)) + newrow = 7 + + #### Excel file stuff stops + + if self.dataset.type == "ProbeSet": + #for item in result: + print("foo locals are:", locals()) + probe_set_id = result[0] + print("probe_set_id is:", pf(probe_set_id)) + this_trait = webqtlTrait(db=self.dataset, name=probe_set_id, cursor=self.cursor) + this_trait.retrieveInfo(QTL=True) + print("this_trait is:", pf(this_trait)) + self.trait_list.append(this_trait) + elif self.dataset.type == "Publish": + newrow += 1 + tblobj['body'] = self.getTableBodyForPublish(trait_list=self.trait_list, formName=mainfmName, worksheet=worksheet, newrow=newrow, species=species) + elif self.dataset.type == "Geno": + newrow += 1 + tblobj['body'] = self.getTableBodyForGeno(trait_list=self.trait_list, form_name=form_name, worksheet=worksheet, newrow=newrow) + + #traitForm = HT.Form(cgi= os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), enctype='multipart/form-data', name=thisFormName, submit=HT.Input(type='hidden')) + hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':'_','CellID':'_','group':group} + hddn['incparentsf1']='ON' # for key in hddn.keys(): # traitForm.append(HT.Input(name=key, value=hddn[key], type='hidden')) # @@ -468,169 +241,13 @@ class SearchResultPage(templatePage): # last_result = True #if last_result: # TD_LR.contents.pop() - - def executeQuery(self): - - ##construct sorting - if self.dbType == "Publish": - sortQuery = " order by Publication_PubMed_ID desc, Phenotype_Name, thistable" - elif self.dbType == "Geno": - if not self.orderByUserInput: - if self.orderByDefalut: - self.orderByUserInput = self.orderByDefalut - else: - self.orderByUserInput = "POSITION" - if self.orderByUserInput.upper() in ["POS", "POSITION", "MB"]: - self.orderByUserInput = "POSITION" - else: - pass - self.orderByUserInput = self.orderByUserInput.upper() - self.orderByUserInputOrig = self.orderByUserInput[:] - if self.orderByUserInput == "NAME": - sortQuery = " order by Geno_Name, Geno_chr_num, Geno_Mb" - elif self.orderByUserInput == "SOURCE": - sortQuery = " order by Geno_Source2, Geno_chr_num, Geno_Mb" - else: - sortQuery = " order by Geno_chr_num, Geno_Mb" - #ProbeSet - else: - if not self.orderByUserInput: - if self.orderByDefalut: - self.orderByUserInput = self.orderByDefalut - else: - self.orderByUserInput = "POSITION" - - self.orderByUserInput = self.orderByUserInput.upper() - self.orderByUserInputOrig = self.orderByUserInput[:] - #XZ: 8/18/2009: "POSITION-" - if self.orderByUserInput[-1] == '-': - self.orderByUserInput = self.orderByUserInput[:-1] - sortDesc = 'desc' - else: - sortDesc = '' - - if self.orderByUserInput in ["MEAN", "LRS", "PVALUE"]: - #sortQuery = " order by T%s %s, TNAME, thistable desc" % (self.orderByUserInput, sortDesc) - sortQuery = " order by T%s desc, TNAME, thistable desc" % self.orderByUserInput - elif self.orderByUserInput in ["POS", "POSITION", "MB"]: - sortQuery = " order by TCHR_NUM %s, TMB %s, TNAME, thistable desc" % (sortDesc, sortDesc) - elif self.orderByUserInput == 'SYMBOL': - sortQuery = " order by TSYMBOL, thistable desc" - else: - sortQuery = " order by TNAME_NUM, thistable desc" - - if self.singleCross: - if len(self.query) > 1: - searchQuery = map(lambda X:'(%s)' % X, self.query) - searchQuery = string.join(searchQuery, ' UNION ALL ') - else: - searchQuery = self.query[0] - searchQuery += sortQuery - #searchCountQuery retrieve all the results - searchCountQuery = [searchQuery] - #searchQuery = searchQuery + " limit %d,%d" % (self.pageNumber*self.NPerPage, self.NPerPage) // We removed the page limit - Zach 2/22/11 - searchQuery = [searchQuery] - else: - searchCountQuery = searchQuery = map(lambda X: X+sortQuery, self.query) - - allResults = [] - self.results = [] - for item in searchCountQuery: - start_time = datetime.datetime.now() - _log.info("Executing query: %s"%(item)) - self.cursor.execute(item) - allResults.append(self.cursor.fetchall()) - end_time = datetime.datetime.now() - _log.info("Total time: %s"%(end_time-start_time)) - - _log.info("Done executing queries") - - #searchCountQuery retrieve all the results, for counting use only - if searchCountQuery != searchQuery: - for item in searchQuery: - self.cursor.execute(item) - self.results.append(self.cursor.fetchall()) - else: - self.results = allResults - - nresults = reduce(lambda Y,X:len(X)+Y, allResults, 0) - return nresults - - - def assembleQuery(self): - self.query = [] - if self.ANDQuery or self.ORQuery: - clause = self.ORQuery[:] - - for j, database in enumerate(self.dataset): - if self.ANDQuery: - clause.append(" (%s) " % string.join(self.ANDQuery, " AND ")) - - newclause = [] - - for item in clause: - ##need to retrieve additional field which won't be used - ##in the future, for sorting purpose only - if self.dbType == "Publish": - if item.find("Geno.name") < 0: - incGenoTbl = "" - else: - incGenoTbl = " Geno, " - newclause.append("""SELECT %d, PublishXRef.Id, - PublishFreeze.createtime as thistable, - Publication.PubMed_ID as Publication_PubMed_ID, - Phenotype.Post_publication_description as Phenotype_Name - FROM %s PublishFreeze, Publication, PublishXRef, - Phenotype WHERE PublishXRef.InbredSetId = %d and %s and - PublishXRef.PhenotypeId = Phenotype.Id and - PublishXRef.PublicationId = Publication.Id and - PublishFreeze.Id = %d""" % (j, incGenoTbl, - self.dataset_group_ids[j], item, database.id)) - elif self.dbType == "ProbeSet": - if item.find("GOgene") < 0: - incGoTbl = "" - else: - incGoTbl = """ ,db_GeneOntology.term as GOterm, - db_GeneOntology.association as GOassociation, - db_GeneOntology.gene_product as GOgene_product """ - if item.find("Geno.name") < 0: - incGenoTbl = "" - else: - incGenoTbl = " Geno, " - if item.find("GeneRIF_BASIC.") < 0: - incGeneRIFTbl = "" - else: - incGeneRIFTbl = " GeneRIF_BASIC, " - if item.find("GeneRIF.") < 0: - incGeneRIFTbl += "" - else: - incGeneRIFTbl += " GeneRIF, " - newclause.append("""SELECT distinct %d, ProbeSet.Name as TNAME, 0 as thistable, - ProbeSetXRef.Mean as TMEAN, ProbeSetXRef.LRS as TLRS, ProbeSetXRef.PVALUE as TPVALUE, - ProbeSet.Chr_num as TCHR_NUM, ProbeSet.Mb as TMB, ProbeSet.Symbol as TSYMBOL, - ProbeSet.name_num as TNAME_NUM FROM %s%s ProbeSetXRef, ProbeSet %s - WHERE %s and ProbeSet.Id = ProbeSetXRef.ProbeSetId and ProbeSetXRef.ProbeSetFreezeId = %d - """ % (j, incGeneRIFTbl, incGenoTbl, incGoTbl, item, database.id)) - elif self.dbType == "Geno": - newclause.append("""SELECT %d, Geno.Name, GenoFreeze.createtime as thistable, - Geno.Name as Geno_Name, Geno.Source2 as Geno_Source2, - Geno.chr_num as Geno_chr_num, Geno.Mb as Geno_Mb FROM - GenoXRef, GenoFreeze, Geno WHERE %s and Geno.Id - = GenoXRef.GenoId and GenoXRef.GenoFreezeId = - GenoFreeze.Id and GenoFreeze.Id = %d""" % ( - j, item, database.id)) - else: - pass - - searchQuery = map(lambda X:'(%s)' % X, newclause) - searchQuery = string.join(searchQuery, ' UNION ') - self.query.append(searchQuery) - return 1 - else: - heading = "Search Result" - detail = ["No keyword was entered for this search, please go back and enter your keyword."] - self.error(heading=heading,detail=detail,error="No Keyword") - return 0 + + if self.dataset.type == "ProbeSet": + tblobj['body'] = self.getTableBodyForProbeSet(trait_list=self.trait_list, formName=self.form_name, newrow=newrow, species=species) + elif self.dataset.type == "Publish": + tblobj['body'] = self.getTableBodyForPublish(trait_list=self.trait_list, formName=mainfmName, worksheet=worksheet, newrow=newrow, species=species) + elif self.dataset.type == "Geno": + tblobj['body'] = self.getTableBodyForGeno(trait_list=self.trait_list, form_name=form_name, worksheet=worksheet, newrow=newrow) def search(self): @@ -641,165 +258,20 @@ class SearchResultPage(templatePage): self.results = [] for a_search in self.search_terms: print("[kodak] item is:", pf(a_search)) - search_term = None - search_type = None - if "search_term" in a_search: - search_term = a_search['search_term'] - elif key in a_search: - search_type = a_search['key'] + search_term = a_search['search_term'] + search_type = a_search['key'] + if not search_type: + # We fall back to the dataset type as the key to get the right object + search_type = self.dataset.type + + search_ob = do_search.DoSearch.get_search(search_type) + search_class = getattr(do_search, search_ob) + self.results.extend(search_class(search_term, + self.dataset, + self.cursor, + self.db_conn).run()) - - if search_term: - searches = dict( - ProbeSet = "ProbeSetSearch", - Publish = "PhenotypeSearch", - Geno = "GenotypeSearch", - ) - if self.dataset.type in searches: - search_ob = searches[self.dataset.type] - #if self.dataset.type == "ProbeSet": - # search_ob = "ProbeSetSearch" - #elif self.dataset.type == "Publish": - # search_ob = "PhenotypeSearch" - #elif self.dataset.type == "Geno": - # search_ob = "GenotypeSearch" - else: - SearchTermNeedsToBeDefined # Cause an error on purpose - search_class = getattr(do_search, search_ob) - results = search_class(search_term, - self.dataset, - self.cursor, - self.db_conn).run() - - print("in the search results are:", results) - -## clause_item = ( -##""" MATCH (ProbeSet.Name, -## ProbeSet.description, -## ProbeSet.symbol, -## alias, -## GenbankId, -## UniGeneId, -## Probe_Target_Description) -## AGAINST ('%s' IN BOOLEAN MODE) """ % self.db_conn.escape_string(search_term)) -# if self.dataset.type == "ProbeSet": -# -# query = ( -#"""SELECT distinct 0, -# ProbeSet.Name as TNAME, -# 0 as thistable, -# ProbeSetXRef.Mean as TMEAN, -# ProbeSetXRef.LRS as TLRS, -# ProbeSetXRef.PVALUE as TPVALUE, -# ProbeSet.Chr_num as TCHR_NUM, -# ProbeSet.Mb as TMB, -# ProbeSet.Symbol as TSYMBOL, -# ProbeSet.name_num as TNAME_NUM -# FROM ProbeSetXRef, ProbeSet -# WHERE (MATCH (ProbeSet.Name, -# ProbeSet.description, -# ProbeSet.symbol, -# alias, -# GenbankId, -# UniGeneId, -# Probe_Target_Description) -# AGAINST ('%s' IN BOOLEAN MODE)) -# and ProbeSet.Id = ProbeSetXRef.ProbeSetId -# and ProbeSetXRef.ProbeSetFreezeId = %s -# """ % (self.db_conn.escape_string(search_term), -# self.db_conn.escape_string(str(self.dataset.id)))) -# -# elif self.dataset.type == "Publish": -# include_geno = "" -# if search_term.find("Geno.name") >= 0: -# include_geno = " Geno, " -# -# if self.matchwhole and item.find("'") < 0: -# item = "[[:<:]]"+ item+"[[:>:]]" -# clause2 = [] -# for field in self.searchField: -# if self.dbType == "Publish": -# clause2.append("%s REGEXP \"%s\"" % (field,item)) -# else: -# clause2.append("%s REGEXP \"%s\"" % ("%s.%s" % (self.dbType,field),item)) -# -# -# query = ( -#"""SELECT 0, PublishXRef.Id, PublishFreeze.createtime as thistable, -# Publication.PubMed_ID as Publication_PubMed_ID, -# Phenotype.Post_publication_description as Phenotype_Name -# FROM %s PublishFreeze, Publication, PublishXRef, Phenotype -# WHERE (MATCH (ProbeSet.Name, -# ProbeSet.description, -# ProbeSet.symbol, -# alias, -# GenbankId, -# UniGeneId, -# Probe_Target_Description) -# AGAINST ('%s' IN BOOLEAN MODE)) and -# PublishXRef.InbredSetId = %s and -# PublishXRef.PhenotypeId = Phenotype.Id and -# PublishXRef.PublicationId = Publication.Id and -# PublishFreeze.Id = %s -# """ % (include_geno, -# self.db_conn.escape_string(search_term), -# self.db_conn.escape_string(str(self.dataset.group_id)), -# self.db_conn.escape_string(str(self.dataset.id)))) -# -# elif self.dataset.type == "Geno": -# query = ( -#"""SELECT 0, Geno.Name, GenoFreeze.createtime as thistable, -# Geno.Name as Geno_Name, -# Geno.Source2 as Geno_Source2, -# Geno.chr_num as Geno_chr_num, -# Geno.Mb as Geno_Mb -# FROM GenoXRef, GenoFreeze, Geno -# WHERE (MATCH (ProbeSet.Name, -# ProbeSet.description, -# ProbeSet.symbol, -# alias, -# GenbankId, -# UniGeneId, -# Probe_Target_Description) -# AGAINST ('%s' IN BOOLEAN MODE)) and -# and Geno.Id = GenoXRef.GenoId and -# GenoXRef.GenoFreezeId = GenoFreeze.Id and -# GenoFreeze.Id = %d -# """% (self.db_conn.escape_string(search_term), -# self.db_conn.escape_string(str(self.dataset.id)))) -# -# -# self.cursor.execute(query) -# self.results.append(self.cursor.fetchall()) -# -# print("self.results is:", pf(self.results)) -# -# -# -# -# #if self.dataset.type == "ProbeSet" and search_term.find('.') < 0 and search_term.find('\'') < 0: -# # full_text.append(search_term) -# #else: -# # if self.matchwhole and search_term.find("'") < 0: -# # search_term = "[[:<:]]"+ search_term+"[[:>:]]" -# # clause2 = [] -# # for field in self.search_fields: -# # if self.dataset.type == "Publish": -# # clause2.append("%s REGEXP \"%s\"" % (field,search_term)) -# # else: -# # clause2.append("%s REGEXP \"%s\"" % ("%s.%s" % (self.dataset.type,field),search_term)) -# # clause_item = "(%s)" % string.join(clause2, clausejoin) -# # query.append(" (%s) " % clause_item) -# #if ANDFulltext: -# # clauseItem = """ MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol, -# # alias,GenbankId, UniGeneId, Probe_Target_Description) -# # AGAINST ('+%s' IN BOOLEAN MODE) """ % string.join(ANDFulltext, " +") -# # self.ANDQuery.append(" (%s) " % clauseItem) -# #if ORFulltext: -# #clauseItem = """ MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,alias, -# #GenbankId, UniGeneId, Probe_Target_Description) AGAINST ('%s' IN BOOLEAN MODE) -# #""" % string.join(full_text, " ") -# #self.query.append(" (%s) " % clauseItem) + print("in the search results are:", self.results) def encregexp(self,str): @@ -819,239 +291,6 @@ class SearchResultPage(templatePage): return wildcardkeyword - - def patternSearch(self): - # Lei Yan - ##Process Inputs - m1_AND = self._1mPattern.findall(self.ANDkeyword) - m2_AND = self._2mPattern.findall(self.ANDkeyword) - m3_AND = self._3mPattern.findall(self.ANDkeyword) - m5_AND = self._5mPattern.findall(self.ANDkeyword) - m1_OR = self._1mPattern.findall(self.ORkeyword) - m2_OR = self._2mPattern.findall(self.ORkeyword) - m3_OR = self._3mPattern.findall(self.ORkeyword) - m5_OR = self._5mPattern.findall(self.ORkeyword) - - #pattern search - if m1_AND or m1_OR or m2_AND or m2_OR or m3_AND or m3_OR or m5_AND or m5_OR: - - self.orderByDefalut = 'PROBESETID' - - _1Cmds = map(string.upper, map(lambda x:x[0], m1_AND + m1_OR)) - _2Cmds = map(string.upper, map(lambda x:x[0], m2_AND + m2_OR)) - _3Cmds = map(string.upper, map(lambda x:x[0], m3_AND + m3_OR)) - _5Cmds = map(string.upper, map(lambda x:x[0], m5_AND + m5_OR)) - - self.nkeywords += len(_1Cmds) + len(_2Cmds) + len(_3Cmds) - - if self.dbType == "Publish" and \ - ( (_2Cmds and reduce(lambda x, y: (y not in ["LRS"]) or x, _2Cmds, False))\ - or (_5Cmds and reduce(lambda x, y: (y not in ["LRS"]) or x, _5Cmds, False)) ): - heading = "Search Result" - detail = ["Pattern search is not available for phenotype databases at this time."] - self.error(heading=heading,detail=detail,error="Error") - return 0 - elif (self.dbType == "ProbeSet" and - ((_2Cmds and reduce(lambda x, y: (y not in [ - "MEAN", "LRS", "PVALUE", "TRANSLRS", "CISLRS", "RANGE", "H2" - ]) or x, _2Cmds, False))\ - or (_3Cmds and reduce(lambda x, y: (y not in ["POS", "POSITION", "MB"]) or x, _3Cmds, False))\ - or (_5Cmds and reduce(lambda x, y: (y not in ["LRS"]) or x, _5Cmds, False))\ - or (_1Cmds and reduce(lambda x, y: ( - y not in ["FLAG", "STRAND_PROBE", "STRAND_GENE", "GO", "WIKI", "RIF", "GENEID"] - ) or x, _1Cmds, False)))): - heading = "Search Result" - detail = ["You entered at least one incorrect search command."] - self.error(heading=heading,detail=detail,error="Error") - return 0 - elif self.dbType == "Geno" and (_1Cmds or _2Cmds or _5Cmds or (_3Cmds and reduce( - lambda x, y: (y not in ["POS", "POSITION", "MB"]) or x, _3Cmds, False)) ): - heading = "Search Result" - detail = ["You entered at least one incorrect search command."] - self.error(heading=heading,detail=detail,error="Error") - return 0 - else: - for k, item in enumerate(m1_OR+m1_AND): - if k >=len(m1_OR): - query = self.ANDQuery - DescriptionText = self.ANDDescriptionText - else: - query = self.ORQuery - DescriptionText = self.ORDescriptionText - - if item[1] == '-': - strandName = 'minus' - elif item[1] == '+': - strandName = 'plus' - else: - strandName = item[1] - - if item[0].upper() in ("FLAG"): - clauseItem = " %s.%s = %s " % (self.dbType, item[0], item[1]) - DescriptionText.append(HT.Span(' with ', HT.U('FLAG'), ' equal to ', item[1])) - elif item[0].upper() in ("WIKI"): - clauseItem = " %s.symbol = GeneRIF.symbol and GeneRIF.versionId=0 and GeneRIF.display>0 and (GeneRIF.comment REGEXP \"%s\" or GeneRIF.initial = \"%s\") " % (self.dbType, "[[:<:]]"+ item[1]+"[[:>:]]", item[1]) - DescriptionText.append(HT.Span(' with GeneWiki contains ', HT.U(item[1]))) - elif item[0].upper() in ("RIF"): - clauseItem = " %s.symbol = GeneRIF_BASIC.symbol and MATCH (GeneRIF_BASIC.comment) AGAINST ('+%s' IN BOOLEAN MODE) " % (self.dbType, item[1]) - DescriptionText.append(HT.Span(' with GeneRIF contains ', HT.U(item[1]))) - elif item[0].upper() in ("GENEID"): - clauseItem = " %s.GeneId in ( %s ) " % (self.dbType, string.replace(item[1], '-', ', ')) - DescriptionText.append(HT.Span(' with Entrez Gene ID in ', HT.U(string.replace(item[1], '-', ', ')))) - elif item[0].upper() in ("GO"): - Field = 'GOterm.acc' - Id = 'GO:'+('0000000'+item[1])[-7:] - Statements = '%s.symbol=GOgene_product.symbol and GOassociation.gene_product_id=GOgene_product.id and GOterm.id=GOassociation.term_id' % (self.dbType); - clauseItem = " %s = '%s' and %s " % (Field, Id, Statements) - #self.incGoTbl = " ,db_GeneOntology.term as GOterm, db_GeneOntology.association as GOassociation, db_GeneOntology.gene_product as GOgene_product " - DescriptionText.append(HT.Span(' with ', HT.U('GO'), ' ID equal to ', Id)) - else: - clauseItem = " %s.%s = '%s' " % (self.dbType, item[0], item[1]) - if item[0].upper() in ["STRAND_PROBE"]: - DescriptionText.append(' with probe on the %s strand' % strandName) - elif item[0].upper() in ["STRAND_GENE"]: - DescriptionText.append(' with gene on the %s strand' % strandName) - else: - pass - query.append(" (%s) " % clauseItem) - - for k, item in enumerate(m2_OR+m2_AND): - if k >=len(m2_OR): - query = self.ANDQuery - DescriptionText = self.ANDDescriptionText - else: - query = self.ORQuery - DescriptionText = self.ORDescriptionText - - itemCmd = item[0] - lower_limit = float(item[1]) - upper_limit = float(item[2]) - - if itemCmd.upper() in ("TRANSLRS", "CISLRS"): - if item[3]: - mthresh = float(item[3]) - clauseItem = " %sXRef.LRS > %2.7f and %sXRef.LRS < %2.7f " % \ - (self.dbType, min(lower_limit, upper_limit), self.dbType, max(lower_limit, upper_limit)) - if itemCmd.upper() == "CISLRS": - clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and %s.Chr = Geno.Chr and ABS(%s.Mb-Geno.Mb) < %2.7f """ % (self.dbType, self.speciesId, self.dbType, self.dbType, mthresh) - DescriptionText.append(HT.Span(' with a ', HT.U('cis-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit), mthresh))) - else: - clauseItem += """ and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and (%s.Chr != Geno.Chr or (%s.Chr != Geno.Chr and ABS(%s.Mb-Geno.Mb) > %2.7f)) """ % (self.dbType, self.speciesId, self.dbType, self.dbType, self.dbType, mthresh) - DescriptionText.append(HT.Span(' with a ', HT.U('trans-QTL'), ' having an LRS between %g and %g using a %g Mb exclusion buffer' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit), mthresh))) - query.append(" (%s) " % clauseItem) - self.orderByDefalut = "LRS" - else: - pass - elif itemCmd.upper() in ("RANGE"): - #XZ, 03/05/2009: Xiaodong changed Data to ProbeSetData - clauseItem = " (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) > %2.7f and (select Pow(2, max(value) -min(value)) from ProbeSetData where Id = ProbeSetXRef.dataId) < %2.7f " % (min(lower_limit, upper_limit), max(lower_limit, upper_limit)) - query.append(" (%s) " % clauseItem) - DescriptionText.append(HT.Span(' with a range of expression that varied between %g and %g' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit)), " (fold difference)")) - else: - clauseItem = " %sXRef.%s > %2.7f and %sXRef.%s < %2.7f " % \ - (self.dbType, itemCmd, min(lower_limit, upper_limit), self.dbType, itemCmd, max(lower_limit, upper_limit)) - query.append(" (%s) " % clauseItem) - self.orderByDefalut = itemCmd - DescriptionText.append(HT.Span(' with ', HT.U(itemCmd), ' between %g and %g' % (min(lower_limit, upper_limit), max(lower_limit, upper_limit)))) - - for k, item in enumerate(m3_OR+m3_AND): - print("enumerating m3_OR+m3_AND with k: %s - item %s" % (k, item)) - if self.dbType not in ("ProbeSet", "Geno"): - continue - if k >=len(m3_OR): - query = self.ANDQuery - DescriptionText = self.ANDDescriptionText - else: - query = self.ORQuery - DescriptionText = self.ORDescriptionText - itemCmd = item[0] - - - chr_number = item[1] # chromosome number - lower_limit = float(item[2]) - upper_limit = float(item[3]) - - if self.dbType == "ProbeSet": - fname = 'target genes' - elif self.dbType == "Geno": - fname = 'loci' - - if lower_limit > upper_limit: - lower_limit, upper_limit = upper_limit, lower_limit - - - clauseItem = " %s.Chr = '%s' and %s.Mb > %2.7f and %s.Mb < %2.7f " % ( - self.dbType, chr_number, self.dbType, lower_limit, self.dbType, upper_limit) - - - query.append(" (%s) " % clauseItem) - self.orderByDefalut = itemCmd - - self.results_desc = dict() - #DescriptionText.append(HT.Span(' with ', HT.U('target genes'), ' on chromosome %s between %g and %g Mb' % \ - # (chr_number, min(lower_limit, upper_limit), max(lower_limit, upper_limit)))) - - for k, item in enumerate(m5_OR+m5_AND): - if k >=len(m5_OR): - query = self.ANDQuery - DescriptionText = self.ANDDescriptionText - else: - query = self.ORQuery - DescriptionText = self.ORDescriptionText - itemCmd = item[0] - lower_limit = float(item[1]) - upper_limit = float(item[2]) - chr_number = item[3] - mb_lower_limit = float(item[4]) - mb_upper_limit = float(item[5]) - if self.dbType == "ProbeSet" or self.dbType == "Publish": - clauseItem = " %sXRef.LRS > %2.7f and %sXRef.LRS < %2.7f " % \ - (self.dbType, min(lower_limit, upper_limit), self.dbType, max(lower_limit, upper_limit)) - clauseItem += " and %sXRef.Locus = Geno.name and Geno.SpeciesId = %s and Geno.Chr = '%s' and Geno.Mb > %2.7f and Geno.Mb < %2.7f" \ - % (self.dbType, self.speciesId, chr_number, min(mb_lower_limit, mb_upper_limit), max(mb_lower_limit, mb_upper_limit)) - query.append(" (%s) " % clauseItem) - self.orderByDefalut = "MB" - DescriptionText.append(HT.Span(' with ', HT.U('LRS'), ' between %g and %g' % \ - (min(lower_limit, upper_limit), max(lower_limit, upper_limit)), \ - ' on chromosome %s between %g and %g Mb' % \ - (chr_number, min(mb_lower_limit, mb_upper_limit), max(mb_lower_limit, mb_upper_limit)))) - pass - - return 1 - - def generateWarningLayer(self): - - layerString = """ - <!-- BEGIN FLOATING LAYER CODE //--> - <div id="warningLayer" style="padding:3px; border: 1px solid #222; - background-color: #fff; position:absolute;width:250px;left:100;top:100;visibility:hidden"> - <table border="0" width="250" class="cbrb" cellspacing="0" cellpadding="5"> - <tr> - <td width="100%"> - <table border="0" width="100%" cellspacing="0" cellpadding="0" height="36"> - <tr> - <td class="cbrb cw ff15 fwb" align="Center" width="100%" style="padding:4px"> - Sort Table - </td> - </tr> - <tr> - <td width="100%" bgcolor="#eeeeee" align="Center" style="padding:4px"> - <!-- PLACE YOUR CONTENT HERE //--> - Resorting this table <br> - <!-- END OF CONTENT AREA //--> - </td> - </tr> - </table> - </td> - </tr> - </table> - </div> - <!-- END FLOATING LAYER CODE //--> - - """ - - return layerString - def getTableHeaderForGeno(self, worksheet=None, newrow=None, headingStyle=None): tblobj_header = [] @@ -1112,26 +351,7 @@ class SearchResultPage(templatePage): newrow += 1 return tblobj_body - - def getTableHeaderForPublish(self, worksheet=None, newrow=None, headingStyle=None): - - tblobj_header = [] - - className = "fs13 fwb ffl b1 cw cbrb" - - tblobj_header = [[THCell(HT.TD(' ', Class=className, nowrap="on"), sort=0), - THCell(HT.TD('Record',HT.BR(), 'ID',HT.BR(), Class=className, nowrap="on"), text="recond_id", idx=1), - THCell(HT.TD('Phenotype',HT.BR(),HT.BR(), Class=className, nowrap="on"), text="pheno", idx=2), - THCell(HT.TD('Authors',HT.BR(),HT.BR(), Class=className, nowrap="on"), text="auth", idx=3), - THCell(HT.TD('Year',HT.BR(),HT.BR(), Class=className, nowrap="on"), text="year", idx=4), - THCell(HT.TD('Max',HT.BR(), 'LRS', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="lrs", idx=5), - THCell(HT.TD('Max LRS Location',HT.BR(),'Chr and Mb',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="lrs_location", idx=6)]] - - for ncol, item in enumerate(["Record", "Phenotype", "Authors", "Year", "Pubmed Id", "Max LRS", "Max LRS Location (Chr: Mb)"]): - worksheet.write([newrow, ncol], item, headingStyle) - worksheet.set_column([ncol, ncol], 2*len(item)) - - return tblobj_header + def getTableBodyForPublish(self, trait_list, formName=None, worksheet=None, newrow=None, species=''): @@ -1225,32 +445,13 @@ class SearchResultPage(templatePage): return tblobj_body - def getTableHeaderForProbeSet(self, worksheet=None, newrow=None, headingStyle=None): - - tblobj_header = [] - - className = "fs13 fwb ffl b1 cw cbrb" - - #tblobj_header = [[THCell(HT.TD(' ', Class="fs13 fwb ffl b1 cw cbrb",nowrap='ON'), sort=0), - # THCell(HT.TD('Record',HT.BR(), 'ID',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="record_id", idx=1), - # THCell(HT.TD('Symbol',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="symbol", idx=2), - # THCell(HT.TD('Description',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="desc", idx=3), - # THCell(HT.TD('Location',HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="location", idx=4), - # THCell(HT.TD('Mean',HT.BR(),'Expr',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="mean", idx=5), - # THCell(HT.TD('Max',HT.BR(),'LRS',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="lrs", idx=6), - # THCell(HT.TD('Max LRS Location',HT.BR(),'Chr and Mb',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="lrs_location", idx=7)]] - # - #for ncol, item in enumerate(['Record', 'Gene ID', 'Homologene ID', 'Symbol', 'Description', 'Location (Chr, Mb)', 'Mean Expr', 'Max LRS', 'Max LRS Location (Chr: Mb)']): - # worksheet.write([newrow, ncol], item, headingStyle) - # worksheet.set_column([ncol, ncol], 2*len(item)) - return tblobj_header - - def getTableBodyForProbeSet(self, trait_list=[], primaryTrait=None, formName=None, worksheet=None, newrow=None, species=''): + def getTableBodyForProbeSet(self, trait_list=None, primaryTrait=None, formName=None, worksheet=None, newrow=None, species=''): # Note: setting trait_list to [] is probably not a great idea. tblobj_body = [] - className = "fs12 fwn b1 c222" + if not trait_list: + trait_list = [] for this_trait in trait_list: @@ -1298,8 +499,6 @@ class SearchResultPage(templatePage): if len(description_display) > 1 and description_display != 'N/A' and len(target_string) > 1 and target_string != 'None': description_display = description_display + '; ' + target_string.strip() - #tr.append(TDCell(HT.TD(description_display, Class=className), description_display, description_display)) - # Save it for the jinja2 tablet this_trait.description_display = description_display @@ -1319,7 +518,6 @@ class SearchResultPage(templatePage): trait_location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr, float(this_trait.mb) ) this_trait.trait_location_repr = trait_location_repr #this_trait.trait_location_value = trait_location_value - tr.append(TDCell(HT.TD(trait_location_repr, Class=className, nowrap="on"), trait_location_repr, trait_location_value)) #XZ, 01/12/08: This SQL query is much faster. query = ( @@ -1397,34 +595,10 @@ class SearchResultPage(templatePage): tblobj_body.append(tr) - #for ncol, item in enumerate([this_trait.name, this_trait.geneid, this_trait.homologeneid, this_trait.symbol, description_display, trait_location_repr, mean, LRS_score_repr, LRS_location_repr]): - # worksheet.write([newrow, ncol], item) - - newrow += 1 return tblobj_body - def createExcelFileWithTitleAndFooter(self, workbook=None, identification=None, db=None, returnNumber=None): - - worksheet = workbook.add_worksheet() - - titleStyle = workbook.add_format(align = 'left', bold = 0, size=14, border = 1, border_color="gray") - - ##Write title Info - # Modified by Hongqiang Li - worksheet.write([1, 0], "Citations: Please see %s/reference.html" % webqtlConfig.PORTADDR, titleStyle) - worksheet.write([1, 0], "Citations: Please see %s/reference.html" % webqtlConfig.PORTADDR, titleStyle) - worksheet.write([2, 0], "Trait : %s" % identification, titleStyle) - worksheet.write([3, 0], "Database : %s" % db.fullname, titleStyle) - worksheet.write([4, 0], "Date : %s" % time.strftime("%B %d, %Y", time.gmtime()), titleStyle) - worksheet.write([5, 0], "Time : %s GMT" % time.strftime("%H:%M ", time.gmtime()), titleStyle) - worksheet.write([6, 0], "Status of data ownership: Possibly unpublished data; please see %s/statusandContact.html for details on sources, ownership, and usage of these data." % webqtlConfig.PORTADDR, titleStyle) - #Write footer info - worksheet.write([9 + returnNumber, 0], "Funding for The GeneNetwork: NIAAA (U01AA13499, U24AA13513), NIDA, NIMH, and NIAAA (P20-DA21131), NCI MMHCC (U01CA105417), and NCRR (U01NR 105417)", titleStyle) - worksheet.write([10 + returnNumber, 0], "PLEASE RETAIN DATA SOURCE INFORMATION WHENEVER POSSIBLE", titleStyle) - - return worksheet def getSortByValue(self, datasetType=''): diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json new file mode 100644 index 00000000..898ffa02 --- /dev/null +++ b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json @@ -0,0 +1,2904 @@ +{ + "datasets": { + "All Species": { + "All Groups": { + "Phenotypes": [ + [ + "All Phenotypes", + "All Phenotypes" + ] + ] + } + }, + "arabidopsis": { + "BayXSha": { + "Genotypes": [ + [ + "BayXShaGeno", + "BayXSha Genotypes" + ] + ], + "Phenotypes": [ + [ + "BayXShaPublish", + "BayXSha Published Phenotypes" + ] + ] + }, + "ColXBur": { + "Genotypes": [ + [ + "ColXBurGeno", + "ColXBur Genotypes" + ] + ], + "Phenotypes": [ + [ + "ColXBurPublish", + "ColXBur Published Phenotypes" + ] + ] + }, + "ColXCvi": { + "Genotypes": [ + [ + "ColXCviGeno", + "ColXCvi Genotypes" + ] + ], + "Phenotypes": [ + [ + "ColXCviPublish", + "ColXCvi Published Phenotypes" + ] + ] + } + }, + "barley": { + "QSM": { + "Genotypes": [ + [ + "QSMGeno", + "QSM Genotypes" + ] + ], + "Leaf": [ + [ + "B1LI0809R", + "Barley1 Leaf INOC TTKS (Aug09) RMA" + ], + [ + "B1LI0809M5", + "Barley1 Leaf INOC TTKS (Aug09) MAS5" + ], + [ + "B1MI0809M5", + "Barley1 Leaf MOCK TTKS (Aug09) MAS5" + ], + [ + "B1MI0809R", + "Barley1 Leaf MOCK TTKS (Aug09) RMA" + ] + ], + "Phenotypes": [ + [ + "QSMPublish", + "QSM Published Phenotypes" + ] + ] + }, + "SXM": { + "Embryo": [ + [ + "B139_K_1206_R", + "Barley1 Embryo gcRMA SCRI (Dec06)" + ], + [ + "B139_K_1206_M", + "Barley1 Embryo MAS 5.0 SCRI (Dec06)" + ], + [ + "B150_K_0406_R", + "Barley1 Embryo0 gcRMA SCRI (Apr06)" + ] + ], + "Genotypes": [ + [ + "SXMGeno", + "SXM Genotypes" + ] + ], + "Leaf": [ + [ + "B30_K_1206_M", + "Barley1 Leaf MAS 5.0 SCRI (Dec06)" + ], + [ + "B30_K_1206_Rn", + "Barley1 Leaf gcRMAn SCRI (Dec06)" + ], + [ + "B30_K_1206_R", + "Barley1 Leaf gcRMA SCRI (Dec06)" + ] + ], + "Phenotypes": [ + [ + "SXMPublish", + "SXM Published Phenotypes" + ] + ] + } + }, + "drosophila": { + "DGRP": { + "Genotypes": [ + [ + "DGRPGeno", + "DGRP Genotypes" + ] + ], + "Phenotypes": [ + [ + "DGRPPublish", + "DGRP Published Phenotypes" + ] + ], + "Whole Body": [ + [ + "NCSU_DrosWB_LC_RMA_0111", + "NCSU Drosophila Whole Body (Jan11) RMA" + ] + ] + }, + "Oregon-R_x_2b3": { + "Genotypes": [ + [ + "Oregon-R_x_2b3Geno", + "Oregon-R_x_2b3 Genotypes" + ] + ], + "Phenotypes": [ + [ + "Oregon-R_x_2b3Publish", + "Oregon-R_x_2b3 Published Phenotypes" + ] + ], + "Whole Body": [ + [ + "UAB_DrosWB_LC_RMA_1009", + "UAB Whole body D.m. mRNA control (Oct09) RMA" + ], + [ + "UAB_DrosWB_LE_RMA_1009", + "UAB Whole body D.m. mRNA lead (pbAc) (Oct09) RMA" + ] + ] + } + }, + "human": { + "AD-cases-controls": { + "Brain": [ + [ + "GSE5281_F_RMA_N_0709", + "GSE5281 Human Brain Normal Full Liang (Jul09) RMA" + ], + [ + "GSE5281_F_RMA_Alzh_0709", + "GSE5281 Human Brain Alzheimer Full Liang (Jul09) RMA" + ], + [ + "GSE5281_F_RMA0709", + "GSE5281 Human Brain Full Liang (Jul09) RMA" + ], + [ + "GSE5281_RMA0709", + "GSE5281 Human Brain Best 102 Liang (Jul09) RMA" + ] + ], + "Genotypes": [ + [ + "AD-cases-controlsGeno", + "AD-cases-controls Genotypes" + ] + ], + "Phenotypes": [ + [ + "AD-cases-controlsPublish", + "AD-cases-controls Published Phenotypes" + ] + ] + }, + "AD-cases-controls-Myers": { + "Brain": [ + [ + "GSE15222_F_A_RI_0409", + "GSE15222 Human Brain Alzheimer Myers (Apr09) RankInv" + ], + [ + "GSE15222_F_N_RI_0409", + "GSE15222 Human Brain Normal Myers (Apr09) RankInv" + ], + [ + "GSE15222_F_RI_0409", + "GSE15222 Human Brain Myers (Apr09) RankInv" + ] + ], + "Genotypes": [ + [ + "AD-cases-controls-MyersGeno", + "AD-cases-controls-Myers Genotypes" + ] + ], + "Phenotypes": [ + [ + "AD-cases-controls-MyersPublish", + "AD-cases-controls-Myers Published Phenotypes" + ] + ] + }, + "CANDLE": { + "Genotypes": [ + [ + "CANDLEGeno", + "CANDLE Genotypes" + ] + ], + "Newborn Cord Blood": [ + [ + "CANDLE_NB_0711", + "CANDLE Newborn Cord ILMv6.3 (Jun11) QUANT **" + ] + ], + "Phenotypes": [ + [ + "CANDLEPublish", + "CANDLE Published Phenotypes" + ] + ] + }, + "CEPH-2004": { + "Genotypes": [ + [ + "CEPH-2004Geno", + "CEPH-2004 Genotypes" + ] + ], + "Lymphoblast B-cell": [ + [ + "UT_CEPH_RankInv0909", + "UTHSC CEPH B-cells Illumina (Sep09) RankInv" + ], + [ + "Human_1008", + "Monks CEPH B-cells Agilent (Dec04) Log10Ratio" + ] + ], + "Phenotypes": [ + [ + "CEPH-2004Publish", + "CEPH-2004 Published Phenotypes" + ] + ] + }, + "HB": { + "Cerebellum": [ + [ + "HBTRC-MLC_0611", + "HBTRC-MLC Human Cerebellum Agilent (Jun11) mlratio" + ], + [ + "HBTRC-MLC_N_0611", + "HBTRC-MLC Human Cerebellum Agilent Normal (Jun11) mlratio" + ], + [ + "HBTRC-MLC_AD_0611", + "HBTRC-MLC Human Cerebellum Agilent AD (Jun11) mlratio" + ], + [ + "HBTRC-MLC_HD_0611", + "HBTRC-MLC Human Cerebellum Agilent HD (Jun11) mlratio" + ] + ], + "Genotypes": [ + [ + "HBGeno", + "HB Genotypes" + ] + ], + "Phenotypes": [ + [ + "HBPublish", + "HB Published Phenotypes" + ] + ], + "Prefrontal Cortex": [ + [ + "HBTRC-MLPFC_0611", + "HBTRC-MLC Human Prefrontal Cortex Agilent (Jun11) mlratio" + ], + [ + "HBTRC-MLPFC_N_0611", + "HBTRC-MLC Human Prefrontal Cortex Agilent Normal (Jun11) mlratio" + ], + [ + "HBTRC-MLPFC_AD_0611", + "HBTRC-MLC Human Prefrontal Cortex Agilent AD (Jun11) mlratio" + ], + [ + "HBTRC-MLPFC_HD_0611", + "HBTRC-MLC Human Prefrontal Cortex Agilent HD (Jun11) mlratio" + ] + ], + "Primary Visual Cortex": [ + [ + "HBTRC-MLVC_0611", + "HBTRC-MLC Human Visual Cortex Agilent (Jun11) mlratio" + ], + [ + "HBTRC-MLVC_N_0611", + "HBTRC-MLC Human Visual Cortex Agilent Normal (Jun11) mlratio" + ], + [ + "HBTRC-MLVC_AD_0611", + "HBTRC-MLC Human Visual Cortex Agilent AD (Jun11) mlratio" + ], + [ + "HBTRC-MLVC_HD_0611", + "HBTRC-MLC Human Visual Cortex Agilent HD (Jun11) mlratio" + ] + ] + }, + "HLC": { + "Genotypes": [ + [ + "HLCGeno", + "HLC Genotypes" + ] + ], + "Liver": [ + [ + "HLC_0311", + "GSE9588 Human Liver Normal (Mar11) Both Sexes" + ], + [ + "HLCM_0311", + "GSE9588 Human Liver Normal (Mar11) Males" + ], + [ + "HLCF_0311", + "GSE9588 Human Liver Normal (Mar11) Females" + ] + ], + "Phenotypes": [ + [ + "HLCPublish", + "HLC Published Phenotypes" + ] + ] + }, + "HSB": { + "Amygdala": [ + [ + "KIN_YSM_AMY_0711", + "KIN/YSM Human AMY Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Caudal Ganglionic Eminence": [ + [ + "KIN_YSM_CGE_0711", + "KIN/YSM Human CGE Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Cerebellar Cortex": [ + [ + "KIN_YSM_CBC_0711", + "KIN/YSM Human CBC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Diencephalon": [ + [ + "KIN_YSM_DIE_0711", + "KIN/YSM Human DIE Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Dorsal Thalamus": [ + [ + "KIN_YSM_DTH_0711", + "KIN/YSM Human DTH Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Dorsolateral Prefrontal Cortex": [ + [ + "KIN_YSM_DFC_0711", + "KIN/YSM Human DFC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Frontal Cerebral Wall": [ + [ + "KIN_YSM_FC_0711", + "KIN/YSM Human FC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Genotypes": [ + [ + "HSBGeno", + "HSB Genotypes" + ] + ], + "Hippocampus": [ + [ + "KIN_YSM_HIP_0711", + "KIN/YSM Human HIP Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Inferior Temporal Cortex": [ + [ + "KIN_YSM_ITC_0711", + "KIN/YSM Human ITC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Lateral Ganglionic Eminence": [ + [ + "KIN_YSM_LGE_0711", + "KIN/YSM Human LGE Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Medial Ganglionic Eminence": [ + [ + "KIN_YSM_MGE_0711", + "KIN/YSM Human MGE Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Medial Prefrontal Cortex": [ + [ + "KIN_YSM_MFC_0711", + "KIN/YSM Human MFC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Mediodorsal Nucleus of Thalamus": [ + [ + "KIN_YSM_MD_0711", + "KIN/YSM Human MD Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Occipital Cerebral Wall": [ + [ + "KIN_YSM_OC_0711", + "KIN/YSM Human OC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Orbital Prefrontal Cortex": [ + [ + "KIN_YSM_OFC_0711", + "KIN/YSM Human OFC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Parietal Cerebral Wall": [ + [ + "KIN_YSM_PC_0711", + "KIN/YSM Human PC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Phenotypes": [ + [ + "HSBPublish", + "HSB Published Phenotypes" + ] + ], + "Posterior Inferior Parietal Cortex": [ + [ + "KIN_YSM_IPC_0711", + "KIN/YSM Human IPC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Posterior Superior Temporal Cortex": [ + [ + "KIN_YSM_STC_0711", + "KIN/YSM Human STC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Primary Auditory (A1) Cortex": [ + [ + "KIN_YSM_A1C_0711", + "KIN/YSM Human A1C Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Primary Motor (M1) Cortex": [ + [ + "KIN_YSM_M1C_0711", + "KIN/YSM Human M1C Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Primary Somatosensory (S1) Cortex": [ + [ + "KIN_YSM_S1C_0711", + "KIN/YSM Human S1C Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Primary Visual Cortex": [ + [ + "KIN_YSM_V1C_0711", + "KIN/YSM Human V1C Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Striatum": [ + [ + "KIN_YSM_STR_0711", + "KIN/YSM Human STR Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Temporal Cerebral Wall": [ + [ + "KIN_YSM_TC_0711", + "KIN/YSM Human TC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Upper (Rostral) Rhombic Lip": [ + [ + "KIN_YSM_URL_0711", + "KIN/YSM Human URL Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Ventral Forebrain": [ + [ + "KIN_YSM_VF_0711", + "KIN/YSM Human VF Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ], + "Ventrolateral Prefrontal Cortex": [ + [ + "KIN_YSM_VFC_0711", + "KIN/YSM Human VFC Affy Hu-Exon 1.0 ST (Jul11) Quantile **" + ] + ] + } + }, + "macaque monkey": { + "Macaca-fasicularis": { + "Amygdala": [ + [ + "INIA_MacFas_AMGc_RMA_0110", + "INIA Macaca fasicularis Amygdala control (Jan10) RMA **" + ], + [ + "INIA_MacFas_AMGe_RMA_0110", + "INIA Macaca fasicularis Amygdala ethanol (Jan10) RMA **" + ] + ], + "Brain": [ + [ + "INIA_MacFas_brain_RMA_0110", + "INIA Macaca fasicularis Brain (Jan10) RMA **" + ] + ], + "Genotypes": [ + [ + "Macaca-fasicularisGeno", + "Macaca-fasicularis Genotypes" + ] + ], + "Hippocampus": [ + [ + "INIA_MacFas_Hc_RMA_0110", + "INIA Macaca fasicularis Hippocampus control (Jan10) RMA **" + ], + [ + "INIA_MacFas_He_RMA_0110", + "INIA Macaca fasicularis Hippocampus ethanol (Jan10) RMA **" + ] + ], + "Nucleus Accumbens": [ + [ + "INIA_MacFas_Ac_RMA_0110", + "INIA Macaca fasicularis Nucleus Accumbens control (Jan10) RMA **" + ], + [ + "INIA_MacFas_Ae_RMA_0110", + "INIA Macaca fasicularis Nucleus Accumbens ethanol (Jan10) RMA **" + ] + ], + "Phenotypes": [ + [ + "Macaca-fasicularisPublish", + "Macaca-fasicularis Published Phenotypes" + ] + ], + "Prefrontal Cortex": [ + [ + "INIA_MacFas_Pf_RMA_0110", + "INIA Macaca fasicularis Prefrontal Cortex control (Jan10) RMA **" + ], + [ + "INIA_MacFas_PfE_RMA_0110", + "INIA Macaca fasicularis Prefrontal Cortex ethanol (Jan10) RMA **" + ] + ] + } + }, + "mouse": { + "AKXD": { + "Genotypes": [ + [ + "AKXDGeno", + "AKXD Genotypes" + ] + ], + "Mammary Tumors": [ + [ + "NCI_Agil_Mam_Tum_RMA_0409", + "NCI Mammary LMT miRNA v2 (Apr09) RMA" + ], + [ + "MA_M_0704_R", + "NCI Mammary mRNA M430 (July04) RMA" + ], + [ + "MA_M_0704_M", + "NCI Mammary mRNA M430 (July04) MAS5" + ] + ], + "Phenotypes": [ + [ + "AKXDPublish", + "AKXD Published Phenotypes" + ] + ] + }, + "AXBXA": { + "Eye": [ + [ + "Eye_AXBXA_1008_RankInv", + "Eye AXBXA Illumina V6.2(Oct08) RankInv Beta" + ] + ], + "Genotypes": [ + [ + "AXBXAGeno", + "AXBXA Genotypes" + ] + ], + "Phenotypes": [ + [ + "AXBXAPublish", + "AXBXA Published Phenotypes" + ] + ] + }, + "B6BTBRF2": { + "Genotypes": [ + [ + "B6BTBRF2Geno", + "B6BTBRF2 Genotypes" + ] + ], + "Liver": [ + [ + "LVF2_M_0704_R", + "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA" + ], + [ + "LVF2_M_0704_M", + "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) MAS5" + ] + ], + "Phenotypes": [ + [ + "B6BTBRF2Publish", + "B6BTBRF2 Published Phenotypes" + ] + ] + }, + "B6D2F2": { + "Brain": [ + [ + "BRF2_M_0805_M", + "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) MAS5" + ], + [ + "BRF2_M_0805_P", + "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) PDNN" + ], + [ + "BRF2_M_0805_R", + "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA" + ], + [ + "BRF2_M_0304_P", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) PDNN" + ], + [ + "BRF2_M_0304_R", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA" + ], + [ + "BRF2_M_0304_M", + "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) MAS5" + ] + ], + "Genotypes": [ + [ + "B6D2F2Geno", + "B6D2F2 Genotypes" + ] + ], + "Phenotypes": [ + [ + "B6D2F2Publish", + "B6D2F2 Published Phenotypes" + ] + ] + }, + "BDF2-1999": { + "Genotypes": [ + [ + "BDF2-1999Geno", + "BDF2-1999 Genotypes" + ] + ], + "Liver": [ + [ + "UCLA_BDF2_LIVER_1999", + "UCLA BDF2 Liver (1999) mlratio" + ] + ], + "Phenotypes": [ + [ + "BDF2-1999Publish", + "BDF2-1999 Published Phenotypes" + ] + ] + }, + "BDF2-2005": { + "Genotypes": [ + [ + "BDF2-2005Geno", + "BDF2-2005 Genotypes" + ] + ], + "Phenotypes": [ + [ + "BDF2-2005Publish", + "BDF2-2005 Published Phenotypes" + ] + ], + "Striatum": [ + [ + "SA_M2_0905_R", + "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA" + ], + [ + "SA_M2_0905_M", + "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) MAS5" + ], + [ + "SA_M2_0905_P", + "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) PDNN" + ] + ] + }, + "BHF2": { + "Adipose": [ + [ + "UCLA_BHF2_ADIPOSE_MALE", + "UCLA BHF2 Adipose Male mlratio" + ], + [ + "UCLA_BHF2_ADIPOSE_FEMALE", + "UCLA BHF2 Adipose Female mlratio" + ], + [ + "UCLA_BHF2_ADIPOSE_0605", + "UCLA BHF2 Adipose (June05) mlratio" + ] + ], + "Brain": [ + [ + "UCLA_BHF2_BRAIN_MALE", + "UCLA BHF2 Brain Male mlratio" + ], + [ + "UCLA_BHF2_BRAIN_FEMALE", + "UCLA BHF2 Brain Female mlratio" + ], + [ + "UCLA_BHF2_BRAIN_0605", + "UCLA BHF2 Brain (June05) mlratio" + ] + ], + "Genotypes": [ + [ + "BHF2Geno", + "BHF2 Genotypes" + ] + ], + "Liver": [ + [ + "UCLA_BHF2_LIVER_MALE", + "UCLA BHF2 Liver Male mlratio" + ], + [ + "UCLA_BHF2_LIVER_FEMALE", + "UCLA BHF2 Liver Female mlratio" + ], + [ + "UCLA_BHF2_LIVER_0605", + "UCLA BHF2 Liver (June05) mlratio" + ] + ], + "Muscle": [ + [ + "UCLA_BHF2_MUSCLE_MALE", + "UCLA BHF2 Muscle Male mlratio **" + ], + [ + "UCLA_BHF2_MUSCLE_FEMALE", + "UCLA BHF2 Muscle Female mlratio **" + ], + [ + "UCLA_BHF2_MUSCLE_0605", + "UCLA BHF2 Muscle (June05) mlratio **" + ] + ], + "Phenotypes": [ + [ + "BHF2Publish", + "BHF2 Published Phenotypes" + ] + ] + }, + "BHHBF2": { + "Adipose": [ + [ + "UCLA_BHHBF2_ADIPOSE_MALE", + "UCLA BHHBF2 Adipose Male Only" + ], + [ + "UCLA_BHHBF2_ADIPOSE_FEMALE", + "UCLA BHHBF2 Adipose Female Only" + ], + [ + "UCLA_BHHBF2_ADIPOSE_2005", + "UCLA BHHBF2 Adipose (2005) mlratio **" + ] + ], + "Brain": [ + [ + "UCLA_BHHBF2_BRAIN_MALE", + "UCLA BHHBF2 Brain Male Only" + ], + [ + "UCLA_BHHBF2_BRAIN_FEMALE", + "UCLA BHHBF2 Brain Female Only" + ], + [ + "UCLA_BHHBF2_BRAIN_2005", + "UCLA BHHBF2 Brain (2005) mlratio **" + ] + ], + "Genotypes": [ + [ + "BHHBF2Geno", + "BHHBF2 Genotypes" + ] + ], + "Liver": [ + [ + "UCLA_BHHBF2_LIVER_MALE", + "UCLA BHHBF2 Liver Male Only" + ], + [ + "UCLA_BHHBF2_LIVER_FEMALE", + "UCLA BHHBF2 Liver Female Only" + ], + [ + "UCLA_BHHBF2_LIVER_2005", + "UCLA BHHBF2 Liver (2005) mlratio **" + ] + ], + "Muscle": [ + [ + "UCLA_BHHBF2_MUSCLE_MALE", + "UCLA BHHBF2 Muscle Male Only" + ], + [ + "UCLA_BHHBF2_MUSCLE_FEMALE", + "UCLA BHHBF2 Muscle Female Only" + ], + [ + "UCLA_BHHBF2_MUSCLE_2005", + "UCLA BHHBF2 Muscle (2005) mlratio **" + ] + ], + "Phenotypes": [ + [ + "BHHBF2Publish", + "BHHBF2 Published Phenotypes" + ] + ] + }, + "BXD": { + "Amygdala": [ + [ + "INIA_AmgCoh_0311", + "INIA Amygdala Cohort Affy MoGene 1.0 ST (Mar11) RMA" + ], + [ + "INIA_Amg_BLA_RMA_1110", + "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA" + ], + [ + "INIA_Amg_BLA_RMA_M_1110", + "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA Male" + ], + [ + "INIA_Amg_BLA_RMA_F_1110", + "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA Female" + ] + ], + "Brain": [ + [ + "BR_M2_1106_R", + "UCHSC BXD Whole Brain M430 2.0 (Nov06) RMA" + ], + [ + "BR_U_1105_P", + "UTHSC Brain mRNA U74Av2 (Nov05) PDNN" + ], + [ + "BR_U_0805_M", + "UTHSC Brain mRNA U74Av2 (Aug05) MAS5" + ], + [ + "BR_U_0805_R", + "UTHSC Brain mRNA U74Av2 (Aug05) RMA" + ], + [ + "BR_U_0805_P", + "UTHSC Brain mRNA U74Av2 (Aug05) PDNN" + ], + [ + "CB_M_0204_P", + "INIA Brain mRNA M430 (Feb04) PDNN" + ] + ], + "Cartilage": [ + [ + "UCLA_BXDBXH_CARTILAGE_V2", + "UCLA BXD and BXH Cartilage v2" + ], + [ + "UCLA_BXDBXH_CARTILAGE", + "UCLA BXD and BXH Cartilage" + ], + [ + "UCLA_BXD_CARTILAGE", + "UCLA BXD Cartilage" + ] + ], + "Cerebellum": [ + [ + "CB_M_1004_M", + "SJUT Cerebellum mRNA M430 (Oct04) MAS5" + ], + [ + "CB_M_1004_R", + "SJUT Cerebellum mRNA M430 (Oct04) RMA" + ], + [ + "CB_M_1004_P", + "SJUT Cerebellum mRNA M430 (Oct04) PDNN" + ], + [ + "CB_M_1003_M", + "SJUT Cerebellum mRNA M430 (Oct03) MAS5" + ] + ], + "Eye": [ + [ + "Eye_M2_0908_R", + "Eye M430v2 (Sep08) RMA" + ], + [ + "Eye_M2_0908_R_NB", + "Eye M430v2 Mutant Gpnmb (Sep08) RMA **" + ], + [ + "Eye_M2_0908_R_ND", + "Eye M430v2 WT Gpnmb (Sep08) RMA **" + ], + [ + "Eye_M2_0908_WTWT", + "Eye M430v2 WT WT (Sep08) RMA **" + ], + [ + "Eye_M2_0908_R_MT", + "Eye M430v2 Mutant Tyrp1 (Sep08) RMA **" + ], + [ + "Eye_M2_0908_R_WT", + "Eye M430v2 WT Tyrp1 (Sep08) RMA **" + ], + [ + "BXD_GLA_0911", + "BXD Glaucoma Affy M430 2.0 Trial (Sep11) RMA **" + ] + ], + "Genotypes": [ + [ + "BXDGeno", + "BXD Genotypes" + ] + ], + "Hematopoietic Cells": [ + [ + "UMCG_0907_HemaStem_ori", + "UMCG Stem Cells ILM6v1.1 (Apr09) original" + ], + [ + "UMCG_0907_HemaStem", + "UMCG Stem Cells ILM6v1.1 (Apr09) transformed" + ], + [ + "UMCG_0907_Pro_ori", + "UMCG Progenitor Cells ILM6v1.1 (Apr09) original" + ], + [ + "UMCG_0907_Pro", + "UMCG Progenitor Cells ILM6v1.1 (Apr09) transformed" + ], + [ + "UMCG_0907_Eryth_ori", + "UMCG Erythroid Cells ILM6v1.1 (Apr09) original" + ], + [ + "UMCG_0907_Eryth", + "UMCG Erythroid Cells ILM6v1.1 (Apr09) transformed" + ], + [ + "UMCG_0907_Myeloid_ori", + "UMCG Myeloid Cells ILM6v1.1 (Apr09) original" + ], + [ + "UMCG_0907_Myeloid", + "UMCG Myeloid Cells ILM6v1.1 (Apr09) transformed" + ], + [ + "HC_U_0304_R", + "GNF Stem Cells U74Av2 (Mar04) RMA" + ] + ], + "Hippocampus": [ + [ + "HC_M2_0606_P", + "Hippocampus Consortium M430v2 (Jun06) PDNN" + ], + [ + "HC_M2_0606_M", + "Hippocampus Consortium M430v2 (Jun06) MAS5" + ], + [ + "HC_M2_0606_R", + "Hippocampus Consortium M430v2 (Jun06) RMA" + ], + [ + "UMUTAffyExon_0209_RMA", + "UMUTAffy Hippocampus Exon (Feb09) RMA" + ], + [ + "UT_ILM_BXD_hipp_NON_0909", + "UTHSC Hippocampus Illumina v6.1 NON (Sep09) RankInv" + ], + [ + "UT_ILM_BXD_hipp_NOS_0909", + "UTHSC Hippocampus Illumina v6.1 NOS (Sep09) RankInv" + ], + [ + "UT_ILM_BXD_hipp_NOE_0909", + "UTHSC Hippocampus Illumina v6.1 NOE (Sep09) RankInv" + ], + [ + "UT_ILM_BXD_hipp_RSS_0909", + "UTHSC Hippocampus Illumina v6.1 RSS (Sep09) RankInv" + ], + [ + "UT_ILM_BXD_hipp_RSE_0909", + "UTHSC Hippocampus Illumina v6.1 RSE (Sep09) RankInv" + ] + ], + "Hypothalamus": [ + [ + "INIA_Hyp_RMA_1110", + "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10)" + ], + [ + "INIA_Hyp_M_RMA_1110", + "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) Male" + ], + [ + "INIA_Hyp_F_RMA_1110", + "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) Female" + ] + ], + "Kidney": [ + [ + "MA_M2M_0706_R", + "Mouse kidney M430v2 Male (Aug06) RMA" + ], + [ + "MA_M2F_0706_R", + "Mouse kidney M430v2 Female (Aug06) RMA" + ], + [ + "MA_M2_0806_R", + "Mouse kidney M430v2 Sex Balanced (Aug06) RMA" + ], + [ + "MA_M2_0806_P", + "Mouse Kidney M430v2 Sex Balanced (Aug06) PDNN" + ], + [ + "MA_M2_0706_P", + "Mouse Kidney M430v2 (Jul06) PDNN" + ], + [ + "MA_M2_0706_R", + "Mouse Kidney M430v2 (Jul06) RMA" + ] + ], + "Leucocytes": [ + [ + "Illum_BXD_PBL_1108", + "UWA Illumina PBL (Nov08) RSN **" + ] + ], + "Liver": [ + [ + "GSE16780_UCLA_ML0911", + "GSE16780 UCLA Hybrid MDP Liver Affy HT M430A (Sep11) RMA" + ], + [ + "GenEx_BXD_liverSal_RMA_F_0211", + "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Females **" + ], + [ + "GenEx_BXD_liverSal_RMA_M_0211", + "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Males **" + ], + [ + "GenEx_BXD_liverSal_RMA_0211", + "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Both Sexes **" + ], + [ + "GenEx_BXD_liverEt_RMA_F_0211", + "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Females **" + ], + [ + "GenEx_BXD_liverEt_RMA_M_0211", + "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Males **" + ], + [ + "GenEx_BXD_liverEt_RMA_0211", + "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Both Sexes **" + ], + [ + "SUH_Liv_RMA_0611", + "SUH BXD Liver Affy Mouse Gene 1.0 ST (Jun11) RMA **" + ] + ], + "Lung": [ + [ + "HZI_0408_R", + "HZI Lung M430v2 (Apr08) RMA" + ], + [ + "HZI_0408_M", + "HZI Lung M430v2 (Apr08) MAS5" + ] + ], + "Midbrain": [ + [ + "VUBXDMouseMidBrainQ0212", + "VU BXD Midbrain Agilent SurePrint G3 Mouse GE (Feb12) Quantile" + ] + ], + "Muscle": [ + [ + "EPFLMouseMuscleRMA1211", + "EPFL/LISP BXD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA **" + ], + [ + "EPFLMouseMuscleHFDRMA1211", + "EPFL/LISP BXD HFD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA **" + ], + [ + "EPFLMouseMuscleCDRMA1211", + "EPFL/LISP BXD CD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA **" + ] + ], + "Neocortex": [ + [ + "DevNeocortex_ILM6.2P14RInv_1111", + "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv **" + ], + [ + "DevNeocortex_ILM6.2P3RInv_1111", + "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv **" + ], + [ + "HQFNeoc_1210v2_RankInv", + "HQF BXD Neocortex ILM6v1.1 (Dec10v2) RankInv" + ], + [ + "HQFNeoc_1210_RankInv", + "HQF BXD Neocortex ILM6v1.1 (Dec10) RankInv" + ], + [ + "HQFNeoc_0208_RankInv", + "HQF BXD Neocortex ILM6v1.1 (Feb08) RankInv" + ], + [ + "DevNeocortex_ILM6.2P3RInv_1110", + "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv **" + ], + [ + "DevNeocortex_ILM6.2P14RInv_1110", + "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv **" + ] + ], + "Nucleus Accumbens": [ + [ + "VCUSalo_1007_R", + "VCU BXD NA Sal M430 2.0 (Oct07) RMA" + ], + [ + "VCUEtOH_1007_R", + "VCU BXD NA EtOH M430 2.0 (Oct07) RMA **" + ], + [ + "VCUSal_1007_R", + "VCU BXD NA Et vs Sal M430 2.0 (Oct07) Sscore **" + ] + ], + "Phenotypes": [ + [ + "BXDPublish", + "BXD Published Phenotypes" + ] + ], + "Prefrontal Cortex": [ + [ + "VCUEtOH_1206_R", + "VCU BXD PFC EtOH M430 2.0 (Dec06) RMA" + ], + [ + "VCUSal_1206_R", + "VCU BXD PFC Sal M430 2.0 (Dec06) RMA" + ], + [ + "VCUSal_1006_R", + "VCU BXD PFC Et vs Sal M430 2.0 (Dec06) Sscore" + ], + [ + "VCU_PF_Air_0111_R", + "VCU BXD PFC CIE Air M430 2.0 (Jan11) RMA **" + ], + [ + "VCU_PF_Et_0111_R", + "VCU BXD PFC CIE EtOH M430 2.0 (Jan11) RMA **" + ], + [ + "VCU_PF_AvE_0111_Ss", + "VCU BXD PFC EtOH vs CIE Air M430 2.0 (Jan11) Sscore **" + ] + ], + "Retina": [ + [ + "Illum_Retina_BXD_RankInv0410", + "HEI Retina Illumina V6.2 (April 2010) RankInv" + ], + [ + "B6D2ONCILM_0412", + "B6D2 ONC Illumina v6.1 (Apr12) RankInv **" + ], + [ + "ONCRetILM6_0412", + "ONC Retina Illumina V6.2 (Apr12) RankInv **" + ], + [ + "HEIONCvsCRetILM6_0911", + "HEI ONC vs Control Retina Illumina V6.2 (Sep11) RankInv **" + ], + [ + "G2HEIONCRetILM6_0911", + "G2 HEI ONC Retina Illumina V6.2 (Sep11) RankInv **" + ], + [ + "HEIONCRetILM6_0911", + "HEI ONC Retina Illumina V6.2 (Sep11) RankInv **" + ], + [ + "ILM_Retina_BXD_F_RankInv1210", + "HEI Retina Females Illumina V6.2 (Dec10) RankInv **" + ], + [ + "ILM_Retina_BXD_M_RankInv1210", + "HEI Retina Males Illumina V6.2 (Dec10) RankInv **" + ], + [ + "ILM_Retina_BXD_FM_RankInv1210", + "HEI Retina F-M Illumina V6.2 (Dec10) RankInv **" + ], + [ + "G2NEI_ILM_Retina_BXD_RI0410", + "G2NEI Retina Illumina V6.2 (April 2010) RankInv **" + ] + ], + "Spleen": [ + [ + "UTHSC_SPL_RMA_1210", + "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA" + ], + [ + "UTHSC_SPL_RMA_1010", + "UTHSC Affy MoGene 1.0 ST Spleen (Oct10) RMA" + ], + [ + "IoP_SPL_RMA_0509", + "IoP Affy MOE 430v2 Spleen (May09) RMA" + ], + [ + "Illum_BXD_Spl_1108", + "UWA Illumina Spleen (Nov08) RSN **" + ], + [ + "UTK_BXDSpl_VST_0110", + "UTK Spleen ILM6.1 (Jan10) VST" + ] + ], + "Striatum": [ + [ + "DevStriatum_ILM6.2P3RInv_1111", + "BIDMC/UTHSC Dev Striatum P3 ILMv6.2 (Nov11) RankInv **" + ], + [ + "DevStriatum_ILM6.2P14RInv_1111", + "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov11) RankInv **" + ], + [ + "UTHSC_Striatum_RankInv_1210", + "HQF BXD Striatum ILM6.1 (Dec10v2) RankInv" + ], + [ + "UTHSC_Str_RankInv_1210", + "HQF BXD Striatum ILM6.1 (Dec10) RankInv" + ], + [ + "UTHSC_1107_RankInv", + "HQF BXD Striatum ILM6.1 (Nov07) RankInv" + ], + [ + "SA_M2_0405_MC", + "HBP Rosen Striatum M430V2 (Apr05) MAS5 Clean" + ], + [ + "SA_M2_0405_RC", + "HBP Rosen Striatum M430V2 (Apr05) RMA Clean" + ], + [ + "SA_M2_0405_PC", + "HBP Rosen Striatum M430V2 (Apr05) PDNN Clean" + ], + [ + "SA_M2_0405_SS", + "HBP Rosen Striatum M430V2 (Apr05) SScore" + ], + [ + "SA_M2_0405_RR", + "HBP Rosen Striatum M430V2 (Apr05) RMA Orig" + ], + [ + "Striatum_Exon_0209", + "HQF Striatum Exon (Feb09) RMA" + ], + [ + "DevStriatum_ILM6.2P14RInv_1110", + "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov10) RankInv **" + ], + [ + "DevStriatum_ILM6.2P3RInv_1110", + "BIDMC/UTHSC Dev Striatum P3 ILMv6.2 (Nov10) RankInv **" + ] + ], + "T Cell (helper)": [ + [ + "RTHC_0211_R", + "HZI Thelp M430v2 (Feb11) RMA" + ] + ], + "T Cell (regulatory)": [ + [ + "RTC_1106_R", + "HZI Treg M430v2 (Feb11) RMA" + ] + ], + "Thymus": [ + [ + "Illum_BXD_Thy_1108", + "UWA Illumina Thymus (Nov08) RSN **" + ] + ], + "Ventral Tegmental Area": [ + [ + "VCUEtOH_0609_R", + "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA **" + ], + [ + "VCUSal_0609_R", + "VCU BXD VTA Sal M430 2.0 (Jun09) RMA **" + ], + [ + "VCUEtvsSal_0609_R", + "VCU BXD VTA Et vs Sal M430 2.0 (Jun09) Sscore **" + ] + ] + }, + "BXH": { + "Cartilage": [ + [ + "UCLA_BXHBXD_CARTILAGE_V2", + "UCLA BXH and BXD Cartilage v2" + ], + [ + "UCLA_BXHBXD_CARTILAGE", + "UCLA BXH and BXD Cartilage" + ], + [ + "UCLA_BXH_CARTILAGE", + "UCLA BXH Cartilage" + ] + ], + "Genotypes": [ + [ + "BXHGeno", + "BXH Genotypes" + ] + ], + "Phenotypes": [ + [ + "BXHPublish", + "BXH Published Phenotypes" + ] + ] + }, + "CTB6F2": { + "Adipose": [ + [ + "UCLA_CTB6B6CTF2_ADIPOSE_MALE", + "UCLA CTB6B6CTF2 Adipose Male mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_ADIPOSE_FEMALE", + "UCLA CTB6B6CTF2 Adipose Female mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_ADIPOSE_2005", + "UCLA CTB6/B6CTF2 Adipose (2005) mlratio **" + ] + ], + "Brain": [ + [ + "UCLA_CTB6B6CTF2_BRAIN_MALE", + "UCLA CTB6B6CTF2 Brain Male mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_BRAIN_FEMALE", + "UCLA CTB6B6CTF2 Brain Female mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_BRAIN_2005", + "UCLA CTB6/B6CTF2 Brain (2005) mlratio **" + ] + ], + "Genotypes": [ + [ + "CTB6F2Geno", + "CTB6F2 Genotypes" + ] + ], + "Liver": [ + [ + "UCLA_CTB6B6CTF2_LIVER_MALE", + "UCLA CTB6B6CTF2 Liver Male mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_LIVER_FEMALE", + "UCLA CTB6B6CTF2 Liver Female mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_LIVER_2005", + "UCLA CTB6/B6CTF2 Liver (2005) mlratio **" + ] + ], + "Muscle": [ + [ + "UCLA_CTB6B6CTF2_MUSCLE_MALE", + "UCLA CTB6B6CTF2 Muscle Male mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_MUSCLE_FEMALE", + "UCLA CTB6B6CTF2 Muscle Female mlratio **" + ], + [ + "UCLA_CTB6B6CTF2_MUSCLE_2005", + "UCLA CTB6/B6CTF2 Muscle (2005) mlratio **" + ] + ], + "Phenotypes": [ + [ + "CTB6F2Publish", + "CTB6F2 Published Phenotypes" + ] + ] + }, + "CXB": { + "Genotypes": [ + [ + "CXBGeno", + "CXB Genotypes" + ] + ], + "Hippocampus": [ + [ + "HC_M2CB_1205_R", + "Hippocampus Consortium M430v2 CXB (Dec05) RMA" + ], + [ + "HC_M2CB_1205_P", + "Hippocampus Consortium M430v2 CXB (Dec05) PDNN" + ] + ], + "Phenotypes": [ + [ + "CXBPublish", + "CXB Published Phenotypes" + ] + ], + "Spleen": [ + [ + "STSPL_1107_R", + "Stuart Spleen M430v2 (Nov07) RMA" + ] + ] + }, + "HS": { + "Genotypes": [ + [ + "HSGeno", + "HS Genotypes" + ] + ], + "Hippocampus": [ + [ + "OXUKHS_ILMHipp_RI0510", + "OX UK HS ILM6v1.1 Hippocampus (May 2010) RankInv" + ] + ], + "Liver": [ + [ + "OXUKHS_ILMLiver_RI0510", + "OX UK HS ILM6v1.1 Liver (May 2010) RankInv" + ] + ], + "Lung": [ + [ + "OXUKHS_ILMLung_RI0510", + "OX UK HS ILM6v1.1 Lung (May 2010) RankInv" + ] + ], + "Phenotypes": [ + [ + "HSPublish", + "HS Published Phenotypes" + ] + ] + }, + "HS-CC": { + "Genotypes": [ + [ + "HS-CCGeno", + "HS-CC Genotypes" + ] + ], + "Phenotypes": [ + [ + "HS-CCPublish", + "HS-CC Published Phenotypes" + ] + ], + "Striatum": [ + [ + "OHSU_HS-CC_ILMStr_0211", + "OHSU HS-CC Striatum ILM6v1 (Feb11) RankInv" + ] + ] + }, + "LXS": { + "Genotypes": [ + [ + "LXSGeno", + "LXS Genotypes" + ] + ], + "Hippocampus": [ + [ + "Illum_LXS_Hipp_loess0807", + "Hippocampus Illumina (Aug07) LOESS" + ], + [ + "Illum_LXS_Hipp_loess_nb0807", + "Hippocampus Illumina (Aug07) LOESS_NB" + ], + [ + "Illum_LXS_Hipp_quant0807", + "Hippocampus Illumina (Aug07) QUANT" + ], + [ + "Illum_LXS_Hipp_quant_nb0807", + "Hippocampus Illumina (Aug07) QUANT_NB" + ], + [ + "Illum_LXS_Hipp_rsn0807", + "Hippocampus Illumina (Aug07) RSN" + ], + [ + "Illum_LXS_Hipp_rsn_nb0807", + "Hippocampus Illumina (Aug07) RSN_NB" + ], + [ + "Hipp_Illumina_RankInv_0507", + "Hippocampus Illumina (May07) RankInv" + ], + [ + "Illum_LXS_Hipp_NON_1008", + "Hippocampus Illumina NON (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_RSE_1008", + "Hippocampus Illumina RSE (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_NOE_1008", + "Hippocampus Illumina NOE (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_RSS_1008", + "Hippocampus Illumina RSS (Oct08) RankInv beta" + ], + [ + "Illum_LXS_Hipp_NOS_1008", + "Hippocampus Illumina NOS (Oct08) RankInv beta" + ] + ], + "Phenotypes": [ + [ + "LXSPublish", + "LXS Published Phenotypes" + ] + ], + "Prefrontal Cortex": [ + [ + "VCUEtOH_0806_R", + "VCU LXS PFC EtOH M430A 2.0 (Aug06) RMA **" + ], + [ + "VCUSal_0806_R", + "VCU LXS PFC Sal M430A 2.0 (Aug06) RMA" + ], + [ + "VCUEt_vs_Sal_0806_R", + "VCU LXS PFC Et vs Sal M430A 2.0 (Aug06) Sscore **" + ] + ] + }, + "MDP": { + "Genotypes": [ + [ + "MDPGeno", + "MDP Genotypes" + ] + ], + "Hippocampus": [ + [ + "UMUTAffyExon_0209_RMA_MDP", + "UMUTAffy Hippocampus Exon (Feb09) RMA MDP" + ], + [ + "HC_M2_0606_MDP", + "Hippocampus Consortium M430v2 (Jun06) RMA MDP" + ] + ], + "Liver": [ + [ + "JAX_CSB_L_0711", + "JAX Liver Affy M430 2.0 (Jul11) MDP" + ], + [ + "JAX_CSB_L_HF_0711", + "JAX Liver HF Affy M430 2.0 (Jul11) MDP" + ], + [ + "JAX_CSB_L_6C_0711", + "JAX Liver 6C Affy M430 2.0 (Jul11) MDP" + ] + ], + "Phenotypes": [ + [ + "MDPPublish", + "Mouse Phenome Database" + ] + ] + }, + "NZBXFVB-N2": { + "Genotypes": [ + [ + "NZBXFVB-N2Geno", + "NZBXFVB-N2 Genotypes" + ] + ], + "Mammary Tumors": [ + [ + "NCI_Mam_Tum_RMA_0409", + "NCI Mammary M430v2 (Apr09) RMA" + ] + ], + "Phenotypes": [ + [ + "NZBXFVB-N2Publish", + "NZBXFVB-N2 Published Phenotypes" + ] + ] + } + }, + "rat": { + "HXBBXH": { + "Adrenal Gland": [ + [ + "HXB_Adrenal_1208", + "MDC/CAS/UCL Adrenal 230A (Dec08) RMA" + ] + ], + "Genotypes": [ + [ + "HXBBXHGeno", + "HXBBXH Genotypes" + ] + ], + "Heart": [ + [ + "HXB_Heart_1208", + "MDC/CAS/UCL Heart 230_V2 (Dec08) RMA" + ] + ], + "Hippocampus": [ + [ + "UT_HippRatEx_RMA_0709", + "UT Hippocampus Affy RaEx 1.0 Exon (Jul09) RMA" + ] + ], + "Kidney": [ + [ + "KI_2A_0405_M", + "MDC/CAS/ICL Kidney 230A (Apr05) MAS5" + ], + [ + "KI_2A_0405_Rz", + "MDC/CAS/ICL Kidney 230A (Apr05) RMA 2z+8" + ], + [ + "KI_2A_0405_R", + "MDC/CAS/ICL Kidney 230A (Apr05) RMA" + ] + ], + "Liver": [ + [ + "HXB_Liver_1208", + "MDC/CAS/UCL Liver 230v2 (Dec08) RMA" + ] + ], + "Peritoneal Fat": [ + [ + "FT_2A_0805_M", + "MDC/CAS/ICL Peritoneal Fat 230A (Aug05) MAS5" + ], + [ + "FT_2A_0605_Rz", + "MDC/CAS/ICL Peritoneal Fat 230A (Jun05) RMA 2z+8" + ] + ], + "Phenotypes": [ + [ + "HXBBXHPublish", + "HXBBXH Published Phenotypes" + ] + ] + }, + "SRxSHRSPF2": { + "Eye": [ + [ + "UIOWA_Eye_RMA_0906", + "UIOWA Eye mRNA RAE230v2 (Sep06) RMA" + ] + ], + "Genotypes": [ + [ + "SRxSHRSPF2Geno", + "SRxSHRSPF2 Genotypes" + ] + ], + "Phenotypes": [ + [ + "SRxSHRSPF2Publish", + "SRxSHRSPF2 Published Phenotypes" + ] + ] + } + }, + "soybean": { + "J12XJ58F2": { + "Genotypes": [ + [ + "J12XJ58F2Geno", + "J12XJ58F2 Genotypes" + ] + ], + "Phenotypes": [ + [ + "J12XJ58F2Publish", + "J12XJ58F2 Published Phenotypes" + ] + ] + } + }, + "tomato": { + "LXP": { + "Genotypes": [ + [ + "LXPGeno", + "LXP Genotypes" + ] + ], + "Phenotypes": [ + [ + "LXPPublish", + "LXP Published Phenotypes" + ] + ] + } + } + }, + "groups": { + "All Species": [ + [ + "All Groups", + "All Groups" + ] + ], + "arabidopsis": [ + [ + "BayXSha", + "BayXSha" + ], + [ + "ColXBur", + "ColXBur" + ], + [ + "ColXCvi", + "ColXCvi" + ] + ], + "barley": [ + [ + "QSM", + "QSM" + ], + [ + "SXM", + "SXM" + ] + ], + "drosophila": [ + [ + "DGRP", + "Drosophila Genetic Reference Panel" + ], + [ + "Oregon-R_x_2b3", + "Oregon-R x 2b3" + ] + ], + "human": [ + [ + "AD-cases-controls", + "AD Cases & Controls (Liang)" + ], + [ + "AD-cases-controls-Myers", + "AD Cases & Controls (Myers)" + ], + [ + "CANDLE", + "CANDLE" + ], + [ + "CEPH-2004", + "CEPH Families" + ], + [ + "HB", + "Harvard Brain Tissue Resource Center" + ], + [ + "HLC", + "Human Liver Cohort" + ], + [ + "HSB", + "KIN/YSM" + ] + ], + "macaque monkey": [ + [ + "Macaca-fasicularis", + "Macaca fasicularis (Cynomolgus monkey)" + ] + ], + "mouse": [ + [ + "AKXD", + "AKXD" + ], + [ + "AXBXA", + "AXB/BXA" + ], + [ + "B6BTBRF2", + "B6BTBRF2" + ], + [ + "B6D2F2", + "B6D2F2" + ], + [ + "BDF2-1999", + "BDF2 UCLA" + ], + [ + "BDF2-2005", + "BDF2-2005" + ], + [ + "BHF2", + "BHF2 (Apoe Null) UCLA" + ], + [ + "BHHBF2", + "BH/HB F2 UCLA" + ], + [ + "BXD", + "BXD" + ], + [ + "BXH", + "BXH" + ], + [ + "CTB6F2", + "CastB6/B6Cast F2 UCLA" + ], + [ + "CXB", + "CXB" + ], + [ + "HS", + "Heterogeneous Stock" + ], + [ + "HS-CC", + "Heterogeneous Stock Collaborative Cross" + ], + [ + "LXS", + "LXS" + ], + [ + "MDP", + "Mouse Diversity Panel" + ], + [ + "NZBXFVB-N2", + "NZB/FVB N2 NCI" + ] + ], + "rat": [ + [ + "HXBBXH", + "HXB/BXH" + ], + [ + "SRxSHRSPF2", + "UIOWA SRxSHRSP F2" + ] + ], + "soybean": [ + [ + "J12XJ58F2", + "J12XJ58F2" + ] + ], + "tomato": [ + [ + "LXP", + "LXP" + ] + ] + }, + "species": [ + [ + "human", + "Human" + ], + [ + "macaque monkey", + "Macaque monkey" + ], + [ + "mouse", + "Mouse" + ], + [ + "rat", + "Rat" + ], + [ + "drosophila", + "Drosophila" + ], + [ + "arabidopsis", + "Arabidopsis thaliana" + ], + [ + "barley", + "Barley" + ], + [ + "soybean", + "Soybean" + ], + [ + "tomato", + "Tomato" + ], + [ + "All Species", + "All Species" + ] + ], + "types": { + "All Species": { + "All Groups": [ + [ + "Phenotypes", + "Phenotypes" + ] + ] + }, + "arabidopsis": { + "BayXSha": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ] + ], + "ColXBur": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ] + ], + "ColXCvi": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ] + ] + }, + "barley": { + "QSM": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Leaf", + "Leaf mRNA" + ] + ], + "SXM": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Embryo", + "Embryo mRNA" + ], + [ + "Leaf", + "Leaf mRNA" + ] + ] + }, + "drosophila": { + "DGRP": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Whole Body", + "Whole Body mRNA" + ] + ], + "Oregon-R_x_2b3": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Whole Body", + "Whole Body mRNA" + ] + ] + }, + "human": { + "AD-cases-controls": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Brain", + "Brain mRNA" + ] + ], + "AD-cases-controls-Myers": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Brain", + "Brain mRNA" + ] + ], + "CANDLE": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Newborn Cord Blood", + "Newborn Cord Blood mRNA" + ] + ], + "CEPH-2004": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Lymphoblast B-cell", + "Lymphoblast B-cell mRNA" + ] + ], + "HB": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Cerebellum", + "Cerebellum mRNA" + ], + [ + "Prefrontal Cortex", + "Prefrontal Cortex mRNA" + ], + [ + "Primary Visual Cortex", + "Primary Visual Cortex mRNA" + ] + ], + "HLC": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Liver", + "Liver mRNA" + ] + ], + "HSB": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Amygdala", + "Amygdala mRNA" + ], + [ + "Caudal Ganglionic Eminence", + "Caudal Ganglionic Eminence mRNA" + ], + [ + "Cerebellar Cortex", + "Cerebellar Cortex mRNA" + ], + [ + "Diencephalon", + "Diencephalon mRNA" + ], + [ + "Dorsal Thalamus", + "Dorsal Thalamus mRNA" + ], + [ + "Dorsolateral Prefrontal Cortex", + "Dorsolateral Prefrontal Cortex mRNA" + ], + [ + "Frontal Cerebral Wall", + "Frontal Cerebral Wall mRNA" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Inferior Temporal Cortex", + "Inferior Temporal Cortex mRNA" + ], + [ + "Lateral Ganglionic Eminence", + "Lateral Ganglionic Eminence mRNA" + ], + [ + "Medial Ganglionic Eminence", + "Medial Ganglionic Eminence mRNA" + ], + [ + "Medial Prefrontal Cortex", + "Medial Prefrontal Cortex mRNA" + ], + [ + "Mediodorsal Nucleus of Thalamus", + "Mediodorsal Nucleus of Thalamus mRNA" + ], + [ + "Occipital Cerebral Wall", + "Occipital Cerebral Wall mRNA" + ], + [ + "Orbital Prefrontal Cortex", + "Orbital Prefrontal Cortex mRNA" + ], + [ + "Parietal Cerebral Wall", + "Parietal Cerebral Wall mRNA" + ], + [ + "Posterior Inferior Parietal Cortex", + "Posterior Inferior Parietal Cortex mRNA" + ], + [ + "Posterior Superior Temporal Cortex", + "Posterior Superior Temporal Cortex mRNA" + ], + [ + "Primary Auditory (A1) Cortex", + "Primary Auditory (A1) Cortex mRNA" + ], + [ + "Primary Motor (M1) Cortex", + "Primary Motor (M1) Cortex mRNA" + ], + [ + "Primary Somatosensory (S1) Cortex", + "Primary Somatosensory (S1) Cortex mRNA" + ], + [ + "Primary Visual Cortex", + "Primary Visual Cortex mRNA" + ], + [ + "Striatum", + "Striatum mRNA" + ], + [ + "Temporal Cerebral Wall", + "Temporal Cerebral Wall mRNA" + ], + [ + "Upper (Rostral) Rhombic Lip", + "Upper (Rostral) Rhombic Lip mRNA" + ], + [ + "Ventral Forebrain", + "Ventral Forebrain mRNA" + ], + [ + "Ventrolateral Prefrontal Cortex", + "Ventrolateral Prefrontal Cortex mRNA" + ] + ] + }, + "macaque monkey": { + "Macaca-fasicularis": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Amygdala", + "Amygdala mRNA" + ], + [ + "Brain", + "Brain mRNA" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Nucleus Accumbens", + "Nucleus Accumbens mRNA" + ], + [ + "Prefrontal Cortex", + "Prefrontal Cortex mRNA" + ] + ] + }, + "mouse": { + "AKXD": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Mammary Tumors", + "Mammary Tumors mRNA" + ] + ], + "AXBXA": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Eye", + "Eye mRNA" + ] + ], + "B6BTBRF2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Liver", + "Liver mRNA" + ] + ], + "B6D2F2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Brain", + "Brain mRNA" + ] + ], + "BDF2-1999": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Liver", + "Liver mRNA" + ] + ], + "BDF2-2005": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Striatum", + "Striatum mRNA" + ] + ], + "BHF2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Adipose", + "Adipose mRNA" + ], + [ + "Brain", + "Brain mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Muscle", + "Muscle mRNA" + ] + ], + "BHHBF2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Adipose", + "Adipose mRNA" + ], + [ + "Brain", + "Brain mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Muscle", + "Muscle mRNA" + ] + ], + "BXD": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Amygdala", + "Amygdala mRNA" + ], + [ + "Brain", + "Brain mRNA" + ], + [ + "Cartilage", + "Cartilage mRNA" + ], + [ + "Cerebellum", + "Cerebellum mRNA" + ], + [ + "Eye", + "Eye mRNA" + ], + [ + "Hematopoietic Cells", + "Hematopoietic Cells mRNA" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Hypothalamus", + "Hypothalamus mRNA" + ], + [ + "Kidney", + "Kidney mRNA" + ], + [ + "Leucocytes", + "Leucocytes mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Lung", + "Lung mRNA" + ], + [ + "Midbrain", + "Midbrain mRNA" + ], + [ + "Muscle", + "Muscle mRNA" + ], + [ + "Neocortex", + "Neocortex mRNA" + ], + [ + "Nucleus Accumbens", + "Nucleus Accumbens mRNA" + ], + [ + "Prefrontal Cortex", + "Prefrontal Cortex mRNA" + ], + [ + "Retina", + "Retina mRNA" + ], + [ + "Spleen", + "Spleen mRNA" + ], + [ + "Striatum", + "Striatum mRNA" + ], + [ + "T Cell (helper)", + "T Cell (helper) mRNA" + ], + [ + "T Cell (regulatory)", + "T Cell (regulatory) mRNA" + ], + [ + "Thymus", + "Thymus mRNA" + ], + [ + "Ventral Tegmental Area", + "Ventral Tegmental Area mRNA" + ] + ], + "BXH": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Cartilage", + "Cartilage mRNA" + ] + ], + "CTB6F2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Adipose", + "Adipose mRNA" + ], + [ + "Brain", + "Brain mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Muscle", + "Muscle mRNA" + ] + ], + "CXB": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Spleen", + "Spleen mRNA" + ] + ], + "HS": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Lung", + "Lung mRNA" + ] + ], + "HS-CC": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Striatum", + "Striatum mRNA" + ] + ], + "LXS": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Prefrontal Cortex", + "Prefrontal Cortex mRNA" + ] + ], + "MDP": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Liver", + "Liver mRNA" + ] + ], + "NZBXFVB-N2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Mammary Tumors", + "Mammary Tumors mRNA" + ] + ] + }, + "rat": { + "HXBBXH": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Adrenal Gland", + "Adrenal Gland mRNA" + ], + [ + "Heart", + "Heart mRNA" + ], + [ + "Hippocampus", + "Hippocampus mRNA" + ], + [ + "Kidney", + "Kidney mRNA" + ], + [ + "Liver", + "Liver mRNA" + ], + [ + "Peritoneal Fat", + "Peritoneal Fat mRNA" + ] + ], + "SRxSHRSPF2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ], + [ + "Eye", + "Eye mRNA" + ] + ] + }, + "soybean": { + "J12XJ58F2": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ] + ] + }, + "tomato": { + "LXP": [ + [ + "Phenotypes", + "Phenotypes" + ], + [ + "Genotypes", + "Genotypes" + ] + ] + } + } +}
\ No newline at end of file diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html index 79f6e78e..b5c1d6ac 100644 --- a/wqflask/wqflask/templates/show_trait.html +++ b/wqflask/wqflask/templates/show_trait.html @@ -11,1211 +11,27 @@ </div> </header> + <form method="post" action="/corr_compute" name="dataInput" id="trait_data_form"> + {% for key in hddn %} + <input type="hidden" name="{{ key }}" value="{{ hddn[key] }}"> + {% endfor %} - - <div class="container"> - <div class="page-header"> - <h1>{{ this_trait.species.capitalize() }} - - {{ fd.RISet }} - - {{ this_trait.symbol }} - - </h1> - </div> - - <dl class="dl-horizontal"> - <dt>Aliases</dt> - <dd>{{ this_trait.alias_fmt }}</dd> - - <dt>Location</dt> - <dd>{{ this_trait.location_fmt }}</dd> - - <dt>Database</dt> - <dd> - <a href="{{ this_trait.database.url }}" target="_blank"> - {{ this_trait.database.name }} - </a> - </dd> - - <dt> - <a href="/blatInfo.html" target="_blank" - title="Values higher than 2 for the specificity are good"> - BLAT Specifity - </a> - </dt> - <dd>{{ "%.1f" % (this_trait.probe_set_specificity) }}</dd> - - <dt>BLAT Score</dt> - <dd>{{ "%i" % (this_trait.probe_set_blat_score) }}</dd> - </dl> - - <form method="post" action="/corr_compute" name="dataInput" id="trait_data_form"> - {% for key in hddn %} - <input type="hidden" name="{{ key }}" value="{{ hddn[key] }}"> - {% endfor %} - - <div class="btn-toolbar"> - <div class="btn-group"> - <button class="btn btn-primary" title="Add to collection"> - <i class="icon-plus-sign icon-white"></i> Add - </button> - - <button class="btn" title="Find similar expression data"> - <i class="icon-search"></i> Find - </button> - - <button class="btn" title="Check probe locations at UCSC"> - <i class="icon-ok"></i> Verify - </button> - </div> - - <div class="btn-group"> - - <button class="btn" title="Write or review comments about this gene"> - <i class="icon-edit"></i> GeneWiki - </button> - - <button class="btn" title="View SNPs and Indels"> - <i class="icon-road"></i> SNPs - </button> - - <button class="btn" title="View probes, SNPs, and RNA-seq at UTHSC"> - <i class="icon-eye-close"></i> RNA-seq - </button> - - <button class="btn" title="Check sequence of probes"> - <i class="icon-list"></i> Probes - </button> - + <div class="container"> + <div class="page-header"> + <h1>{{ this_trait.species.capitalize() }} - + {{ fd.RISet }} - + {{ this_trait.symbol }} + </h1> </div> + + {% include 'show_trait_details.html' %} + {% include 'show_trait_statistics.html' %} + {% include 'show_trait_calculate_correlations.html' %} + {% include 'show_trait_mapping_tools.html' %} + {% include 'show_trait_edit_data.html' %} </div> - - - - <p class="sectionheader" id="title2" style="border-radius: 5px;"> Basic Statistics</p> - - - <p id="sectionbody2"></p>Include: - <select name="corr_samples_group" size="1"> - {% for group, pretty_group in sample_group_types.items() %} - <option value="{{ group }}"> - {{ pretty_group }} - </option> - {% endfor %} - </select><br> - <br> - <input type="button" name="Default_Name" class="btn update" value=" Update Figures "><br> - <br> - - <table cellpadding="0" cellspacing="0" border="0" class="display" id="stats_dyn"></table> - - <table class="target2" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - {% for sd in stats_data %} - <div class="ui-tabs" id="{{ 'stats_tabs%i' % loop.index0 }}"> - <ul> - <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> - - <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> - - <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> - - <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> - - <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> - </ul> - - <div id="statstabs-1"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <table cellpadding="20" cellspacing="0"> - <tr> - <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> - - <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" align="left">N of Samples</td> - - <td class="fs13 b1 cbw c222" nowrap="yes" id="n_of_samples_value">{{ sd.N }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> - - <td class="fs13 b1 cbw c222" nowrap="yes" id="mean_value">{{ "%2.3f" % sd.traitmean }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> - - <td class="fs13 b1 cbw c222" nowrap="yes" id="median_value">{{ "%2.3f" % sd.traitmedian }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitsem }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitstdev }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.min }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.max }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_log2 }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_fold }}</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= - "non_bold">Interquartile Range</a></span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.interquartile }} </td> - </tr> - </table> - </td> - </tr> - </table> - </div> - - <div id="statstabs-5"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/nP_OE9u7BSx.gif" alt="nP_OE9u7BSx.gif" border="0"></td> - </tr> - - <tr> - <td><br> - <br> - This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> - <br> - More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more - about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> - </tr> - </table> - </div> - - <div id="statstabs-2"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td align="left"> - <img src="/image/Box_gUFtEOVI.gif" alt="Box_gUFtEOVI.gif" border="0"> - - <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> - </td> - </tr> - </table> - </div> - - <div id="statstabs-3"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_y7L2rYlL.gif" alt="Bar_y7L2rYlL.gif" border="0"></td> - </tr> - </table> - </div> - - <div id="statstabs-4"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_1Z4GjYFq.gif" alt="Bar_1Z4GjYFq.gif" border="0"></td> - </tr> - </table> - </div> - </div> - {% endfor %} - {# Not used now - Todo: Delete after we're sure this is right. - <div class="ui-tabs" id="stats_tabs1"> - <ul> - <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> - - <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> - - <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> - - <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> - - <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> - </ul> - - <div id="statstabs-1"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <table cellpadding="20" cellspacing="0"> - <tr> - <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> - - <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" align="left">N of Samples</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">71</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.109</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.084</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.022</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.187</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">5.782</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.579</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.797</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">1.74</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= - "non_bold">Interquartile Range</a></span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">1.13</td> - </tr> - </table> - </td> - </tr> - </table> - </div> - - <div id="statstabs-5"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/nP_eSYO7ZQg.gif" alt="nP_eSYO7ZQg.gif" border="0"></td> - </tr> - - <tr> - <td><br> - <br> - This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> - <br> - More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more - about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> - </tr> - </table> - </div> - - <div id="statstabs-2"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td align="left"> - <img src="/image/Box_PWNWQMfj.gif" alt="Box_PWNWQMfj.gif" border="0"> - - <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> - </td> - </tr> - </table> - </div> - - <div id="statstabs-3"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_VuPqYbR6.gif" alt="Bar_VuPqYbR6.gif" border="0"></td> - </tr> - </table> - </div> - - <div id="statstabs-4"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_9PbdvXZ9.gif" alt="Bar_9PbdvXZ9.gif" border="0"></td> - </tr> - </table> - </div> - </div> - - <div class="ui-tabs" id="stats_tabs2"> - - - <ul> - <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> - - <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> - - <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> - - <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> - - <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> - </ul> - - <div id="statstabs-1"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <table cellpadding="20" cellspacing="0"> - <tr> - <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> - - <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" align="left">N of Samples</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">32</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.176</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.170</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.027</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.150</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">5.906</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">6.485</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> - - <td class="fs13 b1 cbw c222" nowrap="yes">0.579</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">1.49</td> - </tr> - - <tr align="right"> - <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= - "non_bold">Interquartile Range</a></span></td> - - <td class="fs13 b1 cbw c222" nowrap="yes">1.15</td> - </tr> - </table> - </td> - </tr> - </table> - </div> - - <div id="statstabs-5"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/nP_swDAFlJy.gif" alt="nP_swDAFlJy.gif" border="0"></td> - </tr> - - <tr> - <td><br> - <br> - This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> - <br> - More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more - about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> - </tr> - </table> - </div> - - <div id="statstabs-2"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td align="left"> - <img src="/image/Box_6sQJ8xhK.gif" alt="Box_6sQJ8xhK.gif" border="0"> - - <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> - </td> - </tr> - </table> - </div> - - <div id="statstabs-3"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_QMWE2VEp.gif" alt="Bar_QMWE2VEp.gif" border="0"></td> - </tr> - </table> - </div> - - <div id="statstabs-4"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td><img src="/image/Bar_X07QmgsX.gif" alt="Bar_X07QmgsX.gif" border="0"></td> - </tr> - </table> - </div> - </div> - </td> - </tr> - </table> - #} - - <p class="sectionheader" id="title3" style="border-radius: 5px;"> Calculate Correlations</p> - - <p id="sectionbody3"></p> - - <table class="target4" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <div class="ui-tabs" id="corr_tabs"> - <div id="corrtabs-1"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <input type="hidden" name="orderBy" value="2"> - - <table cellpadding="2" cellspacing="0" width="619px"> - <tr> - <td><span class="ff1 fwb fs12">Method:</span></td> - <td colspan="3"> - <select name="corr_method" size="1"> - <option value="sample">Sample r</option> - <option value="lit">Literature r</option> - <option value="tissue">Tissue r</option> - </select> - </td> - </tr> - <tr> - <td><span class="ffl fwb fs12">Database:</span></td> - <td colspan="3"> - <select name="corr_dataset" size="1"> - {% for tissue in corr_tools.dataset_menu %} - {% if tissue.tissue %} - <optgroup label="{{ tissue.tissue }} ------"> - {% endif %} - {% for dataset in tissue.datasets %} - <option value="{{ dataset[1] }}" - {% if corr_tools.dataset_menu_selected == dataset[1] %} - selected - {% endif %}> - {{ dataset[0] }} - </option> - {% endfor %} - {% if tissue.tissue %} - </optgroup> - {% endif %} - {% endfor %} - </select> - </td> - </tr> - - - <tr> - <td><span class="ffl fwb fs12">Return:</span></td> - - <td><select name="corr_return_results" size="1"> - {% for return_result in corr_tools.return_results_menu %} - <option value="{{ return_result }}" - {% if corr_tools.return_results_menu_selected == return_result %} - selected - {% endif %}> - Top {{ return_result }} - </option> - {% endfor %} - </select></td> - </tr> - - - <tr class="mdp1"> - <td><span class="ffl fwb fs12">Samples:</span></td> - <td> - <select name="corr_samples_group" size="1"> - {% for group, pretty_group in sample_group_types.items() %} - <option value="{{ group }}"> - {{ pretty_group }} - </option> - {% endfor %} - </select> - </td> - </tr> - - </table> - <br> - <div id="corr_sample_method_options"> - Pearson <input type="radio" name="corr_sample_method" value="pearson" checked> - - Spearman Rank <input type="radio" name="corr_sample_method" value="spearman"> - </div> - <br> - - <input type="submit" name="corr_compute" id="corr_compute" class="btn" value="Compute"><br><br> - - <span id="sample_r_desc" class="correlation_desc fs12"> - The <a href="/correlationAnnotation.html#sample_r" target="_blank">Sample Correlation</a> - is computed - between trait data and any<br> - other traits in the sample database selected above. Use - <a href="/glossary.html#Correlations" target="_blank">Spearman - Rank</a><br> - when the sample size is small (<20) or when there are influential outliers. - </span> - <SPAN id="lit_r_desc" style="display: none;" class="correlation_desc fs12"> - The <A HREF="/correlationAnnotation.html" TARGET="_blank">Literature Correlation</A> - (Lit r) between - this gene and all other genes is computed<BR> - using the <A HREF="https://grits.eecs.utk.edu/sgo/sgo.html" TARGET="_blank"> - Semantic Gene Organizer</A> - and human, rat, and mouse data from PubMed. <BR> - Values are ranked by Lit r, but Sample r and Tissue r are also displayed.<BR><BR> - <A HREF="/glossary.html#Literature" TARGET="_blank">More on using Lit r</A> - </SPAN> - <SPAN id="tissue_r_desc" style="display: none;" class="correlation_desc fs12"> - The <A HREF="/webqtl/main.py?FormID=tissueCorrelation" TARGET="_blank">Tissue Correlation</A> - (Tissue r) - estimates the similarity of expression of two genes<BR> - or transcripts across different cells, tissues, or organs - (<A HREF="/correlationAnnotation.html#tissue_r" TARGET="_blank">glossary</A>). - Tissue correlations<BR> - are generated by analyzing expression in multiple samples usually taken from single cases.<BR> - <STRONG>Pearson</STRONG> and <STRONG>Spearman Rank</STRONG> correlations have been - computed for all pairs of genes<BR> using data from mouse samples.<BR> - </SPAN> - - <br> - </td> - </tr> - </table> - </div> - </div> - </td> - </tr> - </table> - - <p class="sectionheader" id="title4" style="border-radius: 5px;"> Mapping Tools</p> - - <p id="sectionbody4"></p> - - <table class="target2" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <div class="ui-tabs" id="mapping_tabs"> - <ul> - <li><a href="#mappingtabs-1">Interval</a></li> - - <li><a href="#mappingtabs-2">Marker Regression</a></li> - - <li><a href="#mappingtabs-3">Composite</a></li> - - <li><a href="#mappingtabs-4">Pair-Scan</a></li> - </ul> - - <div id="mappingtabs-1"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="fs12 fwn" nowrap="on" valign="top"> - <table cellpadding="2" cellspacing="0" width="263px"> - <tr> - <td><span class="ffl fwb fs12">Chromosome:</span></td> - - <td colspan="3"><select name="chromosomes1" size="1"> - <option value="-1"> - All - </option> - - <option value="0"> - 1 - </option> - - <option value="1"> - 2 - </option> - - <option value="2"> - 3 - </option> - - <option value="3"> - 4 - </option> - - <option value="4"> - 5 - </option> - - <option value="5"> - 6 - </option> - - <option value="6"> - 7 - </option> - - <option value="7"> - 8 - </option> - - <option value="8"> - 9 - </option> - - <option value="9"> - 10 - </option> - - <option value="10"> - 11 - </option> - - <option value="11"> - 12 - </option> - - <option value="12"> - 13 - </option> - - <option value="13"> - 14 - </option> - - <option value="14"> - 15 - </option> - - <option value="15"> - 16 - </option> - - <option value="16"> - 17 - </option> - - <option value="17"> - 18 - </option> - - <option value="18"> - 19 - </option> - - <option value="19"> - X - </option> - </select></td> - </tr> - - <tr> - <td><span class="ffl fwb fs12">Mapping Scale:</span></td> - - <td><select name="scale1" size="1" onchange= - "checkUncheck(window.document.dataInput.scale1.value, window.document.dataInput.permCheck1, window.document.dataInput.bootCheck1)"> - <option value="physic"> - Megabase - </option> - - <option value="morgan"> - Centimorgan - </option> - </select></td> - </tr> - </table><br> - <input type="checkbox" name="permCheck1" class="checkbox" checked>Permutation Test (n=2000)<br> - <input type="checkbox" name="bootCheck1" class="checkbox">Bootstrap Test (n=2000)<br> - <input type="checkbox" name="parentsf14regression1" class="checkbox">Use Parents<br> - <input type="checkbox" name="applyVarianceSE1" class="checkbox">Use Weighted<br> - <br> - <input type="button" name="interval" class="btn" value=" Compute "><br> - <br> - </td> - </tr> - - <tr> - <td valign="top"><span class="fs12"><a href="/glossary.html#intmap" target="_blank">Interval Mapping</a> computes linkage maps - for the entire genome or single<br> - chromosomes. The <a href="/glossary.html#permutation" target="_blank">Permutation Test</a> estimates suggestive and - significant<br> - linkage scores. The <a href="/glossary.html#bootstrap" target="_blank">Bootstrap Test</a> estimates the precision of the QTL - location.</span><br></td> - </tr> - </table> - </div> - - <div id="mappingtabs-2"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="fs12 fwn" nowrap="on" valign="top"> - <table cellpadding="2" cellspacing="0" width="263px"> - <tr> - <td><span class="ffl fwb fs12"><strong>Display LRS greater than:</strong></span></td> - - <td><input type="text" name="suggestive" size="5" maxlength="8"></td> - </tr> - - <tr> - <td><input type="checkbox" name="displayAllLRS" class="checkbox"> <span class="ffl fs12">Display all LRS</span></td> - </tr> - - <tr> - <td><input type="checkbox" name="parentsf14regression2" class="checkbox"> <span class="ffl fs12">Use Parents</span></td> - </tr> - - <tr> - <td><input type="checkbox" name="applyVarianceSE2" class="checkbox"> <span class="ffl fs12">Use Weighted</span></td> - </tr> - </table><br> - <input type="button" name="marker" class="btn" value=" Compute "><br> - <br> - </td> - </tr> - - <tr> - <td valign="top"><span class="fs12"><a href="/glossary.html#" target="_blank">Marker regression</a> computes and displays LRS - values for individual markers.<br> - This function also lists additive effects (phenotype units per allele) and<br> - dominance deviations for some datasets.<br></span><br></td> - </tr> - </table> - </div> - - <div id="mappingtabs-3"> - <table cellpadding="3" cellspacing="0" width="100%"> - <tr> - <td class="fs12 fwn" nowrap="on" valign="top"> - <table cellpadding="2" cellspacing="0" width="325px"> - <tr> - <td><span class="ffl fwb fs12">Chromosome:</span></td> - - <td colspan="3"><select name="chromosomes2" size="1"> - <option value="-1"> - All - </option> - - <option value="0"> - 1 - </option> - - <option value="1"> - 2 - </option> - - <option value="2"> - 3 - </option> - - <option value="3"> - 4 - </option> - - <option value="4"> - 5 - </option> - - <option value="5"> - 6 - </option> - - <option value="6"> - 7 - </option> - - <option value="7"> - 8 - </option> - - <option value="8"> - 9 - </option> - - <option value="9"> - 10 - </option> - - <option value="10"> - 11 - </option> - - <option value="11"> - 12 - </option> - - <option value="12"> - 13 - </option> - - <option value="13"> - 14 - </option> - - <option value="14"> - 15 - </option> - - <option value="15"> - 16 - </option> - - <option value="16"> - 17 - </option> - - <option value="17"> - 18 - </option> - - <option value="18"> - 19 - </option> - - <option value="19"> - X - </option> - </select></td> - </tr> - - <tr> - <td><span class="ffl fwb fs12">Mapping Scale:</span></td> - - <td><select name="scale2" size="1" onchange= - "checkUncheck(window.document.dataInput.scale2.value, window.document.dataInput.permCheck2, window.document.dataInput.bootCheck2)"> - <option value="physic"> - Megabase - </option> - - <option value="morgan"> - Centimorgan - </option> - </select></td> - </tr> - - <tr> - <td><span class="ffl fwb fs12">Control Locus:</span></td> - - <td><input type="text" name="controlLocus" class="controlLocus"></td> - </tr> - </table><br> - <input type="checkbox" name="permCheck2" class="checkbox" checked>Permutation Test (n=2000)<br> - <input type="checkbox" name="bootCheck2" class="checkbox">Bootstrap Test (n=2000)<br> - <input type="checkbox" name="parentsf14regression3" class="checkbox">Use Parents<br> - <br> - <input type="button" name="composite" class="btn" value=" Compute "><br> - <br> - </td> - </tr> - - <tr> - <td valign="top"><span><a href="/glossary.html#Composite" target="_blank">Composite Interval Mapping</a> allows you to control - for a single marker as<br> - a cofactor. To find a control marker, run the <strong>Marker Regression</strong> function.</span><br></td> - </tr> - </table> - </div> - - <div id="mappingtabs-4"> - <table cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td class="fs12 fwn" nowrap="on"> - <table cellpadding="2" cellspacing="0" width="232px"> - <tr> - <td><span class="ffl fwb fs12"><strong>Sort by:</strong></span></td> - - <td><select name="graphSort" size="1"> - <option value="0"> - LRS Full - </option> - - <option value="1"> - LRS Interact - </option> - </select></td> - </tr> - - <tr> - <td><span class="ffl fwb fs12"><strong>Return:</strong></span></td> - - <td><select name="pairScanReturn" size="1"> - <option value="50"> - top 50 - </option> - - <option value="100"> - top 100 - </option> - - <option value="200"> - top 200 - </option> - - <option value="500"> - top 500 - </option> - </select></td> - </tr> - </table><br> - <input type="checkbox" name="directPermuCheckbox" class="checkbox" checked><span class="ffl fs12">Permutation Test - (n=500)</span><br> - <br> - <input type="button" class="btn" value=" Compute " onclick="dataEditingFunc(this.form,'directPlot');"><br> - <br> - </td> - </tr> - - <tr> - <td valign="top"><span><a href="/glossary.html#Pair_Scan" target="_blank">Pair-Scan</a> searches for pairs of chromosomal regions - that are<br> - involved in two-locus epistatic interactions.</span><br></td> - </tr> - </table> - </div> - </div> - </td> - </tr> - </table> - - <p class="sectionheader" id="title5" style="border-radius: 5px;"> Review and Edit Data</p> - - <table id="stats_table" class="table table-striped table-bordered" /> - - <p id="sectionbody5"></p> - - <table class="target5" id="value_table" cellpadding="0" cellspacing="0" width="100%"> - <tr> - <td> - <div> - <div class="well"> - <fieldset id="showHideOptions"> - <legend>Block samples</legend> - <p>Edit or delete values in the Trait Data boxes, and use the - <strong>Reset</strong> option as - needed. - </p> - - - <div id="blockMenuSpan" class="input-append"> - <label for="remove_samples_field">Block samples by index:</label> - - - <input type="text" id="remove_samples_field"> - <select id="block_group" size="1"> - <option value="primary"> - {{ sample_group_types['primary_only'] }} - </option> - <option value="other"> - {{ sample_group_types['other_only'] }} - </option> - </select> - <input type="button" id="block_by_index" class="btn" value="Block"> - </div> - <div id="remove_samples_invalid" class="alert alert-error" style="display:none;"> - Please check that your input is formatted correctly, e.g. <strong>3, 5-10, 12</strong> - </div> - - <br> - - {% if sample_groups[0].attributes %} - <div class="input-append"> - <label for="exclude_menu">Block samples by group:</label> - <select id="exclude_menu" size=1> - {% for attribute in sample_groups[0].attributes %} - <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}"> - {{ sample_groups[0].attributes[attribute].name }}</option> - {% endfor %} - </select> - <select id="attribute_values" size=1> - </select> - <input type="button" id="exclude_group" class="btn" value="Block"> - </div> - {% endif %} - <br> - <div> - <input type="button" id="hide_no_value" class="btn" value="Hide No Value"> - <input type="button" id="block_outliers" class="btn" value="Block Outliers"> - <input type="button" id="reset" class="btn btn-inverse" value="Reset"> - <span class="input-append"> - <input type="button" id="export" class="btn" value="Export"> - <select id="export_format" class="select optional span2"> - <option value="excel">Excel</option> - <option value="csv">CSV</option> - </select> - </span> - </div> - </fieldset> - <br> - <div> - <p>Outliers highlighted in - <strong style="background-color:yellow;">yellow</strong> - can be hidden using - the <strong>Hide Outliers</strong> button. - </p> - - <p>Samples with no value (x) can be hidden by clicking - <strong>Hide No Value</strong> button. - </p> - </div> - </div> - <br> - - - - <div style="width:80%;margin:0;padding:0;border:none;"> - {% for sample_type in sample_groups %} - <div style="float:left;width:50%;"> - <h2>{{ sample_type.header }}</h2> - - <div id="{{ sample_type.sample_group_type }}"> - <table class="table table-hover not_tablesorter" {# Todo: Turn tablesorter back on #} - id="{{ 'sortable%i' % (loop.index) }}" - cellpadding="0" cellspacing="0"> - <tr> - <th class="fs13 fwb ff1 b1 cw cbrb" align="right" width="60">Index</th> - - <th class="fs13 fwb ff1 b1 cw cbrb" align="right" width="100">Sample</th> - - <th class="fs13 fwb ff1 b1 cw cbrb" align="right" width="70">Value</th> - {% if sample_type.se_exists() %} - <th class="fs13 fwb ff1 b1 cw cbrb" width="20"> </th> - - <th class="fs13 fwb ff1 b1 cw cbrb" align="right" width="80">SE</th> - {% endif %} - - {% for attribute in sample_type.attributes|sort() %} - <th class="fs13 fwb ff1 b1 cw cbrb" align="right" width="60"> - {{ sample_type.attributes[attribute].name }} - </th> - {% endfor %} - </tr> - - {% for sample in sample_type.sample_list %} - <tr class="{{ sample.class_outlier }} value_se" id="{{ sample.this_id }}"> - <td class="std_cell column_name-Index" align="right" width="45"> - {{ loop.index }} - <input type="checkbox" name="selectCheck" - class="checkbox edit_sample_checkbox" - value="{{ sample.name }}" checked="checked"> - </td> - - <td class="std_cell column_name-Sample" align="right" width="100"> - <span class="fs14 fwn ffl edit_sample_sample_name"> - {{ sample.name }} - </span> - </td> - - {# Todo: Add IDs #} - <td class="std_cell column_name-Value" align="right" width="70"> - <input type="text" data-value="{{ sample.display_value }}" name="{{ sample.name }}" - class="trait_value_input edit_sample_value" - value="{{ sample.display_value }}" size="8" maxlength="8" - style="text-align:right; background-color:#FFFFFF;"> - </td> - - {% if sample_type.se_exists() %} - <td class="std_cell" align="center" width="20"> - ± - </td> - - {# Todo: Add IDs #} - <td class="std_cell column_name-SE" align="right" width="80"> - <input type="text" data-value="{{ sample.display_variance }}" name=""{{ 'V' + sample.name}}" - class="trait_value_input edit_sample_se" - value="{{ sample.display_variance }}" - size="8" maxlength="8" style="text-align:right"> - </td> - {% endif %} - - {# Loop through each attribute type and input value #} - {% for attribute in sample_type.attributes|sort() %} - <td class="std_cell column_name-{{ sample_type.attributes[attribute].name.replace(' ', '_') }}" - align="right" width="80"> - {{ sample.extra_attributes[sample_type.attributes[attribute].name] }} - </td> - {% endfor %} - </tr> - {% endfor %} - - </table> - </div> - </div> - {% endfor %} - </div> - </div> - </td> - </tr> - </table> - <input type="hidden" name="Default_Name"> - </form> - </td> - </tr> - </table> - </td> - </tr> - </div> + </form> <!-- End of body --> diff --git a/wqflask/wqflask/templates/show_trait_calculate_correlations.html b/wqflask/wqflask/templates/show_trait_calculate_correlations.html new file mode 100644 index 00000000..543afadd --- /dev/null +++ b/wqflask/wqflask/templates/show_trait_calculate_correlations.html @@ -0,0 +1,130 @@ + <p class="sectionheader" id="title3" style="border-radius: 5px;"> Calculate Correlations</p> + + <p id="sectionbody3"></p> + + <table class="target4" cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <div class="ui-tabs" id="corr_tabs"> + <div id="corrtabs-1"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <input type="hidden" name="orderBy" value="2"> + + <table cellpadding="2" cellspacing="0" width="619px"> + <tr> + <td><span class="ff1 fwb fs12">Method:</span></td> + <td colspan="3"> + <select name="corr_method" size="1"> + <option value="sample">Sample r</option> + <option value="lit">Literature r</option> + <option value="tissue">Tissue r</option> + </select> + </td> + </tr> + <tr> + <td><span class="ffl fwb fs12">Database:</span></td> + <td colspan="3"> + <select name="corr_dataset" size="1"> + {% for tissue in corr_tools.dataset_menu %} + {% if tissue.tissue %} + <optgroup label="{{ tissue.tissue }} ------"> + {% endif %} + {% for dataset in tissue.datasets %} + <option value="{{ dataset[1] }}" + {% if corr_tools.dataset_menu_selected == dataset[1] %} + selected + {% endif %}> + {{ dataset[0] }} + </option> + {% endfor %} + {% if tissue.tissue %} + </optgroup> + {% endif %} + {% endfor %} + </select> + </td> + </tr> + + + <tr> + <td><span class="ffl fwb fs12">Return:</span></td> + + <td><select name="corr_return_results" size="1"> + {% for return_result in corr_tools.return_results_menu %} + <option value="{{ return_result }}" + {% if corr_tools.return_results_menu_selected == return_result %} + selected + {% endif %}> + Top {{ return_result }} + </option> + {% endfor %} + </select></td> + </tr> + + + <tr class="mdp1"> + <td><span class="ffl fwb fs12">Samples:</span></td> + <td> + <select name="corr_samples_group" size="1"> + {% for group, pretty_group in sample_group_types.items() %} + <option value="{{ group }}"> + {{ pretty_group }} + </option> + {% endfor %} + </select> + </td> + </tr> + + </table> + <br> + <div id="corr_sample_method_options"> + Pearson <input type="radio" name="corr_sample_method" value="pearson" checked> + + Spearman Rank <input type="radio" name="corr_sample_method" value="spearman"> + </div> + <br> + + <input type="submit" name="corr_compute" id="corr_compute" class="btn" value="Compute"><br><br> + + <span id="sample_r_desc" class="correlation_desc fs12"> + The <a href="/correlationAnnotation.html#sample_r" target="_blank">Sample Correlation</a> + is computed + between trait data and any<br> + other traits in the sample database selected above. Use + <a href="/glossary.html#Correlations" target="_blank">Spearman + Rank</a><br> + when the sample size is small (<20) or when there are influential outliers. + </span> + <SPAN id="lit_r_desc" style="display: none;" class="correlation_desc fs12"> + The <A HREF="/correlationAnnotation.html" TARGET="_blank">Literature Correlation</A> + (Lit r) between + this gene and all other genes is computed<BR> + using the <A HREF="https://grits.eecs.utk.edu/sgo/sgo.html" TARGET="_blank"> + Semantic Gene Organizer</A> + and human, rat, and mouse data from PubMed. <BR> + Values are ranked by Lit r, but Sample r and Tissue r are also displayed.<BR><BR> + <A HREF="/glossary.html#Literature" TARGET="_blank">More on using Lit r</A> + </SPAN> + <SPAN id="tissue_r_desc" style="display: none;" class="correlation_desc fs12"> + The <A HREF="/webqtl/main.py?FormID=tissueCorrelation" TARGET="_blank">Tissue Correlation</A> + (Tissue r) + estimates the similarity of expression of two genes<BR> + or transcripts across different cells, tissues, or organs + (<A HREF="/correlationAnnotation.html#tissue_r" TARGET="_blank">glossary</A>). + Tissue correlations<BR> + are generated by analyzing expression in multiple samples usually taken from single cases.<BR> + <STRONG>Pearson</STRONG> and <STRONG>Spearman Rank</STRONG> correlations have been + computed for all pairs of genes<BR> using data from mouse samples.<BR> + </SPAN> + + <br> + </td> + </tr> + </table> + </div> + </div> + </td> + </tr> + </table> diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html new file mode 100644 index 00000000..e45886b4 --- /dev/null +++ b/wqflask/wqflask/templates/show_trait_details.html @@ -0,0 +1,63 @@ +<dl class="dl-horizontal"> + <dt>Aliases</dt> + <dd>{{ this_trait.alias_fmt }}</dd> + + <dt>Location</dt> + <dd>{{ this_trait.location_fmt }}</dd> + + <dt>Database</dt> + <dd> + <a href="{{ this_trait.database.url }}" target="_blank"> + {{ this_trait.database.name }} + </a> + </dd> + + <dt> + <a href="/blatInfo.html" target="_blank" + title="Values higher than 2 for the specificity are good"> + BLAT Specifity + </a> + </dt> + <dd>{{ "%.1f" % (this_trait.probe_set_specificity) }}</dd> + + <dt>BLAT Score</dt> + <dd>{{ "%i" % (this_trait.probe_set_blat_score) }}</dd> +</dl> + + + +<div class="btn-toolbar"> + <div class="btn-group"> + <button class="btn btn-primary" title="Add to collection"> + <i class="icon-plus-sign icon-white"></i> Add + </button> + + <button class="btn" title="Find similar expression data"> + <i class="icon-search"></i> Find + </button> + + <button class="btn" title="Check probe locations at UCSC"> + <i class="icon-ok"></i> Verify + </button> + </div> + + <div class="btn-group"> + + <button class="btn" title="Write or review comments about this gene"> + <i class="icon-edit"></i> GeneWiki + </button> + + <button class="btn" title="View SNPs and Indels"> + <i class="icon-road"></i> SNPs + </button> + + <button class="btn" title="View probes, SNPs, and RNA-seq at UTHSC"> + <i class="icon-eye-close"></i> RNA-seq + </button> + + <button class="btn" title="Check sequence of probes"> + <i class="icon-list"></i> Probes + </button> + + </div> +</div> diff --git a/wqflask/wqflask/templates/show_trait_edit_data.html b/wqflask/wqflask/templates/show_trait_edit_data.html new file mode 100644 index 00000000..ce1642d3 --- /dev/null +++ b/wqflask/wqflask/templates/show_trait_edit_data.html @@ -0,0 +1,163 @@ +<div> + <h2>Review and Edit Data</h2> + + <div class="well form-horizontal"> + <fieldset id="showHideOptions"> + <legend>Block samples</legend> + <p>Edit or delete values in the Trait Data boxes, and use the + <strong>Reset</strong> option as + needed. + </p> + + <div id="blockMenuSpan" class="input-append"> + <label for="remove_samples_field">Block samples by index:</label> + <input type="text" id="remove_samples_field"> + <select id="block_group" size="1"> + <option value="primary"> + {{ sample_group_types['primary_only'] }} + </option> + <option value="other"> + {{ sample_group_types['other_only'] }} + </option> + </select> + <input type="button" id="block_by_index" class="btn" value="Block"> + </div> + <div id="remove_samples_invalid" class="alert alert-error" style="display:none;"> + Please check that your input is formatted correctly, e.g. <strong>3, 5-10, 12</strong> + </div> + + <br> + + {% if sample_groups[0].attributes %} + <div class="input-append"> + <label for="exclude_menu">Block samples by group:</label> + <select id="exclude_menu" size=1> + {% for attribute in sample_groups[0].attributes %} + <option value="{{ sample_groups[0].attributes[attribute].name.replace(' ', '_') }}"> + {{ sample_groups[0].attributes[attribute].name }}</option> + {% endfor %} + </select> + <select id="attribute_values" size=1> + </select> + <input type="button" id="exclude_group" class="btn" value="Block"> + </div> + {% endif %} + <br> + <div> + <input type="button" id="hide_no_value" class="btn" value="Hide No Value"> + <input type="button" id="block_outliers" class="btn" value="Block Outliers"> + <input type="button" id="reset" class="btn btn-inverse" value="Reset"> + <span class="input-append"> + <input type="button" id="export" class="btn" value="Export"> + <select id="export_format" class="select optional span2"> + <option value="excel">Excel</option> + <option value="csv">CSV</option> + </select> + </span> + </div> + </fieldset> + <br> + + <div> + <p>Outliers highlighted in + <strong style="background-color:yellow;">yellow</strong> + can be hidden using + the <strong>Hide Outliers</strong> button. + </p> + + <p>Samples with no value (x) can be hidden by clicking + <strong>Hide No Value</strong> button. + </p> + </div> + </div> + <br> + + <div class="well"> + <h3>Stats</h3> + <table id="stats_table" class="table table-hover"></table> + </div> + + <div> + {% for sample_type in sample_groups %} + <div> + <h3>{{ sample_type.header }}</h3> + + <div id="{{ sample_type.sample_group_type }}"> + <table class="table table-hover table-striped" {# Todo: Turn tablesorter back on #} + id="{{ 'sortable%i' % (loop.index) }}"> + <tr> + <th>Index</th> + + <th>Sample</th> + + <th>Value</th> + {% if sample_type.se_exists() %} + <th> </th> + + <th>SE</th> + {% endif %} + + {% for attribute in sample_type.attributes|sort() %} + <th> + {{ sample_type.attributes[attribute].name }} + </th> + {% endfor %} + </tr> + + {% for sample in sample_type.sample_list %} + <tr class="{{ sample.class_outlier }} value_se" id="{{ sample.this_id }}"> + <td class="column_name-Index"> + {{ loop.index }} + <input type="checkbox" name="selectCheck" + class="checkbox edit_sample_checkbox" + value="{{ sample.name }}" checked="checked"> + </td> + + <td class="column_name-Sample"> + <span class="edit_sample_sample_name"> + {{ sample.name }} + </span> + </td> + + {# Todo: Add IDs #} + <td class="column_name-Value"> + <input type="text" data-value="{{ sample.display_value }}" name="{{ sample.name }}" + class="trait_value_input edit_sample_value" + value="{{ sample.display_value }}" + size=8 maxlength=8 + > + </td> + + {% if sample_type.se_exists() %} + <td> + ± + </td> + + {# Todo: Add IDs #} + <td class="column_name-SE"> + <input type="text" data-value="{{ sample.display_variance }}" name=""{{ 'V' + sample.name}}" + class="trait_value_input edit_sample_se" + value="{{ sample.display_variance }}" + size=8 maxlength=8 + > + </td> + {% endif %} + + {# Loop through each attribute type and input value #} + {% for attribute in sample_type.attributes|sort() %} + <td class="std_cell column_name-{{ sample_type.attributes[attribute].name.replace(' ', '_') }}"> + {{ sample.extra_attributes[sample_type.attributes[attribute].name] }} + </td> + {% endfor %} + </tr> + {% endfor %} + + </table> + </div> + </div> + {% endfor %} + </div> + + + <input type="hidden" name="Default_Name"> +</div> diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html new file mode 100644 index 00000000..90498e9a --- /dev/null +++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html @@ -0,0 +1,382 @@ + <p class="sectionheader" id="title4" style="border-radius: 5px;"> Mapping Tools</p> + + <p id="sectionbody4"></p> + + <table class="target2" cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <div class="ui-tabs" id="mapping_tabs"> + <ul> + <li><a href="#mappingtabs-1">Interval</a></li> + + <li><a href="#mappingtabs-2">Marker Regression</a></li> + + <li><a href="#mappingtabs-3">Composite</a></li> + + <li><a href="#mappingtabs-4">Pair-Scan</a></li> + </ul> + + <div id="mappingtabs-1"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td class="fs12 fwn" nowrap="on" valign="top"> + <table cellpadding="2" cellspacing="0" width="263px"> + <tr> + <td><span class="ffl fwb fs12">Chromosome:</span></td> + + <td colspan="3"><select name="chromosomes1" size="1"> + <option value="-1"> + All + </option> + + <option value="0"> + 1 + </option> + + <option value="1"> + 2 + </option> + + <option value="2"> + 3 + </option> + + <option value="3"> + 4 + </option> + + <option value="4"> + 5 + </option> + + <option value="5"> + 6 + </option> + + <option value="6"> + 7 + </option> + + <option value="7"> + 8 + </option> + + <option value="8"> + 9 + </option> + + <option value="9"> + 10 + </option> + + <option value="10"> + 11 + </option> + + <option value="11"> + 12 + </option> + + <option value="12"> + 13 + </option> + + <option value="13"> + 14 + </option> + + <option value="14"> + 15 + </option> + + <option value="15"> + 16 + </option> + + <option value="16"> + 17 + </option> + + <option value="17"> + 18 + </option> + + <option value="18"> + 19 + </option> + + <option value="19"> + X + </option> + </select></td> + </tr> + + <tr> + <td><span class="ffl fwb fs12">Mapping Scale:</span></td> + + <td><select name="scale1" size="1" onchange= + "checkUncheck(window.document.dataInput.scale1.value, window.document.dataInput.permCheck1, window.document.dataInput.bootCheck1)"> + <option value="physic"> + Megabase + </option> + + <option value="morgan"> + Centimorgan + </option> + </select></td> + </tr> + </table><br> + <input type="checkbox" name="permCheck1" class="checkbox" checked>Permutation Test (n=2000)<br> + <input type="checkbox" name="bootCheck1" class="checkbox">Bootstrap Test (n=2000)<br> + <input type="checkbox" name="parentsf14regression1" class="checkbox">Use Parents<br> + <input type="checkbox" name="applyVarianceSE1" class="checkbox">Use Weighted<br> + <br> + <input type="button" name="interval" class="btn" value=" Compute "><br> + <br> + </td> + </tr> + + <tr> + <td valign="top"><span class="fs12"><a href="/glossary.html#intmap" target="_blank">Interval Mapping</a> computes linkage maps + for the entire genome or single<br> + chromosomes. The <a href="/glossary.html#permutation" target="_blank">Permutation Test</a> estimates suggestive and + significant<br> + linkage scores. The <a href="/glossary.html#bootstrap" target="_blank">Bootstrap Test</a> estimates the precision of the QTL + location.</span><br></td> + </tr> + </table> + </div> + + <div id="mappingtabs-2"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td class="fs12 fwn" nowrap="on" valign="top"> + <table cellpadding="2" cellspacing="0" width="263px"> + <tr> + <td><span class="ffl fwb fs12"><strong>Display LRS greater than:</strong></span></td> + + <td><input type="text" name="suggestive" size="5" maxlength="8"></td> + </tr> + + <tr> + <td><input type="checkbox" name="displayAllLRS" class="checkbox"> <span class="ffl fs12">Display all LRS</span></td> + </tr> + + <tr> + <td><input type="checkbox" name="parentsf14regression2" class="checkbox"> <span class="ffl fs12">Use Parents</span></td> + </tr> + + <tr> + <td><input type="checkbox" name="applyVarianceSE2" class="checkbox"> <span class="ffl fs12">Use Weighted</span></td> + </tr> + </table><br> + <input type="button" name="marker" class="btn" value=" Compute "><br> + <br> + </td> + </tr> + + <tr> + <td valign="top"><span class="fs12"><a href="/glossary.html#" target="_blank">Marker regression</a> computes and displays LRS + values for individual markers.<br> + This function also lists additive effects (phenotype units per allele) and<br> + dominance deviations for some datasets.<br></span><br></td> + </tr> + </table> + </div> + + <div id="mappingtabs-3"> + <table cellpadding="3" cellspacing="0" width="100%"> + <tr> + <td class="fs12 fwn" nowrap="on" valign="top"> + <table cellpadding="2" cellspacing="0" width="325px"> + <tr> + <td><span class="ffl fwb fs12">Chromosome:</span></td> + + <td colspan="3"><select name="chromosomes2" size="1"> + <option value="-1"> + All + </option> + + <option value="0"> + 1 + </option> + + <option value="1"> + 2 + </option> + + <option value="2"> + 3 + </option> + + <option value="3"> + 4 + </option> + + <option value="4"> + 5 + </option> + + <option value="5"> + 6 + </option> + + <option value="6"> + 7 + </option> + + <option value="7"> + 8 + </option> + + <option value="8"> + 9 + </option> + + <option value="9"> + 10 + </option> + + <option value="10"> + 11 + </option> + + <option value="11"> + 12 + </option> + + <option value="12"> + 13 + </option> + + <option value="13"> + 14 + </option> + + <option value="14"> + 15 + </option> + + <option value="15"> + 16 + </option> + + <option value="16"> + 17 + </option> + + <option value="17"> + 18 + </option> + + <option value="18"> + 19 + </option> + + <option value="19"> + X + </option> + </select></td> + </tr> + + <tr> + <td><span class="ffl fwb fs12">Mapping Scale:</span></td> + + <td><select name="scale2" size="1" onchange= + "checkUncheck(window.document.dataInput.scale2.value, window.document.dataInput.permCheck2, window.document.dataInput.bootCheck2)"> + <option value="physic"> + Megabase + </option> + + <option value="morgan"> + Centimorgan + </option> + </select></td> + </tr> + + <tr> + <td><span class="ffl fwb fs12">Control Locus:</span></td> + + <td><input type="text" name="controlLocus" class="controlLocus"></td> + </tr> + </table><br> + <input type="checkbox" name="permCheck2" class="checkbox" checked>Permutation Test (n=2000)<br> + <input type="checkbox" name="bootCheck2" class="checkbox">Bootstrap Test (n=2000)<br> + <input type="checkbox" name="parentsf14regression3" class="checkbox">Use Parents<br> + <br> + <input type="button" name="composite" class="btn" value=" Compute "><br> + <br> + </td> + </tr> + + <tr> + <td valign="top"><span><a href="/glossary.html#Composite" target="_blank">Composite Interval Mapping</a> allows you to control + for a single marker as<br> + a cofactor. To find a control marker, run the <strong>Marker Regression</strong> function.</span><br></td> + </tr> + </table> + </div> + + <div id="mappingtabs-4"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td class="fs12 fwn" nowrap="on"> + <table cellpadding="2" cellspacing="0" width="232px"> + <tr> + <td><span class="ffl fwb fs12"><strong>Sort by:</strong></span></td> + + <td><select name="graphSort" size="1"> + <option value="0"> + LRS Full + </option> + + <option value="1"> + LRS Interact + </option> + </select></td> + </tr> + + <tr> + <td><span class="ffl fwb fs12"><strong>Return:</strong></span></td> + + <td><select name="pairScanReturn" size="1"> + <option value="50"> + top 50 + </option> + + <option value="100"> + top 100 + </option> + + <option value="200"> + top 200 + </option> + + <option value="500"> + top 500 + </option> + </select></td> + </tr> + </table><br> + <input type="checkbox" name="directPermuCheckbox" class="checkbox" checked><span class="ffl fs12">Permutation Test + (n=500)</span><br> + <br> + <input type="button" class="btn" value=" Compute " onclick="dataEditingFunc(this.form,'directPlot');"><br> + <br> + </td> + </tr> + + <tr> + <td valign="top"><span><a href="/glossary.html#Pair_Scan" target="_blank">Pair-Scan</a> searches for pairs of chromosomal regions + that are<br> + involved in two-locus epistatic interactions.</span><br></td> + </tr> + </table> + </div> + </div> + </td> + </tr> + </table> + + + </div> diff --git a/wqflask/wqflask/templates/show_trait_statistics.html b/wqflask/wqflask/templates/show_trait_statistics.html new file mode 100644 index 00000000..eda5466e --- /dev/null +++ b/wqflask/wqflask/templates/show_trait_statistics.html @@ -0,0 +1,433 @@ +<br /> + +<div> + <h2>Basic Statistics</h2> + + + <p id="sectionbody2"></p>Include: + <select name="corr_samples_group" size="1"> + {% for group, pretty_group in sample_group_types.items() %} + <option value="{{ group }}"> + {{ pretty_group }} + </option> + {% endfor %} + </select><br> + <br> + <input type="button" name="Default_Name" class="btn update" value=" Update Figures "><br> + <br> + + {% for sd in stats_data %} + <div class="ui-tabs" id="{{ 'stats_tabs%i' % loop.index0 }}"> + <ul> + <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> + + <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> + + <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> + + <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> + + <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> + </ul> + + <div id="statstabs-1"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <table cellpadding="20" cellspacing="0"> + <tr> + <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> + + <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" align="left">N of Samples</td> + + <td class="fs13 b1 cbw c222" nowrap="yes" id="n_of_samples_value">{{ sd.N }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> + + <td class="fs13 b1 cbw c222" nowrap="yes" id="mean_value">{{ "%2.3f" % sd.traitmean }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> + + <td class="fs13 b1 cbw c222" nowrap="yes" id="median_value">{{ "%2.3f" % sd.traitmedian }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitsem }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.traitstdev }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.min }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.max }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_log2 }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.range_fold }}</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= + "non_bold">Interquartile Range</a></span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">{{ "%2.3f" % sd.interquartile }} </td> + </tr> + </table> + </td> + </tr> + </table> + </div> + + <div id="statstabs-5"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/nP_OE9u7BSx.gif" alt="nP_OE9u7BSx.gif" border="0"></td> + </tr> + + <tr> + <td><br> + <br> + This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> + <br> + More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more + about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> + </tr> + </table> + </div> + + <div id="statstabs-2"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td align="left"> + <img src="/image/Box_gUFtEOVI.gif" alt="Box_gUFtEOVI.gif" border="0"> + + <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> + </td> + </tr> + </table> + </div> + + <div id="statstabs-3"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_y7L2rYlL.gif" alt="Bar_y7L2rYlL.gif" border="0"></td> + </tr> + </table> + </div> + + <div id="statstabs-4"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_1Z4GjYFq.gif" alt="Bar_1Z4GjYFq.gif" border="0"></td> + </tr> + </table> + </div> + </div> + {% endfor %} + {# Not used now - Todo: Delete after we're sure this is right. + <div class="ui-tabs" id="stats_tabs1"> + <ul> + <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> + + <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> + + <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> + + <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> + + <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> + </ul> + + <div id="statstabs-1"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <table cellpadding="20" cellspacing="0"> + <tr> + <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> + + <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" align="left">N of Samples</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">71</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.109</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.084</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.022</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.187</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">5.782</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.579</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.797</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">1.74</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= + "non_bold">Interquartile Range</a></span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">1.13</td> + </tr> + </table> + </td> + </tr> + </table> + </div> + + <div id="statstabs-5"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/nP_eSYO7ZQg.gif" alt="nP_eSYO7ZQg.gif" border="0"></td> + </tr> + + <tr> + <td><br> + <br> + This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> + <br> + More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more + about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> + </tr> + </table> + </div> + + <div id="statstabs-2"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td align="left"> + <img src="/image/Box_PWNWQMfj.gif" alt="Box_PWNWQMfj.gif" border="0"> + + <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> + </td> + </tr> + </table> + </div> + + <div id="statstabs-3"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_VuPqYbR6.gif" alt="Bar_VuPqYbR6.gif" border="0"></td> + </tr> + </table> + </div> + + <div id="statstabs-4"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_9PbdvXZ9.gif" alt="Bar_9PbdvXZ9.gif" border="0"></td> + </tr> + </table> + </div> + </div> + + <div class="ui-tabs" id="stats_tabs2"> + + + <ul> + <li><a href="#statstabs-1" class="stats_tab">Basic Table</a></li> + + <li><a href="#statstabs-5" class="stats_tab">Probability Plot</a></li> + + <li><a href="#statstabs-3" class="stats_tab">Bar Graph (by name)</a></li> + + <li><a href="#statstabs-4" class="stats_tab">Bar Graph (by rank)</a></li> + + <li><a href="#statstabs-2" class="stats_tab">Box Plot</a></li> + </ul> + + <div id="statstabs-1"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <table cellpadding="20" cellspacing="0"> + <tr> + <td class="fs14 fwb ffl b1 cw cbrb" align="left" width="180">Statistic</td> + + <td class="fs14 fwb ffl b1 cw cbrb" align="right" width="60">Value</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" align="left">N of Samples</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">32</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Mean</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.176</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Median</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.170</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Error (SE)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.027</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Standard Deviation (SD)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.150</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Minimum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">5.906</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Maximum</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">6.485</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left">Range (log2)</td> + + <td class="fs13 b1 cbw c222" nowrap="yes">0.579</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span>Range (fold)</span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">1.49</td> + </tr> + + <tr align="right"> + <td class="fs13 b1 cbw c222" nowrap="yes" align="left"><span><a href="/glossary.html#Interquartile" target="_blank" class= + "non_bold">Interquartile Range</a></span></td> + + <td class="fs13 b1 cbw c222" nowrap="yes">1.15</td> + </tr> + </table> + </td> + </tr> + </table> + </div> + + <div id="statstabs-5"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/nP_swDAFlJy.gif" alt="nP_swDAFlJy.gif" border="0"></td> + </tr> + + <tr> + <td><br> + <br> + This plot evaluates whether data are normally distributed. Different symbols represent different groups.<br> + <br> + More about <a href="http://en.wikipedia.org/wiki/Normal_probability_plot" target="_blank">Normal Probability Plots</a> and more + about interpreting these plots from the <a href="/glossary.html#normal_probability" target="_blank">glossary</a></td> + </tr> + </table> + </div> + + <div id="statstabs-2"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td align="left"> + <img src="/image/Box_6sQJ8xhK.gif" alt="Box_6sQJ8xhK.gif" border="0"> + + <p><span>More about <a href="http://davidmlane.com/hyperstat/A37797.html" target="_blank" class="fs13">Box Plots</a></span></p> + </td> + </tr> + </table> + </div> + + <div id="statstabs-3"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_QMWE2VEp.gif" alt="Bar_QMWE2VEp.gif" border="0"></td> + </tr> + </table> + </div> + + <div id="statstabs-4"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td><img src="/image/Bar_X07QmgsX.gif" alt="Bar_X07QmgsX.gif" border="0"></td> + </tr> + </table> + </div> + </div> + </td> + </tr> + </table> + #} |