Skip to content

Commit fcf54ce

Browse files
author
Yan Xu
committed
Add antiSmash viz to result page
1 parent 86c4dcf commit fcf54ce

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import React, { useState, useEffect } from 'react'
2+
import { Card, CardBody, Collapse } from 'reactstrap'
3+
import { StatsTable } from 'src/edge/common/Tables'
4+
import { Header } from 'src/edge/project/results/CardHeader'
5+
import config from 'src/config'
6+
7+
export const AntiSmash = (props) => {
8+
const [collapseCard, setCollapseCard] = useState(true)
9+
const url = config.APP.BASE_URI + '/projects/' + props.project.code + '/'
10+
11+
useEffect(() => {
12+
if (props.allExpand > 0) {
13+
setCollapseCard(false)
14+
}
15+
}, [props.allExpand])
16+
17+
useEffect(() => {
18+
if (props.allClosed > 0) {
19+
setCollapseCard(true)
20+
}
21+
}, [props.allClosed])
22+
23+
return (
24+
<Card className="workflow-result-card">
25+
<Header
26+
toggle={true}
27+
toggleParms={() => {
28+
setCollapseCard(!collapseCard)
29+
}}
30+
title={'AntiSmash Result'}
31+
collapseParms={collapseCard}
32+
/>
33+
<Collapse isOpen={!collapseCard}>
34+
<CardBody>
35+
{props.result.antiSmashHtml && (
36+
<>
37+
<a href={url + props.result.antiSmashHtml} target="_blank" rel="noreferrer">
38+
[full window view]
39+
</a>
40+
<br></br>
41+
<div key={'metagenomics-antisMash-iframe'}>
42+
<iframe
43+
src={url + props.result.antiSmashHtml}
44+
className="edge-iframe"
45+
title={'AntiSmash Result Viewer'}
46+
/>
47+
</div>
48+
<br></br>
49+
</>
50+
)}
51+
</CardBody>
52+
</Collapse>
53+
</Card>
54+
)
55+
}

webapp/client/src/workflows/project/ProjectResult.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import ProjectOutputs from '/src/edge/project/results/ProjectOutputs'
77
import { RunFaQCs } from '../metagenomics/results/RunFaQCs'
88
import { Assembly } from '../metagenomics/results/Assembly'
99
import { Phylogeny } from '../metagenomics/results/Phylogeny'
10+
import { AntiSmash } from '../metagenomics/results/AntiSmash'
1011

1112
const ProjectResult = (props) => {
1213
const [project, setProject] = useState()
@@ -240,6 +241,15 @@ const ProjectResult = (props) => {
240241
allClosed={allClosed}
241242
/>
242243
)}
244+
{project.type === 'antiSmash' && (
245+
<AntiSmash
246+
result={result}
247+
project={project}
248+
userType={type}
249+
allExpand={allExpand}
250+
allClosed={allClosed}
251+
/>
252+
)}
243253
</>
244254
)}
245255
{outputs && (

webapp/server/utils/workflow.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ const generateWorkflowResult = (proj) => {
176176
if (fs.existsSync(treeCdsHtml)) {
177177
result.treeCdsHtml = `${workflowList[projectConf.workflow.name].outdir}/SNPphyloTree.cds.html`;
178178
}
179+
} else if (projectConf.workflow.name === 'antiSmash') {
180+
// antiSMASH HTML output
181+
const antiSmashHtml = `${outdir}/output/index.html`;
182+
if (fs.existsSync(antiSmashHtml)) {
183+
result.antiSmashHtml = `${workflowList[projectConf.workflow.name].outdir}/output/index.html`;
184+
}
179185
}
180186

181187
fs.writeFileSync(resultJson, JSON.stringify(result));

0 commit comments

Comments
 (0)