about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/database.org165
-rw-r--r--doc/database.svg882
-rw-r--r--test/lib/NavigationTest.rb46
3 files changed, 1090 insertions, 3 deletions
diff --git a/doc/database.org b/doc/database.org
index e06ac1ff..2221c4fb 100644
--- a/doc/database.org
+++ b/doc/database.org
@@ -1,7 +1,11 @@
 - github Document reduction issue
 
+* The small test database (2GB)
 
-* GeneNetwork Database
+The default install comes with a smaller database which includes a
+number of the BSD's and the Human liver dataset (GSE9588).
+
+* GeneNetwork database
 
 ** Estimated table sizes 
 
@@ -487,7 +491,6 @@ select count(*) from ProbeSet limit 5;
 
 
 
-
 ** ProbeSetData
 
 Probedata - main molecular data. Probesets, metabolome, 
@@ -678,7 +681,21 @@ No longer used
 
 ** Species & Strain (should be sample)
 
-Menu
+select * from Species;
++----+-----------+----------------------+----------------+----------------------+-------------------------+------------+---------+
+| Id | SpeciesId | SpeciesName          | Name           | MenuName             | FullName                | TaxonomyId | OrderId |
++----+-----------+----------------------+----------------+----------------------+-------------------------+------------+---------+
+|  1 |         1 | Mouse                | mouse          | Mouse                | Mus musculus            |      10090 |      30 |
+|  2 |         2 | Rat                  | rat            | Rat                  | Rattus norvegicus       |      10116 |      40 |
+|  3 |         3 | Arabidopsis thaliana | arabidopsis    | Arabidopsis thaliana | Arabidopsis thaliana    |       3702 |      60 |
+|  4 |         4 | Human                | human          | Human                | Homo sapiens            |       9606 |      10 |
+|  5 |         5 | Barley               | barley         | Barley               | Hordeum vulgare         |       4513 |      70 |
+|  6 |         6 | Drosophila           | drosophila     | Drosophila           | Drosophila melanogaster |       7227 |      50 |
+|  7 |         7 | Macaque monkey       | macaque monkey | Macaque monkey       | Macaca mulatta          |       9544 |      20 |
+|  8 |         8 | Soybean              | soybean        | Soybean              | Soybean                 |       3847 |      80 |
+|  9 |         9 | Tomato               | tomato         | Tomato               | Tomato                  |       4081 |      90 |
++----+-----------+----------------------+----------------+----------------------+-------------------------+------------+---------+
+
 
 ** InbredSet 
 
@@ -708,3 +725,145 @@ User selection - retained
 
 ** Vlookup 
 
+* Fetching Data
+
+** Fetch phenotypes
+
+To get at phenotype data ProbeSetData is the main table (almost all
+important molecular assay data is in this table including probe set
+data, RNA-seq data, proteomic data, and metabolomic data. 2.5 billion
+rows March 2016)
+
+select count(*) from ProbeSetData limit 5;
++---------------+
+| count(*)      |
++---------------+
+| 2,510,566,472 |
++---------------+
+
+select * from ProbeSetData limit 5;
++----+----------+-------+
+| Id | StrainId | value |
++----+----------+-------+
+|  1 |        1 | 5.742 |
+|  1 |        2 | 5.006 |
+|  1 |        3 | 6.079 |
+|  1 |        4 | 6.414 |
+|  1 |        5 | 4.885 |
++----+----------+-------+
+
+This table is used in
+
+: wqflask/base/do_search.py
+: wqflask/base/data_set.py
+: wqflask/utility/AJAX_table.py
+: wqflask/wqflask/correlation/show_corr_results.py
+
+In there we find 'ProbeSetData.Id = ProbeSetXRef.dataId'.
+
+select * from ProbeSetXRef limit 5;
++------------------+------------+--------+------------+--------------------+------------+-------------------+---------------------+-----------------+--------------------+--------+----------------------+------+
+| ProbeSetFreezeId | ProbeSetId | DataId | Locus_old  | LRS_old            | pValue_old | mean              | se                  | Locus           | LRS                | pValue | additive             | h2   |
++------------------+------------+--------+------------+--------------------+------------+-------------------+---------------------+-----------------+--------------------+--------+----------------------+------+
+|                1 |          1 |      1 | 10.095.400 |   13.3971627898894 |      0.163 |  5.48794285714286 | 0.08525787814808819 | rs13480619      | 12.590069931048001 |  0.269 |          -0.28515625 | NULL |
+|                1 |          2 |      2 | D15Mit189  | 10.042057464356201 |      0.431 |  9.90165714285714 |  0.0374686634976217 | CEL-17_50896182 |   10.5970737900941 |  0.304 | -0.11678333333333299 | NULL |
+|                1 |          3 |      3 | D5Mit139   |   5.43678531742749 |      0.993 |  7.83948571428571 |  0.0457583416912569 | rs13478499      |    6.0970532702754 |  0.988 |    0.112957489878542 | NULL |
+|                1 |          4 |      4 | D1Mit511   |   9.87815279480766 |      0.483 | 8.315628571428569 |  0.0470396593931327 | rs6154379       | 11.774867551173099 |  0.286 |   -0.157113725490196 | NULL |
+|                1 |          5 |      5 | D16H21S16  | 10.191723834264499 |      0.528 |  9.19345714285714 |  0.0354801718293322 | rs4199265       | 10.923263374016202 |  0.468 |  0.11476470588235299 | NULL |
++------------------+------------+--------+------------+--------------------+------------+-------------------+---------------------+-----------------+--------------------+--------+----------------------+------+
+
+i.e., for Strain Id 1 (DataId) 1, the locus '10.095.400' has a
+phenotype value of 5.742.
+
+GeneNetwork1 already has a limited REST interface, if you do
+
+: curl "http://robot.genenetwork.org/webqtl/main.py?cmd=get&probeset=1443823_s_at&db=HC_M2_0606_P"
+
+we get
+
+: ProbeSetID      B6D2F1  C57BL/6J        DBA/2J  BXD1    BXD2    BXD5    BXD6   BXD8     BXD9    BXD11   BXD12   BXD13   BXD15   BXD16   BXD19   BXD20   BXD21  BXD22    BXD23   BXD24   BXD27   BXD28   BXD29   BXD31   BXD32   BXD33   BXD34  BXD38    BXD39   BXD40   BXD42   BXD67   BXD68   BXD43   BXD44   BXD45   BXD48  BXD50    BXD51   BXD55   BXD60   BXD61   BXD62   BXD63   BXD64   BXD65   BXD66  BXD69    BXD70   BXD73   BXD74   BXD75   BXD76   BXD77   BXD79   BXD73a  BXD83  BXD84    BXD85   BXD86   BXD87   BXD89   BXD90   BXD65b  BXD93   BXD94   A/J    AKR/J    C3H/HeJ C57BL/6ByJ      CXB1    CXB2    CXB3    CXB4    CXB5    CXB6   CXB7     CXB8    CXB9    CXB10   CXB11   CXB12   CXB13   BXD48a  129S1/SvImJ    BALB/cJ  BALB/cByJ       LG/J    NOD/ShiLtJ      PWD/PhJ BXD65a  BXD98   BXD99  CAST/EiJ KK/HlJ  WSB/EiJ NZO/HlLtJ       PWK/PhJ D2B6F1
+: 1443823_s_at    15.251  15.626  14.716  15.198  14.918  15.057  15.232  14.968 14.87    15.084  15.192  14.924  15.343  15.226  15.364  15.36   14.792  14.908 15.344   14.948  15.08   15.021  15.176  15.14   14.796  15.443  14.636  14.921 15.22    15.62   14.816  15.39   15.428  14.982  15.05   15.13   14.722  14.636 15.242   15.527  14.825  14.416  15.125  15.362  15.226  15.176  15.328  14.895 15.141   15.634  14.922  14.764  15.122  15.448  15.398  15.089  14.765  15.234 15.302   14.774  14.979  15.212  15.29   15.012  15.041  15.448  14.34   14.338 14.809   15.046  14.816  15.232  14.933  15.255  15.21   14.766  14.8    15.506 15.749   15.274  15.599  15.673  14.651  14.692  14.552  14.563  14.164  14.546 15.044   14.695  15.162  14.772  14.645  15.493  14.75   14.786  15.003  15.148 15.221
+
+getTraitData is defined in the file [[https://github.com/genenetwork/genenetwork/blob/master/web/webqtl/textUI/cmdClass.py#L134][web/webqtl/textUI/cmdClass.py]].
+probe is None, so the code at line 199 is run
+
+query = "SELECT Strain.Name, %sData.value from %sData, Strain, %s,
+%sXRef WHERE %s.Name = '%s' and %sXRef.%sId = %s.Id and
+%sXRef.%sFreezeId = %d and %sXRef.DataId = %sData.Id and
+%sData.StrainId = Strain.Id order by Strain.Id" % (prefix, prefix,
+prefix, prefix, prefix, probeset,prefix, prefix, prefix, prefix,
+prefix, dbId, prefix, prefix, prefix)
+
+where prefix is ProbeSet (one presumes). So, let's see if we can do this by hand
+
+SELECT Strain.Name, ProbeSetData.value from ProbeSetData, Strain, ProbeSet,
+ProbeSetXRef WHERE ProbeSet.Name = '1443823_s_at' and ProbeSetXRef.ProbeSetId = ProbeSet.Id and
+ProbeSetXRef.ProbeSetFreezeId = $dbid and ProbeSetXRef.DataId = ProbeSetData.Id and
+ProbeSetData.StrainId = Strain.Id ORDER BY Strain.Id
+
+The $dbid is listed in the ProbeSetFreeze table,
+
+SELECT ProbeFreezeId,Name FROM ProbeSetFreeze WHERE Name='HC_M2_0606_P' limit 5;
+
++---------------+--------------+
+| ProbeFreezeId | Name         |
++---------------+--------------+
+|            30 | HC_M2_0606_P |
++---------------+--------------+
+
+select id,name from ProbeSet WHERE Name = '1443823_s_at' limit 5;
++--------+--------------+
+| id     | name         |
++--------+--------------+
+| 106556 | 1443823_s_at |
++--------+--------------+
+
+So
+
+query = "SELECT Strain.Name, %sData.value from %sData, Strain, %s,
+%sXRef WHERE %s.Name = '%s' and %sXRef.%sId = %s.Id and
+%sXRef.%sFreezeId = %d and %sXRef.DataId = %sData.Id and
+%sData.StrainId = Strain.Id order by Strain.Id" % (prefix, prefix,
+prefix, prefix, prefix, probeset,prefix, prefix, prefix, prefix,
+prefix, dbId, prefix, prefix, prefix)
+
+CORRECT NAME:
+
+SELECT Strain.Name, ProbeSetData.value from ProbeSetData, Strain,
+ProbeSet, ProbeSetXRef WHERE ProbeSet.Name = 'at_probe' and
+ProbeSetXRef.ProbeSetId = ProbeSet.Id and
+ProbeSetXRef.ProbeSetFreezeId = dbid and ProbeSetXRef.DataId =
+ProbeSetData.Id and ProbeSetData.StrainId = Strain.Id order by
+Strain.Id
+
+
+select * from ProbeSetXRef WHERE probesetfreezeid=30 limit 5;
++------------------+------------+--------+------------+--------------------+------------+--------------------+--------------------+-----------------+--------------------+--------+-------------------+------+
+| ProbeSetFreezeId | ProbeSetId | DataId | Locus_old  | LRS_old            | pValue_old | mean               | se                 | Locus           | LRS                | pValue | additive          | h2   |
++------------------+------------+--------+------------+--------------------+------------+--------------------+--------------------+-----------------+--------------------+--------+-------------------+------+
+|               30 |          1 | 445962 | 01.059.350 | 7.1753152078069595 |      0.961 |            30.0646 |   1.79763935596594 | rs13475891      | 7.1753152078069204 |  0.973 |        4.71778125 | NULL |
+|               30 |          2 | 445963 | D4Mit156   |   7.58944292943285 |      0.724 | 232.38328571428602 |   9.00278909374791 | CEL-4_118751423 |   7.57513435426218 |  0.793 |  25.2660951417004 | NULL |
+|               30 |          3 | 445964 | D1Mit134   |  9.766065497826819 |      0.737 |             47.206 |   1.58413526287766 | mCV23431007     |   9.76606549782677 |  0.797 | -4.82405952380952 | NULL |
+|               30 |          4 | 445965 | D1Mit155   |   18.0045829157241 |      0.033 | 132.29248571428602 |   4.37799472291842 | rs3689947       |   17.9365068406286 |  0.049 |  -16.945619047619 | NULL |
+|               30 |          5 | 445966 | D5Mit197   |   9.51068902627823 |      0.476 |   271.309971428571 | 7.4294268316065395 | rs6239372       |   10.4214974316601 |   0.41 | -25.6148045454546 | NULL |
++------------------+------------+--------+------------+--------------------+------------+--------------------+--------------------+-----------------+--------------------+--------+-------------------+------+
+
+So, apparently ProbeSetFreezeID points to the database identifier in
+ProbeSetFreeze which has the name of the 'DB'. OK, that kinda makes
+sense now. Meanwhile Probeset.name points to the phenotype name.
+
+ProbeSetXRef binds these tables together. Finally there is the data in
+
+select * from ProbeSetData limit 5;
++----+----------+-------+
+| Id | StrainId | value |
++----+----------+-------+
+|  1 |        1 | 5.742 |
+|  1 |        2 | 5.006 |
+|  1 |        3 | 6.079 |
+|  1 |        4 | 6.414 |
+|  1 |        5 | 4.885 |
++----+----------+-------+
+5 rows in set (0.00 sec)
+
+linked by ProbeSetXRef.dataid.
diff --git a/doc/database.svg b/doc/database.svg
new file mode 100644
index 00000000..9ddc2f47
--- /dev/null
+++ b/doc/database.svg
@@ -0,0 +1,882 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="210mm"
+   height="297mm"
+   viewBox="0 0 744.09448819 1052.3622047"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="database.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker12489"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(0.6) rotate(180) translate(0,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000d7;stroke-opacity:1;fill:#0000d7;fill-opacity:1"
+         id="path12491" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4445"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker11727"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(0.6) rotate(180) translate(0,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000da;stroke-opacity:1;fill:#0000da;fill-opacity:1"
+         id="path11729" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker11607"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Lend">
+      <path
+         transform="scale(1.1) rotate(180) translate(1,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000da;stroke-opacity:1;fill:#0000da;fill-opacity:1"
+         id="path11609" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4427"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#0000a3;stroke-width:1pt;stroke-opacity:1;fill:#0000a3;fill-opacity:1"
+         transform="scale(0.8) rotate(180) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4451"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000d7;stroke-opacity:1;fill:#0000d7;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker10561"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(0.6) rotate(180) translate(0,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path10563" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4448"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000b1;stroke-opacity:1;fill:#0000b1;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="TriangleOutM"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="TriangleOutM"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4569"
+         d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+         style="fill-rule:evenodd;stroke:#0000b1;stroke-width:1pt;stroke-opacity:1;fill:#0000b1;fill-opacity:1"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4424"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#0000b1;stroke-width:1pt;stroke-opacity:1;fill:#0000b1;fill-opacity:1"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4448-2"
+         style="fill:#0000b1;fill-opacity:1;fill-rule:evenodd;stroke:#0000b1;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6,0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-8"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4451-9"
+         style="fill:#0000b1;fill-opacity:1;fill-rule:evenodd;stroke:#0000b1;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12489-7"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="scale(-0.6,-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000d7;fill-opacity:1;fill-rule:evenodd;stroke:#0000d7;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path12491-4" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12489-7-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         inkscape:connector-curvature="0"
+         transform="scale(-0.6,-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#0000d7;fill-opacity:1;fill-rule:evenodd;stroke:#0000d7;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path12491-4-9" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="361.50633"
+     inkscape:cy="527.18241"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1085"
+     inkscape:window-height="1276"
+     inkscape:window-x="28"
+     inkscape:window-y="142"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="false"
+     inkscape:snap-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3355" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.46889797px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357"
+       width="174.81682"
+       height="25.531101"
+       x="39.020161"
+       y="85.668076" />
+    <rect
+       style="fill:none"
+       id="rect4159"
+       width="280"
+       height="20"
+       x="40"
+       y="72.362206" />
+    <rect
+       style="fill:none"
+       id="rect4164"
+       width="290"
+       height="20"
+       x="40"
+       y="72.362206" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:100%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;"
+       x="40"
+       y="82.362206"
+       id="text4181"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan4183"
+         x="40"
+         y="82.362206">ProbesetData</tspan><tspan
+         sodipodi:role="line"
+         x="40"
+         y="107.36221"
+         id="tspan4185" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="100"
+       y="132.3622"
+       id="text4187"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4189"
+         x="100"
+         y="132.3622" /></text>
+    <rect
+       style="fill:none"
+       id="rect4191"
+       width="80"
+       height="70.000008"
+       x="60"
+       y="92.362206" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+       x="60"
+       y="102.3622"
+       id="text4208"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4210"
+         x="60"
+         y="102.3622">id</tspan><tspan
+         sodipodi:role="line"
+         x="60"
+         y="127.3622"
+         id="tspan4212" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:100%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;-inkscape-font-specification:'sans-serif, Normal';font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;"
+       x="90"
+       y="102.3622"
+       id="text4214"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan4216"
+         x="90"
+         y="102.3622">strainid</tspan><tspan
+         sodipodi:role="line"
+         x="90"
+         y="127.3622"
+         id="tspan4218" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="210"
+       y="102.3622"
+       id="text4220"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="210"
+         y="102.3622"
+         id="tspan4224" /><tspan
+         sodipodi:role="line"
+         x="210"
+         y="127.3622"
+         id="tspan4228" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="160.71428"
+       y="102.3622"
+       id="text4230"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4232"
+         x="160.71428"
+         y="102.3622">value</tspan><tspan
+         sodipodi:role="line"
+         x="160.71428"
+         y="117.9872"
+         id="tspan4234" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="40"
+       y="162.3622"
+       id="text4236"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4238"
+         x="40"
+         y="162.3622">ProbeSetXRef</tspan><tspan
+         sodipodi:role="line"
+         x="40"
+         y="177.9872"
+         id="tspan4240" /></text>
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999564px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357-3"
+       width="393.15714"
+       height="25.300003"
+       x="39.849991"
+       y="171.49791" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="60"
+       y="182.3622"
+       id="text4257"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4259"
+         x="60"
+         y="182.3622">ProbeSetFreezeId</tspan><tspan
+         sodipodi:role="line"
+         x="60"
+         y="197.9872"
+         id="tspan4261" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="190"
+       y="182.3622"
+       id="text4263"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4265"
+         x="190"
+         y="182.3622">ProbeSetID</tspan><tspan
+         sodipodi:role="line"
+         x="190"
+         y="197.9872"
+         id="tspan4267" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="290"
+       y="182.3622"
+       id="text4269"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4271"
+         x="290"
+         y="182.3622">DataId</tspan><tspan
+         sodipodi:role="line"
+         x="290"
+         y="197.9872"
+         id="tspan4273" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="360"
+       y="182.3622"
+       id="text4275"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4277"
+         x="360"
+         y="182.3622">pValue</tspan><tspan
+         sodipodi:role="line"
+         x="360"
+         y="197.9872"
+         id="tspan4279" /></text>
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50748467px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357-6"
+       width="205.08281"
+       height="25.492514"
+       x="249.75372"
+       y="87.830231" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="250"
+       y="82.362206"
+       id="text4296"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="250"
+         y="82.362206"
+         id="tspan12343">ProbesetFreeze</tspan><tspan
+         sodipodi:role="line"
+         x="250"
+         y="97.987206"
+         id="tspan4300" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="312.52795"
+       y="102.3622"
+       id="text4302"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="312.52795"
+         y="102.3622"
+         id="tspan5260">ProbeFreezeId </tspan><tspan
+         sodipodi:role="line"
+         x="312.52795"
+         y="117.9872"
+         id="tspan4308" /><tspan
+         sodipodi:role="line"
+         x="312.52795"
+         y="133.6122"
+         id="tspan4306" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="404.24365"
+       y="102.3622"
+       id="text4310"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4312"
+         x="404.24365"
+         y="102.3622">Name</tspan><tspan
+         sodipodi:role="line"
+         x="404.24365"
+         y="117.9872"
+         id="tspan4314" /></text>
+    <path
+       style="fill:none"
+       id="path4331"
+       sodipodi:type="arc"
+       sodipodi:cx="415"
+       sodipodi:cy="57.362206"
+       sodipodi:rx="15"
+       sodipodi:ry="15"
+       sodipodi:start="0"
+       sodipodi:end="0.30092023"
+       d="m 430,57.362206 a 15,15 0 0 1 -0.67404,4.445988 L 415,57.362206 Z" />
+    <path
+       style="fill:none"
+       id="path4333"
+       sodipodi:type="arc"
+       sodipodi:cx="415"
+       sodipodi:cy="57.362206"
+       sodipodi:rx="25"
+       sodipodi:ry="5"
+       sodipodi:start="0"
+       sodipodi:end="0.30092094"
+       d="m 440,57.362206 a 25,5 0 0 1 -1.1234,1.481999 L 415,57.362206 Z" />
+    <path
+       style="fill:none"
+       id="path4335"
+       sodipodi:type="arc"
+       sodipodi:cx="400"
+       sodipodi:cy="57.362206"
+       sodipodi:rx="10"
+       sodipodi:ry="15"
+       sodipodi:start="0"
+       sodipodi:end="0.30092094"
+       d="m 410,57.362206 a 10,15 0 0 1 -0.44936,4.445998 L 400,57.362206 Z" />
+    <path
+       style="fill:none"
+       id="path4337"
+       sodipodi:type="arc"
+       sodipodi:cx="336.88586"
+       sodipodi:cy="45.240116"
+       sodipodi:rx="30.304577"
+       sodipodi:ry="1.5152289"
+       sodipodi:start="0"
+       sodipodi:end="0.30092094"
+       d="m 367.19044,45.240116 a 30.304577,1.5152289 0 0 1 -1.36177,0.449114 l -28.94281,-0.449114 z" />
+    <path
+       style="fill:none"
+       id="path4341"
+       sodipodi:type="arc"
+       sodipodi:cx="279.81226"
+       sodipodi:cy="30.592905"
+       sodipodi:rx="10.101525"
+       sodipodi:ry="4.0406103"
+       sodipodi:start="0"
+       sodipodi:end="0.27257505"
+       d="m 289.91378,30.592905 a 10.101525,4.0406103 0 0 1 -0.37294,1.087782 l -9.72858,-1.087782 z" />
+    <path
+       style="fill:none"
+       id="path4343"
+       sodipodi:type="arc"
+       sodipodi:cx="294.96454"
+       sodipodi:cy="47.007885"
+       sodipodi:rx="5.0507627"
+       sodipodi:ry="12.374369"
+       sodipodi:start="0"
+       sodipodi:end="0.27257505"
+       d="m 300.0153,47.007885 a 5.0507627,12.374369 0 0 1 -0.18647,3.331332 l -4.86429,-3.331332 z" />
+    <path
+       style="fill:none"
+       id="path4345"
+       sodipodi:type="arc"
+       sodipodi:cx="314.15744"
+       sodipodi:cy="50.795956"
+       sodipodi:rx="17.172594"
+       sodipodi:ry="2.5253813"
+       sodipodi:start="0"
+       sodipodi:end="0.27257505"
+       d="m 331.33003,50.795956 a 17.172594,2.5253813 0 0 1 -0.63399,0.679863 l -16.5386,-0.679863 z" />
+    <path
+       style="fill:none"
+       id="path4347"
+       sodipodi:type="arc"
+       sodipodi:cx="372.49374"
+       sodipodi:cy="53.573875"
+       sodipodi:rx="36.112953"
+       sodipodi:ry="5.8083773"
+       sodipodi:start="0"
+       sodipodi:end="0.27257505"
+       d="m 408.6067,53.573875 a 36.112953,5.8083773 0 0 1 -1.33326,1.563687 l -34.7797,-1.563687 z" />
+    <path
+       style="opacity:0.92099998;fill:#1df5d5;fill-opacity:1;stroke:#000000;stroke-width:0.05549314;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96610173"
+       id="path4362"
+       sodipodi:type="arc"
+       sodipodi:cx="432.99887"
+       sodipodi:cy="78.632385"
+       sodipodi:rx="26.093044"
+       sodipodi:ry="18.630219"
+       sodipodi:start="0.86050045"
+       sodipodi:end="0.81667097"
+       d="m 450.01305,92.757239 a 26.093044,18.630219 0 0 1 -36.6095,-1.82283 26.093044,18.630219 0 0 1 2.15172,-26.157287 26.093044,18.630219 0 0 1 36.65666,1.249611 26.093044,18.630219 0 0 1 -1.34842,26.184672"
+       sodipodi:open="true" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="427.39667"
+       y="80.98439"
+       id="text4412"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4414"
+         x="427.39667"
+         y="80.98439">DB</tspan><tspan
+         sodipodi:role="line"
+         x="427.39667"
+         y="96.60939"
+         id="tspan4416" /></text>
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.63383168px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357-6-4"
+       width="263.54529"
+       height="30.944864"
+       x="473.30872"
+       y="-76.369919"
+       transform="scale(1,-1)" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="475.78186"
+       y="35.138592"
+       id="text5279"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5281"
+         x="475.78186"
+         y="35.138592">ProbeFreeze</tspan><tspan
+         sodipodi:role="line"
+         x="475.78186"
+         y="50.763592"
+         id="tspan5283" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="481.84277"
+       y="64.433014"
+       id="text5285"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5287"
+         x="481.84277"
+         y="64.433014">id</tspan><tspan
+         sodipodi:role="line"
+         x="481.84277"
+         y="80.058014"
+         id="tspan5289" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="509.11688"
+       y="64.433014"
+       id="text5291"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5293"
+         x="509.11688"
+         y="64.433014">ProbeFreezeId</tspan><tspan
+         sodipodi:role="line"
+         x="509.11688"
+         y="80.058006"
+         id="tspan5295" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="616.19305"
+       y="64.433014"
+       id="text5297"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5299"
+         x="616.19305"
+         y="64.433014">TissueId</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="263.64981"
+       y="101.80865"
+       id="text5965"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan5967"
+         x="263.64981"
+         y="101.80865">id</tspan><tspan
+         sodipodi:role="line"
+         x="263.64981"
+         y="117.43365"
+         id="tspan5969" /></text>
+    <path
+       style="opacity:0.92099998;fill:#1df5d5;fill-opacity:1;stroke:#000000;stroke-width:0.04304412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.96610173"
+       id="path4362-2"
+       sodipodi:type="arc"
+       sodipodi:cx="506.08649"
+       sodipodi:cy="83.625862"
+       sodipodi:rx="20.03821"
+       sodipodi:ry="14.595966"
+       sodipodi:start="0.86050045"
+       sodipodi:end="0.81667097"
+       d="m 519.15256,94.692071 a 20.03821,14.595966 0 0 1 -28.11434,-1.428108 20.03821,14.595966 0 0 1 1.65242,-20.493098 20.03821,14.595966 0 0 1 28.15056,0.979016 20.03821,14.595966 0 0 1 -1.03552,20.514553"
+       sodipodi:open="true" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="501.03564"
+       y="86.656364"
+       id="text7497"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan7499"
+         x="501.03564"
+         y="86.656364">=</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000a3;stroke-width:2.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 385.87827,117.9711 c 0,0 59.599,62.62946 92.93404,22.22336 30.30457,-42.426411 30.30457,-42.426411 30.30457,-42.426411"
+       id="path11531"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000da;stroke-width:4.50923538;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker11727)"
+       d="M 303.7558,169.72606 71.513981,116.30022"
+       id="path11707"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000d7;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker12489)"
+       d="m 138.3909,171.50919 130.30968,-59.599"
+       id="path12481"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.46889797px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357-8"
+       width="174.81682"
+       height="25.531101"
+       x="42.901268"
+       y="25.4035" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="43.436558"
+       y="17.966"
+       id="text12592"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan12594"
+         x="43.436558"
+         y="17.966">Strain</tspan><tspan
+         sodipodi:role="line"
+         x="43.436558"
+         y="33.591"
+         id="tspan12596" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="55.558392"
+       y="41.199509"
+       id="text12598"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="55.558392"
+         y="41.199509"
+         id="tspan12610">id</tspan><tspan
+         sodipodi:role="line"
+         x="55.558392"
+         y="56.824509"
+         id="tspan12602" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="101.01525"
+       y="40.189354"
+       id="text12604"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan12606"
+         x="101.01525"
+         y="40.189354">name</tspan><tspan
+         sodipodi:role="line"
+         x="101.01525"
+         y="55.814354"
+         id="tspan12608" /></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000d7;stroke-width:0.96167564;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12489-7)"
+       d="M 108.99621,89.933268 65.230166,45.329821"
+       id="path12481-0"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.46889797px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3357-8-7"
+       width="174.81682"
+       height="25.531101"
+       x="40.880962"
+       y="240.56599" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="43.436558"
+       y="231.10818"
+       id="text14098"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan14100"
+         x="43.436558"
+         y="231.10818">ProbeSet</tspan><tspan
+         sodipodi:role="line"
+         x="43.436558"
+         y="246.73318"
+         id="tspan14102" /></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="53.538086"
+       y="257.37213"
+       id="text14104"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="53.538086"
+         y="257.37213"
+         id="tspan14108">id</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="90.913734"
+       y="256.362"
+       id="text14112"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="90.913734"
+         y="256.362"
+         id="tspan14116">name</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="144.45181"
+       y="255.35185"
+       id="text14120"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="144.45181"
+         y="255.35185"
+         id="tspan14124">many infos</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#0000d7;stroke-width:1.89054883;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker12489-7-2)"
+       d="M 72.019909,251.65943 208.39464,196.3512"
+       id="path12481-0-6"
+       inkscape:connector-curvature="0"
+       inkscape:transform-center-x="-32.453094"
+       inkscape:transform-center-y="114.65633" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:12.5px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="150.51273"
+       y="40.18935"
+       id="text3465"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3467"
+         x="150.51273"
+         y="40.18935">speciesid</tspan><tspan
+         sodipodi:role="line"
+         x="150.51273"
+         y="55.81435"
+         id="tspan3469" /></text>
+  </g>
+</svg>
diff --git a/test/lib/NavigationTest.rb b/test/lib/NavigationTest.rb
new file mode 100644
index 00000000..26080d28
--- /dev/null
+++ b/test/lib/NavigationTest.rb
@@ -0,0 +1,46 @@
+# In these tests we navigate from the main page to a specific trait then hit the different mapping tool buttons (In this case pylMM and r/qtl) followed by computing the results (marker regressions).
+
+class NavigationTest
+end
+
+describe NavigationTest do
+  before do
+    @agent = Mechanize.new
+    @agent.agent.http.ca_file = '/etc/ssl/certs/ca-certificates.crt'
+  end
+
+  describe NavigationTest do
+    it "pyLMM mapping tool selection" do
+      page = @agent.get($host+'/show_trait?trait_id=1435395_s_at&dataset=HC_M2_0606_P')
+#Navigates to http://localhost:5003/show_trait?trait_id=1435395_s_at&dataset=HC_M2_0606_P and clicks respective buttons.
+      link = page.link_with(text: 'pyLMM')
+      page = link.click
+      puts page.uri
+      link = page.link_with(text: 'Compute')
+      page = link.click
+      puts page.uri
+      probe_link.uri.to_s.must_equal "/marker_regression"
+      
+       
+        end
+      end
+
+end
+
+describe NavigationTest do
+    it "R/qtl mapping tool selection" do
+      page = @agent.get($host+'/show_trait?trait_id=1435395_s_at&dataset=HC_M2_0606_P')
+      link = page.link_with(text: 'R/qtl')
+      page = link.click
+      puts page.uri
+      form.field_with(:name => 'Methods').options[2].select
+      link = page.link_with(text: 'Compute')
+      page = link.click
+      puts page.uri
+      probe_link.uri.to_s.must_equal "/marker_regression"
+      
+       
+        end
+      end
+
+