Skip to content

Commit

Permalink
Cleanup some request logic that makes pairing better
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Nov 18, 2018
1 parent 2c8823a commit ff65ec4
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
6 changes: 3 additions & 3 deletions src/JBrowse/Store/SeqFeature/BAM.js
Expand Up @@ -237,6 +237,7 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, In
let seqName = query.ref || this.refSeq.name
seqName = this.browser.regularizeReferenceName( seqName );
const pairCache = {};
console.log(query)

this.bam.getRecordsForRange(seqName, query.start, query.end, {viewAsPairs: query.viewAsPairs})
.then(records => {
Expand All @@ -260,14 +261,13 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, In
pairCache[name] = feat
}
}
else {
else if(!(records[i].get('end') < query.start) && !(records[i].get('start') > query.end)){
let feat = this._bamRecordToFeature(records[i])
featCallback(feat)
}
}
console.log(Object.keys(this.featureCache).length)
Object.entries(this.featureCache).forEach(([k, v]) => {
if(v.get('end') - v.get('start') < 10000) {
if(v.get('end') - v.get('start') < 10000 && (v.get('end') > query.start && v.get('start') < query.end)) {
featCallback(v)
}
})
Expand Down
41 changes: 22 additions & 19 deletions src/JBrowse/View/Track/Alignments2.js
Expand Up @@ -17,6 +17,10 @@ define( [

return declare( [ CanvasFeatureTrack, AlignmentsMixin ], {

constructor: function() {
this.fetchMap = {}
},

_defaultConfig: function() {
var c = Util.deepUpdate(
dojo.clone( this.inherited(arguments) ),
Expand Down Expand Up @@ -144,25 +148,24 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], {
fillBlock: function( args ) {
if(this.config.viewAsPairs) {
let supermethod = this.getInherited(arguments)
var initial = new Promise((resolve, reject) => {
var reg = this.browser.view.visibleRegion()
var len = reg.end - reg.start
console.log(len)
const region = {
ref: this.refSeq.name,
start: Math.max( 0, reg.start ),
end: reg.end,
viewAsPairs: true
}
region.start = Math.max( 0, region.start )
region.end = region.end

this.store.getPairedRanges(region, range => {
region.start = range.min
region.end = range.max
this.store.getFeatures(region, function() {}, resolve, reject)
}, reject)
}).then(() => {
var reg = this.browser.view.visibleRegion()
var len = reg.end - reg.start
const region = {
ref: this.refSeq.name,
start: Math.max( 0, reg.start ),
end: reg.end,
viewAsPairs: true
}

const min = Math.max(0, region.start - len*4)
const max = region.end + len*4
const str = min + '_' + max
if(!this.fetchMap[str]) {
this.fetchMap[str] = new Promise((resolve, reject) => {
this.store.getFeatures({ ref: this.refSeq.name, start: min, end: max, viewAsPairs: true }, () => { /* do nothing */}, resolve, reject)
})
}
this.fetchMap[str].then(() => {
supermethod.apply(this, [args])
})
} else {
Expand Down

0 comments on commit ff65ec4

Please sign in to comment.