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); }