source: extensions/net.sf.basedb.reggie/trunk/resources/sequencing/sequencing_external.jsp @ 5867

Last change on this file since 5867 was 5867, checked in by Nicklas Nordborg, 23 months ago

References #1231: Add support for sequencing with NovaSeq?

Started to implement a wizard for registering a sample sheet from an external sequencing. A lot of checks are made to try to make sure that only the expected libraries are registered.

The wizard expects that library items have been pre-created and placed on a "External library plate" (it is not possible to do that by a wizard at the moment). The libraries should be without a 'creation date'.

The new wizard will set the 'creation date' to the date found in the sample sheet file (it is possible to manually change this), and associate the library with a barcode. Actual barcode sequences in the sample sheet are verified against the database.

The wizard will then create a single "Pooled library" item for all the libraries as well as a single "Flow cell" item and "Sequencing run". It will try to put in as much information as possible to make it possible for the "auto-confirmation" function to detect when data is available in the run archive and continue with demux and other analysis.

It should also be possible to use the manual "Sequencing ended" wizard.

At the moment, they doesn't work since some information is not yet available. We can probably parse out what we need from the "RunParameters?.xml" file, it just has to be done in a slightly different order.

File size: 6.9 KB
Line 
1<%@ page
2  pageEncoding="UTF-8"
3  session="false"
4  import="net.sf.basedb.core.User"
5  import="net.sf.basedb.core.DbControl"
6  import="net.sf.basedb.core.SessionControl"
7  import="net.sf.basedb.core.Application"
8  import="net.sf.basedb.util.formatter.DateFormatter"
9  import="net.sf.basedb.util.formatter.Formatter"
10  import="net.sf.basedb.clients.web.Base" 
11  import="net.sf.basedb.clients.web.util.HTML" 
12  import="net.sf.basedb.clients.web.extensions.ExtensionsControl"
13  import="java.util.Date"
14%>
15<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
16<%@ taglib prefix="p" uri="/WEB-INF/path.tld" %>
17<%
18final SessionControl sc = Base.getExistingSessionControl(request, "net.sf.basedb.reggie", true);
19final String ID = sc.getId();
20final float scale = Base.getScale(sc);
21final String home = ExtensionsControl.getHomeUrl("net.sf.basedb.reggie");
22final String pipeline = request.getParameter("pipeline");
23DbControl dc = null;
24try
25{
26  dc = sc.newDbControl();
27  final User user = User.getById(dc, sc.getLoggedInUserId());
28  final Formatter dateFormat = new DateFormatter("yyyyMMdd");
29%>
30<base:page type="default" >
31<base:head 
32  scripts="~../reggie-2.js,~sequencing_external.js" 
33  styles="path.css,~../css/reggie-2.css"
34/>
35<base:body>
36
37  <p:path><p:pathelement 
38    title="Reggie" href="<%="../index.jsp?ID="+ID%>" 
39    /><p:pathelement title="Register external sequencing" 
40    /></p:path>
41
42  <div id="page-data" class="datacontainer"
43    data-pipeline="<%=HTML.encodeTags(pipeline)%>"
44  ></div>
45
46  <div class="content">
47  <form name="reggie" id="wizard" class="wizard">
48
49  <div class="step" id="step-1">
50    <div class="step-no">1</div>
51    <div class="step-title">Information about the sequencing</div>
52    <div class="step-content">
53
54      <table class="step-form">
55      <tr>
56        <td class="prompt">Flow cell ID</td>
57        <td class="input">
58          <input type="text" name="flowCellId" id="flowCellId"
59            class="required auto-init" data-auto-init="focus-on-enter" data-next-focus="startDate"
60            style="width: 12em;">
61        </td>
62        <td class="status" id="flowCellId.status"></td>
63        <td class="help">
64          <span id="flowCellId.message" class="message"></span>
65          The barcode of the flow cell.
66        </td>
67      </tr>
68      <tr>
69        <td class="prompt">Sample sheet</td>
70        <td class="input">
71          <input type="file" name="sampleSheetFile" id="sampleSheetFile" class="required" style="width: 95%;" accept="text/plain">
72        </td>
73        <td class="status" id="sampleSheetFile.status"></td>
74        <td class="help">
75          <span id="sampleSheetFile.message" class="message"></span>
76          Select the file sample sheet for the sequencing.
77        </td>
78      </tr>
79      <tr>
80        <td class="prompt">Start date</td>
81        <td class="input">
82          <input type="text" name="startDate" id="startDate"
83            class="auto-init required" data-auto-init="focus-on-enter" 
84            style="width: 12em;" maxlength="10">
85        </td>
86        <td class="status" id="startDate.status"></td>
87        <td class="help">
88          <span id="startDate.message" class="message"></span>
89          Date when the sequencing started (YYYYMMDD)
90        </td>
91      </tr>
92      <tr>
93        <td class="prompt">Flow cell type</td>
94        <td class="input">
95          <label><input type="radio" name="flowCellType" id="flowCellTypeNovaSeq" checked value="NovaSeq">NovaSeq</label>
96        </td>
97        <td class="status" id="flowCellType.status"></td>
98        <td class="help">
99          <span id="flowCellType.message" class="message"></span>
100          The type of flow cell. Only NovaSeq is supported so far.
101        </td>
102      </tr>
103      <tr>
104        <td class="prompt">Lanes/flow cell</td>
105        <td class="input" id="lanes">
106          <label><input type="radio" name="num_lanes" id="num_lanes_2" value="2" checked>2</label>
107          <label><input type="radio" name="num_lanes" id="num_lanes_4" value="4">4</label>
108        </td>
109        <td class="status" id="lanes.status"></td>
110        <td class="help">
111          <span id="lanes.message" class="message"></span>
112          Select the number of lanes on the flow cell.
113        </td>
114      </tr>
115      <tr class="align-top">
116        <td class="prompt">Comments</td>
117        <td class="input">
118          <textarea name="comments" id="comments" rows="4"></textarea>
119        </td>
120        <td class="status" id="comments.status"></td>
121        <td class="help">
122          <span id="comments.message" class="message"></span>
123          Comments about the sequencing.
124        </td>
125      </tr>
126      <tbody id="auto-analyze-section">
127        <tr class="section-header">
128          <td colspan="4">Auto-analyze options</td>
129        </tr>
130        <tr>
131          <td class="subprompt">Auto-analyze</td>
132          <td class="input">
133            <label><input type="radio" name="autoAnalyze" id="autoAnalyzeYes" disabled>Yes</label>
134            <label><input type="radio" name="autoAnalyze" id="autoAnalyzeNo" disabled>No</label>
135          </td>
136          <td class="status" id="autoAnalyze.status"></td>
137          <td class="help">
138            <span id="autoAnalyze.message" class="message"></span>
139            If the auto-analyze option is enabled, Reggie will automatically detect
140            when the sequencing has ended. If everything seems to be okay,
141            secondary analysis is automatically started.
142          </td>
143        </tr>
144        <tr>
145          <td class="subprompt">Open Grid Cluster</td>
146          <td class="input">
147            <select name="clusters" id="clusters" class="required" disabled></select>
148          </td>
149          <td class="status" id="clusters.status"></td>
150          <td class="help">
151            <span id="clusters.message" class="message"></span>
152            Select the cluster to use for running the analysis.
153          </td>
154        </tr>
155        <tr>
156          <td class="subprompt">Job priority</td>
157          <td class="input">
158            <select name="priority" id="priority" disabled></select>
159          </td>
160          <td class="status" id="priority.status"></td>
161          <td class="help">
162            <span id="priority.message" class="message"></span>
163            Select the priority of the analysis jobs.
164          </td>
165        </tr>
166        <tr>
167          <td class="subprompt">Debug</td>
168          <td class="input"><input type="checkbox" name="debug" disabled></td>
169          <td class="status" id="debug.status"></td>
170          <td class="help">
171            <span id="debug.message" class="message"></span>
172            When running in debug mode only part of the sequenced data is used and
173            temporary files are not removed from the cluster nodes.
174          </td>
175        </tr>
176      </tbody>
177      </table>
178    </div>
179  </div>
180 
181  <table class="navigation" id="navigation" style="margin-bottom: 1em;">
182  <tr>
183    <td><base:button id="gocancel" title="Cancel" /></td>
184    <td><base:button id="gonext" title="Next" image="<%=home+"/images/gonext.png"%>" /></td>
185    <td><base:button id="goregister" title="Register" image="<%=home+"/images/import.png"%>"  /></td>
186    <td><base:button id="gorestart" title="Restart" image="<%=home+"/images/goback.png"%>" /></td>
187    <td id="gonext-message" class="message"></td>
188  </tr>
189  </table>
190
191  <div id="wizard-status"></div>
192 
193  </form>
194  </div>
195 
196</base:body>
197</base:page>
198<%
199}
200finally
201{
202  if (dc != null) dc.close();
203}
204%>
Note: See TracBrowser for help on using the repository browser.