Package net.sf.cram.structure

Examples of net.sf.cram.structure.Slice


    c.blockCount = 1;

    List<Integer> landmarks = new ArrayList<Integer>();
    SliceIO sio = new SliceIO();
    for (int i = 0; i < c.slices.length; i++) {
      Slice s = c.slices[i];
      landmarks.add(baos.size());
      sio.write(s, baos);
      c.blockCount++ ;
      c.blockCount++;
      if (s.embeddedRefBlock != null)
View Full Code Here


      is.skip(c.landmarks[fromSlice]);

    SliceIO sio = new SliceIO();
    List<Slice> slices = new ArrayList<Slice>();
    for (int s = fromSlice; s < howManySlices - fromSlice; s++) {
      Slice slice = new Slice();
      sio.readSliceHeadBlock(slice, is);
      sio.readSliceBlocks(slice, true, is);
      slices.add(slice) ;
    }
View Full Code Here

    return c;
  }

  private static void calculateSliceOffsetsAndSizes(Container c) {
    for (int i = 0; i < c.slices.length - 1; i++) {
      Slice s = c.slices[i];
      s.offset = c.landmarks[i];
      s.size = c.landmarks[i + 1] - s.offset;
    }
    Slice lastSlice = c.slices[c.slices.length - 1];
    lastSlice.offset = c.landmarks[c.landmarks.length - 1];
    lastSlice.size = c.containerByteSize - lastSlice.offset;
  }
View Full Code Here

    this.os = os;
  }

  public void addContainer(Container c) throws IOException {
    for (int i = 0; i < c.slices.length; i++) {
      Slice s = c.slices[i];
      Entry e = new Entry();
      e.sequenceId = c.sequenceId;
      e.alignmentStart = s.alignmentStart;
      e.alignmentSpan = s.alignmentSpan;
      e.containerStartOffset = c.offset;
View Full Code Here

    long time3 = System.nanoTime();
    long lastGlobalRecordCounter = c.globalRecordCounter;
    for (int i = 0; i < records.size(); i += recordsPerSlice) {
      List<CramRecord> sliceRecords = records.subList(i,
          Math.min(records.size(), i + recordsPerSlice));
      Slice slice = buildSlice(sliceRecords, h, fileHeader);
      slice.globalRecordCounter = lastGlobalRecordCounter;
      lastGlobalRecordCounter += slice.nofRecords;
      c.bases += slice.bases;
      slices.add(slice);
View Full Code Here

    DataWriterFactory f = new DataWriterFactory();
    ExposedByteArrayOutputStream bitBAOS = new ExposedByteArrayOutputStream();
    DefaultBitOutputStream bos = new DefaultBitOutputStream(bitBAOS);

    Slice slice = new Slice();
    slice.nofRecords = records.size();

    int[] seqIds = new int[fileHeader.getSequenceDictionary().size()];
    int minAlStart = Integer.MAX_VALUE;
    int maxAlEnd = SAMRecord.NO_ALIGNMENT_START;
View Full Code Here

    assertArrayEquals(b.getRawContent(), b2.getRawContent());
  }

  @Test
  public void testSlices() throws IOException {
    Slice s = new Slice();
    s.alignmentSpan = 13;
    s.alignmentStart = 14;
    s.contentType = BlockContentType.MAPPED_SLICE;
    s.embeddedRefBlockContentID = -1;
    s.globalRecordCounter = 16;
    s.nofRecords = 17;
    s.sequenceId = 18;
    s.refMD5 = "1234567890123456".getBytes();
    s.coreBlock = new Block(BlockCompressionMethod.GZIP.ordinal(),
        BlockContentType.CORE, 0, "core123457890".getBytes(), null);

    s.external = new HashMap<Integer, Block>();
    for (int i = 1; i < 5; i++) {
      Block e1 = new Block(BlockCompressionMethod.GZIP.ordinal(),
          BlockContentType.EXTERNAL, i,
          "external123457890".getBytes(), null);
      s.external.put(i, e1);
    }

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    SliceIO sio = new SliceIO();
    sio.write(s, baos);

    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    Slice s2 = new Slice();
    sio.read(s2, bais);

    assertEquals(s.contentIDs.length, s2.external.size());
    assertArrayEquals(s.headerBlock.getRawContent(),
        s2.headerBlock.getRawContent());
View Full Code Here

  private void testALignmentSpan(Container container, CramHeader cramHeader,
      List<CramRecord> records) throws IllegalArgumentException,
      IllegalAccessException, IOException {
    {
      for (int i = 0; i < container.slices.length; i++) {
        Slice s = container.slices[i];
        List<CramRecord> list = BLOCK_PROTO.getRecords(s, container.h,
            cramHeader.samFileHeader, new TreeMap<String, Long>());

        CramRecord first = list.get(0);
        CramRecord last = list.get(list.size() - 1);
View Full Code Here

    System.out.println(container.h);

    SliceIO sio = new SliceIO();
    container.slices = new Slice[container.landmarks.length];
    for (int s = 0; s < container.landmarks.length; s++) {
      Slice slice = new Slice();
      sio.read(slice, stream);
      container.slices[s] = slice;
    }

    System.out.println(container);

    ArrayList<CramRecord> records = new ArrayList<CramRecord>(
        container.nofRecords);
    BLOCK_PROTO.getRecords(container.h, container,
        cramHeader.samFileHeader, records);
   
    testALignmentSpan(container, cramHeader, records);

    for (int i = 0; i < records.size(); i++) {
      if (i < 10)
        System.out.println(records.get(i).toString());
    }

    ExposedByteArrayOutputStream baos = new ExposedByteArrayOutputStream(
        BYTES);
    ReadWrite.writeCramHeader(cramHeader, baos);
    byte[] b = baos.toByteArray();
    ByteArrayInputStream bais = new ByteArrayInputStream(b);
    CramHeader cramHeader2 = ReadWrite.readCramHeader(bais);
    assertEquals(toString(cramHeader.samFileHeader),
        toString(cramHeader2.samFileHeader));

    BLOCK_PROTO.recordsPerSlice = container.slices[0].nofRecords;

    Container container2 = BLOCK_PROTO.buildContainer(records,
        cramHeader.samFileHeader, true, 0, container.h.substitutionMatrix, true);
    for (int i = 0; i < container.slices.length; i++) {
      container2.slices[i].refMD5 = container.slices[i].refMD5;
    }

    ReadWrite.writeContainer(container2, baos);

    bais = new ByteArrayInputStream(baos.toByteArray());

    cramHeader2 = ReadWrite.readCramHeader(bais);
    assertNotNull(cramHeader);
    assertNotNull(cramHeader.samFileHeader);
    assertEquals(2, cramHeader.majorVersion);
    assertEquals(0, cramHeader.minorVersion);

    Container container3 = new Container();
    chio.readContainerHeader(container3, bais);
    assertNotNull(container3);
    System.out.println(container3);

    CompressionHeaderBLock chb3 = new CompressionHeaderBLock(bais);
    container3.h = chb3.getCompressionHeader();

    assertNotNull(container3.h);
    System.out.println(container3.h);

    container3.slices = new Slice[container3.landmarks.length];
    for (int s = 0; s < container3.landmarks.length; s++) {
      Slice slice = new Slice();
      sio.readSliceHeadBlock(slice, bais);
      sio.readSliceBlocks(slice, true, bais);
      container3.slices[s] = slice;
    }
View Full Code Here

TOP

Related Classes of net.sf.cram.structure.Slice

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.