gramene-search 1.2.81 → 1.2.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gramene-search",
3
- "version": "1.2.81",
3
+ "version": "1.2.83",
4
4
  "description": "search wrapper for gramene",
5
5
  "source": "src/index.js",
6
6
  "main": "dist/index.js",
@@ -27,6 +27,7 @@
27
27
  "formik": "^3.0.0-next.8",
28
28
  "gramene-bins-client": "^2.3.3",
29
29
  "gramene-dbxrefs": "^3.0.11",
30
+ "gramene-efp-browser": "^1.0.4",
30
31
  "gramene-genetree-vis": "^4.1.18",
31
32
  "gramene-mdview": "^2.0.6",
32
33
  "gramene-search-vis": "^4.1.12",
@@ -56,7 +56,7 @@ const PanLink = (props) => {
56
56
 
57
57
  const ClosestOrthologCmp = (props) =>
58
58
  {
59
- let id, taxon_id, name, desc, species, className;
59
+ let id, taxon_id, name, desc, species, className, identity;
60
60
  const gene = props.gene;
61
61
 
62
62
  if (gene.closest_rep_id) {
@@ -66,6 +66,7 @@ const ClosestOrthologCmp = (props) =>
66
66
  id = gene.closest_rep_id;
67
67
  taxon_id = gene.closest_rep_taxon_id;
68
68
  className = "closest-ortholog";
69
+ identity = gene.closest_rep_identity || 0;
69
70
  }
70
71
  else if (gene.model_rep_id) {
71
72
  name = gene.model_rep_name || gene.model_rep_id;
@@ -74,6 +75,7 @@ const ClosestOrthologCmp = (props) =>
74
75
  id = gene.model_rep_id;
75
76
  taxon_id = gene.model_rep_taxon_id;
76
77
  className = "model-ortholog";
78
+ identity = gene.model_rep_identity || 0;
77
79
  }
78
80
  var isZm = new RegExp(/^Zm00001e/);
79
81
  if (isZm.test(desc)) {
@@ -91,6 +93,7 @@ const ClosestOrthologCmp = (props) =>
91
93
  }))
92
94
  }}>
93
95
  <div className="gene-species">{species}</div>
96
+ {identity > 0 && <div className="rep-identity">{Math.round(identity*100)}</div>}
94
97
  <h3 className="gene-id">{name}</h3>
95
98
  <p>{desc}</p>
96
99
  </div>
@@ -1,66 +1,12 @@
1
1
  import React, { useState, useEffect } from 'react'
2
2
  import {connect} from "redux-bundler-react";
3
3
  import {Tabs, Tab} from 'react-bootstrap';
4
-
5
- const ImageLoader = props => {
6
- const [loading, setLoading] = useState(true);
7
-
8
- useEffect(() => {
9
- const image = new Image();
10
- image.src = props.url;
11
- image.onload = () => {
12
- setLoading(false);
13
- };
14
- }, []);
15
-
16
- return (
17
- <div className="BAR-container">
18
- {loading && <img src="https://www.sorghumbase.org/static/images/dna_spinner.svg" alt="Loading..." />}
19
- {!loading && <img style={{'max-width':'100%'}} src={props.url} />}
20
- </div>
21
- );
22
- }
4
+ import BAR, {haveBAR} from "gramene-efp-browser";
23
5
 
24
6
  const Detail = props => {
25
7
  const gene = props.geneDocs[props.searchResult.id];
26
8
  let paralogs_url;
27
- let efp_browser = {
28
- show: false
29
- };
30
9
  let gene_url = `/static/atlasWidget.html?reference=0&genes=${gene.atlas_id || gene._id}`;
31
- if (gene.system_name === 'sorghum_bicolor') {
32
- efp_browser.show = true;
33
- efp_browser.options = [
34
- {value: 'Developmental_Atlas', label: 'Developmental Atlas'},
35
- {value: 'Stress_Atlas', label: 'Stress Atlas'}
36
- // {value: 'Atlas_w_BS_Cells', label: 'Atlas w BS Cells'},
37
- // {value: 'Low_Phosphorus', label: 'Low Phosphorus'},
38
- // {value: 'Nitrogen_Use_Efficiency', label: 'Nitrogen Use Efficiency'},
39
- // {value: 'Vascularization_and_Internode', label: 'Vascularization and Internode'}
40
- ];
41
- efp_browser.gene = gene._id.replace('SORBI_3','Sobic.');
42
- efp_browser.path = `https://bar.utoronto.ca/api/efp_image/efp_sorghum`;
43
- efp_browser.bar = 'https://bar.utoronto.ca/~asher/efp_sorghum/cgi-bin/efpWeb.cgi?';
44
- // efp_browser = `https://bar.utoronto.ca/api/efp_image/efp_sorghum/Stress_Atlas/Absolute/${gene._id.replace('SORBI_3','Sobic.')}`
45
- // efp_browser = `https://bar.utoronto.ca/api/efp_image/efp_sorghum/`
46
- // efp_browser = `https://bar.utoronto.ca/~asher/efp_sorghum/cgi-bin/efpWeb.cgi?dataSource=Developmental_Atlas&mode=Absolute&primaryGene=${gene._id.replace('SORBI_3','Sobic.')}`
47
- }
48
- if (efp_browser.show) {
49
- const [selectedStudy, setSelectedStudy] = useState(efp_browser.options[0].value);
50
- const handleSelectChange = (event) => {
51
- setSelectedStudy(event.target.value);
52
- };
53
- efp_browser.content = (
54
- <div>
55
- <label>Select a study:</label>
56
- <select value={selectedStudy} onChange={handleSelectChange}>
57
- {efp_browser.options.map(o => <option value={o.value}>{o.label}</option>)}
58
- </select><br/>
59
- <ImageLoader url={`${efp_browser.path}/${selectedStudy}/Absolute/${efp_browser.gene}`}/>
60
- <a href={`${efp_browser.bar}?dataSource=${selectedStudy}&mode=Absolute&primaryGene=${efp_browser.gene}`}>Powered by <img src="https://bar.utoronto.ca/bbc_logo_small.gif"/> BAR Webservices</a>
61
- </div>
62
- )
63
- }
64
10
 
65
11
  if (props.paralogExpression && props.paralogExpression[gene._id]) {
66
12
  let paralogs = props.paralogExpression[gene._id].map(p => p.atlas_id || p.id);
@@ -72,13 +18,13 @@ const Detail = props => {
72
18
  props.doRequestParalogExpression(gene._id)
73
19
  }
74
20
  return <Tabs>
75
- <Tab eventKey="gene" title="All Studies">
21
+ {haveBAR(gene) && <Tab tabClassName="eFP" eventKey="eFP" title="eFP Browser"><BAR gene={gene}/></Tab>}
22
+ <Tab tabClassName="gxa" eventKey="gene" title="All Studies">
76
23
  <iframe src={gene_url} frameBorder="0" width="100%" height="500px"></iframe>
77
24
  </Tab>
78
- {paralogs_url && <Tab eventKey="paralogs" title="Reference Study (all paralogs)">
25
+ {paralogs_url && <Tab tabClassName="gxa" eventKey="paralogs" title="Reference Study (all paralogs)">
79
26
  <iframe src={paralogs_url} frameBorder="0" width="100%" height="500px"></iframe>
80
27
  </Tab>}
81
- {efp_browser.show && <Tab eventKey="eFP" title="eFP browser (BAR)">{efp_browser.content}</Tab>}
82
28
  </Tabs>
83
29
  };
84
30
 
@@ -189,6 +189,37 @@
189
189
  color: darkblue;
190
190
  }
191
191
 
192
+ .rep-identity {
193
+ float: right;
194
+ padding-right: 10px;
195
+ padding-top: 5px;
196
+ font-style: italic;
197
+ }
198
+ .rep-identity::after {
199
+ content: "% identity";
200
+ }
201
+ .eFP::before {
202
+ content: url("../../static/images/BAR-logo.png");
203
+ padding-right:5px;
204
+ position: relative;
205
+ top: 5px;
206
+ }
207
+ .eFP::after {
208
+ content: 'New!';
209
+ color: red;
210
+ padding-left:2px;
211
+ font-weight: bold;
212
+ font-style: italic;
213
+ font-size: x-small;
214
+ line-height: normal;
215
+ vertical-align: super;
216
+ }
217
+ .gxa::before {
218
+ content: url("../../static/images/expression-atlas-logo.png");
219
+ padding-right:5px;
220
+ position: relative;
221
+ top: 5px;
222
+ }
192
223
  .gene-search-pic-sugg {
193
224
  width: 100%;
194
225
  height: 200px;
Binary file