Пример #1
0
        public static void CosCompute(List <CosInfo> cosInfos,
                                      Dictionary <string, List <SpectramInfo> > spectraInfo, double tol = 0.01)
        {
            SpectrumCosineSimilarity calculator = new SpectrumCosineSimilarity();

            foreach (string key in spectraInfo.Keys)
            {
                List <SpectramInfo> spectra = spectraInfo[key];
                if (spectra.Count < 2)
                {
                    continue;
                }
                for (int i = 0; i < spectra.Count - 1; i++)
                {
                    for (int j = i + 1; j < spectra.Count; j++)
                    {
                        ISpectrum spectrumA = spectra[i].Spectrum;
                        ISpectrum spectrumB = spectra[j].Spectrum;
                        double    cons      = calculator.computeCos(spectrumA, spectrumB, tol);
                        cosInfos.Add(new CosInfo(key, spectra[i].ScanNum, spectra[j].ScanNum,
                                                 spectra[i].FileName, spectra[j].FileName, cons));
                    }
                }
            }
        }
Пример #2
0
        public static void ReadRaw(string fileName, Dictionary <string, List <int> > scanInfo,
                                   Dictionary <string, List <SpectramInfo> > spectraInfo)
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule(new TopPeakPickingDelegatorModule()
            {
                MaxPeaks = 100
            });
            builder.RegisterModule(new SpectrumProcessingModule()
            {
                ScaleFactor = 1.0
            });
            builder.RegisterModule(new ThermoRawSpectrumModule());

            IContainer Container = builder.Build();
            SpectrumCosineSimilarity calculator = new SpectrumCosineSimilarity();

            using (var scope = Container.BeginLifetimeScope())
            {
                var spectrumFacotry = scope.Resolve <ISpectrumFactory>();
                spectrumFacotry.Init(fileName);
                foreach (string key in scanInfo.Keys)
                {
                    List <int> scans = scanInfo[key];
                    foreach (int scan in scans)
                    {
                        if (!spectraInfo.ContainsKey(key))
                        {
                            spectraInfo[key] = new List <SpectramInfo>();
                        }
                        spectraInfo[key].Add(new SpectramInfo(spectrumFacotry.GetSpectrum(scan), scan, fileName));
                    }
                }
            }
        }