Beispiel #1
0
  @Test
  public void testBamIntegers() throws IOException {
    final List<String> errorMessages = new ArrayList<String>();
    final SamReader bamReader = SamReaderFactory.makeDefault().open(BAM_INPUT);
    final File bamOutput = File.createTempFile("test", ".bam");
    final File samOutput = File.createTempFile("test", ".sam");
    final SAMFileWriter samWriter =
        new SAMFileWriterFactory().makeWriter(bamReader.getFileHeader(), true, samOutput, null);
    final SAMFileWriter bamWriter =
        new SAMFileWriterFactory().makeWriter(bamReader.getFileHeader(), true, bamOutput, null);
    final SAMRecordIterator iterator = bamReader.iterator();
    while (iterator.hasNext()) {
      try {
        final SAMRecord rec = iterator.next();
        samWriter.addAlignment(rec);
        bamWriter.addAlignment(rec);
      } catch (final Throwable e) {
        System.out.println(e.getMessage());
        errorMessages.add(e.getMessage());
      }
    }

    CloserUtil.close(bamReader);
    samWriter.close();
    bamWriter.close();
    Assert.assertEquals(errorMessages.size(), 0);
    bamOutput.deleteOnExit();
    samOutput.deleteOnExit();
  }
Beispiel #2
0
 private int countRecordsInQueryInterval(final SamReader reader, final QueryInterval query) {
   final SAMRecordIterator iter = reader.queryOverlapping(new QueryInterval[] {query});
   int count = 0;
   while (iter.hasNext()) {
     iter.next();
     count++;
   }
   iter.close();
   return count;
 }
 private int countRecords(final SamReader reader) {
   int count = 0;
   try (final SAMRecordIterator iter = reader.iterator()) {
     while (iter.hasNext()) {
       iter.next();
       count++;
     }
   }
   return count;
 }
Beispiel #4
0
  private int countAlignmentsInWindow(
      int reference, int window, SAMFileReader reader, int expectedCount) {
    final int SIXTEEN_K = 1 << 14; // 1 << LinearIndex.BAM_LIDX_SHIFT
    final int start = window >> 14; // window * SIXTEEN_K;
    final int stop = ((window + 1) >> 14) - 1; // (window + 1 * SIXTEEN_K) - 1;

    final String chr = reader.getFileHeader().getSequence(reference).getSequenceName();

    // get records for the entire linear index window
    SAMRecordIterator iter = reader.queryOverlapping(chr, start, stop);
    SAMRecord rec;
    int count = 0;
    while (iter.hasNext()) {
      rec = iter.next();
      count++;
      if (expectedCount == -1) System.err.println(rec.getReadName());
    }
    iter.close();
    return count;
  }