예제 #1
0
        public static SwathIndexer Create(IMzLiteDataReader dataReader, string runID)
        {
            if (dataReader == null)
            {
                throw new ArgumentNullException("dataReader");
            }
            if (string.IsNullOrWhiteSpace(runID))
            {
                throw new ArgumentNullException("runID");
            }

            var spectra = SwathSpectrumEntry.Scan(dataReader.ReadMassSpectra(runID));
            var groups  = spectra.GroupBy(x => x.SwathWindow, new SwathWindowGroupingComparer()).ToArray();
            var swathes = new MSSwath[groups.Length];

            for (int i = 0; i < groups.Length; i++)
            {
                swathes[i] = new MSSwath(groups[i].Key, groups[i].ToArray());
            }

            SwathList swathList = new SwathList(swathes);

            return(new SwathIndexer(swathList));
        }
예제 #2
0
 private SwathIndexer(SwathList swathList)
 {
     this.swathList = swathList;
 }