-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgene-prediction-info.js
90 lines (85 loc) · 2.39 KB
/
gene-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
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 GenePredictionInfo extends Component {
// display component
render() {
if (!this.props.gene || !this.props.genePrediction)
return <></>;
const genePrediction = this.props.genePrediction;
const name = genePrediction.disease_name;
const info = (this.props.genePredictionInfo || {}).xref || {};
const bodyContents = [
[
'Dis. Ont. id',
tooltipText['disease_id'],
<a
href={
'http://www.disease-ontology.org/?id=' + genePrediction.disease_code
}
>
{genePrediction.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'],
genePrediction.pathophysiology
],
['status', tooltipText['disease_status'], genePrediction.status],
[
'other assoc',
tooltipText['disease_other_associations'],
genePrediction.other_associations
],
[
'prediction',
tooltipText['disease_prediction'],
toFixed(genePrediction.prediction) + '%',
toFixed(genePrediction.prediction / 100, 3)
]
];
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>
);
}
}