コード例 #1
0
        /// <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);
        }
コード例 #2
0
        // 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);
        }