aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rwxr-xr-xwqflask/base/data_set.py418
-rw-r--r--wqflask/base/generate_probesetfreeze_file.py31
-rw-r--r--wqflask/base/species.py12
-rwxr-xr-xwqflask/base/trait.py96
-rwxr-xr-xwqflask/base/webqtlConfig.py9
-rwxr-xr-xwqflask/base/webqtlConfigLocal.py16
-rw-r--r--wqflask/cfg/default_settings.py8
-rw-r--r--wqflask/cfg/zach_settings.py5
-rw-r--r--wqflask/maintenance/generate_probesetfreeze_file.py123
-rw-r--r--wqflask/maintenance/quick_search_table.py484
-rw-r--r--wqflask/other_config/nginx-old.conf (renamed from wqflask/other_config/nginx.conf)0
-rw-r--r--wqflask/other_config/wqflask-nginx.conf83
-rw-r--r--wqflask/requirements.txt8
-rw-r--r--wqflask/runserver.py1
-rw-r--r--wqflask/secure_server.py67
-rw-r--r--wqflask/utility/benchmark.py45
-rw-r--r--wqflask/utility/helper_functions.py18
-rw-r--r--wqflask/utility/temp_data.py25
-rw-r--r--wqflask/wqflask/correlation/CorrelationPage.py2082
-rw-r--r--wqflask/wqflask/correlation/correlationFunction.py2
-rw-r--r--wqflask/wqflask/correlation/correlation_plot.py48
-rw-r--r--wqflask/wqflask/correlation/show_corr_results.py1102
-rwxr-xr-xwqflask/wqflask/dataSharing/SharingInfo.py12
-rw-r--r--wqflask/wqflask/do_search.py103
-rwxr-xr-xwqflask/wqflask/marker_regression/marker_regression.py1736
-rw-r--r--wqflask/wqflask/my_pylmm/__init__.py0
-rw-r--r--wqflask/wqflask/my_pylmm/data/__init__.py0
-rw-r--r--wqflask/wqflask/my_pylmm/data/genofile_parser.py175
-rw-r--r--wqflask/wqflask/my_pylmm/data/prep_data.py80
-rw-r--r--wqflask/wqflask/my_pylmm/example.py58
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/__init__.py0
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/chunks.py96
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/input.py263
-rw-r--r--wqflask/wqflask/my_pylmm/pyLMM/lmm.py631
-rw-r--r--wqflask/wqflask/my_pylmm/pylmmGWAS.py238
-rw-r--r--wqflask/wqflask/my_pylmm/pylmmKinship.py119
m---------wqflask/wqflask/pylmm0
-rw-r--r--wqflask/wqflask/search_results.py153
-rw-r--r--wqflask/wqflask/show_trait/SampleList.py2
-rwxr-xr-xwqflask/wqflask/show_trait/show_trait.py514
-rw-r--r--wqflask/wqflask/static/new/css/marker_regression.css42
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_menu_structure.json664
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_select_menu.js2
-rw-r--r--wqflask/wqflask/static/new/javascript/marker_regression.coffee474
-rw-r--r--wqflask/wqflask/static/new/javascript/marker_regression.js422
-rw-r--r--wqflask/wqflask/static/new/javascript/marker_regression_old.coffee212
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.coffee1
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js2
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.coffee82
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js90
-rw-r--r--wqflask/wqflask/static/new/javascript/stats.js2
-rw-r--r--wqflask/wqflask/static/new/javascript/validation.js2
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/css/demo_page.css17
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/css/demo_table.css3
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/css/demo_table_jui.css25
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables.css3
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables_themeroller.css1
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.js1412
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.min.js277
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/js/jquery.js6
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/DataTables.js37
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/api/api.internal.js6
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/api/api.methods.js72
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.ajax.js6
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.columns.js108
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.constructor.js49
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.data.js174
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.draw.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.filter.js56
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.info.js24
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.length.js2
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.page.js2
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.scrolling.js118
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.sizing.js12
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.sort.js87
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.state.js51
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/core/core.support.js54
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/ext/ext.paging.js31
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.column.js47
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.columns.js276
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.js136
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.ext.js8
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.row.js2
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/src/model/model.settings.js16
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js6
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js2
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js140
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js62
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js20
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js10
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js30
-rwxr-xr-xwqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js60
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSort.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js90
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js50
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js60
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js20
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js70
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js40
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js20
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js30
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js20
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js20
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js60
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js10
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sDom.js70
-rw-r--r--wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js20
-rw-r--r--wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.css179
-rw-r--r--wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.js159
l---------wqflask/wqflask/static/packages/DT_bootstrap/images1
-rw-r--r--wqflask/wqflask/static/packages/underscore/underscore-min.js1
-rw-r--r--wqflask/wqflask/templates/base.html82
-rw-r--r--wqflask/wqflask/templates/correlation_page.html1447
-rw-r--r--wqflask/wqflask/templates/index_page.html26
-rw-r--r--wqflask/wqflask/templates/marker_regression.html83
-rw-r--r--wqflask/wqflask/templates/quick_search.html215
-rw-r--r--wqflask/wqflask/templates/security/_macros.html16
-rw-r--r--wqflask/wqflask/templates/security/_menu.html15
-rw-r--r--wqflask/wqflask/templates/security/_messages.html9
-rw-r--r--wqflask/wqflask/templates/security/register_user.html45
-rw-r--r--wqflask/wqflask/templates/show_trait.html15
-rw-r--r--wqflask/wqflask/templates/show_trait_calculate_correlations.html245
-rw-r--r--wqflask/wqflask/templates/show_trait_mapping_tools.html43
-rw-r--r--wqflask/wqflask/templates/show_trait_progress_bar.html12
-rw-r--r--wqflask/wqflask/views.py99
150 files changed, 9502 insertions, 8846 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 50ef8f57..0903bf16 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -22,10 +22,14 @@
from __future__ import absolute_import, print_function, division
import os
+import math
+import string
+import collections
-from flask import Flask, g
+import json
+import itertools
-from htmlgen import HTMLgen2 as HT
+from flask import Flask, g
import reaper
@@ -33,6 +37,8 @@ from base import webqtlConfig
from base import species
from dbFunction import webqtlDatabaseFunction
from utility import webqtlUtil
+from utility.benchmark import Bench
+from wqflask.my_pylmm.pyLMM import chunks
from MySQLdb import escape_string as escape
from pprint import pformat as pf
@@ -41,29 +47,102 @@ from pprint import pformat as pf
DS_NAME_MAP = {}
def create_dataset(dataset_name):
- #cursor = db_conn.cursor()
- print("dataset_name:", dataset_name)
+ #print("dataset_name:", dataset_name)
query = """
SELECT DBType.Name
FROM DBList, DBType
- WHERE DBList.Name = '%s' and
+ WHERE DBList.Name = '{}' and
DBType.Id = DBList.DBTypeId
- """ % (escape(dataset_name))
- print("query is: ", pf(query))
+ """.format(escape(dataset_name))
+ #print("query is: ", pf(query))
dataset_type = g.db.execute(query).fetchone().Name
#dataset_type = cursor.fetchone()[0]
- print("[blubber] dataset_type:", pf(dataset_type))
+ #print("[blubber] dataset_type:", pf(dataset_type))
dataset_ob = DS_NAME_MAP[dataset_type]
#dataset_class = getattr(data_set, dataset_ob)
- print("dataset_ob:", dataset_ob)
- print("DS_NAME_MAP:", pf(DS_NAME_MAP))
+ #print("dataset_ob:", dataset_ob)
+ #print("DS_NAME_MAP:", pf(DS_NAME_MAP))
dataset_class = globals()[dataset_ob]
return dataset_class(dataset_name)
+def create_in_clause(items):
+ """Create an in clause for mysql"""
+ in_clause = ', '.join("'{}'".format(x) for x in mescape(*items))
+ in_clause = '( {} )'.format(in_clause)
+ return in_clause
+
+
+def mescape(*items):
+ """Multiple escape"""
+ escaped = [escape(str(item)) for item in items]
+ #print("escaped is:", escaped)
+ return escaped
+
+
+class Markers(object):
+ """Todo: Build in cacheing so it saves us reading the same file more than once"""
+ def __init__(self, name):
+ json_data_fh = open(os.path.join(webqtlConfig.NEWGENODIR + name + '.json'))
+ self.markers = json.load(json_data_fh)
+
+ def add_pvalues(self, p_values):
+ #print("length of self.markers:", len(self.markers))
+ #print("length of p_values:", len(p_values))
+
+ # THIS IS only needed for the case when we are limiting the number of p-values calculated
+ if len(self.markers) < len(p_values):
+ self.markers = self.markers[:len(p_values)]
+
+ for marker, p_value in itertools.izip(self.markers, p_values):
+ marker['p_value'] = p_value
+ print("p_value is:", marker['p_value'])
+ marker['lod_score'] = -math.log10(marker['p_value'])
+ #Using -log(p) for the LRS; need to ask Rob how he wants to get LRS from p-values
+ marker['lrs_value'] = -math.log10(marker['p_value']) * 4.61
+
+
+
+
+class HumanMarkers(Markers):
+
+ def __init__(self, name):
+ marker_data_fh = open(os.path.join(webqtlConfig.PYLMM_PATH + name + '.bim'))
+ self.markers = []
+ for line in marker_data_fh:
+ splat = line.strip().split()
+ marker = {}
+ marker['chr'] = int(splat[0])
+ marker['name'] = splat[1]
+ marker['Mb'] = float(splat[3]) / 1000000
+ self.markers.append(marker)
+
+ #print("markers is: ", pf(self.markers))
+
+
+ def add_pvalues(self, p_values):
+ #for marker, p_value in itertools.izip(self.markers, p_values):
+ # if marker['Mb'] <= 0 and marker['chr'] == 0:
+ # continue
+ # marker['p_value'] = p_value
+ # print("p_value is:", marker['p_value'])
+ # marker['lod_score'] = -math.log10(marker['p_value'])
+ # #Using -log(p) for the LRS; need to ask Rob how he wants to get LRS from p-values
+ # marker['lrs_value'] = -math.log10(marker['p_value']) * 4.61
+
+ super(HumanMarkers, self).add_pvalues(p_values)
+
+ with Bench("deleting markers"):
+ markers = []
+ for marker in self.markers:
+ if not marker['Mb'] <= 0 and not marker['chr'] == 0:
+ markers.append(marker)
+ self.markers = markers
+
+
class DatasetGroup(object):
"""
@@ -79,22 +158,41 @@ class DatasetGroup(object):
if self.name == 'BXD300':
self.name = "BXD"
+ self.f1list = None
+ self.parlist = None
+ self.get_f1_parent_strains()
+ #print("parents/f1s: {}:{}".format(self.parlist, self.f1list))
+
self.species = webqtlDatabaseFunction.retrieve_species(self.name)
self.incparentsf1 = False
- self.f1list = None
- self.parlist = None
self.allsamples = None
+
+
+ def get_markers(self):
+ #print("self.species is:", self.species)
+ if self.species == "human":
+ marker_class = HumanMarkers
+ else:
+ marker_class = Markers
+ self.markers = marker_class(self.name)
+
- #def read_genotype(self):
- # self.read_genotype_file()
- #
- # if not self.genotype: # Didn'd succeed, so we try method 2
- # self.read_genotype_data()
+ def get_f1_parent_strains(self):
+ try:
+ # NL, 07/27/2010. ParInfo has been moved from webqtlForm.py to webqtlUtil.py;
+ f1, f12, maternal, paternal = webqtlUtil.ParInfo[self.name]
+ except KeyError:
+ f1 = f12 = maternal = paternal = None
+
+ if f1 and f12:
+ self.f1list = [f1, f12]
+ if maternal and paternal:
+ self.parlist = [maternal, paternal]
def read_genotype_file(self):
- '''read genotype from .geno file instead of database'''
+ '''Read genotype from .geno file instead of database'''
#if self.group == 'BXD300':
# self.group = 'BXD'
#
@@ -104,38 +202,24 @@ class DatasetGroup(object):
#genotype_2 is Dataset Object with parents and f1 (not for intercross)
genotype_1 = reaper.Dataset()
-
+
# reaper barfs on unicode filenames, so here we ensure it's a string
full_filename = str(os.path.join(webqtlConfig.GENODIR, self.name + '.geno'))
genotype_1.read(full_filename)
- print("Got to after read")
-
- try:
- # NL, 07/27/2010. ParInfo has been moved from webqtlForm.py to webqtlUtil.py;
- f1, f12, maternal, paternal = webqtlUtil.ParInfo[self.name]
- except KeyError:
- f1 = f12 = maternal = paternal = None
-
-
- if genotype_1.type == "group" and maternal and paternal:
- genotype_2 = genotype_1.add(Mat=maternal, Pat=paternal) #, F1=_f1)
+ if genotype_1.type == "group" and self.parlist:
+ genotype_2 = genotype_1.add(Mat=self.parlist[0], Pat=self.parlist[1]) #, F1=_f1)
else:
genotype_2 = genotype_1
#determine default genotype object
if self.incparentsf1 and genotype_1.type != "intercross":
- self.genotype = genotype_2
+ genotype = genotype_2
else:
self.incparentsf1 = 0
- self.genotype = genotype_1
-
- self.samplelist = list(self.genotype.prgy)
+ genotype = genotype_1
- if f1 and f12:
- self.f1list = [f1, f12]
- if maternal and paternal:
- self.parlist = [maternal, paternal]
+ self.samplelist = list(genotype.prgy)
class DataSet(object):
@@ -159,10 +243,10 @@ class DataSet(object):
self.retrieve_other_names()
self.group = DatasetGroup(self) # sets self.group and self.group_id and gets genotype
+ self.group.read_genotype_file()
self.species = species.TheSpecies(self)
-
-
-
+
+
def get_desc(self):
"""Gets overridden later, at least for Temp...used by trait's get_given_name"""
return None
@@ -209,14 +293,14 @@ class DataSet(object):
self.name,
self.name,
self.name))
- print("query_args are:", query_args)
+ #print("query_args are:", query_args)
- print("""
- SELECT Id, Name, FullName, ShortName
- FROM %s
- WHERE public > %s AND
- (Name = '%s' OR FullName = '%s' OR ShortName = '%s')
- """ % (query_args))
+ #print("""
+ # SELECT Id, Name, FullName, ShortName
+ # FROM %s
+ # WHERE public > %s AND
+ # (Name = '%s' OR FullName = '%s' OR ShortName = '%s')
+ # """ % (query_args))
self.id, self.name, self.fullname, self.shortname = g.db.execute("""
SELECT Id, Name, FullName, ShortName
@@ -227,11 +311,7 @@ class DataSet(object):
#self.cursor.execute(query)
#self.id, self.name, self.fullname, self.shortname = self.cursor.fetchone()
-
-
- #def genHTML(self, Class='c0dd'):
- # return HT.Href(text = HT.Span('%s Database' % self.fullname, Class= "fwb " + Class),
- # url= webqtlConfig.INFOPAGEHREF % self.name,target="_blank")
+
class PhenotypeDataSet(DataSet):
DS_NAME_MAP['Publish'] = 'PhenotypeDataSet'
@@ -291,6 +371,19 @@ class PhenotypeDataSet(DataSet):
# (Urgently?) Need to write this
pass
+ def get_trait_list(self):
+ query = """
+ select PublishXRef.Id
+ from PublishXRef, PublishFreeze
+ where PublishFreeze.InbredSetId=PublishXRef.InbredSetId
+ and PublishFreeze.Id = {}
+ """.format(escape(str(self.id)))
+ results = g.db.execute(query).fetchall()
+ trait_data = {}
+ for trait in results:
+ trait_data[trait[0]] = self.retrieve_sample_data(trait[0])
+ return trait_data
+
def get_trait_info(self, trait_list, species = ''):
for this_trait in trait_list:
if not this_trait.haveinfo:
@@ -359,7 +452,7 @@ class PhenotypeDataSet(DataSet):
PublishFreeze.Id = %d AND PublishData.StrainId = Strain.Id
Order BY
Strain.Name
- """ % (trait.name, self.id)
+ """ % (trait, self.id)
results = g.db.execute(query).fetchall()
return results
@@ -399,6 +492,19 @@ class GenotypeDataSet(DataSet):
def check_confidentiality(self):
return geno_mrna_confidentiality(self)
+
+ def get_trait_list(self):
+ query = """
+ select Geno.Name
+ from Geno, GenoXRef
+ where GenoXRef.GenoId = Geno.Id
+ and GenoFreezeId = {}
+ """.format(escape(str(self.id)))
+ results = g.db.execute(query).fetchall()
+ trait_data = {}
+ for trait in results:
+ trait_data[trait[0]] = self.retrieve_sample_data(trait[0])
+ return trait_data
def get_trait_info(self, trait_list, species=None):
for this_trait in trait_list:
@@ -437,7 +543,7 @@ class GenotypeDataSet(DataSet):
GenoData.StrainId = Strain.Id
Order BY
Strain.Name
- """ % (webqtlDatabaseFunction.retrieve_species_id(self.group.name), trait.name, self.name)
+ """ % (webqtlDatabaseFunction.retrieve_species_id(self.group.name), trait, self.name)
results = g.db.execute(query).fetchall()
return results
@@ -509,10 +615,95 @@ class MrnaAssayDataSet(DataSet):
def check_confidentiality(self):
return geno_mrna_confidentiality(self)
+
+ def get_trait_list_1(self):
+ query = """
+ select ProbeSet.Name
+ from ProbeSet, ProbeSetXRef
+ where ProbeSetXRef.ProbeSetId = ProbeSet.Id
+ and ProbeSetFreezeId = {}
+ """.format(escape(str(self.id)))
+ results = g.db.execute(query).fetchall()
+ #print("After get_trait_list query")
+ trait_data = {}
+ for trait in results:
+ print("Retrieving sample_data for ", trait[0])
+ trait_data[trait[0]] = self.retrieve_sample_data(trait[0])
+ #print("After retrieve_sample_data")
+ return trait_data
+
+ def get_trait_data(self):
+ self.samplelist = self.group.samplelist + self.group.parlist + self.group.f1list
+ query = """
+ SELECT Strain.Name, Strain.Id FROM Strain, Species
+ WHERE Strain.Name IN {}
+ and Strain.SpeciesId=Species.Id
+ and Species.name = '{}'
+ """.format(create_in_clause(self.samplelist), *mescape(self.group.species))
+ results = dict(g.db.execute(query).fetchall())
+ sample_ids = [results[item] for item in self.samplelist]
+
+ # MySQL limits the number of tables that can be used in a join to 61,
+ # so we break the sample ids into smaller chunks
+ # Postgres doesn't have that limit, so we can get rid of this after we transition
+ chunk_size = 50
+ number_chunks = int(math.ceil(len(sample_ids) / chunk_size))
+ trait_sample_data = []
+ for sample_ids_step in chunks.divide_into_chunks(sample_ids, number_chunks):
+
+ #XZ, 09/24/2008: build one temporary table that only contains the records associated with the input GeneId
+ #tempTable = None
+ #if GeneId and db.type == "ProbeSet":
+ # if method == "3":
+ # tempTable = self.getTempLiteratureTable(species=species,
+ # input_species_geneid=GeneId,
+ # returnNumber=returnNumber)
+ #
+ # if method == "4" or method == "5":
+ # tempTable = self.getTempTissueCorrTable(primaryTraitSymbol=GeneSymbol,
+ # TissueProbeSetFreezeId=tissueProbeSetFreezeId,
+ # method=method,
+ # returnNumber=returnNumber)
+
+ temp = ['T%s.value' % item for item in sample_ids_step]
+ query = "SELECT {}.Name,".format(escape(self.type))
+ data_start_pos = 1
+ query += string.join(temp, ', ')
+ query += ' FROM ({}, {}XRef, {}Freeze) '.format(*mescape(self.type,
+ self.type,
+ self.type))
+
+ for item in sample_ids_step:
+ query += """
+ left join {}Data as T{} on T{}.Id = {}XRef.DataId
+ and T{}.StrainId={}\n
+ """.format(*mescape(self.type, item, item, self.type, item, item))
+
+ query += """
+ WHERE {}XRef.{}FreezeId = {}Freeze.Id
+ and {}Freeze.Name = '{}'
+ and {}.Id = {}XRef.{}Id
+ order by {}.Id
+ """.format(*mescape(self.type, self.type, self.type, self.type,
+ self.name, self.type, self.type, self.type, self.type))
+ results = g.db.execute(query).fetchall()
+ trait_sample_data.append(results)
+
+ trait_count = len(trait_sample_data[0])
+ self.trait_data = collections.defaultdict(list)
+
+ # put all of the separate data together into a dictionary where the keys are
+ # trait names and values are lists of sample values
+ for trait_counter in range(trait_count):
+ trait_name = trait_sample_data[0][trait_counter][0]
+ for chunk_counter in range(int(number_chunks)):
+ self.trait_data[trait_name] += (
+ trait_sample_data[chunk_counter][trait_counter][data_start_pos:])
+
def get_trait_info(self, trait_list=None, species=''):
- # Note: setting trait_list to [] is probably not a great idea.
+ # Note: setting trait_list to [] is probably not a great idea.
if not trait_list:
trait_list = []
@@ -521,9 +712,7 @@ class MrnaAssayDataSet(DataSet):
if not this_trait.haveinfo:
this_trait.retrieveInfo(QTL=1)
- if this_trait.symbol:
- pass
- else:
+ if not this_trait.symbol:
this_trait.symbol = "N/A"
#XZ, 12/08/2008: description
@@ -531,60 +720,56 @@ class MrnaAssayDataSet(DataSet):
description_string = str(this_trait.description).strip()
target_string = str(this_trait.probe_target_description).strip()
- description_display = ''
-
if len(description_string) > 1 and description_string != 'None':
description_display = description_string
else:
description_display = this_trait.symbol
- if len(description_display) > 1 and description_display != 'N/A' and len(target_string) > 1 and target_string != 'None':
+ 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()
# Save it for the jinja2 template
this_trait.description_display = description_display
- #print(" xxxxdd [%s]: %s" % (type(this_trait.description_display), description_display))
#XZ: trait_location_value is used for sorting
trait_location_repr = 'N/A'
trait_location_value = 1000000
if this_trait.chr and this_trait.mb:
- try:
- trait_location_value = int(this_trait.chr)*1000 + this_trait.mb
- except:
- if this_trait.chr.upper() == 'X':
- trait_location_value = 20*1000 + this_trait.mb
- else:
- trait_location_value = ord(str(this_trait.chr).upper()[0])*1000 + this_trait.mb
-
- this_trait.location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr, float(this_trait.mb) )
+ #Checks if the chromosome number can be cast to an int (i.e. isn't "X" or "Y")
+ #This is so we can convert the location to a number used for sorting
+ trait_location_value = self.convert_location_to_value(this_trait.chr, this_trait.mb)
+ #try:
+ # trait_location_value = int(this_trait.chr)*1000 + this_trait.mb
+ #except ValueError:
+ # if this_trait.chr.upper() == 'X':
+ # trait_location_value = 20*1000 + this_trait.mb
+ # else:
+ # trait_location_value = (ord(str(this_trait.chr).upper()[0])*1000 +
+ # this_trait.mb)
+
+ #ZS: Put this in function currently called "convert_location_to_value"
+ this_trait.location_repr = 'Chr %s: %.4f Mb' % (this_trait.chr,
+ float(this_trait.mb))
this_trait.location_value = trait_location_value
- #this_trait.trait_location_value = trait_location_value
- #XZ, 01/12/08: This SQL query is much faster.
+ #Get mean expression value
query = (
-"""select ProbeSetXRef.mean from ProbeSetXRef, ProbeSet
- where ProbeSetXRef.ProbeSetFreezeId = %s and
- ProbeSet.Id = ProbeSetXRef.ProbeSetId and
- ProbeSet.Name = '%s'
+ """select ProbeSetXRef.mean from ProbeSetXRef, ProbeSet
+ where ProbeSetXRef.ProbeSetFreezeId = %s and
+ ProbeSet.Id = ProbeSetXRef.ProbeSetId and
+ ProbeSet.Name = '%s'
""" % (escape(str(this_trait.dataset.id)),
escape(this_trait.name)))
- print("query is:", pf(query))
+ #print("query is:", pf(query))
result = g.db.execute(query).fetchone()
+
+ mean = result[0] if result else 0
- if result:
- if result[0]:
- mean = result[0]
- else:
- mean=0
- else:
- mean = 0
-
- #XZ, 06/05/2009: It is neccessary to turn on nowrap
- this_trait.mean = repr = "%2.3f" % mean
+ this_trait.mean = "%2.3f" % mean
#LRS and its location
this_trait.LRS_score_repr = 'N/A'
@@ -603,23 +788,39 @@ class MrnaAssayDataSet(DataSet):
result = self.cursor.fetchone()
if result:
- if result[0] and result[1]:
- LRS_Chr = result[0]
- LRS_Mb = result[1]
-
- #XZ: LRS_location_value is used for sorting
- try:
- LRS_location_value = int(LRS_Chr)*1000 + float(LRS_Mb)
- except:
- if LRS_Chr.upper() == 'X':
- LRS_location_value = 20*1000 + float(LRS_Mb)
- else:
- LRS_location_value = ord(str(LRS_chr).upper()[0])*1000 + float(LRS_Mb)
+ #if result[0] and result[1]:
+ # lrs_chr = result[0]
+ # lrs_mb = result[1]
+ lrs_chr, lrs_mb = result
+ #XZ: LRS_location_value is used for sorting
+ lrs_location_value = self.convert_location_to_value(lrs_chr, lrs_mb)
+
+ #try:
+ # lrs_location_value = int(lrs_chr)*1000 + float(lrs_mb)
+ #except:
+ # if lrs_chr.upper() == 'X':
+ # lrs_location_value = 20*1000 + float(lrs_mb)
+ # else:
+ # lrs_location_value = (ord(str(LRS_chr).upper()[0])*1000 +
+ # float(lrs_mb))
+
+ this_trait.LRS_score_repr = '%3.1f' % this_trait.lrs
+ this_trait.LRS_score_value = this_trait.lrs
+ this_trait.LRS_location_repr = 'Chr %s: %.4f Mb' % (lrs_chr, float(lrs_mb))
+
+
+ def convert_location_to_value(self, chromosome, mb):
+ try:
+ location_value = int(chromosome)*1000 + float(mb)
+ except ValueError:
+ if chromosome.upper() == 'X':
+ location_value = 20*1000 + float(mb)
+ else:
+ location_value = (ord(str(chromosome).upper()[0])*1000 +
+ float(mb))
+
+ return location_value
- this_trait.LRS_score_repr = LRS_score_repr = '%3.1f' % this_trait.lrs
- this_trait.LRS_score_value = LRS_score_value = this_trait.lrs
- this_trait.LRS_location_repr = LRS_location_repr = 'Chr %s: %.4f Mb' % (LRS_Chr, float(LRS_Mb) )
-
def get_sequence(self):
query = """
SELECT
@@ -633,9 +834,9 @@ class MrnaAssayDataSet(DataSet):
ProbeSetFreeze.Name = %s
""" % (escape(self.name), escape(self.dataset.name))
results = g.db.execute(query).fetchone()
-
return results[0]
+
def retrieve_sample_data(self, trait):
query = """
SELECT
@@ -652,7 +853,7 @@ class MrnaAssayDataSet(DataSet):
ProbeSetData.StrainId = Strain.Id
Order BY
Strain.Name
- """ % (escape(trait.name), escape(self.name))
+ """ % (escape(trait), escape(self.name))
results = g.db.execute(query).fetchall()
return results
@@ -725,7 +926,7 @@ class TempDataSet(DataSet):
def geno_mrna_confidentiality(ob):
dataset_table = ob.type + "Freeze"
- print("dataset_table [%s]: %s" % (type(dataset_table), dataset_table))
+ #print("dataset_table [%s]: %s" % (type(dataset_table), dataset_table))
query = '''SELECT Id, Name, FullName, confidentiality,
AuthorisedUsers FROM %s WHERE Name = %%s''' % (dataset_table)
@@ -741,3 +942,4 @@ def geno_mrna_confidentiality(ob):
if confidential:
# Allow confidential data later
NoConfindetialDataForYouTodaySorry
+
diff --git a/wqflask/base/generate_probesetfreeze_file.py b/wqflask/base/generate_probesetfreeze_file.py
new file mode 100644
index 00000000..a0ff804b
--- /dev/null
+++ b/wqflask/base/generate_probesetfreeze_file.py
@@ -0,0 +1,31 @@
+from __future__ import absolute_import, print_function, division
+import os
+import math
+
+import json
+import itertools
+
+from flask import Flask, g
+
+from base import webqtlConfig
+from dbFunction import webqtlDatabaseFunction
+from utility import webqtlUtil
+
+from MySQLdb import escape_string as escape
+from pprint import pformat as pf
+
+
+query = """ select ProbeSet.Name
+ from ProbeSetXRef,
+ ProbeSetFreeze,
+ ProbeSet
+ where ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and
+ ProbeSetFreeze.Name = "EPFLMouseMuscleCDRMA1211" and
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id;
+ """
+
+markers = g.db.execute(query).fetchall()
+print("markers: ", pf(markers))
+
+if __name__ == '__main__':
+ main() \ No newline at end of file
diff --git a/wqflask/base/species.py b/wqflask/base/species.py
index 9d4cac4c..191f4535 100644
--- a/wqflask/base/species.py
+++ b/wqflask/base/species.py
@@ -16,8 +16,7 @@ class TheSpecies(object):
print("self.dataset is:", pf(self.dataset.__dict__))
self.chromosomes = Chromosomes(self.dataset)
self.genome_mb_length = self.chromosomes.get_genome_mb_length()
-
-
+
#@property
#def chromosomes(self):
# chromosomes = [("All", -1)]
@@ -31,7 +30,8 @@ class TheSpecies(object):
# return chromosomes
class IndChromosome(object):
- def __init__(self, length):
+ def __init__(self, name, length):
+ self.name = name
self.length = length
@property
@@ -50,7 +50,7 @@ class Chromosomes(object):
results = g.db.execute("""
Select
- Chr_Length.Name, Length from Chr_Length, InbredSet
+ Chr_Length.Name, Chr_Length.OrderId, Length from Chr_Length, InbredSet
where
Chr_Length.SpeciesId = InbredSet.SpeciesId AND
InbredSet.Name = %s
@@ -59,10 +59,10 @@ class Chromosomes(object):
print("bike:", results)
for item in results:
- self.chromosomes[item.Name] = IndChromosome(item.Length)
+ self.chromosomes[item.OrderId] = IndChromosome(item.Name, item.Length)
self.set_mb_graph_interval()
- self.get_cm_length_list()
+ #self.get_cm_length_list()
def set_mb_graph_interval(self):
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 241bf2ab..82e013ae 100755
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -1,6 +1,8 @@
from __future__ import absolute_import, division, print_function
import string
+import resource
+
from htmlgen import HTMLgen2 as HT
@@ -15,22 +17,38 @@ from pprint import pformat as pf
from flask import Flask, g
-class GeneralTrait:
+def print_mem(stage=""):
+ mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
+ print("{}: {}".format(stage, mem/1024))
+
+class GeneralTrait(object):
"""
Trait class defines a trait in webqtl, can be either Microarray,
Published phenotype, genotype, or user input trait
"""
- def __init__(self, **kw):
- print("in GeneralTrait")
- self.dataset = kw.get('dataset') # database name
+ def __init__(self, get_qtl_info=False, **kw):
+ # xor assertion
+ assert bool(kw.get('dataset')) != bool(kw.get('dataset_name')), "Needs dataset ob. xor name";
+ if kw.get('dataset_name'):
+ self.dataset = create_dataset(kw.get('dataset_name'))
+ else:
+ self.dataset = kw.get('dataset')
self.name = kw.get('name') # Trait ID, ProbeSet ID, Published ID, etc.
self.cellid = kw.get('cellid')
self.identification = kw.get('identification', 'un-named trait')
self.haveinfo = kw.get('haveinfo', False)
self.sequence = kw.get('sequence') # Blat sequence, available for ProbeSet
self.data = kw.get('data', {})
+
+ # Sets defaultst
+ self.locus = None
+ self.lrs = None
+ self.pvalue = None
+ self.mean = None
+ self.num_overlap = None
+
if kw.get('fullname'):
name2 = value.split("::")
@@ -39,13 +57,12 @@ class GeneralTrait:
# self.cellid is set to None above
elif len(name2) == 3:
self.dataset, self.name, self.cellid = name2
-
- self.dataset = create_dataset(self.dataset)
# Todo: These two lines are necessary most of the time, but perhaps not all of the time
# So we could add a simple if statement to short-circuit this if necessary
- self.retrieve_info()
+ self.retrieve_info(get_qtl_info=get_qtl_info)
self.retrieve_sample_data()
+
def get_name(self):
@@ -78,7 +95,7 @@ class GeneralTrait:
#desc = self.handle_pca(desc)
stringy = desc
return stringy
-
+
def display_name(self):
@@ -208,7 +225,7 @@ class GeneralTrait:
# ''' % (self.cellid, self.name, self.dataset.name)
#
#else:
- results = self.dataset.retrieve_sample_data(self)
+ results = self.dataset.retrieve_sample_data(self.name)
# Todo: is this necessary? If not remove
self.data.clear()
@@ -229,7 +246,7 @@ class GeneralTrait:
#def items(self):
# return self.__dict__.items()
- def retrieve_info(self, QTL=False):
+ def retrieve_info(self, get_qtl_info=False):
assert self.dataset, "Dataset doesn't exist"
if self.dataset.type == 'Publish':
query = """
@@ -269,7 +286,7 @@ class GeneralTrait:
escape(self.dataset.name),
escape(self.name))
traitInfo = g.db.execute(query).fetchone()
- print("traitInfo is: ", pf(traitInfo))
+ #print("traitInfo is: ", pf(traitInfo))
#XZ, 05/08/2009: We also should use Geno.Id to find marker instead of just using Geno.Name
# to avoid the problem of same marker name from different species.
elif self.dataset.type == 'Geno':
@@ -287,7 +304,7 @@ class GeneralTrait:
escape(self.dataset.name),
escape(self.name))
traitInfo = g.db.execute(query).fetchone()
- print("traitInfo is: ", pf(traitInfo))
+ #print("traitInfo is: ", pf(traitInfo))
else: #Temp type
query = """SELECT %s FROM %s WHERE Name = %s
""" % (string.join(self.dataset.display_fields,','),
@@ -314,32 +331,32 @@ class GeneralTrait:
#XZ, 05/26/2010: From time to time, this query get error message because some geneid values in database are not number.
#XZ: So I have to test if geneid is number before execute the query.
#XZ: The geneid values in database should be cleaned up.
- try:
- junk = float(self.geneid)
- geneidIsNumber = 1
- except:
- geneidIsNumber = 0
-
- if geneidIsNumber:
- query = """
- SELECT
- HomologeneId
- FROM
- Homologene, Species, InbredSet
- WHERE
- Homologene.GeneId =%s AND
- InbredSet.Name = '%s' AND
- InbredSet.SpeciesId = Species.Id AND
- Species.TaxonomyId = Homologene.TaxonomyId
- """ % (escape(str(self.geneid)), escape(self.dataset.group.name))
- result = g.db.execute(query).fetchone()
- else:
- result = None
+ #try:
+ # float(self.geneid)
+ # geneidIsNumber = True
+ #except ValueError:
+ # geneidIsNumber = False
+
+ #if geneidIsNumber:
+ query = """
+ SELECT
+ HomologeneId
+ FROM
+ Homologene, Species, InbredSet
+ WHERE
+ Homologene.GeneId =%s AND
+ InbredSet.Name = '%s' AND
+ InbredSet.SpeciesId = Species.Id AND
+ Species.TaxonomyId = Homologene.TaxonomyId
+ """ % (escape(str(self.geneid)), escape(self.dataset.group.name))
+ result = g.db.execute(query).fetchone()
+ #else:
+ # result = None
if result:
self.homologeneid = result[0]
- if QTL:
+ if get_qtl_info:
if self.dataset.type == 'ProbeSet' and not self.cellid:
traitQTL = g.db.execute("""
SELECT
@@ -355,8 +372,17 @@ class GeneralTrait:
#traitQTL = self.cursor.fetchone()
if traitQTL:
self.locus, self.lrs, self.pvalue, self.mean = traitQTL
+ if self.locus:
+ result = g.db.execute("""
+ select Geno.Chr, Geno.Mb from Geno, Species
+ where Species.Name = '%s' and
+ Geno.Name = '%s' and
+ Geno.SpeciesId = Species.Id
+ """, (species, self.locus)).fetchone()
+ self.locus_chr = result[0]
+ self.locus_mb = result[1]
else:
- self.locus = self.lrs = self.pvalue = self.mean = ""
+ self.locus = self.locus_chr = self.locus_mb = self.lrs = self.pvalue = self.mean = ""
if self.dataset.type == 'Publish':
traitQTL = g.db.execute("""
SELECT
diff --git a/wqflask/base/webqtlConfig.py b/wqflask/base/webqtlConfig.py
index 755595e0..49afb631 100755
--- a/wqflask/base/webqtlConfig.py
+++ b/wqflask/base/webqtlConfig.py
@@ -52,19 +52,22 @@ ENSEMBLETRANSCRIPT_URL="http://useast.ensembl.org/Mus_musculus/Lucene/Details?sp
SECUREDIR = GNROOT + 'secure/'
COMMON_LIB = GNROOT + 'support/admin'
HTMLPATH = GNROOT + 'web/'
+PYLMM_PATH = HTMLPATH + 'plink/'
+SNP_PATH = '/mnt/xvdf1/snps/'
IMGDIR = HTMLPATH +'image/'
IMAGESPATH = HTMLPATH + 'images/'
UPLOADPATH = IMAGESPATH + 'upload/'
-TMPDIR = '/tmp/'
+TMPDIR = HTMLPATH + 'tmp/'
GENODIR = HTMLPATH + 'genotypes/'
+NEWGENODIR = HTMLPATH + 'new_genotypes/'
GENO_ARCHIVE_DIR = GENODIR + 'archive/'
TEXTDIR = HTMLPATH + 'ProbeSetFreeze_DataMatrix/'
CMDLINEDIR = HTMLPATH + 'webqtl/cmdLine/'
ChangableHtmlPath = GNROOT + 'web/'
SITENAME = 'GN'
-PORTADDR = "http://132.192.47.32"
-BASEHREF = '<base href="http://132.192.47.32/">'
+PORTADDR = "http://50.16.251.170"
+BASEHREF = '<base href="http://50.16.251.170/">'
INFOPAGEHREF = '/dbdoc/%s.html'
GLOSSARYFILE = "/glossary.html"
CGIDIR = '/webqtl/' #XZ: The variable name 'CGIDIR' should be changed to 'PYTHONDIR'
diff --git a/wqflask/base/webqtlConfigLocal.py b/wqflask/base/webqtlConfigLocal.py
index 84686234..abaeff93 100755
--- a/wqflask/base/webqtlConfigLocal.py
+++ b/wqflask/base/webqtlConfigLocal.py
@@ -2,18 +2,18 @@
# Environment Variables - private
#########################################
-MYSQL_SERVER = 'localhost'
-DB_NAME = 'db_webqtl_zas1024'
+MYSQL_SERVER = 'gn.cazhbciu2y1i.us-east-1.rds.amazonaws.com'
+DB_NAME = 'db_webqtl'
DB_USER = 'webqtl'
-DB_PASSWD = 'webqtl'
+DB_PASSWD = 'f2ZypIflRM'
-MYSQL_UPDSERVER = 'localhost'
-DB_UPDNAME = 'db_webqtl_zas1024'
+MYSQL_UPDSERVER = 'gn.cazhbciu2y1i.us-east-1.rds.amazonaws.com'
+DB_UPDNAME = 'db_webqtl'
DB_UPDUSER = 'webqtl'
-DB_UPDPASSWD = 'webqtl'
+DB_UPDPASSWD = 'f2ZypIflRM'
-GNROOT = '/home/zas1024/gn/'
-ROOT_URL = 'http://alexandria.uthsc.edu:91/'
+GNROOT = '/home/zas1024/gene/'
+ROOT_URL = 'http://50.16.251.170'
PythonPath = '/usr/bin/python'
PIDDLE_FONT_PATH = '/usr/lib/python2.4/site-packages/piddle/truetypefonts/'
diff --git a/wqflask/cfg/default_settings.py b/wqflask/cfg/default_settings.py
index 1811ccfd..d0713e4d 100644
--- a/wqflask/cfg/default_settings.py
+++ b/wqflask/cfg/default_settings.py
@@ -1,5 +1,13 @@
LOGFILE = """/tmp/flask_gn_log"""
+SERVER_PORT = 5000
+
#This is needed because Flask turns key errors into a
#400 bad request response with no exception/log
TRAP_BAD_REQUEST_ERRORS = True
+
+# http://pythonhosted.org/Flask-Security/configuration.html
+SECURITY_CONFIRMABLE = True
+SECURITY_TRACKABLE = True
+SECURITY_REGISTERABLE = True
+SECURITY_RECOVERABLE = True
diff --git a/wqflask/cfg/zach_settings.py b/wqflask/cfg/zach_settings.py
deleted file mode 100644
index 8d3bf4ab..00000000
--- a/wqflask/cfg/zach_settings.py
+++ /dev/null
@@ -1,5 +0,0 @@
-LOGFILE = """/tmp/flask_gn_log"""
-
-TRAP_BAD_REQUEST_ERRORS = True
-
-DB_URI = """mysql://webqtl:webqtl@localhost/db_webqtl_zas1024""" \ No newline at end of file
diff --git a/wqflask/maintenance/generate_probesetfreeze_file.py b/wqflask/maintenance/generate_probesetfreeze_file.py
new file mode 100644
index 00000000..91a2b8a1
--- /dev/null
+++ b/wqflask/maintenance/generate_probesetfreeze_file.py
@@ -0,0 +1,123 @@
+#!/usr/bin/python
+
+from __future__ import absolute_import, print_function, division
+
+import sys
+
+sys.path.insert(0, "..")
+
+import os
+import collections
+import csv
+
+import MySQLdb
+
+from base import webqtlConfig
+
+from pprint import pformat as pf
+
+
+def get_cursor():
+ con = MySQLdb.Connect(db=webqtlConfig.DB_UPDNAME,
+ host=webqtlConfig.MYSQL_UPDSERVER,
+ user=webqtlConfig.DB_UPDUSER,
+ passwd=webqtlConfig.DB_UPDPASSWD)
+ cursor = con.cursor()
+ return cursor
+
+def show_progress(process, counter):
+ if counter % 1000 == 0:
+ print("{}: {}".format(process, counter))
+
+def get_strains(cursor):
+ cursor.execute("""select Strain.Name
+ from Strain, StrainXRef, InbredSet
+ where Strain.Id = StrainXRef.StrainId and
+ StrainXRef.InbredSetId = InbredSet.Id
+ and InbredSet.Name=%s;
+ """, "BXD")
+
+ strains = [strain[0] for strain in cursor.fetchall()]
+ print("strains:", pf(strains))
+ for strain in strains:
+ print(" -", strain)
+
+ return strains
+
+def get_probeset_vals(cursor, dataset_name):
+ cursor.execute(""" select ProbeSet.Id, ProbeSet.Name
+ from ProbeSetXRef,
+ ProbeSetFreeze,
+ ProbeSet
+ where ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and
+ ProbeSetFreeze.Name = %s and
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id;
+ """, dataset_name)
+
+ probesets = cursor.fetchall()
+
+ print("Fetched probesets")
+
+ probeset_vals = collections.OrderedDict()
+
+ for counter, probeset in enumerate(probesets):
+ cursor.execute(""" select Strain.Name, ProbeSetData.value
+ from ProbeSetData, ProbeSetXRef, ProbeSetFreeze, Strain
+ where ProbeSetData.Id = ProbeSetXRef.DataId
+ and ProbeSetData.StrainId = Strain.Id
+ and ProbeSetXRef.ProbeSetId = %s
+ and ProbeSetFreeze.Id = ProbeSetXRef.ProbeSetFreezeId
+ and ProbeSetFreeze.Name = %s;
+ """, (probeset[0], dataset_name))
+ val_dic = collections.OrderedDict()
+ vals = cursor.fetchall()
+ for val in vals:
+ val_dic[val[0]] = val[1]
+
+ probeset_vals[probeset[1]] = val_dic
+ show_progress("Querying DB", counter)
+
+ return probeset_vals
+
+def trim_strains(strains, probeset_vals):
+ trimmed_strains = []
+ #print("probeset_vals is:", pf(probeset_vals))
+ first_probeset = list(probeset_vals.itervalues())[0]
+ print("\n**** first_probeset is:", pf(first_probeset))
+ for strain in strains:
+ print("\n**** strain is:", pf(strain))
+ if strain in first_probeset:
+ trimmed_strains.append(strain)
+ print("trimmed_strains:", pf(trimmed_strains))
+ return trimmed_strains
+
+def write_data_matrix_file(strains, probeset_vals, filename):
+ with open(filename, "wb") as fh:
+ csv_writer = csv.writer(fh, delimiter=",", quoting=csv.QUOTE_ALL)
+ #print("strains is:", pf(strains))
+ csv_writer.writerow(['ID'] + strains)
+ for counter, probeset in enumerate(probeset_vals):
+ row_data = [probeset]
+ for strain in strains:
+ #print("probeset is: ", pf(probeset_vals[probeset]))
+ row_data.append(probeset_vals[probeset][strain])
+ #print("row_data is: ", pf(row_data))
+ csv_writer.writerow(row_data)
+ show_progress("Writing", counter)
+
+def main():
+ filename = os.path.expanduser("~/gene/wqflask/maintenance/" +
+ "ProbeSetFreezeId_210_FullName_Eye_AXBXA_Illumina_V6.2" +
+ "(Oct08)_RankInv_Beta.txt")
+ dataset_name = "Eye_AXBXA_1008_RankInv"
+
+ cursor = get_cursor()
+ strains = get_strains(cursor)
+ print("Getting probset_vals")
+ probeset_vals = get_probeset_vals(cursor, dataset_name)
+ print("Finished getting probeset_vals")
+ trimmed_strains = trim_strains(strains, probeset_vals)
+ write_data_matrix_file(trimmed_strains, probeset_vals, filename)
+
+if __name__ == '__main__':
+ main()
diff --git a/wqflask/maintenance/quick_search_table.py b/wqflask/maintenance/quick_search_table.py
new file mode 100644
index 00000000..046a05c4
--- /dev/null
+++ b/wqflask/maintenance/quick_search_table.py
@@ -0,0 +1,484 @@
+from __future__ import print_function, division, absolute_import
+
+"""
+Results will be returned for each of several trait types: mRNA assays, phenotypes, genotypes, and
+(maybe later) genes
+
+For each trait type, the results for each species should be given; for example, have a "Mouse" tab
+with the mouse traits in a table inside it
+
+This table will then list each trait, its dataset, and several columns determined by its trait type
+(phenotype, genotype, etc)
+
+"""
+
+
+import sys
+sys.path.append("../../..")
+
+import simplejson as json
+
+import sqlalchemy as sa
+from sqlalchemy.dialects import mysql
+from sqlalchemy.orm import scoped_session, sessionmaker, relationship, backref
+from sqlalchemy.orm.exc import NoResultFound
+from sqlalchemy.ext.declarative import declarative_base
+
+from pprint import pformat as pf
+
+import zach_settings as settings
+
+Engine = sa.create_engine(settings.SQLALCHEMY_DATABASE_URI,
+ #encoding='utf-8',
+ #client_encoding='utf-8',
+ #echo="debug",
+ )
+
+Session = scoped_session(sessionmaker(bind=Engine)) #, extension=VersionedListener()))
+
+Base = declarative_base(bind=Engine)
+Metadata = sa.MetaData()
+Metadata.bind = Engine
+
+class PublishXRef(Base):
+ __tablename__ = 'PublishXRef'
+
+ Id = sa.Column(sa.Integer, primary_key=True)
+ InbredSetId = sa.Column(sa.Integer, primary_key=True)
+ PhenotypeId = sa.Column(sa.Integer)
+ PublicationId = sa.Column(sa.Integer)
+ DataId = sa.Column(sa.Integer)
+ Locus = sa.Column(sa.Text)
+ LRS = sa.Column(sa.Float)
+ additive = sa.Column(sa.Float)
+ Sequence = sa.Column(sa.Integer)
+ comments = sa.Column(sa.Text)
+
+ @classmethod
+ def run(cls):
+ conn = Engine.connect()
+ counter = 0
+ for ps in page_query(Session.query(cls)): #all()
+ values = {}
+ values['table_name'] = cls.__tablename__
+ values['the_key'] = json.dumps([ps.Id, ps.InbredSetId])
+ values['terms'] = cls.get_unique_terms(ps.Id, ps.InbredSetId)
+ print("terms is:", values['terms'])
+ values['result_fields'] = cls.get_result_fields(ps.Id, ps.InbredSetId)
+ ins = QuickSearch.insert().values(**values)
+ conn.execute(ins)
+ counter += 1
+ print("Done:", counter)
+
+ @staticmethod
+ def get_unique_terms(publishxref_id, inbredset_id):
+ results = Session.query(
+ "pre_publication_description",
+ "post_publication_description",
+ "pre_publication_abbreviation",
+ "post_publication_abbreviation",
+ "publication_title"
+ ).from_statement(
+ "SELECT Phenotype.Pre_publication_description as pre_publication_description, "
+ "Phenotype.Post_publication_description as post_publication_description, "
+ "Phenotype.Pre_publication_abbreviation as pre_publication_abbreviation, "
+ "Phenotype.Post_publication_abbreviation as post_publication_abbreviation, "
+ "Publication.Title as publication_title "
+ "FROM Phenotype, Publication, PublishXRef "
+ "WHERE PublishXRef.Id = :publishxref_id and "
+ "PublishXRef.InbredSetId = :inbredset_id and "
+ "PublishXRef.PhenotypeId = Phenotype.Id and "
+ "PublishXRef.PublicationId = Publication.Id ").params(publishxref_id=publishxref_id,
+ inbredset_id=inbredset_id).all()
+
+ unique = set()
+ for item in results[0]:
+ #print("locals:", locals())
+ if not item:
+ continue
+ for token in item.split():
+ if token.startswith(('(','[')):
+ token = token[1:]
+ if token.endswith((')', ']')):
+ token = token[:-1]
+ if token.endswith(';'):
+ token = token[:-1]
+ if len(token) > 2:
+ try:
+ # This hopefully ensures that the token is utf-8
+ token = token.encode('utf-8')
+ print(" ->", token)
+ except UnicodeDecodeError:
+ print("\n-- UDE \n")
+ # Can't get it into utf-8, we won't use it
+ continue
+
+ unique.add(token)
+ #print("\nUnique terms are: {}\n".format(unique))
+ return " ".join(unique)
+
+ @staticmethod
+ def get_result_fields(publishxref_id, inbredset_id):
+ results = Session.query(
+ "phenotype_id",
+ "species",
+ "group_name",
+ "description",
+ "lrs",
+ "publication_id",
+ "pubmed_id",
+ "year",
+ "authors"
+ ).from_statement(
+ "SELECT PublishXRef.PhenotypeId as phenotype_id, "
+ "Species.Name as species, "
+ "InbredSet.Name as group_name, "
+ "Phenotype.Original_description as description, "
+ "PublishXRef.LRS as lrs, "
+ "PublishXRef.PublicationId as publication_id, "
+ "Publication.PubMed_ID"
+ "Publication.Year as year, "
+ "Publication.Authors as authors "
+ "FROM PublishXRef, "
+ "Phenotype, "
+ "Publication, "
+ "InbredSet, "
+ "Species "
+ "WHERE PublishXRef.Id = :publishxref_id and "
+ "PublishXRef.InbredSetId = :inbredset_id and "
+ "PublishXRef.PhenotypeId = Phenotype.Id and "
+ "PublishXRef.PublicationId = Publication.Id and "
+ "InbredSet.Id = :inbredset_id and "
+ "Species.Id = InbredSet.SpeciesId ").params(publishxref_id=publishxref_id,
+ inbredset_id=inbredset_id).all()
+ #"InbredSet.SpeciesId = Species.Id and "
+ #"Geno.SpeciesId = Species.Id and "
+ #"Geno.Name = PublishXRef.Locus ").params(publishxref_id=publishxref_id,
+ # inbredset_id=inbredset_id).all()
+ #for result in results:
+ # print("****", result)
+
+ assert len(set(result for result in results)) == 1, "Different results or no results"
+
+ #print("results are:", results)
+ result = results[0]
+ result = row2dict(result)
+ try:
+ json_results = json.dumps(result, sort_keys=True)
+ except UnicodeDecodeError:
+ print("\n\nTrying to massage unicode\n\n")
+ for key, value in result.iteritems():
+ print("\tkey is:", key)
+ print("\tvalue is:", value)
+ if isinstance(value, basestring):
+ result[key] = value.decode('utf-8', errors='ignore')
+ json_results = json.dumps(result, sort_keys=True)
+
+ return json_results
+
+class GenoXRef(Base):
+ __tablename__ = 'GenoXRef'
+
+ GenoFreezeId = sa.Column(sa.Integer, primary_key=True)
+ GenoId = sa.Column(sa.Integer, primary_key=True)
+ DataId = sa.Column(sa.Integer)
+ cM = sa.Column(sa.Float)
+ Used_for_mapping = sa.Column(sa.Text)
+
+ @classmethod
+ def run(cls):
+ conn = Engine.connect()
+ counter = 0
+ for item in page_query(Session.query(cls)): #all()
+ values = {}
+ values['table_name'] = cls.__tablename__
+ values['the_key'] = json.dumps([item.GenoId, item.GenoFreezeId])
+ values['terms'] = cls.get_unique_terms(item.GenoId)
+ print("terms is:", values['terms'])
+ if values['terms']:
+ values['result_fields'] = cls.get_result_fields(item.GenoId, item.GenoFreezeId)
+ ins = QuickSearch.insert().values(**values)
+ conn.execute(ins)
+ counter += 1
+ print("Done:", counter)
+
+ @staticmethod
+ def get_unique_terms(geno_id):
+ print("geno_id: ", geno_id)
+ results = Session.query(
+ "name",
+ "marker_name"
+ ).from_statement(
+ "SELECT Geno.Name as name, "
+ "Geno.Marker_Name as marker_name "
+ "FROM Geno "
+ "WHERE Geno.Id = :geno_id ").params(geno_id=geno_id).all()
+
+ #print("results: ", pf(results))
+
+ unique = set()
+ if len(results):
+ for item in results[0]:
+ #print("locals:", locals())
+ if not item:
+ continue
+ for token in item.split():
+ if len(token) > 2:
+ try:
+ # This hopefully ensures that the token is utf-8
+ token = token.encode('utf-8')
+ print(" ->", token)
+ except UnicodeDecodeError:
+ print("\n-- UDE \n")
+ # Can't get it into utf-8, we won't use it
+ continue
+
+ unique.add(token)
+ #print("\nUnique terms are: {}\n".format(unique))
+ return " ".join(unique)
+
+
+ @staticmethod
+ def get_result_fields(geno_id, dataset_id):
+ results = Session.query(
+ "name",
+ "marker_name",
+ "group_name",
+ "species",
+ "dataset",
+ "dataset_name",
+ "chr", "mb",
+ "source"
+ ).from_statement(
+ "SELECT Geno.Name as name, "
+ "Geno.Marker_Name as marker_name, "
+ "InbredSet.Name as group_name, "
+ "Species.Name as species, "
+ "GenoFreeze.Name as dataset, "
+ "GenoFreeze.FullName as dataset_name, "
+ "Geno.Chr as chr, "
+ "Geno.Mb as mb, "
+ "Geno.Source as source "
+ "FROM Geno, "
+ "GenoXRef, "
+ "GenoFreeze, "
+ "InbredSet, "
+ "Species "
+ "WHERE Geno.Id = :geno_id and "
+ "GenoXRef.GenoId = Geno.Id and "
+ "GenoFreeze.Id = :dataset_id and "
+ "GenoXRef.GenoFreezeId = GenoFreeze.Id and "
+ "InbredSet.Id = GenoFreeze.InbredSetId and "
+ "InbredSet.SpeciesId = Species.Id ").params(geno_id=geno_id,
+ dataset_id=dataset_id).all()
+ #for result in results:
+ # print(result)
+ assert len(set(result for result in results)) == 1, "Different results"
+
+ #print("results are:", results)
+ result = results[0]
+ result = row2dict(result)
+ try:
+ json_results = json.dumps(result, sort_keys=True)
+ except UnicodeDecodeError:
+ print("\n\nTrying to massage unicode\n\n")
+ for key, value in result.iteritems():
+ print("\tkey is:", key)
+ print("\tvalue is:", value)
+ if isinstance(value, basestring):
+ result[key] = value.decode('utf-8', errors='ignore')
+ json_results = json.dumps(result, sort_keys=True)
+
+ return json_results
+
+class ProbeSetXRef(Base):
+ __tablename__ = 'ProbeSetXRef'
+
+ ProbeSetFreezeId = sa.Column(sa.Integer, primary_key=True)
+ ProbeSetId = sa.Column(sa.Integer, primary_key=True)
+ DataId = sa.Column(sa.Integer, unique=True)
+ Locus_old = sa.Column(sa.Text)
+ LRS_old = sa.Column(sa.Float)
+ pValue_old = sa.Column(sa.Float)
+ mean = sa.Column(sa.Float)
+ se = sa.Column(sa.Float)
+ Locus = sa.Column(sa.Text)
+ LRS = sa.Column(sa.Float)
+ pValue = sa.Column(sa.Float)
+ additive = sa.Column(sa.Float)
+ h2 = sa.Column(sa.Float)
+
+ @classmethod
+ def run(cls):
+ conn = Engine.connect()
+ counter = 0
+ for ps in page_query(Session.query(cls)): #all()
+ values = {}
+ values['table_name'] = cls.__tablename__
+ values['the_key'] = json.dumps([ps.ProbeSetId, ps.ProbeSetFreezeId])
+ values['terms'] = cls.get_unique_terms(ps.ProbeSetId)
+ print("terms is:", values['terms'])
+ #values['species'] = get_species("ProbeSet", ps.Id)
+ values['result_fields'] = cls.get_result_fields(ps.ProbeSetId, ps.ProbeSetFreezeId)
+ if values['result_fields'] == None:
+ continue
+ ins = QuickSearch.insert().values(**values)
+ conn.execute(ins)
+ counter += 1
+ print("Done:", counter)
+
+ @staticmethod
+ def get_unique_terms(probeset_id):
+ results = Session.query(
+ "name",
+ "symbol",
+ "description",
+ "alias"
+ ).from_statement(
+ "SELECT ProbeSet.Name as name, "
+ "ProbeSet.Symbol as symbol, "
+ "ProbeSet.description as description, "
+ "ProbeSet.alias as alias "
+ "FROM ProbeSet "
+ "WHERE ProbeSet.Id = :probeset_id ").params(probeset_id=probeset_id).all()
+
+ unique = set()
+ if len(results):
+ for item in results[0]:
+ #print("locals:", locals())
+ if not item:
+ continue
+ for token in item.split():
+ if token.startswith(('(','[')):
+ token = token[1:]
+ if token.endswith((')', ']')):
+ token = token[:-1]
+ if token.endswith(';'):
+ token = token[:-1]
+ if len(token) > 2:
+ try:
+ # This hopefully ensures that the token is utf-8
+ token = token.encode('utf-8')
+ print(" ->", token)
+ except UnicodeDecodeError:
+ print("\n-- UDE \n")
+ # Can't get it into utf-8, we won't use it
+ continue
+
+ unique.add(token)
+ #print("\nUnique terms are: {}\n".format(unique))
+ return " ".join(unique)
+
+
+ @staticmethod
+ def get_result_fields(probeset_id, dataset_id):
+ print("probeset_id: ", probeset_id)
+ print("dataset_id: ", dataset_id)
+ results = Session.query(
+ "name",
+ "species",
+ "group_name",
+ "dataset",
+ "dataset_name",
+ "symbol",
+ "description",
+ "chr", "mb",
+ "lrs", "mean",
+ "genbank_id",
+ "gene_id",
+ "chip_id",
+ "chip_name"
+ ).from_statement(
+ "SELECT ProbeSet.Name as name, "
+ "Species.Name as species, "
+ "InbredSet.Name as group_name, "
+ "ProbeSetFreeze.Name as dataset, "
+ "ProbeSetFreeze.FullName as dataset_name, "
+ "ProbeSet.Symbol as symbol, "
+ "ProbeSet.description as description, "
+ "ProbeSet.Chr as chr, "
+ "ProbeSet.Mb as mb, "
+ "ProbeSetXRef.LRS as lrs, "
+ "ProbeSetXRef.mean as mean, "
+ "ProbeSet.GenbankId as genbank_id, "
+ "ProbeSet.GeneId as gene_id, "
+ "ProbeSet.ChipId as chip_id, "
+ "GeneChip.Name as chip_name "
+ "FROM ProbeSet, "
+ "ProbeSetXRef, "
+ "ProbeSetFreeze, "
+ "ProbeFreeze, "
+ "InbredSet, "
+ "Species, "
+ "GeneChip "
+ "WHERE ProbeSetXRef.ProbeSetId = :probeset_id and "
+ "ProbeSetXRef.ProbeSetFreezeId = :dataset_id and "
+ "ProbeSetXRef.ProbeSetId = ProbeSet.Id and "
+ "ProbeSet.ChipId = GeneChip.Id and "
+ "ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and "
+ "ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and "
+ "ProbeFreeze.InbredSetId = InbredSet.Id and "
+ "InbredSet.SpeciesId = Species.Id ").params(probeset_id=probeset_id,
+ dataset_id=dataset_id).all()
+ #for result in results:
+ # print("-", result)
+
+ if len(set(result for result in results)) != 1:
+ return None
+ #assert len(set(result for result in results)) == 1, "Different results"
+
+ #print("results are:", results)
+ result = results[0]
+ result = row2dict(result)
+ try:
+ json_results = json.dumps(result, sort_keys=True)
+ except UnicodeDecodeError:
+ print("\n\nTrying to massage unicode\n\n")
+ for key, value in result.iteritems():
+ print("\tkey is:", key)
+ print("\tvalue is:", value)
+ if isinstance(value, basestring):
+ result[key] = value.decode('utf-8', errors='ignore')
+ json_results = json.dumps(result, sort_keys=True)
+
+ return json_results
+
+
+QuickSearch = sa.Table("QuickSearch", Metadata,
+ sa.Column('table_name', sa.String(15),
+ primary_key=True, nullable=False, autoincrement=False), # table that item is inserted from
+ sa.Column('the_key', sa.String(30),
+ primary_key=True, nullable=False, autoincrement=False), # key in database table
+ sa.Column('terms', sa.Text), # terms to compare search string with
+ sa.Column('result_fields', sa.Text) # json
+ )
+
+QuickSearch.drop(Engine, checkfirst=True)
+Metadata.create_all(Engine)
+
+
+def row2dict(row):
+ """http://stackoverflow.com/a/2848519/1175849"""
+ return dict(zip(row.keys(), row))
+
+
+def page_query(q):
+ """http://stackoverflow.com/a/1217947/1175849"""
+ offset = 0
+ while True:
+ r = False
+ for elem in q.limit(1000).offset(offset):
+ r = True
+ yield elem
+ offset += 1000
+ if not r:
+ break
+
+
+def main():
+ ProbeSetXRef.run()
+ GenoXRef.run()
+ PublishXRef.run()
+
+if __name__ == "__main__":
+ main() \ No newline at end of file
diff --git a/wqflask/other_config/nginx.conf b/wqflask/other_config/nginx-old.conf
index 65ee768c..65ee768c 100644
--- a/wqflask/other_config/nginx.conf
+++ b/wqflask/other_config/nginx-old.conf
diff --git a/wqflask/other_config/wqflask-nginx.conf b/wqflask/other_config/wqflask-nginx.conf
new file mode 100644
index 00000000..4e6fd0d9
--- /dev/null
+++ b/wqflask/other_config/wqflask-nginx.conf
@@ -0,0 +1,83 @@
+server {
+ # Modeled after http://flask.pocoo.org/docs/deploying/wsgi-standalone/
+ listen 80;
+
+ server_name gn2python.genenetwork.org;
+
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log;
+
+ location ^~ /css/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ location ^~ /javascript/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+# location ^~ /image/ {
+# root /gene/wqflask/wqflask/static/;
+# }
+
+ location ^~ /images/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ ### New - added by Sam
+ #location ^~ /static/ {
+ # root /gene/wqflask/wqflask/static/;
+ #}
+
+ location / {
+ proxy_pass http://127.0.0.1:5000/;
+ proxy_redirect off;
+
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+ proxy_read_timeout 40m;
+ }
+}
+
+server {
+ # Modeled after http://flask.pocoo.org/docs/deploying/wsgi-standalone/
+ listen 80;
+
+ server_name gn2python_lei.genenetwork.org;
+
+ access_log /var/log/nginx/lei_access.log;
+ error_log /var/log/nginx/lei_error.log;
+
+ location ^~ /css/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ location ^~ /javascript/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+# location ^~ /image/ {
+# root /gene/wqflask/wqflask/static/;
+# }
+
+ location ^~ /images/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ ### New - added by Sam
+ #location ^~ /static/ {
+ # root /gene/wqflask/wqflask/static/;
+ #}
+
+ location / {
+ proxy_pass http://127.0.0.1:5001/;
+ proxy_redirect off;
+
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+ proxy_read_timeout 40m;
+ }
+}
diff --git a/wqflask/requirements.txt b/wqflask/requirements.txt
index ee36bb84..4449c0e7 100644
--- a/wqflask/requirements.txt
+++ b/wqflask/requirements.txt
@@ -3,20 +3,12 @@ Jinja2==2.6
#MySQL-python==1.2.3
Piddle==0.1-dev
PyYAML==3.10
-#Reaper==1.0
SQLAlchemy==0.7.9
Werkzeug==0.8.3
-ipython==0.13.1
logging-tree==1.1
-logilab-astng==0.24.1
-logilab-common==0.58.3
-mercurial==2.4.2
nose==1.2.1
-numarray==1.5.2
numpy==1.6.2
pp==1.6.3
-pylint==0.26.0
-readline==6.2.4.1
requests==0.13.3
rpy2==2.3.1
scipy==0.11.0
diff --git a/wqflask/runserver.py b/wqflask/runserver.py
index 2a75faeb..1cf38f8e 100644
--- a/wqflask/runserver.py
+++ b/wqflask/runserver.py
@@ -29,4 +29,5 @@ logging_tree.printout()
app.run(host='0.0.0.0',
use_debugger=False,
+ threaded=True,
use_reloader=True)
diff --git a/wqflask/secure_server.py b/wqflask/secure_server.py
new file mode 100644
index 00000000..5448dbeb
--- /dev/null
+++ b/wqflask/secure_server.py
@@ -0,0 +1,67 @@
+from __future__ import print_function, division, absolute_import
+
+from wqflask import app
+
+from flask import Flask, render_template
+from flask.ext.sqlalchemy import SQLAlchemy
+from flask.ext.security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin
+
+
+# Create database connection object
+db = SQLAlchemy(app)
+
+# Define models
+roles_users = db.Table('roles_users',
+ db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
+ db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))
+
+class Role(db.Model, RoleMixin):
+ id = db.Column(db.Integer(), primary_key=True)
+ name = db.Column(db.String(80), unique=True)
+ description = db.Column(db.String(255))
+
+class User(db.Model, UserMixin):
+ id = db.Column(db.Integer(), primary_key=True)
+ email = db.Column(db.String(255), unique=True)
+ password = db.Column(db.String(255))
+ active = db.Column(db.Boolean())
+ confirmed_at = db.Column(db.DateTime())
+
+ last_login_at = db.Column(db.DateTime())
+ current_login_at = db.Column(db.DateTime())
+ last_login_ip_= db.Column(db.String(39))
+ current_login_ip = db.Column(db.String(39))
+ login_count = db.Column(db.Integer())
+
+ roles = db.relationship('Role', secondary=roles_users,
+ backref=db.backref('users', lazy='dynamic'))
+
+# Setup Flask-Security
+user_datastore = SQLAlchemyUserDatastore(db, User, Role)
+security = Security(app, user_datastore)
+
+# Create a user to test with
+##@app.before_first_request
+#def create_user():
+# db.create_all()
+# user_datastore.create_user(email='matt@example.com', password='notebook')
+# db.session.commit()
+
+
+import logging
+file_handler = logging.FileHandler(app.config['LOGFILE'])
+file_handler.setLevel(logging.DEBUG)
+app.logger.addHandler(file_handler)
+
+import logging_tree
+logging_tree.printout()
+
+#print("app.config is:", app.config)
+
+if __name__ == '__main__':
+ #create_user()
+ app.run(host='0.0.0.0',
+ port=app.config['SERVER_PORT'],
+ use_debugger=False,
+ threaded=True,
+ use_reloader=True)
diff --git a/wqflask/utility/benchmark.py b/wqflask/utility/benchmark.py
new file mode 100644
index 00000000..182187ae
--- /dev/null
+++ b/wqflask/utility/benchmark.py
@@ -0,0 +1,45 @@
+from __future__ import print_function, division, absolute_import
+
+import collections
+import inspect
+import time
+
+
+class Bench(object):
+ entries = collections.OrderedDict()
+
+ def __init__(self, name=None):
+ self.name = name
+
+ def __enter__(self):
+ if self.name:
+ print("Starting benchmark: %s" % (self.name))
+ else:
+ print("Starting benchmark at: %s [%i]" % (inspect.stack()[1][3], inspect.stack()[1][2]))
+ self.start_time = time.time()
+
+ def __exit__(self, type, value, traceback):
+ if self.name:
+ name = self.name
+ else:
+ name = "That"
+
+ time_taken = time.time() - self.start_time
+ print(" %s took: %f seconds" % (name, (time_taken)))
+
+ if self.name:
+ Bench.entries[self.name] = Bench.entries.get(self.name, 0) + time_taken
+
+
+ @classmethod
+ def report(cls):
+ total_time = sum((time_taken for time_taken in cls.entries.itervalues()))
+ print("\nTiming report\n")
+ for name, time_taken in cls.entries.iteritems():
+ percent = int(round((time_taken/total_time) * 100))
+ print("[{}%] {}: {}".format(percent, name, time_taken))
+ print()
+
+ def reset(cls):
+ """Reset the entries"""
+ cls.entries = collections.OrderedDict() \ No newline at end of file
diff --git a/wqflask/utility/helper_functions.py b/wqflask/utility/helper_functions.py
new file mode 100644
index 00000000..d76a32ce
--- /dev/null
+++ b/wqflask/utility/helper_functions.py
@@ -0,0 +1,18 @@
+from __future__ import absolute_import, print_function, division
+
+from base.trait import GeneralTrait
+from base import data_set
+from base.species import TheSpecies
+
+
+def get_species_dataset_trait(self, start_vars):
+ #assert type(read_genotype) == type(bool()), "Expecting boolean value for read_genotype"
+ self.dataset = data_set.create_dataset(start_vars['dataset'])
+ self.species = TheSpecies(dataset=self.dataset)
+ self.this_trait = GeneralTrait(dataset=self.dataset,
+ name=start_vars['trait_id'],
+ cellid=None)
+
+ #if read_genotype:
+ self.dataset.group.read_genotype_file()
+ #self.genotype = self.dataset.group.genotype
diff --git a/wqflask/utility/temp_data.py b/wqflask/utility/temp_data.py
new file mode 100644
index 00000000..004d45c6
--- /dev/null
+++ b/wqflask/utility/temp_data.py
@@ -0,0 +1,25 @@
+from __future__ import print_function, division, absolute_import
+from redis import Redis
+
+import simplejson as json
+
+class TempData(object):
+
+ def __init__(self, temp_uuid):
+ self.temp_uuid = temp_uuid
+ self.redis = Redis()
+ self.key = "tempdata:{}".format(self.temp_uuid)
+
+ def store(self, field, value):
+ self.redis.hset(self.key, field, value)
+ self.redis.expire(self.key, 60*15) # Expire in 15 minutes
+
+ def get_all(self):
+ return self.redis.hgetall(self.key)
+
+
+if __name__ == "__main__":
+ redis = Redis()
+ for key in redis.keys():
+ for field in redis.hkeys(key):
+ print("{}.{}={}".format(key, field, redis.hget(key, field)))
diff --git a/wqflask/wqflask/correlation/CorrelationPage.py b/wqflask/wqflask/correlation/CorrelationPage.py
deleted file mode 100644
index f1dd96ef..00000000
--- a/wqflask/wqflask/correlation/CorrelationPage.py
+++ /dev/null
@@ -1,2082 +0,0 @@
-## Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
-#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Affero General Public License
-# as published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the GNU Affero General Public License for more details.
-#
-# This program is available from Source Forge: at GeneNetwork Project
-# (sourceforge.net/projects/genenetwork/).
-#
-# Contact Drs. Robert W. Williams and Xiaodong Zhou (2010)
-# at rwilliams@uthsc.edu and xzhou15@uthsc.edu
-#
-#
-#
-# This module is used by GeneNetwork project (www.genenetwork.org)
-#
-# Created by GeneNetwork Core Team 2010/08/10
-#
-# Last updated by NL 2011/02/11
-# Last updated by Christian Fernandez 2012/04/07
-# Refactored correlation calculation into smaller functions in preparation of
-# separating html from existing code
-
-from __future__ import print_function
-
-import string
-from math import *
-import cPickle
-import os
-import time
-#import pyXLWriter as xl
-import pp
-import math
-
-from pprint import pformat as pf
-
-from htmlgen import HTMLgen2 as HT
-import reaper
-
-from base import webqtlConfig
-from utility.THCell import THCell
-from utility.TDCell import TDCell
-from base.webqtlTrait import GeneralTrait
-from base.data_set import create_dataset
-from base.templatePage import templatePage
-from utility import webqtlUtil
-from dbFunction import webqtlDatabaseFunction
-import utility.webqtlUtil #this is for parallel computing only.
-import correlationFunction
-
-
-METHOD_SAMPLE_PEARSON = "1"
-METHOD_SAMPLE_RANK = "2"
-METHOD_LIT = "3"
-METHOD_TISSUE_PEARSON = "4"
-METHOD_TISSUE_RANK = "5"
-
-TISSUE_METHODS = [METHOD_TISSUE_PEARSON, METHOD_TISSUE_RANK]
-
-TISSUE_MOUSE_DB = 1
-
-class AuthException(Exception): pass
-
-
-class Trait(object):
-
-
- def __init__(self, name, raw_values = None, lit_corr = None, tissue_corr = None, p_tissue = None):
- self.name = name
- self.raw_values = raw_values
- self.lit_corr = lit_corr
- self.tissue_corr = tissue_corr
- self.p_tissue = p_tissue
- self.correlation = 0
- self.p_value = 0
-
- @staticmethod
- def from_csv(line, data_start = 1):
- name = line[0]
- numbers = line[data_start:]
- # _log.info(numbers)
- numbers = [ float(number) for number in numbers ]
-
- return Trait(name, raw_values = numbers)
-
- def calculate_correlation(self, values, method):
- """Calculate the correlation value and p value according to the method specified"""
-
- #ZS: This takes the list of values of the trait our selected trait is being correlated against and removes the values of the samples our trait has no value for
- #There's probably a better way of dealing with this, but I'll have to ask Christian
- updated_raw_values = []
- updated_values = []
- for i in range(len(values)):
- if values[i] != "None":
- updated_raw_values.append(self.raw_values[i])
- updated_values.append(values[i])
-
- self.raw_values = updated_raw_values
- values = updated_values
-
- if method == METHOD_SAMPLE_PEARSON or method == METHOD_LIT or method == METHOD_TISSUE_PEARSON:
- corr,nOverlap = webqtlUtil.calCorrelation(self.raw_values, values, len(values))
- else:
- corr,nOverlap = webqtlUtil.calCorrelationRank(self.raw_values, values, len(values))
-
- self.correlation = corr
- self.overlap = nOverlap
-
- if self.overlap < 3:
- self.p_value = 1.0
- else:
- #ZS - This is probably the wrong way to deal with this. Correlation values of 1.0 definitely exist (the trait correlated against itself), so zero division needs to br prevented.
- if abs(self.correlation) >= 1.0:
- self.p_value = 0.0
- else:
- ZValue = 0.5*log((1.0+self.correlation)/(1.0-self.correlation))
- ZValue = ZValue*sqrt(self.overlap-3)
- self.p_value = 2.0*(1.0 - reaper.normp(abs(ZValue)))
-
-
-
-#XZ, 01/14/2009: This method is for parallel computing only.
-#XZ: It is supposed to be called when "Genetic Correlation, Pearson's r" (method 1)
-#XZ: or "Genetic Correlation, Spearman's rho" (method 2) is selected
-def compute_corr( input_nnCorr, input_trait, input_list, computing_method):
-
- allcorrelations = []
-
- for line in input_list:
- tokens = line.split('","')
- tokens[-1] = tokens[-1][:-2] #remove the last "
- tokens[0] = tokens[0][1:] #remove the first "
-
- traitdataName = tokens[0]
- database_trait = tokens[1:]
-
- if computing_method == "1": #XZ: Pearson's r
- corr,nOverlap = utility.webqtlUtil.calCorrelationText(input_trait, database_trait, input_nnCorr)
- else: #XZ: Spearman's rho
- corr,nOverlap = utility.webqtlUtil.calCorrelationRankText(input_trait, database_trait, input_nnCorr)
- traitinfo = [traitdataName,corr,nOverlap]
- allcorrelations.append(traitinfo)
-
- return allcorrelations
-
-def get_correlation_method_key(form_data):
- #XZ, 09/28/2008: if user select "1", then display 1, 3 and 4.
- #XZ, 09/28/2008: if user select "2", then display 2, 3 and 5.
- #XZ, 09/28/2008: if user select "3", then display 1, 3 and 4.
- #XZ, 09/28/2008: if user select "4", then display 1, 3 and 4.
- #XZ, 09/28/2008: if user select "5", then display 2, 3 and 5.
-
- method = form_data.method
- if method not in ["1", "2", "3" ,"4", "5"]:
- return "1"
-
- return method
-
-
-def get_custom_trait(form_data, cursor):
- """Pulls the custom trait, if it exists, out of the form data"""
- trait_name = form_data.fullname
-
- if trait_name:
- trait = webqtlTrait(fullname=trait_name, cursor=cursor)
- trait.retrieveInfo()
- return trait
- else:
- return None
-
-
-#XZ, 09/18/2008: get the information such as value, variance of the input strain names from the form.
-def get_sample_data(fd):
- #print("fd is:", pf(fd.__dict__))
- if fd.allstrainlist:
- mdpchoice = fd.MDPChoice
- #XZ, in HTML source code, it is "BXD Only", "BXH Only", and so on
- if mdpchoice == "1":
- strainlist = fd.f1list + fd.strainlist
- #XZ, in HTML source code, it is "Non-BXD Only", "Non-BXD Only", etc
- elif mdpchoice == "2":
- strainlist = []
- strainlist2 = fd.f1list + fd.strainlist
- for strain in fd.allstrainlist:
- if strain not in strainlist2:
- strainlist.append(strain)
- #So called MDP Panel
- if strainlist:
- strainlist = fd.f1list + fd.parlist+strainlist
- #XZ, in HTML source code, it is "All Cases"
- else:
- strainlist = fd.allstrainlist
- #XZ, 09/18/2008: put the trait data into dictionary fd.allTraitData
- fd.readData(fd.allstrainlist)
- else:
- mdpchoice = None
- strainlist = fd.strainlist
- #XZ, 09/18/2008: put the trait data into dictionary fd.allTraitData
- fd.readData()
-
- return strainlist
-
-
-
-def get_species(fd, cursor):
- #XZ, 3/16/2010: variable RISet must be pass by the form
- RISet = fd.RISet
- #XZ, 12/12/2008: get species infomation
- species = webqtlDatabaseFunction.retrieveSpecies(cursor=cursor, RISet=RISet)
- return species
-
-
-def sortTraitCorrelations(traits, method="1"):
- if method in TISSUE_METHODS:
- traits.sort(key=lambda trait: trait.tissue_corr != None and abs(trait.tissue_corr), reverse=True)
- elif method == METHOD_LIT:
- traits.sort(key=lambda trait: trait.lit_corr != None and abs(trait.lit_corr), reverse=True)
- else:
- traits.sort(key=lambda trait: trait.correlation != None and abs(trait.correlation), reverse=True)
-
- return traits
-
-
-def auth_user_for_db(db, cursor, target_db_name, privilege, username):
- """Authorize a user for access to a database if that database is
- confidential. A db (identified by a record in ProbeSetFreeze) contains a
- list of authorized users who may access it, as well as its confidentiality
- level.
-
- If the current user's privilege level is greater than 'user', ie: root or
- admin, then they are automatically authed, otherwise, check the
- AuthorizedUsers field for the presence of their name."""
-
- if db.type == 'ProbeSet':
- cursor.execute('SELECT Id, Name, FullName, confidentiality, AuthorisedUsers FROM ProbeSetFreeze WHERE Name = "%s"' % target_db_name)
- indId, indName, indFullName, confidential, AuthorisedUsers = cursor.fetchall()[0]
-
- if confidential:
- authorized = 0
-
- #for the dataset that confidentiality is 1
- #1. 'admin' and 'root' can see all of the dataset
- #2. 'user' can see the dataset that AuthorisedUsers contains his id(stored in the Id field of User table)
- if webqtlConfig.USERDICT[privilege] > webqtlConfig.USERDICT['user']:
- authorized = 1
- else:
- if username in AuthorisedUsers.split(","):
- authorized = 1
-
- if not authorized:
- raise AuthException("The %s database you selected is not open to the public at this time, please go back and select other database." % indFullName)
-
-
-class CorrelationPage(templatePage):
-
- corr_min_informative = 4
-
- PAGE_HEADING = "Correlation Table"
- #CORRELATION_METHODS = {"1" : "Genetic Correlation (Pearson's r)",
- # "2" : "Genetic Correlation (Spearman's rho)",
- # "3" : "SGO Literature Correlation",
- # "4" : "Tissue Correlation (Pearson's r)",
- # "5" : "Tissue Correlation (Spearman's rho)"}
- #
- #RANK_ORDERS = {"1": 0, "2": 1, "3": 0, "4": 0, "5": 1}
-
-
- def error(self, message, *args, **kw):
- heading = heading or self.PAGE_HEADING
- return templatePage.error(heading = heading, detail = [message], error=error)
-
- def __init__(self, fd):
- #print("in CorrelationPage __init__ fd is:", pf(fd.__dict__))
- # Call the superclass constructor
-
- # Put everything in fd into self
- self.__dict__.update(fd.__dict__)
-
- templatePage.__init__(self, fd)
-
- #print("in CorrelationPage __init__ now fd is:", pf(fd.__dict__))
- # Connect to the database
- if not self.openMysql():
- return
-
- # Read the genotype from a file
- if not fd.genotype:
- fd.readGenotype()
-
- sample_list = get_sample_data(fd)
- print("sample_list is", pf(sample_list))
-
- # Whether the user chose BXD Only, Non-BXD Only, or All Strains
- # (replace BXD with whatever the group/inbredset name is)
- # "mdp" stands for "mouse diversity panel" This is outdated; it now represents any
- # cases/strains from the non-primary group
- mdp_choice = fd.MDPChoice if fd.allstrainlist else None
-
- self.species = get_species(fd, self.cursor)
-
- #XZ, 09/18/2008: get all information about the user selected database.
- #target_db_name = fd.corr_dataset
- self.target_db_name = fd.corr_dataset
-
- #try:
- #print("target_db_name is:", target_db_name)
- self.db = create_dataset(self.db_conn, self.target_db_name)
- #except:
- # detail = ["The database you just requested has not been established yet."]
- # self.error(detail)
- # return
-
- # Auth if needed
- try:
- auth_user_for_db(self.db, self.cursor, self.target_db_name, self.privilege, self.userName)
- except AuthException as e:
- detail = [e.message]
- return self.error(detail)
-
- #XZ, 09/18/2008: filter out the strains that have no value.
- self.sample_names, vals, vars, N = fd.informativeStrains(sample_list)
-
- print("samplenames is:", pf(self.sample_names))
- #CF - If less than a minimum number of strains/cases in common, don't calculate anything
- if len(self.sample_names) < self.corr_min_informative:
- detail = ['Fewer than %d strain data were entered for %s data set. No calculation of correlation has been attempted.' % (self.corr_min_informative, fd.RISet)]
- self.error(heading=None, detail=detail)
-
- for key, value in self.__dict__.items():
- if key.startswith("corr"):
- print("[red] %s - %s" % (key, value))
-
- #correlation_method = self.CORRELATION_METHODS[self.method]
- #rankOrder = self.RANK_ORDERS[self.method]
-
- # CF - Number of results returned
- # Todo: Get rid of self.returnNumber
- self.returnNumber = self.corr_return_results
-
- self.record_count = 0
-
- myTrait = get_custom_trait(fd, self.cursor)
-
-
- # We will not get Literature Correlations if there is no GeneId because there is nothing
- # to look against
- self.gene_id = int(fd.GeneId)
-
- # We will not get Tissue Correlations if there is no gene symbol because there is nothing to look against
- self.trait_symbol = myTrait.symbol
-
-
- #XZ, 12/12/2008: if the species is rat or human, translate the geneid to mouse geneid
- self.input_trait_mouse_gene_id = self.translateToMouseGeneID(self.species, self.gene_id)
-
- #XZ: As of Nov/13/2010, this dataset is 'UTHSC Illumina V6.2 RankInv B6 D2 average CNS GI average (May 08)'
- self.tissue_probeset_freeze_id = 1
-
- traitList = self.correlate(vals)
-
- _log.info("Done doing correlation calculation")
-
-############################################################################################################################################
-
- TD_LR = HT.TD(height=200,width="100%",bgColor='#eeeeee')
-
- mainfmName = webqtlUtil.genRandStr("fm_")
- form = HT.Form(cgi = os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE),
- enctype='multipart/form-data', name= mainfmName, submit=HT.Input(type='hidden'))
- hddn = {'FormID': 'showDatabase',
- 'ProbeSetID': '_',
- 'database': self.target_db_name,
- 'databaseFull': self.db.fullname,
- 'CellID': '_',
- 'RISet': fd.RISet,
- 'identification': fd.identification}
-
- if myTrait:
- hddn['fullname'] = fd.fullname
- if mdp_choice:
- hddn['MDPChoice']= mdp_choice
-
-
- #XZ, 09/18/2008: pass the trait data to next page by hidden parameters.
- webqtlUtil.exportData(hddn, fd.allTraitData)
-
- if fd.incparentsf1:
- hddn['incparentsf1']='ON'
-
- if fd.allstrainlist:
- hddn['allstrainlist'] = string.join(fd.allstrainlist, ' ')
-
-
- for key in hddn.keys():
- form.append(HT.Input(name=key, value=hddn[key], type='hidden'))
-
- #XZ, 11/21/2008: add two parameters to form
- form.append(HT.Input(name="X_geneSymbol", value="", type='hidden'))
- form.append(HT.Input(name="Y_geneSymbol", value="", type='hidden'))
-
- #XZ, 3/11/2010: add one parameter to record if the method is rank order.
- form.append(HT.Input(name="rankOrder", value="%s" % rankOrder, type='hidden'))
-
- form.append(HT.Input(name="TissueProbeSetFreezeId", value="%s" % self.tissue_probeset_freeze_id, type='hidden'))
-
- ####################################
- # generate the info on top of page #
- ####################################
-
- info = self.getTopInfo(myTrait=myTrait, method=self.method, db=self.db, target_db_name=self.target_db_name, returnNumber=self.returnNumber, methodDict=self.CORRELATION_METHODS, totalTraits=traitList, identification=fd.identification )
-
- ##############
- # Excel file #
- ##############
- filename= webqtlUtil.genRandStr("Corr_")
- 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, identification=fd.identification, db=self.db, returnNumber=self.returnNumber)
-
- newrow = 7
-
-
-#####################################################################
-
-
- #Select All, Deselect All, Invert Selection, Add to Collection
- mintmap = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'showIntMap');" % mainfmName)
- mintmap_img = HT.Image("/images/multiple_interval_mapping1_final.jpg", name='mintmap', alt="Multiple Interval Mapping", title="Multiple Interval Mapping", style="border:none;")
- mintmap.append(mintmap_img)
- mcorr = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'compCorr');" % mainfmName)
- mcorr_img = HT.Image("/images/compare_correlates2_final.jpg", alt="Compare Correlates", title="Compare Correlates", style="border:none;")
- mcorr.append(mcorr_img)
- cormatrix = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'corMatrix');" % mainfmName)
- cormatrix_img = HT.Image("/images/correlation_matrix1_final.jpg", alt="Correlation Matrix and PCA", title="Correlation Matrix and PCA", style="border:none;")
- cormatrix.append(cormatrix_img)
- networkGraph = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'networkGraph');" % mainfmName)
- networkGraph_img = HT.Image("/images/network_graph1_final.jpg", name='mintmap', alt="Network Graphs", title="Network Graphs", style="border:none;")
- networkGraph.append(networkGraph_img)
- heatmap = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'heatmap');" % mainfmName)
- heatmap_img = HT.Image("/images/heatmap2_final.jpg", name='mintmap', alt="QTL Heat Map and Clustering", title="QTL Heatmap and Clustering", style="border:none;")
- heatmap.append(heatmap_img)
- partialCorr = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'partialCorrInput');" % mainfmName)
- partialCorr_img = HT.Image("/images/partial_correlation_final.jpg", name='partialCorr', alt="Partial Correlation", title="Partial Correlation", style="border:none;")
- partialCorr.append(partialCorr_img)
- addselect = HT.Href(url="#redirect", onClick="addRmvSelection('%s', document.getElementsByName('%s')[0], 'addToSelection');" % (fd.RISet, mainfmName))
- addselect_img = HT.Image("/images/add_collection1_final.jpg", name="addselect", alt="Add To Collection", title="Add To Collection", style="border:none;")
- addselect.append(addselect_img)
- selectall = HT.Href(url="#redirect", onClick="checkAll(document.getElementsByName('%s')[0]);" % mainfmName)
- selectall_img = HT.Image("/images/select_all2_final.jpg", name="selectall", alt="Select All", title="Select All", style="border:none;")
- selectall.append(selectall_img)
- selectinvert = HT.Href(url="#redirect", onClick = "checkInvert(document.getElementsByName('%s')[0]);" % mainfmName)
- selectinvert_img = HT.Image("/images/invert_selection2_final.jpg", name="selectinvert", alt="Invert Selection", title="Invert Selection", style="border:none;")
- selectinvert.append(selectinvert_img)
- reset = HT.Href(url="#redirect", onClick="checkNone(document.getElementsByName('%s')[0]); return false;" % mainfmName)
- reset_img = HT.Image("/images/select_none2_final.jpg", alt="Select None", title="Select None", style="border:none;")
- reset.append(reset_img)
- selecttraits = HT.Input(type='button' ,name='selecttraits',value='Select Traits', onClick="checkTraits(this.form);",Class="button")
- selectgt = HT.Input(type='text' ,name='selectgt',value='-1.0', size=6,maxlength=10,onChange="checkNumeric(this,1.0,'-1.0','gthan','greater than filed')")
- selectlt = HT.Input(type='text' ,name='selectlt',value='1.0', size=6,maxlength=10,onChange="checkNumeric(this,-1.0,'1.0','lthan','less than field')")
- selectandor = HT.Select(name='selectandor')
- selectandor.append(('AND','and'))
- selectandor.append(('OR','or'))
- selectandor.selected.append('AND')
-
-
- #External analysis tools
- GCATButton = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'GCAT');" % mainfmName)
- GCATButton_img = HT.Image("/images/GCAT_logo_final.jpg", name="GCAT", alt="GCAT", title="GCAT", style="border:none")
- GCATButton.append(GCATButton_img)
-
- ODE = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'ODE');" % mainfmName)
- ODE_img = HT.Image("/images/ODE_logo_final.jpg", name="ode", alt="ODE", title="ODE", style="border:none")
- ODE.append(ODE_img)
-
- '''
- #XZ, 07/07/2010: I comment out this block of code.
- WebGestaltScript = HT.Script(language="Javascript")
- WebGestaltScript.append("""
-setTimeout('openWebGestalt()', 2000);
-function openWebGestalt(){
-var thisForm = document['WebGestalt'];
-makeWebGestaltTree(thisForm, '%s', %d, 'edag_only.php');
-}
- """ % (mainfmName, len(traitList)))
- '''
-
- self.cursor.execute('SELECT GeneChip.GO_tree_value FROM GeneChip, ProbeFreeze, ProbeSetFreeze WHERE GeneChip.Id = ProbeFreeze.ChipId and ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and ProbeSetFreeze.Name = "%s"' % self.db.name)
- result = self.cursor.fetchone()
-
- if result:
- GO_tree_value = result[0]
-
- if GO_tree_value:
-
- WebGestalt = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('%s')[0], 'GOTree');" % mainfmName)
- WebGestalt_img = HT.Image("/images/webgestalt_icon_final.jpg", name="webgestalt", alt="Gene Set Analysis Toolkit", title="Gene Set Analysis Toolkit", style="border:none")
- WebGestalt.append(WebGestalt_img)
-
- hddnWebGestalt = {
- 'id_list':'',
- 'correlation':'',
- 'id_value':'',
- 'llid_list':'',
- 'id_type':GO_tree_value,
- 'idtype':'',
- 'species':'',
- 'list':'',
- 'client':''}
-
- hddnWebGestalt['ref_type'] = hddnWebGestalt['id_type']
- hddnWebGestalt['cat_type'] = 'GO'
- hddnWebGestalt['significancelevel'] = 'Top10'
-
- if self.species == 'rat':
- hddnWebGestalt['org'] = 'Rattus norvegicus'
- elif self.species == 'human':
- hddnWebGestalt['org'] = 'Homo sapiens'
- elif self.species == 'mouse':
- hddnWebGestalt['org'] = 'Mus musculus'
- else:
- hddnWebGestalt['org'] = ''
-
- for key in hddnWebGestalt.keys():
- form.append(HT.Input(name=key, value=hddnWebGestalt[key], type='hidden'))
-
-
- #Create tables with options, etc
-
- pageTable = HT.TableLite(cellSpacing=0,cellPadding=0,width="100%", border=0, align="Left")
-
- containerTable = HT.TableLite(cellSpacing=0,cellPadding=0,width="90%",border=0, align="Left")
-
-
- if not GO_tree_value:
- optionsTable = HT.TableLite(cellSpacing=2, cellPadding=0,width="480", height="80", border=0, align="Left")
- optionsTable.append(HT.TR(HT.TD(selectall), HT.TD(reset), HT.TD(selectinvert), HT.TD(addselect), HT.TD(GCATButton), HT.TD(ODE), align="left"))
- optionsTable.append(HT.TR(HT.TD("&nbsp;"*1,"Select"), HT.TD("Deselect"), HT.TD("&nbsp;"*1,"Invert"), HT.TD("&nbsp;"*3,"Add"), HT.TD("Gene Set"), HT.TD("&nbsp;"*2,"GCAT")))
- else:
- optionsTable = HT.TableLite(cellSpacing=2, cellPadding=0,width="560", height="80", border=0, align="Left")
- optionsTable.append(HT.TR(HT.TD(selectall), HT.TD(reset), HT.TD(selectinvert), HT.TD(addselect), HT.TD(GCATButton), HT.TD(ODE), HT.TD(WebGestalt), align="left"))
- optionsTable.append(HT.TR(HT.TD("&nbsp;"*1,"Select"), HT.TD("Deselect"), HT.TD("&nbsp;"*1,"Invert"), HT.TD("&nbsp;"*3,"Add"), HT.TD("Gene Set"), HT.TD("&nbsp;"*2,"GCAT"), HT.TD("&nbsp;"*3, "ODE")))
- containerTable.append(HT.TR(HT.TD(optionsTable)))
-
- functionTable = HT.TableLite(cellSpacing=2,cellPadding=0,width="480",height="80", border=0, align="Left")
- functionRow = HT.TR(HT.TD(networkGraph, width="16.7%"), HT.TD(cormatrix, width="16.7%"), HT.TD(partialCorr, width="16.7%"), HT.TD(mcorr, width="16.7%"), HT.TD(mintmap, width="16.7%"), HT.TD(heatmap), align="left")
- labelRow = HT.TR(HT.TD("&nbsp;"*1,HT.Text("Graph")), HT.TD("&nbsp;"*1,HT.Text("Matrix")), HT.TD("&nbsp;"*1,HT.Text("Partial")), HT.TD(HT.Text("Compare")), HT.TD(HT.Text("QTL Map")), HT.TD(HT.Text(text="Heat Map")))
- functionTable.append(functionRow, labelRow)
- containerTable.append(HT.TR(HT.TD(functionTable), HT.BR()))
-
- #more_options = HT.Image("/images/more_options1_final.jpg", name='more_options', alt="Expand Options", title="Expand Options", style="border:none;", Class="toggleShowHide")
-
- #containerTable.append(HT.TR(HT.TD(more_options, HT.BR(), HT.BR())))
-
- moreOptions = HT.Input(type='button',name='options',value='More Options', onClick="",Class="toggle")
- fewerOptions = HT.Input(type='button',name='options',value='Fewer Options', onClick="",Class="toggle")
-
- """
- if (fd.formdata.getvalue('showHideOptions') == 'less'):
- containerTable.append(HT.TR(HT.TD("&nbsp;"), height="10"), HT.TR(HT.TD(HT.Div(fewerOptions, Class="toggleShowHide"))))
- containerTable.append(HT.TR(HT.TD("&nbsp;")))
- else:
- containerTable.append(HT.TR(HT.TD("&nbsp;"), height="10"), HT.TR(HT.TD(HT.Div(moreOptions, Class="toggleShowHide"))))
- containerTable.append(HT.TR(HT.TD("&nbsp;")))
- """
-
- containerTable.append(HT.TR(HT.TD(HT.Span(selecttraits,' with r > ',selectgt, ' ',selectandor, ' r < ',selectlt,Class="bd1 cbddf fs11")), style="display:none;", Class="extra_options"))
-
- chrMenu = HT.Input(type='hidden',name='chromosomes',value='all')
-
- corrHeading = HT.Paragraph('Correlation Table', Class="title")
-
-
- tblobj = {}
-
- if self.db.type=="Geno":
- containerTable.append(HT.TR(HT.TD(xlsUrl, height=60)))
-
- pageTable.append(HT.TR(HT.TD(containerTable)))
-
- tblobj['header'], worksheet = self.getTableHeaderForGeno( method=self.method, worksheet=worksheet, newrow=newrow, headingStyle=headingStyle)
- newrow += 1
-
- sortby = self.getSortByValue( calculationMethod = self.method )
-
- corrScript = HT.Script(language="Javascript")
- corrScript.append("var corrArray = new Array();")
-
- tblobj['body'], worksheet, corrScript = self.getTableBodyForGeno(traitList=traitList, formName=mainfmName, worksheet=worksheet, newrow=newrow, corrScript=corrScript)
-
- workbook.close()
- objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- cPickle.dump(tblobj, objfile)
- objfile.close()
-
- div = HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=sortby, tableID = "sortable", addIndex = "1"), corrScript, Id="sortable")
-
- pageTable.append(HT.TR(HT.TD(div)))
-
- form.append(HT.Input(name='ShowStrains',type='hidden', value =1),
- HT.Input(name='ShowLine',type='hidden', value =1),
- HT.P(), HT.P(), pageTable)
- TD_LR.append(corrHeading, info, form, HT.P())
-
- self.dict['body'] = str(TD_LR)
- self.dict['js1'] = ''
- self.dict['title'] = 'Correlation'
-
- elif self.db.type=="Publish":
-
- containerTable.append(HT.TR(HT.TD(xlsUrl, height=40)))
-
- pageTable.append(HT.TR(HT.TD(containerTable)))
-
- tblobj['header'], worksheet = self.getTableHeaderForPublish(method=self.method, worksheet=worksheet, newrow=newrow, headingStyle=headingStyle)
- newrow += 1
-
- sortby = self.getSortByValue( calculationMethod = self.method )
-
- corrScript = HT.Script(language="Javascript")
- corrScript.append("var corrArray = new Array();")
-
- tblobj['body'], worksheet, corrScript = self.getTableBodyForPublish(traitList=traitList, formName=mainfmName, worksheet=worksheet, newrow=newrow, corrScript=corrScript, species=self.species)
-
- workbook.close()
-
- objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- cPickle.dump(tblobj, objfile)
- objfile.close()
- # NL, 07/27/2010. genTableObj function has been moved from templatePage.py to webqtlUtil.py;
- div = HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=sortby, tableID = "sortable", addIndex = "1"), corrScript, Id="sortable")
-
- pageTable.append(HT.TR(HT.TD(div)))
-
- form.append(
- HT.Input(name='ShowStrains',type='hidden', value =1),
- HT.Input(name='ShowLine',type='hidden', value =1),
- HT.P(), pageTable)
- TD_LR.append(corrHeading, info, form, HT.P())
-
- self.dict['body'] = str(TD_LR)
- self.dict['js1'] = ''
- self.dict['title'] = 'Correlation'
-
-
- elif self.db.type=="ProbeSet":
- tblobj['header'], worksheet = self.getTableHeaderForProbeSet(method=self.method, worksheet=worksheet, newrow=newrow, headingStyle=headingStyle)
- newrow += 1
-
- sortby = self.getSortByValue( calculationMethod = self.method )
-
- corrScript = HT.Script(language="Javascript")
- corrScript.append("var corrArray = new Array();")
-
- tblobj['body'], worksheet, corrScript = self.getTableBodyForProbeSet(traitList=traitList, primaryTrait=myTrait, formName=mainfmName, worksheet=worksheet, newrow=newrow, corrScript=corrScript, species=self.species)
-
- workbook.close()
- objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- cPickle.dump(tblobj, objfile)
- objfile.close()
-
- #XZ: here is the table of traits
- div = HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=sortby, tableID = "sortable", addIndex = "1", hiddenColumns=["Gene ID","Homologene ID"]), corrScript, Id="sortable")
-
-
- #XZ, 01/12/2009: create database menu for 'Add Correlation'
- self.cursor.execute("""
- select
- ProbeSetFreeze.FullName, ProbeSetFreeze.Id, Tissue.name
- from
- ProbeSetFreeze, ProbeFreeze, ProbeSetFreeze as ps2, ProbeFreeze as p2, Tissue
- where
- ps2.Id = %d
- and ps2.ProbeFreezeId = p2.Id
- and ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id
- and (ProbeFreeze.InbredSetId = p2.InbredSetId or (ProbeFreeze.InbredSetId in (1, 3) and p2.InbredSetId in (1, 3)))
- and p2.ChipId = ProbeFreeze.ChipId
- and ps2.Id != ProbeSetFreeze.Id
- and ProbeFreeze.TissueId = Tissue.Id
- and ProbeSetFreeze.public > %d
- order by
- ProbeFreeze.TissueId, ProbeSetFreeze.CreateTime desc
- """ % (self.db.id, webqtlConfig.PUBLICTHRESH))
-
- results = self.cursor.fetchall()
- dbCustomizer = HT.Select(results, name = "customizer")
- databaseMenuSub = preTissue = ""
- for item in results:
- TName, TId, TTissue = item
- if TTissue != preTissue:
- if databaseMenuSub:
- dbCustomizer.append(databaseMenuSub)
- databaseMenuSub = HT.Optgroup(label = '%s mRNA ------' % TTissue)
- preTissue = TTissue
-
- databaseMenuSub.append(item[:2])
- if databaseMenuSub:
- dbCustomizer.append(databaseMenuSub)
-
- #updated by NL. Delete function generateJavaScript, move js files to dhtml.js, webqtl.js and jqueryFunction.js
- #variables: filename, strainIds and vals are required by getquerystring function
- strainIds=self.getStrainIds(species=self.species, strains=self.sample_names)
- var1 = HT.Input(name="filename", value=filename, type='hidden')
- var2 = HT.Input(name="strainIds", value=strainIds, type='hidden')
- var3 = HT.Input(name="vals", value=vals, type='hidden')
- customizerButton = HT.Input(type="button", Class="button", value="Add Correlation", onClick = "xmlhttpPost('%smain.py?FormID=AJAX_table', 'sortable', (getquerystring(this.form)))" % webqtlConfig.CGIDIR)
-
- containerTable.append(HT.TR(HT.TD(HT.Span(var1,var2,var3,customizerButton, "with", dbCustomizer, Class="bd1 cbddf fs11"), HT.BR(), HT.BR()), style="display:none;", Class="extra_options"))
-
- containerTable.append(HT.TR(HT.TD(xlsUrl, HT.BR(), HT.BR())))
-
- pageTable.append(HT.TR(HT.TD(containerTable)))
-
- pageTable.append(HT.TR(HT.TD(div)))
-
- if self.species == 'human':
- heatmap = ""
-
- form.append(HT.Input(name='ShowStrains',type='hidden', value =1),
- HT.Input(name='ShowLine',type='hidden', value =1),
- info, HT.BR(), pageTable, HT.BR())
-
- TD_LR.append(corrHeading, form, HT.P())
-
-
- self.dict['body'] = str(TD_LR)
- self.dict['title'] = 'Correlation'
- # updated by NL. Delete function generateJavaScript, move js files to dhtml.js, webqtl.js and jqueryFunction.js
- self.dict['js1'] = ''
- self.dict['js2'] = 'onLoad="pageOffset()"'
- self.dict['layer'] = self.generateWarningLayer()
- else:
- self.dict['body'] = ""
-
-
-#############################
-# #
-# CorrelationPage Functions #
-# #
-#############################
-
-
- def getSortByValue(self, calculationMethod):
-
- if calculationMethod == "1":
- sortby = ("Sample p(r)", "up")
- elif calculationMethod == "2":
- sortby = ("Sample p(rho)", "up")
- elif calculationMethod == "3": #XZ: literature correlation
- sortby = ("Lit Corr","down")
- elif calculationMethod == "4": #XZ: tissue correlation
- sortby = ("Tissue r", "down")
- elif calculationMethod == "5":
- sortby = ("Tissue rho", "down")
-
- return sortby
-
-
-
- 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
-
-
- #XZ, 01/07/2009: In HTML code, the variable 'database' corresponds to the column 'Name' in database table.
- def getFileName(self, target_db_name): ### dcrowell August 2008
- """Returns the name of the reference database file with which correlations are calculated.
- Takes argument cursor which is a cursor object of any instance of a subclass of templatePage
- Used by correlationPage"""
-
- query = 'SELECT Id, FullName FROM ProbeSetFreeze WHERE Name = "%s"' % target_db_name
- self.cursor.execute(query)
- result = self.cursor.fetchone()
- Id = result[0]
- FullName = result[1]
- FullName = FullName.replace(' ','_')
- FullName = FullName.replace('/','_')
-
- FileName = 'ProbeSetFreezeId_' + str(Id) + '_FullName_' + FullName + '.txt'
-
- return FileName
-
-
- #XZ, 01/29/2009: I modified this function.
- #XZ: Note that the type of StrainIds must be number, not string.
- def getStrainIds(self, species=None, strains=[]):
- StrainIds = []
- for item in strains:
- self.cursor.execute('''SELECT Strain.Id FROM Strain, Species WHERE
- Strain.Name="%s" and Strain.SpeciesId=Species.Id and Species.name = "%s" ''' % (item, species))
- Id = self.cursor.fetchone()[0]
- StrainIds.append(Id)
-
- return StrainIds
-
-
- #XZ, 12/12/2008: if the species is rat or human, translate the geneid to mouse geneid
- #XZ, 12/12/2008: if the input geneid is 'None', return 0
- #XZ, 12/12/2008: if the input geneid has no corresponding mouse geneid, return 0
- def translateToMouseGeneID (self, species, geneid):
- mouse_geneid = 0;
-
- #if input geneid is None, return 0.
- if not geneid:
- return mouse_geneid
-
- if species == 'mouse':
- mouse_geneid = geneid
- elif species == 'rat':
- self.cursor.execute( "SELECT mouse FROM GeneIDXRef WHERE rat=%d" % int(geneid) )
- record = self.cursor.fetchone()
- if record:
- mouse_geneid = record[0]
- elif species == 'human':
- self.cursor.execute( "SELECT mouse FROM GeneIDXRef WHERE human=%d" % int(geneid) )
- record = self.cursor.fetchone()
- if record:
- mouse_geneid = record[0]
-
- return mouse_geneid
-
-
- #XZ, 12/16/2008: the input geneid is of mouse type
- def checkForLitInfo(self,geneId):
- q = 'SELECT 1 FROM LCorrRamin3 WHERE GeneId1=%s LIMIT 1' % geneId
- self.cursor.execute(q)
- try:
- x = self.cursor.fetchone()
- if x: return True
- else: raise
- except: return False
-
-
- #XZ, 12/16/2008: the input geneid is of mouse type
- def checkSymbolForTissueCorr(self, tissueProbeSetFreezeId=0, symbol=""):
- q = "SELECT 1 FROM TissueProbeSetXRef WHERE TissueProbeSetFreezeId=%s and Symbol='%s' LIMIT 1" % (tissueProbeSetFreezeId,symbol)
- self.cursor.execute(q)
- try:
- x = self.cursor.fetchone()
- if x: return True
- else: raise
- except: return False
-
-
-
- def fetchAllDatabaseData(self, species, GeneId, GeneSymbol, strains, db, method, returnNumber, tissueProbeSetFreezeId):
-
- StrainIds = []
- for item in strains:
- self.cursor.execute('''SELECT Strain.Id FROM Strain, Species WHERE Strain.Name="%s" and Strain.SpeciesId=Species.Id and Species.name = "%s" ''' % (item, species))
- Id = self.cursor.fetchone()[0]
- StrainIds.append('%d' % Id)
-
- # break it into smaller chunks so we don't overload the MySql server
- nnn = len(StrainIds) / 25
- if len(StrainIds) % 25:
- nnn += 1
- oridata = []
-
- #XZ, 09/24/2008: build one temporary table that only contains the records associated with the input GeneId
- tempTable = None
- if GeneId and db.type == "ProbeSet":
- if method == "3":
- tempTable = self.getTempLiteratureTable(species=species, input_species_geneid=GeneId, returnNumber=returnNumber)
-
- if method == "4" or method == "5":
- tempTable = self.getTempTissueCorrTable(primaryTraitSymbol=GeneSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method, returnNumber=returnNumber)
-
- for step in range(nnn):
- temp = []
- StrainIdstep = StrainIds[step*25:min(len(StrainIds), (step+1)*25)]
- for item in StrainIdstep: temp.append('T%s.value' % item)
-
- if db.type == "Publish":
- query = "SELECT PublishXRef.Id, "
- dataStartPos = 1
- query += string.join(temp,', ')
- query += ' FROM (PublishXRef, PublishFreeze)'
- #XZ, 03/04/2009: Xiaodong changed Data to PublishData
- for item in StrainIdstep:
- query += 'left join PublishData as T%s on T%s.Id = PublishXRef.DataId and T%s.StrainId=%s\n' %(item,item,item,item)
- query += "WHERE PublishXRef.InbredSetId = PublishFreeze.InbredSetId and PublishFreeze.Name = '%s'" % (db.name, )
- #XZ, 09/20/2008: extract literature correlation value together with gene expression values.
- #XZ, 09/20/2008: notice the difference between the code in next block.
- elif tempTable:
- # we can get a little performance out of selecting our LitCorr here
- # but also we need to do this because we are unconcerned with probes that have no geneId associated with them
- # as we would not have litCorr data.
-
- if method == "3":
- query = "SELECT %s.Name, %s.value," % (db.type,tempTable)
- dataStartPos = 2
- if method == "4" or method == "5":
- query = "SELECT %s.Name, %s.Correlation, %s.PValue," % (db.type,tempTable, tempTable)
- dataStartPos = 3
-
- query += string.join(temp,', ')
- query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
- if method == "3":
- query += ' LEFT JOIN %s ON %s.GeneId2=ProbeSet.GeneId ' % (tempTable,tempTable)
- if method == "4" or method == "5":
- query += ' LEFT JOIN %s ON %s.Symbol=ProbeSet.Symbol ' % (tempTable,tempTable)
- #XZ, 03/04/2009: Xiaodong changed Data to %sData and changed parameters from %(item,item, db.type,item,item) to %(db.type, item,item, db.type,item,item)
- for item in StrainIdstep:
- query += 'left join %sData as T%s on T%s.Id = %sXRef.DataId and T%s.StrainId=%s\n' %(db.type, item,item, db.type,item,item)
-
- if method == "3":
- query += "WHERE ProbeSet.GeneId IS NOT NULL AND %s.value IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable,db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
- if method == "4" or method == "5":
- query += "WHERE ProbeSet.Symbol IS NOT NULL AND %s.Correlation IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable,db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
- else:
- query = "SELECT %s.Name," % db.type
- dataStartPos = 1
- query += string.join(temp,', ')
- query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
- #XZ, 03/04/2009: Xiaodong changed Data to %sData and changed parameters from %(item,item, db.type,item,item) to %(db.type, item,item, db.type,item,item)
- for item in StrainIdstep:
- query += 'left join %sData as T%s on T%s.Id = %sXRef.DataId and T%s.StrainId=%s\n' %(db.type, item,item, db.type,item,item)
- query += "WHERE %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
-
- self.cursor.execute(query)
- results = self.cursor.fetchall()
- oridata.append(results)
-
- datasize = len(oridata[0])
- traits = []
- # put all of the separate data together into a huge list of lists
- for j in range(datasize):
- traitdata = list(oridata[0][j])
- for i in range(1,nnn):
- traitdata += list(oridata[i][j][dataStartPos:])
-
- trait = Trait(traitdata[0], traitdata[dataStartPos:])
-
- if method == METHOD_LIT:
- trait.lit_corr = traitdata[1]
-
- if method in TISSUE_METHODS:
- trait.tissue_corr = traitdata[1]
- trait.p_tissue = traitdata[2]
-
- traits.append(trait)
-
- if tempTable:
- self.cursor.execute( 'DROP TEMPORARY TABLE %s' % tempTable )
-
- return traits
-
-
-
-
- # XZ, 09/20/2008: This function creates TEMPORARY TABLE tmpTableName_2 and return its name.
- # XZ, 09/20/2008: It stores top literature correlation values associated with the input geneId.
- # XZ, 09/20/2008: Attention: In each row, the input geneId is always in column GeneId1.
- #XZ, 12/16/2008: the input geneid can be of mouse, rat or human type
- def getTempLiteratureTable(self, species, input_species_geneid, returnNumber):
- # according to mysql the TEMPORARY TABLE name should not have to be unique because
- # it is only available to the current connection. This program will be invoked via command line, but if it
- # were to be invoked over mod_python this could cuase problems. mod_python will keep the connection alive
- # in its executing threads ( i think) so there is a potential for the table not being dropped between users.
- #XZ, 01/29/2009: To prevent the potential risk, I generate random table names and drop the tables after use them.
-
-
- # the 'input_species_geneid' could be rat or human geneid, need to translate it to mouse geneid
- translated_mouse_geneid = self.translateToMouseGeneID (species, input_species_geneid)
-
- tmpTableName_1 = webqtlUtil.genRandStr(prefix="LITERATURE")
-
- q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName_1
- q2 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId1,GeneId2,value FROM LCorrRamin3 WHERE GeneId1=%s' % (tmpTableName_1, translated_mouse_geneid)
- q3 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId2,GeneId1,value FROM LCorrRamin3 WHERE GeneId2=%s AND GeneId1!=%s' % (tmpTableName_1, translated_mouse_geneid,translated_mouse_geneid)
- for x in [q1,q2,q3]: self.cursor.execute(x)
-
- #XZ, 09/23/2008: Just use the top records insteard of using all records
- tmpTableName_2 = webqtlUtil.genRandStr(prefix="TOPLITERATURE")
-
- q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName_2
- self.cursor.execute(q1)
- q2 = 'SELECT GeneId1, GeneId2, value FROM %s ORDER BY value DESC' % tmpTableName_1
- self.cursor.execute(q2)
- result = self.cursor.fetchall()
-
- counter = 0 #this is to count how many records being inserted into table
- for one_row in result:
- mouse_geneid1, mouse_geneid2, lit_corr_alue = one_row
-
- #mouse_geneid1 has been tested before, now should test if mouse_geneid2 has corresponding geneid in other species
- translated_species_geneid = 0
- if species == 'mouse':
- translated_species_geneid = mouse_geneid2
- elif species == 'rat':
- self.cursor.execute( "SELECT rat FROM GeneIDXRef WHERE mouse=%d" % int(mouse_geneid2) )
- record = self.cursor.fetchone()
- if record:
- translated_species_geneid = record[0]
- elif species == 'human':
- self.cursor.execute( "SELECT human FROM GeneIDXRef WHERE mouse=%d" % int(mouse_geneid2) )
- record = self.cursor.fetchone()
- if record:
- translated_species_geneid = record[0]
-
- if translated_species_geneid:
- self.cursor.execute( 'INSERT INTO %s (GeneId1, GeneId2, value) VALUES (%d,%d,%f)' % (tmpTableName_2, int(input_species_geneid),int(translated_species_geneid), float(lit_corr_alue)) )
- counter = counter + 1
-
- #pay attention to the number
- if (counter > 2*returnNumber):
- break
-
- self.cursor.execute('DROP TEMPORARY TABLE %s' % tmpTableName_1)
-
- return tmpTableName_2
-
-
-
- #XZ, 09/23/2008: In tissue correlation tables, there is no record of GeneId1 == GeneId2
- #XZ, 09/24/2008: Note that the correlation value can be negative.
- def getTempTissueCorrTable(self, primaryTraitSymbol="", TissueProbeSetFreezeId=0, method="", returnNumber=0):
-
- def cmpTissCorrAbsoluteValue(A, B):
- try:
- if abs(A[1]) < abs(B[1]): return 1
- elif abs(A[1]) == abs(B[1]):
- return 0
- else: return -1
- except:
- return 0
-
- symbolCorrDict, symbolPvalueDict = self.calculateCorrOfAllTissueTrait(primaryTraitSymbol=primaryTraitSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method)
-
- symbolCorrList = symbolCorrDict.items()
-
- symbolCorrList.sort(cmpTissCorrAbsoluteValue)
- symbolCorrList = symbolCorrList[0 : 2*returnNumber]
-
- tmpTableName = webqtlUtil.genRandStr(prefix="TOPTISSUE")
-
- q1 = 'CREATE TEMPORARY TABLE %s (Symbol varchar(100) PRIMARY KEY, Correlation float, PValue float)' % tmpTableName
- self.cursor.execute(q1)
-
- for one_pair in symbolCorrList:
- one_symbol = one_pair[0]
- one_corr = one_pair[1]
- one_p_value = symbolPvalueDict[one_symbol]
-
- self.cursor.execute( "INSERT INTO %s (Symbol, Correlation, PValue) VALUES ('%s',%f,%f)" % (tmpTableName, one_symbol, float(one_corr), float(one_p_value)) )
-
- return tmpTableName
-
-
- #XZ, 01/09/2009: This function was created by David Crowell. Xiaodong cleaned up and modified it.
- def fetchLitCorrelations(self, species, GeneId, db, returnNumber): ### Used to generate Lit Correlations when calculations are done from text file. dcrowell August 2008
- """Uses getTempLiteratureTable to generate table of literatire correlations. This function then gathers that data and
- pairs it with the TraitID string. Takes as its arguments a formdata instance, and a database instance.
- Returns a dictionary of 'TraitID':'LitCorr' for the requested correlation"""
-
- tempTable = self.getTempLiteratureTable(species=species, input_species_geneid=GeneId, returnNumber=returnNumber)
-
- query = "SELECT %s.Name, %s.value" % (db.type,tempTable)
- query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
- query += ' LEFT JOIN %s ON %s.GeneId2=ProbeSet.GeneId ' % (tempTable,tempTable)
- query += "WHERE ProbeSet.GeneId IS NOT NULL AND %s.value IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable, db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
-
- self.cursor.execute(query)
- results = self.cursor.fetchall()
-
- litCorrDict = {}
-
- for entry in results:
- traitName,litcorr = entry
- litCorrDict[traitName] = litcorr
-
- self.cursor.execute('DROP TEMPORARY TABLE %s' % tempTable)
-
- return litCorrDict
-
-
-
- #XZ, 01/09/2009: Xiaodong created this function.
- def fetchTissueCorrelations(self, db, primaryTraitSymbol="", TissueProbeSetFreezeId=0, method="", returnNumber = 0):
- """Uses getTempTissueCorrTable to generate table of tissue correlations. This function then gathers that data and
- pairs it with the TraitID string. Takes as its arguments a formdata instance, and a database instance.
- Returns a dictionary of 'TraitID':(tissueCorr, tissuePValue) for the requested correlation"""
-
-
- tempTable = self.getTempTissueCorrTable(primaryTraitSymbol=primaryTraitSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method, returnNumber=returnNumber)
-
- query = "SELECT ProbeSet.Name, %s.Correlation, %s.PValue" % (tempTable, tempTable)
- query += ' FROM (ProbeSet, ProbeSetXRef, ProbeSetFreeze)'
- query += ' LEFT JOIN %s ON %s.Symbol=ProbeSet.Symbol ' % (tempTable,tempTable)
- query += "WHERE ProbeSetFreeze.Name = '%s' and ProbeSetFreeze.Id=ProbeSetXRef.ProbeSetFreezeId and ProbeSet.Id = ProbeSetXRef.ProbeSetId and ProbeSet.Symbol IS NOT NULL AND %s.Correlation IS NOT NULL" % (db.name, tempTable)
-
- self.cursor.execute(query)
- results = self.cursor.fetchall()
-
- tissueCorrDict = {}
-
- for entry in results:
- traitName, tissueCorr, tissuePValue = entry
- tissueCorrDict[traitName] = (tissueCorr, tissuePValue)
-
- self.cursor.execute('DROP TEMPORARY TABLE %s' % tempTable)
-
- return tissueCorrDict
-
-
-
- #XZ, 01/13/2008
- def getLiteratureCorrelationByList(self, input_trait_mouse_geneid=None, species=None, traitList=None):
-
- tmpTableName = webqtlUtil.genRandStr(prefix="LITERATURE")
-
- q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName
- q2 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId1,GeneId2,value FROM LCorrRamin3 WHERE GeneId1=%s' % (tmpTableName, input_trait_mouse_geneid)
- q3 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId2,GeneId1,value FROM LCorrRamin3 WHERE GeneId2=%s AND GeneId1!=%s' % (tmpTableName, input_trait_mouse_geneid, input_trait_mouse_geneid)
-
- for x in [q1,q2,q3]:
- self.cursor.execute(x)
-
- for thisTrait in traitList:
- try:
- if thisTrait.geneid:
- thisTrait.mouse_geneid = self.translateToMouseGeneID(species, thisTrait.geneid)
- else:
- thisTrait.mouse_geneid = 0
- except:
- thisTrait.mouse_geneid = 0
-
- if thisTrait.mouse_geneid and str(thisTrait.mouse_geneid).find(";") == -1:
- try:
- self.cursor.execute("SELECT value FROM %s WHERE GeneId2 = %s" % (tmpTableName, thisTrait.mouse_geneid))
- result = self.cursor.fetchone()
- if result:
- thisTrait.LCorr = result[0]
- else:
- thisTrait.LCorr = None
- except:
- thisTrait.LCorr = None
- else:
- thisTrait.LCorr = None
-
- self.cursor.execute("DROP TEMPORARY TABLE %s" % tmpTableName)
-
- return traitList
-
- def get_trait(self, cached, vals):
-
- if cached:
- _log.info("Using the fast method because the file exists")
- lit_corrs = {}
- tissue_corrs = {}
- use_lit = False
- if self.method == METHOD_LIT:
- lit_corrs = self.fetchLitCorrelations(species=self.species, GeneId=self.gene_id, db=self.db, returnNumber=self.returnNumber)
- use_lit = True
-
- use_tissue_corr = False
- if self.method in TISSUE_METHODS:
- tissue_corrs = self.fetchTissueCorrelations(db=self.db, primaryTraitSymbol=self.trait_symbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=self.method, returnNumber = self.returnNumber)
- use_tissue_corr = True
-
- DatabaseFileName = self.getFileName( target_db_name=self.target_db_name )
- datasetFile = open(webqtlConfig.TEXTDIR+DatabaseFileName,'r')
-
- #XZ, 01/08/2009: read the first line
- line = datasetFile.readline()
- cached_sample_names = webqtlUtil.readLineCSV(line)[1:]
-
- #XZ, 01/08/2009: This step is critical. It is necessary for this new method.
- #XZ: The original function fetchAllDatabaseData uses all strains stored in variable _strains to
- #XZ: retrieve the values of each strain from database in real time.
- #XZ: The new method uses all strains stored in variable dataset_strains to create a new variable
- #XZ: _newvals. _newvals has the same length as dataset_strains. The items in _newvals is in
- #XZ: the same order of items in dataset_strains. The value of each item in _newvals is either
- #XZ: the value of correspinding strain in _vals or 'None'.
- new_vals = []
- for name in cached_sample_names:
- if name in self.sample_names:
- new_vals.append(float(vals[self.sample_names.index(name)]))
- else:
- new_vals.append('None')
-
- nnCorr = len(new_vals)
-
- #XZ, 01/14/2009: If literature corr or tissue corr is selected,
- #XZ: there is no need to use parallel computing.
-
- traits = []
- data_start = 1
- for line in datasetFile:
- raw_trait = webqtlUtil.readLineCSV(line)
- trait = Trait.from_csv(raw_trait, data_start)
- trait.lit_corr = lit_corrs.get(trait.name)
- trait.tissue_corr, trait.p_tissue = tissue_corrs.get(trait.name, (None, None))
- traits.append(trait)
-
- return traits, new_vals
-
- else:
- _log.info("Using the slow method for correlation")
-
- _log.info("Fetching from database")
- traits = self.fetchAllDatabaseData(species=self.species, GeneId=self.gene_id, GeneSymbol=self.trait_symbol, strains=self.sample_names, db=self.db, method=self.method, returnNumber=self.returnNumber, tissueProbeSetFreezeId= self.tissue_probeset_freeze_id)
- _log.info("Done fetching from database")
- totalTraits = len(traits) #XZ, 09/18/2008: total trait number
-
- return traits, vals
-
-
- def do_parallel_correlation(self):
- _log.info("Invoking parallel computing")
- input_line_list = datasetFile.readlines()
- _log.info("Read lines from the file")
- all_line_number = len(input_line_list)
-
- step = 1000
- job_number = math.ceil( float(all_line_number)/step )
-
- job_input_lists = []
-
- _log.info("Configuring jobs")
-
- for job_index in range( int(job_number) ):
- starti = job_index*step
- endi = min((job_index+1)*step, all_line_number)
-
- one_job_input_list = []
-
- for i in range( starti, endi ):
- one_job_input_list.append( input_line_list[i] )
-
- job_input_lists.append( one_job_input_list )
-
- _log.info("Creating pp servers")
-
- ppservers = ()
- # Creates jobserver with automatically detected number of workers
- job_server = pp.Server(ppservers=ppservers)
-
- _log.info("Done creating servers")
-
- jobs = []
- results = []
-
- _log.info("Starting parallel computation, submitting jobs")
- for one_job_input_list in job_input_lists: #pay attention to modules from outside
- jobs.append( job_server.submit(func=compute_corr, args=(nnCorr, _newvals, one_job_input_list, self.method), depfuncs=(), modules=("utility.webqtlUtil",)) )
- _log.info("Done submitting jobs")
-
- for one_job in jobs:
- one_result = one_job()
- results.append( one_result )
-
- _log.info("Acquiring results")
-
- for one_result in results:
- for one_traitinfo in one_result:
- allcorrelations.append( one_traitinfo )
-
- _log.info("Appending the results")
-
- datasetFile.close()
- totalTraits = len(allcorrelations)
- _log.info("Done correlating using the fast method")
-
-
- def correlate(self, vals):
-
- correlations = []
-
- #XZ: Use the fast method only for probeset dataset, and this dataset must have been created.
- #XZ: Otherwise, use original method
- _log.info("Entering correlation")
-
- db_filename = self.getFileName( target_db_name=self.target_db_name )
-
- cache_available = db_filename in os.listdir(webqtlConfig.TEXTDIR)
-
- # If the cache file exists, do a cached correlation for probeset data
- if self.db.type == "ProbeSet":
-# if self.method in [METHOD_SAMPLE_PEARSON, METHOD_SAMPLE_RANK] and cache_available:
-# traits = do_parallel_correlation()
-#
-# else:
-
- (traits, vals) = self.get_trait(cache_available, vals)
-
- for trait in traits:
- trait.calculate_correlation(vals, self.method)
-
- self.record_count = len(traits) #ZS: This isn't a good way to get this value, so I need to change it later
-
- #XZ, 3/31/2010: Theoretically, we should create one function 'comTissueCorr'
- #to compare each trait by their tissue corr p values.
- #But because the tissue corr p values are generated by permutation test,
- #the top ones always have p value 0. So comparing p values actually does nothing.
- #In addition, for the tissue data in our database, the N is always the same.
- #So it's safe to compare with tissue corr statistic value.
- #That's the same as literature corr.
- #if self.method in [METHOD_LIT, METHOD_TISSUE_PEARSON, METHOD_TISSUE_RANK] and self.gene_id:
- # traits.sort(webqtlUtil.cmpLitCorr)
- #else:
- #if self.method in TISSUE_METHODS:
- # sort(traits, key=lambda A: math.fabs(A.tissue_corr))
- #elif self.method == METHOD_LIT:
- # traits.sort(traits, key=lambda A: math.fabs(A.lit_corr))
- #else:
- traits = sortTraitCorrelations(traits, self.method)
-
- # Strip to the top N correlations
- traits = traits[:min(self.returnNumber, len(traits))]
-
- addLiteratureCorr = False
- addTissueCorr = False
-
- trait_list = []
- for trait in traits:
- db_trait = webqtlTrait(db=self.db, name=trait.name, cursor=self.cursor)
- db_trait.retrieveInfo( QTL='Yes' )
-
- db_trait.Name = trait.name
- db_trait.corr = trait.correlation
- db_trait.nOverlap = trait.overlap
- db_trait.corrPValue = trait.p_value
-
- # NL, 07/19/2010
- # js function changed, add a new parameter rankOrder for js function 'showTissueCorrPlot'
- db_trait.RANK_ORDER = self.RANK_ORDERS[self.method]
-
- #XZ, 26/09/2008: Method is 4 or 5. Have fetched tissue corr, but no literature correlation yet.
- if self.method in TISSUE_METHODS:
- db_trait.tissueCorr = trait.tissue_corr
- db_trait.tissuePValue = trait.p_tissue
- addTissueCorr = True
-
-
- #XZ, 26/09/2008: Method is 3, Have fetched literature corr, but no tissue corr yet.
- elif self.method == METHOD_LIT:
- db_trait.LCorr = trait.lit_corr
- db_trait.mouse_geneid = self.translateToMouseGeneID(self.species, db_trait.geneid)
- addLiteratureCorr = True
-
- #XZ, 26/09/2008: Method is 1 or 2. Have NOT fetched literature corr and tissue corr yet.
- # Phenotype data will not have geneid, and neither will some probes
- # we need to handle this because we will get an attribute error
- else:
- if self.input_trait_mouse_gene_id and self.db.type=="ProbeSet":
- addLiteratureCorr = True
- if self.trait_symbol and self.db.type=="ProbeSet":
- addTissueCorr = True
-
- trait_list.append(db_trait)
-
- if addLiteratureCorr:
- trait_list = self.getLiteratureCorrelationByList(self.input_trait_mouse_gene_id,
- self.species, trait_list)
- if addTissueCorr:
- trait_list = self.getTissueCorrelationByList(
- primaryTraitSymbol = self.trait_symbol,
- traitList = trait_list,
- TissueProbeSetFreezeId = TISSUE_MOUSE_DB,
- method=self.method)
-
- return trait_list
-
-
- def calculateCorrOfAllTissueTrait(self, primaryTraitSymbol=None, TissueProbeSetFreezeId=None, method=None):
-
- symbolCorrDict = {}
- symbolPvalueDict = {}
-
- primaryTraitSymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[primaryTraitSymbol], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
- primaryTraitValue = primaryTraitSymbolValueDict.values()[0]
-
- SymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
-
- if method in ["2","5"]:
- symbolCorrDict, symbolPvalueDict = correlationFunction.batchCalTissueCorr(primaryTraitValue,SymbolValueDict,method='spearman')
- else:
- symbolCorrDict, symbolPvalueDict = correlationFunction.batchCalTissueCorr(primaryTraitValue,SymbolValueDict)
-
-
- return (symbolCorrDict, symbolPvalueDict)
-
-
-
- #XZ, 10/13/2010
- def getTissueCorrelationByList(self, primaryTraitSymbol=None, traitList=None, TissueProbeSetFreezeId=None, method=None):
-
- primaryTraitSymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[primaryTraitSymbol], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
-
- if primaryTraitSymbol.lower() in primaryTraitSymbolValueDict:
- primaryTraitValue = primaryTraitSymbolValueDict[primaryTraitSymbol.lower()]
-
- geneSymbolList = []
-
- for thisTrait in traitList:
- if hasattr(thisTrait, 'symbol'):
- geneSymbolList.append(thisTrait.symbol)
-
- SymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=geneSymbolList, TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
-
- for thisTrait in traitList:
- if hasattr(thisTrait, 'symbol') and thisTrait.symbol and thisTrait.symbol.lower() in SymbolValueDict:
- oneTraitValue = SymbolValueDict[thisTrait.symbol.lower()]
- if method in ["2","5"]:
- result = correlationFunction.calZeroOrderCorrForTiss( primaryTraitValue, oneTraitValue, method='spearman' )
- else:
- result = correlationFunction.calZeroOrderCorrForTiss( primaryTraitValue, oneTraitValue)
- thisTrait.tissueCorr = result[0]
- thisTrait.tissuePValue = result[2]
- else:
- thisTrait.tissueCorr = None
- thisTrait.tissuePValue = None
- else:
- for thisTrait in traitList:
- thisTrait.tissueCorr = None
- thisTrait.tissuePValue = None
-
- return traitList
-
-
- def getTopInfo(self, myTrait=None, method=None, db=None, target_db_name=None, returnNumber=None, methodDict=None, totalTraits=None, identification=None ):
-
- if myTrait:
- if method in ["1","2"]: #genetic correlation
- info = HT.Paragraph("Values of Record %s in the " % myTrait.getGivenName(), HT.Href(text=myTrait.db.fullname,url=webqtlConfig.INFOPAGEHREF % myTrait.db.name,target="_blank", Class="fwn"),
- " database were compared to all %d records in the " % self.record_count, HT.Href(text=db.fullname,url=webqtlConfig.INFOPAGEHREF % target_db_name,target="_blank", Class="fwn"),
- ' database. The top %d correlations ranked by the %s are displayed.' % (returnNumber,methodDict[method]),
- ' You can resort this list using the small arrowheads in the top row.')
- else:
- #myTrait.retrieveInfo()#need to know geneid and symbol
- if method == "3":#literature correlation
- searchDBName = "Literature Correlation"
- searchDBLink = "/correlationAnnotation.html#literatureCorr"
- else: #tissue correlation
- searchDBName = "Tissue Correlation"
- searchDBLink = "/correlationAnnotation.html#tissueCorr"
- info = HT.Paragraph("Your input record %s in the " % myTrait.getGivenName(), HT.Href(text=myTrait.db.fullname,url=webqtlConfig.INFOPAGEHREF % myTrait.db.name,target="_blank", Class="fwn"),
- " database corresponds to ",
- HT.Href(text='gene Id %s, and gene symbol %s' % (myTrait.geneid, myTrait.symbol), target='_blank',url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=%s" % myTrait.geneid, Class="fs12 fwn"),
- '. GN ranked all genes in the ', HT.Href(text=searchDBName,url=searchDBLink,target="_blank", Class="fwn"),' database by the %s.' % methodDict[method],
- ' The top %d probes or probesets in the ' % returnNumber, HT.Href(text=db.fullname,url=webqtlConfig.INFOPAGEHREF % target_db_name,target="_blank", Class="fwn"),
- ' database corresponding to the top genes ranked by the %s are displayed.' %( methodDict[method]),
- ' You can resort this list using the small arrowheads in the top row.' )
-
- elif identification:
- info = HT.Paragraph('Values of %s were compared to all %d traits in ' % (identification, self.record_count),
- HT.Href(text=db.fullname,url=webqtlConfig.INFOPAGEHREF % target_db_name,target="_blank",Class="fwn"),
- ' database. The TOP %d correlations ranked by the %s are displayed.' % (returnNumber,methodDict[method]),
- ' You can resort this list using the small arrowheads in the top row.')
-
- else:
- info = HT.Paragraph('Trait values were compared to all values in ',
- HT.Href(text=db.fullname,url=webqtlConfig.INFOPAGEHREF % target_db_name,target="_blank",Class="fwn"),
- ' database. The TOP %d correlations ranked by the %s are displayed.' % (returnNumber,methodDict[method]),
- ' You can resort this list using the small arrowheads in the top row.')
-
- if db.type=="Geno":
- info.append(HT.BR(),HT.BR(),'Clicking on the Locus will open the genotypes data for that locus. Click on the correlation to see a scatter plot of the trait data.')
- elif db.type=="Publish":
- info.append(HT.BR(),HT.BR(),'Clicking on the record ID will open the published phenotype data for that publication. Click on the correlation to see a scatter plot of the trait data. ')
- elif db.type=="ProbeSet":
- info.append(HT.BR(),'Click the correlation values to generate scatter plots. Select the Record ID to open the Trait Data and Analysis form. Select the symbol to open NCBI Entrez.')
- else:
- pass
-
-
- return info
-
-
- 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 getTableHeaderForGeno(self, method=None, worksheet=None, newrow=None, headingStyle=None):
-
- tblobj_header = []
-
- if method in ["1","3","4"]:
- tblobj_header = [[THCell(HT.TD(' ', Class="fs13 fwb ffl b1 cw cbrb"), 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('Location', HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text='Location (Chr and Mb)', idx=2),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'r', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample r", idx=3),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=4),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(r)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(r)", idx=5)]]
-
- for ncol, item in enumerate(['Record ID', 'Location (Chr, Mb)', 'Sample r', 'N Cases', 'Sample p(r)']):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
- else:
- tblobj_header = [[THCell(HT.TD(' ', Class="fs13 fwb ffl b1 cw cbrb"), 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('Location', HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text='Location (Chr and Mb)', idx=2),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'rho', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample rho", idx=3),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=4),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(rho)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(rho)", idx=5)]]
-
- for ncol, item in enumerate(['Record ID', 'Location (Chr, Mb)', 'Sample rho', 'N Cases', 'Sample p(rho)']):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
-
-
- return tblobj_header, worksheet
-
-
- def getTableBodyForGeno(self, traitList, formName=None, worksheet=None, newrow=None, corrScript=None):
-
- tblobj_body = []
-
- for thisTrait in traitList:
- tr = []
-
- trId = str(thisTrait)
-
- corrScript.append('corrArray["%s"] = {corr:%1.4f};' % (trId, thisTrait.corr))
-
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class="fs12 fwn ffl b1 c222"), text=trId))
-
- tr.append(TDCell(HT.TD(HT.Href(text=thisTrait.name,url="javascript:showTrait('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn ffl"),align="left", Class="fs12 fwn ffl b1 c222"), text=thisTrait.name, val=thisTrait.name.upper()))
-
- #XZ: trait_location_value is used for sorting
- trait_location_repr = '--'
- trait_location_value = 1000000
-
- if thisTrait.chr and thisTrait.mb:
- try:
- trait_location_value = int(thisTrait.chr)*1000 + thisTrait.mb
- except:
- if thisTrait.chr.upper() == 'X':
- trait_location_value = 20*1000 + thisTrait.mb
- else:
- trait_location_value = ord(str(thisTrait.chr).upper()[0])*1000 + thisTrait.mb
-
- trait_location_repr = 'Chr%s: %.6f' % (thisTrait.chr, float(thisTrait.mb) )
-
- tr.append(TDCell(HT.TD(trait_location_repr, Class="fs12 fwn b1 c222", nowrap="on"), trait_location_repr, trait_location_value))
-
-
- repr='%3.3f' % thisTrait.corr
- tr.append(TDCell(HT.TD(HT.Href(text=repr, url="javascript:showCorrPlot('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn ffl"), Class="fs12 fwn ffl b1 c222", nowrap='ON', align='right'),repr,abs(thisTrait.corr)))
-
- repr = '%d' % thisTrait.nOverlap
- tr.append(TDCell(HT.TD(repr, Class="fs12 fwn ffl b1 c222",align='right'),repr,thisTrait.nOverlap))
-
- repr = webqtlUtil.SciFloat(thisTrait.corrPValue)
- tr.append(TDCell(HT.TD(repr,nowrap='ON', Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.corrPValue))
-
- tblobj_body.append(tr)
-
- for ncol, item in enumerate([thisTrait.name, trait_location_repr, thisTrait.corr, thisTrait.nOverlap, thisTrait.corrPValue]):
- worksheet.write([newrow, ncol], item)
- newrow += 1
-
- return tblobj_body, worksheet, corrScript
-
-
- def getTableHeaderForPublish(self, method=None, worksheet=None, newrow=None, headingStyle=None):
-
- tblobj_header = []
-
- if method in ["1","3","4"]:
- 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", nowrap="on"), text="Record ID", idx=1),
- THCell(HT.TD('Phenotype', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="Phenotype", idx=2),
- THCell(HT.TD('Authors', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="Authors", idx=3),
- THCell(HT.TD('Year', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", 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="Max 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="Max LRS Location", idx=6),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'r', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample r", idx=7),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=8),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(r)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(r)", idx=9)]]
-
- for ncol, item in enumerate(["Record", "Phenotype", "Authors", "Year", "Pubmed Id", "Max LRS", "Max LRS Location (Chr: Mb)", "Sample r", "N Cases", "Sample p(r)"]):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
- else:
- 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", nowrap="on"), text="Record ID", idx=1),
- THCell(HT.TD('Phenotype', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="Phenotype", idx=2),
- THCell(HT.TD('Authors', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap="on"), text="Authors", idx=3),
- THCell(HT.TD('Year', HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", 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="Max 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="Max LRS Location", idx=6),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'rho', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample rho", idx=7),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=8),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(rho)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(rho)", idx=9)]]
-
- for ncol, item in enumerate(["Record", "Phenotype", "Authors", "Year", "Pubmed Id", "Max LRS", "Max LRS Location (Chr: Mb)", "Sample rho", "N Cases", "Sample p(rho)"]):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
-
-
- return tblobj_header, worksheet
-
-
- def getTableBodyForPublish(self, traitList, formName=None, worksheet=None, newrow=None, corrScript=None, species=''):
-
- tblobj_body = []
-
- for thisTrait in traitList:
- tr = []
-
- trId = str(thisTrait)
-
- corrScript.append('corrArray["%s"] = {corr:%1.4f};' % (trId, thisTrait.corr))
-
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class="fs12 fwn ffl b1 c222"), text=trId))
-
- tr.append(TDCell(HT.TD(HT.Href(text=thisTrait.name,url="javascript:showTrait('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn"), nowrap="yes",align="center", Class="fs12 fwn b1 c222"),str(thisTrait.name), thisTrait.name))
-
- PhenotypeString = thisTrait.post_publication_description
- if thisTrait.confidential:
- if not webqtlUtil.hasAccessToConfidentialPhenotypeTrait(privilege=self.privilege, userName=self.userName, authorized_users=thisTrait.authorized_users):
- PhenotypeString = thisTrait.pre_publication_description
-
- tr.append(TDCell(HT.TD(PhenotypeString, Class="fs12 fwn b1 c222"), PhenotypeString, PhenotypeString.upper()))
-
- tr.append(TDCell(HT.TD(thisTrait.authors, Class="fs12 fwn b1 c222 fsI"),thisTrait.authors, thisTrait.authors.strip().upper()))
-
- try:
- PubMedLinkText = myear = repr = int(thisTrait.year)
- except:
- PubMedLinkText = repr = "--"
- myear = 0
- if thisTrait.pubmed_id:
- PubMedLink = HT.Href(text= repr,url= webqtlConfig.PUBMEDLINK_URL % thisTrait.pubmed_id,target='_blank', Class="fs12 fwn")
- else:
- PubMedLink = repr
-
- tr.append(TDCell(HT.TD(PubMedLink, Class="fs12 fwn b1 c222", align='center'), repr, myear))
-
- #LRS and its location
- LRS_score_repr = '--'
- LRS_score_value = 0
- LRS_location_repr = '--'
- LRS_location_value = 1000000
- LRS_flag = 1
-
- #Max LRS and its Locus location
- if thisTrait.lrs and thisTrait.locus:
- self.cursor.execute("""
- select Geno.Chr, Geno.Mb from Geno, Species
- where Species.Name = '%s' and
- Geno.Name = '%s' and
- Geno.SpeciesId = Species.Id
- """ % (species, thisTrait.locus))
- result = self.cursor.fetchone()
-
- if result:
- if result[0] and result[1]:
- LRS_Chr = result[0]
- LRS_Mb = result[1]
-
- #XZ: LRS_location_value is used for sorting
- try:
- LRS_location_value = int(LRS_Chr)*1000 + float(LRS_Mb)
- except:
- if LRS_Chr.upper() == 'X':
- LRS_location_value = 20*1000 + float(LRS_Mb)
- else:
- LRS_location_value = ord(str(LRS_chr).upper()[0])*1000 + float(LRS_Mb)
-
-
- LRS_score_repr = '%3.1f' % thisTrait.lrs
- LRS_score_value = thisTrait.lrs
- LRS_location_repr = 'Chr%s: %.6f' % (LRS_Chr, float(LRS_Mb) )
- LRS_flag = 0
-
- #tr.append(TDCell(HT.TD(HT.Href(text=LRS_score_repr,url="javascript:showIntervalMapping('%s', '%s : %s')" % (formName, thisTrait.db.shortname, thisTrait.name), Class="fs12 fwn"), Class="fs12 fwn ffl b1 c222", align='right', nowrap="on"),LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_score_repr, Class="fs12 fwn b1 c222", align='right', nowrap="on"), LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_location_repr, Class="fs12 fwn b1 c222"), LRS_location_repr, LRS_location_value))
-
- if LRS_flag:
- tr.append(TDCell(HT.TD(LRS_score_repr, Class="fs12 fwn b1 c222"), LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_location_repr, Class="fs12 fwn b1 c222"), LRS_location_repr, LRS_location_value))
-
- repr = '%3.4f' % thisTrait.corr
- tr.append(TDCell(HT.TD(HT.Href(text=repr,url="javascript:showCorrPlot('%s', '%s')" % (formName,thisTrait.name), Class="fs12 fwn"), Class="fs12 fwn b1 c222", align='right',nowrap="on"), repr, abs(thisTrait.corr)))
-
- repr = '%d' % thisTrait.nOverlap
- tr.append(TDCell(HT.TD(repr, Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.nOverlap))
-
- repr = webqtlUtil.SciFloat(thisTrait.corrPValue)
- tr.append(TDCell(HT.TD(repr,nowrap='ON', Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.corrPValue))
-
- tblobj_body.append(tr)
-
- for ncol, item in enumerate([thisTrait.name, PhenotypeString, thisTrait.authors, thisTrait.year, thisTrait.pubmed_id, LRS_score_repr, LRS_location_repr, thisTrait.corr, thisTrait.nOverlap, thisTrait.corrPValue]):
- worksheet.write([newrow, ncol], item)
- newrow += 1
-
- return tblobj_body, worksheet, corrScript
-
-
- def getTableHeaderForProbeSet(self, method=None, worksheet=None, newrow=None, headingStyle=None):
-
- tblobj_header = []
-
- if method in ["1","3","4"]:
- 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('Gene',HT.BR(), 'ID',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Gene ID", idx=2),
- THCell(HT.TD('Homologene',HT.BR(), 'ID',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Homologene ID", idx=3),
- THCell(HT.TD('Symbol',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Symbol", idx=4),
- THCell(HT.TD('Description',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Description", idx=5),
- THCell(HT.TD('Location',HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Location (Chr: Mb)", idx=6),
- THCell(HT.TD('Mean',HT.BR(),'Expr',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Mean Expr", idx=7),
- THCell(HT.TD('Max',HT.BR(),'LRS',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Max LRS", idx=8),
- THCell(HT.TD('Max LRS Location',HT.BR(),'Chr and Mb',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Max LRS Location (Chr: Mb)", idx=9),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'r', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample r", idx=10),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=11),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(r)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(r)", idx=12),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Lit',HT.BR(), 'Corr', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#literatureCorr"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Lit Corr", idx=13),
- #XZ, 09/22/2008: tissue correlation
- THCell(HT.TD(HT.Href(
- text = HT.Span('Tissue',HT.BR(), 'r', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#tissue_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Tissue r", idx=14),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Tissue',HT.BR(), 'p(r)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#tissue_p_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Tissue p(r)", idx=15)]]
-
- for ncol, item in enumerate(['Record', 'Gene ID', 'Homologene ID', 'Symbol', 'Description', 'Location (Chr: Mb)', 'Mean Expr', 'Max LRS', 'Max LRS Location (Chr: Mb)', 'Sample r', 'N Cases', 'Sample p(r)', 'Lit Corr', 'Tissue r', 'Tissue p(r)']):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
- else:
- 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('Gene',HT.BR(), 'ID',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Gene ID", idx=2),
- THCell(HT.TD('Homologene',HT.BR(), 'ID',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Homologene ID", idx=3),
- THCell(HT.TD('Symbol',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Symbol", idx=4),
- THCell(HT.TD('Description',HT.BR(),HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Description", idx=5),
- THCell(HT.TD('Location',HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Location (Chr: Mb)", idx=6),
- THCell(HT.TD('Mean',HT.BR(),'Expr',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="Mean Expr", idx=7),
- THCell(HT.TD('Max',HT.BR(),'LRS',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Max LRS", idx=8),
- THCell(HT.TD('Max LRS Location',HT.BR(),'Chr and Mb',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Max LRS Location (Chr: Mb)", idx=9),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'rho', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample rho", idx=10),
- THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=11),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Sample',HT.BR(), 'p(rho)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#genetic_p_rho"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(rho)", idx=12),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Lit',HT.BR(), 'Corr', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#literatureCorr"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Lit Corr", idx=13),
- #XZ, 09/22/2008: tissue correlation
- THCell(HT.TD(HT.Href(
- text = HT.Span('Tissue',HT.BR(), 'rho', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#tissue_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Tissue rho", idx=14),
- THCell(HT.TD(HT.Href(
- text = HT.Span('Tissue',HT.BR(), 'p(rho)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
- target = '_blank',
- url = "/correlationAnnotation.html#tissue_p_r"),
- Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Tissue p(rho)", idx=15)]]
-
- for ncol, item in enumerate(['Record ID', 'Gene ID', 'Homologene ID', 'Symbol', 'Description', 'Location (Chr: Mb)', 'Mean Expr', 'Max LRS', 'Max LRS Location (Chr: Mb)', 'Sample rho', 'N Cases', 'Sample p(rho)', 'Lit Corr', 'Tissue rho', 'Tissue p(rho)']):
- worksheet.write([newrow, ncol], item, headingStyle)
- worksheet.set_column([ncol, ncol], 2*len(item))
-
- return tblobj_header, worksheet
-
-
- def getTableBodyForProbeSet(self, traitList=[], primaryTrait=None, formName=None, worksheet=None, newrow=None, corrScript=None, species=''):
-
- tblobj_body = []
-
- for thisTrait in traitList:
-
- if thisTrait.symbol:
- pass
- else:
- thisTrait.symbol = "--"
-
- if thisTrait.geneid:
- symbolurl = HT.Href(text=thisTrait.symbol,target='_blank',url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=%s" % thisTrait.geneid, Class="fs12 fwn")
- else:
- symbolurl = HT.Href(text=thisTrait.symbol,target='_blank',url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=%s" % thisTrait.symbol, Class="fs12 fwn")
-
- tr = []
-
- trId = str(thisTrait)
-
- corrScript.append('corrArray["%s"] = {corr:%1.4f};' % (trId, thisTrait.corr))
-
- #XZ, 12/08/2008: checkbox
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class="fs12 fwn ffl b1 c222"), text=trId))
-
- #XZ, 12/08/2008: probeset name
- tr.append(TDCell(HT.TD(HT.Href(text=thisTrait.name,url="javascript:showTrait('%s', '%s')" % (formName,thisTrait.name), Class="fs12 fwn"), Class="fs12 fwn b1 c222"), thisTrait.name, thisTrait.name.upper()))
-
- #XZ, 12/08/2008: gene id
- if thisTrait.geneid:
- tr.append(TDCell(None, thisTrait.geneid, val=999))
- else:
- tr.append(TDCell(None, thisTrait.geneid, val=999))
-
- #XZ, 12/08/2008: homologene id
- if thisTrait.homologeneid:
- tr.append(TDCell("", thisTrait.homologeneid, val=999))
- else:
- tr.append(TDCell("", thisTrait.homologeneid, val=999))
-
- #XZ, 12/08/2008: gene symbol
- tr.append(TDCell(HT.TD(symbolurl, Class="fs12 fwn b1 c222 fsI"),thisTrait.symbol, thisTrait.symbol.upper()))
-
- #XZ, 12/08/2008: description
- #XZ, 06/05/2009: Rob asked to add probe target description
- description_string = str(thisTrait.description).strip()
- target_string = str(thisTrait.probe_target_description).strip()
-
- description_display = ''
-
- if len(description_string) > 1 and description_string != 'None':
- description_display = description_string
- else:
- description_display = thisTrait.symbol
-
- 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="fs12 fwn b1 c222"), description_display, description_display))
-
- #XZ: trait_location_value is used for sorting
- trait_location_repr = '--'
- trait_location_value = 1000000
-
- if thisTrait.chr and thisTrait.mb:
- try:
- trait_location_value = int(thisTrait.chr)*1000 + thisTrait.mb
- except:
- if thisTrait.chr.upper() == 'X':
- trait_location_value = 20*1000 + thisTrait.mb
- else:
- trait_location_value = ord(str(thisTrait.chr).upper()[0])*1000 + thisTrait.mb
-
- trait_location_repr = 'Chr%s: %.6f' % (thisTrait.chr, float(thisTrait.mb) )
-
- tr.append(TDCell(HT.TD(trait_location_repr, Class="fs12 fwn b1 c222", nowrap="on"), trait_location_repr, trait_location_value))
-
- """
- #XZ, 12/08/2008: chromosome number
- #XZ, 12/10/2008: use Mbvalue to sort chromosome
- tr.append(TDCell( HT.TD(thisTrait.chr, Class="fs12 fwn b1 c222", align='right'), thisTrait.chr, Mbvalue) )
-
- #XZ, 12/08/2008: Rob wants 6 digit precision, and we have to deal with that the mb could be None
- if not thisTrait.mb:
- tr.append(TDCell(HT.TD(thisTrait.mb, Class="fs12 fwn b1 c222",align='right'), thisTrait.mb, Mbvalue))
- else:
- tr.append(TDCell(HT.TD('%.6f' % thisTrait.mb, Class="fs12 fwn b1 c222", align='right'), thisTrait.mb, Mbvalue))
- """
-
-
-
- #XZ, 01/12/08: This SQL query is much faster.
- self.cursor.execute("""
- select ProbeSetXRef.mean from ProbeSetXRef, ProbeSet
- where ProbeSetXRef.ProbeSetFreezeId = %d and
- ProbeSet.Id = ProbeSetXRef.ProbeSetId and
- ProbeSet.Name = '%s'
- """ % (thisTrait.db.id, thisTrait.name))
- result = self.cursor.fetchone()
- if result:
- if result[0]:
- mean = result[0]
- else:
- mean=0
- else:
- mean = 0
-
- #XZ, 06/05/2009: It is neccessary to turn on nowrap
- repr = "%2.3f" % mean
- tr.append(TDCell(HT.TD(repr, Class="fs12 fwn ffl b1 c222", align='right', nowrap='ON'),repr, mean))
-
- #LRS and its location
- LRS_score_repr = '--'
- LRS_score_value = 0
- LRS_location_repr = '--'
- LRS_location_value = 1000000
- LRS_flag = 1
-
- #Max LRS and its Locus location
- if thisTrait.lrs and thisTrait.locus:
- self.cursor.execute("""
- select Geno.Chr, Geno.Mb from Geno, Species
- where Species.Name = '%s' and
- Geno.Name = '%s' and
- Geno.SpeciesId = Species.Id
- """ % (species, thisTrait.locus))
- result = self.cursor.fetchone()
-
- if result:
- if result[0] and result[1]:
- LRS_Chr = result[0]
- LRS_Mb = result[1]
-
- #XZ: LRS_location_value is used for sorting
- try:
- LRS_location_value = int(LRS_Chr)*1000 + float(LRS_Mb)
- except:
- if LRS_Chr.upper() == 'X':
- LRS_location_value = 20*1000 + float(LRS_Mb)
- else:
- LRS_location_value = ord(str(LRS_chr).upper()[0])*1000 + float(LRS_Mb)
-
-
- LRS_score_repr = '%3.1f' % thisTrait.lrs
- LRS_score_value = thisTrait.lrs
- LRS_location_repr = 'Chr%s: %.6f' % (LRS_Chr, float(LRS_Mb) )
- LRS_flag = 0
-
- #tr.append(TDCell(HT.TD(HT.Href(text=LRS_score_repr,url="javascript:showIntervalMapping('%s', '%s : %s')" % (formName, thisTrait.db.shortname, thisTrait.name), Class="fs12 fwn"), Class="fs12 fwn ffl b1 c222", align='right', nowrap="on"),LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_score_repr, Class="fs12 fwn b1 c222", align='right', nowrap="on"), LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_location_repr, Class="fs12 fwn b1 c222", nowrap="on"), LRS_location_repr, LRS_location_value))
-
- if LRS_flag:
- tr.append(TDCell(HT.TD(LRS_score_repr, Class="fs12 fwn b1 c222"), LRS_score_repr, LRS_score_value))
- tr.append(TDCell(HT.TD(LRS_location_repr, Class="fs12 fwn b1 c222"), LRS_location_repr, LRS_location_value))
-
-
- #XZ, 12/08/2008: generic correlation
- repr='%3.3f' % thisTrait.corr
- tr.append(TDCell(HT.TD(HT.Href(text=repr, url="javascript:showCorrPlot('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn ffl"), Class="fs12 fwn ffl b1 c222", align='right'),repr,abs(thisTrait.corr)))
-
- #XZ, 12/08/2008: number of overlaped cases
- repr = '%d' % thisTrait.nOverlap
- tr.append(TDCell(HT.TD(repr, Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.nOverlap))
-
- #XZ, 12/08/2008: p value of genetic correlation
- repr = webqtlUtil.SciFloat(thisTrait.corrPValue)
- tr.append(TDCell(HT.TD(repr,nowrap='ON', Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.corrPValue))
-
- #XZ, 12/08/2008: literature correlation
- LCorr = 0.0
- LCorrStr = "--"
- if hasattr(thisTrait, 'LCorr') and thisTrait.LCorr:
- LCorr = thisTrait.LCorr
- LCorrStr = "%2.3f" % thisTrait.LCorr
- tr.append(TDCell(HT.TD(LCorrStr, Class="fs12 fwn b1 c222", align='right'), LCorrStr, abs(LCorr)))
-
- #XZ, 09/22/2008: tissue correlation.
- TCorr = 0.0
- TCorrStr = "--"
- #XZ, 11/20/2008: need to pass two geneids: input_trait_mouse_geneid and thisTrait.mouse_geneid
- if hasattr(thisTrait, 'tissueCorr') and thisTrait.tissueCorr:
- TCorr = thisTrait.tissueCorr
- TCorrStr = "%2.3f" % thisTrait.tissueCorr
- # NL, 07/19/2010: add a new parameter rankOrder for js function 'showTissueCorrPlot'
- rankOrder = self.RANK_ORDERS[self.method]
- TCorrPlotURL = "javascript:showTissueCorrPlot('%s','%s','%s',%d)" %(formName, primaryTrait.symbol, thisTrait.symbol,rankOrder)
- tr.append(TDCell(HT.TD(HT.Href(text=TCorrStr, url=TCorrPlotURL, Class="fs12 fwn ff1"), Class="fs12 fwn ff1 b1 c222", align='right'), TCorrStr, abs(TCorr)))
- else:
- tr.append(TDCell(HT.TD(TCorrStr, Class="fs12 fwn b1 c222", align='right'), TCorrStr, abs(TCorr)))
-
- #XZ, 12/08/2008: p value of tissue correlation
- TPValue = 1.0
- TPValueStr = "--"
- if hasattr(thisTrait, 'tissueCorr') and thisTrait.tissuePValue: #XZ, 09/22/2008: thisTrait.tissuePValue can't be used here because it could be 0
- TPValue = thisTrait.tissuePValue
- TPValueStr = "%2.3f" % thisTrait.tissuePValue
- tr.append(TDCell(HT.TD(TPValueStr, Class="fs12 fwn b1 c222", align='right'), TPValueStr, TPValue))
-
- tblobj_body.append(tr)
-
- for ncol, item in enumerate([thisTrait.name, thisTrait.geneid, thisTrait.homologeneid, thisTrait.symbol, thisTrait.description, trait_location_repr, mean, LRS_score_repr, LRS_location_repr, thisTrait.corr, thisTrait.nOverlap, thisTrait.corrPValue, LCorr, TCorr, TPValue]):
- worksheet.write([newrow, ncol], item)
-
- newrow += 1
-
- return tblobj_body, worksheet, corrScript
diff --git a/wqflask/wqflask/correlation/correlationFunction.py b/wqflask/wqflask/correlation/correlationFunction.py
index 2c1870fe..7d4b58a9 100644
--- a/wqflask/wqflask/correlation/correlationFunction.py
+++ b/wqflask/wqflask/correlation/correlationFunction.py
@@ -31,7 +31,7 @@ import pp
import string
from utility import webqtlUtil
-from base.webqtlTrait import GeneralTrait
+from base.trait import GeneralTrait
from dbFunction import webqtlDatabaseFunction
diff --git a/wqflask/wqflask/correlation/correlation_plot.py b/wqflask/wqflask/correlation/correlation_plot.py
new file mode 100644
index 00000000..4b043fc3
--- /dev/null
+++ b/wqflask/wqflask/correlation/correlation_plot.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+
+from __future__ import print_function, division
+
+from base.trait import GeneralTrait
+from base import data_set
+from wqflask.show_trait.SampleList import SampleList
+
+class CorrelationPlot(object):
+ """Page that displays a correlation scatterplot with a line fitted to it"""
+
+ def __init__(self, start_vars):
+ self.dataset1 = data_set.create_dataset(start_vars['dataset1'])
+ self.trait1 = GeneralTrait(dataset=self.dataset1.name,
+ name=start_vars['trait1'])
+
+ self.dataset2 = data_set.create_dataset(start_vars['dataset2'])
+ self.trait2 = GeneralTrait(dataset=self.dataset2.name,
+ name=start_vars['trait2'])
+
+ sample_names_1 = self.get_sample_names(self.dataset1)
+ sample_names_2 = self.get_sample_names(self.dataset2)
+
+ self.samples_1 = self.get_samples(self.dataset1, sample_names_1, self.trait1)
+ self.samples_2 = self.get_samples(self.dataset2, sample_names_2, self.trait2)
+
+
+ def get_sample_names(self, dataset):
+ if dataset.group.parlist:
+ sample_names = (dataset.group.parlist +
+ dataset.group.f1list +
+ dataset.group.samplelist)
+ elif dataset.group.f1list:
+ sample_names = dataset.group.f1list + dataset.group.samplelist
+ else:
+ sample_names = dataset.group.samplelist
+
+ return sample_names
+
+
+ def get_samples(self, dataset, sample_names, trait):
+ samples = SampleList(dataset = dataset,
+ sample_names=sample_names,
+ this_trait=trait,
+ sample_group_type='primary',
+ header="%s Only" % (dataset.group.name))
+
+ return samples \ No newline at end of file
diff --git a/wqflask/wqflask/correlation/show_corr_results.py b/wqflask/wqflask/correlation/show_corr_results.py
new file mode 100644
index 00000000..3b1ac87d
--- /dev/null
+++ b/wqflask/wqflask/correlation/show_corr_results.py
@@ -0,0 +1,1102 @@
+## Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Affero General Public License
+# as published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the GNU Affero General Public License for more details.
+#
+# This program is available from Source Forge: at GeneNetwork Project
+# (sourceforge.net/projects/genenetwork/).
+#
+# Contact Dr. Robert W. Williams at rwilliams@uthsc.edu
+#
+#
+# This module is used by GeneNetwork project (www.genenetwork.org)
+
+from __future__ import absolute_import, print_function, division
+
+import gc
+import string
+import cPickle
+import os
+import time
+import pp
+import math
+import collections
+import resource
+
+import scipy
+
+from pprint import pformat as pf
+
+from htmlgen import HTMLgen2 as HT
+import reaper
+
+from base import webqtlConfig
+from utility.THCell import THCell
+from utility.TDCell import TDCell
+from base.trait import GeneralTrait
+from base import data_set
+from base.templatePage import templatePage
+from utility import webqtlUtil, helper_functions
+from dbFunction import webqtlDatabaseFunction
+import utility.webqtlUtil #this is for parallel computing only.
+from wqflask.correlation import correlationFunction
+from utility.benchmark import Bench
+
+from pprint import pformat as pf
+
+METHOD_SAMPLE_PEARSON = "1"
+METHOD_SAMPLE_RANK = "2"
+METHOD_LIT = "3"
+METHOD_TISSUE_PEARSON = "4"
+METHOD_TISSUE_RANK = "5"
+
+TISSUE_METHODS = [METHOD_TISSUE_PEARSON, METHOD_TISSUE_RANK]
+
+TISSUE_MOUSE_DB = 1
+
+def print_mem(stage=""):
+ mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
+ print("{}: {}".format(stage, mem/1024))
+
+
+class AuthException(Exception):
+ pass
+
+class CorrelationResults(object):
+
+ corr_min_informative = 4
+
+ #PAGE_HEADING = "Correlation Table"
+ #CORRELATION_METHODS = {"1" : "Genetic Correlation (Pearson's r)",
+ # "2" : "Genetic Correlation (Spearman's rho)",
+ # "3" : "SGO Literature Correlation",
+ # "4" : "Tissue Correlation (Pearson's r)",
+ # "5" : "Tissue Correlation (Spearman's rho)"}
+ #
+ #RANK_ORDERS = {"1": 0, "2": 1, "3": 0, "4": 0, "5": 1}
+
+ def __init__(self, start_vars):
+ # get trait list from db (database name)
+ # calculate correlation with Base vector and targets
+
+ #self.this_trait = GeneralTrait(dataset=self.dataset.name,
+ # name=start_vars['trait_id'],
+ # cellid=None)
+ #print("start_vars: ", pf(start_vars))
+ with Bench("Doing correlations"):
+ helper_functions.get_species_dataset_trait(self, start_vars)
+ self.dataset.group.read_genotype_file()
+
+ corr_samples_group = start_vars['corr_samples_group']
+
+ self.sample_data = {}
+ self.corr_method = start_vars['corr_sample_method']
+
+ #The two if statements below append samples to the sample list based upon whether the user
+ #rselected Primary Samples Only, Other Samples Only, or All Samples
+
+ primary_samples = (self.dataset.group.parlist +
+ self.dataset.group.f1list +
+ self.dataset.group.samplelist)
+
+ #If either BXD/whatever Only or All Samples, append all of that group's samplelist
+ if corr_samples_group != 'samples_other':
+ self.process_samples(start_vars, primary_samples, ())
+
+ #If either Non-BXD/whatever or All Samples, get all samples from this_trait.data and
+ #exclude the primary samples (because they would have been added in the previous
+ #if statement if the user selected All Samples)
+ if corr_samples_group != 'samples_primary':
+ self.process_samples(start_vars, self.this_trait.data.keys(), primary_samples)
+
+ self.target_dataset = data_set.create_dataset(start_vars['corr_dataset'])
+ self.target_dataset.get_trait_data()
+
+
+ self.correlation_data = {}
+ for trait, values in self.target_dataset.trait_data.iteritems():
+ this_trait_values = []
+ target_values = []
+ for index, sample in enumerate(self.target_dataset.samplelist):
+ if sample in self.sample_data:
+ sample_value = self.sample_data[sample]
+ target_sample_value = values[index]
+ this_trait_values.append(sample_value)
+ target_values.append(target_sample_value)
+
+ this_trait_values, target_values, num_overlap = normalize_values(this_trait_values,
+ target_values)
+
+ if self.corr_method == 'pearson':
+ sample_r, sample_p = scipy.stats.pearsonr(this_trait_values, target_values)
+ else:
+ sample_r, sample_p = scipy.stats.spearmanr(this_trait_values, target_values)
+
+ self.correlation_data[trait] = [sample_r, sample_p, num_overlap]
+
+ self.correlation_data = collections.OrderedDict(sorted(self.correlation_data.items(),
+ key=lambda t: -abs(t[1][0])))
+
+ self.correlation_results = []
+
+ #self.correlation_data_slice = collections.OrderedDict()
+
+ for trait_counter, trait in enumerate(self.correlation_data.keys()[:300]):
+ trait_object = GeneralTrait(dataset=self.dataset, name=trait, get_qtl_info=True)
+ trait_object.sample_r = self.correlation_data[trait][0]
+ trait_object.sample_p = self.correlation_data[trait][1]
+ trait_object_num_overlap = self.correlation_data[trait][2]
+ self.correlation_results.append(trait_object)
+
+ #self.correlation_data_slice[trait] = self.correlation_data[trait]
+ #self.correlation_data_slice[trait].append(trait_object)
+ #if self.dataset.type == 'ProbeSet':
+ # trait_info = collections.OrderedDict(
+ # correlation = float(self.correlation_data[trait][0]),
+ # p_value = float(self.correlation_data[trait][1]),
+ # symbol = trait_object.symbol,
+ # alias = trait_object.alias,
+ # description = trait_object.description,
+ # chromosome = trait_object.chr,
+ # mb = trait_object.mb
+ # )
+ # if trait_object.mean:
+ # trait_info[mean] = trait_object.mean
+ # if hasattr(trait_object, 'mean'):
+ # trait_info[mean] = trait_object.mean
+ # if hasattr(trait_object, 'lrs'):
+ # trait_info[lrs] = trait_object.lrs
+ # if hasattr(trait_object, 'locus_chr'):
+ # trait_info[locus_chr] = trait_object.locus_chr
+ # if hasattr(trait_object, 'locus_mb'):
+ # trait_info[locus_mb] = trait_object.locus_mb
+ #elif self.dataset.type == 'Geno':
+ # trait_info = collections.OrderedDict(
+ # correlation = float(self.correlation_data[trait][0]),
+ # p_value = float(self.correlation_data[trait][1]),
+ # symbol = trait_object.symbol,
+ # alias = trait_object.alias,
+ # description = trait_object.description,
+ # chromosome = trait_object.chr,
+ # mb = trait_object.mb
+ # )
+ #else: # 'Publish'
+ # trait_info = collections.OrderedDict(
+ # correlation = float(self.correlation_data[trait][0]),
+ # p_value = float(self.correlation_data[trait][1]),
+ # symbol = trait_object.symbol,
+ # alias = trait_object.alias,
+ # description = trait_object.description,
+ # chromosome = trait_object.chr,
+ # mb = trait_object.mb
+ # )
+
+ #XZ, 09/18/2008: get all information about the user selected database.
+ #target_db_name = fd.corr_dataset
+ #self.target_db_name = start_vars['corr_dataset']
+
+ # Zach said this is ok
+ # Auth if needed
+ #try:
+ # auth_user_for_db(self.db, self.cursor, self.target_db_name, self.privilege, self.userName)
+ #except AuthException as e:
+ # detail = [e.message]
+ # return self.error(detail)
+
+ #XZ, 09/18/2008: filter out the strains that have no value.
+ #self.sample_names, vals, vars, N = fd.informativeStrains(sample_list)
+
+ #print("samplenames is:", pf(self.sample_names))
+ #CF - If less than a minimum number of strains/cases in common, don't calculate anything
+ #if len(self.sample_names) < self.corr_min_informative:
+ # detail = ['Fewer than %d strain data were entered for %s data set. No calculation of correlation has been attempted.' % (self.corr_min_informative, fd.RISet)]
+ # self.error(heading=None, detail=detail)
+
+ #correlation_method = self.CORRELATION_METHODS[self.method]
+ #rankOrder = self.RANK_ORDERS[self.method]
+
+ # CF - Number of results returned
+ # Todo: Get rid of self.returnNumber
+
+ #self.record_count = 0
+
+ #myTrait = get_custom_trait(fd, self.cursor)
+
+
+ # We will not get Literature Correlations if there is no GeneId because there is nothing
+ # to look against
+ #self.geneid = self.this_trait.geneid
+
+ # We will not get Tissue Correlations if there is no gene symbol because there is nothing to look against
+ #self.trait_symbol = myTrait.symbol
+
+
+ #XZ, 12/12/2008: if the species is rat or human, translate the geneid to mouse geneid
+ #self.input_trait_mouse_gene_id = self.translateToMouseGeneID(self.dataset.group.species, self.geneid)
+
+ #XZ: As of Nov/13/2010, this dataset is 'UTHSC Illumina V6.2 RankInv B6 D2 average CNS GI average (May 08)'
+ #self.tissue_probeset_freeze_id = 1
+
+ #traitList = self.correlate()
+
+ #_log.info("Done doing correlation calculation")
+
+############################################################################################################################################
+
+
+ def get_all_dataset_data(self):
+
+ """
+ SELECT ProbeSet.Name, T128.value, T129.value, T130.value, T131.value, T132.value, T134.value, T135.value, T138.value, T139.value, T140.value, T141.value, T142.value, T144
+ .value, T145.value, T147.value, T148.value, T149.value, T487.value, T919.value, T920.value, T922.value
+ FROM (ProbeSet, ProbeSetXRef, ProbeSetFreeze)
+ left join ProbeSetData as T128 on T128.Id = ProbeSetXRef.DataId and T128.StrainId=128
+ left join ProbeSetData as T129 on T129.Id = ProbeSetXRef.DataId and T129.StrainId=129
+ left join ProbeSetData as T130 on T130.Id = ProbeSetXRef.DataId and T130.StrainId=130
+ left join ProbeSetData as T131 on T131.Id = ProbeSetXRef.DataId and T131.StrainId=131
+ left join ProbeSetData as T132 on T132.Id = ProbeSetXRef.DataId and T132.StrainId=132
+ left join ProbeSetData as T134 on T134.Id = ProbeSetXRef.DataId and T134.StrainId=134
+ left join ProbeSetData as T135 on T135.Id = ProbeSetXRef.DataId and T135.StrainId=135
+ left join ProbeSetData as T138 on T138.Id = ProbeSetXRef.DataId and T138.StrainId=138
+ left join ProbeSetData as T139 on T139.Id = ProbeSetXRef.DataId and T139.StrainId=139
+ left join ProbeSetData as T140 on T140.Id = ProbeSetXRef.DataId and T140.StrainId=140
+ left join ProbeSetData as T141 on T141.Id = ProbeSetXRef.DataId and T141.StrainId=141
+ left join ProbeSetData as T142 on T142.Id = ProbeSetXRef.DataId and T142.StrainId=142
+ left join ProbeSetData as T144 on T144.Id = ProbeSetXRef.DataId and T144.StrainId=144
+ left join ProbeSetData as T145 on T145.Id = ProbeSetXRef.DataId and T145.StrainId=145
+ left join ProbeSetData as T147 on T147.Id = ProbeSetXRef.DataId and T147.StrainId=147
+ left join ProbeSetData as T148 on T148.Id = ProbeSetXRef.DataId and T148.StrainId=148
+ left join ProbeSetData as T149 on T149.Id = ProbeSetXRef.DataId and T149.StrainId=149
+ left join ProbeSetData as T487 on T487.Id = ProbeSetXRef.DataId and T487.StrainId=487
+ left join ProbeSetData as T919 on T919.Id = ProbeSetXRef.DataId and T919.StrainId=919
+ left join ProbeSetData as T920 on T920.Id = ProbeSetXRef.DataId and T920.StrainId=920
+ left join ProbeSetData as T922 on T922.Id = ProbeSetXRef.DataId and T922.StrainId=922
+ WHERE ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id and
+ ProbeSetFreeze.Name = 'HC_M2_0606_P' and
+ ProbeSet.Id = ProbeSetXRef.ProbeSetId order by ProbeSet.Id
+ """
+
+ def process_samples(self, start_vars, sample_names, excluded_samples):
+ for sample in sample_names:
+ if sample not in excluded_samples:
+ value = start_vars['value:' + sample]
+ if value.strip().lower() == 'x':
+ self.sample_data[str(sample)] = None
+ else:
+ self.sample_data[str(sample)] = float(value)
+
+
+ #XZ, 12/12/2008: if the species is rat or human, translate the geneid to mouse geneid
+ #XZ, 12/12/2008: if the input geneid is 'None', return 0
+ #XZ, 12/12/2008: if the input geneid has no corresponding mouse geneid, return 0
+ def translateToMouseGeneID(self, species, geneid):
+ #mouse_geneid = 0
+
+ if not geneid:
+ return 0
+
+ #self.id, self.name, self.fullname, self.shortname = g.db.execute("""
+ # SELECT Id, Name, FullName, ShortName
+ # FROM %s
+ # WHERE public > %s AND
+ # (Name = '%s' OR FullName = '%s' OR ShortName = '%s')
+ # """ % (query_args)).fetchone()
+
+ if species == 'mouse':
+ mouse_geneid = geneid
+ elif species == 'rat':
+ mouse_geneid = g.db.execute(
+ """SELECT mouse FROM GeneIDXRef WHERE rat='%d'""", int(geneid)).fetchone().mouse
+ #if record:
+ # mouse_geneid = record[0]
+ elif species == 'human':
+ mouse_geneid = g.db.execute(
+ """SELECT mouse FROM GeneIDXRef WHERE human='%d'""", int(geneid)).fetchone().mouse
+ #if record:
+ # mouse_geneid = record[0]
+ print("mouse_geneid:", mouse_geneid)
+ return mouse_geneid
+
+
+ ##XZ, 12/16/2008: the input geneid is of mouse type
+ #def checkForLitInfo(self,geneId):
+ # q = 'SELECT 1 FROM LCorrRamin3 WHERE GeneId1=%s LIMIT 1' % geneId
+ # self.cursor.execute(q)
+ # try:
+ # x = self.cursor.fetchone()
+ # if x: return True
+ # else: raise
+ # except: return False
+
+
+ ##XZ, 12/16/2008: the input geneid is of mouse type
+ #def checkSymbolForTissueCorr(self, tissueProbeSetFreezeId=0, symbol=""):
+ # q = "SELECT 1 FROM TissueProbeSetXRef WHERE TissueProbeSetFreezeId=%s and Symbol='%s' LIMIT 1" % (tissueProbeSetFreezeId,symbol)
+ # self.cursor.execute(q)
+ # try:
+ # x = self.cursor.fetchone()
+ # if x: return True
+ # else: raise
+ # except: return False
+
+
+ def fetchAllDatabaseData(self, species, GeneId, GeneSymbol, strains, db, method, returnNumber, tissueProbeSetFreezeId):
+
+ StrainIds = []
+ for item in strains:
+ self.cursor.execute('''SELECT Strain.Id FROM Strain, Species WHERE Strain.Name="%s" and Strain.SpeciesId=Species.Id and Species.name = "%s" ''' % (item, species))
+ Id = self.cursor.fetchone()[0]
+ StrainIds.append('%d' % Id)
+
+ # break it into smaller chunks so we don't overload the MySql server
+ nnn = len(StrainIds) / 25
+ if len(StrainIds) % 25:
+ nnn += 1
+ oridata = []
+
+ #XZ, 09/24/2008: build one temporary table that only contains the records associated with the input GeneId
+ tempTable = None
+ if GeneId and db.type == "ProbeSet":
+ if method == "3":
+ tempTable = self.getTempLiteratureTable(species=species, input_species_geneid=GeneId, returnNumber=returnNumber)
+
+ if method == "4" or method == "5":
+ tempTable = self.getTempTissueCorrTable(primaryTraitSymbol=GeneSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method, returnNumber=returnNumber)
+
+ for step in range(nnn):
+ temp = []
+ StrainIdstep = StrainIds[step*25:min(len(StrainIds), (step+1)*25)]
+ for item in StrainIdstep: temp.append('T%s.value' % item)
+
+ if db.type == "Publish":
+ query = "SELECT PublishXRef.Id, "
+ dataStartPos = 1
+ query += string.join(temp,', ')
+ query += ' FROM (PublishXRef, PublishFreeze)'
+ #XZ, 03/04/2009: Xiaodong changed Data to PublishData
+ for item in StrainIdstep:
+ query += 'left join PublishData as T%s on T%s.Id = PublishXRef.DataId and T%s.StrainId=%s\n' %(item,item,item,item)
+ query += "WHERE PublishXRef.InbredSetId = PublishFreeze.InbredSetId and PublishFreeze.Name = '%s'" % (db.name, )
+ #XZ, 09/20/2008: extract literature correlation value together with gene expression values.
+ #XZ, 09/20/2008: notice the difference between the code in next block.
+ #elif tempTable:
+ # # we can get a little performance out of selecting our LitCorr here
+ # # but also we need to do this because we are unconcerned with probes that have no geneId associated with them
+ # # as we would not have litCorr data.
+ #
+ # if method == "3":
+ # query = "SELECT %s.Name, %s.value," % (db.type,tempTable)
+ # dataStartPos = 2
+ # if method == "4" or method == "5":
+ # query = "SELECT %s.Name, %s.Correlation, %s.PValue," % (db.type,tempTable, tempTable)
+ # dataStartPos = 3
+ #
+ # query += string.join(temp,', ')
+ # query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
+ # if method == "3":
+ # query += ' LEFT JOIN %s ON %s.GeneId2=ProbeSet.GeneId ' % (tempTable,tempTable)
+ # if method == "4" or method == "5":
+ # query += ' LEFT JOIN %s ON %s.Symbol=ProbeSet.Symbol ' % (tempTable,tempTable)
+ # #XZ, 03/04/2009: Xiaodong changed Data to %sData and changed parameters from %(item,item, db.type,item,item) to %(db.type, item,item, db.type,item,item)
+ # for item in StrainIdstep:
+ # query += 'left join %sData as T%s on T%s.Id = %sXRef.DataId and T%s.StrainId=%s\n' %(db.type, item,item, db.type,item,item)
+ #
+ # if method == "3":
+ # query += "WHERE ProbeSet.GeneId IS NOT NULL AND %s.value IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable,db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
+ # if method == "4" or method == "5":
+ # query += "WHERE ProbeSet.Symbol IS NOT NULL AND %s.Correlation IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable,db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
+ else:
+ query = "SELECT %s.Name," % db.type
+ dataStartPos = 1
+ query += string.join(temp,', ')
+ query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
+ #XZ, 03/04/2009: Xiaodong changed Data to %sData and changed parameters from %(item,item, db.type,item,item) to %(db.type, item,item, db.type,item,item)
+ for item in StrainIdstep:
+ query += 'left join %sData as T%s on T%s.Id = %sXRef.DataId and T%s.StrainId=%s\n' %(db.type, item,item, db.type,item,item)
+ query += "WHERE %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
+
+ self.cursor.execute(query)
+ results = self.cursor.fetchall()
+ oridata.append(results)
+
+ datasize = len(oridata[0])
+ traits = []
+ # put all of the separate data together into a huge list of lists
+ for j in range(datasize):
+ traitdata = list(oridata[0][j])
+ for i in range(1,nnn):
+ traitdata += list(oridata[i][j][dataStartPos:])
+
+ trait = Trait(traitdata[0], traitdata[dataStartPos:])
+
+ if method == METHOD_LIT:
+ trait.lit_corr = traitdata[1]
+
+ if method in TISSUE_METHODS:
+ trait.tissue_corr = traitdata[1]
+ trait.p_tissue = traitdata[2]
+
+ traits.append(trait)
+
+ if tempTable:
+ self.cursor.execute( 'DROP TEMPORARY TABLE %s' % tempTable )
+
+ return traits
+
+
+
+
+ # XZ, 09/20/2008: This function creates TEMPORARY TABLE tmpTableName_2 and return its name.
+ # XZ, 09/20/2008: It stores top literature correlation values associated with the input geneId.
+ # XZ, 09/20/2008: Attention: In each row, the input geneId is always in column GeneId1.
+ #XZ, 12/16/2008: the input geneid can be of mouse, rat or human type
+ def getTempLiteratureTable(self, species, input_species_geneid, returnNumber):
+ # according to mysql the TEMPORARY TABLE name should not have to be unique because
+ # it is only available to the current connection. This program will be invoked via command line, but if it
+ # were to be invoked over mod_python this could cuase problems. mod_python will keep the connection alive
+ # in its executing threads ( i think) so there is a potential for the table not being dropped between users.
+ #XZ, 01/29/2009: To prevent the potential risk, I generate random table names and drop the tables after use them.
+
+
+ # the 'input_species_geneid' could be rat or human geneid, need to translate it to mouse geneid
+ translated_mouse_geneid = self.translateToMouseGeneID (species, input_species_geneid)
+
+ tmpTableName_1 = webqtlUtil.genRandStr(prefix="LITERATURE")
+
+ q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName_1
+ q2 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId1,GeneId2,value FROM LCorrRamin3 WHERE GeneId1=%s' % (tmpTableName_1, translated_mouse_geneid)
+ q3 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId2,GeneId1,value FROM LCorrRamin3 WHERE GeneId2=%s AND GeneId1!=%s' % (tmpTableName_1, translated_mouse_geneid,translated_mouse_geneid)
+ for x in [q1,q2,q3]: self.cursor.execute(x)
+
+ #XZ, 09/23/2008: Just use the top records insteard of using all records
+ tmpTableName_2 = webqtlUtil.genRandStr(prefix="TOPLITERATURE")
+
+ q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName_2
+ self.cursor.execute(q1)
+ q2 = 'SELECT GeneId1, GeneId2, value FROM %s ORDER BY value DESC' % tmpTableName_1
+ self.cursor.execute(q2)
+ result = self.cursor.fetchall()
+
+ counter = 0 #this is to count how many records being inserted into table
+ for one_row in result:
+ mouse_geneid1, mouse_geneid2, lit_corr_alue = one_row
+
+ #mouse_geneid1 has been tested before, now should test if mouse_geneid2 has corresponding geneid in other species
+ translated_species_geneid = 0
+ if species == 'mouse':
+ translated_species_geneid = mouse_geneid2
+ elif species == 'rat':
+ self.cursor.execute( "SELECT rat FROM GeneIDXRef WHERE mouse=%d" % int(mouse_geneid2) )
+ record = self.cursor.fetchone()
+ if record:
+ translated_species_geneid = record[0]
+ elif species == 'human':
+ self.cursor.execute( "SELECT human FROM GeneIDXRef WHERE mouse=%d" % int(mouse_geneid2) )
+ record = self.cursor.fetchone()
+ if record:
+ translated_species_geneid = record[0]
+
+ if translated_species_geneid:
+ self.cursor.execute( 'INSERT INTO %s (GeneId1, GeneId2, value) VALUES (%d,%d,%f)' % (tmpTableName_2, int(input_species_geneid),int(translated_species_geneid), float(lit_corr_alue)) )
+ counter = counter + 1
+
+ #pay attention to the number
+ if (counter > 2*returnNumber):
+ break
+
+ self.cursor.execute('DROP TEMPORARY TABLE %s' % tmpTableName_1)
+
+ return tmpTableName_2
+
+
+
+ #XZ, 09/23/2008: In tissue correlation tables, there is no record of GeneId1 == GeneId2
+ #XZ, 09/24/2008: Note that the correlation value can be negative.
+ def getTempTissueCorrTable(self, primaryTraitSymbol="", TissueProbeSetFreezeId=0, method="", returnNumber=0):
+
+ def cmpTissCorrAbsoluteValue(A, B):
+ try:
+ if abs(A[1]) < abs(B[1]): return 1
+ elif abs(A[1]) == abs(B[1]):
+ return 0
+ else: return -1
+ except:
+ return 0
+
+ symbolCorrDict, symbolPvalueDict = self.calculateCorrOfAllTissueTrait(primaryTraitSymbol=primaryTraitSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method)
+
+ symbolCorrList = symbolCorrDict.items()
+
+ symbolCorrList.sort(cmpTissCorrAbsoluteValue)
+ symbolCorrList = symbolCorrList[0 : 2*returnNumber]
+
+ tmpTableName = webqtlUtil.genRandStr(prefix="TOPTISSUE")
+
+ q1 = 'CREATE TEMPORARY TABLE %s (Symbol varchar(100) PRIMARY KEY, Correlation float, PValue float)' % tmpTableName
+ self.cursor.execute(q1)
+
+ for one_pair in symbolCorrList:
+ one_symbol = one_pair[0]
+ one_corr = one_pair[1]
+ one_p_value = symbolPvalueDict[one_symbol]
+
+ self.cursor.execute( "INSERT INTO %s (Symbol, Correlation, PValue) VALUES ('%s',%f,%f)" % (tmpTableName, one_symbol, float(one_corr), float(one_p_value)) )
+
+ return tmpTableName
+
+
+ #XZ, 01/09/2009: This function was created by David Crowell. Xiaodong cleaned up and modified it.
+ def fetchLitCorrelations(self, species, GeneId, db, returnNumber): ### Used to generate Lit Correlations when calculations are done from text file. dcrowell August 2008
+ """Uses getTempLiteratureTable to generate table of literatire correlations. This function then gathers that data and
+ pairs it with the TraitID string. Takes as its arguments a formdata instance, and a database instance.
+ Returns a dictionary of 'TraitID':'LitCorr' for the requested correlation"""
+
+ tempTable = self.getTempLiteratureTable(species=species, input_species_geneid=GeneId, returnNumber=returnNumber)
+
+ query = "SELECT %s.Name, %s.value" % (db.type,tempTable)
+ query += ' FROM (%s, %sXRef, %sFreeze)' % (db.type, db.type, db.type)
+ query += ' LEFT JOIN %s ON %s.GeneId2=ProbeSet.GeneId ' % (tempTable,tempTable)
+ query += "WHERE ProbeSet.GeneId IS NOT NULL AND %s.value IS NOT NULL AND %sXRef.%sFreezeId = %sFreeze.Id and %sFreeze.Name = '%s' and %s.Id = %sXRef.%sId order by %s.Id" % (tempTable, db.type, db.type, db.type, db.type, db.name, db.type, db.type, db.type, db.type)
+
+ self.cursor.execute(query)
+ results = self.cursor.fetchall()
+
+ litCorrDict = {}
+
+ for entry in results:
+ traitName,litcorr = entry
+ litCorrDict[traitName] = litcorr
+
+ self.cursor.execute('DROP TEMPORARY TABLE %s' % tempTable)
+
+ return litCorrDict
+
+
+
+ #XZ, 01/09/2009: Xiaodong created this function.
+ def fetchTissueCorrelations(self, db, primaryTraitSymbol="", TissueProbeSetFreezeId=0, method="", returnNumber = 0):
+ """Uses getTempTissueCorrTable to generate table of tissue correlations. This function then gathers that data and
+ pairs it with the TraitID string. Takes as its arguments a formdata instance, and a database instance.
+ Returns a dictionary of 'TraitID':(tissueCorr, tissuePValue) for the requested correlation"""
+
+
+ tempTable = self.getTempTissueCorrTable(primaryTraitSymbol=primaryTraitSymbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=method, returnNumber=returnNumber)
+
+ query = "SELECT ProbeSet.Name, %s.Correlation, %s.PValue" % (tempTable, tempTable)
+ query += ' FROM (ProbeSet, ProbeSetXRef, ProbeSetFreeze)'
+ query += ' LEFT JOIN %s ON %s.Symbol=ProbeSet.Symbol ' % (tempTable,tempTable)
+ query += "WHERE ProbeSetFreeze.Name = '%s' and ProbeSetFreeze.Id=ProbeSetXRef.ProbeSetFreezeId and ProbeSet.Id = ProbeSetXRef.ProbeSetId and ProbeSet.Symbol IS NOT NULL AND %s.Correlation IS NOT NULL" % (db.name, tempTable)
+
+ self.cursor.execute(query)
+ results = self.cursor.fetchall()
+
+ tissueCorrDict = {}
+
+ for entry in results:
+ traitName, tissueCorr, tissuePValue = entry
+ tissueCorrDict[traitName] = (tissueCorr, tissuePValue)
+
+ self.cursor.execute('DROP TEMPORARY TABLE %s' % tempTable)
+
+ return tissueCorrDict
+
+
+
+ #XZ, 01/13/2008
+ def getLiteratureCorrelationByList(self, input_trait_mouse_geneid=None, species=None, traitList=None):
+
+ tmpTableName = webqtlUtil.genRandStr(prefix="LITERATURE")
+
+ q1 = 'CREATE TEMPORARY TABLE %s (GeneId1 int(12) unsigned, GeneId2 int(12) unsigned PRIMARY KEY, value double)' % tmpTableName
+ q2 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId1,GeneId2,value FROM LCorrRamin3 WHERE GeneId1=%s' % (tmpTableName, input_trait_mouse_geneid)
+ q3 = 'INSERT INTO %s (GeneId1, GeneId2, value) SELECT GeneId2,GeneId1,value FROM LCorrRamin3 WHERE GeneId2=%s AND GeneId1!=%s' % (tmpTableName, input_trait_mouse_geneid, input_trait_mouse_geneid)
+
+ for x in [q1,q2,q3]:
+ self.cursor.execute(x)
+
+ for thisTrait in traitList:
+ try:
+ if thisTrait.geneid:
+ thisTrait.mouse_geneid = self.translateToMouseGeneID(species, thisTrait.geneid)
+ else:
+ thisTrait.mouse_geneid = 0
+ except:
+ thisTrait.mouse_geneid = 0
+
+ if thisTrait.mouse_geneid and str(thisTrait.mouse_geneid).find(";") == -1:
+ try:
+ self.cursor.execute("SELECT value FROM %s WHERE GeneId2 = %s" % (tmpTableName, thisTrait.mouse_geneid))
+ result = self.cursor.fetchone()
+ if result:
+ thisTrait.LCorr = result[0]
+ else:
+ thisTrait.LCorr = None
+ except:
+ thisTrait.LCorr = None
+ else:
+ thisTrait.LCorr = None
+
+ self.cursor.execute("DROP TEMPORARY TABLE %s" % tmpTableName)
+
+ return traitList
+
+ def get_traits(self, vals):
+
+ #Todo: Redo cached stuff using memcached
+ if False:
+ lit_corrs = {}
+ tissue_corrs = {}
+ use_lit = False
+ if self.method == METHOD_LIT:
+ lit_corrs = self.fetchLitCorrelations(species=self.species, GeneId=self.gene_id, db=self.db, returnNumber=self.returnNumber)
+ use_lit = True
+
+ use_tissue_corr = False
+ if self.method in TISSUE_METHODS:
+ tissue_corrs = self.fetchTissueCorrelations(db=self.db, primaryTraitSymbol=self.trait_symbol, TissueProbeSetFreezeId=TISSUE_MOUSE_DB, method=self.method, returnNumber = self.returnNumber)
+ use_tissue_corr = True
+
+ DatabaseFileName = self.getFileName( target_db_name=self.target_db_name )
+ datasetFile = open(webqtlConfig.TEXTDIR+DatabaseFileName,'r')
+
+ #XZ, 01/08/2009: read the first line
+ line = datasetFile.readline()
+ cached_sample_names = webqtlUtil.readLineCSV(line)[1:]
+
+ #XZ, 01/08/2009: This step is critical. It is necessary for this new method.
+ #XZ: The original function fetchAllDatabaseData uses all strains stored in variable _strains to
+ #XZ: retrieve the values of each strain from database in real time.
+ #XZ: The new method uses all strains stored in variable dataset_strains to create a new variable
+ #XZ: _newvals. _newvals has the same length as dataset_strains. The items in _newvals is in
+ #XZ: the same order of items in dataset_strains. The value of each item in _newvals is either
+ #XZ: the value of correspinding strain in _vals or 'None'.
+ new_vals = []
+ for name in cached_sample_names:
+ if name in self.sample_names:
+ new_vals.append(float(vals[self.sample_names.index(name)]))
+ else:
+ new_vals.append('None')
+
+ nnCorr = len(new_vals)
+
+ #XZ, 01/14/2009: If literature corr or tissue corr is selected,
+ #XZ: there is no need to use parallel computing.
+
+ traits = []
+ data_start = 1
+ for line in datasetFile:
+ raw_trait = webqtlUtil.readLineCSV(line)
+ trait = Trait.from_csv(raw_trait, data_start)
+ trait.lit_corr = lit_corrs.get(trait.name)
+ trait.tissue_corr, trait.p_tissue = tissue_corrs.get(trait.name, (None, None))
+ traits.append(trait)
+
+ return traits, new_vals
+
+ else:
+ traits = self.fetchAllDatabaseData(species=self.dataset.species,
+ GeneId=self.gene_id,
+ GeneSymbol=self.trait.symbol,
+ strains=self.sample_names,
+ db=self.db,
+ method=self.method,
+ returnNumber=self.returnNumber,
+ tissueProbeSetFreezeId= self.tissue_probeset_freeze_id)
+ totalTraits = len(traits) #XZ, 09/18/2008: total trait number
+
+ return traits
+
+
+ def do_parallel_correlation(self):
+ _log.info("Invoking parallel computing")
+ input_line_list = datasetFile.readlines()
+ _log.info("Read lines from the file")
+ all_line_number = len(input_line_list)
+
+ step = 1000
+ job_number = math.ceil( float(all_line_number)/step )
+
+ job_input_lists = []
+
+ _log.info("Configuring jobs")
+
+ for job_index in range( int(job_number) ):
+ starti = job_index*step
+ endi = min((job_index+1)*step, all_line_number)
+
+ one_job_input_list = []
+
+ for i in range( starti, endi ):
+ one_job_input_list.append( input_line_list[i] )
+
+ job_input_lists.append( one_job_input_list )
+
+ _log.info("Creating pp servers")
+
+ ppservers = ()
+ # Creates jobserver with automatically detected number of workers
+ job_server = pp.Server(ppservers=ppservers)
+
+ _log.info("Done creating servers")
+
+ jobs = []
+ results = []
+
+ _log.info("Starting parallel computation, submitting jobs")
+ for one_job_input_list in job_input_lists: #pay attention to modules from outside
+ jobs.append( job_server.submit(func=compute_corr, args=(nnCorr, _newvals, one_job_input_list, self.method), depfuncs=(), modules=("utility.webqtlUtil",)) )
+ _log.info("Done submitting jobs")
+
+ for one_job in jobs:
+ one_result = one_job()
+ results.append( one_result )
+
+ _log.info("Acquiring results")
+
+ for one_result in results:
+ for one_traitinfo in one_result:
+ allcorrelations.append( one_traitinfo )
+
+ _log.info("Appending the results")
+
+ datasetFile.close()
+ totalTraits = len(allcorrelations)
+ _log.info("Done correlating using the fast method")
+
+
+ def correlate(self):
+ self.correlation_data = collections.defaultdict(list)
+ for trait, values in self.target_dataset.trait_data.iteritems():
+ values_1 = []
+ values_2 = []
+ for index,sample in enumerate(self.target_dataset.samplelist):
+ target_value = values[index]
+ if sample in self.sample_data.keys():
+ this_value = self.sample_data[sample]
+ values_1.append(this_value)
+ values_2.append(target_value)
+ correlation = calCorrelation(values_1, values_2)
+ self.correlation_data[trait] = correlation
+ print ('correlation result: %s %s' % (trait, correlation))
+
+ """
+ correlations = []
+
+ #XZ: Use the fast method only for probeset dataset, and this dataset must have been created.
+ #XZ: Otherwise, use original method
+ #_log.info("Entering correlation")
+
+ #db_filename = self.getFileName(target_db_name=self.target_db_name)
+ #
+ #cache_available = db_filename in os.listdir(webqtlConfig.TEXTDIR)
+
+ # If the cache file exists, do a cached correlation for probeset data
+ if self.dataset.type == "ProbeSet":
+# if self.method in [METHOD_SAMPLE_PEARSON, METHOD_SAMPLE_RANK] and cache_available:
+# traits = do_parallel_correlation()
+#
+# else:
+
+ traits = self.get_traits(self.vals)
+
+ for trait in traits:
+ trait.calculate_correlation(vals, self.method)
+
+ self.record_count = len(traits) #ZS: This isn't a good way to get this value, so I need to change it later
+
+ #XZ, 3/31/2010: Theoretically, we should create one function 'comTissueCorr'
+ #to compare each trait by their tissue corr p values.
+ #But because the tissue corr p values are generated by permutation test,
+ #the top ones always have p value 0. So comparing p values actually does nothing.
+ #In addition, for the tissue data in our database, the N is always the same.
+ #So it's safe to compare with tissue corr statistic value.
+ #That's the same as literature corr.
+ #if self.method in [METHOD_LIT, METHOD_TISSUE_PEARSON, METHOD_TISSUE_RANK] and self.gene_id:
+ # traits.sort(webqtlUtil.cmpLitCorr)
+ #else:
+ #if self.method in TISSUE_METHODS:
+ # sort(traits, key=lambda A: math.fabs(A.tissue_corr))
+ #elif self.method == METHOD_LIT:
+ # traits.sort(traits, key=lambda A: math.fabs(A.lit_corr))
+ #else:
+ traits = sortTraitCorrelations(traits, self.method)
+
+ # Strip to the top N correlations
+ traits = traits[:min(self.returnNumber, len(traits))]
+
+ addLiteratureCorr = False
+ addTissueCorr = False
+
+ trait_list = []
+ for trait in traits:
+ db_trait = webqtlTrait(db=self.db, name=trait.name, cursor=self.cursor)
+ db_trait.retrieveInfo( QTL='Yes' )
+
+ db_trait.Name = trait.name
+ db_trait.corr = trait.correlation
+ db_trait.nOverlap = trait.overlap
+ db_trait.corrPValue = trait.p_value
+
+ # NL, 07/19/2010
+ # js function changed, add a new parameter rankOrder for js function 'showTissueCorrPlot'
+ db_trait.RANK_ORDER = self.RANK_ORDERS[self.method]
+
+ #XZ, 26/09/2008: Method is 4 or 5. Have fetched tissue corr, but no literature correlation yet.
+ if self.method in TISSUE_METHODS:
+ db_trait.tissueCorr = trait.tissue_corr
+ db_trait.tissuePValue = trait.p_tissue
+ addTissueCorr = True
+
+
+ #XZ, 26/09/2008: Method is 3, Have fetched literature corr, but no tissue corr yet.
+ elif self.method == METHOD_LIT:
+ db_trait.LCorr = trait.lit_corr
+ db_trait.mouse_geneid = self.translateToMouseGeneID(self.species, db_trait.geneid)
+ addLiteratureCorr = True
+
+ #XZ, 26/09/2008: Method is 1 or 2. Have NOT fetched literature corr and tissue corr yet.
+ # Phenotype data will not have geneid, and neither will some probes
+ # we need to handle this because we will get an attribute error
+ else:
+ if self.input_trait_mouse_gene_id and self.db.type=="ProbeSet":
+ addLiteratureCorr = True
+ if self.trait_symbol and self.db.type=="ProbeSet":
+ addTissueCorr = True
+
+ trait_list.append(db_trait)
+
+ if addLiteratureCorr:
+ trait_list = self.getLiteratureCorrelationByList(self.input_trait_mouse_gene_id,
+ self.species, trait_list)
+ if addTissueCorr:
+ trait_list = self.getTissueCorrelationByList(
+ primaryTraitSymbol = self.trait_symbol,
+ traitList = trait_list,
+ TissueProbeSetFreezeId = TISSUE_MOUSE_DB,
+ method=self.method)
+
+ return trait_list
+ """
+
+ def calculateCorrOfAllTissueTrait(self, primaryTraitSymbol=None, TissueProbeSetFreezeId=None, method=None):
+
+ symbolCorrDict = {}
+ symbolPvalueDict = {}
+
+ primaryTraitSymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[primaryTraitSymbol], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
+ primaryTraitValue = primaryTraitSymbolValueDict.values()[0]
+
+ SymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
+
+ if method in ["2","5"]:
+ symbolCorrDict, symbolPvalueDict = correlationFunction.batchCalTissueCorr(primaryTraitValue,SymbolValueDict,method='spearman')
+ else:
+ symbolCorrDict, symbolPvalueDict = correlationFunction.batchCalTissueCorr(primaryTraitValue,SymbolValueDict)
+
+
+ return (symbolCorrDict, symbolPvalueDict)
+
+
+
+ #XZ, 10/13/2010
+ def getTissueCorrelationByList(self, primaryTraitSymbol=None, traitList=None, TissueProbeSetFreezeId=None, method=None):
+
+ primaryTraitSymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=[primaryTraitSymbol], TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
+
+ if primaryTraitSymbol.lower() in primaryTraitSymbolValueDict:
+ primaryTraitValue = primaryTraitSymbolValueDict[primaryTraitSymbol.lower()]
+
+ geneSymbolList = []
+
+ for thisTrait in traitList:
+ if hasattr(thisTrait, 'symbol'):
+ geneSymbolList.append(thisTrait.symbol)
+
+ SymbolValueDict = correlationFunction.getGeneSymbolTissueValueDictForTrait(cursor=self.cursor, GeneNameLst=geneSymbolList, TissueProbeSetFreezeId=TISSUE_MOUSE_DB)
+
+ for thisTrait in traitList:
+ if hasattr(thisTrait, 'symbol') and thisTrait.symbol and thisTrait.symbol.lower() in SymbolValueDict:
+ oneTraitValue = SymbolValueDict[thisTrait.symbol.lower()]
+ if method in ["2","5"]:
+ result = correlationFunction.calZeroOrderCorrForTiss( primaryTraitValue, oneTraitValue, method='spearman' )
+ else:
+ result = correlationFunction.calZeroOrderCorrForTiss( primaryTraitValue, oneTraitValue)
+ thisTrait.tissueCorr = result[0]
+ thisTrait.tissuePValue = result[2]
+ else:
+ thisTrait.tissueCorr = None
+ thisTrait.tissuePValue = None
+ else:
+ for thisTrait in traitList:
+ thisTrait.tissueCorr = None
+ thisTrait.tissuePValue = None
+
+ return traitList
+
+
+ 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 getTableHeaderForGeno(self, method=None, worksheet=None, newrow=None, headingStyle=None):
+
+ tblobj_header = []
+
+ if method in ["1","3","4"]:
+ tblobj_header = [[THCell(HT.TD(' ', Class="fs13 fwb ffl b1 cw cbrb"), 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('Location', HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text='Location (Chr and Mb)', idx=2),
+ THCell(HT.TD(HT.Href(
+ text = HT.Span('Sample',HT.BR(), 'r', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
+ target = '_blank',
+ url = "/correlationAnnotation.html#genetic_r"),
+ Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample r", idx=3),
+ THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=4),
+ THCell(HT.TD(HT.Href(
+ text = HT.Span('Sample',HT.BR(), 'p(r)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
+ target = '_blank',
+ url = "/correlationAnnotation.html#genetic_p_r"),
+ Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(r)", idx=5)]]
+
+ for ncol, item in enumerate(['Record ID', 'Location (Chr, Mb)', 'Sample r', 'N Cases', 'Sample p(r)']):
+ worksheet.write([newrow, ncol], item, headingStyle)
+ worksheet.set_column([ncol, ncol], 2*len(item))
+ else:
+ tblobj_header = [[THCell(HT.TD(' ', Class="fs13 fwb ffl b1 cw cbrb"), 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('Location', HT.BR(), 'Chr and Mb', HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text='Location (Chr and Mb)', idx=2),
+ THCell(HT.TD(HT.Href(
+ text = HT.Span('Sample',HT.BR(), 'rho', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
+ target = '_blank',
+ url = "/correlationAnnotation.html#genetic_rho"),
+ Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample rho", idx=3),
+ THCell(HT.TD('N',HT.BR(),'Cases',HT.BR(), Class="fs13 fwb ffl b1 cw cbrb"), text="N Cases", idx=4),
+ THCell(HT.TD(HT.Href(
+ text = HT.Span('Sample',HT.BR(), 'p(rho)', HT.Sup(' ?', style="color:#f00"),HT.BR(), Class="fs13 fwb ffl cw"),
+ target = '_blank',
+ url = "/correlationAnnotation.html#genetic_p_rho"),
+ Class="fs13 fwb ffl b1 cw cbrb", nowrap='ON'), text="Sample p(rho)", idx=5)]]
+
+ for ncol, item in enumerate(['Record ID', 'Location (Chr, Mb)', 'Sample rho', 'N Cases', 'Sample p(rho)']):
+ worksheet.write([newrow, ncol], item, headingStyle)
+ worksheet.set_column([ncol, ncol], 2*len(item))
+
+
+ return tblobj_header, worksheet
+
+
+ def getTableBodyForGeno(self, traitList, formName=None, worksheet=None, newrow=None, corrScript=None):
+
+ tblobj_body = []
+
+ for thisTrait in traitList:
+ tr = []
+
+ trId = str(thisTrait)
+
+ corrScript.append('corrArray["%s"] = {corr:%1.4f};' % (trId, thisTrait.corr))
+
+ tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class="checkbox", name="searchResult",value=trId, onClick="highlight(this)"), nowrap="on", Class="fs12 fwn ffl b1 c222"), text=trId))
+
+ tr.append(TDCell(HT.TD(HT.Href(text=thisTrait.name,url="javascript:showTrait('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn ffl"),align="left", Class="fs12 fwn ffl b1 c222"), text=thisTrait.name, val=thisTrait.name.upper()))
+
+ #XZ: trait_location_value is used for sorting
+ trait_location_repr = '--'
+ trait_location_value = 1000000
+
+ if thisTrait.chr and thisTrait.mb:
+ try:
+ trait_location_value = int(thisTrait.chr)*1000 + thisTrait.mb
+ except:
+ if thisTrait.chr.upper() == 'X':
+ trait_location_value = 20*1000 + thisTrait.mb
+ else:
+ trait_location_value = ord(str(thisTrait.chr).upper()[0])*1000 + thisTrait.mb
+
+ trait_location_repr = 'Chr%s: %.6f' % (thisTrait.chr, float(thisTrait.mb) )
+
+ tr.append(TDCell(HT.TD(trait_location_repr, Class="fs12 fwn b1 c222", nowrap="on"), trait_location_repr, trait_location_value))
+
+
+ repr='%3.3f' % thisTrait.corr
+ tr.append(TDCell(HT.TD(HT.Href(text=repr, url="javascript:showCorrPlot('%s', '%s')" % (formName, thisTrait.name), Class="fs12 fwn ffl"), Class="fs12 fwn ffl b1 c222", nowrap='ON', align='right'),repr,abs(thisTrait.corr)))
+
+ repr = '%d' % thisTrait.nOverlap
+ tr.append(TDCell(HT.TD(repr, Class="fs12 fwn ffl b1 c222",align='right'),repr,thisTrait.nOverlap))
+
+ repr = webqtlUtil.SciFloat(thisTrait.corrPValue)
+ tr.append(TDCell(HT.TD(repr,nowrap='ON', Class="fs12 fwn ffl b1 c222", align='right'),repr,thisTrait.corrPValue))
+
+ tblobj_body.append(tr)
+
+ for ncol, item in enumerate([thisTrait.name, trait_location_repr, thisTrait.corr, thisTrait.nOverlap, thisTrait.corrPValue]):
+ worksheet.write([newrow, ncol], item)
+ newrow += 1
+
+ return tblobj_body, worksheet, corrScript
+
+def normalize_values(values_1, values_2):
+ N = min(len(values_1), len(values_2))
+ X = []
+ Y = []
+ for i in range(N):
+ if values_1[i]!= None and values_2[i]!= None:
+ X.append(values_1[i])
+ Y.append(values_2[i])
+ num_overlap = len(X)
+
+ return (X, Y, num_overlap)
+
+
+def cal_correlation(values_1, values_2):
+ N = min(len(values_1), len(values_2))
+ X = []
+ Y = []
+ for i in range(N):
+ if values_1[i]!= None and values_2[i]!= None:
+ X.append(values_1[i])
+ Y.append(values_2[i])
+ NN = len(X)
+ if NN <6:
+ return (0.0,NN)
+ sx = reduce(lambda x,y:x+y,X,0.0)
+ sy = reduce(lambda x,y:x+y,Y,0.0)
+ x_mean = sx/NN
+ y_mean = sy/NN
+ xyd = 0.0
+ sxd = 0.0
+ syd = 0.0
+ for i in range(NN):
+ xyd += (X[i] - x_mean)*(Y[i] - y_mean)
+ sxd += (X[i] - x_mean)*(X[i] - x_mean)
+ syd += (Y[i] - y_mean)*(Y[i] - y_mean)
+ try:
+ corr = xyd/(sqrt(sxd)*sqrt(syd))
+ except:
+ corr = 0
+ return (corr, NN)
diff --git a/wqflask/wqflask/dataSharing/SharingInfo.py b/wqflask/wqflask/dataSharing/SharingInfo.py
index befc158a..41a75222 100755
--- a/wqflask/wqflask/dataSharing/SharingInfo.py
+++ b/wqflask/wqflask/dataSharing/SharingInfo.py
@@ -34,12 +34,12 @@ import requests
from dbFunction import webqtlDatabaseFunction
import SharingBody
-import logging
-logging.basicConfig(filename="/tmp/flask_gn_log", level=logging.INFO)
-
-_log = logging.getLogger("search")
-_ch = logging.StreamHandler()
-_log.addHandler(_ch)
+#import logging
+#logging.basicConfig(filename="/tmp/flask_gn_log", level=logging.INFO)
+#
+#_log = logging.getLogger("search")
+#_ch = logging.StreamHandler()
+#_log.addHandler(_ch)
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index a2eddfc6..1b1b56fb 100644
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -20,17 +20,18 @@ class DoSearch(object):
# Used to translate search phrases into classes
search_types = dict()
- def __init__(self, search_term, search_operator, dataset):
+ def __init__(self, search_term, search_operator=None, dataset=None):
self.search_term = search_term
# Make sure search_operator is something we expect
assert search_operator in (None, "=", "<", ">", "<=", ">="), "Bad search operator"
self.search_operator = search_operator
self.dataset = dataset
- print("self.dataset is boo: ", type(self.dataset), pf(self.dataset))
- print("self.dataset.group is: ", pf(self.dataset.group))
-
- #Get group information for dataset and the species id
- self.species_id = webqtlDatabaseFunction.retrieve_species_id(self.dataset.group.name)
+
+ if self.dataset:
+ print("self.dataset is boo: ", type(self.dataset), pf(self.dataset))
+ print("self.dataset.group is: ", pf(self.dataset.group))
+ #Get group information for dataset and the species id
+ self.species_id = webqtlDatabaseFunction.retrieve_species_id(self.dataset.group.name)
def execute(self, query):
"""Executes query and returns results"""
@@ -57,8 +58,42 @@ class DoSearch(object):
@classmethod
def get_search(cls, search_type):
+ print("search_types are:", pf(cls.search_types))
return cls.search_types[search_type]
+class QuickMrnaAssaySearch(DoSearch):
+ """A general search for mRNA assays"""
+
+ DoSearch.search_types['quick_mrna_assay'] = "QuickMrnaAssaySearch"
+
+ base_query = """SELECT ProbeSet.Name as ProbeSet_Name,
+ ProbeSet.Symbol as ProbeSet_Symbol,
+ ProbeSet.description as ProbeSet_Description,
+ ProbeSet.Chr_num as ProbeSet_Chr_Num,
+ ProbeSet.Mb as ProbeSet_Mb,
+ ProbeSet.name_num as ProbeSet_name_num
+ FROM ProbeSet """
+
+ header_fields = ['',
+ 'Record ID',
+ 'Symbol',
+ 'Location']
+
+ def run(self):
+ """Generates and runs a search for assays across all mRNA expression datasets"""
+
+ print("Running ProbeSetSearch")
+ query = self.base_query + """WHERE (MATCH (ProbeSet.Name,
+ ProbeSet.description,
+ ProbeSet.symbol,
+ ProbeSet.alias)
+ AGAINST ('%s' IN BOOLEAN MODE))
+ """ % (escape(self.search_term[0]))
+
+ print("final query is:", pf(query))
+
+ return self.execute(query)
+
class MrnaAssaySearch(DoSearch):
"""A search within an mRNA expression dataset"""
@@ -124,7 +159,7 @@ class MrnaAssaySearch(DoSearch):
return self.execute(query)
-
+
class PhenotypeSearch(DoSearch):
"""A search within a phenotype dataset"""
@@ -198,9 +233,57 @@ class PhenotypeSearch(DoSearch):
query = self.compile_final_query(where_clause = self.get_fields_clause())
- results = self.execute(query)
- print("in [df] run results are:", results)
- return results
+ return self.execute(query)
+
+class QuickPhenotypeSearch(PhenotypeSearch):
+ """A search across all phenotype datasets"""
+
+ DoSearch.search_types['quick_phenotype'] = "QuickPhenotypeSearch"
+
+ base_query = """SELECT Species.Name as Species_Name,
+ PublishFreeze.FullName as Dataset_Name,
+ PublishFreeze.Name,
+ PublishXRef.Id,
+ PublishFreeze.createtime as thistable,
+ Publication.PubMed_ID as Publication_PubMed_ID,
+ Phenotype.Post_publication_description as Phenotype_Name
+ FROM Phenotype,
+ PublishFreeze,
+ Publication,
+ PublishXRef,
+ InbredSet,
+ Species """
+
+ search_fields = ('Phenotype.Post_publication_description',
+ 'Phenotype.Pre_publication_description',
+ 'Phenotype.Pre_publication_abbreviation',
+ 'Phenotype.Post_publication_abbreviation',
+ 'Phenotype.Lab_code',
+ 'Publication.PubMed_ID',
+ 'Publication.Abstract',
+ 'Publication.Title',
+ 'Publication.Authors')
+
+ def compile_final_query(self, where_clause = ''):
+ """Generates the final query string"""
+
+ query = (self.base_query +
+ """WHERE %s
+ PublishXRef.PhenotypeId = Phenotype.Id and
+ PublishXRef.PublicationId = Publication.Id and
+ PublishXRef.InbredSetId = InbredSet.Id and
+ InbredSet.SpeciesId = Species.Id""" % where_clause)
+
+ print("query is:", pf(query))
+
+ return query
+
+ def run(self):
+ """Generates and runs a search across all phenotype datasets"""
+
+ query = self.compile_final_query(where_clause = self.get_fields_clause())
+
+ return self.execute(query)
class GenotypeSearch(DoSearch):
"""A search within a genotype dataset"""
diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py
index 374e7c95..6ae1318e 100755
--- a/wqflask/wqflask/marker_regression/marker_regression.py
+++ b/wqflask/wqflask/marker_regression/marker_regression.py
@@ -5,1659 +5,159 @@ from base import data_set #import create_dataset
from pprint import pformat as pf
-import time
import string
-import math
-#from math import *
-#import piddle
import sys
import os
-import httplib
-import urllib
+import collections
-from htmlgen import HTMLgen2 as HT
-from utility import Plot, Bunch
-from wqflask.interval_analyst import GeneUtil
-from base.trait import GeneralTrait
-from base.data_set import create_dataset
-from base.templatePage import templatePage
-from utility import webqtlUtil
-from base import webqtlConfig
-from dbFunction import webqtlDatabaseFunction
-from base.GeneralObject import GeneralObject
+import numpy as np
+from scipy import linalg
-import reaper
-import cPickle
-from utility.THCell import THCell
-from utility.TDCell import TDCell
+import simplejson as json
+#from redis import Redis
-class MarkerRegression(object):
- #def __init__(self, start_vars):
- #
- # print("[mike] Now start_vars is:", pf(start_vars))
- #
- # self.dataset = data_set.create_dataset(start_vars['dataset_name'])
- # self.this_trait = GeneralTrait(dataset=self.dataset.name,
- # name=start_vars['trait_id'],
- # cellid=None)
- #
- # print("self.this_trait is: ", pf(self.this_trait))
- # print("self.dataset is: ", pf(self.dataset))
+from base.trait import GeneralTrait
+from base import data_set
+from base import species
+from base import webqtlConfig
+from wqflask.my_pylmm.data import prep_data
+from wqflask.my_pylmm.pyLMM import lmm
+from wqflask.my_pylmm.pyLMM import input
+from utility import helper_functions
+from utility import Plot, Bunch
+from utility import temp_data
- def __init__(self, start_vars):
- #templatePage.__init__(self, fd)
+from utility.benchmark import Bench
- #if not self.openMysql():
- # return
- #print("start_vars are: ", pf(start_vars))
+class MarkerRegression(object):
+
+ def __init__(self, start_vars, temp_uuid):
- self.dataset = create_dataset(start_vars['dataset_name'])
- self.this_trait = GeneralTrait(dataset=self.dataset.name,
- name=start_vars['trait_id'],
- cellid=None)
- self.num_perm = int(start_vars['num_perm'])
+ helper_functions.get_species_dataset_trait(self, start_vars)
- # Passed in by the form (user might have edited)
- #samples = start_vars['allsamples'].split()
+ tempdata = temp_data.TempData(temp_uuid)
- self.samples = [] # Want only ones with values
+ self.samples = [] # Want only ones with values
self.vals = []
- self.variances = []
-
- self.dataset.group.read_genotype_file()
- self.genotype = self.dataset.group.genotype
-
- assert start_vars['display_all_lrs'] in ('True', 'False')
- self.display_all_lrs = True if start_vars['display_all_lrs'] == 'True' else False
-
+
for sample in self.dataset.group.samplelist:
value = start_vars['value:' + sample]
- variance = start_vars['variance:' + sample]
- if variance.strip().lower() == 'x':
- variance = 0
- else:
- variance = float(variance)
- if value.strip().lower() != 'x':
- self.samples.append(str(sample))
- self.vals.append(float(value))
- self.variances.append(variance)
-
- #self.initializeParameters(start_vars)
-
- #filename= webqtlUtil.genRandStr("Itvl_")
- #ChrList,ChrNameOrderIdDict,ChrOrderIdNameDict,ChrtLengthMbList= self.getChrNameOrderIdLength(RISet=fd.RISet)
-
- if False: # For PLINK
-
- traitInfoList = string.split(string.strip(fd.identification),':')
- probesetName = string.strip(traitInfoList[-1])
- plinkOutputFileName= webqtlUtil.genRandStr("%s_%s_"%(fd.RISet,probesetName))
-
- # get related values from fd.allTraitData; the format of 'allTraitValueDict'is {strainName1: value=-0.2...}
- fd.readData()
- allTraitValueDict = fd.allTraitData
-
- #automatically generate pheno txt file for PLINK
- self.genPhenoTxtFileForPlink(phenoFileName=plinkOutputFileName,RISetName=fd.RISet,probesetName=probesetName, valueDict=allTraitValueDict)
- # os.system full path is required for input and output files; specify missing value is -9999
- plink_command = '%splink/plink --noweb --ped %splink/%s.ped --no-fid --no-parents --no-sex --no-pheno --map %splink/%s.map --pheno %s/%s.txt --pheno-name %s --missing-phenotype -9999 --out %s%s --assoc ' % (webqtlConfig.HTMLPATH, webqtlConfig.HTMLPATH, fd.RISet, webqtlConfig.HTMLPATH, fd.RISet, webqtlConfig.TMPDIR, plinkOutputFileName, probesetName, webqtlConfig.TMPDIR, plinkOutputFileName)
-
- os.system(plink_command)
-
- if fd.identification:
- heading2 = HT.Paragraph('Trait ID: %s' % fd.identification)
- heading2.__setattr__("class","subtitle")
- self.dict['title'] = '%s: Genome Association' % fd.identification
- else:
- heading2 = ""
- self.dict['title'] = 'Genome Association'
-
- if fd.traitInfo:
- symbol,chromosome,MB = string.split(fd.traitInfo,'\t')
- heading3 = HT.Paragraph('[ ',HT.Strong(HT.Italic('%s' % symbol,id="green")),' on Chr %s @ %s Mb ]' % (chromosome,MB))
- else:
- heading3 = ""
-
- heading = HT.Paragraph('Trait Data Entered for %s Set' % fd.RISet)
- heading.__setattr__("class","title")
-
- # header info part:Trait Data Entered for HLC Set & Trait ID:
- headerdiv = HT.TR(HT.TD(heading, heading2,heading3, width='45%',valign='top', align='left', bgColor='#eeeeee'))
-
- self.ChrList=ChrList # get chr name from '1' to 'X'
- self.ChrLengthMbList = ChrLengthMbList
-
- # build plink result dict based on chr, key is chr name, value is in list type including Snpname, bp and pvalue info
- plinkResultDict={}
- count,minPvalue,plinkResultDict =self.getPlinkResultDict(outputFileName=plinkOutputFileName,thresholdPvalue=self.pValue,ChrOrderIdNameDict=ChrOrderIdNameDict)
-
- # if can not find results which are matched with assigned p-value, system info will show up
- if count >0:
-
- #for genome association report table
- reportTable=""
- # sortable table object
- resultstable,tblobj,bottomInfo = self.GenReportForPLINK(ChrNameOrderIdDict=ChrNameOrderIdDict, RISet=fd.RISet,plinkResultDict=plinkResultDict,thresholdPvalue=self.pValue,chrList=self.ChrList)
-
- # creat object for result table for sort function
- objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- cPickle.dump(tblobj, objfile)
- objfile.close()
-
- sortby = ("Index", "up")
- reportTable =HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=sortby, tableID = "sortable", addIndex = "0"), Id="sortable")
-
- descriptionTable = HT.TableLite(border=0, cellpadding=0, cellspacing=0)
- descriptionTable.append(HT.TR(HT.TD(reportTable, colspan=3)))
- descriptionTable.append(HT.TR(HT.TD(HT.BR(),HT.BR())))
- descriptionTable.append(bottomInfo)
-
- # get each chr's length
- self.ChrLengthMbList = map(lambda x: x/1000000.0, self.ChrLengthMbList) # change unit from bp to mb
- self.ChrLengthMbSum = reduce(lambda x, y:x+y, self.ChrLengthMbList, 0.0)# get total length of all chrs
- if self.ChrLengthMbList:
- self.GraphInterval = self.ChrLengthMbSum/(len(self.ChrLengthMbList)*12) #Empirical Mb interval
- else:
- self.GraphInterval = 1
-
- # for human data, there's no CM value
- self.ChrLengthCMList = []
- self.ChrLengthCMSum = 0
-
- # begin: common part with human data
- intCanvas = pid.PILCanvas(size=(self.graphWidth,self.graphHeight))
- gifmap = self.plotIntMappingForPLINK(fd, intCanvas, startMb = self.startMb, endMb = self.endMb, plinkResultDict=plinkResultDict)
-
- intCanvas.save(os.path.join(webqtlConfig.IMGDIR, filename), format='png')
- intImg=HT.Image('/image/'+filename+'.png', border=0, usemap='#WebQTLImageMap')
-
- TD_LR = HT.TR(HT.TD(HT.Blockquote(gifmap,intImg, HT.P()), bgColor='#eeeeee', height = 200))
- self.dict['body'] = str(headerdiv)+str(TD_LR)+str(resultstable)+str(HT.TR(HT.TD(descriptionTable)))
-
- else:
- heading = "Genome Association"
- detail = ['There is no association with marker that meets this criteria. Please provide a less stringend threshold. The minimun p-value is %s.'%minPvalue]
- self.error(heading=heading,detail=detail)
- return
-
- else: # QTLreaper result
- #if not fd.genotype:
- # fd.readData()
- #
- #fd.parentsf14regression = fd.formdata.getvalue('parentsf14regression')
- #weightedRegression = fd.formdata.getvalue('applyVarianceSE')
-
- #if fd.parentsf14regression and fd.genotype_2:
- # _genotype = fd.genotype_2
- #else:
- #print("[black]:", self.genotype)
-
- #_strains, _vals, _vars, N = fd.informativeStrains(_genotype.prgy, weightedRegression)
+ self.samples.append(str(sample))
+ self.vals.append(value)
+
+ self.gen_data(tempdata)
+
+ #Get chromosome lengths for drawing the manhattan plot
+ chromosome_mb_lengths = {}
+ for key in self.species.chromosomes.chromosomes.keys():
+ chromosome_mb_lengths[key] = self.species.chromosomes.chromosomes[key].mb_length
+
+ self.js_data = dict(
+ chromosomes = chromosome_mb_lengths,
+ qtl_results = self.qtl_results,
+ )
- #if fd.identification:
- # heading2 = HT.Paragraph('Trait ID: %s' % fd.identification)
- # heading2.__setattr__("class","subtitle")
- # self.dict['title'] = '%s: Genome Association' % fd.identification
- #else:
- # heading2 = ""
- # self.dict['title'] = 'Genome Association'
- #if fd.traitInfo:
- # symbol, chromosome, MB = string.split(fd.traitInfo,'\t')
- # heading3 = HT.Paragraph('[ ',HT.Strong(HT.Italic('%s' % symbol,id="green")),' on Chr %s @ %s Mb ]' % (chromosome,MB))
- #else:
- # heading3 = ""
+ def gen_data(self, tempdata):
+ """Generates p-values for each marker"""
- ### Todo in 2013: Don't allow marker regression in show trait page when number of samples
- ### with values < 5
+ self.dataset.group.get_markers()
- #if N < webqtlConfig.KMININFORMATIVE:
- # heading = "Genome Association"
- # detail = ['Fewer than %d strain data were entered for %s data set. No mapping attempted.' % (webqtlConfig.KMININFORMATIVE, fd.RISet)]
- # self.error(heading=heading,detail=detail)
- # return
- #else:
- # heading = HT.Paragraph('Trait Data Entered for %s Set' % fd.RISet)
- # heading.__setattr__("class","title")
+ pheno_vector = np.array([val == "x" and np.nan or float(val) for val in self.vals])
- #datadiv = HT.TD(heading, heading2,heading3, width='45%',valign='top', align='left', bgColor='#eeeeee')
- #resultstable,tblobj,bottomInfo = self.GenReport(ChrNameOrderIdDict,fd, _genotype, _strains, _vals, _vars)
+ if self.dataset.group.species == "human":
+ p_values, t_stats = self.gen_human_results(pheno_vector, tempdata)
+ else:
+ genotype_data = [marker['genotypes'] for marker in self.dataset.group.markers.markers]
- self.gen_data()
- #resultstable = self.GenReport(fd, _genotype, _strains, _vals, _vars)
-
- # creat object for result table for sort function
- ##objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- ##cPickle.dump(tblobj, objfile)
- ##objfile.close()
- #
- #sortby = ("Index", "up")
- #reportTable =HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=sortby, tableID = "sortable", addIndex = "0"), Id="sortable")
- #
- #descriptionTable = HT.TableLite(border=0, cellpadding=0, cellspacing=0)
- #descriptionTable.append(HT.TR(HT.TD(reportTable, colspan=3)))
- #descriptionTable.append(HT.TR(HT.TD(HT.BR(),HT.BR())))
- #descriptionTable.append(bottomInfo)
-
- #self.traitList=_vals
-
- ##########################plot#######################
-
- ################################################################
- # Generate Chr list and Retrieve Length Information
- ################################################################
- #self.genotype= _genotype
- #self.ChrList = [("All", -1)]
-
- #for i, indChr in enumerate(self.genotype):
- # self.ChrList.append((indChr.name, i))
-
- #self.cursor.execute("""
- # Select
- # Length from Chr_Length, InbredSet
- # where
- # Chr_Length.SpeciesId = InbredSet.SpeciesId AND
- # InbredSet.Name = '%s' AND
- # Chr_Length.Name in (%s)
- # Order by
- # OrderId
- # """ % (fd.RISet, string.join(map(lambda X: "'%s'" % X[0], self.ChrList[1:]), ", ")))
- #
- #self.ChrLengthMbList = self.cursor.fetchall()
- #self.ChrLengthMbList = map(lambda x: x[0]/1000000.0, self.ChrLengthMbList)
- #self.ChrLengthMbSum = reduce(lambda x, y:x+y, self.ChrLengthMbList, 0.0)
- #if self.ChrLengthMbList:
- # self.MbGraphInterval = self.ChrLengthMbSum/(len(self.ChrLengthMbList)*12) #Empirical Mb interval
- #else:
- # self.MbGraphInterval = 1
- #
- #self.ChrLengthCMList = []
- #for i, _chr in enumerate(self.genotype):
- # self.ChrLengthCMList.append(_chr[-1].cM - _chr[0].cM)
- #self.ChrLengthCMSum = reduce(lambda x, y:x+y, self.ChrLengthCMList, 0.0)# used for calculate plot scale
-
- #self.GraphInterval = self.MbGraphInterval #Mb
-
- # begin: common part with human data
- #intCanvas = pid.PILCanvas(size=(self.graphWidth,self.graphHeight))
- #gifmap = self.plotIntMapping(fd, intCanvas, startMb = self.startMb, endMb = self.endMb, showLocusForm= "")
- #filename= webqtlUtil.genRandStr("Itvl_")
- #intCanvas.save(os.path.join(webqtlConfig.IMGDIR, filename), format='png')
- #intImg=HT.Image('/image/'+filename+'.png', border=0, usemap='#WebQTLImageMap')
-
- ################################################################
- # footnote goes here
- ################################################################
- #btminfo = HT.Paragraph(Id="smallsize") #Small('More information about this graph is available here.')
-
- #if (self.additiveChecked):
- # btminfo.append(HT.BR(), 'A positive additive coefficient (', HT.Font('green', color='green'), ' line) indicates that %s alleles increase trait values. In contrast, a negative additive coefficient (' % fd.ppolar, HT.Font('red', color='red'), ' line) indicates that %s alleles increase trait values.' % fd.mpolar)
-
-
- #TD_LR = HT.TR(HT.TD(HT.Blockquote(gifmap,intImg, HT.P()), bgColor='#eeeeee', height = 200))
- #
- #self.dict['body'] = str(datadiv)+str(TD_LR)+str(resultstable)+str(HT.TR(HT.TD(descriptionTable)))
-
- # end: common part with human data
+ no_val_samples = self.identify_empty_samples()
+ trimmed_genotype_data = self.trim_genotypes(genotype_data, no_val_samples)
+
+ genotype_matrix = np.array(trimmed_genotype_data).T
- self.js_data = dict(
- qtl_results = self.pure_qtl_results,
- lrs_array = self.lrs_array,
+ print("pheno_vector is: ", pf(pheno_vector))
+ print("genotype_matrix is: ", pf(genotype_matrix))
+
+ t_stats, p_values = lmm.run(
+ pheno_vector,
+ genotype_matrix,
+ restricted_max_likelihood=True,
+ refit=False,
+ temp_data=tempdata
)
-
-
- # add by NL 10-2-2011
- def initializeParameters(self, fd):
- """
- Initializes all of the MarkerRegressionPage class parameters,
- acquiring most values from the formdata (fd)
- """
- ###################################
- # manhattam plot parameters
- ###################################
-
- self.graphHeight = 600
- self.graphWidth = 1280
- self.plotScale = 'physic'
- self.selectedChr = -1
- self.GRAPH_BACK_DARK_COLOR = pid.HexColor(0xF1F1F9)
- self.GRAPH_BACK_LIGHT_COLOR = pid.HexColor(0xFBFBFF)
- self.LRS_COLOR = pid.HexColor(0x0000FF)
- self.LRS_LOD ='LRS'
- self.lrsMax = float(fd.formdata.getvalue('lrsMax', 0))
- self.startMb = fd.formdata.getvalue('startMb', "-1")
- self.endMb = fd.formdata.getvalue('endMb', "-1")
- self.mappingMethodId = fd.formdata.getvalue('mappingMethodId', "0")
- self.permChecked=True
- self.multipleInterval=False
- self.SIGNIFICANT_WIDTH = 5
- self.SUGGESTIVE_WIDTH = 5
- self.SIGNIFICANT_COLOR = pid.HexColor(0xEBC7C7)
- self.SUGGESTIVE_COLOR = pid.gainsboro
- self.colorCollection = [self.LRS_COLOR]
- self.additiveChecked= True
- self.ADDITIVE_COLOR_POSITIVE = pid.green
- self.legendChecked =False
- self.pValue=float(fd.formdata.getvalue('pValue',-1))
-
- # allow user to input p-value greater than 1,
- # in this case, the value will be treated as -lgP value. so the input value needs to be transferred to power of 10 format
- if self.pValue >1:
- self.pValue =10**-(self.pValue)
-
- try:
- self.startMb = float(self.startMb)
- self.endMb = float(self.endMb)
- if self.startMb > self.endMb:
- temp = self.startMb
- self.startMb = self.endMb
- self.endMb = temp
- #minimal distance 10bp
- if self.endMb - self.startMb < 0.00001:
- self.endMb = self.startMb + 0.00001
- except:
- self.startMb = self.endMb = -1
-
- def GenReportForPLINK(self, ChrNameOrderIdDict={},RISet='',plinkResultDict= {},thresholdPvalue=-1,chrList=[]):
-
- 'Create an HTML division which reports any loci which are significantly associated with the submitted trait data.'
- #########################################
- # Genome Association report
- #########################################
- locusFormName = webqtlUtil.genRandStr("fm_")
- locusForm = HT.Form(cgi = os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), \
- enctype='multipart/form-data', name=locusFormName, submit=HT.Input(type='hidden'))
- hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':RISet+"Geno",'CellID':'_', \
- 'RISet':RISet, 'incparentsf1':'on'}
- for key in hddn.keys():
- locusForm.append(HT.Input(name=key, value=hddn[key], type='hidden'))
-
- regressionHeading = HT.Paragraph('Genome Association Report')
- regressionHeading.__setattr__("class","title")
-
- filename= webqtlUtil.genRandStr("GenomeAsscociation_")
- fpText = open('%s.txt' % (webqtlConfig.TMPDIR+filename), 'wb')
- fpText.write('The loci meet the criteria of P-Value <= %3.6f.\n'%thresholdPvalue)
- pValueInfo =HT.Paragraph('The loci meet the criteria of P-Value <= %3.6f.\n'%thresholdPvalue)
-
- textUrl = HT.Href(text = 'Download', url= '/tmp/'+filename+'.txt', target = "_blank", Class='fs12 fwn')
- bottomInfo = HT.TR(HT.TD(HT.Paragraph(textUrl, ' result in tab-delimited text format.', HT.BR(), HT.BR(),Class="fs12 fwn"), colspan=3))
-
- tblobj={} # build dict for genTableObj function; keys include header and body
- tblobj_header = [] # value of key 'header'
- tblobj_body=[] # value of key 'body'
- reportHeaderRow=[] # header row list for tblobj_header (html part)
- headerList=['Index','SNP Name','Chr','Mb','-log(P)']
- headerStyle="fs14 fwb ffl b1 cw cbrb" # style of the header
- cellColorStyle = "fs13 b1 fwn c222" # style of the cells
+ self.dataset.group.markers.add_pvalues(p_values)
- if headerList:
- for ncol, item in enumerate(headerList):
- reportHeaderRow.append(THCell(HT.TD(item, Class=headerStyle, valign='bottom',nowrap='ON'),text=item, idx=ncol))
- #download file for table headers' names
- fpText.write('SNP_Name\tChromosome\tMb\t-log(P)\n')
+ self.qtl_results = self.dataset.group.markers.markers
- tblobj_header.append(reportHeaderRow)
- tblobj['header']=tblobj_header
- index=1
- for chr in chrList:
+ def gen_human_results(self, pheno_vector, tempdata):
+ file_base = os.path.join(webqtlConfig.PYLMM_PATH, self.dataset.group.name)
- if plinkResultDict.has_key(chr):
- if chr in ChrNameOrderIdDict.keys():
- chrOrderId =ChrNameOrderIdDict[chr]
- else:
- chrOrderId=chr
+ plink_input = input.plink(file_base, type='b')
+ input_file_name = os.path.join(webqtlConfig.SNP_PATH, self.dataset.group.name + ".snps.gz")
- valueList=plinkResultDict[chr]
+ pheno_vector = pheno_vector.reshape((len(pheno_vector), 1))
+ covariate_matrix = np.ones((pheno_vector.shape[0],1))
+ kinship_matrix = np.fromfile(open(file_base + '.kin','r'),sep=" ")
+ kinship_matrix.resize((len(plink_input.indivs),len(plink_input.indivs)))
- for value in valueList:
- reportBodyRow=[] # row list for tblobj_body (html part)
- snpName=value[0]
- bp=value[1]
- mb=int(bp)/1000000.0
-
- try:
- pValue =float(value[2])
- except:
- pValue =1
- formattedPvalue = -math.log10(pValue)
-
- formattedPvalue = webqtlUtil.SciFloat(formattedPvalue)
- dbSnprs=snpName.replace('rs','')
- SnpHref = HT.Href(text=snpName, url="http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?rs=%s"%dbSnprs, target="_blank")
-
- selectCheck=HT.Input(type="checkbox", Class="checkbox", name="index",value=index, onClick="highlight(this)")
- reportBodyRow.append(TDCell(HT.TD(str(index),selectCheck, align='right',Class=cellColorStyle,nowrap='ON'),str(index),index))
- reportBodyRow.append(TDCell(HT.TD(SnpHref, Class=cellColorStyle,nowrap='ON'),snpName, snpName))
- reportBodyRow.append(TDCell(HT.TD(chr, Class=cellColorStyle, align="center",nowrap='ON'),chr, chrOrderId))
- reportBodyRow.append(TDCell(HT.TD('%3.6f'%mb, Class=cellColorStyle, align="center",nowrap='ON'),mb, mb))
- reportBodyRow.append(TDCell(HT.TD(formattedPvalue, Class=cellColorStyle, align="center",nowrap='ON'),formattedPvalue, float(formattedPvalue)))
-
- fpText.write('%s\t%s\t%3.6f\t%s\n' % (snpName, str(chr), mb, formattedPvalue))
- index+=1
-
- tblobj_body.append(reportBodyRow)
-
- tblobj['body']=tblobj_body
- rv=HT.TR(HT.TD(regressionHeading,pValueInfo, locusForm, HT.P(), width='55%',valign='top', align='left',bgColor='#eeeeee'))
-
- return rv, tblobj,bottomInfo
-
-
- def gen_data(self):
- """Todo: Fill this in here"""
-
- #calculate QTL for each trait
- self.qtl_results = self.genotype.regression(strains = self.samples,
- trait = self.vals)
- self.lrs_array = self.genotype.permutation(strains = self.samples,
- trait = self.vals,
- nperm=self.num_perm)
-
- self.lrs_thresholds = Bunch(
- suggestive = self.lrs_array[int(self.num_perm*0.37-1)],
- significant = self.lrs_array[int(self.num_perm*0.95-1)],
- highly_significant = self.lrs_array[int(self.num_perm*0.99-1)]
- )
-
- if self.display_all_lrs:
- filtered_results = self.qtl_results
- else:
- suggestive_results = []
- self.pure_qtl_results = []
- for result in self.qtl_results:
- self.pure_qtl_results.append(dict(locus=dict(name=result.locus.name,
- mb=result.locus.Mb,
- chromosome=result.locus.chr),
- lrs=result.lrs,
- additive=result.additive))
- if result.lrs > self.lrs_thresholds.suggestive:
- suggestive_results.append(result)
- filtered_results = suggestive_results
-
-
- # Todo (2013): Use top_10 variable to generate page message about whether top 10 was used
- if not filtered_results:
- # We use the 10 results with the highest LRS values
- filtered_results = sorted(self.qtl_results)[-10:]
- self.top_10 = True
- else:
- self.top_10 = False
-
-
-
- #qtlresults2 = []
- #if self.disp_all_lrs:
- # filtered = self.qtl_results[:]
- #else:
- # filtered = filter(lambda x, y=fd.suggestive: x.lrs > y, qtlresults)
- #if len(filtered) == 0:
- # qtlresults2 = qtlresults[:]
- # qtlresults2.sort()
- # filtered = qtlresults2[-10:]
+ p_values, t_stats = lmm.run_human(
+ pheno_vector,
+ covariate_matrix,
+ input_file_name,
+ kinship_matrix,
+ loading_progress=tempdata
+ )
- #########################################
- # Permutation Graph
- #########################################
- #myCanvas = pid.PILCanvas(size=(400,300))
- ##plotBar(myCanvas,10,10,390,290,LRSArray,XLabel='LRS',YLabel='Frequency',title=' Histogram of Permutation Test',identification=fd.identification)
- #Plot.plotBar(myCanvas, LRSArray, XLabel='LRS',YLabel='Frequency',title=' Histogram of Permutation Test')
- #filename= webqtlUtil.genRandStr("Reg_")
- #myCanvas.save(webqtlConfig.IMGDIR+filename, format='gif')
- #img=HT.Image('/image/'+filename+'.gif',border=0,alt='Histogram of Permutation Test')
-
- #if fd.suggestive == None:
- # fd.suggestive = LRSArray[int(fd.nperm*0.37-1)]
- #else:
- # fd.suggestive = float(fd.suggestive)
- #if fd.significance == None:
- # fd.significance = LRSArray[int(fd.nperm*0.95-1)]
- #else:
- # fd.significance = float(fd.significance)
+ return p_values, t_stats
- #permutationHeading = HT.Paragraph('Histogram of Permutation Test')
- #permutationHeading.__setattr__("class","title")
- #
- #permutation = HT.TableLite()
- #permutation.append(HT.TR(HT.TD(img)))
- for marker in filtered_results:
- if marker.lrs > webqtlConfig.MAXLRS:
- marker.lrs = webqtlConfig.MAXLRS
+ def identify_empty_samples(self):
+ no_val_samples = []
+ for sample_count, val in enumerate(self.vals):
+ if val == "x":
+ no_val_samples.append(sample_count)
+ return no_val_samples
- self.filtered_results = filtered_results
-
- #if fd.genotype.type == 'intercross':
- # ncol =len(headerList)
- # reportHeaderRow.append(THCell(HT.TD('Dominance Effect', Class=headerStyle, valign='bottom',nowrap='ON'),text='Dominance Effect', idx=ncol))
- #
- # #download file for table headers' names
- # fpText.write('LRS\tChromosome\tMb\tLocus\tAdditive Effect\tDominance Effect\n')
- #
- # index=1
- # for ii in filtered:
- # #add by NL 06-20-2011: set LRS to 460 when LRS is infinite,
- # if ii.lrs==float('inf') or ii.lrs>webqtlConfig.MAXLRS:
- # LRS=webqtlConfig.MAXLRS #maximum LRS value
- # else:
- # LRS=ii.lrs
- #
- # if LRS > fd.significance:
- # lrs = HT.TD(HT.Font('%3.3f*' % LRS, color='#FF0000'),Class=cellColorStyle)
- # else:
- # lrs = HT.TD('%3.3f' % LRS,Class=cellColorStyle)
- #
- # if ii.locus.chr in ChrNameOrderIdDict.keys():
- # chrOrderId =ChrNameOrderIdDict[ii.locus.chr]
- # else:
- # chrOrderId=ii.locus.chr
- #
- # reportBodyRow=[] # row list for tblobj_body (html part)
- # selectCheck=HT.Input(type="checkbox", Class="checkbox", name="index",value=index, onClick="highlight(this)")
- # reportBodyRow.append(TDCell(HT.TD(str(index),selectCheck, align='right',Class=cellColorStyle,nowrap='ON'),str(index),index))
- # reportBodyRow.append(TDCell(lrs,LRS, LRS))
- # reportBodyRow.append(TDCell(HT.TD(ii.locus.chr, Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.chr, chrOrderId))
- # reportBodyRow.append(TDCell(HT.TD('%3.6f'%ii.locus.Mb, Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.Mb, ii.locus.Mb))
- # reportBodyRow.append(TDCell(HT.TD(HT.Href(text=ii.locus.name, url = "javascript:showTrait('%s','%s');" % (locusFormName, ii.locus.name), Class='normalsize'), Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.name, ii.locus.name))
- # reportBodyRow.append(TDCell(HT.TD('%3.3f' % ii.additive, Class=cellColorStyle, align="center",nowrap='ON'),ii.additive, ii.additive))
- # reportBodyRow.append(TDCell(HT.TD('%3.3f' % ii.dominance, Class=cellColorStyle, align="center",nowrap='ON'),ii.dominance, ii.dominance))
- #
- # fpText.write('%2.3f\t%s\t%3.6f\t%s\t%2.3f\t%2.3f\n' % (LRS, ii.locus.chr, ii.locus.Mb, ii.locus.name, ii.additive, ii.dominance))
- # index+=1
- # tblobj_body.append(reportBodyRow)
- #else:
- # #download file for table headers' names
- # fpText.write('LRS\tChromosome\tMb\tLocus\tAdditive Effect\n')
- #
- # index=1
- # for ii in filtered:
- # #add by NL 06-20-2011: set LRS to 460 when LRS is infinite,
- # if ii.lrs==float('inf') or ii.lrs>webqtlConfig.MAXLRS:
- # LRS=webqtlConfig.MAXLRS #maximum LRS value
- # else:
- # LRS=ii.lrs
- #
- # if LRS > fd.significance:
- # lrs = HT.TD(HT.Font('%3.3f*' % LRS, color='#FF0000'),Class=cellColorStyle)
- # else:
- # lrs = HT.TD('%3.3f' % LRS,Class=cellColorStyle)
- #
- # if ii.locus.chr in ChrNameOrderIdDict.keys():
- # chrOrderId =ChrNameOrderIdDict[ii.locus.chr]
- # else:
- # chrOrderId=ii.locus.chr
- #
- # reportBodyRow=[] # row list for tblobj_body (html part)
- # selectCheck=HT.Input(type="checkbox", Class="checkbox", name="index",value=index, onClick="highlight(this)")
- # reportBodyRow.append(TDCell(HT.TD(str(index),selectCheck, align='right',Class=cellColorStyle,nowrap='ON'),str(index),index))
- # reportBodyRow.append(TDCell(lrs,LRS, LRS))
- # reportBodyRow.append(TDCell(HT.TD(ii.locus.chr, Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.chr, chrOrderId))
- # reportBodyRow.append(TDCell(HT.TD('%3.6f'%ii.locus.Mb, Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.Mb, ii.locus.Mb))
- # reportBodyRow.append(TDCell(HT.TD(HT.Href(text=ii.locus.name, url = "javascript:showTrait('%s','%s');" % (locusFormName, ii.locus.name), Class='normalsize'), Class=cellColorStyle, align="center",nowrap='ON'),ii.locus.name, ii.locus.name))
- # reportBodyRow.append(TDCell(HT.TD('%3.3f' % ii.additive, Class=cellColorStyle, align="center",nowrap='ON'),ii.additive, ii.additive))
- #
- # fpText.write('%2.3f\t%s\t%3.6f\t%s\t%2.3f\n' % (LRS, ii.locus.chr, ii.locus.Mb, ii.locus.name, ii.additive))
- # index+=1
- # tblobj_body.append(reportBodyRow)
-
- #tblobj_header.append(reportHeaderRow)
- #tblobj['header']=tblobj_header
- #tblobj['body']=tblobj_body
-
- #rv=HT.TD(regressionHeading,LRSInfo,report, locusForm, HT.P(),width='55%',valign='top', align='left', bgColor='#eeeeee')
- #if fd.genotype.type == 'intercross':
- # bottomInfo.append(HT.BR(), HT.BR(), HT.Strong('Dominance Effect'),' is the difference between the mean trait value of cases heterozygous at a marker and the average mean for the two groups homozygous at this marker: e.g., BD - (BB+DD)/2]. A positive dominance effect indicates that the average phenotype of BD heterozygotes exceeds the mean of BB and DD homozygotes. No dominance deviation can be computed for a set of recombinant inbred strains or for a backcross.')
- #return rv,tblobj,bottomInfo
-
- #return rv,tblobj,bottomInfo
-
- def plotIntMappingForPLINK(self, fd, canvas, offset= (80, 120, 20, 80), zoom = 1, startMb = None, endMb = None, showLocusForm = "",plinkResultDict={}):
- #calculating margins
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
-
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- xLeftOffset = int(xLeftOffset*fontZoom)
- xRightOffset = int(xRightOffset*fontZoom)
- yBottomOffset = int(yBottomOffset*fontZoom)
-
- cWidth = canvas.size[0]
- cHeight = canvas.size[1]
- plotWidth = cWidth - xLeftOffset - xRightOffset
- plotHeight = cHeight - yTopOffset - yBottomOffset
- startPixelX = xLeftOffset
- endPixelX = (xLeftOffset + plotWidth)
-
- #Drawing Area Height
- drawAreaHeight = plotHeight
- if self.plotScale == 'physic' and self.selectedChr > -1: # for single chr
- drawAreaHeight -= self.ENSEMBL_BAND_HEIGHT + self.UCSC_BAND_HEIGHT+ self.WEBQTL_BAND_HEIGHT + 3*self.BAND_SPACING+ 10*zoom
- if self.geneChecked:
- drawAreaHeight -= self.NUM_GENE_ROWS*self.EACH_GENE_HEIGHT + 3*self.BAND_SPACING + 10*zoom
- else:
- if self.selectedChr > -1:
- drawAreaHeight -= 20
- else:# for all chrs
- drawAreaHeight -= 30
-
- #Image map
- gifmap = HT.Map(name='WebQTLImageMap')
-
- newoffset = (xLeftOffset, xRightOffset, yTopOffset, yBottomOffset)
- # Draw the alternating-color background first and get plotXScale
- plotXScale = self.drawGraphBackgroundForPLINK(canvas, gifmap, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb,plinkResultDict=plinkResultDict)
-
- # Draw X axis
- self.drawXAxisForPLINK(fd, canvas, drawAreaHeight, gifmap, plotXScale, showLocusForm, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb)
- # Draw manhattam plot
- self.drawManhattanPlotForPLINK(canvas, drawAreaHeight, gifmap, plotXScale, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb,plinkResultDict=plinkResultDict,thresholdPvalue=self.pValue)
-
- return gifmap
-
-
- def plotIntMapping(self, fd, canvas, offset= (80, 120, 20, 80), zoom = 1, startMb = None, endMb = None, showLocusForm = ""):
- #calculating margins
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
-
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- xLeftOffset = int(xLeftOffset*fontZoom)
- xRightOffset = int(xRightOffset*fontZoom)
- yBottomOffset = int(yBottomOffset*fontZoom)
-
- cWidth = canvas.size[0]
- cHeight = canvas.size[1]
- plotWidth = cWidth - xLeftOffset - xRightOffset
- plotHeight = cHeight - yTopOffset - yBottomOffset
- startPixelX = xLeftOffset
- endPixelX = (xLeftOffset + plotWidth)
-
- #Drawing Area Height
- drawAreaHeight = plotHeight
- if self.plotScale == 'physic' and self.selectedChr > -1: # for single chr
- drawAreaHeight -= self.ENSEMBL_BAND_HEIGHT + self.UCSC_BAND_HEIGHT+ self.WEBQTL_BAND_HEIGHT + 3*self.BAND_SPACING+ 10*zoom
- if self.geneChecked:
- drawAreaHeight -= self.NUM_GENE_ROWS*self.EACH_GENE_HEIGHT + 3*self.BAND_SPACING + 10*zoom
- else:# for all chrs
- if self.selectedChr > -1:
- drawAreaHeight -= 20
- else:
- drawAreaHeight -= 30
-
- #Image map
- gifmap = HT.Map(name='WebQTLImageMap')
-
- newoffset = (xLeftOffset, xRightOffset, yTopOffset, yBottomOffset)
- # Draw the alternating-color background first and get plotXScale
- plotXScale = self.drawGraphBackground(canvas, gifmap, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb)
-
- # Draw X axis
- self.drawXAxis(fd, canvas, drawAreaHeight, gifmap, plotXScale, showLocusForm, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb)
- # Draw QTL curve
- self.drawQTL(canvas, drawAreaHeight, gifmap, plotXScale, offset=newoffset, zoom= zoom, startMb=startMb, endMb = endMb)
-
- #draw legend
- if self.multipleInterval:
- self.drawMultiTraitName(fd, canvas, gifmap, showLocusForm, offset=newoffset)
- elif self.legendChecked:
- self.drawLegendPanel(fd, canvas, offset=newoffset)
- else:
- pass
-
- #draw position, no need to use a separate function
- if fd.genotype.Mbmap:
- self.drawProbeSetPosition(canvas, plotXScale, offset=newoffset)
-
- return gifmap
-
-
- # functions for manhattam plot of markers
- def drawManhattanPlotForPLINK(self, canvas, drawAreaHeight, gifmap, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None,plinkResultDict={},thresholdPvalue=-1):
-
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- # INTERCROSS = (self.genotype.type=="intercross")
- INTERCROSS ='' #??????
-
- ChrLengthDistList = self.ChrLengthMbList
- drawRegionDistance = self.ChrLengthMbSum
- GraphInterval=self.GraphInterval
- pvalueHeightThresh = drawAreaHeight - 80 #ZS: Otherwise the plot gets very close to the chromosome labels
-
- #draw the pvalue scale
- #We first determine whether or not we are using a sliding scale.
- #If so, we need to compute the maximum pvalue value to determine where the max y-value should be, and call this pvalueMax.
- #pvalueTop is then defined to be above the pvalueMax by enough to add one additional pvalueScale increment.
- #if we are using a set-scale, then we set pvalueTop to be the user's value, and pvalueMax doesn't matter.
-
- # for human data we use p value instead of lrs
- pValueList=[]
- for key in plinkResultDict:
- valueList = plinkResultDict[key]
- for item in valueList:
- pValue = item[-1]
- pValueList.append(pValue)
-
- formattedPValueList=[]
- for pValue in pValueList:
- try:
- pValue=float(pValue)
- except:
- pValue =1
- formattedpValue = -math.log10(pValue)
- formattedPValueList.append(formattedpValue)
-
- #sliding scale
- pvalueMax = max(formattedPValueList)
- #pvalueMax =pvalueMax +1
- # no permutation result for plink func: GenReport()
- pvalueMin = int(-math.log10(thresholdPvalue))
-
- if pvalueMax> 100:
- pvalueScale = 20.0
- elif pvalueMax > 20:
- pvalueScale = 5.0
- elif pvalueMax > 7.5:
- pvalueScale = 2.5
- else:
- pvalueScale = 1.0
-
- # the base line for x-axis is -log(thresholdPvalue)
- pvalueAxisList = Plot.frange(pvalueMin, pvalueMax, pvalueScale)
- #make sure the user's value appears on the y-axis
- #ZS: There is no way to do this without making the position of the points not directly proportional to a given distance on the y-axis
- #tempPvalueMax=round(pvalueMax)
- tempPvalueMax = pvalueAxisList[len(pvalueAxisList)-1] + pvalueScale
- pvalueAxisList.append(tempPvalueMax)
-
- #ZS: I don't understand this; the if statement will be true for any number that isn't exactly X.5.
- #if abs(tempPvalueMax-pvalueMax) <0.5:
- # tempPvalueMax=tempPvalueMax+1
- # pvalueAxisList.append(tempPvalueMax)
-
- #draw the "pvalue" string to the left of the axis
- pvalueScaleFont=pid.Font(ttf="verdana", size=14*fontZoom, bold=0)
- pvalueLODFont=pid.Font(ttf="verdana", size=14*zoom*1.5, bold=0)
- yZero = yTopOffset + plotHeight
-
- #yAxis label display area
- yAxis_label ='-log(P)'
- canvas.drawString(yAxis_label, xLeftOffset - canvas.stringWidth("999.99", font=pvalueScaleFont) - 10*zoom, \
- yZero - 150, font=pvalueLODFont, color=pid.black, angle=90)
-
- for i,item in enumerate(pvalueAxisList):
- ypvalue = yZero - (float(i)/float(len(pvalueAxisList) - 1)) * pvalueHeightThresh
- canvas.drawLine(xLeftOffset, ypvalue, xLeftOffset - 4, ypvalue, color=self.LRS_COLOR, width=1*zoom)
- scaleStr = "%2.1f" % item
- #added by NL 6-24-2011:Y-axis scale display
- canvas.drawString(scaleStr, xLeftOffset-4-canvas.stringWidth(scaleStr, font=pvalueScaleFont)-5, ypvalue+3, font=pvalueScaleFont, color=self.LRS_COLOR)
-
- ChrList=self.ChrList
- startPosX = xLeftOffset
-
- for i, chr in enumerate(ChrList):
-
- if plinkResultDict.has_key(chr):
- plinkresultList = plinkResultDict[chr]
-
- m = 0
- #add by NL 06-24-2011: for mahanttam plot
- symbolFont = pid.Font(ttf="fnt_bs", size=5,bold=0)
- # color for point in each chr
- chrCount=len(ChrList)
- chrColorDict =self.getColorForMarker(chrCount=chrCount,flag=1)
- for j, item in enumerate(plinkresultList):
- try :
- mb=float(item[1])/1000000.0
- except:
- mb=0
-
- try :
- pvalue =float(item[-1])
- except:
- pvalue =1
-
- try:
- snpName = item[0]
- except:
- snpName=''
-
- formattedPvalue = -math.log10(pvalue)
-
- Xc = startPosX + (mb-startMb)*plotXScale
- Yc = yZero - (formattedPvalue-pvalueMin)*pvalueHeightThresh/(tempPvalueMax - pvalueMin)
- canvas.drawString("5", Xc-canvas.stringWidth("5",font=symbolFont)/2+1,Yc+2,color=chrColorDict[i], font=symbolFont)
- m += 1
-
- startPosX += (ChrLengthDistList[i]+GraphInterval)*plotXScale
-
- canvas.drawLine(xLeftOffset, yZero, xLeftOffset, yTopOffset, color=self.LRS_COLOR, width=1*zoom) #the blue line running up the y axis
-
- def drawQTL(self, canvas, drawAreaHeight, gifmap, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None):
-
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- INTERCROSS = (self.genotype.type=="intercross")
-
- ChrLengthDistList = self.ChrLengthMbList
- GraphInterval=self.GraphInterval
- LRSHeightThresh = drawAreaHeight
- AdditiveHeightThresh = drawAreaHeight/2
- DominanceHeightThresh = drawAreaHeight/2
-
- #draw the LRS scale
- #We first determine whether or not we are using a sliding scale.
- #If so, we need to compute the maximum LRS value to determine where the max y-value should be, and call this LRSMax.
- #LRSTop is then defined to be above the LRSMax by enough to add one additional LRSScale increment.
- #if we are using a set-scale, then we set LRSTop to be the user's value, and LRSMax doesn't matter.
-
- if self.LRS_LOD == 'LOD':
- lodm = self.LODFACTOR
- else:
- lodm = 1.0
-
- if self.lrsMax <= 0: #sliding scale
- LRSMax = max(map(max, self.qtlresults)).lrs
- #genotype trait will give infinite LRS
- LRSMax = min(LRSMax, webqtlConfig.MAXLRS)
- LRSMax = max(self.significance, LRSMax)
- else:
- LRSMax = self.lrsMax*lodm
-
- if LRSMax/lodm > 100:
- LRSScale = 20.0
- elif LRSMax/lodm > 20:
- LRSScale = 5.0
- elif LRSMax/lodm > 7.5:
- LRSScale = 2.5
- else:
- LRSScale = 1.0
-
- LRSAxisList = Plot.frange(LRSScale, LRSMax/lodm, LRSScale)
- #make sure the user's value appears on the y-axis
- #update by NL 6-21-2011: round the LOD value to 100 when LRSMax is equal to 460
- LRSAxisList.append(round(LRSMax/lodm))
-
- #draw the "LRS" or "LOD" string to the left of the axis
- LRSScaleFont=pid.Font(ttf="verdana", size=14*fontZoom, bold=0)
- LRSLODFont=pid.Font(ttf="verdana", size=14*zoom*1.5, bold=0)
- yZero = yTopOffset + plotHeight
-
- #yAxis label display area
- canvas.drawString(self.LRS_LOD, xLeftOffset - canvas.stringWidth("999.99", font=LRSScaleFont) - 10*zoom, \
- yZero - 150, font=LRSLODFont, color=pid.black, angle=90)
-
- for item in LRSAxisList:
- yLRS = yZero - (item*lodm/LRSMax) * LRSHeightThresh
- canvas.drawLine(xLeftOffset, yLRS, xLeftOffset - 4, yLRS, color=self.LRS_COLOR, width=1*zoom)
- scaleStr = "%2.1f" % item
- #added by NL 6-24-2011:Y-axis scale display
- canvas.drawString(scaleStr, xLeftOffset-4-canvas.stringWidth(scaleStr, font=LRSScaleFont)-5, yLRS+3, font=LRSScaleFont, color=self.LRS_COLOR)
-
-
- #"Significant" and "Suggestive" Drawing Routine
- # ======= Draw the thick lines for "Significant" and "Suggestive" ===== (crowell: I tried to make the SNPs draw over these lines, but piddle wouldn't have it...)
- if self.permChecked and not self.multipleInterval:
- significantY = yZero - self.significance*LRSHeightThresh/LRSMax
- suggestiveY = yZero - self.suggestive*LRSHeightThresh/LRSMax
-
-
- startPosX = xLeftOffset
- for i, _chr in enumerate(self.genotype):
- rightEdge = int(startPosX + self.ChrLengthDistList[i]*plotXScale - self.SUGGESTIVE_WIDTH/1.5)
- #added by NL 6-24-2011:draw suggestive line (grey one)
- canvas.drawLine(startPosX+self.SUGGESTIVE_WIDTH/1.5, suggestiveY, rightEdge, suggestiveY, color=self.SUGGESTIVE_COLOR,
- width=self.SUGGESTIVE_WIDTH*zoom, clipX=(xLeftOffset, xLeftOffset + plotWidth-2))
- #added by NL 6-24-2011:draw significant line (pink one)
- canvas.drawLine(startPosX+self.SUGGESTIVE_WIDTH/1.5, significantY, rightEdge, significantY, color=self.SIGNIFICANT_COLOR,
- width=self.SIGNIFICANT_WIDTH*zoom, clipX=(xLeftOffset, xLeftOffset + plotWidth-2))
- sugg_coords = "%d, %d, %d, %d" % (startPosX, suggestiveY-2, rightEdge + 2*zoom, suggestiveY+2)
- sig_coords = "%d, %d, %d, %d" % (startPosX, significantY-2, rightEdge + 2*zoom, significantY+2)
- if self.LRS_LOD == 'LRS':
- sugg_title = "Suggestive LRS = %0.2f" % self.suggestive
- sig_title = "Significant LRS = %0.2f" % self.significance
- else:
- sugg_title = "Suggestive LOD = %0.2f" % (self.suggestive/4.61)
- sig_title = "Significant LOD = %0.2f" % (self.significance/4.61)
- Areas1 = HT.Area(shape='rect',coords=sugg_coords,title=sugg_title)
- Areas2 = HT.Area(shape='rect',coords=sig_coords,title=sig_title)
- gifmap.areas.append(Areas1)
- gifmap.areas.append(Areas2)
-
- startPosX += (self.ChrLengthDistList[i]+self.GraphInterval)*plotXScale
-
-
- if self.multipleInterval:
- lrsEdgeWidth = 1
- else:
- additiveMax = max(map(lambda X : abs(X.additive), self.qtlresults[0]))
- if INTERCROSS:
- dominanceMax = max(map(lambda X : abs(X.dominance), self.qtlresults[0]))
- else:
- dominanceMax = -1
- lrsEdgeWidth = 2
- for i, qtlresult in enumerate(self.qtlresults):
- m = 0
- startPosX = xLeftOffset
- thisLRSColor = self.colorCollection[i]
-
- #add by NL 06-24-2011: for mahanttam plot
- symbolFont = pid.Font(ttf="fnt_bs", size=5,bold=0)
-
- for j, _chr in enumerate(self.genotype):
- chrCount=len(self.genotype)
- chrColorDict =self.getColorForMarker(chrCount=chrCount,flag=1)
- LRSCoordXY = []
- AdditiveCoordXY = []
- DominanceCoordXY = []
- for k, _locus in enumerate(_chr):
- if self.plotScale == 'physic':
- Xc = startPosX + (_locus.Mb-startMb)*plotXScale
- else:
- Xc = startPosX + (_locus.cM-_chr[0].cM)*plotXScale
- # updated by NL 06-18-2011:
- # fix the over limit LRS graph issue since genotype trait may give infinite LRS;
- # for any lrs is over than 460(LRS max in this system), it will be reset to 460
- if qtlresult[m].lrs> 460 or qtlresult[m].lrs=='inf':
- Yc = yZero - webqtlConfig.MAXLRS*LRSHeightThresh/LRSMax
- else:
- Yc = yZero - qtlresult[m].lrs*LRSHeightThresh/LRSMax
-
- LRSCoordXY.append((Xc, Yc))
- #add by NL 06-24-2011: for mahanttam plot
- #self.significance/4.61 consider chr and LOD
- # significantY = yZero - self.significance*LRSHeightThresh/LRSMax
- # if Yc >significantY:
- # canvas.drawString(":", Xc-canvas.stringWidth(":",font=symbolFont)/2+1,Yc+2,color=pid.black, font=symbolFont)
- # else:
- # canvas.drawString(":", Xc-canvas.stringWidth(":",font=symbolFont)/2+1,Yc+2,color=pid.black, font=symbolFont)
-
- # add by NL 06-27-2011: eliminate imputed value when locus name is equal to '-'
- if (qtlresult[m].locus.name) and (qtlresult[m].locus.name!=' - '):
- canvas.drawString("5", Xc-canvas.stringWidth("5",font=symbolFont)/2+1,Yc+2,color=chrColorDict[j], font=symbolFont)
-
- if not self.multipleInterval and self.additiveChecked:
- Yc = yZero - qtlresult[m].additive*AdditiveHeightThresh/additiveMax
- AdditiveCoordXY.append((Xc, Yc))
- if not self.multipleInterval and INTERCROSS and self.additiveChecked:
- Yc = yZero - qtlresult[m].dominance*DominanceHeightThresh/dominanceMax
- DominanceCoordXY.append((Xc, Yc))
- m += 1
-
- startPosX += (ChrLengthDistList[j]+GraphInterval)*plotXScale
-
-
- ###draw additive scale
- if not self.multipleInterval and self.additiveChecked:
- additiveScaleFont=pid.Font(ttf="verdana",size=12*fontZoom,bold=0)
- additiveScale = Plot.detScaleOld(0,additiveMax)
- additiveStep = (additiveScale[1]-additiveScale[0])/additiveScale[2]
- additiveAxisList = Plot.frange(0, additiveScale[1], additiveStep)
- maxAdd = additiveScale[1]
- addPlotScale = AdditiveHeightThresh/additiveMax
-
- additiveAxisList.append(additiveScale[1])
- for item in additiveAxisList:
- additiveY = yZero - item*addPlotScale
- canvas.drawLine(xLeftOffset + plotWidth,additiveY,xLeftOffset+4+ plotWidth,additiveY,color=self.ADDITIVE_COLOR_POSITIVE, width=1*zoom)
- scaleStr = "%2.3f" % item
- canvas.drawString(scaleStr,xLeftOffset + plotWidth +6,additiveY+5,font=additiveScaleFont,color=self.ADDITIVE_COLOR_POSITIVE)
-
- canvas.drawLine(xLeftOffset+plotWidth,additiveY,xLeftOffset+plotWidth,yZero,color=self.ADDITIVE_COLOR_POSITIVE, width=1*zoom)
-
- canvas.drawLine(xLeftOffset, yZero, xLeftOffset, yTopOffset, color=self.LRS_COLOR, width=1*zoom) #the blue line running up the y axis
-
- def drawGraphBackgroundForPLINK(self, canvas, gifmap, offset= (80, 120, 80, 50), zoom = 1, startMb = None, endMb = None,plinkResultDict={} ):
-
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- #calculate plot scale
- #XZ: all of these global variables should be passed from function signiture
- ChrLengthDistList = self.ChrLengthMbList
- drawRegionDistance = self.ChrLengthMbSum
- GraphInterval=self.GraphInterval
- ChrList =self.ChrList
-
- #multiple chromosome view
- plotXScale = plotWidth / ((len(ChrList)-1)*GraphInterval + drawRegionDistance)
-
- startPosX = xLeftOffset
- chrLabelFont=pid.Font(ttf="verdana",size=24*fontZoom,bold=0)
-
- for i, _chr in enumerate(ChrList):
-
- if (i % 2 == 0):
- theBackColor = self.GRAPH_BACK_DARK_COLOR
- else:
- theBackColor = self.GRAPH_BACK_LIGHT_COLOR
- # NL:resize chr width for drawing
- if float(ChrLengthDistList[i])<90:
- ChrLengthDistList[i]=90
- #draw the shaded boxes and the sig/sug thick lines
- canvas.drawRect(startPosX, yTopOffset, startPosX + ChrLengthDistList[i]*plotXScale, \
- yTopOffset+plotHeight, edgeColor=pid.gainsboro,fillColor=theBackColor)
-
- chrNameWidth = canvas.stringWidth(_chr, font=chrLabelFont)
- chrStartPix = startPosX + (ChrLengthDistList[i]*plotXScale -chrNameWidth)/2
- chrEndPix = startPosX + (ChrLengthDistList[i]*plotXScale +chrNameWidth)/2
-
- canvas.drawString(_chr, chrStartPix, yTopOffset +20,font = chrLabelFont,color=pid.dimgray)
- COORDS = "%d,%d,%d,%d" %(chrStartPix, yTopOffset, chrEndPix,yTopOffset +20)
-
- #add by NL 09-03-2010
- HREF = "javascript:changeView(%d,%s);" % (i,ChrLengthDistList)
- Areas = HT.Area(shape='rect',coords=COORDS,href=HREF)
- gifmap.areas.append(Areas)
- startPosX += (ChrLengthDistList[i]+GraphInterval)*plotXScale
-
- return plotXScale
-
-
- def drawGraphBackground(self, canvas, gifmap, offset= (80, 120, 80, 50), zoom = 1, startMb = None, endMb = None):
- ##conditions
- ##multiple Chromosome view
- ##single Chromosome Physical
- ##single Chromosome Genetic
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- #calculate plot scale
- if self.plotScale != 'physic':
- self.ChrLengthDistList = self.ChrLengthCMList
- drawRegionDistance = self.ChrLengthCMSum
- else:
- self.ChrLengthDistList = self.ChrLengthMbList
- drawRegionDistance = self.ChrLengthMbSum
-
- if self.selectedChr > -1: #single chromosome view
- spacingAmt = plotWidth/13.5
- i = 0
- for startPix in Plot.frange(xLeftOffset, xLeftOffset+plotWidth, spacingAmt):
- if (i % 2 == 0):
- theBackColor = self.GRAPH_BACK_DARK_COLOR
- else:
- theBackColor = self.GRAPH_BACK_LIGHT_COLOR
- i += 1
- canvas.drawRect(startPix, yTopOffset, min(startPix+spacingAmt, xLeftOffset+plotWidth), \
- yTopOffset+plotHeight, edgeColor=theBackColor, fillColor=theBackColor)
-
- drawRegionDistance = self.ChrLengthDistList[self.selectedChr]
- self.ChrLengthDistList = [drawRegionDistance]
- if self.plotScale == 'physic':
- plotXScale = plotWidth / (endMb-startMb)
- else:
- plotXScale = plotWidth / drawRegionDistance
-
- else: #multiple chromosome view
- plotXScale = plotWidth / ((len(self.genotype)-1)*self.GraphInterval + drawRegionDistance)
-
- startPosX = xLeftOffset
- chrLabelFont=pid.Font(ttf="verdana",size=24*fontZoom,bold=0)
-
- for i, _chr in enumerate(self.genotype):
-
- if (i % 2 == 0):
- theBackColor = self.GRAPH_BACK_DARK_COLOR
- else:
- theBackColor = self.GRAPH_BACK_LIGHT_COLOR
-
- #draw the shaded boxes and the sig/sug thick lines
- canvas.drawRect(startPosX, yTopOffset, startPosX + self.ChrLengthDistList[i]*plotXScale, \
- yTopOffset+plotHeight, edgeColor=pid.gainsboro,fillColor=theBackColor)
-
- chrNameWidth = canvas.stringWidth(_chr.name, font=chrLabelFont)
- chrStartPix = startPosX + (self.ChrLengthDistList[i]*plotXScale -chrNameWidth)/2
- chrEndPix = startPosX + (self.ChrLengthDistList[i]*plotXScale +chrNameWidth)/2
-
- canvas.drawString(_chr.name, chrStartPix, yTopOffset +20,font = chrLabelFont,color=pid.dimgray)
- COORDS = "%d,%d,%d,%d" %(chrStartPix, yTopOffset, chrEndPix,yTopOffset +20)
-
- #add by NL 09-03-2010
- HREF = "javascript:changeView(%d,%s);" % (i,self.ChrLengthMbList)
- Areas = HT.Area(shape='rect',coords=COORDS,href=HREF)
- gifmap.areas.append(Areas)
- startPosX += (self.ChrLengthDistList[i]+self.GraphInterval)*plotXScale
-
- return plotXScale
-
- # XZ: The only difference of function drawXAxisForPLINK and function drawXAxis are the function name and the self.plotScale condition.
- def drawXAxisForPLINK(self, fd, canvas, drawAreaHeight, gifmap, plotXScale, showLocusForm, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None):
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- yZero = canvas.size[1] - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- #Parameters
- ChrLengthDistList = self.ChrLengthMbList
- GraphInterval=self.GraphInterval
-
- NUM_MINOR_TICKS = 5 # Number of minor ticks between major ticks
- X_MAJOR_TICK_THICKNESS = 2
- X_MINOR_TICK_THICKNESS = 1
- X_AXIS_THICKNESS = 1*zoom
-
- # ======= Alex: Draw the X-axis labels (megabase location)
- MBLabelFont = pid.Font(ttf="verdana", size=12*fontZoom, bold=0)
- xMajorTickHeight = 15 # How high the tick extends below the axis
- xMinorTickHeight = 5*zoom
- xAxisTickMarkColor = pid.black
- xAxisLabelColor = pid.black
- fontHeight = 12*fontZoom # How tall the font that we're using is
- spacingFromLabelToAxis = 20
- spacingFromLineToLabel = 3
-
- if self.plotScale == 'physic':
- strYLoc = yZero + spacingFromLabelToAxis + canvas.fontHeight(MBLabelFont)
- ###Physical single chromosome view
- if self.selectedChr > -1:
- graphMbWidth = endMb - startMb
- XScale = Plot.detScale(startMb, endMb)
- XStart, XEnd, XStep = XScale
- if XStep < 8:
- XStep *= 2
- spacingAmtX = spacingAmt = (XEnd-XStart)/XStep
-
- j = 0
- while abs(spacingAmtX -int(spacingAmtX)) >= spacingAmtX/100.0 and j < 6:
- j += 1
- spacingAmtX *= 10
-
- formatStr = '%%2.%df' % j
-
- for counter, _Mb in enumerate(Plot.frange(XStart, XEnd, spacingAmt / NUM_MINOR_TICKS)):
- if _Mb < startMb or _Mb > endMb:
- continue
- Xc = xLeftOffset + plotXScale*(_Mb - startMb)
- if counter % NUM_MINOR_TICKS == 0: # Draw a MAJOR mark, not just a minor tick mark
- canvas.drawLine(Xc, yZero, Xc, yZero+xMajorTickHeight, color=xAxisTickMarkColor, width=X_MAJOR_TICK_THICKNESS) # Draw the MAJOR tick mark
- labelStr = str(formatStr % _Mb) # What Mbase location to put on the label
- strWidth = canvas.stringWidth(labelStr, font=MBLabelFont)
- drawStringXc = (Xc - (strWidth / 2.0))
- canvas.drawString(labelStr, drawStringXc, strYLoc, font=MBLabelFont, color=xAxisLabelColor, angle=0)
- else:
- canvas.drawLine(Xc, yZero, Xc, yZero+xMinorTickHeight, color=xAxisTickMarkColor, width=X_MINOR_TICK_THICKNESS) # Draw the MINOR tick mark
- # end else
-
- ###Physical genome wide view
- else:
- distScale = 0
- startPosX = xLeftOffset
- for i, distLen in enumerate(ChrLengthDistList):
- if distScale == 0: #universal scale in whole genome mapping
- if distLen > 75:
- distScale = 25
- elif distLen > 30:
- distScale = 10
- else:
- distScale = 5
- for tickdists in range(distScale, ceil(distLen), distScale):
- canvas.drawLine(startPosX + tickdists*plotXScale, yZero, startPosX + tickdists*plotXScale, yZero + 7, color=pid.black, width=1*zoom)
- canvas.drawString(str(tickdists), startPosX+tickdists*plotXScale, yZero + 10*zoom, color=pid.black, font=MBLabelFont, angle=270)
- startPosX += (ChrLengthDistList[i]+GraphInterval)*plotXScale
-
- megabaseLabelFont = pid.Font(ttf="verdana", size=14*zoom*1.5, bold=0)
- canvas.drawString("Megabases", xLeftOffset + (plotWidth -canvas.stringWidth("Megabases", font=megabaseLabelFont))/2,
- strYLoc + canvas.fontHeight(MBLabelFont) + 5*zoom, font=megabaseLabelFont, color=pid.black)
- pass
-
- canvas.drawLine(xLeftOffset, yZero, xLeftOffset+plotWidth, yZero, color=pid.black, width=X_AXIS_THICKNESS) # Draw the X axis itself
-
- def drawXAxis(self, fd, canvas, drawAreaHeight, gifmap, plotXScale, showLocusForm, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None):
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- yZero = canvas.size[1] - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- #Parameters
- NUM_MINOR_TICKS = 5 # Number of minor ticks between major ticks
- X_MAJOR_TICK_THICKNESS = 2
- X_MINOR_TICK_THICKNESS = 1
- X_AXIS_THICKNESS = 1*zoom
-
- # ======= Alex: Draw the X-axis labels (megabase location)
- MBLabelFont = pid.Font(ttf="verdana", size=12*fontZoom, bold=0)
- xMajorTickHeight = 15 # How high the tick extends below the axis
- xMinorTickHeight = 5*zoom
- xAxisTickMarkColor = pid.black
- xAxisLabelColor = pid.black
- fontHeight = 12*fontZoom # How tall the font that we're using is
- spacingFromLabelToAxis = 20
- spacingFromLineToLabel = 3
-
- if self.plotScale == 'physic':
- strYLoc = yZero + spacingFromLabelToAxis + canvas.fontHeight(MBLabelFont)
- ###Physical single chromosome view
- if self.selectedChr > -1:
- graphMbWidth = endMb - startMb
- XScale = Plot.detScale(startMb, endMb)
- XStart, XEnd, XStep = XScale
- if XStep < 8:
- XStep *= 2
- spacingAmtX = spacingAmt = (XEnd-XStart)/XStep
-
- j = 0
- while abs(spacingAmtX -int(spacingAmtX)) >= spacingAmtX/100.0 and j < 6:
- j += 1
- spacingAmtX *= 10
-
- formatStr = '%%2.%df' % j
-
- for counter, _Mb in enumerate(Plot.frange(XStart, XEnd, spacingAmt / NUM_MINOR_TICKS)):
- if _Mb < startMb or _Mb > endMb:
- continue
- Xc = xLeftOffset + plotXScale*(_Mb - startMb)
- if counter % NUM_MINOR_TICKS == 0: # Draw a MAJOR mark, not just a minor tick mark
- canvas.drawLine(Xc, yZero, Xc, yZero+xMajorTickHeight, color=xAxisTickMarkColor, width=X_MAJOR_TICK_THICKNESS) # Draw the MAJOR tick mark
- labelStr = str(formatStr % _Mb) # What Mbase location to put on the label
- strWidth = canvas.stringWidth(labelStr, font=MBLabelFont)
- drawStringXc = (Xc - (strWidth / 2.0))
- canvas.drawString(labelStr, drawStringXc, strYLoc, font=MBLabelFont, color=xAxisLabelColor, angle=0)
- else:
- canvas.drawLine(Xc, yZero, Xc, yZero+xMinorTickHeight, color=xAxisTickMarkColor, width=X_MINOR_TICK_THICKNESS) # Draw the MINOR tick mark
- # end else
-
- ###Physical genome wide view
- else:
- distScale = 0
- startPosX = xLeftOffset
- for i, distLen in enumerate(self.ChrLengthDistList):
- if distScale == 0: #universal scale in whole genome mapping
- if distLen > 75:
- distScale = 25
- elif distLen > 30:
- distScale = 10
- else:
- distScale = 5
- for tickdists in range(distScale, ceil(distLen), distScale):
- canvas.drawLine(startPosX + tickdists*plotXScale, yZero, startPosX + tickdists*plotXScale, yZero + 7, color=pid.black, width=1*zoom)
- canvas.drawString(str(tickdists), startPosX+tickdists*plotXScale, yZero + 10*zoom, color=pid.black, font=MBLabelFont, angle=270)
- startPosX += (self.ChrLengthDistList[i]+self.GraphInterval)*plotXScale
-
- megabaseLabelFont = pid.Font(ttf="verdana", size=14*zoom*1.5, bold=0)
- canvas.drawString("Megabases", xLeftOffset + (plotWidth -canvas.stringWidth("Megabases", font=megabaseLabelFont))/2,
- strYLoc + canvas.fontHeight(MBLabelFont) + 5*zoom, font=megabaseLabelFont, color=pid.black)
- pass
- else:
- ChrAInfo = []
- preLpos = -1
- distinctCount = 0.0
- if len(self.genotype) > 1:
- for i, _chr in enumerate(self.genotype):
- thisChr = []
- Locus0CM = _chr[0].cM
- nLoci = len(_chr)
- if nLoci <= 8:
- for _locus in _chr:
- if _locus.name != ' - ':
- if _locus.cM != preLpos:
- distinctCount += 1
- preLpos = _locus.cM
- thisChr.append([_locus.name, _locus.cM-Locus0CM])
- else:
- for j in (0, nLoci/4, nLoci/2, nLoci*3/4, -1):
- while _chr[j].name == ' - ':
- j += 1
- if _chr[j].cM != preLpos:
- distinctCount += 1
- preLpos = _chr[j].cM
- thisChr.append([_chr[j].name, _chr[j].cM-Locus0CM])
- ChrAInfo.append(thisChr)
- else:
- for i, _chr in enumerate(self.genotype):
- thisChr = []
- Locus0CM = _chr[0].cM
- for _locus in _chr:
- if _locus.name != ' - ':
- if _locus.cM != preLpos:
- distinctCount += 1
- preLpos = _locus.cM
- thisChr.append([_locus.name, _locus.cM-Locus0CM])
- ChrAInfo.append(thisChr)
-
- stepA = (plotWidth+0.0)/distinctCount
-
- LRectWidth = 10
- LRectHeight = 3
- offsetA = -stepA
- lineColor = pid.lightblue
- startPosX = xLeftOffset
- for j, ChrInfo in enumerate(ChrAInfo):
- preLpos = -1
- for i, item in enumerate(ChrInfo):
- Lname,Lpos = item
- if Lpos != preLpos:
- offsetA += stepA
- differ = 1
- else:
- differ = 0
- preLpos = Lpos
- Lpos *= plotXScale
- if self.selectedChr > -1:
- Zorder = i % 5
- else:
- Zorder = 0
- if differ:
- canvas.drawLine(startPosX+Lpos,yZero,xLeftOffset+offsetA,\
- yZero+25, color=lineColor)
- canvas.drawLine(xLeftOffset+offsetA,yZero+25,xLeftOffset+offsetA,\
- yZero+40+Zorder*(LRectWidth+3),color=lineColor)
- rectColor = pid.orange
- else:
- canvas.drawLine(xLeftOffset+offsetA, yZero+40+Zorder*(LRectWidth+3)-3,\
- xLeftOffset+offsetA, yZero+40+Zorder*(LRectWidth+3),color=lineColor)
- rectColor = pid.deeppink
- canvas.drawRect(xLeftOffset+offsetA, yZero+40+Zorder*(LRectWidth+3),\
- xLeftOffset+offsetA-LRectHeight,yZero+40+Zorder*(LRectWidth+3)+LRectWidth,\
- edgeColor=rectColor,fillColor=rectColor,edgeWidth = 0)
- COORDS="%d,%d,%d,%d"%(xLeftOffset+offsetA-LRectHeight, yZero+40+Zorder*(LRectWidth+3),\
- xLeftOffset+offsetA,yZero+40+Zorder*(LRectWidth+3)+LRectWidth)
- HREF="javascript:showDatabase3('%s','%s','%s','');" % (showLocusForm,fd.RISet+"Geno", Lname)
- Areas=HT.Area(shape='rect',coords=COORDS,href=HREF, title="Locus : " + Lname)
- gifmap.areas.append(Areas)
- ##piddle bug
- if j == 0:
- canvas.drawLine(startPosX,yZero,startPosX,yZero+40, color=lineColor)
- startPosX += (self.ChrLengthDistList[j]+self.GraphInterval)*plotXScale
-
- canvas.drawLine(xLeftOffset, yZero, xLeftOffset+plotWidth, yZero, color=pid.black, width=X_AXIS_THICKNESS) # Draw the X axis itself
-
- def getColorForMarker(self, chrCount,flag):# no change is needed
- chrColorDict={}
- for i in range(chrCount):
- if flag==1: # display blue and lightblue intercross
- chrColorDict[i]=pid.black
- elif flag==0:
- if (i%2==0):
- chrColorDict[i]=pid.blue
- else:
- chrColorDict[i]=pid.lightblue
- else:#display different color for different chr
- if i in [0,8,16]:
- chrColorDict[i]=pid.black
- elif i in [1,9,17]:
- chrColorDict[i]=pid.red
- elif i in [2,10,18]:
- chrColorDict[i]=pid.lightgreen
- elif i in [3,11,19]:
- chrColorDict[i]=pid.blue
- elif i in [4,12]:
- chrColorDict[i]=pid.lightblue
- elif i in [5,13]:
- chrColorDict[i]=pid.hotpink
- elif i in [6,14]:
- chrColorDict[i]=pid.gold
- elif i in [7,15]:
- chrColorDict[i]=pid.grey
-
- return chrColorDict
-
-
- def drawProbeSetPosition(self, canvas, plotXScale, offset= (40, 120, 80, 10), zoom = 1, startMb = None, endMb = None):
- if len(self.traitList) != 1:
- return
-
- xLeftOffset, xRightOffset, yTopOffset, yBottomOffset = offset
- plotWidth = canvas.size[0] - xLeftOffset - xRightOffset
- plotHeight = canvas.size[1] - yTopOffset - yBottomOffset
- yZero = canvas.size[1] - yBottomOffset
- fontZoom = zoom
- if zoom == 2:
- fontZoom = 1.5
-
- try:
- Chr = self.traitList[0].chr # self.traitListChr =self.traitList[0].chr=_vals need to change to chrList and mbList
- Mb = self.traitList[0].mb # self.traitListMb =self.traitList[0].mb=_vals
- except:
- return
-
- if self.plotScale == 'physic':
- if self.selectedChr > -1:
- if self.genotype[0].name != Chr or Mb < self.startMb or Mb > self.endMb:
- return
- else:
- locPixel = xLeftOffset + (Mb-self.startMb)*plotXScale
- else:
- locPixel = xLeftOffset
- for i, _chr in enumerate(self.genotype):
- if _chr.name != Chr:
- locPixel += (self.ChrLengthDistList[i] + self.GraphInterval)*plotXScale
- else:
- locPixel += Mb*plotXScale
- break
- else:
- if self.selectedChr > -1:
- if self.genotype[0].name != Chr:
- return
- else:
- for i, _locus in enumerate(self.genotype[0]):
- #the trait's position is on the left of the first genotype
- if i==0 and _locus.Mb >= Mb:
- locPixel=-1
- break
-
- #the trait's position is between two traits
- if i > 0 and self.genotype[0][i-1].Mb < Mb and _locus.Mb >= Mb:
- locPixel = xLeftOffset + plotXScale*(self.genotype[0][i-1].cM+(_locus.cM-self.genotype[0][i-1].cM)*(Mb -self.genotype[0][i-1].Mb)/(_locus.Mb-self.genotype[0][i-1].Mb))
- break
-
- #the trait's position is on the right of the last genotype
- if i==len(self.genotype[0]) and Mb>=_locus.Mb:
- locPixel = -1
- else:
- locPixel = xLeftOffset
- for i, _chr in enumerate(self.genotype):
- if _chr.name != Chr:
- locPixel += (self.ChrLengthDistList[i] + self.GraphInterval)*plotXScale
- else:
- locPixel += (Mb*(_chr[-1].cM-_chr[0].cM)/self.ChrLengthCMList[i])*plotXScale
- break
- if locPixel >= 0:
- traitPixel = ((locPixel, yZero), (locPixel-6, yZero+12), (locPixel+6, yZero+12))
- canvas.drawPolygon(traitPixel, edgeColor=pid.black, fillColor=self.TRANSCRIPT_LOCATION_COLOR, closed=1)
-
- if self.legendChecked:
- startPosY = 15
- nCol = 2
- smallLabelFont = pid.Font(ttf="trebuc", size=12, bold=1)
- leftOffset = xLeftOffset+(nCol-1)*200
- canvas.drawPolygon(((leftOffset+6, startPosY-6), (leftOffset, startPosY+6), (leftOffset+12, startPosY+6)), edgeColor=pid.black, fillColor=self.TRANSCRIPT_LOCATION_COLOR, closed=1)
- canvas.drawString("Sequence Site", (leftOffset+15), (startPosY+5), smallLabelFont, self.TOP_RIGHT_INFO_COLOR)
-
- # build dict based on plink result, key is chr, value is list of [snp,BP,pValue]
- def getPlinkResultDict(self,outputFileName='',thresholdPvalue=-1,ChrOrderIdNameDict={}):
-
- ChrList =self.ChrList
- plinkResultDict={}
-
- plinkResultfp = open("%s%s.qassoc"% (webqtlConfig.TMPDIR, outputFileName), "rb")
-
- headerLine=plinkResultfp.readline()# read header line
- line = plinkResultfp.readline()
-
- valueList=[] # initialize value list, this list will include snp, bp and pvalue info
- pValueList=[]
- count=0
-
- while line:
- #convert line from str to list
- lineList=self.buildLineList(line=line)
-
- # only keep the records whose chromosome name is in db
- if ChrOrderIdNameDict.has_key(int(lineList[0])) and lineList[-1] and lineList[-1].strip()!='NA':
-
- chrName=ChrOrderIdNameDict[int(lineList[0])]
- snp = lineList[1]
- BP = lineList[2]
- pValue = float(lineList[-1])
- pValueList.append(pValue)
-
- if plinkResultDict.has_key(chrName):
- valueList=plinkResultDict[chrName]
-
- # pvalue range is [0,1]
- if thresholdPvalue >=0 and thresholdPvalue<=1:
- if pValue < thresholdPvalue:
- valueList.append((snp,BP,pValue))
- count+=1
-
- plinkResultDict[chrName]=valueList
- valueList=[]
- else:
- if thresholdPvalue>=0 and thresholdPvalue<=1:
- if pValue < thresholdPvalue:
- valueList.append((snp,BP,pValue))
- count+=1
-
- if valueList:
- plinkResultDict[chrName]=valueList
-
- valueList=[]
-
-
- line =plinkResultfp.readline()
- else:
- line=plinkResultfp.readline()
-
- if pValueList:
- minPvalue= min(pValueList)
- else:
- minPvalue=0
-
- return count,minPvalue,plinkResultDict
-
-
- ######################################################
- # input: line: str,one line read from file
- # function: convert line from str to list;
- # output: lineList list
- #######################################################
- def buildLineList(self,line=None):
-
- lineList = string.split(string.strip(line),' ')# irregular number of whitespaces between columns
- lineList =[ item for item in lineList if item <>'']
- lineList = map(string.strip, lineList)
-
- return lineList
-
- #added by NL: automatically generate pheno txt file for PLINK based on strainList passed from dataEditing page
- def genPhenoTxtFileForPlink(self,phenoFileName='', RISetName='', probesetName='', valueDict={}):
- pedFileStrainList=self.getStrainNameFromPedFile(RISetName=RISetName)
- outputFile = open("%s%s.txt"%(webqtlConfig.TMPDIR,phenoFileName),"wb")
- headerLine = 'FID\tIID\t%s\n'%probesetName
- outputFile.write(headerLine)
-
- newValueList=[]
-
- #if valueDict does not include some strain, value will be set to -9999 as missing value
- for item in pedFileStrainList:
- try:
- value=valueDict[item]
- value=str(value).replace('value=','')
- value=value.strip()
- except:
- value=-9999
-
- newValueList.append(value)
-
-
- newLine=''
- for i, strain in enumerate(pedFileStrainList):
- j=i+1
- value=newValueList[i]
- newLine+='%s\t%s\t%s\n'%(strain, strain, value)
-
- if j%1000==0:
- outputFile.write(newLine)
- newLine=''
-
- if newLine:
- outputFile.write(newLine)
-
- outputFile.close()
-
- # get strain name from ped file in order
- def getStrainNameFromPedFile(self, RISetName=''):
- pedFileopen= open("%splink/%s.ped"%(webqtlConfig.HTMLPATH, RISetName),"r")
- line =pedFileopen.readline()
- strainNameList=[]
-
- while line:
- lineList=string.split(string.strip(line),'\t')
- lineList=map(string.strip,lineList)
-
- strainName=lineList[0]
- strainNameList.append(strainName)
-
- line =pedFileopen.readline()
-
- return strainNameList
-
- #################################################################
- ## Generate Chr list, Chr OrderId and Retrieve Length Information
- #################################################################
- #def getChrNameOrderIdLength(self,RISet=''):
- #
- # try:
- # query = """
- # Select
- # Chr_Length.Name,Chr_Length.OrderId,Length from Chr_Length, InbredSet
- # where
- # Chr_Length.SpeciesId = InbredSet.SpeciesId AND
- # InbredSet.Name = '%s'
- # Order by OrderId
- # """ % (RISet)
- # self.cursor.execute(query)
- #
- # results =self.cursor.fetchall()
- # ChrList=[]
- # ChrLengthMbList=[]
- # ChrNameOrderIdDict={}
- # ChrOrderIdNameDict={}
- #
- # for item in results:
- # ChrList.append(item[0])
- # ChrNameOrderIdDict[item[0]]=item[1] # key is chr name, value is orderId
- # ChrOrderIdNameDict[item[1]]=item[0] # key is orderId, value is chr name
- # ChrLengthMbList.append(item[2])
+ def trim_genotypes(self, genotype_data, no_value_samples):
+ trimmed_genotype_data = []
+ for marker in genotype_data:
+ new_genotypes = []
+ for item_count, genotype in enumerate(marker):
+ if item_count in no_value_samples:
+ continue
+ try:
+ genotype = float(genotype)
+ except ValueError:
+ genotype = np.nan
+ pass
+ new_genotypes.append(genotype)
+ trimmed_genotype_data.append(new_genotypes)
+ return trimmed_genotype_data
+
+def create_snp_iterator_file(group):
+ plink_file_base = os.path.join(webqtlConfig.PYLMM_PATH, group)
+ plink_input = input.plink(plink_file_base, type='b')
+
+ data = dict(plink_input = list(plink_input),
+ numSNPs = plink_input.numSNPs)
+
+ #input_dict = {}
#
- # except:
- # ChrList=[]
- # ChrNameOrderIdDict={}
- # ChrLengthMbList=[]
+ #input_dict['plink_input'] = list(plink_input)
+ #input_dict['numSNPs'] = plink_input.numSNPs
#
- # return ChrList,ChrNameOrderIdDict,ChrOrderIdNameDict,ChrLengthMbList
- \ No newline at end of file
+
+ snp_file_base = os.path.join(webqtlConfig.SNP_PATH, group + ".snps.gz")
+
+ with gzip.open(snp_file_base, "wb") as fh:
+ pickle.dump(data, fh, pickle.HIGHEST_PROTOCOL)
+
+if __name__ == '__main__':
+ import cPickle as pickle
+ import gzip
+ create_snp_iterator_file("HLC")
diff --git a/wqflask/wqflask/my_pylmm/__init__.py b/wqflask/wqflask/my_pylmm/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/__init__.py
diff --git a/wqflask/wqflask/my_pylmm/data/__init__.py b/wqflask/wqflask/my_pylmm/data/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/data/__init__.py
diff --git a/wqflask/wqflask/my_pylmm/data/genofile_parser.py b/wqflask/wqflask/my_pylmm/data/genofile_parser.py
new file mode 100644
index 00000000..b926592b
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/data/genofile_parser.py
@@ -0,0 +1,175 @@
+#!/usr/bin/python
+
+from __future__ import print_function, division, absolute_import
+import sys
+sys.path.append("..")
+import os
+import glob
+import traceback
+
+import numpy as np
+from pyLMM import lmm
+
+import simplejson as json
+
+from pprint import pformat as pf
+
+class EmptyConfigurations(Exception): pass
+
+
+
+class Marker(object):
+ def __init__(self):
+ self.name = None
+ self.chr = None
+ self.cM = None
+ self.Mb = None
+ self.genotypes = []
+
+class ConvertGenoFile(object):
+
+ def __init__(self, input_file, output_file):
+
+ self.input_file = input_file
+ self.output_file = output_file
+
+ self.mb_exists = False
+ self.markers = []
+
+ self.latest_row_pos = None
+ self.latest_col_pos = None
+
+ self.latest_row_value = None
+ self.latest_col_value = None
+
+ def convert(self):
+
+ self.haplotype_notation = {
+ '@mat': "1",
+ '@pat': "0",
+ '@het': "0.5",
+ '@unk': "NA"
+ }
+
+ self.configurations = {}
+ #self.skipped_cols = 3
+
+ self.input_fh = open(self.input_file)
+
+ with open(self.output_file, "w") as self.output_fh:
+ #if self.file_type == "geno":
+ self.process_csv()
+ #elif self.file_type == "snps":
+ # self.process_snps_file()
+
+
+ #def process_row(self, row):
+ # counter = 0
+ # for char in row:
+ # if char
+ # counter += 1
+
+
+ def process_csv(self):
+ for row_count, row in enumerate(self.process_rows()):
+ #self.latest_row_pos = row_count
+
+ row_items = row.split()
+
+ this_marker = Marker()
+ this_marker.name = row_items[1]
+ this_marker.chr = row_items[0]
+ this_marker.cM = row_items[2]
+ if self.mb_exists:
+ this_marker.Mb = row_items[3]
+ genotypes = row_items[4:]
+ else:
+ genotypes = row_items[3:]
+ for item_count, genotype in enumerate(genotypes):
+ if genotype.upper() in self.configurations:
+ this_marker.genotypes.append(self.configurations[genotype.upper()])
+ else:
+ this_marker.genotypes.append("NA")
+
+ #print("this_marker is:", pf(this_marker.__dict__))
+
+ self.markers.append(this_marker.__dict__)
+
+ with open(self.output_file, 'w') as fh:
+ json.dump(self.markers, fh, indent=" ", sort_keys=True)
+
+ # print('configurations:', str(configurations))
+ #self.latest_col_pos = item_count + self.skipped_cols
+ #self.latest_col_value = item
+
+ #if item_count != 0:
+ # self.output_fh.write(" ")
+ #self.output_fh.write(self.configurations[item.upper()])
+
+ #self.output_fh.write("\n")
+
+
+ def process_rows(self):
+ for self.latest_row_pos, row in enumerate(self.input_fh):
+ self.latest_row_value = row
+ # Take care of headers
+ if not row.strip():
+ continue
+ if row.startswith('#'):
+ continue
+ if row.startswith('Chr'):
+ if 'Mb' in row.split():
+ self.mb_exists = True
+ continue
+ if row.startswith('@'):
+ key, _separater, value = row.partition(':')
+ key = key.strip()
+ value = value.strip()
+ if key in self.haplotype_notation:
+ self.configurations[value] = self.haplotype_notation[key]
+ continue
+ if not len(self.configurations):
+ raise EmptyConfigurations
+ yield row
+
+ @classmethod
+ def process_all(cls, old_directory, new_directory):
+ os.chdir(old_directory)
+ for input_file in glob.glob("*.geno"):
+ group_name = input_file.split('.')[0]
+ output_file = os.path.join(new_directory, group_name + ".json")
+ print("%s -> %s" % (
+ os.path.join(old_directory, input_file), output_file))
+ convertob = ConvertGenoFile(input_file, output_file)
+ try:
+ convertob.convert()
+ except EmptyConfigurations as why:
+ print(" No config info? Continuing...")
+ #excepted = True
+ continue
+ except Exception as why:
+
+ print(" Exception:", why)
+ print(traceback.print_exc())
+ print(" Found in row %s at tabular column %s" % (convertob.latest_row_pos,
+ convertob.latest_col_pos))
+ print(" Column is:", convertob.latest_col_value)
+ print(" Row is:", convertob.latest_row_value)
+ break
+
+ #def process_snps_file(cls, snps_file, new_directory):
+ # output_file = os.path.join(new_directory, "mouse_families.json")
+ # print("%s -> %s" % (snps_file, output_file))
+ # convertob = ConvertGenoFile(input_file, output_file)
+
+
+
+if __name__=="__main__":
+ Old_Geno_Directory = """/home/zas1024/gene/web/genotypes/"""
+ New_Geno_Directory = """/home/zas1024/gene/web/new_genotypes/"""
+ #Input_File = """/home/zas1024/gene/web/genotypes/BXD.geno"""
+ #Output_File = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/bxd.snps"""
+ ConvertGenoFile.process_all(Old_Geno_Directory, New_Geno_Directory)
+ #ConvertGenoFiles(Geno_Directory)
+
+ #process_csv(Input_File, Output_File) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/data/prep_data.py b/wqflask/wqflask/my_pylmm/data/prep_data.py
new file mode 100644
index 00000000..ef42a297
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/data/prep_data.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+
+from __future__ import absolute_import, print_function, division
+import os
+
+import numpy
+
+from base import webqtlConfig
+
+
+class PrepData(object):
+ def __init__(self, pheno_vector, group_name):
+ self.pheno_vector = pheno_vector
+ self.group_name = group_name
+ self.no_val_samples = set()
+ #self.identify_no_genotype_samples()
+ self.identify_empty_samples()
+ self.trim_files()
+
+ def identify_empty_samples(self):
+ for sample_count, val in enumerate(self.pheno_vector):
+ if val == "x":
+ self.no_val_samples.add(sample_count)
+ print("self.no_val_samples:", self.no_val_samples)
+ #nums = set(range(0, 176))
+ #print("not included:", nums-self.empty_columns)
+
+ #def identify_no_genotype_samples(self):
+ # #for this_file in (self.exprs_file, self.snps_file):
+ # #with open(this_file) as fh:
+ # no_geno_samples = []
+ # has_genotypes = False
+ # with open(self.snps_file) as fh:
+ # for line in fh:
+ # num_samples = len(line.split())
+ # break
+ # for sample in range (num_samples):
+ # for line in fh:
+ # if line.split()[sample] != "NA":
+ # has_genotypes = True
+ # break
+ # if has_genotypes == False:
+ # no_geno_samples.append(sample)
+ #
+ # print(no_geno_samples)
+
+ def trim_files(self):
+ input_file = open(os.path.join(webqtlConfig.NEWGENODIR, self.group_name+'.snps'))
+ output_file = os.path.join(webqtlConfig.TMPDIR, self.group_name + '.snps.new')
+ with open(output_file, "w") as output_file:
+ for line in input_file:
+ data_to_write = []
+ for pos, item in enumerate(line.split()):
+ if pos in self.no_val_samples:
+ continue
+ else:
+ data_to_write.append("%s" % (item))
+ output_file.write(" ".join(data_to_write) + "\n")
+
+ print("Done writing:", output_file)
+
+ #for this_file in (self.exprs_file, self.genotype_file):
+ # input_file = open(this_file)
+ # this_file_name_output = this_file + ".new"
+ # with open(this_file_name_output, "w") as output_file:
+ # for line in input_file:
+ # data_wanted = []
+ # for pos, item in enumerate(line.split()):
+ # if pos in self.empty_columns:
+ # continue
+ # else:
+ # data_wanted.append("%2s" % (item))
+ # #print("data_wanted is", data_wanted)
+ # output_file.write(" ".join(data_wanted) + "\n")
+ # print("Done writing file:", this_file_name_output)
+
+if __name__=="__main__":
+ exprs_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.exprs.1"""
+ genotype_file = """/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.1000"""
+ PrepData(pheno_vector, genotype_file) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/example.py b/wqflask/wqflask/my_pylmm/example.py
new file mode 100644
index 00000000..8b30debd
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/example.py
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+
+from __future__ import absolute_import, print_function, division
+
+import sys
+import time
+
+import numpy as np
+from pyLMM import lmm
+
+from pprint import pformat as pf
+
+
+Y = np.genfromtxt('data/mdp.exprs.1.new')
+print("exprs is:", pf(Y.shape))
+
+# Loading npdump and first 1000 snps for speed
+#K = np.load('data/hmdp.liver.K.npdump')
+#snps = np.load('data/hmdp.liver.snps.1000.npdump').T
+
+# These three lines will load all SNPs (from npdump or from txt) and
+# calculate the kinship
+snps = np.genfromtxt('/home/zas1024/gene/web/new_genotypers/mdp.snps.1000.new').T
+print("snps is:", pf(snps.shape))
+#snps = snps[~np.isnan(snps).all(axis=1)]
+#print ("snps is now:", pf(snps))
+np.savetxt("/home/zas1024/gene/wqflask/wqflask/pylmm/data/mdp.snps.trimmed", snps, fmt='%s', delimiter=' ')
+#snps = np.load('data/hmdp.liver.snps.npdump').T
+K = lmm.calculateKinship(snps)
+#print("K is:", pf(K))
+#print("Y is:", pf(Y.shape))
+
+# Instantiate a LMM object for the phentoype Y and fit the null model
+L = lmm.LMM(Y,K)
+L.fit()
+
+# Manually calculate the association at one SNP
+X = snps[:,0]
+X[np.isnan(X)] = X[True - np.isnan(X)].mean() # Fill missing with MAF
+X = X.reshape(len(X),1)
+if X.var() == 0: ts,ps = (np.nan,np.nan)
+else: ts,ps = L.association(X)
+
+# If I want to refit the variance component
+L.fit(X=X)
+ts,ps = L.association(X)
+
+# If I want to do a genome-wide scan over the 1000 SNPs.
+# This call will use REML (REML = False means use ML).
+# It will also refit the variance components for each SNP.
+# Setting refit = False will cause the program to fit the model once
+# and hold those variance component estimates for each SNP.
+begin = time.time()
+TS,PS = lmm.GWAS(Y,snps,K,REML=True,refit=False)
+print("TS is:", pf(TS))
+print("PS is:", pf(PS))
+end = time.time()
+sys.stderr.write("Total time for 1000 SNPs: %0.3f\n" % (end- begin)) \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/__init__.py b/wqflask/wqflask/my_pylmm/pyLMM/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pyLMM/__init__.py
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/chunks.py b/wqflask/wqflask/my_pylmm/pyLMM/chunks.py
new file mode 100644
index 00000000..abeffee7
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pyLMM/chunks.py
@@ -0,0 +1,96 @@
+from __future__ import absolute_import, print_function, division
+
+import math
+import time
+
+
+def divide_into_chunks(the_list, number_chunks):
+ """Divides a list into approximately number_chunks smaller lists
+
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 3)
+ [[1, 2, 7], [3, 22, 8], [5, 22, 333]]
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 4)
+ [[1, 2, 7], [3, 22, 8], [5, 22, 333]]
+ >>> divide_into_chunks([1, 2, 7, 3, 22, 8, 5, 22, 333], 5)
+ [[1, 2], [7, 3], [22, 8], [5, 22], [333]]
+ >>>
+
+ """
+ length = len(the_list)
+
+ if length == 0:
+ return [[]]
+
+ if length <= number_chunks:
+ number_chunks = length
+
+ chunksize = int(math.ceil(length / number_chunks))
+
+ chunks = []
+ for counter in range(0, length, chunksize):
+ chunks.append(the_list[counter:counter+chunksize])
+
+ return chunks
+
+def _confirm_chunk(original, result):
+ all_chunked = []
+ for chunk in result:
+ all_chunked.extend(chunk)
+ print("length of all chunked:", len(all_chunked))
+ assert original == all_chunked, "You didn't chunk right"
+
+
+def _chunk_test(divide_func):
+ import random
+ random.seed(7)
+
+ number_exact = 0
+ total_amount_off = 0
+
+ for test in range(1, 1001):
+ print("\n\ntest:", test)
+ number_chunks = random.randint(1, 20)
+ number_elements = random.randint(0, 100)
+ the_list = list(range(1, number_elements))
+ result = divide_func(the_list, number_chunks)
+
+ print("Dividing list of length {} into approximately {} chunks - got {} chunks".format(
+ len(the_list), number_chunks, len(result)))
+ print("result:", result)
+
+ _confirm_chunk(the_list, result)
+
+ amount_off = abs(number_chunks - len(result))
+ if amount_off == 0:
+ number_exact += 1
+ else:
+ total_amount_off += amount_off
+
+
+ print("\n{} exact out of {} [Total amount off: {}]".format(number_exact,
+ test,
+ total_amount_off))
+ assert number_exact == 558
+ assert total_amount_off == 1580
+ return number_exact, total_amount_off
+
+
+def _main():
+ info = dict()
+ #funcs = (("sam", sam_divide_into_chunks), ("zach", zach_divide_into_chunks))
+ funcs = (("only one", divide_into_chunks),)
+ for name, func in funcs:
+ start = time.time()
+ number_exact, total_amount_off = _chunk_test(func)
+ took = time.time() - start
+ info[name] = dict(number_exact=number_exact,
+ total_amount_off=total_amount_off,
+ took=took)
+
+ print("info is:", info)
+
+if __name__ == '__main__':
+ _main()
+ print("\nConfirming doctests...")
+ import doctest
+ doctest.testmod() \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/input.py b/wqflask/wqflask/my_pylmm/pyLMM/input.py
new file mode 100644
index 00000000..dfe28a4e
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pyLMM/input.py
@@ -0,0 +1,263 @@
+# pylmm is a python-based linear mixed-model solver with applications to GWAS
+
+# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
+
+#The program is free for academic use. Please contact Nick Furlotte
+#<nick.furlotte@gmail.com> if you are interested in using the software for
+#commercial purposes.
+
+#The software must not be modified and distributed without prior
+#permission of the author.
+
+#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import sys
+import numpy as np
+import struct
+import pdb
+
+class plink:
+ def __init__(self,fbase,kFile=None,phenoFile=None,type='b',normGenotype=True,readKFile=False):
+ self.fbase = fbase
+ self.type = type
+ self.indivs = self.getIndivs(self.fbase,type)
+ self.kFile = kFile
+ self.phenos = None
+ self.normGenotype = normGenotype
+ self.phenoFile = phenoFile
+ # Originally I was using the fastLMM style that has indiv IDs embedded.
+ # NOW I want to use this module to just read SNPs so I'm allowing
+ # the programmer to turn off the kinship reading.
+ self.readKFile = readKFile
+
+ if self.kFile:
+ self.K = self.readKinship(self.kFile)
+ elif os.path.isfile("%s.kin" % fbase):
+ self.kFile = "%s.kin" %fbase
+ if self.readKFile:
+ self.K = self.readKinship(self.kFile)
+ else:
+ self.kFile = None
+ self.K = None
+
+ self.getPhenos(self.phenoFile)
+
+ self.fhandle = None
+ self.snpFileHandle = None
+
+ def __del__(self):
+ if self.fhandle: self.fhandle.close()
+ if self.snpFileHandle: self.snpFileHandle.close()
+
+ def getSNPIterator(self):
+ if not self.type == 'b':
+ sys.stderr.write("Have only implemented this for binary plink files (bed)\n")
+ return
+
+ # get the number of snps
+ file = self.fbase + '.bim'
+ i = 0
+ f = open(file,'r')
+ for line in f: i += 1
+ f.close()
+ self.numSNPs = i
+ self.have_read = 0
+ self.snpFileHandle = open(file,'r')
+
+ self.BytestoRead = self.N / 4 + (self.N % 4 and 1 or 0)
+ self._formatStr = 'c'*self.BytestoRead
+
+ file = self.fbase + '.bed'
+ self.fhandle = open(file,'rb')
+
+ magicNumber = self.fhandle.read(2)
+ order = self.fhandle.read(1)
+ if not order == '\x01':
+ sys.stderr.write("This is not in SNP major order - you did not handle this case\n")
+ raise StopIteration
+
+ return self
+
+ def __iter__(self):
+ return self.getSNPIterator()
+
+ def next(self):
+ if self.have_read == self.numSNPs:
+ raise StopIteration
+ X = self.fhandle.read(self.BytestoRead)
+ XX = [bin(ord(x)) for x in struct.unpack(self._formatStr,X)]
+ self.have_read += 1
+ return self.formatBinaryGenotypes(XX,self.normGenotype),self.snpFileHandle.readline().strip().split()[1]
+
+ def formatBinaryGenotypes(self,X,norm=True):
+ D = { \
+ '00': 0.0, \
+ '10': 0.5, \
+ '11': 1.0, \
+ '01': np.nan \
+ }
+
+ D_tped = { \
+ '00': '1 1', \
+ '10': '1 2', \
+ '11': '2 2', \
+ '01': '0 0' \
+ }
+
+ #D = D_tped
+
+ G = []
+ for x in X:
+ if not len(x) == 10:
+ xx = x[2:]
+ x = '0b' + '0'*(8 - len(xx)) + xx
+ a,b,c,d = (x[8:],x[6:8],x[4:6],x[2:4])
+ L = [D[y] for y in [a,b,c,d]]
+ G += L
+ # only take the leading values because whatever is left should be null
+ G = G[:self.N]
+ G = np.array(G)
+ if norm:
+ G = self.normalizeGenotype(G)
+ return G
+
+ def normalizeGenotype(self,G):
+ x = True - np.isnan(G)
+ m = G[x].mean()
+ s = np.sqrt(G[x].var())
+ G[np.isnan(G)] = m
+ if s == 0: G = G - m
+ else: G = (G - m) / s
+
+ return G
+
+ def getPhenos(self,phenoFile=None):
+ if not phenoFile:
+ self.phenoFile = phenoFile = self.fbase+".phenos"
+ if not os.path.isfile(phenoFile):
+ sys.stderr.write("Could not find phenotype file: %s\n" % (phenoFile))
+ return
+ f = open(phenoFile,'r')
+ keys = []
+ P = []
+ for line in f:
+ v = line.strip().split()
+ keys.append((v[0],v[1]))
+ P.append([(x == 'NA' or x == '-9') and np.nan or float(x) for x in v[2:]])
+ f.close()
+ P = np.array(P)
+
+ # reorder to match self.indivs
+ D = {}
+ L = []
+ for i in range(len(keys)):
+ D[keys[i]] = i
+ for i in range(len(self.indivs)):
+ if not D.has_key(self.indivs[i]):
+ continue
+ L.append(D[self.indivs[i]])
+ P = P[L,:]
+
+ self.phenos = P
+ return P
+
+ def getIndivs(self,base,type='b'):
+ if type == 't':
+ famFile = "%s.tfam" % base
+ else:
+ famFile = "%s.fam" % base
+ keys = []
+ i = 0
+ f = open(famFile,'r')
+ for line in f:
+ v = line.strip().split()
+ famId = v[0]
+ indivId = v[1]
+ k = (famId.strip(),indivId.strip())
+ keys.append(k)
+ i += 1
+ f.close()
+
+ self.N = len(keys)
+ sys.stderr.write("Read %d individuals from %s\n" % (self.N, famFile))
+
+ return keys
+
+ def readKinship(self,kFile):
+ # Assume the fastLMM style
+ # This will read in the kinship matrix and then reorder it
+ # according to self.indivs - additionally throwing out individuals
+ # that are not in both sets
+ if self.indivs == None or len(self.indivs) == 0:
+ sys.stderr.write("Did not read any individuals so can't load kinship\n")
+ return
+
+ sys.stderr.write("Reading kinship matrix from %s\n" % (kFile) )
+
+ f = open(kFile,'r')
+ # read indivs
+ v = f.readline().strip().split("\t")[1:]
+ keys = [tuple(y.split()) for y in v]
+ D = {}
+ for i in range(len(keys)): D[keys[i]] = i
+
+ # read matrix
+ K = []
+ for line in f:
+ K.append([float(x) for x in line.strip().split("\t")[1:]])
+ f.close()
+ K = np.array(K)
+
+ # reorder to match self.indivs
+ L = []
+ KK = []
+ X = []
+ for i in range(len(self.indivs)):
+ if not D.has_key(self.indivs[i]):
+ X.append(self.indivs[i])
+ else:
+ KK.append(self.indivs[i])
+ L.append(D[self.indivs[i]])
+ K = K[L,:][:,L]
+ self.indivs = KK
+ self.indivs_removed = X
+ if len(self.indivs_removed):
+ sys.stderr.write("Removed %d individuals that did not appear in Kinship\n" % (len(self.indivs_removed)))
+ return K
+
+ def getCovariates(self,covFile=None):
+ if not os.path.isfile(covFile):
+ sys.stderr.write("Could not find covariate file: %s\n" % (phenoFile))
+ return
+ f = open(covFile,'r')
+ keys = []
+ P = []
+ for line in f:
+ v = line.strip().split()
+ keys.append((v[0],v[1]))
+ P.append([x == 'NA' and np.nan or float(x) for x in v[2:]])
+ f.close()
+ P = np.array(P)
+
+ # reorder to match self.indivs
+ D = {}
+ L = []
+ for i in range(len(keys)):
+ D[keys[i]] = i
+ for i in range(len(self.indivs)):
+ if not D.has_key(self.indivs[i]): continue
+ L.append(D[self.indivs[i]])
+ P = P[L,:]
+
+ return P \ No newline at end of file
diff --git a/wqflask/wqflask/my_pylmm/pyLMM/lmm.py b/wqflask/wqflask/my_pylmm/pyLMM/lmm.py
new file mode 100644
index 00000000..a3ba8fdb
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pyLMM/lmm.py
@@ -0,0 +1,631 @@
+# pylmm is a python-based linear mixed-model solver with applications to GWAS
+
+# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+from __future__ import absolute_import, print_function, division
+
+import sys
+import time
+import uuid
+
+import numpy as np
+from scipy import linalg
+from scipy import optimize
+from scipy import stats
+import pdb
+
+import gzip
+import cPickle as pickle
+import simplejson as json
+
+from pprint import pformat as pf
+
+from utility.benchmark import Bench
+from utility import temp_data
+
+from wqflask.my_pylmm.pyLMM import chunks
+
+#np.seterr('raise')
+
+def run_human(pheno_vector,
+ covariate_matrix,
+ plink_input_file,
+ kinship_matrix,
+ refit=False,
+ loading_progress=None):
+
+ v = np.isnan(pheno_vector)
+ keep = True - v
+ keep = keep.reshape((len(keep),))
+
+ if v.sum():
+ pheno_vector = pheno_vector[keep]
+ #print("pheno_vector shape is now: ", pf(pheno_vector.shape))
+ covariate_matrix = covariate_matrix[keep,:]
+ #print("kinship_matrix shape is: ", pf(kinship_matrix.shape))
+ #print("len(keep) is: ", pf(keep.shape))
+ kinship_matrix = kinship_matrix[keep,:][:,keep]
+
+ n = kinship_matrix.shape[0]
+ lmm_ob = LMM(pheno_vector,
+ kinship_matrix,
+ covariate_matrix)
+ lmm_ob.fit()
+
+ # Buffers for pvalues and t-stats
+ p_values = []
+ t_stats = []
+
+ print("input_file: ", plink_input_file)
+
+ with Bench("Opening and loading pickle file"):
+ with gzip.open(plink_input_file, "rb") as input_file:
+ data = pickle.load(input_file)
+
+ plink_input = data['plink_input']
+
+ #plink_input.getSNPIterator()
+ with Bench("Calculating numSNPs"):
+ total_snps = data['numSNPs']
+
+ with Bench("snp iterator loop"):
+ count = 0
+
+ with Bench("Create list of inputs"):
+ inputs = list(plink_input)
+
+ with Bench("Divide into chunks"):
+ results = chunks.divide_into_chunks(inputs, 64)
+
+ result_store = []
+ identifier = uuid.uuid4()
+ for part, result in enumerate(results):
+ # todo: Don't use TempData here. Instead revert old one and store this stuff as a list
+ data_store = temp_data.TempData(identifier, "plink", part)
+
+ data_store.store("data", pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
+ result_store.append(data_store)
+
+ for snp, this_id in plink_input:
+ with Bench("part before association"):
+ if count > 2000:
+ break
+ count += 1
+
+ percent_complete = (float(count) / total_snps) * 100
+ #print("percent_complete: ", percent_complete)
+ loading_progress.store("percent_complete", percent_complete)
+
+ with Bench("actual association"):
+ ps, ts = human_association(snp,
+ n,
+ keep,
+ lmm_ob,
+ pheno_vector,
+ covariate_matrix,
+ kinship_matrix,
+ refit)
+
+ with Bench("after association"):
+ p_values.append(ps)
+ t_stats.append(ts)
+
+ return p_values, t_stats
+
+
+def human_association(snp,
+ n,
+ keep,
+ lmm_ob,
+ pheno_vector,
+ covariate_matrix,
+ kinship_matrix,
+ refit):
+
+ x = snp[keep].reshape((n,1))
+ #x[[1,50,100,200,3000],:] = np.nan
+ v = np.isnan(x).reshape((-1,))
+
+ # Check SNPs for missing values
+ if v.sum():
+ keeps = True - v
+ xs = x[keeps,:]
+ # If no variation at this snp or all genotypes missing
+ if keeps.sum() <= 1 or xs.var() <= 1e-6:
+ return np.nan, np.nan
+ #p_values.append(np.nan)
+ #t_stats.append(np.nan)
+ #continue
+
+ # Its ok to center the genotype - I used options.normalizeGenotype to
+ # force the removal of missing genotypes as opposed to replacing them with MAF.
+
+ #if not options.normalizeGenotype:
+ # xs = (xs - xs.mean()) / np.sqrt(xs.var())
+
+ filtered_pheno = pheno_vector[keeps]
+ filtered_covariate_matrix = covariate_matrix[keeps,:]
+ filtered_kinship_matrix = kinship_matrix[keeps,:][:,keeps]
+ filtered_lmm_ob = lmm.LMM(filtered_pheno,filtered_kinship_matrix,X0=filtered_covariate_matrix)
+ if refit:
+ filtered_lmm_ob.fit(X=xs)
+ else:
+ #try:
+ filtered_lmm_ob.fit()
+ #except: pdb.set_trace()
+ ts,ps,beta,betaVar = Ls.association(xs,returnBeta=True)
+ else:
+ if x.var() == 0:
+ return np.nan, np.nan
+ #p_values.append(np.nan)
+ #t_stats.append(np.nan)
+ #continue
+ if refit:
+ lmm_ob.fit(X=x)
+ ts, ps, beta, betaVar = lmm_ob.association(x)
+ return ps, ts
+
+
+def run(pheno_vector,
+ genotype_matrix,
+ restricted_max_likelihood=True,
+ refit=False,
+ temp_data=None):
+ """Takes the phenotype vector and genotype matrix and returns a set of p-values and t-statistics
+
+ restricted_max_likelihood -- whether to use restricted max likelihood; True or False
+ refit -- whether to refit the variance component for each marker
+ temp_data -- TempData object that stores the progress for each major step of the
+ calculations ("calculate_kinship" and "GWAS" take the majority of time)
+
+ """
+
+ with Bench("Calculate Kinship"):
+ kinship_matrix = calculate_kinship(genotype_matrix, temp_data)
+
+ with Bench("Create LMM object"):
+ lmm_ob = LMM(pheno_vector, kinship_matrix)
+
+ with Bench("LMM_ob fitting"):
+ lmm_ob.fit()
+
+ with Bench("Doing GWAS"):
+ t_stats, p_values = GWAS(pheno_vector,
+ genotype_matrix,
+ kinship_matrix,
+ restricted_max_likelihood=True,
+ refit=False,
+ temp_data=temp_data)
+ Bench().report()
+ return t_stats, p_values
+
+
+def matrixMult(A,B):
+
+ # If there is no fblas then we will revert to np.dot()
+ try:
+ linalg.fblas
+ except AttributeError:
+ return np.dot(A,B)
+
+ #print("A is:", pf(A.shape))
+ #print("B is:", pf(B.shape))
+
+ # If the matrices are in Fortran order then the computations will be faster
+ # when using dgemm. Otherwise, the function will copy the matrix and that takes time.
+ if not A.flags['F_CONTIGUOUS']:
+ AA = A.T
+ transA = True
+ else:
+ AA = A
+ transA = False
+
+ if not B.flags['F_CONTIGUOUS']:
+ BB = B.T
+ transB = True
+ else:
+ BB = B
+ transB = False
+
+ return linalg.fblas.dgemm(alpha=1.,a=AA,b=BB,trans_a=transA,trans_b=transB)
+
+
+def calculate_kinship(genotype_matrix, temp_data):
+ """
+ genotype_matrix is an n x m matrix encoding SNP minor alleles.
+
+ This function takes a matrix oF SNPs, imputes missing values with the maf,
+ normalizes the resulting vectors and returns the RRM matrix.
+
+ """
+ n = genotype_matrix.shape[0]
+ m = genotype_matrix.shape[1]
+ #print("n is:", n)
+ #print("m is:", m)
+ keep = []
+ for counter in range(m):
+ #print("type of genotype_matrix[:,counter]:", pf(genotype_matrix[:,counter]))
+ #Checks if any values in column are not numbers
+ not_number = np.isnan(genotype_matrix[:,counter])
+
+ #Gets vector of values for column (no values in vector if not all values in col are numbers)
+ marker_values = genotype_matrix[True - not_number, counter]
+ #print("type of marker_values is:", type(marker_values))
+
+ #Gets mean of values in vector
+ values_mean = marker_values.mean()
+
+ genotype_matrix[not_number,counter] = values_mean
+ vr = genotype_matrix[:,counter].var()
+ if vr == 0:
+ continue
+ keep.append(counter)
+ genotype_matrix[:,counter] = (genotype_matrix[:,counter] - values_mean) / np.sqrt(vr)
+
+ percent_complete = int(round((counter/m)*45))
+ temp_data.store("percent_complete", percent_complete)
+
+ genotype_matrix = genotype_matrix[:,keep]
+ kinship_matrix = np.dot(genotype_matrix,genotype_matrix.T) * 1.0/float(m)
+ return kinship_matrix
+
+def GWAS(pheno_vector,
+ genotype_matrix,
+ kinship_matrix,
+ kinship_eigen_vals=None,
+ kinship_eigen_vectors=None,
+ covariate_matrix=None,
+ restricted_max_likelihood=True,
+ refit=False,
+ temp_data=None):
+ """
+ Performs a basic GWAS scan using the LMM. This function
+ uses the LMM module to assess association at each SNP and
+ does some simple cleanup, such as removing missing individuals
+ per SNP and re-computing the eigen-decomp
+
+ pheno_vector - n x 1 phenotype vector
+ genotype_matrix - n x m SNP matrix
+ kinship_matrix - n x n kinship matrix
+ kinship_eigen_vals, kinship_eigen_vectors = linalg.eigh(K) - or the eigen vectors and values for K
+ covariate_matrix - n x q covariate matrix
+ restricted_max_likelihood - use restricted maximum likelihood
+ refit - refit the variance component for each SNP
+
+ """
+ if kinship_eigen_vals == None:
+ kinship_eigen_vals = []
+ if kinship_eigen_vectors == None:
+ kinship_eigen_vectors = []
+
+ n = genotype_matrix.shape[0]
+ m = genotype_matrix.shape[1]
+
+ if covariate_matrix == None:
+ covariate_matrix = np.ones((n,1))
+
+ # Remove missing values in pheno_vector and adjust associated parameters
+ v = np.isnan(pheno_vector)
+ if v.sum():
+ keep = True - v
+ pheno_vector = pheno_vector[keep]
+ genotype_matrix = genotype_matrix[keep,:]
+ covariate_matrix = covariate_matrix[keep,:]
+ kinship_matrix = kinship_matrix[keep,:][:,keep]
+ kinship_eigen_vals = []
+ kinship_eigen_vectors = []
+
+ lmm_ob = LMM(pheno_vector,
+ kinship_matrix,
+ kinship_eigen_vals,
+ kinship_eigen_vectors,
+ covariate_matrix)
+ if not refit:
+ lmm_ob.fit()
+
+ p_values = []
+ t_statistics = []
+
+ n = genotype_matrix.shape[0]
+ m = genotype_matrix.shape[1]
+
+ for counter in range(m):
+ x = genotype_matrix[:,counter].reshape((n, 1))
+ v = np.isnan(x).reshape((-1,))
+ if v.sum():
+ keep = True - v
+ xs = x[keep,:]
+ if xs.var() == 0:
+ p_values.append(np.nan)
+ t_statistics.append(np.nan)
+ continue
+
+ pheno_vector = pheno_vector[keep]
+ covariate_matrix = covariate_matrix[keep,:]
+ kinship_matrix = kinship_matrix[keep,:][:,keep]
+ lmm_ob_2 = LMM(pheno_vector,
+ kinship_matrix,
+ X0=covariate_matrix)
+ if refit:
+ lmm_ob_2.fit(X=xs)
+ else:
+ lmm_ob_2.fit()
+ ts, ps, beta, betaVar = lmm_ob_2.association(xs, REML=restricted_max_likelihood)
+ else:
+ if x.var() == 0:
+ p_values.append(np.nan)
+ t_statistics.append(np.nan)
+ continue
+
+ if refit:
+ lmm_ob.fit(X=x)
+ ts, ps, beta, betaVar = lmm_ob.association(x, REML=restricted_max_likelihood)
+
+ percent_complete = 45 + int(round((counter/m)*55))
+ temp_data.store("percent_complete", percent_complete)
+
+ p_values.append(ps)
+ t_statistics.append(ts)
+
+ return t_statistics, p_values
+
+
+class LMM:
+
+ """
+ This is a simple version of EMMA/fastLMM.
+ The main purpose of this module is to take a phenotype vector (Y), a set of covariates (X) and a kinship matrix (K)
+ and to optimize this model by finding the maximum-likelihood estimates for the model parameters.
+ There are three model parameters: heritability (h), covariate coefficients (beta) and the total
+ phenotypic variance (sigma).
+ Heritability as defined here is the proportion of the total variance (sigma) that is attributed to
+ the kinship matrix.
+
+ For simplicity, we assume that everything being input is a numpy array.
+ If this is not the case, the module may throw an error as conversion from list to numpy array
+ is not done consistently.
+
+ """
+ def __init__(self,Y,K,Kva=[],Kve=[],X0=None,verbose=False):
+
+ """
+ The constructor takes a phenotype vector or array of size n.
+ It takes a kinship matrix of size n x n. Kva and Kve can be computed as Kva,Kve = linalg.eigh(K) and cached.
+ If they are not provided, the constructor will calculate them.
+ X0 is an optional covariate matrix of size n x q, where there are q covariates.
+ When this parameter is not provided, the constructor will set X0 to an n x 1 matrix of all ones to represent a mean effect.
+ """
+
+ if X0 == None: X0 = np.ones(len(Y)).reshape(len(Y),1)
+ self.verbose = verbose
+
+ #x = Y != -9
+ x = True - np.isnan(Y)
+ #pdb.set_trace()
+ if not x.sum() == len(Y):
+ if self.verbose: sys.stderr.write("Removing %d missing values from Y\n" % ((True - x).sum()))
+ Y = Y[x]
+ K = K[x,:][:,x]
+ X0 = X0[x,:]
+ Kva = []
+ Kve = []
+ self.nonmissing = x
+
+ if len(Kva) == 0 or len(Kve) == 0:
+ if self.verbose: sys.stderr.write("Obtaining eigendecomposition for %dx%d matrix\n" % (K.shape[0],K.shape[1]) )
+ begin = time.time()
+ Kva,Kve = linalg.eigh(K)
+ end = time.time()
+ if self.verbose: sys.stderr.write("Total time: %0.3f\n" % (end - begin))
+
+ self.K = K
+ self.Kva = Kva
+ self.Kve = Kve
+ #print("self.Kva is: ", pf(self.Kva))
+ #print("self.Kve is: ", pf(self.Kve))
+ self.Y = Y
+ self.X0 = X0
+ self.N = self.K.shape[0]
+
+ if sum(self.Kva < 1e-6):
+ if self.verbose: sys.stderr.write("Cleaning %d eigen values\n" % (sum(self.Kva < 0)))
+ self.Kva[self.Kva < 1e-6] = 1e-6
+
+ self.transform()
+
+ def transform(self):
+
+ """
+ Computes a transformation on the phenotype vector and the covariate matrix.
+ The transformation is obtained by left multiplying each parameter by the transpose of the
+ eigenvector matrix of K (the kinship).
+ """
+
+ self.Yt = matrixMult(self.Kve.T, self.Y)
+ self.X0t = matrixMult(self.Kve.T, self.X0)
+ self.X0t_stack = np.hstack([self.X0t, np.ones((self.N,1))])
+ self.q = self.X0t.shape[1]
+
+ def getMLSoln(self,h,X):
+
+ """
+ Obtains the maximum-likelihood estimates for the covariate coefficients (beta),
+ the total variance of the trait (sigma) and also passes intermediates that can
+ be utilized in other functions. The input parameter h is a value between 0 and 1 and represents
+ the heritability or the proportion of the total variance attributed to genetics. The X is the
+ covariate matrix.
+ """
+
+ S = 1.0/(h*self.Kva + (1.0 - h))
+ Xt = X.T*S
+ XX = matrixMult(Xt,X)
+ XX_i = linalg.inv(XX)
+ beta = matrixMult(matrixMult(XX_i,Xt),self.Yt)
+ Yt = self.Yt - matrixMult(X,beta)
+ Q = np.dot(Yt.T*S,Yt)
+ sigma = Q * 1.0 / (float(self.N) - float(X.shape[1]))
+ return beta,sigma,Q,XX_i,XX
+
+ def LL_brent(self,h,X=None,REML=False):
+ #brent will not be bounded by the specified bracket.
+ # I return a large number if we encounter h < 0 to avoid errors in LL computation during the search.
+ if h < 0: return 1e6
+ return -self.LL(h,X,stack=False,REML=REML)[0]
+
+ def LL(self,h,X=None,stack=True,REML=False):
+
+ """
+ Computes the log-likelihood for a given heritability (h). If X==None, then the
+ default X0t will be used. If X is set and stack=True, then X0t will be matrix concatenated with
+ the input X. If stack is false, then X is used in place of X0t in the LL calculation.
+ REML is computed by adding additional terms to the standard LL and can be computed by setting REML=True.
+ """
+
+ if X == None:
+ X = self.X0t
+ elif stack:
+ self.X0t_stack[:,(self.q)] = matrixMult(self.Kve.T,X)[:,0]
+ X = self.X0t_stack
+
+ n = float(self.N)
+ q = float(X.shape[1])
+ beta,sigma,Q,XX_i,XX = self.getMLSoln(h,X)
+ LL = n*np.log(2*np.pi) + np.log(h*self.Kva + (1.0-h)).sum() + n + n*np.log(1.0/n * Q)
+ LL = -0.5 * LL
+
+ if REML:
+ LL_REML_part = q*np.log(2.0*np.pi*sigma) + np.log(linalg.det(matrixMult(X.T,X))) - np.log(linalg.det(XX))
+ LL = LL + 0.5*LL_REML_part
+
+ return LL,beta,sigma,XX_i
+
+ def getMax(self,H, X=None,REML=False):
+
+ """
+ Helper functions for .fit(...).
+ This function takes a set of LLs computed over a grid and finds possible regions
+ containing a maximum. Within these regions, a Brent search is performed to find the
+ optimum.
+
+ """
+ n = len(self.LLs)
+ HOpt = []
+ for i in range(1,n-2):
+ if self.LLs[i-1] < self.LLs[i] and self.LLs[i] > self.LLs[i+1]:
+ HOpt.append(optimize.brent(self.LL_brent,args=(X,REML),brack=(H[i-1],H[i+1])))
+ if np.isnan(HOpt[-1][0]):
+ HOpt[-1][0] = [self.LLs[i-1]]
+
+ if len(HOpt) > 1:
+ if self.verbose:
+ sys.stderr.write("NOTE: Found multiple optima. Returning first...\n")
+ return HOpt[0]
+ elif len(HOpt) == 1:
+ return HOpt[0]
+ elif self.LLs[0] > self.LLs[n-1]:
+ return H[0]
+ else:
+ return H[n-1]
+
+ def fit(self,X=None,ngrids=100,REML=True):
+
+ """
+ Finds the maximum-likelihood solution for the heritability (h) given the current parameters.
+ X can be passed and will transformed and concatenated to X0t. Otherwise, X0t is used as
+ the covariate matrix.
+
+ This function calculates the LLs over a grid and then uses .getMax(...) to find the optimum.
+ Given this optimum, the function computes the LL and associated ML solutions.
+ """
+
+ if X == None:
+ X = self.X0t
+ else:
+ #X = np.hstack([self.X0t,matrixMult(self.Kve.T, X)])
+ self.X0t_stack[:,(self.q)] = matrixMult(self.Kve.T,X)[:,0]
+ X = self.X0t_stack
+
+ H = np.array(range(ngrids)) / float(ngrids)
+ L = np.array([self.LL(h,X,stack=False,REML=REML)[0] for h in H])
+ self.LLs = L
+
+ hmax = self.getMax(H,X,REML)
+ L,beta,sigma,betaSTDERR = self.LL(hmax,X,stack=False,REML=REML)
+
+ self.H = H
+ self.optH = hmax
+ self.optLL = L
+ self.optBeta = beta
+ self.optSigma = sigma
+
+ return hmax,beta,sigma,L
+
+ def association(self,X, h = None, stack=True,REML=True, returnBeta=True):
+
+ """
+ Calculates association statitics for the SNPs encoded in the vector X of size n.
+ If h == None, the optimal h stored in optH is used.
+
+ """
+ if stack:
+ #X = np.hstack([self.X0t,matrixMult(self.Kve.T, X)])
+ self.X0t_stack[:,(self.q)] = matrixMult(self.Kve.T,X)[:,0]
+ X = self.X0t_stack
+
+ if h == None:
+ h = self.optH
+
+ L,beta,sigma,betaVAR = self.LL(h,X,stack=False,REML=REML)
+ q = len(beta)
+ ts,ps = self.tstat(beta[q-1],betaVAR[q-1,q-1],sigma,q)
+
+ if returnBeta:
+ return ts,ps,beta[q-1].sum(),betaVAR[q-1,q-1].sum()*sigma
+ return ts,ps
+
+ def tstat(self,beta,var,sigma,q):
+
+ """
+ Calculates a t-statistic and associated p-value given the estimate of beta and its standard error.
+ This is actually an F-test, but when only one hypothesis is being performed, it reduces to a t-test.
+ """
+
+ ts = beta / np.sqrt(var * sigma)
+ ps = 2.0*(1.0 - stats.t.cdf(np.abs(ts), self.N-q))
+ if not len(ts) == 1 or not len(ps) == 1: raise Exception("Something bad happened :(")
+ return ts.sum(),ps.sum()
+
+ def plotFit(self,color='b-',title=''):
+
+ """
+ Simple function to visualize the likelihood space. It takes the LLs
+ calcualted over a grid and normalizes them by subtracting off the mean and exponentiating.
+ The resulting "probabilities" are normalized to one and plotted against heritability.
+ This can be seen as an approximation to the posterior distribuiton of heritability.
+
+ For diagnostic purposes this lets you see if there is one distinct maximum or multiple
+ and what the variance of the parameter looks like.
+ """
+ import matplotlib.pyplot as pl
+
+ mx = self.LLs.max()
+ p = np.exp(self.LLs - mx)
+ p = p/p.sum()
+
+ pl.plot(self.H,p,color)
+ pl.xlabel("Heritability")
+ pl.ylabel("Probability of data")
+ pl.title(title)
diff --git a/wqflask/wqflask/my_pylmm/pylmmGWAS.py b/wqflask/wqflask/my_pylmm/pylmmGWAS.py
new file mode 100644
index 00000000..54a230de
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pylmmGWAS.py
@@ -0,0 +1,238 @@
+#!/usr/bin/python
+
+# pylmm is a python-based linear mixed-model solver with applications to GWAS
+
+# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import pdb
+import time
+
+def printOutHead():
+ out.write("\t".join(["SNP_ID","BETA","BETA_SD","F_STAT","P_VALUE"]) + "\n")
+def outputResult(id,beta,betaSD,ts,ps):
+ out.write("\t".join([str(x) for x in [id,beta,betaSD,ts,ps]]) + "\n")
+
+from optparse import OptionParser,OptionGroup
+usage = """usage: %prog [options] --kfile kinshipFile --[t | b | p]file plinkFileBase outfileBase
+
+This program provides basic genome-wide association (GWAS) functionality. You provide a phenotype and genotype file as well as a pre-computed (use pylmmKinship.py) kinship matrix and the program outputs a result file with information about each SNP, including the association p-value.
+The input file are all standard plink formatted with the first two columns specifiying the individual and family ID. For the phenotype file, we accept either NA or -9 to denote missing values.
+
+Basic usage:
+
+ python pylmmGWAS.py -v --bfile plinkFile --kfile preComputedKinship.kin --phenofile plinkFormattedPhenotypeFile resultFile
+
+NOTE: The current running version only supports binary PED files (PLINK). It is simple to convert between ped or tped and bed using PLINK. Sorry for the inconvinience.
+
+ """
+parser = OptionParser(usage=usage)
+
+basicGroup = OptionGroup(parser, "Basic Options")
+advancedGroup = OptionGroup(parser, "Advanced Options")
+
+basicGroup.add_option("--pfile", dest="pfile",
+ help="The base for a PLINK ped file")
+basicGroup.add_option("--tfile", dest="tfile",
+ help="The base for a PLINK tped file")
+basicGroup.add_option("--bfile", dest="bfile",
+ help="The base for a PLINK binary bed file")
+basicGroup.add_option("--phenofile", dest="phenoFile", default=None,
+ help="Without this argument the program will look for a file with .pheno that has the plinkFileBase root. If you want to specify an alternative phenotype file, then use this argument. The order does not matter for this file. ")
+basicGroup.add_option("--kfile", dest="kfile",
+ help="The location of a kinship file. This is an nxn plain text file and can be computed with the pylmmKinship program.")
+basicGroup.add_option("--covfile", dest="covfile",
+ help="The location of a covariate file file. This is a plink formatted covariate file.")
+basicGroup.add_option("-p", type="int", dest="pheno", help="The phenotype index to be used in association.", default=0)
+
+advancedGroup.add_option("--removeMissingGenotypes",
+ action="store_false", dest="normalizeGenotype", default=True,
+ help="By default the program replaces missing genotypes with the minor allele frequency. This option overrides that behavior making the program remove missing individuals. NOTE: This can increase running time due to the need to recompute the eigendecomposition for each SNP with missing values.")
+advancedGroup.add_option("--refit",
+ action="store_true", dest="refit", default=False,
+ help="Refit the variance components at each SNP (default is to lock in the variance components under the null).")
+
+advancedGroup.add_option("--REML",
+ action="store_true", dest="REML", default=False,
+ help="Use restricted maximum-likelihood (REML) (default is maximum-likelihood).")
+#advancedGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
+advancedGroup.add_option("--eigen", dest="eigenfile",
+ help="The location of the precomputed eigendecomposition for the kinship file")
+advancedGroup.add_option("--noMean", dest="noMean", default=False,action="store_true",
+ help="This option only applies when --cofile is used. When covfile is provided, the program will automatically add a global mean covariate to the model unless this option is specified.")
+
+advancedGroup.add_option("-v", "--verbose",
+ action="store_true", dest="verbose", default=False,
+ help="Print extra info")
+
+parser.add_option_group(basicGroup)
+parser.add_option_group(advancedGroup)
+
+(options, args) = parser.parse_args()
+
+import sys
+import os
+import numpy as np
+from scipy import linalg
+from pylmm.lmm import LMM
+from pylmm import input
+
+if len(args) != 1:
+ parser.error("Incorrect number of arguments")
+outFile = args[0]
+
+if not options.pfile and not options.tfile and not options.bfile:
+ parser.error("You must provide at least one PLINK input file base")
+if not options.kfile:
+ parser.error("Please provide a pre-computed kinship file")
+
+# READING PLINK input
+if options.verbose:
+ sys.stderr.write("Reading PLINK input...\n")
+if options.bfile:
+ IN = input.plink(options.bfile,type='b', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
+elif options.tfile:
+ IN = input.plink(options.tfile,type='t', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
+elif options.pfile:
+ IN = input.plink(options.pfile,type='p', phenoFile=options.phenoFile,normGenotype=options.normalizeGenotype)
+else:
+ parser.error("You must provide at least one PLINK input file base")
+
+if not os.path.isfile(options.phenoFile or IN.fbase + '.phenos'):
+ parser.error("No .pheno file exist for %s" % (options.phenoFile or IN.fbase + '.phenos'))
+
+# READING Covariate File
+if options.covfile:
+ if options.verbose:
+ sys.stderr.write("Reading covariate file...\n")
+ # Read the covariate file -- write this into input.plink
+ P = IN.getCovariates(options.covfile)
+
+ if options.noMean:
+ X0 = P
+ else:
+ X0 = np.hstack([np.ones((IN.phenos.shape[0],1)),P])
+
+ if np.isnan(X0).sum():
+ parser.error("The covariate file %s contains missing values. At this time we are not dealing with this case. Either remove those individuals with missing values or replace them in some way.")
+else:
+ X0 = np.ones((IN.phenos.shape[0],1))
+
+# READING Kinship - major bottleneck for large datasets
+if options.verbose:
+ sys.stderr.write("Reading kinship...\n")
+begin = time.time()
+# This method seems to be the fastest and works if you already know the size of the matrix
+if options.kfile[-3:] == '.gz':
+ import gzip
+ f = gzip.open(options.kfile,'r')
+ F = f.read() # might exhaust mem if the file is huge
+ K = np.fromstring(F,sep=' ') # Assume that space separated
+ f.close()
+else:
+ K = np.fromfile(open(options.kfile,'r'),sep=" ")
+K.resize((len(IN.indivs),len(IN.indivs)))
+end = time.time()
+# Other slower ways
+#K = np.loadtxt(options.kfile)
+#K = np.genfromtxt(options.kfile)
+if options.verbose:
+ sys.stderr.write("Read the %d x %d kinship matrix in %0.3fs \n" % (K.shape[0],K.shape[1],end-begin))
+
+
+# PROCESS the phenotype data -- Remove missing phenotype values
+# Keep will now index into the "full" data to select what we keep (either everything or a subset of non missing data
+Y = IN.phenos[:,options.pheno]
+v = np.isnan(Y)
+keep = True - v
+if v.sum():
+ if options.verbose:
+ sys.stderr.write("Cleaning the phenotype vector by removing %d individuals...\n" % (v.sum()))
+ Y = Y[keep]
+ X0 = X0[keep,:]
+ K = K[keep,:][:,keep]
+ Kva = []
+ Kve = []
+
+# Only load the decomposition if we did not remove individuals.
+# Otherwise it would not be correct and we would have to compute it again.
+if not v.sum() and options.eigenfile:
+ if options.verbose: sys.stderr.write("Loading pre-computed eigendecomposition...\n")
+ Kva = np.load(options.eigenfile + ".Kva")
+ Kve = np.load(options.eigenfile + ".Kve")
+else:
+ Kva = []
+ Kve = []
+
+# CREATE LMM object for association
+n = K.shape[0]
+L = LMM(Y,K,Kva,Kve,X0,verbose=options.verbose)
+# Fit the null model -- if refit is true we will refit for each SNP, so no reason to run here
+if not options.refit:
+ if options.verbose: sys.stderr.write("Computing fit for null model\n")
+ L.fit()
+ if options.verbose: sys.stderr.write("\t heritability=%0.3f, sigma=%0.3f\n" % (L.optH,L.optSigma))
+
+# Buffers for pvalues and t-stats
+PS = []
+TS = []
+count = 0
+out = open(outFile,'w')
+printOutHead()
+
+for snp,id in IN:
+ count += 1
+ if options.verbose and count % 1000 == 0:
+ sys.stderr.write("At SNP %d\n" % count)
+
+ x = snp[keep].reshape((n,1))
+ #x[[1,50,100,200,3000],:] = np.nan
+ v = np.isnan(x).reshape((-1,))
+ # Check SNPs for missing values
+ if v.sum():
+ keeps = True - v
+ xs = x[keeps,:]
+ if keeps.sum() <= 1 or xs.var() <= 1e-6:
+ PS.append(np.nan)
+ TS.append(np.nan)
+ outputResult(id,np.nan,np.nan,np.nan,np.nan)
+ continue
+
+ # Its ok to center the genotype - I used options.normalizeGenotype to
+ # force the removal of missing genotypes as opposed to replacing them with MAF.
+ if not options.normalizeGenotype: xs = (xs - xs.mean()) / np.sqrt(xs.var())
+ Ys = Y[keeps]
+ X0s = X0[keeps,:]
+ Ks = K[keeps,:][:,keeps]
+ Ls = LMM(Ys,Ks,X0=X0s,verbose=options.verbose)
+ if options.refit: Ls.fit(X=xs,REML=options.REML)
+ else:
+ #try:
+ Ls.fit(REML=options.REML)
+ #except: pdb.set_trace()
+ ts,ps,beta,betaVar = Ls.association(xs,REML=options.REML,returnBeta=True)
+ else:
+ if x.var() == 0:
+ PS.append(np.nan)
+ TS.append(np.nan)
+ outputResult(id,np.nan,np.nan,np.nan,np.nan)
+ continue
+
+ if options.refit: L.fit(X=x,REML=options.REML)
+ ts,ps,beta,betaVar = L.association(x,REML=options.REML,returnBeta=True)
+
+ outputResult(id,beta,np.sqrt(betaVar).sum(),ts,ps)
+ PS.append(ps)
+ TS.append(ts)
diff --git a/wqflask/wqflask/my_pylmm/pylmmKinship.py b/wqflask/wqflask/my_pylmm/pylmmKinship.py
new file mode 100644
index 00000000..cfba2936
--- /dev/null
+++ b/wqflask/wqflask/my_pylmm/pylmmKinship.py
@@ -0,0 +1,119 @@
+#!/usr/bin/python
+
+# pylmm is a python-based linear mixed-model solver with applications to GWAS
+
+# Copyright (C) 2013 Nicholas A. Furlotte (nick.furlotte@gmail.com)
+
+#The program is free for academic use. Please contact Nick Furlotte
+#<nick.furlotte@gmail.com> if you are interested in using the software for
+#commercial purposes.
+
+#The software must not be modified and distributed without prior
+#permission of the author.
+
+#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+#CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+#EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+#PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+#PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+#LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+#NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+from optparse import OptionParser,OptionGroup
+usage = """usage: %prog [options] --[t | b | p]file plinkFileBase outfile
+
+NOTE: The current running version only supports binary PED files (PLINK). It is simple to convert between ped or tped and bed using PLINK. Sorry for the inconvinience.
+"""
+
+parser = OptionParser(usage=usage)
+
+basicGroup = OptionGroup(parser, "Basic Options")
+#advancedGroup = OptionGroup(parser, "Advanced Options")
+
+basicGroup.add_option("--pfile", dest="pfile",
+ help="The base for a PLINK ped file")
+basicGroup.add_option("--tfile", dest="tfile",
+ help="The base for a PLINK tped file")
+basicGroup.add_option("--bfile", dest="bfile",
+ help="The base for a PLINK binary ped file")
+
+basicGroup.add_option("-e", "--efile", dest="saveEig", help="Save eigendecomposition to this file.")
+basicGroup.add_option("-n", default=1000,dest="computeSize", type="int", help="The maximum number of SNPs to read into memory at once (default 1000). This is important when there is a large number of SNPs, because memory could be an issue.")
+
+basicGroup.add_option("-v", "--verbose",
+ action="store_true", dest="verbose", default=False,
+ help="Print extra info")
+
+parser.add_option_group(basicGroup)
+#parser.add_option_group(advancedGroup)
+
+(options, args) = parser.parse_args()
+if len(args) != 1: parser.error("Incorrect number of arguments")
+outFile = args[0]
+
+import sys
+import os
+import numpy as np
+from scipy import linalg
+from pyLMM.lmm import calculate_kinship
+from pyLMM import input
+
+if not options.pfile and not options.tfile and not options.bfile:
+ parser.error("You must provide at least one PLINK input file base")
+
+if options.verbose: sys.stderr.write("Reading PLINK input...\n")
+if options.bfile: IN = input.plink(options.bfile,type='b')
+elif options.tfile: IN = input.plink(options.tfile,type='t')
+elif options.pfile: IN = input.plink(options.pfile,type='p')
+else: parser.error("You must provide at least one PLINK input file base")
+
+n = len(IN.indivs)
+m = options.computeSize
+W = np.ones((n,m)) * np.nan
+
+IN.getSNPIterator()
+i = 0
+K = None
+while i < IN.numSNPs:
+ j = 0
+ while j < options.computeSize and i < IN.numSNPs:
+ snp,id = IN.next()
+ if snp.var() == 0:
+ i += 1
+ continue
+ W[:,j] = snp
+
+ i += 1
+ j += 1
+ if j < options.computeSize: W = W[:,range(0,j)]
+
+ if options.verbose:
+ sys.stderr.write("Processing first %d SNPs\n" % i)
+ if K == None:
+ try:
+ K = linalg.fblas.dgemm(alpha=1.,a=W.T,b=W.T,trans_a=True,trans_b=False) # calculateKinship(W) * j
+ except AttributeError:
+ K = np.dot(W,W.T)
+ else:
+ try:
+ K_j = linalg.fblas.dgemm(alpha=1.,a=W.T,b=W.T,trans_a=True,trans_b=False) # calculateKinship(W) * j
+ except AttributeError:
+ K_j = np.dot(W,W.T)
+ K = K + K_j
+
+K = K / float(IN.numSNPs)
+if options.verbose: sys.stderr.write("Saving Kinship file to %s\n" % outFile)
+np.savetxt(outFile,K)
+
+if options.saveEig:
+ if options.verbose:
+ sys.stderr.write("Obtaining Eigendecomposition\n")
+ Kva,Kve = linalg.eigh(K)
+ if options.verbose:
+ sys.stderr.write("Saving eigendecomposition to %s.[kva | kve]\n" % outFile)
+ np.savetxt(outFile+".kva",Kva)
+ np.savetxt(outFile+".kve",Kve)
diff --git a/wqflask/wqflask/pylmm b/wqflask/wqflask/pylmm
new file mode 160000
+Subproject cede848b7ce648366c1bdd7bc5df43c633eeb0d
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index d986a2e0..4238aa7f 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -1,4 +1,4 @@
-from __future__ import absolute_import, division, print_function
+from __future__ import absolute_import, print_function, division
from wqflask import app
@@ -13,9 +13,15 @@ import time
#import pp - Note from Sam: is this used?
import math
import datetime
+import collections
from pprint import pformat as pf
+import json
+
+from flask import Flask, g
+from MySQLdb import escape_string as escape
+
# Instead of importing HT we're going to build a class below until we can eliminate it
from htmlgen import HTMLgen2 as HT
@@ -24,7 +30,6 @@ from utility.THCell import THCell
from utility.TDCell import TDCell
from base.data_set import create_dataset
from base.trait import GeneralTrait
-from base.templatePage import templatePage
from wqflask import parser
from wqflask import do_search
from utility import webqtlUtil
@@ -34,49 +39,50 @@ from utility import formatting
#from base.JinjaPage import JinjaEnv, JinjaPage
+#class QuickSearchResult(object):
+ #def __init__(self, key, result_fields):
+ # self.key = key
+ # self.result_fields = result_fields
+
-class SearchResultPage(templatePage):
+class SearchResultPage(object):
#maxReturn = 3000
- def __init__(self, fd):
- print("initing SearchResultPage")
- #import logging_tree
- #logging_tree.printout()
- self.fd = fd
- templatePage.__init__(self, fd)
- assert self.openMysql(), "Couldn't open MySQL"
-
- print("fd is:", pf(fd))
- print("fd.dict is:", pf(fd['dataset']))
- self.dataset = fd['dataset']
-
- # change back to self.dataset
- #if not self.dataset or self.dataset == 'spacer':
- # #Error, No dataset selected
+ def __init__(self, kw):
###########################################
# Names and IDs of group / F2 set
###########################################
-
+
# All Phenotypes is a special case we'll deal with later
- if self.dataset == "All Phenotypes":
- self.cursor.execute("""
- select PublishFreeze.Name, InbredSet.Name, InbredSet.Id from PublishFreeze,
- InbredSet where PublishFreeze.Name not like 'BXD300%' and InbredSet.Id =
- PublishFreeze.InbredSetId""")
- results = self.cursor.fetchall()
- self.dataset = map(lambda x: DataSet(x[0], self.cursor), results)
- self.dataset_groups = map(lambda x: x[1], results)
- self.dataset_group_ids = map(lambda x: x[2], results)
+ #if kw['dataset'] == "All Phenotypes":
+ # self.cursor.execute("""
+ # select PublishFreeze.Name, InbredSet.Name, InbredSet.Id from PublishFreeze,
+ # InbredSet where PublishFreeze.Name not like 'BXD300%' and InbredSet.Id =
+ # PublishFreeze.InbredSetId""")
+ # results = self.cursor.fetchall()
+ # self.dataset = map(lambda x: DataSet(x[0], self.cursor), results)
+ # self.dataset_groups = map(lambda x: x[1], results)
+ # self.dataset_group_ids = map(lambda x: x[2], results)
+ #else:
+
+ self.quick = False
+
+ if 'q' in kw:
+ self.results = {}
+ self.quick = True
+ self.search_terms = kw['q']
+ print("self.search_terms is: ", self.search_terms)
+ self.quick_search()
else:
- print("self.dataset is:", pf(self.dataset))
- # Replaces a string with an object
- self.dataset = create_dataset(self.dataset)
- print("self.dataset is now:", pf(self.dataset))
-
- self.search()
- self.gen_search_result()
+ self.results = []
+ #self.quick_search = False
+ self.search_terms = kw['search_terms']
+ self.dataset = create_dataset(kw['dataset'])
+ self.search()
+ self.gen_search_result()
+
def gen_search_result(self):
@@ -87,7 +93,7 @@ class SearchResultPage(templatePage):
"""
self.trait_list = []
- species = webqtlDatabaseFunction.retrieve_species(self.dataset.group.name)
+ species = webqtlDatabaseFunction.retrieve_species(self.dataset.group.name)
# result_set represents the results for each search term; a search of
# "shh grin2b" would have two sets of results, one for each term
@@ -100,18 +106,84 @@ class SearchResultPage(templatePage):
print("foo locals are:", locals())
trait_id = result[0]
- this_trait = GeneralTrait(dataset=self.dataset.name, name=trait_id)
- this_trait.retrieve_info(QTL=True)
+ this_trait = GeneralTrait(dataset=self.dataset, name=trait_id)
+ this_trait.retrieve_info(get_qtl_info=True)
self.trait_list.append(this_trait)
self.dataset.get_trait_info(self.trait_list, species)
+ def quick_search(self):
+ #search_terms = ""
+ #for term in self.search_terms.split():
+ # search_terms += '+{} '.format(term)
+
+ search_terms = ' '.join('+{}'.format(escape(term)) for term in self.search_terms.split())
+ print("search_terms are:", search_terms)
+
+ query = """ SELECT table_name, the_key, result_fields
+ FROM QuickSearch
+ WHERE MATCH (terms)
+ AGAINST ('{}' IN BOOLEAN MODE) """.format(search_terms)
+ dbresults = g.db.execute(query, no_parameters=True).fetchall()
+ #print("results: ", pf(results))
+
+ self.results = collections.defaultdict(list)
+
+ type_dict = {'PublishXRef': 'phenotype',
+ 'ProbesetXRef': 'mrna_assay',
+ 'GenoXRef': 'genotype'}
+
+ for dbresult in dbresults:
+ this_result = {}
+ this_result['table_name'] = dbresult.table_name
+ this_result['key'] = dbresult.the_key
+ this_result['result_fields'] = json.loads(dbresult.result_fields)
+
+ self.results[type_dict[dbresult.table_name]].append(this_result)
+
+ print("results: ", pf(self.results['phenotype']))
+
+ #def quick_search(self):
+ # self.search_terms = parser.parse(self.search_terms)
+ #
+ # search_types = ["quick_mrna_assay", "quick_phenotype"]
+ #
+ # for search_category in search_types:
+ # these_results = []
+ # search_ob = do_search.DoSearch.get_search(search_category)
+ # search_class = getattr(do_search, search_ob)
+ # for a_search in self.search_terms:
+ # search_term = a_search['search_term']
+ # the_search = search_class(search_term)
+ # these_results.extend(the_search.run())
+ # print("in the search results are:", self.results)
+ # self.results[search_category] = these_results
+ #
+ # #for a_search in self.search_terms:
+ # # search_term = a_search['search_term']
+ # #
+ # # #Do mRNA assay search
+ # # search_ob = do_search.DoSearch.get_search("quick_mrna_assay")
+ # # search_class = getattr(do_search, search_ob)
+ # # the_search = search_class(search_term)
+ # #
+ # # self.results.extend(the_search.run())
+ # # print("in the search results are:", self.results)
+ #
+ #
+ # #return True
+ #
+ # #search_gene
+ # #search_geno
+ # #searhch_pheno
+ # #search_mrn
+ # #searhc_publish
+
def search(self):
- self.search_terms = parser.parse(self.fd['search_terms'])
+ self.search_terms = parser.parse(self.search_terms)
print("After parsing:", self.search_terms)
- self.results = []
for a_search in self.search_terms:
print("[kodak] item is:", pf(a_search))
search_term = a_search['search_term']
@@ -131,6 +203,7 @@ class SearchResultPage(templatePage):
search_ob = do_search.DoSearch.get_search(search_type)
search_class = getattr(do_search, search_ob)
+ print("search_class is: ", pf(search_class))
the_search = search_class(search_term,
search_operator,
self.dataset,
diff --git a/wqflask/wqflask/show_trait/SampleList.py b/wqflask/wqflask/show_trait/SampleList.py
index d98a810a..1130fb60 100644
--- a/wqflask/wqflask/show_trait/SampleList.py
+++ b/wqflask/wqflask/show_trait/SampleList.py
@@ -4,7 +4,7 @@ from flask import Flask, g
from base import webqtlCaseData
from utility import webqtlUtil, Plot, Bunch
-from base.webqtlTrait import GeneralTrait
+from base.trait import GeneralTrait
from pprint import pformat as pf
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index 9bd45905..60e42afb 100755
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import, print_function, division
import string
import os
import cPickle
+import uuid
#import pyXLWriter as xl
from collections import OrderedDict
@@ -14,9 +15,9 @@ from htmlgen import HTMLgen2 as HT
from base import webqtlConfig
from base import webqtlCaseData
from wqflask.show_trait.SampleList import SampleList
-from utility import webqtlUtil, Plot, Bunch
+from utility import webqtlUtil, Plot, Bunch, helper_functions
from base.trait import GeneralTrait
-from base.data_set import create_dataset
+from base import data_set
from dbFunction import webqtlDatabaseFunction
from base.templatePage import templatePage
from basicStatistics import BasicStatisticsFunctions
@@ -38,26 +39,13 @@ class ShowTrait(object):
print("in ShowTrait, kw are:", kw)
self.trait_id = kw['trait_id']
- self.dataset = create_dataset(kw['dataset'])
-
- #self.cell_id = None
-
-
- this_trait = GeneralTrait(dataset=self.dataset.name,
- name=self.trait_id,
- cellid=None)
-
+ helper_functions.get_species_dataset_trait(self, kw)
self.dataset.group.read_genotype_file()
- if not self.dataset.group.genotype:
- self.read_data(include_f1=True)
-
-
# Todo: Add back in the ones we actually need from below, as we discover we need them
hddn = OrderedDict()
-
## Some fields, like method, are defaulted to None; otherwise in IE the field can't be changed using jquery
#hddn = OrderedDict(
# FormID = fmID,
@@ -98,27 +86,22 @@ class ShowTrait(object):
# this_trait.mysqlid)
# heritability = self.cursor.fetchone()
- #hddn['mappingMethodId'] = webqtlDatabaseFunction.getMappingMethod (cursor=self.cursor,
- # groupName=fd.group)
-
- self.dispTraitInformation(kw, "", hddn, this_trait) #Display trait information + function buttons
+ self.dispTraitInformation(kw, "", hddn, self.this_trait) #Display trait information + function buttons
- #if this_trait == None:
- # this_trait = webqtlTrait(data=kw['allTraitData'], dataset=None)
+ self.build_correlation_tools(self.this_trait)
- self.build_correlation_tools(this_trait)
-
- self.make_sample_lists(this_trait)
+ self.make_sample_lists(self.this_trait)
if self.dataset.group.allsamples:
hddn['allsamples'] = string.join(self.dataset.group.allsamples, ' ')
hddn['trait_id'] = self.trait_id
- hddn['dataset_name'] = self.dataset.name
+ hddn['dataset'] = self.dataset.name
# We'll need access to this_trait and hddn in the Jinja2 Template, so we put it inside self
- self.this_trait = this_trait
self.hddn = hddn
+
+ self.temp_uuid = uuid.uuid4()
self.sample_group_types = OrderedDict()
self.sample_group_types['samples_primary'] = self.dataset.group.name + " Only"
@@ -128,38 +111,19 @@ class ShowTrait(object):
print("sample_lists is:", pf(sample_lists))
js_data = dict(sample_group_types = self.sample_group_types,
sample_lists = sample_lists,
- attribute_names = self.sample_groups[0].attributes)
- print("js_data:", pf(js_data))
+ attribute_names = self.sample_groups[0].attributes,
+ temp_uuid = self.temp_uuid)
self.js_data = js_data
- #def get_this_trait(self):
- # this_trait = GeneralTrait(dataset=self.dataset.name,
- # name=self.trait_id,
- # cellid=self.cell_id)
- #
- # ###identification, etc.
- # #self.identification = '%s : %s' % (self.dataset.shortname, self.trait_id)
- # #this_trait.returnURL = webqtlConfig.CGIDIR + webqtlConfig.SCRIPTFILE + '?FormID=showDatabase&database=%s\
- # # &ProbeSetID=%s&group=%s&parentsf1=on' %(self.dataset, self.trait_id, self.dataset.group.name)
- # #
- # #if self.cell_id:
- # # self.identification = '%s/%s'%(self.identification, self.cell_id)
- # # this_trait.returnURL = '%s&CellID=%s' % (this_trait.returnURL, self.cell_id)
- #
- # this_trait.retrieve_info()
- # this_trait.retrieve_sample_data()
- # return this_trait
-
-
def read_data(self, include_f1=False):
'''read user input data or from trait data and analysis form'''
#if incf1 == None:
# incf1 = []
- if not self.genotype:
- self.dataset.read_genotype_file()
+ #if not self.genotype:
+ # self.dataset.read_genotype_file()
if not samplelist:
if include_f1:
samplelist = self.f1list + self.samplelist
@@ -322,13 +286,11 @@ class ShowTrait(object):
if snpurl:
snpBrowserButton = HT.Href(url="#redirect", onClick="openNewWin('%s')" % snpurl)
snpBrowserButton_img = HT.Image("/images/snp_icon.jpg", name="snpbrowser", alt=" View SNPs and Indels ", title=" View SNPs and Indels ", style="border:none;")
- #snpBrowserButton.append(snpBrowserButton_img)
snpBrowserText = "SNPs"
#XZ: Show GeneWiki for all species
geneWikiButton = HT.Href(url="#redirect", onClick="openNewWin('%s')" % (os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE) + "?FormID=geneWiki&symbol=%s" % this_trait.symbol))
geneWikiButton_img = HT.Image("/images/genewiki_icon.jpg", name="genewiki", alt=" Write or review comments about this gene ", title=" Write or review comments about this gene ", style="border:none;")
- #geneWikiButton.append(geneWikiButton_img)
geneWikiText = 'GeneWiki'
#XZ: display similar traits in other selected datasets
@@ -337,15 +299,9 @@ class ShowTrait(object):
similarUrl = "%s?cmd=sch&gene=%s&alias=1&species=%s" % (os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), this_trait.symbol, _Species)
similarButton = HT.Href(url="#redirect", onClick="openNewWin('%s')" % similarUrl)
similarButton_img = HT.Image("/images/find_icon.jpg", name="similar", alt=" Find similar expression data ", title=" Find similar expression data ", style="border:none;")
- #similarButton.append(similarButton_img)
similarText = "Find"
else:
pass
- #tbl.append(HT.TR(
- #HT.TD('Gene Symbol: ', Class="fwb fs13", valign="top", nowrap="on", width=90),
- #HT.TD(width=10, valign="top"),
- #HT.TD(HT.Span('%s' % this_trait.symbol, valign="top", Class="fs13 fsI"), valign="top", width=740)
- #))
else:
tbl.append(HT.TR(
HT.TD('Gene Symbol: ', Class="fwb fs13", valign="top", nowrap="on"),
@@ -391,11 +347,6 @@ class ShowTrait(object):
for seqt in seqs:
if int(seqt[1][-1]) %2 == 1:
blatsequence += '%3EProbe_'+string.strip(seqt[1])+'%0A'+string.strip(seqt[0])+'%0A'
- #--------
- #XZ, 07/16/2009: targetsequence is not used, so I comment out this block
- #targetsequence = this_trait.targetseq
- #if targetsequence==None:
- # targetsequence = ""
#XZ: Pay attention to the parameter of version (rn, mm, hg). They need to be changed if necessary.
if _Species == "rat":
@@ -444,55 +395,6 @@ class ShowTrait(object):
#probeButton.append(probeButton_img)
probeText = "Probes"
- #tSpan = HT.Span(Class="fs13")
-
- #XZ: deal with blat score and blat specificity.
- #if this_trait.probe_set_specificity or this_trait.probe_set_blat_score:
- # if this_trait.probe_set_specificity:
- # pass
- # #tSpan.append(HT.Href(url="/blatInfo.html", target="_blank", title="Values higher than 2 for the specificity are good", text="BLAT specificity", Class="non_bold"),": %.1f" % float(this_trait.probe_set_specificity), "&nbsp;"*3)
- # if this_trait.probe_set_blat_score:
- # pass
- # #tSpan.append("Score: %s" % int(this_trait.probe_set_blat_score), "&nbsp;"*2)
-
- #onClick="openNewWin('/blatInfo.html')"
-
- #tbl.append(HT.TR(
- # HT.TD('Target Score: ', Class="fwb fs13", valign="top", nowrap="on"),
- # HT.TD(width=10, valign="top"),
- # HT.TD(tSpan, valign="top")
- # ))
-
- #tSpan = HT.Span(Class="fs13")
- #tSpan.append(str(_Species).capitalize(), ", ", fd.group)
- #
- #tbl.append(HT.TR(
- # HT.TD('Species and Group: ', Class="fwb fs13", valign="top", nowrap="on"),
- # HT.TD(width=10, valign="top"),
- # HT.TD(tSpan, valign="top")
- # ))
-
- #if this_trait.cellid:
- # self.cursor.execute("""
- # select ProbeFreeze.Name from ProbeFreeze, ProbeSetFreeze
- # where
- # ProbeFreeze.Id = ProbeSetFreeze.ProbeFreezeId AND
- # ProbeSetFreeze.Id = %d""" % this_trait.dataset.id)
- # probeDBName = self.cursor.fetchone()[0]
- # tbl.append(HT.TR(
- # HT.TD('Database: ', Class="fs13 fwb", valign="top", nowrap="on"),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span('%s' % probeDBName, Class="non_bold"), valign="top")
- # ))
- #else:
- #tbl.append(HT.TR(
- # HT.TD('Database: ', Class="fs13 fwb", valign="top", nowrap="on"),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Href(text=this_trait.dataset.fullname, url = webqtlConfig.INFOPAGEHREF % this_trait.dataset.name,
- # target='_blank', Class="fs13 fwn non_bold"), valign="top")
- # ))
- #pass
-
this_trait.species = _Species # We need this in the template, so we tuck it into this_trait
this_trait.database = this_trait.get_database()
@@ -527,14 +429,6 @@ class ShowTrait(object):
url=webqtlConfig.HOMOLOGENE_ID % this_trait.homologeneid, Class="fs14 fwn", title="Find similar genes in other species")
#tSpan.append(HT.Span(hurl, style=idStyle), "&nbsp;"*2)
- #tbl.append(
- # HT.TR(HT.TD(colspan=3,height=6)),
- # HT.TR(
- # HT.TD('Resource Links: ', Class="fwb fs13", valign="top", nowrap="on"),
- # HT.TD(width=10, valign="top"),
- # HT.TD(tSpan, valign="top")
- # ))
-
#XZ: Resource Links:
if this_trait.symbol:
linkStyle = "background:#dddddd;padding:2"
@@ -579,9 +473,7 @@ class ShowTrait(object):
# txen),
# Class="fs14 fwn"), style=linkStyle)
# , "&nbsp;"*2)
- #except:
- # pass
-
+
#XZ, 7/16/2009: The url for SymAtlas (renamed as BioGPS) has changed. We don't need this any more
#tSpan.append(HT.Span(HT.Href(text= 'SymAtlas',target="mainFrame",\
# url="http://symatlas.gnf.org/SymAtlas/bioentry?querytext=%s&query=14&species=%s&type=Expression" \
@@ -650,85 +542,69 @@ class ShowTrait(object):
# title="Allen Brain Atlas"), style=linkStyle), "&nbsp;"*2)
pass
- #tbl.append(
- # HT.TR(HT.TD(colspan=3,height=6)),
- # HT.TR(
- # HT.TD(' '),
- # HT.TD(width=10, valign="top"),
- # HT.TD(tSpan, valign="top")))
-
- #menuTable = HT.TableLite(cellpadding=2, Class="collap", width="620", id="target1")
- #menuTable.append(HT.TR(HT.TD(addSelectionButton, align="center"),HT.TD(similarButton, align="center"),HT.TD(verifyButton, align="center"),HT.TD(geneWikiButton, align="center"),HT.TD(snpBrowserButton, align="center"),HT.TD(rnaseqButton, align="center"),HT.TD(probeButton, align="center"),HT.TD(updateButton, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
- #menuTable.append(HT.TR(HT.TD(addSelectionText, align="center"),HT.TD(similarText, align="center"),HT.TD(verifyText, align="center"),HT.TD(geneWikiText, align="center"),HT.TD(snpBrowserText, align="center"),HT.TD(rnaseqText, align="center"),HT.TD(probeText, align="center"),HT.TD(updateText, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
-
-
#for zhou mi's cliques, need to be removed
#if self.database[:6] == 'BXDMic' and self.ProbeSetID in cliqueID:
# Info2Disp.append(HT.Strong('Clique Search: '),HT.Href(text='Search',\
# url ="http://compbio1.utmem.edu/clique_go/results.php?pid=%s&pval_1=0&pval_2=0.001" \
# % self.ProbeSetID,target='_blank',Class="normalsize"),HT.BR())
- #linkTable.append(HT.TR(linkTD))
- #Info2Disp.append(linkTable)
- #title1Body.append(tbl, HT.BR(), menuTable)
-
elif this_trait and this_trait.dataset and this_trait.dataset.type =='Publish': #Check if trait is phenotype
- if this_trait.confidential:
- pass
- #tbl.append(HT.TR(
- # HT.TD('Pre-publication Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.pre_publication_description, Class="fs13"), valign="top", width=740)
- # ))
- if webqtlUtil.hasAccessToConfidentialPhenotypeTrait(privilege=self.privilege, userName=self.userName, authorized_users=this_trait.authorized_users):
- #tbl.append(HT.TR(
- # HT.TD('Post-publication Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.post_publication_description, Class="fs13"), valign="top", width=740)
- # ))
- #tbl.append(HT.TR(
- # HT.TD('Pre-publication Abbreviation: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.pre_publication_abbreviation, Class="fs13"), valign="top", width=740)
- # ))
- #tbl.append(HT.TR(
- # HT.TD('Post-publication Abbreviation: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.post_publication_abbreviation, Class="fs13"), valign="top", width=740)
- # ))
- #tbl.append(HT.TR(
- # HT.TD('Lab code: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.lab_code, Class="fs13"), valign="top", width=740)
- # ))
- pass
- #tbl.append(HT.TR(
- # HT.TD('Owner: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.owner, Class="fs13"), valign="top", width=740)
- # ))
- else:
- pass
- #tbl.append(HT.TR(
- # HT.TD('Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.post_publication_description, Class="fs13"), valign="top", width=740)
- # ))
- #tbl.append(HT.TR(
- # HT.TD('Authors: ', Class="fs13 fwb",
- # valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.authors, Class="fs13"),
- # valign="top", width=740)
- # ))
- #tbl.append(HT.TR(
- # HT.TD('Title: ', Class="fs13 fwb",
- # valign="top", nowrap="on", width=90),
- # HT.TD(width=10, valign="top"),
- # HT.TD(HT.Span(this_trait.title, Class="fs13"),
- # valign="top", width=740)
- # ))
+ #if this_trait.confidential:
+ # pass
+ # #tbl.append(HT.TR(
+ # # HT.TD('Pre-publication Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.pre_publication_description, Class="fs13"), valign="top", width=740)
+ # # ))
+ # if webqtlUtil.hasAccessToConfidentialPhenotypeTrait(privilege=self.privilege, userName=self.userName, authorized_users=this_trait.authorized_users):
+ # #tbl.append(HT.TR(
+ # # HT.TD('Post-publication Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.post_publication_description, Class="fs13"), valign="top", width=740)
+ # # ))
+ # #tbl.append(HT.TR(
+ # # HT.TD('Pre-publication Abbreviation: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.pre_publication_abbreviation, Class="fs13"), valign="top", width=740)
+ # # ))
+ # #tbl.append(HT.TR(
+ # # HT.TD('Post-publication Abbreviation: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.post_publication_abbreviation, Class="fs13"), valign="top", width=740)
+ # # ))
+ # #tbl.append(HT.TR(
+ # # HT.TD('Lab code: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.lab_code, Class="fs13"), valign="top", width=740)
+ # # ))
+ # pass
+ # #tbl.append(HT.TR(
+ # # HT.TD('Owner: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.owner, Class="fs13"), valign="top", width=740)
+ # # ))
+ #else:
+ # pass
+ # #tbl.append(HT.TR(
+ # # HT.TD('Phenotype: ', Class="fs13 fwb", valign="top", nowrap="on", width=90),
+ # # HT.TD(width=10, valign="top"),
+ # # HT.TD(HT.Span(this_trait.post_publication_description, Class="fs13"), valign="top", width=740)
+ # # ))
+ ##tbl.append(HT.TR(
+ ## HT.TD('Authors: ', Class="fs13 fwb",
+ ## valign="top", nowrap="on", width=90),
+ ## HT.TD(width=10, valign="top"),
+ ## HT.TD(HT.Span(this_trait.authors, Class="fs13"),
+ ## valign="top", width=740)
+ ## ))
+ ##tbl.append(HT.TR(
+ ## HT.TD('Title: ', Class="fs13 fwb",
+ ## valign="top", nowrap="on", width=90),
+ ## HT.TD(width=10, valign="top"),
+ ## HT.TD(HT.Span(this_trait.title, Class="fs13"),
+ ## valign="top", width=740)
+ ## ))
if this_trait.journal:
journal = this_trait.journal
if this_trait.year:
@@ -754,12 +630,6 @@ class ShowTrait(object):
# ))
pass
- #menuTable = HT.TableLite(cellpadding=2, Class="collap", width="150", id="target1")
- #menuTable.append(HT.TR(HT.TD(addSelectionButton, align="center"),HT.TD(updateButton, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
- #menuTable.append(HT.TR(HT.TD(addSelectionText, align="center"),HT.TD(updateText, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
-
- #title1Body.append(tbl, HT.BR(), menuTable)
-
elif this_trait and this_trait.dataset and this_trait.dataset.type == 'Geno': #Check if trait is genotype
if this_trait.chr and this_trait.mb:
@@ -805,41 +675,10 @@ class ShowTrait(object):
# valign="top", width=740)
# ))
- #menuTable = HT.TableLite(cellpadding=2, Class="collap", width="275", id="target1")
- #menuTable.append(HT.TR(HT.TD(addSelectionButton, align="center"),HT.TD(verifyButton, align="center"),HT.TD(rnaseqButton, align="center"), HT.TD(updateButton, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
- #menuTable.append(HT.TR(HT.TD(addSelectionText, align="center"),HT.TD(verifyText, align="center"),HT.TD(rnaseqText, align="center"), HT.TD(updateText, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
-
- #title1Body.append(tbl, HT.BR(), menuTable)
-
- elif (this_trait == None or this_trait.dataset.type == 'Temp'): #if temporary trait (user-submitted trait or PCA trait)
-
- #TempInfo = HT.Paragraph()
- if this_trait != None:
- if this_trait.description:
- pass
- #tbl.append(HT.TR(HT.TD(HT.Strong('Description: '),' %s ' % this_trait.description,HT.BR()), colspan=3, height=15))
- else:
- tbl.append(HT.TR(HT.TD(HT.Strong('Description: '),'not available',HT.BR(),HT.BR()), colspan=3, height=15))
-
- if (updateText == "Edit"):
- menuTable = HT.TableLite(cellpadding=2, Class="collap", width="150", id="target1")
- else:
- menuTable = HT.TableLite(cellpadding=2, Class="collap", width="80", id="target1")
-
- #menuTable.append(HT.TR(HT.TD(addSelectionButton, align="right"),HT.TD(updateButton, align="right"), colspan=3, height=50, style="vertical-align:bottom;") )
- #menuTable.append(HT.TR(HT.TD(addSelectionText, align="center"),HT.TD(updateText, align="center"), colspan=3, height=50, style="vertical-align:bottom;"))
- #
- #title1Body.append(tbl, HT.BR(), menuTable)
-
- else:
- pass
-
def dispBasicStatistics(self, fd, this_trait):
#XZ, June 22, 2011: The definition and usage of primary_samples, other_samples, specialStrains, all_samples are not clear and hard to understand. But since they are only used in this function for draw graph purpose, they will not hurt the business logic outside. As of June 21, 2011, this function seems work fine, so no hurry to clean up. These parameters and code in this function should be cleaned along with fd.f1list, fd.parlist, fd.samplelist later.
- #stats_row = HT.TR()
- #stats_cell = HT.TD()
# This should still be riset here - Sam - Nov. 2012
if fd.genotype.type == "riset":
@@ -907,7 +746,6 @@ class ShowTrait(object):
for sampleNameOrig in all_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
- #try:
print("* type of this_trait:", type(this_trait))
print(" name:", this_trait.__class__.__name__)
print(" this_trait:", this_trait)
@@ -920,28 +758,16 @@ class ShowTrait(object):
print(" thisvar:", thisvar)
thisValFull = [sampleName, thisval, thisvar]
print(" thisValFull:", thisValFull)
- #except:
- # continue
vals1.append(thisValFull)
-
- #vals1 = [[sampleNameOrig.replace("_2nd_", ""),
- # this_trait.data[sampleName].val,
- # this_trait.data[sampleName].var]
- # for sampleNameOrig in all_samples]]
- #
-
#Using just the group sample
for sampleNameOrig in primary_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
- #try:
thisval = this_trait.data[sampleName].value
thisvar = this_trait.data[sampleName].variance
thisValFull = [sampleName,thisval,thisvar]
- #except:
- # continue
vals2.append(thisValFull)
@@ -949,12 +775,9 @@ class ShowTrait(object):
for sampleNameOrig in other_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
- #try:
thisval = this_trait.data[sampleName].value
thisvar = this_trait.data[sampleName].variance
thisValFull = [sampleName,thisval,thisvar]
- #except:
- # continue
vals3.append(thisValFull)
@@ -967,12 +790,9 @@ class ShowTrait(object):
for sampleNameOrig in all_samples:
sampleName = sampleNameOrig.replace("_2nd_", "")
- #try:
thisval = this_trait.data[sampleName].value
thisvar = this_trait.data[sampleName].variance
thisValFull = [sampleName,thisval,thisvar]
- #except:
- # continue
vals.append(thisValFull)
@@ -983,8 +803,6 @@ class ShowTrait(object):
if i == 0 and len(vals) < 4:
stats_container = HT.Div(id="stats_tabs", style="padding:10px;", Class="ui-tabs") #Needed for tabs; notice the "stats_script_text" below referring to this element
stats_container.append(HT.Div(HT.Italic("Fewer than 4 case data were entered. No statistical analysis has been attempted.")))
- #stats_script_text = """$(function() { $("#stats_tabs").tabs();});"""
- #stats_cell.append(stats_container)
break
elif (i == 1 and len(primary_samples) < 4):
stats_container = HT.Div(id="stats_tabs%s" % i, Class="ui-tabs")
@@ -992,20 +810,12 @@ class ShowTrait(object):
elif (i == 2 and len(other_samples) < 4):
stats_container = HT.Div(id="stats_tabs%s" % i, Class="ui-tabs")
stats_container.append(HT.Div(HT.Italic("Fewer than 4 non-" + fd.group + " case data were entered. No statistical analysis has been attempted.")))
- #stats_script_text = """$(function() { $("#stats_tabs0").tabs(); $("#stats_tabs1").tabs(); $("#stats_tabs2").tabs();});"""
else:
continue
if len(vals) > 4:
stats_tab_list = [HT.Href(text="Basic Table", url="#statstabs-1", Class="stats_tab"),HT.Href(text="Probability Plot", url="#statstabs-5", Class="stats_tab"),
HT.Href(text="Bar Graph (by name)", url="#statstabs-3", Class="stats_tab"), HT.Href(text="Bar Graph (by rank)", url="#statstabs-4", Class="stats_tab"),
HT.Href(text="Box Plot", url="#statstabs-2", Class="stats_tab")]
- #stats_tabs = HT.List(stats_tab_list)
- #stats_container.append(stats_tabs)
- #
- #table_div = HT.Div(id="statstabs-1")
- #table_container = HT.Paragraph()
- #
- #statsTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
if this_trait.dataset:
if this_trait.cellid:
@@ -1015,12 +825,6 @@ class ShowTrait(object):
else:
self.stats_data.append(BasicStatisticsFunctions.basicStatsTable(vals=vals))
- #statsTable.append(HT.TR(HT.TD(statsTableCell)))
-
- #table_container.append(statsTable)
- #table_div.append(table_container)
- #stats_container.append(table_div)
- #
#normalplot_div = HT.Div(id="statstabs-5")
#normalplot_container = HT.Paragraph()
#normalplot = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
@@ -1038,49 +842,22 @@ class ShowTrait(object):
#normally distributed. Different symbols represent different groups.",HT.BR(),HT.BR(),
#"More about ", HT.Href(url="http://en.wikipedia.org/wiki/Normal_probability_plot",
# target="_blank", text="Normal Probability Plots"), " and more about interpreting these plots from the ", HT.Href(url="/glossary.html#normal_probability", target="_blank", text="glossary"))))
- #normalplot_container.append(normalplot)
- #normalplot_div.append(normalplot_container)
- #stats_container.append(normalplot_div)
#boxplot_div = HT.Div(id="statstabs-2")
#boxplot_container = HT.Paragraph()
#boxplot = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
#boxplot_img, boxplot_link = BasicStatisticsFunctions.plotBoxPlot(vals)
#boxplot.append(HT.TR(HT.TD(boxplot_img, HT.P(), boxplot_link, align="left")))
- #boxplot_container.append(boxplot)
- #boxplot_div.append(boxplot_container)
- #stats_container.append(boxplot_div)
-
#barName_div = HT.Div(id="statstabs-3")
#barName_container = HT.Paragraph()
#barName = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
#barName_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, group=fd.group, vals=vals, type="name")
- #barName.append(HT.TR(HT.TD(barName_img)))
- #barName_container.append(barName)
- #barName_div.append(barName_container)
- #stats_container.append(barName_div)
- #
+
#barRank_div = HT.Div(id="statstabs-4")
#barRank_container = HT.Paragraph()
#barRank = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
#barRank_img = BasicStatisticsFunctions.plotBarGraph(identification=fd.identification, group=fd.group, vals=vals, type="rank")
- #barRank.append(HT.TR(HT.TD(barRank_img)))
- #barRank_container.append(barRank)
- #barRank_div.append(barRank_container)
- #stats_container.append(barRank_div)
-
- # stats_cell.append(stats_container)
- #
- #stats_script.append(stats_script_text)
- #
- #submitTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%", Class="target2")
- #stats_row.append(stats_cell)
-
- #submitTable.append(stats_row)
- #submitTable.append(stats_script)
-
- #title2Body.append(submitTable)
def build_correlation_tools(self, this_trait):
@@ -1095,15 +872,6 @@ class ShowTrait(object):
this_group = 'BXD'
if this_group:
- #sample_correlation = HT.Input(type='button',name='sample_corr', value=' Compute ', Class="button sample_corr")
- #lit_correlation = HT.Input(type='button',name='lit_corr', value=' Compute ', Class="button lit_corr")
- #tissue_correlation = HT.Input(type='button',name='tiss_corr', value=' Compute ', Class="button tiss_corr")
- #methodText = HT.Span("Calculate:", Class="ffl fwb fs12")
- #
- #databaseText = HT.Span("Database:", Class="ffl fwb fs12")
- #databaseMenu1 = HT.Select(name='database1')
- #databaseMenu2 = HT.Select(name='database2')
- #databaseMenu3 = HT.Select(name='database3')
dataset_menu = []
print("[tape4] webqtlConfig.PUBLICTHRESH:", webqtlConfig.PUBLICTHRESH)
@@ -1128,8 +896,6 @@ class ShowTrait(object):
tissues = g.db.execute("SELECT Id, Name FROM Tissue order by Name")
for item in tissues.fetchall():
tissue_id, tissue_name = item
- #databaseMenuSub = HT.Optgroup(label = '%s ------' % tissue_name)
- #dataset_sub_menu = []
data_sets = g.db.execute('''SELECT ProbeSetFreeze.FullName,ProbeSetFreeze.Name FROM ProbeSetFreeze, ProbeFreeze,
InbredSet WHERE ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and ProbeFreeze.TissueId = %s and
ProbeSetFreeze.public > %s and ProbeFreeze.InbredSetId = InbredSet.Id and InbredSet.Name like %s
@@ -1139,149 +905,15 @@ class ShowTrait(object):
if dataset_sub_menu:
dataset_menu.append(dict(tissue=tissue_name,
datasets=dataset_sub_menu))
- # ("**heading**", tissue_name))
- #dataset_menu.append(dataset_sub_menu)
dataset_menu_selected = None
if len(dataset_menu):
if this_trait and this_trait.dataset:
dataset_menu_selected = this_trait.dataset.name
- #criteriaText = HT.Span("Return:", Class="ffl fwb fs12")
-
- #criteriaMenu1 = HT.Select(name='criteria1', selected='500', onMouseOver="if (NS4 || IE4) activateEl('criterias', event);")
-
return_results_menu = (100, 200, 500, 1000, 2000, 5000, 10000, 15000, 20000)
return_results_menu_selected = 500
- #criteriaMenu1.append(('top 100','100'))
- #criteriaMenu1.append(('top 200','200'))
- #criteriaMenu1.append(('top 500','500'))
- #criteriaMenu1.append(('top 1000','1000'))
- #criteriaMenu1.append(('top 2000','2000'))
- #criteriaMenu1.append(('top 5000','5000'))
- #criteriaMenu1.append(('top 10000','10000'))
- #criteriaMenu1.append(('top 15000','15000'))
- #criteriaMenu1.append(('top 20000','20000'))
-
- #self.MDPRow1 = HT.TR(Class='mdp1')
- #self.MDPRow2 = HT.TR(Class='mdp2')
- #self.MDPRow3 = HT.TR(Class='mdp3')
-
- # correlationMenus1 = HT.TableLite(
- # HT.TR(HT.TD(databaseText), HT.TD(databaseMenu1, colspan="3")),
- # HT.TR(HT.TD(criteriaText), HT.TD(criteriaMenu1)),
- # self.MDPRow1, cellspacing=0, width="619px", cellpadding=2)
- # correlationMenus1.append(HT.Input(name='orderBy', value='2', type='hidden')) # to replace the orderBy menu
- # correlationMenus2 = HT.TableLite(
- # HT.TR(HT.TD(databaseText), HT.TD(databaseMenu2, colspan="3")),
- # HT.TR(HT.TD(criteriaText), HT.TD(criteriaMenu2)),
- # self.MDPRow2, cellspacing=0, width="619px", cellpadding=2)
- # correlationMenus2.append(HT.Input(name='orderBy', value='2', type='hidden'))
- # correlationMenus3 = HT.TableLite(
- # HT.TR(HT.TD(databaseText), HT.TD(databaseMenu3, colspan="3")),
- # HT.TR(HT.TD(criteriaText), HT.TD(criteriaMenu3)),
- # self.MDPRow3, cellspacing=0, width="619px", cellpadding=2)
- # correlationMenus3.append(HT.Input(name='orderBy', value='2', type='hidden'))
- #
- #else:
- # correlationMenus = ""
-
-
- #corr_row = HT.TR()
- #corr_container = HT.Div(id="corr_tabs", Class="ui-tabs")
- #
- #if (this_trait.dataset != None and this_trait.dataset.type =='ProbeSet'):
- # corr_tab_list = [HT.Href(text='Sample r', url="#corrtabs-1"),
- # HT.Href(text='Literature r', url="#corrtabs-2"),
- # HT.Href(text='Tissue r', url="#corrtabs-3")]
- #else:
- # corr_tab_list = [HT.Href(text='Sample r', url="#corrtabs-1")]
- #
- #corr_tabs = HT.List(corr_tab_list)
- #corr_container.append(corr_tabs)
-
- #if correlationMenus1 or correlationMenus2 or correlationMenus3:
- #sample_div = HT.Div(id="corrtabs-1")
- #sample_container = HT.Span()
- #
- #sample_type = HT.Input(type="radio", name="sample_method", value="1", checked="checked")
- #sample_type2 = HT.Input(type="radio", name="sample_method", value="2")
- #
- #sampleTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
- #sampleTD = HT.TD(correlationMenus1, HT.BR(),
- # "Pearson", sample_type, "&nbsp;"*3, "Spearman Rank", sample_type2, HT.BR(), HT.BR(),
- # sample_correlation, HT.BR(), HT.BR())
- #
- #sampleTD.append(HT.Span("The ",
- # HT.Href(url="/correlationAnnotation.html#sample_r", target="_blank",
- # text="Sample Correlation")," is computed between trait data and",
- # " any ",HT.BR()," other traits in the sample database selected above. Use ",
- # HT.Href(url="/glossary.html#Correlations", target="_blank", text="Spearman Rank"),
- # HT.BR(),"when the sample size is small (<20) or when there are influential \
- # outliers.", HT.BR(),Class="fs12"))
-
- #sampleTable.append(sampleTD)
-
- #sample_container.append(sampleTable)
- #sample_div.append(sample_container)
- #corr_container.append(sample_div)
- #
- #literature_div = HT.Div(id="corrtabs-2")
- #literature_container = HT.Span()
-
- #literatureTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
- #literatureTD = HT.TD(correlationMenus2,HT.BR(),lit_correlation, HT.BR(), HT.BR())
- #literatureTD.append(HT.Span("The ", HT.Href(url="/correlationAnnotation.html", target="_blank",text="Literature Correlation"), " (Lit r) between this gene and all other genes is computed",HT.BR(),
- # "using the ", HT.Href(url="https://grits.eecs.utk.edu/sgo/sgo.html", target="_blank", text="Semantic Gene Organizer"),
- # " and human, rat, and mouse data from PubMed. ", HT.BR(),"Values are ranked by Lit r, \
- # but Sample r and Tissue r are also displayed.", HT.BR(), HT.BR(),
- # HT.Href(url="/glossary.html#Literature", target="_blank", text="More on using Lit r"), Class="fs12"))
- #literatureTable.append(literatureTD)
- #
- #literature_container.append(literatureTable)
- #literature_div.append(literature_container)
- #
- #if this_trait.dataset != None:
- # if (this_trait.dataset.type =='ProbeSet'):
- # corr_container.append(literature_div)
- #
- #tissue_div = HT.Div(id="corrtabs-3")
- #tissue_container = HT.Span()
- #
- #tissue_type = HT.Input(type="radio", name="tissue_method", value="4", checked="checked")
- #tissue_type2 = HT.Input(type="radio", name="tissue_method", value="5")
- #
- #tissueTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%")
- #tissueTD = HT.TD(correlationMenus3,HT.BR(),
- # "Pearson", tissue_type, "&nbsp;"*3, "Spearman Rank", tissue_type2, HT.BR(), HT.BR(),
- # tissue_correlation, HT.BR(), HT.BR())
- #tissueTD.append(HT.Span("The ", HT.Href(url="/webqtl/main.py?FormID=tissueCorrelation", target="_blank", text="Tissue Correlation"),
- #" (Tissue r) estimates the similarity of expression of two genes",HT.BR()," or \
- #transcripts across different cells, tissues, or organs (",HT.Href(url="/correlationAnnotation.html#tissue_r", target="_blank", text="glossary"),"). \
- #Tissue correlations",HT.BR()," are generated by analyzing expression in multiple samples usually taken from \
- #single cases.",HT.BR(),HT.Bold("Pearson")," and ",HT.Bold("Spearman Rank")," correlations have been computed for all pairs \
- #of genes",HT.BR()," using data from mouse samples.",
- #HT.BR(), Class="fs12"))
- #tissueTable.append(tissueTD)
- #
- #tissue_container.append(tissueTable)
- #tissue_div.append(tissue_container)
- #if this_trait.dataset != None:
- # if (this_trait.dataset.type =='ProbeSet'):
- # corr_container.append(tissue_div)
- #
- #corr_row.append(HT.TD(corr_container))
- #
- #corr_script = HT.Script(language="Javascript")
- #corr_script_text = """$(function() { $("#corr_tabs").tabs(); });"""
- #corr_script.append(corr_script_text)
- #
- #submitTable = HT.TableLite(cellspacing=0, cellpadding=0, width="100%", Class="target4")
- #submitTable.append(corr_row)
- #submitTable.append(corr_script)
- #
- #title3Body.append(submitTable)
self.corr_tools = dict(dataset_menu = dataset_menu,
dataset_menu_selected = dataset_menu_selected,
return_results_menu = return_results_menu,
@@ -1547,8 +1179,10 @@ class ShowTrait(object):
all_samples_ordered = (self.dataset.group.parlist +
self.dataset.group.f1list +
self.dataset.group.samplelist)
- else:
+ elif self.dataset.group.f1list:
all_samples_ordered = self.dataset.group.f1list + self.dataset.group.samplelist
+ else:
+ all_samples_ordered = self.dataset.group.samplelist
this_trait_samples = set(this_trait.data.keys())
diff --git a/wqflask/wqflask/static/new/css/marker_regression.css b/wqflask/wqflask/static/new/css/marker_regression.css
index 58da563c..054ef93e 100644
--- a/wqflask/wqflask/static/new/css/marker_regression.css
+++ b/wqflask/wqflask/static/new/css/marker_regression.css
@@ -1,19 +1,31 @@
-.manhattan_plot_segment {
- position:relative;
- display:inline;
- height: 400px;
- width: 150px;
- float: left;
- clear: none;
+.manhattan_plot .y_axis path,
+.manhattan_plot .y_axis line {
+ fill: none;
+ stroke: black;
+ shape-rendering: crispEdges;
+}
+.manhattan_plot .y_axis text {
+ font-family: sans-serif;
+ font-size: 14px;
}
-.manhattan_plots {
- clear: both;
+.manhattan_plot .x_axis path,
+.manhattan_plot .x_axis line {
+ fill: none;
+ stroke: black;
+ shape-rendering: crispEdges;
+}
+.manhattan_plot .x_axis text {
+ text-anchor: end;
+ font-family: sans-serif;
+ font-size: 8px;
}
-.permutation_histogram {
- display: block;
- height: 400px;
- width: 900px;
- clear: both;
-} \ No newline at end of file
+rect {
+ stroke: WhiteSmoke;
+ fill: lightgrey;
+}
+/*rect {
+ stroke: WhiteSmoke;
+ fill: Azure;
+}*/ \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
index 898ffa02..88bdcb11 100644
--- a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
+++ b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
@@ -64,14 +64,14 @@
],
"Leaf": [
[
- "B1LI0809R",
- "Barley1 Leaf INOC TTKS (Aug09) RMA"
- ],
- [
"B1LI0809M5",
"Barley1 Leaf INOC TTKS (Aug09) MAS5"
],
[
+ "B1LI0809R",
+ "Barley1 Leaf INOC TTKS (Aug09) RMA"
+ ],
+ [
"B1MI0809M5",
"Barley1 Leaf MOCK TTKS (Aug09) MAS5"
],
@@ -114,12 +114,12 @@
"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)"
+ ],
+ [
+ "B30_K_1206_Rn",
+ "Barley1 Leaf gcRMAn SCRI (Dec06)"
]
],
"Phenotypes": [
@@ -212,14 +212,14 @@
"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_A_RI_0409",
+ "GSE15222 Human Brain Alzheimer Myers (Apr09) RankInv"
+ ],
+ [
"GSE15222_F_RI_0409",
"GSE15222 Human Brain Myers (Apr09) RankInv"
]
@@ -381,43 +381,19 @@
"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 **"
+ "GN330 Human Amygdala 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 **"
+ "Human Cerebellar Cortex 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 **"
+ "Human Dorsolateral Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
]
],
"Genotypes": [
@@ -429,55 +405,31 @@
"Hippocampus": [
[
"KIN_YSM_HIP_0711",
- "KIN/YSM Human HIP Affy Hu-Exon 1.0 ST (Jul11) Quantile **"
+ "Human Hippocampus 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 **"
+ "Human Inferior Temporal Cortex 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 **"
+ "Human Medial Prefrontal Cortex 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 **"
+ "Human Mediodorsal Nucleus of Thalamus 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 **"
+ "Human Orbital Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
]
],
"Phenotypes": [
@@ -489,67 +441,49 @@
"Posterior Inferior Parietal Cortex": [
[
"KIN_YSM_IPC_0711",
- "KIN/YSM Human IPC Affy Hu-Exon 1.0 ST (Jul11) Quantile **"
+ "Human Posterior Inferior Parietal Cortex 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 **"
+ "Human Posterior Superior Temporal Cortex 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 **"
+ "Human Primary Auditory (A1) Cortex 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 **"
+ "Human Primary Motor (M1) Cortex 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 **"
+ "Human Primary Somatosensory (S1) Cortex 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 **"
+ "Human Primary Visual Cortex 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 **"
+ "Human Striatum 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 **"
+ "Human Ventrolateral Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
]
]
}
@@ -558,12 +492,8 @@
"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 **"
+ "INIA_MacFas_AMG_RMA_0110",
+ "INIA Macaca fasicularis Amygdala (Jan10) RMA **"
]
],
"Brain": [
@@ -581,21 +511,13 @@
"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 **"
+ "INIA Macaca fasicularis Hippocampus (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 **"
+ "INIA Macaca fasicularis Nucleus Accumbens (Jan10) RMA **"
]
],
"Phenotypes": [
@@ -607,11 +529,7 @@
"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 **"
+ "INIA Macaca fasicularis Prefrontal Cortex (Jan10) RMA **"
]
]
}
@@ -630,12 +548,12 @@
"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"
+ ],
+ [
+ "MA_M_0704_R",
+ "NCI Mammary mRNA M430 (July04) RMA"
]
],
"Phenotypes": [
@@ -658,6 +576,12 @@
"AXBXA Genotypes"
]
],
+ "Liver": [
+ [
+ "GSE16780AB_UCLA_ML0911",
+ "GSE16780 UCLA Mouse AXB/BXA Liver Affy HT M430A (Sep11) RMA"
+ ]
+ ],
"Phenotypes": [
[
"AXBXAPublish",
@@ -674,12 +598,12 @@
],
"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"
+ ],
+ [
+ "LVF2_M_0704_R",
+ "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA"
]
],
"Phenotypes": [
@@ -708,12 +632,12 @@
"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"
+ ],
+ [
+ "BRF2_M_0304_R",
+ "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA"
]
],
"Genotypes": [
@@ -729,6 +653,46 @@
]
]
},
+ "B6D2F2-PSU": {
+ "Genotypes": [
+ [
+ "B6D2F2-PSUGeno",
+ "B6D2F2-PSU Genotypes"
+ ]
+ ],
+ "Muscle": [
+ [
+ "PSU-B6D2F2_0812",
+ "PSU B6D2F2 Muscle Affy Mouse Genome 430 2.0 (Aug12) RMA **"
+ ]
+ ],
+ "Phenotypes": [
+ [
+ "B6D2F2-PSUPublish",
+ "B6D2F2-PSU Published Phenotypes"
+ ]
+ ]
+ },
+ "B6D2RI": {
+ "Genotypes": [
+ [
+ "B6D2RIGeno",
+ "B6D2RI Genotypes"
+ ]
+ ],
+ "Hippocampus": [
+ [
+ "UTHSC_B6D2RI_H_0912",
+ "UTHSC B6D2RI Aged Hippocampus Affy Mouse Gene 1.0 ST (Sep12) RMA **"
+ ]
+ ],
+ "Phenotypes": [
+ [
+ "B6D2RIPublish",
+ "B6D2RI Published Phenotypes"
+ ]
+ ]
+ },
"BDF2-1999": {
"Genotypes": [
[
@@ -764,44 +728,44 @@
],
"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"
+ ],
+ [
+ "SA_M2_0905_R",
+ "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA"
]
]
},
"BHF2": {
"Adipose": [
[
- "UCLA_BHF2_ADIPOSE_MALE",
- "UCLA BHF2 Adipose Male mlratio"
- ],
- [
"UCLA_BHF2_ADIPOSE_FEMALE",
"UCLA BHF2 Adipose Female mlratio"
],
[
+ "UCLA_BHF2_ADIPOSE_MALE",
+ "UCLA BHF2 Adipose Male 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_MALE",
+ "UCLA BHF2 Brain Male mlratio"
+ ],
+ [
"UCLA_BHF2_BRAIN_0605",
"UCLA BHF2 Brain (June05) mlratio"
]
@@ -814,28 +778,28 @@
],
"Liver": [
[
- "UCLA_BHF2_LIVER_MALE",
- "UCLA BHF2 Liver Male mlratio"
- ],
- [
"UCLA_BHF2_LIVER_FEMALE",
"UCLA BHF2 Liver Female mlratio"
],
[
+ "UCLA_BHF2_LIVER_MALE",
+ "UCLA BHF2 Liver Male 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_MALE",
+ "UCLA BHF2 Muscle Male mlratio **"
+ ],
+ [
"UCLA_BHF2_MUSCLE_0605",
"UCLA BHF2 Muscle (June05) mlratio **"
]
@@ -850,30 +814,30 @@
"BHHBF2": {
"Adipose": [
[
+ "UCLA_BHHBF2_ADIPOSE_2005",
+ "UCLA BHHBF2 Adipose (2005) mlratio"
+ ],
+ [
"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_2005",
+ "UCLA BHHBF2 Brain (2005) mlratio"
+ ],
+ [
"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": [
@@ -884,30 +848,30 @@
],
"Liver": [
[
+ "UCLA_BHHBF2_LIVER_2005",
+ "UCLA BHHBF2 Liver (2005) mlratio"
+ ],
+ [
"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_2005",
+ "UCLA BHHBF2 Muscle (2005) mlratio"
+ ],
+ [
"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": [
@@ -918,6 +882,16 @@
]
},
"BXD": {
+ "Adrenal Gland": [
+ [
+ "INIA_Adrenal_RMA_0612",
+ "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA"
+ ],
+ [
+ "INIA_Adrenal_RMA_Ex_0612",
+ "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA Exon Level"
+ ]
+ ],
"Amygdala": [
[
"INIA_AmgCoh_0311",
@@ -934,6 +908,10 @@
[
"INIA_Amg_BLA_RMA_F_1110",
"INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA Female"
+ ],
+ [
+ "INIA_Amg_BLA_Ex-RMA_1110",
+ "INIA Amygdala Exon Affy MoGene 1.0 ST (Nov10) RMA"
]
],
"Brain": [
@@ -946,10 +924,6 @@
"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"
],
@@ -958,6 +932,10 @@
"UTHSC Brain mRNA U74Av2 (Aug05) PDNN"
],
[
+ "BR_U_0805_M",
+ "UTHSC Brain mRNA U74Av2 (Aug05) MAS5"
+ ],
+ [
"CB_M_0204_P",
"INIA Brain mRNA M430 (Feb04) PDNN"
]
@@ -978,10 +956,6 @@
],
"Cerebellum": [
[
- "CB_M_1004_M",
- "SJUT Cerebellum mRNA M430 (Oct04) MAS5"
- ],
- [
"CB_M_1004_R",
"SJUT Cerebellum mRNA M430 (Oct04) RMA"
],
@@ -990,6 +964,10 @@
"SJUT Cerebellum mRNA M430 (Oct04) PDNN"
],
[
+ "CB_M_1004_M",
+ "SJUT Cerebellum mRNA M430 (Oct04) MAS5"
+ ],
+ [
"CB_M_1003_M",
"SJUT Cerebellum mRNA M430 (Oct03) MAS5"
]
@@ -1000,6 +978,10 @@
"Eye M430v2 (Sep08) RMA"
],
[
+ "gn10",
+ "Eye M430v2 No Mutant/Mutant (Aug12) RMA **"
+ ],
+ [
"Eye_M2_0908_R_NB",
"Eye M430v2 Mutant Gpnmb (Sep08) RMA **"
],
@@ -1008,14 +990,14 @@
"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_WTWT",
+ "Eye M430v2 WT WT (Sep08) RMA **"
+ ],
+ [
"Eye_M2_0908_R_WT",
"Eye M430v2 WT Tyrp1 (Sep08) RMA **"
],
@@ -1104,6 +1086,14 @@
[
"UT_ILM_BXD_hipp_RSE_0909",
"UTHSC Hippocampus Illumina v6.1 RSE (Sep09) RankInv"
+ ],
+ [
+ "UTHSC_BXD_HArev3_0912",
+ "UTHSC BXD Aged Hippocampus rev3 Affy Mouse Gene 1.0 ST (Sep12) RMA **"
+ ],
+ [
+ "UTHSC_BXD_H_0912",
+ "UTHSC BXD Aged Hippocampus Affy Mouse Gene 1.0 ST (Sep12) RMA Exon Level **"
]
],
"Hypothalamus": [
@@ -1118,6 +1108,10 @@
[
"INIA_Hyp_F_RMA_1110",
"INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) Female"
+ ],
+ [
+ "INIA_Hyp_RMA_Ex-1110",
+ "INIA Hypothalamus Exon Affy MoGene 1.0 ST (Nov10)"
]
],
"Kidney": [
@@ -1138,12 +1132,12 @@
"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"
+ ],
+ [
+ "MA_M2_0706_P",
+ "Mouse Kidney M430v2 (Jul06) PDNN"
]
],
"Leucocytes": [
@@ -1158,6 +1152,18 @@
"GSE16780 UCLA Hybrid MDP Liver Affy HT M430A (Sep11) RMA"
],
[
+ "GenEx_BXD_liverEt_M5_0912",
+ "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Both Sexes **"
+ ],
+ [
+ "GenEx_BXD_liverEt_M5F_0912",
+ "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Females **"
+ ],
+ [
+ "GenEx_BXD_liverEt_M5M_0912",
+ "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Males **"
+ ],
+ [
"GenEx_BXD_liverSal_RMA_F_0211",
"GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Females **"
],
@@ -1194,18 +1200,22 @@
[
"HZI_0408_M",
"HZI Lung M430v2 (Apr08) MAS5"
+ ],
+ [
+ "HZI_PR8M_Q_0612",
+ "HZI PR8M-Infected Lungs Agilent4x44 (Apr12) Quantile Females **"
]
],
"Midbrain": [
[
- "VUBXDMouseMidBrainQ0212",
- "VU BXD Midbrain Agilent SurePrint G3 Mouse GE (Feb12) Quantile"
+ "VUBXDMouseMidBrainQ0512",
+ "VU BXD Midbrain Agilent SurePrint G3 Mouse GE (May12) Quantile **"
]
],
"Muscle": [
[
"EPFLMouseMuscleRMA1211",
- "EPFL/LISP BXD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA **"
+ "EPFL/LISP BXD CD+HFD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA **"
],
[
"EPFLMouseMuscleHFDRMA1211",
@@ -1218,12 +1228,12 @@
],
"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"
],
[
- "DevNeocortex_ILM6.2P3RInv_1111",
- "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv **"
+ "DevNeocortex_ILM6.2P14RInv_1111",
+ "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv"
],
[
"HQFNeoc_1210v2_RankInv",
@@ -1238,12 +1248,12 @@
"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"
],
[
- "DevNeocortex_ILM6.2P14RInv_1110",
- "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv **"
+ "DevNeocortex_ILM6.2P3RInv_1110",
+ "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv"
]
],
"Nucleus Accumbens": [
@@ -1266,12 +1276,24 @@
"BXD Published Phenotypes"
]
],
- "Prefrontal Cortex": [
+ "Pituitary Gland": [
[
- "VCUEtOH_1206_R",
- "VCU BXD PFC EtOH M430 2.0 (Dec06) RMA"
+ "INIA_PG_RMA_0612",
+ "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA"
],
[
+ "INIA_PG_RMA_Ex_0612",
+ "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA Exon Level"
+ ]
+ ],
+ "Popliteal Lymph Node": [
+ [
+ "STJ_PLN_0912",
+ "St Jude BXD Popliteal Lymph Node Affy HT MG-430 PM (Sep12) RMA **"
+ ]
+ ],
+ "Prefrontal Cortex": [
+ [
"VCUSal_1206_R",
"VCU BXD PFC Sal M430 2.0 (Dec06) RMA"
],
@@ -1280,6 +1302,10 @@
"VCU BXD PFC Et vs Sal M430 2.0 (Dec06) Sscore"
],
[
+ "VCUEtOH_1206_R",
+ "VCU BXD PFC EtOH M430 2.0 (Dec06) RMA"
+ ],
+ [
"VCU_PF_Air_0111_R",
"VCU BXD PFC CIE Air M430 2.0 (Jan11) RMA **"
],
@@ -1294,16 +1320,20 @@
],
"Retina": [
[
- "Illum_Retina_BXD_RankInv0410",
- "HEI Retina Illumina V6.2 (April 2010) RankInv"
+ "G2NEI_ILM_Retina_BXD_RI0410",
+ "Normal HEI Retina (April 2010) RankInv"
],
[
- "B6D2ONCILM_0412",
- "B6D2 ONC Illumina v6.1 (Apr12) RankInv **"
+ "Illum_Retina_BXD_RankInv0410",
+ "Full HEI Retina (April 2010) RankInv"
],
[
"ONCRetILM6_0412",
- "ONC Retina Illumina V6.2 (Apr12) RankInv **"
+ "ONC HEI Retina (April 2012) RankInv"
+ ],
+ [
+ "B6D2ONCILM_0412",
+ "B6D2 ONC Retina (April 2012) RankInv **"
],
[
"HEIONCvsCRetILM6_0911",
@@ -1312,26 +1342,6 @@
[
"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": [
@@ -1340,32 +1350,40 @@
"UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA"
],
[
+ "UTHSC_SPL_RMA_1210M",
+ "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Males"
+ ],
+ [
+ "UTHSC_SPL_RMA_1210F",
+ "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Females"
+ ],
+ [
"UTHSC_SPL_RMA_1010",
"UTHSC Affy MoGene 1.0 ST Spleen (Oct10) RMA"
],
[
+ "UTK_BXDSpl_VST_0110",
+ "UTK Spleen ILM6.1 (Jan10) VST"
+ ],
+ [
"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 **"
],
[
+ "DevStriatum_ILM6.2P3RInv_1111",
+ "BIDMC/UTHSC Dev Striatum P3 ILMv6.2 (Nov11) RankInv **"
+ ],
+ [
"UTHSC_Striatum_RankInv_1210",
"HQF BXD Striatum ILM6.1 (Dec10v2) RankInv"
],
@@ -1430,16 +1448,16 @@
],
"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 **"
+ ],
+ [
+ "VCUEtOH_0609_R",
+ "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA **"
]
]
},
@@ -1464,6 +1482,12 @@
"BXH Genotypes"
]
],
+ "Liver": [
+ [
+ "GSE16780BXH_UCLA_ML0911",
+ "GSE16780 UCLA Mouse BXH Liver Affy HT M430A (Sep11) RMA"
+ ]
+ ],
"Phenotypes": [
[
"BXHPublish",
@@ -1474,30 +1498,30 @@
"CTB6F2": {
"Adipose": [
[
- "UCLA_CTB6B6CTF2_ADIPOSE_MALE",
- "UCLA CTB6B6CTF2 Adipose Male mlratio **"
+ "UCLA_CTB6B6CTF2_ADIPOSE_2005",
+ "UCLA CTB6/B6CTF2 Adipose (2005) mlratio"
],
[
"UCLA_CTB6B6CTF2_ADIPOSE_FEMALE",
"UCLA CTB6B6CTF2 Adipose Female mlratio **"
],
[
- "UCLA_CTB6B6CTF2_ADIPOSE_2005",
- "UCLA CTB6/B6CTF2 Adipose (2005) mlratio **"
+ "UCLA_CTB6B6CTF2_ADIPOSE_MALE",
+ "UCLA CTB6B6CTF2 Adipose Male mlratio **"
]
],
"Brain": [
[
- "UCLA_CTB6B6CTF2_BRAIN_MALE",
- "UCLA CTB6B6CTF2 Brain Male mlratio **"
+ "UCLA_CTB6B6CTF2_BRAIN_2005",
+ "UCLA CTB6/B6CTF2 Brain (2005) mlratio"
],
[
"UCLA_CTB6B6CTF2_BRAIN_FEMALE",
"UCLA CTB6B6CTF2 Brain Female mlratio **"
],
[
- "UCLA_CTB6B6CTF2_BRAIN_2005",
- "UCLA CTB6/B6CTF2 Brain (2005) mlratio **"
+ "UCLA_CTB6B6CTF2_BRAIN_MALE",
+ "UCLA CTB6B6CTF2 Brain Male mlratio **"
]
],
"Genotypes": [
@@ -1508,30 +1532,30 @@
],
"Liver": [
[
- "UCLA_CTB6B6CTF2_LIVER_MALE",
- "UCLA CTB6B6CTF2 Liver Male mlratio **"
+ "UCLA_CTB6B6CTF2_LIVER_2005",
+ "UCLA CTB6/B6CTF2 Liver (2005) mlratio"
],
[
"UCLA_CTB6B6CTF2_LIVER_FEMALE",
"UCLA CTB6B6CTF2 Liver Female mlratio **"
],
[
- "UCLA_CTB6B6CTF2_LIVER_2005",
- "UCLA CTB6/B6CTF2 Liver (2005) mlratio **"
+ "UCLA_CTB6B6CTF2_LIVER_MALE",
+ "UCLA CTB6B6CTF2 Liver Male mlratio **"
]
],
"Muscle": [
[
- "UCLA_CTB6B6CTF2_MUSCLE_MALE",
- "UCLA CTB6B6CTF2 Muscle Male mlratio **"
+ "UCLA_CTB6B6CTF2_MUSCLE_2005",
+ "UCLA CTB6/B6CTF2 Muscle (2005) mlratio"
],
[
"UCLA_CTB6B6CTF2_MUSCLE_FEMALE",
"UCLA CTB6B6CTF2 Muscle Female mlratio **"
],
[
- "UCLA_CTB6B6CTF2_MUSCLE_2005",
- "UCLA CTB6/B6CTF2 Muscle (2005) mlratio **"
+ "UCLA_CTB6B6CTF2_MUSCLE_MALE",
+ "UCLA CTB6B6CTF2 Muscle Male mlratio **"
]
],
"Phenotypes": [
@@ -1550,12 +1574,12 @@
],
"Hippocampus": [
[
- "HC_M2CB_1205_R",
- "Hippocampus Consortium M430v2 CXB (Dec05) RMA"
- ],
- [
"HC_M2CB_1205_P",
"Hippocampus Consortium M430v2 CXB (Dec05) PDNN"
+ ],
+ [
+ "HC_M2CB_1205_R",
+ "Hippocampus Consortium M430v2 CXB (Dec05) RMA"
]
],
"Phenotypes": [
@@ -1660,10 +1684,6 @@
"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"
],
@@ -1678,6 +1698,10 @@
[
"Illum_LXS_Hipp_NOS_1008",
"Hippocampus Illumina NOS (Oct08) RankInv beta"
+ ],
+ [
+ "Illum_LXS_Hipp_NON_1008",
+ "Hippocampus Illumina NON (Oct08) RankInv beta"
]
],
"Phenotypes": [
@@ -1688,16 +1712,16 @@
],
"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 **"
+ ],
+ [
+ "VCUEtOH_0806_R",
+ "VCU LXS PFC EtOH M430A 2.0 (Aug06) RMA **"
]
]
},
@@ -1710,16 +1734,20 @@
],
"Hippocampus": [
[
- "UMUTAffyExon_0209_RMA_MDP",
- "UMUTAffy Hippocampus Exon (Feb09) RMA MDP"
- ],
- [
"HC_M2_0606_MDP",
"Hippocampus Consortium M430v2 (Jun06) RMA MDP"
+ ],
+ [
+ "UMUTAffyExon_0209_RMA_MDP",
+ "UMUTAffy Hippocampus Exon (Feb09) RMA MDP"
]
],
"Liver": [
[
+ "GSE16780MDP_UCLA_ML0911",
+ "GSE16780 UCLA Mouse MDP Liver Affy HT M430A (Sep11) RMA"
+ ],
+ [
"JAX_CSB_L_0711",
"JAX Liver Affy M430 2.0 (Jul11) MDP"
],
@@ -1921,19 +1949,19 @@
"human": [
[
"AD-cases-controls",
- "AD Cases & Controls (Liang)"
+ "Alzheimer's Disease Brain (Liang)"
],
[
"AD-cases-controls-Myers",
- "AD Cases & Controls (Myers)"
+ "Alzheimer's Disease Brain (Myers)"
],
[
"CANDLE",
- "CANDLE"
+ "CANDLE Cognitive Development (TUCI)"
],
[
"CEPH-2004",
- "CEPH Families"
+ "CEPH Families Cell Lines"
],
[
"HB",
@@ -1941,11 +1969,11 @@
],
[
"HLC",
- "Human Liver Cohort"
+ "Human Liver Cohort (Merck)"
],
[
"HSB",
- "KIN/YSM"
+ "Human Brain Transcriptome (Yale/Kavli)"
]
],
"macaque monkey": [
@@ -1972,6 +2000,14 @@
"B6D2F2"
],
[
+ "B6D2F2-PSU",
+ "B6D2F2 PSU"
+ ],
+ [
+ "B6D2RI",
+ "B6D2RI Aged"
+ ],
+ [
"BDF2-1999",
"BDF2 UCLA"
],
@@ -2301,30 +2337,14 @@
"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"
],
@@ -2333,14 +2353,6 @@
"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"
],
@@ -2349,18 +2361,10 @@
"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"
],
@@ -2389,18 +2393,6 @@
"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"
]
@@ -2465,6 +2457,10 @@
[
"Eye",
"Eye mRNA"
+ ],
+ [
+ "Liver",
+ "Liver mRNA"
]
],
"B6BTBRF2": [
@@ -2495,6 +2491,34 @@
"Brain mRNA"
]
],
+ "B6D2F2-PSU": [
+ [
+ "Phenotypes",
+ "Phenotypes"
+ ],
+ [
+ "Genotypes",
+ "Genotypes"
+ ],
+ [
+ "Muscle",
+ "Muscle mRNA"
+ ]
+ ],
+ "B6D2RI": [
+ [
+ "Phenotypes",
+ "Phenotypes"
+ ],
+ [
+ "Genotypes",
+ "Genotypes"
+ ],
+ [
+ "Hippocampus",
+ "Hippocampus mRNA"
+ ]
+ ],
"BDF2-1999": [
[
"Phenotypes",
@@ -2585,6 +2609,10 @@
"Genotypes"
],
[
+ "Adrenal Gland",
+ "Adrenal Gland mRNA"
+ ],
+ [
"Amygdala",
"Amygdala mRNA"
],
@@ -2649,6 +2677,14 @@
"Nucleus Accumbens mRNA"
],
[
+ "Pituitary Gland",
+ "Pituitary Gland mRNA"
+ ],
+ [
+ "Popliteal Lymph Node",
+ "Popliteal Lymph Node mRNA"
+ ],
+ [
"Prefrontal Cortex",
"Prefrontal Cortex mRNA"
],
@@ -2693,6 +2729,10 @@
[
"Cartilage",
"Cartilage mRNA"
+ ],
+ [
+ "Liver",
+ "Liver mRNA"
]
],
"CTB6F2": [
diff --git a/wqflask/wqflask/static/new/javascript/dataset_select_menu.js b/wqflask/wqflask/static/new/javascript/dataset_select_menu.js
index 5e19ca46..34fa7503 100644
--- a/wqflask/wqflask/static/new/javascript/dataset_select_menu.js
+++ b/wqflask/wqflask/static/new/javascript/dataset_select_menu.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
$(function() {
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.coffee b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
index 7eb62ec1..2f8da6dc 100644
--- a/wqflask/wqflask/static/new/javascript/marker_regression.coffee
+++ b/wqflask/wqflask/static/new/javascript/marker_regression.coffee
@@ -1,212 +1,302 @@
$ ->
- sort_number = (a, b) ->
- return a - b
+ class Manhattan_Plot
+ constructor: (@plot_height, @plot_width) ->
+ @qtl_results = js_data.qtl_results
+ console.log("qtl_results are:", @qtl_results)
+ @chromosomes = js_data.chromosomes
+ @total_length = 0
- class Permutation_Histogram
- constructor: ->
- @process_data()
- @display_graph()
-
- process_data: ->
- # Put the data in a format needed for graphing
- # The permutation count for a particular integer range (10-11 or 12-13 for example)
- # will be on the y-axis; LRS values will be on the x-axis
- lrs_array = js_data.lrs_array
- bars = {}
- for lrs in lrs_array
- floored = Math.floor(lrs)
- if floored not of bars
- bars[floored] = 0
- bars[floored] += 1
-
- # Now we need to take the unordered hash
- # And order the keys
- keys = []
- for key of bars
- keys.push(key)
-
- keys.sort(sort_number)
+ @max_chr = @get_max_chr()
+
+ @x_coords = []
+ @y_coords = []
+ @marker_names = []
+ console.time('Create coordinates')
+ @create_coordinates()
+ console.log("@x_coords: ", @x_coords)
+ console.timeEnd('Create coordinates')
+ [@chr_lengths, @cumulative_chr_lengths] = @get_chr_lengths()
+
+ # Buffer to allow for the ticks/labels to be drawn
+ @x_buffer = @plot_width/30
+ @y_buffer = @plot_height/20
-
- # Now that we have the ordered keys above
- # We can build an array of arrays that jqPlot will use
- @bars_ordered = []
- for key in keys
- @bars_ordered.push([parseInt(key), bars[key]])
-
- console.log("bars is:", bars)
- console.log("keys are:", keys)
- console.log("bars_ordered are:", @bars_ordered)
- #return bars_ordered
-
- display_graph: ->
-
- $.jqplot('permutation_histogram', [@bars_ordered],
- title: 'Permutation Histogram'
- seriesDefaults:
- renderer:$.jqplot.BarRenderer
- rendererOptions:
- barWidth: 15
- pointLabels:
- show: true
- axesDefaults:
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- axes:
- xaxis:
- min: 0
- label: "LRS"
- pad: 1.1
- yaxis:
- min: 0
- label: "Frequency"
- )
-
- #process_qtl_results = ->
- # qtl_results = js_data.qtl_results
-
- #display_manhattan_plot = ->
+ #@x_max = d3.max(@x_coords)
+ @x_max = @total_length
+ @y_max = d3.max(@y_coords) * 1.2
+ @svg = @create_svg()
+ @plot_coordinates = _.zip(@x_coords, @y_coords, @marker_names)
+
+ @plot_height -= @y_buffer
+ @create_scales()
+ console.time('Create graph')
+ @create_graph()
+ console.timeEnd('Create graph')
+ get_max_chr: () ->
+ max_chr = 0
+ for result in @qtl_results
+ chr = parseInt(result.chr)
+ if not _.isNaN(chr)
+ if chr > max_chr
+ max_chr = chr
+ return max_chr
- #bars_ordered = process_lrs_array()
- #display_permutation_histogram(bars_ordered)
-
- class Chromosome
- constructor: (@name) ->
- @max_mb = 0
- @plot_points = []
+ get_chr_lengths: () ->
+ ###
+ Gets a list of both individual and cumulative (the position of one on the graph
+ is its own length plus the lengths of all preceding chromosomes) lengths in order
+ to draw the vertical lines separating chromosomes and the chromosome labels
- process_point: (mb, lrs) ->
- if mb > @max_mb
- @max_mb = mb
- @plot_points.push([mb, lrs])
+ ###
- display_graph: (max_lrs) ->
- div_name = 'manhattan_plot_' + @name
- console.log("div_name:", div_name)
-
- #console.log("max_lrs is", max_lrs)
-
-
- x_axis_max = Math.ceil(@max_mb/25) * 25
- x_axis_ticks = []
- x_tick = 0
- while (x_tick <= x_axis_max)
- x_axis_ticks.push(x_tick)
- x_tick += 25
+ cumulative_chr_lengths = []
+ chr_lengths = []
+ total_length = 0
+ for key of @chromosomes
+ this_length = @chromosomes[key]
+ chr_lengths.push(this_length)
+ cumulative_chr_lengths.push(total_length + this_length)
+ total_length += this_length
-
- plot_options =
- title: @name
- seriesDefaults:
- showLine: false
- markerRenderer: $.jqplot.MarkerRenderer
- markerOptions:
- style: "filledCircle"
- size: 3
- axesDefaults:
- tickRenderer: $.jqplot.CanvasAxisTickRenderer
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- axes:
- xaxis:
- min: 0
- max: x_axis_max
- ticks: x_axis_ticks
- tickOptions:
- angle: 90
- showGridline: false
- formatString: '%d'
- label: "Megabases"
+ #console.log("total length is:", total_length)
-
- if @name == "1"
- plot_options.axes.yaxis =
- min: 0
- max: Math.floor(max_lrs + 0.1 * max_lrs)
- tickInterval: 1
- label: "LRS"
- tickOptions:
- formatString: '%d'
- showGridline: false
+ return [chr_lengths, cumulative_chr_lengths]
+
+ create_coordinates: () ->
+ chr_lengths = []
+ chr_seen = []
+ for result in js_data.qtl_results
+ chr_length = @chromosomes[result.chr]
+ if not(result.chr in chr_seen)
+ chr_seen.push(result.chr)
+ chr_lengths.push(chr_length)
+ if result.chr != "1"
+ @total_length += chr_lengths[chr_lengths.length - 2]
+ @x_coords.push(@total_length + parseFloat(result.Mb))
+ @y_coords.push(result.lod_score)
+ @marker_names.push(result.name)
+ @total_length += chr_lengths[chr_lengths.length-1]
+
+ show_marker_in_table: (marker_info) ->
+ console.log("in show_marker_in_table")
+ ### Searches for the select marker in the results table below ###
+ if marker_info
+ marker_name = marker_info[2]
else
- plot_options.axes.yaxis =
- show: false
- min: 0
- max: Math.floor(max_lrs + 0.1 * max_lrs)
- tickInterval: 1
- tickOptions:
- formatString: '%d'
- showGridline: false
-
- $.jqplot(div_name, [@plot_points], plot_options)
+ marker_name = ""
+ $("#qtl_results_filter").find("input:first").val(marker_name).keypress()
- class Manhattan_Plot
- constructor: ->
- @max_lrs = 0
+ create_svg: () ->
+ svg = d3.select("#manhattan_plots")
+ .append("svg")
+ .attr("class", "manhattan_plot")
+ .attr("width", @plot_width+@x_buffer)
+ .attr("height", @plot_height+@y_buffer)
- @chromosomes = {}
- @build_chromosomes()
-
- @display_graphs()
+ return svg
- build_chromosomes: ->
- for result in js_data.qtl_results
- #if result.locus.chromosome == '1'
- chromosome = result.locus.chromosome
- if chromosome not of @chromosomes
- @chromosomes[chromosome] = new Chromosome(chromosome)
- mb = parseInt(result.locus.mb)
- if result.lrs > @max_lrs
- @max_lrs = result.lrs
- @chromosomes[chromosome].process_point(mb, result.lrs)
-
- display_graphs: ->
- ### Call display_graph for each chromosome ###
-
- # First get everything in the right order
- numbered_keys = []
- extra_keys = []
- for key of @chromosomes
- if isNaN(key)
- extra_keys.push(key)
+ create_graph: () ->
+ @add_border()
+ @add_x_axis()
+ @add_y_axis()
+ @add_chr_lines()
+ @fill_chr_areas()
+ @add_chr_labels()
+ @add_plot_points()
+
+ add_border: () ->
+ border_coords = [[@y_buffer, @plot_height, @x_buffer, @x_buffer],
+ [@y_buffer, @plot_height, @plot_width, @plot_width],
+ [@y_buffer, @y_buffer, @x_buffer, @plot_width],
+ [@plot_height, @plot_height, @x_buffer, @plot_width]]
+
+ @svg.selectAll("line")
+ .data(border_coords)
+ .enter()
+ .append("line")
+ .attr("y1", (d) =>
+ return d[0]
+ )
+ .attr("y2", (d) =>
+ return d[1]
+ )
+ .attr("x1", (d) =>
+ return d[2]
+ )
+ .attr("x2", (d) =>
+ return d[3]
+ )
+ .style("stroke", "#000")
+
+ create_scales: () ->
+ @x_scale = d3.scale.linear()
+ .domain([0, d3.max(@x_coords)])
+ .range([@x_buffer, @plot_width])
+
+ @y_scale = d3.scale.linear()
+ .domain([0, @y_max])
+ .range([@plot_height, @y_buffer])
+
+ create_x_axis_tick_values: () ->
+ tick_vals = []
+ for val in [25..@cumulative_chr_lengths[0]] when val%25 == 0
+ tick_vals.push(val)
+
+ for length, i in @cumulative_chr_lengths
+ if i == 0
+ continue
+ chr_ticks = []
+ tick_count = Math.floor(@chr_lengths[i]/25)
+ tick_val = parseInt(@cumulative_chr_lengths[i-1])
+ for tick in [0..(tick_count-1)]
+ tick_val += 25
+ chr_ticks.push(tick_val)
+ Array::push.apply tick_vals, chr_ticks
+
+ #console.log("tick_vals:", tick_vals)
+ return tick_vals
+
+ add_x_axis: () ->
+ xAxis = d3.svg.axis()
+ .scale(@x_scale)
+ .orient("bottom")
+ .tickValues(@create_x_axis_tick_values())
+
+ next_chr = 1
+ tmp_tick_val = 0
+ xAxis.tickFormat((d) =>
+ d3.format("d") #format as integer
+ if d < @cumulative_chr_lengths[0]
+ tick_val = d
else
- numbered_keys.push(key)
-
- numbered_keys.sort(sort_number)
- extra_keys.sort()
- keys = numbered_keys.concat(extra_keys)
- console.log("keys are:", keys)
-
- for key in keys
- this_class = "manhattan_plot_segment"
- if key != "1"
- this_class += " no_y_axis"
- html = """<div id="manhattan_plot_#{ key }" class=#{ this_class }></div>"""
- console.log("html is:", html)
- $("#manhattan_plots").append(html)
- @chromosomes[key].display_graph(@max_lrs)
-
- $('.jqplot-yaxis').hide()
- $('#manhattan_plot_1').find('.jqplot-yaxis').show()
-
- #$(".jqplot-yaxis").hide()
- #$(".jqplot-yaxis-tick").hide()
-
+ next_chr_length = @cumulative_chr_lengths[next_chr]
+ if d > next_chr_length
+ next_chr += 1
+ tmp_tick_val = 25
+ tick_val = tmp_tick_val
+ else
+ tmp_tick_val += 25
+ tick_val = tmp_tick_val
+ return (tick_val)
+ )
+
+ @svg.append("g")
+ .attr("class", "x_axis")
+ .attr("transform", "translate(0," + @plot_height + ")")
+ .call(xAxis)
+ .selectAll("text")
+ .attr("text-anchor", "right")
+ .attr("dx", "-1.6em")
+ .attr("transform", (d) =>
+ return "translate(-12,0) rotate(-90)"
+ )
+ #.attr("dy", "-1.0em")
+
+
+ add_y_axis: () ->
+ yAxis = d3.svg.axis()
+ .scale(@y_scale)
+ .orient("left")
+ .ticks(5)
- #process_data: ->
- # qtl_results = js_data.qtl_results
- # #console.log("qtl_results: ", qtl_results)
- # @plot_points = []
- # @max_mb = 0
- # for result in qtl_results
- # if result.locus.chromosome == '1'
- # mb = parseInt(result.locus.mb)
- # if mb > @max_mb
- # @max_mb = mb
- # @plot_points.push([mb, result.lrs])
+ @svg.append("g")
+ .attr("class", "y_axis")
+ .attr("transform", "translate(" + @x_buffer + ",0)")
+ .call(yAxis)
+
+ add_chr_lines: () ->
+ @svg.selectAll("line")
+ .data(@cumulative_chr_lengths, (d) =>
+ return d
+ )
+ .enter()
+ .append("line")
+ .attr("x1", @x_scale)
+ .attr("x2", @x_scale)
+ .attr("y1", @y_buffer)
+ .attr("y2", @plot_height)
+ .style("stroke", "#ccc")
+ fill_chr_areas: () ->
+ @svg.selectAll("rect.chr_fill_area_1")
+ .data(_.zip(@chr_lengths, @cumulative_chr_lengths), (d) =>
+ return d
+ )
+ .enter()
+ .append("rect")
+ .attr("class", "chr_fill_area_1")
+ .attr("x", (d, i) =>
+ if i == 0
+ return @x_scale(0)
+ else
+ return @x_scale(@cumulative_chr_lengths[i-1])
+ )
+ .attr("y", @y_buffer)
+ .attr("width", (d) =>
+ return @x_scale(d[0])
+ )
+ .attr("height", @plot_height-@y_buffer)
+
+ add_chr_labels: () ->
+ chr_names = []
+ for key of @chromosomes
+ chr_names.push(key)
+ chr_info = _.zip(chr_names, @chr_lengths, @cumulative_chr_lengths)
+ @svg.selectAll("text")
+ .data(chr_info, (d) =>
+ return d
+ )
+ .enter()
+ .append("text")
+ .text((d) =>
+ return d[0]
+ )
+ .attr("x", (d) =>
+ return @x_scale(d[2] - d[1]/2)
+ )
+ .attr("y", @plot_height * 0.1)
+ .attr("dx", "0em")
+ .attr("text-anchor", "middle")
+ .attr("font-family", "sans-serif")
+ .attr("font-size", "18px")
+ .attr("fill", "grey")
+ add_plot_points: () ->
+ @svg.selectAll("circle")
+ .data(@plot_coordinates)
+ .enter()
+ .append("circle")
+ .attr("cx", (d) =>
+ return @x_buffer + ((@plot_width-@x_buffer) * d[0]/@x_max)
+ )
+ .attr("cy", (d) =>
+ return @plot_height - ((@plot_height-@y_buffer) * d[1]/@y_max)
+ )
+ .attr("r", 2)
+ .attr("id", (d) =>
+ return "point_" + String(d[2])
+ )
+ .classed("circle", true)
+ .on("mouseover", (d) =>
+ console.log("d3.event is:", d3.event)
+ console.log("d is:", d)
+ this_id = "point_" + String(d[2])
+ d3.select("#" + this_id).classed("d3_highlight", true)
+ .attr("r", 5)
+ .attr("fill", "yellow")
+ .call(@show_marker_in_table(d))
+ )
+ .on("mouseout", (d) =>
+ this_id = "point_" + String(d[2])
+ d3.select("#" + this_id).classed("d3_highlight", false)
+ .attr("r", 2)
+ .attr("fill", "black")
+ .call(@show_marker_in_table())
+ )
- new Permutation_Histogram
- new Manhattan_Plot \ No newline at end of file
+ console.time('Create manhattan plot')
+ new Manhattan_Plot(600, 1200)
+ console.timeEnd('Create manhattan plot') \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression.js b/wqflask/wqflask/static/new/javascript/marker_regression.js
index 19a7d051..50578125 100644
--- a/wqflask/wqflask/static/new/javascript/marker_regression.js
+++ b/wqflask/wqflask/static/new/javascript/marker_regression.js
@@ -1,226 +1,276 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
+ var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
$(function() {
- var Chromosome, Manhattan_Plot, Permutation_Histogram, sort_number;
- sort_number = function(a, b) {
- return a - b;
- };
- Permutation_Histogram = (function() {
-
- function Permutation_Histogram() {
- this.process_data();
- this.display_graph();
+ var Manhattan_Plot;
+ Manhattan_Plot = (function() {
+
+ function Manhattan_Plot(plot_height, plot_width) {
+ var _ref;
+ this.plot_height = plot_height;
+ this.plot_width = plot_width;
+ this.qtl_results = js_data.qtl_results;
+ console.log("qtl_results are:", this.qtl_results);
+ this.chromosomes = js_data.chromosomes;
+ this.total_length = 0;
+ this.max_chr = this.get_max_chr();
+ this.x_coords = [];
+ this.y_coords = [];
+ this.marker_names = [];
+ console.time('Create coordinates');
+ this.create_coordinates();
+ console.log("@x_coords: ", this.x_coords);
+ console.timeEnd('Create coordinates');
+ _ref = this.get_chr_lengths(), this.chr_lengths = _ref[0], this.cumulative_chr_lengths = _ref[1];
+ this.x_buffer = this.plot_width / 30;
+ this.y_buffer = this.plot_height / 20;
+ this.x_max = this.total_length;
+ this.y_max = d3.max(this.y_coords) * 1.2;
+ this.svg = this.create_svg();
+ this.plot_coordinates = _.zip(this.x_coords, this.y_coords, this.marker_names);
+ this.plot_height -= this.y_buffer;
+ this.create_scales();
+ console.time('Create graph');
+ this.create_graph();
+ console.timeEnd('Create graph');
}
- Permutation_Histogram.prototype.process_data = function() {
- var bars, floored, key, keys, lrs, lrs_array, _i, _j, _len, _len1;
- lrs_array = js_data.lrs_array;
- bars = {};
- for (_i = 0, _len = lrs_array.length; _i < _len; _i++) {
- lrs = lrs_array[_i];
- floored = Math.floor(lrs);
- if (!(floored in bars)) {
- bars[floored] = 0;
+ Manhattan_Plot.prototype.get_max_chr = function() {
+ var chr, max_chr, result, _i, _len, _ref;
+ max_chr = 0;
+ _ref = this.qtl_results;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ result = _ref[_i];
+ chr = parseInt(result.chr);
+ if (!_.isNaN(chr)) {
+ if (chr > max_chr) {
+ max_chr = chr;
+ }
}
- bars[floored] += 1;
- }
- keys = [];
- for (key in bars) {
- keys.push(key);
}
- keys.sort(sort_number);
- this.bars_ordered = [];
- for (_j = 0, _len1 = keys.length; _j < _len1; _j++) {
- key = keys[_j];
- this.bars_ordered.push([parseInt(key), bars[key]]);
+ return max_chr;
+ };
+
+ Manhattan_Plot.prototype.get_chr_lengths = function() {
+ /*
+ Gets a list of both individual and cumulative (the position of one on the graph
+ is its own length plus the lengths of all preceding chromosomes) lengths in order
+ to draw the vertical lines separating chromosomes and the chromosome labels
+ */
+
+ var chr_lengths, cumulative_chr_lengths, key, this_length, total_length;
+ cumulative_chr_lengths = [];
+ chr_lengths = [];
+ total_length = 0;
+ for (key in this.chromosomes) {
+ this_length = this.chromosomes[key];
+ chr_lengths.push(this_length);
+ cumulative_chr_lengths.push(total_length + this_length);
+ total_length += this_length;
}
- console.log("bars is:", bars);
- console.log("keys are:", keys);
- return console.log("bars_ordered are:", this.bars_ordered);
+ return [chr_lengths, cumulative_chr_lengths];
};
- Permutation_Histogram.prototype.display_graph = function() {
- return $.jqplot('permutation_histogram', [this.bars_ordered], {
- title: 'Permutation Histogram',
- seriesDefaults: {
- renderer: $.jqplot.BarRenderer,
- rendererOptions: {
- barWidth: 15
- },
- pointLabels: {
- show: true
- }
- },
- axesDefaults: {
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- axes: {
- xaxis: {
- min: 0,
- label: "LRS",
- pad: 1.1
- },
- yaxis: {
- min: 0,
- label: "Frequency"
+ Manhattan_Plot.prototype.create_coordinates = function() {
+ var chr_length, chr_lengths, chr_seen, result, _i, _len, _ref, _ref1;
+ chr_lengths = [];
+ chr_seen = [];
+ _ref = js_data.qtl_results;
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+ result = _ref[_i];
+ chr_length = this.chromosomes[result.chr];
+ if (!(_ref1 = result.chr, __indexOf.call(chr_seen, _ref1) >= 0)) {
+ chr_seen.push(result.chr);
+ chr_lengths.push(chr_length);
+ if (result.chr !== "1") {
+ this.total_length += chr_lengths[chr_lengths.length - 2];
}
}
- });
+ this.x_coords.push(this.total_length + parseFloat(result.Mb));
+ this.y_coords.push(result.lod_score);
+ this.marker_names.push(result.name);
+ }
+ return this.total_length += chr_lengths[chr_lengths.length - 1];
};
- return Permutation_Histogram;
-
- })();
- Chromosome = (function() {
-
- function Chromosome(name) {
- this.name = name;
- this.max_mb = 0;
- this.plot_points = [];
- }
+ Manhattan_Plot.prototype.show_marker_in_table = function(marker_info) {
+ var marker_name;
+ console.log("in show_marker_in_table");
+ /* Searches for the select marker in the results table below
+ */
- Chromosome.prototype.process_point = function(mb, lrs) {
- if (mb > this.max_mb) {
- this.max_mb = mb;
+ if (marker_info) {
+ marker_name = marker_info[2];
+ } else {
+ marker_name = "";
}
- return this.plot_points.push([mb, lrs]);
+ return $("#qtl_results_filter").find("input:first").val(marker_name).keypress();
};
- Chromosome.prototype.display_graph = function(max_lrs) {
- var div_name, plot_options, x_axis_max, x_axis_ticks, x_tick;
- div_name = 'manhattan_plot_' + this.name;
- console.log("div_name:", div_name);
- x_axis_max = Math.ceil(this.max_mb / 25) * 25;
- x_axis_ticks = [];
- x_tick = 0;
- while (x_tick <= x_axis_max) {
- x_axis_ticks.push(x_tick);
- x_tick += 25;
- }
- plot_options = {
- title: this.name,
- seriesDefaults: {
- showLine: false,
- markerRenderer: $.jqplot.MarkerRenderer,
- markerOptions: {
- style: "filledCircle",
- size: 3
- }
- },
- axesDefaults: {
- tickRenderer: $.jqplot.CanvasAxisTickRenderer,
- labelRenderer: $.jqplot.CanvasAxisLabelRenderer
- },
- axes: {
- xaxis: {
- min: 0,
- max: x_axis_max,
- ticks: x_axis_ticks,
- tickOptions: {
- angle: 90,
- showGridline: false,
- formatString: '%d'
- },
- label: "Megabases"
- }
- }
- };
- if (this.name === "1") {
- plot_options.axes.yaxis = {
- min: 0,
- max: Math.floor(max_lrs + 0.1 * max_lrs),
- tickInterval: 1,
- label: "LRS",
- tickOptions: {
- formatString: '%d',
- showGridline: false
- }
- };
- } else {
- plot_options.axes.yaxis = {
- show: false,
- min: 0,
- max: Math.floor(max_lrs + 0.1 * max_lrs),
- tickInterval: 1,
- tickOptions: {
- formatString: '%d',
- showGridline: false
- }
- };
- }
- return $.jqplot(div_name, [this.plot_points], plot_options);
+ Manhattan_Plot.prototype.create_svg = function() {
+ var svg;
+ svg = d3.select("#manhattan_plots").append("svg").attr("class", "manhattan_plot").attr("width", this.plot_width + this.x_buffer).attr("height", this.plot_height + this.y_buffer);
+ return svg;
};
- return Chromosome;
+ Manhattan_Plot.prototype.create_graph = function() {
+ this.add_border();
+ this.add_x_axis();
+ this.add_y_axis();
+ this.add_chr_lines();
+ this.fill_chr_areas();
+ this.add_chr_labels();
+ return this.add_plot_points();
+ };
- })();
- Manhattan_Plot = (function() {
+ Manhattan_Plot.prototype.add_border = function() {
+ var border_coords,
+ _this = this;
+ border_coords = [[this.y_buffer, this.plot_height, this.x_buffer, this.x_buffer], [this.y_buffer, this.plot_height, this.plot_width, this.plot_width], [this.y_buffer, this.y_buffer, this.x_buffer, this.plot_width], [this.plot_height, this.plot_height, this.x_buffer, this.plot_width]];
+ return this.svg.selectAll("line").data(border_coords).enter().append("line").attr("y1", function(d) {
+ return d[0];
+ }).attr("y2", function(d) {
+ return d[1];
+ }).attr("x1", function(d) {
+ return d[2];
+ }).attr("x2", function(d) {
+ return d[3];
+ }).style("stroke", "#000");
+ };
- function Manhattan_Plot() {
- this.max_lrs = 0;
- this.chromosomes = {};
- this.build_chromosomes();
- this.display_graphs();
- }
+ Manhattan_Plot.prototype.create_scales = function() {
+ this.x_scale = d3.scale.linear().domain([0, d3.max(this.x_coords)]).range([this.x_buffer, this.plot_width]);
+ return this.y_scale = d3.scale.linear().domain([0, this.y_max]).range([this.plot_height, this.y_buffer]);
+ };
- Manhattan_Plot.prototype.build_chromosomes = function() {
- var chromosome, mb, result, _i, _len, _ref, _results;
- _ref = js_data.qtl_results;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- result = _ref[_i];
- chromosome = result.locus.chromosome;
- if (!(chromosome in this.chromosomes)) {
- this.chromosomes[chromosome] = new Chromosome(chromosome);
+ Manhattan_Plot.prototype.create_x_axis_tick_values = function() {
+ var chr_ticks, i, length, tick, tick_count, tick_val, tick_vals, val, _i, _j, _k, _len, _ref, _ref1, _ref2;
+ tick_vals = [];
+ for (val = _i = 25, _ref = this.cumulative_chr_lengths[0]; 25 <= _ref ? _i <= _ref : _i >= _ref; val = 25 <= _ref ? ++_i : --_i) {
+ if (val % 25 === 0) {
+ tick_vals.push(val);
+ }
+ }
+ _ref1 = this.cumulative_chr_lengths;
+ for (i = _j = 0, _len = _ref1.length; _j < _len; i = ++_j) {
+ length = _ref1[i];
+ if (i === 0) {
+ continue;
}
- mb = parseInt(result.locus.mb);
- if (result.lrs > this.max_lrs) {
- this.max_lrs = result.lrs;
+ chr_ticks = [];
+ tick_count = Math.floor(this.chr_lengths[i] / 25);
+ tick_val = parseInt(this.cumulative_chr_lengths[i - 1]);
+ for (tick = _k = 0, _ref2 = tick_count - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; tick = 0 <= _ref2 ? ++_k : --_k) {
+ tick_val += 25;
+ chr_ticks.push(tick_val);
}
- _results.push(this.chromosomes[chromosome].process_point(mb, result.lrs));
+ Array.prototype.push.apply(tick_vals, chr_ticks);
}
- return _results;
+ return tick_vals;
};
- Manhattan_Plot.prototype.display_graphs = function() {
- /* Call display_graph for each chromosome
- */
-
- var extra_keys, html, key, keys, numbered_keys, this_class, _i, _len;
- numbered_keys = [];
- extra_keys = [];
- for (key in this.chromosomes) {
- if (isNaN(key)) {
- extra_keys.push(key);
+ Manhattan_Plot.prototype.add_x_axis = function() {
+ var next_chr, tmp_tick_val, xAxis,
+ _this = this;
+ xAxis = d3.svg.axis().scale(this.x_scale).orient("bottom").tickValues(this.create_x_axis_tick_values());
+ next_chr = 1;
+ tmp_tick_val = 0;
+ xAxis.tickFormat(function(d) {
+ var next_chr_length, tick_val;
+ d3.format("d");
+ if (d < _this.cumulative_chr_lengths[0]) {
+ tick_val = d;
} else {
- numbered_keys.push(key);
+ next_chr_length = _this.cumulative_chr_lengths[next_chr];
+ if (d > next_chr_length) {
+ next_chr += 1;
+ tmp_tick_val = 25;
+ tick_val = tmp_tick_val;
+ } else {
+ tmp_tick_val += 25;
+ tick_val = tmp_tick_val;
+ }
}
- }
- numbered_keys.sort(sort_number);
- extra_keys.sort();
- keys = numbered_keys.concat(extra_keys);
- console.log("keys are:", keys);
- for (_i = 0, _len = keys.length; _i < _len; _i++) {
- key = keys[_i];
- this_class = "manhattan_plot_segment";
- if (key !== "1") {
- this_class += " no_y_axis";
+ return tick_val;
+ });
+ return this.svg.append("g").attr("class", "x_axis").attr("transform", "translate(0," + this.plot_height + ")").call(xAxis).selectAll("text").attr("text-anchor", "right").attr("dx", "-1.6em").attr("transform", function(d) {
+ return "translate(-12,0) rotate(-90)";
+ });
+ };
+
+ Manhattan_Plot.prototype.add_y_axis = function() {
+ var yAxis;
+ yAxis = d3.svg.axis().scale(this.y_scale).orient("left").ticks(5);
+ return this.svg.append("g").attr("class", "y_axis").attr("transform", "translate(" + this.x_buffer + ",0)").call(yAxis);
+ };
+
+ Manhattan_Plot.prototype.add_chr_lines = function() {
+ var _this = this;
+ return this.svg.selectAll("line").data(this.cumulative_chr_lengths, function(d) {
+ return d;
+ }).enter().append("line").attr("x1", this.x_scale).attr("x2", this.x_scale).attr("y1", this.y_buffer).attr("y2", this.plot_height).style("stroke", "#ccc");
+ };
+
+ Manhattan_Plot.prototype.fill_chr_areas = function() {
+ var _this = this;
+ return this.svg.selectAll("rect.chr_fill_area_1").data(_.zip(this.chr_lengths, this.cumulative_chr_lengths), function(d) {
+ return d;
+ }).enter().append("rect").attr("class", "chr_fill_area_1").attr("x", function(d, i) {
+ if (i === 0) {
+ return _this.x_scale(0);
+ } else {
+ return _this.x_scale(_this.cumulative_chr_lengths[i - 1]);
}
- html = "<div id=\"manhattan_plot_" + key + "\" class=" + this_class + "></div>";
- console.log("html is:", html);
- $("#manhattan_plots").append(html);
- this.chromosomes[key].display_graph(this.max_lrs);
+ }).attr("y", this.y_buffer).attr("width", function(d) {
+ return _this.x_scale(d[0]);
+ }).attr("height", this.plot_height - this.y_buffer);
+ };
+
+ Manhattan_Plot.prototype.add_chr_labels = function() {
+ var chr_info, chr_names, key,
+ _this = this;
+ chr_names = [];
+ for (key in this.chromosomes) {
+ chr_names.push(key);
}
- $('.jqplot-yaxis').hide();
- return $('#manhattan_plot_1').find('.jqplot-yaxis').show();
+ chr_info = _.zip(chr_names, this.chr_lengths, this.cumulative_chr_lengths);
+ return this.svg.selectAll("text").data(chr_info, function(d) {
+ return d;
+ }).enter().append("text").text(function(d) {
+ return d[0];
+ }).attr("x", function(d) {
+ return _this.x_scale(d[2] - d[1] / 2);
+ }).attr("y", this.plot_height * 0.1).attr("dx", "0em").attr("text-anchor", "middle").attr("font-family", "sans-serif").attr("font-size", "18px").attr("fill", "grey");
+ };
+
+ Manhattan_Plot.prototype.add_plot_points = function() {
+ var _this = this;
+ return this.svg.selectAll("circle").data(this.plot_coordinates).enter().append("circle").attr("cx", function(d) {
+ return _this.x_buffer + ((_this.plot_width - _this.x_buffer) * d[0] / _this.x_max);
+ }).attr("cy", function(d) {
+ return _this.plot_height - ((_this.plot_height - _this.y_buffer) * d[1] / _this.y_max);
+ }).attr("r", 2).attr("id", function(d) {
+ return "point_" + String(d[2]);
+ }).classed("circle", true).on("mouseover", function(d) {
+ var this_id;
+ console.log("d3.event is:", d3.event);
+ console.log("d is:", d);
+ this_id = "point_" + String(d[2]);
+ return d3.select("#" + this_id).classed("d3_highlight", true).attr("r", 5).attr("fill", "yellow").call(_this.show_marker_in_table(d));
+ }).on("mouseout", function(d) {
+ var this_id;
+ this_id = "point_" + String(d[2]);
+ return d3.select("#" + this_id).classed("d3_highlight", false).attr("r", 2).attr("fill", "black").call(_this.show_marker_in_table());
+ });
};
return Manhattan_Plot;
})();
- new Permutation_Histogram;
- return new Manhattan_Plot;
+ console.time('Create manhattan plot');
+ new Manhattan_Plot(600, 1200);
+ return console.timeEnd('Create manhattan plot');
});
}).call(this);
diff --git a/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee b/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
new file mode 100644
index 00000000..7eb62ec1
--- /dev/null
+++ b/wqflask/wqflask/static/new/javascript/marker_regression_old.coffee
@@ -0,0 +1,212 @@
+$ ->
+ sort_number = (a, b) ->
+ return a - b
+
+
+ class Permutation_Histogram
+ constructor: ->
+ @process_data()
+ @display_graph()
+
+ process_data: ->
+ # Put the data in a format needed for graphing
+ # The permutation count for a particular integer range (10-11 or 12-13 for example)
+ # will be on the y-axis; LRS values will be on the x-axis
+ lrs_array = js_data.lrs_array
+ bars = {}
+ for lrs in lrs_array
+ floored = Math.floor(lrs)
+ if floored not of bars
+ bars[floored] = 0
+ bars[floored] += 1
+
+ # Now we need to take the unordered hash
+ # And order the keys
+ keys = []
+ for key of bars
+ keys.push(key)
+
+ keys.sort(sort_number)
+
+
+ # Now that we have the ordered keys above
+ # We can build an array of arrays that jqPlot will use
+ @bars_ordered = []
+ for key in keys
+ @bars_ordered.push([parseInt(key), bars[key]])
+
+ console.log("bars is:", bars)
+ console.log("keys are:", keys)
+ console.log("bars_ordered are:", @bars_ordered)
+ #return bars_ordered
+
+ display_graph: ->
+
+ $.jqplot('permutation_histogram', [@bars_ordered],
+ title: 'Permutation Histogram'
+ seriesDefaults:
+ renderer:$.jqplot.BarRenderer
+ rendererOptions:
+ barWidth: 15
+ pointLabels:
+ show: true
+ axesDefaults:
+ labelRenderer: $.jqplot.CanvasAxisLabelRenderer
+ axes:
+ xaxis:
+ min: 0
+ label: "LRS"
+ pad: 1.1
+ yaxis:
+ min: 0
+ label: "Frequency"
+ )
+
+ #process_qtl_results = ->
+ # qtl_results = js_data.qtl_results
+
+ #display_manhattan_plot = ->
+
+
+
+ #bars_ordered = process_lrs_array()
+ #display_permutation_histogram(bars_ordered)
+
+ class Chromosome
+ constructor: (@name) ->
+ @max_mb = 0
+ @plot_points = []
+
+ process_point: (mb, lrs) ->
+ if mb > @max_mb
+ @max_mb = mb
+ @plot_points.push([mb, lrs])
+
+ display_graph: (max_lrs) ->
+ div_name = 'manhattan_plot_' + @name
+ console.log("div_name:", div_name)
+
+ #console.log("max_lrs is", max_lrs)
+
+
+ x_axis_max = Math.ceil(@max_mb/25) * 25
+ x_axis_ticks = []
+ x_tick = 0
+ while (x_tick <= x_axis_max)
+ x_axis_ticks.push(x_tick)
+ x_tick += 25
+
+
+ plot_options =
+ title: @name
+ seriesDefaults:
+ showLine: false
+ markerRenderer: $.jqplot.MarkerRenderer
+ markerOptions:
+ style: "filledCircle"
+ size: 3
+ axesDefaults:
+ tickRenderer: $.jqplot.CanvasAxisTickRenderer
+ labelRenderer: $.jqplot.CanvasAxisLabelRenderer
+ axes:
+ xaxis:
+ min: 0
+ max: x_axis_max
+ ticks: x_axis_ticks
+ tickOptions:
+ angle: 90
+ showGridline: false
+ formatString: '%d'
+ label: "Megabases"
+
+
+ if @name == "1"
+ plot_options.axes.yaxis =
+ min: 0
+ max: Math.floor(max_lrs + 0.1 * max_lrs)
+ tickInterval: 1
+ label: "LRS"
+ tickOptions:
+ formatString: '%d'
+ showGridline: false
+ else
+ plot_options.axes.yaxis =
+ show: false
+ min: 0
+ max: Math.floor(max_lrs + 0.1 * max_lrs)
+ tickInterval: 1
+ tickOptions:
+ formatString: '%d'
+ showGridline: false
+
+ $.jqplot(div_name, [@plot_points], plot_options)
+
+ class Manhattan_Plot
+ constructor: ->
+ @max_lrs = 0
+
+ @chromosomes = {}
+ @build_chromosomes()
+
+ @display_graphs()
+
+ build_chromosomes: ->
+ for result in js_data.qtl_results
+ #if result.locus.chromosome == '1'
+ chromosome = result.locus.chromosome
+ if chromosome not of @chromosomes
+ @chromosomes[chromosome] = new Chromosome(chromosome)
+ mb = parseInt(result.locus.mb)
+ if result.lrs > @max_lrs
+ @max_lrs = result.lrs
+ @chromosomes[chromosome].process_point(mb, result.lrs)
+
+ display_graphs: ->
+ ### Call display_graph for each chromosome ###
+
+ # First get everything in the right order
+ numbered_keys = []
+ extra_keys = []
+ for key of @chromosomes
+ if isNaN(key)
+ extra_keys.push(key)
+ else
+ numbered_keys.push(key)
+
+ numbered_keys.sort(sort_number)
+ extra_keys.sort()
+ keys = numbered_keys.concat(extra_keys)
+ console.log("keys are:", keys)
+
+ for key in keys
+ this_class = "manhattan_plot_segment"
+ if key != "1"
+ this_class += " no_y_axis"
+ html = """<div id="manhattan_plot_#{ key }" class=#{ this_class }></div>"""
+ console.log("html is:", html)
+ $("#manhattan_plots").append(html)
+ @chromosomes[key].display_graph(@max_lrs)
+
+ $('.jqplot-yaxis').hide()
+ $('#manhattan_plot_1').find('.jqplot-yaxis').show()
+
+ #$(".jqplot-yaxis").hide()
+ #$(".jqplot-yaxis-tick").hide()
+
+
+ #process_data: ->
+ # qtl_results = js_data.qtl_results
+ # #console.log("qtl_results: ", qtl_results)
+ # @plot_points = []
+ # @max_mb = 0
+ # for result in qtl_results
+ # if result.locus.chromosome == '1'
+ # mb = parseInt(result.locus.mb)
+ # if mb > @max_mb
+ # @max_mb = mb
+ # @plot_points.push([mb, result.lrs])
+
+
+
+ new Permutation_Histogram
+ new Manhattan_Plot \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.coffee b/wqflask/wqflask/static/new/javascript/show_trait.coffee
index eb87cf04..0f16ac68 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.coffee
+++ b/wqflask/wqflask/static/new/javascript/show_trait.coffee
@@ -207,7 +207,6 @@ $ ->
##Calculate Correlations Code
-
on_corr_method_change = ->
console.log("in beginning of on_corr_method_change")
corr_method = $('select[name=corr_method]').val()
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index ff705ea5..ec93727c 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
var Stat_Table_Rows, is_number,
__hasProp = {}.hasOwnProperty,
diff --git a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.coffee b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.coffee
index d0fc869d..3c995441 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.coffee
+++ b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.coffee
@@ -1,3 +1,6 @@
+# http://stackoverflow.com/a/4215132/1175849
+root = exports ? this
+
$ ->
submit_special = ->
# Add submit_special class plus a data-url field to any button
@@ -10,9 +13,82 @@ $ ->
console.log("url is:", url)
$("#trait_data_form").attr("action", url);
$("#trait_data_form").submit()
-
- $(".submit_special").click(submit_special)
+ update_time_remaining = (percent_complete) ->
+ now = new Date()
+ period = now.getTime() - root.start_time
+ console.log("period is:", period)
+ if period > 8000
+ total_seconds_remaining = (period / percent_complete * (100 - percent_complete))/1000
+ minutes_remaining = Math.round(total_seconds_remaining / 60)
+ #seconds_remaining = Math.round(total_seconds_remaining % 60)
+ #console.log("seconds_remaining:", seconds_remaining)
+ if minutes_remaining < 3
+ $('#time_remaining').text(Math.round(total_seconds_remaining) + " seconds remaining")
+ else
+ $('#time_remaining').text(minutes_remaining + " minutes remaining")
+
+ get_progress = ->
+ console.log("temp_uuid:", $("#temp_uuid").val())
+ temp_uuid = $("#temp_uuid").val()
+ params = { key:temp_uuid }
+ params_str = $.param(params)
+ url = "/get_temp_data?" + params_str
+ console.log("url:", url)
+ $.ajax(
+ type: "GET"
+ url: url
+ success: (progress_data) =>
+ percent_complete = progress_data['percent_complete']
+ console.log("in get_progress data:", progress_data)
+
+ $('#marker_regression_progress').css("width", percent_complete + "%")
+
+ if root.start_time
+ unless isNaN(percent_complete)
+ update_time_remaining(percent_complete)
+ else
+ root.start_time = new Date().getTime()
+ )
+ return false
+
+ $('#suggestive').hide()
+
+ $('input[name=display_all]').change(() =>
+ console.log("check")
+ if $('input[name=display_all]:checked').val() == "False"
+ $('#suggestive').show()
+ else
+ $('#suggestive').hide()
+ )
+
+ $("#marker_regression_compute").click(() =>
+ $("#progress_bar_container").modal()
+ url = "/marker_regression"
+ form_data = $('#trait_data_form').serialize()
+ console.log("form_data is:", form_data)
+ $.ajax(
+ type: "POST"
+ url: url
+ data: form_data
+ error: (xhr, ajaxOptions, thrownError) =>
+ alert("Sorry, an error occurred")
+ console.log(xhr)
+ clearInterval(this.my_timer)
+ $('#progress_bar_container').modal('hide')
+ $("body").html("We got an error.")
+ success: (data) =>
+ clearInterval(this.my_timer)
+ $('#progress_bar_container').modal('hide')
+ $("body").html(data)
+ )
+ console.log("settingInterval")
+
+ this.my_timer = setInterval(get_progress, 1000)
+ return false
+ )
+
+ #$(".submit_special").click(submit_special)
composite_mapping_fields = ->
$(".composite_fields").toggle()
@@ -30,4 +106,4 @@ $ ->
$("#display_all_lrs").change(->
toggle_enable_disable("#suggestive_lrs")
- ) \ No newline at end of file
+ ); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
index c6766288..329dcdd9 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
@@ -1,8 +1,12 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
+ var root;
+
+ root = typeof exports !== "undefined" && exports !== null ? exports : this;
$(function() {
- var composite_mapping_fields, submit_special, toggle_enable_disable;
+ var composite_mapping_fields, get_progress, submit_special, toggle_enable_disable, update_time_remaining,
+ _this = this;
submit_special = function() {
var url;
console.log("In submit_special");
@@ -13,7 +17,87 @@
$("#trait_data_form").attr("action", url);
return $("#trait_data_form").submit();
};
- $(".submit_special").click(submit_special);
+ update_time_remaining = function(percent_complete) {
+ var minutes_remaining, now, period, total_seconds_remaining;
+ now = new Date();
+ period = now.getTime() - root.start_time;
+ console.log("period is:", period);
+ if (period > 8000) {
+ total_seconds_remaining = (period / percent_complete * (100 - percent_complete)) / 1000;
+ minutes_remaining = Math.round(total_seconds_remaining / 60);
+ if (minutes_remaining < 3) {
+ return $('#time_remaining').text(Math.round(total_seconds_remaining) + " seconds remaining");
+ } else {
+ return $('#time_remaining').text(minutes_remaining + " minutes remaining");
+ }
+ }
+ };
+ get_progress = function() {
+ var params, params_str, temp_uuid, url,
+ _this = this;
+ console.log("temp_uuid:", $("#temp_uuid").val());
+ temp_uuid = $("#temp_uuid").val();
+ params = {
+ key: temp_uuid
+ };
+ params_str = $.param(params);
+ url = "/get_temp_data?" + params_str;
+ console.log("url:", url);
+ $.ajax({
+ type: "GET",
+ url: url,
+ success: function(progress_data) {
+ var percent_complete;
+ percent_complete = progress_data['percent_complete'];
+ console.log("in get_progress data:", progress_data);
+ $('#marker_regression_progress').css("width", percent_complete + "%");
+ if (root.start_time) {
+ if (!isNaN(percent_complete)) {
+ return update_time_remaining(percent_complete);
+ }
+ } else {
+ return root.start_time = new Date().getTime();
+ }
+ }
+ });
+ return false;
+ };
+ $('#suggestive').hide();
+ $('input[name=display_all]').change(function() {
+ console.log("check");
+ if ($('input[name=display_all]:checked').val() === "False") {
+ return $('#suggestive').show();
+ } else {
+ return $('#suggestive').hide();
+ }
+ });
+ $("#marker_regression_compute").click(function() {
+ var form_data, url;
+ $("#progress_bar_container").modal();
+ url = "/marker_regression";
+ form_data = $('#trait_data_form').serialize();
+ console.log("form_data is:", form_data);
+ $.ajax({
+ type: "POST",
+ url: url,
+ data: form_data,
+ error: function(xhr, ajaxOptions, thrownError) {
+ alert("Sorry, an error occurred");
+ console.log(xhr);
+ clearInterval(_this.my_timer);
+ $('#progress_bar_container').modal('hide');
+ return $("body").html("We got an error.");
+ },
+ success: function(data) {
+ clearInterval(_this.my_timer);
+ $('#progress_bar_container').modal('hide');
+ return $("body").html(data);
+ }
+ });
+ console.log("settingInterval");
+ _this.my_timer = setInterval(get_progress, 1000);
+ return false;
+ });
composite_mapping_fields = function() {
return $(".composite_fields").toggle();
};
diff --git a/wqflask/wqflask/static/new/javascript/stats.js b/wqflask/wqflask/static/new/javascript/stats.js
index 36e96640..4cca0d13 100644
--- a/wqflask/wqflask/static/new/javascript/stats.js
+++ b/wqflask/wqflask/static/new/javascript/stats.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
var Stats, bxd_only;
diff --git a/wqflask/wqflask/static/new/javascript/validation.js b/wqflask/wqflask/static/new/javascript/validation.js
index 06ed196d..2ac477b5 100644
--- a/wqflask/wqflask/static/new/javascript/validation.js
+++ b/wqflask/wqflask/static/new/javascript/validation.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.3.3
+// Generated by CoffeeScript 1.4.0
(function() {
$(function() {
diff --git a/wqflask/wqflask/static/new/packages/DataTables/css/demo_page.css b/wqflask/wqflask/static/new/packages/DataTables/css/demo_page.css
index 89c62bb7..ba5b2a6c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/css/demo_page.css
+++ b/wqflask/wqflask/static/new/packages/DataTables/css/demo_page.css
@@ -104,4 +104,19 @@
height: 100px;
width: 100%;
overflow: auto;
-} \ No newline at end of file
+}
+
+#dt_example code {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ padding: 2px 4px !important;
+ white-space: nowrap;
+ font-size: 0.9em;
+
+ color: #D14;
+ background-color: #F7F7F9;
+
+ border: 1px solid #E1E1E8;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/css/demo_table.css b/wqflask/wqflask/static/new/packages/DataTables/css/demo_table.css
index f41a0042..12f352da 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/css/demo_table.css
+++ b/wqflask/wqflask/static/new/packages/DataTables/css/demo_table.css
@@ -201,7 +201,8 @@ table.display td.center {
background: url('../images/sort_desc_disabled.png') no-repeat center right;
}
-th:active {
+table.display thead th:active,
+table.display thead td:active {
outline: none;
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/css/demo_table_jui.css b/wqflask/wqflask/static/new/packages/DataTables/css/demo_table_jui.css
index de7c8426..a210af51 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/css/demo_table_jui.css
+++ b/wqflask/wqflask/static/new/packages/DataTables/css/demo_table_jui.css
@@ -82,7 +82,6 @@ div.dataTables_wrapper .ui-widget-header {
table.display thead th div.DataTables_sort_wrapper {
position: relative;
padding-right: 20px;
- padding-right: 20px;
}
table.display thead th div.DataTables_sort_wrapper span {
@@ -147,30 +146,6 @@ table.display thead th div.DataTables_sort_wrapper span {
text-align: right;
}
-/* Pagination nested */
-.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
- height: 19px;
- width: 19px;
- margin-left: 3px;
- float: left;
-}
-
-.paginate_disabled_previous {
- background-image: url('../images/back_disabled.jpg');
-}
-
-.paginate_enabled_previous {
- background-image: url('../images/back_enabled.jpg');
-}
-
-.paginate_disabled_next {
- background-image: url('../images/forward_disabled.jpg');
-}
-
-.paginate_enabled_next {
- background-image: url('../images/forward_enabled.jpg');
-}
-
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables.css b/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables.css
index 83df98ea..7da7faec 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables.css
+++ b/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables.css
@@ -201,7 +201,8 @@ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
.sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; }
.sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; }
-table.dataTable th:active {
+table.dataTable thead th:active,
+table.dataTable thead td:active {
outline: none;
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables_themeroller.css b/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables_themeroller.css
index 55661c6d..cf1d4ed7 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables_themeroller.css
+++ b/wqflask/wqflask/static/new/packages/DataTables/css/jquery.dataTables_themeroller.css
@@ -216,7 +216,6 @@ table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
table.dataTable thead th div.DataTables_sort_wrapper {
position: relative;
padding-right: 20px;
- padding-right: 20px;
}
table.dataTable thead th div.DataTables_sort_wrapper span {
diff --git a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.js b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.js
index ae5d1750..1d8a220b 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.js
@@ -1,7 +1,7 @@
/**
* @summary DataTables
* @description Paginate, search and sort HTML tables
- * @version 1.9.2
+ * @version 1.9.4
* @file jquery.dataTables.js
* @author Allan Jardine (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
@@ -21,9 +21,28 @@
*/
/*jslint evil: true, undef: true, browser: true */
-/*globals $, jQuery,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros*/
+/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/
-(/** @lends <global> */function($, window, document, undefined) {
+(/** @lends <global> */function( window, document, undefined ) {
+
+(function( factory ) {
+ "use strict";
+
+ // Define as an AMD module if possible
+ if ( typeof define === 'function' && define.amd )
+ {
+ define( ['jquery'], factory );
+ }
+ /* Define using browser globals otherwise
+ * Prevent multiple instantiations if the script is loaded twice
+ */
+ else if ( jQuery && !jQuery.fn.dataTable )
+ {
+ factory( jQuery );
+ }
+}
+(/** @lends <global> */function( $ ) {
+ "use strict";
/**
* DataTables is a plug-in for the jQuery Javascript library. It is a
* highly flexible tool, based upon the foundations of progressive
@@ -76,7 +95,7 @@
"nTh": nTh ? nTh : document.createElement('th'),
"sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '',
"aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol],
- "mDataProp": oDefaults.mDataProp ? oDefaults.oDefaults : iCol
+ "mData": oDefaults.mData ? oDefaults.oDefaults : iCol
} );
oSettings.aoColumns.push( oCol );
@@ -115,7 +134,7 @@
* Apply options for a column
* @param {object} oSettings dataTables settings object
* @param {int} iCol column index to consider
- * @param {object} oOptions object with sType, bVisible and bSearchable
+ * @param {object} oOptions object with sType, bVisible and bSearchable etc
* @memberof DataTable#oApi
*/
function _fnColumnOptions( oSettings, iCol, oOptions )
@@ -125,6 +144,12 @@
/* User specified column options */
if ( oOptions !== undefined && oOptions !== null )
{
+ /* Backwards compatibility for mDataProp */
+ if ( oOptions.mDataProp && !oOptions.mData )
+ {
+ oOptions.mData = oOptions.mDataProp;
+ }
+
if ( oOptions.sType !== undefined )
{
oCol.sType = oOptions.sType;
@@ -145,8 +170,19 @@
}
/* Cache the data get and set functions for speed */
- oCol.fnGetData = _fnGetObjectDataFn( oCol.mDataProp );
- oCol.fnSetData = _fnSetObjectDataFn( oCol.mDataProp );
+ var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;
+ var mData = _fnGetObjectDataFn( oCol.mData );
+
+ oCol.fnGetData = function (oData, sSpecific) {
+ var innerData = mData( oData, sSpecific );
+
+ if ( oCol.mRender && (sSpecific && sSpecific !== '') )
+ {
+ return mRender( innerData, sSpecific, oData );
+ }
+ return innerData;
+ };
+ oCol.fnSetData = _fnSetObjectDataFn( oCol.mData );
/* Feature sorting overrides column specific when off */
if ( !oSettings.oFeatures.bSort )
@@ -161,11 +197,10 @@
oCol.sSortingClass = oSettings.oClasses.sSortableNone;
oCol.sSortingClassJUI = "";
}
- else if ( oCol.bSortable ||
- ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) )
+ else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 )
{
- oCol.sSortingClass = oSettings.oClasses.sSortable;
- oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI;
+ oCol.sSortingClass = oSettings.oClasses.sSortable;
+ oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI;
}
else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 )
{
@@ -188,7 +223,7 @@
*/
function _fnAdjustColumnSizing ( oSettings )
{
- /* Not interested in doing column width calculation if autowidth is disabled */
+ /* Not interested in doing column width calculation if auto-width is disabled */
if ( oSettings.oFeatures.bAutoWidth === false )
{
return false;
@@ -212,22 +247,11 @@
*/
function _fnVisibleToColumnIndex( oSettings, iMatch )
{
- var iColumn = -1;
-
- for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
- {
- if ( oSettings.aoColumns[i].bVisible === true )
- {
- iColumn++;
- }
-
- if ( iColumn == iMatch )
- {
- return i;
- }
- }
-
- return null;
+ var aiVis = _fnGetColumns( oSettings, 'bVisible' );
+
+ return typeof aiVis[iMatch] === 'number' ?
+ aiVis[iMatch] :
+ null;
}
@@ -241,41 +265,44 @@
*/
function _fnColumnIndexToVisible( oSettings, iMatch )
{
- var iVisible = -1;
- for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
- {
- if ( oSettings.aoColumns[i].bVisible === true )
- {
- iVisible++;
- }
-
- if ( i == iMatch )
- {
- return oSettings.aoColumns[i].bVisible === true ? iVisible : null;
- }
- }
-
- return null;
+ var aiVis = _fnGetColumns( oSettings, 'bVisible' );
+ var iPos = $.inArray( iMatch, aiVis );
+
+ return iPos !== -1 ? iPos : null;
}
/**
* Get the number of visible columns
+ * @param {object} oSettings dataTables settings object
* @returns {int} i the number of visible columns
- * @param {object} oS dataTables settings object
* @memberof DataTable#oApi
*/
- function _fnVisbleColumns( oS )
+ function _fnVisbleColumns( oSettings )
{
- var iVis = 0;
- for ( var i=0 ; i<oS.aoColumns.length ; i++ )
- {
- if ( oS.aoColumns[i].bVisible === true )
- {
- iVis++;
+ return _fnGetColumns( oSettings, 'bVisible' ).length;
+ }
+
+
+ /**
+ * Get an array of column indexes that match a given property
+ * @param {object} oSettings dataTables settings object
+ * @param {string} sParam Parameter in aoColumns to look for - typically
+ * bVisible or bSearchable
+ * @returns {array} Array of indexes with matched properties
+ * @memberof DataTable#oApi
+ */
+ function _fnGetColumns( oSettings, sParam )
+ {
+ var a = [];
+
+ $.map( oSettings.aoColumns, function(val, i) {
+ if ( val[sParam] ) {
+ a.push( i );
}
- }
- return iVis;
+ } );
+
+ return a;
}
@@ -423,8 +450,6 @@
}
}
-
-
/**
* Add a data array to the table, creating DOM node etc. This is the parallel to
* _fnGatherData, but for adding rows from a Javascript source, rather than a
@@ -455,8 +480,8 @@
{
oCol = oSettings.aoColumns[i];
- /* Use rendered data for filtering/sorting */
- if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mDataProp !== null )
+ /* Use rendered data for filtering / sorting */
+ if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mData !== null )
{
_fnSetCellData( oSettings, iRow, i, _fnRender(oSettings, iRow, i) );
}
@@ -489,7 +514,7 @@
/* Add to the display array */
oSettings.aiDisplayMaster.push( iRow );
- /* Create the DOM imformation */
+ /* Create the DOM information */
if ( !oSettings.oFeatures.bDeferRender )
{
_fnCreateTr( oSettings, iRow );
@@ -507,7 +532,7 @@
function _fnGatherData( oSettings )
{
var iLoop, i, iLen, j, jLen, jInner,
- nTds, nTrs, nTd, aLocalData, iThisIndex,
+ nTds, nTrs, nTd, nTr, aLocalData, iThisIndex,
iRow, iRows, iColumn, iColumns, sNodeName,
oCol, oData;
@@ -518,31 +543,32 @@
*/
if ( oSettings.bDeferLoading || oSettings.sAjaxSource === null )
{
- nTrs = oSettings.nTBody.childNodes;
- for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
+ nTr = oSettings.nTBody.firstChild;
+ while ( nTr )
{
- if ( nTrs[i].nodeName.toUpperCase() == "TR" )
+ if ( nTr.nodeName.toUpperCase() == "TR" )
{
iThisIndex = oSettings.aoData.length;
- nTrs[i]._DT_RowIndex = iThisIndex;
+ nTr._DT_RowIndex = iThisIndex;
oSettings.aoData.push( $.extend( true, {}, DataTable.models.oRow, {
- "nTr": nTrs[i]
+ "nTr": nTr
} ) );
-
+
oSettings.aiDisplayMaster.push( iThisIndex );
- nTds = nTrs[i].childNodes;
+ nTd = nTr.firstChild;
jInner = 0;
-
- for ( j=0, jLen=nTds.length ; j<jLen ; j++ )
+ while ( nTd )
{
- sNodeName = nTds[j].nodeName.toUpperCase();
+ sNodeName = nTd.nodeName.toUpperCase();
if ( sNodeName == "TD" || sNodeName == "TH" )
{
- _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTds[j].innerHTML) );
+ _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTd.innerHTML) );
jInner++;
}
+ nTd = nTd.nextSibling;
}
}
+ nTr = nTr.nextSibling;
}
}
@@ -554,14 +580,15 @@
nTds = [];
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
{
- for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ )
+ nTd = nTrs[i].firstChild;
+ while ( nTd )
{
- nTd = nTrs[i].childNodes[j];
sNodeName = nTd.nodeName.toUpperCase();
if ( sNodeName == "TD" || sNodeName == "TH" )
{
nTds.push( nTd );
}
+ nTd = nTd.nextSibling;
}
}
@@ -611,8 +638,16 @@
}
}
- if ( typeof oCol.mDataProp === 'function' )
+ if ( oCol.mRender )
+ {
+ // mRender has been defined, so we need to get the value and set it
+ nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' );
+ }
+ else if ( oCol.mData !== iColumn )
{
+ // If mData is not the same as the column number, then we need to
+ // get the dev set value. If it is the column, no point in wasting
+ // time setting the value that is already there!
nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' );
}
@@ -623,7 +658,7 @@
nCell.innerHTML = sRendered;
if ( oCol.bUseRendered )
{
- /* Use the rendered data for filtering/sorting */
+ /* Use the rendered data for filtering / sorting */
_fnSetCellData( oSettings, iRow, iColumn, sRendered );
}
}
@@ -634,7 +669,7 @@
nCell.className += ' '+oCol.sClass;
}
- /* Column visability */
+ /* Column visibility */
if ( !bVisible )
{
oData._anHidden[iColumn] = nCell;
@@ -708,15 +743,16 @@
* @param {object} oSettings dataTables settings object
* @param {int} iRow aoData row id
* @param {string} sSpecific data get type ('type' 'filter' 'sort')
+ * @param {array} aiColumns Array of column indexes to get data from
* @returns {array} Data array
* @memberof DataTable#oApi
*/
- function _fnGetRowData( oSettings, iRow, sSpecific )
+ function _fnGetRowData( oSettings, iRow, sSpecific, aiColumns )
{
var out = [];
- for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
+ for ( var i=0, iLen=aiColumns.length ; i<iLen ; i++ )
{
- out.push( _fnGetCellData( oSettings, iRow, i, sSpecific ) );
+ out.push( _fnGetCellData( oSettings, iRow, aiColumns[i], sSpecific ) );
}
return out;
}
@@ -742,7 +778,7 @@
if ( oSettings.iDrawError != oSettings.iDraw && oCol.sDefaultContent === null )
{
_fnLog( oSettings, 0, "Requested unknown parameter "+
- (typeof oCol.mDataProp=='function' ? '{mDataprop function}' : "'"+oCol.mDataProp+"'")+
+ (typeof oCol.mData=='function' ? '{mData function}' : "'"+oCol.mData+"'")+
" from the data source for row "+iRow );
oSettings.iDrawError = oSettings.iDraw;
}
@@ -785,6 +821,9 @@
}
+ // Private variable that is used to match array syntax in the data property object
+ var __reArray = /\[.*?\]$/;
+
/**
* Return a function that can be used to get data from a source object, taking
* into account the ability to use nested objects as a source
@@ -803,30 +842,71 @@
}
else if ( typeof mSource === 'function' )
{
- return function (data, type) {
- return mSource( data, type );
+ return function (data, type, extra) {
+ return mSource( data, type, extra );
};
}
- else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 )
+ else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) )
{
/* If there is a . in the source string then the data source is in a
* nested object so we loop over the data for each level to get the next
- * level down. On each loop we test for undefined, and if found immediatly
+ * level down. On each loop we test for undefined, and if found immediately
* return. This allows entire objects to be missing and sDefaultContent to
* be used if defined, rather than throwing an error
*/
- var a = mSource.split('.');
- return function (data, type) {
- for ( var i=0, iLen=a.length ; i<iLen ; i++ )
+ var fetchData = function (data, type, src) {
+ var a = src.split('.');
+ var arrayNotation, out, innerSrc;
+
+ if ( src !== "" )
{
- data = data[ a[i] ];
- if ( data === undefined )
+ for ( var i=0, iLen=a.length ; i<iLen ; i++ )
{
- return undefined;
+ // Check if we are dealing with an array notation request
+ arrayNotation = a[i].match(__reArray);
+
+ if ( arrayNotation ) {
+ a[i] = a[i].replace(__reArray, '');
+
+ // Condition allows simply [] to be passed in
+ if ( a[i] !== "" ) {
+ data = data[ a[i] ];
+ }
+ out = [];
+
+ // Get the remainder of the nested object to get
+ a.splice( 0, i+1 );
+ innerSrc = a.join('.');
+
+ // Traverse each entry in the array getting the properties requested
+ for ( var j=0, jLen=data.length ; j<jLen ; j++ ) {
+ out.push( fetchData( data[j], type, innerSrc ) );
+ }
+
+ // If a string is given in between the array notation indicators, that
+ // is used to join the strings together, otherwise an array is returned
+ var join = arrayNotation[0].substring(1, arrayNotation[0].length-1);
+ data = (join==="") ? out : out.join(join);
+
+ // The inner call to fetchData has already traversed through the remainder
+ // of the source requested, so we exit from the loop
+ break;
+ }
+
+ if ( data === null || data[ a[i] ] === undefined )
+ {
+ return undefined;
+ }
+ data = data[ a[i] ];
}
}
+
return data;
};
+
+ return function (data, type) {
+ return fetchData( data, type, mSource );
+ };
}
else
{
@@ -858,22 +938,57 @@
mSource( data, 'set', val );
};
}
- else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 )
+ else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) )
{
- /* Like the get, we need to get data from a nested object. */
- var a = mSource.split('.');
- return function (data, val) {
+ /* Like the get, we need to get data from a nested object */
+ var setData = function (data, val, src) {
+ var a = src.split('.'), b;
+ var arrayNotation, o, innerSrc;
+
for ( var i=0, iLen=a.length-1 ; i<iLen ; i++ )
{
+ // Check if we are dealing with an array notation request
+ arrayNotation = a[i].match(__reArray);
+
+ if ( arrayNotation )
+ {
+ a[i] = a[i].replace(__reArray, '');
+ data[ a[i] ] = [];
+
+ // Get the remainder of the nested object to set so we can recurse
+ b = a.slice();
+ b.splice( 0, i+1 );
+ innerSrc = b.join('.');
+
+ // Traverse each entry in the array setting the properties requested
+ for ( var j=0, jLen=val.length ; j<jLen ; j++ )
+ {
+ o = {};
+ setData( o, val[j], innerSrc );
+ data[ a[i] ].push( o );
+ }
+
+ // The inner call to setData has already traversed through the remainder
+ // of the source and has set the data, thus we can exit here
+ return;
+ }
+
// If the nested object doesn't currently exist - since we are
// trying to set the value - create it
- if ( data[ a[i] ] === undefined )
+ if ( data[ a[i] ] === null || data[ a[i] ] === undefined )
{
data[ a[i] ] = {};
}
data = data[ a[i] ];
}
- data[ a[a.length-1] ] = val;
+
+ // If array notation is used, we just want to strip it and use the property name
+ // and assign the value. If it isn't used, then we get the result we want anyway
+ data[ a[a.length-1].replace(__reArray, '') ] = val;
+ };
+
+ return function (data, val) {
+ return setData( data, val, mSource );
};
}
else
@@ -966,10 +1081,9 @@
"iDataColumn": iCol,
"oSettings": oSettings,
"aData": oSettings.aoData[iRow]._aData,
- "mDataProp": oCol.mDataProp
+ "mDataProp": oCol.mData
}, _fnGetCellData(oSettings, iRow, iCol, 'display') );
}
-
/**
* Create a new TR element (and it's TD children) for a row
* @param {object} oSettings dataTables settings object
@@ -998,7 +1112,7 @@
if ( oData._aData.DT_RowClass )
{
- $(oData.nTr).addClass( oData._aData.DT_RowClass );
+ oData.nTr.className = oData._aData.DT_RowClass;
}
/* Process each column */
@@ -1010,7 +1124,7 @@
/* Render if needed - if bUseRendered is true then we already have the rendered
* value in the data source - so can just use that
*/
- nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mDataProp === null)) ?
+ nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mData === null)) ?
_fnRender( oSettings, iRow, i ) :
_fnGetCellData( oSettings, iRow, i, 'display' );
@@ -1051,7 +1165,7 @@
function _fnBuildHead( oSettings )
{
var i, nTh, iLen, j, jLen;
- var iThs = oSettings.nTHead.getElementsByTagName('th').length;
+ var iThs = $('th, td', oSettings.nTHead).length;
var iCorrector = 0;
var jqChildren;
@@ -1350,7 +1464,7 @@
}
}
- /* Row callback functions - might want to manipule the row */
+ /* Row callback functions - might want to manipulate the row */
_fnCallbackFire( oSettings, 'aoRowCallback', null,
[nRow, oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j] );
@@ -1662,10 +1776,12 @@
function _fnDetectHeader ( aLayout, nThead )
{
var nTrs = $(nThead).children('tr');
- var nCell;
- var i, j, k, l, iLen, jLen, iColShifted;
+ var nTr, nCell;
+ var i, k, l, iLen, jLen, iColShifted, iColumn, iColspan, iRowspan;
+ var bUnique;
var fnShiftCol = function ( a, i, j ) {
- while ( a[i][j] ) {
+ var k = a[i];
+ while ( k[j] ) {
j++;
}
return j;
@@ -1682,19 +1798,18 @@
/* Calculate a layout array */
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
{
- var iColumn = 0;
+ nTr = nTrs[i];
+ iColumn = 0;
/* For every cell in the row... */
- for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ )
- {
- nCell = nTrs[i].childNodes[j];
-
+ nCell = nTr.firstChild;
+ while ( nCell ) {
if ( nCell.nodeName.toUpperCase() == "TD" ||
nCell.nodeName.toUpperCase() == "TH" )
{
/* Get the col and rowspan attributes from the DOM and sanitise them */
- var iColspan = nCell.getAttribute('colspan') * 1;
- var iRowspan = nCell.getAttribute('rowspan') * 1;
+ iColspan = nCell.getAttribute('colspan') * 1;
+ iRowspan = nCell.getAttribute('rowspan') * 1;
iColspan = (!iColspan || iColspan===0 || iColspan===1) ? 1 : iColspan;
iRowspan = (!iRowspan || iRowspan===0 || iRowspan===1) ? 1 : iRowspan;
@@ -1703,6 +1818,9 @@
*/
iColShifted = fnShiftCol( aLayout, i, iColumn );
+ /* Cache calculation for unique columns */
+ bUnique = iColspan === 1 ? true : false;
+
/* If there is col / rowspan, copy the information into the layout grid */
for ( l=0 ; l<iColspan ; l++ )
{
@@ -1710,12 +1828,13 @@
{
aLayout[i+k][iColShifted+l] = {
"cell": nCell,
- "unique": iColspan == 1 ? true : false
+ "unique": bUnique
};
- aLayout[i+k].nTr = nTrs[i];
+ aLayout[i+k].nTr = nTr;
}
}
}
+ nCell = nCell.nextSibling;
}
}
}
@@ -1726,7 +1845,7 @@
* @param {object} oSettings dataTables settings object
* @param {node} nHeader automatically detect the layout from this node - optional
* @param {array} aLayout thead/tfoot layout from _fnDetectHeader - optional
- * @returns array {node} aReturn list of unique ths
+ * @returns array {node} aReturn list of unique th's
* @memberof DataTable#oApi
*/
function _fnGetUniqueThs ( oSettings, nHeader, aLayout )
@@ -1809,7 +1928,7 @@
for ( i=0 ; i<iColumns ; i++ )
{
- mDataProp = oSettings.aoColumns[i].mDataProp;
+ mDataProp = oSettings.aoColumns[i].mData;
aoData.push( { "name": "mDataProp_"+i, "value": typeof(mDataProp)==="function" ? 'function' : mDataProp } );
}
@@ -1859,7 +1978,7 @@
/**
- * Add Ajax parameters from plugins
+ * Add Ajax parameters from plug-ins
* @param {object} oSettings dataTables settings object
* @param array {objects} aoData name/value pairs to send to the server
* @memberof DataTable#oApi
@@ -1886,7 +2005,7 @@
if ( json.sEcho !== undefined )
{
/* Protect against old returns over-writing a new one. Possible when you get
- * very fast interaction, and later queires are completed much faster
+ * very fast interaction, and later queries are completed much faster
*/
if ( json.sEcho*1 < oSettings.iDraw )
{
@@ -2077,15 +2196,22 @@
function _fnFilterCustom( oSettings )
{
var afnFilters = DataTable.ext.afnFiltering;
+ var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' );
+
for ( var i=0, iLen=afnFilters.length ; i<iLen ; i++ )
{
var iCorrector = 0;
for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ )
{
var iDisIndex = oSettings.aiDisplay[j-iCorrector];
+ var bTest = afnFilters[i](
+ oSettings,
+ _fnGetRowData( oSettings, iDisIndex, 'filter', aiFilterColumns ),
+ iDisIndex
+ );
/* Check if we should use this row based on the filtering function */
- if ( !afnFilters[i]( oSettings, _fnGetRowData( oSettings, iDisIndex, 'filter' ), iDisIndex ) )
+ if ( !bTest )
{
oSettings.aiDisplay.splice( j-iCorrector, 1 );
iCorrector++;
@@ -2224,15 +2350,19 @@
if ( !oSettings.oFeatures.bServerSide )
{
/* Clear out the old data */
- oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length );
-
- var aArray = (iMaster && iMaster===1) ?
- oSettings.aiDisplayMaster : oSettings.aiDisplay;
+ oSettings.asDataSearch = [];
+
+ var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' );
+ var aiIndex = (iMaster===1) ?
+ oSettings.aiDisplayMaster :
+ oSettings.aiDisplay;
- for ( var i=0, iLen=aArray.length ; i<iLen ; i++ )
+ for ( var i=0, iLen=aiIndex.length ; i<iLen ; i++ )
{
- oSettings.asDataSearch[i] = _fnBuildSearchRow( oSettings,
- _fnGetRowData( oSettings, aArray[i], 'filter' ) );
+ oSettings.asDataSearch[i] = _fnBuildSearchRow(
+ oSettings,
+ _fnGetRowData( oSettings, aiIndex[i], 'filter', aiFilterColumns )
+ );
}
}
}
@@ -2246,33 +2376,16 @@
*/
function _fnBuildSearchRow( oSettings, aData )
{
- var sSearch = '';
- if ( oSettings.__nTmpFilter === undefined )
- {
- oSettings.__nTmpFilter = document.createElement('div');
- }
- var nTmp = oSettings.__nTmpFilter;
-
- for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
- {
- if ( oSettings.aoColumns[j].bSearchable )
- {
- var sData = aData[j];
- sSearch += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' ';
- }
- }
+ var sSearch = aData.join(' ');
/* If it looks like there is an HTML entity in the string, attempt to decode it */
if ( sSearch.indexOf('&') !== -1 )
{
- nTmp.innerHTML = sSearch;
- sSearch = nTmp.textContent ? nTmp.textContent : nTmp.innerText;
-
- /* IE and Opera appear to put an newline where there is a <br> tag - remove it */
- sSearch = sSearch.replace(/\n/g," ").replace(/\r/g,"");
+ sSearch = $('<div>').html(sSearch).text();
}
- return sSearch;
+ // Strip newline characters
+ return sSearch.replace( /[\n\r]/g, " " );
}
/**
@@ -2280,7 +2393,7 @@
* @param {string} sSearch string to search for
* @param {bool} bRegex treat as a regular expression or not
* @param {bool} bSmart perform smart filtering or not
- * @param {bool} bCaseInsensitive Do case insenstive matching or not
+ * @param {bool} bCaseInsensitive Do case insensitive matching or not
* @returns {RegExp} constructed object
* @memberof DataTable#oApi
*/
@@ -2335,7 +2448,7 @@
/**
- * scape a string stuch that it can be used in a regular expression
+ * scape a string such that it can be used in a regular expression
* @param {string} sVal string to escape
* @returns {string} escaped string
* @memberof DataTable#oApi
@@ -2348,7 +2461,6 @@
}
-
/**
* Generate the node required for the info display
* @param {object} oSettings dataTables settings object
@@ -2399,25 +2511,20 @@
iTotal = oSettings.fnRecordsDisplay(),
sOut;
- if ( iTotal === 0 && iTotal == iMax )
+ if ( iTotal === 0 )
{
/* Empty record set */
sOut = oLang.sInfoEmpty;
}
- else if ( iTotal === 0 )
- {
- /* Empty record set after filtering */
- sOut = oLang.sInfoEmpty +' '+ oLang.sInfoFiltered;
- }
- else if ( iTotal == iMax )
- {
+ else {
/* Normal record set */
sOut = oLang.sInfo;
}
- else
+
+ if ( iTotal != iMax )
{
/* Record set after filtering */
- sOut = oLang.sInfo +' '+ oLang.sInfoFiltered;
+ sOut += ' ' + oLang.sInfoFiltered;
}
// Convert the macros
@@ -2458,10 +2565,10 @@
}
return str.
- replace('_START_', sStart).
- replace('_END_', sEnd).
- replace('_TOTAL_', sTotal).
- replace('_MAX_', sMax);
+ replace(/_START_/g, sStart).
+ replace(/_END_/g, sEnd).
+ replace(/_TOTAL_/g, sTotal).
+ replace(/_MAX_/g, sMax);
}
@@ -2712,7 +2819,7 @@
/**
- * Rcalculate the end point based on the start point
+ * Recalculate the end point based on the start point
* @param {object} oSettings dataTables settings object
* @memberof DataTable#oApi
*/
@@ -2816,7 +2923,7 @@
oSettings._iDisplayStart - oSettings._iDisplayLength :
0;
- /* Correct for underrun */
+ /* Correct for under-run */
if ( oSettings._iDisplayStart < 0 )
{
oSettings._iDisplayStart = 0;
@@ -2902,8 +3009,6 @@
$(oSettings.oInstance).trigger('processing', [oSettings, bShow]);
}
-
-
/**
* Add any control elements for the table - specifically scrolling
* @param {object} oSettings dataTables settings object
@@ -3012,7 +3117,7 @@
/*
* Sizing
*/
- /* When xscrolling add the width and a scroller to move the header with the body */
+ /* When x-scrolling add the width and a scroller to move the header with the body */
if ( oSettings.oScroll.sX !== "" )
{
nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX );
@@ -3095,10 +3200,18 @@
nScrollBody = o.nTable.parentNode,
i, iLen, j, jLen, anHeadToSize, anHeadSizers, anFootSizers, anFootToSize, oStyle, iVis,
nTheadSize, nTfootSize,
- iWidth, aApplied=[], iSanityWidth,
+ iWidth, aApplied=[], aAppliedFooter=[], iSanityWidth,
nScrollFootInner = (o.nTFoot !== null) ? o.nScrollFoot.getElementsByTagName('div')[0] : null,
nScrollFootTable = (o.nTFoot !== null) ? nScrollFootInner.getElementsByTagName('table')[0] : null,
- ie67 = $.browser.msie && $.browser.version <= 7;
+ ie67 = o.oBrowser.bScrollOversize,
+ zeroOut = function(nSizer) {
+ oStyle = nSizer.style;
+ oStyle.paddingTop = "0";
+ oStyle.paddingBottom = "0";
+ oStyle.borderTopWidth = "0";
+ oStyle.borderBottomWidth = "0";
+ oStyle.height = 0;
+ };
/*
* 1. Re-create the table inside the scrolling div
@@ -3110,11 +3223,15 @@
/* Clone the current header and footer elements and then place it into the inner table */
nTheadSize = $(o.nTHead).clone()[0];
o.nTable.insertBefore( nTheadSize, o.nTable.childNodes[0] );
+ anHeadToSize = o.nTHead.getElementsByTagName('tr');
+ anHeadSizers = nTheadSize.getElementsByTagName('tr');
if ( o.nTFoot !== null )
{
nTfootSize = $(o.nTFoot).clone()[0];
o.nTable.insertBefore( nTfootSize, o.nTable.childNodes[1] );
+ anFootToSize = o.nTFoot.getElementsByTagName('tr');
+ anFootSizers = nTfootSize.getElementsByTagName('tr');
}
/*
@@ -3123,7 +3240,7 @@
/* Remove old sizing and apply the calculated column widths
* Get the unique column headers in the newly created (cloned) header. We want to apply the
- * calclated sizes to this header
+ * calculated sizes to this header
*/
if ( o.oScroll.sX === "" )
{
@@ -3142,7 +3259,7 @@
{
_fnApplyToChildren( function(n) {
n.style.width = "";
- }, nTfootSize.getElementsByTagName('tr') );
+ }, anFootSizers );
}
// If scroll collapse is enabled, when we put the headers back into the body for sizing, we
@@ -3204,41 +3321,38 @@
/* We want the hidden header to have zero height, so remove padding and borders. Then
* set the width based on the real headers
*/
- anHeadToSize = o.nTHead.getElementsByTagName('tr');
- anHeadSizers = nTheadSize.getElementsByTagName('tr');
- _fnApplyToChildren( function(nSizer, nToSize) {
- oStyle = nSizer.style;
- oStyle.paddingTop = "0";
- oStyle.paddingBottom = "0";
- oStyle.borderTopWidth = "0";
- oStyle.borderBottomWidth = "0";
- oStyle.height = 0;
-
- iWidth = $(nSizer).width();
- nToSize.style.width = _fnStringToCss( iWidth );
- aApplied.push( iWidth );
- }, anHeadSizers, anHeadToSize );
+ // Apply all styles in one pass. Invalidates layout only once because we don't read any
+ // DOM properties.
+ _fnApplyToChildren( zeroOut, anHeadSizers );
+
+ // Read all widths in next pass. Forces layout only once because we do not change
+ // any DOM properties.
+ _fnApplyToChildren( function(nSizer) {
+ aApplied.push( _fnStringToCss( $(nSizer).width() ) );
+ }, anHeadSizers );
+
+ // Apply all widths in final pass. Invalidates layout only once because we do not
+ // read any DOM properties.
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = aApplied[i];
+ }, anHeadToSize );
+
$(anHeadSizers).height(0);
+ /* Same again with the footer if we have one */
if ( o.nTFoot !== null )
{
- /* Clone the current footer and then place it into the body table as a "hidden header" */
- anFootSizers = nTfootSize.getElementsByTagName('tr');
- anFootToSize = o.nTFoot.getElementsByTagName('tr');
-
- _fnApplyToChildren( function(nSizer, nToSize) {
- oStyle = nSizer.style;
- oStyle.paddingTop = "0";
- oStyle.paddingBottom = "0";
- oStyle.borderTopWidth = "0";
- oStyle.borderBottomWidth = "0";
- oStyle.height = 0;
-
- iWidth = $(nSizer).width();
- nToSize.style.width = _fnStringToCss( iWidth );
- aApplied.push( iWidth );
- }, anFootSizers, anFootToSize );
+ _fnApplyToChildren( zeroOut, anFootSizers );
+
+ _fnApplyToChildren( function(nSizer) {
+ aAppliedFooter.push( _fnStringToCss( $(nSizer).width() ) );
+ }, anFootSizers );
+
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = aAppliedFooter[i];
+ }, anFootToSize );
+
$(anFootSizers).height(0);
}
@@ -3249,16 +3363,16 @@
/* "Hide" the header and footer that we used for the sizing. We want to also fix their width
* to what they currently are
*/
- _fnApplyToChildren( function(nSizer) {
+ _fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = "";
- nSizer.style.width = _fnStringToCss( aApplied.shift() );
+ nSizer.style.width = aApplied[i];
}, anHeadSizers );
if ( o.nTFoot !== null )
{
- _fnApplyToChildren( function(nSizer) {
+ _fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = "";
- nSizer.style.width = _fnStringToCss( aApplied.shift() );
+ nSizer.style.width = aAppliedFooter[i];
}, anFootSizers );
}
@@ -3281,11 +3395,11 @@
/* Apply the calculated minimum width to the table wrappers */
nScrollBody.style.width = _fnStringToCss( iCorrection );
- nScrollHeadInner.parentNode.style.width = _fnStringToCss( iCorrection );
+ o.nScrollHead.style.width = _fnStringToCss( iCorrection );
if ( o.nTFoot !== null )
{
- nScrollFootInner.parentNode.style.width = _fnStringToCss( iCorrection );
+ o.nScrollFoot.style.width = _fnStringToCss( iCorrection );
}
/* And give the user a warning that we've stopped the table getting too small */
@@ -3304,11 +3418,11 @@
else
{
nScrollBody.style.width = _fnStringToCss( '100%' );
- nScrollHeadInner.parentNode.style.width = _fnStringToCss( '100%' );
+ o.nScrollHead.style.width = _fnStringToCss( '100%' );
if ( o.nTFoot !== null )
{
- nScrollFootInner.parentNode.style.width = _fnStringToCss( '100%' );
+ o.nScrollFoot.style.width = _fnStringToCss( '100%' );
}
}
@@ -3357,7 +3471,7 @@
nScrollFootInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px";
}
- /* Adjust the position of the header incase we loose the y-scrollbar */
+ /* Adjust the position of the header in case we loose the y-scrollbar */
$(nScrollBody).scroll();
/* If sorting or filtering has occurred, jump the scrolling back to the top */
@@ -3378,27 +3492,34 @@
*/
function _fnApplyToChildren( fn, an1, an2 )
{
- for ( var i=0, iLen=an1.length ; i<iLen ; i++ )
+ var index=0, i=0, iLen=an1.length;
+ var nNode1, nNode2;
+
+ while ( i < iLen )
{
- for ( var j=0, jLen=an1[i].childNodes.length ; j<jLen ; j++ )
+ nNode1 = an1[i].firstChild;
+ nNode2 = an2 ? an2[i].firstChild : null;
+ while ( nNode1 )
{
- if ( an1[i].childNodes[j].nodeType == 1 )
+ if ( nNode1.nodeType === 1 )
{
if ( an2 )
{
- fn( an1[i].childNodes[j], an2[i].childNodes[j] );
+ fn( nNode1, nNode2, index );
}
else
{
- fn( an1[i].childNodes[j] );
+ fn( nNode1, index );
}
+ index++;
}
+ nNode1 = nNode1.nextSibling;
+ nNode2 = an2 ? nNode2.nextSibling : null;
}
+ i++;
}
}
-
-
/**
* Convert a CSS unit width to pixels (e.g. 2em)
* @param {string} sWidth width to be converted
@@ -3415,7 +3536,7 @@
if ( !nParent )
{
- nParent = document.getElementsByTagName('body')[0];
+ nParent = document.body;
}
var iWidth;
@@ -3445,6 +3566,7 @@
var i, iIndex, iCorrector, iWidth;
var oHeaders = $('th', oSettings.nTHead);
var widthAttr = oSettings.nTable.getAttribute('width');
+ var nWrapper = oSettings.nTable.parentNode;
/* Convert any user input sizes into pixel sizes */
for ( i=0 ; i<iColums ; i++ )
@@ -3456,7 +3578,7 @@
if ( oSettings.aoColumns[i].sWidth !== null )
{
iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig,
- oSettings.nTable.parentNode );
+ nWrapper );
if ( iTmpWidth !== null )
{
oSettings.aoColumns[i].sWidth = _fnStringToCss( iTmpWidth );
@@ -3556,7 +3678,6 @@
}
/* Build the table and 'display' it */
- var nWrapper = oSettings.nTable.parentNode;
nWrapper.appendChild( nCalcTmp );
/* When scrolling (X or Y) we want to set the width of the table as appropriate. However,
@@ -3683,7 +3804,7 @@
* Get the widest node
* @param {object} oSettings dataTables settings object
* @param {int} iCol column of interest
- * @returns {string} max strlens for each column
+ * @returns {node} widest table node
* @memberof DataTable#oApi
*/
function _fnGetWidestNode( oSettings, iCol )
@@ -3708,7 +3829,7 @@
* Get the maximum strlen for each data column
* @param {object} oSettings dataTables settings object
* @param {int} iCol column of interest
- * @returns {string} max strlens for each column
+ * @returns {string} max string length for each column
* @memberof DataTable#oApi
*/
function _fnGetMaxLenString( oSettings, iCol )
@@ -3802,8 +3923,6 @@
return (w1 - w2);
}
-
-
/**
* Change the order of the table
* @param {object} oSettings dataTables settings object
@@ -3830,7 +3949,7 @@
oSettings.aaSortingFixed.concat( oSettings.aaSorting ) :
oSettings.aaSorting.slice();
- /* If there is a sorting data type, and a fuction belonging to it, then we need to
+ /* If there is a sorting data type, and a function belonging to it, then we need to
* get the data from the developer's function and apply it for this column
*/
for ( i=0 ; i<aaSort.length ; i++ )
@@ -4012,17 +4131,17 @@
* twice - once for when bProcessing is enabled, and another time for when it is
* disabled, as we need to perform slightly different actions.
* Basically the issue here is that the Javascript engine in modern browsers don't
- * appear to allow the rendering engine to update the display while it is still excuting
+ * appear to allow the rendering engine to update the display while it is still executing
* it's thread (well - it does but only after long intervals). This means that the
* 'processing' display doesn't appear for a table sort. To break the js thread up a bit
* I force an execution break by using setTimeout - but this breaks the expected
* thread continuation for the end-developer's point of view (their code would execute
- * too early), so we on;y do it when we absolutely have to.
+ * too early), so we only do it when we absolutely have to.
*/
var fnInnerSorting = function () {
var iColumn, iNextSort;
- /* If the shift key is pressed then we are multipe column sorting */
+ /* If the shift key is pressed then we are multiple column sorting */
if ( e.shiftKey )
{
/* Are we already doing some kind of sort on this column? */
@@ -4195,10 +4314,10 @@
* Apply the required classes to the table body
* Note that this is given as a feature switch since it can significantly slow down a sort
* on large data sets (adding and removing of classes is always slow at the best of times..)
- * Further to this, note that this code is admitadly fairly ugly. It could be made a lot
- * simpiler using jQuery selectors and add/removeClass, but that is significantly slower
+ * Further to this, note that this code is admittedly fairly ugly. It could be made a lot
+ * simpler using jQuery selectors and add/removeClass, but that is significantly slower
* (on the order of 5 times slower) - hence the direct DOM manipulation here.
- * Note that for defered drawing we do use jQuery - the reason being that taking the first
+ * Note that for deferred drawing we do use jQuery - the reason being that taking the first
* row found to see if the whole column needs processed can miss classes since the first
* column might be new.
*/
@@ -4207,56 +4326,49 @@
if ( oSettings.oFeatures.bSort && oSettings.oFeatures.bSortClasses )
{
var nTds = _fnGetTdNodes( oSettings );
-
- /* Remove the old classes */
- if ( oSettings.oFeatures.bDeferRender )
+
+ /* Determine what the sorting class for each column should be */
+ var iClass, iTargetCol;
+ var asClasses = [];
+ for (i = 0; i < iColumns; i++)
{
- $(nTds).removeClass(sClass+'1 '+sClass+'2 '+sClass+'3');
+ asClasses.push("");
}
- else if ( nTds.length >= iColumns )
+ for (i = 0, iClass = 1; i < aaSort.length; i++)
{
- for ( i=0 ; i<iColumns ; i++ )
+ iTargetCol = parseInt( aaSort[i][0], 10 );
+ asClasses[iTargetCol] = sClass + iClass;
+
+ if ( iClass < 3 )
{
- if ( nTds[i].className.indexOf(sClass+"1") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"1", "" ) );
- }
- }
- else if ( nTds[i].className.indexOf(sClass+"2") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"2", "" ) );
- }
- }
- else if ( nTds[i].className.indexOf(sClass+"3") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( " "+sClass+"3", "" ) );
- }
- }
+ iClass++;
}
}
- /* Add the new classes to the table */
- var iClass = 1, iTargetCol;
- for ( i=0 ; i<aaSort.length ; i++ )
+ /* Make changes to the classes for each cell as needed */
+ var reClass = new RegExp(sClass + "[123]");
+ var sTmpClass, sCurrentClass, sNewClass;
+ for ( i=0, iLen=nTds.length; i<iLen; i++ )
{
- iTargetCol = parseInt( aaSort[i][0], 10 );
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
+ /* Determine which column we're looking at */
+ iTargetCol = i % iColumns;
+
+ /* What is the full list of classes now */
+ sCurrentClass = nTds[i].className;
+ /* What sorting class should be applied? */
+ sNewClass = asClasses[iTargetCol];
+ /* What would the new full list be if we did a replacement? */
+ sTmpClass = sCurrentClass.replace(reClass, sNewClass);
+
+ if ( sTmpClass != sCurrentClass )
{
- nTds[(iColumns*j)+iTargetCol].className += " "+sClass+iClass;
+ /* We changed something */
+ nTds[i].className = $.trim( sTmpClass );
}
-
- if ( iClass < 3 )
+ else if ( sNewClass.length > 0 && sCurrentClass.indexOf(sNewClass) == -1 )
{
- iClass++;
+ /* We need to add a class */
+ nTds[i].className = sCurrentClass + " " + sNewClass;
}
}
}
@@ -4344,7 +4456,7 @@
$.extend( true, oSettings.aoPreSearchCols, oData.aoSearchCols );
/* Column visibility state
- * Pass back visibiliy settings to the init handler, but to do not here override
+ * Pass back visibility settings to the init handler, but to do not here override
* the init object that the user might have passed in
*/
oInit.saved_aoColumns = [];
@@ -4396,35 +4508,50 @@
}
/* Are we going to go over the cookie limit of 4KiB? If so, try to delete a cookies
- * belonging to DataTables. This is FAR from bullet proof
+ * belonging to DataTables.
*/
- var sOldName="", iOldTime=9999999999999;
- var iLength = _fnReadCookie( sNameFile )!==null ? document.cookie.length :
- sFullCookie.length + document.cookie.length;
+ var
+ aCookies =document.cookie.split(';'),
+ iNewCookieLen = sFullCookie.split(';')[0].length,
+ aOldCookies = [];
- if ( iLength+10 > 4096 ) /* Magic 10 for padding */
+ if ( iNewCookieLen+document.cookie.length+10 > 4096 ) /* Magic 10 for padding */
{
- var aCookies =document.cookie.split(';');
for ( var i=0, iLen=aCookies.length ; i<iLen ; i++ )
{
if ( aCookies[i].indexOf( sBaseName ) != -1 )
{
/* It's a DataTables cookie, so eval it and check the time stamp */
var aSplitCookie = aCookies[i].split('=');
- try { oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' ); }
- catch( e ) { continue; }
-
- if ( oData.iCreate && oData.iCreate < iOldTime )
- {
- sOldName = aSplitCookie[0];
- iOldTime = oData.iCreate;
+ try {
+ oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' );
+
+ if ( oData && oData.iCreate )
+ {
+ aOldCookies.push( {
+ "name": aSplitCookie[0],
+ "time": oData.iCreate
+ } );
+ }
}
+ catch( e ) {}
}
}
-
- if ( sOldName !== "" )
- {
- document.cookie = sOldName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+
+
+ // Make sure we delete the oldest ones first
+ aOldCookies.sort( function (a, b) {
+ return b.time - a.time;
+ } );
+
+ // Eliminate as many old DataTables cookies as we need to
+ while ( iNewCookieLen + document.cookie.length + 10 > 4096 ) {
+ if ( aOldCookies.length === 0 ) {
+ // Deleted all DT cookies and still not enough space. Can't state save
+ return;
+ }
+
+ var old = aOldCookies.pop();
+ document.cookie = old.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+
aParts.join('/') + "/";
}
}
@@ -4464,7 +4591,6 @@
}
-
/**
* Return the settings object for a particular table
* @param {node} nTable table we are using as a dataTable
@@ -4518,7 +4644,7 @@
{
var anReturn = [];
var iCorrector;
- var anTds;
+ var anTds, nTd;
var iRow, iRows=oSettings.aoData.length,
iColumn, iColumns, oData, sNodeName, iStart=0, iEnd=iRows;
@@ -4536,13 +4662,15 @@
{
/* get the TD child nodes - taking into account text etc nodes */
anTds = [];
- for ( iColumn=0, iColumns=oData.nTr.childNodes.length ; iColumn<iColumns ; iColumn++ )
+ nTd = oData.nTr.firstChild;
+ while ( nTd )
{
- sNodeName = oData.nTr.childNodes[iColumn].nodeName.toLowerCase();
+ sNodeName = nTd.nodeName.toLowerCase();
if ( sNodeName == 'td' || sNodeName == 'th' )
{
- anTds.push( oData.nTr.childNodes[iColumn] );
+ anTds.push( nTd );
}
+ nTd = nTd.nextSibling;
}
iCorrector = 0;
@@ -4631,17 +4759,21 @@
*/
function _fnExtend( oOut, oExtender )
{
+ var val;
+
for ( var prop in oExtender )
{
if ( oExtender.hasOwnProperty(prop) )
{
- if ( typeof oInit[prop] === 'object' && $.isArray(oExtender[prop]) === false )
+ val = oExtender[prop];
+
+ if ( typeof oInit[prop] === 'object' && val !== null && $.isArray(val) === false )
{
- $.extend( true, oOut[prop], oExtender[prop] );
+ $.extend( true, oOut[prop], val );
}
else
{
- oOut[prop] = oExtender[prop];
+ oOut[prop] = val;
}
}
}
@@ -4652,7 +4784,7 @@
/**
* Bind an event handers to allow a click or return key to activate the callback.
- * This is good for accessability since a return on the keyboard will have the
+ * This is good for accessibility since a return on the keyboard will have the
* same effect as a click, if the element has focus.
* @param {element} n Element to bind the action to
* @param {object} oData Data object to pass to the triggered function
@@ -4681,7 +4813,7 @@
* Register a callback function. Easily allows a callback function to be added to
* an array store of callback functions that can then all be called together.
* @param {object} oSettings dataTables settings object
- * @param {string} sStore Name of the array storeage for the callbacks in oSettings
+ * @param {string} sStore Name of the array storage for the callbacks in oSettings
* @param {function} fn Function to be called back
* @param {string} sName Identifying name for the callback (i.e. a label)
* @memberof DataTable#oApi
@@ -4703,7 +4835,7 @@
* array store is done backwards! Further note that you do not want to fire off triggers
* in time sensitive applications (for example cell creation) as its slow.
* @param {object} oSettings dataTables settings object
- * @param {string} sStore Name of the array storeage for the callbacks in oSettings
+ * @param {string} sStore Name of the array storage for the callbacks in oSettings
* @param {string} sTrigger Name of the jQuery custom event to trigger. If null no trigger
* is fired
* @param {array} aArgs Array of arguments to pass to the callback function / trigger
@@ -4731,7 +4863,7 @@
/**
* JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other
* library, then we use that as it is fast, safe and accurate. If the function isn't
- * available then we need to built it ourselves - the insperation for this function comes
+ * available then we need to built it ourselves - the inspiration for this function comes
* from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is
* not perfect and absolutely should not be used as a replacement to json2.js - but it does
* do what we need, without requiring a dependency for DataTables.
@@ -4779,9 +4911,32 @@
return (bArr ? "[" : "{") + json + (bArr ? "]" : "}");
};
-
+ /**
+ * From some browsers (specifically IE6/7) we need special handling to work around browser
+ * bugs - this function is used to detect when these workarounds are needed.
+ * @param {object} oSettings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+ function _fnBrowserDetect( oSettings )
+ {
+ /* IE6/7 will oversize a width 100% element inside a scrolling element, to include the
+ * width of the scrollbar, while other browsers ensure the inner element is contained
+ * without forcing scrolling
+ */
+ var n = $(
+ '<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden">'+
+ '<div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;">'+
+ '<div id="DT_BrowserTest" style="width:100%; height:10px;"></div>'+
+ '</div>'+
+ '</div>')[0];
+
+ document.body.appendChild( n );
+ oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false;
+ document.body.removeChild( n );
+ }
+
/**
* Perform a jQuery selector action on the table's TR elements (from the tbody) and
* return the resulting jQuery object.
@@ -4913,11 +5068,11 @@
/**
* Almost identical to $ in operation, but in this case returns the data for the matched
* rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes
- * rather than any decendents, so the data can be obtained for the row/cell. If matching
+ * rather than any descendants, so the data can be obtained for the row/cell. If matching
* rows are found, the data returned is the original data array/object that was used to
* create the row (or a generated array if from a DOM source).
*
- * This method is often useful incombination with $ where both functions are given the
+ * This method is often useful in-combination with $ where both functions are given the
* same parameters and the array indexes will match identically.
* @param {string|node|jQuery} sSelector jQuery selector or node collection to act on
* @param {object} [oOpts] Optional parameters for modifying the rows to be included
@@ -4981,8 +5136,8 @@
* <ul>
* <li>1D array of data - add a single row with the data provided</li>
* <li>2D array of arrays - add multiple rows in a single call</li>
- * <li>object - data object when using <i>mDataProp</i></li>
- * <li>array of objects - multiple data objects when using <i>mDataProp</i></li>
+ * <li>object - data object when using <i>mData</i></li>
+ * <li>array of objects - multiple data objects when using <i>mData</i></li>
* </ul>
* @param {bool} [bRedraw=true] redraw the table or not
* @returns {array} An array of integers, representing the list of indexes in
@@ -5256,20 +5411,23 @@
var nBody = oSettings.nTBody;
var i, iLen;
- bRemove = (bRemove===undefined) ? false : true;
+ bRemove = (bRemove===undefined) ? false : bRemove;
/* Flag to note that the table is currently being destroyed - no action should be taken */
oSettings.bDestroying = true;
/* Fire off the destroy callbacks for plug-ins etc */
_fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] );
-
- /* Restore hidden columns */
- for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
+
+ /* If the table is not being removed, restore the hidden columns */
+ if ( !bRemove )
{
- if ( oSettings.aoColumns[i].bVisible === false )
+ for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
{
- this.fnSetColumnVis( i, true );
+ if ( oSettings.aoColumns[i].bVisible === false )
+ {
+ this.fnSetColumnVis( i, true );
+ }
}
}
@@ -5345,12 +5503,19 @@
oSettings.nTable.style.width = _fnStringToCss(oSettings.sDestroyWidth);
}
- /* If the were originally odd/even type classes - then we add them back here. Note
- * this is not fool proof (for example if not all rows as odd/even classes - but
+ /* If the were originally stripe classes - then we add them back here. Note
+ * this is not fool proof (for example if not all rows had stripe classes - but
* it's a good effort without getting carried away
*/
- $(nBody).children('tr:even').addClass( oSettings.asDestroyStripes[0] );
- $(nBody).children('tr:odd').addClass( oSettings.asDestroyStripes[1] );
+ iLen = oSettings.asDestroyStripes.length;
+ if (iLen)
+ {
+ var anRows = $(nBody).children('tr');
+ for ( i=0 ; i<iLen ; i++ )
+ {
+ anRows.filter(':nth-child(' + iLen + 'n + ' + i + ')').addClass( oSettings.asDestroyStripes[i] );
+ }
+ }
/* Remove the settings object from the settings array */
for ( i=0, iLen=DataTable.settings.length ; i<iLen ; i++ )
@@ -5363,6 +5528,7 @@
/* End it all */
oSettings = null;
+ oInit = null;
};
@@ -5456,7 +5622,17 @@
var n = oSettings.aanFeatures.f;
for ( var i=0, iLen=n.length ; i<iLen ; i++ )
{
- $(n[i]._DT_Input).val( sInput );
+ // IE9 throws an 'unknown error' if document.activeElement is used
+ // inside an iframe or frame...
+ try {
+ if ( n[i]._DT_Input != document.activeElement )
+ {
+ $(n[i]._DT_Input).val( sInput );
+ }
+ }
+ catch ( e ) {
+ $(n[i]._DT_Input).val( sInput );
+ }
}
}
}
@@ -5576,7 +5752,8 @@
* and column index including hidden columns
* @param {node} nNode this can either be a TR, TD or TH in the table's body
* @returns {int} If nNode is given as a TR, then a single index is returned, or
- * if given as a cell, an array of [row index, column index (visible)] is given.
+ * if given as a cell, an array of [row index, column index (visible),
+ * column index (all)] is given.
* @dtopt API
*
* @example
@@ -5950,7 +6127,7 @@
* @param {node|int} mRow TR element you want to update or the aoData index
* @param {int} [iColumn] The column to update (not used of mData is an array or object)
* @param {bool} [bRedraw=true] Redraw the table or not
- * @param {bool} [bAction=true] Perform predraw actions or not
+ * @param {bool} [bAction=true] Perform pre-draw actions or not
* @returns {int} 0 on success, 1 on error
* @dtopt API
*
@@ -5968,30 +6145,26 @@
var iRow = (typeof mRow === 'object') ?
_fnNodeToDataIndex(oSettings, mRow) : mRow;
- if ( oSettings.__fnUpdateDeep === undefined && $.isArray(mData) && typeof mData === 'object' )
+ if ( $.isArray(mData) && iColumn === undefined )
{
/* Array update - update the whole row */
oSettings.aoData[iRow]._aData = mData.slice();
/* Flag to the function that we are recursing */
- oSettings.__fnUpdateDeep = true;
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
{
this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
}
- oSettings.__fnUpdateDeep = undefined;
}
- else if ( oSettings.__fnUpdateDeep === undefined && mData !== null && typeof mData === 'object' )
+ else if ( $.isPlainObject(mData) && iColumn === undefined )
{
/* Object update - update the whole row - assume the developer gets the object right */
oSettings.aoData[iRow]._aData = $.extend( true, {}, mData );
- oSettings.__fnUpdateDeep = true;
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
{
this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
}
- oSettings.__fnUpdateDeep = undefined;
}
else
{
@@ -6020,8 +6193,10 @@
* will rebuild the search array - however, the redraw might be disabled by the user)
*/
var iDisplayIndex = $.inArray( iRow, oSettings.aiDisplay );
- oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( oSettings,
- _fnGetRowData( oSettings, iRow, 'filter' ) );
+ oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow(
+ oSettings,
+ _fnGetRowData( oSettings, iRow, 'filter', _fnGetColumns( oSettings, 'bSearchable' ) )
+ );
/* Perform pre-draw actions */
if ( bAction === undefined || bAction )
@@ -6059,7 +6234,7 @@
/*
* This is really a good bit rubbish this method of exposing the internal methods
- * publically... - To be fixed in 2.0 using methods on the prototype
+ * publicly... - To be fixed in 2.0 using methods on the prototype
*/
@@ -6171,7 +6346,9 @@
"_fnJsonString": _fnJsonString,
"_fnRender": _fnRender,
"_fnNodeToColumnIndex": _fnNodeToColumnIndex,
- "_fnInfoMacros": _fnInfoMacros
+ "_fnInfoMacros": _fnInfoMacros,
+ "_fnBrowserDetect": _fnBrowserDetect,
+ "_fnGetColumns": _fnGetColumns
};
$.extend( DataTable.ext.oApi, this.oApi );
@@ -6186,8 +6363,7 @@
var _that = this;
- return this.each(function() {
-
+ this.each(function() {
var i=0, iLen, j, jLen, k, kLen;
var sId = this.getAttribute( 'id' );
var bInitHandedOff = false;
@@ -6429,42 +6605,29 @@
}
/* Remove row stripe classes if they are already on the table row */
- var bStripeRemove = false;
- var anRows = $(this).children('tbody').children('tr');
- for ( i=0, iLen=oSettings.asStripeClasses.length ; i<iLen ; i++ )
+ iLen=oSettings.asStripeClasses.length;
+ oSettings.asDestroyStripes = [];
+ if (iLen)
{
- if ( anRows.filter(":lt(2)").hasClass( oSettings.asStripeClasses[i]) )
+ var bStripeRemove = false;
+ var anRows = $(this).children('tbody').children('tr:lt(' + iLen + ')');
+ for ( i=0 ; i<iLen ; i++ )
{
- bStripeRemove = true;
- break;
- }
- }
-
- if ( bStripeRemove )
- {
- /* Store the classes which we are about to remove so they can be readded on destroy */
- oSettings.asDestroyStripes = [ '', '' ];
- if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeOdd) )
- {
- oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeOdd+" ";
- }
- if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeEven) )
- {
- oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeEven;
- }
- if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeOdd) )
- {
- oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeOdd+" ";
+ if ( anRows.hasClass( oSettings.asStripeClasses[i] ) )
+ {
+ bStripeRemove = true;
+
+ /* Store the classes which we are about to remove so they can be re-added on destroy */
+ oSettings.asDestroyStripes.push( oSettings.asStripeClasses[i] );
+ }
}
- if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeEven) )
+
+ if ( bStripeRemove )
{
- oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeEven;
+ anRows.removeClass( oSettings.asStripeClasses.join(' ') );
}
-
- anRows.removeClass( oSettings.asStripeClasses.join(' ') );
}
-
/*
* Columns
* See if we should load columns automatically or use defined ones
@@ -6560,6 +6723,9 @@
* Cache the header, body and footer as required, creating them if needed
*/
+ /* Browser support detection */
+ _fnBrowserDetect( oSettings );
+
// Work around for Webkit bug 83867 - store the caption-side before removing from doc
var captions = $(this).children('caption').each( function () {
this._captionSide = $(this).css('caption-side');
@@ -6627,6 +6793,8 @@
_fnInitialise( oSettings );
}
} );
+ _that = null;
+ return this;
};
@@ -6736,7 +6904,7 @@
* @type string
* @default Version number
*/
- DataTable.version = "1.9.2";
+ DataTable.version = "1.9.4";
/**
* Private data store, containing all of the settings objects that are created for the
@@ -6852,8 +7020,8 @@
* </il>
* </ul>
*
- * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for
- * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when
+ * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for
+ * the different uses that DataTables can put the data to. Specifically <i>mData</i> when
* used as a function will give you a 'type' (sorting, filtering etc) that you can use to
* prepare the data as required for the different types. As such, this method is deprecated.
* @type array
@@ -7018,8 +7186,8 @@
* </il>
* </ul>
*
- * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for
- * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when
+ * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for
+ * the different uses that DataTables can put the data to. Specifically <i>mData</i> when
* used as a function will give you a 'type' (sorting, filtering etc) that you can use to
* prepare the data as required for the different types. As such, this method is deprecated.
* @type object
@@ -7346,7 +7514,7 @@
/**
* Data object from the original data source for the row. This is either
* an array if using the traditional form of DataTables, or an object if
- * using mDataProp options. The exact type will depend on the passed in
+ * using mData options. The exact type will depend on the passed in
* data from the data source, or will be an array if using DOM a data
* source.
* @type array|object
@@ -7440,14 +7608,14 @@
"bSortable": null,
/**
- * When using fnRender, you have two options for what to do with the data,
- * and this property serves as the switch. Firstly, you can have the sorting
- * and filtering use the rendered value (true - default), or you can have
- * the sorting and filtering us the original value (false).
- *
- * *NOTE* It is it is advisable now to use mDataProp as a function and make
- * use of the 'type' that it gives, allowing (potentially) different data to
- * be used for sorting, filtering, display and type detection.
+ * <code>Deprecated</code> When using fnRender, you have two options for what
+ * to do with the data, and this property serves as the switch. Firstly, you
+ * can have the sorting and filtering use the rendered value (true - default),
+ * or you can have the sorting and filtering us the original value (false).
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type boolean
* @deprecated
*/
@@ -7470,9 +7638,9 @@
/**
* Developer definable function that is called whenever a cell is created (Ajax source,
- * etc) or processed for input (DOM source). This can be used as a compliment to fnRender
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
* allowing you to modify the DOM element (add background colour for example) when the
- * element is available (since it is not when fnRender is called).
+ * element is available.
* @type function
* @param {element} nTd The TD node that has been created
* @param {*} sData The Data for the cell
@@ -7485,7 +7653,7 @@
/**
* Function to get data from a cell in a column. You should <b>never</b>
* access data directly through _aData internally in DataTables - always use
- * the method attached to this property. It allows mDataProp to function as
+ * the method attached to this property. It allows mData to function as
* required. This function is automatically assigned by the column
* initialisation method
* @type function
@@ -7499,8 +7667,12 @@
"fnGetData": null,
/**
- * Custom display function that will be called for the display of each cell
- * in this column.
+ * <code>Deprecated</code> Custom display function that will be called for the
+ * display of each cell in this column.
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type function
* @param {object} o Object with the following parameters:
* @param {int} o.iDataRow The row in aoData
@@ -7509,13 +7681,14 @@
* @param {object} o.oSettings The settings object for this DataTables instance
* @returns {string} The string you which to use in the display
* @default null
+ * @deprecated
*/
"fnRender": null,
/**
* Function to set data for a cell in the column. You should <b>never</b>
* set the data directly to _aData internally in DataTables - always use
- * this method. It allows mDataProp to function as required. This function
+ * this method. It allows mData to function as required. This function
* is automatically assigned by the column initialisation method
* @type function
* @param {array|object} oData The data array/object for the array
@@ -7532,7 +7705,17 @@
* @type function|int|string|null
* @default null
*/
- "mDataProp": null,
+ "mData": null,
+
+ /**
+ * Partner property to mData which is used (only when defined) to get
+ * the data - i.e. it is basically the same as mData, but without the
+ * 'set' option, and also the data fed to it is the result from mData.
+ * This is the rendering method to match the data method of mData.
+ * @type function|int|string|null
+ * @default null
+ */
+ "mRender": null,
/**
* Unique header TH/TD element for this column - this is what the sorting
@@ -7573,7 +7756,7 @@
/**
* Allows a default value to be given for a column's data, and will be used
- * whenever a null data source is encountered (this can be because mDataProp
+ * whenever a null data source is encountered (this can be because mData
* is set to null, or because the data source itself is null).
* @type string
* @default null
@@ -7674,7 +7857,7 @@
* } );
*
* @example
- * // Using an array of objects as a data source (mDataProp)
+ * // Using an array of objects as a data source (mData)
* $(document).ready( function () {
* $('#example').dataTable( {
* "aaData": [
@@ -7694,11 +7877,11 @@
* }
* ],
* "aoColumns": [
- * { "sTitle": "Engine", "mDataProp": "engine" },
- * { "sTitle": "Browser", "mDataProp": "browser" },
- * { "sTitle": "Platform", "mDataProp": "platform" },
- * { "sTitle": "Version", "mDataProp": "version" },
- * { "sTitle": "Grade", "mDataProp": "grade" }
+ * { "sTitle": "Engine", "mData": "engine" },
+ * { "sTitle": "Browser", "mData": "browser" },
+ * { "sTitle": "Platform", "mData": "platform" },
+ * { "sTitle": "Version", "mData": "version" },
+ * { "sTitle": "Grade", "mData": "grade" }
* ]
* } );
* } );
@@ -7767,7 +7950,7 @@
* @dtopt Option
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
* } );
@@ -7777,7 +7960,7 @@
* // Setting the default display length as well as length menu
* // This is likely to be wanted if you remove the '10' option which
* // is the iDisplayLength default.
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "iDisplayLength": 25,
* "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
@@ -7849,7 +8032,7 @@
* array may be of any length, and DataTables will apply each class
* sequentially, looping when required.
* @type array
- * @default null <i>Will take the values determinted by the oClasses.sStripe*
+ * @default null <i>Will take the values determined by the oClasses.sStripe*
* options</i>
* @dtopt Option
*
@@ -7892,7 +8075,7 @@
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/arrays.txt",
* "bDeferRender": true
@@ -7912,7 +8095,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200px",
* "bPaginate": false
@@ -8051,7 +8234,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* initTable();
* tableActions();
* } );
@@ -8083,7 +8266,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollAutoCss": false,
* "sScrollY": "200px"
@@ -8105,7 +8288,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200",
* "bScrollCollapse": true
@@ -8127,7 +8310,7 @@
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollInfinite": true,
* "bScrollCollapse": true,
@@ -8184,7 +8367,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bSortCellsTop": true
* } );
@@ -8271,7 +8454,7 @@
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnCreatedRow": function( nRow, aData, iDataIndex ) {
* // Bold the grade for all 'A' grade browsers
@@ -8344,7 +8527,7 @@
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnFormatNumber": function ( iIn ) {
* if ( iIn &lt; 1000 ) {
@@ -8503,7 +8686,7 @@
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
* // Bold the grade for all 'A' grade browsers
@@ -8536,7 +8719,7 @@
*
* @example
* // POST data to server
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bProcessing": true,
* "bServerSide": true,
@@ -8558,7 +8741,11 @@
"url": sUrl,
"data": aoData,
"success": function (json) {
- $(oSettings.oInstance).trigger('xhr', oSettings);
+ if ( json.sError ) {
+ oSettings.oApi._fnLog( oSettings, 0, json.sError );
+ }
+
+ $(oSettings.oInstance).trigger('xhr', [oSettings, json]);
fnCallback( json );
},
"dataType": "json",
@@ -8592,7 +8779,7 @@
* @dtopt Server-side
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bProcessing": true,
* "bServerSide": true,
@@ -8617,7 +8804,7 @@
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoad": function (oSettings) {
@@ -8667,21 +8854,23 @@
*
* @example
* // Remove a saved filter, so filtering is never loaded
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoadParams": function (oSettings, oData) {
* oData.oSearch.sSearch = "";
+ * }
* } );
* } );
*
* @example
* // Disallow state loading by returning false
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoadParams": function (oSettings, oData) {
* return false;
+ * }
* } );
* } );
*/
@@ -8698,11 +8887,12 @@
*
* @example
* // Show an alert with the filtering value that was saved
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoaded": function (oSettings, oData) {
* alert( 'Saved filter was: '+oData.oSearch.sSearch );
+ * }
* } );
* } );
*/
@@ -8720,7 +8910,7 @@
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateSave": function (oSettings, oData) {
@@ -8760,11 +8950,12 @@
*
* @example
* // Remove a saved filter, so filtering is never saved
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateSaveParams": function (oSettings, oData) {
* oData.oSearch.sSearch = "";
+ * }
* } );
* } );
*/
@@ -8781,7 +8972,7 @@
* @example
* $(document).ready( function() {
* $('#example').dataTable( {
- * "iCookieDuration": 60*60*24 // 1 day
+ * "iCookieDuration": 60*60*24; // 1 day
* } );
* } )
*/
@@ -8806,7 +8997,7 @@
*
* @example
* // 57 records available in the table, no filtering applied
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/server_processing.php",
@@ -8816,7 +9007,7 @@
*
* @example
* // 57 records after filtering, 100 without filtering (an initial filter applied)
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/server_processing.php",
@@ -8877,7 +9068,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollInfinite": true,
* "bScrollCollapse": true,
@@ -8901,7 +9092,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "iTabIndex": 1
* } );
@@ -8933,7 +9124,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oAria": {
@@ -8954,7 +9145,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oAria": {
@@ -8981,7 +9172,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -9002,7 +9193,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -9016,14 +9207,14 @@
/**
- * Text to use when using the 'full_numbers' type of pagination for the
- * button to take the user to the next page.
+ * Text to use for the 'next' pagination button (to take the user to the
+ * next page).
* @type string
* @default Next
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -9037,14 +9228,14 @@
/**
- * Text to use when using the 'full_numbers' type of pagination for the
- * button to take the user to the previous page.
+ * Text to use for the 'previous' pagination button (to take the user to
+ * the previous page).
* @type string
* @default Previous
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -9067,7 +9258,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sEmptyTable": "No data available in table"
@@ -9088,7 +9279,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)"
@@ -9107,7 +9298,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoEmpty": "No entries to show"
@@ -9127,7 +9318,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoFiltered": " - filtering from _MAX_ records"
@@ -9148,7 +9339,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoPostFix": "All records shown are derived from real information."
@@ -9169,7 +9360,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoThousands": "'"
@@ -9191,7 +9382,7 @@
*
* @example
* // Language change only
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sLengthMenu": "Display _MENU_ records"
@@ -9201,7 +9392,7 @@
*
* @example
* // Language and options change
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sLengthMenu": 'Display <select>'+
@@ -9249,7 +9440,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sProcessing": "DataTables is currently busy"
@@ -9272,7 +9463,7 @@
*
* @example
* // Input text box will be appended at the end automatically
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sSearch": "Filter records:"
@@ -9282,7 +9473,7 @@
*
* @example
* // Specify where the filter should appear
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sSearch": "Apply filter _INPUT_ to table"
@@ -9305,7 +9496,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt"
@@ -9325,7 +9516,7 @@
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sZeroRecords": "No records to display"
@@ -9371,7 +9562,7 @@
*
* @example
* // Get data from { "data": [...] }
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/data.txt",
* "sAjaxDataProp": "data"
@@ -9380,7 +9571,7 @@
*
* @example
* // Get data from { "data": { "inner": [...] } }
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/data.txt",
* "sAjaxDataProp": "data.inner"
@@ -9418,7 +9609,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sCookiePrefix": "my_datatable_",
* } );
@@ -9470,7 +9661,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sDom": '&lt;"top"i&gt;rt&lt;"bottom"flp&gt;&lt;"clear"&gt;'
* } );
@@ -9508,7 +9699,7 @@
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollX": "100%",
* "bScrollCollapse": true
@@ -9530,7 +9721,7 @@
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollX": "100%",
* "sScrollXInner": "110%"
@@ -9552,7 +9743,7 @@
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200px",
* "bPaginate": false
@@ -9571,7 +9762,7 @@
* @dtopt Server-side
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/post.php",
@@ -9599,7 +9790,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] },
@@ -9611,7 +9802,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "aDataSort": [ 0, 1 ] },
@@ -9636,7 +9827,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "asSorting": [ "asc" ], "aTargets": [ 1 ] },
@@ -9648,7 +9839,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -9671,7 +9862,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bSearchable": false, "aTargets": [ 0 ] }
@@ -9680,7 +9871,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bSearchable": false },
@@ -9702,7 +9893,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bSortable": false, "aTargets": [ 0 ] }
@@ -9711,7 +9902,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bSortable": false },
@@ -9726,51 +9917,18 @@
/**
- * When using fnRender() for a column, you may wish to use the original data
- * (before rendering) for sorting and filtering (the default is to used the
- * rendered data that the user can see). This may be useful for dates etc.
+ * <code>Deprecated</code> When using fnRender() for a column, you may wish
+ * to use the original data (before rendering) for sorting and filtering
+ * (the default is to used the rendered data that the user can see). This
+ * may be useful for dates etc.
*
- * *NOTE* It is it is advisable now to use mDataProp as a function and make
- * use of the 'type' that it gives, allowing (potentially) different data to
- * be used for sorting, filtering, display and type detection.
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type boolean
* @default true
* @dtopt Columns
- *
- * @example
- * // Using aoColumnDefs
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
- * "fnRender": function ( oObj ) {
- * return oObj.aData[0] +' '+ oObj.aData[3];
- * },
- * "bUseRendered": false,
- * "aTargets": [ 0 ]
- * }
- * ]
- * } );
- * } );
- *
- * @example
- * // Using aoColumns
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumns": [
- * {
- * "fnRender": function ( oObj ) {
- * return oObj.aData[0] +' '+ oObj.aData[3];
- * },
- * "bUseRendered": false
- * },
- * null,
- * null,
- * null,
- * null
- * ]
- * } );
- * } );
+ * @deprecated
*/
"bUseRendered": true,
@@ -9783,7 +9941,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bVisible": false, "aTargets": [ 0 ] }
@@ -9792,7 +9950,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bVisible": false },
@@ -9808,9 +9966,9 @@
/**
* Developer definable function that is called whenever a cell is created (Ajax source,
- * etc) or processed for input (DOM source). This can be used as a compliment to fnRender
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
* allowing you to modify the DOM element (add background colour for example) when the
- * element is available (since it is not when fnRender is called).
+ * element is available.
* @type function
* @param {element} nTd The TD node that has been created
* @param {*} sData The Data for the cell
@@ -9820,7 +9978,7 @@
* @dtopt Columns
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [ {
* "aTargets": [3],
@@ -9837,8 +9995,12 @@
/**
- * Custom display function that will be called for the display of each cell in
- * this column.
+ * <code>Deprecated</code> Custom display function that will be called for the
+ * display of each cell in this column.
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type function
* @param {object} o Object with the following parameters:
* @param {int} o.iDataRow The row in aoData
@@ -9849,37 +10011,7 @@
* @param {*} val The current cell value
* @returns {string} The string you which to use in the display
* @dtopt Columns
- *
- * @example
- * // Using aoColumnDefs
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
- * "fnRender": function ( o, val ) {
- * return o.aData[0] +' '+ o.aData[3];
- * },
- * "aTargets": [ 0 ]
- * }
- * ]
- * } );
- * } );
- *
- * @example
- * // Using aoColumns
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumns": [
- * { "fnRender": function ( o, val ) {
- * return o.aData[0] +' '+ o.aData[3];
- * } },
- * null,
- * null,
- * null,
- * null
- * ]
- * } );
- * } );
+ * @deprecated
*/
"fnRender": null,
@@ -9894,7 +10026,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "iDataSort": 1, "aTargets": [ 0 ] }
@@ -9904,7 +10036,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "iDataSort": 1 },
@@ -9920,14 +10052,23 @@
/**
+ * This parameter has been replaced by mData in DataTables to ensure naming
+ * consistency. mDataProp can still be used, as there is backwards compatibility
+ * in DataTables for this option, but it is strongly recommended that you use
+ * mData in preference to mDataProp.
+ * @name DataTable.defaults.columns.mDataProp
+ */
+
+
+ /**
* This property can be used to read data from any JSON data source property,
- * including deeply nested objects / properties. mDataProp can be given in a
+ * including deeply nested objects / properties. mData can be given in a
* number of different ways which effect its behaviour:
* <ul>
* <li>integer - treated as an array index for the data source. This is the
* default that DataTables uses (incrementally increased for each column).</li>
* <li>string - read an object property from the data source. Note that you can
- * use Javascript dotted notation to read deep properties/arrays from the
+ * use Javascript dotted notation to read deep properties / arrays from the
* data source.</li>
* <li>null - the sDefaultContent option will be used for the cell (null
* by default, so you will need to specify the default content you want -
@@ -9948,34 +10089,38 @@
* of call, but otherwise the return is what will be used for the data
* requested.</li>
* </ul>
+ *
+ * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change
+ * reflects the flexibility of this property and is consistent with the naming of
+ * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as
+ * it automatically maps the old name to the new if required.
* @type string|int|function|null
* @default null <i>Use automatically calculated column index</i>
* @dtopt Columns
*
* @example
* // Read table data from objects
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/deep.txt",
* "aoColumns": [
- * { "mDataProp": "engine" },
- * { "mDataProp": "browser" },
- * { "mDataProp": "platform.inner" },
- * { "mDataProp": "platform.details.0" },
- * { "mDataProp": "platform.details.1" }
+ * { "mData": "engine" },
+ * { "mData": "browser" },
+ * { "mData": "platform.inner" },
+ * { "mData": "platform.details.0" },
+ * { "mData": "platform.details.1" }
* ]
* } );
* } );
*
* @example
- * // Using mDataProp as a function to provide different information for
+ * // Using mData as a function to provide different information for
* // sorting, filtering and display. In this case, currency (price)
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
+ * "aoColumnDefs": [ {
* "aTargets": [ 0 ],
- * "mDataProp": function ( source, type, val ) {
+ * "mData": function ( source, type, val ) {
* if (type === 'set') {
* source.price = val;
* // Store the computed dislay and filter values for efficiency
@@ -9992,11 +10137,80 @@
* // 'sort', 'type' and undefined all just use the integer
* return source.price;
* }
+ * } ]
+ * } );
+ * } );
+ */
+ "mData": null,
+
+
+ /**
+ * This property is the rendering partner to mData and it is suggested that
+ * when you want to manipulate data for display (including filtering, sorting etc)
+ * but not altering the underlying data for the table, use this property. mData
+ * can actually do everything this property can and more, but this parameter is
+ * easier to use since there is no 'set' option. Like mData is can be given
+ * in a number of different ways to effect its behaviour, with the addition of
+ * supporting array syntax for easy outputting of arrays (including arrays of
+ * objects):
+ * <ul>
+ * <li>integer - treated as an array index for the data source. This is the
+ * default that DataTables uses (incrementally increased for each column).</li>
+ * <li>string - read an object property from the data source. Note that you can
+ * use Javascript dotted notation to read deep properties / arrays from the
+ * data source and also array brackets to indicate that the data reader should
+ * loop over the data source array. When characters are given between the array
+ * brackets, these characters are used to join the data source array together.
+ * For example: "accounts[, ].name" would result in a comma separated list with
+ * the 'name' value from the 'accounts' array of objects.</li>
+ * <li>function - the function given will be executed whenever DataTables
+ * needs to set or get the data for a cell in the column. The function
+ * takes three parameters:
+ * <ul>
+ * <li>{array|object} The data source for the row (based on mData)</li>
+ * <li>{string} The type call data requested - this will be 'filter', 'display',
+ * 'type' or 'sort'.</li>
+ * <li>{array|object} The full data source for the row (not based on mData)</li>
+ * </ul>
+ * The return value from the function is what will be used for the data
+ * requested.</li>
+ * </ul>
+ * @type string|int|function|null
+ * @default null <i>Use mData</i>
+ * @dtopt Columns
+ *
+ * @example
+ * // Create a comma separated list from an array of objects
+ * $(document).ready( function() {
+ * var oTable = $('#example').dataTable( {
+ * "sAjaxSource": "sources/deep.txt",
+ * "aoColumns": [
+ * { "mData": "engine" },
+ * { "mData": "browser" },
+ * {
+ * "mData": "platform",
+ * "mRender": "[, ].name"
+ * }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Use as a function to create a link from the data source
+ * $(document).ready( function() {
+ * var oTable = $('#example').dataTable( {
+ * "aoColumnDefs": [
+ * {
+ * "aTargets": [ 0 ],
+ * "mData": "download_link",
+ * "mRender": function ( data, type, full ) {
+ * return '<a href="'+data+'">Download</a>';
+ * }
* ]
* } );
* } );
*/
- "mDataProp": null,
+ "mRender": null,
/**
@@ -10009,13 +10223,12 @@
*
* @example
* // Make the first column use TH cells
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
+ * "aoColumnDefs": [ {
* "aTargets": [ 0 ],
* "sCellType": "th"
- * ]
+ * } ]
* } );
* } );
*/
@@ -10030,7 +10243,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sClass": "my_class", "aTargets": [ 0 ] }
@@ -10040,7 +10253,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sClass": "my_class" },
@@ -10071,7 +10284,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -10089,7 +10302,7 @@
/**
* Allows a default value to be given for a column's data, and will be used
- * whenever a null data source is encountered (this can be because mDataProp
+ * whenever a null data source is encountered (this can be because mData
* is set to null, or because the data source itself is null).
* @type string
* @default null
@@ -10097,11 +10310,11 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* {
- * "mDataProp": null,
+ * "mData": null,
* "sDefaultContent": "Edit",
* "aTargets": [ -1 ]
* }
@@ -10111,14 +10324,14 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
* null,
* null,
* {
- * "mDataProp": null,
+ * "mData": null,
* "sDefaultContent": "Edit"
* }
* ]
@@ -10141,7 +10354,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sName": "engine", "aTargets": [ 0 ] },
@@ -10155,7 +10368,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sName": "engine" },
@@ -10172,7 +10385,7 @@
/**
* Defines a data source type for the sorting which can be used to read
- * realtime information from the table (updating the internally cached
+ * real-time information from the table (updating the internally cached
* version) prior to sorting. This allows sorting to occur on user editable
* elements such as form inputs.
* @type string
@@ -10181,7 +10394,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] },
@@ -10194,7 +10407,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -10219,7 +10432,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sTitle": "My column title", "aTargets": [ 0 ] }
@@ -10229,7 +10442,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sTitle": "My column title" },
@@ -10258,7 +10471,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sType": "html", "aTargets": [ 0 ] }
@@ -10268,7 +10481,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sType": "html" },
@@ -10285,7 +10498,7 @@
/**
* Defining the width of the column, this parameter may take any CSS value
- * (3em, 20px etc). DataTables applys 'smart' widths to columns which have not
+ * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not
* been given a specific width through this interface ensuring that the table
* remains readable.
* @type string
@@ -10294,7 +10507,7 @@
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sWidth": "20%", "aTargets": [ 0 ] }
@@ -10304,7 +10517,7 @@
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sWidth": "20%" },
@@ -10544,12 +10757,26 @@
* Information callback function. See
* {@link DataTable.defaults.fnInfoCallback}
* @type function
- * @default
+ * @default null
*/
"fnInfoCallback": null
},
/**
+ * Browser support parameters
+ * @namespace
+ */
+ "oBrowser": {
+ /**
+ * Indicate if the browser incorrectly calculates width:100% inside a
+ * scrolling element (IE6/7)
+ * @type boolean
+ * @default false
+ */
+ "bScrollOversize": false
+ },
+
+ /**
* Array referencing the nodes which are used for the features. The
* parameters of this object match what is allowed by sDom - i.e.
* <ul>
@@ -11310,7 +11537,6 @@
"sJUIFooter": "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"
} );
-
/*
* Variable: oPagination
* Purpose:
@@ -11385,17 +11611,22 @@
var oClasses = oSettings.oClasses;
var an = oSettings.aanFeatures.p;
+ var nNode;
/* Loop over each instance of the pager */
for ( var i=0, iLen=an.length ; i<iLen ; i++ )
{
- if ( an[i].childNodes.length !== 0 )
+ nNode = an[i].firstChild;
+ if ( nNode )
{
- an[i].childNodes[0].className = ( oSettings._iDisplayStart === 0 ) ?
- oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled;
-
- an[i].childNodes[1].className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
- oClasses.sPageNextDisabled : oClasses.sPageNextEnabled;
+ /* Previous page */
+ nNode.className = ( oSettings._iDisplayStart === 0 ) ?
+ oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled;
+
+ /* Next page */
+ nNode = nNode.nextSibling;
+ nNode.className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
+ oClasses.sPageNextDisabled : oClasses.sPageNextEnabled;
}
}
}
@@ -11484,7 +11715,7 @@
var sList = "";
var iStartButton, iEndButton, i, iLen;
var oClasses = oSettings.oClasses;
- var anButtons, anStatic, nPaginateList;
+ var anButtons, anStatic, nPaginateList, nNode;
var an = oSettings.aanFeatures.p;
var fnBind = function (j) {
oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) {
@@ -11535,18 +11766,19 @@
/* Loop over each instance of the pager */
for ( i=0, iLen=an.length ; i<iLen ; i++ )
{
- if ( an[i].childNodes.length === 0 )
+ nNode = an[i];
+ if ( !nNode.hasChildNodes() )
{
continue;
}
- /* Build up the dynamic list forst - html and listeners */
- $('span:eq(0)', an[i])
+ /* Build up the dynamic list first - html and listeners */
+ $('span:eq(0)', nNode)
.html( sList )
.children('a').each( fnBind );
- /* Update the premanent botton's classes */
- anButtons = an[i].getElementsByTagName('a');
+ /* Update the permanent button's classes */
+ anButtons = nNode.getElementsByTagName('a');
anStatic = [
anButtons[0], anButtons[1],
anButtons[anButtons.length-2], anButtons[anButtons.length-1]
@@ -11849,6 +12081,7 @@
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
+ * @param {object} json JSON returned from the server
*/
/**
@@ -11860,4 +12093,7 @@
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
-}(jQuery, window, document, undefined));
+}));
+
+}(window, document));
+
diff --git a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.min.js b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.min.js
index ce18c935..02694a4a 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.min.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.dataTables.min.js
@@ -1,6 +1,6 @@
/*
* File: jquery.dataTables.min.js
- * Version: 1.9.2
+ * Version: 1.9.4
* Author: Allan Jardine (www.sprymedia.co.uk)
* Info: www.datatables.net
*
@@ -15,140 +15,141 @@
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
*/
-(function(i,V,l,n){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=i.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mDataProp:c.mDataProp?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=i.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d],
-c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;r(a,d,null)}function r(a,b,c){b=a.aoColumns[b];c!==n&&null!==c&&(c.sType!==n&&(b.sType=c.sType,b._bAutoType=!1),i.extend(b,c),p(b,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(b.aDataSort=[c.iDataSort]),p(b,c,"aDataSort"));b.fnGetData=W(b.mDataProp);b.fnSetData=ta(b.mDataProp);a.oFeatures.bSort||(b.bSortable=!1);!b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting)?(b.sSortingClass=
-a.oClasses.sSortableNone,b.sSortingClassJUI=""):b.bSortable||-1==i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting)?(b.sSortingClass=a.oClasses.sSortable,b.sSortingClassJUI=a.oClasses.sSortJUI):-1!=i.inArray("asc",b.asSorting)&&-1==i.inArray("desc",b.asSorting)?(b.sSortingClass=a.oClasses.sSortableAsc,b.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1==i.inArray("asc",b.asSorting)&&-1!=i.inArray("desc",b.asSorting)&&(b.sSortingClass=a.oClasses.sSortableDesc,b.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}
-function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;ba(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function G(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,c==b)return d;return null}function t(a,b){for(var c=-1,d=0;d<a.aoColumns.length;d++)if(!0===a.aoColumns[d].bVisible&&c++,d==b)return!0===a.aoColumns[d].bVisible?c:null;return null}function v(a){for(var b=0,c=0;c<a.aoColumns.length;c++)!0===a.aoColumns[c].bVisible&&
-b++;return b}function z(a){for(var b=j.ext.aTypes,c=b.length,d=0;d<c;d++){var g=b[d](a);if(null!==g)return g}return"string"}function D(a,b){for(var c=b.split(","),d=[],g=0,f=a.aoColumns.length;g<f;g++)for(var h=0;h<f;h++)if(a.aoColumns[g].sName==c[h]){d.push(h);break}return d}function x(a){for(var b="",c=0,d=a.aoColumns.length;c<d;c++)b+=a.aoColumns[c].sName+",";return b.length==d?"":b.slice(0,-1)}function J(a,b,c,d){var g,f,h,e,s;if(b)for(g=b.length-1;0<=g;g--){var m=b[g].aTargets;i.isArray(m)||
-E(a,1,"aTargets must be an array of targets, not a "+typeof m);f=0;for(h=m.length;f<h;f++)if("number"===typeof m[f]&&0<=m[f]){for(;a.aoColumns.length<=m[f];)o(a);d(m[f],b[g])}else if("number"===typeof m[f]&&0>m[f])d(a.aoColumns.length+m[f],b[g]);else if("string"===typeof m[f]){e=0;for(s=a.aoColumns.length;e<s;e++)("_all"==m[f]||i(a.aoColumns[e].nTh).hasClass(m[f]))&&d(e,b[g])}}if(c){g=0;for(a=c.length;g<a;g++)d(g,c[g])}}function H(a,b){var c;c=i.isArray(b)?b.slice():i.extend(!0,{},b);var d=a.aoData.length,
-g=i.extend(!0,{},j.models.oRow);g._aData=c;a.aoData.push(g);for(var f,g=0,h=a.aoColumns.length;g<h;g++)c=a.aoColumns[g],"function"===typeof c.fnRender&&c.bUseRendered&&null!==c.mDataProp?I(a,d,g,R(a,d,g)):I(a,d,g,w(a,d,g)),c._bAutoType&&"string"!=c.sType&&(f=w(a,d,g,"type"),null!==f&&""!==f&&(f=z(f),null===c.sType?c.sType=f:c.sType!=f&&"html"!=c.sType&&(c.sType="string")));a.aiDisplayMaster.push(d);a.oFeatures.bDeferRender||ca(a,d);return d}function ua(a){var b,c,d,g,f,h,e,s,m;if(a.bDeferLoading||
-null===a.sAjaxSource){e=a.nTBody.childNodes;b=0;for(c=e.length;b<c;b++)if("TR"==e[b].nodeName.toUpperCase()){s=a.aoData.length;e[b]._DT_RowIndex=s;a.aoData.push(i.extend(!0,{},j.models.oRow,{nTr:e[b]}));a.aiDisplayMaster.push(s);h=e[b].childNodes;d=f=0;for(g=h.length;d<g;d++)if(m=h[d].nodeName.toUpperCase(),"TD"==m||"TH"==m)I(a,s,f,i.trim(h[d].innerHTML)),f++}}e=S(a);h=[];b=0;for(c=e.length;b<c;b++){d=0;for(g=e[b].childNodes.length;d<g;d++)f=e[b].childNodes[d],m=f.nodeName.toUpperCase(),("TD"==m||
-"TH"==m)&&h.push(f)}g=0;for(e=a.aoColumns.length;g<e;g++){m=a.aoColumns[g];null===m.sTitle&&(m.sTitle=m.nTh.innerHTML);f=m._bAutoType;s="function"===typeof m.fnRender;var o=null!==m.sClass,k=m.bVisible,n,r;if(f||s||o||!k){b=0;for(c=a.aoData.length;b<c;b++)d=a.aoData[b],n=h[b*e+g],f&&"string"!=m.sType&&(r=w(a,b,g,"type"),""!==r&&(r=z(r),null===m.sType?m.sType=r:m.sType!=r&&"html"!=m.sType&&(m.sType="string"))),"function"===typeof m.mDataProp&&(n.innerHTML=w(a,b,g,"display")),s&&(r=R(a,b,g),n.innerHTML=
-r,m.bUseRendered&&I(a,b,g,r)),o&&(n.className+=" "+m.sClass),k?d._anHidden[g]=null:(d._anHidden[g]=n,n.parentNode.removeChild(n)),m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,n,w(a,b,g,"display"),d._aData,b,g)}}if(0!==a.aoRowCreatedCallback.length){b=0;for(c=a.aoData.length;b<c;b++)d=a.aoData[b],C(a,"aoRowCreatedCallback",null,[d.nTr,d._aData,b])}}function K(a,b){return b._DT_RowIndex!==n?b._DT_RowIndex:null}function da(a,b,c){for(var b=L(a,b),d=0,a=a.aoColumns.length;d<a;d++)if(b[d]===c)return d;
-return-1}function X(a,b,c){for(var d=[],g=0,f=a.aoColumns.length;g<f;g++)d.push(w(a,b,g,c));return d}function w(a,b,c,d){var g=a.aoColumns[c];if((c=g.fnGetData(a.aoData[b]._aData,d))===n)return a.iDrawError!=a.iDraw&&null===g.sDefaultContent&&(E(a,0,"Requested unknown parameter "+("function"==typeof g.mDataProp?"{mDataprop function}":"'"+g.mDataProp+"'")+" from the data source for row "+b),a.iDrawError=a.iDraw),g.sDefaultContent;if(null===c&&null!==g.sDefaultContent)c=g.sDefaultContent;else if("function"===
-typeof c)return c();return"display"==d&&null===c?"":c}function I(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d)}function W(a){if(null===a)return function(){return null};if("function"===typeof a)return function(b,d){return a(b,d)};if("string"===typeof a&&-1!=a.indexOf(".")){var b=a.split(".");return function(a){for(var d=0,g=b.length;d<g;d++)if(a=a[b[d]],a===n)return n;return a}}return function(b){return b[a]}}function ta(a){if(null===a)return function(){};if("function"===typeof a)return function(b,
-d){a(b,"set",d)};if("string"===typeof a&&-1!=a.indexOf(".")){var b=a.split(".");return function(a,d){for(var g=0,f=b.length-1;g<f;g++)a[b[g]]===n&&(a[b[g]]={}),a=a[b[g]];a[b[b.length-1]]=d}}return function(b,d){b[a]=d}}function Y(a){for(var b=[],c=a.aoData.length,d=0;d<c;d++)b.push(a.aoData[d]._aData);return b}function ea(a){a.aoData.splice(0,a.aoData.length);a.aiDisplayMaster.splice(0,a.aiDisplayMaster.length);a.aiDisplay.splice(0,a.aiDisplay.length);A(a)}function fa(a,b){for(var c=-1,d=0,g=a.length;d<
-g;d++)a[d]==b?c=d:a[d]>b&&a[d]--; -1!=c&&a.splice(c,1)}function R(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mDataProp},w(a,b,c,"display"))}function ca(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&&i(c.nTr).addClass(c._aData.DT_RowClass);for(var g=0,f=a.aoColumns.length;g<f;g++){var h=a.aoColumns[g];d=l.createElement(h.sCellType);
-d.innerHTML="function"===typeof h.fnRender&&(!h.bUseRendered||null===h.mDataProp)?R(a,b,g):w(a,b,g,"display");null!==h.sClass&&(d.className=h.sClass);h.bVisible?(c.nTr.appendChild(d),c._anHidden[g]=null):c._anHidden[g]=d;h.fnCreatedCell&&h.fnCreatedCell.call(a.oInstance,d,w(a,b,g,"display"),c._aData,b,g)}C(a,"aoRowCreatedCallback",null,[c.nTr,c._aData,b])}}function va(a){var b,c,d;if(0!==a.nTHead.getElementsByTagName("th").length){b=0;for(d=a.aoColumns.length;b<d;b++)if(c=a.aoColumns[b].nTh,c.setAttribute("role",
-"columnheader"),a.aoColumns[b].bSortable&&(c.setAttribute("tabindex",a.iTabIndex),c.setAttribute("aria-controls",a.sTableId)),null!==a.aoColumns[b].sClass&&i(c).addClass(a.aoColumns[b].sClass),a.aoColumns[b].sTitle!=c.innerHTML)c.innerHTML=a.aoColumns[b].sTitle}else{var g=l.createElement("tr");b=0;for(d=a.aoColumns.length;b<d;b++)c=a.aoColumns[b].nTh,c.innerHTML=a.aoColumns[b].sTitle,c.setAttribute("tabindex","0"),null!==a.aoColumns[b].sClass&&i(c).addClass(a.aoColumns[b].sClass),g.appendChild(c);
-i(a.nTHead).html("")[0].appendChild(g);T(a.aoHeader,a.nTHead)}i(a.nTHead).children("tr").attr("role","row");if(a.bJUI){b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;g=l.createElement("div");g.className=a.oClasses.sSortJUIWrapper;i(c).contents().appendTo(g);var f=l.createElement("span");f.className=a.oClasses.sSortIcon;g.appendChild(f);c.appendChild(g)}}if(a.oFeatures.bSort)for(b=0;b<a.aoColumns.length;b++)!1!==a.aoColumns[b].bSortable?ga(a,a.aoColumns[b].nTh,b):i(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);
-""!==a.oClasses.sFooterTH&&i(a.nTFoot).children("tr").children("th").addClass(a.oClasses.sFooterTH);if(null!==a.nTFoot){c=O(a,null,a.aoFooter);b=0;for(d=a.aoColumns.length;b<d;b++)c[b]&&(a.aoColumns[b].nTf=c[b],a.aoColumns[b].sClass&&i(c[b]).addClass(a.aoColumns[b].sClass))}}function U(a,b,c){var d,g,f,h=[],e=[],i=a.aoColumns.length,m;c===n&&(c=!1);d=0;for(g=b.length;d<g;d++){h[d]=b[d].slice();h[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&h[d].splice(f,1);e.push([])}d=0;for(g=
-h.length;d<g;d++){if(a=h[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=h[d].length;f<b;f++)if(m=i=1,e[d][f]===n){a.appendChild(h[d][f].cell);for(e[d][f]=1;h[d+i]!==n&&h[d][f].cell==h[d+i][f].cell;)e[d+i][f]=1,i++;for(;h[d][f+m]!==n&&h[d][f].cell==h[d][f+m].cell;){for(c=0;c<i;c++)e[d+c][f+m]=1;m++}h[d][f].cell.rowSpan=i;h[d][f].cell.colSpan=m}}}function y(a){var b=C(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==i.inArray(!1,b))F(a,!1);else{var c,d,b=[],g=0,f=a.asStripeClasses.length;c=a.aoOpenRows.length;
-a.bDrawing=!0;a.iInitDisplayStart!==n&&-1!=a.iInitDisplayStart&&(a._iDisplayStart=a.oFeatures.bServerSide?a.iInitDisplayStart:a.iInitDisplayStart>=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,A(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var h=a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(h=0,d=a.aoData.length);for(;h<d;h++){var e=a.aoData[a.aiDisplay[h]];
-null===e.nTr&&ca(a,a.aiDisplay[h]);var s=e.nTr;if(0!==f){var m=a.asStripeClasses[g%f];e._sRowStripe!=m&&(i(s).removeClass(e._sRowStripe).addClass(m),e._sRowStripe=m)}C(a,"aoRowCallback",null,[s,a.aoData[a.aiDisplay[h]]._aData,g,h]);b.push(s);g++;if(0!==c)for(e=0;e<c;e++)if(s==a.aoOpenRows[e].nParent){b.push(a.aoOpenRows[e].nTr);break}}}else b[0]=l.createElement("tr"),a.asStripeClasses[0]&&(b[0].className=a.asStripeClasses[0]),c=a.oLanguage,f=c.sZeroRecords,1==a.iDraw&&null!==a.sAjaxSource&&!a.oFeatures.bServerSide?
-f=c.sLoadingRecords:c.sEmptyTable&&0===a.fnRecordsTotal()&&(f=c.sEmptyTable),c=l.createElement("td"),c.setAttribute("valign","top"),c.colSpan=v(a),c.className=a.oClasses.sRowEmpty,c.innerHTML=ha(a,f),b[g].appendChild(c);C(a,"aoHeaderCallback","header",[i(a.nTHead).children("tr")[0],Y(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);C(a,"aoFooterCallback","footer",[i(a.nTFoot).children("tr")[0],Y(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);g=l.createDocumentFragment();c=l.createDocumentFragment();
-if(a.nTBody){f=a.nTBody.parentNode;c.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered)for(;c=a.nTBody.firstChild;)a.nTBody.removeChild(c);c=0;for(d=b.length;c<d;c++)g.appendChild(b[c]);a.nTBody.appendChild(g);null!==f&&f.appendChild(a.nTBody)}C(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1;a.oFeatures.bServerSide&&(F(a,!1),a._bInitComplete||Z(a))}}function $(a){a.oFeatures.bSort?P(a,a.oPreviousSearch):a.oFeatures.bFilter?M(a,a.oPreviousSearch):
-(A(a),y(a))}function xa(a){var b=i("<div></div>")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=i('<div id="'+a.sTableId+'_wrapper" class="'+a.oClasses.sWrapper+'" role="grid"></div>')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),g,f,h,e,s,m,o,k=0;k<d.length;k++){f=0;h=d[k];if("<"==h){e=i("<div></div>")[0];s=d[k+1];if("'"==s||'"'==s){m="";for(o=2;d[k+o]!=s;)m+=d[k+o],o++;"H"==m?m=a.oClasses.sJUIHeader:"F"==m&&(m=a.oClasses.sJUIFooter);
--1!=m.indexOf(".")?(s=m.split("."),e.id=s[0].substr(1,s[0].length-1),e.className=s[1]):"#"==m.charAt(0)?e.id=m.substr(1,m.length-1):e.className=m;k+=o}c.appendChild(e);c=e}else if(">"==h)c=c.parentNode;else if("l"==h&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)g=ya(a),f=1;else if("f"==h&&a.oFeatures.bFilter)g=za(a),f=1;else if("r"==h&&a.oFeatures.bProcessing)g=Aa(a),f=1;else if("t"==h)g=Ba(a),f=1;else if("i"==h&&a.oFeatures.bInfo)g=Ca(a),f=1;else if("p"==h&&a.oFeatures.bPaginate)g=Da(a),f=1;
-else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;o=0;for(s=e.length;o<s;o++)if(h==e[o].cFeature){(g=e[o].fnInit(a))&&(f=1);break}}1==f&&null!==g&&("object"!==typeof a.aanFeatures[h]&&(a.aanFeatures[h]=[]),a.aanFeatures[h].push(g),c.appendChild(g))}b.parentNode.replaceChild(a.nTableWrapper,b)}function T(a,b){var c=i(b).children("tr"),d,g,f,h,e,s,m,j;a.splice(0,a.length);g=0;for(s=c.length;g<s;g++)a.push([]);g=0;for(s=c.length;g<s;g++){f=0;for(m=c[g].childNodes.length;f<m;f++)if(d=c[g].childNodes[f],
-"TD"==d.nodeName.toUpperCase()||"TH"==d.nodeName.toUpperCase()){var o=1*d.getAttribute("colspan"),k=1*d.getAttribute("rowspan"),o=!o||0===o||1===o?1:o,k=!k||0===k||1===k?1:k;for(h=0;a[g][h];)h++;j=h;for(e=0;e<o;e++)for(h=0;h<k;h++)a[g+h][j+e]={cell:d,unique:1==o?!0:!1},a[g+h].nTr=c[g]}}}function O(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],T(c,b)));for(var b=0,g=c.length;b<g;b++)for(var f=0,h=c[b].length;f<h;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function wa(a){if(a.bAjaxDataGet){a.iDraw++;
-F(a,!0);var b=Ea(a);ia(a,b);a.fnServerData.call(a.oInstance,a.sAjaxSource,b,function(b){Fa(a,b)},a);return!1}return!0}function Ea(a){var b=a.aoColumns.length,c=[],d,g,f,h;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:x(a)});c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",value:!1!==a.oFeatures.bPaginate?a._iDisplayLength:-1});for(f=0;f<b;f++)d=a.aoColumns[f].mDataProp,c.push({name:"mDataProp_"+f,value:"function"===
-typeof d?"function":d});if(!1!==a.oFeatures.bFilter){c.push({name:"sSearch",value:a.oPreviousSearch.sSearch});c.push({name:"bRegex",value:a.oPreviousSearch.bRegex});for(f=0;f<b;f++)c.push({name:"sSearch_"+f,value:a.aoPreSearchCols[f].sSearch}),c.push({name:"bRegex_"+f,value:a.aoPreSearchCols[f].bRegex}),c.push({name:"bSearchable_"+f,value:a.aoColumns[f].bSearchable})}if(!1!==a.oFeatures.bSort){var e=0;d=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(f=0;f<d.length;f++){g=
-a.aoColumns[d[f][0]].aDataSort;for(h=0;h<g.length;h++)c.push({name:"iSortCol_"+e,value:g[h]}),c.push({name:"sSortDir_"+e,value:d[f][1]}),e++}c.push({name:"iSortingCols",value:e});for(f=0;f<b;f++)c.push({name:"bSortable_"+f,value:a.aoColumns[f].bSortable})}return c}function ia(a,b){C(a,"aoServerParams","serverParams",[b])}function Fa(a,b){if(b.sEcho!==n){if(1*b.sEcho<a.iDraw)return;a.iDraw=1*b.sEcho}(!a.oScroll.bInfinite||a.oScroll.bInfinite&&(a.bSorted||a.bFiltered))&&ea(a);a._iRecordsTotal=parseInt(b.iTotalRecords,
-10);a._iRecordsDisplay=parseInt(b.iTotalDisplayRecords,10);var c=x(a),c=b.sColumns!==n&&""!==c&&b.sColumns!=c,d;c&&(d=D(a,b.sColumns));for(var g=W(a.sAjaxDataProp)(b),f=0,h=g.length;f<h;f++)if(c){for(var e=[],i=0,m=a.aoColumns.length;i<m;i++)e.push(g[f][d[i]]);H(a,e)}else H(a,g[f]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;y(a);a.bAjaxDataGet=!0;F(a,!1)}function za(a){var b=a.oPreviousSearch,c=a.oLanguage.sSearch,c=-1!==c.indexOf("_INPUT_")?c.replace("_INPUT_",'<input type="text" />'):
-""===c?'<input type="text" />':c+' <input type="text" />',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="<label>"+c+"</label>";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=i('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"&quot;"));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value,h=0,e=c.length;h<e;h++)c[h]!=i(this).parents("div.dataTables_filter")[0]&&i(c[h]._DT_Input).val(d);d!=b.sSearch&&M(a,{sSearch:d,bRegex:b.bRegex,
-bSmart:b.bSmart,bCaseInsensitive:b.bCaseInsensitive})});c.attr("aria-controls",a.sTableId).bind("keypress.DT",function(a){if(a.keyCode==13)return false});return d}function M(a,b,c){var d=a.oPreviousSearch,g=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};if(a.oFeatures.bServerSide)f(b);else{Ga(a,b.sSearch,c,b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<a.aoPreSearchCols.length;b++)Ha(a,g[b].sSearch,b,g[b].bRegex,
-g[b].bSmart,g[b].bCaseInsensitive);Ia(a)}a.bFiltered=!0;i(a.oInstance).trigger("filter",a);a._iDisplayStart=0;A(a);y(a);ja(a,0)}function Ia(a){for(var b=j.ext.afnFiltering,c=0,d=b.length;c<d;c++)for(var g=0,f=0,h=a.aiDisplay.length;f<h;f++){var e=a.aiDisplay[f-g];b[c](a,X(a,e,"filter"),e)||(a.aiDisplay.splice(f-g,1),g++)}}function Ha(a,b,c,d,g,f){if(""!==b)for(var h=0,b=ka(b,d,g,f),d=a.aiDisplay.length-1;0<=d;d--)g=la(w(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType),b.test(g)||(a.aiDisplay.splice(d,
-1),h++)}function Ga(a,b,c,d,g,f){d=ka(b,d,g,f);g=a.oPreviousSearch;c||(c=0);0!==j.ext.afnFiltering.length&&(c=1);if(0>=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||g.sSearch.length>b.length||1==c||0!==b.indexOf(g.sSearch)){a.aiDisplay.splice(0,a.aiDisplay.length);ja(a,1);for(b=0;b<a.aiDisplayMaster.length;b++)d.test(a.asDataSearch[b])&&a.aiDisplay.push(a.aiDisplayMaster[b])}else for(b=c=0;b<a.asDataSearch.length;b++)d.test(a.asDataSearch[b])||
-(a.aiDisplay.splice(b-c,1),c++)}function ja(a,b){if(!a.oFeatures.bServerSide){a.asDataSearch.splice(0,a.asDataSearch.length);for(var c=b&&1===b?a.aiDisplayMaster:a.aiDisplay,d=0,g=c.length;d<g;d++)a.asDataSearch[d]=ma(a,X(a,c[d],"filter"))}}function ma(a,b){var c="";a.__nTmpFilter===n&&(a.__nTmpFilter=l.createElement("div"));for(var d=a.__nTmpFilter,g=0,f=a.aoColumns.length;g<f;g++)a.aoColumns[g].bSearchable&&(c+=la(b[g],a.aoColumns[g].sType)+" ");-1!==c.indexOf("&")&&(d.innerHTML=c,c=d.textContent?
-d.textContent:d.innerText,c=c.replace(/\n/g," ").replace(/\r/g,""));return c}function ka(a,b,c,d){if(c)return a=b?a.split(" "):na(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:na(a);return RegExp(a,d?"i":"")}function la(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function na(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)",
-"g"),"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ja,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ja(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),g=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),h;h=0===f&&f==g?b.sInfoEmpty:0===f?b.sInfoEmpty+" "+b.sInfoFiltered:f==g?b.sInfo:b.sInfo+
-" "+b.sInfoFiltered;h+=b.sInfoPostFix;h=ha(a,h);null!==b.fnInfoCallback&&(h=b.fnInfoCallback.call(a.oInstance,a,c,d,g,f,h));a=a.aanFeatures.i;b=0;for(c=a.length;b<c;b++)i(a[b]).html(h)}}function ha(a,b){var c=a.fnFormatNumber(a._iDisplayStart+1),d=a.fnDisplayEnd(),d=a.fnFormatNumber(d),g=a.fnRecordsDisplay(),g=a.fnFormatNumber(g),f=a.fnRecordsTotal(),f=a.fnFormatNumber(f);a.oScroll.bInfinite&&(c=a.fnFormatNumber(1));return b.replace("_START_",c).replace("_END_",d).replace("_TOTAL_",g).replace("_MAX_",
-f)}function aa(a){var b,c,d=a.iInitDisplayStart;if(!1===a.bInitialised)setTimeout(function(){aa(a)},200);else{xa(a);va(a);U(a,a.aoHeader);a.nTFoot&&U(a,a.aoFooter);F(a,!0);a.oFeatures.bAutoWidth&&ba(a);b=0;for(c=a.aoColumns.length;b<c;b++)null!==a.aoColumns[b].sWidth&&(a.aoColumns[b].nTh.style.width=q(a.aoColumns[b].sWidth));a.oFeatures.bSort?P(a):a.oFeatures.bFilter?M(a,a.oPreviousSearch):(a.aiDisplay=a.aiDisplayMaster.slice(),A(a),y(a));null!==a.sAjaxSource&&!a.oFeatures.bServerSide?(c=[],ia(a,
-c),a.fnServerData.call(a.oInstance,a.sAjaxSource,c,function(c){var f=a.sAjaxDataProp!==""?W(a.sAjaxDataProp)(c):c;for(b=0;b<f.length;b++)H(a,f[b]);a.iInitDisplayStart=d;if(a.oFeatures.bSort)P(a);else{a.aiDisplay=a.aiDisplayMaster.slice();A(a);y(a)}F(a,false);Z(a,c)},a)):a.oFeatures.bServerSide||(F(a,!1),Z(a))}}function Z(a,b){a._bInitComplete=!0;C(a,"aoInitComplete","init",[a,b])}function oa(a){var b=j.defaults.oLanguage;!a.sEmptyTable&&(a.sZeroRecords&&"No data available in table"===b.sEmptyTable)&&
-p(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(a.sZeroRecords&&"Loading..."===b.sLoadingRecords)&&p(a,a,"sZeroRecords","sLoadingRecords")}function ya(a){if(a.oScroll.bInfinite)return null;var b='<select size="1" '+('name="'+a.sTableId+'_length"')+">",c,d,g=a.aLengthMenu;if(2==g.length&&"object"===typeof g[0]&&"object"===typeof g[1]){c=0;for(d=g[0].length;c<d;c++)b+='<option value="'+g[0][c]+'">'+g[1][c]+"</option>"}else{c=0;for(d=g.length;c<d;c++)b+='<option value="'+g[c]+'">'+g[c]+"</option>"}b+=
-"</select>";g=l.createElement("div");a.aanFeatures.l||(g.id=a.sTableId+"_length");g.className=a.oClasses.sLength;g.innerHTML="<label>"+a.oLanguage.sLengthMenu.replace("_MENU_",b)+"</label>";i('select option[value="'+a._iDisplayLength+'"]',g).attr("selected",!0);i("select",g).bind("change.DT",function(){var b=i(this).val(),g=a.aanFeatures.l;c=0;for(d=g.length;c<d;c++)g[c]!=this.parentNode&&i("select",g[c]).val(b);a._iDisplayLength=parseInt(b,10);A(a);if(a.fnDisplayEnd()==a.fnRecordsDisplay()){a._iDisplayStart=
-a.fnDisplayEnd()-a._iDisplayLength;if(a._iDisplayStart<0)a._iDisplayStart=0}if(a._iDisplayLength==-1)a._iDisplayStart=0;y(a)});i("select",g).attr("aria-controls",a.sTableId);return g}function A(a){a._iDisplayEnd=!1===a.oFeatures.bPaginate?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;
-j.ext.oPagination[a.sPaginationType].fnInit(a,b,function(a){A(a);y(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){A(a);y(a)})},sName:"pagination"});return b}function pa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-
-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart=0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLength<a.fnRecordsDisplay()&&(a._iDisplayStart+=a._iDisplayLength):a._iDisplayStart=0;else if("last"==b)if(0<=a._iDisplayLength){var d=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(d-1)*a._iDisplayLength}else a._iDisplayStart=0;else E(a,0,"Unknown paging action: "+b);i(a.oInstance).trigger("page",a);return c!=a._iDisplayStart}function Aa(a){var b=
-l.createElement("div");a.aanFeatures.r||(b.id=a.sTableId+"_processing");b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,a.nTable);return b}function F(a,b){if(a.oFeatures.bProcessing)for(var c=a.aanFeatures.r,d=0,g=c.length;d<g;d++)c[d].style.visibility=b?"visible":"hidden";i(a.oInstance).trigger("processing",[a,b])}function Ba(a){if(""===a.oScroll.sX&&""===a.oScroll.sY)return a.nTable;var b=l.createElement("div"),c=l.createElement("div"),d=
-l.createElement("div"),g=l.createElement("div"),f=l.createElement("div"),h=l.createElement("div"),e=a.nTable.cloneNode(!1),j=a.nTable.cloneNode(!1),m=a.nTable.getElementsByTagName("thead")[0],o=0===a.nTable.getElementsByTagName("tfoot").length?null:a.nTable.getElementsByTagName("tfoot")[0],k=a.oClasses;c.appendChild(d);f.appendChild(h);g.appendChild(a.nTable);b.appendChild(c);b.appendChild(g);d.appendChild(e);e.appendChild(m);null!==o&&(b.appendChild(f),h.appendChild(j),j.appendChild(o));b.className=
-k.sScrollWrapper;c.className=k.sScrollHead;d.className=k.sScrollHeadInner;g.className=k.sScrollBody;f.className=k.sScrollFoot;h.className=k.sScrollFootInner;a.oScroll.bAutoCss&&(c.style.overflow="hidden",c.style.position="relative",f.style.overflow="hidden",g.style.overflow="auto");c.style.border="0";c.style.width="100%";f.style.border="0";d.style.width=""!==a.oScroll.sXInner?a.oScroll.sXInner:"100%";e.removeAttribute("id");e.style.marginLeft="0";a.nTable.style.marginLeft="0";null!==o&&(j.removeAttribute("id"),
-j.style.marginLeft="0");d=i(a.nTable).children("caption");0<d.length&&(d=d[0],"top"===d._captionSide?e.appendChild(d):"bottom"===d._captionSide&&o&&j.appendChild(d));""!==a.oScroll.sX&&(c.style.width=q(a.oScroll.sX),g.style.width=q(a.oScroll.sX),null!==o&&(f.style.width=q(a.oScroll.sX)),i(g).scroll(function(){c.scrollLeft=this.scrollLeft;if(o!==null)f.scrollLeft=this.scrollLeft}));""!==a.oScroll.sY&&(g.style.height=q(a.oScroll.sY));a.aoDrawCallback.push({fn:Ka,sName:"scrolling"});a.oScroll.bInfinite&&
-i(g).scroll(function(){if(!a.bDrawing&&i(this).scrollTop()!==0&&i(this).scrollTop()+i(this).height()>i(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()<a.fnRecordsDisplay()){pa(a,"next");A(a);y(a)}});a.nScrollHead=c;a.nScrollFoot=f;return b}function Ka(a){var b=a.nScrollHead.getElementsByTagName("div")[0],c=b.getElementsByTagName("table")[0],d=a.nTable.parentNode,g,f,h,e,j,m,o,k,n=[],r=null!==a.nTFoot?a.nScrollFoot.getElementsByTagName("div")[0]:null,p=null!==a.nTFoot?r.getElementsByTagName("table")[0]:
-null,l=i.browser.msie&&7>=i.browser.version;i(a.nTable).children("thead, tfoot").remove();h=i(a.nTHead).clone()[0];a.nTable.insertBefore(h,a.nTable.childNodes[0]);null!==a.nTFoot&&(j=i(a.nTFoot).clone()[0],a.nTable.insertBefore(j,a.nTable.childNodes[1]));""===a.oScroll.sX&&(d.style.width="100%",b.parentNode.style.width="100%");var t=O(a,h);g=0;for(f=t.length;g<f;g++)o=G(a,g),t[g].style.width=a.aoColumns[o].sWidth;null!==a.nTFoot&&N(function(a){a.style.width=""},j.getElementsByTagName("tr"));a.oScroll.bCollapse&&
-""!==a.oScroll.sY&&(d.style.height=d.offsetHeight+a.nTHead.offsetHeight+"px");g=i(a.nTable).outerWidth();if(""===a.oScroll.sX){if(a.nTable.style.width="100%",l&&(i("tbody",d).height()>d.offsetHeight||"scroll"==i(d).css("overflow-y")))a.nTable.style.width=q(i(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width=q(a.oScroll.sXInner):g==i(d).width()&&i(d).height()<i(a.nTable).height()?(a.nTable.style.width=q(g-a.oScroll.iBarWidth),i(a.nTable).outerWidth()>g-a.oScroll.iBarWidth&&
-(a.nTable.style.width=q(g))):a.nTable.style.width=q(g);g=i(a.nTable).outerWidth();f=a.nTHead.getElementsByTagName("tr");h=h.getElementsByTagName("tr");N(function(a,b){m=a.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;k=i(a).width();b.style.width=q(k);n.push(k)},h,f);i(h).height(0);null!==a.nTFoot&&(e=j.getElementsByTagName("tr"),j=a.nTFoot.getElementsByTagName("tr"),N(function(a,b){m=a.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth=
-"0";m.borderBottomWidth="0";m.height=0;k=i(a).width();b.style.width=q(k);n.push(k)},e,j),i(e).height(0));N(function(a){a.innerHTML="";a.style.width=q(n.shift())},h);null!==a.nTFoot&&N(function(a){a.innerHTML="";a.style.width=q(n.shift())},e);if(i(a.nTable).outerWidth()<g){e=d.scrollHeight>d.offsetHeight||"scroll"==i(d).css("overflow-y")?g+a.oScroll.iBarWidth:g;if(l&&(d.scrollHeight>d.offsetHeight||"scroll"==i(d).css("overflow-y")))a.nTable.style.width=q(e-a.oScroll.iBarWidth);d.style.width=q(e);b.parentNode.style.width=
-q(e);null!==a.nTFoot&&(r.parentNode.style.width=q(e));""===a.oScroll.sX?E(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."):""!==a.oScroll.sXInner&&E(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),b.parentNode.style.width=q("100%"),null!==a.nTFoot&&(r.parentNode.style.width=
-q("100%"));""===a.oScroll.sY&&l&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),l=""!==a.oScroll.sX&&a.nTable.offsetWidth>d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeight<d.offsetHeight&&(d.style.height=q(a.nTable.offsetHeight+l)));l=i(a.nTable).outerWidth();c.style.width=q(l);b.style.width=q(l);c=i(a.nTable).height()>d.clientHeight||"scroll"==i(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+
-"px":"0px";null!==a.nTFoot&&(p.style.width=q(l),r.style.width=q(l),r.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");i(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function N(a,b,c){for(var d=0,g=b.length;d<g;d++)for(var f=0,h=b[d].childNodes.length;f<h;f++)1==b[d].childNodes[f].nodeType&&(c?a(b[d].childNodes[f],c[d].childNodes[f]):a(b[d].childNodes[f]))}function La(a,b){if(!a||null===a||""===a)return 0;b||(b=l.getElementsByTagName("body")[0]);var c,d=l.createElement("div");d.style.width=
-q(a);b.appendChild(d);c=d.offsetWidth;b.removeChild(d);return c}function ba(a){var b=0,c,d=0,g=a.aoColumns.length,f,h=i("th",a.nTHead),e=a.nTable.getAttribute("width");for(f=0;f<g;f++)a.aoColumns[f].bVisible&&(d++,null!==a.aoColumns[f].sWidth&&(c=La(a.aoColumns[f].sWidthOrig,a.nTable.parentNode),null!==c&&(a.aoColumns[f].sWidth=q(c)),b++));if(g==h.length&&0===b&&d==g&&""===a.oScroll.sX&&""===a.oScroll.sY)for(f=0;f<a.aoColumns.length;f++)c=i(h[f]).width(),null!==c&&(a.aoColumns[f].sWidth=q(c));else{b=
-a.nTable.cloneNode(!1);f=a.nTHead.cloneNode(!0);d=l.createElement("tbody");c=l.createElement("tr");b.removeAttribute("id");b.appendChild(f);null!==a.nTFoot&&(b.appendChild(a.nTFoot.cloneNode(!0)),N(function(a){a.style.width=""},b.getElementsByTagName("tr")));b.appendChild(d);d.appendChild(c);d=i("thead th",b);0===d.length&&(d=i("tbody tr:eq(0)>td",b));h=O(a,f);for(f=d=0;f<g;f++){var j=a.aoColumns[f];j.bVisible&&null!==j.sWidthOrig&&""!==j.sWidthOrig?h[f-d].style.width=q(j.sWidthOrig):j.bVisible?h[f-
-d].style.width="":d++}for(f=0;f<g;f++)a.aoColumns[f].bVisible&&(d=Ma(a,f),null!==d&&(d=d.cloneNode(!0),""!==a.aoColumns[f].sContentPadding&&(d.innerHTML+=a.aoColumns[f].sContentPadding),c.appendChild(d)));g=a.nTable.parentNode;g.appendChild(b);""!==a.oScroll.sX&&""!==a.oScroll.sXInner?b.style.width=q(a.oScroll.sXInner):""!==a.oScroll.sX?(b.style.width="",i(b).width()<g.offsetWidth&&(b.style.width=q(g.offsetWidth))):""!==a.oScroll.sY?b.style.width=q(g.offsetWidth):e&&(b.style.width=q(e));b.style.visibility=
-"hidden";Na(a,b);g=i("tbody tr:eq(0)",b).children();0===g.length&&(g=O(a,i("thead",b)[0]));if(""!==a.oScroll.sX){for(f=d=c=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(c=null===a.aoColumns[f].sWidthOrig?c+i(g[d]).outerWidth():c+(parseInt(a.aoColumns[f].sWidth.replace("px",""),10)+(i(g[d]).outerWidth()-i(g[d]).width())),d++);b.style.width=q(c);a.nTable.style.width=q(c)}for(f=d=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(c=i(g[d]).width(),null!==c&&0<c&&(a.aoColumns[f].sWidth=q(c)),
-d++);g=i(b).css("width");a.nTable.style.width=-1!==g.indexOf("%")?g:q(i(b).outerWidth());b.parentNode.removeChild(b)}e&&(a.nTable.style.width=q(e))}function Na(a,b){""===a.oScroll.sX&&""!==a.oScroll.sY?(i(b).width(),b.style.width=q(i(b).outerWidth()-a.oScroll.iBarWidth)):""!==a.oScroll.sX&&(b.style.width=q(i(b).outerWidth()))}function Ma(a,b){var c=Oa(a,b);if(0>c)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=w(a,c,b,"");return d}return L(a,c)[b]}function Oa(a,b){for(var c=
--1,d=-1,g=0;g<a.aoData.length;g++){var f=w(a,g,b,"display")+"",f=f.replace(/<.*?>/g,"");f.length>c&&(c=f.length,d=g)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1);return 48>b||57<b?a:a+"px"}function Pa(){var a=l.createElement("p"),b=a.style;b.width="100%";b.height="200px";b.padding="0px";var c=l.createElement("div"),b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";
-b.padding="0px";b.overflow="hidden";c.appendChild(a);l.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;b==a&&(a=c.clientWidth);l.body.removeChild(c);return b-a}function P(a,b){var c,d,g,f,h,e,o=[],m=[],k=j.ext.oSort,r=a.aoData,l=a.aoColumns,p=a.oLanguage.oAria;if(!a.oFeatures.bServerSide&&(0!==a.aaSorting.length||null!==a.aaSortingFixed)){o=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c<o.length;c++)if(d=o[c][0],g=t(a,d),f=
-a.aoColumns[d].sSortDataType,j.ext.afnSortData[f])if(h=j.ext.afnSortData[f].call(a.oInstance,a,d,g),h.length===r.length){g=0;for(f=r.length;g<f;g++)I(a,g,d,h[g])}else E(a,0,"Returned data sort array (col "+d+") is the wrong length");c=0;for(d=a.aiDisplayMaster.length;c<d;c++)m[a.aiDisplayMaster[c]]=c;var q=o.length,G;c=0;for(d=r.length;c<d;c++)for(g=0;g<q;g++){G=l[o[g][0]].aDataSort;h=0;for(e=G.length;h<e;h++)f=l[G[h]].sType,f=k[(f?f:"string")+"-pre"],r[c]._aSortData[G[h]]=f?f(w(a,c,G[h],"sort")):
-w(a,c,G[h],"sort")}a.aiDisplayMaster.sort(function(a,b){var c,d,g,f,h;for(c=0;c<q;c++){h=l[o[c][0]].aDataSort;d=0;for(g=h.length;d<g;d++)if(f=l[h[d]].sType,f=k[(f?f:"string")+"-"+o[c][1]](r[a]._aSortData[h[d]],r[b]._aSortData[h[d]]),0!==f)return f}return k["numeric-asc"](m[a],m[b])})}(b===n||b)&&!a.oFeatures.bDeferRender&&Q(a);c=0;for(d=a.aoColumns.length;c<d;c++)f=l[c].sTitle.replace(/<.*?>/g,""),g=l[c].nTh,g.removeAttribute("aria-sort"),g.removeAttribute("aria-label"),l[c].bSortable?0<o.length&&
-o[0][0]==c?(g.setAttribute("aria-sort","asc"==o[0][1]?"ascending":"descending"),g.setAttribute("aria-label",f+("asc"==(l[c].asSorting[o[0][2]+1]?l[c].asSorting[o[0][2]+1]:l[c].asSorting[0])?p.sSortAscending:p.sSortDescending))):g.setAttribute("aria-label",f+("asc"==l[c].asSorting[0]?p.sSortAscending:p.sSortDescending)):g.setAttribute("aria-label",f);a.bSorted=!0;i(a.oInstance).trigger("sort",a);a.oFeatures.bFilter?M(a,a.oPreviousSearch,1):(a.aiDisplay=a.aiDisplayMaster.slice(),a._iDisplayStart=0,
-A(a),y(a))}function ga(a,b,c,d){Qa(b,{},function(b){if(!1!==a.aoColumns[c].bSortable){var f=function(){var d,f;if(b.shiftKey){for(var e=!1,i=0;i<a.aaSorting.length;i++)if(a.aaSorting[i][0]==c){e=!0;d=a.aaSorting[i][0];f=a.aaSorting[i][2]+1;a.aoColumns[d].asSorting[f]?(a.aaSorting[i][1]=a.aoColumns[d].asSorting[f],a.aaSorting[i][2]=f):a.aaSorting.splice(i,1);break}!1===e&&a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}else 1==a.aaSorting.length&&a.aaSorting[0][0]==c?(d=a.aaSorting[0][0],f=a.aaSorting[0][2]+
-1,a.aoColumns[d].asSorting[f]||(f=0),a.aaSorting[0][1]=a.aoColumns[d].asSorting[f],a.aaSorting[0][2]=f):(a.aaSorting.splice(0,a.aaSorting.length),a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0]));P(a)};a.oFeatures.bProcessing?(F(a,!0),setTimeout(function(){f();a.oFeatures.bServerSide||F(a,!1)},0)):f();"function"==typeof d&&d(a)}})}function Q(a){var b,c,d,g,f,h=a.aoColumns.length,e=a.oClasses;for(b=0;b<h;b++)a.aoColumns[b].bSortable&&i(a.aoColumns[b].nTh).removeClass(e.sSortAsc+" "+e.sSortDesc+
-" "+a.aoColumns[b].sSortingClass);g=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable){f=a.aoColumns[b].sSortingClass;d=-1;for(c=0;c<g.length;c++)if(g[c][0]==b){f="asc"==g[c][1]?e.sSortAsc:e.sSortDesc;d=c;break}i(a.aoColumns[b].nTh).addClass(f);a.bJUI&&(c=i("span."+e.sSortIcon,a.aoColumns[b].nTh),c.removeClass(e.sSortJUIAsc+" "+e.sSortJUIDesc+" "+e.sSortJUI+" "+e.sSortJUIAscAllowed+" "+e.sSortJUIDescAllowed),
-c.addClass(-1==d?a.aoColumns[b].sSortingClassJUI:"asc"==g[d][1]?e.sSortJUIAsc:e.sSortJUIDesc))}else i(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass);f=e.sSortColumn;if(a.oFeatures.bSort&&a.oFeatures.bSortClasses){d=L(a);if(a.oFeatures.bDeferRender)i(d).removeClass(f+"1 "+f+"2 "+f+"3");else if(d.length>=h)for(b=0;b<h;b++)if(-1!=d[b].className.indexOf(f+"1")){c=0;for(a=d.length/h;c<a;c++)d[h*c+b].className=i.trim(d[h*c+b].className.replace(f+"1",""))}else if(-1!=d[b].className.indexOf(f+
-"2")){c=0;for(a=d.length/h;c<a;c++)d[h*c+b].className=i.trim(d[h*c+b].className.replace(f+"2",""))}else if(-1!=d[b].className.indexOf(f+"3")){c=0;for(a=d.length/h;c<a;c++)d[h*c+b].className=i.trim(d[h*c+b].className.replace(" "+f+"3",""))}var e=1,j;for(b=0;b<g.length;b++){j=parseInt(g[b][0],10);c=0;for(a=d.length/h;c<a;c++)d[h*c+j].className+=" "+f+e;3>e&&e++}}}function qa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b,c;b=a.oScroll.bInfinite;var d={iCreate:(new Date).getTime(),iStart:b?0:a._iDisplayStart,
-iEnd:b?a._iDisplayLength:a._iDisplayEnd,iLength:a._iDisplayLength,aaSorting:i.extend(!0,[],a.aaSorting),oSearch:i.extend(!0,{},a.oPreviousSearch),aoSearchCols:i.extend(!0,[],a.aoPreSearchCols),abVisCols:[]};b=0;for(c=a.aoColumns.length;b<c;b++)d.abVisCols.push(a.aoColumns[b].bVisible);C(a,"aoStateSaveParams","stateSaveParams",[a,d]);a.fnStateSave.call(a.oInstance,a,d)}}function Ra(a,b){if(a.oFeatures.bStateSave){var c=a.fnStateLoad.call(a.oInstance,a);if(c){var d=C(a,"aoStateLoadParams","stateLoadParams",
-[a,c]);if(-1===i.inArray(!1,d)){a.oLoadedState=i.extend(!0,{},c);a._iDisplayStart=c.iStart;a.iInitDisplayStart=c.iStart;a._iDisplayEnd=c.iEnd;a._iDisplayLength=c.iLength;a.aaSorting=c.aaSorting.slice();a.saved_aaSorting=c.aaSorting.slice();i.extend(a.oPreviousSearch,c.oSearch);i.extend(!0,a.aoPreSearchCols,c.aoSearchCols);b.saved_aoColumns=[];for(d=0;d<c.abVisCols.length;d++)b.saved_aoColumns[d]={},b.saved_aoColumns[d].bVisible=c.abVisCols[d];C(a,"aoStateLoaded","stateLoaded",[a,c])}}}}function Sa(a){for(var b=
-V.location.pathname.split("/"),a=a+"_"+b[b.length-1].replace(/[\/:]/g,"").toLowerCase()+"=",b=l.cookie.split(";"),c=0;c<b.length;c++){for(var d=b[c];" "==d.charAt(0);)d=d.substring(1,d.length);if(0===d.indexOf(a))return decodeURIComponent(d.substring(a.length,d.length))}return null}function u(a){for(var b=0;b<j.settings.length;b++)if(j.settings[b].nTable===a)return j.settings[b];return null}function S(a){for(var b=[],a=a.aoData,c=0,d=a.length;c<d;c++)null!==a[c].nTr&&b.push(a[c].nTr);return b}function L(a,
-b){var c=[],d,g,f,e,i,j;g=0;var o=a.aoData.length;b!==n&&(g=b,o=b+1);for(f=g;f<o;f++)if(j=a.aoData[f],null!==j.nTr){g=[];e=0;for(i=j.nTr.childNodes.length;e<i;e++)d=j.nTr.childNodes[e].nodeName.toLowerCase(),("td"==d||"th"==d)&&g.push(j.nTr.childNodes[e]);e=d=0;for(i=a.aoColumns.length;e<i;e++)a.aoColumns[e].bVisible?c.push(g[e-d]):(c.push(j._anHidden[e]),d++)}return c}function E(a,b,c){a=null===a?"DataTables warning: "+c:"DataTables warning (table id = '"+a.sTableId+"'): "+c;if(0===b)if("alert"==
-j.ext.sErrMode)alert(a);else throw Error(a);else V.console&&console.log&&console.log(a)}function p(a,b,c,d){d===n&&(d=c);b[c]!==n&&(a[d]=b[c])}function Ta(a,b){for(var c in b)b.hasOwnProperty(c)&&("object"===typeof e[c]&&!1===i.isArray(b[c])?i.extend(!0,a[c],b[c]):a[c]=b[c]);return a}function Qa(a,b,c){i(a).bind("click.DT",b,function(b){a.blur();c(b)}).bind("keypress.DT",b,function(a){13===a.which&&c(a)}).bind("selectstart.DT",function(){return!1})}function B(a,b,c,d){c&&a[b].push({fn:c,sName:d})}
-function C(a,b,c,d){for(var b=a[b],g=[],f=b.length-1;0<=f;f--)g.push(b[f].fn.apply(a.oInstance,d));null!==c&&i(a.oInstance).trigger(c,d);return g}function Ua(a){return function(){var b=[u(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var Va=V.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,g=[],f=i.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===
-b&&null!==d&&(d=Va(d)),g.push((f?"":'"'+c+'":')+d);return(f?"[":"{")+g+(f?"]":"}")};this.$=function(a,b){var c,d,g=[],f;d=u(this[j.ext.iApiIndex]);var e=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=i.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c<d;c++)(f=e[o[c]].nTr)&&g.push(f)}else if("current"==b.order&&"none"==b.filter){c=0;for(d=k.length;c<d;c++)(f=e[k[c]].nTr)&&g.push(f)}else if("current"==b.order&&"applied"==
-b.filter){c=0;for(d=o.length;c<d;c++)(f=e[o[c]].nTr)&&g.push(f)}else if("original"==b.order&&"none"==b.filter){c=0;for(d=e.length;c<d;c++)(f=e[c].nTr)&&g.push(f)}else if("original"==b.order&&"applied"==b.filter){c=0;for(d=e.length;c<d;c++)f=e[c].nTr,-1!==i.inArray(c,o)&&f&&g.push(f)}else E(d,1,"Unknown selection options");g=i(g);c=g.filter(a);g=g.find(a);return i([].concat(i.makeArray(c),i.makeArray(g)))};this._=function(a,b){var c=[],d,g,e=this.$(a,b);d=0;for(g=e.length;d<g;d++)c.push(this.fnGetData(e[d]));
-return c};this.fnAddData=function(a,b){if(0===a.length)return[];var c=[],d,g=u(this[j.ext.iApiIndex]);if("object"===typeof a[0]&&null!==a[0])for(var e=0;e<a.length;e++){d=H(g,a[e]);if(-1==d)return c;c.push(d)}else{d=H(g,a);if(-1==d)return c;c.push(d)}g.aiDisplay=g.aiDisplayMaster.slice();(b===n||b)&&$(g);return c};this.fnAdjustColumnSizing=function(a){var b=u(this[j.ext.iApiIndex]);k(b);a===n||a?this.fnDraw(!1):(""!==b.oScroll.sX||""!==b.oScroll.sY)&&this.oApi._fnScrollDraw(b)};this.fnClearTable=
-function(a){var b=u(this[j.ext.iApiIndex]);ea(b);(a===n||a)&&y(b)};this.fnClose=function(a){for(var b=u(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return(a=b.aoOpenRows[c].nTr.parentNode)&&a.removeChild(b.aoOpenRows[c].nTr),b.aoOpenRows.splice(c,1),0;return 1};this.fnDeleteRow=function(a,b,c){var d=u(this[j.ext.iApiIndex]),g,e,a="object"===typeof a?K(d,a):a,h=d.aoData.splice(a,1);g=0;for(e=d.aoData.length;g<e;g++)null!==d.aoData[g].nTr&&(d.aoData[g].nTr._DT_RowIndex=
-g);g=i.inArray(a,d.aiDisplay);d.asDataSearch.splice(g,1);fa(d.aiDisplayMaster,a);fa(d.aiDisplay,a);"function"===typeof b&&b.call(this,d,h);d._iDisplayStart>=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)A(d),y(d);return h};this.fnDestroy=function(a){var b=u(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,g,e,a=a===n?!1:!0;b.bDestroying=!0;C(b,"aoDestroyCallback","destroy",[b]);g=0;for(e=b.aoColumns.length;g<e;g++)!1===
-b.aoColumns[g].bVisible&&this.fnSetColumnVis(g,!0);i(b.nTableWrapper).find("*").andSelf().unbind(".DT");i("tbody>tr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(i(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(i(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);i(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];Q(b);i(S(b)).removeClass(b.asStripeClasses.join(" "));
-i("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc,b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(i("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),i("th, td",b.nTHead).each(function(){var a=i("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();i(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);g=0;for(e=b.aoData.length;g<e;g++)null!==
-b.aoData[g].nTr&&d.appendChild(b.aoData[g].nTr);!0===b.oFeatures.bAutoWidth&&(b.nTable.style.width=q(b.sDestroyWidth));i(d).children("tr:even").addClass(b.asDestroyStripes[0]);i(d).children("tr:odd").addClass(b.asDestroyStripes[1]);g=0;for(e=j.settings.length;g<e;g++)j.settings[g]==b&&j.settings.splice(g,1);b=null};this.fnDraw=function(a){var b=u(this[j.ext.iApiIndex]);!1===a?(A(b),y(b)):$(b)};this.fnFilter=function(a,b,c,d,e,f){var h=u(this[j.ext.iApiIndex]);if(h.oFeatures.bFilter){if(c===n||null===
-c)c=!1;if(d===n||null===d)d=!0;if(e===n||null===e)e=!0;if(f===n||null===f)f=!0;if(b===n||null===b){if(M(h,{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f},1),e&&h.aanFeatures.f){b=h.aanFeatures.f;c=0;for(d=b.length;c<d;c++)i(b[c]._DT_Input).val(a)}}else i.extend(h.aoPreSearchCols[b],{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f}),M(h,h.oPreviousSearch,1)}};this.fnGetData=function(a,b){var c=u(this[j.ext.iApiIndex]);if(a!==n){var d=a;if("object"===typeof a){var e=a.nodeName.toLowerCase();"tr"===
-e?d=K(c,a):"td"===e&&(d=K(c,a.parentNode),b=da(c,d,a))}return b!==n?w(c,d,b,""):c.aoData[d]!==n?c.aoData[d]._aData:null}return Y(c)};this.fnGetNodes=function(a){var b=u(this[j.ext.iApiIndex]);return a!==n?b.aoData[a]!==n?b.aoData[a].nTr:null:S(b)};this.fnGetPosition=function(a){var b=u(this[j.ext.iApiIndex]),c=a.nodeName.toUpperCase();return"TR"==c?K(b,a):"TD"==c||"TH"==c?(c=K(b,a.parentNode),a=da(b,c,a),[c,t(b,a),a]):null};this.fnIsOpen=function(a){for(var b=u(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==
-a)return!0;return!1};this.fnOpen=function(a,b,c){var d=u(this[j.ext.iApiIndex]),e=S(d);if(-1!==i.inArray(a,e)){this.fnClose(a);var e=l.createElement("tr"),f=l.createElement("td");e.appendChild(f);f.className=c;f.colSpan=v(d);"string"===typeof b?f.innerHTML=b:i(f).html(b);b=i("tr",d.nTBody);-1!=i.inArray(a,b)&&i(e).insertAfter(a);d.aoOpenRows.push({nTr:e,nParent:a});return e}};this.fnPageChange=function(a,b){var c=u(this[j.ext.iApiIndex]);pa(c,a);A(c);(b===n||b)&&y(c)};this.fnSetColumnVis=function(a,
-b,c){var d=u(this[j.ext.iApiIndex]),e,f,h=d.aoColumns,i=d.aoData,o,m;if(h[a].bVisible!=b){if(b){for(e=f=0;e<a;e++)h[e].bVisible&&f++;m=f>=v(d);if(!m)for(e=a;e<h.length;e++)if(h[e].bVisible){o=e;break}e=0;for(f=i.length;e<f;e++)null!==i[e].nTr&&(m?i[e].nTr.appendChild(i[e]._anHidden[a]):i[e].nTr.insertBefore(i[e]._anHidden[a],L(d,e)[o]))}else{e=0;for(f=i.length;e<f;e++)null!==i[e].nTr&&(o=L(d,e)[a],i[e]._anHidden[a]=o,o.parentNode.removeChild(o))}h[a].bVisible=b;U(d,d.aoHeader);d.nTFoot&&U(d,d.aoFooter);
-e=0;for(f=d.aoOpenRows.length;e<f;e++)d.aoOpenRows[e].nTr.colSpan=v(d);if(c===n||c)k(d),y(d);qa(d)}};this.fnSettings=function(){return u(this[j.ext.iApiIndex])};this.fnSort=function(a){var b=u(this[j.ext.iApiIndex]);b.aaSorting=a;P(b)};this.fnSortListener=function(a,b,c){ga(u(this[j.ext.iApiIndex]),a,b,c)};this.fnUpdate=function(a,b,c,d,e){var f=u(this[j.ext.iApiIndex]),b="object"===typeof b?K(f,b):b;if(f.__fnUpdateDeep===n&&i.isArray(a)&&"object"===typeof a){f.aoData[b]._aData=a.slice();f.__fnUpdateDeep=
-!0;for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(w(f,b,c),b,c,!1,!1);f.__fnUpdateDeep=n}else if(f.__fnUpdateDeep===n&&null!==a&&"object"===typeof a){f.aoData[b]._aData=i.extend(!0,{},a);f.__fnUpdateDeep=!0;for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(w(f,b,c),b,c,!1,!1);f.__fnUpdateDeep=n}else{I(f,b,c,a);var a=w(f,b,c,"display"),h=f.aoColumns[c];null!==h.fnRender&&(a=R(f,b,c),h.bUseRendered&&I(f,b,c,a));null!==f.aoData[b].nTr&&(L(f,b)[c].innerHTML=a)}c=i.inArray(b,f.aiDisplay);f.asDataSearch[c]=
-ma(f,X(f,b,"filter"));(e===n||e)&&k(f);(d===n||d)&&$(f);return 0};this.fnVersionCheck=j.ext.fnVersionCheck;this.oApi={_fnExternApiFunc:Ua,_fnInitialise:aa,_fnInitComplete:Z,_fnLanguageCompat:oa,_fnAddColumn:o,_fnColumnOptions:r,_fnAddData:H,_fnCreateTr:ca,_fnGatherData:ua,_fnBuildHead:va,_fnDrawHead:U,_fnDraw:y,_fnReDraw:$,_fnAjaxUpdate:wa,_fnAjaxParameters:Ea,_fnAjaxUpdateDraw:Fa,_fnServerParams:ia,_fnAddOptionsHtml:xa,_fnFeatureHtmlTable:Ba,_fnScrollDraw:Ka,_fnAdjustColumnSizing:k,_fnFeatureHtmlFilter:za,
-_fnFilterComplete:M,_fnFilterCustom:Ia,_fnFilterColumn:Ha,_fnFilter:Ga,_fnBuildSearchArray:ja,_fnBuildSearchRow:ma,_fnFilterCreateSearch:ka,_fnDataToSearch:la,_fnSort:P,_fnSortAttachListener:ga,_fnSortingClasses:Q,_fnFeatureHtmlPaginate:Da,_fnPageChange:pa,_fnFeatureHtmlInfo:Ca,_fnUpdateInfo:Ja,_fnFeatureHtmlLength:ya,_fnFeatureHtmlProcessing:Aa,_fnProcessingDisplay:F,_fnVisibleToColumnIndex:G,_fnColumnIndexToVisible:t,_fnNodeToDataIndex:K,_fnVisbleColumns:v,_fnCalculateEnd:A,_fnConvertToWidth:La,
-_fnCalculateColumnWidths:ba,_fnScrollingWidthAdjust:Na,_fnGetWidestNode:Ma,_fnGetMaxLenString:Oa,_fnStringToCss:q,_fnDetectType:z,_fnSettingsFromNode:u,_fnGetDataMaster:Y,_fnGetTrNodes:S,_fnGetTdNodes:L,_fnEscapeRegex:na,_fnDeleteIndex:fa,_fnReOrderIndex:D,_fnColumnOrdering:x,_fnLog:E,_fnClearTable:ea,_fnSaveState:qa,_fnLoadState:Ra,_fnCreateCookie:function(a,b,c,d,e){var f=new Date;f.setTime(f.getTime()+1E3*c);var c=V.location.pathname.split("/"),a=a+"_"+c.pop().replace(/[\/:]/g,"").toLowerCase(),
-h;null!==e?(h="function"===typeof i.parseJSON?i.parseJSON(b):eval("("+b+")"),b=e(a,h,f.toGMTString(),c.join("/")+"/")):b=a+"="+encodeURIComponent(b)+"; expires="+f.toGMTString()+"; path="+c.join("/")+"/";e="";f=9999999999999;if(4096<(null!==Sa(a)?l.cookie.length:b.length+l.cookie.length)+10){for(var a=l.cookie.split(";"),o=0,j=a.length;o<j;o++)if(-1!=a[o].indexOf(d)){var k=a[o].split("=");try{h=eval("("+decodeURIComponent(k[1])+")")}catch(r){continue}h.iCreate&&h.iCreate<f&&(e=k[0],f=h.iCreate)}""!==
-e&&(l.cookie=e+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+c.join("/")+"/")}l.cookie=b},_fnReadCookie:Sa,_fnDetectHeader:T,_fnGetUniqueThs:O,_fnScrollBarWidth:Pa,_fnApplyToChildren:N,_fnMap:p,_fnGetRowData:X,_fnGetCellData:w,_fnSetCellData:I,_fnGetObjectDataFn:W,_fnSetObjectDataFn:ta,_fnApplyColumnDefs:J,_fnBindAction:Qa,_fnExtend:Ta,_fnCallbackReg:B,_fnCallbackFire:C,_fnJsonString:Va,_fnRender:R,_fnNodeToColumnIndex:da,_fnInfoMacros:ha};i.extend(j.ext.oApi,this.oApi);for(var ra in j.ext.oApi)ra&&
-(this[ra]=Ua(ra));var sa=this;return this.each(function(){var a=0,b,c,d;c=this.getAttribute("id");var g=!1,f=!1;if("table"!=this.nodeName.toLowerCase())E(null,0,"Attempted to initialise DataTables on a node which is not a table: "+this.nodeName);else{a=0;for(b=j.settings.length;a<b;a++){if(j.settings[a].nTable==this){if(e===n||e.bRetrieve)return j.settings[a].oInstance;if(e.bDestroy){j.settings[a].oInstance.fnDestroy();break}else{E(j.settings[a],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy");
-return}}if(j.settings[a].sTableId==this.id){j.settings.splice(a,1);break}}if(null===c||""===c)this.id=c="DataTables_Table_"+j.ext._oExternConfig.iNextUnique++;var h=i.extend(!0,{},j.models.oSettings,{nTable:this,oApi:sa.oApi,oInit:e,sDestroyWidth:i(this).width(),sInstance:c,sTableId:c});j.settings.push(h);h.oInstance=1===sa.length?sa:i(this).dataTable();e||(e={});e.oLanguage&&oa(e.oLanguage);e=Ta(i.extend(!0,{},j.defaults),e);p(h.oFeatures,e,"bPaginate");p(h.oFeatures,e,"bLengthChange");p(h.oFeatures,
-e,"bFilter");p(h.oFeatures,e,"bSort");p(h.oFeatures,e,"bInfo");p(h.oFeatures,e,"bProcessing");p(h.oFeatures,e,"bAutoWidth");p(h.oFeatures,e,"bSortClasses");p(h.oFeatures,e,"bServerSide");p(h.oFeatures,e,"bDeferRender");p(h.oScroll,e,"sScrollX","sX");p(h.oScroll,e,"sScrollXInner","sXInner");p(h.oScroll,e,"sScrollY","sY");p(h.oScroll,e,"bScrollCollapse","bCollapse");p(h.oScroll,e,"bScrollInfinite","bInfinite");p(h.oScroll,e,"iScrollLoadGap","iLoadGap");p(h.oScroll,e,"bScrollAutoCss","bAutoCss");p(h,
-e,"asStripeClasses");p(h,e,"asStripClasses","asStripeClasses");p(h,e,"fnServerData");p(h,e,"fnFormatNumber");p(h,e,"sServerMethod");p(h,e,"aaSorting");p(h,e,"aaSortingFixed");p(h,e,"aLengthMenu");p(h,e,"sPaginationType");p(h,e,"sAjaxSource");p(h,e,"sAjaxDataProp");p(h,e,"iCookieDuration");p(h,e,"sCookiePrefix");p(h,e,"sDom");p(h,e,"bSortCellsTop");p(h,e,"iTabIndex");p(h,e,"oSearch","oPreviousSearch");p(h,e,"aoSearchCols","aoPreSearchCols");p(h,e,"iDisplayLength","_iDisplayLength");p(h,e,"bJQueryUI",
-"bJUI");p(h,e,"fnCookieCallback");p(h,e,"fnStateLoad");p(h,e,"fnStateSave");p(h.oLanguage,e,"fnInfoCallback");B(h,"aoDrawCallback",e.fnDrawCallback,"user");B(h,"aoServerParams",e.fnServerParams,"user");B(h,"aoStateSaveParams",e.fnStateSaveParams,"user");B(h,"aoStateLoadParams",e.fnStateLoadParams,"user");B(h,"aoStateLoaded",e.fnStateLoaded,"user");B(h,"aoRowCallback",e.fnRowCallback,"user");B(h,"aoRowCreatedCallback",e.fnCreatedRow,"user");B(h,"aoHeaderCallback",e.fnHeaderCallback,"user");B(h,"aoFooterCallback",
-e.fnFooterCallback,"user");B(h,"aoInitComplete",e.fnInitComplete,"user");B(h,"aoPreDrawCallback",e.fnPreDrawCallback,"user");h.oFeatures.bServerSide&&h.oFeatures.bSort&&h.oFeatures.bSortClasses?B(h,"aoDrawCallback",Q,"server_side_sort_classes"):h.oFeatures.bDeferRender&&B(h,"aoDrawCallback",Q,"defer_sort_classes");e.bJQueryUI?(i.extend(h.oClasses,j.ext.oJUIClasses),e.sDom===j.defaults.sDom&&"lfrtip"===j.defaults.sDom&&(h.sDom='<"H"lfr>t<"F"ip>')):i.extend(h.oClasses,j.ext.oStdClasses);i(this).addClass(h.oClasses.sTable);
-if(""!==h.oScroll.sX||""!==h.oScroll.sY)h.oScroll.iBarWidth=Pa();h.iInitDisplayStart===n&&(h.iInitDisplayStart=e.iDisplayStart,h._iDisplayStart=e.iDisplayStart);e.bStateSave&&(h.oFeatures.bStateSave=!0,Ra(h,e),B(h,"aoDrawCallback",qa,"state_save"));null!==e.iDeferLoading&&(h.bDeferLoading=!0,a=i.isArray(e.iDeferLoading),h._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,h._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(h.oLanguage.sUrl=e.oLanguage.sUrl,
-i.getJSON(h.oLanguage.sUrl,null,function(a){oa(a);i.extend(true,h.oLanguage,e.oLanguage,a);aa(h)}),g=!0):i.extend(!0,h.oLanguage,e.oLanguage);null===e.asStripeClasses&&(h.asStripeClasses=[h.oClasses.sStripeOdd,h.oClasses.sStripeEven]);c=!1;d=i(this).children("tbody").children("tr");a=0;for(b=h.asStripeClasses.length;a<b;a++)if(d.filter(":lt(2)").hasClass(h.asStripeClasses[a])){c=!0;break}c&&(h.asDestroyStripes=["",""],i(d[0]).hasClass(h.oClasses.sStripeOdd)&&(h.asDestroyStripes[0]+=h.oClasses.sStripeOdd+
-" "),i(d[0]).hasClass(h.oClasses.sStripeEven)&&(h.asDestroyStripes[0]+=h.oClasses.sStripeEven),i(d[1]).hasClass(h.oClasses.sStripeOdd)&&(h.asDestroyStripes[1]+=h.oClasses.sStripeOdd+" "),i(d[1]).hasClass(h.oClasses.sStripeEven)&&(h.asDestroyStripes[1]+=h.oClasses.sStripeEven),d.removeClass(h.asStripeClasses.join(" ")));c=[];a=this.getElementsByTagName("thead");0!==a.length&&(T(h.aoHeader,a[0]),c=O(h));if(null===e.aoColumns){d=[];a=0;for(b=c.length;a<b;a++)d.push(null)}else d=e.aoColumns;a=0;for(b=
-d.length;a<b;a++)e.saved_aoColumns!==n&&e.saved_aoColumns.length==b&&(null===d[a]&&(d[a]={}),d[a].bVisible=e.saved_aoColumns[a].bVisible),o(h,c?c[a]:null);J(h,e.aoColumnDefs,d,function(a,b){r(h,a,b)});a=0;for(b=h.aaSorting.length;a<b;a++){h.aaSorting[a][0]>=h.aoColumns.length&&(h.aaSorting[a][0]=0);var k=h.aoColumns[h.aaSorting[a][0]];h.aaSorting[a][2]===n&&(h.aaSorting[a][2]=0);e.aaSorting===n&&h.saved_aaSorting===n&&(h.aaSorting[a][1]=k.asSorting[0]);c=0;for(d=k.asSorting.length;c<d;c++)if(h.aaSorting[a][1]==
-k.asSorting[c]){h.aaSorting[a][2]=c;break}}Q(h);a=i(this).children("caption").each(function(){this._captionSide=i(this).css("caption-side")});b=i(this).children("thead");0===b.length&&(b=[l.createElement("thead")],this.appendChild(b[0]));h.nTHead=b[0];b=i(this).children("tbody");0===b.length&&(b=[l.createElement("tbody")],this.appendChild(b[0]));h.nTBody=b[0];h.nTBody.setAttribute("role","alert");h.nTBody.setAttribute("aria-live","polite");h.nTBody.setAttribute("aria-relevant","all");b=i(this).children("tfoot");
-if(0===b.length&&0<a.length&&(""!==h.oScroll.sX||""!==h.oScroll.sY))b=[l.createElement("tfoot")],this.appendChild(b[0]);0<b.length&&(h.nTFoot=b[0],T(h.aoFooter,h.nTFoot));if(f)for(a=0;a<e.aaData.length;a++)H(h,e.aaData[a]);else ua(h);h.aiDisplay=h.aiDisplayMaster.slice();h.bInitialised=!0;!1===g&&aa(h)}})};j.fnVersionCheck=function(e){for(var i=function(e,i){for(;e.length<i;)e+="0";return e},r=j.ext.sVersion.split("."),e=e.split("."),k="",n="",l=0,v=e.length;l<v;l++)k+=i(r[l],3),n+=i(e[l],3);return parseInt(k,
-10)>=parseInt(n,10)};j.fnIsDataTable=function(e){for(var i=j.settings,r=0;r<i.length;r++)if(i[r].nTable===e||i[r].nScrollHead===e||i[r].nScrollFoot===e)return!0;return!1};j.fnTables=function(e){var o=[];jQuery.each(j.settings,function(j,k){(!e||!0===e&&i(k.nTable).is(":visible"))&&o.push(k.nTable)});return o};j.version="1.9.2";j.settings=[];j.models={};j.models.ext={afnFiltering:[],afnSortData:[],aoFeatures:[],aTypes:[],fnVersionCheck:j.fnVersionCheck,iApiIndex:0,ofnSearch:{},oApi:{},oStdClasses:{},
-oJUIClasses:{},oPagination:{},oSort:{},sVersion:j.version,sErrMode:"alert",_oExternConfig:{iNextUnique:0}};j.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};j.models.oRow={nTr:null,_aData:[],_aSortData:[],_anHidden:[],_sRowStripe:""};j.models.oColumn={aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bUseRendered:null,bVisible:null,_bAutoType:!0,fnCreatedCell:null,fnGetData:null,fnRender:null,fnSetData:null,mDataProp:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,
-sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};j.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollAutoCss:!0,bScrollCollapse:!1,bScrollInfinite:!1,bServerSide:!1,
-bSort:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCookieCallback:null,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){if(1E3>e)return e;for(var i=e+"",e=i.split(""),j="",i=i.length,k=0;k<i;k++)0===k%3&&0!==k&&(j=this.oLanguage.sInfoThousands+j),j=e[i-k-1]+j;return j},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:function(e,j,n,k){k.jqXHR=i.ajax({url:e,data:j,success:function(e){i(k.oInstance).trigger("xhr",
-k);n(e)},dataType:"json",cache:!1,type:k.sServerMethod,error:function(e,i){"parsererror"==i&&k.oApi._fnLog(k,0,"DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})},fnServerParams:null,fnStateLoad:function(e){var e=this.oApi._fnReadCookie(e.sCookiePrefix+e.sInstance),j;try{j="function"===typeof i.parseJSON?i.parseJSON(e):eval("("+e+")")}catch(n){j=null}return j},fnStateLoadParams:null,fnStateLoaded:null,fnStateSave:function(e,i){this.oApi._fnCreateCookie(e.sCookiePrefix+
-e.sInstance,this.oApi._fnJsonString(i),e.iCookieDuration,e.sCookiePrefix,e.fnCookieCallback)},fnStateSaveParams:null,iCookieDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iScrollLoadGap:100,iTabIndex:0,oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",
-sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sUrl:"",sZeroRecords:"No matching records found"},oSearch:i.extend({},j.models.oSearch),sAjaxDataProp:"aaData",sAjaxSource:null,sCookiePrefix:"SpryMedia_DataTables_",sDom:"lfrtip",sPaginationType:"two_button",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET"};
-j.defaults.columns={aDataSort:null,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bUseRendered:!0,bVisible:!0,fnCreatedCell:null,fnRender:null,iDataSort:-1,mDataProp:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};j.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortClasses:null,bStateSave:null},
-oScroll:{bAutoCss:null,bCollapse:null,bInfinite:null,iBarWidth:0,iLoadGap:null,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],asDataSearch:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:null,asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],
-aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,sPaginationType:"two_button",iCookieDuration:0,sCookiePrefix:"",fnCookieCallback:null,aoStateSave:[],aoStateLoad:[],oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,
-iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iDisplayEnd:10,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length},fnRecordsDisplay:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length},fnDisplayEnd:function(){return this.oFeatures.bServerSide?
-!1===this.oFeatures.bPaginate||-1==this._iDisplayLength?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null};j.ext=i.extend(!0,{},j.models.ext);i.extend(j.ext.oStdClasses,{sTable:"dataTable",sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",
-sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",
-sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",
-sFooterTH:"",sJUIHeader:"",sJUIFooter:""});i.extend(j.ext.oJUIClasses,j.ext.oStdClasses,{sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",
-sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPageLast:"last ui-corner-tr ui-corner-br",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",
-sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",
-sFooterTH:"ui-state-default",sJUIHeader:"fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix",sJUIFooter:"fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"});i.extend(j.ext.oPagination,{two_button:{fnInit:function(e,j,n){var k=e.oLanguage.oPaginate,l=function(i){e.oApi._fnPageChange(e,i.data.action)&&n(e)},k=!e.bJUI?'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sPrevious+'</a><a class="'+
-e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sNext+"</a>":'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUIPrev+'"></span></a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUINext+'"></span></a>';i(j).append(k);var t=i("a",j),k=t[0],t=t[1];e.oApi._fnBindAction(k,{action:"previous"},l);e.oApi._fnBindAction(t,{action:"next"},l);
-e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",t.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),t.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var i=e.oClasses,j=e.aanFeatures.p,k=0,n=j.length;k<n;k++)0!==j[k].childNodes.length&&(j[k].childNodes[0].className=0===e._iDisplayStart?i.sPagePrevDisabled:i.sPagePrevEnabled,j[k].childNodes[1].className=e.fnDisplayEnd()==e.fnRecordsDisplay()?i.sPageNextDisabled:i.sPageNextEnabled)}},
-iFullNumbersShowPages:5,full_numbers:{fnInit:function(e,j,n){var k=e.oLanguage.oPaginate,l=e.oClasses,t=function(i){e.oApi._fnPageChange(e,i.data.action)&&n(e)};i(j).append('<a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageFirst+'">'+k.sFirst+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPagePrevious+'">'+k.sPrevious+'</a><span></span><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageNext+'">'+k.sNext+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+
-" "+l.sPageLast+'">'+k.sLast+"</a>");var v=i("a",j),k=v[0],l=v[1],z=v[2],v=v[3];e.oApi._fnBindAction(k,{action:"first"},t);e.oApi._fnBindAction(l,{action:"previous"},t);e.oApi._fnBindAction(z,{action:"next"},t);e.oApi._fnBindAction(v,{action:"last"},t);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",z.id=e.sTableId+"_next",v.id=e.sTableId+"_last")},fnUpdate:function(e,o){if(e.aanFeatures.p){var l=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(l/
-2),n=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),t=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,v="",z,D=e.oClasses,x,J=e.aanFeatures.p,H=function(i){e.oApi._fnBindAction(this,{page:i+z-1},function(i){e.oApi._fnPageChange(e,i.data.page);o(e);i.preventDefault()})};-1===e._iDisplayLength?t=k=z=1:n<l?(z=1,k=n):t<=k?(z=1,k=l):t>=n-k?(z=n-l+1,k=n):(z=t-Math.ceil(l/2)+1,k=z+l-1);for(l=z;l<=k;l++)v+=t!==l?'<a tabindex="'+e.iTabIndex+'" class="'+D.sPageButton+'">'+e.fnFormatNumber(l)+"</a>":'<a tabindex="'+
-e.iTabIndex+'" class="'+D.sPageButtonActive+'">'+e.fnFormatNumber(l)+"</a>";l=0;for(k=J.length;l<k;l++)0!==J[l].childNodes.length&&(i("span:eq(0)",J[l]).html(v).children("a").each(H),x=J[l].getElementsByTagName("a"),x=[x[0],x[1],x[x.length-2],x[x.length-1]],i(x).removeClass(D.sPageButton+" "+D.sPageButtonActive+" "+D.sPageButtonStaticDisabled),i([x[0],x[1]]).addClass(1==t?D.sPageButtonStaticDisabled:D.sPageButton),i([x[2],x[3]]).addClass(0===n||t===n||-1===e._iDisplayLength?D.sPageButtonStaticDisabled:
-D.sPageButton))}}}});i.extend(j.ext.oSort,{"string-pre":function(e){"string"!=typeof e&&(e=null!==e&&e.toString?e.toString():"");return e.toLowerCase()},"string-asc":function(e,i){return e<i?-1:e>i?1:0},"string-desc":function(e,i){return e<i?1:e>i?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,i){return e<i?-1:e>i?1:0},"html-desc":function(e,i){return e<i?1:e>i?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");
-return e},"date-asc":function(e,i){return e-i},"date-desc":function(e,i){return i-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,i){return e-i},"numeric-desc":function(e,i){return i-e}});i.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var i,j=!1;i=e.charAt(0);if(-1=="0123456789-".indexOf(i))return null;for(var k=1;k<e.length;k++){i=e.charAt(k);if(-1=="0123456789.".indexOf(i))return null;if("."==i){if(j)return null;
-j=!0}}return"numeric"},function(e){var i=Date.parse(e);return null!==i&&!isNaN(i)||"string"===typeof e&&0===e.length?"date":null},function(e){return"string"===typeof e&&-1!=e.indexOf("<")&&-1!=e.indexOf(">")?"html":null}]);i.fn.DataTable=j;i.fn.dataTable=j;i.fn.dataTableSettings=j.settings;i.fn.dataTableExt=j.ext})(jQuery,window,document,void 0);
+(function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d],
+c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData=
+L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1==
+h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;b<c;b++)a.aoColumns[b].nTh.style.width=a.aoColumns[b].sWidth}function G(a,b){var c=r(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function R(a,b){var c=r(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function t(a){return r(a,"bVisible").length}
+function r(a,b){var c=[];h.map(a.aoColumns,function(a,i){a[b]&&c.push(i)});return c}function B(a){for(var b=j.ext.aTypes,c=b.length,d=0;d<c;d++){var i=b[d](a);if(null!==i)return i}return"string"}function u(a,b){for(var c=b.split(","),d=[],i=0,f=a.aoColumns.length;i<f;i++)for(var g=0;g<f;g++)if(a.aoColumns[i].sName==c[g]){d.push(g);break}return d}function M(a){for(var b="",c=0,d=a.aoColumns.length;c<d;c++)b+=a.aoColumns[c].sName+",";return b.length==d?"":b.slice(0,-1)}function ta(a,b,c,d){var i,f,
+g,e,w;if(b)for(i=b.length-1;0<=i;i--){var j=b[i].aTargets;h.isArray(j)||D(a,1,"aTargets must be an array of targets, not a "+typeof j);f=0;for(g=j.length;f<g;f++)if("number"===typeof j[f]&&0<=j[f]){for(;a.aoColumns.length<=j[f];)o(a);d(j[f],b[i])}else if("number"===typeof j[f]&&0>j[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;e<w;e++)("_all"==j[f]||h(a.aoColumns[e].nTh).hasClass(j[f]))&&d(e,b[i])}}if(c){i=0;for(a=c.length;i<a;i++)d(i,c[i])}}function H(a,
+b){var c;c=h.isArray(b)?b.slice():h.extend(!0,{},b);var d=a.aoData.length,i=h.extend(!0,{},j.models.oRow);i._aData=c;a.aoData.push(i);for(var f,i=0,g=a.aoColumns.length;i<g;i++)c=a.aoColumns[i],"function"===typeof c.fnRender&&c.bUseRendered&&null!==c.mData?F(a,d,i,S(a,d,i)):F(a,d,i,v(a,d,i)),c._bAutoType&&"string"!=c.sType&&(f=v(a,d,i,"type"),null!==f&&""!==f&&(f=B(f),null===c.sType?c.sType=f:c.sType!=f&&"html"!=c.sType&&(c.sType="string")));a.aiDisplayMaster.push(d);a.oFeatures.bDeferRender||ea(a,
+d);return d}function ua(a){var b,c,d,i,f,g,e;if(a.bDeferLoading||null===a.sAjaxSource)for(b=a.nTBody.firstChild;b;){if("TR"==b.nodeName.toUpperCase()){c=a.aoData.length;b._DT_RowIndex=c;a.aoData.push(h.extend(!0,{},j.models.oRow,{nTr:b}));a.aiDisplayMaster.push(c);f=b.firstChild;for(d=0;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)F(a,c,d,h.trim(f.innerHTML)),d++;f=f.nextSibling}}b=b.nextSibling}i=T(a);d=[];b=0;for(c=i.length;b<c;b++)for(f=i[b].firstChild;f;)g=f.nodeName.toUpperCase(),("TD"==
+g||"TH"==g)&&d.push(f),f=f.nextSibling;c=0;for(i=a.aoColumns.length;c<i;c++){e=a.aoColumns[c];null===e.sTitle&&(e.sTitle=e.nTh.innerHTML);var w=e._bAutoType,o="function"===typeof e.fnRender,k=null!==e.sClass,n=e.bVisible,m,p;if(w||o||k||!n){g=0;for(b=a.aoData.length;g<b;g++)f=a.aoData[g],m=d[g*i+c],w&&"string"!=e.sType&&(p=v(a,g,c,"type"),""!==p&&(p=B(p),null===e.sType?e.sType=p:e.sType!=p&&"html"!=e.sType&&(e.sType="string"))),e.mRender?m.innerHTML=v(a,g,c,"display"):e.mData!==c&&(m.innerHTML=v(a,
+g,c,"display")),o&&(p=S(a,g,c),m.innerHTML=p,e.bUseRendered&&F(a,g,c,p)),k&&(m.className+=" "+e.sClass),n?f._anHidden[c]=null:(f._anHidden[c]=m,m.parentNode.removeChild(m)),e.fnCreatedCell&&e.fnCreatedCell.call(a.oInstance,m,v(a,g,c,"display"),f._aData,g,c)}}if(0!==a.aoRowCreatedCallback.length){b=0;for(c=a.aoData.length;b<c;b++)f=a.aoData[b],A(a,"aoRowCreatedCallback",null,[f.nTr,f._aData,b])}}function I(a,b){return b._DT_RowIndex!==n?b._DT_RowIndex:null}function fa(a,b,c){for(var b=J(a,b),d=0,a=
+a.aoColumns.length;d<a;d++)if(b[d]===c)return d;return-1}function Y(a,b,c,d){for(var i=[],f=0,g=d.length;f<g;f++)i.push(v(a,b,d[f],c));return i}function v(a,b,c,d){var i=a.aoColumns[c];if((c=i.fnGetData(a.aoData[b]._aData,d))===n)return a.iDrawError!=a.iDraw&&null===i.sDefaultContent&&(D(a,0,"Requested unknown parameter "+("function"==typeof i.mData?"{mData function}":"'"+i.mData+"'")+" from the data source for row "+b),a.iDrawError=a.iDraw),i.sDefaultContent;if(null===c&&null!==i.sDefaultContent)c=
+i.sDefaultContent;else if("function"===typeof c)return c();return"display"==d&&null===c?"":c}function F(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d)}function Q(a){if(null===a)return function(){return null};if("function"===typeof a)return function(b,d,i){return a(b,d,i)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("["))){var b=function(a,d,i){var f=i.split("."),g;if(""!==i){var e=0;for(g=f.length;e<g;e++){if(i=f[e].match(U)){f[e]=f[e].replace(U,"");""!==f[e]&&(a=a[f[e]]);
+g=[];f.splice(0,e+1);for(var f=f.join("."),e=0,h=a.length;e<h;e++)g.push(b(a[e],d,f));a=i[0].substring(1,i[0].length-1);a=""===a?g:g.join(a);break}if(null===a||a[f[e]]===n)return n;a=a[f[e]]}}return a};return function(c,d){return b(c,d,a)}}return function(b){return b[a]}}function L(a){if(null===a)return function(){};if("function"===typeof a)return function(b,d){a(b,"set",d)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("["))){var b=function(a,d,i){var i=i.split("."),f,g,e=0;for(g=
+i.length-1;e<g;e++){if(f=i[e].match(U)){i[e]=i[e].replace(U,"");a[i[e]]=[];f=i.slice();f.splice(0,e+1);g=f.join(".");for(var h=0,j=d.length;h<j;h++)f={},b(f,d[h],g),a[i[e]].push(f);return}if(null===a[i[e]]||a[i[e]]===n)a[i[e]]={};a=a[i[e]]}a[i[i.length-1].replace(U,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Z(a){for(var b=[],c=a.aoData.length,d=0;d<c;d++)b.push(a.aoData[d]._aData);return b}function ga(a){a.aoData.splice(0,a.aoData.length);a.aiDisplayMaster.splice(0,
+a.aiDisplayMaster.length);a.aiDisplay.splice(0,a.aiDisplay.length);y(a)}function ha(a,b){for(var c=-1,d=0,i=a.length;d<i;d++)a[d]==b?c=d:a[d]>b&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&&
+(c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i<f;i++){var g=a.aoColumns[i];d=l.createElement(g.sCellType);d.innerHTML="function"===typeof g.fnRender&&(!g.bUseRendered||null===g.mData)?S(a,b,i):v(a,b,i,"display");null!==g.sClass&&(d.className=g.sClass);g.bVisible?(c.nTr.appendChild(d),c._anHidden[i]=null):c._anHidden[i]=d;g.fnCreatedCell&&g.fnCreatedCell.call(a.oInstance,d,v(a,b,i,"display"),c._aData,b,i)}A(a,"aoRowCreatedCallback",null,[c.nTr,c._aData,b])}}function va(a){var b,
+c,d;if(0!==h("th, td",a.nTHead).length){b=0;for(d=a.aoColumns.length;b<d;b++)if(c=a.aoColumns[b].nTh,c.setAttribute("role","columnheader"),a.aoColumns[b].bSortable&&(c.setAttribute("tabindex",a.iTabIndex),c.setAttribute("aria-controls",a.sTableId)),null!==a.aoColumns[b].sClass&&h(c).addClass(a.aoColumns[b].sClass),a.aoColumns[b].sTitle!=c.innerHTML)c.innerHTML=a.aoColumns[b].sTitle}else{var i=l.createElement("tr");b=0;for(d=a.aoColumns.length;b<d;b++)c=a.aoColumns[b].nTh,c.innerHTML=a.aoColumns[b].sTitle,
+c.setAttribute("tabindex","0"),null!==a.aoColumns[b].sClass&&h(c).addClass(a.aoColumns[b].sClass),i.appendChild(c);h(a.nTHead).html("")[0].appendChild(i);V(a.aoHeader,a.nTHead)}h(a.nTHead).children("tr").attr("role","row");if(a.bJUI){b=0;for(d=a.aoColumns.length;b<d;b++){c=a.aoColumns[b].nTh;i=l.createElement("div");i.className=a.oClasses.sSortJUIWrapper;h(c).contents().appendTo(i);var f=l.createElement("span");f.className=a.oClasses.sSortIcon;i.appendChild(f);c.appendChild(i)}}if(a.oFeatures.bSort)for(b=
+0;b<a.aoColumns.length;b++)!1!==a.aoColumns[b].bSortable?ia(a,a.aoColumns[b].nTh,b):h(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone);""!==a.oClasses.sFooterTH&&h(a.nTFoot).children("tr").children("th").addClass(a.oClasses.sFooterTH);if(null!==a.nTFoot){c=N(a,null,a.aoFooter);b=0;for(d=a.aoColumns.length;b<d;b++)c[b]&&(a.aoColumns[b].nTf=c[b],a.aoColumns[b].sClass&&h(c[b]).addClass(a.aoColumns[b].sClass))}}function W(a,b,c){var d,i,f,g=[],e=[],h=a.aoColumns.length,j;c===n&&(c=!1);d=0;for(i=
+b.length;d<i;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=h-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);e.push([])}d=0;for(i=g.length;d<i;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(j=h=1,e[d][f]===n){a.appendChild(g[d][f].cell);for(e[d][f]=1;g[d+h]!==n&&g[d][f].cell==g[d+h][f].cell;)e[d+h][f]=1,h++;for(;g[d][f+j]!==n&&g[d][f].cell==g[d][f+j].cell;){for(c=0;c<h;c++)e[d+c][f+j]=1;j++}g[d][f].cell.rowSpan=h;g[d][f].cell.colSpan=j}}}function x(a){var b=
+A(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))E(a,!1);else{var c,d,b=[],i=0,f=a.asStripeClasses.length;c=a.aoOpenRows.length;a.bDrawing=!0;a.iInitDisplayStart!==n&&-1!=a.iInitDisplayStart&&(a._iDisplayStart=a.oFeatures.bServerSide?a.iInitDisplayStart:a.iInitDisplayStart>=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g=
+a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g<d;g++){var e=a.aoData[a.aiDisplay[g]];null===e.nTr&&ea(a,a.aiDisplay[g]);var j=e.nTr;if(0!==f){var o=a.asStripeClasses[i%f];e._sRowStripe!=o&&(h(j).removeClass(e._sRowStripe).addClass(o),e._sRowStripe=o)}A(a,"aoRowCallback",null,[j,a.aoData[a.aiDisplay[g]]._aData,i,g]);b.push(j);i++;if(0!==c)for(e=0;e<c;e++)if(j==a.aoOpenRows[e].nParent){b.push(a.aoOpenRows[e].nTr);break}}}else b[0]=l.createElement("tr"),a.asStripeClasses[0]&&
+(b[0].className=a.asStripeClasses[0]),c=a.oLanguage,f=c.sZeroRecords,1==a.iDraw&&null!==a.sAjaxSource&&!a.oFeatures.bServerSide?f=c.sLoadingRecords:c.sEmptyTable&&0===a.fnRecordsTotal()&&(f=c.sEmptyTable),c=l.createElement("td"),c.setAttribute("valign","top"),c.colSpan=t(a),c.className=a.oClasses.sRowEmpty,c.innerHTML=ja(a,f),b[i].appendChild(c);A(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Z(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);A(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],
+Z(a),a._iDisplayStart,a.fnDisplayEnd(),a.aiDisplay]);i=l.createDocumentFragment();c=l.createDocumentFragment();if(a.nTBody){f=a.nTBody.parentNode;c.appendChild(a.nTBody);if(!a.oScroll.bInfinite||!a._bInitComplete||a.bSorted||a.bFiltered)for(;c=a.nTBody.firstChild;)a.nTBody.removeChild(c);c=0;for(d=b.length;c<d;c++)i.appendChild(b[c]);a.nTBody.appendChild(i);null!==f&&f.appendChild(a.nTBody)}A(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1;a.oFeatures.bServerSide&&(E(a,!1),
+a._bInitComplete||$(a))}}function aa(a){a.oFeatures.bSort?O(a,a.oPreviousSearch):a.oFeatures.bFilter?K(a,a.oPreviousSearch):(y(a),x(a))}function xa(a){var b=h("<div></div>")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('<div id="'+a.sTableId+'_wrapper" class="'+a.oClasses.sWrapper+'" role="grid"></div>')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m<d.length;m++){f=0;g=d[m];if("<"==g){e=h("<div></div>")[0];w=d[m+
+1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f=
+1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k<w;k++)if(g==e[k].cFeature){(i=e[k].fnInit(a))&&(f=1);break}}1==f&&null!==i&&("object"!==typeof a.aanFeatures[g]&&(a.aanFeatures[g]=[]),a.aanFeatures[g].push(i),c.appendChild(i))}b.parentNode.replaceChild(a.nTableWrapper,b)}function V(a,b){var c=h(b).children("tr"),d,i,f,g,e,j,o,k,m,p;a.splice(0,a.length);
+f=0;for(j=c.length;f<j;f++)a.push([]);f=0;for(j=c.length;f<j;f++){d=c[f];for(i=d.firstChild;i;){if("TD"==i.nodeName.toUpperCase()||"TH"==i.nodeName.toUpperCase()){k=1*i.getAttribute("colspan");m=1*i.getAttribute("rowspan");k=!k||0===k||1===k?1:k;m=!m||0===m||1===m?1:m;g=0;for(e=a[f];e[g];)g++;o=g;p=1===k?!0:!1;for(e=0;e<k;e++)for(g=0;g<m;g++)a[f+g][o+e]={cell:i,unique:p},a[f+g].nTr=d}i=i.nextSibling}}}function N(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],V(c,b)));for(var b=0,i=c.length;b<i;b++)for(var f=
+0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function wa(a){if(a.bAjaxDataGet){a.iDraw++;E(a,!0);var b=Ea(a);ka(a,b);a.fnServerData.call(a.oInstance,a.sAjaxSource,b,function(b){Fa(a,b)},a);return!1}return!0}function Ea(a){var b=a.aoColumns.length,c=[],d,i,f,g;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:M(a)});c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",
+value:!1!==a.oFeatures.bPaginate?a._iDisplayLength:-1});for(f=0;f<b;f++)d=a.aoColumns[f].mData,c.push({name:"mDataProp_"+f,value:"function"===typeof d?"function":d});if(!1!==a.oFeatures.bFilter){c.push({name:"sSearch",value:a.oPreviousSearch.sSearch});c.push({name:"bRegex",value:a.oPreviousSearch.bRegex});for(f=0;f<b;f++)c.push({name:"sSearch_"+f,value:a.aoPreSearchCols[f].sSearch}),c.push({name:"bRegex_"+f,value:a.aoPreSearchCols[f].bRegex}),c.push({name:"bSearchable_"+f,value:a.aoColumns[f].bSearchable})}if(!1!==
+a.oFeatures.bSort){var e=0;d=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(f=0;f<d.length;f++){i=a.aoColumns[d[f][0]].aDataSort;for(g=0;g<i.length;g++)c.push({name:"iSortCol_"+e,value:i[g]}),c.push({name:"sSortDir_"+e,value:d[f][1]}),e++}c.push({name:"iSortingCols",value:e});for(f=0;f<b;f++)c.push({name:"bSortable_"+f,value:a.aoColumns[f].bSortable})}return c}function ka(a,b){A(a,"aoServerParams","serverParams",[b])}function Fa(a,b){if(b.sEcho!==n){if(1*b.sEcho<
+a.iDraw)return;a.iDraw=1*b.sEcho}(!a.oScroll.bInfinite||a.oScroll.bInfinite&&(a.bSorted||a.bFiltered))&&ga(a);a._iRecordsTotal=parseInt(b.iTotalRecords,10);a._iRecordsDisplay=parseInt(b.iTotalDisplayRecords,10);var c=M(a),c=b.sColumns!==n&&""!==c&&b.sColumns!=c,d;c&&(d=u(a,b.sColumns));for(var i=Q(a.sAjaxDataProp)(b),f=0,g=i.length;f<g;f++)if(c){for(var e=[],h=0,j=a.aoColumns.length;h<j;h++)e.push(i[f][d[h]]);H(a,e)}else H(a,i[f]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;x(a);a.bAjaxDataGet=
+!0;E(a,!1)}function za(a){var b=a.oPreviousSearch,c=a.oLanguage.sSearch,c=-1!==c.indexOf("_INPUT_")?c.replace("_INPUT_",'<input type="text" />'):""===c?'<input type="text" />':c+' <input type="text" />',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="<label>"+c+"</label>";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"&quot;"));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value,
+g=0,e=c.length;g<e;g++)c[g]!=h(this).parents("div.dataTables_filter")[0]&&h(c[g]._DT_Input).val(d);d!=b.sSearch&&K(a,{sSearch:d,bRegex:b.bRegex,bSmart:b.bSmart,bCaseInsensitive:b.bCaseInsensitive})});c.attr("aria-controls",a.sTableId).bind("keypress.DT",function(a){if(a.keyCode==13)return false});return d}function K(a,b,c){var d=a.oPreviousSearch,i=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};if(a.oFeatures.bServerSide)f(b);
+else{Ga(a,b.sSearch,c,b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<a.aoPreSearchCols.length;b++)Ha(a,i[b].sSearch,b,i[b].bRegex,i[b].bSmart,i[b].bCaseInsensitive);Ia(a)}a.bFiltered=!0;h(a.oInstance).trigger("filter",a);a._iDisplayStart=0;y(a);x(a);la(a,0)}function Ia(a){for(var b=j.ext.afnFiltering,c=r(a,"bSearchable"),d=0,i=b.length;d<i;d++)for(var f=0,g=0,e=a.aiDisplay.length;g<e;g++){var h=a.aiDisplay[g-f];b[d](a,Y(a,h,"filter",c),h)||(a.aiDisplay.splice(g-f,1),f++)}}function Ha(a,b,c,
+d,i,f){if(""!==b)for(var g=0,b=ma(b,d,i,f),d=a.aiDisplay.length-1;0<=d;d--)i=Ja(v(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType),b.test(i)||(a.aiDisplay.splice(d,1),g++)}function Ga(a,b,c,d,i,f){d=ma(b,d,i,f);i=a.oPreviousSearch;c||(c=0);0!==j.ext.afnFiltering.length&&(c=1);if(0>=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0,
+a.aiDisplay.length);la(a,1);for(b=0;b<a.aiDisplayMaster.length;b++)d.test(a.asDataSearch[b])&&a.aiDisplay.push(a.aiDisplayMaster[b])}else for(b=c=0;b<a.asDataSearch.length;b++)d.test(a.asDataSearch[b])||(a.aiDisplay.splice(b-c,1),c++)}function la(a,b){if(!a.oFeatures.bServerSide){a.asDataSearch=[];for(var c=r(a,"bSearchable"),d=1===b?a.aiDisplayMaster:a.aiDisplay,i=0,f=d.length;i<f;i++)a.asDataSearch[i]=na(a,Y(a,d[i],"filter",c))}}function na(a,b){var c=b.join(" ");-1!==c.indexOf("&")&&(c=h("<div>").html(c).text());
+return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),
+"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g);
+null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b<c;b++)h(a[b]).html(g)}}function ja(a,b){var c=a.fnFormatNumber(a._iDisplayStart+1),d=a.fnDisplayEnd(),d=a.fnFormatNumber(d),i=a.fnRecordsDisplay(),i=a.fnFormatNumber(i),f=a.fnRecordsTotal(),f=a.fnFormatNumber(f);a.oScroll.bInfinite&&(c=a.fnFormatNumber(1));return b.replace(/_START_/g,c).replace(/_END_/g,d).replace(/_TOTAL_/g,i).replace(/_MAX_/g,f)}function ba(a){var b,c,d=a.iInitDisplayStart;
+if(!1===a.bInitialised)setTimeout(function(){ba(a)},200);else{xa(a);va(a);W(a,a.aoHeader);a.nTFoot&&W(a,a.aoFooter);E(a,!0);a.oFeatures.bAutoWidth&&da(a);b=0;for(c=a.aoColumns.length;b<c;b++)null!==a.aoColumns[b].sWidth&&(a.aoColumns[b].nTh.style.width=q(a.aoColumns[b].sWidth));a.oFeatures.bSort?O(a):a.oFeatures.bFilter?K(a,a.oPreviousSearch):(a.aiDisplay=a.aiDisplayMaster.slice(),y(a),x(a));null!==a.sAjaxSource&&!a.oFeatures.bServerSide?(c=[],ka(a,c),a.fnServerData.call(a.oInstance,a.sAjaxSource,
+c,function(c){var f=a.sAjaxDataProp!==""?Q(a.sAjaxDataProp)(c):c;for(b=0;b<f.length;b++)H(a,f[b]);a.iInitDisplayStart=d;if(a.oFeatures.bSort)O(a);else{a.aiDisplay=a.aiDisplayMaster.slice();y(a);x(a)}E(a,false);$(a,c)},a)):a.oFeatures.bServerSide||(E(a,!1),$(a))}}function $(a,b){a._bInitComplete=!0;A(a,"aoInitComplete","init",[a,b])}function pa(a){var b=j.defaults.oLanguage;!a.sEmptyTable&&(a.sZeroRecords&&"No data available in table"===b.sEmptyTable)&&p(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&
+(a.sZeroRecords&&"Loading..."===b.sLoadingRecords)&&p(a,a,"sZeroRecords","sLoadingRecords")}function ya(a){if(a.oScroll.bInfinite)return null;var b='<select size="1" '+('name="'+a.sTableId+'_length"')+">",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c<d;c++)b+='<option value="'+i[0][c]+'">'+i[1][c]+"</option>"}else{c=0;for(d=i.length;c<d;c++)b+='<option value="'+i[c]+'">'+i[c]+"</option>"}b+="</select>";i=l.createElement("div");a.aanFeatures.l||
+(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="<label>"+a.oLanguage.sLengthMenu.replace("_MENU_",b)+"</label>";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;c<d;c++)i[c]!=this.parentNode&&h("select",i[c]).val(b);a._iDisplayLength=parseInt(b,10);y(a);if(a.fnDisplayEnd()==a.fnRecordsDisplay()){a._iDisplayStart=a.fnDisplayEnd()-a._iDisplayLength;if(a._iDisplayStart<
+0)a._iDisplayStart=0}if(a._iDisplayLength==-1)a._iDisplayStart=0;x(a)});h("select",i).attr("aria-controls",a.sTableId);return i}function y(a){a._iDisplayEnd=!1===a.oFeatures.bPaginate?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a,
+b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart=
+0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLength<a.fnRecordsDisplay()&&(a._iDisplayStart+=a._iDisplayLength):a._iDisplayStart=0;else if("last"==b)if(0<=a._iDisplayLength){var d=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(d-1)*a._iDisplayLength}else a._iDisplayStart=0;else D(a,0,"Unknown paging action: "+b);h(a.oInstance).trigger("page",a);return c!=a._iDisplayStart}function Aa(a){var b=l.createElement("div");a.aanFeatures.r||(b.id=a.sTableId+
+"_processing");b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,a.nTable);return b}function E(a,b){if(a.oFeatures.bProcessing)for(var c=a.aanFeatures.r,d=0,i=c.length;d<i;d++)c[d].style.visibility=b?"visible":"hidden";h(a.oInstance).trigger("processing",[a,b])}function Ba(a){if(""===a.oScroll.sX&&""===a.oScroll.sY)return a.nTable;var b=l.createElement("div"),c=l.createElement("div"),d=l.createElement("div"),i=l.createElement("div"),f=l.createElement("div"),
+g=l.createElement("div"),e=a.nTable.cloneNode(!1),j=a.nTable.cloneNode(!1),o=a.nTable.getElementsByTagName("thead")[0],k=0===a.nTable.getElementsByTagName("tfoot").length?null:a.nTable.getElementsByTagName("tfoot")[0],m=a.oClasses;c.appendChild(d);f.appendChild(g);i.appendChild(a.nTable);b.appendChild(c);b.appendChild(i);d.appendChild(e);e.appendChild(o);null!==k&&(b.appendChild(f),g.appendChild(j),j.appendChild(k));b.className=m.sScrollWrapper;c.className=m.sScrollHead;d.className=m.sScrollHeadInner;
+i.className=m.sScrollBody;f.className=m.sScrollFoot;g.className=m.sScrollFootInner;a.oScroll.bAutoCss&&(c.style.overflow="hidden",c.style.position="relative",f.style.overflow="hidden",i.style.overflow="auto");c.style.border="0";c.style.width="100%";f.style.border="0";d.style.width=""!==a.oScroll.sXInner?a.oScroll.sXInner:"100%";e.removeAttribute("id");e.style.marginLeft="0";a.nTable.style.marginLeft="0";null!==k&&(j.removeAttribute("id"),j.style.marginLeft="0");d=h(a.nTable).children("caption");0<
+d.length&&(d=d[0],"top"===d._captionSide?e.appendChild(d):"bottom"===d._captionSide&&k&&j.appendChild(d));""!==a.oScroll.sX&&(c.style.width=q(a.oScroll.sX),i.style.width=q(a.oScroll.sX),null!==k&&(f.style.width=q(a.oScroll.sX)),h(i).scroll(function(){c.scrollLeft=this.scrollLeft;if(k!==null)f.scrollLeft=this.scrollLeft}));""!==a.oScroll.sY&&(i.style.height=q(a.oScroll.sY));a.aoDrawCallback.push({fn:La,sName:"scrolling"});a.oScroll.bInfinite&&h(i).scroll(function(){if(!a.bDrawing&&h(this).scrollTop()!==
+0&&h(this).scrollTop()+h(this).height()>h(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()<a.fnRecordsDisplay()){qa(a,"next");y(a);x(a)}});a.nScrollHead=c;a.nScrollFoot=f;return b}function La(a){var b=a.nScrollHead.getElementsByTagName("div")[0],c=b.getElementsByTagName("table")[0],d=a.nTable.parentNode,i,f,g,e,j,o,k,m,p=[],n=[],l=null!==a.nTFoot?a.nScrollFoot.getElementsByTagName("div")[0]:null,R=null!==a.nTFoot?l.getElementsByTagName("table")[0]:null,r=a.oBrowser.bScrollOversize,s=function(a){k=
+a.style;k.paddingTop="0";k.paddingBottom="0";k.borderTopWidth="0";k.borderBottomWidth="0";k.height=0};h(a.nTable).children("thead, tfoot").remove();i=h(a.nTHead).clone()[0];a.nTable.insertBefore(i,a.nTable.childNodes[0]);g=a.nTHead.getElementsByTagName("tr");e=i.getElementsByTagName("tr");null!==a.nTFoot&&(j=h(a.nTFoot).clone()[0],a.nTable.insertBefore(j,a.nTable.childNodes[1]),o=a.nTFoot.getElementsByTagName("tr"),j=j.getElementsByTagName("tr"));""===a.oScroll.sX&&(d.style.width="100%",b.parentNode.style.width=
+"100%");var t=N(a,i);i=0;for(f=t.length;i<f;i++)m=G(a,i),t[i].style.width=a.aoColumns[m].sWidth;null!==a.nTFoot&&C(function(a){a.style.width=""},j);a.oScroll.bCollapse&&""!==a.oScroll.sY&&(d.style.height=d.offsetHeight+a.nTHead.offsetHeight+"px");i=h(a.nTable).outerWidth();if(""===a.oScroll.sX){if(a.nTable.style.width="100%",r&&(h("tbody",d).height()>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width=
+q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()<h(a.nTable).height()?(a.nTable.style.width=q(i-a.oScroll.iBarWidth),h(a.nTable).outerWidth()>i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML=
+"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()<i){g=d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."):
+""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth>
+d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeight<d.offsetHeight&&(d.style.height=q(a.nTable.offsetHeight+r)));r=h(a.nTable).outerWidth();c.style.width=q(r);b.style.width=q(r);c=h(a.nTable).height()>d.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d=
+0,i=0,f=b.length,g,e;i<f;){g=b[i].firstChild;for(e=c?c[i].firstChild:null;g;)1===g.nodeType&&(c?a(g,e,d):a(g,d),d++),g=g.nextSibling,e=c?e.nextSibling:null;i++}}function Ma(a,b){if(!a||null===a||""===a)return 0;b||(b=l.body);var c,d=l.createElement("div");d.style.width=q(a);b.appendChild(d);c=d.offsetWidth;b.removeChild(d);return c}function da(a){var b=0,c,d=0,i=a.aoColumns.length,f,e,j=h("th",a.nTHead),o=a.nTable.getAttribute("width");e=a.nTable.parentNode;for(f=0;f<i;f++)a.aoColumns[f].bVisible&&
+(d++,null!==a.aoColumns[f].sWidth&&(c=Ma(a.aoColumns[f].sWidthOrig,e),null!==c&&(a.aoColumns[f].sWidth=q(c)),b++));if(i==j.length&&0===b&&d==i&&""===a.oScroll.sX&&""===a.oScroll.sY)for(f=0;f<a.aoColumns.length;f++)c=h(j[f]).width(),null!==c&&(a.aoColumns[f].sWidth=q(c));else{b=a.nTable.cloneNode(!1);f=a.nTHead.cloneNode(!0);d=l.createElement("tbody");c=l.createElement("tr");b.removeAttribute("id");b.appendChild(f);null!==a.nTFoot&&(b.appendChild(a.nTFoot.cloneNode(!0)),C(function(a){a.style.width=
+""},b.getElementsByTagName("tr")));b.appendChild(d);d.appendChild(c);d=h("thead th",b);0===d.length&&(d=h("tbody tr:eq(0)>td",b));j=N(a,f);for(f=d=0;f<i;f++){var k=a.aoColumns[f];k.bVisible&&null!==k.sWidthOrig&&""!==k.sWidthOrig?j[f-d].style.width=q(k.sWidthOrig):k.bVisible?j[f-d].style.width="":d++}for(f=0;f<i;f++)a.aoColumns[f].bVisible&&(d=Na(a,f),null!==d&&(d=d.cloneNode(!0),""!==a.aoColumns[f].sContentPadding&&(d.innerHTML+=a.aoColumns[f].sContentPadding),c.appendChild(d)));e.appendChild(b);
+""!==a.oScroll.sX&&""!==a.oScroll.sXInner?b.style.width=q(a.oScroll.sXInner):""!==a.oScroll.sX?(b.style.width="",h(b).width()<e.offsetWidth&&(b.style.width=q(e.offsetWidth))):""!==a.oScroll.sY?b.style.width=q(e.offsetWidth):o&&(b.style.width=q(o));b.style.visibility="hidden";Oa(a,b);i=h("tbody tr:eq(0)",b).children();0===i.length&&(i=N(a,h("thead",b)[0]));if(""!==a.oScroll.sX){for(f=d=e=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(e=null===a.aoColumns[f].sWidthOrig?e+h(i[d]).outerWidth():
+e+(parseInt(a.aoColumns[f].sWidth.replace("px",""),10)+(h(i[d]).outerWidth()-h(i[d]).width())),d++);b.style.width=q(e);a.nTable.style.width=q(e)}for(f=d=0;f<a.aoColumns.length;f++)a.aoColumns[f].bVisible&&(e=h(i[d]).width(),null!==e&&0<e&&(a.aoColumns[f].sWidth=q(e)),d++);i=h(b).css("width");a.nTable.style.width=-1!==i.indexOf("%")?i:q(h(b).outerWidth());b.parentNode.removeChild(b)}o&&(a.nTable.style.width=q(o))}function Oa(a,b){""===a.oScroll.sX&&""!==a.oScroll.sY?(h(b).width(),b.style.width=q(h(b).outerWidth()-
+a.oScroll.iBarWidth)):""!==a.oScroll.sX&&(b.style.width=q(h(b).outerWidth()))}function Na(a,b){var c=Pa(a,b);if(0>c)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i<a.aoData.length;i++){var e=v(a,i,b,"display")+"",e=e.replace(/<.*?>/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1);
+return 48>b||57<b?a:a+"px"}function Qa(){var a=l.createElement("p"),b=a.style;b.width="100%";b.height="200px";b.padding="0px";var c=l.createElement("div"),b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";b.padding="0px";b.overflow="hidden";c.appendChild(a);l.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;b==a&&(a=c.clientWidth);l.body.removeChild(c);return b-a}function O(a,b){var c,d,i,e,g,k,o=[],m=[],p=
+j.ext.oSort,l=a.aoData,q=a.aoColumns,G=a.oLanguage.oAria;if(!a.oFeatures.bServerSide&&(0!==a.aaSorting.length||null!==a.aaSortingFixed)){o=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c<o.length;c++)if(d=o[c][0],i=R(a,d),e=a.aoColumns[d].sSortDataType,j.ext.afnSortData[e])if(g=j.ext.afnSortData[e].call(a.oInstance,a,d,i),g.length===l.length){i=0;for(e=l.length;i<e;i++)F(a,i,d,g[i])}else D(a,0,"Returned data sort array (col "+d+") is the wrong length");c=
+0;for(d=a.aiDisplayMaster.length;c<d;c++)m[a.aiDisplayMaster[c]]=c;var r=o.length,s;c=0;for(d=l.length;c<d;c++)for(i=0;i<r;i++){s=q[o[i][0]].aDataSort;g=0;for(k=s.length;g<k;g++)e=q[s[g]].sType,e=p[(e?e:"string")+"-pre"],l[c]._aSortData[s[g]]=e?e(v(a,c,s[g],"sort")):v(a,c,s[g],"sort")}a.aiDisplayMaster.sort(function(a,b){var c,d,e,i,f;for(c=0;c<r;c++){f=q[o[c][0]].aDataSort;d=0;for(e=f.length;d<e;d++)if(i=q[f[d]].sType,i=p[(i?i:"string")+"-"+o[c][1]](l[a]._aSortData[f[d]],l[b]._aSortData[f[d]]),0!==
+i)return i}return p["numeric-asc"](m[a],m[b])})}(b===n||b)&&!a.oFeatures.bDeferRender&&P(a);c=0;for(d=a.aoColumns.length;c<d;c++)e=q[c].sTitle.replace(/<.*?>/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0<o.length&&o[0][0]==c?(i.setAttribute("aria-sort","asc"==o[0][1]?"ascending":"descending"),i.setAttribute("aria-label",e+("asc"==(q[c].asSorting[o[0][2]+1]?q[c].asSorting[o[0][2]+1]:q[c].asSorting[0])?G.sSortAscending:G.sSortDescending))):i.setAttribute("aria-label",
+e+("asc"==q[c].asSorting[0]?G.sSortAscending:G.sSortDescending)):i.setAttribute("aria-label",e);a.bSorted=!0;h(a.oInstance).trigger("sort",a);a.oFeatures.bFilter?K(a,a.oPreviousSearch,1):(a.aiDisplay=a.aiDisplayMaster.slice(),a._iDisplayStart=0,y(a),x(a))}function ia(a,b,c,d){Ra(b,{},function(b){if(!1!==a.aoColumns[c].bSortable){var e=function(){var d,e;if(b.shiftKey){for(var f=!1,h=0;h<a.aaSorting.length;h++)if(a.aaSorting[h][0]==c){f=!0;d=a.aaSorting[h][0];e=a.aaSorting[h][2]+1;a.aoColumns[d].asSorting[e]?
+(a.aaSorting[h][1]=a.aoColumns[d].asSorting[e],a.aaSorting[h][2]=e):a.aaSorting.splice(h,1);break}!1===f&&a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0])}else 1==a.aaSorting.length&&a.aaSorting[0][0]==c?(d=a.aaSorting[0][0],e=a.aaSorting[0][2]+1,a.aoColumns[d].asSorting[e]||(e=0),a.aaSorting[0][1]=a.aoColumns[d].asSorting[e],a.aaSorting[0][2]=e):(a.aaSorting.splice(0,a.aaSorting.length),a.aaSorting.push([c,a.aoColumns[c].asSorting[0],0]));O(a)};a.oFeatures.bProcessing?(E(a,!0),setTimeout(function(){e();
+a.oFeatures.bServerSide||E(a,!1)},0)):e();"function"==typeof d&&d(a)}})}function P(a){var b,c,d,e,f,g=a.aoColumns.length,j=a.oClasses;for(b=0;b<g;b++)a.aoColumns[b].bSortable&&h(a.aoColumns[b].nTh).removeClass(j.sSortAsc+" "+j.sSortDesc+" "+a.aoColumns[b].sSortingClass);c=null!==a.aaSortingFixed?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(b=0;b<a.aoColumns.length;b++)if(a.aoColumns[b].bSortable){f=a.aoColumns[b].sSortingClass;e=-1;for(d=0;d<c.length;d++)if(c[d][0]==b){f="asc"==c[d][1]?
+j.sSortAsc:j.sSortDesc;e=d;break}h(a.aoColumns[b].nTh).addClass(f);a.bJUI&&(f=h("span."+j.sSortIcon,a.aoColumns[b].nTh),f.removeClass(j.sSortJUIAsc+" "+j.sSortJUIDesc+" "+j.sSortJUI+" "+j.sSortJUIAscAllowed+" "+j.sSortJUIDescAllowed),f.addClass(-1==e?a.aoColumns[b].sSortingClassJUI:"asc"==c[e][1]?j.sSortJUIAsc:j.sSortJUIDesc))}else h(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass);f=j.sSortColumn;if(a.oFeatures.bSort&&a.oFeatures.bSortClasses){a=J(a);e=[];for(b=0;b<g;b++)e.push("");b=0;
+for(d=1;b<c.length;b++)j=parseInt(c[b][0],10),e[j]=f+d,3>d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b<c;b++)j=b%g,d=a[b].className,o=e[j],j=d.replace(f,o),j!=d?a[b].className=h.trim(j):0<o.length&&-1==d.indexOf(o)&&(a[b].className=d+" "+o)}}function ra(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b,c;b=a.oScroll.bInfinite;var d={iCreate:(new Date).getTime(),iStart:b?0:a._iDisplayStart,iEnd:b?a._iDisplayLength:a._iDisplayEnd,iLength:a._iDisplayLength,aaSorting:h.extend(!0,[],a.aaSorting),
+oSearch:h.extend(!0,{},a.oPreviousSearch),aoSearchCols:h.extend(!0,[],a.aoPreSearchCols),abVisCols:[]};b=0;for(c=a.aoColumns.length;b<c;b++)d.abVisCols.push(a.aoColumns[b].bVisible);A(a,"aoStateSaveParams","stateSaveParams",[a,d]);a.fnStateSave.call(a.oInstance,a,d)}}function Sa(a,b){if(a.oFeatures.bStateSave){var c=a.fnStateLoad.call(a.oInstance,a);if(c){var d=A(a,"aoStateLoadParams","stateLoadParams",[a,c]);if(-1===h.inArray(!1,d)){a.oLoadedState=h.extend(!0,{},c);a._iDisplayStart=c.iStart;a.iInitDisplayStart=
+c.iStart;a._iDisplayEnd=c.iEnd;a._iDisplayLength=c.iLength;a.aaSorting=c.aaSorting.slice();a.saved_aaSorting=c.aaSorting.slice();h.extend(a.oPreviousSearch,c.oSearch);h.extend(!0,a.aoPreSearchCols,c.aoSearchCols);b.saved_aoColumns=[];for(d=0;d<c.abVisCols.length;d++)b.saved_aoColumns[d]={},b.saved_aoColumns[d].bVisible=c.abVisCols[d];A(a,"aoStateLoaded","stateLoaded",[a,c])}}}}function s(a){for(var b=0;b<j.settings.length;b++)if(j.settings[b].nTable===a)return j.settings[b];return null}function T(a){for(var b=
+[],a=a.aoData,c=0,d=a.length;c<d;c++)null!==a[c].nTr&&b.push(a[c].nTr);return b}function J(a,b){var c=[],d,e,f,g,h,j;e=0;var o=a.aoData.length;b!==n&&(e=b,o=b+1);for(f=e;f<o;f++)if(j=a.aoData[f],null!==j.nTr){e=[];for(d=j.nTr.firstChild;d;)g=d.nodeName.toLowerCase(),("td"==g||"th"==g)&&e.push(d),d=d.nextSibling;g=d=0;for(h=a.aoColumns.length;g<h;g++)a.aoColumns[g].bVisible?c.push(e[g-d]):(c.push(j._anHidden[g]),d++)}return c}function D(a,b,c){a=null===a?"DataTables warning: "+c:"DataTables warning (table id = '"+
+a.sTableId+"'): "+c;if(0===b)if("alert"==j.ext.sErrMode)alert(a);else throw Error(a);else X.console&&console.log&&console.log(a)}function p(a,b,c,d){d===n&&(d=c);b[c]!==n&&(a[d]=b[c])}function Ta(a,b){var c,d;for(d in b)b.hasOwnProperty(d)&&(c=b[d],"object"===typeof e[d]&&null!==c&&!1===h.isArray(c)?h.extend(!0,a[d],c):a[d]=c);return a}function Ra(a,b,c){h(a).bind("click.DT",b,function(b){a.blur();c(b)}).bind("keypress.DT",b,function(a){13===a.which&&c(a)}).bind("selectstart.DT",function(){return!1})}
+function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function A(a,b,c,d){for(var b=a[b],e=[],f=b.length-1;0<=f;f--)e.push(b[f].fn.apply(a.oInstance,d));null!==c&&h(a.oInstance).trigger(c,d);return e}function Ua(a){var b=h('<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden"><div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;"><div id="DT_BrowserTest" style="width:100%; height:10px;"></div></div></div>')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize=
+100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f?
+"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c<d;c++)(f=g[o[c]].nTr)&&e.push(f)}else if("current"==b.order&&"none"==b.filter){c=0;for(d=k.length;c<d;c++)(f=g[k[c]].nTr)&&e.push(f)}else if("current"==b.order&&"applied"==b.filter){c=0;for(d=o.length;c<d;c++)(f=g[o[c]].nTr)&&e.push(f)}else if("original"==
+b.order&&"none"==b.filter){c=0;for(d=g.length;c<d;c++)(f=g[c].nTr)&&e.push(f)}else if("original"==b.order&&"applied"==b.filter){c=0;for(d=g.length;c<d;c++)f=g[c].nTr,-1!==h.inArray(c,o)&&f&&e.push(f)}else D(d,1,"Unknown selection options");e=h(e);c=e.filter(a);e=e.find(a);return h([].concat(h.makeArray(c),h.makeArray(e)))};this._=function(a,b){var c=[],d,e,f=this.$(a,b);d=0;for(e=f.length;d<e;d++)c.push(this.fnGetData(f[d]));return c};this.fnAddData=function(a,b){if(0===a.length)return[];var c=[],
+d,e=s(this[j.ext.iApiIndex]);if("object"===typeof a[0]&&null!==a[0])for(var f=0;f<a.length;f++){d=H(e,a[f]);if(-1==d)return c;c.push(d)}else{d=H(e,a);if(-1==d)return c;c.push(d)}e.aiDisplay=e.aiDisplayMaster.slice();(b===n||b)&&aa(e);return c};this.fnAdjustColumnSizing=function(a){var b=s(this[j.ext.iApiIndex]);k(b);a===n||a?this.fnDraw(!1):(""!==b.oScroll.sX||""!==b.oScroll.sY)&&this.oApi._fnScrollDraw(b)};this.fnClearTable=function(a){var b=s(this[j.ext.iApiIndex]);ga(b);(a===n||a)&&x(b)};this.fnClose=
+function(a){for(var b=s(this[j.ext.iApiIndex]),c=0;c<b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return(a=b.aoOpenRows[c].nTr.parentNode)&&a.removeChild(b.aoOpenRows[c].nTr),b.aoOpenRows.splice(c,1),0;return 1};this.fnDeleteRow=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e,f,a="object"===typeof a?I(d,a):a,g=d.aoData.splice(a,1);e=0;for(f=d.aoData.length;e<f;e++)null!==d.aoData[e].nTr&&(d.aoData[e].nTr._DT_RowIndex=e);e=h.inArray(a,d.aiDisplay);d.asDataSearch.splice(e,1);ha(d.aiDisplayMaster,
+a);ha(d.aiDisplay,a);"function"===typeof b&&b.call(this,d,g);d._iDisplayStart>=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;i<f;i++)!1===b.aoColumns[i].bVisible&&this.fnSetColumnVis(i,!0)}h(b.nTableWrapper).find("*").andSelf().unbind(".DT");
+h("tbody>tr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc,
+b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i<f;i++)null!==b.aoData[i].nTr&&d.appendChild(b.aoData[i].nTr);!0===b.oFeatures.bAutoWidth&&
+(b.nTable.style.width=q(b.sDestroyWidth));if(f=b.asDestroyStripes.length){a=h(d).children("tr");for(i=0;i<f;i++)a.filter(":nth-child("+f+"n + "+i+")").addClass(b.asDestroyStripes[i])}i=0;for(f=j.settings.length;i<f;i++)j.settings[i]==b&&j.settings.splice(i,1);e=b=null};this.fnDraw=function(a){var b=s(this[j.ext.iApiIndex]);!1===a?(y(b),x(b)):aa(b)};this.fnFilter=function(a,b,c,d,e,f){var g=s(this[j.ext.iApiIndex]);if(g.oFeatures.bFilter){if(c===n||null===c)c=!1;if(d===n||null===d)d=!0;if(e===n||null===
+e)e=!0;if(f===n||null===f)f=!0;if(b===n||null===b){if(K(g,{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f},1),e&&g.aanFeatures.f){b=g.aanFeatures.f;c=0;for(d=b.length;c<d;c++)try{b[c]._DT_Input!=l.activeElement&&h(b[c]._DT_Input).val(a)}catch(o){h(b[c]._DT_Input).val(a)}}}else h.extend(g.aoPreSearchCols[b],{sSearch:a+"",bRegex:c,bSmart:d,bCaseInsensitive:f}),K(g,g.oPreviousSearch,1)}};this.fnGetData=function(a,b){var c=s(this[j.ext.iApiIndex]);if(a!==n){var d=a;if("object"===typeof a){var e=a.nodeName.toLowerCase();
+"tr"===e?d=I(c,a):"td"===e&&(d=I(c,a.parentNode),b=fa(c,d,a))}return b!==n?v(c,d,b,""):c.aoData[d]!==n?c.aoData[d]._aData:null}return Z(c)};this.fnGetNodes=function(a){var b=s(this[j.ext.iApiIndex]);return a!==n?b.aoData[a]!==n?b.aoData[a].nTr:null:T(b)};this.fnGetPosition=function(a){var b=s(this[j.ext.iApiIndex]),c=a.nodeName.toUpperCase();return"TR"==c?I(b,a):"TD"==c||"TH"==c?(c=I(b,a.parentNode),a=fa(b,c,a),[c,R(b,a),a]):null};this.fnIsOpen=function(a){for(var b=s(this[j.ext.iApiIndex]),c=0;c<
+b.aoOpenRows.length;c++)if(b.aoOpenRows[c].nParent==a)return!0;return!1};this.fnOpen=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e=T(d);if(-1!==h.inArray(a,e)){this.fnClose(a);var e=l.createElement("tr"),f=l.createElement("td");e.appendChild(f);f.className=c;f.colSpan=t(d);"string"===typeof b?f.innerHTML=b:h(f).html(b);b=h("tr",d.nTBody);-1!=h.inArray(a,b)&&h(e).insertAfter(a);d.aoOpenRows.push({nTr:e,nParent:a});return e}};this.fnPageChange=function(a,b){var c=s(this[j.ext.iApiIndex]);qa(c,a);
+y(c);(b===n||b)&&x(c)};this.fnSetColumnVis=function(a,b,c){var d=s(this[j.ext.iApiIndex]),e,f,g=d.aoColumns,h=d.aoData,o,m;if(g[a].bVisible!=b){if(b){for(e=f=0;e<a;e++)g[e].bVisible&&f++;m=f>=t(d);if(!m)for(e=a;e<g.length;e++)if(g[e].bVisible){o=e;break}e=0;for(f=h.length;e<f;e++)null!==h[e].nTr&&(m?h[e].nTr.appendChild(h[e]._anHidden[a]):h[e].nTr.insertBefore(h[e]._anHidden[a],J(d,e)[o]))}else{e=0;for(f=h.length;e<f;e++)null!==h[e].nTr&&(o=J(d,e)[a],h[e]._anHidden[a]=o,o.parentNode.removeChild(o))}g[a].bVisible=
+b;W(d,d.aoHeader);d.nTFoot&&W(d,d.aoFooter);e=0;for(f=d.aoOpenRows.length;e<f;e++)d.aoOpenRows[e].nTr.colSpan=t(d);if(c===n||c)k(d),x(d);ra(d)}};this.fnSettings=function(){return s(this[j.ext.iApiIndex])};this.fnSort=function(a){var b=s(this[j.ext.iApiIndex]);b.aaSorting=a;O(b)};this.fnSortListener=function(a,b,c){ia(s(this[j.ext.iApiIndex]),a,b,c)};this.fnUpdate=function(a,b,c,d,e){var f=s(this[j.ext.iApiIndex]),b="object"===typeof b?I(f,b):b;if(h.isArray(a)&&c===n){f.aoData[b]._aData=a.slice();
+for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(v(f,b,c),b,c,!1,!1)}else if(h.isPlainObject(a)&&c===n){f.aoData[b]._aData=h.extend(!0,{},a);for(c=0;c<f.aoColumns.length;c++)this.fnUpdate(v(f,b,c),b,c,!1,!1)}else{F(f,b,c,a);var a=v(f,b,c,"display"),g=f.aoColumns[c];null!==g.fnRender&&(a=S(f,b,c),g.bUseRendered&&F(f,b,c,a));null!==f.aoData[b].nTr&&(J(f,b)[c].innerHTML=a)}c=h.inArray(b,f.aiDisplay);f.asDataSearch[c]=na(f,Y(f,b,"filter",r(f,"bSearchable")));(e===n||e)&&k(f);(d===n||d)&&aa(f);return 0};
+this.fnVersionCheck=j.ext.fnVersionCheck;this.oApi={_fnExternApiFunc:Va,_fnInitialise:ba,_fnInitComplete:$,_fnLanguageCompat:pa,_fnAddColumn:o,_fnColumnOptions:m,_fnAddData:H,_fnCreateTr:ea,_fnGatherData:ua,_fnBuildHead:va,_fnDrawHead:W,_fnDraw:x,_fnReDraw:aa,_fnAjaxUpdate:wa,_fnAjaxParameters:Ea,_fnAjaxUpdateDraw:Fa,_fnServerParams:ka,_fnAddOptionsHtml:xa,_fnFeatureHtmlTable:Ba,_fnScrollDraw:La,_fnAdjustColumnSizing:k,_fnFeatureHtmlFilter:za,_fnFilterComplete:K,_fnFilterCustom:Ia,_fnFilterColumn:Ha,
+_fnFilter:Ga,_fnBuildSearchArray:la,_fnBuildSearchRow:na,_fnFilterCreateSearch:ma,_fnDataToSearch:Ja,_fnSort:O,_fnSortAttachListener:ia,_fnSortingClasses:P,_fnFeatureHtmlPaginate:Da,_fnPageChange:qa,_fnFeatureHtmlInfo:Ca,_fnUpdateInfo:Ka,_fnFeatureHtmlLength:ya,_fnFeatureHtmlProcessing:Aa,_fnProcessingDisplay:E,_fnVisibleToColumnIndex:G,_fnColumnIndexToVisible:R,_fnNodeToDataIndex:I,_fnVisbleColumns:t,_fnCalculateEnd:y,_fnConvertToWidth:Ma,_fnCalculateColumnWidths:da,_fnScrollingWidthAdjust:Oa,_fnGetWidestNode:Na,
+_fnGetMaxLenString:Pa,_fnStringToCss:q,_fnDetectType:B,_fnSettingsFromNode:s,_fnGetDataMaster:Z,_fnGetTrNodes:T,_fnGetTdNodes:J,_fnEscapeRegex:oa,_fnDeleteIndex:ha,_fnReOrderIndex:u,_fnColumnOrdering:M,_fnLog:D,_fnClearTable:ga,_fnSaveState:ra,_fnLoadState:Sa,_fnCreateCookie:function(a,b,c,d,e){var f=new Date;f.setTime(f.getTime()+1E3*c);var c=X.location.pathname.split("/"),a=a+"_"+c.pop().replace(/[\/:]/g,"").toLowerCase(),g;null!==e?(g="function"===typeof h.parseJSON?h.parseJSON(b):eval("("+b+")"),
+b=e(a,g,f.toGMTString(),c.join("/")+"/")):b=a+"="+encodeURIComponent(b)+"; expires="+f.toGMTString()+"; path="+c.join("/")+"/";a=l.cookie.split(";");e=b.split(";")[0].length;f=[];if(4096<e+l.cookie.length+10){for(var j=0,o=a.length;j<o;j++)if(-1!=a[j].indexOf(d)){var k=a[j].split("=");try{(g=eval("("+decodeURIComponent(k[1])+")"))&&g.iCreate&&f.push({name:k[0],time:g.iCreate})}catch(m){}}for(f.sort(function(a,b){return b.time-a.time});4096<e+l.cookie.length+10;){if(0===f.length)return;d=f.pop();l.cookie=
+d.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+c.join("/")+"/"}}l.cookie=b},_fnReadCookie:function(a){for(var b=X.location.pathname.split("/"),a=a+"_"+b[b.length-1].replace(/[\/:]/g,"").toLowerCase()+"=",b=l.cookie.split(";"),c=0;c<b.length;c++){for(var d=b[c];" "==d.charAt(0);)d=d.substring(1,d.length);if(0===d.indexOf(a))return decodeURIComponent(d.substring(a.length,d.length))}return null},_fnDetectHeader:V,_fnGetUniqueThs:N,_fnScrollBarWidth:Qa,_fnApplyToChildren:C,_fnMap:p,_fnGetRowData:Y,
+_fnGetCellData:v,_fnSetCellData:F,_fnGetObjectDataFn:Q,_fnSetObjectDataFn:L,_fnApplyColumnDefs:ta,_fnBindAction:Ra,_fnExtend:Ta,_fnCallbackReg:z,_fnCallbackFire:A,_fnJsonString:Wa,_fnRender:S,_fnNodeToColumnIndex:fa,_fnInfoMacros:ja,_fnBrowserDetect:Ua,_fnGetColumns:r};h.extend(j.ext.oApi,this.oApi);for(var sa in j.ext.oApi)sa&&(this[sa]=Va(sa));var ca=this;this.each(function(){var a=0,b,c,d;c=this.getAttribute("id");var i=!1,f=!1;if("table"!=this.nodeName.toLowerCase())D(null,0,"Attempted to initialise DataTables on a node which is not a table: "+
+this.nodeName);else{a=0;for(b=j.settings.length;a<b;a++){if(j.settings[a].nTable==this){if(e===n||e.bRetrieve)return j.settings[a].oInstance;if(e.bDestroy){j.settings[a].oInstance.fnDestroy();break}else{D(j.settings[a],0,"Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, pass no arguments or see the docs for bRetrieve and bDestroy");return}}if(j.settings[a].sTableId==this.id){j.settings.splice(a,1);break}}if(null===c||""===c)this.id=c="DataTables_Table_"+j.ext._oExternConfig.iNextUnique++;
+var g=h.extend(!0,{},j.models.oSettings,{nTable:this,oApi:ca.oApi,oInit:e,sDestroyWidth:h(this).width(),sInstance:c,sTableId:c});j.settings.push(g);g.oInstance=1===ca.length?ca:h(this).dataTable();e||(e={});e.oLanguage&&pa(e.oLanguage);e=Ta(h.extend(!0,{},j.defaults),e);p(g.oFeatures,e,"bPaginate");p(g.oFeatures,e,"bLengthChange");p(g.oFeatures,e,"bFilter");p(g.oFeatures,e,"bSort");p(g.oFeatures,e,"bInfo");p(g.oFeatures,e,"bProcessing");p(g.oFeatures,e,"bAutoWidth");p(g.oFeatures,e,"bSortClasses");
+p(g.oFeatures,e,"bServerSide");p(g.oFeatures,e,"bDeferRender");p(g.oScroll,e,"sScrollX","sX");p(g.oScroll,e,"sScrollXInner","sXInner");p(g.oScroll,e,"sScrollY","sY");p(g.oScroll,e,"bScrollCollapse","bCollapse");p(g.oScroll,e,"bScrollInfinite","bInfinite");p(g.oScroll,e,"iScrollLoadGap","iLoadGap");p(g.oScroll,e,"bScrollAutoCss","bAutoCss");p(g,e,"asStripeClasses");p(g,e,"asStripClasses","asStripeClasses");p(g,e,"fnServerData");p(g,e,"fnFormatNumber");p(g,e,"sServerMethod");p(g,e,"aaSorting");p(g,
+e,"aaSortingFixed");p(g,e,"aLengthMenu");p(g,e,"sPaginationType");p(g,e,"sAjaxSource");p(g,e,"sAjaxDataProp");p(g,e,"iCookieDuration");p(g,e,"sCookiePrefix");p(g,e,"sDom");p(g,e,"bSortCellsTop");p(g,e,"iTabIndex");p(g,e,"oSearch","oPreviousSearch");p(g,e,"aoSearchCols","aoPreSearchCols");p(g,e,"iDisplayLength","_iDisplayLength");p(g,e,"bJQueryUI","bJUI");p(g,e,"fnCookieCallback");p(g,e,"fnStateLoad");p(g,e,"fnStateSave");p(g.oLanguage,e,"fnInfoCallback");z(g,"aoDrawCallback",e.fnDrawCallback,"user");
+z(g,"aoServerParams",e.fnServerParams,"user");z(g,"aoStateSaveParams",e.fnStateSaveParams,"user");z(g,"aoStateLoadParams",e.fnStateLoadParams,"user");z(g,"aoStateLoaded",e.fnStateLoaded,"user");z(g,"aoRowCallback",e.fnRowCallback,"user");z(g,"aoRowCreatedCallback",e.fnCreatedRow,"user");z(g,"aoHeaderCallback",e.fnHeaderCallback,"user");z(g,"aoFooterCallback",e.fnFooterCallback,"user");z(g,"aoInitComplete",e.fnInitComplete,"user");z(g,"aoPreDrawCallback",e.fnPreDrawCallback,"user");g.oFeatures.bServerSide&&
+g.oFeatures.bSort&&g.oFeatures.bSortClasses?z(g,"aoDrawCallback",P,"server_side_sort_classes"):g.oFeatures.bDeferRender&&z(g,"aoDrawCallback",P,"defer_sort_classes");e.bJQueryUI?(h.extend(g.oClasses,j.ext.oJUIClasses),e.sDom===j.defaults.sDom&&"lfrtip"===j.defaults.sDom&&(g.sDom='<"H"lfr>t<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart,
+g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0,
+g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a<b;a++)d.hasClass(g.asStripeClasses[a])&&(c=!0,g.asDestroyStripes.push(g.asStripeClasses[a]));c&&d.removeClass(g.asStripeClasses.join(" "))}c=[];a=this.getElementsByTagName("thead");0!==a.length&&(V(g.aoHeader,a[0]),c=N(g));if(null===e.aoColumns){d=[];a=0;for(b=
+c.length;a<b;a++)d.push(null)}else d=e.aoColumns;a=0;for(b=d.length;a<b;a++)e.saved_aoColumns!==n&&e.saved_aoColumns.length==b&&(null===d[a]&&(d[a]={}),d[a].bVisible=e.saved_aoColumns[a].bVisible),o(g,c?c[a]:null);ta(g,e.aoColumnDefs,d,function(a,b){m(g,a,b)});a=0;for(b=g.aaSorting.length;a<b;a++){g.aaSorting[a][0]>=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]=
+k.asSorting[0]);c=0;for(d=k.asSorting.length;c<d;c++)if(g.aaSorting[a][1]==k.asSorting[c]){g.aaSorting[a][2]=c;break}}P(g);Ua(g);a=h(this).children("caption").each(function(){this._captionSide=h(this).css("caption-side")});b=h(this).children("thead");0===b.length&&(b=[l.createElement("thead")],this.appendChild(b[0]));g.nTHead=b[0];b=h(this).children("tbody");0===b.length&&(b=[l.createElement("tbody")],this.appendChild(b[0]));g.nTBody=b[0];g.nTBody.setAttribute("role","alert");g.nTBody.setAttribute("aria-live",
+"polite");g.nTBody.setAttribute("aria-relevant","all");b=h(this).children("tfoot");if(0===b.length&&0<a.length&&(""!==g.oScroll.sX||""!==g.oScroll.sY))b=[l.createElement("tfoot")],this.appendChild(b[0]);0<b.length&&(g.nTFoot=b[0],V(g.aoFooter,g.nTFoot));if(f)for(a=0;a<e.aaData.length;a++)H(g,e.aaData[a]);else ua(g);g.aiDisplay=g.aiDisplayMaster.slice();g.bInitialised=!0;!1===i&&ba(g)}});ca=null;return this};j.fnVersionCheck=function(e){for(var h=function(e,h){for(;e.length<h;)e+="0";return e},m=j.ext.sVersion.split("."),
+e=e.split("."),k="",n="",l=0,t=e.length;l<t;l++)k+=h(m[l],3),n+=h(e[l],3);return parseInt(k,10)>=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;m<h.length;m++)if(h[m].nTable===e||h[m].nScrollHead===e||h[m].nScrollFoot===e)return!0;return!1};j.fnTables=function(e){var o=[];jQuery.each(j.settings,function(j,k){(!e||!0===e&&h(k.nTable).is(":visible"))&&o.push(k.nTable)});return o};j.version="1.9.4";j.settings=[];j.models={};j.models.ext={afnFiltering:[],afnSortData:[],aoFeatures:[],
+aTypes:[],fnVersionCheck:j.fnVersionCheck,iApiIndex:0,ofnSearch:{},oApi:{},oStdClasses:{},oJUIClasses:{},oPagination:{},oSort:{},sVersion:j.version,sErrMode:"alert",_oExternConfig:{iNextUnique:0}};j.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};j.models.oRow={nTr:null,_aData:[],_aSortData:[],_anHidden:[],_sRowStripe:""};j.models.oColumn={aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bUseRendered:null,bVisible:null,_bAutoType:!0,fnCreatedCell:null,fnGetData:null,
+fnRender:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};j.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,
+bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollAutoCss:!0,bScrollCollapse:!1,bScrollInfinite:!1,bServerSide:!1,bSort:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCookieCallback:null,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){if(1E3>e)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k<h;k++)0===k%3&&0!==k&&(j=this.oLanguage.sInfoThousands+j),j=e[h-k-1]+j;return j},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,
+fnRowCallback:null,fnServerData:function(e,j,m,k){k.jqXHR=h.ajax({url:e,data:j,success:function(e){e.sError&&k.oApi._fnLog(k,0,e.sError);h(k.oInstance).trigger("xhr",[k,e]);m(e)},dataType:"json",cache:!1,type:k.sServerMethod,error:function(e,h){"parsererror"==h&&k.oApi._fnLog(k,0,"DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})},fnServerParams:null,fnStateLoad:function(e){var e=this.oApi._fnReadCookie(e.sCookiePrefix+e.sInstance),j;try{j=
+"function"===typeof h.parseJSON?h.parseJSON(e):eval("("+e+")")}catch(m){j=null}return j},fnStateLoadParams:null,fnStateLoaded:null,fnStateSave:function(e,h){this.oApi._fnCreateCookie(e.sCookiePrefix+e.sInstance,this.oApi._fnJsonString(h),e.iCookieDuration,e.sCookiePrefix,e.fnCookieCallback)},fnStateSaveParams:null,iCookieDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iScrollLoadGap:100,iTabIndex:0,oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
+oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},j.models.oSearch),sAjaxDataProp:"aaData",
+sAjaxSource:null,sCookiePrefix:"SpryMedia_DataTables_",sDom:"lfrtip",sPaginationType:"two_button",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET"};j.defaults.columns={aDataSort:null,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bUseRendered:!0,bVisible:!0,fnCreatedCell:null,fnRender:null,iDataSort:-1,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};j.models.oSettings={oFeatures:{bAutoWidth:null,
+bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortClasses:null,bStateSave:null},oScroll:{bAutoCss:null,bCollapse:null,bInfinite:null,iBarWidth:0,iLoadGap:null,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1},aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aoColumns:[],aoHeader:[],aoFooter:[],asDataSearch:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:null,
+asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,sPaginationType:"two_button",iCookieDuration:0,sCookiePrefix:"",fnCookieCallback:null,aoStateSave:[],aoStateLoad:[],
+oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iDisplayEnd:10,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length},
+fnRecordsDisplay:function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length},fnDisplayEnd:function(){return this.oFeatures.bServerSide?!1===this.oFeatures.bPaginate||-1==this._iDisplayLength?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null};j.ext=h.extend(!0,{},j.models.ext);h.extend(j.ext.oStdClasses,
+{sTable:"dataTable",sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",
+sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
+sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"",sJUIHeader:"",sJUIFooter:""});h.extend(j.ext.oJUIClasses,j.ext.oStdClasses,{sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",
+sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPageLast:"last ui-corner-tr ui-corner-br",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",
+sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",
+sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sFooterTH:"ui-state-default",sJUIHeader:"fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix",sJUIFooter:"fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"});h.extend(j.ext.oPagination,{two_button:{fnInit:function(e,j,m){var k=e.oLanguage.oPaginate,n=function(h){e.oApi._fnPageChange(e,h.data.action)&&m(e)},k=!e.bJUI?'<a class="'+
+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sPrevious+'</a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button">'+k.sNext+"</a>":'<a class="'+e.oClasses.sPagePrevDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUIPrev+'"></span></a><a class="'+e.oClasses.sPageNextDisabled+'" tabindex="'+e.iTabIndex+'" role="button"><span class="'+e.oClasses.sPageJUINext+'"></span></a>';h(j).append(k);var l=h("a",j),
+k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l<n;l++)if(k=j[l].firstChild)k.className=0===e._iDisplayStart?h.sPagePrevDisabled:h.sPagePrevEnabled,k=k.nextSibling,
+k.className=e.fnDisplayEnd()==e.fnRecordsDisplay()?h.sPageNextDisabled:h.sPageNextEnabled}},iFullNumbersShowPages:5,full_numbers:{fnInit:function(e,j,m){var k=e.oLanguage.oPaginate,l=e.oClasses,n=function(h){e.oApi._fnPageChange(e,h.data.action)&&m(e)};h(j).append('<a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageFirst+'">'+k.sFirst+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPagePrevious+'">'+k.sPrevious+'</a><span></span><a tabindex="'+e.iTabIndex+'" class="'+
+l.sPageButton+" "+l.sPageNext+'">'+k.sNext+'</a><a tabindex="'+e.iTabIndex+'" class="'+l.sPageButton+" "+l.sPageLast+'">'+k.sLast+"</a>");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")},
+fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l<m?(r=1,k=l):n<=k?(r=1,k=m):n>=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+=
+n!==m?'<a tabindex="'+e.iTabIndex+'" class="'+B.sPageButton+'">'+e.fnFormatNumber(m)+"</a>":'<a tabindex="'+e.iTabIndex+'" class="'+B.sPageButtonActive+'">'+e.fnFormatNumber(m)+"</a>";m=0;for(k=M.length;m<k;m++)u=M[m],u.hasChildNodes()&&(h("span:eq(0)",u).html(t).children("a").each(L),u=u.getElementsByTagName("a"),u=[u[0],u[1],u[u.length-2],u[u.length-1]],h(u).removeClass(B.sPageButton+" "+B.sPageButtonActive+" "+B.sPageButtonStaticDisabled),h([u[0],u[1]]).addClass(1==n?B.sPageButtonStaticDisabled:
+B.sPageButton),h([u[2],u[3]]).addClass(0===l||n===l||-1===e._iDisplayLength?B.sPageButtonStaticDisabled:B.sPageButton))}}}});h.extend(j.ext.oSort,{"string-pre":function(e){"string"!=typeof e&&(e=null!==e&&e.toString?e.toString():"");return e.toLowerCase()},"string-asc":function(e,h){return e<h?-1:e>h?1:0},"string-desc":function(e,h){return e<h?1:e>h?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return e<h?-1:e>h?1:0},"html-desc":function(e,h){return e<
+h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null;
+for(var k=1;k<e.length;k++){h=e.charAt(k);if(-1=="0123456789.".indexOf(h))return null;if("."==h){if(j)return null;j=!0}}return"numeric"},function(e){var h=Date.parse(e);return null!==h&&!isNaN(h)||"string"===typeof e&&0===e.length?"date":null},function(e){return"string"===typeof e&&-1!=e.indexOf("<")&&-1!=e.indexOf(">")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&&
+L(jQuery)})(window,document);
diff --git a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.js b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.js
index ee023370..63174a0d 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/js/jquery.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/js/jquery.js
@@ -1,4 +1,2 @@
-/*! jQuery v1.7.1 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
-f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
-{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file
+/*! jQuery v1.8.2 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bY(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bW.length;while(e--){b=bW[e]+c;if(b in a)return b}return d}function bZ(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function b$(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bZ(c)&&(e[f]=p._data(c,"olddisplay",cc(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b_(a,b,c){var d=bP.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function ca(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bV[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bV[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bV[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bV[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bV[e]+"Width"))||0));return f}function cb(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0||d==null){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bQ.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+ca(a,b,c||(f?"border":"content"),e)+"px"}function cc(a){if(bS[a])return bS[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cA(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cv;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cA(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cA(a,c,d,e,"*",g)),h}function cB(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cC(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cD(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cL(){try{return new a.XMLHttpRequest}catch(b){}}function cM(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cU(){return setTimeout(function(){cN=b},0),cN=p.now()}function cV(a,b){p.each(b,function(b,c){var d=(cT[b]||[]).concat(cT["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cW(a,b,c){var d,e=0,f=0,g=cS.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cN||cU(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cN||cU(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cX(k,j.opts.specialEasing);for(;e<g;e++){d=cS[e].call(j,a,k,j.opts);if(d)return d}return cV(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cX(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cY(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bZ(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cc(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cP.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cZ(a,b,c,d,e){return new cZ.prototype.init(a,b,c,d,e)}function c$(a,b){var c,d={height:a},e=0;b=b?1:0;for(;e<4;e+=2-b)c=bV[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function da(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o&&!o.call(" ")?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":(a+"").replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete")setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){var e=p.type(c);e==="function"&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&e!=="string"&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")||(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)d=p._data(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)f.indexOf(" "+b[g]+" ")<0&&(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=b+""}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&p.expr.match.needsContext.test(f),namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=k.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click"))for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){h={},j=[];for(d=0;d<q;d++)l=o[d],m=l.selector,h[m]===b&&(h[m]=l.needsContext?p(m,this).index(f)>=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){i=u[d],c.currentTarget=i.elem;for(e=0;e<i.matches.length&&!c.isImmediatePropagationStopped();e++){l=i.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,g=((p.event.special[l.origType]||{}).handle||l.handler).apply(i.elem,r),g!==b&&(c.result=g,g===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length===1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h<i;h++)if(f=a[h])if(!c||c(f,d,e))g.push(f),j&&b.push(h);return g}function bl(a,b,c,d,e,f){return d&&!d[o]&&(d=bl(d)),e&&!e[o]&&(e=bl(e,f)),z(function(f,g,h,i){if(f&&e)return;var j,k,l,m=[],n=[],o=g.length,p=f||bo(b||"*",h.nodeType?[h]:h,[],f),q=a&&(f||!b)?bk(p,m,a,h,i):p,r=c?e||(f?a:o||d)?[]:g:q;c&&c(q,r,h,i);if(d){l=bk(r,n),d(l,[],h,i),j=l.length;while(j--)if(k=l[j])r[n[j]]=!(q[n[j]]=k)}if(f){j=a&&r.length;while(j--)if(k=r[j])f[m[j]]=!(g[m[j]]=k)}else r=bk(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):w.apply(g,r)})}function bm(a){var b,c,d,f=a.length,g=e.relative[a[0].type],h=g||e.relative[" "],i=g?1:0,j=bi(function(a){return a===b},h,!0),k=bi(function(a){return y.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i<f;i++)if(c=e.relative[a[i].type])m=[bi(bj(m),c)];else{c=e.filter[a[i].type].apply(null,a[i].matches);if(c[o]){d=++i;for(;d<f;d++)if(e.relative[a[d].type])break;return bl(i>1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i<d&&bm(a.slice(i,d)),d<f&&bm(a=a.slice(d)),d<f&&a.join(""))}m.push(c)}return bj(m)}function bn(a,b){var d=b.length>0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)bc(a,b[e],c,d);return c}function bp(a,b,c,d,f){var g,h,j,k,l,m=bh(a),n=m.length;if(!d&&m.length===1){h=m[0]=m[0].slice(0);if(h.length>2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;b<c;b++)if(this[b]===a)return b;return-1},z=function(a,b){return a[o]=b==null||b,a},A=function(){var a={},b=[];return z(function(c,d){return b.push(c)>e.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="<a name='"+o+"'></a><div name='"+o+"'></div>",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d<b;d+=2)a.push(d);return a}),odd:bf(function(a,b,c){for(var d=1;d<b;d+=2)a.push(d);return a}),lt:bf(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},j=s.compareDocumentPosition?function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,h=b.parentNode,i=g;if(g===h)return bg(a,b);if(!g)return-1;if(!h)return 1;while(i)e.unshift(i),i=i.parentNode;i=h;while(i)f.unshift(i),i=i.parentNode;c=e.length,d=f.length;for(var j=0;j<c&&j<d;j++)if(e[j]!==f[j])return bg(e[j],f[j]);return j===c?bg(a,f[j],-1):bg(e[j],b,1)},[0,0].sort(j),m=!k,bc.uniqueSort=function(a){var b,c=1;k=m,a.sort(j);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1);return a},bc.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},i=bc.compile=function(a,b){var c,d=[],e=[],f=D[o][a];if(!f){b||(b=bh(a)),c=b.length;while(c--)f=bm(b[c]),f[o]?d.push(f):e.push(f);f=D(a,bn(e,d))}return f},r.querySelectorAll&&function(){var a,b=bp,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[":focus"],f=[":active",":focus"],h=s.matchesSelector||s.mozMatchesSelector||s.webkitMatchesSelector||s.oMatchesSelector||s.msMatchesSelector;X(function(a){a.innerHTML="<select><option selected=''></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'/>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cT[c]=cT[c]||[],cT[c].unshift(b)},prefilter:function(a,b){b?cS.unshift(a):cS.push(a)}}),p.Tween=cZ,cZ.prototype={constructor:cZ,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cZ.propHooks[this.prop];return a&&a.get?a.get(this):cZ.propHooks._default.get(this)},run:function(a){var b,c=cZ.propHooks[this.prop];return this.options.duration?this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cZ.propHooks._default.set(this),this}},cZ.prototype.init.prototype=cZ.prototype,cZ.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cZ.propHooks.scrollTop=cZ.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(c$(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bZ).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cW(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cR.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:c$("show"),slideUp:c$("hide"),slideToggle:c$("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cZ.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cO&&(cO=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cO),cO=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c_=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j={top:0,left:0},k=this[0],l=k&&k.ownerDocument;if(!l)return;return(d=l.body)===k?p.offset.bodyOffset(k):(c=l.documentElement,p.contains(c,k)?(typeof k.getBoundingClientRect!="undefined"&&(j=k.getBoundingClientRect()),e=da(l),f=c.clientTop||d.clientTop||0,g=c.clientLeft||d.clientLeft||0,h=e.pageYOffset||c.scrollTop,i=e.pageXOffset||c.scrollLeft,{top:j.top+h-f,left:j.left+i-g}):j)},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/DataTables.js b/wqflask/wqflask/static/new/packages/DataTables/src/DataTables.js
index a72368f8..111e7db8 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/DataTables.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/DataTables.js
@@ -1,7 +1,7 @@
/**
* @summary DataTables
* @description Paginate, search and sort HTML tables
- * @version 1.9.2
+ * @version 1.9.4
* @file jquery.dataTables.js
* @author Allan Jardine (www.sprymedia.co.uk)
* @contact www.sprymedia.co.uk/contact
@@ -21,9 +21,28 @@
*/
/*jslint evil: true, undef: true, browser: true */
-/*globals $, jQuery,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros*/
+/*globals $, jQuery,define,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/
-(/** @lends <global> */function($, window, document, undefined) {
+(/** @lends <global> */function( window, document, undefined ) {
+
+(function( factory ) {
+ "use strict";
+
+ // Define as an AMD module if possible
+ if ( typeof define === 'function' && define.amd )
+ {
+ define( ['jquery'], factory );
+ }
+ /* Define using browser globals otherwise
+ * Prevent multiple instantiations if the script is loaded twice
+ */
+ else if ( jQuery && !jQuery.fn.dataTable )
+ {
+ factory( jQuery );
+ }
+}
+(/** @lends <global> */function( $ ) {
+ "use strict";
/**
* DataTables is a plug-in for the jQuery Javascript library. It is a
* highly flexible tool, based upon the foundations of progressive
@@ -78,9 +97,11 @@
require('api.internal.js');
var _that = this;
- return this.each(function() {
+ this.each(function() {
require('core.constructor.js');
} );
+ _that = null;
+ return this;
};
require('api.static.js');
@@ -93,7 +114,7 @@
* @type string
* @default Version number
*/
- DataTable.version = "1.9.2";
+ DataTable.version = "1.9.4";
/**
* Private data store, containing all of the settings objects that are created for the
@@ -245,6 +266,7 @@
* @event
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
+ * @param {object} json JSON returned from the server
*/
/**
@@ -256,4 +278,7 @@
* @param {event} e jQuery event object
* @param {object} o DataTables settings object {@link DataTable.models.oSettings}
*/
-}(jQuery, window, document, undefined));
+}));
+
+}(window, document));
+
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/api/api.internal.js b/wqflask/wqflask/static/new/packages/DataTables/src/api/api.internal.js
index 1cbc8ee1..04a176db 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/api/api.internal.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/api/api.internal.js
@@ -1,7 +1,7 @@
/*
* This is really a good bit rubbish this method of exposing the internal methods
- * publically... - To be fixed in 2.0 using methods on the prototype
+ * publicly... - To be fixed in 2.0 using methods on the prototype
*/
@@ -113,7 +113,9 @@ this.oApi = {
"_fnJsonString": _fnJsonString,
"_fnRender": _fnRender,
"_fnNodeToColumnIndex": _fnNodeToColumnIndex,
- "_fnInfoMacros": _fnInfoMacros
+ "_fnInfoMacros": _fnInfoMacros,
+ "_fnBrowserDetect": _fnBrowserDetect,
+ "_fnGetColumns": _fnGetColumns
};
$.extend( DataTable.ext.oApi, this.oApi );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/api/api.methods.js b/wqflask/wqflask/static/new/packages/DataTables/src/api/api.methods.js
index 9e33c3f8..55cd85e3 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/api/api.methods.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/api/api.methods.js
@@ -1,5 +1,3 @@
-
-
/**
* Perform a jQuery selector action on the table's TR elements (from the tbody) and
* return the resulting jQuery object.
@@ -131,11 +129,11 @@ this.$ = function ( sSelector, oOpts )
/**
* Almost identical to $ in operation, but in this case returns the data for the matched
* rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes
- * rather than any decendents, so the data can be obtained for the row/cell. If matching
+ * rather than any descendants, so the data can be obtained for the row/cell. If matching
* rows are found, the data returned is the original data array/object that was used to
* create the row (or a generated array if from a DOM source).
*
- * This method is often useful incombination with $ where both functions are given the
+ * This method is often useful in-combination with $ where both functions are given the
* same parameters and the array indexes will match identically.
* @param {string|node|jQuery} sSelector jQuery selector or node collection to act on
* @param {object} [oOpts] Optional parameters for modifying the rows to be included
@@ -199,8 +197,8 @@ this._ = function ( sSelector, oOpts )
* <ul>
* <li>1D array of data - add a single row with the data provided</li>
* <li>2D array of arrays - add multiple rows in a single call</li>
- * <li>object - data object when using <i>mDataProp</i></li>
- * <li>array of objects - multiple data objects when using <i>mDataProp</i></li>
+ * <li>object - data object when using <i>mData</i></li>
+ * <li>array of objects - multiple data objects when using <i>mData</i></li>
* </ul>
* @param {bool} [bRedraw=true] redraw the table or not
* @returns {array} An array of integers, representing the list of indexes in
@@ -474,20 +472,23 @@ this.fnDestroy = function ( bRemove )
var nBody = oSettings.nTBody;
var i, iLen;
- bRemove = (bRemove===undefined) ? false : true;
+ bRemove = (bRemove===undefined) ? false : bRemove;
/* Flag to note that the table is currently being destroyed - no action should be taken */
oSettings.bDestroying = true;
/* Fire off the destroy callbacks for plug-ins etc */
_fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] );
-
- /* Restore hidden columns */
- for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
+
+ /* If the table is not being removed, restore the hidden columns */
+ if ( !bRemove )
{
- if ( oSettings.aoColumns[i].bVisible === false )
+ for ( i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
{
- this.fnSetColumnVis( i, true );
+ if ( oSettings.aoColumns[i].bVisible === false )
+ {
+ this.fnSetColumnVis( i, true );
+ }
}
}
@@ -563,12 +564,19 @@ this.fnDestroy = function ( bRemove )
oSettings.nTable.style.width = _fnStringToCss(oSettings.sDestroyWidth);
}
- /* If the were originally odd/even type classes - then we add them back here. Note
- * this is not fool proof (for example if not all rows as odd/even classes - but
+ /* If the were originally stripe classes - then we add them back here. Note
+ * this is not fool proof (for example if not all rows had stripe classes - but
* it's a good effort without getting carried away
*/
- $(nBody).children('tr:even').addClass( oSettings.asDestroyStripes[0] );
- $(nBody).children('tr:odd').addClass( oSettings.asDestroyStripes[1] );
+ iLen = oSettings.asDestroyStripes.length;
+ if (iLen)
+ {
+ var anRows = $(nBody).children('tr');
+ for ( i=0 ; i<iLen ; i++ )
+ {
+ anRows.filter(':nth-child(' + iLen + 'n + ' + i + ')').addClass( oSettings.asDestroyStripes[i] );
+ }
+ }
/* Remove the settings object from the settings array */
for ( i=0, iLen=DataTable.settings.length ; i<iLen ; i++ )
@@ -581,6 +589,7 @@ this.fnDestroy = function ( bRemove )
/* End it all */
oSettings = null;
+ oInit = null;
};
@@ -674,7 +683,17 @@ this.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseIns
var n = oSettings.aanFeatures.f;
for ( var i=0, iLen=n.length ; i<iLen ; i++ )
{
- $(n[i]._DT_Input).val( sInput );
+ // IE9 throws an 'unknown error' if document.activeElement is used
+ // inside an iframe or frame...
+ try {
+ if ( n[i]._DT_Input != document.activeElement )
+ {
+ $(n[i]._DT_Input).val( sInput );
+ }
+ }
+ catch ( e ) {
+ $(n[i]._DT_Input).val( sInput );
+ }
}
}
}
@@ -794,7 +813,8 @@ this.fnGetNodes = function( iRow )
* and column index including hidden columns
* @param {node} nNode this can either be a TR, TD or TH in the table's body
* @returns {int} If nNode is given as a TR, then a single index is returned, or
- * if given as a cell, an array of [row index, column index (visible)] is given.
+ * if given as a cell, an array of [row index, column index (visible),
+ * column index (all)] is given.
* @dtopt API
*
* @example
@@ -1168,7 +1188,7 @@ this.fnSortListener = function( nNode, iColumn, fnCallback )
* @param {node|int} mRow TR element you want to update or the aoData index
* @param {int} [iColumn] The column to update (not used of mData is an array or object)
* @param {bool} [bRedraw=true] Redraw the table or not
- * @param {bool} [bAction=true] Perform predraw actions or not
+ * @param {bool} [bAction=true] Perform pre-draw actions or not
* @returns {int} 0 on success, 1 on error
* @dtopt API
*
@@ -1186,30 +1206,26 @@ this.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction )
var iRow = (typeof mRow === 'object') ?
_fnNodeToDataIndex(oSettings, mRow) : mRow;
- if ( oSettings.__fnUpdateDeep === undefined && $.isArray(mData) && typeof mData === 'object' )
+ if ( $.isArray(mData) && iColumn === undefined )
{
/* Array update - update the whole row */
oSettings.aoData[iRow]._aData = mData.slice();
/* Flag to the function that we are recursing */
- oSettings.__fnUpdateDeep = true;
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
{
this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
}
- oSettings.__fnUpdateDeep = undefined;
}
- else if ( oSettings.__fnUpdateDeep === undefined && mData !== null && typeof mData === 'object' )
+ else if ( $.isPlainObject(mData) && iColumn === undefined )
{
/* Object update - update the whole row - assume the developer gets the object right */
oSettings.aoData[iRow]._aData = $.extend( true, {}, mData );
- oSettings.__fnUpdateDeep = true;
for ( i=0 ; i<oSettings.aoColumns.length ; i++ )
{
this.fnUpdate( _fnGetCellData( oSettings, iRow, i ), iRow, i, false, false );
}
- oSettings.__fnUpdateDeep = undefined;
}
else
{
@@ -1238,8 +1254,10 @@ this.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction )
* will rebuild the search array - however, the redraw might be disabled by the user)
*/
var iDisplayIndex = $.inArray( iRow, oSettings.aiDisplay );
- oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow( oSettings,
- _fnGetRowData( oSettings, iRow, 'filter' ) );
+ oSettings.asDataSearch[iDisplayIndex] = _fnBuildSearchRow(
+ oSettings,
+ _fnGetRowData( oSettings, iRow, 'filter', _fnGetColumns( oSettings, 'bSearchable' ) )
+ );
/* Perform pre-draw actions */
if ( bAction === undefined || bAction )
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.ajax.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.ajax.js
index f3799f1d..d775feae 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.ajax.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.ajax.js
@@ -50,7 +50,7 @@ function _fnAjaxParameters( oSettings )
for ( i=0 ; i<iColumns ; i++ )
{
- mDataProp = oSettings.aoColumns[i].mDataProp;
+ mDataProp = oSettings.aoColumns[i].mData;
aoData.push( { "name": "mDataProp_"+i, "value": typeof(mDataProp)==="function" ? 'function' : mDataProp } );
}
@@ -100,7 +100,7 @@ function _fnAjaxParameters( oSettings )
/**
- * Add Ajax parameters from plugins
+ * Add Ajax parameters from plug-ins
* @param {object} oSettings dataTables settings object
* @param array {objects} aoData name/value pairs to send to the server
* @memberof DataTable#oApi
@@ -127,7 +127,7 @@ function _fnAjaxUpdateDraw ( oSettings, json )
if ( json.sEcho !== undefined )
{
/* Protect against old returns over-writing a new one. Possible when you get
- * very fast interaction, and later queires are completed much faster
+ * very fast interaction, and later queries are completed much faster
*/
if ( json.sEcho*1 < oSettings.iDraw )
{
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.columns.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.columns.js
index aef8abe8..b39e6198 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.columns.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.columns.js
@@ -16,7 +16,7 @@ function _fnAddColumn( oSettings, nTh )
"nTh": nTh ? nTh : document.createElement('th'),
"sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '',
"aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol],
- "mDataProp": oDefaults.mDataProp ? oDefaults.oDefaults : iCol
+ "mData": oDefaults.mData ? oDefaults.oDefaults : iCol
} );
oSettings.aoColumns.push( oCol );
@@ -55,7 +55,7 @@ function _fnAddColumn( oSettings, nTh )
* Apply options for a column
* @param {object} oSettings dataTables settings object
* @param {int} iCol column index to consider
- * @param {object} oOptions object with sType, bVisible and bSearchable
+ * @param {object} oOptions object with sType, bVisible and bSearchable etc
* @memberof DataTable#oApi
*/
function _fnColumnOptions( oSettings, iCol, oOptions )
@@ -65,6 +65,12 @@ function _fnColumnOptions( oSettings, iCol, oOptions )
/* User specified column options */
if ( oOptions !== undefined && oOptions !== null )
{
+ /* Backwards compatibility for mDataProp */
+ if ( oOptions.mDataProp && !oOptions.mData )
+ {
+ oOptions.mData = oOptions.mDataProp;
+ }
+
if ( oOptions.sType !== undefined )
{
oCol.sType = oOptions.sType;
@@ -85,8 +91,19 @@ function _fnColumnOptions( oSettings, iCol, oOptions )
}
/* Cache the data get and set functions for speed */
- oCol.fnGetData = _fnGetObjectDataFn( oCol.mDataProp );
- oCol.fnSetData = _fnSetObjectDataFn( oCol.mDataProp );
+ var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;
+ var mData = _fnGetObjectDataFn( oCol.mData );
+
+ oCol.fnGetData = function (oData, sSpecific) {
+ var innerData = mData( oData, sSpecific );
+
+ if ( oCol.mRender && (sSpecific && sSpecific !== '') )
+ {
+ return mRender( innerData, sSpecific, oData );
+ }
+ return innerData;
+ };
+ oCol.fnSetData = _fnSetObjectDataFn( oCol.mData );
/* Feature sorting overrides column specific when off */
if ( !oSettings.oFeatures.bSort )
@@ -101,11 +118,10 @@ function _fnColumnOptions( oSettings, iCol, oOptions )
oCol.sSortingClass = oSettings.oClasses.sSortableNone;
oCol.sSortingClassJUI = "";
}
- else if ( oCol.bSortable ||
- ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) )
+ else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1 )
{
- oCol.sSortingClass = oSettings.oClasses.sSortable;
- oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI;
+ oCol.sSortingClass = oSettings.oClasses.sSortable;
+ oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI;
}
else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 )
{
@@ -128,7 +144,7 @@ function _fnColumnOptions( oSettings, iCol, oOptions )
*/
function _fnAdjustColumnSizing ( oSettings )
{
- /* Not interested in doing column width calculation if autowidth is disabled */
+ /* Not interested in doing column width calculation if auto-width is disabled */
if ( oSettings.oFeatures.bAutoWidth === false )
{
return false;
@@ -152,22 +168,11 @@ function _fnAdjustColumnSizing ( oSettings )
*/
function _fnVisibleToColumnIndex( oSettings, iMatch )
{
- var iColumn = -1;
-
- for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
- {
- if ( oSettings.aoColumns[i].bVisible === true )
- {
- iColumn++;
- }
-
- if ( iColumn == iMatch )
- {
- return i;
- }
- }
-
- return null;
+ var aiVis = _fnGetColumns( oSettings, 'bVisible' );
+
+ return typeof aiVis[iMatch] === 'number' ?
+ aiVis[iMatch] :
+ null;
}
@@ -181,41 +186,44 @@ function _fnVisibleToColumnIndex( oSettings, iMatch )
*/
function _fnColumnIndexToVisible( oSettings, iMatch )
{
- var iVisible = -1;
- for ( var i=0 ; i<oSettings.aoColumns.length ; i++ )
- {
- if ( oSettings.aoColumns[i].bVisible === true )
- {
- iVisible++;
- }
-
- if ( i == iMatch )
- {
- return oSettings.aoColumns[i].bVisible === true ? iVisible : null;
- }
- }
-
- return null;
+ var aiVis = _fnGetColumns( oSettings, 'bVisible' );
+ var iPos = $.inArray( iMatch, aiVis );
+
+ return iPos !== -1 ? iPos : null;
}
/**
* Get the number of visible columns
+ * @param {object} oSettings dataTables settings object
* @returns {int} i the number of visible columns
- * @param {object} oS dataTables settings object
* @memberof DataTable#oApi
*/
-function _fnVisbleColumns( oS )
+function _fnVisbleColumns( oSettings )
{
- var iVis = 0;
- for ( var i=0 ; i<oS.aoColumns.length ; i++ )
- {
- if ( oS.aoColumns[i].bVisible === true )
- {
- iVis++;
+ return _fnGetColumns( oSettings, 'bVisible' ).length;
+}
+
+
+/**
+ * Get an array of column indexes that match a given property
+ * @param {object} oSettings dataTables settings object
+ * @param {string} sParam Parameter in aoColumns to look for - typically
+ * bVisible or bSearchable
+ * @returns {array} Array of indexes with matched properties
+ * @memberof DataTable#oApi
+ */
+function _fnGetColumns( oSettings, sParam )
+{
+ var a = [];
+
+ $.map( oSettings.aoColumns, function(val, i) {
+ if ( val[sParam] ) {
+ a.push( i );
}
- }
- return iVis;
+ } );
+
+ return a;
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.constructor.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.constructor.js
index ed0756d9..8af48d54 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.constructor.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.constructor.js
@@ -1,4 +1,3 @@
-
var i=0, iLen, j, jLen, k, kLen;
var sId = this.getAttribute( 'id' );
var bInitHandedOff = false;
@@ -240,42 +239,29 @@ if ( oInit.asStripeClasses === null )
}
/* Remove row stripe classes if they are already on the table row */
-var bStripeRemove = false;
-var anRows = $(this).children('tbody').children('tr');
-for ( i=0, iLen=oSettings.asStripeClasses.length ; i<iLen ; i++ )
-{
- if ( anRows.filter(":lt(2)").hasClass( oSettings.asStripeClasses[i]) )
- {
- bStripeRemove = true;
- break;
- }
-}
-
-if ( bStripeRemove )
+iLen=oSettings.asStripeClasses.length;
+oSettings.asDestroyStripes = [];
+if (iLen)
{
- /* Store the classes which we are about to remove so they can be readded on destroy */
- oSettings.asDestroyStripes = [ '', '' ];
- if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeOdd) )
- {
- oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeOdd+" ";
- }
- if ( $(anRows[0]).hasClass(oSettings.oClasses.sStripeEven) )
+ var bStripeRemove = false;
+ var anRows = $(this).children('tbody').children('tr:lt(' + iLen + ')');
+ for ( i=0 ; i<iLen ; i++ )
{
- oSettings.asDestroyStripes[0] += oSettings.oClasses.sStripeEven;
- }
- if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeOdd) )
- {
- oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeOdd+" ";
+ if ( anRows.hasClass( oSettings.asStripeClasses[i] ) )
+ {
+ bStripeRemove = true;
+
+ /* Store the classes which we are about to remove so they can be re-added on destroy */
+ oSettings.asDestroyStripes.push( oSettings.asStripeClasses[i] );
+ }
}
- if ( $(anRows[1]).hasClass(oSettings.oClasses.sStripeEven) )
+
+ if ( bStripeRemove )
{
- oSettings.asDestroyStripes[1] += oSettings.oClasses.sStripeEven;
+ anRows.removeClass( oSettings.asStripeClasses.join(' ') );
}
-
- anRows.removeClass( oSettings.asStripeClasses.join(' ') );
}
-
/*
* Columns
* See if we should load columns automatically or use defined ones
@@ -371,6 +357,9 @@ _fnSortingClasses( oSettings );
* Cache the header, body and footer as required, creating them if needed
*/
+/* Browser support detection */
+_fnBrowserDetect( oSettings );
+
// Work around for Webkit bug 83867 - store the caption-side before removing from doc
var captions = $(this).children('caption').each( function () {
this._captionSide = $(this).css('caption-side');
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.data.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.data.js
index 64529dbb..7fce2383 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.data.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.data.js
@@ -1,5 +1,3 @@
-
-
/**
* Add a data array to the table, creating DOM node etc. This is the parallel to
* _fnGatherData, but for adding rows from a Javascript source, rather than a
@@ -30,8 +28,8 @@ function _fnAddData ( oSettings, aDataSupplied )
{
oCol = oSettings.aoColumns[i];
- /* Use rendered data for filtering/sorting */
- if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mDataProp !== null )
+ /* Use rendered data for filtering / sorting */
+ if ( typeof oCol.fnRender === 'function' && oCol.bUseRendered && oCol.mData !== null )
{
_fnSetCellData( oSettings, iRow, i, _fnRender(oSettings, iRow, i) );
}
@@ -64,7 +62,7 @@ function _fnAddData ( oSettings, aDataSupplied )
/* Add to the display array */
oSettings.aiDisplayMaster.push( iRow );
- /* Create the DOM imformation */
+ /* Create the DOM information */
if ( !oSettings.oFeatures.bDeferRender )
{
_fnCreateTr( oSettings, iRow );
@@ -82,7 +80,7 @@ function _fnAddData ( oSettings, aDataSupplied )
function _fnGatherData( oSettings )
{
var iLoop, i, iLen, j, jLen, jInner,
- nTds, nTrs, nTd, aLocalData, iThisIndex,
+ nTds, nTrs, nTd, nTr, aLocalData, iThisIndex,
iRow, iRows, iColumn, iColumns, sNodeName,
oCol, oData;
@@ -93,31 +91,32 @@ function _fnGatherData( oSettings )
*/
if ( oSettings.bDeferLoading || oSettings.sAjaxSource === null )
{
- nTrs = oSettings.nTBody.childNodes;
- for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
+ nTr = oSettings.nTBody.firstChild;
+ while ( nTr )
{
- if ( nTrs[i].nodeName.toUpperCase() == "TR" )
+ if ( nTr.nodeName.toUpperCase() == "TR" )
{
iThisIndex = oSettings.aoData.length;
- nTrs[i]._DT_RowIndex = iThisIndex;
+ nTr._DT_RowIndex = iThisIndex;
oSettings.aoData.push( $.extend( true, {}, DataTable.models.oRow, {
- "nTr": nTrs[i]
+ "nTr": nTr
} ) );
-
+
oSettings.aiDisplayMaster.push( iThisIndex );
- nTds = nTrs[i].childNodes;
+ nTd = nTr.firstChild;
jInner = 0;
-
- for ( j=0, jLen=nTds.length ; j<jLen ; j++ )
+ while ( nTd )
{
- sNodeName = nTds[j].nodeName.toUpperCase();
+ sNodeName = nTd.nodeName.toUpperCase();
if ( sNodeName == "TD" || sNodeName == "TH" )
{
- _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTds[j].innerHTML) );
+ _fnSetCellData( oSettings, iThisIndex, jInner, $.trim(nTd.innerHTML) );
jInner++;
}
+ nTd = nTd.nextSibling;
}
}
+ nTr = nTr.nextSibling;
}
}
@@ -129,14 +128,15 @@ function _fnGatherData( oSettings )
nTds = [];
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
{
- for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ )
+ nTd = nTrs[i].firstChild;
+ while ( nTd )
{
- nTd = nTrs[i].childNodes[j];
sNodeName = nTd.nodeName.toUpperCase();
if ( sNodeName == "TD" || sNodeName == "TH" )
{
nTds.push( nTd );
}
+ nTd = nTd.nextSibling;
}
}
@@ -186,8 +186,16 @@ function _fnGatherData( oSettings )
}
}
- if ( typeof oCol.mDataProp === 'function' )
+ if ( oCol.mRender )
{
+ // mRender has been defined, so we need to get the value and set it
+ nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' );
+ }
+ else if ( oCol.mData !== iColumn )
+ {
+ // If mData is not the same as the column number, then we need to
+ // get the dev set value. If it is the column, no point in wasting
+ // time setting the value that is already there!
nCell.innerHTML = _fnGetCellData( oSettings, iRow, iColumn, 'display' );
}
@@ -198,7 +206,7 @@ function _fnGatherData( oSettings )
nCell.innerHTML = sRendered;
if ( oCol.bUseRendered )
{
- /* Use the rendered data for filtering/sorting */
+ /* Use the rendered data for filtering / sorting */
_fnSetCellData( oSettings, iRow, iColumn, sRendered );
}
}
@@ -209,7 +217,7 @@ function _fnGatherData( oSettings )
nCell.className += ' '+oCol.sClass;
}
- /* Column visability */
+ /* Column visibility */
if ( !bVisible )
{
oData._anHidden[iColumn] = nCell;
@@ -283,15 +291,16 @@ function _fnNodeToColumnIndex( oSettings, iRow, n )
* @param {object} oSettings dataTables settings object
* @param {int} iRow aoData row id
* @param {string} sSpecific data get type ('type' 'filter' 'sort')
+ * @param {array} aiColumns Array of column indexes to get data from
* @returns {array} Data array
* @memberof DataTable#oApi
*/
-function _fnGetRowData( oSettings, iRow, sSpecific )
+function _fnGetRowData( oSettings, iRow, sSpecific, aiColumns )
{
var out = [];
- for ( var i=0, iLen=oSettings.aoColumns.length ; i<iLen ; i++ )
+ for ( var i=0, iLen=aiColumns.length ; i<iLen ; i++ )
{
- out.push( _fnGetCellData( oSettings, iRow, i, sSpecific ) );
+ out.push( _fnGetCellData( oSettings, iRow, aiColumns[i], sSpecific ) );
}
return out;
}
@@ -317,7 +326,7 @@ function _fnGetCellData( oSettings, iRow, iCol, sSpecific )
if ( oSettings.iDrawError != oSettings.iDraw && oCol.sDefaultContent === null )
{
_fnLog( oSettings, 0, "Requested unknown parameter "+
- (typeof oCol.mDataProp=='function' ? '{mDataprop function}' : "'"+oCol.mDataProp+"'")+
+ (typeof oCol.mData=='function' ? '{mData function}' : "'"+oCol.mData+"'")+
" from the data source for row "+iRow );
oSettings.iDrawError = oSettings.iDraw;
}
@@ -360,6 +369,9 @@ function _fnSetCellData( oSettings, iRow, iCol, val )
}
+// Private variable that is used to match array syntax in the data property object
+var __reArray = /\[.*?\]$/;
+
/**
* Return a function that can be used to get data from a source object, taking
* into account the ability to use nested objects as a source
@@ -378,30 +390,71 @@ function _fnGetObjectDataFn( mSource )
}
else if ( typeof mSource === 'function' )
{
- return function (data, type) {
- return mSource( data, type );
+ return function (data, type, extra) {
+ return mSource( data, type, extra );
};
}
- else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 )
+ else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) )
{
/* If there is a . in the source string then the data source is in a
* nested object so we loop over the data for each level to get the next
- * level down. On each loop we test for undefined, and if found immediatly
+ * level down. On each loop we test for undefined, and if found immediately
* return. This allows entire objects to be missing and sDefaultContent to
* be used if defined, rather than throwing an error
*/
- var a = mSource.split('.');
- return function (data, type) {
- for ( var i=0, iLen=a.length ; i<iLen ; i++ )
+ var fetchData = function (data, type, src) {
+ var a = src.split('.');
+ var arrayNotation, out, innerSrc;
+
+ if ( src !== "" )
{
- data = data[ a[i] ];
- if ( data === undefined )
+ for ( var i=0, iLen=a.length ; i<iLen ; i++ )
{
- return undefined;
+ // Check if we are dealing with an array notation request
+ arrayNotation = a[i].match(__reArray);
+
+ if ( arrayNotation ) {
+ a[i] = a[i].replace(__reArray, '');
+
+ // Condition allows simply [] to be passed in
+ if ( a[i] !== "" ) {
+ data = data[ a[i] ];
+ }
+ out = [];
+
+ // Get the remainder of the nested object to get
+ a.splice( 0, i+1 );
+ innerSrc = a.join('.');
+
+ // Traverse each entry in the array getting the properties requested
+ for ( var j=0, jLen=data.length ; j<jLen ; j++ ) {
+ out.push( fetchData( data[j], type, innerSrc ) );
+ }
+
+ // If a string is given in between the array notation indicators, that
+ // is used to join the strings together, otherwise an array is returned
+ var join = arrayNotation[0].substring(1, arrayNotation[0].length-1);
+ data = (join==="") ? out : out.join(join);
+
+ // The inner call to fetchData has already traversed through the remainder
+ // of the source requested, so we exit from the loop
+ break;
+ }
+
+ if ( data === null || data[ a[i] ] === undefined )
+ {
+ return undefined;
+ }
+ data = data[ a[i] ];
}
}
+
return data;
};
+
+ return function (data, type) {
+ return fetchData( data, type, mSource );
+ };
}
else
{
@@ -433,22 +486,57 @@ function _fnSetObjectDataFn( mSource )
mSource( data, 'set', val );
};
}
- else if ( typeof mSource === 'string' && mSource.indexOf('.') != -1 )
+ else if ( typeof mSource === 'string' && (mSource.indexOf('.') !== -1 || mSource.indexOf('[') !== -1) )
{
- /* Like the get, we need to get data from a nested object. */
- var a = mSource.split('.');
- return function (data, val) {
+ /* Like the get, we need to get data from a nested object */
+ var setData = function (data, val, src) {
+ var a = src.split('.'), b;
+ var arrayNotation, o, innerSrc;
+
for ( var i=0, iLen=a.length-1 ; i<iLen ; i++ )
{
+ // Check if we are dealing with an array notation request
+ arrayNotation = a[i].match(__reArray);
+
+ if ( arrayNotation )
+ {
+ a[i] = a[i].replace(__reArray, '');
+ data[ a[i] ] = [];
+
+ // Get the remainder of the nested object to set so we can recurse
+ b = a.slice();
+ b.splice( 0, i+1 );
+ innerSrc = b.join('.');
+
+ // Traverse each entry in the array setting the properties requested
+ for ( var j=0, jLen=val.length ; j<jLen ; j++ )
+ {
+ o = {};
+ setData( o, val[j], innerSrc );
+ data[ a[i] ].push( o );
+ }
+
+ // The inner call to setData has already traversed through the remainder
+ // of the source and has set the data, thus we can exit here
+ return;
+ }
+
// If the nested object doesn't currently exist - since we are
// trying to set the value - create it
- if ( data[ a[i] ] === undefined )
+ if ( data[ a[i] ] === null || data[ a[i] ] === undefined )
{
data[ a[i] ] = {};
}
data = data[ a[i] ];
}
- data[ a[a.length-1] ] = val;
+
+ // If array notation is used, we just want to strip it and use the property name
+ // and assign the value. If it isn't used, then we get the result we want anyway
+ data[ a[a.length-1].replace(__reArray, '') ] = val;
+ };
+
+ return function (data, val) {
+ return setData( data, val, mSource );
};
}
else
@@ -541,6 +629,6 @@ function _fnRender( oSettings, iRow, iCol )
"iDataColumn": iCol,
"oSettings": oSettings,
"aData": oSettings.aoData[iRow]._aData,
- "mDataProp": oCol.mDataProp
+ "mDataProp": oCol.mData
}, _fnGetCellData(oSettings, iRow, iCol, 'display') );
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.draw.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.draw.js
index e945b093..04ee2a5d 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.draw.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.draw.js
@@ -1,4 +1,3 @@
-
/**
* Create a new TR element (and it's TD children) for a row
* @param {object} oSettings dataTables settings object
@@ -27,7 +26,7 @@ function _fnCreateTr ( oSettings, iRow )
if ( oData._aData.DT_RowClass )
{
- $(oData.nTr).addClass( oData._aData.DT_RowClass );
+ oData.nTr.className = oData._aData.DT_RowClass;
}
/* Process each column */
@@ -39,7 +38,7 @@ function _fnCreateTr ( oSettings, iRow )
/* Render if needed - if bUseRendered is true then we already have the rendered
* value in the data source - so can just use that
*/
- nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mDataProp === null)) ?
+ nTd.innerHTML = (typeof oCol.fnRender === 'function' && (!oCol.bUseRendered || oCol.mData === null)) ?
_fnRender( oSettings, iRow, i ) :
_fnGetCellData( oSettings, iRow, i, 'display' );
@@ -80,7 +79,7 @@ function _fnCreateTr ( oSettings, iRow )
function _fnBuildHead( oSettings )
{
var i, nTh, iLen, j, jLen;
- var iThs = oSettings.nTHead.getElementsByTagName('th').length;
+ var iThs = $('th, td', oSettings.nTHead).length;
var iCorrector = 0;
var jqChildren;
@@ -379,7 +378,7 @@ function _fnDraw( oSettings )
}
}
- /* Row callback functions - might want to manipule the row */
+ /* Row callback functions - might want to manipulate the row */
_fnCallbackFire( oSettings, 'aoRowCallback', null,
[nRow, oSettings.aoData[ oSettings.aiDisplay[j] ]._aData, iRowCount, j] );
@@ -691,10 +690,12 @@ function _fnAddOptionsHtml ( oSettings )
function _fnDetectHeader ( aLayout, nThead )
{
var nTrs = $(nThead).children('tr');
- var nCell;
- var i, j, k, l, iLen, jLen, iColShifted;
+ var nTr, nCell;
+ var i, k, l, iLen, jLen, iColShifted, iColumn, iColspan, iRowspan;
+ var bUnique;
var fnShiftCol = function ( a, i, j ) {
- while ( a[i][j] ) {
+ var k = a[i];
+ while ( k[j] ) {
j++;
}
return j;
@@ -711,19 +712,18 @@ function _fnDetectHeader ( aLayout, nThead )
/* Calculate a layout array */
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
{
- var iColumn = 0;
+ nTr = nTrs[i];
+ iColumn = 0;
/* For every cell in the row... */
- for ( j=0, jLen=nTrs[i].childNodes.length ; j<jLen ; j++ )
- {
- nCell = nTrs[i].childNodes[j];
-
+ nCell = nTr.firstChild;
+ while ( nCell ) {
if ( nCell.nodeName.toUpperCase() == "TD" ||
nCell.nodeName.toUpperCase() == "TH" )
{
/* Get the col and rowspan attributes from the DOM and sanitise them */
- var iColspan = nCell.getAttribute('colspan') * 1;
- var iRowspan = nCell.getAttribute('rowspan') * 1;
+ iColspan = nCell.getAttribute('colspan') * 1;
+ iRowspan = nCell.getAttribute('rowspan') * 1;
iColspan = (!iColspan || iColspan===0 || iColspan===1) ? 1 : iColspan;
iRowspan = (!iRowspan || iRowspan===0 || iRowspan===1) ? 1 : iRowspan;
@@ -732,6 +732,9 @@ function _fnDetectHeader ( aLayout, nThead )
*/
iColShifted = fnShiftCol( aLayout, i, iColumn );
+ /* Cache calculation for unique columns */
+ bUnique = iColspan === 1 ? true : false;
+
/* If there is col / rowspan, copy the information into the layout grid */
for ( l=0 ; l<iColspan ; l++ )
{
@@ -739,12 +742,13 @@ function _fnDetectHeader ( aLayout, nThead )
{
aLayout[i+k][iColShifted+l] = {
"cell": nCell,
- "unique": iColspan == 1 ? true : false
+ "unique": bUnique
};
- aLayout[i+k].nTr = nTrs[i];
+ aLayout[i+k].nTr = nTr;
}
}
}
+ nCell = nCell.nextSibling;
}
}
}
@@ -755,7 +759,7 @@ function _fnDetectHeader ( aLayout, nThead )
* @param {object} oSettings dataTables settings object
* @param {node} nHeader automatically detect the layout from this node - optional
* @param {array} aLayout thead/tfoot layout from _fnDetectHeader - optional
- * @returns array {node} aReturn list of unique ths
+ * @returns array {node} aReturn list of unique th's
* @memberof DataTable#oApi
*/
function _fnGetUniqueThs ( oSettings, nHeader, aLayout )
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.filter.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.filter.js
index 846618cf..c6c47e9a 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.filter.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.filter.js
@@ -133,15 +133,22 @@ function _fnFilterComplete ( oSettings, oInput, iForce )
function _fnFilterCustom( oSettings )
{
var afnFilters = DataTable.ext.afnFiltering;
+ var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' );
+
for ( var i=0, iLen=afnFilters.length ; i<iLen ; i++ )
{
var iCorrector = 0;
for ( var j=0, jLen=oSettings.aiDisplay.length ; j<jLen ; j++ )
{
var iDisIndex = oSettings.aiDisplay[j-iCorrector];
+ var bTest = afnFilters[i](
+ oSettings,
+ _fnGetRowData( oSettings, iDisIndex, 'filter', aiFilterColumns ),
+ iDisIndex
+ );
/* Check if we should use this row based on the filtering function */
- if ( !afnFilters[i]( oSettings, _fnGetRowData( oSettings, iDisIndex, 'filter' ), iDisIndex ) )
+ if ( !bTest )
{
oSettings.aiDisplay.splice( j-iCorrector, 1 );
iCorrector++;
@@ -280,15 +287,19 @@ function _fnBuildSearchArray ( oSettings, iMaster )
if ( !oSettings.oFeatures.bServerSide )
{
/* Clear out the old data */
- oSettings.asDataSearch.splice( 0, oSettings.asDataSearch.length );
-
- var aArray = (iMaster && iMaster===1) ?
- oSettings.aiDisplayMaster : oSettings.aiDisplay;
+ oSettings.asDataSearch = [];
+
+ var aiFilterColumns = _fnGetColumns( oSettings, 'bSearchable' );
+ var aiIndex = (iMaster===1) ?
+ oSettings.aiDisplayMaster :
+ oSettings.aiDisplay;
- for ( var i=0, iLen=aArray.length ; i<iLen ; i++ )
+ for ( var i=0, iLen=aiIndex.length ; i<iLen ; i++ )
{
- oSettings.asDataSearch[i] = _fnBuildSearchRow( oSettings,
- _fnGetRowData( oSettings, aArray[i], 'filter' ) );
+ oSettings.asDataSearch[i] = _fnBuildSearchRow(
+ oSettings,
+ _fnGetRowData( oSettings, aiIndex[i], 'filter', aiFilterColumns )
+ );
}
}
}
@@ -302,33 +313,16 @@ function _fnBuildSearchArray ( oSettings, iMaster )
*/
function _fnBuildSearchRow( oSettings, aData )
{
- var sSearch = '';
- if ( oSettings.__nTmpFilter === undefined )
- {
- oSettings.__nTmpFilter = document.createElement('div');
- }
- var nTmp = oSettings.__nTmpFilter;
-
- for ( var j=0, jLen=oSettings.aoColumns.length ; j<jLen ; j++ )
- {
- if ( oSettings.aoColumns[j].bSearchable )
- {
- var sData = aData[j];
- sSearch += _fnDataToSearch( sData, oSettings.aoColumns[j].sType )+' ';
- }
- }
+ var sSearch = aData.join(' ');
/* If it looks like there is an HTML entity in the string, attempt to decode it */
if ( sSearch.indexOf('&') !== -1 )
{
- nTmp.innerHTML = sSearch;
- sSearch = nTmp.textContent ? nTmp.textContent : nTmp.innerText;
-
- /* IE and Opera appear to put an newline where there is a <br> tag - remove it */
- sSearch = sSearch.replace(/\n/g," ").replace(/\r/g,"");
+ sSearch = $('<div>').html(sSearch).text();
}
- return sSearch;
+ // Strip newline characters
+ return sSearch.replace( /[\n\r]/g, " " );
}
/**
@@ -336,7 +330,7 @@ function _fnBuildSearchRow( oSettings, aData )
* @param {string} sSearch string to search for
* @param {bool} bRegex treat as a regular expression or not
* @param {bool} bSmart perform smart filtering or not
- * @param {bool} bCaseInsensitive Do case insenstive matching or not
+ * @param {bool} bCaseInsensitive Do case insensitive matching or not
* @returns {RegExp} constructed object
* @memberof DataTable#oApi
*/
@@ -391,7 +385,7 @@ function _fnDataToSearch ( sData, sType )
/**
- * scape a string stuch that it can be used in a regular expression
+ * scape a string such that it can be used in a regular expression
* @param {string} sVal string to escape
* @returns {string} escaped string
* @memberof DataTable#oApi
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.info.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.info.js
index da8f35f3..1e95b35b 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.info.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.info.js
@@ -1,5 +1,4 @@
-
/**
* Generate the node required for the info display
* @param {object} oSettings dataTables settings object
@@ -50,25 +49,20 @@ function _fnUpdateInfo ( oSettings )
iTotal = oSettings.fnRecordsDisplay(),
sOut;
- if ( iTotal === 0 && iTotal == iMax )
+ if ( iTotal === 0 )
{
/* Empty record set */
sOut = oLang.sInfoEmpty;
}
- else if ( iTotal === 0 )
- {
- /* Empty record set after filtering */
- sOut = oLang.sInfoEmpty +' '+ oLang.sInfoFiltered;
- }
- else if ( iTotal == iMax )
- {
+ else {
/* Normal record set */
sOut = oLang.sInfo;
}
- else
+
+ if ( iTotal != iMax )
{
/* Record set after filtering */
- sOut = oLang.sInfo +' '+ oLang.sInfoFiltered;
+ sOut += ' ' + oLang.sInfoFiltered;
}
// Convert the macros
@@ -109,9 +103,9 @@ function _fnInfoMacros ( oSettings, str )
}
return str.
- replace('_START_', sStart).
- replace('_END_', sEnd).
- replace('_TOTAL_', sTotal).
- replace('_MAX_', sMax);
+ replace(/_START_/g, sStart).
+ replace(/_END_/g, sEnd).
+ replace(/_TOTAL_/g, sTotal).
+ replace(/_MAX_/g, sMax);
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.length.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.length.js
index ecdb46bb..60c58040 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.length.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.length.js
@@ -93,7 +93,7 @@ function _fnFeatureHtmlLength ( oSettings )
/**
- * Rcalculate the end point based on the start point
+ * Recalculate the end point based on the start point
* @param {object} oSettings dataTables settings object
* @memberof DataTable#oApi
*/
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.page.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.page.js
index c652da8c..4699768c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.page.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.page.js
@@ -75,7 +75,7 @@ function _fnPageChange ( oSettings, mAction )
oSettings._iDisplayStart - oSettings._iDisplayLength :
0;
- /* Correct for underrun */
+ /* Correct for under-run */
if ( oSettings._iDisplayStart < 0 )
{
oSettings._iDisplayStart = 0;
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.scrolling.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.scrolling.js
index 1889fd9f..a5547b5c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.scrolling.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.scrolling.js
@@ -1,5 +1,3 @@
-
-
/**
* Add any control elements for the table - specifically scrolling
* @param {object} oSettings dataTables settings object
@@ -108,7 +106,7 @@ function _fnFeatureHtmlTable ( oSettings )
/*
* Sizing
*/
- /* When xscrolling add the width and a scroller to move the header with the body */
+ /* When x-scrolling add the width and a scroller to move the header with the body */
if ( oSettings.oScroll.sX !== "" )
{
nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX );
@@ -191,10 +189,18 @@ function _fnScrollDraw ( o )
nScrollBody = o.nTable.parentNode,
i, iLen, j, jLen, anHeadToSize, anHeadSizers, anFootSizers, anFootToSize, oStyle, iVis,
nTheadSize, nTfootSize,
- iWidth, aApplied=[], iSanityWidth,
+ iWidth, aApplied=[], aAppliedFooter=[], iSanityWidth,
nScrollFootInner = (o.nTFoot !== null) ? o.nScrollFoot.getElementsByTagName('div')[0] : null,
nScrollFootTable = (o.nTFoot !== null) ? nScrollFootInner.getElementsByTagName('table')[0] : null,
- ie67 = $.browser.msie && $.browser.version <= 7;
+ ie67 = o.oBrowser.bScrollOversize,
+ zeroOut = function(nSizer) {
+ oStyle = nSizer.style;
+ oStyle.paddingTop = "0";
+ oStyle.paddingBottom = "0";
+ oStyle.borderTopWidth = "0";
+ oStyle.borderBottomWidth = "0";
+ oStyle.height = 0;
+ };
/*
* 1. Re-create the table inside the scrolling div
@@ -206,11 +212,15 @@ function _fnScrollDraw ( o )
/* Clone the current header and footer elements and then place it into the inner table */
nTheadSize = $(o.nTHead).clone()[0];
o.nTable.insertBefore( nTheadSize, o.nTable.childNodes[0] );
+ anHeadToSize = o.nTHead.getElementsByTagName('tr');
+ anHeadSizers = nTheadSize.getElementsByTagName('tr');
if ( o.nTFoot !== null )
{
nTfootSize = $(o.nTFoot).clone()[0];
o.nTable.insertBefore( nTfootSize, o.nTable.childNodes[1] );
+ anFootToSize = o.nTFoot.getElementsByTagName('tr');
+ anFootSizers = nTfootSize.getElementsByTagName('tr');
}
/*
@@ -219,7 +229,7 @@ function _fnScrollDraw ( o )
/* Remove old sizing and apply the calculated column widths
* Get the unique column headers in the newly created (cloned) header. We want to apply the
- * calclated sizes to this header
+ * calculated sizes to this header
*/
if ( o.oScroll.sX === "" )
{
@@ -238,7 +248,7 @@ function _fnScrollDraw ( o )
{
_fnApplyToChildren( function(n) {
n.style.width = "";
- }, nTfootSize.getElementsByTagName('tr') );
+ }, anFootSizers );
}
// If scroll collapse is enabled, when we put the headers back into the body for sizing, we
@@ -300,41 +310,38 @@ function _fnScrollDraw ( o )
/* We want the hidden header to have zero height, so remove padding and borders. Then
* set the width based on the real headers
*/
- anHeadToSize = o.nTHead.getElementsByTagName('tr');
- anHeadSizers = nTheadSize.getElementsByTagName('tr');
- _fnApplyToChildren( function(nSizer, nToSize) {
- oStyle = nSizer.style;
- oStyle.paddingTop = "0";
- oStyle.paddingBottom = "0";
- oStyle.borderTopWidth = "0";
- oStyle.borderBottomWidth = "0";
- oStyle.height = 0;
-
- iWidth = $(nSizer).width();
- nToSize.style.width = _fnStringToCss( iWidth );
- aApplied.push( iWidth );
- }, anHeadSizers, anHeadToSize );
+ // Apply all styles in one pass. Invalidates layout only once because we don't read any
+ // DOM properties.
+ _fnApplyToChildren( zeroOut, anHeadSizers );
+
+ // Read all widths in next pass. Forces layout only once because we do not change
+ // any DOM properties.
+ _fnApplyToChildren( function(nSizer) {
+ aApplied.push( _fnStringToCss( $(nSizer).width() ) );
+ }, anHeadSizers );
+
+ // Apply all widths in final pass. Invalidates layout only once because we do not
+ // read any DOM properties.
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = aApplied[i];
+ }, anHeadToSize );
+
$(anHeadSizers).height(0);
+ /* Same again with the footer if we have one */
if ( o.nTFoot !== null )
{
- /* Clone the current footer and then place it into the body table as a "hidden header" */
- anFootSizers = nTfootSize.getElementsByTagName('tr');
- anFootToSize = o.nTFoot.getElementsByTagName('tr');
-
- _fnApplyToChildren( function(nSizer, nToSize) {
- oStyle = nSizer.style;
- oStyle.paddingTop = "0";
- oStyle.paddingBottom = "0";
- oStyle.borderTopWidth = "0";
- oStyle.borderBottomWidth = "0";
- oStyle.height = 0;
-
- iWidth = $(nSizer).width();
- nToSize.style.width = _fnStringToCss( iWidth );
- aApplied.push( iWidth );
- }, anFootSizers, anFootToSize );
+ _fnApplyToChildren( zeroOut, anFootSizers );
+
+ _fnApplyToChildren( function(nSizer) {
+ aAppliedFooter.push( _fnStringToCss( $(nSizer).width() ) );
+ }, anFootSizers );
+
+ _fnApplyToChildren( function(nToSize, i) {
+ nToSize.style.width = aAppliedFooter[i];
+ }, anFootToSize );
+
$(anFootSizers).height(0);
}
@@ -345,16 +352,16 @@ function _fnScrollDraw ( o )
/* "Hide" the header and footer that we used for the sizing. We want to also fix their width
* to what they currently are
*/
- _fnApplyToChildren( function(nSizer) {
+ _fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = "";
- nSizer.style.width = _fnStringToCss( aApplied.shift() );
+ nSizer.style.width = aApplied[i];
}, anHeadSizers );
if ( o.nTFoot !== null )
{
- _fnApplyToChildren( function(nSizer) {
+ _fnApplyToChildren( function(nSizer, i) {
nSizer.innerHTML = "";
- nSizer.style.width = _fnStringToCss( aApplied.shift() );
+ nSizer.style.width = aAppliedFooter[i];
}, anFootSizers );
}
@@ -377,11 +384,11 @@ function _fnScrollDraw ( o )
/* Apply the calculated minimum width to the table wrappers */
nScrollBody.style.width = _fnStringToCss( iCorrection );
- nScrollHeadInner.parentNode.style.width = _fnStringToCss( iCorrection );
+ o.nScrollHead.style.width = _fnStringToCss( iCorrection );
if ( o.nTFoot !== null )
{
- nScrollFootInner.parentNode.style.width = _fnStringToCss( iCorrection );
+ o.nScrollFoot.style.width = _fnStringToCss( iCorrection );
}
/* And give the user a warning that we've stopped the table getting too small */
@@ -400,11 +407,11 @@ function _fnScrollDraw ( o )
else
{
nScrollBody.style.width = _fnStringToCss( '100%' );
- nScrollHeadInner.parentNode.style.width = _fnStringToCss( '100%' );
+ o.nScrollHead.style.width = _fnStringToCss( '100%' );
if ( o.nTFoot !== null )
{
- nScrollFootInner.parentNode.style.width = _fnStringToCss( '100%' );
+ o.nScrollFoot.style.width = _fnStringToCss( '100%' );
}
}
@@ -453,7 +460,7 @@ function _fnScrollDraw ( o )
nScrollFootInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px";
}
- /* Adjust the position of the header incase we loose the y-scrollbar */
+ /* Adjust the position of the header in case we loose the y-scrollbar */
$(nScrollBody).scroll();
/* If sorting or filtering has occurred, jump the scrolling back to the top */
@@ -474,22 +481,31 @@ function _fnScrollDraw ( o )
*/
function _fnApplyToChildren( fn, an1, an2 )
{
- for ( var i=0, iLen=an1.length ; i<iLen ; i++ )
+ var index=0, i=0, iLen=an1.length;
+ var nNode1, nNode2;
+
+ while ( i < iLen )
{
- for ( var j=0, jLen=an1[i].childNodes.length ; j<jLen ; j++ )
+ nNode1 = an1[i].firstChild;
+ nNode2 = an2 ? an2[i].firstChild : null;
+ while ( nNode1 )
{
- if ( an1[i].childNodes[j].nodeType == 1 )
+ if ( nNode1.nodeType === 1 )
{
if ( an2 )
{
- fn( an1[i].childNodes[j], an2[i].childNodes[j] );
+ fn( nNode1, nNode2, index );
}
else
{
- fn( an1[i].childNodes[j] );
+ fn( nNode1, index );
}
+ index++;
}
+ nNode1 = nNode1.nextSibling;
+ nNode2 = an2 ? nNode2.nextSibling : null;
}
+ i++;
}
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sizing.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sizing.js
index 81b217a3..9632ca26 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sizing.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sizing.js
@@ -1,5 +1,3 @@
-
-
/**
* Convert a CSS unit width to pixels (e.g. 2em)
* @param {string} sWidth width to be converted
@@ -16,7 +14,7 @@ function _fnConvertToWidth ( sWidth, nParent )
if ( !nParent )
{
- nParent = document.getElementsByTagName('body')[0];
+ nParent = document.body;
}
var iWidth;
@@ -46,6 +44,7 @@ function _fnCalculateColumnWidths ( oSettings )
var i, iIndex, iCorrector, iWidth;
var oHeaders = $('th', oSettings.nTHead);
var widthAttr = oSettings.nTable.getAttribute('width');
+ var nWrapper = oSettings.nTable.parentNode;
/* Convert any user input sizes into pixel sizes */
for ( i=0 ; i<iColums ; i++ )
@@ -57,7 +56,7 @@ function _fnCalculateColumnWidths ( oSettings )
if ( oSettings.aoColumns[i].sWidth !== null )
{
iTmpWidth = _fnConvertToWidth( oSettings.aoColumns[i].sWidthOrig,
- oSettings.nTable.parentNode );
+ nWrapper );
if ( iTmpWidth !== null )
{
oSettings.aoColumns[i].sWidth = _fnStringToCss( iTmpWidth );
@@ -157,7 +156,6 @@ function _fnCalculateColumnWidths ( oSettings )
}
/* Build the table and 'display' it */
- var nWrapper = oSettings.nTable.parentNode;
nWrapper.appendChild( nCalcTmp );
/* When scrolling (X or Y) we want to set the width of the table as appropriate. However,
@@ -284,7 +282,7 @@ function _fnScrollingWidthAdjust ( oSettings, n )
* Get the widest node
* @param {object} oSettings dataTables settings object
* @param {int} iCol column of interest
- * @returns {string} max strlens for each column
+ * @returns {node} widest table node
* @memberof DataTable#oApi
*/
function _fnGetWidestNode( oSettings, iCol )
@@ -309,7 +307,7 @@ function _fnGetWidestNode( oSettings, iCol )
* Get the maximum strlen for each data column
* @param {object} oSettings dataTables settings object
* @param {int} iCol column of interest
- * @returns {string} max strlens for each column
+ * @returns {string} max string length for each column
* @memberof DataTable#oApi
*/
function _fnGetMaxLenString( oSettings, iCol )
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sort.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sort.js
index f6cf11ad..c1102a4e 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sort.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.sort.js
@@ -1,5 +1,3 @@
-
-
/**
* Change the order of the table
* @param {object} oSettings dataTables settings object
@@ -26,7 +24,7 @@ function _fnSort ( oSettings, bApplyClasses )
oSettings.aaSortingFixed.concat( oSettings.aaSorting ) :
oSettings.aaSorting.slice();
- /* If there is a sorting data type, and a fuction belonging to it, then we need to
+ /* If there is a sorting data type, and a function belonging to it, then we need to
* get the data from the developer's function and apply it for this column
*/
for ( i=0 ; i<aaSort.length ; i++ )
@@ -208,17 +206,17 @@ function _fnSortAttachListener ( oSettings, nNode, iDataIndex, fnCallback )
* twice - once for when bProcessing is enabled, and another time for when it is
* disabled, as we need to perform slightly different actions.
* Basically the issue here is that the Javascript engine in modern browsers don't
- * appear to allow the rendering engine to update the display while it is still excuting
+ * appear to allow the rendering engine to update the display while it is still executing
* it's thread (well - it does but only after long intervals). This means that the
* 'processing' display doesn't appear for a table sort. To break the js thread up a bit
* I force an execution break by using setTimeout - but this breaks the expected
* thread continuation for the end-developer's point of view (their code would execute
- * too early), so we on;y do it when we absolutely have to.
+ * too early), so we only do it when we absolutely have to.
*/
var fnInnerSorting = function () {
var iColumn, iNextSort;
- /* If the shift key is pressed then we are multipe column sorting */
+ /* If the shift key is pressed then we are multiple column sorting */
if ( e.shiftKey )
{
/* Are we already doing some kind of sort on this column? */
@@ -391,10 +389,10 @@ function _fnSortingClasses( oSettings )
* Apply the required classes to the table body
* Note that this is given as a feature switch since it can significantly slow down a sort
* on large data sets (adding and removing of classes is always slow at the best of times..)
- * Further to this, note that this code is admitadly fairly ugly. It could be made a lot
- * simpiler using jQuery selectors and add/removeClass, but that is significantly slower
+ * Further to this, note that this code is admittedly fairly ugly. It could be made a lot
+ * simpler using jQuery selectors and add/removeClass, but that is significantly slower
* (on the order of 5 times slower) - hence the direct DOM manipulation here.
- * Note that for defered drawing we do use jQuery - the reason being that taking the first
+ * Note that for deferred drawing we do use jQuery - the reason being that taking the first
* row found to see if the whole column needs processed can miss classes since the first
* column might be new.
*/
@@ -403,56 +401,49 @@ function _fnSortingClasses( oSettings )
if ( oSettings.oFeatures.bSort && oSettings.oFeatures.bSortClasses )
{
var nTds = _fnGetTdNodes( oSettings );
-
- /* Remove the old classes */
- if ( oSettings.oFeatures.bDeferRender )
+
+ /* Determine what the sorting class for each column should be */
+ var iClass, iTargetCol;
+ var asClasses = [];
+ for (i = 0; i < iColumns; i++)
{
- $(nTds).removeClass(sClass+'1 '+sClass+'2 '+sClass+'3');
+ asClasses.push("");
}
- else if ( nTds.length >= iColumns )
+ for (i = 0, iClass = 1; i < aaSort.length; i++)
{
- for ( i=0 ; i<iColumns ; i++ )
+ iTargetCol = parseInt( aaSort[i][0], 10 );
+ asClasses[iTargetCol] = sClass + iClass;
+
+ if ( iClass < 3 )
{
- if ( nTds[i].className.indexOf(sClass+"1") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"1", "" ) );
- }
- }
- else if ( nTds[i].className.indexOf(sClass+"2") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( sClass+"2", "" ) );
- }
- }
- else if ( nTds[i].className.indexOf(sClass+"3") != -1 )
- {
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
- {
- nTds[(iColumns*j)+i].className =
- $.trim( nTds[(iColumns*j)+i].className.replace( " "+sClass+"3", "" ) );
- }
- }
+ iClass++;
}
}
- /* Add the new classes to the table */
- var iClass = 1, iTargetCol;
- for ( i=0 ; i<aaSort.length ; i++ )
+ /* Make changes to the classes for each cell as needed */
+ var reClass = new RegExp(sClass + "[123]");
+ var sTmpClass, sCurrentClass, sNewClass;
+ for ( i=0, iLen=nTds.length; i<iLen; i++ )
{
- iTargetCol = parseInt( aaSort[i][0], 10 );
- for ( j=0, jLen=(nTds.length/iColumns) ; j<jLen ; j++ )
+ /* Determine which column we're looking at */
+ iTargetCol = i % iColumns;
+
+ /* What is the full list of classes now */
+ sCurrentClass = nTds[i].className;
+ /* What sorting class should be applied? */
+ sNewClass = asClasses[iTargetCol];
+ /* What would the new full list be if we did a replacement? */
+ sTmpClass = sCurrentClass.replace(reClass, sNewClass);
+
+ if ( sTmpClass != sCurrentClass )
{
- nTds[(iColumns*j)+iTargetCol].className += " "+sClass+iClass;
+ /* We changed something */
+ nTds[i].className = $.trim( sTmpClass );
}
-
- if ( iClass < 3 )
+ else if ( sNewClass.length > 0 && sCurrentClass.indexOf(sNewClass) == -1 )
{
- iClass++;
+ /* We need to add a class */
+ nTds[i].className = sCurrentClass + " " + sNewClass;
}
}
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.state.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.state.js
index de668f94..300b7d47 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.state.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.state.js
@@ -80,7 +80,7 @@ function _fnLoadState ( oSettings, oInit )
$.extend( true, oSettings.aoPreSearchCols, oData.aoSearchCols );
/* Column visibility state
- * Pass back visibiliy settings to the init handler, but to do not here override
+ * Pass back visibility settings to the init handler, but to do not here override
* the init object that the user might have passed in
*/
oInit.saved_aoColumns = [];
@@ -132,35 +132,50 @@ function _fnCreateCookie ( sName, sValue, iSecs, sBaseName, fnCallback )
}
/* Are we going to go over the cookie limit of 4KiB? If so, try to delete a cookies
- * belonging to DataTables. This is FAR from bullet proof
+ * belonging to DataTables.
*/
- var sOldName="", iOldTime=9999999999999;
- var iLength = _fnReadCookie( sNameFile )!==null ? document.cookie.length :
- sFullCookie.length + document.cookie.length;
+ var
+ aCookies =document.cookie.split(';'),
+ iNewCookieLen = sFullCookie.split(';')[0].length,
+ aOldCookies = [];
- if ( iLength+10 > 4096 ) /* Magic 10 for padding */
+ if ( iNewCookieLen+document.cookie.length+10 > 4096 ) /* Magic 10 for padding */
{
- var aCookies =document.cookie.split(';');
for ( var i=0, iLen=aCookies.length ; i<iLen ; i++ )
{
if ( aCookies[i].indexOf( sBaseName ) != -1 )
{
/* It's a DataTables cookie, so eval it and check the time stamp */
var aSplitCookie = aCookies[i].split('=');
- try { oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' ); }
- catch( e ) { continue; }
-
- if ( oData.iCreate && oData.iCreate < iOldTime )
- {
- sOldName = aSplitCookie[0];
- iOldTime = oData.iCreate;
+ try {
+ oData = eval( '('+decodeURIComponent(aSplitCookie[1])+')' );
+
+ if ( oData && oData.iCreate )
+ {
+ aOldCookies.push( {
+ "name": aSplitCookie[0],
+ "time": oData.iCreate
+ } );
+ }
}
+ catch( e ) {}
}
}
-
- if ( sOldName !== "" )
- {
- document.cookie = sOldName+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+
+
+ // Make sure we delete the oldest ones first
+ aOldCookies.sort( function (a, b) {
+ return b.time - a.time;
+ } );
+
+ // Eliminate as many old DataTables cookies as we need to
+ while ( iNewCookieLen + document.cookie.length + 10 > 4096 ) {
+ if ( aOldCookies.length === 0 ) {
+ // Deleted all DT cookies and still not enough space. Can't state save
+ return;
+ }
+
+ var old = aOldCookies.pop();
+ document.cookie = old.name+"=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+
aParts.join('/') + "/";
}
}
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.support.js b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.support.js
index e3597c00..dd5ad4c9 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/core/core.support.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/core/core.support.js
@@ -1,5 +1,4 @@
-
/**
* Return the settings object for a particular table
* @param {node} nTable table we are using as a dataTable
@@ -53,7 +52,7 @@ function _fnGetTdNodes ( oSettings, iIndividualRow )
{
var anReturn = [];
var iCorrector;
- var anTds;
+ var anTds, nTd;
var iRow, iRows=oSettings.aoData.length,
iColumn, iColumns, oData, sNodeName, iStart=0, iEnd=iRows;
@@ -71,13 +70,15 @@ function _fnGetTdNodes ( oSettings, iIndividualRow )
{
/* get the TD child nodes - taking into account text etc nodes */
anTds = [];
- for ( iColumn=0, iColumns=oData.nTr.childNodes.length ; iColumn<iColumns ; iColumn++ )
+ nTd = oData.nTr.firstChild;
+ while ( nTd )
{
- sNodeName = oData.nTr.childNodes[iColumn].nodeName.toLowerCase();
+ sNodeName = nTd.nodeName.toLowerCase();
if ( sNodeName == 'td' || sNodeName == 'th' )
{
- anTds.push( oData.nTr.childNodes[iColumn] );
+ anTds.push( nTd );
}
+ nTd = nTd.nextSibling;
}
iCorrector = 0;
@@ -166,17 +167,21 @@ function _fnMap( oRet, oSrc, sName, sMappedName )
*/
function _fnExtend( oOut, oExtender )
{
+ var val;
+
for ( var prop in oExtender )
{
if ( oExtender.hasOwnProperty(prop) )
{
- if ( typeof oInit[prop] === 'object' && $.isArray(oExtender[prop]) === false )
+ val = oExtender[prop];
+
+ if ( typeof oInit[prop] === 'object' && val !== null && $.isArray(val) === false )
{
- $.extend( true, oOut[prop], oExtender[prop] );
+ $.extend( true, oOut[prop], val );
}
else
{
- oOut[prop] = oExtender[prop];
+ oOut[prop] = val;
}
}
}
@@ -187,7 +192,7 @@ function _fnExtend( oOut, oExtender )
/**
* Bind an event handers to allow a click or return key to activate the callback.
- * This is good for accessability since a return on the keyboard will have the
+ * This is good for accessibility since a return on the keyboard will have the
* same effect as a click, if the element has focus.
* @param {element} n Element to bind the action to
* @param {object} oData Data object to pass to the triggered function
@@ -216,7 +221,7 @@ function _fnBindAction( n, oData, fn )
* Register a callback function. Easily allows a callback function to be added to
* an array store of callback functions that can then all be called together.
* @param {object} oSettings dataTables settings object
- * @param {string} sStore Name of the array storeage for the callbacks in oSettings
+ * @param {string} sStore Name of the array storage for the callbacks in oSettings
* @param {function} fn Function to be called back
* @param {string} sName Identifying name for the callback (i.e. a label)
* @memberof DataTable#oApi
@@ -238,7 +243,7 @@ function _fnCallbackReg( oSettings, sStore, fn, sName )
* array store is done backwards! Further note that you do not want to fire off triggers
* in time sensitive applications (for example cell creation) as its slow.
* @param {object} oSettings dataTables settings object
- * @param {string} sStore Name of the array storeage for the callbacks in oSettings
+ * @param {string} sStore Name of the array storage for the callbacks in oSettings
* @param {string} sTrigger Name of the jQuery custom event to trigger. If null no trigger
* is fired
* @param {array} aArgs Array of arguments to pass to the callback function / trigger
@@ -266,7 +271,7 @@ function _fnCallbackFire( oSettings, sStore, sTrigger, aArgs )
/**
* JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other
* library, then we use that as it is fast, safe and accurate. If the function isn't
- * available then we need to built it ourselves - the insperation for this function comes
+ * available then we need to built it ourselves - the inspiration for this function comes
* from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is
* not perfect and absolutely should not be used as a replacement to json2.js - but it does
* do what we need, without requiring a dependency for DataTables.
@@ -314,3 +319,28 @@ var _fnJsonString = (window.JSON) ? JSON.stringify : function( o )
return (bArr ? "[" : "{") + json + (bArr ? "]" : "}");
};
+
+/**
+ * From some browsers (specifically IE6/7) we need special handling to work around browser
+ * bugs - this function is used to detect when these workarounds are needed.
+ * @param {object} oSettings dataTables settings object
+ * @memberof DataTable#oApi
+ */
+function _fnBrowserDetect( oSettings )
+{
+ /* IE6/7 will oversize a width 100% element inside a scrolling element, to include the
+ * width of the scrollbar, while other browsers ensure the inner element is contained
+ * without forcing scrolling
+ */
+ var n = $(
+ '<div style="position:absolute; top:0; left:0; height:1px; width:1px; overflow:hidden">'+
+ '<div style="position:absolute; top:1px; left:1px; width:100px; overflow:scroll;">'+
+ '<div id="DT_BrowserTest" style="width:100%; height:10px;"></div>'+
+ '</div>'+
+ '</div>')[0];
+
+ document.body.appendChild( n );
+ oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false;
+ document.body.removeChild( n );
+}
+
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/ext/ext.paging.js b/wqflask/wqflask/static/new/packages/DataTables/src/ext/ext.paging.js
index 195a5797..4183646a 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/ext/ext.paging.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/ext/ext.paging.js
@@ -1,4 +1,3 @@
-
/*
* Variable: oPagination
* Purpose:
@@ -73,17 +72,22 @@ $.extend( DataTable.ext.oPagination, {
var oClasses = oSettings.oClasses;
var an = oSettings.aanFeatures.p;
+ var nNode;
/* Loop over each instance of the pager */
for ( var i=0, iLen=an.length ; i<iLen ; i++ )
{
- if ( an[i].childNodes.length !== 0 )
+ nNode = an[i].firstChild;
+ if ( nNode )
{
- an[i].childNodes[0].className = ( oSettings._iDisplayStart === 0 ) ?
- oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled;
-
- an[i].childNodes[1].className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
- oClasses.sPageNextDisabled : oClasses.sPageNextEnabled;
+ /* Previous page */
+ nNode.className = ( oSettings._iDisplayStart === 0 ) ?
+ oClasses.sPagePrevDisabled : oClasses.sPagePrevEnabled;
+
+ /* Next page */
+ nNode = nNode.nextSibling;
+ nNode.className = ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() ) ?
+ oClasses.sPageNextDisabled : oClasses.sPageNextEnabled;
}
}
}
@@ -172,7 +176,7 @@ $.extend( DataTable.ext.oPagination, {
var sList = "";
var iStartButton, iEndButton, i, iLen;
var oClasses = oSettings.oClasses;
- var anButtons, anStatic, nPaginateList;
+ var anButtons, anStatic, nPaginateList, nNode;
var an = oSettings.aanFeatures.p;
var fnBind = function (j) {
oSettings.oApi._fnBindAction( this, {"page": j+iStartButton-1}, function(e) {
@@ -223,18 +227,19 @@ $.extend( DataTable.ext.oPagination, {
/* Loop over each instance of the pager */
for ( i=0, iLen=an.length ; i<iLen ; i++ )
{
- if ( an[i].childNodes.length === 0 )
+ nNode = an[i];
+ if ( !nNode.hasChildNodes() )
{
continue;
}
- /* Build up the dynamic list forst - html and listeners */
- $('span:eq(0)', an[i])
+ /* Build up the dynamic list first - html and listeners */
+ $('span:eq(0)', nNode)
.html( sList )
.children('a').each( fnBind );
- /* Update the premanent botton's classes */
- anButtons = an[i].getElementsByTagName('a');
+ /* Update the permanent button's classes */
+ anButtons = nNode.getElementsByTagName('a');
anStatic = [
anButtons[0], anButtons[1],
anButtons[anButtons.length-2], anButtons[anButtons.length-1]
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.column.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.column.js
index 0f440cf8..db54cc0c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.column.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.column.js
@@ -48,14 +48,14 @@ DataTable.models.oColumn = {
"bSortable": null,
/**
- * When using fnRender, you have two options for what to do with the data,
- * and this property serves as the switch. Firstly, you can have the sorting
- * and filtering use the rendered value (true - default), or you can have
- * the sorting and filtering us the original value (false).
- *
- * *NOTE* It is it is advisable now to use mDataProp as a function and make
- * use of the 'type' that it gives, allowing (potentially) different data to
- * be used for sorting, filtering, display and type detection.
+ * <code>Deprecated</code> When using fnRender, you have two options for what
+ * to do with the data, and this property serves as the switch. Firstly, you
+ * can have the sorting and filtering use the rendered value (true - default),
+ * or you can have the sorting and filtering us the original value (false).
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type boolean
* @deprecated
*/
@@ -78,9 +78,9 @@ DataTable.models.oColumn = {
/**
* Developer definable function that is called whenever a cell is created (Ajax source,
- * etc) or processed for input (DOM source). This can be used as a compliment to fnRender
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
* allowing you to modify the DOM element (add background colour for example) when the
- * element is available (since it is not when fnRender is called).
+ * element is available.
* @type function
* @param {element} nTd The TD node that has been created
* @param {*} sData The Data for the cell
@@ -93,7 +93,7 @@ DataTable.models.oColumn = {
/**
* Function to get data from a cell in a column. You should <b>never</b>
* access data directly through _aData internally in DataTables - always use
- * the method attached to this property. It allows mDataProp to function as
+ * the method attached to this property. It allows mData to function as
* required. This function is automatically assigned by the column
* initialisation method
* @type function
@@ -107,8 +107,12 @@ DataTable.models.oColumn = {
"fnGetData": null,
/**
- * Custom display function that will be called for the display of each cell
- * in this column.
+ * <code>Deprecated</code> Custom display function that will be called for the
+ * display of each cell in this column.
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type function
* @param {object} o Object with the following parameters:
* @param {int} o.iDataRow The row in aoData
@@ -117,13 +121,14 @@ DataTable.models.oColumn = {
* @param {object} o.oSettings The settings object for this DataTables instance
* @returns {string} The string you which to use in the display
* @default null
+ * @deprecated
*/
"fnRender": null,
/**
* Function to set data for a cell in the column. You should <b>never</b>
* set the data directly to _aData internally in DataTables - always use
- * this method. It allows mDataProp to function as required. This function
+ * this method. It allows mData to function as required. This function
* is automatically assigned by the column initialisation method
* @type function
* @param {array|object} oData The data array/object for the array
@@ -140,7 +145,17 @@ DataTable.models.oColumn = {
* @type function|int|string|null
* @default null
*/
- "mDataProp": null,
+ "mData": null,
+
+ /**
+ * Partner property to mData which is used (only when defined) to get
+ * the data - i.e. it is basically the same as mData, but without the
+ * 'set' option, and also the data fed to it is the result from mData.
+ * This is the rendering method to match the data method of mData.
+ * @type function|int|string|null
+ * @default null
+ */
+ "mRender": null,
/**
* Unique header TH/TD element for this column - this is what the sorting
@@ -181,7 +196,7 @@ DataTable.models.oColumn = {
/**
* Allows a default value to be given for a column's data, and will be used
- * whenever a null data source is encountered (this can be because mDataProp
+ * whenever a null data source is encountered (this can be because mData
* is set to null, or because the data source itself is null).
* @type string
* @default null
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.columns.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.columns.js
index 4828e02a..9387fe2c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.columns.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.columns.js
@@ -15,7 +15,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] },
@@ -27,7 +27,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "aDataSort": [ 0, 1 ] },
@@ -52,7 +52,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "asSorting": [ "asc" ], "aTargets": [ 1 ] },
@@ -64,7 +64,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -87,7 +87,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bSearchable": false, "aTargets": [ 0 ] }
@@ -96,7 +96,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bSearchable": false },
@@ -118,7 +118,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bSortable": false, "aTargets": [ 0 ] }
@@ -127,7 +127,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bSortable": false },
@@ -142,51 +142,18 @@ DataTable.defaults.columns = {
/**
- * When using fnRender() for a column, you may wish to use the original data
- * (before rendering) for sorting and filtering (the default is to used the
- * rendered data that the user can see). This may be useful for dates etc.
+ * <code>Deprecated</code> When using fnRender() for a column, you may wish
+ * to use the original data (before rendering) for sorting and filtering
+ * (the default is to used the rendered data that the user can see). This
+ * may be useful for dates etc.
*
- * *NOTE* It is it is advisable now to use mDataProp as a function and make
- * use of the 'type' that it gives, allowing (potentially) different data to
- * be used for sorting, filtering, display and type detection.
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type boolean
* @default true
* @dtopt Columns
- *
- * @example
- * // Using aoColumnDefs
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
- * "fnRender": function ( oObj ) {
- * return oObj.aData[0] +' '+ oObj.aData[3];
- * },
- * "bUseRendered": false,
- * "aTargets": [ 0 ]
- * }
- * ]
- * } );
- * } );
- *
- * @example
- * // Using aoColumns
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumns": [
- * {
- * "fnRender": function ( oObj ) {
- * return oObj.aData[0] +' '+ oObj.aData[3];
- * },
- * "bUseRendered": false
- * },
- * null,
- * null,
- * null,
- * null
- * ]
- * } );
- * } );
+ * @deprecated
*/
"bUseRendered": true,
@@ -199,7 +166,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "bVisible": false, "aTargets": [ 0 ] }
@@ -208,7 +175,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "bVisible": false },
@@ -224,9 +191,9 @@ DataTable.defaults.columns = {
/**
* Developer definable function that is called whenever a cell is created (Ajax source,
- * etc) or processed for input (DOM source). This can be used as a compliment to fnRender
+ * etc) or processed for input (DOM source). This can be used as a compliment to mRender
* allowing you to modify the DOM element (add background colour for example) when the
- * element is available (since it is not when fnRender is called).
+ * element is available.
* @type function
* @param {element} nTd The TD node that has been created
* @param {*} sData The Data for the cell
@@ -236,7 +203,7 @@ DataTable.defaults.columns = {
* @dtopt Columns
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [ {
* "aTargets": [3],
@@ -253,8 +220,12 @@ DataTable.defaults.columns = {
/**
- * Custom display function that will be called for the display of each cell in
- * this column.
+ * <code>Deprecated</code> Custom display function that will be called for the
+ * display of each cell in this column.
+ *
+ * Please note that this option has now been deprecated and will be removed
+ * in the next version of DataTables. Please use mRender / mData rather than
+ * fnRender.
* @type function
* @param {object} o Object with the following parameters:
* @param {int} o.iDataRow The row in aoData
@@ -265,37 +236,7 @@ DataTable.defaults.columns = {
* @param {*} val The current cell value
* @returns {string} The string you which to use in the display
* @dtopt Columns
- *
- * @example
- * // Using aoColumnDefs
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
- * "fnRender": function ( o, val ) {
- * return o.aData[0] +' '+ o.aData[3];
- * },
- * "aTargets": [ 0 ]
- * }
- * ]
- * } );
- * } );
- *
- * @example
- * // Using aoColumns
- * $(document).ready(function() {
- * $('#example').dataTable( {
- * "aoColumns": [
- * { "fnRender": function ( o, val ) {
- * return o.aData[0] +' '+ o.aData[3];
- * } },
- * null,
- * null,
- * null,
- * null
- * ]
- * } );
- * } );
+ * @deprecated
*/
"fnRender": null,
@@ -310,7 +251,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "iDataSort": 1, "aTargets": [ 0 ] }
@@ -320,7 +261,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "iDataSort": 1 },
@@ -336,14 +277,23 @@ DataTable.defaults.columns = {
/**
+ * This parameter has been replaced by mData in DataTables to ensure naming
+ * consistency. mDataProp can still be used, as there is backwards compatibility
+ * in DataTables for this option, but it is strongly recommended that you use
+ * mData in preference to mDataProp.
+ * @name DataTable.defaults.columns.mDataProp
+ */
+
+
+ /**
* This property can be used to read data from any JSON data source property,
- * including deeply nested objects / properties. mDataProp can be given in a
+ * including deeply nested objects / properties. mData can be given in a
* number of different ways which effect its behaviour:
* <ul>
* <li>integer - treated as an array index for the data source. This is the
* default that DataTables uses (incrementally increased for each column).</li>
* <li>string - read an object property from the data source. Note that you can
- * use Javascript dotted notation to read deep properties/arrays from the
+ * use Javascript dotted notation to read deep properties / arrays from the
* data source.</li>
* <li>null - the sDefaultContent option will be used for the cell (null
* by default, so you will need to specify the default content you want -
@@ -364,34 +314,38 @@ DataTable.defaults.columns = {
* of call, but otherwise the return is what will be used for the data
* requested.</li>
* </ul>
+ *
+ * Note that prior to DataTables 1.9.2 mData was called mDataProp. The name change
+ * reflects the flexibility of this property and is consistent with the naming of
+ * mRender. If 'mDataProp' is given, then it will still be used by DataTables, as
+ * it automatically maps the old name to the new if required.
* @type string|int|function|null
* @default null <i>Use automatically calculated column index</i>
* @dtopt Columns
*
* @example
* // Read table data from objects
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/deep.txt",
* "aoColumns": [
- * { "mDataProp": "engine" },
- * { "mDataProp": "browser" },
- * { "mDataProp": "platform.inner" },
- * { "mDataProp": "platform.details.0" },
- * { "mDataProp": "platform.details.1" }
+ * { "mData": "engine" },
+ * { "mData": "browser" },
+ * { "mData": "platform.inner" },
+ * { "mData": "platform.details.0" },
+ * { "mData": "platform.details.1" }
* ]
* } );
* } );
*
* @example
- * // Using mDataProp as a function to provide different information for
+ * // Using mData as a function to provide different information for
* // sorting, filtering and display. In this case, currency (price)
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
+ * "aoColumnDefs": [ {
* "aTargets": [ 0 ],
- * "mDataProp": function ( source, type, val ) {
+ * "mData": function ( source, type, val ) {
* if (type === 'set') {
* source.price = val;
* // Store the computed dislay and filter values for efficiency
@@ -408,11 +362,80 @@ DataTable.defaults.columns = {
* // 'sort', 'type' and undefined all just use the integer
* return source.price;
* }
+ * } ]
+ * } );
+ * } );
+ */
+ "mData": null,
+
+
+ /**
+ * This property is the rendering partner to mData and it is suggested that
+ * when you want to manipulate data for display (including filtering, sorting etc)
+ * but not altering the underlying data for the table, use this property. mData
+ * can actually do everything this property can and more, but this parameter is
+ * easier to use since there is no 'set' option. Like mData is can be given
+ * in a number of different ways to effect its behaviour, with the addition of
+ * supporting array syntax for easy outputting of arrays (including arrays of
+ * objects):
+ * <ul>
+ * <li>integer - treated as an array index for the data source. This is the
+ * default that DataTables uses (incrementally increased for each column).</li>
+ * <li>string - read an object property from the data source. Note that you can
+ * use Javascript dotted notation to read deep properties / arrays from the
+ * data source and also array brackets to indicate that the data reader should
+ * loop over the data source array. When characters are given between the array
+ * brackets, these characters are used to join the data source array together.
+ * For example: "accounts[, ].name" would result in a comma separated list with
+ * the 'name' value from the 'accounts' array of objects.</li>
+ * <li>function - the function given will be executed whenever DataTables
+ * needs to set or get the data for a cell in the column. The function
+ * takes three parameters:
+ * <ul>
+ * <li>{array|object} The data source for the row (based on mData)</li>
+ * <li>{string} The type call data requested - this will be 'filter', 'display',
+ * 'type' or 'sort'.</li>
+ * <li>{array|object} The full data source for the row (not based on mData)</li>
+ * </ul>
+ * The return value from the function is what will be used for the data
+ * requested.</li>
+ * </ul>
+ * @type string|int|function|null
+ * @default null <i>Use mData</i>
+ * @dtopt Columns
+ *
+ * @example
+ * // Create a comma separated list from an array of objects
+ * $(document).ready( function() {
+ * var oTable = $('#example').dataTable( {
+ * "sAjaxSource": "sources/deep.txt",
+ * "aoColumns": [
+ * { "mData": "engine" },
+ * { "mData": "browser" },
+ * {
+ * "mData": "platform",
+ * "mRender": "[, ].name"
+ * }
+ * ]
+ * } );
+ * } );
+ *
+ * @example
+ * // Use as a function to create a link from the data source
+ * $(document).ready( function() {
+ * var oTable = $('#example').dataTable( {
+ * "aoColumnDefs": [
+ * {
+ * "aTargets": [ 0 ],
+ * "mData": "download_link",
+ * "mRender": function ( data, type, full ) {
+ * return '<a href="'+data+'">Download</a>';
+ * }
* ]
* } );
* } );
*/
- "mDataProp": null,
+ "mRender": null,
/**
@@ -425,13 +448,12 @@ DataTable.defaults.columns = {
*
* @example
* // Make the first column use TH cells
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
- * "aoColumnDefs": [
- * {
+ * "aoColumnDefs": [ {
* "aTargets": [ 0 ],
* "sCellType": "th"
- * ]
+ * } ]
* } );
* } );
*/
@@ -446,7 +468,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sClass": "my_class", "aTargets": [ 0 ] }
@@ -456,7 +478,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sClass": "my_class" },
@@ -487,7 +509,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -505,7 +527,7 @@ DataTable.defaults.columns = {
/**
* Allows a default value to be given for a column's data, and will be used
- * whenever a null data source is encountered (this can be because mDataProp
+ * whenever a null data source is encountered (this can be because mData
* is set to null, or because the data source itself is null).
* @type string
* @default null
@@ -513,11 +535,11 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* {
- * "mDataProp": null,
+ * "mData": null,
* "sDefaultContent": "Edit",
* "aTargets": [ -1 ]
* }
@@ -527,14 +549,14 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
* null,
* null,
* {
- * "mDataProp": null,
+ * "mData": null,
* "sDefaultContent": "Edit"
* }
* ]
@@ -557,7 +579,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sName": "engine", "aTargets": [ 0 ] },
@@ -571,7 +593,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sName": "engine" },
@@ -588,7 +610,7 @@ DataTable.defaults.columns = {
/**
* Defines a data source type for the sorting which can be used to read
- * realtime information from the table (updating the internally cached
+ * real-time information from the table (updating the internally cached
* version) prior to sorting. This allows sorting to occur on user editable
* elements such as form inputs.
* @type string
@@ -597,7 +619,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sSortDataType": "dom-text", "aTargets": [ 2, 3 ] },
@@ -610,7 +632,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* null,
@@ -635,7 +657,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sTitle": "My column title", "aTargets": [ 0 ] }
@@ -645,7 +667,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sTitle": "My column title" },
@@ -674,7 +696,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sType": "html", "aTargets": [ 0 ] }
@@ -684,7 +706,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sType": "html" },
@@ -701,7 +723,7 @@ DataTable.defaults.columns = {
/**
* Defining the width of the column, this parameter may take any CSS value
- * (3em, 20px etc). DataTables applys 'smart' widths to columns which have not
+ * (3em, 20px etc). DataTables apples 'smart' widths to columns which have not
* been given a specific width through this interface ensuring that the table
* remains readable.
* @type string
@@ -710,7 +732,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumnDefs
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumnDefs": [
* { "sWidth": "20%", "aTargets": [ 0 ] }
@@ -720,7 +742,7 @@ DataTable.defaults.columns = {
*
* @example
* // Using aoColumns
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aoColumns": [
* { "sWidth": "20%" },
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.js
index a2039401..779f19d8 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.defaults.js
@@ -34,7 +34,7 @@ DataTable.defaults = {
* } );
*
* @example
- * // Using an array of objects as a data source (mDataProp)
+ * // Using an array of objects as a data source (mData)
* $(document).ready( function () {
* $('#example').dataTable( {
* "aaData": [
@@ -54,11 +54,11 @@ DataTable.defaults = {
* }
* ],
* "aoColumns": [
- * { "sTitle": "Engine", "mDataProp": "engine" },
- * { "sTitle": "Browser", "mDataProp": "browser" },
- * { "sTitle": "Platform", "mDataProp": "platform" },
- * { "sTitle": "Version", "mDataProp": "version" },
- * { "sTitle": "Grade", "mDataProp": "grade" }
+ * { "sTitle": "Engine", "mData": "engine" },
+ * { "sTitle": "Browser", "mData": "browser" },
+ * { "sTitle": "Platform", "mData": "platform" },
+ * { "sTitle": "Version", "mData": "version" },
+ * { "sTitle": "Grade", "mData": "grade" }
* ]
* } );
* } );
@@ -127,7 +127,7 @@ DataTable.defaults = {
* @dtopt Option
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
* } );
@@ -137,7 +137,7 @@ DataTable.defaults = {
* // Setting the default display length as well as length menu
* // This is likely to be wanted if you remove the '10' option which
* // is the iDisplayLength default.
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "iDisplayLength": 25,
* "aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]]
@@ -209,7 +209,7 @@ DataTable.defaults = {
* array may be of any length, and DataTables will apply each class
* sequentially, looping when required.
* @type array
- * @default null <i>Will take the values determinted by the oClasses.sStripe*
+ * @default null <i>Will take the values determined by the oClasses.sStripe*
* options</i>
* @dtopt Option
*
@@ -252,7 +252,7 @@ DataTable.defaults = {
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/arrays.txt",
* "bDeferRender": true
@@ -272,7 +272,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200px",
* "bPaginate": false
@@ -411,7 +411,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* initTable();
* tableActions();
* } );
@@ -443,7 +443,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollAutoCss": false,
* "sScrollY": "200px"
@@ -465,7 +465,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200",
* "bScrollCollapse": true
@@ -487,7 +487,7 @@ DataTable.defaults = {
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollInfinite": true,
* "bScrollCollapse": true,
@@ -544,7 +544,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bSortCellsTop": true
* } );
@@ -631,7 +631,7 @@ DataTable.defaults = {
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnCreatedRow": function( nRow, aData, iDataIndex ) {
* // Bold the grade for all 'A' grade browsers
@@ -704,7 +704,7 @@ DataTable.defaults = {
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnFormatNumber": function ( iIn ) {
* if ( iIn &lt; 1000 ) {
@@ -863,7 +863,7 @@ DataTable.defaults = {
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
* // Bold the grade for all 'A' grade browsers
@@ -896,7 +896,7 @@ DataTable.defaults = {
*
* @example
* // POST data to server
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bProcessing": true,
* "bServerSide": true,
@@ -918,7 +918,11 @@ DataTable.defaults = {
"url": sUrl,
"data": aoData,
"success": function (json) {
- $(oSettings.oInstance).trigger('xhr', oSettings);
+ if ( json.sError ) {
+ oSettings.oApi._fnLog( oSettings, 0, json.sError );
+ }
+
+ $(oSettings.oInstance).trigger('xhr', [oSettings, json]);
fnCallback( json );
},
"dataType": "json",
@@ -952,7 +956,7 @@ DataTable.defaults = {
* @dtopt Server-side
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bProcessing": true,
* "bServerSide": true,
@@ -977,7 +981,7 @@ DataTable.defaults = {
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoad": function (oSettings) {
@@ -1027,21 +1031,23 @@ DataTable.defaults = {
*
* @example
* // Remove a saved filter, so filtering is never loaded
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoadParams": function (oSettings, oData) {
* oData.oSearch.sSearch = "";
+ * }
* } );
* } );
*
* @example
* // Disallow state loading by returning false
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoadParams": function (oSettings, oData) {
* return false;
+ * }
* } );
* } );
*/
@@ -1058,11 +1064,12 @@ DataTable.defaults = {
*
* @example
* // Show an alert with the filtering value that was saved
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateLoaded": function (oSettings, oData) {
* alert( 'Saved filter was: '+oData.oSearch.sSearch );
+ * }
* } );
* } );
*/
@@ -1080,7 +1087,7 @@ DataTable.defaults = {
* @dtopt Callbacks
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateSave": function (oSettings, oData) {
@@ -1120,11 +1127,12 @@ DataTable.defaults = {
*
* @example
* // Remove a saved filter, so filtering is never saved
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bStateSave": true,
* "fnStateSaveParams": function (oSettings, oData) {
* oData.oSearch.sSearch = "";
+ * }
* } );
* } );
*/
@@ -1141,7 +1149,7 @@ DataTable.defaults = {
* @example
* $(document).ready( function() {
* $('#example').dataTable( {
- * "iCookieDuration": 60*60*24 // 1 day
+ * "iCookieDuration": 60*60*24; // 1 day
* } );
* } )
*/
@@ -1166,7 +1174,7 @@ DataTable.defaults = {
*
* @example
* // 57 records available in the table, no filtering applied
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/server_processing.php",
@@ -1176,7 +1184,7 @@ DataTable.defaults = {
*
* @example
* // 57 records after filtering, 100 without filtering (an initial filter applied)
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/server_processing.php",
@@ -1237,7 +1245,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bScrollInfinite": true,
* "bScrollCollapse": true,
@@ -1261,7 +1269,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "iTabIndex": 1
* } );
@@ -1293,7 +1301,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oAria": {
@@ -1314,7 +1322,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oAria": {
@@ -1341,7 +1349,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -1362,7 +1370,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -1376,14 +1384,14 @@ DataTable.defaults = {
/**
- * Text to use when using the 'full_numbers' type of pagination for the
- * button to take the user to the next page.
+ * Text to use for the 'next' pagination button (to take the user to the
+ * next page).
* @type string
* @default Next
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -1397,14 +1405,14 @@ DataTable.defaults = {
/**
- * Text to use when using the 'full_numbers' type of pagination for the
- * button to take the user to the previous page.
+ * Text to use for the 'previous' pagination button (to take the user to
+ * the previous page).
* @type string
* @default Previous
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "oPaginate": {
@@ -1427,7 +1435,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sEmptyTable": "No data available in table"
@@ -1448,7 +1456,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfo": "Got a total of _TOTAL_ entries to show (_START_ to _END_)"
@@ -1467,7 +1475,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoEmpty": "No entries to show"
@@ -1487,7 +1495,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoFiltered": " - filtering from _MAX_ records"
@@ -1508,7 +1516,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoPostFix": "All records shown are derived from real information."
@@ -1529,7 +1537,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sInfoThousands": "'"
@@ -1551,7 +1559,7 @@ DataTable.defaults = {
*
* @example
* // Language change only
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sLengthMenu": "Display _MENU_ records"
@@ -1561,7 +1569,7 @@ DataTable.defaults = {
*
* @example
* // Language and options change
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sLengthMenu": 'Display <select>'+
@@ -1609,7 +1617,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sProcessing": "DataTables is currently busy"
@@ -1632,7 +1640,7 @@ DataTable.defaults = {
*
* @example
* // Input text box will be appended at the end automatically
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sSearch": "Filter records:"
@@ -1642,7 +1650,7 @@ DataTable.defaults = {
*
* @example
* // Specify where the filter should appear
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sSearch": "Apply filter _INPUT_ to table"
@@ -1665,7 +1673,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sUrl": "http://www.sprymedia.co.uk/dataTables/lang.txt"
@@ -1685,7 +1693,7 @@ DataTable.defaults = {
* @dtopt Language
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "oLanguage": {
* "sZeroRecords": "No records to display"
@@ -1731,7 +1739,7 @@ DataTable.defaults = {
*
* @example
* // Get data from { "data": [...] }
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/data.txt",
* "sAjaxDataProp": "data"
@@ -1740,7 +1748,7 @@ DataTable.defaults = {
*
* @example
* // Get data from { "data": { "inner": [...] } }
- * $(document).ready(function() {
+ * $(document).ready( function() {
* var oTable = $('#example').dataTable( {
* "sAjaxSource": "sources/data.txt",
* "sAjaxDataProp": "data.inner"
@@ -1778,7 +1786,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sCookiePrefix": "my_datatable_",
* } );
@@ -1830,7 +1838,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sDom": '&lt;"top"i&gt;rt&lt;"bottom"flp&gt;&lt;"clear"&gt;'
* } );
@@ -1868,7 +1876,7 @@ DataTable.defaults = {
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollX": "100%",
* "bScrollCollapse": true
@@ -1890,7 +1898,7 @@ DataTable.defaults = {
* @dtopt Options
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollX": "100%",
* "sScrollXInner": "110%"
@@ -1912,7 +1920,7 @@ DataTable.defaults = {
* @dtopt Features
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "sScrollY": "200px",
* "bPaginate": false
@@ -1931,7 +1939,7 @@ DataTable.defaults = {
* @dtopt Server-side
*
* @example
- * $(document).ready(function() {
+ * $(document).ready( function() {
* $('#example').dataTable( {
* "bServerSide": true,
* "sAjaxSource": "scripts/post.php",
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.ext.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.ext.js
index 7483984d..45566a62 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.ext.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.ext.js
@@ -92,8 +92,8 @@ DataTable.models.ext = {
* </il>
* </ul>
*
- * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for
- * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when
+ * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for
+ * the different uses that DataTables can put the data to. Specifically <i>mData</i> when
* used as a function will give you a 'type' (sorting, filtering etc) that you can use to
* prepare the data as required for the different types. As such, this method is deprecated.
* @type array
@@ -258,8 +258,8 @@ DataTable.models.ext = {
* </il>
* </ul>
*
- * Note that as of v1.9, it is typically preferable to use <i>mDataProp</i> to prepare data for
- * the different uses that DataTables can put the data to. Specifically <i>mDataProp</i> when
+ * Note that as of v1.9, it is typically preferable to use <i>mData</i> to prepare data for
+ * the different uses that DataTables can put the data to. Specifically <i>mData</i> when
* used as a function will give you a 'type' (sorting, filtering etc) that you can use to
* prepare the data as required for the different types. As such, this method is deprecated.
* @type object
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.row.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.row.js
index f88ec698..4d5d6402 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.row.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.row.js
@@ -18,7 +18,7 @@ DataTable.models.oRow = {
/**
* Data object from the original data source for the row. This is either
* an array if using the traditional form of DataTables, or an object if
- * using mDataProp options. The exact type will depend on the passed in
+ * using mData options. The exact type will depend on the passed in
* data from the data source, or will be an array if using DOM a data
* source.
* @type array|object
diff --git a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.settings.js b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.settings.js
index 6d66e9e6..27254799 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/src/model/model.settings.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/src/model/model.settings.js
@@ -223,12 +223,26 @@ DataTable.models.oSettings = {
* Information callback function. See
* {@link DataTable.defaults.fnInfoCallback}
* @type function
- * @default
+ * @default null
*/
"fnInfoCallback": null
},
/**
+ * Browser support parameters
+ * @namespace
+ */
+ "oBrowser": {
+ /**
+ * Indicate if the browser incorrectly calculates width:100% inside a
+ * scrolling element (IE6/7)
+ * @type boolean
+ * @default false
+ */
+ "bScrollOversize": false
+ },
+
+ /**
* Array referencing the nodes which are used for the features. The
* parameters of this object match what is allowed by sDom - i.e.
* <ul>
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js
index af7fcae8..2aff4602 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config.js
@@ -22,11 +22,11 @@ oTest.fnTest(
$(document).ready( function () {
var oInit = {
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaData": [
{
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js
index 22c127ed..c37b8ed5 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_arrays_subobjects.js
@@ -24,9 +24,9 @@ $(document).ready( function () {
"aoColumns": [
null,
null,
- { "mDataProp": 2 },
- { "mDataProp": "3.version" },
- { "mDataProp": "3.grade" }
+ { "mData": 2 },
+ { "mData": "3.version" },
+ { "mData": "3.grade" }
],
"aaData": [
[
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js
index 206f8b1a..69f17648 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_deep.js
@@ -22,11 +22,11 @@ oTest.fnTest(
$(document).ready( function () {
var oInit = {
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform.inner" },
- { "mDataProp": "platform.details.0" },
- { "mDataProp": "platform.details.1" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform.inner" },
+ { "mData": "platform.details.0" },
+ { "mData": "platform.details.1" }
],
"aaData": [
{
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js
index 586ff108..2667e017 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_null_source.js
@@ -26,7 +26,7 @@ $(document).ready( function () {
null,
null,
null,
- { "mDataProp": null }
+ { "mData": null }
],
"aaData": gaaData
};
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js
index af7fcae8..2aff4602 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects.js
@@ -22,11 +22,11 @@ oTest.fnTest(
$(document).ready( function () {
var oInit = {
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaData": [
{
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js
index 06c40bc3..05fdb990 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/_zero_config_objects_subarrays.js
@@ -22,11 +22,11 @@ oTest.fnTest(
$(document).ready( function () {
var oInit = {
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "details.0" },
- { "mDataProp": "details.1" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "details.0" },
+ { "mData": "details.1" }
],
"aaData": [
{
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js
index e4600f99..f6b7e3ae 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSorting.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -46,11 +46,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['1','asc']]
} );
@@ -66,11 +66,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['1','desc']]
} );
@@ -86,11 +86,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['1','asc']]
} );
@@ -106,11 +106,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['1','desc']]
} );
@@ -126,11 +126,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','asc'], ['1','asc']]
} );
@@ -145,11 +145,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','asc'], ['1','desc']]
} );
@@ -164,11 +164,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','desc'], ['1','asc']]
} );
@@ -183,11 +183,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','desc'], ['1','desc']]
} );
@@ -203,11 +203,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','asc'], ['3','asc']]
} );
@@ -222,11 +222,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','asc'], ['3','desc']]
} );
@@ -241,11 +241,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','desc'], ['3','asc']]
} );
@@ -260,11 +260,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','desc'], ['3','desc']]
} );
@@ -279,11 +279,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSorting": [['0','asc'], ['3','asc'], ['1','asc']]
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js
index a020d731..5794cc0f 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aaSortingFixed.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -31,11 +31,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSortingFixed": [['0','asc']],
"fnInitComplete": function () {
@@ -62,11 +62,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"aaSortingFixed": [['3','asc']]
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js
index 6979926c..9f963f99 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSearchable.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -33,11 +33,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "bSearchable": false },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "bSearchable": false },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
oSettings = oTable.fnSettings();
@@ -59,11 +59,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine", "bSearchable": false },
- { "mDataProp": "browser", "bSearchable": false },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine", "bSearchable": false },
+ { "mData": "browser", "bSearchable": false },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
oSettings = oTable.fnSettings();
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js
index 8b161456..60ec2406 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bSortable.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -28,11 +28,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "bSortable": false },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "bSortable": false },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
$('#example thead th:eq(1)').click();
@@ -62,11 +62,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "bSortable": false },
- { "mDataProp": "platform" },
- { "mDataProp": "version", "bSortable": false },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "bSortable": false },
+ { "mData": "platform" },
+ { "mData": "version", "bSortable": false },
+ { "mData": "grade" }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js
index 421acd26..9032e3ac 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bUseRendered.js
@@ -12,9 +12,9 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
@@ -23,9 +23,9 @@ $(document).ready( function () {
return a.aData['browser'];
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -44,9 +44,9 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp == 0 ) {
@@ -57,9 +57,9 @@ $(document).ready( function () {
}
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
$('#example thead th:eq(1)').click();
@@ -80,7 +80,7 @@ $(document).ready( function () {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
{
- "mDataProp": "engine",
+ "mData": "engine",
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
@@ -91,7 +91,7 @@ $(document).ready( function () {
}
},
{
- "mDataProp": "browser",
+ "mData": "browser",
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp2 == 0 ) {
@@ -103,7 +103,7 @@ $(document).ready( function () {
}
},
{
- "mDataProp": "platform",
+ "mData": "platform",
"fnRender": function (a) {
if ( mTmp3 == 0 ) {
mTmp3++;
@@ -113,8 +113,8 @@ $(document).ready( function () {
}
}
},
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js
index 3ad7c0ab..638fc45a 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.bVisible.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -28,11 +28,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "bVisible": false },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "bVisible": false },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -83,11 +83,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "bVisible": false },
- { "mDataProp": "platform", "bVisible": false },
- { "mDataProp": "version" },
- { "mDataProp": "grade", "bVisible": false }
+ { "mData": "engine" },
+ { "mData": "browser", "bVisible": false },
+ { "mData": "platform", "bVisible": false },
+ { "mData": "version" },
+ { "mData": "grade", "bVisible": false }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js
index 9d06e8e3..0c1752d3 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.fnRender.js
@@ -7,17 +7,17 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"fnRender": function (a) {
mTmp++;
return a.aData['browser'];
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -36,22 +36,22 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
"fnRender": function (a) {
if ( arguments.length != 2 || typeof a.iDataRow=='undefined' ||
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' ||
- typeof a.mDataProp=='undefined' )
+ typeof a.mData=='undefined' )
{
mTmp = false;
}
return a.aData['browser'];
},
- "mDataProp": "browser"
+ "mData": "browser"
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -66,9 +66,9 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"fnRender": function (a) {
if ( a.iDataColumn != 1 )
{
@@ -77,9 +77,9 @@ $(document).ready( function () {
return a.aData['browser'];
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -94,9 +94,9 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"fnRender": function (a) {
if ( a.aData.length != 5 )
{
@@ -105,9 +105,9 @@ $(document).ready( function () {
return a.aData['browser'];
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -121,16 +121,16 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
+ { "mData": "engine" },
{
- "mDataProp": "browser",
+ "mData": "browser",
"fnRender": function (a) {
return 'unittest';
}
},
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -144,21 +144,21 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
+ { "mData": "engine" },
+ { "mData": "browser" },
{
- "mDataProp": "platform",
+ "mData": "platform",
"fnRender": function (a) {
return 'unittest1';
}
},
{
- "mDataProp": "version",
+ "mData": "version",
"fnRender": function (a) {
return 'unittest2';
}
},
- { "mDataProp": "grade" }
+ { "mData": "grade" }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js
index 7b60e6bb..d82585e3 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.iDataSort.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "iDataSort": 4 },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "iDataSort": 4 },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -50,11 +50,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "iDataSort": 4 },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade", "iDataSort": 1 }
+ { "mData": "engine" },
+ { "mData": "browser", "iDataSort": 4 },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade", "iDataSort": 1 }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js
index 68602ca0..c7efc466 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sClass.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -28,11 +28,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform", "sClass": 'unittest' },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform", "sClass": 'unittest' },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -89,11 +89,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine", "sClass": 'unittest2' },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version", "sClass": 'unittest1' },
- { "mDataProp": "grade" }
+ { "mData": "engine", "sClass": 'unittest2' },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version", "sClass": 'unittest1' },
+ { "mData": "grade" }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js
index 00cbd514..08fe49bc 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sName.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version", "sName": 'unit test' },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version", "sName": 'unit test' },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js
index ce18dbba..3f849cf4 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sTitle.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -37,11 +37,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "sTitle": 'unit test' },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "sTitle": 'unit test' },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
},
@@ -64,11 +64,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "sTitle": 'unit test 1' },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade", "sTitle": 'unit test 2' }
+ { "mData": "engine" },
+ { "mData": "browser", "sTitle": 'unit test 1' },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade", "sTitle": 'unit test 2' }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js
index 1ade76f5..91ce1004 100755
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoColumns.sWidth.js
@@ -12,11 +12,11 @@ $(document).ready( function () {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"bAutoWidth": false,
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser", "sWidth": '40%' },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser", "sWidth": '40%' },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -35,11 +35,11 @@ $(document).ready( function () {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"bAutoWidth": false,
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform", "sWidth": '20%' },
- { "mDataProp": "version", "sWidth": '30%' },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform", "sWidth": '20%' },
+ { "mData": "version", "sWidth": '30%' },
+ { "mData": "grade" }
]
} );
},
@@ -59,11 +59,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version", "sWidth": '40%' },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version", "sWidth": '40%' },
+ { "mData": "grade" }
]
} );
},
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js
index be399178..35d4e97b 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/aoSearchCols.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -39,11 +39,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"aoSearchCols": [
null,
@@ -64,11 +64,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"aoSearchCols": [
null,
@@ -89,11 +89,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
@@ -114,11 +114,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
@@ -139,11 +139,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js
index 82f2bc8d..30270540 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/asStripClasses.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -44,11 +44,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"asStripeClasses": []
} );
@@ -74,11 +74,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"asStripeClasses": [ 'test1', 'test2' ]
} );
@@ -100,11 +100,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"asStripeClasses": [ 'test1', 'test2', 'test3', 'test4' ]
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js
index 55efdaa4..64a5c0e0 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bAutoWidth.js
@@ -12,11 +12,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -93,11 +93,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bAutoWidth": false
} );
@@ -145,11 +145,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bAutoWidth": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js
index 0ee7573e..0a325f49 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bFilter.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -28,11 +28,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bFilter": false
} );
@@ -48,11 +48,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bFilter": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js
index 33d85c3c..85886237 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bInfo.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -28,11 +28,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bInfo": false
} );
@@ -48,11 +48,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bInfo": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js
index 69fc1b7c..cfba6024 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bLengthChange.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -51,11 +51,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bLengthChange": false
} );
@@ -78,11 +78,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bLengthChange": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js
index f5225643..7c2a3c98 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bPaginate.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -35,11 +35,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bPaginate": false
} );
@@ -62,11 +62,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bPaginate": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js
index 77556160..c226fe07 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bProcessing.js
@@ -12,11 +12,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -54,11 +54,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bProcessing": true
} );
@@ -99,11 +99,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bProcessing": false
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js
index c69f7d45..97689785 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bServerSide.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSort.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSort.js
index 5a827316..d5cfa965 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSort.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSort.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -70,11 +70,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bSort": false
} );
@@ -102,11 +102,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bSort": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js
index 8c00c73b..9b127cb5 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/bSortClasses.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -94,11 +94,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bSortClasses": false
} );
@@ -136,11 +136,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bSortClasses": true
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js
index a6b1725e..58c2118f 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnDrawCallback.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -35,11 +35,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnDrawCallback": function ( ) {
mPass = arguments.length;
@@ -62,11 +62,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnDrawCallback": function ( oSettings ) {
mPass = oSettings;
@@ -91,11 +91,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnDrawCallback": function ( ) {
mPass++;
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js
index 0574d5fd..321335eb 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnHeaderCallback.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -33,11 +33,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( ) {
mPass = arguments.length;
@@ -62,11 +62,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
mPass++;
@@ -93,11 +93,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
@@ -117,11 +117,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart != 0 )
@@ -144,11 +144,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart == 10 )
@@ -174,11 +174,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd == 20 )
@@ -204,11 +204,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 57 )
@@ -230,11 +230,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 9 )
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js
index fdaddd07..f700607b 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnInitComplete.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -34,11 +34,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnInitComplete": function ( ) {
mPass = arguments.length;
@@ -57,11 +57,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnInitComplete": function ( oSettings ) {
mPass = oSettings;
@@ -81,11 +81,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnInitComplete": function ( ) {
mPass++;
@@ -115,11 +115,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnInitComplete": function ( ) {
mPass = $('#example tbody tr').length;
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js
index 6c5a2f63..25c78120 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnRowCallback.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -34,11 +34,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnRowCallback": function ( nTr ) {
mPass = arguments.length;
@@ -59,11 +59,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
mPass++;
@@ -81,11 +81,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
$(nTr).addClass('unit_test');
@@ -105,11 +105,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( asData.length != 5 )
@@ -131,11 +131,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( iCount != iDrawIndex )
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js
index 8ab5e74a..f03deebd 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/fnServerData.js
@@ -10,11 +10,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnServerData": function () {
mPass = arguments.length;
@@ -31,11 +31,11 @@ $(document).ready( function () {
"bDestroy": true,
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
mPass = sUrl == "../../../examples/ajax/sources/objects.txt";
@@ -52,11 +52,11 @@ $(document).ready( function () {
"bDestroy": true,
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
mPass = aoData.length==0;
@@ -73,11 +73,11 @@ $(document).ready( function () {
"bDestroy": true,
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"fnServerData": function (sUrl, aoData, fnCallback, oSettings) {
mPass = typeof fnCallback == 'function';
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js
index 01facc9a..47264e08 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/iDisplayLength.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
@@ -34,11 +34,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"iDisplayLength": 25
} );
@@ -60,11 +60,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"iDisplayLength": 100
} );
@@ -86,11 +86,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"iDisplayLength": 23
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js
index 47abb711..3400bb58 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.oPaginate.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"sPaginationType": "full_numbers"
} );
@@ -52,11 +52,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sPaginationType": "full_numbers",
"oLanguage": {
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js
index 60b234ea..6ad42910 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfo.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -35,11 +35,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit test"
@@ -63,11 +63,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit _START_ test"
@@ -84,11 +84,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit _END_ test"
@@ -105,11 +105,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit _END_ test"
@@ -126,11 +126,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit _START_ _END_ test"
@@ -147,11 +147,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfo": "unit _START_ _END_ _TOTAL_ test"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js
index 423a0d46..116f3de6 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoEmpty.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -40,11 +40,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfoEmpty": "unit test"
@@ -75,11 +75,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfoEmpty": "unit _START_ _END_ _TOTAL_ test"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js
index 4c1c7faa..9f6687cc 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sInfoPostFix.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -35,11 +35,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfoPostFix": "unit test"
@@ -64,11 +64,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfoPostFix": "unit _START_ _END_ _TOTAL_ test"
@@ -86,11 +86,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sInfoPostFix": "unit test"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js
index 38ee98d5..6abb0416 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sLengthMenu.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -53,11 +53,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sLengthMenu": "unit test"
@@ -84,11 +84,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sLengthMenu": "unit _MENU_ test"
@@ -113,11 +113,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sLengthMenu": "_MENU_"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js
index 71e63620..5e072411 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sProcessing.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
],
"bProcessing": true
} );
@@ -36,11 +36,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"bProcessing": true,
"oLanguage": {
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js
index af741c90..57927929 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sSearch.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -42,11 +42,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sSearch": "unit test"
@@ -71,11 +71,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sSearch": ""
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js
index 69bbab6d..80d04727 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sUrl.js
@@ -10,11 +10,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -33,11 +33,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sUrl": "../../../examples/examples_support/de_DE.txt"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js
index 9c63ca1c..26e17835 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oLanguage.sZeroRecords.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -36,11 +36,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oLanguage": {
"sZeroRecords": "unit test"
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js
index 5d098f67..cdcf1103 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/oSearch.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -35,11 +35,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oSearch": {
"sSearch": "Mozilla"
@@ -64,11 +64,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oSearch": {
"sSearch": "DS",
@@ -86,11 +86,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oSearch": {
"sSearch": "Opera",
@@ -108,11 +108,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oSearch": {
"sSearch": "1.*",
@@ -130,11 +130,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"oSearch": {
"sSearch": "1.*",
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js
index c7c4545b..ea3f9836 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sAjaxSource.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sDom.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sDom.js
index cef29bb0..3cacaf3c 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sDom.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sDom.js
@@ -8,11 +8,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -53,11 +53,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": '<"wrapper"flipt>'
} );
@@ -110,11 +110,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": '<lf<t>ip>'
} );
@@ -167,11 +167,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": 'frtip'
} );
@@ -203,11 +203,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": 'lrtip'
} );
@@ -241,11 +241,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": 'lfrtp'
} );
@@ -277,11 +277,11 @@ $(document).ready( function () {
$('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sDom": 'lfrti'
} );
diff --git a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js
index 684fb83e..e3b67dac 100644
--- a/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js
+++ b/wqflask/wqflask/static/new/packages/DataTables/unit_testing/tests_onhold/5_ajax_objects/sPaginationType.js
@@ -6,11 +6,11 @@ $(document).ready( function () {
var oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumns": [
- { "mDataProp": "engine" },
- { "mDataProp": "browser" },
- { "mDataProp": "platform" },
- { "mDataProp": "version" },
- { "mDataProp": "grade" }
+ { "mData": "engine" },
+ { "mData": "browser" },
+ { "mData": "platform" },
+ { "mData": "version" },
+ { "mData": "grade" }
]
} );
var oSettings = oTable.fnSettings();
@@ -69,11 +69,11 @@ $(document).ready( function () {
oTable = $('#example').dataTable( {
"sAjaxSource": "../../../examples/ajax/sources/objects.txt",
"aoColumnDefs": [
- { "mDataProp": "engine", "aTargets": [0] },
- { "mDataProp": "browser", "aTargets": [1] },
- { "mDataProp": "platform", "aTargets": [2] },
- { "mDataProp": "version", "aTargets": [3] },
- { "mDataProp": "grade", "aTargets": [4] }
+ { "mData": "engine", "aTargets": [0] },
+ { "mData": "browser", "aTargets": [1] },
+ { "mData": "platform", "aTargets": [2] },
+ { "mData": "version", "aTargets": [3] },
+ { "mData": "grade", "aTargets": [4] }
],
"sPaginationType": "full_numbers",
"fnInitComplete": function () {
diff --git a/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.css b/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.css
new file mode 100644
index 00000000..9adaabb1
--- /dev/null
+++ b/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.css
@@ -0,0 +1,179 @@
+
+div.dataTables_length label {
+ float: left;
+ text-align: left;
+}
+
+div.dataTables_length select {
+ width: 75px;
+}
+
+div.dataTables_filter label {
+ float: right;
+}
+
+div.dataTables_info {
+ padding-top: 8px;
+}
+
+div.dataTables_paginate {
+ float: right;
+ margin: 0;
+}
+
+table.table {
+ clear: both;
+ margin-bottom: 6px !important;
+ max-width: none !important;
+}
+
+table.table thead .sorting,
+table.table thead .sorting_asc,
+table.table thead .sorting_desc,
+table.table thead .sorting_asc_disabled,
+table.table thead .sorting_desc_disabled {
+ cursor: pointer;
+ *cursor: hand;
+}
+
+table.table thead .sorting { background: url('images/sort_both.png') no-repeat center right; }
+table.table thead .sorting_asc { background: url('images/sort_asc.png') no-repeat center right; }
+table.table thead .sorting_desc { background: url('images/sort_desc.png') no-repeat center right; }
+
+table.table thead .sorting_asc_disabled { background: url('images/sort_asc_disabled.png') no-repeat center right; }
+table.table thead .sorting_desc_disabled { background: url('images/sort_desc_disabled.png') no-repeat center right; }
+
+table.dataTable th:active {
+ outline: none;
+}
+
+/* Scrolling */
+div.dataTables_scrollHead table {
+ margin-bottom: 0 !important;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+div.dataTables_scrollHead table thead tr:last-child th:first-child,
+div.dataTables_scrollHead table thead tr:last-child td:first-child {
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.dataTables_scrollBody table {
+ border-top: none;
+ margin-bottom: 0 !important;
+}
+
+div.dataTables_scrollBody tbody tr:first-child th,
+div.dataTables_scrollBody tbody tr:first-child td {
+ border-top: none;
+}
+
+div.dataTables_scrollFoot table {
+ border-top: none;
+}
+
+
+
+
+/*
+ * TableTools styles
+ */
+.table tbody tr.active td,
+.table tbody tr.active th {
+ background-color: #08C;
+ color: white;
+}
+
+.table tbody tr.active:hover td,
+.table tbody tr.active:hover th {
+ background-color: #0075b0 !important;
+}
+
+.table-striped tbody tr.active:nth-child(odd) td,
+.table-striped tbody tr.active:nth-child(odd) th {
+ background-color: #017ebc;
+}
+
+table.DTTT_selectable tbody tr {
+ cursor: pointer;
+ *cursor: hand;
+}
+
+div.DTTT .btn {
+ color: #333 !important;
+ font-size: 12px;
+}
+
+div.DTTT .btn:hover {
+ text-decoration: none !important;
+}
+
+
+ul.DTTT_dropdown.dropdown-menu a {
+ color: #333 !important; /* needed only when demo_page.css is included */
+}
+
+ul.DTTT_dropdown.dropdown-menu li:hover a {
+ background-color: #0088cc;
+ color: white !important;
+}
+
+/* TableTools information display */
+div.DTTT_print_info.modal {
+ height: 150px;
+ margin-top: -75px;
+ text-align: center;
+}
+
+div.DTTT_print_info h6 {
+ font-weight: normal;
+ font-size: 28px;
+ line-height: 28px;
+ margin: 1em;
+}
+
+div.DTTT_print_info p {
+ font-size: 14px;
+ line-height: 20px;
+}
+
+
+
+/*
+ * FixedColumns styles
+ */
+div.DTFC_LeftHeadWrapper table,
+div.DTFC_LeftFootWrapper table,
+table.DTFC_Cloned tr.even {
+ background-color: white;
+}
+
+div.DTFC_LeftHeadWrapper table {
+ margin-bottom: 0 !important;
+ border-top-right-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
+div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+div.DTFC_LeftBodyWrapper table {
+ border-top: none;
+ margin-bottom: 0 !important;
+}
+
+div.DTFC_LeftBodyWrapper tbody tr:first-child th,
+div.DTFC_LeftBodyWrapper tbody tr:first-child td {
+ border-top: none;
+}
+
+div.DTFC_LeftFootWrapper table {
+ border-top: none;
+}
+
diff --git a/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.js b/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.js
new file mode 100644
index 00000000..328733f2
--- /dev/null
+++ b/wqflask/wqflask/static/packages/DT_bootstrap/DT_bootstrap.js
@@ -0,0 +1,159 @@
+/* Set the defaults for DataTables initialisation */
+$.extend( true, $.fn.dataTable.defaults, {
+ "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
+ "sPaginationType": "bootstrap",
+ "oLanguage": {
+ "sLengthMenu": "_MENU_ records per page"
+ }
+} );
+
+
+/* Default class modification */
+$.extend( $.fn.dataTableExt.oStdClasses, {
+ "sWrapper": "dataTables_wrapper form-inline"
+} );
+
+
+/* API method to get paging information */
+$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings )
+{
+ return {
+ "iStart": oSettings._iDisplayStart,
+ "iEnd": oSettings.fnDisplayEnd(),
+ "iLength": oSettings._iDisplayLength,
+ "iTotal": oSettings.fnRecordsTotal(),
+ "iFilteredTotal": oSettings.fnRecordsDisplay(),
+ "iPage": oSettings._iDisplayLength === -1 ?
+ 0 : Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ),
+ "iTotalPages": oSettings._iDisplayLength === -1 ?
+ 0 : Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength )
+ };
+};
+
+
+/* Bootstrap style pagination control */
+$.extend( $.fn.dataTableExt.oPagination, {
+ "bootstrap": {
+ "fnInit": function( oSettings, nPaging, fnDraw ) {
+ var oLang = oSettings.oLanguage.oPaginate;
+ var fnClickHandler = function ( e ) {
+ e.preventDefault();
+ if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) {
+ fnDraw( oSettings );
+ }
+ };
+
+ $(nPaging).addClass('pagination').append(
+ '<ul>'+
+ '<li class="prev disabled"><a href="#">&larr; '+oLang.sPrevious+'</a></li>'+
+ '<li class="next disabled"><a href="#">'+oLang.sNext+' &rarr; </a></li>'+
+ '</ul>'
+ );
+ var els = $('a', nPaging);
+ $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler );
+ $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler );
+ },
+
+ "fnUpdate": function ( oSettings, fnDraw ) {
+ var iListLength = 5;
+ var oPaging = oSettings.oInstance.fnPagingInfo();
+ var an = oSettings.aanFeatures.p;
+ var i, ien, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2);
+
+ if ( oPaging.iTotalPages < iListLength) {
+ iStart = 1;
+ iEnd = oPaging.iTotalPages;
+ }
+ else if ( oPaging.iPage <= iHalf ) {
+ iStart = 1;
+ iEnd = iListLength;
+ } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) {
+ iStart = oPaging.iTotalPages - iListLength + 1;
+ iEnd = oPaging.iTotalPages;
+ } else {
+ iStart = oPaging.iPage - iHalf + 1;
+ iEnd = iStart + iListLength - 1;
+ }
+
+ for ( i=0, ien=an.length ; i<ien ; i++ ) {
+ // Remove the middle elements
+ $('li:gt(0)', an[i]).filter(':not(:last)').remove();
+
+ // Add the new list items and their event handlers
+ for ( j=iStart ; j<=iEnd ; j++ ) {
+ sClass = (j==oPaging.iPage+1) ? 'class="active"' : '';
+ $('<li '+sClass+'><a href="#">'+j+'</a></li>')
+ .insertBefore( $('li:last', an[i])[0] )
+ .bind('click', function (e) {
+ e.preventDefault();
+ oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength;
+ fnDraw( oSettings );
+ } );
+ }
+
+ // Add / remove disabled classes from the static elements
+ if ( oPaging.iPage === 0 ) {
+ $('li:first', an[i]).addClass('disabled');
+ } else {
+ $('li:first', an[i]).removeClass('disabled');
+ }
+
+ if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) {
+ $('li:last', an[i]).addClass('disabled');
+ } else {
+ $('li:last', an[i]).removeClass('disabled');
+ }
+ }
+ }
+ }
+} );
+
+
+/*
+ * TableTools Bootstrap compatibility
+ * Required TableTools 2.1+
+ */
+if ( $.fn.DataTable.TableTools ) {
+ // Set the classes that TableTools uses to something suitable for Bootstrap
+ $.extend( true, $.fn.DataTable.TableTools.classes, {
+ "container": "DTTT btn-group",
+ "buttons": {
+ "normal": "btn",
+ "disabled": "disabled"
+ },
+ "collection": {
+ "container": "DTTT_dropdown dropdown-menu",
+ "buttons": {
+ "normal": "",
+ "disabled": "disabled"
+ }
+ },
+ "print": {
+ "info": "DTTT_print_info modal"
+ },
+ "select": {
+ "row": "active"
+ }
+ } );
+
+ // Have the collection use a bootstrap compatible dropdown
+ $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, {
+ "collection": {
+ "container": "ul",
+ "button": "li",
+ "liner": "a"
+ }
+ } );
+}
+
+
+/* Table initialisation */
+$(document).ready(function() {
+ $('#example').dataTable( {
+ "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
+ "sPaginationType": "bootstrap",
+ "oLanguage": {
+ "sLengthMenu": "_MENU_ records per page"
+ }
+ } );
+} ); \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/DT_bootstrap/images b/wqflask/wqflask/static/packages/DT_bootstrap/images
new file mode 120000
index 00000000..f5f1b7d0
--- /dev/null
+++ b/wqflask/wqflask/static/packages/DT_bootstrap/images
@@ -0,0 +1 @@
+../../new/packages/DataTables/images/ \ No newline at end of file
diff --git a/wqflask/wqflask/static/packages/underscore/underscore-min.js b/wqflask/wqflask/static/packages/underscore/underscore-min.js
new file mode 100644
index 00000000..c1d9d3ae
--- /dev/null
+++ b/wqflask/wqflask/static/packages/underscore/underscore-min.js
@@ -0,0 +1 @@
+(function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,h=e.reduce,v=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,j=i.bind,w=function(n){return n instanceof w?n:this instanceof w?(this._wrapped=n,void 0):new w(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=w),exports._=w):n._=w,w.VERSION="1.4.4";var A=w.each=w.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(w.has(n,a)&&t.call(e,n[a],a,n)===r)return};w.map=w.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e[e.length]=t.call(r,n,u,i)}),e)};var O="Reduce of empty array with no initial value";w.reduce=w.foldl=w.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduce===h)return e&&(t=w.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(O);return r},w.reduceRight=w.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduceRight===v)return e&&(t=w.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=w.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(O);return r},w.find=w.detect=function(n,t,r){var e;return E(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},w.filter=w.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&(e[e.length]=n)}),e)},w.reject=function(n,t,r){return w.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},w.every=w.all=function(n,t,e){t||(t=w.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var E=w.some=w.any=function(n,t,e){t||(t=w.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};w.contains=w.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:E(n,function(n){return n===t})},w.invoke=function(n,t){var r=o.call(arguments,2),e=w.isFunction(t);return w.map(n,function(n){return(e?t:n[t]).apply(n,r)})},w.pluck=function(n,t){return w.map(n,function(n){return n[t]})},w.where=function(n,t,r){return w.isEmpty(t)?r?null:[]:w[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},w.findWhere=function(n,t){return w.where(n,t,!0)},w.max=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.max.apply(Math,n);if(!t&&w.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>=e.computed&&(e={value:n,computed:a})}),e.value},w.min=function(n,t,r){if(!t&&w.isArray(n)&&n[0]===+n[0]&&65535>n.length)return Math.min.apply(Math,n);if(!t&&w.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;e.computed>a&&(e={value:n,computed:a})}),e.value},w.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=w.random(r++),e[r-1]=e[t],e[t]=n}),e};var k=function(n){return w.isFunction(n)?n:function(t){return t[n]}};w.sortBy=function(n,t,r){var e=k(t);return w.pluck(w.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index<t.index?-1:1}),"value")};var F=function(n,t,r,e){var u={},i=k(t||w.identity);return A(n,function(t,a){var o=i.call(r,t,a,n);e(u,o,t)}),u};w.groupBy=function(n,t,r){return F(n,t,r,function(n,t,r){(w.has(n,t)?n[t]:n[t]=[]).push(r)})},w.countBy=function(n,t,r){return F(n,t,r,function(n,t){w.has(n,t)||(n[t]=0),n[t]++})},w.sortedIndex=function(n,t,r,e){r=null==r?w.identity:k(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;u>r.call(e,n[o])?i=o+1:a=o}return i},w.toArray=function(n){return n?w.isArray(n)?o.call(n):n.length===+n.length?w.map(n,w.identity):w.values(n):[]},w.size=function(n){return null==n?0:n.length===+n.length?n.length:w.keys(n).length},w.first=w.head=w.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:o.call(n,0,t)},w.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},w.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},w.rest=w.tail=w.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},w.compact=function(n){return w.filter(n,w.identity)};var R=function(n,t,r){return A(n,function(n){w.isArray(n)?t?a.apply(r,n):R(n,t,r):r.push(n)}),r};w.flatten=function(n,t){return R(n,t,[])},w.without=function(n){return w.difference(n,o.call(arguments,1))},w.uniq=w.unique=function(n,t,r,e){w.isFunction(t)&&(e=r,r=t,t=!1);var u=r?w.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:w.contains(a,r))||(a.push(r),i.push(n[e]))}),i},w.union=function(){return w.uniq(c.apply(e,arguments))},w.intersection=function(n){var t=o.call(arguments,1);return w.filter(w.uniq(n),function(n){return w.every(t,function(t){return w.indexOf(t,n)>=0})})},w.difference=function(n){var t=c.apply(e,o.call(arguments,1));return w.filter(n,function(n){return!w.contains(t,n)})},w.zip=function(){for(var n=o.call(arguments),t=w.max(w.pluck(n,"length")),r=Array(t),e=0;t>e;e++)r[e]=w.pluck(n,""+e);return r},w.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},w.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=w.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},w.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},w.range=function(n,t,r){1>=arguments.length&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=Array(e);e>u;)i[u++]=n,n+=r;return i},w.bind=function(n,t){if(n.bind===j&&j)return j.apply(n,o.call(arguments,1));var r=o.call(arguments,2);return function(){return n.apply(t,r.concat(o.call(arguments)))}},w.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},w.bindAll=function(n){var t=o.call(arguments,1);return 0===t.length&&(t=w.functions(n)),A(t,function(t){n[t]=w.bind(n[t],n)}),n},w.memoize=function(n,t){var r={};return t||(t=w.identity),function(){var e=t.apply(this,arguments);return w.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},w.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},w.defer=function(n){return w.delay.apply(w,[n,1].concat(o.call(arguments,1)))},w.throttle=function(n,t){var r,e,u,i,a=0,o=function(){a=new Date,u=null,i=n.apply(r,e)};return function(){var c=new Date,l=t-(c-a);return r=this,e=arguments,0>=l?(clearTimeout(u),u=null,a=c,i=n.apply(r,e)):u||(u=setTimeout(o,l)),i}},w.debounce=function(n,t,r){var e,u;return function(){var i=this,a=arguments,o=function(){e=null,r||(u=n.apply(i,a))},c=r&&!e;return clearTimeout(e),e=setTimeout(o,t),c&&(u=n.apply(i,a)),u}},w.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},w.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},w.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},w.after=function(n,t){return 0>=n?t():function(){return 1>--n?t.apply(this,arguments):void 0}},w.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)w.has(n,r)&&(t[t.length]=r);return t},w.values=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push(n[r]);return t},w.pairs=function(n){var t=[];for(var r in n)w.has(n,r)&&t.push([r,n[r]]);return t},w.invert=function(n){var t={};for(var r in n)w.has(n,r)&&(t[n[r]]=r);return t},w.functions=w.methods=function(n){var t=[];for(var r in n)w.isFunction(n[r])&&t.push(r);return t.sort()},w.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},w.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},w.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)w.contains(r,u)||(t[u]=n[u]);return t},w.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)null==n[r]&&(n[r]=t[r])}),n},w.clone=function(n){return w.isObject(n)?w.isArray(n)?n.slice():w.extend({},n):n},w.tap=function(n,t){return t(n),n};var I=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof w&&(n=n._wrapped),t instanceof w&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==t+"";case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;r.push(n),e.push(t);var a=0,o=!0;if("[object Array]"==u){if(a=n.length,o=a==t.length)for(;a--&&(o=I(n[a],t[a],r,e)););}else{var c=n.constructor,f=t.constructor;if(c!==f&&!(w.isFunction(c)&&c instanceof c&&w.isFunction(f)&&f instanceof f))return!1;for(var s in n)if(w.has(n,s)&&(a++,!(o=w.has(t,s)&&I(n[s],t[s],r,e))))break;if(o){for(s in t)if(w.has(t,s)&&!a--)break;o=!a}}return r.pop(),e.pop(),o};w.isEqual=function(n,t){return I(n,t,[],[])},w.isEmpty=function(n){if(null==n)return!0;if(w.isArray(n)||w.isString(n))return 0===n.length;for(var t in n)if(w.has(n,t))return!1;return!0},w.isElement=function(n){return!(!n||1!==n.nodeType)},w.isArray=x||function(n){return"[object Array]"==l.call(n)},w.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){w["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),w.isArguments(arguments)||(w.isArguments=function(n){return!(!n||!w.has(n,"callee"))}),"function"!=typeof/./&&(w.isFunction=function(n){return"function"==typeof n}),w.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},w.isNaN=function(n){return w.isNumber(n)&&n!=+n},w.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},w.isNull=function(n){return null===n},w.isUndefined=function(n){return n===void 0},w.has=function(n,t){return f.call(n,t)},w.noConflict=function(){return n._=t,this},w.identity=function(n){return n},w.times=function(n,t,r){for(var e=Array(n),u=0;n>u;u++)e[u]=t.call(r,u);return e},w.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var M={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};M.unescape=w.invert(M.escape);var S={escape:RegExp("["+w.keys(M.escape).join("")+"]","g"),unescape:RegExp("("+w.keys(M.unescape).join("|")+")","g")};w.each(["escape","unescape"],function(n){w[n]=function(t){return null==t?"":(""+t).replace(S[n],function(t){return M[n][t]})}}),w.result=function(n,t){if(null==n)return null;var r=n[t];return w.isFunction(r)?r.call(n):r},w.mixin=function(n){A(w.functions(n),function(t){var r=w[t]=n[t];w.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(w,n))}})};var N=0;w.uniqueId=function(n){var t=++N+"";return n?n+t:t},w.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,q={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},B=/\\|'|\r|\n|\t|\u2028|\u2029/g;w.template=function(n,t,r){var e;r=w.defaults({},r,w.templateSettings);var u=RegExp([(r.escape||T).source,(r.interpolate||T).source,(r.evaluate||T).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(B,function(n){return"\\"+q[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,w);var c=function(n){return e.call(this,n,w)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},w.chain=function(n){return w(n).chain()};var D=function(n){return this._chain?w(n).chain():n};w.mixin(w),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];w.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];w.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),w.extend(w.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this); \ No newline at end of file
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html
index 590f5789..71c12941 100644
--- a/wqflask/wqflask/templates/base.html
+++ b/wqflask/wqflask/templates/base.html
@@ -26,49 +26,49 @@
<!-- Navbar
================================================== -->
<div class="navbar navbar-inverse navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container">
- <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- <a class="brand" href="/">GeneNetwork</a>
- <div class="nav-collapse collapse">
- <ul class="nav">
- <li class="active">
- <a href="/">Home</a>
- </li>
- <li class="dropdown">
- <a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">
- Search <b class="caret"></b>
- </a>
- <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
- <li><a tabindex="-1" href="/webqtl/main.py?FormID=tissueCorrelation">Tissue Corrleation</a></li>
- <li><a tabindex="-1" href="/webqtl/main.py?FormID=snpBrowser">SNP Browser</a></li>
- <li class="divider"></li>
- <li><a tabindex="-1" href="/webqtl/main.py?FormID=geneWiki">Gene Wiki</a></li>
+ <div class="navbar-inner">
+ <div class="container">
+ <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="brand" href="/">GeneNetwork</a>
+ <div class="nav-collapse collapse">
+ <ul class="nav">
+ <li class="active">
+ <a href="/">Home</a>
+ </li>
+ <li class="dropdown">
+ <a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">
+ Search <b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
+ <li><a tabindex="-1" href="/webqtl/main.py?FormID=tissueCorrelation">Tissue Corrleation</a></li>
+ <li><a tabindex="-1" href="/webqtl/main.py?FormID=snpBrowser">SNP Browser</a></li>
+ <li class="divider"></li>
+ <li><a tabindex="-1" href="/webqtl/main.py?FormID=geneWiki">Gene Wiki</a></li>
+ </ul>
+ </li>
+ <li class="">
+ <a href="#">Help</a>
+ </li>
+ <li class="">
+ <a href="/whats_new">News</a>
+ </li>
+ <li class="">
+ <a href="./reference.html">References</a>
+ </li>
+ <li class="">
+ <a href="./policies">Policies</a>
+ </li>
+ <li class="">
+ <a href="./links">Links</a>
+ </li>
</ul>
- </li>
- <li class="">
- <a href="#">Help</a>
- </li>
- <li class="">
- <a href="/whats_new">News</a>
- </li>
- <li class="">
- <a href="./reference.html">References</a>
- </li>
- <li class="">
- <a href="./policies">Policies</a>
- </li>
- <li class="">
- <a href="./links">Links</a>
- </li>
- </ul>
- </div>
+ </div>
+ </div>
</div>
- </div>
</div>
{% block content %}{% endblock %}
diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html
index 40c14aaa..efbf689c 100644
--- a/wqflask/wqflask/templates/correlation_page.html
+++ b/wqflask/wqflask/templates/correlation_page.html
@@ -1,1358 +1,89 @@
- {% extends "base.html" %}
- {% block title %}Correlation{% endblock %}
- {% block content %} <!-- Start of body -->
-
- <!-- Start of body -->
- <TR>
- <TD bgColor=#eeeeee class="solidBorder">
- <Table width= "100%" cellSpacing=0 cellPadding=5>
- <TR>
- <TD height="200" width="100%" bgcolor="#eeeeee"><P class="title">Correlation Table</P>
-<FORM METHOD="POST" ACTION="/webqtl/main.py" ENCTYPE="multipart/form-data" NAME="fm_Kom6yf8U">
-
-<INPUT TYPE="hidden" NAME="VC57BL/6ByJ" VALUE="0.744">
-<INPUT TYPE="hidden" NAME="VBXD44" VALUE="0.752">
-<INPUT TYPE="hidden" NAME="VBXD45" VALUE="0.153">
-<INPUT TYPE="hidden" NAME="VBXD42" VALUE="1.22">
-<INPUT TYPE="hidden" NAME="VBXD43" VALUE="0.712">
-<INPUT TYPE="hidden" NAME="VBXD40" VALUE="0.364">
-<INPUT TYPE="hidden" NAME="VCXB4" VALUE="0.5">
-<INPUT TYPE="hidden" NAME="VBXD48" VALUE="0.36">
-<INPUT TYPE="hidden" NAME="FormID" VALUE="showDatabase">
-<INPUT TYPE="hidden" NAME="VBXD1" VALUE="0.713">
-<INPUT TYPE="hidden" NAME="VBXD2" VALUE="0.385">
-<INPUT TYPE="hidden" NAME="VBXD5" VALUE="0.907">
-<INPUT TYPE="hidden" NAME="VBXD6" VALUE="0.166">
-<INPUT TYPE="hidden" NAME="VBXD9" VALUE="0.31">
-<INPUT TYPE="hidden" NAME="VBXD8" VALUE="0.079">
-<INPUT TYPE="hidden" NAME="PWK/PhJ" VALUE="9.124">
-<INPUT TYPE="hidden" NAME="VCXB5" VALUE="1.218">
-<INPUT TYPE="hidden" NAME="VBXD33" VALUE="0.613">
-<INPUT TYPE="hidden" NAME="BXD15" VALUE="9.3">
-<INPUT TYPE="hidden" NAME="BXD16" VALUE="8.779">
-<INPUT TYPE="hidden" NAME="BXD11" VALUE="9.739">
-<INPUT TYPE="hidden" NAME="BXD12" VALUE="9.38">
-<INPUT TYPE="hidden" NAME="BXD13" VALUE="8.998">
-<INPUT TYPE="hidden" NAME="identification" VALUE="Hippocampus M430v2 BXD 06/06 PDNN : 1436869_at">
-<INPUT TYPE="hidden" NAME="VBXD39" VALUE="0.344">
-<INPUT TYPE="hidden" NAME="VBXD38" VALUE="0.082">
-<INPUT TYPE="hidden" NAME="BXD19" VALUE="8.984">
-<INPUT TYPE="hidden" NAME="VAKR/J" VALUE="0.134">
-<INPUT TYPE="hidden" NAME="VBXD51" VALUE="1.447">
-<INPUT TYPE="hidden" NAME="VBXD50" VALUE="0.086">
-<INPUT TYPE="hidden" NAME="A/J" VALUE="8.413">
-<INPUT TYPE="hidden" NAME="BXD69" VALUE="8.824">
-<INPUT TYPE="hidden" NAME="KK/HlJ" VALUE="10.486">
-<INPUT TYPE="hidden" NAME="LG/J" VALUE="8.798">
-<INPUT TYPE="hidden" NAME="VDBA/2J" VALUE="1.395">
-<INPUT TYPE="hidden" NAME="BXD8" VALUE="8.587">
-<INPUT TYPE="hidden" NAME="BXD9" VALUE="10.559">
-<INPUT TYPE="hidden" NAME="BXD6" VALUE="8.572">
-<INPUT TYPE="hidden" NAME="VNZO/HlLtJ" VALUE="0.377">
-<INPUT TYPE="hidden" NAME="BXD5" VALUE="9.21">
-<INPUT TYPE="hidden" NAME="BXD2" VALUE="9.814">
-<INPUT TYPE="hidden" NAME="VCXB13" VALUE="0.167">
-<INPUT TYPE="hidden" NAME="VCXB10" VALUE="0.156">
-<INPUT TYPE="hidden" NAME="BXD1" VALUE="9.944">
-<INPUT TYPE="hidden" NAME="BXD61" VALUE="8.374">
-<INPUT TYPE="hidden" NAME="BXD60" VALUE="10.032">
-<INPUT TYPE="hidden" NAME="BXD63" VALUE="8.93">
-<INPUT TYPE="hidden" NAME="BXD62" VALUE="9.08">
-<INPUT TYPE="hidden" NAME="BXD65" VALUE="8.994">
-<INPUT TYPE="hidden" NAME="BXD64" VALUE="10.018">
-<INPUT TYPE="hidden" NAME="BXD67" VALUE="8.498">
-<INPUT TYPE="hidden" NAME="BXD66" VALUE="9.586">
-<INPUT TYPE="hidden" NAME="BALB/cByJ" VALUE="8.402">
-<INPUT TYPE="hidden" NAME="BXD68" VALUE="9.362">
-<INPUT TYPE="hidden" NAME="BXD98" VALUE="9.224">
-<INPUT TYPE="hidden" NAME="VBXD60" VALUE="0.19">
-<INPUT TYPE="hidden" NAME="VBXD61" VALUE="0.142">
-<INPUT TYPE="hidden" NAME="VBXD62" VALUE="0.411">
-<INPUT TYPE="hidden" NAME="VBXD63" VALUE="1.003">
-<INPUT TYPE="hidden" NAME="VBXD64" VALUE="0.156">
-<INPUT TYPE="hidden" NAME="VBXD65" VALUE="0.114">
-<INPUT TYPE="hidden" NAME="VBXD66" VALUE="0.622">
-<INPUT TYPE="hidden" NAME="VPWK/PhJ" VALUE="1.299">
-<INPUT TYPE="hidden" NAME="VBXD68" VALUE="0.815">
-<INPUT TYPE="hidden" NAME="VBXD69" VALUE="0.351">
-<INPUT TYPE="hidden" NAME="VCXB11" VALUE="0.635">
-<INPUT TYPE="hidden" NAME="incparentsf1" VALUE="ON">
-<INPUT TYPE="hidden" NAME="VBXD34" VALUE="0.88">
-<INPUT TYPE="hidden" NAME="allstrainlist" VALUE="B6D2F1 D2B6F1 C57BL/6J DBA/2J BXD1 BXD2 BXD5 BXD6 BXD8 BXD9 BXD11 BXD12 BXD13 BXD14 BXD15 BXD16 BXD18 BXD19 BXD20 BXD21 BXD22 BXD23 BXD24a BXD24 BXD25 BXD27 BXD28 BXD29 BXD30 BXD31 BXD32 BXD33 BXD34 BXD35 BXD36 BXD37 BXD38 BXD39 BXD40 BXD41 BXD42 BXD43 BXD44 BXD45 BXD48 BXD49 BXD50 BXD51 BXD52 BXD53 BXD54 BXD55 BXD56 BXD59 BXD60 BXD61 BXD62 BXD63 BXD64 BXD65 BXD66 BXD67 BXD68 BXD69 BXD70 BXD71 BXD72 BXD73 BXD74 BXD75 BXD76 BXD77 BXD78 BXD79 BXD80 BXD81 BXD83 BXD84 BXD85 BXD86 BXD87 BXD88 BXD89 BXD90 BXD91 BXD92 BXD93 BXD94 BXD95 BXD96 BXD97 BXD98 BXD99 BXD100 BXD101 BXD102 BXD103 BALB/cByJ PWK/PhJ A/J KK/HlJ LG/J 129S1/SvImJ NZO/HlLtJ CAST/EiJ PWD/PhJ AKR/J CXB13 CXB12 CXB11 CXB10 WSB/EiJ C3H/HeJ CXB7 CXB6 CXB5 CXB4 CXB3 CXB2 CXB1 CXB9 CXB8 NOD/ShiLtJ C57BL/6ByJ BALB/cJ">
-<INPUT TYPE="hidden" NAME="BXD73" VALUE="9.533">
-<INPUT TYPE="hidden" NAME="BXD70" VALUE="8.786">
-<INPUT TYPE="hidden" NAME="BXD76" VALUE="8.776">
-<INPUT TYPE="hidden" NAME="BXD77" VALUE="9.306">
-<INPUT TYPE="hidden" NAME="BXD74" VALUE="10.091">
-<INPUT TYPE="hidden" NAME="BXD75" VALUE="10.072">
-<INPUT TYPE="hidden" NAME="BXD79" VALUE="8.695">
-<INPUT TYPE="hidden" NAME="VCXB6" VALUE="0.199">
-<INPUT TYPE="hidden" NAME="VCXB7" VALUE="0.559">
-<INPUT TYPE="hidden" NAME="VCXB8" VALUE="0.064">
-<INPUT TYPE="hidden" NAME="VCXB9" VALUE="0.813">
-<INPUT TYPE="hidden" NAME="VBXD79" VALUE="0.961">
-<INPUT TYPE="hidden" NAME="VBXD77" VALUE="1.375">
-<INPUT TYPE="hidden" NAME="VBXD76" VALUE="0.003">
-<INPUT TYPE="hidden" NAME="VBXD75" VALUE="0.51">
-<INPUT TYPE="hidden" NAME="VBXD74" VALUE="0.025">
-<INPUT TYPE="hidden" NAME="VBXD73" VALUE="0.806">
-<INPUT TYPE="hidden" NAME="VCXB1" VALUE="0.095">
-<INPUT TYPE="hidden" NAME="VCXB2" VALUE="0.966">
-<INPUT TYPE="hidden" NAME="VBXD70" VALUE="0.614">
-<INPUT TYPE="hidden" NAME="databaseFull" VALUE="Hippocampus Consortium M430v2 (Jun06) PDNN">
-<INPUT TYPE="hidden" NAME="MDPChoice" VALUE="1">
-<INPUT TYPE="hidden" NAME="VCXB12" VALUE="0.559">
-<INPUT TYPE="hidden" NAME="hiddenColumns" VALUE="Gene ID,Homologene ID">
-<INPUT TYPE="hidden" NAME="VCXB3" VALUE="0.377">
-<INPUT TYPE="hidden" NAME="CellID" VALUE="_">
-<INPUT TYPE="hidden" NAME="DBA/2J" VALUE="9.294">
-<INPUT TYPE="hidden" NAME="BALB/cJ" VALUE="8.937">
-<INPUT TYPE="hidden" NAME="B6D2F1" VALUE="9.113">
-<INPUT TYPE="hidden" NAME="BXD48" VALUE="9.166">
-<INPUT TYPE="hidden" NAME="NZO/HlLtJ" VALUE="8.66">
-<INPUT TYPE="hidden" NAME="BXD45" VALUE="8.38">
-<INPUT TYPE="hidden" NAME="VLG/J" VALUE="0.682">
-<INPUT TYPE="hidden" NAME="BXD43" VALUE="9.651">
-<INPUT TYPE="hidden" NAME="BXD42" VALUE="9.127">
-<INPUT TYPE="hidden" NAME="BXD40" VALUE="9.952">
-<INPUT TYPE="hidden" NAME="CAST/EiJ" VALUE="9.81">
-<INPUT TYPE="hidden" NAME="PWD/PhJ" VALUE="9.953">
-<INPUT TYPE="hidden" NAME="BXD29" VALUE="9.22">
-<INPUT TYPE="hidden" NAME="BXD28" VALUE="9.503">
-<INPUT TYPE="hidden" NAME="BXD24" VALUE="9.46">
-<INPUT TYPE="hidden" NAME="BXD27" VALUE="8.906">
-<INPUT TYPE="hidden" NAME="BXD21" VALUE="8.956">
-<INPUT TYPE="hidden" NAME="BXD20" VALUE="9.958">
-<INPUT TYPE="hidden" NAME="BXD23" VALUE="9.485">
-<INPUT TYPE="hidden" NAME="BXD22" VALUE="9.618">
-<INPUT TYPE="hidden" NAME="VPWD/PhJ" VALUE="0.33">
-<INPUT TYPE="hidden" NAME="V129S1/SvImJ" VALUE="0.123">
-<INPUT TYPE="hidden" NAME="AKR/J" VALUE="8.856">
-<INPUT TYPE="hidden" NAME="BXD97" VALUE="9.904">
-<INPUT TYPE="hidden" NAME="VB6D2F1" VALUE="0.665">
-<INPUT TYPE="hidden" NAME="VBXD32" VALUE="1.107">
-<INPUT TYPE="hidden" NAME="VBXD67" VALUE="0.538">
-<INPUT TYPE="hidden" NAME="VBXD31" VALUE="1.839">
-<INPUT TYPE="hidden" NAME="VKK/HlJ" VALUE="0.351">
-<INPUT TYPE="hidden" NAME="129S1/SvImJ" VALUE="8.201">
-<INPUT TYPE="hidden" NAME="BXD50" VALUE="9.806">
-<INPUT TYPE="hidden" NAME="BXD51" VALUE="9.502">
-<INPUT TYPE="hidden" NAME="BXD55" VALUE="9.985">
-<INPUT TYPE="hidden" NAME="VBXD19" VALUE="1.184">
-<INPUT TYPE="hidden" NAME="VC3H/HeJ" VALUE="1.796">
-<INPUT TYPE="hidden" NAME="BXD38" VALUE="8.762">
-<INPUT TYPE="hidden" NAME="BXD39" VALUE="8.541">
-<INPUT TYPE="hidden" NAME="VBXD11" VALUE="0.17">
-<INPUT TYPE="hidden" NAME="VBXD13" VALUE="0.338">
-<INPUT TYPE="hidden" NAME="VBXD12" VALUE="0.116">
-<INPUT TYPE="hidden" NAME="VBXD15" VALUE="0.983">
-<INPUT TYPE="hidden" NAME="BXD33" VALUE="8.988">
-<INPUT TYPE="hidden" NAME="VBXD16" VALUE="0.506">
-<INPUT TYPE="hidden" NAME="CXB13" VALUE="9.886">
-<INPUT TYPE="hidden" NAME="CXB12" VALUE="8.598">
-<INPUT TYPE="hidden" NAME="CXB11" VALUE="9.69">
-<INPUT TYPE="hidden" NAME="CXB10" VALUE="10.063">
-<INPUT TYPE="hidden" NAME="ProbeSetID" VALUE="_">
-<INPUT TYPE="hidden" NAME="WSB/EiJ" VALUE="10.472">
-<INPUT TYPE="hidden" NAME="VBXD83" VALUE="0.279">
-<INPUT TYPE="hidden" NAME="VBXD80" VALUE="1.1">
-<INPUT TYPE="hidden" NAME="D2B6F1" VALUE="9.825">
-<INPUT TYPE="hidden" NAME="C3H/HeJ" VALUE="8.835">
-<INPUT TYPE="hidden" NAME="VBXD84" VALUE="0.038">
-<INPUT TYPE="hidden" NAME="VBXD85" VALUE="0.587">
-<INPUT TYPE="hidden" NAME="VBXD89" VALUE="0.286">
-<INPUT TYPE="hidden" NAME="VNOD/ShiLtJ" VALUE="0.325">
-<INPUT TYPE="hidden" NAME="fullname" VALUE="HC_M2_0606_P::1436869_at">
-<INPUT TYPE="hidden" NAME="RISet" VALUE="BXD">
-<INPUT TYPE="hidden" NAME="BXD83" VALUE="9.893">
-<INPUT TYPE="hidden" NAME="BXD80" VALUE="9.106">
-<INPUT TYPE="hidden" NAME="BXD87" VALUE="9.022">
-<INPUT TYPE="hidden" NAME="BXD86" VALUE="8.339">
-<INPUT TYPE="hidden" NAME="BXD85" VALUE="9.818">
-<INPUT TYPE="hidden" NAME="BXD84" VALUE="9.195">
-<INPUT TYPE="hidden" NAME="BXD89" VALUE="9.539">
-<INPUT TYPE="hidden" NAME="CXB7" VALUE="9.136">
-<INPUT TYPE="hidden" NAME="CXB6" VALUE="9.885">
-<INPUT TYPE="hidden" NAME="CXB5" VALUE="9.853">
-<INPUT TYPE="hidden" NAME="CXB4" VALUE="8.698">
-<INPUT TYPE="hidden" NAME="CXB3" VALUE="9.356">
-<INPUT TYPE="hidden" NAME="CXB2" VALUE="9.208">
-<INPUT TYPE="hidden" NAME="CXB1" VALUE="8.826">
-<INPUT TYPE="hidden" NAME="VBXD96" VALUE="0.529">
-<INPUT TYPE="hidden" NAME="VBXD99" VALUE="0.363">
-<INPUT TYPE="hidden" NAME="VBXD98" VALUE="0.732">
-<INPUT TYPE="hidden" NAME="VC57BL/6J" VALUE="0.869">
-<INPUT TYPE="hidden" NAME="CXB9" VALUE="9.341">
-<INPUT TYPE="hidden" NAME="CXB8" VALUE="10.14">
-<INPUT TYPE="hidden" NAME="NOD/ShiLtJ" VALUE="9.41">
-<INPUT TYPE="hidden" NAME="VA/J" VALUE="0.046">
-<INPUT TYPE="hidden" NAME="BXD34" VALUE="9.66">
-<INPUT TYPE="hidden" NAME="C57BL/6ByJ" VALUE="9.272">
-<INPUT TYPE="hidden" NAME="VBXD90" VALUE="0.084">
-<INPUT TYPE="hidden" NAME="BXD32" VALUE="9.313">
-<INPUT TYPE="hidden" NAME="VBXD93" VALUE="0.3">
-<INPUT TYPE="hidden" NAME="VBALB/cJ" VALUE="0.766">
-<INPUT TYPE="hidden" NAME="VBXD87" VALUE="0.807">
-<INPUT TYPE="hidden" NAME="VBXD92" VALUE="1.298">
-<INPUT TYPE="hidden" NAME="VD2B6F1" VALUE="0.865">
-<INPUT TYPE="hidden" NAME="BXD99" VALUE="9.598">
-<INPUT TYPE="hidden" NAME="BXD94" VALUE="9.024">
-<INPUT TYPE="hidden" NAME="BXD96" VALUE="8.712">
-<INPUT TYPE="hidden" NAME="BXD31" VALUE="9.288">
-<INPUT TYPE="hidden" NAME="BXD90" VALUE="8.372">
-<INPUT TYPE="hidden" NAME="BXD92" VALUE="9.05">
-<INPUT TYPE="hidden" NAME="BXD93" VALUE="8.663">
-<INPUT TYPE="hidden" NAME="BXD44" VALUE="9.335">
-<INPUT TYPE="hidden" NAME="VBXD97" VALUE="0.51">
-<INPUT TYPE="hidden" NAME="database" VALUE="HC_M2_0606_P">
-<INPUT TYPE="hidden" NAME="C57BL/6J" VALUE="9.245">
-<INPUT TYPE="hidden" NAME="VBXD24" VALUE="1.307">
-<INPUT TYPE="hidden" NAME="VBXD27" VALUE="0.682">
-<INPUT TYPE="hidden" NAME="VBXD20" VALUE="2.484">
-<INPUT TYPE="hidden" NAME="VBXD21" VALUE="1.009">
-<INPUT TYPE="hidden" NAME="VBXD22" VALUE="1.366">
-<INPUT TYPE="hidden" NAME="VBXD23" VALUE="1.088">
-<INPUT TYPE="hidden" NAME="VBXD28" VALUE="0.355">
-<INPUT TYPE="hidden" NAME="VBXD29" VALUE="0.866">
-<INPUT TYPE="hidden" NAME="VWSB/EiJ" VALUE="0.993">
-<INPUT TYPE="hidden" NAME="X_geneSymbol" VALUE="">
-<INPUT TYPE="hidden" NAME="Y_geneSymbol" VALUE="">
-<INPUT TYPE="hidden" NAME="rankOrder" VALUE="0">
-<INPUT TYPE="hidden" NAME="TissueProbeSetFreezeId" VALUE="1">
-<INPUT TYPE="hidden" NAME="idtype" VALUE="">
-<INPUT TYPE="hidden" NAME="llid_list" VALUE="">
-<INPUT TYPE="hidden" NAME="list" VALUE="">
-<INPUT TYPE="hidden" NAME="id_list" VALUE="">
-<INPUT TYPE="hidden" NAME="significancelevel" VALUE="Top10">
-<INPUT TYPE="hidden" NAME="client" VALUE="">
-<INPUT TYPE="hidden" NAME="id_value" VALUE="">
-<INPUT TYPE="hidden" NAME="correlation" VALUE="">
-<INPUT TYPE="hidden" NAME="org" VALUE="Mus musculus">
-<INPUT TYPE="hidden" NAME="ref_type" VALUE="affy_mouse430_2">
-<INPUT TYPE="hidden" NAME="cat_type" VALUE="GO">
-<INPUT TYPE="hidden" NAME="species" VALUE="">
-<INPUT TYPE="hidden" NAME="id_type" VALUE="affy_mouse430_2">
-<INPUT TYPE="hidden" NAME="ShowStrains" VALUE="1">
-<INPUT TYPE="hidden" NAME="ShowLine" VALUE="1"><P>Values of Record 1436869_at in the <A HREF="/dbdoc/HC_M2_0606_P.html" TARGET="_blank" class="fwn">Hippocampus Consortium M430v2 (Jun06) PDNN</A> database were compared to all 45101 records in the <A HREF="/dbdoc/HC_M2_0606_P.html" TARGET="_blank" class="fwn">Hippocampus Consortium M430v2 (Jun06) PDNN</A> database. The top 500 correlations ranked by the Genetic Correlation (Pearson's r) are displayed. You can resort this list using the small arrowheads in the top row.<BR>Click the correlation values to generate scatter plots. Select the Record ID to open the Trait Data and Analysis form. Select the symbol to open NCBI Entrez.</P><BR><TABLE align="Left" border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD><TABLE align="Left" border="0" cellpadding="0" cellspacing="0" width="90%"><TR><TD><TABLE align="Left" border="0" cellpadding="0" cellspacing="2" height="80"><TR align="left"><TD width="77"><A HREF="#redirect" onClick="checkAll(document.getElementsByName('fm_Kom6yf8U')[0]);"><IMG src="/images/select_all2_final.jpg" alt="Select All" name="selectall" style="border:none;" title="Select All"></A></TD><TD width="77"><A HREF="#redirect" onClick="checkNone(document.getElementsByName('fm_Kom6yf8U')[0]); return false;"><IMG src="/images/select_none2_final.jpg" alt="Select None" style="border:none;" title="Select None"></A></TD><TD width="77"><A HREF="#redirect" onClick="checkInvert(document.getElementsByName('fm_Kom6yf8U')[0]);"><IMG src="/images/invert_selection2_final.jpg" alt="Invert Selection" name="selectinvert" style="border:none;" title="Invert Selection"></A></TD><TD width="77"><A HREF="#redirect" onClick="addRmvSelection('BXD', document.getElementsByName('fm_Kom6yf8U')[0], 'addToSelection');"><IMG src="/images/add_collection1_final.jpg" alt="Add To Collection" name="addselect" style="border:none;" title="Add To Collection"></A></TD><TD width="94">&nbsp;&nbsp;&nbsp;<A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'ODE');"><IMG src="/images/ODE_logo_final.jpg" alt="Gene Weaver" name="GeneWeaver" style="border:none" title="Gene Weaver"></A></TD><TD width="77"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'GCAT');"><IMG src="/images/GCAT_logo_final.jpg" alt="GCAT" name="GCAT" style="border:none" title="GCAT"></A></TD><TD width="77"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'GOTree');"><IMG src="/images/webgestalt_icon_final.jpg" alt="Gene Set Analysis Toolkit" name="webgestalt" style="border:none" title="Gene Set Analysis Toolkit"></A></TD></TR><TR><TD>&nbsp;Select</TD><TD>Deselect</TD><TD>&nbsp;Invert</TD><TD>&nbsp;&nbsp;&nbsp;Add</TD><TD>Gene Weaver</TD><TD>&nbsp;&nbsp;GCAT</TD><TD>Gene Set</TD></TR></TABLE></TD></TR><TR><TD><TABLE align="Left" border="0" cellpadding="0" cellspacing="2" height="80" width="480"><TR align="left"><TD width="16.7%"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'networkGraph');"><IMG src="/images/network_graph1_final.jpg" alt="Network Graphs" name="mintmap" style="border:none;" title="Network Graphs"></A></TD><TD width="16.7%"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'corMatrix');"><IMG src="/images/correlation_matrix1_final.jpg" alt="Correlation Matrix and PCA" style="border:none;" title="Correlation Matrix and PCA"></A></TD><TD width="16.7%"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'partialCorrInput');"><IMG src="/images/partial_correlation_final.jpg" alt="Partial Correlation" name="partialCorr" style="border:none;" title="Partial Correlation"></A></TD><TD width="16.7%"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'compCorr');"><IMG src="/images/compare_correlates2_final.jpg" alt="Compare Correlates" style="border:none;" title="Compare Correlates"></A></TD><TD width="16.7%"><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'showIntMap');"><IMG src="/images/multiple_interval_mapping1_final.jpg" alt="Multiple Interval Mapping" name="mintmap" style="border:none;" title="Multiple Interval Mapping"></A></TD><TD><A HREF="#redirect" onClick="databaseFunc(document.getElementsByName('fm_Kom6yf8U')[0], 'heatmap');"><IMG src="/images/heatmap2_final.jpg" alt="QTL Heat Map and Clustering" name="mintmap" style="border:none;" title="QTL Heatmap and Clustering"></A></TD></TR><TR><TD>&nbsp;Graph</TD><TD>&nbsp;Matrix</TD><TD>&nbsp;Partial</TD><TD>Compare</TD><TD>QTL Map</TD><TD>Heat Map</TD></TR></TABLE></TD><BR></TR><TR><TD>&nbsp;</TD></TR><TR><TD><TABLE align="Left" border="0" cellpadding="0" cellspacing="0"><TR><TD><DIV class="toggleShowHide">
-<INPUT TYPE="button" NAME="options" class="toggle" VALUE="More Options"></DIV></TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-<INPUT TYPE="button" NAME="Default_Name" class="button" VALUE="Download Table" onClick="location.href='/tmp/Corr_MoI8i6VA.xls'"></TD></TR></TABLE></TD></TR><TR><TD>&nbsp;</TD></TR><TR class="extra_options" style="display:none;"><TD><SPAN class="bd1 cbddf fs11">
-<INPUT TYPE="button" NAME="selecttraits" class="button" VALUE="Select Traits" onClick="checkTraits(this.form);"> with r &gt;
-<INPUT TYPE="text" NAME="selectgt" VALUE="-1.0" SIZE=6 MAXLENGTH=10 onChange="checkNumeric(this,1.0,'-1.0','gthan','greater than filed')"> <SELECT NAME="selectandor" SIZE=1>
-<OPTION Value="and" SELECTED>AND</OPTION>
-<OPTION Value="or">OR</OPTION>
-</SELECT>
- r &lt;
-<INPUT TYPE="text" NAME="selectlt" VALUE="1.0" SIZE=6 MAXLENGTH=10 onChange="checkNumeric(this,-1.0,'1.0','lthan','less than field')"></SPAN><BR></TD></TR><TR><TD>&nbsp;</TD></TR><TR class="extra_options" style="display:none;"><TD><SPAN class="bd1 cbddf fs11">
-<INPUT TYPE="hidden" NAME="filename" VALUE="Corr_MoI8i6VA">
-<INPUT TYPE="hidden" NAME="strainIds" VALUE="[1, 1100, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 29, 30, 31, 35, 36, 37, 39, 98, 99, 100, 103, 105, 106, 110, 115, 116, 117, 118, 119, 120, 121, 40, 41, 124, 125, 128, 129, 130, 131, 132, 134, 135, 138, 139, 140, 141, 142, 144, 145, 147, 148, 149, 487, 919, 920, 922]">
-<INPUT TYPE="hidden" NAME="vals" VALUE="[9.1129999999999995, 9.8249999999999993, 9.2449999999999992, 9.2940000000000005, 9.9440000000000008, 9.8140000000000001, 9.2100000000000009, 8.5719999999999992, 8.5869999999999997, 10.558999999999999, 9.7390000000000008, 9.3800000000000008, 8.9979999999999993, 9.3000000000000007, 8.7789999999999999, 8.984, 9.9580000000000002, 8.9559999999999995, 9.6180000000000003, 9.4849999999999994, 9.4600000000000009, 8.9060000000000006, 9.5030000000000001, 9.2200000000000006, 9.2880000000000003, 9.3130000000000006, 8.9879999999999995, 9.6600000000000001, 8.7620000000000005, 8.5410000000000004, 9.952, 9.1270000000000007, 9.6509999999999998, 9.3350000000000009, 8.3800000000000008, 9.1660000000000004, 9.8059999999999992, 9.5020000000000007, 9.9849999999999994, 10.032, 8.3740000000000006, 9.0800000000000001, 8.9299999999999997, 10.018000000000001, 8.9939999999999998, 9.5860000000000003, 8.4979999999999993, 9.3620000000000001, 8.8239999999999998, 8.7859999999999996, 9.5329999999999995, 10.090999999999999, 10.071999999999999, 8.7759999999999998, 9.3059999999999992, 8.6950000000000003, 9.1059999999999999, 9.8930000000000007, 9.1950000000000003, 9.8179999999999996, 8.3390000000000004, 9.0220000000000002, 9.5389999999999997, 8.3719999999999999, 9.0500000000000007, 8.6630000000000003, 9.0239999999999991, 8.7119999999999997, 9.9039999999999999, 9.2240000000000002, 9.5980000000000008]">
-<INPUT TYPE="button" NAME="Default_Name" class="button" VALUE="Add Correlation" onClick="xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', (getquerystring(this.form)))">with<SELECT NAME="customizer" SIZE=1>
-<OPTGROUP LABEL="Brain mRNA ------">
-<OPTION Value="123">UCHSC BXD Whole Brain M430 2.0 (Nov06) RMA
-</OPTGROUP>
-
-<OPTGROUP LABEL="Cerebellum mRNA ------">
-<OPTION Value="71">GE-NIAAA Cerebellum mRNA M430v2 (May05) MAS5
-<OPTION Value="73">GE-NIAAA Cerebellum mRNA M430v2 (May05) PDNN
-<OPTION Value="72">GE-NIAAA Cerebellum mRNA M430v2 (May05) RMA
-</OPTGROUP>
-
-<OPTGROUP LABEL="Liver mRNA ------">
-<OPTION Value="312">GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Females **
-<OPTION Value="311">GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Males **
-<OPTION Value="310">GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Both Sexes **
-<OPTION Value="309">GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Females **
-<OPTION Value="308">GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Males **
-<OPTION Value="307">GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Both Sexes **
-</OPTGROUP>
-
-<OPTGROUP LABEL="Striatum mRNA ------">
-<OPTION Value="74">HBP Rosen Striatum M430V2 (Apr05) MAS5 Clean
-<OPTION Value="69">HBP Rosen Striatum M430V2 (Apr05) RMA Clean
-<OPTION Value="68">HBP Rosen Striatum M430V2 (Apr05) PDNN Clean
-<OPTION Value="67">HBP Rosen Striatum M430V2 (Apr05) SScore
-<OPTION Value="66">HBP Rosen Striatum M430V2 (Apr05) RMA Orig
-</OPTGROUP>
-
-<OPTGROUP LABEL="Kidney mRNA ------">
-<OPTION Value="240">Mouse kidney M430v2 Male (Aug06) RMA
-<OPTION Value="239">Mouse kidney M430v2 Female (Aug06) RMA
-<OPTION Value="118">Mouse kidney M430v2 Sex Balanced (Aug06) RMA
-<OPTION Value="117">Mouse Kidney M430v2 Sex Balanced (Aug06) PDNN
-<OPTION Value="115">Mouse Kidney M430v2 (Jul06) RMA
-<OPTION Value="116">Mouse Kidney M430v2 (Jul06) PDNN
-</OPTGROUP>
-
-<OPTGROUP LABEL="Hippocampus mRNA ------">
-<OPTION Value="111">Hippocampus Consortium M430v2 (Jun06) MAS5
-<OPTION Value="110">Hippocampus Consortium M430v2 (Jun06) RMA
-</OPTGROUP>
-
-<OPTGROUP LABEL="Eye mRNA ------">
-<OPTION Value="207">Eye M430v2 (Sep08) RMA
-<OPTION Value="10">Eye M430v2 No Mutant/Mutant (Aug12) RMA **
-<OPTION Value="261">Eye M430v2 Mutant Gpnmb (Sep08) RMA **
-<OPTION Value="262">Eye M430v2 WT Gpnmb (Sep08) RMA **
-<OPTION Value="278">Eye M430v2 Mutant Tyrp1 (Sep08) RMA **
-<OPTION Value="382">Eye M430v2 WT WT (Sep08) RMA **
-<OPTION Value="279">Eye M430v2 WT Tyrp1 (Sep08) RMA **
-<OPTION Value="360">BXD Glaucoma Affy M430 2.0 Trial (Sep11) RMA **
-</OPTGROUP>
-
-<OPTGROUP LABEL="T Cell (regulatory) mRNA ------">
-<OPTION Value="122">HZI Treg M430v2 (Feb11) RMA
-</OPTGROUP>
-
-<OPTGROUP LABEL="Prefrontal Cortex mRNA ------">
-<OPTION Value="137">VCU BXD PFC Et vs Sal M430 2.0 (Dec06) Sscore
-<OPTION Value="136">VCU BXD PFC EtOH M430 2.0 (Dec06) RMA
-<OPTION Value="135">VCU BXD PFC Sal M430 2.0 (Dec06) RMA
-<OPTION Value="301">VCU BXD PFC CIE Air M430 2.0 (Jan11) RMA **
-<OPTION Value="300">VCU BXD PFC CIE EtOH M430 2.0 (Jan11) RMA **
-<OPTION Value="299">VCU BXD PFC EtOH vs CIE Air M430 2.0 (Jan11) Sscore **
-</OPTGROUP>
-
-<OPTGROUP LABEL="Spleen mRNA ------">
-<OPTION Value="227">IoP Affy MOE 430v2 Spleen (May09) RMA
-</OPTGROUP>
-
-<OPTGROUP LABEL="Nucleus Accumbens mRNA ------">
-<OPTION Value="156">VCU BXD NA Sal M430 2.0 (Oct07) RMA
-<OPTION Value="155">VCU BXD NA EtOH M430 2.0 (Oct07) RMA **
-<OPTION Value="154">VCU BXD NA Et vs Sal M430 2.0 (Oct07) Sscore **
-</OPTGROUP>
-
-<OPTGROUP LABEL="Lung mRNA ------">
-<OPTION Value="160">HZI Lung M430v2 (Apr08) RMA
-<OPTION Value="161">HZI Lung M430v2 (Apr08) MAS5
-</OPTGROUP>
-
-<OPTGROUP LABEL="Ventral Tegmental Area mRNA ------">
-<OPTION Value="229">VCU BXD VTA EtOH M430 2.0 (Jun09) RMA **
-<OPTION Value="228">VCU BXD VTA Sal M430 2.0 (Jun09) RMA **
-<OPTION Value="230">VCU BXD VTA Et vs Sal M430 2.0 (Jun09) Sscore **
-</OPTGROUP>
-
-<OPTGROUP LABEL="T Cell (helper) mRNA ------">
-<OPTION Value="319">HZI Thelp M430v2 (Feb11) RMA
-</OPTGROUP>
-
-</SELECT>
-</SPAN><BR><BR></TD></TR></TABLE></TD></TR><TR><TD><DIV id="sortable"><TABLE class="collap b2" cellpadding="5" cellspacing="1"><TR><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"> </TD><TD class="fs13 fwb ffl b1 cw cbrb">Record<BR>ID<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Record ID&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Record ID&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb">Symbol<BR><BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Symbol&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Symbol&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb">Description<BR><BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Description&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Description&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb">Location<BR>Chr and Mb<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Location (Chr: Mb)&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Location (Chr: Mb)&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb">Mean<BR>Expr<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Mean Expr&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Mean Expr&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON">Max<BR>LRS<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Max LRS&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Max LRS&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON">Max LRS Location<BR>Chr and Mb<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Max LRS Location (Chr: Mb)&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Max LRS Location (Chr: Mb)&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"><A HREF="/correlationAnnotation.html#genetic_r" TARGET="_blank"><SPAN class="fs13 fwb ffl cw">Sample<BR>r<SUP style="color:#f00"> ?</SUP><BR></SPAN></A><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Sample r&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Sample r&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb">N<BR>Cases<BR><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=N Cases&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=N Cases&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"><A HREF="/correlationAnnotation.html#genetic_p_r" TARGET="_blank"><SPAN class="fs13 fwb ffl cw">Sample<BR>p(r)<SUP style="color:#f00"> ?</SUP><BR></SPAN></A><DIV style="float: bottom;"><IMG src="/images/sortupon.gif" alt="sortupon.gif" border="0"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Sample p(r)&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"><A HREF="/correlationAnnotation.html#literatureCorr" TARGET="_blank"><SPAN class="fs13 fwb ffl cw">Lit<BR>Corr<SUP style="color:#f00"> ?</SUP><BR></SPAN></A><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Lit Corr&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Lit Corr&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"><A HREF="/correlationAnnotation.html#tissue_r" TARGET="_blank"><SPAN class="fs13 fwb ffl cw">Tissue<BR>r<SUP style="color:#f00"> ?</SUP><BR></SPAN></A><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Tissue r&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Tissue r&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD><TD class="fs13 fwb ffl b1 cw cbrb" nowrap="ON"><A HREF="/correlationAnnotation.html#tissue_p_r" TARGET="_blank"><SPAN class="fs13 fwb ffl cw">Tissue<BR>p(r)<SUP style="color:#f00"> ?</SUP><BR></SPAN></A><DIV style="float: bottom;"><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Tissue p(r)&order=up&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortup.gif" alt="sortup.gif" border="0"></A><A HREF="javascript:xmlhttpPost('/webqtl/main.py?FormID=AJAX_table', 'sortable', 'sort=Tissue p(r)&order=down&file=Corr_MoI8i6VA&tableID=sortable&addIndex=1&hiddenColumns=Gene ID,Homologene ID')"><IMG src="/images/sortdown.gif" alt="sortdown.gif" border="0"></A></DIV></TD></TR><TR id="HC_M2_0606_P::1436869_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">1
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436869_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436869_at')" class="fs12 fwn">1436869_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20423" TARGET="_blank" class="fs12 fwn">Shh</A></TD><TD class="fs12 fwn b1 c222">sonic hedgehog; mid distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 28.783695</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.279</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436869_at')" class="fs12 fwn ffl">1.000</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">1.000</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Shh',0)" class="fs12 fwn ff1">1.000</A></TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1434987_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">2
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1434987_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1434987_at')" class="fs12 fwn">1434987_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11669" TARGET="_blank" class="fs12 fwn">Aldh2</A></TD><TD class="fs12 fwn b1 c222">aldehyde dehydrogenase 2, mitochondrial; last two exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 122.018010</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.453</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1434987_at')" class="fs12 fwn ffl">0.973</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.237</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Aldh2',0)" class="fs12 fwn ff1">0.144</A></TD><TD class="fs12 fwn b1 c222" align="right">0.483</TD></TR><TR id="HC_M2_0606_P::1420293_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">3
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420293_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420293_at')" class="fs12 fwn">1420293_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=210992" TARGET="_blank" class="fs12 fwn">Aytl2</A></TD><TD class="fs12 fwn b1 c222">acyltransferase like 2; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 73.653674</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.492</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420293_at')" class="fs12 fwn ffl">0.959</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.227</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Aytl2',0)" class="fs12 fwn ff1">0.164</A></TD><TD class="fs12 fwn b1 c222" align="right">0.424</TD></TR><TR id="HC_M2_0606_P::1459623_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">4
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459623_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459623_at')" class="fs12 fwn">1459623_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=A630075K04Rik" TARGET="_blank" class="fs12 fwn">A630075K04Rik</A></TD><TD class="fs12 fwn b1 c222">A630075K04Rik; intergenic sequence</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 156.628161</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.418</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459623_at')" class="fs12 fwn ffl">0.958</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A630075K04Rik',0)" class="fs12 fwn ff1">-0.190</A></TD><TD class="fs12 fwn b1 c222" align="right">0.352</TD></TR><TR id="HC_M2_0606_P::1449781_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">5
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449781_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449781_at')" class="fs12 fwn">1449781_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AA517650" TARGET="_blank" class="fs12 fwn">AA517650</A></TD><TD class="fs12 fwn b1 c222">AA517650</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 47.454837</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.331</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449781_at')" class="fs12 fwn ffl">0.955</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1434988_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">6
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1434988_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1434988_x_at')" class="fs12 fwn">1434988_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11669" TARGET="_blank" class="fs12 fwn">Aldh2</A></TD><TD class="fs12 fwn b1 c222">aldehyde dehydrogenase 2, mitochondrial</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 122.017760</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.372</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1434988_x_at')" class="fs12 fwn ffl">0.954</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.237</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Aldh2',0)" class="fs12 fwn ff1">0.144</A></TD><TD class="fs12 fwn b1 c222" align="right">0.483</TD></TR><TR id="HC_M2_0606_P::1458048_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">7
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458048_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458048_at')" class="fs12 fwn">1458048_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=327899" TARGET="_blank" class="fs12 fwn">6720406K03</A></TD><TD class="fs12 fwn b1 c222">hypothetical protein 6720406K03</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 31.995536</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.825</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458048_at')" class="fs12 fwn ffl">0.954</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1455707_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">8
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1455707_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1455707_at')" class="fs12 fwn">1455707_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=223332" TARGET="_blank" class="fs12 fwn">C130037N17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C130037N17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 8.996490</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.988</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1455707_at')" class="fs12 fwn ffl">0.953</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1454251_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">9
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454251_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454251_at')" class="fs12 fwn">1454251_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73304" TARGET="_blank" class="fs12 fwn">1700034J04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700034J04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 11.228314</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.108</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454251_at')" class="fs12 fwn ffl">0.951</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1415862_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">10
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1415862_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1415862_at')" class="fs12 fwn">1415862_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22178" TARGET="_blank" class="fs12 fwn">Tyrp1</A></TD><TD class="fs12 fwn b1 c222">tyrosinase-related protein 1 (brown locus, glaucoma-associated pigment epithelium catalase); last three exons and proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 80.492560</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.424</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1415862_at')" class="fs12 fwn ffl">0.948</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.310</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tyrp1',0)" class="fs12 fwn ff1">-0.027</A></TD><TD class="fs12 fwn b1 c222" align="right">0.894</TD></TR><TR id="HC_M2_0606_P::1444984_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">11
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444984_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444984_at')" class="fs12 fwn">1444984_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97858" TARGET="_blank" class="fs12 fwn">C77649</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C77649</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 32.833502</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.003</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444984_at')" class="fs12 fwn ffl">0.946</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1457982_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">12
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457982_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457982_at')" class="fs12 fwn">1457982_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78415" TARGET="_blank" class="fs12 fwn">1700052M18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700052M18 gene; non-coding, well expressed (hippocampus) antisense sequence in promoter of Gm1564</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 102.526336</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.594</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457982_at')" class="fs12 fwn ffl">0.945</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421186_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">13
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421186_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421186_at')" class="fs12 fwn">1421186_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12772" TARGET="_blank" class="fs12 fwn">Ccr2</A></TD><TD class="fs12 fwn b1 c222">chemokine (C-C motif) receptor 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 124.022699</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.939</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421186_at')" class="fs12 fwn ffl">0.944</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.327</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ccr2',0)" class="fs12 fwn ff1">-0.121</A></TD><TD class="fs12 fwn b1 c222" align="right">0.555</TD></TR><TR id="HC_M2_0606_P::1438549_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">14
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438549_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438549_a_at')" class="fs12 fwn">1438549_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=27364" TARGET="_blank" class="fs12 fwn">Srr</A></TD><TD class="fs12 fwn b1 c222">serine racemase; last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 74.721741</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.788</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438549_a_at')" class="fs12 fwn ffl">0.944</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.331</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Srr',0)" class="fs12 fwn ff1">-0.113</A></TD><TD class="fs12 fwn b1 c222" align="right">0.582</TD></TR><TR id="HC_M2_0606_P::1420604_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">15
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420604_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420604_at')" class="fs12 fwn">1420604_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15209" TARGET="_blank" class="fs12 fwn">Hesx1</A></TD><TD class="fs12 fwn b1 c222">homeo box gene expressed in ES cells</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 27.814616</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.073</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420604_at')" class="fs12 fwn ffl">0.943</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.471</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hesx1',0)" class="fs12 fwn ff1">-0.123</A></TD><TD class="fs12 fwn b1 c222" align="right">0.549</TD></TR><TR id="HC_M2_0606_P::1444022_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">16
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444022_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444022_at')" class="fs12 fwn">1444022_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66209" TARGET="_blank" class="fs12 fwn">1110054O05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1110054O05; putative exon (from ESTs)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 14.943731</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.380</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444022_at')" class="fs12 fwn ffl">0.943</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.156</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1110054O05Rik',0)" class="fs12 fwn ff1">0.444</A></TD><TD class="fs12 fwn b1 c222" align="right">0.023</TD></TR><TR id="HC_M2_0606_P::1439404_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">17
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439404_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439404_x_at')" class="fs12 fwn">1439404_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22764" TARGET="_blank" class="fs12 fwn">Zfx</A></TD><TD class="fs12 fwn b1 c222">zinc finger protein X-linked; exons 5 and 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 91.326109</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.499</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439404_x_at')" class="fs12 fwn ffl">0.942</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.317</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zfx',0)" class="fs12 fwn ff1">0.100</A></TD><TD class="fs12 fwn b1 c222" align="right">0.626</TD></TR><TR id="HC_M2_0606_P::1420228_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">18
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420228_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420228_at')" class="fs12 fwn">1420228_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=23808" TARGET="_blank" class="fs12 fwn">Ash2l</A></TD><TD class="fs12 fwn b1 c222">ash2 (absent, small, or homeotic) 2-like (histone H3-K4 methylation); antisense in distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 26.927431</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.349</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420228_at')" class="fs12 fwn ffl">0.942</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.227</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ash2l',0)" class="fs12 fwn ff1">-0.214</A></TD><TD class="fs12 fwn b1 c222" align="right">0.294</TD></TR><TR id="HC_M2_0606_P::1424612_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">19
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1424612_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1424612_at')" class="fs12 fwn">1424612_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=223473" TARGET="_blank" class="fs12 fwn">9330161F08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 9330161F08 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 34.504722</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.356</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1424612_at')" class="fs12 fwn ffl">0.942</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.145</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425815_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">20
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425815_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425815_a_at')" class="fs12 fwn">1425815_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15366" TARGET="_blank" class="fs12 fwn">Hmmr</A></TD><TD class="fs12 fwn b1 c222">hyaluronan mediated motility receptor (RHAMM)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 40.514973</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.475</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425815_a_at')" class="fs12 fwn ffl">0.941</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.374</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hmmr',0)" class="fs12 fwn ff1">-0.222</A></TD><TD class="fs12 fwn b1 c222" align="right">0.277</TD></TR><TR id="HC_M2_0606_P::1421367_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">21
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421367_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421367_at')" class="fs12 fwn">1421367_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67663" TARGET="_blank" class="fs12 fwn">4930549C01Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930549C01 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 136.166439</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.944</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421367_at')" class="fs12 fwn ffl">0.941</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930549C01Rik',0)" class="fs12 fwn ff1">-0.121</A></TD><TD class="fs12 fwn b1 c222" align="right">0.558</TD></TR><TR id="HC_M2_0606_P::1431884_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">22
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431884_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431884_at')" class="fs12 fwn">1431884_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68529" TARGET="_blank" class="fs12 fwn">1110019B22Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1110019B22 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 95.181160</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.742</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431884_at')" class="fs12 fwn ffl">0.939</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1110019B22Rik',0)" class="fs12 fwn ff1">-0.089</A></TD><TD class="fs12 fwn b1 c222" align="right">0.666</TD></TR><TR id="HC_M2_0606_P::1432588_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">23
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432588_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432588_at')" class="fs12 fwn">1432588_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76096" TARGET="_blank" class="fs12 fwn">5830468K08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5830468K08 thymus EST; 3' end of non-coding sequence from AK018043 (antisense in last intron of Ythdf3)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 16.110415</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.420</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432588_at')" class="fs12 fwn ffl">0.938</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444789_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">24
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444789_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444789_at')" class="fs12 fwn">1444789_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=F730011B02" TARGET="_blank" class="fs12 fwn">F730011B02</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 99.080020</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.967</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444789_at')" class="fs12 fwn ffl">0.938</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1441483_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">25
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441483_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441483_at')" class="fs12 fwn">1441483_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=245450" TARGET="_blank" class="fs12 fwn">Slitrk2</A></TD><TD class="fs12 fwn b1 c222">Slitrk2 SLIT and NTRK-like family, member 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 63.908679</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.884</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441483_at')" class="fs12 fwn ffl">0.937</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.226</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slitrk2',0)" class="fs12 fwn ff1">-0.118</A></TD><TD class="fs12 fwn b1 c222" align="right">0.566</TD></TR><TR id="HC_M2_0606_P::1424148_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">26
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1424148_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1424148_a_at')" class="fs12 fwn">1424148_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=106766" TARGET="_blank" class="fs12 fwn">Stap2</A></TD><TD class="fs12 fwn b1 c222">signal transducing adaptor family member 2; exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 56.137203</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.398</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1424148_a_at')" class="fs12 fwn ffl">0.937</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.231</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Stap2',0)" class="fs12 fwn ff1">-0.122</A></TD><TD class="fs12 fwn b1 c222" align="right">0.554</TD></TR><TR id="HC_M2_0606_P::1454463_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">27
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454463_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454463_at')" class="fs12 fwn">1454463_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=3110047M22Rik" TARGET="_blank" class="fs12 fwn">3110047M22Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 3110047M22 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 50.517727</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.091</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 149.089195</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454463_at')" class="fs12 fwn ffl">0.937</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1442589_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">28
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442589_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442589_at')" class="fs12 fwn">1442589_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22067" TARGET="_blank" class="fs12 fwn">Trpc5</A></TD><TD class="fs12 fwn b1 c222">transient receptor potential cation channel, subfamily C, member 5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 140.852432</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.561</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442589_at')" class="fs12 fwn ffl">0.936</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.222</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Trpc5',0)" class="fs12 fwn ff1">-0.107</A></TD><TD class="fs12 fwn b1 c222" align="right">0.604</TD></TR><TR id="HC_M2_0606_P::1430193_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">29
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430193_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430193_at')" class="fs12 fwn">1430193_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70623" TARGET="_blank" class="fs12 fwn">5730505K17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5730505K17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 118.923228</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.606</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430193_at')" class="fs12 fwn ffl">0.935</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1435040_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">30
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435040_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435040_at')" class="fs12 fwn">1435040_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73914" TARGET="_blank" class="fs12 fwn">Irak3</A></TD><TD class="fs12 fwn b1 c222">interleukin-1 receptor-associated kinase 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 119.578986</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.398</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435040_at')" class="fs12 fwn ffl">0.934</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.236</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Irak3',0)" class="fs12 fwn ff1">-0.171</A></TD><TD class="fs12 fwn b1 c222" align="right">0.403</TD></TR><TR id="HC_M2_0606_P::1456734_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">31
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456734_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456734_at')" class="fs12 fwn">1456734_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22166" TARGET="_blank" class="fs12 fwn">Txn1</A></TD><TD class="fs12 fwn b1 c222">thioredoxin 1; last exon and proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 57.956633</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.388</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456734_at')" class="fs12 fwn ffl">0.933</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.314</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Txn1',0)" class="fs12 fwn ff1">-0.197</A></TD><TD class="fs12 fwn b1 c222" align="right">0.336</TD></TR><TR id="HC_M2_0606_P::1420143_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">32
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420143_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420143_at')" class="fs12 fwn">1420143_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319817" TARGET="_blank" class="fs12 fwn">D930043C02Rik</A></TD><TD class="fs12 fwn b1 c222">membrane-associated nucleic acid binding protein</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 116.102301</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.498</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420143_at')" class="fs12 fwn ffl">0.932</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.188</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1446615_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">33
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446615_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446615_at')" class="fs12 fwn">1446615_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=268857" TARGET="_blank" class="fs12 fwn">D230007K08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA D230007K08</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 6.114645</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.822</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446615_at')" class="fs12 fwn ffl">0.932</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.222</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1451774_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">34
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451774_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451774_at')" class="fs12 fwn">1451774_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=435285" TARGET="_blank" class="fs12 fwn">OTTMUSG00000002196</A></TD><TD class="fs12 fwn b1 c222">similar to keratin associated protein 4-10 (predicted gene, OTTMUSG00000002196) protein coding; keratin associated protein 4.10</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 99.712042</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.051</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451774_at')" class="fs12 fwn ffl">0.932</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','OTTMUSG00000002196',0)" class="fs12 fwn ff1">-0.117</A></TD><TD class="fs12 fwn b1 c222" align="right">0.568</TD></TR><TR id="HC_M2_0606_P::1443940_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">35
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443940_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443940_at')" class="fs12 fwn">1443940_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=239038" TARGET="_blank" class="fs12 fwn">Lrrc22</A></TD><TD class="fs12 fwn b1 c222">leucine rich repeat containing 22 (retina-restricted expression, 10q23.1, candidate retinopathy gene); mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 37.886332</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.902</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443940_at')" class="fs12 fwn ffl">0.931</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1447191_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">36
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447191_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447191_at')" class="fs12 fwn">1447191_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=5430401O09Rik" TARGET="_blank" class="fs12 fwn">5430401O09Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs, Weakly similar to RIKEN cDNA 5730493B19 [] [M.musculus]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 99.973023</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.141</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447191_at')" class="fs12 fwn ffl">0.931</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1457757_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">37
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457757_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457757_at')" class="fs12 fwn">1457757_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=269389" TARGET="_blank" class="fs12 fwn">LOC269389</A></TD><TD class="fs12 fwn b1 c222">embyronic retinal HMG-box protein; exons 6, 7, and 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 163.073531</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.140</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 149.089195</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457757_at')" class="fs12 fwn ffl">0.930</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.239</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1441289_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">38
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441289_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441289_at')" class="fs12 fwn">1441289_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=229600" TARGET="_blank" class="fs12 fwn">C1orf54</A></TD><TD class="fs12 fwn b1 c222">human chromosome 1 open reading frame 54</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 95.697195</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.080</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441289_at')" class="fs12 fwn ffl">0.930</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1456561_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">39
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456561_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456561_s_at')" class="fs12 fwn">1456561_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=75753" TARGET="_blank" class="fs12 fwn">Zfp393</A></TD><TD class="fs12 fwn b1 c222">zinc finger protein 393</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 117.429280</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.219</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456561_s_at')" class="fs12 fwn ffl">0.930</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.256</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425493_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">40
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425493_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425493_at')" class="fs12 fwn">1425493_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12166" TARGET="_blank" class="fs12 fwn">Bmpr1a</A></TD><TD class="fs12 fwn b1 c222">bone morphogenetic protein receptor, type 1A; mid proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 35.226803</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.984</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425493_at')" class="fs12 fwn ffl">0.929</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.430</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Bmpr1a',0)" class="fs12 fwn ff1">0.104</A></TD><TD class="fs12 fwn b1 c222" align="right">0.613</TD></TR><TR id="HC_M2_0606_P::1452986_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">41
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452986_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452986_at')" class="fs12 fwn">1452986_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15233" TARGET="_blank" class="fs12 fwn">Hgd</A></TD><TD class="fs12 fwn b1 c222">homogentisate 1, 2-dioxygenase</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 37.631761</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.268</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452986_at')" class="fs12 fwn ffl">0.929</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.258</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hgd',0)" class="fs12 fwn ff1">-0.079</A></TD><TD class="fs12 fwn b1 c222" align="right">0.701</TD></TR><TR id="HC_M2_0606_P::1447563_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">42
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447563_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447563_at')" class="fs12 fwn">1447563_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=27050" TARGET="_blank" class="fs12 fwn">Rps3</A></TD><TD class="fs12 fwn b1 c222">ribosomal protein S3; last exon and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 106.627398</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.141</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447563_at')" class="fs12 fwn ffl">0.928</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.284</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rps3',0)" class="fs12 fwn ff1">-0.113</A></TD><TD class="fs12 fwn b1 c222" align="right">0.581</TD></TR><TR id="HC_M2_0606_P::1436749_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">43
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436749_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436749_at')" class="fs12 fwn">1436749_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67943" TARGET="_blank" class="fs12 fwn">Mesdc2</A></TD><TD class="fs12 fwn b1 c222">mesoderm development candiate 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 91.048280</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.408</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436749_at')" class="fs12 fwn ffl">0.928</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.253</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mesdc2',0)" class="fs12 fwn ff1">-0.146</A></TD><TD class="fs12 fwn b1 c222" align="right">0.477</TD></TR><TR id="HC_M2_0606_P::1439245_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">44
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439245_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439245_at')" class="fs12 fwn">1439245_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=233833" TARGET="_blank" class="fs12 fwn">Tnrc6</A></TD><TD class="fs12 fwn b1 c222">trinucleotide repeat containing 6a; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 130.336789</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.828</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439245_at')" class="fs12 fwn ffl">0.927</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1450353_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">45
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450353_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450353_at')" class="fs12 fwn">1450353_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20524" TARGET="_blank" class="fs12 fwn">Slc25a17</A></TD><TD class="fs12 fwn b1 c222">peroxisomal integral membrane protein 47; mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 81.149643</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.946</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450353_at')" class="fs12 fwn ffl">0.927</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.158</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slc25a17',0)" class="fs12 fwn ff1">-0.044</A></TD><TD class="fs12 fwn b1 c222" align="right">0.831</TD></TR><TR id="HC_M2_0606_P::1446656_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">46
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446656_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446656_at')" class="fs12 fwn">1446656_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11600" TARGET="_blank" class="fs12 fwn">Angpt1</A></TD><TD class="fs12 fwn b1 c222">angiopoietin 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 42.452159</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.058</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446656_at')" class="fs12 fwn ffl">0.927</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.334</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Angpt1',0)" class="fs12 fwn ff1">-0.096</A></TD><TD class="fs12 fwn b1 c222" align="right">0.642</TD></TR><TR id="HC_M2_0606_P::1458006_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">47
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458006_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458006_at')" class="fs12 fwn">1458006_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70574" TARGET="_blank" class="fs12 fwn">Cpm</A></TD><TD class="fs12 fwn b1 c222">carboxypeptidase M; intron or possible short form 3' UTR from EST AK087584</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 117.113723</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.209</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458006_at')" class="fs12 fwn ffl">0.927</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.323</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cpm',0)" class="fs12 fwn ff1">0.360</A></TD><TD class="fs12 fwn b1 c222" align="right">0.071</TD></TR><TR id="HC_M2_0606_P::1441754_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">48
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441754_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441754_at')" class="fs12 fwn">1441754_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BB807463" TARGET="_blank" class="fs12 fwn">BB807463</A></TD><TD class="fs12 fwn b1 c222">BB807463; antisense in BB807463</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 6.916222</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.902</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441754_at')" class="fs12 fwn ffl">0.927</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432266_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">49
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432266_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432266_at')" class="fs12 fwn">1432266_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=208618" TARGET="_blank" class="fs12 fwn">9430077C05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 9430077C05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 20.705348</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.103</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432266_at')" class="fs12 fwn ffl">0.926</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.364</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1451950_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">50
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451950_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451950_a_at')" class="fs12 fwn">1451950_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12519" TARGET="_blank" class="fs12 fwn">Cd80</A></TD><TD class="fs12 fwn b1 c222">CD80 antigen</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 38.473979</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.836</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451950_a_at')" class="fs12 fwn ffl">0.925</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.251</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cd80',0)" class="fs12 fwn ff1">-0.119</A></TD><TD class="fs12 fwn b1 c222" align="right">0.564</TD></TR><TR id="HC_M2_0606_P::1448011_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">51
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1448011_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1448011_at')" class="fs12 fwn">1448011_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320528" TARGET="_blank" class="fs12 fwn">Vps13c</A></TD><TD class="fs12 fwn b1 c222">vacuolar protein sorting 13C; antisense in 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 67.843477</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.472</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1448011_at')" class="fs12 fwn ffl">0.925</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.207</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Vps13c',0)" class="fs12 fwn ff1">-0.232</A></TD><TD class="fs12 fwn b1 c222" align="right">0.254</TD></TR><TR id="HC_M2_0606_P::1419992_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">52
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419992_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419992_x_at')" class="fs12 fwn">1419992_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=98136" TARGET="_blank" class="fs12 fwn">1200014K04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1200014K04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 10.112321</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.282</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419992_x_at')" class="fs12 fwn ffl">0.924</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459589_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">53
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459589_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459589_at')" class="fs12 fwn">1459589_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68631" TARGET="_blank" class="fs12 fwn">Cryl1</A></TD><TD class="fs12 fwn b1 c222">crystallin, lamda 1 (L-gulonate 3-dehydrogenase); last exon and proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 57.893872</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.400</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459589_at')" class="fs12 fwn ffl">0.923</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.207</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cryl1',0)" class="fs12 fwn ff1">0.001</A></TD><TD class="fs12 fwn b1 c222" align="right">0.996</TD></TR><TR id="HC_M2_0606_P::1443421_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">54
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443421_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443421_s_at')" class="fs12 fwn">1443421_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=93886" TARGET="_blank" class="fs12 fwn">Pcdhb15</A></TD><TD class="fs12 fwn b1 c222">protocadherin beta 15</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 37.635530</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.834</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443421_s_at')" class="fs12 fwn ffl">0.923</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.174</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pcdhb15',0)" class="fs12 fwn ff1">-0.155</A></TD><TD class="fs12 fwn b1 c222" align="right">0.451</TD></TR><TR id="HC_M2_0606_P::1444961_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">55
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444961_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444961_at')" class="fs12 fwn">1444961_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97268" TARGET="_blank" class="fs12 fwn">C230066G23Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C230066G23 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 24.297721</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.377</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444961_at')" class="fs12 fwn ffl">0.923</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C230066G23Rik',0)" class="fs12 fwn ff1">-0.258</A></TD><TD class="fs12 fwn b1 c222" align="right">0.203</TD></TR><TR id="HC_M2_0606_P::1422086_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">56
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422086_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422086_at')" class="fs12 fwn">1422086_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=83993" TARGET="_blank" class="fs12 fwn">Tbx19</A></TD><TD class="fs12 fwn b1 c222">T-box 19</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 167.068416</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.552</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">19.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422086_at')" class="fs12 fwn ffl">0.923</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.299</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tbx19',0)" class="fs12 fwn ff1">-0.192</A></TD><TD class="fs12 fwn b1 c222" align="right">0.346</TD></TR><TR id="HC_M2_0606_P::1433260_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">57
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433260_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433260_at')" class="fs12 fwn">1433260_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18693" TARGET="_blank" class="fs12 fwn">Pick1</A></TD><TD class="fs12 fwn b1 c222">protein interacting with C kinase 1 (protein kinase C, alpha binding protein); 5' UTR of Pick1 (from AK015656)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 79.058985</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.876</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433260_at')" class="fs12 fwn ffl">0.923</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.266</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pick1',0)" class="fs12 fwn ff1">-0.168</A></TD><TD class="fs12 fwn b1 c222" align="right">0.411</TD></TR><TR id="HC_M2_0606_P::1429895_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">58
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429895_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429895_at')" class="fs12 fwn">1429895_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69591" TARGET="_blank" class="fs12 fwn">2310010G23Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310010G23 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 34.354877</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.951</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429895_at')" class="fs12 fwn ffl">0.922</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458550_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">59
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458550_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458550_at')" class="fs12 fwn">1458550_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=338367" TARGET="_blank" class="fs12 fwn">Myo1d</A></TD><TD class="fs12 fwn b1 c222">myosin ID</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 80.487013</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.422</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458550_at')" class="fs12 fwn ffl">0.922</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.226</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Myo1d',0)" class="fs12 fwn ff1">0.090</A></TD><TD class="fs12 fwn b1 c222" align="right">0.661</TD></TR><TR id="HC_M2_0606_P::1453673_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">60
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453673_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453673_at')" class="fs12 fwn">1453673_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=224079" TARGET="_blank" class="fs12 fwn">Atp13a4</A></TD><TD class="fs12 fwn b1 c222">ATPase type 13A4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 29.540545</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.631</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453673_at')" class="fs12 fwn ffl">0.922</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.205</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Atp13a4',0)" class="fs12 fwn ff1">0.069</A></TD><TD class="fs12 fwn b1 c222" align="right">0.738</TD></TR><TR id="HC_M2_0606_P::1433809_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">61
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433809_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433809_at')" class="fs12 fwn">1433809_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=277016" TARGET="_blank" class="fs12 fwn">Ddx5</A></TD><TD class="fs12 fwn b1 c222">DEAD (Asp-Glu-Ala-Asp) box polypeptide 5; last exon and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 106.598015</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.076</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433809_at')" class="fs12 fwn ffl">0.922</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ddx5',0)" class="fs12 fwn ff1">0.228</A></TD><TD class="fs12 fwn b1 c222" align="right">0.263</TD></TR><TR id="HC_M2_0606_P::1431063_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">62
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431063_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431063_at')" class="fs12 fwn">1431063_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=228557" TARGET="_blank" class="fs12 fwn">5830445O15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5830445O15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 120.286496</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.794</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431063_at')" class="fs12 fwn ffl">0.921</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444682_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">63
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444682_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444682_at')" class="fs12 fwn">1444682_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Oxct" TARGET="_blank" class="fs12 fwn">Oxct</A></TD><TD class="fs12 fwn b1 c222">3-oxoacid CoA transferase 1 (succinyl-CoA:3-ketoacid-coenzyme A transferase 1, mitochondrial precursor); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 3.975021</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.361</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444682_at')" class="fs12 fwn ffl">0.921</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459654_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">64
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459654_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459654_at')" class="fs12 fwn">1459654_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=170772" TARGET="_blank" class="fs12 fwn">Glce</A></TD><TD class="fs12 fwn b1 c222">glucocorticoid induced transcript 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 61.960129</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.823</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459654_at')" class="fs12 fwn ffl">0.921</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.256</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Glce',0)" class="fs12 fwn ff1">0.233</A></TD><TD class="fs12 fwn b1 c222" align="right">0.251</TD></TR><TR id="HC_M2_0606_P::1445285_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">65
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445285_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445285_at')" class="fs12 fwn">1445285_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78709" TARGET="_blank" class="fs12 fwn">C630041L24Rik</A></TD><TD class="fs12 fwn b1 c222">non-coding RNA RIKEN cDNA C630041L24 exclusively hippocampus CA1 expressed; non-coding sequence antisense in Hrh3 promoter</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.840503</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.764</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445285_at')" class="fs12 fwn ffl">0.921</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.193</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425038_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">66
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425038_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425038_at')" class="fs12 fwn">1425038_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=207151" TARGET="_blank" class="fs12 fwn">Slc22a19</A></TD><TD class="fs12 fwn b1 c222">solute carrier family 22 (organic anion transporter), member 19</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 7.747704</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.917</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425038_at')" class="fs12 fwn ffl">0.920</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.194</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458634_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">67
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458634_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458634_at')" class="fs12 fwn">1458634_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16423" TARGET="_blank" class="fs12 fwn">Cd47</A></TD><TD class="fs12 fwn b1 c222">CD47 antigen (Rh-related antigen, integrin-associated signal transducer); last intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 49.856675</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.299</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 180.825581</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458634_at')" class="fs12 fwn ffl">0.920</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.322</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cd47',0)" class="fs12 fwn ff1">0.189</A></TD><TD class="fs12 fwn b1 c222" align="right">0.355</TD></TR><TR id="HC_M2_0606_P::1418065_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">68
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418065_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418065_at')" class="fs12 fwn">1418065_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19374" TARGET="_blank" class="fs12 fwn">Rag2</A></TD><TD class="fs12 fwn b1 c222">recombination activating gene 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 101.470812</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.431</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418065_at')" class="fs12 fwn ffl">0.920</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.293</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rag2',0)" class="fs12 fwn ff1">-0.127</A></TD><TD class="fs12 fwn b1 c222" align="right">0.538</TD></TR><TR id="HC_M2_0606_P::1451661_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">69
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451661_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451661_at')" class="fs12 fwn">1451661_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11643" TARGET="_blank" class="fs12 fwn">Akap4</A></TD><TD class="fs12 fwn b1 c222">A kinase (PRKA) anchor protein 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 6.654735</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.820</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451661_at')" class="fs12 fwn ffl">0.920</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Akap4',0)" class="fs12 fwn ff1">-0.114</A></TD><TD class="fs12 fwn b1 c222" align="right">0.580</TD></TR><TR id="HC_M2_0606_P::1431561_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">70
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431561_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431561_a_at')" class="fs12 fwn">1431561_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71723" TARGET="_blank" class="fs12 fwn">Dhx34</A></TD><TD class="fs12 fwn b1 c222">DEAH (Asp-Glu-Ala-His) box polypeptide 34; last three exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 16.782652</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.506</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431561_a_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.201</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Dhx34',0)" class="fs12 fwn ff1">0.046</A></TD><TD class="fs12 fwn b1 c222" align="right">0.823</TD></TR><TR id="HC_M2_0606_P::1435887_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">71
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435887_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435887_at')" class="fs12 fwn">1435887_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=380780" TARGET="_blank" class="fs12 fwn">Serpina11</A></TD><TD class="fs12 fwn b1 c222">serine (or cysteine) proteinase inhibitor, clade A (alpha-1 antiproteinase, antitrypsin), member 11; last three exons and proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 105.218482</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.617</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435887_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.117</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Serpina11',0)" class="fs12 fwn ff1">-0.098</A></TD><TD class="fs12 fwn b1 c222" align="right">0.634</TD></TR><TR id="HC_M2_0606_P::1440846_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">72
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440846_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440846_at')" class="fs12 fwn">1440846_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320271" TARGET="_blank" class="fs12 fwn">Scai</A></TD><TD class="fs12 fwn b1 c222">Scai suppressor of cancer cell invasion; exons 7, 8, and 9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 38.962458</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.586</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440846_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.191</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444938_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">73
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444938_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444938_at')" class="fs12 fwn">1444938_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76719" TARGET="_blank" class="fs12 fwn">1700081L11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700081L11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 39.839955</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.622</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444938_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.142</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700081L11Rik',0)" class="fs12 fwn ff1">-0.296</A></TD><TD class="fs12 fwn b1 c222" align="right">0.142</TD></TR><TR id="HC_M2_0606_P::1440937_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">74
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440937_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440937_at')" class="fs12 fwn">1440937_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=237073" TARGET="_blank" class="fs12 fwn">D330023I21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA D330023I21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 136.479001</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.431</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440937_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1430767_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">75
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430767_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430767_a_at')" class="fs12 fwn">1430767_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930543E12Rik" TARGET="_blank" class="fs12 fwn">4930543E12Rik</A></TD><TD class="fs12 fwn b1 c222">Mus musculus transcribed sequences</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 120.243723</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.748</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430767_a_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930543E12Rik',0)" class="fs12 fwn ff1">-0.251</A></TD><TD class="fs12 fwn b1 c222" align="right">0.217</TD></TR><TR id="HC_M2_0606_P::1458193_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">76
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458193_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458193_at')" class="fs12 fwn">1458193_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=383825" TARGET="_blank" class="fs12 fwn">Fabp9</A></TD><TD class="fs12 fwn b1 c222">fatty acid binding protein 9, testis</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.180050</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.237</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458193_at')" class="fs12 fwn ffl">0.919</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fabp9',0)" class="fs12 fwn ff1">-0.092</A></TD><TD class="fs12 fwn b1 c222" align="right">0.656</TD></TR><TR id="HC_M2_0606_P::1439121_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">77
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439121_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439121_at')" class="fs12 fwn">1439121_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15032" TARGET="_blank" class="fs12 fwn">H2-T17</A></TD><TD class="fs12 fwn b1 c222">histocompatibility 2, T region locus 17</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 36.175743</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.951</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439121_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','H2-T17',0)" class="fs12 fwn ff1">0.080</A></TD><TD class="fs12 fwn b1 c222" align="right">0.698</TD></TR><TR id="HC_M2_0606_P::1419991_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">78
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419991_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419991_at')" class="fs12 fwn">1419991_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=98136" TARGET="_blank" class="fs12 fwn">1200014K04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1200014K04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.170</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419991_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1419295_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">79
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419295_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419295_at')" class="fs12 fwn">1419295_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26427" TARGET="_blank" class="fs12 fwn">Creb3l1</A></TD><TD class="fs12 fwn b1 c222">cAMP responsive element binding protein 3-like; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 91.822545</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.658</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419295_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.283</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Creb3l1',0)" class="fs12 fwn ff1">-0.060</A></TD><TD class="fs12 fwn b1 c222" align="right">0.771</TD></TR><TR id="HC_M2_0606_P::1444697_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">80
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444697_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444697_at')" class="fs12 fwn">1444697_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319871" TARGET="_blank" class="fs12 fwn">4732490B19Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4732490B19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 113.064690</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.395</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444697_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459705_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">81
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459705_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459705_at')" class="fs12 fwn">1459705_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=229759" TARGET="_blank" class="fs12 fwn">Olfm3</A></TD><TD class="fs12 fwn b1 c222">olfactomedin 3; intron (from BE980857)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 114.647958</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.245</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459705_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.210</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Olfm3',0)" class="fs12 fwn ff1">0.066</A></TD><TD class="fs12 fwn b1 c222" align="right">0.749</TD></TR><TR id="HC_M2_0606_P::1448092_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">82
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1448092_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1448092_x_at')" class="fs12 fwn">1448092_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=321018" TARGET="_blank" class="fs12 fwn">Serpina4-ps1</A></TD><TD class="fs12 fwn b1 c222">clone IMAGE:4194299, mRNA</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 105.324822</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.626</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1448092_x_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.311</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Serpina4-ps1',0)" class="fs12 fwn ff1">-0.016</A></TD><TD class="fs12 fwn b1 c222" align="right">0.938</TD></TR><TR id="HC_M2_0606_P::1433302_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">83
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433302_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433302_at')" class="fs12 fwn">1433302_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320873" TARGET="_blank" class="fs12 fwn">Cdh10</A></TD><TD class="fs12 fwn b1 c222">cadherin 10</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 18.748821</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.199</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433302_at')" class="fs12 fwn ffl">0.918</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.282</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cdh10',0)" class="fs12 fwn ff1">0.267</A></TD><TD class="fs12 fwn b1 c222" align="right">0.187</TD></TR><TR id="HC_M2_0606_P::1431904_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">84
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431904_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431904_at')" class="fs12 fwn">1431904_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74466" TARGET="_blank" class="fs12 fwn">4933427G17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933427G17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 128.142415</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.499</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431904_at')" class="fs12 fwn ffl">0.917</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4933427G17Rik',0)" class="fs12 fwn ff1">-0.118</A></TD><TD class="fs12 fwn b1 c222" align="right">0.566</TD></TR><TR id="HC_M2_0606_P::1441303_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">85
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441303_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441303_at')" class="fs12 fwn">1441303_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=0610031G08Rik" TARGET="_blank" class="fs12 fwn">0610031G08Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 144.381465</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.046</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441303_at')" class="fs12 fwn ffl">0.917</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','0610031G08Rik',0)" class="fs12 fwn ff1">-0.034</A></TD><TD class="fs12 fwn b1 c222" align="right">0.869</TD></TR><TR id="HC_M2_0606_P::1427807_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">86
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427807_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427807_at')" class="fs12 fwn">1427807_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=384817" TARGET="_blank" class="fs12 fwn">4930448N21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930448N21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 48.500274</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.736</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427807_at')" class="fs12 fwn ffl">0.917</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930448N21Rik',0)" class="fs12 fwn ff1">0.061</A></TD><TD class="fs12 fwn b1 c222" align="right">0.767</TD></TR><TR id="HC_M2_0606_P::1444479_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">87
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444479_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444479_at')" class="fs12 fwn">1444479_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70548" TARGET="_blank" class="fs12 fwn">5730437C12Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5730437C12 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 76.336005</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.855</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444479_at')" class="fs12 fwn ffl">0.916</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458835_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">88
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458835_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458835_at')" class="fs12 fwn">1458835_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320614" TARGET="_blank" class="fs12 fwn">A330033J07Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A330033J07 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 32.470209</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.133</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458835_at')" class="fs12 fwn ffl">0.916</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1438825_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">89
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438825_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438825_at')" class="fs12 fwn">1438825_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=384465" TARGET="_blank" class="fs12 fwn">Calm3</A></TD><TD class="fs12 fwn b1 c222">calmodulin 3; poor probe set specificity (3' UTR)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 17.502074</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.878</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438825_at')" class="fs12 fwn ffl">0.916</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Calm3',0)" class="fs12 fwn ff1">0.129</A></TD><TD class="fs12 fwn b1 c222" align="right">0.531</TD></TR><TR id="HC_M2_0606_P::1439055_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">90
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439055_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439055_at')" class="fs12 fwn">1439055_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72381" TARGET="_blank" class="fs12 fwn">2210409E12Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2210409E12 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 88.826052</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.282</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439055_at')" class="fs12 fwn ffl">0.916</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2210409E12Rik',0)" class="fs12 fwn ff1">-0.248</A></TD><TD class="fs12 fwn b1 c222" align="right">0.221</TD></TR><TR id="HC_M2_0606_P::1457171_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">91
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457171_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457171_at')" class="fs12 fwn">1457171_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319357" TARGET="_blank" class="fs12 fwn">C530043A13Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C530043A13 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 86.663152</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.480</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457171_at')" class="fs12 fwn ffl">0.915</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C530043A13Rik',0)" class="fs12 fwn ff1">-0.007</A></TD><TD class="fs12 fwn b1 c222" align="right">0.974</TD></TR><TR id="HC_M2_0606_P::1451856_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">92
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451856_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451856_at')" class="fs12 fwn">1451856_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=227331" TARGET="_blank" class="fs12 fwn">Tnrc15</A></TD><TD class="fs12 fwn b1 c222">trinucleotide repeat containing 15</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 89.225046</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.501</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451856_at')" class="fs12 fwn ffl">0.915</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.238</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tnrc15',0)" class="fs12 fwn ff1">-0.035</A></TD><TD class="fs12 fwn b1 c222" align="right">0.864</TD></TR><TR id="HC_M2_0606_P::1454460_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">93
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454460_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454460_at')" class="fs12 fwn">1454460_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20720" TARGET="_blank" class="fs12 fwn">Serpine2</A></TD><TD class="fs12 fwn b1 c222">serpin peptidase inhibitor, clade E (plasminogen activator inhibitor type 1), member 2 (protease nexin 1)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 79.835540</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.494</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454460_at')" class="fs12 fwn ffl">0.915</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.401</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Serpine2',0)" class="fs12 fwn ff1">0.023</A></TD><TD class="fs12 fwn b1 c222" align="right">0.910</TD></TR><TR id="HC_M2_0606_P::1425999_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">94
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425999_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425999_at')" class="fs12 fwn">1425999_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=50702" TARGET="_blank" class="fs12 fwn">Cfhl1</A></TD><TD class="fs12 fwn b1 c222">complement component factor h-related like 1; locally repetitive 5' element</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 141.594362</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.162</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425999_at')" class="fs12 fwn ffl">0.915</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.194</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1430963_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">95
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430963_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430963_at')" class="fs12 fwn">1430963_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72077" TARGET="_blank" class="fs12 fwn">Gcnt3</A></TD><TD class="fs12 fwn b1 c222">glucosaminyl (N-acetyl) transferase 3, mucin type</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 69.881029</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.072</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430963_at')" class="fs12 fwn ffl">0.915</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.289</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gcnt3',0)" class="fs12 fwn ff1">-0.050</A></TD><TD class="fs12 fwn b1 c222" align="right">0.809</TD></TR><TR id="HC_M2_0606_P::1431347_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">96
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431347_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431347_at')" class="fs12 fwn">1431347_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77996" TARGET="_blank" class="fs12 fwn">D730039F16Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA D730039F16 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 34.727383</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.953</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431347_at')" class="fs12 fwn ffl">0.914</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','D730039F16Rik',0)" class="fs12 fwn ff1">0.040</A></TD><TD class="fs12 fwn b1 c222" align="right">0.848</TD></TR><TR id="HC_M2_0606_P::1446038_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">97
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446038_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446038_at')" class="fs12 fwn">1446038_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=109722" TARGET="_blank" class="fs12 fwn">Xtrp3s1</A></TD><TD class="fs12 fwn b1 c222">extra-toes spotting</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 123.586891</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.428</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446038_at')" class="fs12 fwn ffl">0.914</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Xtrp3s1',0)" class="fs12 fwn ff1">-0.141</A></TD><TD class="fs12 fwn b1 c222" align="right">0.493</TD></TR><TR id="HC_M2_0606_P::1436288_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">98
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436288_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436288_at')" class="fs12 fwn">1436288_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68221" TARGET="_blank" class="fs12 fwn">1700049M11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700049M11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 164.024638</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.141</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436288_at')" class="fs12 fwn ffl">0.914</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1457608_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">99
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457608_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457608_at')" class="fs12 fwn">1457608_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=243374" TARGET="_blank" class="fs12 fwn">Gimap8</A></TD><TD class="fs12 fwn b1 c222">GTPase, IMAP family member 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 48.605516</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.970</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 55.184322</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457608_at')" class="fs12 fwn ffl">0.914</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.241</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gimap8',0)" class="fs12 fwn ff1">-0.030</A></TD><TD class="fs12 fwn b1 c222" align="right">0.886</TD></TR><TR id="HC_M2_0606_P::1458329_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">100
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458329_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458329_x_at')" class="fs12 fwn">1458329_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=278672" TARGET="_blank" class="fs12 fwn">1110051B16Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1110051B16 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.842</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458329_x_at')" class="fs12 fwn ffl">0.914</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1110051B16Rik',0)" class="fs12 fwn ff1">-0.181</A></TD><TD class="fs12 fwn b1 c222" align="right">0.376</TD></TR><TR id="HC_M2_0606_P::1458270_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">101
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458270_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458270_at')" class="fs12 fwn">1458270_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16500" TARGET="_blank" class="fs12 fwn">Kcnb1</A></TD><TD class="fs12 fwn b1 c222">potassium voltage gated channel, Shab-related subfamily, member 1; 5' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 167.015756</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.249</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458270_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.301</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Kcnb1',0)" class="fs12 fwn ff1">0.218</A></TD><TD class="fs12 fwn b1 c222" align="right">0.285</TD></TR><TR id="HC_M2_0606_P::1438387_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">102
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438387_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438387_x_at')" class="fs12 fwn">1438387_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21976" TARGET="_blank" class="fs12 fwn">Top3b</A></TD><TD class="fs12 fwn b1 c222">topoisomerase (DNA) III beta</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 16.892969</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.209</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438387_x_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.248</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Top3b',0)" class="fs12 fwn ff1">-0.118</A></TD><TD class="fs12 fwn b1 c222" align="right">0.567</TD></TR><TR id="HC_M2_0606_P::1452568_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">103
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452568_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452568_at')" class="fs12 fwn">1452568_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=212996" TARGET="_blank" class="fs12 fwn">Wbscr17</A></TD><TD class="fs12 fwn b1 c222">Williams-Beuren syndrome chromosome region 17 homolog (human)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 131.435004</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.644</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452568_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.204</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Wbscr17',0)" class="fs12 fwn ff1">0.026</A></TD><TD class="fs12 fwn b1 c222" align="right">0.900</TD></TR><TR id="HC_M2_0606_P::1453264_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">104
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453264_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453264_at')" class="fs12 fwn">1453264_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73608" TARGET="_blank" class="fs12 fwn">Marveld3</A></TD><TD class="fs12 fwn b1 c222">MARVEL (membrane-associating) domain containing 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 112.476922</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.885</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453264_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Marveld3',0)" class="fs12 fwn ff1">0.068</A></TD><TD class="fs12 fwn b1 c222" align="right">0.740</TD></TR><TR id="HC_M2_0606_P::1459301_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">105
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459301_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459301_at')" class="fs12 fwn">1459301_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=17536" TARGET="_blank" class="fs12 fwn">Mrg1</A></TD><TD class="fs12 fwn b1 c222">myeloid ecotropic viral integration site-related gene 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 115.861168</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.787</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459301_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.478</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mrg1',0)" class="fs12 fwn ff1">0.387</A></TD><TD class="fs12 fwn b1 c222" align="right">0.051</TD></TR><TR id="HC_M2_0606_P::1422370_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">106
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422370_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422370_at')" class="fs12 fwn">1422370_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18348" TARGET="_blank" class="fs12 fwn">Olfr49</A></TD><TD class="fs12 fwn b1 c222">olfactory receptor 49</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 54.901731</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.738</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 66.805956</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422370_at')" class="fs12 fwn ffl">0.913</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Olfr49',0)" class="fs12 fwn ff1">-0.264</A></TD><TD class="fs12 fwn b1 c222" align="right">0.192</TD></TR><TR id="HC_M2_0606_P::1460105_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">107
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1460105_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1460105_at')" class="fs12 fwn">1460105_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97884" TARGET="_blank" class="fs12 fwn">B3galnt2</A></TD><TD class="fs12 fwn b1 c222">UDP-GalNAc:betaGlcNAc beta 1,3-galactosaminyltransferase, polypeptide 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 14.068986</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.061</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1460105_at')" class="fs12 fwn ffl">0.912</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.169</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','B3galnt2',0)" class="fs12 fwn ff1">-0.244</A></TD><TD class="fs12 fwn b1 c222" align="right">0.230</TD></TR><TR id="HC_M2_0606_P::1450636_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">108
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450636_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450636_s_at')" class="fs12 fwn">1450636_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11650" TARGET="_blank" class="fs12 fwn">Akp5</A></TD><TD class="fs12 fwn b1 c222">alkaline phosphatase 5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 88.983361</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.352</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450636_s_at')" class="fs12 fwn ffl">0.912</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.391</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Akp5',0)" class="fs12 fwn ff1">0.249</A></TD><TD class="fs12 fwn b1 c222" align="right">0.219</TD></TR><TR id="HC_M2_0606_P::1460067_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">109
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1460067_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1460067_at')" class="fs12 fwn">1460067_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12772" TARGET="_blank" class="fs12 fwn">Ccr2</A></TD><TD class="fs12 fwn b1 c222">chemokine (C-C motif) receptor 2 (from EST AK046579); putative far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 124.027708</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.496</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1460067_at')" class="fs12 fwn ffl">0.912</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.327</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ccr2',0)" class="fs12 fwn ff1">-0.121</A></TD><TD class="fs12 fwn b1 c222" align="right">0.555</TD></TR><TR id="HC_M2_0606_P::1442958_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">110
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442958_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442958_at')" class="fs12 fwn">1442958_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=268395" TARGET="_blank" class="fs12 fwn">Mpg</A></TD><TD class="fs12 fwn b1 c222">N-methylpurine-DNA glycosylase</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 32.624874</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.582</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442958_at')" class="fs12 fwn ffl">0.911</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.304</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mpg',0)" class="fs12 fwn ff1">0.397</A></TD><TD class="fs12 fwn b1 c222" align="right">0.045</TD></TR><TR id="HC_M2_0606_P::1458881_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">111
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458881_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458881_at')" class="fs12 fwn">1458881_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=380840" TARGET="_blank" class="fs12 fwn">BC034664</A></TD><TD class="fs12 fwn b1 c222">cDNA sequence BC034664</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 36.202537</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.945</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458881_at')" class="fs12 fwn ffl">0.911</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.178</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458350_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">112
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458350_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458350_at')" class="fs12 fwn">1458350_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=403187" TARGET="_blank" class="fs12 fwn">Opa3</A></TD><TD class="fs12 fwn b1 c222">optic atrophy 3 (autosomal recessive, with chorea and spastic paraplegia); antisense in far 3' end of Opa3 UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 19.833133</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.964</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458350_at')" class="fs12 fwn ffl">0.911</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.219</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Opa3',0)" class="fs12 fwn ff1">-0.193</A></TD><TD class="fs12 fwn b1 c222" align="right">0.345</TD></TR><TR id="HC_M2_0606_P::1428965_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">113
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428965_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428965_at')" class="fs12 fwn">1428965_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69339" TARGET="_blank" class="fs12 fwn">1700007N18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700007N18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 50.590200</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.273</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428965_at')" class="fs12 fwn ffl">0.911</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.221</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1433318_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">114
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433318_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433318_at')" class="fs12 fwn">1433318_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=5430416B10Rik" TARGET="_blank" class="fs12 fwn">5430416B10Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5430416B10 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 113.412312</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.914</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433318_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1446413_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">115
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446413_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446413_at')" class="fs12 fwn">1446413_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73784" TARGET="_blank" class="fs12 fwn">4930430F21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930430F21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 86.760604</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.716</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446413_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459427_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">116
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459427_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459427_at')" class="fs12 fwn">1459427_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20844" TARGET="_blank" class="fs12 fwn">Stam</A></TD><TD class="fs12 fwn b1 c222">signal transducing adaptor molecule (SH3 domain and ITAM motif) 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 14.063806</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.764</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459427_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.242</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Stam',0)" class="fs12 fwn ff1">0.100</A></TD><TD class="fs12 fwn b1 c222" align="right">0.626</TD></TR><TR id="HC_M2_0606_P::1454355_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">117
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454355_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454355_at')" class="fs12 fwn">1454355_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=1810021M19Rik" TARGET="_blank" class="fs12 fwn">1810021M19Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1810021M19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 165.713141</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.564</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454355_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458804_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">118
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458804_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458804_at')" class="fs12 fwn">1458804_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=227394" TARGET="_blank" class="fs12 fwn">Slco4c1</A></TD><TD class="fs12 fwn b1 c222">solute carrier organic anion transporter family, member 4C1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 98.742300</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.602</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458804_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.139</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slco4c1',0)" class="fs12 fwn ff1">-0.183</A></TD><TD class="fs12 fwn b1 c222" align="right">0.371</TD></TR><TR id="HC_M2_0606_P::1459383_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">119
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459383_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459383_at')" class="fs12 fwn">1459383_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=381066" TARGET="_blank" class="fs12 fwn">BC049807</A></TD><TD class="fs12 fwn b1 c222">cDNA sequence BC049807</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 21.705587</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.042</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459383_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','BC049807',0)" class="fs12 fwn ff1">-0.112</A></TD><TD class="fs12 fwn b1 c222" align="right">0.587</TD></TR><TR id="HC_M2_0606_P::1437703_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">120
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437703_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437703_at')" class="fs12 fwn">1437703_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=50757" TARGET="_blank" class="fs12 fwn">Fbxw14</A></TD><TD class="fs12 fwn b1 c222">F-box and WD-40 domain protein 14 (F-box protein EG382156); last two exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 109.281386</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.244</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437703_at')" class="fs12 fwn ffl">0.910</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fbxw14',0)" class="fs12 fwn ff1">-0.157</A></TD><TD class="fs12 fwn b1 c222" align="right">0.443</TD></TR><TR id="HC_M2_0606_P::1458191_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">121
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458191_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458191_at')" class="fs12 fwn">1458191_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=114142" TARGET="_blank" class="fs12 fwn">Foxp2</A></TD><TD class="fs12 fwn b1 c222">forkhead box P2 (neocortex layer 6 signature gene); last exon and 3' UTR of short form</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 15.361397</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.242</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458191_at')" class="fs12 fwn ffl">0.909</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.404</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Foxp2',0)" class="fs12 fwn ff1">0.397</A></TD><TD class="fs12 fwn b1 c222" align="right">0.045</TD></TR><TR id="HC_M2_0606_P::1441042_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">122
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441042_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441042_at')" class="fs12 fwn">1441042_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14164" TARGET="_blank" class="fs12 fwn">Fgf1</A></TD><TD class="fs12 fwn b1 c222">fibroblast growth factor 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 39.006346</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.657</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441042_at')" class="fs12 fwn ffl">0.909</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.440</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fgf1',0)" class="fs12 fwn ff1">0.215</A></TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD></TR><TR id="HC_M2_0606_P::1419090_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">123
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419090_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419090_x_at')" class="fs12 fwn">1419090_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16618" TARGET="_blank" class="fs12 fwn">Klk26</A></TD><TD class="fs12 fwn b1 c222">kallikrein 26</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 51.271347</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.371</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419090_x_at')" class="fs12 fwn ffl">0.909</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1429672_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">124
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429672_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429672_at')" class="fs12 fwn">1429672_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76117" TARGET="_blank" class="fs12 fwn">Arhgap15</A></TD><TD class="fs12 fwn b1 c222">Rho GTPase activating protein 15</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 43.850361</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.302</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429672_at')" class="fs12 fwn ffl">0.909</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.220</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Arhgap15',0)" class="fs12 fwn ff1">-0.209</A></TD><TD class="fs12 fwn b1 c222" align="right">0.306</TD></TR><TR id="HC_M2_0606_P::1440733_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">125
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440733_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440733_at')" class="fs12 fwn">1440733_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=1200009O22Rik" TARGET="_blank" class="fs12 fwn">1200009O22Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1200009O22 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 53.817763</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.175</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440733_at')" class="fs12 fwn ffl">0.909</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1200009O22Rik',0)" class="fs12 fwn ff1">0.424</A></TD><TD class="fs12 fwn b1 c222" align="right">0.031</TD></TR><TR id="HC_M2_0606_P::1450797_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">126
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450797_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450797_a_at')" class="fs12 fwn">1450797_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12412" TARGET="_blank" class="fs12 fwn">Cbx1</A></TD><TD class="fs12 fwn b1 c222">chromobox homolog 1 (Drosophila HP1 beta)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 96.669516</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.513</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450797_a_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cbx1',0)" class="fs12 fwn ff1">-0.215</A></TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD></TR><TR id="HC_M2_0606_P::1442976_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">127
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442976_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442976_at')" class="fs12 fwn">1442976_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97091" TARGET="_blank" class="fs12 fwn">C81072</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C81072</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 75.257016</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.082</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442976_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1441116_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">128
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441116_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441116_at')" class="fs12 fwn">1441116_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AU024404" TARGET="_blank" class="fs12 fwn">AU024404</A></TD><TD class="fs12 fwn b1 c222">AU024404 EST; antisense in first intron of Pam</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 99.956738</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.844</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441116_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444023_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">129
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444023_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444023_at')" class="fs12 fwn">1444023_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=109676" TARGET="_blank" class="fs12 fwn">Ank2</A></TD><TD class="fs12 fwn b1 c222">ankyrin 2, brain</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 126.727806</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.867</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444023_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.291</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ank2',0)" class="fs12 fwn ff1">0.028</A></TD><TD class="fs12 fwn b1 c222" align="right">0.892</TD></TR><TR id="HC_M2_0606_P::1444238_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">130
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444238_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444238_at')" class="fs12 fwn">1444238_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=D030060M11Rik" TARGET="_blank" class="fs12 fwn">D030060M11Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 134.555304</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.120</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444238_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459529_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">131
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459529_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459529_at')" class="fs12 fwn">1459529_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=414102" TARGET="_blank" class="fs12 fwn">E230016K23Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA E230016K23 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 83.436929</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.971</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459529_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','E230016K23Rik',0)" class="fs12 fwn ff1">-0.415</A></TD><TD class="fs12 fwn b1 c222" align="right">0.035</TD></TR><TR id="HC_M2_0606_P::1457950_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">132
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457950_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457950_at')" class="fs12 fwn">1457950_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=LOC193217" TARGET="_blank" class="fs12 fwn">LOC193217</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 82.243242</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.612</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457950_at')" class="fs12 fwn ffl">0.908</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444888_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">133
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444888_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444888_at')" class="fs12 fwn">1444888_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=105977" TARGET="_blank" class="fs12 fwn">AU022852</A></TD><TD class="fs12 fwn b1 c222">expressed sequence AU022852</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 9.736423</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.511</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 66.805956</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444888_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432974_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">134
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432974_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432974_at')" class="fs12 fwn">1432974_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74465" TARGET="_blank" class="fs12 fwn">4933421H12Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933421H12 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 37.540872</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.312</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432974_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421983_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">135
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421983_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421983_s_at')" class="fs12 fwn">1421983_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15378" TARGET="_blank" class="fs12 fwn">Hnf4a</A></TD><TD class="fs12 fwn b1 c222">hepatic nuclear factor 4, alpha; mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 163.396863</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.339</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421983_s_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.293</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hnf4a',0)" class="fs12 fwn ff1">-0.075</A></TD><TD class="fs12 fwn b1 c222" align="right">0.715</TD></TR><TR id="HC_M2_0606_P::1449317_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">136
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449317_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449317_at')" class="fs12 fwn">1449317_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12633" TARGET="_blank" class="fs12 fwn">Cflar</A></TD><TD class="fs12 fwn b1 c222">CASP8 and FADD-like apoptosis regulator</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 58.789583</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.988</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449317_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.324</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cflar',0)" class="fs12 fwn ff1">-0.082</A></TD><TD class="fs12 fwn b1 c222" align="right">0.692</TD></TR><TR id="HC_M2_0606_P::1432345_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">137
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432345_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432345_at')" class="fs12 fwn">1432345_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73396" TARGET="_blank" class="fs12 fwn">1700048F04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700048F04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 126.432501</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.961</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432345_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700048F04Rik',0)" class="fs12 fwn ff1">-0.106</A></TD><TD class="fs12 fwn b1 c222" align="right">0.605</TD></TR><TR id="HC_M2_0606_P::1419836_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">138
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419836_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419836_at')" class="fs12 fwn">1419836_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AU040583" TARGET="_blank" class="fs12 fwn">AU040583</A></TD><TD class="fs12 fwn b1 c222">AU040583 EST; well expressed sequence (putative non-coding)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 46.233479</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.683</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419836_at')" class="fs12 fwn ffl">0.907</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1437867_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">139
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437867_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437867_at')" class="fs12 fwn">1437867_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=382770" TARGET="_blank" class="fs12 fwn">C330014B19Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C330014B19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 3.395330</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.571</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437867_at')" class="fs12 fwn ffl">0.906</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1456578_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">140
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456578_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456578_x_at')" class="fs12 fwn">1456578_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16796" TARGET="_blank" class="fs12 fwn">Lasp1</A></TD><TD class="fs12 fwn b1 c222">LIM and SH3 protein 1; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 97.699985</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.913</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456578_x_at')" class="fs12 fwn ffl">0.906</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.336</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lasp1',0)" class="fs12 fwn ff1">0.213</A></TD><TD class="fs12 fwn b1 c222" align="right">0.297</TD></TR><TR id="HC_M2_0606_P::1415851_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">141
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1415851_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1415851_a_at')" class="fs12 fwn">1415851_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=23918" TARGET="_blank" class="fs12 fwn">Impdh2</A></TD><TD class="fs12 fwn b1 c222">inosine 5'-phosphate dehydrogenase 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 108.467676</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.569</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1415851_a_at')" class="fs12 fwn ffl">0.906</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.282</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Impdh2',0)" class="fs12 fwn ff1">-0.307</A></TD><TD class="fs12 fwn b1 c222" align="right">0.127</TD></TR><TR id="HC_M2_0606_P::1458923_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">142
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458923_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458923_at')" class="fs12 fwn">1458923_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=C230066G23Rik" TARGET="_blank" class="fs12 fwn">C230066G23Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 65.037506</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.264</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458923_at')" class="fs12 fwn ffl">0.906</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C230066G23Rik',0)" class="fs12 fwn ff1">-0.258</A></TD><TD class="fs12 fwn b1 c222" align="right">0.203</TD></TR><TR id="HC_M2_0606_P::1415809_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">143
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1415809_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1415809_at')" class="fs12 fwn">1415809_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21984" TARGET="_blank" class="fs12 fwn">Tpbpa</A></TD><TD class="fs12 fwn b1 c222">trophoblast specific protein alpha</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 61.039931</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.590</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1415809_at')" class="fs12 fwn ffl">0.906</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.335</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tpbpa',0)" class="fs12 fwn ff1">-0.301</A></TD><TD class="fs12 fwn b1 c222" align="right">0.135</TD></TR><TR id="HC_M2_0606_P::1439745_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">144
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439745_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439745_at')" class="fs12 fwn">1439745_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=81904" TARGET="_blank" class="fs12 fwn">Cacng7</A></TD><TD class="fs12 fwn b1 c222">calcium channel, voltage-dependent, gamma subunit 7 (type II transmembrane AMPA receptor regulatory protein); mid distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 91.984490</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.342</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 65.704271</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439745_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.183</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cacng7',0)" class="fs12 fwn ff1">0.112</A></TD><TD class="fs12 fwn b1 c222" align="right">0.586</TD></TR><TR id="HC_M2_0606_P::1446874_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">145
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446874_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446874_at')" class="fs12 fwn">1446874_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=0610009O04Rik" TARGET="_blank" class="fs12 fwn">0610009O04Rik</A></TD><TD class="fs12 fwn b1 c222">AU040128 EST; non-coding</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 31.775078</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.409</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446874_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1445019_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">146
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445019_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445019_at')" class="fs12 fwn">1445019_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12772" TARGET="_blank" class="fs12 fwn">Ccr2</A></TD><TD class="fs12 fwn b1 c222">chemokine (C-C motif) receptor 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 175.537534</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.962</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 84.265108</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445019_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.327</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ccr2',0)" class="fs12 fwn ff1">-0.121</A></TD><TD class="fs12 fwn b1 c222" align="right">0.555</TD></TR><TR id="HC_M2_0606_P::1441250_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">147
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441250_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441250_at')" class="fs12 fwn">1441250_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=9330101J02Rik" TARGET="_blank" class="fs12 fwn">9330101J02Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 80.282265</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.458</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441250_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','9330101J02Rik',0)" class="fs12 fwn ff1">-0.135</A></TD><TD class="fs12 fwn b1 c222" align="right">0.510</TD></TR><TR id="HC_M2_0606_P::1445482_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">148
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445482_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445482_at')" class="fs12 fwn">1445482_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74412" TARGET="_blank" class="fs12 fwn">Gle1l</A></TD><TD class="fs12 fwn b1 c222">GLE1 RNA export mediator-like (yeast</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 29.815414</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.127</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445482_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.253</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gle1l',0)" class="fs12 fwn ff1">-0.043</A></TD><TD class="fs12 fwn b1 c222" align="right">0.834</TD></TR><TR id="HC_M2_0606_P::1421521_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">149
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421521_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421521_at')" class="fs12 fwn">1421521_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67575" TARGET="_blank" class="fs12 fwn">4930430A15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930430A15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 111.033453</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.493</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421521_at')" class="fs12 fwn ffl">0.905</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930430A15Rik',0)" class="fs12 fwn ff1">-0.158</A></TD><TD class="fs12 fwn b1 c222" align="right">0.440</TD></TR><TR id="HC_M2_0606_P::1454005_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">150
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454005_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454005_at')" class="fs12 fwn">1454005_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=55990" TARGET="_blank" class="fs12 fwn">Fmo2</A></TD><TD class="fs12 fwn b1 c222">flavin containing monooxygenase 2; intron 3 or rare short form 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 164.818312</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.688</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454005_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.248</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fmo2',0)" class="fs12 fwn ff1">0.318</A></TD><TD class="fs12 fwn b1 c222" align="right">0.114</TD></TR><TR id="HC_M2_0606_P::1442762_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">151
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442762_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442762_at')" class="fs12 fwn">1442762_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=330010" TARGET="_blank" class="fs12 fwn">BC042775</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930595O22 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 155.417741</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.575</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442762_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1419970_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">152
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419970_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419970_at')" class="fs12 fwn">1419970_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74102" TARGET="_blank" class="fs12 fwn">Slc35a5</A></TD><TD class="fs12 fwn b1 c222">solute carrier family 35, member A5 (probable UDP-sugar transporter protein); mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 45.141755</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.258</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419970_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slc35a5',0)" class="fs12 fwn ff1">0.387</A></TD><TD class="fs12 fwn b1 c222" align="right">0.051</TD></TR><TR id="HC_M2_0606_P::1446710_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">153
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446710_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446710_at')" class="fs12 fwn">1446710_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=235459" TARGET="_blank" class="fs12 fwn">Gtf2a2</A></TD><TD class="fs12 fwn b1 c222">general transcription factor II A, 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 69.872656</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.039</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446710_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.177</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gtf2a2',0)" class="fs12 fwn ff1">-0.198</A></TD><TD class="fs12 fwn b1 c222" align="right">0.332</TD></TR><TR id="HC_M2_0606_P::1459425_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">154
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459425_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459425_at')" class="fs12 fwn">1459425_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=9430089E08Rik" TARGET="_blank" class="fs12 fwn">9430089E08Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 81.395210</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.027</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459425_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444038_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">155
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444038_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444038_at')" class="fs12 fwn">1444038_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=102977" TARGET="_blank" class="fs12 fwn">AU015836</A></TD><TD class="fs12 fwn b1 c222">expressed sequence AU015836</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 91.220468</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.265</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 128.264974</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444038_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','AU015836',0)" class="fs12 fwn ff1">-0.411</A></TD><TD class="fs12 fwn b1 c222" align="right">0.037</TD></TR><TR id="HC_M2_0606_P::1440683_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">156
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440683_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440683_at')" class="fs12 fwn">1440683_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77940" TARGET="_blank" class="fs12 fwn">A930004D18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A930004D18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 17.956991</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.742</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440683_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A930004D18Rik',0)" class="fs12 fwn ff1">0.011</A></TD><TD class="fs12 fwn b1 c222" align="right">0.958</TD></TR><TR id="HC_M2_0606_P::1457394_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">157
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457394_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457394_at')" class="fs12 fwn">1457394_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70226" TARGET="_blank" class="fs12 fwn">2900002K06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2900002K06 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 7.723618</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.155</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457394_at')" class="fs12 fwn ffl">0.904</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459598_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">158
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459598_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459598_at')" class="fs12 fwn">1459598_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=215114" TARGET="_blank" class="fs12 fwn">Hip1</A></TD><TD class="fs12 fwn b1 c222">huntingtin interacting protein 1; highly expressed sequence in last intron of Hip1 (putative)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 135.887928</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.717</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459598_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.315</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hip1',0)" class="fs12 fwn ff1">0.331</A></TD><TD class="fs12 fwn b1 c222" align="right">0.099</TD></TR><TR id="HC_M2_0606_P::1447680_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">159
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447680_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447680_at')" class="fs12 fwn">1447680_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Cpd1" TARGET="_blank" class="fs12 fwn">Cpd1</A></TD><TD class="fs12 fwn b1 c222">cerebellar postnatal development protein 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.057</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447680_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1454726_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">160
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454726_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454726_s_at')" class="fs12 fwn">1454726_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=218232" TARGET="_blank" class="fs12 fwn">Ptpdc1</A></TD><TD class="fs12 fwn b1 c222">protein tyrosine phosphatase domain containing 1; mid distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 48.673552</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.909</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454726_s_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.112</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ptpdc1',0)" class="fs12 fwn ff1">0.198</A></TD><TD class="fs12 fwn b1 c222" align="right">0.331</TD></TR><TR id="HC_M2_0606_P::1447694_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">161
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447694_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447694_x_at')" class="fs12 fwn">1447694_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18007" TARGET="_blank" class="fs12 fwn">Neo1</A></TD><TD class="fs12 fwn b1 c222">neogenin; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 58.722745</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.160</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447694_x_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.367</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Neo1',0)" class="fs12 fwn ff1">0.172</A></TD><TD class="fs12 fwn b1 c222" align="right">0.400</TD></TR><TR id="HC_M2_0606_P::1422941_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">162
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422941_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422941_at')" class="fs12 fwn">1422941_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=93735" TARGET="_blank" class="fs12 fwn">Wnt16</A></TD><TD class="fs12 fwn b1 c222">wingless-related MMTV integration site 16</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 22.247984</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.247</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422941_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.334</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Wnt16',0)" class="fs12 fwn ff1">-0.362</A></TD><TD class="fs12 fwn b1 c222" align="right">0.070</TD></TR><TR id="HC_M2_0606_P::1447157_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">163
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447157_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447157_at')" class="fs12 fwn">1447157_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BB751612" TARGET="_blank" class="fs12 fwn">BB751612</A></TD><TD class="fs12 fwn b1 c222">BB751612</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 70.145271</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.721</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447157_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1427292_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">164
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427292_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427292_at')" class="fs12 fwn">1427292_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16142" TARGET="_blank" class="fs12 fwn">Igl-V1</A></TD><TD class="fs12 fwn b1 c222">immunoglobulin lambda chain, variable 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 19.063348</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.557</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427292_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.206</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Igl-V1',0)" class="fs12 fwn ff1">-0.093</A></TD><TD class="fs12 fwn b1 c222" align="right">0.651</TD></TR><TR id="HC_M2_0606_P::1425675_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">165
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425675_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425675_s_at')" class="fs12 fwn">1425675_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26365" TARGET="_blank" class="fs12 fwn">Ceacam1</A></TD><TD class="fs12 fwn b1 c222">CEA-related cell adhesion molecule 1; mid proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 26.247774</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.826</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425675_s_at')" class="fs12 fwn ffl">0.903</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.383</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ceacam1',0)" class="fs12 fwn ff1">-0.171</A></TD><TD class="fs12 fwn b1 c222" align="right">0.403</TD></TR><TR id="HC_M2_0606_P::1418751_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">166
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418751_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418751_at')" class="fs12 fwn">1418751_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20433" TARGET="_blank" class="fs12 fwn">Sit</A></TD><TD class="fs12 fwn b1 c222">sucrase isomaltase, structural</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 43.495296</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.504</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418751_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421532_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">167
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421532_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421532_at')" class="fs12 fwn">1421532_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=140498" TARGET="_blank" class="fs12 fwn">Lgr8</A></TD><TD class="fs12 fwn b1 c222">leucine-rich repeat-containing G protein-coupled receptor 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 150.872771</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.873</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 132.120931</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421532_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.337</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421078_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">168
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421078_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421078_at')" class="fs12 fwn">1421078_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69852" TARGET="_blank" class="fs12 fwn">Tcf23</A></TD><TD class="fs12 fwn b1 c222">transcription factor 23</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 31.278851</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.456</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421078_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.221</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tcf23',0)" class="fs12 fwn ff1">-0.096</A></TD><TD class="fs12 fwn b1 c222" align="right">0.641</TD></TR><TR id="HC_M2_0606_P::1447247_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">169
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447247_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447247_at')" class="fs12 fwn">1447247_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=217124" TARGET="_blank" class="fs12 fwn">Ppp1r9b</A></TD><TD class="fs12 fwn b1 c222">protein phosphatase 1, regulatory subunit 9B; far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 94.869032</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.685</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447247_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.265</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ppp1r9b',0)" class="fs12 fwn ff1">0.055</A></TD><TD class="fs12 fwn b1 c222" align="right">0.790</TD></TR><TR id="HC_M2_0606_P::1440525_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">170
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440525_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440525_at')" class="fs12 fwn">1440525_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11481" TARGET="_blank" class="fs12 fwn">Acvr2b</A></TD><TD class="fs12 fwn b1 c222">activin A receptor, type IIB; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 119.347231</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.176</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440525_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.379</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Acvr2b',0)" class="fs12 fwn ff1">0.216</A></TD><TD class="fs12 fwn b1 c222" align="right">0.290</TD></TR><TR id="HC_M2_0606_P::1444401_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">171
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444401_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444401_at')" class="fs12 fwn">1444401_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19777" TARGET="_blank" class="fs12 fwn">C80913</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C80913</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 38.787225</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.736</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444401_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.262</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C80913',0)" class="fs12 fwn ff1">-0.067</A></TD><TD class="fs12 fwn b1 c222" align="right">0.745</TD></TR><TR id="HC_M2_0606_P::1419481_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">172
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419481_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419481_at')" class="fs12 fwn">1419481_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20343" TARGET="_blank" class="fs12 fwn">Sell</A></TD><TD class="fs12 fwn b1 c222">selectin, lymphocyte</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 166.009816</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.319</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419481_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.288</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sell',0)" class="fs12 fwn ff1">-0.194</A></TD><TD class="fs12 fwn b1 c222" align="right">0.343</TD></TR><TR id="HC_M2_0606_P::1458930_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">173
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458930_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458930_at')" class="fs12 fwn">1458930_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=9030022M04" TARGET="_blank" class="fs12 fwn">9030022M04</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 99.522213</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.867</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458930_at')" class="fs12 fwn ffl">0.902</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425996_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">174
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425996_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425996_a_at')" class="fs12 fwn">1425996_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20585" TARGET="_blank" class="fs12 fwn">Smarca3</A></TD><TD class="fs12 fwn b1 c222">SWI/SNF related, matrix associated, actin dependent regulator of chromatin, subfamily a, member 3; last two exons of short form message (exons 20 and 21)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 20.006495</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.928</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425996_a_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.290</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1438302_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">175
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438302_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438302_at')" class="fs12 fwn">1438302_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=233490" TARGET="_blank" class="fs12 fwn">Zf</A></TD><TD class="fs12 fwn b1 c222">Zhangfei HCF-binding transcription protein (zinc finger, DHHC domain containing 9, retinal bipolar cell expression signature); antisense in 3' UTR and last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 97.592203</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.302</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438302_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.239</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1433074_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">176
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433074_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433074_at')" class="fs12 fwn">1433074_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=23859" TARGET="_blank" class="fs12 fwn">Dlg2</A></TD><TD class="fs12 fwn b1 c222">discs, large 2 (postsynaptic density protein 93 kD, chapsyn 110); intron 10 or 11</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 99.230589</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.924</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433074_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.224</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Dlg2',0)" class="fs12 fwn ff1">0.195</A></TD><TD class="fs12 fwn b1 c222" align="right">0.340</TD></TR><TR id="HC_M2_0606_P::1449667_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">177
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449667_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449667_at')" class="fs12 fwn">1449667_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BB255841" TARGET="_blank" class="fs12 fwn">BB255841</A></TD><TD class="fs12 fwn b1 c222">BB255841</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 105.254155</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.237</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449667_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421782_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">178
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421782_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421782_a_at')" class="fs12 fwn">1421782_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20600" TARGET="_blank" class="fs12 fwn">Smr2</A></TD><TD class="fs12 fwn b1 c222">submaxillary gland androgen regulated protein 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 88.537572</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.325</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421782_a_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.285</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Smr2',0)" class="fs12 fwn ff1">-0.127</A></TD><TD class="fs12 fwn b1 c222" align="right">0.536</TD></TR><TR id="HC_M2_0606_P::1460732_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">179
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1460732_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1460732_a_at')" class="fs12 fwn">1460732_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19041" TARGET="_blank" class="fs12 fwn">Ppl</A></TD><TD class="fs12 fwn b1 c222">periplakin; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 5.086846</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.963</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1460732_a_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.282</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ppl',0)" class="fs12 fwn ff1">0.066</A></TD><TD class="fs12 fwn b1 c222" align="right">0.748</TD></TR><TR id="HC_M2_0606_P::1425559_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">180
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425559_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425559_a_at')" class="fs12 fwn">1425559_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20216" TARGET="_blank" class="fs12 fwn">Sah</A></TD><TD class="fs12 fwn b1 c222">SA rat hypertension-associated homolog</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 126.924373</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.511</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 66.805956</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425559_a_at')" class="fs12 fwn ffl">0.901</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459688_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">181
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459688_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459688_at')" class="fs12 fwn">1459688_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=2610510H03Rik" TARGET="_blank" class="fs12 fwn">2610510H03Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 128.170930</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.243</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459688_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2610510H03Rik',0)" class="fs12 fwn ff1">-0.066</A></TD><TD class="fs12 fwn b1 c222" align="right">0.747</TD></TR><TR id="HC_M2_0606_P::1446564_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">182
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446564_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446564_at')" class="fs12 fwn">1446564_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=52543" TARGET="_blank" class="fs12 fwn">D18Ertd169e</A></TD><TD class="fs12 fwn b1 c222">DNA segment, Chr 18, ERATO Doi 169, expressed</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 64.069935</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.240</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 180.825581</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446564_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458361_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">183
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458361_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458361_at')" class="fs12 fwn">1458361_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=227525" TARGET="_blank" class="fs12 fwn">Dclre1c</A></TD><TD class="fs12 fwn b1 c222">DNA cross-link repair 1C (Artemis protein, Athabascan-type severe combined immunodeficiency); distal half of 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 3.376655</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.331</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458361_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.264</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Dclre1c',0)" class="fs12 fwn ff1">-0.149</A></TD><TD class="fs12 fwn b1 c222" align="right">0.468</TD></TR><TR id="HC_M2_0606_P::1425003_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">184
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425003_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425003_at')" class="fs12 fwn">1425003_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=243537" TARGET="_blank" class="fs12 fwn">Uroc1</A></TD><TD class="fs12 fwn b1 c222">urocanase domain containing 1; mid distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 90.313994</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.266</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425003_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.172</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Uroc1',0)" class="fs12 fwn ff1">-0.037</A></TD><TD class="fs12 fwn b1 c222" align="right">0.857</TD></TR><TR id="HC_M2_0606_P::1446034_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">185
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446034_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446034_at')" class="fs12 fwn">1446034_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=B430305I03Rik" TARGET="_blank" class="fs12 fwn">B430305I03Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 40.289000</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.111</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446034_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443081_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">186
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443081_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443081_at')" class="fs12 fwn">1443081_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14465" TARGET="_blank" class="fs12 fwn">Gata6</A></TD><TD class="fs12 fwn b1 c222">GATA binding protein 6; intron (from EST AK053151)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 11.057031</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.258</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443081_at')" class="fs12 fwn ffl">0.900</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.432</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gata6',0)" class="fs12 fwn ff1">0.306</A></TD><TD class="fs12 fwn b1 c222" align="right">0.128</TD></TR><TR id="HC_M2_0606_P::1455926_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">187
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1455926_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1455926_at')" class="fs12 fwn">1455926_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Lsm6" TARGET="_blank" class="fs12 fwn">Lsm6</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2410088K19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 77.963060</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.337</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 12.972088</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1455926_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lsm6',0)" class="fs12 fwn ff1">0.024</A></TD><TD class="fs12 fwn b1 c222" align="right">0.909</TD></TR><TR id="HC_M2_0606_P::1433057_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">188
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433057_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433057_at')" class="fs12 fwn">1433057_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=239857" TARGET="_blank" class="fs12 fwn">Igsf4d</A></TD><TD class="fs12 fwn b1 c222">immunoglobulin superfamily, member 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 66.892812</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.039</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433057_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.210</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1447411_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">189
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447411_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447411_at')" class="fs12 fwn">1447411_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22235" TARGET="_blank" class="fs12 fwn">Ugdh</A></TD><TD class="fs12 fwn b1 c222">UDP-glucose dehydrogenase</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 65.821386</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.453</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447411_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.312</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ugdh',0)" class="fs12 fwn ff1">-0.155</A></TD><TD class="fs12 fwn b1 c222" align="right">0.450</TD></TR><TR id="HC_M2_0606_P::1445614_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">190
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445614_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445614_at')" class="fs12 fwn">1445614_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=1190002B21Rik" TARGET="_blank" class="fs12 fwn">1190002B21Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.593</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445614_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1446198_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">191
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446198_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446198_at')" class="fs12 fwn">1446198_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=218613" TARGET="_blank" class="fs12 fwn">D130064H19Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA D130064H19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 112.482252</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.876</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446198_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1436097_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">192
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436097_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436097_x_at')" class="fs12 fwn">1436097_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=216445" TARGET="_blank" class="fs12 fwn">Arhgap9</A></TD><TD class="fs12 fwn b1 c222">Rho GTPase activating protein 9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 126.765937</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.214</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436097_x_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.165</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Arhgap9',0)" class="fs12 fwn ff1">-0.187</A></TD><TD class="fs12 fwn b1 c222" align="right">0.360</TD></TR><TR id="HC_M2_0606_P::1453148_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">193
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453148_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453148_at')" class="fs12 fwn">1453148_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=108151" TARGET="_blank" class="fs12 fwn">Sema3d</A></TD><TD class="fs12 fwn b1 c222">sema domain, immunoglobulin domain (Ig), short basic domain, secreted, (semaphorin) 3D; distal end of last exon and proximal 3' UTR (transQTL on chr 4 in BXD Eye Data)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 12.585192</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.308</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 3.229128</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453148_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.214</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sema3d',0)" class="fs12 fwn ff1">-0.223</A></TD><TD class="fs12 fwn b1 c222" align="right">0.274</TD></TR><TR id="HC_M2_0606_P::1454575_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">194
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454575_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454575_at')" class="fs12 fwn">1454575_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22290" TARGET="_blank" class="fs12 fwn">Uty</A></TD><TD class="fs12 fwn b1 c222">ubiquitously transcribed tetratricopeptide repeat gene, Y chromosome</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrY: 0.377813</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.085</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454575_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.273</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Uty',0)" class="fs12 fwn ff1">0.020</A></TD><TD class="fs12 fwn b1 c222" align="right">0.923</TD></TR><TR id="HC_M2_0606_P::1422400_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">195
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422400_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422400_a_at')" class="fs12 fwn">1422400_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15202" TARGET="_blank" class="fs12 fwn">Hemt1</A></TD><TD class="fs12 fwn b1 c222">hematopoietic cell transcript 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 74.654426</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.273</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422400_a_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.146</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hemt1',0)" class="fs12 fwn ff1">-0.141</A></TD><TD class="fs12 fwn b1 c222" align="right">0.491</TD></TR><TR id="HC_M2_0606_P::1458279_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">196
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458279_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458279_at')" class="fs12 fwn">1458279_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56484" TARGET="_blank" class="fs12 fwn">Foxo3</A></TD><TD class="fs12 fwn b1 c222">forkhead box O3; intron 2 (from AK157015)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 41.927992</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.624</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458279_at')" class="fs12 fwn ffl">0.899</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.325</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Foxo3',0)" class="fs12 fwn ff1">-0.253</A></TD><TD class="fs12 fwn b1 c222" align="right">0.212</TD></TR><TR id="HC_M2_0606_P::1438638_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">197
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438638_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438638_x_at')" class="fs12 fwn">1438638_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69440" TARGET="_blank" class="fs12 fwn">Fam116b</A></TD><TD class="fs12 fwn b1 c222">family with sequence similarity 116, member B (protein LOC414918); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 89.012666</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.423</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438638_x_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1455457_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">198
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1455457_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1455457_at')" class="fs12 fwn">1455457_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=404195" TARGET="_blank" class="fs12 fwn">Cyp2c54</A></TD><TD class="fs12 fwn b1 c222">cytochrome P450, family 2, subfamily c, polypeptide 54 (xenobiotic metabolism, phenytoin, tolbutamide, ibuprofen, warfarin, similar to human CYP2C9 and CYP2C19, also see Cyp2c37 and Cyp2c50); putative 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 40.112624</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.594</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1455457_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.162</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cyp2c54',0)" class="fs12 fwn ff1">-0.110</A></TD><TD class="fs12 fwn b1 c222" align="right">0.591</TD></TR><TR id="HC_M2_0606_P::1418753_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">199
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418753_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418753_at')" class="fs12 fwn">1418753_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14584" TARGET="_blank" class="fs12 fwn">Gfpt2</A></TD><TD class="fs12 fwn b1 c222">glutamine fructose-6-phosphate transaminase 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 49.651525</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.630</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418753_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.275</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gfpt2',0)" class="fs12 fwn ff1">0.138</A></TD><TD class="fs12 fwn b1 c222" align="right">0.500</TD></TR><TR id="HC_M2_0606_P::1453829_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">200
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453829_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453829_at')" class="fs12 fwn">1453829_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69489" TARGET="_blank" class="fs12 fwn">2310007J06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310007J06 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 51.509675</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.717</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453829_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1419846_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">201
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419846_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419846_at')" class="fs12 fwn">1419846_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70439" TARGET="_blank" class="fs12 fwn">Taf15</A></TD><TD class="fs12 fwn b1 c222">TAF15 RNA polymerase II, TATA box binding protein (TBP)-associated factor</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 83.314125</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.190</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419846_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.238</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Taf15',0)" class="fs12 fwn ff1">-0.139</A></TD><TD class="fs12 fwn b1 c222" align="right">0.499</TD></TR><TR id="HC_M2_0606_P::1439876_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">202
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439876_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439876_at')" class="fs12 fwn">1439876_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=53611" TARGET="_blank" class="fs12 fwn">Vti1a</A></TD><TD class="fs12 fwn b1 c222">vesicle transport through interaction with t-SNAREs homolog 1A (yeast)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 55.520980</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.463</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439876_at')" class="fs12 fwn ffl">0.898</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.149</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Vti1a',0)" class="fs12 fwn ff1">-0.059</A></TD><TD class="fs12 fwn b1 c222" align="right">0.773</TD></TR><TR id="HC_M2_0606_P::1444616_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">203
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444616_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444616_x_at')" class="fs12 fwn">1444616_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71542" TARGET="_blank" class="fs12 fwn">8430439C15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 8430439C15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 23.815273</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.987</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444616_x_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443942_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">204
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443942_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443942_at')" class="fs12 fwn">1443942_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=213054" TARGET="_blank" class="fs12 fwn">Gabpb2</A></TD><TD class="fs12 fwn b1 c222">GA repeat binding protein, beta 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 94.998020</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.373</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 180.825581</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443942_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.263</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gabpb2',0)" class="fs12 fwn ff1">0.154</A></TD><TD class="fs12 fwn b1 c222" align="right">0.453</TD></TR><TR id="HC_M2_0606_P::1431889_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">205
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431889_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431889_x_at')" class="fs12 fwn">1431889_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72242" TARGET="_blank" class="fs12 fwn">Psg21</A></TD><TD class="fs12 fwn b1 c222">pregnancy-specific glycoprotein 21</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 19.232265</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.120</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431889_x_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.228</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Psg21',0)" class="fs12 fwn ff1">-0.249</A></TD><TD class="fs12 fwn b1 c222" align="right">0.221</TD></TR><TR id="HC_M2_0606_P::1458241_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">206
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458241_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458241_at')" class="fs12 fwn">1458241_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15364" TARGET="_blank" class="fs12 fwn">Hmga2</A></TD><TD class="fs12 fwn b1 c222">high mobility group AT-hook 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 119.878694</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.490</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458241_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.419</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hmga2',0)" class="fs12 fwn ff1">-0.233</A></TD><TD class="fs12 fwn b1 c222" align="right">0.252</TD></TR><TR id="HC_M2_0606_P::1437786_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">207
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437786_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437786_at')" class="fs12 fwn">1437786_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97243" TARGET="_blank" class="fs12 fwn">C80008</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C80008</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 97.811298</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.223</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437786_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.190</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1449260_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">208
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449260_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449260_at')" class="fs12 fwn">1449260_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19340" TARGET="_blank" class="fs12 fwn">Rab3d</A></TD><TD class="fs12 fwn b1 c222">RAB3D, member RAS oncogene family</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 21.711263</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.342</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449260_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.278</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rab3d',0)" class="fs12 fwn ff1">0.051</A></TD><TD class="fs12 fwn b1 c222" align="right">0.805</TD></TR><TR id="HC_M2_0606_P::1436068_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">209
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436068_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436068_at')" class="fs12 fwn">1436068_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=229055" TARGET="_blank" class="fs12 fwn">Zbtb10</A></TD><TD class="fs12 fwn b1 c222">zinc finger and BTB domain containing 10</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 9.281604</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.880</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436068_at')" class="fs12 fwn ffl">0.897</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.205</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zbtb10',0)" class="fs12 fwn ff1">-0.280</A></TD><TD class="fs12 fwn b1 c222" align="right">0.165</TD></TR><TR id="HC_M2_0606_P::1430724_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">210
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430724_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430724_at')" class="fs12 fwn">1430724_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71932" TARGET="_blank" class="fs12 fwn">Abhd9</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310063B19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 32.321655</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.135</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430724_at')" class="fs12 fwn ffl">0.896</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.192</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Abhd9',0)" class="fs12 fwn ff1">-0.161</A></TD><TD class="fs12 fwn b1 c222" align="right">0.433</TD></TR><TR id="HC_M2_0606_P::1433097_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">211
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433097_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433097_at')" class="fs12 fwn">1433097_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930473M17Rik" TARGET="_blank" class="fs12 fwn">4930473M17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930473M17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.612</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433097_at')" class="fs12 fwn ffl">0.896</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459184_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">212
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459184_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459184_at')" class="fs12 fwn">1459184_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BG071075" TARGET="_blank" class="fs12 fwn">BG071075</A></TD><TD class="fs12 fwn b1 c222">BG071075</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 49.956590</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.677</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459184_at')" class="fs12 fwn ffl">0.896</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443193_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">213
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443193_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443193_at')" class="fs12 fwn">1443193_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319953" TARGET="_blank" class="fs12 fwn">Ttll1</A></TD><TD class="fs12 fwn b1 c222">tubulin tyrosine ligase-like 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 83.322408</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.713</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443193_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.162</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ttll1',0)" class="fs12 fwn ff1">0.027</A></TD><TD class="fs12 fwn b1 c222" align="right">0.897</TD></TR><TR id="HC_M2_0606_P::1427800_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">214
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427800_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427800_at')" class="fs12 fwn">1427800_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=170652" TARGET="_blank" class="fs12 fwn">Krtap16-2</A></TD><TD class="fs12 fwn b1 c222">keratin associated protein 16-2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 88.869331</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.702</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427800_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1431969_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">215
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431969_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431969_at')" class="fs12 fwn">1431969_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74852" TARGET="_blank" class="fs12 fwn">4930402D18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930402D18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 60.759516</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.563</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 55.184322</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431969_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1451880_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">216
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451880_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451880_at')" class="fs12 fwn">1451880_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BC006743" TARGET="_blank" class="fs12 fwn">BC006743</A></TD><TD class="fs12 fwn b1 c222">BC006743 protein; exon and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 75.152448</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.293</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451880_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1435979_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">217
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435979_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435979_a_at')" class="fs12 fwn">1435979_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=217328" TARGET="_blank" class="fs12 fwn">E330039G21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA E330039G21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 115.747962</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.012</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435979_a_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.215</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1454574_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">218
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454574_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454574_at')" class="fs12 fwn">1454574_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72007" TARGET="_blank" class="fs12 fwn">Fndc3b</A></TD><TD class="fs12 fwn b1 c222">fibronectin type III domain containing 3B</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 27.314077</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.327</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454574_at')" class="fs12 fwn ffl">0.895</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.278</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fndc3b',0)" class="fs12 fwn ff1">0.338</A></TD><TD class="fs12 fwn b1 c222" align="right">0.092</TD></TR><TR id="HC_M2_0606_P::1437431_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">219
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437431_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437431_at')" class="fs12 fwn">1437431_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=13047" TARGET="_blank" class="fs12 fwn">Cux1</A></TD><TD class="fs12 fwn b1 c222">cut-like homeobox 1 (CCAAT displacement protein)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 136.958993</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.327</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437431_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.436</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cux1',0)" class="fs12 fwn ff1">-0.152</A></TD><TD class="fs12 fwn b1 c222" align="right">0.459</TD></TR><TR id="HC_M2_0606_P::1458587_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">220
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458587_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458587_at')" class="fs12 fwn">1458587_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69657" TARGET="_blank" class="fs12 fwn">2310047D07Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310047D07 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 150.048850</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.188</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458587_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2310047D07Rik',0)" class="fs12 fwn ff1">-0.283</A></TD><TD class="fs12 fwn b1 c222" align="right">0.161</TD></TR><TR id="HC_M2_0606_P::1457465_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">221
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457465_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457465_at')" class="fs12 fwn">1457465_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74493" TARGET="_blank" class="fs12 fwn">Tnks2</A></TD><TD class="fs12 fwn b1 c222">tankyrase, TRF1-interacting ankyrin-related ADP-ribose polymerase 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 6.213966</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.519</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457465_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.228</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tnks2',0)" class="fs12 fwn ff1">0.054</A></TD><TD class="fs12 fwn b1 c222" align="right">0.795</TD></TR><TR id="HC_M2_0606_P::1444284_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">222
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444284_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444284_at')" class="fs12 fwn">1444284_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320327" TARGET="_blank" class="fs12 fwn">A430106G13Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A430106G13 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 139.827349</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.963</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444284_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A430106G13Rik',0)" class="fs12 fwn ff1">0.014</A></TD><TD class="fs12 fwn b1 c222" align="right">0.946</TD></TR><TR id="HC_M2_0606_P::1427516_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">223
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427516_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427516_a_at')" class="fs12 fwn">1427516_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=117606" TARGET="_blank" class="fs12 fwn">Boc</A></TD><TD class="fs12 fwn b1 c222">biregional cell adhesion molecule-related/down-regulated by oncogenes (Cdon) binding protein; last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 44.485727</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.521</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427516_a_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.499</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Boc',0)" class="fs12 fwn ff1">-0.200</A></TD><TD class="fs12 fwn b1 c222" align="right">0.327</TD></TR><TR id="HC_M2_0606_P::1457043_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">224
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457043_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457043_at')" class="fs12 fwn">1457043_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=381694" TARGET="_blank" class="fs12 fwn">B3galtl</A></TD><TD class="fs12 fwn b1 c222">beta 1,3-galactosyltransferase-like; far 3' UTR (from AK083491)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 150.564671</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.822</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457043_at')" class="fs12 fwn ffl">0.894</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.263</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','B3galtl',0)" class="fs12 fwn ff1">0.129</A></TD><TD class="fs12 fwn b1 c222" align="right">0.529</TD></TR><TR id="HC_M2_0606_P::1427497_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">225
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427497_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427497_at')" class="fs12 fwn">1427497_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=212153" TARGET="_blank" class="fs12 fwn">2610015P09Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2610015P09 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 43.963939</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.376</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427497_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1420041_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">226
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420041_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420041_at')" class="fs12 fwn">1420041_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Snrpb" TARGET="_blank" class="fs12 fwn">Snrpb</A></TD><TD class="fs12 fwn b1 c222">Mus musculus transcribed sequence with strong similarity to protein pir:T08738 (H.sapiens) T08738 hypothetical protein DKFZp586E0518.1 - human (fragment)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 56.009203</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.079</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420041_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Snrpb',0)" class="fs12 fwn ff1">-0.207</A></TD><TD class="fs12 fwn b1 c222" align="right">0.309</TD></TR><TR id="HC_M2_0606_P::1425295_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">227
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425295_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425295_at')" class="fs12 fwn">1425295_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=93726" TARGET="_blank" class="fs12 fwn">Ear11</A></TD><TD class="fs12 fwn b1 c222">eosinophil-associated, ribonuclease A family, member 11</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 51.874971</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.344</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425295_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.184</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ear11',0)" class="fs12 fwn ff1">0.007</A></TD><TD class="fs12 fwn b1 c222" align="right">0.974</TD></TR><TR id="HC_M2_0606_P::1432122_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">228
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432122_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432122_at')" class="fs12 fwn">1432122_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71060" TARGET="_blank" class="fs12 fwn">4933403H06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933403G17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 154.800362</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.023</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432122_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432306_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">229
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432306_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432306_at')" class="fs12 fwn">1432306_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=217944" TARGET="_blank" class="fs12 fwn">Rapgef5</A></TD><TD class="fs12 fwn b1 c222">Rap guanine nucleotide exchange factor (GEF) 5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 118.841656</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.294</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432306_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.209</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rapgef5',0)" class="fs12 fwn ff1">0.263</A></TD><TD class="fs12 fwn b1 c222" align="right">0.193</TD></TR><TR id="HC_M2_0606_P::1431919_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">230
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431919_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431919_at')" class="fs12 fwn">1431919_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=246102" TARGET="_blank" class="fs12 fwn">Rttn</A></TD><TD class="fs12 fwn b1 c222">rotatin</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 89.283690</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.459</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431919_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.313</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rttn',0)" class="fs12 fwn ff1">-0.139</A></TD><TD class="fs12 fwn b1 c222" align="right">0.497</TD></TR><TR id="HC_M2_0606_P::1425438_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">231
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425438_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425438_at')" class="fs12 fwn">1425438_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Slc26a8" TARGET="_blank" class="fs12 fwn">Slc26a8</A></TD><TD class="fs12 fwn b1 c222">clone MGC:36892 IMAGE:4935116, Ntrk2 intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.594</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 132.120931</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425438_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slc26a8',0)" class="fs12 fwn ff1">-0.081</A></TD><TD class="fs12 fwn b1 c222" align="right">0.696</TD></TR><TR id="HC_M2_0606_P::1446970_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">232
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446970_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446970_at')" class="fs12 fwn">1446970_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=216766" TARGET="_blank" class="fs12 fwn">Gemin5</A></TD><TD class="fs12 fwn b1 c222">gem (nuclear organelle) associated protein 5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 57.936263</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.766</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446970_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.199</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gemin5',0)" class="fs12 fwn ff1">-0.240</A></TD><TD class="fs12 fwn b1 c222" align="right">0.237</TD></TR><TR id="HC_M2_0606_P::1437523_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">233
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437523_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437523_s_at')" class="fs12 fwn">1437523_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=24053" TARGET="_blank" class="fs12 fwn">Sgcg</A></TD><TD class="fs12 fwn b1 c222">sarcoglycan, gamma (35kDa dystrophin-associated glycoprotein, limb-girdle muscular dystrophy, type 2C); mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 61.839916</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.504</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 120.021465</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437523_s_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sgcg',0)" class="fs12 fwn ff1">-0.274</A></TD><TD class="fs12 fwn b1 c222" align="right">0.175</TD></TR><TR id="HC_M2_0606_P::1427787_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">234
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427787_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427787_at')" class="fs12 fwn">1427787_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=83395" TARGET="_blank" class="fs12 fwn">Sp6</A></TD><TD class="fs12 fwn b1 c222">trans-acting transcription factor 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 96.884341</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.188</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427787_at')" class="fs12 fwn ffl">0.893</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.358</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sp6',0)" class="fs12 fwn ff1">-0.048</A></TD><TD class="fs12 fwn b1 c222" align="right">0.816</TD></TR><TR id="HC_M2_0606_P::1457967_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">235
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457967_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457967_at')" class="fs12 fwn">1457967_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77913" TARGET="_blank" class="fs12 fwn">A030003K21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A030003K21; 3' end of EST</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 82.939193</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.087</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457967_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A030003K21Rik',0)" class="fs12 fwn ff1">-0.186</A></TD><TD class="fs12 fwn b1 c222" align="right">0.363</TD></TR><TR id="HC_M2_0606_P::1418609_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">236
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418609_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418609_at')" class="fs12 fwn">1418609_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=54448" TARGET="_blank" class="fs12 fwn">Il1f6</A></TD><TD class="fs12 fwn b1 c222">interleukin 1 family, member 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 24.071577</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.903</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418609_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.239</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Il1f6',0)" class="fs12 fwn ff1">-0.230</A></TD><TD class="fs12 fwn b1 c222" align="right">0.257</TD></TR><TR id="HC_M2_0606_P::1458857_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">237
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458857_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458857_at')" class="fs12 fwn">1458857_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AV125803" TARGET="_blank" class="fs12 fwn">AV125803</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 36.877747</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.285</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458857_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458681_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">238
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458681_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458681_at')" class="fs12 fwn">1458681_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=107358" TARGET="_blank" class="fs12 fwn">Tm9sf3</A></TD><TD class="fs12 fwn b1 c222">transmembrane protein 9 superfamily member 3; intron 1 (AW823484)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 41.337580</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.124</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458681_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.204</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tm9sf3',0)" class="fs12 fwn ff1">-0.305</A></TD><TD class="fs12 fwn b1 c222" align="right">0.130</TD></TR><TR id="HC_M2_0606_P::1443354_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">239
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443354_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443354_at')" class="fs12 fwn">1443354_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66949" TARGET="_blank" class="fs12 fwn">Trim59</A></TD><TD class="fs12 fwn b1 c222">tripartite motif-containing 59</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 68.842720</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.084</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443354_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.202</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Trim59',0)" class="fs12 fwn ff1">-0.365</A></TD><TD class="fs12 fwn b1 c222" align="right">0.066</TD></TR><TR id="HC_M2_0606_P::1428925_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">240
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428925_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428925_at')" class="fs12 fwn">1428925_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=223870" TARGET="_blank" class="fs12 fwn">Senp1</A></TD><TD class="fs12 fwn b1 c222">SUMO1/sentrin specific protease 1; putative far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 97.869552</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.642</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428925_at')" class="fs12 fwn ffl">0.892</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Senp1',0)" class="fs12 fwn ff1">-0.089</A></TD><TD class="fs12 fwn b1 c222" align="right">0.664</TD></TR><TR id="HC_M2_0606_P::1417074_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">241
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1417074_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1417074_at')" class="fs12 fwn">1417074_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26366" TARGET="_blank" class="fs12 fwn">Ceacam10</A></TD><TD class="fs12 fwn b1 c222">CEA-related cell adhesion molecule 10</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 25.565921</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.063</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1417074_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.271</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ceacam10',0)" class="fs12 fwn ff1">0.118</A></TD><TD class="fs12 fwn b1 c222" align="right">0.564</TD></TR><TR id="HC_M2_0606_P::1444940_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">242
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444940_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444940_at')" class="fs12 fwn">1444940_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97850" TARGET="_blank" class="fs12 fwn">C76411</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C76411</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 6.217611</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.809</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444940_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1438865_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">243
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438865_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438865_at')" class="fs12 fwn">1438865_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14950" TARGET="_blank" class="fs12 fwn">H13</A></TD><TD class="fs12 fwn b1 c222">histocompatibility 13</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 152.533822</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.749</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438865_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.285</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','H13',0)" class="fs12 fwn ff1">0.187</A></TD><TD class="fs12 fwn b1 c222" align="right">0.361</TD></TR><TR id="HC_M2_0606_P::1430627_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">244
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430627_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430627_at')" class="fs12 fwn">1430627_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=224105" TARGET="_blank" class="fs12 fwn">Pak2</A></TD><TD class="fs12 fwn b1 c222">p21 (CDKN1A)-activated kinase 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 32.033225</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.461</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430627_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.288</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pak2',0)" class="fs12 fwn ff1">0.120</A></TD><TD class="fs12 fwn b1 c222" align="right">0.558</TD></TR><TR id="HC_M2_0606_P::1430540_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">245
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430540_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430540_at')" class="fs12 fwn">1430540_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68185" TARGET="_blank" class="fs12 fwn">5330414O08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5330414O08 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 107.688583</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.640</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430540_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.183</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443798_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">246
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443798_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443798_at')" class="fs12 fwn">1443798_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18707" TARGET="_blank" class="fs12 fwn">Pik3cd</A></TD><TD class="fs12 fwn b1 c222">phosphatidylinositol 3-kinase catalytic delta polypeptide; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 149.023280</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.249</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443798_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.322</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pik3cd',0)" class="fs12 fwn ff1">-0.198</A></TD><TD class="fs12 fwn b1 c222" align="right">0.333</TD></TR><TR id="HC_M2_0606_P::1432784_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">247
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432784_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432784_at')" class="fs12 fwn">1432784_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930556A17Rik" TARGET="_blank" class="fs12 fwn">4930556A17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930556A17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 37.737583</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.997</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432784_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930556A17Rik',0)" class="fs12 fwn ff1">-0.259</A></TD><TD class="fs12 fwn b1 c222" align="right">0.201</TD></TR><TR id="HC_M2_0606_P::1455427_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">248
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1455427_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1455427_at')" class="fs12 fwn">1455427_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11602" TARGET="_blank" class="fs12 fwn">Angpt4</A></TD><TD class="fs12 fwn b1 c222">angiopoietin 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 151.770499</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.796</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1455427_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.253</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Angpt4',0)" class="fs12 fwn ff1">0.267</A></TD><TD class="fs12 fwn b1 c222" align="right">0.187</TD></TR><TR id="HC_M2_0606_P::1432687_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">249
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432687_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432687_at')" class="fs12 fwn">1432687_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74575" TARGET="_blank" class="fs12 fwn">4833406M21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4833406M21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 110.440351</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.456</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 65.704271</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432687_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459943_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">250
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459943_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459943_at')" class="fs12 fwn">1459943_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=402732" TARGET="_blank" class="fs12 fwn">A030012G06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A030012G06 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 97.190911</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.523</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459943_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1429636_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">251
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429636_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429636_at')" class="fs12 fwn">1429636_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76386" TARGET="_blank" class="fs12 fwn">1700010D01Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700010D01 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 89.735434</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.536</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429636_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700010D01Rik',0)" class="fs12 fwn ff1">-0.155</A></TD><TD class="fs12 fwn b1 c222" align="right">0.449</TD></TR><TR id="HC_M2_0606_P::1459824_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">252
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459824_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459824_at')" class="fs12 fwn">1459824_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20588" TARGET="_blank" class="fs12 fwn">Smarcc1</A></TD><TD class="fs12 fwn b1 c222">SWI/SNF related, matrix associated, actin dependent regulator of chromatin, subfamily c, member 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 110.139760</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.344</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459824_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.286</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Smarcc1',0)" class="fs12 fwn ff1">0.086</A></TD><TD class="fs12 fwn b1 c222" align="right">0.678</TD></TR><TR id="HC_M2_0606_P::1436565_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">253
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436565_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436565_at')" class="fs12 fwn">1436565_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26366" TARGET="_blank" class="fs12 fwn">Ceacam10</A></TD><TD class="fs12 fwn b1 c222">CEA-related cell adhesion molecule 10</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 25.569106</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.726</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436565_at')" class="fs12 fwn ffl">0.891</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.271</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ceacam10',0)" class="fs12 fwn ff1">0.118</A></TD><TD class="fs12 fwn b1 c222" align="right">0.564</TD></TR><TR id="HC_M2_0606_P::1442459_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">254
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442459_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442459_at')" class="fs12 fwn">1442459_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=240322" TARGET="_blank" class="fs12 fwn">Adamts19</A></TD><TD class="fs12 fwn b1 c222">a disintegrin-like and metalloprotease (reprolysin type) with thrombospondin type 1 motif, 19</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 59.150914</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.943</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442459_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.197</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Adamts19',0)" class="fs12 fwn ff1">-0.091</A></TD><TD class="fs12 fwn b1 c222" align="right">0.660</TD></TR><TR id="HC_M2_0606_P::1450828_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">255
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450828_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450828_at')" class="fs12 fwn">1450828_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=118449" TARGET="_blank" class="fs12 fwn">Synpo2</A></TD><TD class="fs12 fwn b1 c222">synaptopodin 2; exon 1 and intron 1 (transQTL on Chr 4 in BXD eye data)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 122.815196</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.892</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450828_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.269</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Synpo2',0)" class="fs12 fwn ff1">0.138</A></TD><TD class="fs12 fwn b1 c222" align="right">0.501</TD></TR><TR id="HC_M2_0606_P::1429126_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">256
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429126_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429126_at')" class="fs12 fwn">1429126_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=53893" TARGET="_blank" class="fs12 fwn">Nudt5</A></TD><TD class="fs12 fwn b1 c222">nudix (nucleoside diphosphate linked moiety X)-type motif 5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 5.791385</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.927</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429126_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.188</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nudt5',0)" class="fs12 fwn ff1">0.134</A></TD><TD class="fs12 fwn b1 c222" align="right">0.514</TD></TR><TR id="HC_M2_0606_P::1444590_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">257
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444590_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444590_at')" class="fs12 fwn">1444590_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72108" TARGET="_blank" class="fs12 fwn">2010305K11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2010305K11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 26.862660</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.269</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444590_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.216</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425229_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">258
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425229_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425229_a_at')" class="fs12 fwn">1425229_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21416" TARGET="_blank" class="fs12 fwn">Tcf7l2</A></TD><TD class="fs12 fwn b1 c222">transcription factor 7-like 2, T-cell specific, HMG-box; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 56.006257</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.309</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425229_a_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.313</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tcf7l2',0)" class="fs12 fwn ff1">0.107</A></TD><TD class="fs12 fwn b1 c222" align="right">0.602</TD></TR><TR id="HC_M2_0606_P::1444229_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">259
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444229_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444229_at')" class="fs12 fwn">1444229_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11819" TARGET="_blank" class="fs12 fwn">Nr2f2</A></TD><TD class="fs12 fwn b1 c222">nuclear receptor subfamily 2, group F, member 2; intron 2 (from EST AK135306)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 77.500623</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.240</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444229_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.447</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nr2f2',0)" class="fs12 fwn ff1">0.440</A></TD><TD class="fs12 fwn b1 c222" align="right">0.025</TD></TR><TR id="HC_M2_0606_P::1428518_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">260
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428518_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428518_at')" class="fs12 fwn">1428518_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71876" TARGET="_blank" class="fs12 fwn">Mlf1ip</A></TD><TD class="fs12 fwn b1 c222">myeloid leukemia factor 1 interacting protein</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 47.663607</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.484</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428518_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.245</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1420701_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">261
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420701_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420701_at')" class="fs12 fwn">1420701_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16623" TARGET="_blank" class="fs12 fwn">Klk1</A></TD><TD class="fs12 fwn b1 c222">kallikrein 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 51.225624</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.912</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420701_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.262</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Klk1',0)" class="fs12 fwn ff1">-0.276</A></TD><TD class="fs12 fwn b1 c222" align="right">0.173</TD></TR><TR id="HC_M2_0606_P::1418705_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">262
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418705_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418705_at')" class="fs12 fwn">1418705_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12951" TARGET="_blank" class="fs12 fwn">Crx</A></TD><TD class="fs12 fwn b1 c222">cone-rod homeobox containing gene (rod-cone dystrophy 2); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 16.451315</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.784</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418705_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.300</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Crx',0)" class="fs12 fwn ff1">0.040</A></TD><TD class="fs12 fwn b1 c222" align="right">0.848</TD></TR><TR id="HC_M2_0606_P::1444916_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">263
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444916_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444916_at')" class="fs12 fwn">1444916_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=383592" TARGET="_blank" class="fs12 fwn">Gm1305</A></TD><TD class="fs12 fwn b1 c222">gene model 1305; antisense in intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 181.666208</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.736</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444916_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gm1305',0)" class="fs12 fwn ff1">-0.101</A></TD><TD class="fs12 fwn b1 c222" align="right">0.625</TD></TR><TR id="HC_M2_0606_P::1452564_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">264
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452564_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452564_at')" class="fs12 fwn">1452564_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Ofa" TARGET="_blank" class="fs12 fwn">Ofa</A></TD><TD class="fs12 fwn b1 c222">oncofetal antigen</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.370</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452564_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1445509_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">265
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445509_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445509_at')" class="fs12 fwn">1445509_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=223922" TARGET="_blank" class="fs12 fwn">Atf7</A></TD><TD class="fs12 fwn b1 c222">activating transcription factor 7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 102.378541</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.541</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445509_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.253</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Atf7',0)" class="fs12 fwn ff1">0.084</A></TD><TD class="fs12 fwn b1 c222" align="right">0.682</TD></TR><TR id="HC_M2_0606_P::1432338_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">266
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432338_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432338_at')" class="fs12 fwn">1432338_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73909" TARGET="_blank" class="fs12 fwn">4833419O12Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4833419O12 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 20.800510</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.689</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432338_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1418402_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">267
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418402_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418402_at')" class="fs12 fwn">1418402_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11492" TARGET="_blank" class="fs12 fwn">Adam19</A></TD><TD class="fs12 fwn b1 c222">a disintegrin and metalloproteinase domain 19 (meltrin beta, dendritic cell marker); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 45.960270</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.939</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418402_at')" class="fs12 fwn ffl">0.890</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.305</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Adam19',0)" class="fs12 fwn ff1">0.052</A></TD><TD class="fs12 fwn b1 c222" align="right">0.800</TD></TR><TR id="HC_M2_0606_P::1456432_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">268
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456432_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456432_at')" class="fs12 fwn">1456432_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319627" TARGET="_blank" class="fs12 fwn">A630035D09Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A630035D09 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 80.404374</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.800</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456432_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421130_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">269
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421130_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421130_at')" class="fs12 fwn">1421130_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56707" TARGET="_blank" class="fs12 fwn">Zfp111</A></TD><TD class="fs12 fwn b1 c222">zinc finger protein 111</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 24.981969</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.389</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421130_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.219</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zfp111',0)" class="fs12 fwn ff1">0.112</A></TD><TD class="fs12 fwn b1 c222" align="right">0.586</TD></TR><TR id="HC_M2_0606_P::1453574_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">270
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453574_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453574_at')" class="fs12 fwn">1453574_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15122" TARGET="_blank" class="fs12 fwn">Hba-a1</A></TD><TD class="fs12 fwn b1 c222">hemoglobin alpha, adult chain 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.297</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453574_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.246</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hba-a1',0)" class="fs12 fwn ff1">-0.021</A></TD><TD class="fs12 fwn b1 c222" align="right">0.918</TD></TR><TR id="HC_M2_0606_P::1431546_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">271
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431546_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431546_at')" class="fs12 fwn">1431546_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=75819" TARGET="_blank" class="fs12 fwn">4930509K18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930509K18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 40.264170</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.900</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431546_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1452311_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">272
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452311_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452311_at')" class="fs12 fwn">1452311_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74129" TARGET="_blank" class="fs12 fwn">Dmgdh</A></TD><TD class="fs12 fwn b1 c222">dimethylglycine dehydrogenase precursor</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 94.522210</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.314</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452311_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.248</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Dmgdh',0)" class="fs12 fwn ff1">-0.085</A></TD><TD class="fs12 fwn b1 c222" align="right">0.679</TD></TR><TR id="HC_M2_0606_P::1447672_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">273
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447672_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447672_x_at')" class="fs12 fwn">1447672_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AW539964" TARGET="_blank" class="fs12 fwn">AW539964</A></TD><TD class="fs12 fwn b1 c222">hypothetical protein E130013P03</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 108.455541</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.243</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">7.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447672_x_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444809_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">274
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444809_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444809_at')" class="fs12 fwn">1444809_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66510" TARGET="_blank" class="fs12 fwn">Rnf181</A></TD><TD class="fs12 fwn b1 c222">ESTs, Weakly similar to similar to RIKEN cDNA 1810006A16 gene [Homo sapiens] [H.sapiens]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 112.483988</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.033</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444809_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.151</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rnf181',0)" class="fs12 fwn ff1">0.418</A></TD><TD class="fs12 fwn b1 c222" align="right">0.034</TD></TR><TR id="HC_M2_0606_P::1430768_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">275
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430768_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430768_at')" class="fs12 fwn">1430768_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15398" TARGET="_blank" class="fs12 fwn">Hoxa13</A></TD><TD class="fs12 fwn b1 c222">homeo box A13</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 52.206522</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.288</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430768_at')" class="fs12 fwn ffl">0.889</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.482</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hoxa13',0)" class="fs12 fwn ff1">0.402</A></TD><TD class="fs12 fwn b1 c222" align="right">0.042</TD></TR><TR id="HC_M2_0606_P::1450567_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">276
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450567_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450567_a_at')" class="fs12 fwn">1450567_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12824" TARGET="_blank" class="fs12 fwn">Col2a1</A></TD><TD class="fs12 fwn b1 c222">procollagen, type II, alpha 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 97.806471</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.511</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450567_a_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.393</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Col2a1',0)" class="fs12 fwn ff1">-0.156</A></TD><TD class="fs12 fwn b1 c222" align="right">0.446</TD></TR><TR id="HC_M2_0606_P::1430461_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">277
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430461_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430461_at')" class="fs12 fwn">1430461_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73606" TARGET="_blank" class="fs12 fwn">1700120E14Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700120E14 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 74.655595</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.652</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430461_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443474_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">278
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443474_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443474_at')" class="fs12 fwn">1443474_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=52359" TARGET="_blank" class="fs12 fwn">D7Ertd495e</A></TD><TD class="fs12 fwn b1 c222">DNA segment, Chr 7, ERATO Doi 495, expressed</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 132.640674</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.231</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443474_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1449242_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">279
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449242_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449242_s_at')" class="fs12 fwn">1449242_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=94175" TARGET="_blank" class="fs12 fwn">Hrg</A></TD><TD class="fs12 fwn b1 c222">histidine-rich glycoprotein; last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 22.961283</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.734</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449242_s_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.277</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hrg',0)" class="fs12 fwn ff1">-0.096</A></TD><TD class="fs12 fwn b1 c222" align="right">0.640</TD></TR><TR id="HC_M2_0606_P::1417413_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">280
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1417413_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1417413_at')" class="fs12 fwn">1417413_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16433" TARGET="_blank" class="fs12 fwn">Cuzd1</A></TD><TD class="fs12 fwn b1 c222">CUB and zona pellucida-like domains 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 138.452097</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.488</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 149.089195</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1417413_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.306</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cuzd1',0)" class="fs12 fwn ff1">0.103</A></TD><TD class="fs12 fwn b1 c222" align="right">0.615</TD></TR><TR id="HC_M2_0606_P::1452493_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">281
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452493_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452493_s_at')" class="fs12 fwn">1452493_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15416" TARGET="_blank" class="fs12 fwn">Hoxb8</A></TD><TD class="fs12 fwn b1 c222">homeo box B8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 96.146110</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.459</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452493_s_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.420</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hoxb8',0)" class="fs12 fwn ff1">0.249</A></TD><TD class="fs12 fwn b1 c222" align="right">0.221</TD></TR><TR id="HC_M2_0606_P::1432048_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">282
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432048_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432048_at')" class="fs12 fwn">1432048_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=6330565B04Rik" TARGET="_blank" class="fs12 fwn">6330565B04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 6330565B04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 28.626931</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.673</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432048_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','6330565B04Rik',0)" class="fs12 fwn ff1">-0.014</A></TD><TD class="fs12 fwn b1 c222" align="right">0.947</TD></TR><TR id="HC_M2_0606_P::1433091_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">283
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433091_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433091_at')" class="fs12 fwn">1433091_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=6430514K02Rik" TARGET="_blank" class="fs12 fwn">6430514K02Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 6430514K02 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 50.824263</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.256</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433091_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1457554_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">284
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457554_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457554_at')" class="fs12 fwn">1457554_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=238055" TARGET="_blank" class="fs12 fwn">Apob</A></TD><TD class="fs12 fwn b1 c222">apolipoprotein B</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 8.011688</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.430</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457554_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.225</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Apob',0)" class="fs12 fwn ff1">-0.011</A></TD><TD class="fs12 fwn b1 c222" align="right">0.958</TD></TR><TR id="HC_M2_0606_P::1433366_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">285
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433366_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433366_at')" class="fs12 fwn">1433366_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26419" TARGET="_blank" class="fs12 fwn">Mapk8</A></TD><TD class="fs12 fwn b1 c222">mitogen activated protein kinase 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 34.234481</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.776</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433366_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.295</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mapk8',0)" class="fs12 fwn ff1">0.062</A></TD><TD class="fs12 fwn b1 c222" align="right">0.762</TD></TR><TR id="HC_M2_0606_P::1420231_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">286
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420231_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420231_at')" class="fs12 fwn">1420231_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Zfp59" TARGET="_blank" class="fs12 fwn">Zfp59</A></TD><TD class="fs12 fwn b1 c222">zinc finger protein 59</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.003</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420231_at')" class="fs12 fwn ffl">0.888</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zfp59',0)" class="fs12 fwn ff1">-0.250</A></TD><TD class="fs12 fwn b1 c222" align="right">0.218</TD></TR><TR id="HC_M2_0606_P::1454279_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">287
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454279_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454279_at')" class="fs12 fwn">1454279_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=53814" TARGET="_blank" class="fs12 fwn">Oaz3</A></TD><TD class="fs12 fwn b1 c222">ornithine decarboxylase antizyme 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 94.239326</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.340</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454279_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.234</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Oaz3',0)" class="fs12 fwn ff1">-0.036</A></TD><TD class="fs12 fwn b1 c222" align="right">0.860</TD></TR><TR id="HC_M2_0606_P::1417828_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">288
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1417828_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1417828_at')" class="fs12 fwn">1417828_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11833" TARGET="_blank" class="fs12 fwn">Aqp8</A></TD><TD class="fs12 fwn b1 c222">aquaporin 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 130.611006</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.655</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1417828_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.272</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Aqp8',0)" class="fs12 fwn ff1">-0.178</A></TD><TD class="fs12 fwn b1 c222" align="right">0.383</TD></TR><TR id="HC_M2_0606_P::1428020_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">289
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428020_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428020_at')" class="fs12 fwn">1428020_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70207" TARGET="_blank" class="fs12 fwn">2310066N05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310066I18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 146.169620</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.212</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 12.565616</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428020_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.150</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421485_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">290
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421485_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421485_at')" class="fs12 fwn">1421485_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=140810" TARGET="_blank" class="fs12 fwn">Ttbk2</A></TD><TD class="fs12 fwn b1 c222">tau tubulin kinase 2; three exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 120.581619</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.966</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421485_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.166</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ttbk2',0)" class="fs12 fwn ff1">-0.136</A></TD><TD class="fs12 fwn b1 c222" align="right">0.509</TD></TR><TR id="HC_M2_0606_P::1428378_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">291
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428378_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428378_at')" class="fs12 fwn">1428378_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78781" TARGET="_blank" class="fs12 fwn">Zc3hav1</A></TD><TD class="fs12 fwn b1 c222">zinc finger CCCH type, antiviral 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 38.265753</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.891</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428378_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.236</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zc3hav1',0)" class="fs12 fwn ff1">-0.051</A></TD><TD class="fs12 fwn b1 c222" align="right">0.804</TD></TR><TR id="HC_M2_0606_P::1432204_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">292
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432204_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432204_at')" class="fs12 fwn">1432204_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=75941" TARGET="_blank" class="fs12 fwn">4930570B17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930570B17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 30.528000</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.054</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 79.991491</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432204_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1421795_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">293
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421795_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421795_s_at')" class="fs12 fwn">1421795_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=58179" TARGET="_blank" class="fs12 fwn">Klrc3</A></TD><TD class="fs12 fwn b1 c222">killer cell lectin-like receptor subfamily C, member 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 129.593212</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.337</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421795_s_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.140</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Klrc3',0)" class="fs12 fwn ff1">-0.169</A></TD><TD class="fs12 fwn b1 c222" align="right">0.409</TD></TR><TR id="HC_M2_0606_P::1421513_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">294
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421513_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421513_at')" class="fs12 fwn">1421513_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=83561" TARGET="_blank" class="fs12 fwn">Tdrd1</A></TD><TD class="fs12 fwn b1 c222">tudor domain containing 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 56.938809</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.567</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421513_at')" class="fs12 fwn ffl">0.887</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.216</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tdrd1',0)" class="fs12 fwn ff1">-0.144</A></TD><TD class="fs12 fwn b1 c222" align="right">0.483</TD></TR><TR id="HC_M2_0606_P::1428773_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">295
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428773_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428773_s_at')" class="fs12 fwn">1428773_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71458" TARGET="_blank" class="fs12 fwn">Bcor</A></TD><TD class="fs12 fwn b1 c222">Bcl6 interacting corepressor</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 11.614484</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.576</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428773_s_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.310</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Bcor',0)" class="fs12 fwn ff1">-0.032</A></TD><TD class="fs12 fwn b1 c222" align="right">0.877</TD></TR><TR id="HC_M2_0606_P::1457126_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">296
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457126_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457126_at')" class="fs12 fwn">1457126_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=17896" TARGET="_blank" class="fs12 fwn">Myl4</A></TD><TD class="fs12 fwn b1 c222">myosin, light polypeptide 4; alternate 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 104.447222</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.945</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457126_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.310</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Myl4',0)" class="fs12 fwn ff1">0.025</A></TD><TD class="fs12 fwn b1 c222" align="right">0.905</TD></TR><TR id="HC_M2_0606_P::1440865_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">297
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440865_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440865_at')" class="fs12 fwn">1440865_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=213002" TARGET="_blank" class="fs12 fwn">Ifitm6</A></TD><TD class="fs12 fwn b1 c222">interferon induced transmembrane protein 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 148.201645</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.046</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440865_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.242</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ifitm6',0)" class="fs12 fwn ff1">-0.163</A></TD><TD class="fs12 fwn b1 c222" align="right">0.426</TD></TR><TR id="HC_M2_0606_P::1441449_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">298
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441449_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441449_at')" class="fs12 fwn">1441449_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20591" TARGET="_blank" class="fs12 fwn">Kdm5c</A></TD><TD class="fs12 fwn b1 c222">lysine (K)-specific demethylase 5C (X-linked mental retardation, jumonji, AT rich interactive domain 1C); intron 9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 148.680946</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.831</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441449_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.291</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1451898_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">299
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451898_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451898_a_at')" class="fs12 fwn">1451898_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20360" TARGET="_blank" class="fs12 fwn">Sema6c</A></TD><TD class="fs12 fwn b1 c222">sema domain, transmembrane domain (TM), and cytoplasmic domain, (semaphorin) 6C; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 94.977291</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.207</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451898_a_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.242</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sema6c',0)" class="fs12 fwn ff1">-0.006</A></TD><TD class="fs12 fwn b1 c222" align="right">0.978</TD></TR><TR id="HC_M2_0606_P::1454215_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">300
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454215_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454215_at')" class="fs12 fwn">1454215_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=108138" TARGET="_blank" class="fs12 fwn">Xrcc4</A></TD><TD class="fs12 fwn b1 c222">X-ray repair complementing defective repair in Chinese hamster cells 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.613</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454215_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.258</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Xrcc4',0)" class="fs12 fwn ff1">-0.149</A></TD><TD class="fs12 fwn b1 c222" align="right">0.469</TD></TR><TR id="HC_M2_0606_P::1421775_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">301
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421775_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421775_at')" class="fs12 fwn">1421775_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14125" TARGET="_blank" class="fs12 fwn">Fcer1a</A></TD><TD class="fs12 fwn b1 c222">Fc receptor, IgE, high affinity I, alpha polypeptide</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 175.151509</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.099</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421775_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.287</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fcer1a',0)" class="fs12 fwn ff1">-0.145</A></TD><TD class="fs12 fwn b1 c222" align="right">0.481</TD></TR><TR id="HC_M2_0606_P::1446232_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">302
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446232_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446232_at')" class="fs12 fwn">1446232_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=268977" TARGET="_blank" class="fs12 fwn">Ltbp1</A></TD><TD class="fs12 fwn b1 c222">latent transforming growth factor beta binding protein 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 75.748465</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.672</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446232_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.314</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ltbp1',0)" class="fs12 fwn ff1">0.161</A></TD><TD class="fs12 fwn b1 c222" align="right">0.432</TD></TR><TR id="HC_M2_0606_P::1421206_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">303
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421206_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421206_at')" class="fs12 fwn">1421206_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16878" TARGET="_blank" class="fs12 fwn">Lif</A></TD><TD class="fs12 fwn b1 c222">leukemia inhibitory factor</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 4.173942</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.056</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421206_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.374</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lif',0)" class="fs12 fwn ff1">-0.150</A></TD><TD class="fs12 fwn b1 c222" align="right">0.465</TD></TR><TR id="HC_M2_0606_P::1428480_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">304
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428480_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428480_at')" class="fs12 fwn">1428480_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=52276" TARGET="_blank" class="fs12 fwn">Cdca8</A></TD><TD class="fs12 fwn b1 c222">cell division cycle associated 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 124.596173</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.194</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428480_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.219</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cdca8',0)" class="fs12 fwn ff1">-0.384</A></TD><TD class="fs12 fwn b1 c222" align="right">0.053</TD></TR><TR id="HC_M2_0606_P::1423541_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">305
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1423541_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1423541_at')" class="fs12 fwn">1423541_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67645" TARGET="_blank" class="fs12 fwn">4930511I11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930511I11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 28.674523</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.816</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 74.935353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1423541_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930511I11Rik',0)" class="fs12 fwn ff1">-0.136</A></TD><TD class="fs12 fwn b1 c222" align="right">0.507</TD></TR><TR id="HC_M2_0606_P::1429811_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">306
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429811_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429811_at')" class="fs12 fwn">1429811_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71177" TARGET="_blank" class="fs12 fwn">C12orf11</A></TD><TD class="fs12 fwn b1 c222">sarcoma antigen NY-SAR-95, human chromosome 12 open reading frame 11; last 2 exons and last 2 introns</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 146.498502</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.866</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429811_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.237</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1419923_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">307
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419923_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419923_at')" class="fs12 fwn">1419923_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=226025" TARGET="_blank" class="fs12 fwn">Trpm3</A></TD><TD class="fs12 fwn b1 c222">transient receptor potential cation channel, subfamily M, member 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 22.799738</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.932</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419923_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.209</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Trpm3',0)" class="fs12 fwn ff1">0.196</A></TD><TD class="fs12 fwn b1 c222" align="right">0.338</TD></TR><TR id="HC_M2_0606_P::1447778_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">308
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447778_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447778_x_at')" class="fs12 fwn">1447778_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=210766" TARGET="_blank" class="fs12 fwn">Brcc3</A></TD><TD class="fs12 fwn b1 c222">BRCA1/BRCA2-containing complex, subunit 3; mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 72.697998</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.612</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447778_x_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.234</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Brcc3',0)" class="fs12 fwn ff1">-0.080</A></TD><TD class="fs12 fwn b1 c222" align="right">0.699</TD></TR><TR id="HC_M2_0606_P::1441357_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">309
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441357_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441357_at')" class="fs12 fwn">1441357_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67703" TARGET="_blank" class="fs12 fwn">Kirrel3</A></TD><TD class="fs12 fwn b1 c222">kin of IRRE like 3 (Drosophila)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 34.317614</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.765</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 12.565616</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441357_at')" class="fs12 fwn ffl">0.886</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.250</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Kirrel3',0)" class="fs12 fwn ff1">-0.076</A></TD><TD class="fs12 fwn b1 c222" align="right">0.710</TD></TR><TR id="HC_M2_0606_P::1431740_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">310
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431740_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431740_at')" class="fs12 fwn">1431740_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74087" TARGET="_blank" class="fs12 fwn">Slc7a13</A></TD><TD class="fs12 fwn b1 c222">solute carrier family 7, (cationic amino acid transporter, y+ system) member 13 (kidney male-specific transporter); intron 1 (from AK002431, male kidney EST)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 19.746934</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.906</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431740_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.156</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slc7a13',0)" class="fs12 fwn ff1">-0.136</A></TD><TD class="fs12 fwn b1 c222" align="right">0.509</TD></TR><TR id="HC_M2_0606_P::1427825_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">311
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427825_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427825_at')" class="fs12 fwn">1427825_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=28253" TARGET="_blank" class="fs12 fwn">Slco1b2</A></TD><TD class="fs12 fwn b1 c222">solute carrier organic anion transporter family, member 1b2; exon and intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 141.596691</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.524</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427825_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.242</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slco1b2',0)" class="fs12 fwn ff1">0.048</A></TD><TD class="fs12 fwn b1 c222" align="right">0.818</TD></TR><TR id="HC_M2_0606_P::1456254_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">312
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456254_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456254_at')" class="fs12 fwn">1456254_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=234515" TARGET="_blank" class="fs12 fwn">Inpp4b</A></TD><TD class="fs12 fwn b1 c222">inositol polyphosphate-4-phosphatase, type 2; intron 5 or antisense in AK140223 EST</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 84.398098</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.095</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456254_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.232</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Inpp4b',0)" class="fs12 fwn ff1">-0.198</A></TD><TD class="fs12 fwn b1 c222" align="right">0.332</TD></TR><TR id="HC_M2_0606_P::1445470_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">313
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445470_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445470_at')" class="fs12 fwn">1445470_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68553" TARGET="_blank" class="fs12 fwn">Col6a4</A></TD><TD class="fs12 fwn b1 c222">procollagen type 6, alpha 4 (putative); 5' UTR and first exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 105.973535</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.654</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445470_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.188</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1439992_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">314
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439992_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439992_at')" class="fs12 fwn">1439992_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=83456" TARGET="_blank" class="fs12 fwn">Mov10l1</A></TD><TD class="fs12 fwn b1 c222">Moloney leukemia virus 10-like 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 114.467374</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.355</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">19.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439992_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.262</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mov10l1',0)" class="fs12 fwn ff1">-0.230</A></TD><TD class="fs12 fwn b1 c222" align="right">0.257</TD></TR><TR id="HC_M2_0606_P::1430895_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">315
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430895_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430895_at')" class="fs12 fwn">1430895_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=75610" TARGET="_blank" class="fs12 fwn">2010109A12Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2010109A12 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 93.635714</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.572</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430895_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2010109A12Rik',0)" class="fs12 fwn ff1">-0.345</A></TD><TD class="fs12 fwn b1 c222" align="right">0.084</TD></TR><TR id="HC_M2_0606_P::1446422_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">316
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446422_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446422_at')" class="fs12 fwn">1446422_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69104" TARGET="_blank" class="fs12 fwn">March5</A></TD><TD class="fs12 fwn b1 c222">membrane-associated ring finger (C3HC4) 5, mitochondrial E3 ubiquitin-protein ligase</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 56.990358</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.958</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446422_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.174</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','March5',0)" class="fs12 fwn ff1">-0.022</A></TD><TD class="fs12 fwn b1 c222" align="right">0.913</TD></TR><TR id="HC_M2_0606_P::1431476_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">317
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431476_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431476_at')" class="fs12 fwn">1431476_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74072" TARGET="_blank" class="fs12 fwn">4933407I05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933407I05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 51.723543</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.182</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431476_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1442086_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">318
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442086_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442086_at')" class="fs12 fwn">1442086_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=116871" TARGET="_blank" class="fs12 fwn">Mta3</A></TD><TD class="fs12 fwn b1 c222">metastasis associated 3; intron 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 84.151068</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.250</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442086_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.284</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mta3',0)" class="fs12 fwn ff1">0.035</A></TD><TD class="fs12 fwn b1 c222" align="right">0.864</TD></TR><TR id="HC_M2_0606_P::1456221_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">319
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456221_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456221_at')" class="fs12 fwn">1456221_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=MGC40768" TARGET="_blank" class="fs12 fwn">MGC40768</A></TD><TD class="fs12 fwn b1 c222">ESTs, Moderately similar to protein phosphatase 4, regulatory subunit 1 [Rattus norvegicus] [R.norvegicus]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 101.671631</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.139</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 180.825581</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456221_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459079_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">320
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459079_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459079_at')" class="fs12 fwn">1459079_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=5430405C01Rik" TARGET="_blank" class="fs12 fwn">5430405C01Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 142.693473</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.466</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459079_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444592_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">321
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444592_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444592_at')" class="fs12 fwn">1444592_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66246" TARGET="_blank" class="fs12 fwn">Osgep</A></TD><TD class="fs12 fwn b1 c222">O-sialoglycoprotein endopeptidase</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 51.534261</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.142</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 3.229128</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444592_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.262</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Osgep',0)" class="fs12 fwn ff1">0.045</A></TD><TD class="fs12 fwn b1 c222" align="right">0.826</TD></TR><TR id="HC_M2_0606_P::1451750_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">322
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451750_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451750_at')" class="fs12 fwn">1451750_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=266632" TARGET="_blank" class="fs12 fwn">Irak4</A></TD><TD class="fs12 fwn b1 c222">interleukin-1 receptor-associated kinase 4 (NF-kappaB activation); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 94.398178</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.403</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451750_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.254</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Irak4',0)" class="fs12 fwn ff1">0.015</A></TD><TD class="fs12 fwn b1 c222" align="right">0.942</TD></TR><TR id="HC_M2_0606_P::1442554_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">323
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442554_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442554_s_at')" class="fs12 fwn">1442554_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=545156" TARGET="_blank" class="fs12 fwn">Kalrn</A></TD><TD class="fs12 fwn b1 c222">kalirin, RhoGEF kinase (huntingtin-associated protein interacting protein duo); two central exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 34.009951</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.957</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442554_s_at')" class="fs12 fwn ffl">0.885</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.284</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Kalrn',0)" class="fs12 fwn ff1">0.033</A></TD><TD class="fs12 fwn b1 c222" align="right">0.874</TD></TR><TR id="HC_M2_0606_P::1435958_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">324
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435958_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435958_at')" class="fs12 fwn">1435958_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=55981" TARGET="_blank" class="fs12 fwn">Pigb</A></TD><TD class="fs12 fwn b1 c222">phosphatidylinositol glycan, class B</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 72.862477</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.148</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 79.991491</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435958_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.204</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pigb',0)" class="fs12 fwn ff1">0.300</A></TD><TD class="fs12 fwn b1 c222" align="right">0.137</TD></TR><TR id="HC_M2_0606_P::1425916_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">325
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425916_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425916_at')" class="fs12 fwn">1425916_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=170725" TARGET="_blank" class="fs12 fwn">Capn8</A></TD><TD class="fs12 fwn b1 c222">calpain 8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 184.535862</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.377</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425916_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.232</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Capn8',0)" class="fs12 fwn ff1">-0.137</A></TD><TD class="fs12 fwn b1 c222" align="right">0.504</TD></TR><TR id="HC_M2_0606_P::1445752_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">326
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445752_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445752_at')" class="fs12 fwn">1445752_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=9430089E08Rik" TARGET="_blank" class="fs12 fwn">9430089E08Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs, Highly similar to L1 repeat, Tf subfamily, member 18 [] [M.musculus]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 11.895240</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.984</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445752_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1446669_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">327
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446669_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446669_at')" class="fs12 fwn">1446669_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=13591" TARGET="_blank" class="fs12 fwn">Ebf1</A></TD><TD class="fs12 fwn b1 c222">early B-cell factor 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 44.477552</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.027</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 79.991491</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446669_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.365</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ebf1',0)" class="fs12 fwn ff1">-0.067</A></TD><TD class="fs12 fwn b1 c222" align="right">0.746</TD></TR><TR id="HC_M2_0606_P::1459410_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">328
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459410_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459410_at')" class="fs12 fwn">1459410_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AV304616" TARGET="_blank" class="fs12 fwn">AV304616</A></TD><TD class="fs12 fwn b1 c222">AV304616 EST; well expressed (hippocampus) non-coding sequence</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 23.622826</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.621</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459410_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1446116_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">329
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446116_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446116_at')" class="fs12 fwn">1446116_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319849" TARGET="_blank" class="fs12 fwn">B230378P21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA B230378P21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 32.464995</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.732</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446116_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1422313_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">330
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422313_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422313_a_at')" class="fs12 fwn">1422313_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16011" TARGET="_blank" class="fs12 fwn">Igfbp5</A></TD><TD class="fs12 fwn b1 c222">insulin-like growth factor binding protein 5 (hippocampal DG expression signature); mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 72.907298</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.286</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422313_a_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.381</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Igfbp5',0)" class="fs12 fwn ff1">-0.005</A></TD><TD class="fs12 fwn b1 c222" align="right">0.980</TD></TR><TR id="HC_M2_0606_P::1446037_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">331
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446037_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446037_at')" class="fs12 fwn">1446037_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=244895" TARGET="_blank" class="fs12 fwn">C230081A13Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C230081A13 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 56.130456</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.888</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446037_at')" class="fs12 fwn ffl">0.884</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.165</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C230081A13Rik',0)" class="fs12 fwn ff1">0.121</A></TD><TD class="fs12 fwn b1 c222" align="right">0.555</TD></TR><TR id="HC_M2_0606_P::1446408_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">332
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446408_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446408_at')" class="fs12 fwn">1446408_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=15396" TARGET="_blank" class="fs12 fwn">Hoxa11</A></TD><TD class="fs12 fwn b1 c222">homeo box A11</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 52.189184</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.431</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 132.120931</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446408_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.431</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hoxa11',0)" class="fs12 fwn ff1">0.065</A></TD><TD class="fs12 fwn b1 c222" align="right">0.751</TD></TR><TR id="HC_M2_0606_P::1446923_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">333
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446923_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446923_at')" class="fs12 fwn">1446923_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=C630010D02Rik" TARGET="_blank" class="fs12 fwn">C630010D02Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 35.109712</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.907</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446923_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459178_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">334
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459178_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459178_at')" class="fs12 fwn">1459178_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=52366" TARGET="_blank" class="fs12 fwn">D8Ertd503e</A></TD><TD class="fs12 fwn b1 c222">DNA segment, Chr 8, ERATO Doi 503, expressed</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 120.425573</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.064</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459178_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1441786_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">335
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1441786_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1441786_at')" class="fs12 fwn">1441786_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=1700020L24Rik" TARGET="_blank" class="fs12 fwn">1700020L24Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 5.565780</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.050</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1441786_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700020L24Rik',0)" class="fs12 fwn ff1">-0.201</A></TD><TD class="fs12 fwn b1 c222" align="right">0.326</TD></TR><TR id="HC_M2_0606_P::1420470_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">336
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420470_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420470_at')" class="fs12 fwn">1420470_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20888" TARGET="_blank" class="fs12 fwn">Sult1c1</A></TD><TD class="fs12 fwn b1 c222">sulfotransferase family, cytosolic, 1C, member 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 54.101736</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.971</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">19.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 172.980820</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420470_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sult1c1',0)" class="fs12 fwn ff1">-0.289</A></TD><TD class="fs12 fwn b1 c222" align="right">0.152</TD></TR><TR id="HC_M2_0606_P::1447531_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">337
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447531_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447531_x_at')" class="fs12 fwn">1447531_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14007" TARGET="_blank" class="fs12 fwn">Cugbp2</A></TD><TD class="fs12 fwn b1 c222">CUG triplet repeat, RNA binding protein 2; putative intron 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 6.757167</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.236</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447531_x_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.298</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cugbp2',0)" class="fs12 fwn ff1">0.018</A></TD><TD class="fs12 fwn b1 c222" align="right">0.929</TD></TR><TR id="HC_M2_0606_P::1443416_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">338
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443416_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443416_at')" class="fs12 fwn">1443416_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97877" TARGET="_blank" class="fs12 fwn">C79741</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C79741; exon 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 51.042508</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.811</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443416_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1448841_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">339
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1448841_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1448841_at')" class="fs12 fwn">1448841_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56093" TARGET="_blank" class="fs12 fwn">Pfpl</A></TD><TD class="fs12 fwn b1 c222">pore forming protein-like</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 12.506262</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.382</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1448841_at')" class="fs12 fwn ffl">0.883</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pfpl',0)" class="fs12 fwn ff1">-0.215</A></TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD></TR><TR id="HC_M2_0606_P::1423348_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">340
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1423348_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1423348_at')" class="fs12 fwn">1423348_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14370" TARGET="_blank" class="fs12 fwn">Fzd8</A></TD><TD class="fs12 fwn b1 c222">frizzled homolog 8 (Drosophila)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 9.215072</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.707</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1423348_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.323</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fzd8',0)" class="fs12 fwn ff1">0.367</A></TD><TD class="fs12 fwn b1 c222" align="right">0.065</TD></TR><TR id="HC_M2_0606_P::1431868_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">341
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431868_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431868_at')" class="fs12 fwn">1431868_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=11643" TARGET="_blank" class="fs12 fwn">Akap4</A></TD><TD class="fs12 fwn b1 c222">A kinase (PRKA) anchor protein 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 39.999076</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.641</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 66.805956</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431868_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Akap4',0)" class="fs12 fwn ff1">-0.114</A></TD><TD class="fs12 fwn b1 c222" align="right">0.580</TD></TR><TR id="HC_M2_0606_P::1421788_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">342
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421788_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421788_x_at')" class="fs12 fwn">1421788_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16618" TARGET="_blank" class="fs12 fwn">Klk26</A></TD><TD class="fs12 fwn b1 c222">kallikrein 13; last three exons</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 51.271748</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.762</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421788_x_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1434830_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">343
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1434830_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1434830_at')" class="fs12 fwn">1434830_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=17119" TARGET="_blank" class="fs12 fwn">Mad</A></TD><TD class="fs12 fwn b1 c222">Max dimerization protein</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 86.597083</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.169</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1434830_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.303</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mad',0)" class="fs12 fwn ff1">-0.250</A></TD><TD class="fs12 fwn b1 c222" align="right">0.218</TD></TR><TR id="HC_M2_0606_P::1458094_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">344
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458094_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458094_at')" class="fs12 fwn">1458094_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=6130401L20Rik" TARGET="_blank" class="fs12 fwn">6130401L20Rik</A></TD><TD class="fs12 fwn b1 c222">15 days embryo male testis cDNA, RIKEN full-length enriched library, clone:8030405F19 product:Y box protein 1, pseudogene 2, full insert sequence.</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 84.619837</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.997</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458094_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','6130401L20Rik',0)" class="fs12 fwn ff1">0.085</A></TD><TD class="fs12 fwn b1 c222" align="right">0.681</TD></TR><TR id="HC_M2_0606_P::1420183_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">345
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420183_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420183_at')" class="fs12 fwn">1420183_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16939" TARGET="_blank" class="fs12 fwn">Lor</A></TD><TD class="fs12 fwn b1 c222">loricrin (keratinocyte); 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 91.884224</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.833</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420183_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.386</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lor',0)" class="fs12 fwn ff1">-0.142</A></TD><TD class="fs12 fwn b1 c222" align="right">0.490</TD></TR><TR id="HC_M2_0606_P::1432758_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">346
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432758_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432758_at')" class="fs12 fwn">1432758_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=2900011L18Rik" TARGET="_blank" class="fs12 fwn">2900011L18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2900011L18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 108.606679</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.756</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 65.704271</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432758_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2900011L18Rik',0)" class="fs12 fwn ff1">0.070</A></TD><TD class="fs12 fwn b1 c222" align="right">0.736</TD></TR><TR id="HC_M2_0606_P::1453653_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">347
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453653_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453653_at')" class="fs12 fwn">1453653_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76198" TARGET="_blank" class="fs12 fwn">6330576A10Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 6330576A10 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 100.878154</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.751</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453653_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1433124_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">348
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433124_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433124_at')" class="fs12 fwn">1433124_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930534I15Rik" TARGET="_blank" class="fs12 fwn">4930534I15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930534I15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 22.882357</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.021</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 65.704271</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433124_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1457653_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">349
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457653_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457653_at')" class="fs12 fwn">1457653_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=106894" TARGET="_blank" class="fs12 fwn">A630042L21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A630042L21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 61.334523</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.440</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457653_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.176</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A630042L21Rik',0)" class="fs12 fwn ff1">0.157</A></TD><TD class="fs12 fwn b1 c222" align="right">0.445</TD></TR><TR id="HC_M2_0606_P::1437836_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">350
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437836_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437836_x_at')" class="fs12 fwn">1437836_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68295" TARGET="_blank" class="fs12 fwn">0610011L14Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 0610011L14 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 156.393763</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.404</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437836_x_at')" class="fs12 fwn ffl">0.882</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.170</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','0610011L14Rik',0)" class="fs12 fwn ff1">-0.277</A></TD><TD class="fs12 fwn b1 c222" align="right">0.171</TD></TR><TR id="HC_M2_0606_P::1430157_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">351
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430157_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430157_at')" class="fs12 fwn">1430157_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74293" TARGET="_blank" class="fs12 fwn">1700095J03Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700095J03 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 116.583357</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.283</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430157_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700095J03Rik',0)" class="fs12 fwn ff1">-0.160</A></TD><TD class="fs12 fwn b1 c222" align="right">0.434</TD></TR><TR id="HC_M2_0606_P::1458027_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">352
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458027_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458027_at')" class="fs12 fwn">1458027_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=27397" TARGET="_blank" class="fs12 fwn">Mrpl17</A></TD><TD class="fs12 fwn b1 c222">mitochondrial ribosomal protein L17; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 112.951809</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.061</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458027_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.171</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mrpl17',0)" class="fs12 fwn ff1">0.136</A></TD><TD class="fs12 fwn b1 c222" align="right">0.509</TD></TR><TR id="HC_M2_0606_P::1449621_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">353
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449621_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449621_s_at')" class="fs12 fwn">1449621_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56229" TARGET="_blank" class="fs12 fwn">Thsd1</A></TD><TD class="fs12 fwn b1 c222">thrombospondin, type I, domain 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 23.369952</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.975</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449621_s_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.301</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Thsd1',0)" class="fs12 fwn ff1">0.143</A></TD><TD class="fs12 fwn b1 c222" align="right">0.485</TD></TR><TR id="HC_M2_0606_P::1427584_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">354
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427584_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427584_at')" class="fs12 fwn">1427584_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=27494" TARGET="_blank" class="fs12 fwn">Amot</A></TD><TD class="fs12 fwn b1 c222">angiomotin</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 141.883542</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.809</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427584_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.346</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Amot',0)" class="fs12 fwn ff1">-0.291</A></TD><TD class="fs12 fwn b1 c222" align="right">0.149</TD></TR><TR id="HC_M2_0606_P::1445985_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">355
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445985_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445985_at')" class="fs12 fwn">1445985_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=103213" TARGET="_blank" class="fs12 fwn">Traf3ip2</A></TD><TD class="fs12 fwn b1 c222">Traf3 interacting protein 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 39.336972</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.799</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445985_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.225</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Traf3ip2',0)" class="fs12 fwn ff1">0.117</A></TD><TD class="fs12 fwn b1 c222" align="right">0.569</TD></TR><TR id="HC_M2_0606_P::1443871_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">356
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443871_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443871_at')" class="fs12 fwn">1443871_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=386430" TARGET="_blank" class="fs12 fwn">A430018A01Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs, Weakly similar to S57243 collagen alpha 1(I) chain precursor - mouse [M.musculus]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 100.491056</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.125</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443871_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425279_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">357
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425279_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425279_at')" class="fs12 fwn">1425279_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=230809" TARGET="_blank" class="fs12 fwn">Pdik1l</A></TD><TD class="fs12 fwn b1 c222">PDLIM1 interacting kinase 1 like</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 133.832618</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.167</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 12.972088</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425279_at')" class="fs12 fwn ffl">0.881</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.196</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pdik1l',0)" class="fs12 fwn ff1">-0.286</A></TD><TD class="fs12 fwn b1 c222" align="right">0.157</TD></TR><TR id="HC_M2_0606_P::1459555_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">358
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459555_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459555_at')" class="fs12 fwn">1459555_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Ry1" TARGET="_blank" class="fs12 fwn">Ry1</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 64.470882</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.697</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459555_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1428576_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">359
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1428576_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1428576_at')" class="fs12 fwn">1428576_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77039" TARGET="_blank" class="fs12 fwn">Hif1an</A></TD><TD class="fs12 fwn b1 c222">hypoxia-inducible factor 1, alpha subunit inhibitor; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 44.650183</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.550</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1428576_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hif1an',0)" class="fs12 fwn ff1">-0.255</A></TD><TD class="fs12 fwn b1 c222" align="right">0.208</TD></TR><TR id="HC_M2_0606_P::1443709_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">360
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443709_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443709_at')" class="fs12 fwn">1443709_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BE979452" TARGET="_blank" class="fs12 fwn">BE979452</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 86.769664</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.210</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443709_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1433344_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">361
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433344_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433344_at')" class="fs12 fwn">1433344_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74662" TARGET="_blank" class="fs12 fwn">4930448K20Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930448K20; exon 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 9.843996</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.145</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433344_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930448K20Rik',0)" class="fs12 fwn ff1">0.149</A></TD><TD class="fs12 fwn b1 c222" align="right">0.468</TD></TR><TR id="HC_M2_0606_P::1449586_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">362
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449586_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449586_at')" class="fs12 fwn">1449586_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18772" TARGET="_blank" class="fs12 fwn">Pkp1</A></TD><TD class="fs12 fwn b1 c222">plakophilin 1 (ectodermal dysplasia/skin fragility syndrome, corneal epithelium); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 137.768014</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.041</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449586_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.259</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pkp1',0)" class="fs12 fwn ff1">-0.288</A></TD><TD class="fs12 fwn b1 c222" align="right">0.154</TD></TR><TR id="HC_M2_0606_P::1446133_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">363
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446133_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446133_at')" class="fs12 fwn">1446133_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=51901" TARGET="_blank" class="fs12 fwn">D2Ertd295e</A></TD><TD class="fs12 fwn b1 c222">DNA segment, Chr 2, ERATO Doi 295, expressed</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 52.777806</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.182</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 34.609256</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446133_at')" class="fs12 fwn ffl">0.880</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1445645_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">364
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445645_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445645_at')" class="fs12 fwn">1445645_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=H3104E01" TARGET="_blank" class="fs12 fwn">H3104E01</A></TD><TD class="fs12 fwn b1 c222">non-coding SINE sequence associated with H3104E01; putative 5' end of H3104E01 (antisense in intron of Adam22)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 8.277384</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.024</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445645_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1435244_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">365
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435244_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435244_at')" class="fs12 fwn">1435244_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22325" TARGET="_blank" class="fs12 fwn">Vav2</A></TD><TD class="fs12 fwn b1 c222">Vav2 oncogene; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 27.117981</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.316</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435244_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.284</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Vav2',0)" class="fs12 fwn ff1">0.239</A></TD><TD class="fs12 fwn b1 c222" align="right">0.239</TD></TR><TR id="HC_M2_0606_P::1450538_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">366
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450538_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450538_s_at')" class="fs12 fwn">1450538_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12762" TARGET="_blank" class="fs12 fwn">Cma2</A></TD><TD class="fs12 fwn b1 c222">chymase 2, mast cell</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 56.591602</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.837</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450538_s_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cma2',0)" class="fs12 fwn ff1">-0.111</A></TD><TD class="fs12 fwn b1 c222" align="right">0.589</TD></TR><TR id="HC_M2_0606_P::1431846_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">367
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431846_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431846_at')" class="fs12 fwn">1431846_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78931" TARGET="_blank" class="fs12 fwn">4930546C10Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930546C10 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 69.050054</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.155</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431846_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4930546C10Rik',0)" class="fs12 fwn ff1">-0.254</A></TD><TD class="fs12 fwn b1 c222" align="right">0.210</TD></TR><TR id="HC_M2_0606_P::1440711_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">368
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440711_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440711_at')" class="fs12 fwn">1440711_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=C630001G18Rik" TARGET="_blank" class="fs12 fwn">C630001G18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C630001G18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 84.110349</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.222</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440711_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432210_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">369
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432210_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432210_at')" class="fs12 fwn">1432210_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4933401H06Rik" TARGET="_blank" class="fs12 fwn">4933401H06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933401H06 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 135.496941</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.169</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432210_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1417620_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">370
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1417620_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1417620_at')" class="fs12 fwn">1417620_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19354" TARGET="_blank" class="fs12 fwn">Rac2</A></TD><TD class="fs12 fwn b1 c222">RAS-related C3 botulinum substrate 2; proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 78.391724</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.762</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1417620_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.291</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rac2',0)" class="fs12 fwn ff1">-0.187</A></TD><TD class="fs12 fwn b1 c222" align="right">0.359</TD></TR><TR id="HC_M2_0606_P::1433416_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">371
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433416_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433416_at')" class="fs12 fwn">1433416_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19725" TARGET="_blank" class="fs12 fwn">Rfx2</A></TD><TD class="fs12 fwn b1 c222">regulatory factor X, 2 (influences HLA class II expression)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 56.969153</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.520</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433416_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.265</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rfx2',0)" class="fs12 fwn ff1">-0.072</A></TD><TD class="fs12 fwn b1 c222" align="right">0.728</TD></TR><TR id="HC_M2_0606_P::1442532_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">372
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442532_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442532_at')" class="fs12 fwn">1442532_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=83456" TARGET="_blank" class="fs12 fwn">Mov10l1</A></TD><TD class="fs12 fwn b1 c222">Moloney leukemia virus 10-like 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 28.086861</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.723</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442532_at')" class="fs12 fwn ffl">0.879</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.262</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Mov10l1',0)" class="fs12 fwn ff1">-0.230</A></TD><TD class="fs12 fwn b1 c222" align="right">0.257</TD></TR><TR id="HC_M2_0606_P::1456964_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">373
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456964_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456964_at')" class="fs12 fwn">1456964_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=266692" TARGET="_blank" class="fs12 fwn">Cpne1</A></TD><TD class="fs12 fwn b1 c222">copine I</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 155.919304</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.865</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456964_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.276</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cpne1',0)" class="fs12 fwn ff1">-0.147</A></TD><TD class="fs12 fwn b1 c222" align="right">0.474</TD></TR><TR id="HC_M2_0606_P::1426639_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">374
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1426639_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1426639_a_at')" class="fs12 fwn">1426639_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21416" TARGET="_blank" class="fs12 fwn">Tcf7l2</A></TD><TD class="fs12 fwn b1 c222">transcription factor 7-like 2, T-cell specific, HMG-box</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 55.892265</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.758</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1426639_a_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.313</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tcf7l2',0)" class="fs12 fwn ff1">0.107</A></TD><TD class="fs12 fwn b1 c222" align="right">0.602</TD></TR><TR id="HC_M2_0606_P::1444636_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">375
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444636_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444636_at')" class="fs12 fwn">1444636_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70881" TARGET="_blank" class="fs12 fwn">Nt5c1b</A></TD><TD class="fs12 fwn b1 c222">5'-nucleotidase, cytosolic IB</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 83.087832</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.927</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444636_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.165</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nt5c1b',0)" class="fs12 fwn ff1">-0.101</A></TD><TD class="fs12 fwn b1 c222" align="right">0.623</TD></TR><TR id="HC_M2_0606_P::1420219_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">376
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420219_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420219_at')" class="fs12 fwn">1420219_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78244" TARGET="_blank" class="fs12 fwn">Dnajc21</A></TD><TD class="fs12 fwn b1 c222">DnaJ (Hsp40) homolog subfamily C member 21; last exon and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 10.391034</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.772</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420219_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.136</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Dnajc21',0)" class="fs12 fwn ff1">-0.300</A></TD><TD class="fs12 fwn b1 c222" align="right">0.137</TD></TR><TR id="HC_M2_0606_P::1418745_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">377
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418745_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418745_at')" class="fs12 fwn">1418745_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=27047" TARGET="_blank" class="fs12 fwn">Omd</A></TD><TD class="fs12 fwn b1 c222">osteomodulin</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 49.685743</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.644</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418745_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.303</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Omd',0)" class="fs12 fwn ff1">-0.040</A></TD><TD class="fs12 fwn b1 c222" align="right">0.848</TD></TR><TR id="HC_M2_0606_P::1422904_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">378
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422904_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422904_at')" class="fs12 fwn">1422904_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=55990" TARGET="_blank" class="fs12 fwn">Fmo2</A></TD><TD class="fs12 fwn b1 c222">flavin containing monooxygenase 2; last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 164.806986</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.182</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422904_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.248</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Fmo2',0)" class="fs12 fwn ff1">0.318</A></TD><TD class="fs12 fwn b1 c222" align="right">0.114</TD></TR><TR id="HC_M2_0606_P::1442588_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">379
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442588_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442588_at')" class="fs12 fwn">1442588_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=9530060I07" TARGET="_blank" class="fs12 fwn">9530060I07</A></TD><TD class="fs12 fwn b1 c222">adult male urinary bladder cDNA, RIKEN full-length enriched library, clone:9530060I07 product:unclassifiable, full insert sequence.</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 98.777261</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.485</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442588_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432550_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">380
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432550_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432550_at')" class="fs12 fwn">1432550_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78052" TARGET="_blank" class="fs12 fwn">4930572D21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930572D21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 4.735410</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.710</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432550_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1439199_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">381
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439199_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439199_at')" class="fs12 fwn">1439199_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19052" TARGET="_blank" class="fs12 fwn">Ppp2ca</A></TD><TD class="fs12 fwn b1 c222">protein phosphatase 2a, catalytic subunit, alpha isoform</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 51.910826</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.555</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439199_at')" class="fs12 fwn ffl">0.878</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ppp2ca',0)" class="fs12 fwn ff1">-0.016</A></TD><TD class="fs12 fwn b1 c222" align="right">0.939</TD></TR><TR id="HC_M2_0606_P::1454165_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">382
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1454165_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1454165_at')" class="fs12 fwn">1454165_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=1700025K04Rik" TARGET="_blank" class="fs12 fwn">1700025K04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700025K04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 125.811528</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.815</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1454165_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1430189_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">383
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430189_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430189_at')" class="fs12 fwn">1430189_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319211" TARGET="_blank" class="fs12 fwn">Nol4</A></TD><TD class="fs12 fwn b1 c222">nucleolar protein 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 23.199324</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.009</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430189_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.176</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nol4',0)" class="fs12 fwn ff1">0.051</A></TD><TD class="fs12 fwn b1 c222" align="right">0.803</TD></TR><TR id="HC_M2_0606_P::1456780_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">384
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456780_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456780_at')" class="fs12 fwn">1456780_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12234" TARGET="_blank" class="fs12 fwn">Btrc</A></TD><TD class="fs12 fwn b1 c222">beta-transducin repeat containing protein</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 45.598460</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.228</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456780_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.337</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Btrc',0)" class="fs12 fwn ff1">0.107</A></TD><TD class="fs12 fwn b1 c222" align="right">0.603</TD></TR><TR id="HC_M2_0606_P::1453763_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">385
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453763_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453763_at')" class="fs12 fwn">1453763_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=106200" TARGET="_blank" class="fs12 fwn">Txndc11</A></TD><TD class="fs12 fwn b1 c222">thioredoxin domain containing 11</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 11.087575</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.808</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453763_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.127</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Txndc11',0)" class="fs12 fwn ff1">0.011</A></TD><TD class="fs12 fwn b1 c222" align="right">0.959</TD></TR><TR id="HC_M2_0606_P::1445988_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">386
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445988_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445988_at')" class="fs12 fwn">1445988_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=239114" TARGET="_blank" class="fs12 fwn">Il17d</A></TD><TD class="fs12 fwn b1 c222">interleukin 17D; intron 1 (from BG064506)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 58.145444</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.253</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445988_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.179</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Il17d',0)" class="fs12 fwn ff1">0.194</A></TD><TD class="fs12 fwn b1 c222" align="right">0.343</TD></TR><TR id="HC_M2_0606_P::1427397_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">387
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427397_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427397_at')" class="fs12 fwn">1427397_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=212127" TARGET="_blank" class="fs12 fwn">2810046L04Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2810046L04 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 53.283245</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.840</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427397_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.100</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2810046L04Rik',0)" class="fs12 fwn ff1">0.060</A></TD><TD class="fs12 fwn b1 c222" align="right">0.771</TD></TR><TR id="HC_M2_0606_P::1424906_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">388
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1424906_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1424906_at')" class="fs12 fwn">1424906_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=217430" TARGET="_blank" class="fs12 fwn">E030024M05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA E030024M05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 16.995778</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.316</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1424906_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1447213_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">389
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447213_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447213_at')" class="fs12 fwn">1447213_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=20684" TARGET="_blank" class="fs12 fwn">Sp100</A></TD><TD class="fs12 fwn b1 c222">nuclear antigen Sp100</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 87.584937</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.026</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 180.825581</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447213_at')" class="fs12 fwn ffl">0.877</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sp100',0)" class="fs12 fwn ff1">-0.131</A></TD><TD class="fs12 fwn b1 c222" align="right">0.523</TD></TR><TR id="HC_M2_0606_P::1449529_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">390
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449529_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449529_s_at')" class="fs12 fwn">1449529_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19113" TARGET="_blank" class="fs12 fwn">Prlpe</A></TD><TD class="fs12 fwn b1 c222">prolactin-like protein E</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 27.727559</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.500</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449529_s_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.235</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432400_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">391
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432400_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432400_at')" class="fs12 fwn">1432400_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=13835" TARGET="_blank" class="fs12 fwn">Epha1</A></TD><TD class="fs12 fwn b1 c222">Eph receptor A1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 42.317086</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.606</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432400_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.348</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Epha1',0)" class="fs12 fwn ff1">0.038</A></TD><TD class="fs12 fwn b1 c222" align="right">0.854</TD></TR><TR id="HC_M2_0606_P::1446843_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">392
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446843_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446843_at')" class="fs12 fwn">1446843_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=98080" TARGET="_blank" class="fs12 fwn">B930007P11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA B930007P11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 48.509404</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.096</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446843_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1436806_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">393
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436806_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436806_at')" class="fs12 fwn">1436806_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67525" TARGET="_blank" class="fs12 fwn">Trim62</A></TD><TD class="fs12 fwn b1 c222">tripartite motif-containing 62; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 128.588294</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.802</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436806_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.229</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Trim62',0)" class="fs12 fwn ff1">0.209</A></TD><TD class="fs12 fwn b1 c222" align="right">0.305</TD></TR><TR id="HC_M2_0606_P::1432244_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">394
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432244_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432244_at')" class="fs12 fwn">1432244_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930507D10Rik" TARGET="_blank" class="fs12 fwn">4930507D10Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930507D10 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 80.664028</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.914</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432244_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1453234_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">395
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453234_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453234_at')" class="fs12 fwn">1453234_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74152" TARGET="_blank" class="fs12 fwn">1300002K09Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1300002K09 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 45.899290</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.390</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453234_at')" class="fs12 fwn ffl">0.876</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1300002K09Rik',0)" class="fs12 fwn ff1">-0.056</A></TD><TD class="fs12 fwn b1 c222" align="right">0.785</TD></TR><TR id="HC_M2_0606_P::1431695_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">396
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431695_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431695_at')" class="fs12 fwn">1431695_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=380714" TARGET="_blank" class="fs12 fwn">Rph3al</A></TD><TD class="fs12 fwn b1 c222">rabphilin 3A-like (without C2 domains)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 75.713331</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.240</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431695_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.214</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rph3al',0)" class="fs12 fwn ff1">-0.200</A></TD><TD class="fs12 fwn b1 c222" align="right">0.328</TD></TR><TR id="HC_M2_0606_P::1436360_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">397
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436360_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436360_at')" class="fs12 fwn">1436360_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=232878" TARGET="_blank" class="fs12 fwn">Hkr2</A></TD><TD class="fs12 fwn b1 c222">GLI-Kruppel family member HKR2; putative far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 13.493933</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.909</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 3.229128</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436360_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.306</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1460423_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">398
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1460423_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1460423_x_at')" class="fs12 fwn">1460423_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16081" TARGET="_blank" class="fs12 fwn">Igk-V5</A></TD><TD class="fs12 fwn b1 c222">immunoglobulin kappa chain variable 8 (V8)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 68.071628</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.847</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1460423_x_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.155</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1426196_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">399
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1426196_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1426196_at')" class="fs12 fwn">1426196_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=LOC56304" TARGET="_blank" class="fs12 fwn">LOC56304</A></TD><TD class="fs12 fwn b1 c222">recombinant antineuraminidase single chain Ig VH and VL domains</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.776</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1426196_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','LOC56304',0)" class="fs12 fwn ff1">-0.080</A></TD><TD class="fs12 fwn b1 c222" align="right">0.696</TD></TR><TR id="HC_M2_0606_P::1447742_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">400
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447742_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447742_at')" class="fs12 fwn">1447742_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16792" TARGET="_blank" class="fs12 fwn">Laptm5</A></TD><TD class="fs12 fwn b1 c222">lysosomal-associated protein transmembrane 5; distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 130.491813</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.470</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447742_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.319</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Laptm5',0)" class="fs12 fwn ff1">0.002</A></TD><TD class="fs12 fwn b1 c222" align="right">0.992</TD></TR><TR id="HC_M2_0606_P::1450596_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">401
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1450596_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1450596_at')" class="fs12 fwn">1450596_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18367" TARGET="_blank" class="fs12 fwn">Olfr66</A></TD><TD class="fs12 fwn b1 c222">olfactory receptor 66</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 111.029827</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.481</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1450596_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.150</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Olfr66',0)" class="fs12 fwn ff1">-0.119</A></TD><TD class="fs12 fwn b1 c222" align="right">0.563</TD></TR><TR id="HC_M2_0606_P::1440663_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">402
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440663_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440663_at')" class="fs12 fwn">1440663_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=57258" TARGET="_blank" class="fs12 fwn">Xpo4</A></TD><TD class="fs12 fwn b1 c222">exportin 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 58.258715</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.628</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440663_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.162</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Xpo4',0)" class="fs12 fwn ff1">-0.097</A></TD><TD class="fs12 fwn b1 c222" align="right">0.637</TD></TR><TR id="HC_M2_0606_P::1435670_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">403
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1435670_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1435670_at')" class="fs12 fwn">1435670_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21419" TARGET="_blank" class="fs12 fwn">Tcfap2b</A></TD><TD class="fs12 fwn b1 c222">transcription factor AP-2 beta (activating enhancer binding protein 2 beta, Char syndrome); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 19.228079</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.772</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1435670_at')" class="fs12 fwn ffl">0.875</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.373</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tcfap2b',0)" class="fs12 fwn ff1">0.127</A></TD><TD class="fs12 fwn b1 c222" align="right">0.536</TD></TR><TR id="HC_M2_0606_P::1445681_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">404
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445681_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445681_at')" class="fs12 fwn">1445681_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66953" TARGET="_blank" class="fs12 fwn">Cdca7</A></TD><TD class="fs12 fwn b1 c222">cell division cycle associated 7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 72.317196</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.148</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445681_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.273</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cdca7',0)" class="fs12 fwn ff1">-0.255</A></TD><TD class="fs12 fwn b1 c222" align="right">0.208</TD></TR><TR id="HC_M2_0606_P::1444854_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">405
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444854_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444854_at')" class="fs12 fwn">1444854_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71868" TARGET="_blank" class="fs12 fwn">1700023E05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700023E05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 81.642102</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.789</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444854_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700023E05Rik',0)" class="fs12 fwn ff1">0.229</A></TD><TD class="fs12 fwn b1 c222" align="right">0.260</TD></TR><TR id="HC_M2_0606_P::1437512_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">406
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437512_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437512_x_at')" class="fs12 fwn">1437512_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69072" TARGET="_blank" class="fs12 fwn">Ebna1bp2</A></TD><TD class="fs12 fwn b1 c222">EBNA1 binding protein 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 118.298512</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.679</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437512_x_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.271</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ebna1bp2',0)" class="fs12 fwn ff1">-0.209</A></TD><TD class="fs12 fwn b1 c222" align="right">0.305</TD></TR><TR id="HC_M2_0606_P::1440931_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">407
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440931_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440931_at')" class="fs12 fwn">1440931_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=99304" TARGET="_blank" class="fs12 fwn">AW060659</A></TD><TD class="fs12 fwn b1 c222">expressed sequence AW060659</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 151.920963</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.050</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440931_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444751_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">408
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444751_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444751_at')" class="fs12 fwn">1444751_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=329274" TARGET="_blank" class="fs12 fwn">A230106N23</A></TD><TD class="fs12 fwn b1 c222">hypothetical protein A230106N23</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 100.429324</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.361</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444751_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.213</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1447095_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">409
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447095_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447095_at')" class="fs12 fwn">1447095_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=C86942" TARGET="_blank" class="fs12 fwn">C86942</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 103.449190</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.498</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447095_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1422957_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">410
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422957_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422957_at')" class="fs12 fwn">1422957_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12771" TARGET="_blank" class="fs12 fwn">Ccr3</A></TD><TD class="fs12 fwn b1 c222">chemokine (C-C motif) receptor 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 123.944380</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.630</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422957_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.266</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ccr3',0)" class="fs12 fwn ff1">-0.238</A></TD><TD class="fs12 fwn b1 c222" align="right">0.242</TD></TR><TR id="HC_M2_0606_P::1459825_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">411
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459825_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459825_x_at')" class="fs12 fwn">1459825_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319706" TARGET="_blank" class="fs12 fwn">Igf2bp1</A></TD><TD class="fs12 fwn b1 c222">insulin-like growth factor 2 mRNA binding; far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 95.818630</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.184</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459825_x_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Igf2bp1',0)" class="fs12 fwn ff1">0.037</A></TD><TD class="fs12 fwn b1 c222" align="right">0.859</TD></TR><TR id="HC_M2_0606_P::1436149_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">412
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436149_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436149_at')" class="fs12 fwn">1436149_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12859" TARGET="_blank" class="fs12 fwn">Cox5b</A></TD><TD class="fs12 fwn b1 c222">cytochrome c oxidase, subunit Vb; last intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 36.749944</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.189</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436149_at')" class="fs12 fwn ffl">0.874</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.289</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cox5b',0)" class="fs12 fwn ff1">-0.252</A></TD><TD class="fs12 fwn b1 c222" align="right">0.215</TD></TR><TR id="HC_M2_0606_P::1458127_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">413
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458127_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458127_at')" class="fs12 fwn">1458127_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=6030446J10Rik" TARGET="_blank" class="fs12 fwn">6030446J10Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 35.248503</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.072</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458127_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1445063_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">414
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1445063_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1445063_at')" class="fs12 fwn">1445063_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=116837" TARGET="_blank" class="fs12 fwn">Rims1</A></TD><TD class="fs12 fwn b1 c222">regulating synaptic membrane exocytosis 1; antisense in intron</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 22.297372</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.673</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1445063_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.251</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rims1',0)" class="fs12 fwn ff1">0.362</A></TD><TD class="fs12 fwn b1 c222" align="right">0.069</TD></TR><TR id="HC_M2_0606_P::1429669_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">415
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1429669_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1429669_at')" class="fs12 fwn">1429669_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14681" TARGET="_blank" class="fs12 fwn">Gnao1</A></TD><TD class="fs12 fwn b1 c222">guanine nucleotide binding protein, alpha o; intron 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 96.335667</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.242</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1429669_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.291</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gnao1',0)" class="fs12 fwn ff1">0.316</A></TD><TD class="fs12 fwn b1 c222" align="right">0.116</TD></TR><TR id="HC_M2_0606_P::1457101_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">416
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457101_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457101_at')" class="fs12 fwn">1457101_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=2610017K16Rik" TARGET="_blank" class="fs12 fwn">2610017K16Rik</A></TD><TD class="fs12 fwn b1 c222">0 day neonate thymus cDNA, RIKEN full-length enriched library, clone:A430035F24 product:unclassifiable, full insert sequence.</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 19.436100</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.199</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457101_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1437373_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">417
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437373_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437373_at')" class="fs12 fwn">1437373_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=68048" TARGET="_blank" class="fs12 fwn">Isg20l1</A></TD><TD class="fs12 fwn b1 c222">interferon stimulated exonuclease gene 20-like 1; far 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 86.055536</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.205</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437373_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.162</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Isg20l1',0)" class="fs12 fwn ff1">-0.124</A></TD><TD class="fs12 fwn b1 c222" align="right">0.545</TD></TR><TR id="HC_M2_0606_P::1432651_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">418
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432651_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432651_at')" class="fs12 fwn">1432651_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=2510019K15Rik" TARGET="_blank" class="fs12 fwn">2510019K15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2510019K15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 154.426428</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.207</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432651_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1431277_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">419
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431277_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431277_at')" class="fs12 fwn">1431277_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=53357" TARGET="_blank" class="fs12 fwn">Pla2g6</A></TD><TD class="fs12 fwn b1 c222">phospholipase A2, group VI; 5' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 79.158134</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.935</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431277_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.305</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pla2g6',0)" class="fs12 fwn ff1">-0.117</A></TD><TD class="fs12 fwn b1 c222" align="right">0.569</TD></TR><TR id="HC_M2_0606_P::1458995_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">420
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458995_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458995_at')" class="fs12 fwn">1458995_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=215193" TARGET="_blank" class="fs12 fwn">AA408296</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 194.955480</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.826</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458995_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','AA408296',0)" class="fs12 fwn ff1">-0.084</A></TD><TD class="fs12 fwn b1 c222" align="right">0.682</TD></TR><TR id="HC_M2_0606_P::1447324_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">421
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447324_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447324_at')" class="fs12 fwn">1447324_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=A230106N23" TARGET="_blank" class="fs12 fwn">A230106N23</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">--</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.483</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447324_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425377_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">422
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425377_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425377_at')" class="fs12 fwn">1425377_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22408" TARGET="_blank" class="fs12 fwn">Wnt1</A></TD><TD class="fs12 fwn b1 c222">wingless-related MMTV integration site 1; mid and distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 98.623669</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.561</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425377_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.498</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Wnt1',0)" class="fs12 fwn ff1">-0.297</A></TD><TD class="fs12 fwn b1 c222" align="right">0.140</TD></TR><TR id="HC_M2_0606_P::1449609_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">423
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449609_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449609_at')" class="fs12 fwn">1449609_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=AA189214" TARGET="_blank" class="fs12 fwn">AA189214</A></TD><TD class="fs12 fwn b1 c222">Mus musculus transcribed sequences</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 125.643103</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.973</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449609_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1437516_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">424
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437516_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437516_at')" class="fs12 fwn">1437516_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=LOC168850" TARGET="_blank" class="fs12 fwn">LOC168850</A></TD><TD class="fs12 fwn b1 c222">hypothetical protein LOC168850; 3' UTR (or last intron)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 28.192261</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.861</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 127.009266</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437516_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1420144_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">425
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420144_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420144_x_at')" class="fs12 fwn">1420144_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319817" TARGET="_blank" class="fs12 fwn">D930043C02Rik</A></TD><TD class="fs12 fwn b1 c222">membrane-associated nucleic acid binding protein</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 37.269101</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.373</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420144_x_at')" class="fs12 fwn ffl">0.873</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.188</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1459225_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">426
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459225_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459225_at')" class="fs12 fwn">1459225_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=237107" TARGET="_blank" class="fs12 fwn">Gnl3l</A></TD><TD class="fs12 fwn b1 c222">guanine nucleotide binding protein-like 3 (nucleolar)-like</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 147.445032</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.703</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459225_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.218</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gnl3l',0)" class="fs12 fwn ff1">0.151</A></TD><TD class="fs12 fwn b1 c222" align="right">0.461</TD></TR><TR id="HC_M2_0606_P::1437846_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">427
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1437846_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1437846_x_at')" class="fs12 fwn">1437846_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56175" TARGET="_blank" class="fs12 fwn">Bace2</A></TD><TD class="fs12 fwn b1 c222">beta-site APP-cleaving enzyme 2; proximal 3' UTR (short probe set target sequence)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 97.658583</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.124</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1437846_x_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.236</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Bace2',0)" class="fs12 fwn ff1">0.329</A></TD><TD class="fs12 fwn b1 c222" align="right">0.100</TD></TR><TR id="HC_M2_0606_P::1433836_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">428
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1433836_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1433836_a_at')" class="fs12 fwn">1433836_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=213393" TARGET="_blank" class="fs12 fwn">C10orf10</A></TD><TD class="fs12 fwn b1 c222">fasting-induced protein (decidual protein induced by progesterone); distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 116.602589</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.812</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1433836_a_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.252</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1438453_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">429
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1438453_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1438453_at')" class="fs12 fwn">1438453_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=114714" TARGET="_blank" class="fs12 fwn">Rad51c</A></TD><TD class="fs12 fwn b1 c222">Rad51 homolog c; proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 87.192121</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.808</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1438453_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.197</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rad51c',0)" class="fs12 fwn ff1">-0.281</A></TD><TD class="fs12 fwn b1 c222" align="right">0.164</TD></TR><TR id="HC_M2_0606_P::1436171_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">430
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436171_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436171_at')" class="fs12 fwn">1436171_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=226652" TARGET="_blank" class="fs12 fwn">Arhgap30</A></TD><TD class="fs12 fwn b1 c222">Rho GTPase activating protein 30; mid to distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 173.339774</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.027</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436171_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Arhgap30',0)" class="fs12 fwn ff1">-0.162</A></TD><TD class="fs12 fwn b1 c222" align="right">0.429</TD></TR><TR id="HC_M2_0606_P::1453982_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">431
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453982_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453982_at')" class="fs12 fwn">1453982_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74447" TARGET="_blank" class="fs12 fwn">4933417N07Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4933417N07 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 134.858324</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.052</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453982_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1460537_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">432
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1460537_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1460537_at')" class="fs12 fwn">1460537_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=13592" TARGET="_blank" class="fs12 fwn">Ebf2</A></TD><TD class="fs12 fwn b1 c222">early B-cell factor 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 67.960329</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.002</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1460537_at')" class="fs12 fwn ffl">0.872</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.393</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ebf2',0)" class="fs12 fwn ff1">0.097</A></TD><TD class="fs12 fwn b1 c222" align="right">0.637</TD></TR><TR id="HC_M2_0606_P::1425579_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">433
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425579_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425579_at')" class="fs12 fwn">1425579_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14586" TARGET="_blank" class="fs12 fwn">Gfra2</A></TD><TD class="fs12 fwn b1 c222">glial cell line derived neurotrophic factor family receptor alpha 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 71.290014</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.157</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425579_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.299</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Gfra2',0)" class="fs12 fwn ff1">-0.216</A></TD><TD class="fs12 fwn b1 c222" align="right">0.289</TD></TR><TR id="HC_M2_0606_P::1457019_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">434
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457019_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457019_s_at')" class="fs12 fwn">1457019_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70881" TARGET="_blank" class="fs12 fwn">Nt5c1b</A></TD><TD class="fs12 fwn b1 c222">5'-nucleotidase, cytosolic IB</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 10.399758</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.193</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457019_s_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.165</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nt5c1b',0)" class="fs12 fwn ff1">-0.101</A></TD><TD class="fs12 fwn b1 c222" align="right">0.623</TD></TR><TR id="HC_M2_0606_P::1425150_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">435
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425150_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425150_at')" class="fs12 fwn">1425150_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=209186" TARGET="_blank" class="fs12 fwn">C730036D15Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA C730036D15 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 49.392984</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.085</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425150_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.069</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','C730036D15Rik',0)" class="fs12 fwn ff1">-0.143</A></TD><TD class="fs12 fwn b1 c222" align="right">0.484</TD></TR><TR id="HC_M2_0606_P::1419703_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">436
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1419703_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1419703_at')" class="fs12 fwn">1419703_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=53867" TARGET="_blank" class="fs12 fwn">Col5a3</A></TD><TD class="fs12 fwn b1 c222">procollagen, type V, alpha 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 20.574515</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.843</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 128.264974</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1419703_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.278</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Col5a3',0)" class="fs12 fwn ff1">0.170</A></TD><TD class="fs12 fwn b1 c222" align="right">0.408</TD></TR><TR id="HC_M2_0606_P::1449451_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">437
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449451_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449451_at')" class="fs12 fwn">1449451_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66957" TARGET="_blank" class="fs12 fwn">Serpinb11</A></TD><TD class="fs12 fwn b1 c222">serine (or cysteine) proteinase inhibitor, clade B (ovalbumin), member 11</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 109.276494</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.294</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449451_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.180</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Serpinb11',0)" class="fs12 fwn ff1">-0.370</A></TD><TD class="fs12 fwn b1 c222" align="right">0.063</TD></TR><TR id="HC_M2_0606_P::1431384_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">438
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1431384_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1431384_at')" class="fs12 fwn">1431384_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=LOC374768" TARGET="_blank" class="fs12 fwn">LOC374768</A></TD><TD class="fs12 fwn b1 c222">LOC374768 protein; last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 69.634688</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.555</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1431384_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1432089_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">439
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432089_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432089_at')" class="fs12 fwn">1432089_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4930550C17Rik" TARGET="_blank" class="fs12 fwn">4930550C17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930550C17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 56.323991</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.653</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432089_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444781_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">440
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444781_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444781_at')" class="fs12 fwn">1444781_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74254" TARGET="_blank" class="fs12 fwn">Xab1</A></TD><TD class="fs12 fwn b1 c222">XPA binding protein 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 31.814161</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.793</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444781_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.186</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Xab1',0)" class="fs12 fwn ff1">-0.038</A></TD><TD class="fs12 fwn b1 c222" align="right">0.855</TD></TR><TR id="HC_M2_0606_P::1421760_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">441
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421760_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421760_at')" class="fs12 fwn">1421760_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19208" TARGET="_blank" class="fs12 fwn">Ptcra</A></TD><TD class="fs12 fwn b1 c222">pre T-cell antigen receptor alpha</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 46.892915</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.000</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 3.229128</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421760_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.316</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Ptcra',0)" class="fs12 fwn ff1">-0.225</A></TD><TD class="fs12 fwn b1 c222" align="right">0.270</TD></TR><TR id="HC_M2_0606_P::1432570_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">442
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432570_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432570_at')" class="fs12 fwn">1432570_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=6030458E02Rik" TARGET="_blank" class="fs12 fwn">6030458E02Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 6030458E02 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 60.990668</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.826</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432570_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1449077_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">443
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1449077_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1449077_at')" class="fs12 fwn">1449077_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=66336" TARGET="_blank" class="fs12 fwn">Cenpp</A></TD><TD class="fs12 fwn b1 c222">centromere protein P; intron 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 49.634010</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.146</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.7</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 149.089195</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1449077_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cenpp',0)" class="fs12 fwn ff1">0.296</A></TD><TD class="fs12 fwn b1 c222" align="right">0.142</TD></TR><TR id="HC_M2_0606_P::1421759_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">444
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1421759_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1421759_a_at')" class="fs12 fwn">1421759_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=17425" TARGET="_blank" class="fs12 fwn">Foxk1</A></TD><TD class="fs12 fwn b1 c222">forkhead box K1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 142.924677</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.223</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1421759_a_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.375</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Foxk1',0)" class="fs12 fwn ff1">0.254</A></TD><TD class="fs12 fwn b1 c222" align="right">0.211</TD></TR><TR id="HC_M2_0606_P::1444370_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">445
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444370_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444370_at')" class="fs12 fwn">1444370_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=97691" TARGET="_blank" class="fs12 fwn">C77058</A></TD><TD class="fs12 fwn b1 c222">expressed sequence C77058</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 77.010869</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.960</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444370_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1452553_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">446
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452553_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452553_at')" class="fs12 fwn">1452553_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=319727" TARGET="_blank" class="fs12 fwn">A330035P11Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A330035P11 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 34.291036</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.146</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">16.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 149.089195</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452553_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','A330035P11Rik',0)" class="fs12 fwn ff1">-0.029</A></TD><TD class="fs12 fwn b1 c222" align="right">0.888</TD></TR><TR id="HC_M2_0606_P::1459148_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">447
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459148_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459148_at')" class="fs12 fwn">1459148_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18505" TARGET="_blank" class="fs12 fwn">Pax3</A></TD><TD class="fs12 fwn b1 c222">paired box gene 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 78.104625</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.360</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459148_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.478</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Pax3',0)" class="fs12 fwn ff1">-0.392</A></TD><TD class="fs12 fwn b1 c222" align="right">0.048</TD></TR><TR id="HC_M2_0606_P::1447076_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">448
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447076_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447076_at')" class="fs12 fwn">1447076_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=338352" TARGET="_blank" class="fs12 fwn">Nell1</A></TD><TD class="fs12 fwn b1 c222">NEL-like 1, protein kinase C-binding protein NELL1; putative far 3' UTR (from EST AK079065)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 58.120206</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.002</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447076_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.404</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Nell1',0)" class="fs12 fwn ff1">-0.085</A></TD><TD class="fs12 fwn b1 c222" align="right">0.679</TD></TR><TR id="HC_M2_0606_P::1430866_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">449
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430866_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430866_at')" class="fs12 fwn">1430866_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77048" TARGET="_blank" class="fs12 fwn">4921537D05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4921537D05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 94.204932</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.192</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 89.298446</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430866_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1453528_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">450
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453528_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453528_at')" class="fs12 fwn">1453528_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=16993" TARGET="_blank" class="fs12 fwn">Lta4h</A></TD><TD class="fs12 fwn b1 c222">leukotriene A4 hydrolase (inflammatory response to infection, heart attack risk-associated); intron 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 92.916534</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.425</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453528_at')" class="fs12 fwn ffl">0.871</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.255</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lta4h',0)" class="fs12 fwn ff1">-0.299</A></TD><TD class="fs12 fwn b1 c222" align="right">0.137</TD></TR><TR id="HC_M2_0606_P::1457752_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">451
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1457752_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1457752_at')" class="fs12 fwn">1457752_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=106306" TARGET="_blank" class="fs12 fwn">AU014876</A></TD><TD class="fs12 fwn b1 c222">expressed sequence AU014876</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 16.578037</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.949</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1457752_at')" class="fs12 fwn ffl">0.870</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1456237_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">452
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456237_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456237_x_at')" class="fs12 fwn">1456237_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=433956" TARGET="_blank" class="fs12 fwn">Heatr2</A></TD><TD class="fs12 fwn b1 c222">HEAT repeat containing 2; mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 139.662048</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.941</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456237_x_at')" class="fs12 fwn ffl">0.870</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1430584_s_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">453
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430584_s_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430584_s_at')" class="fs12 fwn">1430584_s_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12350" TARGET="_blank" class="fs12 fwn">Car3</A></TD><TD class="fs12 fwn b1 c222">carbonic anhydrase 3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 14.865377</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.380</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 179.257463</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430584_s_at')" class="fs12 fwn ffl">0.870</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.327</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Car3',0)" class="fs12 fwn ff1">0.147</A></TD><TD class="fs12 fwn b1 c222" align="right">0.473</TD></TR><TR id="HC_M2_0606_P::1458807_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">454
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458807_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458807_at')" class="fs12 fwn">1458807_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=269587" TARGET="_blank" class="fs12 fwn">Epb4.1</A></TD><TD class="fs12 fwn b1 c222">erythrocyte protein band 4.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 131.490197</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.695</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458807_at')" class="fs12 fwn ffl">0.870</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.332</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Epb4.1',0)" class="fs12 fwn ff1">-0.164</A></TD><TD class="fs12 fwn b1 c222" align="right">0.424</TD></TR><TR id="HC_M2_0606_P::1432805_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">455
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432805_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432805_at')" class="fs12 fwn">1432805_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77201" TARGET="_blank" class="fs12 fwn">8030431A06Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 8030431A06 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 33.677880</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.843</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432805_at')" class="fs12 fwn ffl">0.870</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1458553_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">456
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1458553_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1458553_at')" class="fs12 fwn">1458553_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18791" TARGET="_blank" class="fs12 fwn">Plat</A></TD><TD class="fs12 fwn b1 c222">plasminogen activator, tissue</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 23.886508</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.303</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1458553_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.310</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Plat',0)" class="fs12 fwn ff1">0.308</A></TD><TD class="fs12 fwn b1 c222" align="right">0.125</TD></TR><TR id="HC_M2_0606_P::1446698_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">457
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446698_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446698_at')" class="fs12 fwn">1446698_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=210126" TARGET="_blank" class="fs12 fwn">Lpp</A></TD><TD class="fs12 fwn b1 c222">LIM domain containing preferred translocation partner in lipoma</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr16: 24.972573</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.473</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446698_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.313</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Lpp',0)" class="fs12 fwn ff1">0.262</A></TD><TD class="fs12 fwn b1 c222" align="right">0.195</TD></TR><TR id="HC_M2_0606_P::1453951_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">458
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1453951_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1453951_a_at')" class="fs12 fwn">1453951_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=70806" TARGET="_blank" class="fs12 fwn">4930463G05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930463G05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 47.904873</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.878</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1453951_a_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443825_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">459
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443825_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443825_x_at')" class="fs12 fwn">1443825_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=75622" TARGET="_blank" class="fs12 fwn">Spaca3</A></TD><TD class="fs12 fwn b1 c222">sperm acrosome associated 3; mid 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 80.681247</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.165</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443825_x_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.241</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Spaca3',0)" class="fs12 fwn ff1">-0.158</A></TD><TD class="fs12 fwn b1 c222" align="right">0.442</TD></TR><TR id="HC_M2_0606_P::1451719_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">460
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451719_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451719_at')" class="fs12 fwn">1451719_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=234959" TARGET="_blank" class="fs12 fwn">Crsp6</A></TD><TD class="fs12 fwn b1 c222">cofactor required for Sp1 transcriptional activation, subunit 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 15.064906</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.758</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451719_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.211</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1440939_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">461
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1440939_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1440939_at')" class="fs12 fwn">1440939_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=56526" TARGET="_blank" class="fs12 fwn">Sept6</A></TD><TD class="fs12 fwn b1 c222">septin 6</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 34.451405</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.621</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1440939_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.293</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Sept6',0)" class="fs12 fwn ff1">0.108</A></TD><TD class="fs12 fwn b1 c222" align="right">0.600</TD></TR><TR id="HC_M2_0606_P::1424700_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">462
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1424700_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1424700_at')" class="fs12 fwn">1424700_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=52076" TARGET="_blank" class="fs12 fwn">Tmem38b</A></TD><TD class="fs12 fwn b1 c222">transmembrane protein 38B (trimeric intracellular cation channel type B); last exon</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 53.872870</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.695</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1424700_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.183</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tmem38b',0)" class="fs12 fwn ff1">-0.023</A></TD><TD class="fs12 fwn b1 c222" align="right">0.912</TD></TR><TR id="HC_M2_0606_P::1424262_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">463
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1424262_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1424262_at')" class="fs12 fwn">1424262_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=108897" TARGET="_blank" class="fs12 fwn">Iba2</A></TD><TD class="fs12 fwn b1 c222">ionized calcium binding adapter 2; mid distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 31.828367</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">11.344</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1424262_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.174</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425233_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">464
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425233_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425233_at')" class="fs12 fwn">1425233_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78354" TARGET="_blank" class="fs12 fwn">2210407C18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2210407C18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 58.421791</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.931</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 67.694350</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425233_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2210407C18Rik',0)" class="fs12 fwn ff1">-0.043</A></TD><TD class="fs12 fwn b1 c222" align="right">0.837</TD></TR><TR id="HC_M2_0606_P::1439921_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">465
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1439921_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1439921_at')" class="fs12 fwn">1439921_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Aldh1a2" TARGET="_blank" class="fs12 fwn">Aldh1a2</A></TD><TD class="fs12 fwn b1 c222">aldehyde dehydrogenase 1 family, member A2; putative short transcript expressed from antisense of promoter</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 71.059765</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.201</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1439921_at')" class="fs12 fwn ffl">0.869</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Aldh1a2',0)" class="fs12 fwn ff1">0.178</A></TD><TD class="fs12 fwn b1 c222" align="right">0.384</TD></TR><TR id="HC_M2_0606_P::1452541_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">466
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452541_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452541_at')" class="fs12 fwn">1452541_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=13822" TARGET="_blank" class="fs12 fwn">Epb4.1l2</A></TD><TD class="fs12 fwn b1 c222">erythrocyte protein band 4.1-like 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 25.219581</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.548</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452541_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.279</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Epb4.1l2',0)" class="fs12 fwn ff1">0.063</A></TD><TD class="fs12 fwn b1 c222" align="right">0.760</TD></TR><TR id="HC_M2_0606_P::1422935_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">467
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1422935_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1422935_x_at')" class="fs12 fwn">1422935_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=12412" TARGET="_blank" class="fs12 fwn">Cbx1</A></TD><TD class="fs12 fwn b1 c222">chromobox homolog 1 (Drosophila HP1 beta); last exon and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 96.667974</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.867</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">9.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1422935_x_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cbx1',0)" class="fs12 fwn ff1">-0.215</A></TD><TD class="fs12 fwn b1 c222" align="right">0.292</TD></TR><TR id="HC_M2_0606_P::1443647_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">468
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443647_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443647_at')" class="fs12 fwn">1443647_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=19883" TARGET="_blank" class="fs12 fwn">Rora</A></TD><TD class="fs12 fwn b1 c222">retinoic acid receptor-related orphan receptor alpha; antisense in intron 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr9: 68.503596</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.469</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443647_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.387</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Rora',0)" class="fs12 fwn ff1">-0.015</A></TD><TD class="fs12 fwn b1 c222" align="right">0.942</TD></TR><TR id="HC_M2_0606_P::1427727_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">469
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427727_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427727_x_at')" class="fs12 fwn">1427727_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=26439" TARGET="_blank" class="fs12 fwn">Psg19</A></TD><TD class="fs12 fwn b1 c222">pregnancy specific glycoprotein 19</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 19.309935</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.221</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427727_x_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.233</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Psg19',0)" class="fs12 fwn ff1">-0.389</A></TD><TD class="fs12 fwn b1 c222" align="right">0.050</TD></TR><TR id="HC_M2_0606_P::1446347_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">470
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1446347_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1446347_at')" class="fs12 fwn">1446347_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=Eplin" TARGET="_blank" class="fs12 fwn">Eplin</A></TD><TD class="fs12 fwn b1 c222">ESTs, Weakly similar to RIKEN cDNA 5730493B19 [] [M.musculus]</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 92.880664</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.851</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1446347_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425244_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">471
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425244_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425244_a_at')" class="fs12 fwn">1425244_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=21830" TARGET="_blank" class="fs12 fwn">Theg</A></TD><TD class="fs12 fwn b1 c222">testicular haploid expressed gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 79.046508</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.862</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425244_a_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.197</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Theg',0)" class="fs12 fwn ff1">-0.099</A></TD><TD class="fs12 fwn b1 c222" align="right">0.629</TD></TR><TR id="HC_M2_0606_P::1451823_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">472
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1451823_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1451823_at')" class="fs12 fwn">1451823_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=229927" TARGET="_blank" class="fs12 fwn">Clca4</A></TD><TD class="fs12 fwn b1 c222">chloride channel calcium activated 4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 144.485766</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.691</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1451823_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.280</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Clca4',0)" class="fs12 fwn ff1">-0.087</A></TD><TD class="fs12 fwn b1 c222" align="right">0.674</TD></TR><TR id="HC_M2_0606_P::1426101_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">473
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1426101_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1426101_at')" class="fs12 fwn">1426101_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77113" TARGET="_blank" class="fs12 fwn">Klhl2</A></TD><TD class="fs12 fwn b1 c222">kelch-like 2, Mayven (Drosophila)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr8: 67.331549</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.312</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1426101_at')" class="fs12 fwn ffl">0.868</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.260</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Klhl2',0)" class="fs12 fwn ff1">0.251</A></TD><TD class="fs12 fwn b1 c222" align="right">0.215</TD></TR><TR id="HC_M2_0606_P::1436730_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">474
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436730_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436730_at')" class="fs12 fwn">1436730_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=111246" TARGET="_blank" class="fs12 fwn">Mclc</A></TD><TD class="fs12 fwn b1 c222">myeloid cell leukemia sequence 1, related sequence 1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 108.481193</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.330</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.3</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436730_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.154</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444191_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">475
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444191_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444191_at')" class="fs12 fwn">1444191_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BB210461" TARGET="_blank" class="fs12 fwn">BB210461</A></TD><TD class="fs12 fwn b1 c222">0 day neonate lung cDNA, RIKEN full-length enriched library, clone:E030029G01 product:unclassifiable, full insert sequence.</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr12: 100.786386</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.431</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444191_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1456594_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">476
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456594_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456594_at')" class="fs12 fwn">1456594_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=BB728372" TARGET="_blank" class="fs12 fwn">BB728372</A></TD><TD class="fs12 fwn b1 c222">polymorphic LTR from sequence in BB728372 (distal Chr 15 in BXD Eye data)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 103.202397</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.757</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456594_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1436785_a_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">477
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1436785_a_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1436785_a_at')" class="fs12 fwn">1436785_a_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=71798" TARGET="_blank" class="fs12 fwn">1110069O07Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1110069O07 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr11: 3.978807</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.186</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1436785_a_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1110069O07Rik',0)" class="fs12 fwn ff1">0.082</A></TD><TD class="fs12 fwn b1 c222" align="right">0.689</TD></TR><TR id="HC_M2_0606_P::1447530_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">478
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447530_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447530_at')" class="fs12 fwn">1447530_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14070" TARGET="_blank" class="fs12 fwn">F8a</A></TD><TD class="fs12 fwn b1 c222">factor 8-associated gene A; proximal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 70.474805</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">12.015</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447530_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.213</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','F8a',0)" class="fs12 fwn ff1">0.165</A></TD><TD class="fs12 fwn b1 c222" align="right">0.421</TD></TR><TR id="HC_M2_0606_P::1427169_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">479
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427169_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427169_at')" class="fs12 fwn">1427169_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72823" TARGET="_blank" class="fs12 fwn">2810455B10Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2810455B10 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 62.322456</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.067</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr19: 53.459278</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427169_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.200</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1425333_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">480
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425333_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425333_at')" class="fs12 fwn">1425333_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=69834" TARGET="_blank" class="fs12 fwn">1810048P08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1810048P08 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 87.738877</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.038</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425333_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.177</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1442985_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">481
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442985_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442985_at')" class="fs12 fwn">1442985_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=240793" TARGET="_blank" class="fs12 fwn">Hmcn1</A></TD><TD class="fs12 fwn b1 c222">hemicentin (fibulin 6, extracellular matrix EGF-domain protein linked to macular degeneration); antisense in intron 7 from EST AU046291</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 152.660040</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.301</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442985_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Hmcn1',0)" class="fs12 fwn ff1">0.041</A></TD><TD class="fs12 fwn b1 c222" align="right">0.841</TD></TR><TR id="HC_M2_0606_P::1456731_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">482
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1456731_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1456731_x_at')" class="fs12 fwn">1456731_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=67005" TARGET="_blank" class="fs12 fwn">Polr3k</A></TD><TD class="fs12 fwn b1 c222">polymerase (RNA) III (DNA directed) polypeptide K</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 181.604130</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.926</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">10.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1456731_x_at')" class="fs12 fwn ffl">0.867</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.249</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Polr3k',0)" class="fs12 fwn ff1">-0.147</A></TD><TD class="fs12 fwn b1 c222" align="right">0.473</TD></TR><TR id="HC_M2_0606_P::1459063_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">483
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1459063_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1459063_at')" class="fs12 fwn">1459063_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=gene&term=4833412C05Rik" TARGET="_blank" class="fs12 fwn">4833412C05Rik</A></TD><TD class="fs12 fwn b1 c222">ESTs</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 61.338977</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.533</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1459063_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','4833412C05Rik',0)" class="fs12 fwn ff1">0.415</A></TD><TD class="fs12 fwn b1 c222" align="right">0.035</TD></TR><TR id="HC_M2_0606_P::1432888_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">484
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432888_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432888_at')" class="fs12 fwn">1432888_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=78918" TARGET="_blank" class="fs12 fwn">4930455M05Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 4930455M05 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr13: 59.520780</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.728</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432888_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1447759_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">485
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1447759_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1447759_x_at')" class="fs12 fwn">1447759_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=54638" TARGET="_blank" class="fs12 fwn">Ccdc22</A></TD><TD class="fs12 fwn b1 c222">coiled-coil domain containing 22; 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 7.170936</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.008</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">8.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 10.327101</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1447759_x_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1452889_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">486
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1452889_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1452889_at')" class="fs12 fwn">1452889_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=76429" TARGET="_blank" class="fs12 fwn">Lhpp</A></TD><TD class="fs12 fwn b1 c222">phospholysine phosphohistidine inorganic pyrophosphate phosphatase; mid and distal 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 139.897572</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">10.049</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1452889_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.202</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1443490_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">487
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443490_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443490_at')" class="fs12 fwn">1443490_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=59069" TARGET="_blank" class="fs12 fwn">Tpm3</A></TD><TD class="fs12 fwn b1 c222">tropomyosin 3, gamma</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 89.886163</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.455</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443490_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.318</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Tpm3',0)" class="fs12 fwn ff1">0.196</A></TD><TD class="fs12 fwn b1 c222" align="right">0.337</TD></TR><TR id="HC_M2_0606_P::1430055_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">488
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430055_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430055_at')" class="fs12 fwn">1430055_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=73533" TARGET="_blank" class="fs12 fwn">1700080G18Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 1700080G18 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr6: 29.997440</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.971</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">15.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430055_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','1700080G18Rik',0)" class="fs12 fwn ff1">0.135</A></TD><TD class="fs12 fwn b1 c222" align="right">0.512</TD></TR><TR id="HC_M2_0606_P::1432682_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">489
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1432682_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1432682_at')" class="fs12 fwn">1432682_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=74507" TARGET="_blank" class="fs12 fwn">5530400K19Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 5530400K19 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 155.563194</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.024</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">14.8</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1432682_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1418767_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">490
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418767_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418767_at')" class="fs12 fwn">1418767_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=170716" TARGET="_blank" class="fs12 fwn">Cyp4f13</A></TD><TD class="fs12 fwn b1 c222">cytochrome P450, family 4, subfamily f, polypeptide 13; last 5 exons and 3' UTR</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 33.061646</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">9.008</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418767_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.263</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Cyp4f13',0)" class="fs12 fwn ff1">0.332</A></TD><TD class="fs12 fwn b1 c222" align="right">0.098</TD></TR><TR id="HC_M2_0606_P::1418661_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">491
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1418661_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1418661_at')" class="fs12 fwn">1418661_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=54608" TARGET="_blank" class="fs12 fwn">Abhd2</A></TD><TD class="fs12 fwn b1 c222">abhydrolase domain containing 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 86.500731</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.746</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">17.9</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1418661_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.243</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Abhd2',0)" class="fs12 fwn ff1">0.104</A></TD><TD class="fs12 fwn b1 c222" align="right">0.613</TD></TR><TR id="HC_M2_0606_P::1442360_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">492
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1442360_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1442360_at')" class="fs12 fwn">1442360_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=77954" TARGET="_blank" class="fs12 fwn">A930012M21Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA A930012M21 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr5: 132.172768</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.772</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1442360_at')" class="fs12 fwn ffl">0.866</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1430715_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">493
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1430715_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1430715_at')" class="fs12 fwn">1430715_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=381845" TARGET="_blank" class="fs12 fwn">2310014L17Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2310014L17 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr7: 13.514770</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.296</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">13.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1430715_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','2310014L17Rik',0)" class="fs12 fwn ff1">-0.134</A></TD><TD class="fs12 fwn b1 c222" align="right">0.513</TD></TR><TR id="HC_M2_0606_P::1444281_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">494
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444281_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444281_at')" class="fs12 fwn">1444281_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=108058" TARGET="_blank" class="fs12 fwn">Camk2d</A></TD><TD class="fs12 fwn b1 c222">calcium/calmodulin-dependent protein kinase II, delta; intron 2</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr3: 126.306804</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">6.789</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr1: 193.731996</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444281_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.317</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Camk2d',0)" class="fs12 fwn ff1">0.325</A></TD><TD class="fs12 fwn b1 c222" align="right">0.105</TD></TR><TR id="HC_M2_0606_P::1427911_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">495
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1427911_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1427911_at')" class="fs12 fwn">1427911_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=72512" TARGET="_blank" class="fs12 fwn">2610307O08Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA 2610307O08 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr18: 35.893948</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">8.333</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1427911_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.193</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn b1 c222" align="right">--</TD></TR><TR id="HC_M2_0606_P::1444928_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">496
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1444928_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1444928_at')" class="fs12 fwn">1444928_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=215085" TARGET="_blank" class="fs12 fwn">Slc35f1</A></TD><TD class="fs12 fwn b1 c222">solute carrier family 35, member F1; antisense in intron 1 (from AK141358)</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr10: 52.414313</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.396</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.6</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr15: 13.149248</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1444928_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.112</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Slc35f1',0)" class="fs12 fwn ff1">0.206</A></TD><TD class="fs12 fwn b1 c222" align="right">0.312</TD></TR><TR id="HC_M2_0606_P::1443318_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">497
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443318_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443318_at')" class="fs12 fwn">1443318_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=320890" TARGET="_blank" class="fs12 fwn">E130016E03Rik</A></TD><TD class="fs12 fwn b1 c222">RIKEN cDNA E130016E03 gene</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr4: 11.511465</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.719</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.2</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443318_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">--</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','E130016E03Rik',0)" class="fs12 fwn ff1">-0.346</A></TD><TD class="fs12 fwn b1 c222" align="right">0.083</TD></TR><TR id="HC_M2_0606_P::1443687_x_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">498
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1443687_x_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1443687_x_at')" class="fs12 fwn">1443687_x_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=14999" TARGET="_blank" class="fs12 fwn">H2-DMb1</A></TD><TD class="fs12 fwn b1 c222">histocompatibility 2, class II, locus Mb1</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr17: 33.762028</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.798</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.4</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr14: 118.861653</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1443687_x_at')" class="fs12 fwn ffl">0.865</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.247</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','H2-DMb1',0)" class="fs12 fwn ff1">0.077</A></TD><TD class="fs12 fwn b1 c222" align="right">0.708</TD></TR><TR id="HC_M2_0606_P::1425540_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">499
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1425540_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1425540_at')" class="fs12 fwn">1425540_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=18416" TARGET="_blank" class="fs12 fwn">Otc</A></TD><TD class="fs12 fwn b1 c222">ornithine transcarbamylase</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 9.893472</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.976</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">12.5</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 112.637353</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1425540_at')" class="fs12 fwn ffl">0.864</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.339</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Otc',0)" class="fs12 fwn ff1">-0.077</A></TD><TD class="fs12 fwn b1 c222" align="right">0.710</TD></TR><TR id="HC_M2_0606_P::1420943_at"><TD class="fs12 fwn ffl b1 c222" nowrap="on">500
-<INPUT TYPE="checkbox" NAME="searchResult" class="checkbox" VALUE="HC_M2_0606_P::1420943_at" onClick="highlight(this)"></TD><TD class="fs12 fwn b1 c222"><A HREF="javascript:showTrait('fm_Kom6yf8U', '1420943_at')" class="fs12 fwn">1420943_at</A></TD><TD class="fs12 fwn b1 c222 fsI"><A HREF="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=22673" TARGET="_blank" class="fs12 fwn">Zfp185</A></TD><TD class="fs12 fwn b1 c222">zinc finger protein 185</TD><TD class="fs12 fwn b1 c222" nowrap="on">ChrX: 70.275024</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">7.522</TD><TD class="fs12 fwn b1 c222" nowrap="on" align="right">11.0</TD><TD class="fs12 fwn b1 c222" nowrap="on">Chr2: 178.942786</TD><TD class="fs12 fwn ffl b1 c222" align="right"><A HREF="javascript:showCorrPlot('fm_Kom6yf8U', '1420943_at')" class="fs12 fwn ffl">0.864</A></TD><TD class="fs12 fwn ffl b1 c222" align="right">71</TD><TD class="fs12 fwn ffl b1 c222" nowrap="ON" align="right">0.00e+00</TD><TD class="fs12 fwn b1 c222" align="right">0.239</TD><TD class="fs12 fwn ff1 b1 c222" align="right"><A HREF="javascript:showTissueCorrPlot('fm_Kom6yf8U','Shh','Zfp185',0)" class="fs12 fwn ff1">0.094</A></TD><TD class="fs12 fwn b1 c222" align="right">0.648</TD></TR></TABLE><SCRIPT LANGUAGE="Javascript" ><!--
-
-var corrArray = new Array();
-corrArray["HC_M2_0606_P::1436869_at"] = {corr:1.0000};
-corrArray["HC_M2_0606_P::1434987_at"] = {corr:0.9734};
-corrArray["HC_M2_0606_P::1420293_at"] = {corr:0.9586};
-corrArray["HC_M2_0606_P::1459623_at"] = {corr:0.9577};
-corrArray["HC_M2_0606_P::1449781_at"] = {corr:0.9549};
-corrArray["HC_M2_0606_P::1434988_x_at"] = {corr:0.9538};
-corrArray["HC_M2_0606_P::1458048_at"] = {corr:0.9535};
-corrArray["HC_M2_0606_P::1455707_at"] = {corr:0.9533};
-corrArray["HC_M2_0606_P::1454251_at"] = {corr:0.9514};
-corrArray["HC_M2_0606_P::1415862_at"] = {corr:0.9478};
-corrArray["HC_M2_0606_P::1444984_at"] = {corr:0.9465};
-corrArray["HC_M2_0606_P::1457982_at"] = {corr:0.9447};
-corrArray["HC_M2_0606_P::1421186_at"] = {corr:0.9444};
-corrArray["HC_M2_0606_P::1438549_a_at"] = {corr:0.9439};
-corrArray["HC_M2_0606_P::1420604_at"] = {corr:0.9430};
-corrArray["HC_M2_0606_P::1444022_at"] = {corr:0.9426};
-corrArray["HC_M2_0606_P::1439404_x_at"] = {corr:0.9422};
-corrArray["HC_M2_0606_P::1420228_at"] = {corr:0.9421};
-corrArray["HC_M2_0606_P::1424612_at"] = {corr:0.9417};
-corrArray["HC_M2_0606_P::1425815_a_at"] = {corr:0.9411};
-corrArray["HC_M2_0606_P::1421367_at"] = {corr:0.9409};
-corrArray["HC_M2_0606_P::1431884_at"] = {corr:0.9391};
-corrArray["HC_M2_0606_P::1432588_at"] = {corr:0.9376};
-corrArray["HC_M2_0606_P::1444789_at"] = {corr:0.9375};
-corrArray["HC_M2_0606_P::1441483_at"] = {corr:0.9373};
-corrArray["HC_M2_0606_P::1424148_a_at"] = {corr:0.9367};
-corrArray["HC_M2_0606_P::1454463_at"] = {corr:0.9367};
-corrArray["HC_M2_0606_P::1442589_at"] = {corr:0.9364};
-corrArray["HC_M2_0606_P::1430193_at"] = {corr:0.9345};
-corrArray["HC_M2_0606_P::1435040_at"] = {corr:0.9335};
-corrArray["HC_M2_0606_P::1456734_at"] = {corr:0.9326};
-corrArray["HC_M2_0606_P::1420143_at"] = {corr:0.9324};
-corrArray["HC_M2_0606_P::1446615_at"] = {corr:0.9323};
-corrArray["HC_M2_0606_P::1451774_at"] = {corr:0.9321};
-corrArray["HC_M2_0606_P::1443940_at"] = {corr:0.9310};
-corrArray["HC_M2_0606_P::1447191_at"] = {corr:0.9307};
-corrArray["HC_M2_0606_P::1457757_at"] = {corr:0.9303};
-corrArray["HC_M2_0606_P::1441289_at"] = {corr:0.9301};
-corrArray["HC_M2_0606_P::1456561_s_at"] = {corr:0.9296};
-corrArray["HC_M2_0606_P::1425493_at"] = {corr:0.9289};
-corrArray["HC_M2_0606_P::1452986_at"] = {corr:0.9288};
-corrArray["HC_M2_0606_P::1447563_at"] = {corr:0.9279};
-corrArray["HC_M2_0606_P::1436749_at"] = {corr:0.9277};
-corrArray["HC_M2_0606_P::1439245_at"] = {corr:0.9273};
-corrArray["HC_M2_0606_P::1450353_at"] = {corr:0.9272};
-corrArray["HC_M2_0606_P::1446656_at"] = {corr:0.9269};
-corrArray["HC_M2_0606_P::1458006_at"] = {corr:0.9267};
-corrArray["HC_M2_0606_P::1441754_at"] = {corr:0.9266};
-corrArray["HC_M2_0606_P::1432266_at"] = {corr:0.9260};
-corrArray["HC_M2_0606_P::1451950_a_at"] = {corr:0.9254};
-corrArray["HC_M2_0606_P::1448011_at"] = {corr:0.9252};
-corrArray["HC_M2_0606_P::1419992_x_at"] = {corr:0.9235};
-corrArray["HC_M2_0606_P::1459589_at"] = {corr:0.9231};
-corrArray["HC_M2_0606_P::1443421_s_at"] = {corr:0.9231};
-corrArray["HC_M2_0606_P::1444961_at"] = {corr:0.9230};
-corrArray["HC_M2_0606_P::1422086_at"] = {corr:0.9228};
-corrArray["HC_M2_0606_P::1433260_at"] = {corr:0.9227};
-corrArray["HC_M2_0606_P::1429895_at"] = {corr:0.9225};
-corrArray["HC_M2_0606_P::1458550_at"] = {corr:0.9221};
-corrArray["HC_M2_0606_P::1453673_at"] = {corr:0.9219};
-corrArray["HC_M2_0606_P::1433809_at"] = {corr:0.9218};
-corrArray["HC_M2_0606_P::1431063_at"] = {corr:0.9213};
-corrArray["HC_M2_0606_P::1444682_at"] = {corr:0.9213};
-corrArray["HC_M2_0606_P::1459654_at"] = {corr:0.9212};
-corrArray["HC_M2_0606_P::1445285_at"] = {corr:0.9211};
-corrArray["HC_M2_0606_P::1425038_at"] = {corr:0.9202};
-corrArray["HC_M2_0606_P::1458634_at"] = {corr:0.9201};
-corrArray["HC_M2_0606_P::1418065_at"] = {corr:0.9200};
-corrArray["HC_M2_0606_P::1451661_at"] = {corr:0.9197};
-corrArray["HC_M2_0606_P::1431561_a_at"] = {corr:0.9195};
-corrArray["HC_M2_0606_P::1435887_at"] = {corr:0.9192};
-corrArray["HC_M2_0606_P::1440846_at"] = {corr:0.9190};
-corrArray["HC_M2_0606_P::1444938_at"] = {corr:0.9189};
-corrArray["HC_M2_0606_P::1440937_at"] = {corr:0.9188};
-corrArray["HC_M2_0606_P::1430767_a_at"] = {corr:0.9187};
-corrArray["HC_M2_0606_P::1458193_at"] = {corr:0.9186};
-corrArray["HC_M2_0606_P::1439121_at"] = {corr:0.9184};
-corrArray["HC_M2_0606_P::1419991_at"] = {corr:0.9182};
-corrArray["HC_M2_0606_P::1419295_at"] = {corr:0.9181};
-corrArray["HC_M2_0606_P::1444697_at"] = {corr:0.9180};
-corrArray["HC_M2_0606_P::1459705_at"] = {corr:0.9179};
-corrArray["HC_M2_0606_P::1448092_x_at"] = {corr:0.9177};
-corrArray["HC_M2_0606_P::1433302_at"] = {corr:0.9176};
-corrArray["HC_M2_0606_P::1431904_at"] = {corr:0.9174};
-corrArray["HC_M2_0606_P::1441303_at"] = {corr:0.9174};
-corrArray["HC_M2_0606_P::1427807_at"] = {corr:0.9168};
-corrArray["HC_M2_0606_P::1444479_at"] = {corr:0.9162};
-corrArray["HC_M2_0606_P::1458835_at"] = {corr:0.9160};
-corrArray["HC_M2_0606_P::1438825_at"] = {corr:0.9159};
-corrArray["HC_M2_0606_P::1439055_at"] = {corr:0.9155};
-corrArray["HC_M2_0606_P::1457171_at"] = {corr:0.9153};
-corrArray["HC_M2_0606_P::1451856_at"] = {corr:0.9151};
-corrArray["HC_M2_0606_P::1454460_at"] = {corr:0.9148};
-corrArray["HC_M2_0606_P::1425999_at"] = {corr:0.9146};
-corrArray["HC_M2_0606_P::1430963_at"] = {corr:0.9145};
-corrArray["HC_M2_0606_P::1431347_at"] = {corr:0.9145};
-corrArray["HC_M2_0606_P::1446038_at"] = {corr:0.9144};
-corrArray["HC_M2_0606_P::1436288_at"] = {corr:0.9144};
-corrArray["HC_M2_0606_P::1457608_at"] = {corr:0.9140};
-corrArray["HC_M2_0606_P::1458329_x_at"] = {corr:0.9139};
-corrArray["HC_M2_0606_P::1458270_at"] = {corr:0.9134};
-corrArray["HC_M2_0606_P::1438387_x_at"] = {corr:0.9133};
-corrArray["HC_M2_0606_P::1452568_at"] = {corr:0.9131};
-corrArray["HC_M2_0606_P::1453264_at"] = {corr:0.9129};
-corrArray["HC_M2_0606_P::1459301_at"] = {corr:0.9128};
-corrArray["HC_M2_0606_P::1422370_at"] = {corr:0.9126};
-corrArray["HC_M2_0606_P::1460105_at"] = {corr:0.9122};
-corrArray["HC_M2_0606_P::1450636_s_at"] = {corr:0.9121};
-corrArray["HC_M2_0606_P::1460067_at"] = {corr:0.9120};
-corrArray["HC_M2_0606_P::1442958_at"] = {corr:0.9115};
-corrArray["HC_M2_0606_P::1458881_at"] = {corr:0.9113};
-corrArray["HC_M2_0606_P::1458350_at"] = {corr:0.9112};
-corrArray["HC_M2_0606_P::1428965_at"] = {corr:0.9107};
-corrArray["HC_M2_0606_P::1433318_at"] = {corr:0.9104};
-corrArray["HC_M2_0606_P::1446413_at"] = {corr:0.9102};
-corrArray["HC_M2_0606_P::1459427_at"] = {corr:0.9102};
-corrArray["HC_M2_0606_P::1454355_at"] = {corr:0.9101};
-corrArray["HC_M2_0606_P::1458804_at"] = {corr:0.9099};
-corrArray["HC_M2_0606_P::1459383_at"] = {corr:0.9097};
-corrArray["HC_M2_0606_P::1437703_at"] = {corr:0.9097};
-corrArray["HC_M2_0606_P::1458191_at"] = {corr:0.9095};
-corrArray["HC_M2_0606_P::1441042_at"] = {corr:0.9095};
-corrArray["HC_M2_0606_P::1419090_x_at"] = {corr:0.9093};
-corrArray["HC_M2_0606_P::1429672_at"] = {corr:0.9092};
-corrArray["HC_M2_0606_P::1440733_at"] = {corr:0.9087};
-corrArray["HC_M2_0606_P::1450797_a_at"] = {corr:0.9084};
-corrArray["HC_M2_0606_P::1442976_at"] = {corr:0.9084};
-corrArray["HC_M2_0606_P::1441116_at"] = {corr:0.9083};
-corrArray["HC_M2_0606_P::1444023_at"] = {corr:0.9082};
-corrArray["HC_M2_0606_P::1444238_at"] = {corr:0.9080};
-corrArray["HC_M2_0606_P::1459529_at"] = {corr:0.9076};
-corrArray["HC_M2_0606_P::1457950_at"] = {corr:0.9075};
-corrArray["HC_M2_0606_P::1444888_at"] = {corr:0.9075};
-corrArray["HC_M2_0606_P::1432974_at"] = {corr:0.9074};
-corrArray["HC_M2_0606_P::1421983_s_at"] = {corr:0.9073};
-corrArray["HC_M2_0606_P::1449317_at"] = {corr:0.9070};
-corrArray["HC_M2_0606_P::1432345_at"] = {corr:0.9068};
-corrArray["HC_M2_0606_P::1419836_at"] = {corr:0.9067};
-corrArray["HC_M2_0606_P::1437867_at"] = {corr:0.9063};
-corrArray["HC_M2_0606_P::1456578_x_at"] = {corr:0.9063};
-corrArray["HC_M2_0606_P::1415851_a_at"] = {corr:0.9061};
-corrArray["HC_M2_0606_P::1458923_at"] = {corr:0.9061};
-corrArray["HC_M2_0606_P::1415809_at"] = {corr:0.9060};
-corrArray["HC_M2_0606_P::1439745_at"] = {corr:0.9054};
-corrArray["HC_M2_0606_P::1446874_at"] = {corr:0.9049};
-corrArray["HC_M2_0606_P::1445019_at"] = {corr:0.9047};
-corrArray["HC_M2_0606_P::1441250_at"] = {corr:0.9046};
-corrArray["HC_M2_0606_P::1445482_at"] = {corr:0.9046};
-corrArray["HC_M2_0606_P::1421521_at"] = {corr:0.9046};
-corrArray["HC_M2_0606_P::1454005_at"] = {corr:0.9043};
-corrArray["HC_M2_0606_P::1442762_at"] = {corr:0.9043};
-corrArray["HC_M2_0606_P::1419970_at"] = {corr:0.9043};
-corrArray["HC_M2_0606_P::1446710_at"] = {corr:0.9040};
-corrArray["HC_M2_0606_P::1459425_at"] = {corr:0.9040};
-corrArray["HC_M2_0606_P::1444038_at"] = {corr:0.9039};
-corrArray["HC_M2_0606_P::1440683_at"] = {corr:0.9038};
-corrArray["HC_M2_0606_P::1457394_at"] = {corr:0.9036};
-corrArray["HC_M2_0606_P::1459598_at"] = {corr:0.9033};
-corrArray["HC_M2_0606_P::1447680_at"] = {corr:0.9033};
-corrArray["HC_M2_0606_P::1454726_s_at"] = {corr:0.9032};
-corrArray["HC_M2_0606_P::1447694_x_at"] = {corr:0.9028};
-corrArray["HC_M2_0606_P::1422941_at"] = {corr:0.9027};
-corrArray["HC_M2_0606_P::1447157_at"] = {corr:0.9027};
-corrArray["HC_M2_0606_P::1427292_at"] = {corr:0.9025};
-corrArray["HC_M2_0606_P::1425675_s_at"] = {corr:0.9025};
-corrArray["HC_M2_0606_P::1418751_at"] = {corr:0.9023};
-corrArray["HC_M2_0606_P::1421532_at"] = {corr:0.9022};
-corrArray["HC_M2_0606_P::1421078_at"] = {corr:0.9021};
-corrArray["HC_M2_0606_P::1447247_at"] = {corr:0.9021};
-corrArray["HC_M2_0606_P::1440525_at"] = {corr:0.9019};
-corrArray["HC_M2_0606_P::1444401_at"] = {corr:0.9018};
-corrArray["HC_M2_0606_P::1419481_at"] = {corr:0.9016};
-corrArray["HC_M2_0606_P::1458930_at"] = {corr:0.9015};
-corrArray["HC_M2_0606_P::1425996_a_at"] = {corr:0.9014};
-corrArray["HC_M2_0606_P::1438302_at"] = {corr:0.9014};
-corrArray["HC_M2_0606_P::1433074_at"] = {corr:0.9013};
-corrArray["HC_M2_0606_P::1449667_at"] = {corr:0.9012};
-corrArray["HC_M2_0606_P::1421782_a_at"] = {corr:0.9011};
-corrArray["HC_M2_0606_P::1460732_a_at"] = {corr:0.9010};
-corrArray["HC_M2_0606_P::1425559_a_at"] = {corr:0.9007};
-corrArray["HC_M2_0606_P::1459688_at"] = {corr:0.9003};
-corrArray["HC_M2_0606_P::1446564_at"] = {corr:0.9001};
-corrArray["HC_M2_0606_P::1458361_at"] = {corr:0.9001};
-corrArray["HC_M2_0606_P::1425003_at"] = {corr:0.8999};
-corrArray["HC_M2_0606_P::1446034_at"] = {corr:0.8997};
-corrArray["HC_M2_0606_P::1443081_at"] = {corr:0.8997};
-corrArray["HC_M2_0606_P::1455926_at"] = {corr:0.8994};
-corrArray["HC_M2_0606_P::1433057_at"] = {corr:0.8993};
-corrArray["HC_M2_0606_P::1447411_at"] = {corr:0.8992};
-corrArray["HC_M2_0606_P::1445614_at"] = {corr:0.8989};
-corrArray["HC_M2_0606_P::1446198_at"] = {corr:0.8989};
-corrArray["HC_M2_0606_P::1436097_x_at"] = {corr:0.8988};
-corrArray["HC_M2_0606_P::1453148_at"] = {corr:0.8988};
-corrArray["HC_M2_0606_P::1454575_at"] = {corr:0.8987};
-corrArray["HC_M2_0606_P::1422400_a_at"] = {corr:0.8987};
-corrArray["HC_M2_0606_P::1458279_at"] = {corr:0.8986};
-corrArray["HC_M2_0606_P::1438638_x_at"] = {corr:0.8982};
-corrArray["HC_M2_0606_P::1455457_at"] = {corr:0.8980};
-corrArray["HC_M2_0606_P::1418753_at"] = {corr:0.8978};
-corrArray["HC_M2_0606_P::1453829_at"] = {corr:0.8978};
-corrArray["HC_M2_0606_P::1419846_at"] = {corr:0.8977};
-corrArray["HC_M2_0606_P::1439876_at"] = {corr:0.8977};
-corrArray["HC_M2_0606_P::1444616_x_at"] = {corr:0.8972};
-corrArray["HC_M2_0606_P::1443942_at"] = {corr:0.8971};
-corrArray["HC_M2_0606_P::1431889_x_at"] = {corr:0.8970};
-corrArray["HC_M2_0606_P::1458241_at"] = {corr:0.8970};
-corrArray["HC_M2_0606_P::1437786_at"] = {corr:0.8970};
-corrArray["HC_M2_0606_P::1449260_at"] = {corr:0.8970};
-corrArray["HC_M2_0606_P::1436068_at"] = {corr:0.8966};
-corrArray["HC_M2_0606_P::1430724_at"] = {corr:0.8961};
-corrArray["HC_M2_0606_P::1433097_at"] = {corr:0.8956};
-corrArray["HC_M2_0606_P::1459184_at"] = {corr:0.8956};
-corrArray["HC_M2_0606_P::1443193_at"] = {corr:0.8954};
-corrArray["HC_M2_0606_P::1427800_at"] = {corr:0.8952};
-corrArray["HC_M2_0606_P::1431969_at"] = {corr:0.8949};
-corrArray["HC_M2_0606_P::1451880_at"] = {corr:0.8947};
-corrArray["HC_M2_0606_P::1435979_a_at"] = {corr:0.8946};
-corrArray["HC_M2_0606_P::1454574_at"] = {corr:0.8945};
-corrArray["HC_M2_0606_P::1437431_at"] = {corr:0.8943};
-corrArray["HC_M2_0606_P::1458587_at"] = {corr:0.8941};
-corrArray["HC_M2_0606_P::1457465_at"] = {corr:0.8940};
-corrArray["HC_M2_0606_P::1444284_at"] = {corr:0.8939};
-corrArray["HC_M2_0606_P::1427516_a_at"] = {corr:0.8938};
-corrArray["HC_M2_0606_P::1457043_at"] = {corr:0.8938};
-corrArray["HC_M2_0606_P::1427497_at"] = {corr:0.8932};
-corrArray["HC_M2_0606_P::1420041_at"] = {corr:0.8932};
-corrArray["HC_M2_0606_P::1425295_at"] = {corr:0.8931};
-corrArray["HC_M2_0606_P::1432122_at"] = {corr:0.8931};
-corrArray["HC_M2_0606_P::1432306_at"] = {corr:0.8930};
-corrArray["HC_M2_0606_P::1431919_at"] = {corr:0.8930};
-corrArray["HC_M2_0606_P::1425438_at"] = {corr:0.8928};
-corrArray["HC_M2_0606_P::1446970_at"] = {corr:0.8927};
-corrArray["HC_M2_0606_P::1437523_s_at"] = {corr:0.8927};
-corrArray["HC_M2_0606_P::1427787_at"] = {corr:0.8926};
-corrArray["HC_M2_0606_P::1457967_at"] = {corr:0.8924};
-corrArray["HC_M2_0606_P::1418609_at"] = {corr:0.8924};
-corrArray["HC_M2_0606_P::1458857_at"] = {corr:0.8921};
-corrArray["HC_M2_0606_P::1458681_at"] = {corr:0.8921};
-corrArray["HC_M2_0606_P::1443354_at"] = {corr:0.8919};
-corrArray["HC_M2_0606_P::1428925_at"] = {corr:0.8919};
-corrArray["HC_M2_0606_P::1417074_at"] = {corr:0.8914};
-corrArray["HC_M2_0606_P::1444940_at"] = {corr:0.8913};
-corrArray["HC_M2_0606_P::1438865_at"] = {corr:0.8911};
-corrArray["HC_M2_0606_P::1430627_at"] = {corr:0.8910};
-corrArray["HC_M2_0606_P::1430540_at"] = {corr:0.8909};
-corrArray["HC_M2_0606_P::1443798_at"] = {corr:0.8908};
-corrArray["HC_M2_0606_P::1432784_at"] = {corr:0.8908};
-corrArray["HC_M2_0606_P::1455427_at"] = {corr:0.8908};
-corrArray["HC_M2_0606_P::1432687_at"] = {corr:0.8907};
-corrArray["HC_M2_0606_P::1459943_at"] = {corr:0.8906};
-corrArray["HC_M2_0606_P::1429636_at"] = {corr:0.8906};
-corrArray["HC_M2_0606_P::1459824_at"] = {corr:0.8905};
-corrArray["HC_M2_0606_P::1436565_at"] = {corr:0.8905};
-corrArray["HC_M2_0606_P::1442459_at"] = {corr:0.8904};
-corrArray["HC_M2_0606_P::1450828_at"] = {corr:0.8904};
-corrArray["HC_M2_0606_P::1429126_at"] = {corr:0.8903};
-corrArray["HC_M2_0606_P::1444590_at"] = {corr:0.8903};
-corrArray["HC_M2_0606_P::1425229_a_at"] = {corr:0.8903};
-corrArray["HC_M2_0606_P::1444229_at"] = {corr:0.8902};
-corrArray["HC_M2_0606_P::1428518_at"] = {corr:0.8902};
-corrArray["HC_M2_0606_P::1420701_at"] = {corr:0.8900};
-corrArray["HC_M2_0606_P::1418705_at"] = {corr:0.8899};
-corrArray["HC_M2_0606_P::1444916_at"] = {corr:0.8898};
-corrArray["HC_M2_0606_P::1452564_at"] = {corr:0.8897};
-corrArray["HC_M2_0606_P::1445509_at"] = {corr:0.8896};
-corrArray["HC_M2_0606_P::1432338_at"] = {corr:0.8896};
-corrArray["HC_M2_0606_P::1418402_at"] = {corr:0.8895};
-corrArray["HC_M2_0606_P::1456432_at"] = {corr:0.8895};
-corrArray["HC_M2_0606_P::1421130_at"] = {corr:0.8890};
-corrArray["HC_M2_0606_P::1453574_at"] = {corr:0.8889};
-corrArray["HC_M2_0606_P::1431546_at"] = {corr:0.8889};
-corrArray["HC_M2_0606_P::1452311_at"] = {corr:0.8889};
-corrArray["HC_M2_0606_P::1447672_x_at"] = {corr:0.8886};
-corrArray["HC_M2_0606_P::1444809_at"] = {corr:0.8886};
-corrArray["HC_M2_0606_P::1430768_at"] = {corr:0.8885};
-corrArray["HC_M2_0606_P::1450567_a_at"] = {corr:0.8885};
-corrArray["HC_M2_0606_P::1430461_at"] = {corr:0.8885};
-corrArray["HC_M2_0606_P::1443474_at"] = {corr:0.8885};
-corrArray["HC_M2_0606_P::1449242_s_at"] = {corr:0.8882};
-corrArray["HC_M2_0606_P::1417413_at"] = {corr:0.8882};
-corrArray["HC_M2_0606_P::1452493_s_at"] = {corr:0.8881};
-corrArray["HC_M2_0606_P::1432048_at"] = {corr:0.8880};
-corrArray["HC_M2_0606_P::1433091_at"] = {corr:0.8879};
-corrArray["HC_M2_0606_P::1457554_at"] = {corr:0.8879};
-corrArray["HC_M2_0606_P::1433366_at"] = {corr:0.8878};
-corrArray["HC_M2_0606_P::1420231_at"] = {corr:0.8877};
-corrArray["HC_M2_0606_P::1454279_at"] = {corr:0.8873};
-corrArray["HC_M2_0606_P::1417828_at"] = {corr:0.8872};
-corrArray["HC_M2_0606_P::1428020_at"] = {corr:0.8870};
-corrArray["HC_M2_0606_P::1421485_at"] = {corr:0.8868};
-corrArray["HC_M2_0606_P::1428378_at"] = {corr:0.8867};
-corrArray["HC_M2_0606_P::1432204_at"] = {corr:0.8867};
-corrArray["HC_M2_0606_P::1421795_s_at"] = {corr:0.8866};
-corrArray["HC_M2_0606_P::1421513_at"] = {corr:0.8865};
-corrArray["HC_M2_0606_P::1428773_s_at"] = {corr:0.8864};
-corrArray["HC_M2_0606_P::1457126_at"] = {corr:0.8864};
-corrArray["HC_M2_0606_P::1440865_at"] = {corr:0.8863};
-corrArray["HC_M2_0606_P::1441449_at"] = {corr:0.8862};
-corrArray["HC_M2_0606_P::1451898_a_at"] = {corr:0.8862};
-corrArray["HC_M2_0606_P::1454215_at"] = {corr:0.8862};
-corrArray["HC_M2_0606_P::1421775_at"] = {corr:0.8861};
-corrArray["HC_M2_0606_P::1446232_at"] = {corr:0.8860};
-corrArray["HC_M2_0606_P::1421206_at"] = {corr:0.8859};
-corrArray["HC_M2_0606_P::1428480_at"] = {corr:0.8858};
-corrArray["HC_M2_0606_P::1423541_at"] = {corr:0.8857};
-corrArray["HC_M2_0606_P::1429811_at"] = {corr:0.8856};
-corrArray["HC_M2_0606_P::1419923_at"] = {corr:0.8856};
-corrArray["HC_M2_0606_P::1447778_x_at"] = {corr:0.8856};
-corrArray["HC_M2_0606_P::1441357_at"] = {corr:0.8855};
-corrArray["HC_M2_0606_P::1431740_at"] = {corr:0.8855};
-corrArray["HC_M2_0606_P::1427825_at"] = {corr:0.8855};
-corrArray["HC_M2_0606_P::1456254_at"] = {corr:0.8854};
-corrArray["HC_M2_0606_P::1445470_at"] = {corr:0.8854};
-corrArray["HC_M2_0606_P::1439992_at"] = {corr:0.8853};
-corrArray["HC_M2_0606_P::1430895_at"] = {corr:0.8853};
-corrArray["HC_M2_0606_P::1446422_at"] = {corr:0.8852};
-corrArray["HC_M2_0606_P::1431476_at"] = {corr:0.8852};
-corrArray["HC_M2_0606_P::1442086_at"] = {corr:0.8851};
-corrArray["HC_M2_0606_P::1456221_at"] = {corr:0.8850};
-corrArray["HC_M2_0606_P::1459079_at"] = {corr:0.8849};
-corrArray["HC_M2_0606_P::1444592_at"] = {corr:0.8848};
-corrArray["HC_M2_0606_P::1451750_at"] = {corr:0.8848};
-corrArray["HC_M2_0606_P::1442554_s_at"] = {corr:0.8847};
-corrArray["HC_M2_0606_P::1435958_at"] = {corr:0.8844};
-corrArray["HC_M2_0606_P::1425916_at"] = {corr:0.8843};
-corrArray["HC_M2_0606_P::1445752_at"] = {corr:0.8842};
-corrArray["HC_M2_0606_P::1446669_at"] = {corr:0.8841};
-corrArray["HC_M2_0606_P::1459410_at"] = {corr:0.8838};
-corrArray["HC_M2_0606_P::1446116_at"] = {corr:0.8836};
-corrArray["HC_M2_0606_P::1422313_a_at"] = {corr:0.8836};
-corrArray["HC_M2_0606_P::1446037_at"] = {corr:0.8836};
-corrArray["HC_M2_0606_P::1446408_at"] = {corr:0.8835};
-corrArray["HC_M2_0606_P::1446923_at"] = {corr:0.8834};
-corrArray["HC_M2_0606_P::1459178_at"] = {corr:0.8831};
-corrArray["HC_M2_0606_P::1441786_at"] = {corr:0.8831};
-corrArray["HC_M2_0606_P::1420470_at"] = {corr:0.8830};
-corrArray["HC_M2_0606_P::1447531_x_at"] = {corr:0.8830};
-corrArray["HC_M2_0606_P::1443416_at"] = {corr:0.8827};
-corrArray["HC_M2_0606_P::1448841_at"] = {corr:0.8826};
-corrArray["HC_M2_0606_P::1423348_at"] = {corr:0.8824};
-corrArray["HC_M2_0606_P::1431868_at"] = {corr:0.8823};
-corrArray["HC_M2_0606_P::1421788_x_at"] = {corr:0.8821};
-corrArray["HC_M2_0606_P::1434830_at"] = {corr:0.8820};
-corrArray["HC_M2_0606_P::1458094_at"] = {corr:0.8820};
-corrArray["HC_M2_0606_P::1420183_at"] = {corr:0.8819};
-corrArray["HC_M2_0606_P::1432758_at"] = {corr:0.8818};
-corrArray["HC_M2_0606_P::1453653_at"] = {corr:0.8818};
-corrArray["HC_M2_0606_P::1433124_at"] = {corr:0.8818};
-corrArray["HC_M2_0606_P::1457653_at"] = {corr:0.8817};
-corrArray["HC_M2_0606_P::1437836_x_at"] = {corr:0.8816};
-corrArray["HC_M2_0606_P::1430157_at"] = {corr:0.8813};
-corrArray["HC_M2_0606_P::1458027_at"] = {corr:0.8813};
-corrArray["HC_M2_0606_P::1449621_s_at"] = {corr:0.8813};
-corrArray["HC_M2_0606_P::1427584_at"] = {corr:0.8811};
-corrArray["HC_M2_0606_P::1445985_at"] = {corr:0.8809};
-corrArray["HC_M2_0606_P::1443871_at"] = {corr:0.8809};
-corrArray["HC_M2_0606_P::1425279_at"] = {corr:0.8808};
-corrArray["HC_M2_0606_P::1459555_at"] = {corr:0.8803};
-corrArray["HC_M2_0606_P::1428576_at"] = {corr:0.8802};
-corrArray["HC_M2_0606_P::1443709_at"] = {corr:0.8801};
-corrArray["HC_M2_0606_P::1433344_at"] = {corr:0.8799};
-corrArray["HC_M2_0606_P::1449586_at"] = {corr:0.8799};
-corrArray["HC_M2_0606_P::1446133_at"] = {corr:0.8797};
-corrArray["HC_M2_0606_P::1445645_at"] = {corr:0.8793};
-corrArray["HC_M2_0606_P::1435244_at"] = {corr:0.8792};
-corrArray["HC_M2_0606_P::1450538_s_at"] = {corr:0.8791};
-corrArray["HC_M2_0606_P::1431846_at"] = {corr:0.8790};
-corrArray["HC_M2_0606_P::1440711_at"] = {corr:0.8790};
-corrArray["HC_M2_0606_P::1432210_at"] = {corr:0.8789};
-corrArray["HC_M2_0606_P::1417620_at"] = {corr:0.8788};
-corrArray["HC_M2_0606_P::1433416_at"] = {corr:0.8787};
-corrArray["HC_M2_0606_P::1442532_at"] = {corr:0.8786};
-corrArray["HC_M2_0606_P::1456964_at"] = {corr:0.8785};
-corrArray["HC_M2_0606_P::1426639_a_at"] = {corr:0.8785};
-corrArray["HC_M2_0606_P::1444636_at"] = {corr:0.8783};
-corrArray["HC_M2_0606_P::1420219_at"] = {corr:0.8782};
-corrArray["HC_M2_0606_P::1418745_at"] = {corr:0.8781};
-corrArray["HC_M2_0606_P::1422904_at"] = {corr:0.8781};
-corrArray["HC_M2_0606_P::1442588_at"] = {corr:0.8779};
-corrArray["HC_M2_0606_P::1432550_at"] = {corr:0.8777};
-corrArray["HC_M2_0606_P::1439199_at"] = {corr:0.8777};
-corrArray["HC_M2_0606_P::1454165_at"] = {corr:0.8772};
-corrArray["HC_M2_0606_P::1430189_at"] = {corr:0.8772};
-corrArray["HC_M2_0606_P::1456780_at"] = {corr:0.8771};
-corrArray["HC_M2_0606_P::1453763_at"] = {corr:0.8771};
-corrArray["HC_M2_0606_P::1445988_at"] = {corr:0.8771};
-corrArray["HC_M2_0606_P::1427397_at"] = {corr:0.8770};
-corrArray["HC_M2_0606_P::1424906_at"] = {corr:0.8769};
-corrArray["HC_M2_0606_P::1447213_at"] = {corr:0.8766};
-corrArray["HC_M2_0606_P::1449529_s_at"] = {corr:0.8764};
-corrArray["HC_M2_0606_P::1432400_at"] = {corr:0.8758};
-corrArray["HC_M2_0606_P::1446843_at"] = {corr:0.8758};
-corrArray["HC_M2_0606_P::1436806_at"] = {corr:0.8757};
-corrArray["HC_M2_0606_P::1432244_at"] = {corr:0.8757};
-corrArray["HC_M2_0606_P::1453234_at"] = {corr:0.8757};
-corrArray["HC_M2_0606_P::1431695_at"] = {corr:0.8755};
-corrArray["HC_M2_0606_P::1436360_at"] = {corr:0.8753};
-corrArray["HC_M2_0606_P::1460423_x_at"] = {corr:0.8751};
-corrArray["HC_M2_0606_P::1426196_at"] = {corr:0.8750};
-corrArray["HC_M2_0606_P::1447742_at"] = {corr:0.8749};
-corrArray["HC_M2_0606_P::1450596_at"] = {corr:0.8749};
-corrArray["HC_M2_0606_P::1440663_at"] = {corr:0.8748};
-corrArray["HC_M2_0606_P::1435670_at"] = {corr:0.8746};
-corrArray["HC_M2_0606_P::1445681_at"] = {corr:0.8745};
-corrArray["HC_M2_0606_P::1444854_at"] = {corr:0.8743};
-corrArray["HC_M2_0606_P::1437512_x_at"] = {corr:0.8743};
-corrArray["HC_M2_0606_P::1440931_at"] = {corr:0.8742};
-corrArray["HC_M2_0606_P::1444751_at"] = {corr:0.8742};
-corrArray["HC_M2_0606_P::1447095_at"] = {corr:0.8741};
-corrArray["HC_M2_0606_P::1422957_at"] = {corr:0.8740};
-corrArray["HC_M2_0606_P::1459825_x_at"] = {corr:0.8739};
-corrArray["HC_M2_0606_P::1436149_at"] = {corr:0.8738};
-corrArray["HC_M2_0606_P::1458127_at"] = {corr:0.8734};
-corrArray["HC_M2_0606_P::1445063_at"] = {corr:0.8733};
-corrArray["HC_M2_0606_P::1429669_at"] = {corr:0.8733};
-corrArray["HC_M2_0606_P::1457101_at"] = {corr:0.8732};
-corrArray["HC_M2_0606_P::1437373_at"] = {corr:0.8732};
-corrArray["HC_M2_0606_P::1432651_at"] = {corr:0.8731};
-corrArray["HC_M2_0606_P::1431277_at"] = {corr:0.8731};
-corrArray["HC_M2_0606_P::1458995_at"] = {corr:0.8728};
-corrArray["HC_M2_0606_P::1447324_at"] = {corr:0.8727};
-corrArray["HC_M2_0606_P::1425377_at"] = {corr:0.8727};
-corrArray["HC_M2_0606_P::1449609_at"] = {corr:0.8727};
-corrArray["HC_M2_0606_P::1437516_at"] = {corr:0.8726};
-corrArray["HC_M2_0606_P::1420144_x_at"] = {corr:0.8726};
-corrArray["HC_M2_0606_P::1459225_at"] = {corr:0.8725};
-corrArray["HC_M2_0606_P::1437846_x_at"] = {corr:0.8722};
-corrArray["HC_M2_0606_P::1433836_a_at"] = {corr:0.8722};
-corrArray["HC_M2_0606_P::1438453_at"] = {corr:0.8719};
-corrArray["HC_M2_0606_P::1436171_at"] = {corr:0.8719};
-corrArray["HC_M2_0606_P::1453982_at"] = {corr:0.8718};
-corrArray["HC_M2_0606_P::1460537_at"] = {corr:0.8717};
-corrArray["HC_M2_0606_P::1425579_at"] = {corr:0.8715};
-corrArray["HC_M2_0606_P::1457019_s_at"] = {corr:0.8715};
-corrArray["HC_M2_0606_P::1425150_at"] = {corr:0.8714};
-corrArray["HC_M2_0606_P::1419703_at"] = {corr:0.8714};
-corrArray["HC_M2_0606_P::1449451_at"] = {corr:0.8714};
-corrArray["HC_M2_0606_P::1431384_at"] = {corr:0.8713};
-corrArray["HC_M2_0606_P::1432089_at"] = {corr:0.8712};
-corrArray["HC_M2_0606_P::1444781_at"] = {corr:0.8712};
-corrArray["HC_M2_0606_P::1421760_at"] = {corr:0.8712};
-corrArray["HC_M2_0606_P::1432570_at"] = {corr:0.8711};
-corrArray["HC_M2_0606_P::1449077_at"] = {corr:0.8710};
-corrArray["HC_M2_0606_P::1421759_a_at"] = {corr:0.8710};
-corrArray["HC_M2_0606_P::1444370_at"] = {corr:0.8710};
-corrArray["HC_M2_0606_P::1452553_at"] = {corr:0.8710};
-corrArray["HC_M2_0606_P::1459148_at"] = {corr:0.8708};
-corrArray["HC_M2_0606_P::1447076_at"] = {corr:0.8707};
-corrArray["HC_M2_0606_P::1430866_at"] = {corr:0.8706};
-corrArray["HC_M2_0606_P::1453528_at"] = {corr:0.8706};
-corrArray["HC_M2_0606_P::1457752_at"] = {corr:0.8702};
-corrArray["HC_M2_0606_P::1456237_x_at"] = {corr:0.8701};
-corrArray["HC_M2_0606_P::1430584_s_at"] = {corr:0.8701};
-corrArray["HC_M2_0606_P::1458807_at"] = {corr:0.8699};
-corrArray["HC_M2_0606_P::1432805_at"] = {corr:0.8697};
-corrArray["HC_M2_0606_P::1458553_at"] = {corr:0.8694};
-corrArray["HC_M2_0606_P::1446698_at"] = {corr:0.8692};
-corrArray["HC_M2_0606_P::1453951_a_at"] = {corr:0.8691};
-corrArray["HC_M2_0606_P::1443825_x_at"] = {corr:0.8690};
-corrArray["HC_M2_0606_P::1451719_at"] = {corr:0.8688};
-corrArray["HC_M2_0606_P::1440939_at"] = {corr:0.8688};
-corrArray["HC_M2_0606_P::1424700_at"] = {corr:0.8687};
-corrArray["HC_M2_0606_P::1424262_at"] = {corr:0.8686};
-corrArray["HC_M2_0606_P::1425233_at"] = {corr:0.8686};
-corrArray["HC_M2_0606_P::1439921_at"] = {corr:0.8685};
-corrArray["HC_M2_0606_P::1452541_at"] = {corr:0.8683};
-corrArray["HC_M2_0606_P::1422935_x_at"] = {corr:0.8682};
-corrArray["HC_M2_0606_P::1443647_at"] = {corr:0.8681};
-corrArray["HC_M2_0606_P::1427727_x_at"] = {corr:0.8681};
-corrArray["HC_M2_0606_P::1446347_at"] = {corr:0.8679};
-corrArray["HC_M2_0606_P::1425244_a_at"] = {corr:0.8677};
-corrArray["HC_M2_0606_P::1451823_at"] = {corr:0.8676};
-corrArray["HC_M2_0606_P::1426101_at"] = {corr:0.8675};
-corrArray["HC_M2_0606_P::1436730_at"] = {corr:0.8674};
-corrArray["HC_M2_0606_P::1444191_at"] = {corr:0.8673};
-corrArray["HC_M2_0606_P::1456594_at"] = {corr:0.8673};
-corrArray["HC_M2_0606_P::1436785_a_at"] = {corr:0.8672};
-corrArray["HC_M2_0606_P::1447530_at"] = {corr:0.8672};
-corrArray["HC_M2_0606_P::1427169_at"] = {corr:0.8669};
-corrArray["HC_M2_0606_P::1425333_at"] = {corr:0.8669};
-corrArray["HC_M2_0606_P::1442985_at"] = {corr:0.8667};
-corrArray["HC_M2_0606_P::1456731_x_at"] = {corr:0.8665};
-corrArray["HC_M2_0606_P::1459063_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1432888_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1447759_x_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1452889_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1443490_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1430055_at"] = {corr:0.8663};
-corrArray["HC_M2_0606_P::1432682_at"] = {corr:0.8661};
-corrArray["HC_M2_0606_P::1418767_at"] = {corr:0.8656};
-corrArray["HC_M2_0606_P::1418661_at"] = {corr:0.8656};
-corrArray["HC_M2_0606_P::1442360_at"] = {corr:0.8656};
-corrArray["HC_M2_0606_P::1430715_at"] = {corr:0.8654};
-corrArray["HC_M2_0606_P::1444281_at"] = {corr:0.8650};
-corrArray["HC_M2_0606_P::1427911_at"] = {corr:0.8650};
-corrArray["HC_M2_0606_P::1444928_at"] = {corr:0.8647};
-corrArray["HC_M2_0606_P::1443318_at"] = {corr:0.8647};
-corrArray["HC_M2_0606_P::1443687_x_at"] = {corr:0.8646};
-corrArray["HC_M2_0606_P::1425540_at"] = {corr:0.8645};
-corrArray["HC_M2_0606_P::1420943_at"] = {corr:0.8644};
-
-//-->
-</SCRIPT></DIV></TD></TR></TABLE><BR>
-<INPUT TYPE="hidden" NAME="Default_Name">
-</FORM>
-
-<P>
-</TD>
- </TR>
- </TABLE>
- </TD>
- </TR>
- <!-- End of body -->
-
- {% endblock %} \ No newline at end of file
+{% extends "base.html" %}
+{% block css %}
+ <link rel="stylesheet" type="text/css" href="/static/packages/jqplot/jquery.jqplot.min.css" />
+ <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
+ <link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
+{% endblock %}
+{% block content %}
+
+ <header class="jumbotron subhead" id="overview">
+ <div class="container">
+ <h1>Correlation</h1>
+ </div>
+ </header>
+
+ <table id="corr_results" class="table table-hover table-striped table-bordered">
+ <thead>
+ <tr>
+ <th>Trait</th>
+ <th>Symbol</th>
+ <th>Alias</th>
+ <th>Description</th>
+ <th>Location</th>
+ <th>Mean Expr</th>
+ <th>Max LRS</th>
+ <th>Max LRS Location</th>
+ {% if corr_method == 'pearson' %}
+ <th>Sample r</th>
+ <th>N Cases</th>
+ <th>Sample p(r)</th>
+ {% else %}
+ <th>Sample rho</th>
+ <th>Sample p(rho)</th>
+ {% endif %}
+ </tr>
+ </thead>
+ <tbody>
+ {% for trait in correlation_results %}
+ <tr>
+ <td>{{ trait.name }}</td>
+ <td>{{ trait.symbol }}</td>
+ <td>{{ trait.alias }}</td>
+ <td>{{ trait.description }}</td>
+ <td>Chr{{ trait.chr }}: {{ trait.mb }}</td>
+ <td>{{ trait.mean }}</td>
+ <td>{{ trait.lrs }}</td>
+ <td>Chr{{ trait.locus_chr }}: {{ trait.locus_mb }}</td>
+ <td>{{ trait.sample_r }}</td>
+ <td>{{ trait.num_overlap }}</td>
+ <td>{{ trait.sample_p }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+{% endblock %}
+
+{% block js %}
+ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
+ <script type="text/javascript" charset="utf-8">
+ $(document).ready( function () {
+ console.time("Creating table");
+ $('#corr_results').dataTable( {
+ //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
+ "sDom": "lTftipr",
+ "oTableTools": {
+ "aButtons": [
+ "copy",
+ "print",
+ {
+ "sExtends": "collection",
+ "sButtonText": 'Save <span class="caret" />',
+ "aButtons": [ "csv", "xls", "pdf" ]
+ }
+ ],
+ "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
+ },
+ "iDisplayLength": 50,
+ "bLengthChange": true,
+ "bDeferRender": true,
+ "bSortClasses": false
+ } );
+ console.timeEnd("Creating table");
+ });
+ </script>
+{% endblock %} \ No newline at end of file
diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html
index c01898b3..0cc1c353 100644
--- a/wqflask/wqflask/templates/index_page.html
+++ b/wqflask/wqflask/templates/index_page.html
@@ -8,16 +8,16 @@
<header class="jumbotron subhead" id="overview">
<div class="container">
<h1>GeneNetwork</h1>
- <p class="lead">Open source bioinformatics for systems genetics<br />
- Brought to you by the University of Tennessee</p>
+ <p class="lead">Open source bioinformatics for systems genetics</p>
+ <p>- Lei Yan</p>
</div>
</header>
-
<div class="container">
<div class="row">
<div class="span3 bs-docs-sidebar">
<ul class="nav nav-list bs-docs-sidenav">
+ <li><a href="#quick-search"><i class="icon-chevron-right"></i> Quick Search</a></li>
<li><a href="#search"><i class="icon-chevron-right"></i> Search</a></li>
<li><a href="#getting-started"><i class="icon-chevron-right"></i> Getting started</a></li>
<li><a href="#advanced"><i class="icon-chevron-right"></i> Advanced commands</a></li>
@@ -27,7 +27,27 @@
</div>
<div class="span9">
+ <section id="quick-search">
+ <div class="page-header">
+ <h1>Quick search</h1>
+ </div>
+ <form method="get" action="/search" name="SEARCHFORM">
+ <fieldset>
+ <label for="quick">Search:</label>
+ <div class="input-append">
+ <input class="input-xlarge"
+ id="quick" name="q"
+ type="text" maxlength="500">
+
+ <input id="btsearch" type="submit"
+ class="btn btn-primary" value="Search">
+ </div>
+ </fieldset>
+
+ </form>
+ </section>
<section id="search">
+
<div class="page-header">
<h1>Select and search</h1>
</div>
diff --git a/wqflask/wqflask/templates/marker_regression.html b/wqflask/wqflask/templates/marker_regression.html
index aeb05132..9260acab 100644
--- a/wqflask/wqflask/templates/marker_regression.html
+++ b/wqflask/wqflask/templates/marker_regression.html
@@ -3,6 +3,9 @@
{% block css %}
<link rel="stylesheet" type="text/css" href="/static/packages/jqplot/jquery.jqplot.min.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
+ <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
+ <link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
{% endblock %}
{% block content %} <!-- Start of body -->
@@ -16,11 +19,44 @@
</header>
<div class="container">
- <div id="manhattan_plots" class="manhattan_plots"></div>
- <div id="permutation_histogram" class="permutation_histogram"></div>
+ <div>
+ <h2>
+ Manhattan Plot
+ </h2>
+ </div>
+ <div id="manhattan_plots" class="manhattan_plots">
+
+ </div>
+ <div>
+ <h2>
+ Genome Association Results
+ </h2>
+ </div>
+ <table cellpadding="0" cellspacing="0" border="0" id="qtl_results" class="table table-hover table-striped table-bordered">
+ <thead>
+ <tr>
+ <td>Index</td>
+ <td>LOD Score</td>
+ <td>Chr</td>
+ <td>Mb</td>
+ <td>Locus</td>
+ </tr>
+ </thead>
+ <tbody>
+ {% for marker in qtl_results %}
+ <tr>
+ <td>{{loop.index}}</td>
+ <td>{{marker.lod_score}}</td>
+ <td>{{marker.chr}}</td>
+ <td>{{marker.Mb}}</td>
+ <td>{{marker.name}}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
</div>
-
<!-- End of body -->
{% endblock %}
@@ -33,12 +69,39 @@
<!--[if lt IE 9]>
<script language="javascript" type="text/javascript" src="/static/packages/jqplot/excanvas.js"></script>
<![endif]-->
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/jquery.jqplot.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.pointLabels.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.barRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.markerRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/jqplot/plugins/jqplot.canvasAxisLabelRenderer.min.js"></script>
+ <script language="javascript" type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/marker_regression.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
+ <script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
+
+
+ <script type="text/javascript" charset="utf-8">
+ $(document).ready( function () {
+ console.time("Creating table");
+ $('#qtl_results').dataTable( {
+ //"sDom": "<<'span3'l><'span3'T><'span4'f>'row-fluid'r>t<'row-fluid'<'span6'i><'span6'p>>",
+ "sDom": "lTftipr",
+ "oTableTools": {
+ "aButtons": [
+ "copy",
+ "print",
+ {
+ "sExtends": "collection",
+ "sButtonText": 'Save <span class="caret" />',
+ "aButtons": [ "csv", "xls", "pdf" ]
+ }
+ ],
+ "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
+ },
+ "iDisplayLength": 50,
+ "bLengthChange": true,
+ "bDeferRender": true,
+ "bSortClasses": false
+ } );
+ console.timeEnd("Creating table");
+ });
+ </script>
{% endblock %} \ No newline at end of file
diff --git a/wqflask/wqflask/templates/quick_search.html b/wqflask/wqflask/templates/quick_search.html
new file mode 100644
index 00000000..d50b4937
--- /dev/null
+++ b/wqflask/wqflask/templates/quick_search.html
@@ -0,0 +1,215 @@
+{% extends "base.html" %}
+{% block title %}QuickSearch Results{% endblock %}
+{% block content %}
+<!-- Start of body -->
+ <header class="jumbotron subhead" id="overview">
+ <div class="container">
+ <h1>QuickSearch Results</h1>
+ <p class="lead">
+ GeneNetwork found {{ numify(results|count, "record", "records") }}.
+ </p>
+ </div>
+ </header>
+
+ <div class="container">
+ <div class="page-header">
+ <h1>Your Search</h1>
+ </div>
+
+ <p>We across all data sets to find all records that match:</p>
+
+ <ul>
+ {% if search_terms %}
+ <li>
+ {% for word in search_terms %}
+ <strong>{{word}}</strong> {% if not loop.last %} or {% endif %}
+ {% endfor %}
+ </li>
+ {% endif %}
+ </ul>
+
+ <p>To study a record, click on its ID below.<br />
+ Check records below and click Add button to add to selection.</p>
+
+ <div class="tabbable"> <!-- Only required for left/right tabs -->
+ <ul class="nav nav-tabs">
+ <li class="active"> <a href="#tab1" data-toggle="tab">Phenotype</a></li>
+ <li> <a href="#tab2" data-toggle="tab">mRNA Assay</a></li>
+ <li> <a href="#tab3" data-toggle="tab">Genotype</a></li>
+ </ul>
+ <div class="tab-content">
+ <div class="tab-pane active" id="tab1">
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <!-- {% for key, _value in results.phenotype[0].result_fields.items() %}
+ <th>{{key}}</th>
+ {% endfor %}-->
+ <th>Id</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Description</th>
+ <th>LRS</th>
+ <th>Year</th>
+ <th>Authors</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.phenotype %}
+ <tr>
+ {% for result in result.result_fields.items() %}
+ <td>{{ result['phenotype_id'] }}</td>
+ <td>{{ result['species'] }}</td>
+ <td>{{ result['group_name'] }}</td>
+ <td>{{ result['description'] }}</td>
+ <td>{{ result['lrs'] }}</td>
+ <td>
+ <a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids={{ result['pubmed_id'] }}&dopt=Abstract">
+ {{ result['year'] }}
+ </a>
+ </td>
+ <td>{{ result['authors'] }}</td>
+ {% endfor %}
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ <div class="tab-pane" id="tab2">
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <th>Record ID</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Data Set</th>
+ <th>Symbol</th>
+ <th>Description</th>
+ <th>Location</th>
+ <th>Mean Expr</th>
+ <th>Max LRS</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.mrna_assay %}
+ <tr>
+ {% for result in result.result_fields.items() %}
+ <td>
+ <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result['name'] }}&dataset={{ result['dataset'] }}"
+ {{ result['name'] }}
+ </a>
+ </td>
+ <td>{{ result['species'] }}</td>
+ <td>{{ result['group_name'] }}</td>
+ <td>{{ result['dataset_name'] }}</td>
+ <td>{{ result['symbol'] }}</td>
+ <td>{{ result['description'] }}</td>
+ <td>{{ result['chr'] }} : {{ result['mb'] }}</td>
+ <td>{{ result['mean'] }}</td>
+ <td>{{ result['lrs'] }}</td>
+ {% endfor %}
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ <div class="tab-pane" id="tab3">
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <th>Marker</th>
+ <th>Species</th>
+ <th>Group</th>
+ <th>Data Set</th>
+ <th>Location</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for result in results.mrna_assay %}
+ <tr>
+ {% for result in result.result_fields.items() %}
+ <td>
+ <a href="http://gn2python.genenetwork.org/show_trait?trait_id={{ result['marker_name'] }}&dataset={{ result['dataset'] }}">
+ {{ result['marker_name'] }}
+ </a>
+ </td>
+ <td>{{ result['species'] }}</td>
+ <td>{{ result['group_name'] }}</td>
+ <td>{{ result['dataset_name'] }}</td>
+ <td>{{ result['chr'] }} : {{ result['mb'] }}</td>
+ {% endfor %}
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+
+
+
+ <!--<div class="bs-docs-example">
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ {% for header in header_fields %}
+ <th>{{header}}</th>
+ {% endfor %}
+ </tr>
+ </thead>
+
+ <tbody>
+ {% for this_trait in trait_list %}
+ <TR id="{{ this_trait }}">
+ <TD>
+ <INPUT TYPE="checkbox" NAME="searchResult" class="checkbox"
+ VALUE="{{ this_trait }}">
+ </TD>
+ <TD>
+ <a href="{{ url_for('show_trait_page',
+ trait_id = this_trait.name,
+ dataset = dataset.name
+ )}}">
+ {{ this_trait.name }}
+ </a>
+ </TD>
+ {% if dataset.type == 'ProbeSet' %}
+ <TD>{{ this_trait.symbol }}</TD>
+ <TD>{{ this_trait.description_display }}</TD>
+ <TD>{{ this_trait.location_repr }}</TD>
+ <TD>{{ this_trait.mean }}</TD>
+ <TD>{{ this_trait.LRS_score_repr }}</TD>
+ <TD>{{ this_trait.LRS_location_repr }}</TD>
+ {% elif dataset.type == 'Publish' %}
+ <TD>{{ this_trait.description_display }}</TD>
+ <TD>{{ this_trait.authors }}</TD>
+ <TD>
+ <a href="{{ this_trait.pubmed_link }}">
+ {{ this_trait.pubmed_text }}
+ </a>
+ </TD>
+ <TD>{{ this_trait.LRS_score_repr }}</TD>
+ <TD>{{ this_trait.LRS_location_repr }}</TD>
+ {% elif dataset.type == 'Geno' %}
+ <TD>{{ this_trait.location_repr }}</TD>
+ {% endif %}
+ </TR>
+ {% endfor %}
+ </tbody>
+
+ </table>
+
+ <br />
+
+ <button class="btn"><i class="icon-ok"></i> Select</button>
+ <button class="btn"><i class="icon-remove"></i> Deselect</button>
+ <button class="btn"><i class="icon-resize-vertical"></i> Invert</button>
+ <button class="btn"><i class="icon-plus-sign"></i> Add</button>
+ <button class="btn btn-primary pull-right"><i class="icon-download icon-white"></i> Download Table</button>
+ </div>-->
+
+ </div>
+
+<!-- End of body -->
+
+{% endblock %}
diff --git a/wqflask/wqflask/templates/security/_macros.html b/wqflask/wqflask/templates/security/_macros.html
new file mode 100644
index 00000000..8575f3db
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_macros.html
@@ -0,0 +1,16 @@
+{% macro render_field_with_errors(field) %}
+ <p>
+ {{ field.label }} {{ field(**kwargs)|safe }}
+ {% if field.errors %}
+ <ul>
+ {% for error in field.errors %}
+ <li>{{ error }}</li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </p>
+{% endmacro %}
+
+{% macro render_field(field) %}
+ <p>{{ field(**kwargs)|safe }}</p>
+{% endmacro %} \ No newline at end of file
diff --git a/wqflask/wqflask/templates/security/_menu.html b/wqflask/wqflask/templates/security/_menu.html
new file mode 100644
index 00000000..5291f809
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_menu.html
@@ -0,0 +1,15 @@
+{% if security.registerable or security.recoverable or security.confirmabled %}
+<h2>Menu</h2>
+<ul>
+ <li><a href="{{ url_for_security('login') }}">Login</a></li>
+ {% if security.registerable %}
+ <li><a href="{{ url_for_security('register') }}">Register</a><br/></li>
+ {% endif %}
+ {% if security.recoverable %}
+ <li><a href="{{ url_for_security('forgot_password') }}">Forgot password</a><br/></li>
+ {% endif %}
+ {% if security.confirmable %}
+ <li><a href="{{ url_for_security('send_confirmation') }}">Confirm account</a></li>
+ {% endif %}
+</ul>
+{% endif %}
diff --git a/wqflask/wqflask/templates/security/_messages.html b/wqflask/wqflask/templates/security/_messages.html
new file mode 100644
index 00000000..179d0636
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_messages.html
@@ -0,0 +1,9 @@
+{%- with messages = get_flashed_messages(with_categories=true) -%}
+ {% if messages %}
+ <ul class="flashes">
+ {% for category, message in messages %}
+ <li class="{{ category }}">{{ message }}</li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+{%- endwith %} \ No newline at end of file
diff --git a/wqflask/wqflask/templates/security/register_user.html b/wqflask/wqflask/templates/security/register_user.html
new file mode 100644
index 00000000..af87f810
--- /dev/null
+++ b/wqflask/wqflask/templates/security/register_user.html
@@ -0,0 +1,45 @@
+{% from "security/_macros.html" import render_field_with_errors, render_field %}
+{% extends "base.html" %}
+{% include "security/_messages.html" %}
+{% block content %}
+<body>
+ <div class="container">
+ <div class="content">
+ <div class="row">
+ <div class="login-form">
+ <h2>Register</h2>
+ <form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
+ <fieldset>
+ <div class="clearfix">
+ {{ render_field_with_errors(register_user_form.email) }}
+ </div>
+ <div class="clearfix">
+ {{ render_field_with_errors(register_user_form.password) }}
+ </div>
+ {% if register_user_form.password_confirm %}
+ <div class="clearfix">
+ {{ render_field_with_errors(register_user_form.password_confirm) }}
+ </div>
+ {% endif %}
+ {{ render_field(register_user_form.submit) }}
+ </fieldset>
+ </form>
+ </div>
+ </div>
+ </div>
+ </div>
+</body>
+
+{% include "security/_menu.html" %}
+
+{% endblock %}
+
+<!--<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
+ {{ register_user_form.hidden_tag() }}
+ {{ render_field_with_errors(register_user_form.email) }}
+ {{ render_field_with_errors(register_user_form.password) }}
+ {% if register_user_form.password_confirm %}
+ {{ render_field_with_errors(register_user_form.password_confirm) }}
+ {% endif %}
+ {{ render_field(register_user_form.submit) }}
+</form>--> \ No newline at end of file
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index 79271356..799245c3 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -1,5 +1,10 @@
{% extends "base.html" %}
{% block title %}Trait Data and Analysis{% endblock %}
+{% block css %}
+ <link rel="stylesheet" type="text/css" href="/static/new/css/marker_regression.css" />
+ <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
+{% endblock %}
{% block content %} <!-- Start of body -->
<header class="jumbotron subhead" id="overview">
@@ -14,9 +19,11 @@
<form method="post" action="/corr_compute" name="trait_page" id="trait_data_form"
class="form-horizontal">
{% for key in hddn %}
- <input type="hidden" name="{{ key }}" value="{{ hddn[key] }}">
+ <input type="hidden" name="{{ key }}" value="{{ hddn[key] }}">
{% endfor %}
+ <input type="hidden" name="temp_uuid" id="temp_uuid" value="{{ temp_uuid }}">
+
<div class="container">
<div class="page-header">
<h1>{{ dataset.group.species.capitalize() }} -
@@ -26,10 +33,11 @@
</div>
{% include 'show_trait_details.html' %}
- {% include 'show_trait_statistics.html' %}
+ {# {% include 'show_trait_statistics.html' %} #}
{% include 'show_trait_calculate_correlations.html' %}
{% include 'show_trait_mapping_tools.html' %}
{% include 'show_trait_edit_data.html' %}
+ {% include 'show_trait_progress_bar.html' %}
</div>
</form>
@@ -43,7 +51,8 @@
js_data = {{ js_data | safe }}
</script>
- <script type="text/javascript" src="/static/new/js_external/underscore-min.js"></script>-->
+ <script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
+ <script type="text/javascript" src="/static/new/js_external/underscore-min.js"></script>
<script type="text/javascript" src="/static/new/js_external/underscore.string.min.js"></script>
<script type="text/javascript" src="/static/new/packages/ValidationPlugin/dist/jquery.validate.min.js"></script>
diff --git a/wqflask/wqflask/templates/show_trait_calculate_correlations.html b/wqflask/wqflask/templates/show_trait_calculate_correlations.html
index 543afadd..12a064c0 100644
--- a/wqflask/wqflask/templates/show_trait_calculate_correlations.html
+++ b/wqflask/wqflask/templates/show_trait_calculate_correlations.html
@@ -1,130 +1,119 @@
- <p class="sectionheader" id="title3" style="border-radius: 5px;">&nbsp;&nbsp;Calculate Correlations</p>
+<div>
+ <h2>Calculate Correlations</h2>
+ <div class="well form-horizontal">
+
+ <div class="control-group">
+ <label for="corr_method" class="control-label">Method</label>
+ <div class="controls">
+ <select name="corr_method">
+ <option value="sample">Sample r</option>
+ <option value="lit">Literature r</option>
+ <option value="tissue">Tissue r</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label for="corr_dataset" class="control-label">Database</label>
+ <div class="controls">
+ <select name="corr_dataset">
+ {% 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>
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label for="corr_return_results" class="control-label">Return</label>
+ <div class="controls">
+ <select name="corr_return_results">
+ {% 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>
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label for="corr_samples_group" class="control-label">Samples</label>
+ <div class="controls">
+ <select name="corr_samples_group">
+ {% for group, pretty_group in sample_group_types.items() %}
+ <option value="{{ group }}">{{ pretty_group }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label for="corr_sample_method" class="control-label">Type</label>
+ <div class="controls">
+ <select name="corr_sample_method">
+ <option value="pearson">Pearson</option>
+ <option value="spearman">Spearman Rank</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="control-group">
+ <div class="controls">
+ <button class="btn btn-inverse submit_special"
+ data-url="/corr_compute"
+ title="Compute Correlation">
+ <i class="icon-ok-circle icon-white"></i> Compute
+ </button>
+ </div>
+ </div>
- <p id="sectionbody3"></p>
+ <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 (&lt;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>
- <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>
- &nbsp;&nbsp;&nbsp;
- 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 (&lt;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>
+ </div>
+</div> \ No newline at end of file
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index 84196959..c2d5211f 100644
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -41,23 +41,7 @@
<input name="mapping_bootstraps" value="2000" type="text" />
</div>
</div>
-
-
- {% if dataset.group.genotype.Mbmap %}
- <div class="control-group">
- <label class="control-label">Scale</label>
- <div class="controls">
- <label class="radio inline">
- <input type="radio" name="scale" id="scale" value="megabase" checked>
- Megabase
- </label>
- <label class="radio inline">
- <input type="radio" name="scale" id="scale" value="centimorgan">
- Centimorgan
- </label>
- </div>
- </div>
- {% endif %}
+
<div class="control-group">
<label class="control-label"><b>Composite Mapping</b></label>
@@ -111,26 +95,24 @@
</div>
<div class="tab-pane" id="marker_regression">
- <div class="control-group" id="display_all_lrs">
- <label class="control-label">Display all LRS</label>
+ <div class="control-group" id="display_all_div">
+ <label class="control-label">Display all</label>
<div class="controls">
<label class="radio inline">
- <input type="radio" name="display_all_lrs"
- id="display_all_lrs" value=True>
+ <input type="radio" name="display_all" value="True" checked>
Yes
</label>
<label class="radio inline">
- <input type="radio" name="display_all_lrs"
- id="display_all_lrs" value=False checked>
+ <input type="radio" name="display_all" value="False">
No
</label>
</div>
- </div>
- <div class="control-group">
- <label for="suggestive_lrs" class="control-label"
- title="Control Locus">LRS greater than</label>
+ </div>
+ <div class="control-group" id="suggestive" >
+ <label for="suggestive" class="control-label"
+ title="Control Locus">LOD score greater than: </label>
<div class="controls">
- <input name="suggestive_lrs" id="suggestive_lrs" type="text" />
+ <input name="suggestive" type="text" value="0"/>
</div>
</div>
@@ -143,13 +125,14 @@
<div class="control-group">
<div class="controls">
- <button class="btn btn-inverse submit_special"
+ <button id="marker_regression_compute"
+ class="btn btn-inverse submit_special"
data-url="/marker_regression"
title="Compute Marker Regression">
<i class="icon-ok-circle icon-white"></i> Compute
</button>
</div>
- </div>
+ </div>
</div>
diff --git a/wqflask/wqflask/templates/show_trait_progress_bar.html b/wqflask/wqflask/templates/show_trait_progress_bar.html
new file mode 100644
index 00000000..0c3f0e6e
--- /dev/null
+++ b/wqflask/wqflask/templates/show_trait_progress_bar.html
@@ -0,0 +1,12 @@
+<div id="progress_bar_container" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="progress_bar" aria-hidden="true">
+ <div class="modal-header">
+ <h3 id="progress_bar">Loading...</h3>
+ </div>
+ <div class="modal-body">
+ <div class="progress active">
+ <div id="marker_regression_progress" class="bar"></div>
+ </div>
+ <div id="time_remaining">
+ </div>
+ </div>
+</div> \ No newline at end of file
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index c9659a83..102863f0 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -3,27 +3,37 @@ from __future__ import absolute_import, division, print_function
import csv
import StringIO # Todo: Use cStringIO?
+import gc
+
+import cPickle as pickle
+
import simplejson as json
#import json
import yaml
+from redis import Redis
+Redis = Redis()
+
import flask
import sqlalchemy
#import config
from wqflask import app
-from flask import render_template, request, make_response, Response, Flask, g, config
+from flask import render_template, request, make_response, Response, Flask, g, config, jsonify
from wqflask import search_results
+from base.data_set import DataSet # Used by YAML in marker_regression
from wqflask.show_trait import show_trait
from wqflask.show_trait import export_trait_data
from wqflask.marker_regression import marker_regression
-from wqflask.correlation import CorrelationPage
+from wqflask.correlation import show_corr_results
+from utility import temp_data
from wqflask.dataSharing import SharingInfo, SharingInfoPage
from base import webqtlFormData
+from utility.benchmark import Bench
from pprint import pformat as pf
@@ -33,7 +43,6 @@ from pprint import pformat as pf
@app.before_request
def connect_db():
- print("blue app.config:", app.config, pf(vars(app.config)))
g.db = sqlalchemy.create_engine(app.config['DB_URI'])
@app.route("/")
@@ -76,7 +85,10 @@ def search_page():
#for trait in the_search.trait_list:
# print(" -", trait.description_display)
- return render_template("search_result_page.html", **the_search.__dict__)
+ if the_search.quick:
+ return render_template("quick_search.html", **the_search.__dict__)
+ else:
+ return render_template("search_result_page.html", **the_search.__dict__)
@app.route("/whats_new")
@@ -136,33 +148,73 @@ def show_trait_page():
#fd = webqtlFormData.webqtlFormData(request.args)
#print("stp y1:", pf(vars(fd)))
template_vars = show_trait.ShowTrait(request.args)
- print("js_data before dump:", template_vars.js_data)
+ #print("js_data before dump:", template_vars.js_data)
template_vars.js_data = json.dumps(template_vars.js_data,
default=json_default_handler,
indent=" ")
# Sorting the keys messes up the ordered dictionary, so don't do that
#sort_keys=True)
- print("js_data after dump:", template_vars.js_data)
- print("show_trait template_vars:", pf(template_vars.__dict__))
+ #print("js_data after dump:", template_vars.js_data)
+ #print("show_trait template_vars:", pf(template_vars.__dict__))
return render_template("show_trait.html", **template_vars.__dict__)
@app.route("/marker_regression", methods=('POST',))
def marker_regression_page():
- template_vars = marker_regression.MarkerRegression(request.form)
- #print("js_data before dump:", template_vars.js_data)
- template_vars.js_data = json.dumps(template_vars.js_data,
- default=json_default_handler,
- indent=" ")
- print("[dub] js_data after dump:", template_vars.js_data)
- #print("marker_regression template_vars:", pf(template_vars.__dict__))
- return render_template("marker_regression.html", **template_vars.__dict__)
+ initial_start_vars = request.form
+ temp_uuid = initial_start_vars['temp_uuid']
+ wanted = (
+ 'trait_id',
+ 'dataset',
+ 'suggestive'
+ )
+
+ start_vars = {}
+ for key, value in initial_start_vars.iteritems():
+ if key in wanted or key.startswith(('value:')):
+ start_vars[key] = value
+
+ version = "v14"
+ key = "marker_regression:{}:".format(version) + json.dumps(start_vars, sort_keys=True)
+ with Bench("Loading cache"):
+ result = Redis.get(key)
+
+ #print("************************ Starting result *****************")
+ #print("result is [{}]: {}".format(type(result), result))
+ #print("************************ Ending result ********************")
+
+ if result:
+ print("Cache hit!!!")
+ with Bench("Loading results"):
+ result = pickle.loads(result)
+ else:
+ print("Cache miss!!!")
+ template_vars = marker_regression.MarkerRegression(start_vars, temp_uuid)
+
+ template_vars.js_data = json.dumps(template_vars.js_data,
+ default=json_default_handler,
+ indent=" ")
+
+ result = template_vars.__dict__
+
+ #for item in template_vars.__dict__.keys():
+ # print(" ---**--- {}: {}".format(type(template_vars.__dict__[item]), item))
+
+ #causeerror
+ Redis.set(key, pickle.dumps(result))
+ Redis.expire(key, 60*60)
+
+ with Bench("Rendering template"):
+ rendered_template = render_template("marker_regression.html", **result)
+
+ return rendered_template
+
@app.route("/corr_compute", methods=('POST',))
def corr_compute_page():
- print("In corr_compute, request.args is:", pf(request.form))
- fd = webqtlFormData.webqtlFormData(request.form)
- template_vars = CorrelationPage.CorrelationPage(fd)
+ print("In corr_compute, request.form is:", pf(request.form))
+ #fd = webqtlFormData.webqtlFormData(request.form)
+ template_vars = show_corr_results.CorrelationResults(request.form)
return render_template("correlation_page.html", **template_vars.__dict__)
@app.route("/int_mapping", methods=('POST',))
@@ -179,6 +231,12 @@ def sharing_info_page():
return template_vars
+@app.route("/get_temp_data")
+def get_temp_data():
+ temp_uuid = request.args['key']
+ return flask.jsonify(temp_data.TempData(temp_uuid).get_all())
+
+
def json_default_handler(obj):
'''Based on http://stackoverflow.com/a/2680060/1175849'''
# Handle datestamps
@@ -196,3 +254,8 @@ def json_default_handler(obj):
else:
raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (
type(obj), repr(obj))
+
+
+#@app.after_request
+#def after_request(response):
+# gc.collect() \ No newline at end of file