From 3f9f209a2872b42b3ac07f796ef5c6d05b4770fd Mon Sep 17 00:00:00 2001 From: Alyssa Morrow Date: Sun, 11 Jun 2017 19:56:04 -0700 Subject: [PATCH 1/2] Fixed overlap issue for Variants and Coverage display --- src/main/sources/CoverageDataSource.js | 2 +- src/main/sources/VariantDataSource.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/sources/CoverageDataSource.js b/src/main/sources/CoverageDataSource.js index ab796239..92ff4ba3 100644 --- a/src/main/sources/CoverageDataSource.js +++ b/src/main/sources/CoverageDataSource.js @@ -40,7 +40,7 @@ function keyFunction(p: PositionCount): string { } function filterFunction(range: ContigInterval, p: PositionCount): boolean { - return range.chrContainsLocus(p.contig, p.start); + return range.chrIntersects(new ContigInterval(p.contig, p.start, p.end)); } function createFromCoverageUrl(remoteSource: RemoteRequest): CoverageDataSource { diff --git a/src/main/sources/VariantDataSource.js b/src/main/sources/VariantDataSource.js index 9e8a603e..cbdf5484 100644 --- a/src/main/sources/VariantDataSource.js +++ b/src/main/sources/VariantDataSource.js @@ -41,7 +41,7 @@ function keyFunction(vc: VariantContext): string { } function filterFunction(range: ContigInterval, vc: VariantContext): boolean { - return range.chrContainsLocus(vc.variant.contig, vc.variant.position); + return range.chrIntersects(new ContigInterval(vc.variant.contig, vc.variant.position, vc.variant.end)); } function createFromVariantUrl(remoteSource: RemoteRequest, From dfd1638a6c853806413475e8a48f8116ba2f7bc9 Mon Sep 17 00:00:00 2001 From: Alyssa Morrow Date: Sun, 11 Jun 2017 20:05:03 -0700 Subject: [PATCH 2/2] Fixed off by 1 error for Variant display --- src/main/sources/VariantDataSource.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/sources/VariantDataSource.js b/src/main/sources/VariantDataSource.js index cbdf5484..fb6cad7a 100644 --- a/src/main/sources/VariantDataSource.js +++ b/src/main/sources/VariantDataSource.js @@ -79,6 +79,14 @@ function createFromVariantUrl(remoteSource: RemoteRequest, if (response !== null) { // parse VariantContexts var variants = _.map(response, v => JSON.parse(v)); + + // GA4GH schemas are 0-based, so we adjust the variant position + // by 1 to display correctly + variants = _.map(variants, v => { + v.variant.position += 1; + v.variant.end += 1; + return v; + }); variants.forEach(v => cache.put(v, resolution)); } console.info(`Fetched variants from server:", ${new Date().getTime() - startTimeMilliseconds}`);