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 |
%> |