private static IntervalArray <T>[] ReadIntervals <T>(IBufferedBinaryReader reader, Func <T> readMethod) where T : IInterval { var numRefSeqs = reader.ReadOptInt32(); var intervalArrays = new IntervalArray <T> [numRefSeqs]; for (int refSeqIndex = 0; refSeqIndex < numRefSeqs; refSeqIndex++) { var numItems = reader.ReadOptInt32(); if (numItems == 0) { continue; } var intervals = new Interval <T> [numItems]; for (int i = 0; i < numItems; i++) { var item = readMethod(); intervals[i] = new Interval <T>(item.Start, item.End, item); } intervalArrays[refSeqIndex] = new IntervalArray <T>(intervals); } CheckGuard(reader); return(intervalArrays); }
public static IInterval Read(IBufferedBinaryReader reader) { int start = reader.ReadOptInt32(); int end = reader.ReadOptInt32(); return(new Interval(start, end)); }
public static CompactId Read(IBufferedBinaryReader reader) { var id = (IdType)reader.ReadByte(); var version = reader.ReadByte(); var info = reader.ReadUInt32(); return(new CompactId(id, version, info)); }
/// <summary> /// check if the section guard is in place /// </summary> internal static void CheckGuard(IBufferedBinaryReader reader) { uint observedGuard = reader.ReadUInt32(); if (observedGuard != CacheConstants.GuardInt) { throw new InvalidDataException($"Expected a guard integer ({CacheConstants.GuardInt}), but found another value: ({observedGuard})"); } }
public static IRegulatoryRegion Read(IBufferedBinaryReader reader, IDictionary <ushort, IChromosome> chromosomeIndexDictionary) { var refIndex = reader.ReadOptUInt16(); int start = reader.ReadOptInt32(); int end = reader.ReadOptInt32(); var type = (RegulatoryRegionType)reader.ReadByte(); var id = CompactId.Read(reader); return(new RegulatoryRegion(chromosomeIndexDictionary[refIndex], start, end, id, type)); }
internal static T[] ReadItems <T>(IBufferedBinaryReader reader, Func <T> readMethod) { var numItems = reader.ReadOptInt32(); var items = new T[numItems]; for (int i = 0; i < numItems; i++) { items[i] = readMethod(); } CheckGuard(reader); return(items); }
public static IGene Read(IBufferedBinaryReader reader, IDictionary <ushort, IChromosome> indexToChromosome) { ushort referenceIndex = reader.ReadOptUInt16(); int start = reader.ReadOptInt32(); int end = reader.ReadOptInt32(); bool onReverseStrand = reader.ReadBoolean(); string symbol = reader.ReadAsciiString(); int hgncId = reader.ReadOptInt32(); var entrezId = CompactId.Read(reader); var ensemblId = CompactId.Read(reader); return(new Gene(indexToChromosome[referenceIndex], start, end, onReverseStrand, symbol, hgncId, entrezId, ensemblId)); }
private static T[] ReadIndices <T>(IBufferedBinaryReader reader, T[] cachedItems) { int numItems = reader.ReadOptInt32(); var items = new T[numItems]; for (int i = 0; i < numItems; i++) { var index = reader.ReadOptInt32(); items[i] = cachedItems[index]; } return(items); }