Skip to content

Commit 8daab32

Browse files
authored
Bug Fixes (#306)
* Do not convert chromosome names to lower case * Bug fix: change to html to allow presentation of Dropbox chooser from Juicebox panel * css tweaks * IGV and Juicebox panels: dropdown menu css tweaks * CNDB bug fix: support loading from ensemble group list * Ensemble Group List: now properly sorted
1 parent ca05964 commit 8daab32

11 files changed

+80
-10
lines changed

index.html

+8-2
Original file line numberDiff line numberDiff line change
@@ -452,9 +452,15 @@
452452
<!-- Hi-C map file chooser -->
453453
<li id="hic-file-chooser-dropdown" class="list-group-item mx-auto py-1 ps-1">
454454
<div class="dropdown">
455-
<button id="hic-contact-map-dropdown" class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
455+
456+
<!-- <button id="hic-contact-map-dropdown" class="dropdown-toggle btn btn-sm btn-outline-secondary" type="button" data-bs-toggle="dropdown">-->
457+
<!-- Load Hi-C Map-->
458+
<!-- </button>-->
459+
460+
<a id="hic-contact-map-dropdown" class="dropdown-toggle" data-bs-toggle="dropdown">
456461
Load Hi-C Map
457-
</button>
462+
</a>
463+
458464
<ul class="dropdown-menu">
459465

460466
<!-- ENCODE Maps -->

js/datasource/CNDBDatasource.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class CNDBDatasource extends DataSourceBase {
2424

2525
this.isPointCloud = await isPointCloud(hdf5, this.replicaKeys)
2626

27-
await this.updateWithReplicaKey(this.replicaKeys[ 0 ])
27+
await this.updateWithEnsembleGroupKey(this.replicaKeys[ 0 ])
2828

2929
hideGlobalSpinner()
3030

@@ -43,7 +43,7 @@ class CNDBDatasource extends DataSourceBase {
4343
return { sample: 'Unspecified Sample', genomeAssembly }
4444
}
4545

46-
async updateWithReplicaKey(replicaKey) {
46+
async updateWithEnsembleGroupKey(replicaKey) {
4747

4848
this.currentReplicaKey = replicaKey
4949

js/juicebox/juiceboxPanel.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ function juiceboxMouseHandler({ xBP, yBP, startXBP, startYBP, endXBP, endYBP, in
298298
function isLiveMapSupported() {
299299

300300
const { chr } = ensembleManager.locus
301-
const chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
301+
// const chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
302+
const chromosome = igvPanel.browser.genome.getChromosome(chr)
302303
if (undefined === chromosome) {
303304
console.warn(`Live Maps are not available for chromosome ${ chr }. No associated genome found`)
304305
return false

js/juicebox/liveMapState.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ class LiveMapState extends hic.State {
2020
const [ xBin, yBin] = [ genomicStart / binSize, genomicStart / binSize ]
2121

2222
// chromosome index
23-
const chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
23+
// const chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
24+
const chromosome = igvPanel.browser.genome.getChromosome(chr)
2425
let { order } = chromosome
2526

2627
super(1 + order, 1 + order, 0, xBin, yBin, width, height, pixelSize, 'NONE')

js/panel.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import igv from 'igv'
21
import SpacewalkEventBus from './spacewalkEventBus.js'
32
import { makeDraggable } from "./utils/draggable.js"
43

js/spacewalkFileLoadWidgetServices.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,21 @@ function createAndConfigureEnsembleGroupSelectModal(parentElement, ensembleGroup
173173

174174
selectElement.appendChild(createPlaceholderOptionElement())
175175

176-
for (const key of data ) {
176+
// sort
177+
const sorted = data.sort((a, b) => {
178+
// Extract the first number after the initial string
179+
const firstNumberA = parseInt(a.match(/^\D+(\d+)/)?.[1] || 0, 10);
180+
const firstNumberB = parseInt(b.match(/^\D+(\d+)/)?.[1] || 0, 10);
181+
182+
// Extract the second number, whether it's foo23, foo_23, or foo_03
183+
const secondNumberA = parseInt(a.match(/\D(\d+)$/)?.[1] || 0, 10);
184+
const secondNumberB = parseInt(b.match(/\D(\d+)$/)?.[1] || 0, 10);
185+
186+
// Sort by the first number, then by the second number
187+
return firstNumberA - firstNumberB || secondNumberA - secondNumberB;
188+
});
189+
190+
for (const key of sorted ) {
177191
const html = `<option value=\"${ key }\">${ key }</option>`
178192
const fragment = document.createRange().createContextualFragment(html)
179193
selectElement.appendChild(fragment.firstChild)

js/utils/liveMapUtils.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import SWBDatasource from "../datasource/SWBDatasource.js"
44
async function enableLiveMaps() {
55

66
const { chr } = ensembleManager.locus
7-
const chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
7+
8+
// let chromosome = igvPanel.browser.genome.getChromosome(chr.toLowerCase())
9+
const chromosome = igvPanel.browser.genome.getChromosome(chr)
810

911
if (chromosome) {
1012
if (ensembleManager.datasource instanceof SWBDatasource) {

styles/_igv_panel.scss

+10
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@ $spacewalk_igv_panel_heigth: 256px;
8484

8585
a.dropdown-toggle {
8686
color: unset;
87+
text-decoration-line: unset;
88+
cursor: pointer;
89+
}
90+
91+
a.dropdown-toggle:hover {
92+
border-color: rgba(0, 0, 0, 0.3);
93+
border-style: solid;
94+
border-width: thin;
95+
border-radius: 2px;
96+
padding: 4px;
8797
}
8898
}
8999

styles/_juicebox_panel.scss

+16
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,22 @@
2222
.list-group {
2323
width: 100%;
2424
background-color: white;
25+
26+
#hic-contact-map-dropdown.dropdown-toggle {
27+
color: unset;
28+
text-decoration-line: unset;
29+
cursor: pointer;
30+
}
31+
32+
#hic-contact-map-dropdown.dropdown-toggle:hover {
33+
border-color: rgba(0, 0, 0, 0.3);
34+
border-style: solid;
35+
border-width: thin;
36+
border-radius: 2px;
37+
padding: 4px;
38+
}
39+
40+
2541
#hic-live-contact-frequency-map-threshold-widget.list-group-item {
2642
div.input-group {
2743
width: 200px;

styles/app.css

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

styles/app.css.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)