Skip to content

Commit

Permalink
Create a pairing option without redispatches
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Nov 13, 2018
1 parent cc763aa commit 394fa03
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/JBrowse/Store/SeqFeature/BAM.js
Expand Up @@ -218,7 +218,7 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, In
seqName = this.browser.regularizeReferenceName( seqName );
const pairCache = {};

this.bam.getRecordsForRange(seqName, query.start, query.end, {viewAsPairs: query.viewAsPairs})
this.bam.getRecordsForRange(seqName, query.start, query.end)
.then(records => {
if(query.viewAsPairs) {
const recs = records.map(f => this._bamRecordToFeature(f))
Expand Down
3 changes: 1 addition & 2 deletions src/JBrowse/Store/SeqFeature/CRAM.js
Expand Up @@ -4,7 +4,6 @@ const { IndexedCramFile, CraiIndex } = cjsRequire('@gmod/cram')
const cramIndexedFilesCache = LRU(5)

const BlobFilehandleWrapper = cjsRequire('../../Model/BlobFilehandleWrapper')
const MAX_INSERT_SIZE_FOR_STATS = 30000

class CramSlightlyLazyFeature {

Expand Down Expand Up @@ -293,7 +292,7 @@ return declare( [ SeqFeatureStore, DeferredStatsMixin, DeferredFeaturesMixin, Gl
endCallback()
return
}
this.cram.getRecordsForRange(refSeqNumber, query.start + 1, query.end, {viewAsPairs: query.viewAsPairs})
this.cram.getRecordsForRange(refSeqNumber, query.start + 1, query.end)
.then(records => {
if(query.viewAsPairs) {
const recs = records.map(f => this._cramRecordToFeature(f))
Expand Down
38 changes: 34 additions & 4 deletions src/JBrowse/Store/SeqFeature/_PairCache.js
Expand Up @@ -70,9 +70,7 @@ return declare(null, {
}
if(feat.read1 && feat.read2) {
delete pairCache[name]
if(this.insertMaxSize > feat.get('end') - feat.get('start')) {
this.featureCache[name] = feat
}
this.featureCache[name] = feat
}
}
else {
Expand All @@ -87,11 +85,43 @@ return declare(null, {
pairCache[name] = feat
}
}
else if(!(records[i]._get('end') < query.start) && !(records[i]._get('start') > query.end)){

else if(!(records[i]._get('end') < query.start) && !(records[i]._get('start') > query.end)) {
let feat = records[i]
featCallback(feat)
}

}
Object.entries(pairCache).forEach(([k, v]) => {
console.log(k, v)
if(v.read1 && v.read1.mate) {
v.read2 = new SimpleFeature({
id: k,
data: {
start: v.read1.mate.alignmentStart,
end: v.read1.mate.alignmentStart+1,
seq_id: v.read1.mate.sequenceId
}
})
this.featureCache[name] = v
} else if(v.read2 && v.read2.mate) {
v.read1 = new SimpleFeature({
id: k,
data: {
start: v.read2.mate.alignmentStart,
end: v.read2.mate.alignmentStart+1,
seq_id: v.read2.mate.sequenceId
}
})
this.featureCache[name] = v
}
})

// Object.entries(this.featureCache).forEach(([k, v]) => {
// if((v.read1 && !v.read2) || (v.read2 && !v.read1)) {
// console.log(k)
// }
// })
Object.entries(this.featureCache).forEach(([k, v]) => {
if(v._get('end') > query.start && v._get('start') < query.end) {
featCallback(v)
Expand Down

0 comments on commit 394fa03

Please sign in to comment.