extensions/net.sf.basedb.reggie/trunk/resources/analysis/view_genotypes.jsp

Code
Comments
Other
Rev Date Author Line
4620 16 Nov 17 nicklas 1 <%@ page
4620 16 Nov 17 nicklas 2   pageEncoding="UTF-8"
4620 16 Nov 17 nicklas 3   session="false"
4620 16 Nov 17 nicklas 4   import="net.sf.basedb.core.User"
4620 16 Nov 17 nicklas 5   import="net.sf.basedb.core.DbControl"
4620 16 Nov 17 nicklas 6   import="net.sf.basedb.core.SessionControl"
4620 16 Nov 17 nicklas 7   import="net.sf.basedb.core.Application"
4620 16 Nov 17 nicklas 8   import="net.sf.basedb.core.File"
4620 16 Nov 17 nicklas 9   import="net.sf.basedb.core.DerivedBioAssay"
6565 01 Feb 22 nicklas 10   import="net.sf.basedb.core.ItemSubtype"
4620 16 Nov 17 nicklas 11   import="net.sf.basedb.util.Values"
4620 16 Nov 17 nicklas 12   import="net.sf.basedb.clients.web.Base"  
4620 16 Nov 17 nicklas 13   import="net.sf.basedb.clients.web.util.HTML"
4620 16 Nov 17 nicklas 14   import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
4620 16 Nov 17 nicklas 15 %>
4620 16 Nov 17 nicklas 16 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
4620 16 Nov 17 nicklas 17 <%
4620 16 Nov 17 nicklas 18 final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
4620 16 Nov 17 nicklas 19 final String ID = sc.getId();
4620 16 Nov 17 nicklas 20 final float scale = Base.getScale(sc);
4620 16 Nov 17 nicklas 21 final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
4620 16 Nov 17 nicklas 22 DbControl dc = null;
4620 16 Nov 17 nicklas 23 try
4620 16 Nov 17 nicklas 24 {
4620 16 Nov 17 nicklas 25   dc = sc.newDbControl();
4620 16 Nov 17 nicklas 26   final User user = User.getById(dc, sc.getLoggedInUserId());
4620 16 Nov 17 nicklas 27   
4620 16 Nov 17 nicklas 28   int fileId = Values.getInt(request.getParameter("fileId"));
4620 16 Nov 17 nicklas 29   int itemId = Values.getInt(request.getParameter("itemId"));
4648 15 Dec 17 nicklas 30
4648 15 Dec 17 nicklas 31   int fileId2 = Values.getInt(request.getParameter("fileId2"));
4648 15 Dec 17 nicklas 32   int itemId2 = Values.getInt(request.getParameter("itemId2"));
4620 16 Nov 17 nicklas 33   
6450 21 Oct 21 nicklas 34   DerivedBioAssay aligned1 = itemId != 0 ? DerivedBioAssay.getById(dc, itemId) : null;
6565 01 Feb 22 nicklas 35   ItemSubtype subtype1 = aligned1 == null ? null : aligned1.getItemSubtype();
6450 21 Oct 21 nicklas 36   File vcfFile1 = File.getById(dc, fileId);
4648 15 Dec 17 nicklas 37   
4648 15 Dec 17 nicklas 38   boolean compareMode = fileId2 != 0;
4648 15 Dec 17 nicklas 39   DerivedBioAssay aligned2 = compareMode ? DerivedBioAssay.getById(dc, itemId2) : null;
6565 01 Feb 22 nicklas 40   ItemSubtype subtype2 = aligned2 == null ? null : aligned2.getItemSubtype();
4648 15 Dec 17 nicklas 41   
4648 15 Dec 17 nicklas 42   String title = null;
4678 12 Feb 18 nicklas 43   int headerColspan = 3;
4648 15 Dec 17 nicklas 44   if (compareMode)
4648 15 Dec 17 nicklas 45   {
6450 21 Oct 21 nicklas 46     
6450 21 Oct 21 nicklas 47     title = "Compare genotypes: " + (aligned1 != null ? aligned1.getName() : vcfFile1.getName()) + " vs. " + aligned2.getName();
4678 12 Feb 18 nicklas 48     headerColspan = 1;
4648 15 Dec 17 nicklas 49   }
4648 15 Dec 17 nicklas 50   else
4648 15 Dec 17 nicklas 51   {
6450 21 Oct 21 nicklas 52     title = "Genotype summary: " + (aligned1 != null ? aligned1.getName() : vcfFile1.getName());
4648 15 Dec 17 nicklas 53   }
4620 16 Nov 17 nicklas 54 %>
4620 16 Nov 17 nicklas 55 <base:page type="popup" title="View genotypes">
4620 16 Nov 17 nicklas 56 <base:head scripts="~view_genotypes.js,~../reggie-2.js" styles="path.css,~../css/reggie-2.css">
4620 16 Nov 17 nicklas 57
4620 16 Nov 17 nicklas 58 <style>
4620 16 Nov 17 nicklas 59
4620 16 Nov 17 nicklas 60 #snp-list th
4620 16 Nov 17 nicklas 61 {
4620 16 Nov 17 nicklas 62   text-align: left;
4620 16 Nov 17 nicklas 63   padding: 2px;
4648 15 Dec 17 nicklas 64   border-right-width: 0;
4620 16 Nov 17 nicklas 65 }
4620 16 Nov 17 nicklas 66
4620 16 Nov 17 nicklas 67 #snp-list td
4620 16 Nov 17 nicklas 68 {
4620 16 Nov 17 nicklas 69   padding: 2px;
4620 16 Nov 17 nicklas 70 }
4620 16 Nov 17 nicklas 71
4620 16 Nov 17 nicklas 72 #snp-list .snp
4620 16 Nov 17 nicklas 73 {
4620 16 Nov 17 nicklas 74   border-bottom-style: dotted;
4620 16 Nov 17 nicklas 75   border-bottom-width: 1px;
4620 16 Nov 17 nicklas 76 }
4620 16 Nov 17 nicklas 77 #snp-list tr :first-child
4620 16 Nov 17 nicklas 78 {
4620 16 Nov 17 nicklas 79   padding-left: 4px;
4620 16 Nov 17 nicklas 80 }
4620 16 Nov 17 nicklas 81 .lowgq
4620 16 Nov 17 nicklas 82 {
4620 16 Nov 17 nicklas 83   color: #999999;
4620 16 Nov 17 nicklas 84 }
4648 15 Dec 17 nicklas 85 .mismatch .gt2, .mismatch .gt1
4648 15 Dec 17 nicklas 86 {
4648 15 Dec 17 nicklas 87   background-color: #FFE0E0;
4648 15 Dec 17 nicklas 88 }
4648 15 Dec 17 nicklas 89
4648 15 Dec 17 nicklas 90 .hidematches .match
4648 15 Dec 17 nicklas 91 {
4648 15 Dec 17 nicklas 92   display: none;
4648 15 Dec 17 nicklas 93 }
4648 15 Dec 17 nicklas 94
4620 16 Nov 17 nicklas 95 </style>
4620 16 Nov 17 nicklas 96
4620 16 Nov 17 nicklas 97 </base:head>
4620 16 Nov 17 nicklas 98 <base:body data-read-only="1">
4648 15 Dec 17 nicklas 99   <h1><%=HTML.encodeTags(title) %></h1>
4620 16 Nov 17 nicklas 100
4620 16 Nov 17 nicklas 101   <div id="page-data" class="datacontainer"
4648 15 Dec 17 nicklas 102     data-file-id="<%=fileId%>" data-file-id2="<%=fileId2%>"
4648 15 Dec 17 nicklas 103     data-item-id="<%=itemId%>" data-item-id2="<%=itemId2%>"
4620 16 Nov 17 nicklas 104   ></div>
4620 16 Nov 17 nicklas 105   
4620 16 Nov 17 nicklas 106   <form name="reggie" id="wizard" class="wizard">
4620 16 Nov 17 nicklas 107   <div class="content bottomborder">
4648 15 Dec 17 nicklas 108     <table id="sample-summary" class="fullform input100 bottomborder" style="display:none; height:auto;">
4648 15 Dec 17 nicklas 109     <tbody>
4620 16 Nov 17 nicklas 110     <tr>
4678 12 Feb 18 nicklas 111       <%if (compareMode){%>
4678 12 Feb 18 nicklas 112         <th colspan="2" class="bottomborder">Mismatches</th>
4678 12 Feb 18 nicklas 113       <%}%>
6450 21 Oct 21 nicklas 114       <th colspan="<%=headerColspan%>">Item</th>
6450 21 Oct 21 nicklas 115       <%if (aligned1 != null){%>
6565 01 Feb 22 nicklas 116       <td colspan="4"><%=HTML.encodeTags(aligned1.getName())%> <span class="itemsubtype">(<%=subtype1 != null ? HTML.encodeTags(subtype1.getName()) : aligned1.getType()%>)</span></td>
6450 21 Oct 21 nicklas 117       <%}else{%>
6450 21 Oct 21 nicklas 118       <td colspan="4"><%=HTML.encodeTags(vcfFile1.getName())%> <span class="itemsubtype">(File)</span></td>
6450 21 Oct 21 nicklas 119       <%}%>
4648 15 Dec 17 nicklas 120       <%if (compareMode){%>
6450 21 Oct 21 nicklas 121         <td colspan="4" class="dottedleft"><%=HTML.encodeTags(aligned2.getName())%> 
6565 01 Feb 22 nicklas 122         <span class="itemsubtype">(<%=subtype2 != null ? HTML.encodeTags(subtype2.getName()) : aligned2.getType()%>)</span></td>
4648 15 Dec 17 nicklas 123       <%}%>
4620 16 Nov 17 nicklas 124     </tr>
4620 16 Nov 17 nicklas 125     <tr>
4678 12 Feb 18 nicklas 126       <%if (compareMode){%>
4678 12 Feb 18 nicklas 127         <th>Total</th>
4678 12 Feb 18 nicklas 128         <td class="rightborder"><span id="mismatches-total"></span></td>
4678 12 Feb 18 nicklas 129       <%}%>
7203 25 May 23 nicklas 130       <th colspan="<%=headerColspan%>">Pipeline</th>
7203 25 May 23 nicklas 131       <td colspan="4"><span id="pipeline"></span></td>
7203 25 May 23 nicklas 132       <%if (compareMode){%>
7203 25 May 23 nicklas 133         <td colspan="4" class="dottedleft"><span id="pipeline2"></span></td>
7203 25 May 23 nicklas 134       <%}%>
7203 25 May 23 nicklas 135     </tr>
7203 25 May 23 nicklas 136     <tr>
7203 25 May 23 nicklas 137       <%if (compareMode){%>
7203 25 May 23 nicklas 138         <th>High GQ</th>
7203 25 May 23 nicklas 139         <td class="rightborder"><span id="mismatches-high"></span></td>
7203 25 May 23 nicklas 140       <%}%>
4678 12 Feb 18 nicklas 141       <th colspan="<%=headerColspan%>">Genotypes</th>
4648 15 Dec 17 nicklas 142       <td colspan="4"><span id="gtCount"></span></td>
4648 15 Dec 17 nicklas 143       <%if (compareMode){%>
4648 15 Dec 17 nicklas 144         <td colspan="4" class="dottedleft"><span id="gtCount2"></span></td>
4648 15 Dec 17 nicklas 145       <%}%>
4620 16 Nov 17 nicklas 146     </tr>
4620 16 Nov 17 nicklas 147     <tr>
4678 12 Feb 18 nicklas 148       <%if (compareMode){%>
7203 25 May 23 nicklas 149         <th>HOM › HOM</th>
7203 25 May 23 nicklas 150         <td class="rightborder"><span id="mismatches-homhom"></span></td>
4678 12 Feb 18 nicklas 151       <%}%>
4678 12 Feb 18 nicklas 152       <th colspan="<%=headerColspan%>">Average GQ</th>
4648 15 Dec 17 nicklas 153       <td colspan="4"><span id="avgGQ"></span></td>
4648 15 Dec 17 nicklas 154       <%if (compareMode){%>
4648 15 Dec 17 nicklas 155         <td colspan="4" class="dottedleft"><span id="avgGQ2"></span></td>
4648 15 Dec 17 nicklas 156       <%}%>
4620 16 Nov 17 nicklas 157     </tr>
4620 16 Nov 17 nicklas 158     <tr>
4678 12 Feb 18 nicklas 159       <%if (compareMode){%>
7203 25 May 23 nicklas 160         <th>HET › HOM</th>
7203 25 May 23 nicklas 161         <td class="rightborder"><span id="mismatches-hethom"></span></td>
4678 12 Feb 18 nicklas 162       <%}%>
4678 12 Feb 18 nicklas 163       <th colspan="<%=headerColspan%>">Aligned pairs</th>
4648 15 Dec 17 nicklas 164       <td colspan="4"><span id="alignedPairs"></span></td>
4648 15 Dec 17 nicklas 165       <%if (compareMode){%>
4648 15 Dec 17 nicklas 166         <td colspan="4" class="dottedleft"><span id="alignedPairs2"></span></td>
4648 15 Dec 17 nicklas 167       <%}%>
4620 16 Nov 17 nicklas 168     </tr>
4648 15 Dec 17 nicklas 169     <%
4648 15 Dec 17 nicklas 170     if (compareMode)
4648 15 Dec 17 nicklas 171     {
4648 15 Dec 17 nicklas 172       %>
4648 15 Dec 17 nicklas 173       <tr>
7203 25 May 23 nicklas 174         <th>HOM › HET</th>
7203 25 May 23 nicklas 175         <td class="rightborder"><span id="mismatches-homhet"></span></td>
4678 12 Feb 18 nicklas 176         <th colspan="<%=headerColspan%>">LibPlate</th>
4648 15 Dec 17 nicklas 177         <td colspan="4"><span id="libPlate"></span></td>
4648 15 Dec 17 nicklas 178         <td colspan="4" class="dottedleft"><span id="libPlate2"></span></td>
4648 15 Dec 17 nicklas 179       </tr>
4648 15 Dec 17 nicklas 180       <tr>
7203 25 May 23 nicklas 181         <th></th>
7203 25 May 23 nicklas 182         <td class="rightborder"></td>
4678 12 Feb 18 nicklas 183         <th colspan="<%=headerColspan%>">Qiacube</th>
4648 15 Dec 17 nicklas 184         <td colspan="4"><span id="qiacube"></span></td>
4648 15 Dec 17 nicklas 185         <td colspan="4" class="dottedleft"><span id="qiacube2"></span></td>
4648 15 Dec 17 nicklas 186       </tr>
4648 15 Dec 17 nicklas 187       <tr>
4678 12 Feb 18 nicklas 188         <th></th>
4678 12 Feb 18 nicklas 189         <td class="rightborder"></td>
4678 12 Feb 18 nicklas 190         <th colspan="<%=headerColspan%>">Partition date</th>
4648 15 Dec 17 nicklas 191         <td colspan="4"><span id="partitionDate"></span></td>
4648 15 Dec 17 nicklas 192         <td colspan="4" class="dottedleft"><span id="partitionDate2"></span></td>
4648 15 Dec 17 nicklas 193       </tr>
4648 15 Dec 17 nicklas 194       <tr>
4678 12 Feb 18 nicklas 195         <th></th>
4678 12 Feb 18 nicklas 196         <td class="rightborder"></td>
4678 12 Feb 18 nicklas 197         <th colspan="<%=headerColspan%>">Patient</th>
4648 15 Dec 17 nicklas 198         <td colspan="4"><span id="pat"></span></td>
4648 15 Dec 17 nicklas 199         <td colspan="4" class="dottedleft"><span id="pat2"></span></td>
4648 15 Dec 17 nicklas 200       </tr>
4648 15 Dec 17 nicklas 201       <%
4648 15 Dec 17 nicklas 202     }
4648 15 Dec 17 nicklas 203     %>
4713 22 Mar 18 nicklas 204     <tr id="gt-comment">
4713 22 Mar 18 nicklas 205       <%if (compareMode){%>
4713 22 Mar 18 nicklas 206         <th></th>
4713 22 Mar 18 nicklas 207         <td class="rightborder"></span></td>
4713 22 Mar 18 nicklas 208       <%}%>
4713 22 Mar 18 nicklas 209       <th colspan="<%=headerColspan%>">Comment</th>
4713 22 Mar 18 nicklas 210       <td colspan="4"><span id="gtComment"></span></td>
4713 22 Mar 18 nicklas 211       <%if (compareMode){%>
4713 22 Mar 18 nicklas 212         <td colspan="4" class="dottedleft"><span id="gtComment2"></span></td>
4713 22 Mar 18 nicklas 213       <%}%>
4713 22 Mar 18 nicklas 214     </tr>
4648 15 Dec 17 nicklas 215     </tbody>
4648 15 Dec 17 nicklas 216     <tbody id="snp-list"></tbody>
4620 16 Nov 17 nicklas 217     </table>
4648 15 Dec 17 nicklas 218
4620 16 Nov 17 nicklas 219     <div id="wizard-status"></div>
4620 16 Nov 17 nicklas 220   </div>  
4620 16 Nov 17 nicklas 221   </form>
4620 16 Nov 17 nicklas 222   
4620 16 Nov 17 nicklas 223   <base:buttongroup subclass="dialogbuttons" id="dialogbuttons">
4620 16 Nov 17 nicklas 224     <base:button id="close" title="Close" />
4620 16 Nov 17 nicklas 225   </base:buttongroup>
4620 16 Nov 17 nicklas 226   
4620 16 Nov 17 nicklas 227 </base:body>
4620 16 Nov 17 nicklas 228 </base:page>
4620 16 Nov 17 nicklas 229 <%
4620 16 Nov 17 nicklas 230 }
4620 16 Nov 17 nicklas 231 finally
4620 16 Nov 17 nicklas 232 {
4620 16 Nov 17 nicklas 233   if (dc != null) dc.close();
4620 16 Nov 17 nicklas 234 }
4620 16 Nov 17 nicklas 235 %>