diff --git a/src/SamRead.js b/src/SamRead.js index 01c48f35..f6a91fbc 100644 --- a/src/SamRead.js +++ b/src/SamRead.js @@ -49,7 +49,7 @@ class SamRead { toString(): string { var stop = this.pos + this.l_seq; - return `${this.refID}:${this.pos}-${stop}`; + return `${this.refID}:${1+this.pos}-${stop}`; } _getJDataView(): jDataView { @@ -70,10 +70,6 @@ class SamRead { var jb = new jBinary(this.buffer, bamTypes.TYPE_SET); return jb.read(bamTypes.ThickAlignment, 0); } - - intersects(range: ContigInterval): boolean { - return false; - } } module.exports = SamRead; diff --git a/test/bam-test.js b/test/bam-test.js index bbdab15f..e07afd8f 100644 --- a/test/bam-test.js +++ b/test/bam-test.js @@ -62,11 +62,6 @@ describe('BAM', function() { done(); }).done(); }); - - function alignmentRange(alignment) { - var stop = alignment.pos + alignment.l_seq; - return `${alignment.refID}:${1+alignment.pos}-${stop}`; - } // This matches htsjdk's BamFileIndexTest.testSpecificQueries it('should find sequences using an index', function(done) { @@ -77,11 +72,11 @@ describe('BAM', function() { var range = new ContigInterval('chrM', 10400, 10600); bam.getAlignmentsInRange(range, true).then(alignments => { expect(alignments).to.have.length(1); - expect(alignmentRange(alignments[0])).to.equal('0:10427-10477'); + expect(alignments[0].toString()).to.equal('0:10427-10477'); return bam.getAlignmentsInRange(range, false).then(alignments => { expect(alignments).to.have.length(2); - expect(alignmentRange(alignments[0])).to.equal('0:10388-10438'); - expect(alignmentRange(alignments[1])).to.equal('0:10427-10477'); + expect(alignments[0].toString()).to.equal('0:10388-10438'); + expect(alignments[1].toString()).to.equal('0:10427-10477'); done(); }); }).done(); @@ -104,7 +99,7 @@ describe('BAM', function() { bam.getAlignmentsInRange(range).then(reads => { // Note: htsjdk returns contig names like 'chr18', not 18. expect(reads).to.have.length(14); - expect(reads.map(alignmentRange)).to.deep.equal([ + expect(reads.map(r => r.toString())).to.deep.equal([ '18:3653516-3653566', '18:3653591-3653641', '18:4215486-4215536', @@ -130,7 +125,7 @@ describe('BAM', function() { var range = new ContigInterval('chr1', 90002285, 116992285); bam.getAlignmentsInRange(range).then(reads => { expect(reads).to.have.length(92); - expect(reads.slice(0, 5).map(alignmentRange)).to.deep.equal([ + expect(reads.slice(0, 5).map(r => r.toString())).to.deep.equal([ '1:90071452-90071502', '1:90071609-90071659', '1:90622416-90622466', @@ -138,7 +133,7 @@ describe('BAM', function() { '1:91182945-91182995' ]); - expect(reads.slice(-5).map(alignmentRange)).to.deep.equal([ + expect(reads.slice(-5).map(r => r.toString())).to.deep.equal([ '1:115379485-115379535', '1:116045704-116045754', '1:116045758-116045808', @@ -158,7 +153,7 @@ describe('BAM', function() { // This verifies that alignments are tagged with the correct offset. var bam = new Bam(new RemoteFile('/test/data/index_test.bam')); bam.readAtOffset(new VirtualOffset(28269, 2247)).then(read => { - expect(alignmentRange(read)).to.equal('1:116563944-116563994'); + expect(read.toString()).to.equal('1:116563944-116563994'); done(); }).done(); }); @@ -195,8 +190,8 @@ describe('BAM', function() { bam.getAlignmentsInRange(range).then(reads => { expect(reads).to.have.length(1114); - expect(alignmentRange(reads[0])).to.equal('19:31511251-31511351'); - expect(alignmentRange(reads[1113])).to.equal('19:31514171-31514271'); + expect(reads[0].toString()).to.equal('19:31511251-31511351'); + expect(reads[1113].toString()).to.equal('19:31514171-31514271'); done(); }).done(); });