-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfeature-prediction-info.js
96 lines (91 loc) · 2.49 KB
/
feature-prediction-info.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import React from 'react';
import { Component } from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';
import { toFixed } from 'hetio-frontend-components';
import { InfoTable } from 'hetio-frontend-components';
import tooltipText from './tooltip-text.json';
export class FeaturePredictionInfo extends Component {
// display component
render() {
if (!this.props.feature || !this.props.featurePrediction)
return <></>;
const featurePrediction = this.props.featurePrediction;
const name = featurePrediction.disease_name;
const info = (this.props.featurePredictionInfo || {}).xref || {};
const bodyContents = [
[
'Dis. Ont. id',
tooltipText['disease_id'],
<a
href={
'http://www.disease-ontology.org/?id=' +
featurePrediction.disease_code
}
>
{featurePrediction.disease_code}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
[
'EFO id',
tooltipText['disease_efo_id'],
<a
href={
'https://www.ebi.ac.uk/ols/ontologies/EFO/terms?obo_id=EFO:' +
info.EFO
}
>
{info.EFO}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
['UMLS id', tooltipText['disease_umls_id'], info.UMLS_CUI],
[
'pathophysiology',
tooltipText['disease_pathophysiology'],
featurePrediction.pathophysiology
],
[
'associations',
tooltipText['disease_associations'],
featurePrediction.associations
],
[
'auroc',
tooltipText['auroc'],
toFixed(featurePrediction.auroc * 100) + '%',
featurePrediction.auroc
],
[
'model auroc',
tooltipText['model_auroc'],
toFixed(featurePrediction.model_auroc * 100) + '%',
featurePrediction.model_auroc
]
];
return (
<div
className='app_section'
style={{ display: this.props.visible ? 'block' : 'none' }}
>
<hr />
<p className='left'>
Info about{' '}
<b>
<i>{name}</i>
</b>
</p>
<InfoTable bodyContents={bodyContents} />
</div>
);
}
}