-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgene-info.js
110 lines (104 loc) · 2.78 KB
/
gene-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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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 GeneInfo extends Component {
// display component
render() {
if (!this.props.gene)
return <></>;
const gene = this.props.gene;
const name = gene.gene_symbol;
const info = this.props.geneInfo || {};
const bodyContents = [
[
'aliases',
tooltipText['gene_aliases'],
info.aliases && info.aliases.length ? info.aliases.join(', ') : ''
],
[
'HGNC id',
tooltipText['gene_id'],
<a
href={
'https://www.genenames.org/data/gene-symbol-report/#!/hgnc_id/' +
gene.gene_code
}
>
{gene.gene_code}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
[
'Entrez id',
tooltipText['gene_entrez_id'],
<a href={'https://www.ncbi.nlm.nih.gov/gene/' + info.entrez}>
{info.entrez}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
[
'Ensembl id',
tooltipText['gene_ensembl_id'],
<a
href={
'http://useast.ensembl.org/Homo_sapiens/Gene/Summary?g=' +
info.ensembl
}
>
{info.ensembl}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
[
'Uniprot id',
tooltipText['gene_uniprot_id'],
<a href={'https://www.uniprot.org/uniprot/' + info.uniprot}>
{info.uniprot}
<FontAwesomeIcon
className='external_link_icon'
icon={faExternalLinkAlt}
size='xs'
/>
</a>
],
['associations', tooltipText['gene_associations'], gene.associations],
[
'mean prediction',
tooltipText['gene_mean_prediction'],
toFixed(gene.mean_prediction) + '%',
toFixed(gene.mean_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>
);
}
}