Skip to content
This repository has been archived by the owner on Jan 17, 2022. It is now read-only.

Commit

Permalink
Generalize igv image directive
Browse files Browse the repository at this point in the history
Now only dependent on sample, chr and pos instead of variant instance.
  • Loading branch information
Marius Wöste committed Feb 2, 2018
1 parent 3278b93 commit b0ed85a
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 25 deletions.
28 changes: 15 additions & 13 deletions public/viper/igv-image/IgvImageDirective.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ var module = angular.module('de.imi.marw.viper.igv.image', [

Ctrl.sleepMillis = 1000;

Ctrl.variant = null;
Ctrl.chrColumn = null;
Ctrl.bpColumn = null;
Ctrl.sample = null;
Ctrl.chr = null;
Ctrl.pos = null;
Ctrl.breakpointImageLink = null;
Ctrl.igvConfigurationHash = null;

Expand All @@ -40,25 +40,27 @@ var module = angular.module('de.imi.marw.viper.igv.image', [

function init () {

$scope.$watch(function () { return { variant: Ctrl.variant, hash: Ctrl.igvConfigurationHash }; }, Ctrl.onUpdate, true);
$scope.$watch(function () { return { sample: Ctrl.sample, chr: Ctrl.chr, pos: Ctrl.pos, hash: Ctrl.igvConfigurationHash }; }, Ctrl.onUpdate, true);

}

function onUpdate (newVal, oldVal) {

var variant = newVal.variant;
var sample = newVal.sample;
var chr = newVal.chr;
var pos = newVal.pos;
var hash = newVal.hash;

if (variant == null || hash == null) return;
if (sample == null || chr == null || pos == null || hash == null) return;

var key = Ctrl.getSnapshotKey(variant, hash);
var key = Ctrl.getSnapshotKey(sample, chr, pos, hash);

Ctrl.isSnapshotAvailable(key)
.then(function (res) {

var isAvailable = res.data;

var currentKey = Ctrl.getSnapshotKey(Ctrl.variant, Ctrl.igvConfigurationHash);
var currentKey = Ctrl.getSnapshotKey(Ctrl.sample, Ctrl.chr, Ctrl.pos, Ctrl.igvConfigurationHash);

if (currentKey === key && res.data === 'true') {

Expand Down Expand Up @@ -88,17 +90,17 @@ var module = angular.module('de.imi.marw.viper.igv.image', [
return promise;
}

function getSnapshotKey(variant, hash) {
return variant['sample'] + '-' + variant[Ctrl.chrColumn] + '-' + variant[Ctrl.bpColumn] + "-" + hash;
function getSnapshotKey(sample, chr, pos, hash) {
return sample + '-' + chr + '-' + pos + "-" + hash;
}

}])
.directive('igvImage', [ function () {
return {
scope: {
variant: '=variant',
chrColumn: '=chrColumn',
bpColumn: '=bpColumn',
sample: '=sample',
chr: '=chr',
pos: '=pos',
igvConfigurationHash: '=igvConfigurationHash'
},
restrict: 'E',
Expand Down
6 changes: 3 additions & 3 deletions public/viper/igv-image/igv-image.tpl.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
-->
<h3>Breakpoint:
<small>
{{ igvImageController.variant['sample'] }},
{{ igvImageController.variant[igvImageController.chrColumn] }}
{{ igvImageController.sample }},
{{ igvImageController.chr }}
:
{{ igvImageController.variant[igvImageController.bpColumn] }}
{{ igvImageController.pos }}
</small>
</h3>

Expand Down
12 changes: 6 additions & 6 deletions public/viper/pages/inspector/inspector.html
Original file line number Diff line number Diff line change
Expand Up @@ -196,18 +196,18 @@ <h4>Visualization settings</h4>

<div class="col-md-6">
<igv-image
variant="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]"
chr-column="'chr1'"
bp-column="'bp1'"
sample="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['sample']"
chr="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['chr1']"
pos="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['bp1']"
igv-configuration-hash="inspectorCtrl.configurationHash">
</igv-image>
</div>

<div class="col-md-6">
<igv-image
variant="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]"
chr-column="'chr2'"
bp-column="'bp2'"
sample="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['sample']"
chr="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['chr2']"
pos="inspectorCtrl.relatedVariants[inspectorCtrl.relatedCallIndex]['bp2']"
igv-configuration-hash="inspectorCtrl.configurationHash">
</igv-image>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,9 @@ public boolean isSnapshotDone(String key) {
return this.visualizationProgressMap.getOrDefault(key, false);
}

public synchronized void scheduleSnapshot(String sample, String chr, int bp, boolean isUrgent) {
public synchronized void scheduleSnapshot(String sample, String chr, int pos, boolean isUrgent) {

String key = sample + "-" + chr + "-" + bp + "-" + this.getConfigurationHash();
String key = sample + "-" + chr + "-" + pos + "-" + this.getConfigurationHash();
boolean snapshotAlreadyScheduled = this.visualizationProgressMap.containsKey(key);

if (snapshotAlreadyScheduled && (!isUrgent || this.visualizationProgressMap.get(key))) {
Expand All @@ -227,7 +227,7 @@ public synchronized void scheduleSnapshot(String sample, String chr, int bp, boo
"new",
"load " + bamName,
"collapse",
"goto " + chr + ":" + (bp - configViewRange) + "-" + (bp + configViewRange),
"goto " + chr + ":" + (pos - configViewRange) + "-" + (pos + configViewRange),
"snapshot " + imageFileName
};

Expand Down

0 comments on commit b0ed85a

Please sign in to comment.