Skip to content

Commit

Permalink
Responding to David R's comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark Fleharty committed Feb 4, 2019
1 parent bb42cbb commit 0e4e15a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 14 deletions.
20 changes: 10 additions & 10 deletions src/main/java/htsjdk/tribble/readers/TabixReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -447,15 +447,15 @@ public String next() throws IOException {

/**
* Get an iterator for an interval specified by the sequence id and begin and end coordinates
* @param tid Sequence id
* @param beg beginning of interval, genomic coords
* @param end end of interval, genomic coords
* @return an iterator over the lines within the specified interval
* @param tid Sequence id, if non-existent returns EOF_ITERATOR
* @param beg beginning of interval, genomic coords (0-based, closed-open)
* @param end end of interval, genomic coords (0-based, closed-open)
* @return an iterator over the specified interval
*/
public Iterator query(final int tid, final int beg, final int end) {
TPair64[] off, chunks;
long min_off;
if (tid < 0 || beg < 0 || end < 0 || tid >= this.mIndex.length) return EOF_ITERATOR;
if (tid < 0 || beg < 0 || end <= 0 || tid >= this.mIndex.length) return EOF_ITERATOR;
TIndex idx = mIndex[tid];
int[] bins = new int[MAX_BIN];
int i, l, n_off, n_bins = reg2bins(beg, end, bins);
Expand Down Expand Up @@ -510,23 +510,23 @@ public Iterator query(final int tid, final int beg, final int end) {
*
* @see #parseReg(String)
* @param reg A region string of the form acceptable by {@link #parseReg(String)}
* @return
* @return an iterator over the specified interval
*/
public Iterator query(final String reg) {
int[] x = parseReg(reg);
return query(x[0], x[1], x[2]);
}

/**
*
* Get an iterator for an interval specified by the sequence id and begin and end coordinates
* @see #parseReg(String)
* @param reg a chromosome
* @param start start interval
* @param end end interval
* @return a tabix iterator
* @return a tabix iterator over the specified interval
*/
public Iterator query(final String reg,int start,int end) {
int tid=this.chr2tid(reg);
public Iterator query(final String reg, int start, int end) {
int tid = this.chr2tid(reg);
return query(tid, start, end);
}

Expand Down
26 changes: 22 additions & 4 deletions src/test/java/htsjdk/tribble/readers/TabixReaderTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,16 +96,35 @@ public void testIterators() throws IOException {
Assert.assertNotNull(iter);
Assert.assertNull(iter.next());

iter=tabixReader.query("1",-1,Integer.MAX_VALUE);
iter = tabixReader.query("1", -1, Integer.MAX_VALUE);
Assert.assertNotNull(iter);
Assert.assertNull(iter.next());

iter=tabixReader.query("1",Integer.MAX_VALUE,-1);
iter = tabixReader.query("1", Integer.MAX_VALUE, -1);
Assert.assertNotNull(iter);
Assert.assertNull(iter.next());

iter = tabixReader.query("1", Integer.MAX_VALUE, 0);
Assert.assertNotNull(iter);
Assert.assertNull(iter.next());

iter = tabixReader.query("1:100-1000");
Assert.assertNotNull(iter);
Assert.assertNotNull(iter.next());
Assert.assertNull(iter.next());

final int pos_snp_in_vcf_chr1=327;


iter = tabixReader.query("1:" + pos_snp_in_vcf_chr1 + "-" + pos_snp_in_vcf_chr1);
Assert.assertNotNull(iter);
Assert.assertNotNull(iter.next());
Assert.assertNull(iter.next());

iter = tabixReader.query("1:" + pos_snp_in_vcf_chr1);
Assert.assertNotNull(iter);
Assert.assertNotNull(iter.next());
Assert.assertNull(iter.next());

iter=tabixReader.query("1",pos_snp_in_vcf_chr1,pos_snp_in_vcf_chr1);
Assert.assertNotNull(iter);
Assert.assertNotNull(iter);
Expand Down Expand Up @@ -165,7 +184,6 @@ public void testRemoteQuery() throws IOException {
nRecords++;
}
Assert.assertTrue(nRecords > 0);

}

/**
Expand Down

0 comments on commit 0e4e15a

Please sign in to comment.