public override TimeIntensitiesGroup Truncate(float newStartTime, float newEndTime) { InterpolationParams interpolationParams; if (InterpolationParams == null) { interpolationParams = null; } else { var interpolatedTimes = GetInterpolatedTimes(); int startIndex = CollectionUtil.BinarySearch(interpolatedTimes, newStartTime); if (startIndex < 0) { startIndex = ~startIndex - 1; } int endIndex = CollectionUtil.BinarySearch(interpolatedTimes, newEndTime); if (endIndex < 0) { endIndex = ~endIndex; } startIndex = Math.Max(startIndex, 0); endIndex = Math.Min(Math.Max(startIndex, endIndex), interpolatedTimes.Count - 1); interpolationParams = InterpolationParams .ChangeStartTime(interpolatedTimes[startIndex]) .ChangeEndTime(interpolatedTimes[endIndex]) .ChangeNumPoints(endIndex - startIndex + 1); } return(new RawTimeIntensities( TransitionTimeIntensities.Select(timeIntensities => timeIntensities.Truncate(newStartTime, newEndTime)), interpolationParams)); }
public InterpolatedTimeIntensities Interpolate(IEnumerable <ChromSource> chromSources) { var interpolatedTimes = GetInterpolatedTimes(); return(new InterpolatedTimeIntensities(TransitionTimeIntensities.Select(timeIntensities => timeIntensities.Interpolate(interpolatedTimes, InferZeroes)), chromSources)); }
public override void WriteToStream(Stream stream) { PrimitiveArrays.Write(stream, TransitionTimeIntensities.First().Times.ToArray()); foreach (var timeIntensities in TransitionTimeIntensities) { PrimitiveArrays.Write(stream, timeIntensities.Intensities.ToArray()); } foreach (var timeIntensities in TransitionTimeIntensities) { if (timeIntensities.MassErrors == null) { continue; } WriteMassErrors(stream, timeIntensities.MassErrors); } var scanIdsByChromSource = ScanIdsByChromSource(); foreach (var chromSource in PERSISTED_CHROM_SOURCES) { ImmutableList <int> scanIds; if (!scanIdsByChromSource.TryGetValue(chromSource, out scanIds)) { continue; } PrimitiveArrays.Write(stream, scanIds.ToArray()); } }
public ImmutableList <float> GetInterpolatedTimes() { if (InterpolationParams == null) { return(TransitionTimeIntensities.First().Times); } return(ImmutableList.ValueOf(InterpolationParams.GetEvenlySpacedTimesFloat())); }
public override TimeIntensitiesGroup Truncate(float newStartTime, float newEndTime) { return(Singleton(TransitionTimeIntensities.First().Truncate(newStartTime, newEndTime))); }
public override TimeIntensitiesGroup Truncate(float newStartTime, float newEndTime) { return(new InterpolatedTimeIntensities(TransitionTimeIntensities .Select(timeIntensities => timeIntensities.Truncate(newStartTime, newEndTime)), TransitionChromSources)); }