コード例 #1
0
        private static void Process(GrowablePeak gpeak, BinaryWriter writer, ICollection <double> centerMasses,
                                    ICollection <float> centerMassErrs, ICollection <float> intensities,
                                    ICollection <float> minTimes, ICollection <float> maxTimes,
                                    ICollection <long> filePos, int minPeaks, IRawFile rawFile, double valleyFactor,
                                    bool split, IPeakCollector collector, bool maxIntensity)
        {
            Peak peak = gpeak.ToPeak();

            if (peak.Count >= minPeaks)
            {
                peak.RemoveDoublePeaks(rawFile, maxIntensity);
                if (peak.Count >= minPeaks)
                {
                    peak.Smooth(maxIntensity);
                    if (collector != null)
                    {
                        collector.AddPeak(peak);
                    }
                    Peak[] peaks = peak.Decompose(valleyFactor, split, maxIntensity);
                    foreach (Peak p in peaks)
                    {
                        if (p.Count >= minPeaks)
                        {
                            centerMasses.Add(p.CenterMass);
                            centerMassErrs.Add(p.CenterMassError);
                            intensities.Add(p.Intensity);
                            minTimes.Add(p.GetMinTime(rawFile));
                            maxTimes.Add(p.GetMaxTime(rawFile));
                            filePos.Add(writer.BaseStream.Position);
                            p.Write(writer);
                        }
                        p.Dispose();
                    }
                }
            }
        }