Skip to content

Commit c14254f

Browse files
committed
Bugfix to JBrowse VariantTable sample filtering
1 parent 8bdf720 commit c14254f

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

jbrowse/src/client/JBrowse/utils.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ export function passesSampleFilters(feature, sampleIDs){
3333

3434
const featureVariant = feature.variant ?? feature.data
3535

36-
if (!featureVariant.SAMPLES || isEmptyObject(featureVariant.SAMPLES)) {
36+
const samples = featureVariant.SAMPLES || featureVariant.samples
37+
if (!samples || isEmptyObject(samples)) {
3738
return false
3839
}
3940

@@ -49,8 +50,8 @@ export function passesSampleFilters(feature, sampleIDs){
4950
}
5051

5152
for (const sampleId of sampleIDs) {
52-
if (featureVariant.SAMPLES[sampleId]) {
53-
const gt = featureVariant.SAMPLES[sampleId]["GT"][0]
53+
if (samples[sampleId]) {
54+
const gt = samples[sampleId]["GT"][0]
5455

5556
// If any sample in the whitelist is non-WT, show this site. Otherwise filter.
5657
if (isVariant(gt)) {
@@ -100,7 +101,7 @@ export async function fetchSession(queryParam, sessionId, nativePlugins, refThem
100101
delete jsonRes.themeLightColor
101102
delete jsonRes.themeDarkColor
102103

103-
if(setBgColor) {
104+
if (setBgColor) {
104105
setBgColor(themeSecondaryColor)
105106
}
106107

@@ -214,15 +215,23 @@ export function navigateToBrowser(sessionId, locString, trackId?: string, track?
214215
}
215216

216217
function serializeSampleFilters(track) {
217-
if(!track) {
218+
if (!track) {
219+
return undefined
220+
}
221+
222+
if (!track.configuration.displays[0].renderer.activeSamples.value) {
218223
return undefined
219224
}
220225

221226
return track.configuration.trackId + ":" + track.configuration.displays[0].renderer.activeSamples.value
222227
}
223228

224229
function serializeInfoFilters(track) {
225-
if(!track) {
230+
if (!track) {
231+
return undefined
232+
}
233+
234+
if (!track.configuration.displays[0].renderer.infoFilters.valueJSON || isEmptyObject(track.configuration.displays[0].renderer.infoFilters.valueJSON)) {
226235
return undefined
227236
}
228237

@@ -232,8 +241,8 @@ function serializeInfoFilters(track) {
232241
function handleFailure(error, sessionId?, trackId?, isTable?) {
233242
alert(error)
234243

235-
if(sessionId && trackId) {
236-
if(isTable) {
244+
if (sessionId && trackId) {
245+
if (isTable) {
237246
navigateToTable(sessionId, "", trackId)
238247
} else {
239248
navigateToBrowser(sessionId, "", trackId)

0 commit comments

Comments
 (0)