public JasixNode(IExtendedBinaryReader reader) { _start = reader.ReadOptInt32(); //on disk we will store the end as an offset to save space _end = _start + reader.ReadOptInt32(); FileLocation = reader.ReadOptInt64(); }
private static IntervalArray <T>[] ReadIntervals <T>(IExtendedBinaryReader 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(IExtendedBinaryReader reader) { int start = reader.ReadOptInt32(); int end = reader.ReadOptInt32(); return(new Interval(start, end)); }
private static Interval <long> ReadInterval(IExtendedBinaryReader reader) { var begin = reader.ReadOptInt32(); var end = reader.ReadOptInt32(); var position = reader.ReadOptInt64(); return(new Interval <long>(begin, end, position)); }
public static CompactId Read(IExtendedBinaryReader reader) { var id = (IdType)reader.ReadByte(); var version = reader.ReadByte(); var info = reader.ReadUInt32(); return(new CompactId(id, version, info)); }
// ReSharper disable once UnusedParameter.Local private static void CheckString(IExtendedBinaryReader reader, string expectedString) { string s = reader.ReadAsciiString(); Assert.NotNull(s); Assert.Equal(expectedString.Length, s.Length); Assert.Equal(expectedString, s); }
/// <summary> /// check if the section guard is in place /// </summary> internal static void CheckGuard(IExtendedBinaryReader reader) { uint observedGuard = reader.ReadUInt32(); if (observedGuard != CacheConstants.GuardInt) { throw new InvalidDataException($"Expected a guard integer ({CacheConstants.GuardInt}), but found another value: ({observedGuard})"); } }
/// <summary> /// reads the regulatory element data from the binary reader /// </summary> public static IRegulatoryRegion Read(IExtendedBinaryReader 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>(IExtendedBinaryReader 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(IExtendedBinaryReader 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>(IExtendedBinaryReader 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); }
public static IAnnotatedGene Read(IExtendedBinaryReader reader) { var geneName = reader.ReadAsciiString(); var annotationLength = reader.ReadOptInt32(); var annotations = new IGeneAnnotationSource[annotationLength]; for (int i = 0; i < annotationLength; i++) { annotations[i] = GeneAnnotationSource.Read(reader); } return(geneName == NullGene ? null : new AnnotatedGene(geneName, annotations)); }
public static IGeneAnnotationSource Read(IExtendedBinaryReader reader) { var dataSource = reader.ReadAsciiString(); var isArray = reader.ReadBoolean(); var jsonStringLength = reader.ReadOptInt32(); var jsonStrings = new string[jsonStringLength]; for (int i = 0; i < jsonStringLength; i++) { jsonStrings[i] = reader.ReadString(); } return(new GeneAnnotationSource(dataSource, jsonStrings, isArray)); }
private JasixIndex(IExtendedBinaryReader reader) : this() { var version = reader.ReadOptInt32(); if (version != JasixCommons.Version) { throw new InvalidDataException($"Invalid Jasix version: Observed {version}, expected{JasixCommons.Version}"); } HeaderLine = reader.ReadAsciiString(); var count = reader.ReadOptInt32(); for (var i = 0; i < count; i++) { var chrIndex = new JasixChrIndex(reader); _chrIndices[chrIndex.ReferenceSequence] = chrIndex; } }
private void ReadBlockOffsets(IExtendedBinaryReader reader) { var numEntries = reader.ReadOptInt32(); _blockOffsets = new ISaIndexOffset[numEntries]; int oldPosition = 0; int oldBlockOffset = 0; for (int i = 0; i < numEntries; i++) { var deltaPosition = reader.ReadOptInt32(); var deltaBlockOffset = reader.ReadOptInt32(); var position = oldPosition + deltaPosition; var blockOffset = oldBlockOffset + deltaBlockOffset; _blockOffsets[i] = new SaIndexOffset(position, blockOffset); oldPosition = position; oldBlockOffset = blockOffset; } }
public JasixChrIndex(IExtendedBinaryReader reader) : this("") { ReferenceSequence = reader.ReadAsciiString(); var count = reader.ReadOptInt32(); for (var i = 0; i < count; i++) { _nodes.Add(new JasixNode(reader)); } var intervalCount = reader.ReadOptInt32(); if (intervalCount == 0) { return; } for (var i = 0; i < intervalCount; i++) { _largeVariants.Add(ReadInterval(reader)); } _intervalArray = new IntervalArray <long>(_largeVariants.ToArray()); }