Beispiel #1
0
        public static void StartProcessing(ExclusionProfile exclusionProfile)
        {
            //log.Debug("Loading logistic regression model and creating exclusion profile");
            //exclusionProfile = new MachineLearningGuidedExclusion(InputFileOrganizer.logisticRegressionClassifierSaveFile, ExclusionExplorer.database, GlobalVar.ppmTolerance, GlobalVar.retentionTimeWindowSize);
            //exclusionProfile = new NoraExclusion(database,GlobalVar.XCorr_Threshold, GlobalVar.ppmTolerance, GlobalVar.NumDBThreshold, GlobalVar.retentionTimeWindowSize);
            //exclusionProfile = new RandomExclusion(InputFileOrganizer.logisticRegressionClassifierSaveFile, database, GlobalVar.ppmTolerance, GlobalVar.retentionTimeWindowSize);

            log.Debug("Initiating up DataProcessor Variables");
            reset();

            //Console.ReadKey();

            preExperimentSetupFinished = true;
            while (running || taskCounter > 0) //!parsedSpectra.IsEmpty
            {
                //Database searches any scan in processedScans FIFO queue as long as it's not empty

                Spectra processedSpectra;
                if (parsedSpectra.TryDequeue(out processedSpectra))
                {
                    exclusionProfile.evaluate(processedSpectra);
                    double[] scanArrivalProcessedTime = { processedSpectra.getScanNum(), processedSpectra.getArrivalTime(), getCurrentMiliTime() };
                    scanArrivalAndProcessedTimeList.Add(scanArrivalProcessedTime);
                    Interlocked.Decrement(ref taskCounter);
                }
            }
            log.Info("DataProcessor finished, processed {0} scans", scanIDCounter);
        }