Пример #1
0
        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));
        }
Пример #2
0
        public InterpolatedTimeIntensities Interpolate(IEnumerable <ChromSource> chromSources)
        {
            var interpolatedTimes = GetInterpolatedTimes();

            return(new InterpolatedTimeIntensities(TransitionTimeIntensities.Select(timeIntensities => timeIntensities.Interpolate(interpolatedTimes, InferZeroes)),
                                                   chromSources));
        }
Пример #3
0
        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());
            }
        }
Пример #4
0
 public ImmutableList <float> GetInterpolatedTimes()
 {
     if (InterpolationParams == null)
     {
         return(TransitionTimeIntensities.First().Times);
     }
     return(ImmutableList.ValueOf(InterpolationParams.GetEvenlySpacedTimesFloat()));
 }
Пример #5
0
 public override TimeIntensitiesGroup Truncate(float newStartTime, float newEndTime)
 {
     return(Singleton(TransitionTimeIntensities.First().Truncate(newStartTime, newEndTime)));
 }
Пример #6
0
 public override TimeIntensitiesGroup Truncate(float newStartTime, float newEndTime)
 {
     return(new InterpolatedTimeIntensities(TransitionTimeIntensities
                                            .Select(timeIntensities => timeIntensities.Truncate(newStartTime, newEndTime)),
                                            TransitionChromSources));
 }