public NpdReader(Stream dbStream, Stream indexStream) { _dbStream = dbStream; _indexStream = indexStream; _reader = new ExtendedBinaryReader(dbStream); _index = new NpdIndex(new ExtendedBinaryReader(indexStream)); Assembly = _index.Assembly; Version = _index.Version; if (_index.SchemaVersion != SaCommon.SchemaVersion) { throw new UserErrorException($"SA schema version mismatch. Expected {SaCommon.SchemaVersion}, observed {_index.SchemaVersion}"); } var scoreMap = new Dictionary <byte, double>(); foreach ((double score, byte code) in _index.ScoreMap) { scoreMap.Add(code, score); } _scoreMap = scoreMap.ToImmutableDictionary(); _zstd = new Zstandard(); _scores = new byte[NpdIndex.MaxChromLength]; }
public NpdWriter(Stream dbStream, Stream indexStream, DataSourceVersion version, GenomeAssembly assembly, string jsonKey, int schemaVersion) { _writer = new ExtendedBinaryWriter(dbStream); _index = new NpdIndex(indexStream, assembly, version, jsonKey, schemaVersion); _scoreMap = new Dictionary <double, byte>(byte.MaxValue); _scores = new byte[NpdIndex.MaxChromLength]; _memStream = new MemoryStream(_scores); _memWriter = new ExtendedBinaryWriter(_memStream); _zstd = new Zstandard(); _compressedScores = new byte[_zstd.GetCompressedBufferBounds(_scores.Length)]; }