/// <summary> /// returns a 2-bit sequence corresponding to the specified name /// </summary> public void GetCompressedSequence(string ensemblReferenceName) { var indexEntry = GetIndexEntry(ensemblReferenceName); if (indexEntry == null) { return; } // jump to that offset _stream.Position = indexEntry.FileOffset; // set the data var numBufferBytes = CompressedSequence.GetNumBufferBytes(indexEntry.NumBases); _compressedSequence.Set(indexEntry.NumBases, _reader.ReadBytes(numBufferBytes), indexEntry.MaskedEntries, indexEntry.SequenceOffset); }
// constructor public CompressedSequenceTests() { _compressedSequence = new CompressedSequence(); // create the following sequence: NNATGTTTCCACTTTCTCCTCATTAGANNNTAACGAATGGGTGATTTCCCTAN var buffer = new byte[] { 14, 42, 93, 169, 150, 122, 204, 11, 211, 224, 35, 169, 91, 0 }; var maskedIntervals = new IntervalArray <MaskedEntry> .Interval[3]; maskedIntervals[0] = new IntervalArray <MaskedEntry> .Interval(0, 1, new MaskedEntry(0, 1)); maskedIntervals[1] = new IntervalArray <MaskedEntry> .Interval(27, 29, new MaskedEntry(27, 29)); maskedIntervals[2] = new IntervalArray <MaskedEntry> .Interval(52, 52, new MaskedEntry(52, 52)); var maskedIntervalArray = new IntervalArray <MaskedEntry>(maskedIntervals); _compressedSequence.Set(NumBases, buffer, maskedIntervalArray); }