|
26 | 26 | </style> |
27 | 27 | </head> |
28 | 28 | <body> |
29 | | - <main class="container"> |
30 | | - <g:if test="${!samplesOnly}"> |
| 29 | +<main class="container"> |
31 | 30 | <h2>${report.name}</h2> |
32 | | - <section> |
33 | | - <h4>Images</h4> |
34 | | - <table class="table table-bordered" id="project-table"> |
35 | | - <thead> |
36 | | - <tr> |
37 | | - <th>Sonication Images</th> |
38 | | - <th>Gel Images</th> |
39 | | - <tr> |
40 | | - </thead> |
41 | | - <tbody> |
42 | | - <tr> |
43 | | - <td class="col-sm-6"> |
44 | | - <ul> |
45 | | - <g:each in="${imageMap?.sonication}" var="filepath"> |
46 | | - <li> |
47 | | - <img src='${createLink(controller: "file", action: "displayImage", params:[filepath:filepath, relative:true])}' height="200"/> |
48 | | - </li> |
49 | | - </g:each> |
50 | | - </ul> |
51 | | - </td> |
52 | | - <td class="col-sm-6"> |
53 | | - <ul> |
54 | | - <g:each in="${imageMap?.gel}" var="filepath"> |
55 | | - <li> |
56 | | - <img src='${createLink(controller: "file", action: "displayImage", params:[filepath:filepath,relative:true])}' height="200"/> |
57 | | - </li> |
58 | | - </g:each> |
59 | | - </ul> |
60 | | - </td> |
61 | | - </tr> |
62 | | - </tbody> |
63 | | - </table> |
64 | | - </section> |
65 | | - </g:if> |
66 | | - <section> |
67 | | - <h4>Samples</h4> |
68 | | - <p>The number of samples: ${sampleList.size()}</p> |
69 | | - <table class="table table-bordered"> |
70 | | - <thead> |
71 | | - <tr> |
72 | | - <th>Sample ID</th> |
73 | | - <th>Target</th> |
74 | | - <th>Antibody</th> |
75 | | - <th>Celltype/Strain</th> |
76 | | - <th>Mutation</th> |
77 | | - <th>Growth Media</th> |
78 | | - <th>Treatments</th> |
79 | | - <th>Assay</th> |
80 | | - <th>Note</th> |
81 | | - </tr> |
82 | | - </thead> |
83 | | - <tbody> |
84 | | - <g:each in="${sampleList}" var="sample" status="n"> |
85 | | - <tr> |
86 | | - <td>${sample.id}</td> |
87 | | - <td>${sample.target}</td> |
88 | | - <td>${sample.antibody}</td> |
89 | | - <td>${sample.strain}</td> |
90 | | - <td>${sample.geneticModification}</td> |
91 | | - <td>${sample.growthMedia}</td> |
92 | | - <td>${sample.treatments}</td> |
93 | | - <td>${sample.assay}</td> |
94 | | - <td>${sample.note}</td> |
95 | | - </tr> |
96 | | - </g:each> |
97 | | - </tbody> |
98 | | - </table> |
99 | | - </section> |
100 | | - <section> |
101 | | - <h4>Mapping Statistics (Read 1)</h4> |
102 | | - <table class="table table-bordered"> |
103 | | - <thead> |
104 | | - <tr> |
105 | | - <th>ID</th> |
106 | | - <th>Sequence Run</th> |
107 | | - <th>Genome</th> |
108 | | - <th class="text-right">Read Count (R1)</th> |
109 | | - <th class="text-right">Uniquely Mapped Count (R1)</th> |
110 | | - <th class="text-right">% Uniquely Mapped Count (R1)</th> |
111 | | - <th class="text-right">Deduplicated Count (R1)</th> |
112 | | - <th class="text-right">% Deduplicated Count (R1)</th> |
113 | | - </tr> |
114 | | - </thead> |
115 | | - <tbody> |
116 | | - <g:each in="${sampleList}" var="sample" status="n"> |
117 | | - <tr> |
118 | | - <td rowspan="${Math.max(1, sample.alignmentCount)}">${sample.id}</td> |
119 | | - <g:each in="${sample.experiments}" var="experiment" status="nExp"> |
120 | | - <g:if test="${nExp>0}"><tr></g:if> |
121 | | - <g:each in="${experiment.alignments}" var="alignment" status="nAli"> |
122 | | - <g:if test="${nAli>0}"><tr></g:if> |
123 | | - <td>${experiment?.runId}</td> |
124 | | - <td>${alignment.genome}</td> |
125 | | - <td class="text-right"><g:formatNumber number="${experiment.totalReads}" format="###,###,###" /></td> |
126 | | - <td class="text-right"><g:formatNumber number="${alignment.uniquelyMappedReads}" format="###,###,###" /></td> |
127 | | - <td class="text-right"><g:formatNumber number="${alignment.uniquelyMappedPct}" format="#0.0%" /></td> |
128 | | - <td class="text-right"><g:formatNumber number="${alignment.dedupUniquelyMappedReads}" format="###,###,###" /></td> |
129 | | - <td class="text-right"><g:formatNumber number="${alignment.deduplicatedPct}" format="#0.0%" /></td> |
130 | | - </tr> |
131 | | - </g:each> |
132 | | - </g:each> |
133 | | - </g:each> |
134 | | - </tbody> |
135 | | - </table> |
136 | | - </section> |
137 | | - <section> |
138 | | - <h4>Mapping Statistics (Read 2)</h4> |
139 | | - <table class="table table-bordered"> |
140 | | - <thead> |
141 | | - <tr> |
142 | | - <th>ID</th> |
143 | | - <th>Sequence Run</th> |
144 | | - <th>Genome</th> |
145 | | - <th class="text-right">Read Count (R2)</th> |
146 | | - <th class="text-right">Uniquely Mapped Count (R2)</th> |
147 | | - <th class="text-right">% Uniquely Mapped Count (R2)</th> |
148 | | - <th class="text-right">Deduplicated Count (R2)</th> |
149 | | - <th class="text-right">% Deduplicated Count (R2)</th> |
150 | | - </tr> |
151 | | - </thead> |
152 | | - <tbody> |
153 | | - <g:each in="${sampleList}" var="sample" status="n"> |
154 | | - <tr> |
155 | | - <td rowspan="${Math.max(1, sample.alignmentCount)}">${sample.id}</td> |
156 | | - <g:each in="${sample.experiments}" var="experiment" status="nExp"> |
157 | | - <g:if test="${nExp>0}"><tr></g:if> |
158 | | - <g:each in="${experiment.alignments}" var="alignment" status="nAli"> |
159 | | - <g:if test="${nAli>0}"><tr></g:if> |
160 | | - <td>${experiment?.runId}</td> |
161 | | - <td>${alignment.genome}</td> |
162 | | - <td class="text-right"><g:formatNumber number="${experiment.totalReadsR2}" format="###,###,###" /></td> |
163 | | - <td class="text-right"><g:formatNumber number="${alignment.uniquelyMappedReadsR2}" format="###,###,###" /></td> |
164 | | - <td class="text-right"><g:formatNumber number="${alignment.uniquelyMappedPct2}" format="#0.0%" /></td> |
165 | | - <td class="text-right"><g:formatNumber number="${alignment.dedupUniquelyMappedReadsR2}" format="###,###,###" /></td> |
166 | | - <td class="text-right"><g:formatNumber number="${alignment.deduplicatedPct2}" format="#0.0%" /></td> |
167 | | - </tr> |
168 | | - </g:each> |
169 | | - </g:each> |
170 | | - </g:each> |
171 | | - </tbody> |
172 | | - </table> |
173 | | - </section> |
174 | | - <section> |
175 | | - <h4>Advanced Analysis</h4> |
176 | | - <ul> |
177 | | - <g:each in="${sampleList}" var="sample"> |
178 | | - <li> |
179 | | - <h4>${sample.id} ${sample.naturalId}</h4> |
180 | | - <g:each in="${sample.experiments}" var="experiment"> |
181 | | - <g:each in="${experiment.alignments}" var="alignment"> |
182 | | - <h5>MEME Motifs</h5> |
183 | | - <table class="table table-bordered meme-table" data-meme-url="${alignment.memeFile}"> |
184 | | - <tbody> |
185 | | - <g:if test="${alignment.motifCount}"> |
186 | | - <g:each in="${(0..<alignment.motifCount)}" var="n"> |
187 | | - <tr> |
188 | | - <td style='min-width:6em;line-height:1em' class="meme-id"></td> |
189 | | - <g:if test="${alignment.memeSvgForward}"> |
190 | | - <td class="meme-fig" style="width:350px"> |
191 | | - <i class="fa fa-spinner fa-spin"></i> |
192 | | - <div class="preview_box"> |
193 | | - <div class="preview_logo_box"> |
194 | | - <div class="meme-svg meme-svg-forward"> |
195 | | - <span class="meme-fig-url-forward" hidden="hidden">${alignment.memeSvgForward[n]}</span> |
196 | | - </div> |
197 | | - <div style="display:none" class="meme-svg meme-svg-reverse"> |
198 | | - <span class="meme-fig-url-reverse" hidden="hidden">${alignment.memeSvgReverse[n]}</span> |
199 | | - </div> |
200 | | - </div> |
201 | | - </div> |
202 | | - </td> |
203 | | - </g:if> |
204 | | - <g:else> |
205 | | - <td style="width:350px"> |
206 | | - </g:else> |
207 | | - <td class="composite" style="width:320px"> |
208 | | - <g:if test="${alignment.composite[n]}"> |
209 | | - <span class="composite-fig" data-composite-url="${alignment.composite[n]}"><i class="fa fa-spinner fa-spin"></i></span> |
210 | | - </g:if> |
211 | | - </td> |
212 | | - </tr> |
213 | | - </g:each> |
214 | | - </g:if> |
215 | | - </tbody> |
216 | | - </table> |
217 | | - <g:each in="${0..<alignment.featureAnalysis.size()}" var="m"> |
218 | | - <g:if test="${alignment.featureAnalysis[m]}"> |
219 | | - <h5>${alignment.featureAnalysis[m].title}</h5> |
220 | | - <div id="${alignment.id}-composite${m}" class="featureAnalysis"> |
221 | | - <i class="fa fa-spinner fa-spin"></i> |
222 | | - <span class="composite-url" hidden="hidden">${alignment.featureAnalysis[m].tabular}</span> |
223 | | - <span class="composite-plot-title" hidden="hidden">${alignment.featureAnalysis[m].plot_title}</span> |
224 | | - <span class="composite-xlabel" hidden="hidden">${alignment.featureAnalysis[m].xlabel}</span> |
225 | | - <div class="composite-fig" style="width: 512px; height: 300px"></div> |
226 | | - </div> |
227 | | - </g:if> |
228 | | - </g:each> |
229 | | - </g:each> |
230 | | - </g:each> |
231 | | - </li> |
232 | | - </g:each> |
233 | | - </ul> |
234 | | - </section> |
| 31 | + <g:each in="${modules}" var="module"> |
| 32 | + <g:render template="/report/${module}" model="['sampleList':sampleList]" /> |
| 33 | + </g:each> |
235 | 34 | </main> |
236 | 35 | <script> |
237 | 36 | $(function() { |
|
0 commit comments