gramene-search 1.2.86 → 1.2.88

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.
Files changed (104) hide show
  1. package/.parcel-cache/2126881b633272fa.txt +2 -2
  2. package/.parcel-cache/425346ba6a54d932 +0 -0
  3. package/.parcel-cache/878e3ffbad677982 +0 -0
  4. package/.parcel-cache/cdecf11601322051 +0 -0
  5. package/.parcel-cache/data.mdb +0 -0
  6. package/.parcel-cache/lock.mdb +0 -0
  7. package/dist/index.css +12 -0
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.js +248 -53
  10. package/dist/index.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/bundles/docs.js +50 -0
  13. package/src/components/results/details/Sequences.js +129 -26
  14. package/src/components/results/details/sequences.css +11 -0
  15. package/src/demo.js +1 -1
  16. package/dist/static/atlasWidget.html +0 -26
  17. package/dist/static/gramene-dalliance/css/bootstrap-scoped.css +0 -4511
  18. package/dist/static/gramene-dalliance/css/dalliance-scoped.css +0 -456
  19. package/dist/static/gramene-dalliance/css/font-awesome.min.css +0 -4
  20. package/dist/static/gramene-dalliance/dalliance-all.js +0 -15
  21. package/dist/static/gramene-dalliance/fonts/FontAwesome.otf +0 -0
  22. package/dist/static/gramene-dalliance/fonts/fontawesome-webfont.eot +0 -0
  23. package/dist/static/gramene-dalliance/fonts/fontawesome-webfont.svg +0 -414
  24. package/dist/static/gramene-dalliance/fonts/fontawesome-webfont.ttf +0 -0
  25. package/dist/static/gramene-dalliance/fonts/fontawesome-webfont.woff +0 -0
  26. package/dist/static/gramene-dalliance/img/README.md +0 -3
  27. package/dist/static/gramene-dalliance/img/glyphicons-halflings.png +0 -0
  28. package/dist/static/gramene-dalliance/img/loader.gif +0 -0
  29. package/dist/static/gramene-dalliance/img/spinner_16.gif +0 -0
  30. package/dist/static/gramene-dalliance/img/spinner_192.gif +0 -0
  31. package/dist/static/gramene-dalliance/img/spinner_24.gif +0 -0
  32. package/dist/static/gramene-dalliance/img/spinner_32.gif +0 -0
  33. package/dist/static/gramene-dalliance/img/spinner_48.gif +0 -0
  34. package/dist/static/gramene-dalliance/img/spinner_96.gif +0 -0
  35. package/dist/static/gramene-dalliance/worker-all.js +0 -4
  36. package/dist/static/icons/android-chrome-192x192.png +0 -0
  37. package/dist/static/icons/apple-touch-icon-114x114.png +0 -0
  38. package/dist/static/icons/apple-touch-icon-120x120.png +0 -0
  39. package/dist/static/icons/apple-touch-icon-144x144.png +0 -0
  40. package/dist/static/icons/apple-touch-icon-152x152.png +0 -0
  41. package/dist/static/icons/apple-touch-icon-180x180.png +0 -0
  42. package/dist/static/icons/apple-touch-icon-57x57.png +0 -0
  43. package/dist/static/icons/apple-touch-icon-60x60.png +0 -0
  44. package/dist/static/icons/apple-touch-icon-72x72.png +0 -0
  45. package/dist/static/icons/apple-touch-icon-76x76.png +0 -0
  46. package/dist/static/icons/apple-touch-icon-precomposed.png +0 -0
  47. package/dist/static/icons/apple-touch-icon.png +0 -0
  48. package/dist/static/icons/favicon-16x16.png +0 -0
  49. package/dist/static/icons/favicon-32x32.png +0 -0
  50. package/dist/static/icons/favicon-96x96.png +0 -0
  51. package/dist/static/icons/favicon.ico +0 -0
  52. package/dist/static/images/e_bang.png +0 -0
  53. package/dist/static/images/genetree.png +0 -0
  54. package/dist/static/images/gramene_logo.svg +0 -69
  55. package/dist/static/images/gramene_logo_white_letters.svg +0 -69
  56. package/dist/static/images/grapevine_logo.svg +0 -70
  57. package/dist/static/images/grapevine_logo_white_letters.svg +0 -70
  58. package/dist/static/images/logo.svg +0 -71
  59. package/dist/static/images/main_logo.svg +0 -70
  60. package/dist/static/images/main_logo_white_letters.svg +0 -70
  61. package/dist/static/images/maize_logo.svg +0 -70
  62. package/dist/static/images/maize_logo_white_letters.svg +0 -70
  63. package/dist/static/images/oryza_logo.svg +0 -70
  64. package/dist/static/images/oryza_logo_white_letters.svg +0 -70
  65. package/dist/static/images/results.png +0 -0
  66. package/dist/static/images/sorghum_logo.svg +0 -2667
  67. package/dist/static/images/suggestions.png +0 -0
  68. package/dist/static/images/welcome/BLAST.png +0 -0
  69. package/dist/static/images/welcome/Biomart250.png +0 -0
  70. package/dist/static/images/welcome/ExpressionAtlas.png +0 -0
  71. package/dist/static/images/welcome/TrackHub.png +0 -0
  72. package/dist/static/images/welcome/archive.jpg +0 -0
  73. package/dist/static/images/welcome/climtools.png +0 -0
  74. package/dist/static/images/welcome/curated.png +0 -0
  75. package/dist/static/images/welcome/download.png +0 -0
  76. package/dist/static/images/welcome/ensemblgramene.png +0 -0
  77. package/dist/static/images/welcome/gene_view.png +0 -0
  78. package/dist/static/images/welcome/genomes.png +0 -0
  79. package/dist/static/images/welcome/maize/NAM.png +0 -0
  80. package/dist/static/images/welcome/maize/lox-align-overview.png +0 -0
  81. package/dist/static/images/welcome/maize/lox-expression.png +0 -0
  82. package/dist/static/images/welcome/maize/lox-homologs.png +0 -0
  83. package/dist/static/images/welcome/maize/lox-malign.png +0 -0
  84. package/dist/static/images/welcome/maize/lox-neighborhood.png +0 -0
  85. package/dist/static/images/welcome/maize/lox-pathways.png +0 -0
  86. package/dist/static/images/welcome/maize/lox-suggestions.png +0 -0
  87. package/dist/static/images/welcome/maize/lox3-neighborhood.png +0 -0
  88. package/dist/static/images/welcome/noun_553934.png +0 -0
  89. package/dist/static/images/welcome/noun_553934.svg +0 -1
  90. package/dist/static/images/welcome/pangenomes.svg +0 -1
  91. package/dist/static/images/welcome/pathways.png +0 -0
  92. package/dist/static/images/welcome/plantReactome.svg +0 -4
  93. package/dist/static/images/welcome/suggestions.png +0 -0
  94. package/dist/static/images/welcome/tools.png +0 -0
  95. package/dist/static/images/welcome/vis.png +0 -0
  96. package/dist/static/images/yeast_logo.png +0 -0
  97. package/dist/static/images/yeast_logo.svg +0 -6469
  98. package/dist/static/socialMedia.html +0 -8
  99. package/dist/static/style.css +0 -69
  100. /package/.parcel-cache/{b4cc8a95482d8318 → 6a03c5c4d917ff29} +0 -0
  101. /package/.parcel-cache/{328d87ee8e027da9 → 83140fbf67e1ff3e} +0 -0
  102. /package/.parcel-cache/{37a1f6034ac61c5a → deaa0d88d4cd68bc} +0 -0
  103. /package/.parcel-cache/{06faa2578dc5a59b → ecb15b348cd84f68} +0 -0
  104. /package/.parcel-cache/{f005e65af5a9c51c → ef442219bd702b1c} +0 -0
@@ -1,2 +1,2 @@
1
- 248900716
2
- 1704819222968880000
1
+ 287650791
2
+ 1704951606436374000
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/index.css CHANGED
@@ -283,6 +283,18 @@ code.fasta {
283
283
  direction: rtl;
284
284
  }
285
285
 
286
+ .fasta-key {
287
+ cursor: default;
288
+ color: #555;
289
+ background: none;
290
+ border: none;
291
+ font-family: monospace;
292
+ font-size: 10pt;
293
+ position: absolute;
294
+ top: 9px;
295
+ right: 30px;
296
+ }
297
+
286
298
  .copy-button {
287
299
  cursor: pointer;
288
300
  color: #555;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/components/styles.css","node_modules/gramene-search-vis/styles/main.less","node_modules/gramene-search-vis/styles/taxonomy.less","src/components/results/details/sequences.css","src/components/results/details/tree-view.css","node_modules/react-simple-tree-menu/dist/main.css","node_modules/react-simple-tree-menu/src/sass/main.scss","node_modules/gramene-genetree-vis/src/styles/tree.less","node_modules/gramene-genetree-vis/src/styles/msa.less","src/components/results/genes.css"],"sourcesContent":[".gramene-sidebar {\n position: fixed;\n background-color: dimgray;\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 8px;\n max-width: 16.67%;\n}\n.gramene-filter-container {\n background-color: #cfb5e6;\n padding-left: 4px;\n padding-bottom: 4px;\n}\n.gramene-filter {\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n background-color: white;\n font-size: small;\n}\n.gramene-filter span:hover {\n font-weight:bolder;\n}\n.gramene-filter-AND {\n background-color: #ffcd82;\n}\n.gramene-filter-OR {\n background-color: #c5eeb9;\n}\n.gramene-filter-NOT {\n border-left-color: #ff5354;\n border-left-style: inset;\n border-left-width: 4px;\n padding-left: 4px;\n}\n.gramene-filter-operation {\n text-align: center;\n font-style: italic;\n}\n.gramene-filter-marked {\n font-weight: bolder;\n /*background-color: #feff96;*/\n}\n.gramene-filter-menu ul {\n border-top-style: solid;\n border-top-width: 2px;\n padding-left: 0;\n}\n.gramene-filter-menu li {\n display: block;\n cursor: pointer;\n padding-left: 15px;\n}\n.gramene-filter-menu li:hover {\n background-color: #feff96;\n}\n\n.gramene-view-container {\n background-color: lightblue;\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n}\n.gramene-view {\n padding-left: 0px;\n padding-right: 10px;\n margin-bottom: 0;\n background-color: white;\n}\n.gramene-view li {\n display: block;\n cursor: pointer;\n padding-left: 5px;\n border-left-style: inset;\n border-left-width: 8px;\n margin-bottom: 2px;\n}\n\n.gramene-view-on {\n border-left-color: #40a0ff;\n font-weight: bold;\n}\n.gramene-view-off {\n border-left-color: #ff6d68;\n color: grey;\n}\n.gramene-view-disabled {\n color: darkgray;\n border-left-color: #efefef;\n cursor: default!important;\n}\n#gramene-suggestion button {\n border-radius: .6rem;\n line-height: 1;\n}\n#gramene-suggestion button:focus {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n",".taxogenomic-vis {\n @import 'taxonomy';\n}","@import 'colors';\n\n.gramene-search-vis {\n -webkit-user-select: none;\n cursor: pointer;\n\n canvas {\n position: absolute;\n }\n\n > * {\n display: inline;\n }\n\n text {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n fill: gray;\n\n /* since font weight transition is not smooth, emulate\n bold font with text stroke, and transition opacity. */\n stroke: @gramene-darkgreen;\n stroke-opacity: 0;\n stroke-width: 0.5px;\n user-select: none;\n }\n\n text::selection {\n background: none;\n }\n\n .taxonomy * {\n transition: fill 200ms ease-in-out,\n stroke-opacity 200ms ease-in-out; /*,\n transform 200ms ease-in-out;*/\n }\n\n .clade {\n .results-count {\n font-size: 10px;\n }\n\n .node circle {\n stroke: @gramene-darkgreen;\n stroke-width: 1px; // This is referenced in Edge.js\n fill: @gramene-offwhite;\n }\n\n .edge rect {\n fill: #cccccc;\n }\n\n //\n //.genome .interaction-helper {\n // stroke-opacity: 0;\n // fill-opacity: 0;\n // stroke: @gramene-darkgreen;\n // stroke-width: 1.5px;\n //}\n\n // color the nodes above the hovered node\n // (the highlight class is added dynamically\n // in code)\n .clade.highlight {\n > .node > circle,\n > .edge > rect {\n fill: @gramene-orange;\n }\n > .node-label text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n\n }\n\n // color the clade underneath the hovered node.\n .node:hover,\n .edge:hover {\n > circle,\n > rect,\n ~ .node > circle,\n ~ .clade .edge > rect,\n ~ .clade .node > circle {\n fill: @gramene-orange;\n }\n }\n\n .node:hover,\n .edge:hover {\n ~ .node-label text,\n ~ .clade text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n }\n\n .node-label:hover text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n\n .bin, .full-region {\n transition: none;\n stroke: @gramene-darkgreen;\n stroke-width: 0;\n shape-rendering: crispEdges;\n }\n\n .bin.selected {\n fill: @gramene-red;\n }\n\n .bin:hover {\n fill: @gramene-darkgreen;\n }\n\n .full-region.selected {\n stroke-width: 1px;\n stroke: @gramene-red;\n }\n\n .full-region:hover {\n stroke-width: 1px;\n stroke: @gramene-darkgreen;\n }\n\n .species-background {\n fill: none;\n }\n\n .node:hover ~ .species-background,\n .edge:hover ~ .species-background,\n .node:hover ~ .clade .species-background,\n .edge:hover ~ .clade .species-background,\n .clade.highlight > .species-background {\n fill: lighten(@gramene-orange, 20%);\n }\n\n }\n}\n","/* styles.css */\n.fasta-container {\n position: relative;\n padding: 2ch;\n background-color: #fcfffd;\n border-color: #557b74;\n border-style: dashed;\n line-height: 0.925em;\n /*margin: auto; !* Center the container *!*/\n}\n.styled-span {\n display: flex;\n align-items: center;\n text-align: center;\n}\n.vertical-line {\n flex-grow: 1;\n height: 20px;\n background-color: black;\n}\n.horizontal-line {\n width: 57px;\n height: 3px;\n background-color: black;\n margin: 0 0px;\n}\ncode.fasta {\n white-space: pre-wrap;\n color: #595959;\n}\n.header {\n color: black;\n}\n.upstream {\n color: #80a0a0;\n}\n.downstream {\n color: #80a0a0;\n}\n.intron {\n color: #aaaaaa;\n}\n.utr5 {\n background-color: #aaccaf;\n}\n.utr5-other {\n background-color: #cfe1d2;\n}\n.cds {\n background-color: #a7b4d3;\n}\n.cds-other {\n background-color: #d0d8e6;\n}\n.utr3 {\n background-color: #c5a3bf;\n}\n.utr3-other {\n background-color: #dcc9d9;\n}\n.reverse-slide {\n direction: rtl;\n}\n.copy-button {\n position: absolute;\n top: 3px;\n right: -5px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1.5rem;\n color: #555;\n}\n.notification {\n position: absolute;\n top: 0;\n right: 0;\n background-color: #050505;\n color: #fff;\n padding: 5px;\n z-index: 999;\n font-weight: bold;\n font-style: italic;\n font-size: smaller;\n}","/*\n\n<classNamePrefix>-root\n\nThe outer container\n\n*/\n.tree-view-root {\n}\n\n/*\n\n<classNamePrefix>-root\n\nThe outer container for a single node\n\n*/\n.tree-view-node {\n margin-left: 10px;\n}\n\n\n/*\n\n<classNamePrefix>-node-collapse-toggle.collapse-spacer\n\nUsed to provide spacing when a parent node has no children\n\n*/\n.tree-view-node-collapse-toggle.collapse-spacer {\n width: 14px;\n display: inline-block;\n}\n\n/*\n<classNamePrefix>-node-collapse-toggle.<expandIconClass>\n\nThe class to use for the icon that expands a collapsed parent node\n\n*/\n\n\n/*\n\n<classNamePrefix>-node-collapse-toggle.<collapseIconClass>\n\nThe class to use for the icon that collapses an expanded parent node\n\n*/\n\n.tree-view-node-collapse-toggle {\n margin-right: 3px;\n width: 14px;\n}\n\n/*\n\n<classNamePrefix>-node-label\n\n*/\n.tree-view-node-label {\n font-size: smaller;\n margin-left: 3px;\n padding: 1px;\n border: 1px solid #fff;\n}\n\n/*\n\n<classNamePrefix>-node-label.selected\n\n*/\n.tree-view-node-label.selected {\n border: 1px solid #003f81;\n border-radius: 3px;\n background-color: #808080;\n}\n\n/*\n\n<classNamePrefix>-node-checkbox\n\nThe class for a node checkbox\n\n*/\n\n.tree-view-node-checkbox {}\n\n/*\n\n<classNamePrefix>-node-children\n\nThe class for the element that wraps a nodes children (if any exist)\n\n*/\n\n.tree-view-node-children {}\n\n",".rstm-toggle-icon {\n display: inline-block; }\n .rstm-toggle-icon-symbol {\n width: 2rem;\n height: 2rem;\n text-align: center;\n line-height: 2rem; }\n\n.rstm-tree-item-group {\n list-style-type: none;\n padding-left: 0;\n border-top: 1px solid #ccc;\n text-align: left;\n width: 100%; }\n\n.rstm-tree-item {\n padding: 0.75rem 1rem;\n cursor: pointer;\n color: #333;\n background: none;\n border-bottom: 1px solid #ccc;\n box-shadow: none;\n z-index: unset;\n position: relative; }\n .rstm-tree-item--active {\n color: white;\n background: #179ed3;\n border-bottom: none; }\n .rstm-tree-item--focused {\n box-shadow: 0 0 5px 0 #222;\n z-index: 999; }\n\n.rstm-search {\n padding: 1rem 1.5rem;\n border: none;\n width: 100%; }\n",null,"@transition_time: 20ms;\n\n/* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n@hover_scale_factor: 2;\n@hover_stroke_width: 2;\n@collapsed_node_stroke_width: 1;\n\n@default_node_fill: #fff;\n@default_node_stroke: #777;\n\n@ortholog_stroke_color: orange;\n@paralog_stroke_color: green;\n@representative_fill_color: @ortholog_stroke_color;\n@self_color: red;\n\n@speciation_color: #000080;\n@duplication_color: #cd0000;\n\n@font_size: 11px;\n@font_weight_highlight: bolder;\n\n@invisible: 0;\n@visible: 1;\n\n.display-mode {\n .btn-toolbar {\n position: absolute;\n padding-left: 10px\n }\n}\n.tooltip-inner {\n max-width : 400px;\n}\n.genetree-vis {\n .node, .edge {\n cursor: pointer;\n }\n\n .tree-wrapper {\n /* transitions for mouse hover, etc, interactions */\n * {\n transition: all @transition_time ease-in-out;\n }\n\n /* transitions for expanding/contracting clades */\n .clade {\n transition: transform @transition_time ease-in-out;\n\n .edge-rect {\n transition: scaleY @transition_time ease-in-out, scaleX @transition_time ease-in-out, transform @transition_time ease-in-out;\n }\n }\n }\n\n .interaction-helper {\n opacity: @invisible;\n }\n\n .node circle {\n stroke: @default_node_stroke;\n fill: @default_node_fill;\n }\n\n .speciation rect {\n fill: @speciation_color;\n }\n\n .duplication rect {\n fill: @duplication_color;\n }\n\n .node:hover, .edge:hover {\n .internal,\n .gene circle,\n ~ .clade .node rect,\n + .node rect {\n transform: scale(@hover_scale_factor);\n }\n\n ~ .clade .interaction-rect {\n opacity: @visible;\n fill-opacity: @visible;\n }\n\n ~ .clade circle,\n + .node circle,\n .collapsed path,\n ~ .clade .collapsed path,\n + .node .collapsed path {\n stroke-width: @hover_stroke_width;\n }\n\n ~ .clade text, text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .node {\n .gene.ortholog_one2one circle,\n .gene.ortholog_one2many circle,\n .gene.ortholog_many2many circle {\n stroke: @ortholog_stroke_color;\n }\n\n .gene.within_species_paralog circle {\n stroke: @paralog_stroke_color;\n }\n\n .gene.self {\n circle {\n stroke: @self_color;\n fill: @self_color;\n }\n text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .gene.representative circle {\n stroke: @ortholog_stroke_color;\n fill: @representative_fill_color;\n }\n\n text {\n font-size: @font_size;\n fill-opacity: @visible;\n text-anchor: start;\n }\n }\n\n .collapsed {\n path {\n stroke-width: @collapsed_node_stroke_width;\n }\n }\n\n .domains rect {\n cursor: pointer;\n stroke-opacity: 0\n }\n\n .domains rect:hover {\n cursor: pointer;\n stroke-opacity: 1.0\n }\n @transition_time: 20ms;\n\n /* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n @hover_scale_factor: 2;\n @hover_stroke_width: 2;\n @collapsed_node_stroke_width: 1;\n\n @default_node_fill: #fff;\n @default_node_stroke: #777;\n\n @ortholog_stroke_color: orange;\n @paralog_stroke_color: green;\n @representative_fill_color: @ortholog_stroke_color;\n @self_color: red;\n\n @speciation_color: #000080;\n @duplication_color: #cd0000;\n\n @font_size: 11px;\n @font_weight_highlight: bolder;\n\n @invisible: 0;\n @visible: 1;\n\n}\n\n.popover-title .tooltip-title-button {\n margin-top: -4px !important;\n margin-right: 4px !important;\n}\n\n.msa-slider {\n position: relative;\n padding-top: 10px;\n padding-bottom: 0px;\n margin-bottom: -10px;\n}\n\n.resize-drag {\n background: rgba(0, 0, 0, 0.0);\n border: 4px solid #7c8383;\n color: red;\n font-size: 1px;\n font-family: sans-serif;\n border-radius: 8px;\n\n /* This makes things *much* easier */\n box-sizing: border-box;\n}\n\n.resize-container {\n width: 100%;\n height: 100%;\n}\n",".MSAlignments-wrapper {\n overflow-x: scroll;\n overflow-y: hidden;\n}\n.clustal {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.clustal .A,\n.clustal .I,\n.clustal .L,\n.clustal .M,\n.clustal .F,\n.clustal .W,\n.clustal .V {\n background-color: #80a0f0;\n}\n.clustal .R,\n.clustal .K {\n background-color: #f01505;\n color: #fcff89;\n}\n.clustal .N,\n.clustal .Q,\n.clustal .S,\n.clustal .T {\n background-color: #00ff00;\n}\n.clustal .D,\n.clustal .E {\n background-color: #c048c0;\n color: #fcff89;\n}\n.clustal .C {\n background-color: #f08080;\n}\n.clustal .G {\n background-color: #f09048;\n}\n.clustal .Y\n.clustal .H {\n background-color: #15a4a4;\n}\n.clustal .P {\n background-color: #ffff00;\n}\n.clustal .B,\n.clustal .X,\n.clustal .Z {\n background-color: #ffffff;\n}\n.clustal .gap {\n color: #ccc;\n}\n.zappo {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.zappo .A,\n.zappo .I,\n.zappo .L,\n.zappo .M,\n.zappo .V {\n background-color: #ffafaf;\n}\n.zappo .R,\n.zappo .H,\n.zappo .K {\n background-color: #6464ff;\n color: #fcff89;\n}\n.zappo .N,\n.zappo .Q,\n.zappo .S,\n.zappo .T {\n background-color: #00ff00;\n}\n.zappo .D,\n.zappo .E {\n background-color: #ff0000;\n}\n.zappo .C {\n background-color: #ffff00;\n}\n.zappo .G,\n.zappo .P {\n background-color: #ff00ff;\n color: #fcff89;\n}\n.zappo .F,\n.zappo .W,\n.zappo .Y {\n background-color: #ffc800;\n}\n.zappo .B,\n.zappo .X,\n.zappo .Z {\n background-color: #ffffff;\n}\n.zappo .gap {\n color: #ccc;\n}\n.taylor {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.taylor .A {\n background-color: #ccff00;\n}\n.taylor .R {\n background-color: #0000ff;\n color: #fcff89;\n}\n.taylor .N {\n background-color: #cc00ff;\n color: #fcff89;\n}\n.taylor .D {\n background-color: #ff0000;\n color: #fcff89;\n}\n.taylor .C {\n background-color: #ffff00;\n}\n.taylor .Q {\n background-color: #ff00cc;\n}\n.taylor .E {\n background-color: #ff0066;\n color: #fcff89;\n}\n.taylor .G {\n background-color: #ff9900;\n}\n.taylor .H {\n background-color: #0066ff;\n color: #fcff89;\n}\n.taylor .I {\n background-color: #66ff00;\n}\n.taylor .L {\n background-color: #33ff00;\n}\n.taylor .K {\n background-color: #6600ff;\n color: #fcff89;\n}\n.taylor .M {\n background-color: #00ff00;\n}\n.taylor .F {\n background-color: #00ff66;\n}\n.taylor .P {\n background-color: #ffcc00;\n}\n.taylor .S {\n background-color: #ff3300;\n color: #fcff89;\n}\n.taylor .T {\n background-color: #ff6600;\n}\n.taylor .W {\n background-color: #00ccff;\n}\n.taylor .Y {\n background-color: #00ffcc;\n}\n.taylor .V {\n background-color: #99ff00;\n}\n.taylor .B,\n.taylor .X,\n.taylor .Z {\n background-color: #ffffff;\n}\n.taylor .gap {\n color: #ccc;\n}\n.hydrophobicity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n color: #fcff89;\n}\n.hydrophobicity .A {\n background-color: #ad0052;\n}\n.hydrophobicity .R,\n.hydrophobicity .K {\n background-color: #0000ff;\n}\n.hydrophobicity .N,\n.hydrophobicity .D,\n.hydrophobicity .Q,\n.hydrophobicity .E,\n.hydrophobicity .B,\n.hydrophobicity .Z {\n background-color: #0c00f3;\n}\n.hydrophobicity .C {\n background-color: #c2003d;\n}\n.hydrophobicity .G {\n background-color: #6a0095;\n}\n.hydrophobicity .H {\n background-color: #1500ea;\n}\n.hydrophobicity .L {\n background-color: #ea0015;\n}\n.hydrophobicity .M {\n background-color: #b0004f;\n}\n.hydrophobicity .F {\n background-color: #cb0034;\n}\n.hydrophobicity .P {\n background-color: #4600b9;\n}\n.hydrophobicity .S {\n background-color: #5e00a1;\n}\n.hydrophobicity .T {\n background-color: #61009e;\n}\n.hydrophobicity .W {\n background-color: #5b00a4;\n}\n.hydrophobicity .Y {\n background-color: #4f00b0;\n}\n.hydrophobicity .V {\n background-color: #f60009;\n}\n.hydrophobicity .X {\n background-color: #680097;\n}\n.hydrophobicity .gap {\n color: #ccc;\n}\n.helix_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.helix_propensity .A {\n background-color: #e718e7;\n}\n.helix_propensity .R {\n background-color: #6f906f;\n}\n.helix_propensity .N {\n background-color: #1be41b;\n}\n.helix_propensity .D {\n background-color: #778877;\n}\n.helix_propensity .C {\n background-color: #23dc23;\n}\n.helix_propensity .Q {\n background-color: #926d92;\n}\n.helix_propensity .E {\n background-color: #ff00ff;\n}\n.helix_propensity .G {\n background-color: #00ff00;\n}\n.helix_propensity .H {\n background-color: #758a75;\n}\n.helix_propensity .I {\n background-color: #8a758a;\n}\n.helix_propensity .L {\n background-color: #ae51ae;\n}\n.helix_propensity .K {\n background-color: #a05fa0;\n}\n.helix_propensity .M {\n background-color: #ef10ef;\n}\n.helix_propensity .F {\n background-color: #986798;\n}\n.helix_propensity .P {\n background-color: #00ff00;\n}\n.helix_propensity .S {\n background-color: #36c936;\n}\n.helix_propensity .T {\n background-color: #47b847;\n}\n.helix_propensity .W {\n background-color: #8a758a;\n}\n.helix_propensity .Y {\n background-color: #21de21;\n}\n.helix_propensity .V {\n background-color: #857a85;\n}\n.helix_propensity .B {\n background-color: #49b649;\n}\n.helix_propensity .X {\n background-color: #758a75;\n}\n.helix_propensity .Z {\n background-color: #c936c9;\n}\n.helix_propensity .gap {\n color: #ccc;\n}\n.strand_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.strand_propensity .A {\n background-color: #5858a7;\n}\n.strand_propensity .R {\n background-color: #6b6b94;\n}\n.strand_propensity .N {\n background-color: #64649b;\n}\n.strand_propensity .D {\n background-color: #2121de;\n}\n.strand_propensity .C {\n background-color: #9d9d62;\n}\n.strand_propensity .Q {\n background-color: #8c8c73;\n}\n.strand_propensity .E {\n background-color: #0000ff;\n}\n.strand_propensity .G {\n background-color: #4949b6;\n}\n.strand_propensity .H {\n background-color: #60609f;\n}\n.strand_propensity .I {\n background-color: #ecec13;\n}\n.strand_propensity .L {\n background-color: #b2b24d;\n}\n.strand_propensity .K {\n background-color: #4747b8;\n}\n.strand_propensity .M {\n background-color: #82827d;\n}\n.strand_propensity .F {\n background-color: #c2c23d;\n}\n.strand_propensity .P {\n background-color: #2323dc;\n}\n.strand_propensity .S {\n background-color: #4949b6;\n}\n.strand_propensity .T {\n background-color: #9d9d62;\n}\n.strand_propensity .W {\n background-color: #c0c03f;\n}\n.strand_propensity .Y {\n background-color: #d3d32c;\n}\n.strand_propensity .V {\n background-color: #ffff00;\n}\n.strand_propensity .B {\n background-color: #4343bc;\n}\n.strand_propensity .X {\n background-color: #797986;\n}\n.strand_propensity .Z {\n background-color: #4747b8;\n}\n.strand_propensity .A,\n.strand_propensity .R,\n.strand_propensity .N,\n.strand_propensity .D,\n.strand_propensity .E,\n.strand_propensity .G,\n.strand_propensity .H,\n.strand_propensity .K,\n.strand_propensity .P,\n.strand_propensity .S,\n.strand_propensity .B,\n.strand_propensity .Z {\n color: #fcff89;\n}\n.strand_propensity .gap {\n color: #ccc;\n}\n.turn_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.turn_propensity .gap {\n color: #ccc;\n}\n.turn_propensity .A {\n background-color: #2cd3d3;\n}\n.turn_propensity .R {\n background-color: #708f8f;\n}\n.turn_propensity .N {\n background-color: #ff0000;\n}\n.turn_propensity .D {\n background-color: #e81717;\n}\n.turn_propensity .C {\n background-color: #a85757;\n}\n.turn_propensity .Q {\n background-color: #3fc0c0;\n}\n.turn_propensity .E {\n background-color: #778888;\n}\n.turn_propensity .G {\n background-color: #ff0000;\n}\n.turn_propensity .H {\n background-color: #708f8f;\n}\n.turn_propensity .I {\n background-color: #00ffff;\n}\n.turn_propensity .L {\n background-color: #1ce3e3;\n}\n.turn_propensity .K {\n background-color: #7e8181;\n}\n.turn_propensity .M {\n background-color: #1ee1e1;\n}\n.turn_propensity .F {\n background-color: #1ee1e1;\n}\n.turn_propensity .P {\n background-color: #f60909;\n}\n.turn_propensity .S {\n background-color: #e11e1e;\n}\n.turn_propensity .T {\n background-color: #738c8c;\n}\n.turn_propensity .W {\n background-color: #738c8c;\n}\n.turn_propensity .Y {\n background-color: #9d6262;\n}\n.turn_propensity .V {\n background-color: #07f8f8;\n}\n.turn_propensity .B {\n background-color: #f30c0c;\n}\n.turn_propensity .X {\n background-color: #7c8383;\n}\n.turn_propensity .Z {\n background-color: #5ba4a4;\n}\n.turn_propensity .N,\n.turn_propensity .D,\n.turn_propensity .G,\n.turn_propensity .P,\n.turn_propensity .S,\n.turn_propensity .B {\n color: #fcff89;\n}\n.buried_index {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.buried_index .gap {\n color: #ccc;\n}\n.buried_index .A {\n background-color: #00a35c;\n}\n.buried_index .R {\n background-color: #00fc03;\n}\n.buried_index .N {\n background-color: #00eb14;\n}\n.buried_index .D {\n background-color: #00eb14;\n}\n.buried_index .C {\n background-color: #0000ff;\n}\n.buried_index .Q {\n background-color: #00f10e;\n}\n.buried_index .E {\n background-color: #00f10e;\n}\n.buried_index .G {\n background-color: #009d62;\n}\n.buried_index .H {\n background-color: #00d52a;\n}\n.buried_index .I {\n background-color: #0054ab;\n}\n.buried_index .L {\n background-color: #007b84;\n}\n.buried_index .K {\n background-color: #00ff00;\n}\n.buried_index .M {\n background-color: #009768;\n}\n.buried_index .F {\n background-color: #008778;\n}\n.buried_index .P {\n background-color: #00e01f;\n}\n.buried_index .S {\n background-color: #00d52a;\n}\n.buried_index .T {\n background-color: #00db24;\n}\n.buried_index .W {\n background-color: #00a857;\n}\n.buried_index .Y {\n background-color: #00e619;\n}\n.buried_index .V {\n background-color: #005fa0;\n}\n.buried_index .B {\n background-color: #00eb14;\n}\n.buried_index .X {\n background-color: #00b649;\n}\n.buried_index .Z {\n background-color: #00f10e;\n}\n.buried_index .C,\n.buried_index .I,\n.buried_index .V {\n color: #fcff89;\n}\n",".visible-detail {\n border: 1px solid #557B74;\n padding: 6px 12px;\n}\n.detail {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.table {\n width: 100%;\n max-width: 100%;\n}\n.xrefs {\n border-collapse: collapse;\n border-spacing: 0;\n border-color: grey;\n table-layout: fixed;\n}\n.xref-name-col {\n width: 20%;\n}\n.xref-value-col {\n width: 80%;\n}\n.xref-80-col {\n width: 80%;\n}\n.xref-70-col {\n width: 70%;\n}\n.xref-10-col {\n width: 10%;\n}\n.xref-id-list {\n padding-left: 0;\n list-style: none;\n}\n.result-gene {\n padding: 0.2em;\n border: 5px solid white;\n}\n.result-gene:hover {\n border-color: antiquewhite;\n}\n.gene-title {\n /*padding-top:0.5em;*/\n}\n.gene-id {\n white-space: nowrap;\n color: black;\n}\n.gene-name {\n color: #557B74;\n margin-bottom: 0;\n}\n.gene-description {\n margin-bottom: 0;\n}\n.gene-species {\n white-space: nowrap;\n font-style: italic;\n font-size:small;\n font-weight: bold;\n}\n.gene-synonyms {\n font-size: small;\n}\n.gene-extras {\n float: right;\n border: dashed 1px blue;\n}\n.gene-panlink {\n float:right;\n}\n.gene-panlink img {\n height: 60px;\n width: auto;\n vertical-align: top;\n}\n.gene-detail-tabs {\n display: flex;\n flex-wrap: wrap;\n white-space: nowrap;\n width: 80em;\n}\n.gene-detail-tab-closed {\n color: darkgreen;\n cursor: pointer;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-disabled {\n /*color: white;*/\n /*background-color: lightgray;*/\n color: lightgray;\n cursor: not-allowed;\n}\n.gene-detail-tab-empty {\n color: darkgreen;\n cursor: pointer;\n font-style: oblique;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-empty::before {\n content: \"Add \";\n}\n.gene-detail-tab-expanded {\n color: white;\n background-color: #557B74;\n cursor: pointer;\n}\n.result-gene-summary {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n.result-gene-summary .species-name {\n white-space: nowrap;\n font-style: italic;\n}\n.result-gene-title-body {\n flex: 1 1 auto;\n width: 1036px;\n}\n.model-ortholog, .closest-ortholog, .gene-summary-tair {\n cursor: pointer;\n flex: 1 1 auto;\n width: 500px;\n font-size: smaller;\n margin-top: 10px;\n padding: 0 1rem;\n margin-left: 1rem;\n border: 1px solid darkorange;\n}\n\n.model-ortholog {\n border: 1px dotted darkorange;\n}\n.closest-ortholog {\n border: 1px dotted darkgreen;\n}\n\n.gene-summary-tair {\n border: 1px dotted darkblue;\n}\n.gene-summary-tair .rest {\n display: none;\n}\n\n.gene-summary-tair:hover .rest {\n display: inline;\n}\n.gene-summary-tair:focus .rest {\n display: inline;\n}\n.gene-summary-tair:hover .ellipsis {\n display: none;\n}\n.gene-summary-tair:focus .ellipsis {\n display: none;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.closest-ortholog::before,\n.model-ortholog::before,\n.gene-summary-tair::before {\n position: relative;\n float: right;\n margin-top: -12px;\n margin-right: 6px;\n border: dotted 1px;\n padding: 0 1rem;\n background: #fff;\n}\n\n.model-ortholog::before {\n content: \"Model Species Homolog\";\n color: orange;\n}\n.closest-ortholog::before {\n content: \"Closest Annotated Homolog\";\n color: darkgreen;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.gene-summary-tair::before {\n content: \"TAIR Curated Description\";\n color: darkblue;\n}\n\n.rep-identity {\n float: right;\n padding-right: 10px;\n padding-top: 5px;\n font-style: italic;\n}\n.rep-identity::after {\n content: \"% identity\";\n}\n.eFP::before {\n content: url(\"../../static/images/BAR-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.eFP::after {\n content: 'New!';\n color: red;\n padding-left:2px;\n font-weight: bold;\n font-style: italic;\n font-size: x-small;\n line-height: normal;\n vertical-align: super;\n}\n.gxa::before {\n content: url(\"../../static/images/expression-atlas-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.gene-search-pic-sugg {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/suggestions.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-results {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/results.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-genetree {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/genetree.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}"],"names":[],"version":3,"file":"index.css.map"}
1
+ {"mappings":"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","sources":["src/components/styles.css","node_modules/gramene-search-vis/styles/main.less","node_modules/gramene-search-vis/styles/taxonomy.less","src/components/results/details/sequences.css","src/components/results/details/tree-view.css","node_modules/react-simple-tree-menu/dist/main.css","node_modules/react-simple-tree-menu/src/sass/main.scss","node_modules/gramene-genetree-vis/src/styles/tree.less","node_modules/gramene-genetree-vis/src/styles/msa.less","src/components/results/genes.css"],"sourcesContent":[".gramene-sidebar {\n position: fixed;\n background-color: dimgray;\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 8px;\n max-width: 16.67%;\n}\n.gramene-filter-container {\n background-color: #cfb5e6;\n padding-left: 4px;\n padding-bottom: 4px;\n}\n.gramene-filter {\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n background-color: white;\n font-size: small;\n}\n.gramene-filter span:hover {\n font-weight:bolder;\n}\n.gramene-filter-AND {\n background-color: #ffcd82;\n}\n.gramene-filter-OR {\n background-color: #c5eeb9;\n}\n.gramene-filter-NOT {\n border-left-color: #ff5354;\n border-left-style: inset;\n border-left-width: 4px;\n padding-left: 4px;\n}\n.gramene-filter-operation {\n text-align: center;\n font-style: italic;\n}\n.gramene-filter-marked {\n font-weight: bolder;\n /*background-color: #feff96;*/\n}\n.gramene-filter-menu ul {\n border-top-style: solid;\n border-top-width: 2px;\n padding-left: 0;\n}\n.gramene-filter-menu li {\n display: block;\n cursor: pointer;\n padding-left: 15px;\n}\n.gramene-filter-menu li:hover {\n background-color: #feff96;\n}\n\n.gramene-view-container {\n background-color: lightblue;\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n}\n.gramene-view {\n padding-left: 0px;\n padding-right: 10px;\n margin-bottom: 0;\n background-color: white;\n}\n.gramene-view li {\n display: block;\n cursor: pointer;\n padding-left: 5px;\n border-left-style: inset;\n border-left-width: 8px;\n margin-bottom: 2px;\n}\n\n.gramene-view-on {\n border-left-color: #40a0ff;\n font-weight: bold;\n}\n.gramene-view-off {\n border-left-color: #ff6d68;\n color: grey;\n}\n.gramene-view-disabled {\n color: darkgray;\n border-left-color: #efefef;\n cursor: default!important;\n}\n#gramene-suggestion button {\n border-radius: .6rem;\n line-height: 1;\n}\n#gramene-suggestion button:focus {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n",".taxogenomic-vis {\n @import 'taxonomy';\n}","@import 'colors';\n\n.gramene-search-vis {\n -webkit-user-select: none;\n cursor: pointer;\n\n canvas {\n position: absolute;\n }\n\n > * {\n display: inline;\n }\n\n text {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 12px;\n fill: gray;\n\n /* since font weight transition is not smooth, emulate\n bold font with text stroke, and transition opacity. */\n stroke: @gramene-darkgreen;\n stroke-opacity: 0;\n stroke-width: 0.5px;\n user-select: none;\n }\n\n text::selection {\n background: none;\n }\n\n .taxonomy * {\n transition: fill 200ms ease-in-out,\n stroke-opacity 200ms ease-in-out; /*,\n transform 200ms ease-in-out;*/\n }\n\n .clade {\n .results-count {\n font-size: 10px;\n }\n\n .node circle {\n stroke: @gramene-darkgreen;\n stroke-width: 1px; // This is referenced in Edge.js\n fill: @gramene-offwhite;\n }\n\n .edge rect {\n fill: #cccccc;\n }\n\n //\n //.genome .interaction-helper {\n // stroke-opacity: 0;\n // fill-opacity: 0;\n // stroke: @gramene-darkgreen;\n // stroke-width: 1.5px;\n //}\n\n // color the nodes above the hovered node\n // (the highlight class is added dynamically\n // in code)\n .clade.highlight {\n > .node > circle,\n > .edge > rect {\n fill: @gramene-orange;\n }\n > .node-label text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n\n }\n\n // color the clade underneath the hovered node.\n .node:hover,\n .edge:hover {\n > circle,\n > rect,\n ~ .node > circle,\n ~ .clade .edge > rect,\n ~ .clade .node > circle {\n fill: @gramene-orange;\n }\n }\n\n .node:hover,\n .edge:hover {\n ~ .node-label text,\n ~ .clade text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n }\n\n .node-label:hover text {\n fill: @gramene-darkgreen;\n stroke-opacity: 1;\n }\n\n .bin, .full-region {\n transition: none;\n stroke: @gramene-darkgreen;\n stroke-width: 0;\n shape-rendering: crispEdges;\n }\n\n .bin.selected {\n fill: @gramene-red;\n }\n\n .bin:hover {\n fill: @gramene-darkgreen;\n }\n\n .full-region.selected {\n stroke-width: 1px;\n stroke: @gramene-red;\n }\n\n .full-region:hover {\n stroke-width: 1px;\n stroke: @gramene-darkgreen;\n }\n\n .species-background {\n fill: none;\n }\n\n .node:hover ~ .species-background,\n .edge:hover ~ .species-background,\n .node:hover ~ .clade .species-background,\n .edge:hover ~ .clade .species-background,\n .clade.highlight > .species-background {\n fill: lighten(@gramene-orange, 20%);\n }\n\n }\n}\n","/* styles.css */\n.fasta-container {\n position: relative;\n padding: 2ch;\n background-color: #fcfffd;\n border-color: #557b74;\n border-style: dashed;\n line-height: 0.925em;\n /*margin: auto; !* Center the container *!*/\n}\n.styled-span {\n display: flex;\n align-items: center;\n text-align: center;\n}\n.vertical-line {\n flex-grow: 1;\n height: 20px;\n background-color: black;\n}\n.horizontal-line {\n width: 57px;\n height: 3px;\n background-color: black;\n margin: 0 0px;\n}\ncode.fasta {\n white-space: pre-wrap;\n color: #595959;\n}\n.header {\n color: black;\n}\n.upstream {\n color: #80a0a0;\n}\n.downstream {\n color: #80a0a0;\n}\n.intron {\n color: #aaaaaa;\n}\n.utr5 {\n background-color: #aaccaf;\n}\n.utr5-other {\n background-color: #cfe1d2;\n}\n.cds {\n background-color: #a7b4d3;\n}\n.cds-other {\n background-color: #d0d8e6;\n}\n.utr3 {\n background-color: #c5a3bf;\n}\n.utr3-other {\n background-color: #dcc9d9;\n}\n.reverse-slide {\n direction: rtl;\n}\n.fasta-key {\n position: absolute;\n top: 9px;\n right: 30px;\n background: none;\n border: none;\n cursor: default;\n font-family: monospace;\n font-size: 10pt;\n color: #555;\n}\n.copy-button {\n position: absolute;\n top: 3px;\n right: -5px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1.5rem;\n color: #555;\n}\n.notification {\n position: absolute;\n top: 0;\n right: 0;\n background-color: #050505;\n color: #fff;\n padding: 5px;\n z-index: 999;\n font-weight: bold;\n font-style: italic;\n font-size: smaller;\n}","/*\n\n<classNamePrefix>-root\n\nThe outer container\n\n*/\n.tree-view-root {\n}\n\n/*\n\n<classNamePrefix>-root\n\nThe outer container for a single node\n\n*/\n.tree-view-node {\n margin-left: 10px;\n}\n\n\n/*\n\n<classNamePrefix>-node-collapse-toggle.collapse-spacer\n\nUsed to provide spacing when a parent node has no children\n\n*/\n.tree-view-node-collapse-toggle.collapse-spacer {\n width: 14px;\n display: inline-block;\n}\n\n/*\n<classNamePrefix>-node-collapse-toggle.<expandIconClass>\n\nThe class to use for the icon that expands a collapsed parent node\n\n*/\n\n\n/*\n\n<classNamePrefix>-node-collapse-toggle.<collapseIconClass>\n\nThe class to use for the icon that collapses an expanded parent node\n\n*/\n\n.tree-view-node-collapse-toggle {\n margin-right: 3px;\n width: 14px;\n}\n\n/*\n\n<classNamePrefix>-node-label\n\n*/\n.tree-view-node-label {\n font-size: smaller;\n margin-left: 3px;\n padding: 1px;\n border: 1px solid #fff;\n}\n\n/*\n\n<classNamePrefix>-node-label.selected\n\n*/\n.tree-view-node-label.selected {\n border: 1px solid #003f81;\n border-radius: 3px;\n background-color: #808080;\n}\n\n/*\n\n<classNamePrefix>-node-checkbox\n\nThe class for a node checkbox\n\n*/\n\n.tree-view-node-checkbox {}\n\n/*\n\n<classNamePrefix>-node-children\n\nThe class for the element that wraps a nodes children (if any exist)\n\n*/\n\n.tree-view-node-children {}\n\n",".rstm-toggle-icon {\n display: inline-block; }\n .rstm-toggle-icon-symbol {\n width: 2rem;\n height: 2rem;\n text-align: center;\n line-height: 2rem; }\n\n.rstm-tree-item-group {\n list-style-type: none;\n padding-left: 0;\n border-top: 1px solid #ccc;\n text-align: left;\n width: 100%; }\n\n.rstm-tree-item {\n padding: 0.75rem 1rem;\n cursor: pointer;\n color: #333;\n background: none;\n border-bottom: 1px solid #ccc;\n box-shadow: none;\n z-index: unset;\n position: relative; }\n .rstm-tree-item--active {\n color: white;\n background: #179ed3;\n border-bottom: none; }\n .rstm-tree-item--focused {\n box-shadow: 0 0 5px 0 #222;\n z-index: 999; }\n\n.rstm-search {\n padding: 1rem 1.5rem;\n border: none;\n width: 100%; }\n",null,"@transition_time: 20ms;\n\n/* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n@hover_scale_factor: 2;\n@hover_stroke_width: 2;\n@collapsed_node_stroke_width: 1;\n\n@default_node_fill: #fff;\n@default_node_stroke: #777;\n\n@ortholog_stroke_color: orange;\n@paralog_stroke_color: green;\n@representative_fill_color: @ortholog_stroke_color;\n@self_color: red;\n\n@speciation_color: #000080;\n@duplication_color: #cd0000;\n\n@font_size: 11px;\n@font_weight_highlight: bolder;\n\n@invisible: 0;\n@visible: 1;\n\n.display-mode {\n .btn-toolbar {\n position: absolute;\n padding-left: 10px\n }\n}\n.tooltip-inner {\n max-width : 400px;\n}\n.genetree-vis {\n .node, .edge {\n cursor: pointer;\n }\n\n .tree-wrapper {\n /* transitions for mouse hover, etc, interactions */\n * {\n transition: all @transition_time ease-in-out;\n }\n\n /* transitions for expanding/contracting clades */\n .clade {\n transition: transform @transition_time ease-in-out;\n\n .edge-rect {\n transition: scaleY @transition_time ease-in-out, scaleX @transition_time ease-in-out, transform @transition_time ease-in-out;\n }\n }\n }\n\n .interaction-helper {\n opacity: @invisible;\n }\n\n .node circle {\n stroke: @default_node_stroke;\n fill: @default_node_fill;\n }\n\n .speciation rect {\n fill: @speciation_color;\n }\n\n .duplication rect {\n fill: @duplication_color;\n }\n\n .node:hover, .edge:hover {\n .internal,\n .gene circle,\n ~ .clade .node rect,\n + .node rect {\n transform: scale(@hover_scale_factor);\n }\n\n ~ .clade .interaction-rect {\n opacity: @visible;\n fill-opacity: @visible;\n }\n\n ~ .clade circle,\n + .node circle,\n .collapsed path,\n ~ .clade .collapsed path,\n + .node .collapsed path {\n stroke-width: @hover_stroke_width;\n }\n\n ~ .clade text, text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .node {\n .gene.ortholog_one2one circle,\n .gene.ortholog_one2many circle,\n .gene.ortholog_many2many circle {\n stroke: @ortholog_stroke_color;\n }\n\n .gene.within_species_paralog circle {\n stroke: @paralog_stroke_color;\n }\n\n .gene.self {\n circle {\n stroke: @self_color;\n fill: @self_color;\n }\n text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .gene.representative circle {\n stroke: @ortholog_stroke_color;\n fill: @representative_fill_color;\n }\n\n text {\n font-size: @font_size;\n fill-opacity: @visible;\n text-anchor: start;\n }\n }\n\n .collapsed {\n path {\n stroke-width: @collapsed_node_stroke_width;\n }\n }\n\n .domains rect {\n cursor: pointer;\n stroke-opacity: 0\n }\n\n .domains rect:hover {\n cursor: pointer;\n stroke-opacity: 1.0\n }\n @transition_time: 20ms;\n\n /* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n @hover_scale_factor: 2;\n @hover_stroke_width: 2;\n @collapsed_node_stroke_width: 1;\n\n @default_node_fill: #fff;\n @default_node_stroke: #777;\n\n @ortholog_stroke_color: orange;\n @paralog_stroke_color: green;\n @representative_fill_color: @ortholog_stroke_color;\n @self_color: red;\n\n @speciation_color: #000080;\n @duplication_color: #cd0000;\n\n @font_size: 11px;\n @font_weight_highlight: bolder;\n\n @invisible: 0;\n @visible: 1;\n\n}\n\n.popover-title .tooltip-title-button {\n margin-top: -4px !important;\n margin-right: 4px !important;\n}\n\n.msa-slider {\n position: relative;\n padding-top: 10px;\n padding-bottom: 0px;\n margin-bottom: -10px;\n}\n\n.resize-drag {\n background: rgba(0, 0, 0, 0.0);\n border: 4px solid #7c8383;\n color: red;\n font-size: 1px;\n font-family: sans-serif;\n border-radius: 8px;\n\n /* This makes things *much* easier */\n box-sizing: border-box;\n}\n\n.resize-container {\n width: 100%;\n height: 100%;\n}\n",".MSAlignments-wrapper {\n overflow-x: scroll;\n overflow-y: hidden;\n}\n.clustal {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.clustal .A,\n.clustal .I,\n.clustal .L,\n.clustal .M,\n.clustal .F,\n.clustal .W,\n.clustal .V {\n background-color: #80a0f0;\n}\n.clustal .R,\n.clustal .K {\n background-color: #f01505;\n color: #fcff89;\n}\n.clustal .N,\n.clustal .Q,\n.clustal .S,\n.clustal .T {\n background-color: #00ff00;\n}\n.clustal .D,\n.clustal .E {\n background-color: #c048c0;\n color: #fcff89;\n}\n.clustal .C {\n background-color: #f08080;\n}\n.clustal .G {\n background-color: #f09048;\n}\n.clustal .Y\n.clustal .H {\n background-color: #15a4a4;\n}\n.clustal .P {\n background-color: #ffff00;\n}\n.clustal .B,\n.clustal .X,\n.clustal .Z {\n background-color: #ffffff;\n}\n.clustal .gap {\n color: #ccc;\n}\n.zappo {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.zappo .A,\n.zappo .I,\n.zappo .L,\n.zappo .M,\n.zappo .V {\n background-color: #ffafaf;\n}\n.zappo .R,\n.zappo .H,\n.zappo .K {\n background-color: #6464ff;\n color: #fcff89;\n}\n.zappo .N,\n.zappo .Q,\n.zappo .S,\n.zappo .T {\n background-color: #00ff00;\n}\n.zappo .D,\n.zappo .E {\n background-color: #ff0000;\n}\n.zappo .C {\n background-color: #ffff00;\n}\n.zappo .G,\n.zappo .P {\n background-color: #ff00ff;\n color: #fcff89;\n}\n.zappo .F,\n.zappo .W,\n.zappo .Y {\n background-color: #ffc800;\n}\n.zappo .B,\n.zappo .X,\n.zappo .Z {\n background-color: #ffffff;\n}\n.zappo .gap {\n color: #ccc;\n}\n.taylor {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.taylor .A {\n background-color: #ccff00;\n}\n.taylor .R {\n background-color: #0000ff;\n color: #fcff89;\n}\n.taylor .N {\n background-color: #cc00ff;\n color: #fcff89;\n}\n.taylor .D {\n background-color: #ff0000;\n color: #fcff89;\n}\n.taylor .C {\n background-color: #ffff00;\n}\n.taylor .Q {\n background-color: #ff00cc;\n}\n.taylor .E {\n background-color: #ff0066;\n color: #fcff89;\n}\n.taylor .G {\n background-color: #ff9900;\n}\n.taylor .H {\n background-color: #0066ff;\n color: #fcff89;\n}\n.taylor .I {\n background-color: #66ff00;\n}\n.taylor .L {\n background-color: #33ff00;\n}\n.taylor .K {\n background-color: #6600ff;\n color: #fcff89;\n}\n.taylor .M {\n background-color: #00ff00;\n}\n.taylor .F {\n background-color: #00ff66;\n}\n.taylor .P {\n background-color: #ffcc00;\n}\n.taylor .S {\n background-color: #ff3300;\n color: #fcff89;\n}\n.taylor .T {\n background-color: #ff6600;\n}\n.taylor .W {\n background-color: #00ccff;\n}\n.taylor .Y {\n background-color: #00ffcc;\n}\n.taylor .V {\n background-color: #99ff00;\n}\n.taylor .B,\n.taylor .X,\n.taylor .Z {\n background-color: #ffffff;\n}\n.taylor .gap {\n color: #ccc;\n}\n.hydrophobicity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n color: #fcff89;\n}\n.hydrophobicity .A {\n background-color: #ad0052;\n}\n.hydrophobicity .R,\n.hydrophobicity .K {\n background-color: #0000ff;\n}\n.hydrophobicity .N,\n.hydrophobicity .D,\n.hydrophobicity .Q,\n.hydrophobicity .E,\n.hydrophobicity .B,\n.hydrophobicity .Z {\n background-color: #0c00f3;\n}\n.hydrophobicity .C {\n background-color: #c2003d;\n}\n.hydrophobicity .G {\n background-color: #6a0095;\n}\n.hydrophobicity .H {\n background-color: #1500ea;\n}\n.hydrophobicity .L {\n background-color: #ea0015;\n}\n.hydrophobicity .M {\n background-color: #b0004f;\n}\n.hydrophobicity .F {\n background-color: #cb0034;\n}\n.hydrophobicity .P {\n background-color: #4600b9;\n}\n.hydrophobicity .S {\n background-color: #5e00a1;\n}\n.hydrophobicity .T {\n background-color: #61009e;\n}\n.hydrophobicity .W {\n background-color: #5b00a4;\n}\n.hydrophobicity .Y {\n background-color: #4f00b0;\n}\n.hydrophobicity .V {\n background-color: #f60009;\n}\n.hydrophobicity .X {\n background-color: #680097;\n}\n.hydrophobicity .gap {\n color: #ccc;\n}\n.helix_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.helix_propensity .A {\n background-color: #e718e7;\n}\n.helix_propensity .R {\n background-color: #6f906f;\n}\n.helix_propensity .N {\n background-color: #1be41b;\n}\n.helix_propensity .D {\n background-color: #778877;\n}\n.helix_propensity .C {\n background-color: #23dc23;\n}\n.helix_propensity .Q {\n background-color: #926d92;\n}\n.helix_propensity .E {\n background-color: #ff00ff;\n}\n.helix_propensity .G {\n background-color: #00ff00;\n}\n.helix_propensity .H {\n background-color: #758a75;\n}\n.helix_propensity .I {\n background-color: #8a758a;\n}\n.helix_propensity .L {\n background-color: #ae51ae;\n}\n.helix_propensity .K {\n background-color: #a05fa0;\n}\n.helix_propensity .M {\n background-color: #ef10ef;\n}\n.helix_propensity .F {\n background-color: #986798;\n}\n.helix_propensity .P {\n background-color: #00ff00;\n}\n.helix_propensity .S {\n background-color: #36c936;\n}\n.helix_propensity .T {\n background-color: #47b847;\n}\n.helix_propensity .W {\n background-color: #8a758a;\n}\n.helix_propensity .Y {\n background-color: #21de21;\n}\n.helix_propensity .V {\n background-color: #857a85;\n}\n.helix_propensity .B {\n background-color: #49b649;\n}\n.helix_propensity .X {\n background-color: #758a75;\n}\n.helix_propensity .Z {\n background-color: #c936c9;\n}\n.helix_propensity .gap {\n color: #ccc;\n}\n.strand_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.strand_propensity .A {\n background-color: #5858a7;\n}\n.strand_propensity .R {\n background-color: #6b6b94;\n}\n.strand_propensity .N {\n background-color: #64649b;\n}\n.strand_propensity .D {\n background-color: #2121de;\n}\n.strand_propensity .C {\n background-color: #9d9d62;\n}\n.strand_propensity .Q {\n background-color: #8c8c73;\n}\n.strand_propensity .E {\n background-color: #0000ff;\n}\n.strand_propensity .G {\n background-color: #4949b6;\n}\n.strand_propensity .H {\n background-color: #60609f;\n}\n.strand_propensity .I {\n background-color: #ecec13;\n}\n.strand_propensity .L {\n background-color: #b2b24d;\n}\n.strand_propensity .K {\n background-color: #4747b8;\n}\n.strand_propensity .M {\n background-color: #82827d;\n}\n.strand_propensity .F {\n background-color: #c2c23d;\n}\n.strand_propensity .P {\n background-color: #2323dc;\n}\n.strand_propensity .S {\n background-color: #4949b6;\n}\n.strand_propensity .T {\n background-color: #9d9d62;\n}\n.strand_propensity .W {\n background-color: #c0c03f;\n}\n.strand_propensity .Y {\n background-color: #d3d32c;\n}\n.strand_propensity .V {\n background-color: #ffff00;\n}\n.strand_propensity .B {\n background-color: #4343bc;\n}\n.strand_propensity .X {\n background-color: #797986;\n}\n.strand_propensity .Z {\n background-color: #4747b8;\n}\n.strand_propensity .A,\n.strand_propensity .R,\n.strand_propensity .N,\n.strand_propensity .D,\n.strand_propensity .E,\n.strand_propensity .G,\n.strand_propensity .H,\n.strand_propensity .K,\n.strand_propensity .P,\n.strand_propensity .S,\n.strand_propensity .B,\n.strand_propensity .Z {\n color: #fcff89;\n}\n.strand_propensity .gap {\n color: #ccc;\n}\n.turn_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.turn_propensity .gap {\n color: #ccc;\n}\n.turn_propensity .A {\n background-color: #2cd3d3;\n}\n.turn_propensity .R {\n background-color: #708f8f;\n}\n.turn_propensity .N {\n background-color: #ff0000;\n}\n.turn_propensity .D {\n background-color: #e81717;\n}\n.turn_propensity .C {\n background-color: #a85757;\n}\n.turn_propensity .Q {\n background-color: #3fc0c0;\n}\n.turn_propensity .E {\n background-color: #778888;\n}\n.turn_propensity .G {\n background-color: #ff0000;\n}\n.turn_propensity .H {\n background-color: #708f8f;\n}\n.turn_propensity .I {\n background-color: #00ffff;\n}\n.turn_propensity .L {\n background-color: #1ce3e3;\n}\n.turn_propensity .K {\n background-color: #7e8181;\n}\n.turn_propensity .M {\n background-color: #1ee1e1;\n}\n.turn_propensity .F {\n background-color: #1ee1e1;\n}\n.turn_propensity .P {\n background-color: #f60909;\n}\n.turn_propensity .S {\n background-color: #e11e1e;\n}\n.turn_propensity .T {\n background-color: #738c8c;\n}\n.turn_propensity .W {\n background-color: #738c8c;\n}\n.turn_propensity .Y {\n background-color: #9d6262;\n}\n.turn_propensity .V {\n background-color: #07f8f8;\n}\n.turn_propensity .B {\n background-color: #f30c0c;\n}\n.turn_propensity .X {\n background-color: #7c8383;\n}\n.turn_propensity .Z {\n background-color: #5ba4a4;\n}\n.turn_propensity .N,\n.turn_propensity .D,\n.turn_propensity .G,\n.turn_propensity .P,\n.turn_propensity .S,\n.turn_propensity .B {\n color: #fcff89;\n}\n.buried_index {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.buried_index .gap {\n color: #ccc;\n}\n.buried_index .A {\n background-color: #00a35c;\n}\n.buried_index .R {\n background-color: #00fc03;\n}\n.buried_index .N {\n background-color: #00eb14;\n}\n.buried_index .D {\n background-color: #00eb14;\n}\n.buried_index .C {\n background-color: #0000ff;\n}\n.buried_index .Q {\n background-color: #00f10e;\n}\n.buried_index .E {\n background-color: #00f10e;\n}\n.buried_index .G {\n background-color: #009d62;\n}\n.buried_index .H {\n background-color: #00d52a;\n}\n.buried_index .I {\n background-color: #0054ab;\n}\n.buried_index .L {\n background-color: #007b84;\n}\n.buried_index .K {\n background-color: #00ff00;\n}\n.buried_index .M {\n background-color: #009768;\n}\n.buried_index .F {\n background-color: #008778;\n}\n.buried_index .P {\n background-color: #00e01f;\n}\n.buried_index .S {\n background-color: #00d52a;\n}\n.buried_index .T {\n background-color: #00db24;\n}\n.buried_index .W {\n background-color: #00a857;\n}\n.buried_index .Y {\n background-color: #00e619;\n}\n.buried_index .V {\n background-color: #005fa0;\n}\n.buried_index .B {\n background-color: #00eb14;\n}\n.buried_index .X {\n background-color: #00b649;\n}\n.buried_index .Z {\n background-color: #00f10e;\n}\n.buried_index .C,\n.buried_index .I,\n.buried_index .V {\n color: #fcff89;\n}\n",".visible-detail {\n border: 1px solid #557B74;\n padding: 6px 12px;\n}\n.detail {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.table {\n width: 100%;\n max-width: 100%;\n}\n.xrefs {\n border-collapse: collapse;\n border-spacing: 0;\n border-color: grey;\n table-layout: fixed;\n}\n.xref-name-col {\n width: 20%;\n}\n.xref-value-col {\n width: 80%;\n}\n.xref-80-col {\n width: 80%;\n}\n.xref-70-col {\n width: 70%;\n}\n.xref-10-col {\n width: 10%;\n}\n.xref-id-list {\n padding-left: 0;\n list-style: none;\n}\n.result-gene {\n padding: 0.2em;\n border: 5px solid white;\n}\n.result-gene:hover {\n border-color: antiquewhite;\n}\n.gene-title {\n /*padding-top:0.5em;*/\n}\n.gene-id {\n white-space: nowrap;\n color: black;\n}\n.gene-name {\n color: #557B74;\n margin-bottom: 0;\n}\n.gene-description {\n margin-bottom: 0;\n}\n.gene-species {\n white-space: nowrap;\n font-style: italic;\n font-size:small;\n font-weight: bold;\n}\n.gene-synonyms {\n font-size: small;\n}\n.gene-extras {\n float: right;\n border: dashed 1px blue;\n}\n.gene-panlink {\n float:right;\n}\n.gene-panlink img {\n height: 60px;\n width: auto;\n vertical-align: top;\n}\n.gene-detail-tabs {\n display: flex;\n flex-wrap: wrap;\n white-space: nowrap;\n width: 80em;\n}\n.gene-detail-tab-closed {\n color: darkgreen;\n cursor: pointer;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-disabled {\n /*color: white;*/\n /*background-color: lightgray;*/\n color: lightgray;\n cursor: not-allowed;\n}\n.gene-detail-tab-empty {\n color: darkgreen;\n cursor: pointer;\n font-style: oblique;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-empty::before {\n content: \"Add \";\n}\n.gene-detail-tab-expanded {\n color: white;\n background-color: #557B74;\n cursor: pointer;\n}\n.result-gene-summary {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n.result-gene-summary .species-name {\n white-space: nowrap;\n font-style: italic;\n}\n.result-gene-title-body {\n flex: 1 1 auto;\n width: 1036px;\n}\n.model-ortholog, .closest-ortholog, .gene-summary-tair {\n cursor: pointer;\n flex: 1 1 auto;\n width: 500px;\n font-size: smaller;\n margin-top: 10px;\n padding: 0 1rem;\n margin-left: 1rem;\n border: 1px solid darkorange;\n}\n\n.model-ortholog {\n border: 1px dotted darkorange;\n}\n.closest-ortholog {\n border: 1px dotted darkgreen;\n}\n\n.gene-summary-tair {\n border: 1px dotted darkblue;\n}\n.gene-summary-tair .rest {\n display: none;\n}\n\n.gene-summary-tair:hover .rest {\n display: inline;\n}\n.gene-summary-tair:focus .rest {\n display: inline;\n}\n.gene-summary-tair:hover .ellipsis {\n display: none;\n}\n.gene-summary-tair:focus .ellipsis {\n display: none;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.closest-ortholog::before,\n.model-ortholog::before,\n.gene-summary-tair::before {\n position: relative;\n float: right;\n margin-top: -12px;\n margin-right: 6px;\n border: dotted 1px;\n padding: 0 1rem;\n background: #fff;\n}\n\n.model-ortholog::before {\n content: \"Model Species Homolog\";\n color: orange;\n}\n.closest-ortholog::before {\n content: \"Closest Annotated Homolog\";\n color: darkgreen;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.gene-summary-tair::before {\n content: \"TAIR Curated Description\";\n color: darkblue;\n}\n\n.rep-identity {\n float: right;\n padding-right: 10px;\n padding-top: 5px;\n font-style: italic;\n}\n.rep-identity::after {\n content: \"% identity\";\n}\n.eFP::before {\n content: url(\"../../static/images/BAR-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.eFP::after {\n content: 'New!';\n color: red;\n padding-left:2px;\n font-weight: bold;\n font-style: italic;\n font-size: x-small;\n line-height: normal;\n vertical-align: super;\n}\n.gxa::before {\n content: url(\"../../static/images/expression-atlas-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.gene-search-pic-sugg {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/suggestions.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-results {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/results.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-genetree {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/genetree.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}"],"names":[],"version":3,"file":"index.css.map"}
package/dist/index.js CHANGED
@@ -1208,6 +1208,8 @@ const $671312b287158a8a$var$grameneDocs = {
1208
1208
  pathways: {},
1209
1209
  expression: {},
1210
1210
  sequences: {},
1211
+ rnaSequences: {},
1212
+ pepSequences: {},
1211
1213
  studies: {}
1212
1214
  };
1213
1215
  return (state = initialState, { type: type , payload: payload })=>{
@@ -1269,11 +1271,35 @@ const $671312b287158a8a$var$grameneDocs = {
1269
1271
  return newState;
1270
1272
  }
1271
1273
  break;
1274
+ case "RNA_SEQUENCE_REQUESTED":
1275
+ if (!state.rnaSequences.hasOwnProperty(payload)) {
1276
+ newState = Object.assign({}, state);
1277
+ newState.rnaSequences[payload] = {};
1278
+ return newState;
1279
+ }
1280
+ break;
1281
+ case "PEP_SEQUENCE_REQUESTED":
1282
+ if (!state.rnaSequences.hasOwnProperty(payload)) {
1283
+ newState = Object.assign({}, state);
1284
+ newState.pepSequences[payload] = {};
1285
+ return newState;
1286
+ }
1287
+ break;
1272
1288
  case "GENE_SEQUENCE_RECEIVED":
1273
1289
  newState = Object.assign({}, state);
1274
1290
  newState.sequences = Object.assign({}, state.sequences);
1275
1291
  newState.sequences[payload.id] = payload.geneSeq;
1276
1292
  return newState;
1293
+ case "RNA_SEQUENCE_RECEIVED":
1294
+ newState = Object.assign({}, state);
1295
+ newState.rnaSequences = Object.assign({}, state.rnaSequences);
1296
+ newState.rnaSequences[payload.id] = payload.RnaSeq;
1297
+ return newState;
1298
+ case "PEP_SEQUENCE_RECEIVED":
1299
+ newState = Object.assign({}, state);
1300
+ newState.pepSequences = Object.assign({}, state.pepSequences);
1301
+ newState.pepSequences[payload.id] = payload.PepSeq;
1302
+ return newState;
1277
1303
  case "PARALOG_EXPRESSION_REQUESTED":
1278
1304
  if (!state.expression.hasOwnProperty(payload)) {
1279
1305
  newState = Object.assign({}, state);
@@ -1418,6 +1444,42 @@ const $671312b287158a8a$var$grameneDocs = {
1418
1444
  });
1419
1445
  }
1420
1446
  },
1447
+ doRequestRnaSequence: (id, gene)=>({ dispatch: dispatch , store: store })=>{
1448
+ const seqs = store.selectRnaSequences();
1449
+ if (!seqs.hasOwnProperty(id)) {
1450
+ dispatch({
1451
+ type: "RNA_SEQUENCE_REQUESTED",
1452
+ payload: id
1453
+ });
1454
+ fetch(`${store.selectEnsemblAPI()}/sequence/id/${id}?species=${gene.system_name}&type=cdna&content-type=application/json`).then((res)=>res.json()).then((RnaSeq)=>{
1455
+ dispatch({
1456
+ type: "RNA_SEQUENCE_RECEIVED",
1457
+ payload: {
1458
+ id: id,
1459
+ RnaSeq: RnaSeq
1460
+ }
1461
+ });
1462
+ });
1463
+ }
1464
+ },
1465
+ doRequestPepSequence: (id, gene)=>({ dispatch: dispatch , store: store })=>{
1466
+ const seqs = store.selectPepSequences();
1467
+ if (!seqs.hasOwnProperty(id)) {
1468
+ dispatch({
1469
+ type: "PEP_SEQUENCE_REQUESTED",
1470
+ payload: id
1471
+ });
1472
+ fetch(`${store.selectEnsemblAPI()}/sequence/id/${id}?species=${gene.system_name}&type=protein&content-type=application/json`).then((res)=>res.json()).then((PepSeq)=>{
1473
+ dispatch({
1474
+ type: "PEP_SEQUENCE_RECEIVED",
1475
+ payload: {
1476
+ id: id,
1477
+ PepSeq: PepSeq
1478
+ }
1479
+ });
1480
+ });
1481
+ }
1482
+ },
1421
1483
  doRequestParalogExpression: (id)=>({ dispatch: dispatch , store: store })=>{
1422
1484
  const expr = store.selectParalogExpression();
1423
1485
  if (!expr.hasOwnProperty(id)) {
@@ -1471,6 +1533,8 @@ const $671312b287158a8a$var$grameneDocs = {
1471
1533
  selectGramenePathways: (state)=>state.grameneDocs.pathways,
1472
1534
  selectParalogExpression: (state)=>state.grameneDocs.expression,
1473
1535
  selectGeneSequences: (state)=>state.grameneDocs.sequences,
1536
+ selectRnaSequences: (state)=>state.grameneDocs.rnaSequences,
1537
+ selectPepSequences: (state)=>state.grameneDocs.pepSequences,
1474
1538
  selectAtlasStudies: (state)=>state.grameneDocs.studies
1475
1539
  };
1476
1540
  var $671312b287158a8a$export$2e2bcd8739ae039 = $671312b287158a8a$var$grameneDocs;
@@ -3314,57 +3378,54 @@ const $527ebc19dc92444d$var$CodeBlock = (props)=>{
3314
3378
  children: [
3315
3379
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("code", {
3316
3380
  className: "fasta",
3381
+ children: [
3382
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("span", {
3383
+ className: "header",
3384
+ children: [
3385
+ ">",
3386
+ props.id
3387
+ ]
3388
+ }),
3389
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {}),
3390
+ props.blocks.map((block, idx)=>/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3391
+ className: block.kind,
3392
+ children: block.seq
3393
+ }, idx))
3394
+ ]
3395
+ }),
3396
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("p", {
3397
+ className: "fasta-key",
3317
3398
  children: [
3318
3399
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("b", {
3319
3400
  children: "Key:"
3320
3401
  }),
3321
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3322
- className: "upstream",
3323
- children: "--upstream--"
3324
- }),
3402
+ "\xa05'UTR\xa0",
3325
3403
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3326
3404
  className: "utr5",
3327
- children: "--5'UTR--"
3405
+ children: "\xa0\xa0"
3328
3406
  }),
3329
3407
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3330
- className: "cds",
3331
- children: "--Coding exon--"
3408
+ className: "utr5-other",
3409
+ children: "\xa0\xa0"
3332
3410
  }),
3411
+ "\xa0CDS\xa0",
3333
3412
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3334
- className: "intron",
3335
- children: "--intron--"
3413
+ className: "cds",
3414
+ children: "\xa0\xa0"
3336
3415
  }),
3337
3416
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3338
- className: "cds",
3339
- children: "--Coding exon--"
3417
+ className: "cds-other",
3418
+ children: "\xa0\xa0"
3340
3419
  }),
3420
+ "\xa03'UTR\xa0",
3341
3421
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3342
3422
  className: "utr3",
3343
- children: "--3'UTR--"
3423
+ children: "\xa0\xa0"
3344
3424
  }),
3345
3425
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3346
- className: "downstream",
3347
- children: "--downstream--"
3348
- }),
3349
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {}),
3350
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {})
3351
- ]
3352
- }),
3353
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("code", {
3354
- className: "fasta",
3355
- children: [
3356
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("span", {
3357
- className: "header",
3358
- children: [
3359
- ">",
3360
- props.id
3361
- ]
3362
- }),
3363
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {}),
3364
- props.blocks.map((block, idx)=>/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3365
- className: block.kind,
3366
- children: block.seq
3367
- }, idx))
3426
+ className: "utr3-other",
3427
+ children: "\xa0\xa0"
3428
+ })
3368
3429
  ]
3369
3430
  }),
3370
3431
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("button", {
@@ -3379,7 +3440,34 @@ const $527ebc19dc92444d$var$CodeBlock = (props)=>{
3379
3440
  ]
3380
3441
  });
3381
3442
  };
3382
- const $527ebc19dc92444d$var$decorateDNA = (geneSeq, gene, up, down, tid)=>{
3443
+ const $527ebc19dc92444d$var$decoratePeptide = (seq, transcript)=>{
3444
+ let junctions = [];
3445
+ transcript.exon_junctions.forEach((ej, idx)=>{
3446
+ if (ej > transcript.cds.start && ej <= transcript.cds.end) junctions.push(Math.floor((ej - transcript.cds.start) / 3));
3447
+ });
3448
+ if (junctions.length === 0) return [
3449
+ {
3450
+ kind: "cds",
3451
+ seq: seq
3452
+ }
3453
+ ];
3454
+ let offset = 0;
3455
+ let blocks = [];
3456
+ junctions.forEach((j, idx)=>{
3457
+ let kind = idx % 2 === 0 ? "cds" : "cds-other";
3458
+ blocks.push({
3459
+ kind: kind,
3460
+ seq: seq.substring(offset, j)
3461
+ });
3462
+ offset = j;
3463
+ });
3464
+ blocks.push({
3465
+ kind: junctions.length % 2 === 0 ? "cds" : "cds-other",
3466
+ seq: seq.substring(junctions.pop())
3467
+ });
3468
+ return blocks;
3469
+ };
3470
+ const $527ebc19dc92444d$var$decorateSeq = (geneSeq, gene, up, down, tid, mode)=>{
3383
3471
  // return a list of blocks with kind and seq properties
3384
3472
  let blocks = [];
3385
3473
  const transcript = gene.gene_structure.transcripts.find((tr)=>tr.id === tid);
@@ -3395,23 +3483,24 @@ const $527ebc19dc92444d$var$decorateDNA = (geneSeq, gene, up, down, tid)=>{
3395
3483
  let pos_in_transcript = 0;
3396
3484
  let pos_in_gene = 0;
3397
3485
  let blockType = "utr5";
3486
+ let extra = "";
3398
3487
  transcript.exons.forEach((eid, e_idx)=>{
3399
3488
  const exon = gene.gene_structure.exons.find((exon)=>exon.id === eid);
3400
- if (exon.start > 1) {
3401
- let intronBlock = {
3489
+ if (e_idx > 0 && mode === "dna") {
3490
+ blocks.push({
3402
3491
  kind: "intron",
3403
3492
  seq: geneSeq.seq.substring(offset + pos_in_gene, offset + exon.start - 1).toLowerCase()
3404
- };
3405
- // actually, don't do this blocks.push(intronBlock);
3493
+ });
3406
3494
  pos_in_gene = exon.start - 1;
3407
3495
  }
3496
+ if (mode === "rna") extra = e_idx % 2 === 1 ? "-other" : "";
3408
3497
  let exon_length = exon.end - exon.start + 1;
3409
3498
  if (transcript.cds && pos_in_transcript < transcript.cds.start && pos_in_transcript + exon_length >= transcript.cds.start) {
3410
3499
  // CDS starts in this exon
3411
3500
  const utr5_len = transcript.cds.start - pos_in_transcript - 1;
3412
3501
  if (utr5_len > 0) {
3413
3502
  blocks.push({
3414
- kind: blockType,
3503
+ kind: blockType + extra,
3415
3504
  seq: geneSeq.seq.substring(offset + pos_in_gene, offset + pos_in_gene + utr5_len)
3416
3505
  });
3417
3506
  exon_length -= utr5_len;
@@ -3425,7 +3514,7 @@ const $527ebc19dc92444d$var$decorateDNA = (geneSeq, gene, up, down, tid)=>{
3425
3514
  const cds_len = transcript.cds.end - pos_in_transcript;
3426
3515
  if (cds_len > 0) {
3427
3516
  blocks.push({
3428
- kind: blockType,
3517
+ kind: blockType + extra,
3429
3518
  seq: geneSeq.seq.substring(offset + pos_in_gene, offset + pos_in_gene + cds_len)
3430
3519
  });
3431
3520
  exon_length -= cds_len;
@@ -3435,7 +3524,7 @@ const $527ebc19dc92444d$var$decorateDNA = (geneSeq, gene, up, down, tid)=>{
3435
3524
  blockType = "utr3";
3436
3525
  }
3437
3526
  if (exon_length > 0) blocks.push({
3438
- kind: blockType,
3527
+ kind: blockType + extra,
3439
3528
  seq: geneSeq.seq.substring(offset + pos_in_gene, offset + pos_in_gene + exon_length)
3440
3529
  });
3441
3530
  pos_in_gene = exon.end;
@@ -3460,7 +3549,13 @@ const $527ebc19dc92444d$var$buildId = (gene, geneSeq, up, down)=>{
3460
3549
  };
3461
3550
  const $527ebc19dc92444d$var$Detail = (props)=>{
3462
3551
  const gene = props.geneDocs[props.searchResult.id];
3552
+ const [tab, setTab] = (0, $gXNCa$react.useState)("dna");
3553
+ const [upstream, setUpstream] = (0, $gXNCa$react.useState)(0);
3554
+ const [downstream, setDownstream] = (0, $gXNCa$react.useState)(0);
3555
+ const [tid, setTid] = (0, $gXNCa$react.useState)(gene.gene_structure.canonical_transcript);
3463
3556
  let geneSeq;
3557
+ let rnaSeq;
3558
+ let pepSeq;
3464
3559
  if (props.geneSequences && props.geneSequences[gene._id]) geneSeq = props.geneSequences[gene._id];
3465
3560
  else {
3466
3561
  props.doRequestGeneSequence(gene);
@@ -3468,12 +3563,30 @@ const $527ebc19dc92444d$var$Detail = (props)=>{
3468
3563
  children: "loading"
3469
3564
  });
3470
3565
  }
3566
+ if (props.rnaSequences && props.rnaSequences[tid]) rnaSeq = props.rnaSequences[tid];
3567
+ else {
3568
+ props.doRequestRnaSequence(tid, gene);
3569
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("pre", {
3570
+ children: "loading"
3571
+ });
3572
+ }
3471
3573
  const maxUp = gene.location.strand === 1 ? gene.location.start - geneSeq.start : geneSeq.end - gene.location.end;
3472
3574
  const maxDown = gene.location.strand === -1 ? gene.location.start - geneSeq.start : geneSeq.end - gene.location.end;
3473
- const [upstream, setUpstream] = (0, $gXNCa$react.useState)(0);
3474
- const [downstream, setDownstream] = (0, $gXNCa$react.useState)(0);
3475
- const [tid, setTid] = (0, $gXNCa$react.useState)(gene.gene_structure.canonical_transcript);
3575
+ const transcript = gene.gene_structure.transcripts.find((tr)=>tr.id === tid);
3576
+ let tl_id;
3577
+ if (transcript.translation) {
3578
+ tl_id = transcript.translation.id;
3579
+ if (props.pepSequences && props.pepSequences[tl_id]) pepSeq = props.pepSequences[tl_id];
3580
+ else {
3581
+ props.doRequestPepSequence(tl_id, gene);
3582
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("pre", {
3583
+ children: "loading"
3584
+ });
3585
+ }
3586
+ }
3476
3587
  return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Tabs), {
3588
+ activeKey: tab,
3589
+ onSelect: (k)=>setTab(k),
3477
3590
  children: [
3478
3591
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Tab), {
3479
3592
  tabClassName: "dna",
@@ -3612,24 +3725,106 @@ const $527ebc19dc92444d$var$Detail = (props)=>{
3612
3725
  geneSeq && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)($527ebc19dc92444d$var$CodeBlock, {
3613
3726
  id: $527ebc19dc92444d$var$buildId(gene, geneSeq, +upstream, +downstream),
3614
3727
  seq: geneSeq.seq.substring(maxUp - +upstream, maxUp + gene.location.end - gene.location.start + 1 + +downstream),
3615
- blocks: $527ebc19dc92444d$var$decorateDNA(geneSeq, gene, +upstream, +downstream, tid)
3728
+ blocks: $527ebc19dc92444d$var$decorateSeq(geneSeq, gene, +upstream, +downstream, tid, "dna")
3616
3729
  })
3617
3730
  ]
3618
3731
  }),
3619
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Tab), {
3620
- tabClassName: "cdna",
3621
- eventKey: "cdna",
3622
- title: "Transcript sequence"
3732
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Tab), {
3733
+ tabClassName: "rna",
3734
+ eventKey: "rna",
3735
+ title: "Transcript sequence",
3736
+ children: [
3737
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Container), {
3738
+ style: {
3739
+ width: "100ch",
3740
+ marginLeft: 0
3741
+ },
3742
+ children: gene.gene_structure.transcripts.length > 1 && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Row), {
3743
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Col), {
3744
+ children: [
3745
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("b", {
3746
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("i", {
3747
+ children: "Select transcript"
3748
+ })
3749
+ }),
3750
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {}),
3751
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.ButtonGroup), {
3752
+ children: gene.gene_structure.transcripts.sort((a, b)=>a.id.localeCompare(b.id)).map((tr, idx)=>{
3753
+ let v = tr.id === gene.gene_structure.canonical_transcript ? "primary" : "secondary";
3754
+ if (tr.id !== tid) v = `outline-${v}`;
3755
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.ToggleButton), {
3756
+ variant: v,
3757
+ id: `radio-${idx}`,
3758
+ type: "radio",
3759
+ name: tr.id,
3760
+ value: tr.id,
3761
+ checked: tr.id === tid,
3762
+ onChange: (e)=>setTid(e.currentTarget.value),
3763
+ children: tr.id
3764
+ }, idx);
3765
+ })
3766
+ })
3767
+ ]
3768
+ })
3769
+ })
3770
+ }),
3771
+ geneSeq && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)($527ebc19dc92444d$var$CodeBlock, {
3772
+ id: tid,
3773
+ seq: rnaSeq.seq,
3774
+ blocks: $527ebc19dc92444d$var$decorateSeq(geneSeq, gene, 0, 0, tid, "rna")
3775
+ })
3776
+ ]
3623
3777
  }),
3624
- gene.biotype === "protein_coding" && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Tab), {
3778
+ gene.biotype === "protein_coding" && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Tab), {
3625
3779
  tabClassName: "pep",
3626
3780
  eventKey: "pep",
3627
- title: "Peptide sequence"
3781
+ title: "Peptide sequence",
3782
+ children: [
3783
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Container), {
3784
+ style: {
3785
+ width: "100ch",
3786
+ marginLeft: 0
3787
+ },
3788
+ children: gene.gene_structure.transcripts.length > 1 && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Row), {
3789
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)((0, $gXNCa$reactbootstrap.Col), {
3790
+ children: [
3791
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("b", {
3792
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("i", {
3793
+ children: "Select transcript"
3794
+ })
3795
+ }),
3796
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("br", {}),
3797
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.ButtonGroup), {
3798
+ children: gene.gene_structure.transcripts.sort((a, b)=>a.id.localeCompare(b.id)).map((tr, idx)=>{
3799
+ let v = tr.id === gene.gene_structure.canonical_transcript ? "primary" : "secondary";
3800
+ if (tr.id !== tid) v = `outline-${v}`;
3801
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.ToggleButton), {
3802
+ variant: v,
3803
+ id: `radio-${idx}`,
3804
+ type: "radio",
3805
+ name: tr.id,
3806
+ value: tr.id,
3807
+ checked: tr.id === tid,
3808
+ onChange: (e)=>setTid(e.currentTarget.value),
3809
+ children: tr.id
3810
+ }, idx);
3811
+ })
3812
+ })
3813
+ ]
3814
+ })
3815
+ })
3816
+ }),
3817
+ geneSeq && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)($527ebc19dc92444d$var$CodeBlock, {
3818
+ id: tl_id,
3819
+ seq: pepSeq.seq,
3820
+ blocks: $527ebc19dc92444d$var$decoratePeptide(pepSeq.seq, transcript)
3821
+ })
3822
+ ]
3628
3823
  })
3629
3824
  ]
3630
3825
  });
3631
3826
  };
3632
- var $527ebc19dc92444d$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.connect)("selectConfiguration", "selectGeneSequences", "doRequestGeneSequence", $527ebc19dc92444d$var$Detail);
3827
+ var $527ebc19dc92444d$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.connect)("selectConfiguration", "selectGeneSequences", "selectRnaSequences", "selectPepSequences", "doRequestGeneSequence", "doRequestRnaSequence", "doRequestPepSequence", $527ebc19dc92444d$var$Detail);
3633
3828
 
3634
3829
 
3635
3830