Пример #1
0
        private static void TestOverlapIsolationWindowMapper(AbstractIsoWindowMapper isoMapper, MsDataFileImpl file)
        {
            // ReSharper disable once CollectionNeverQueried.Local
            var isoWinList = new List <IsoWin>();  // Useful for debugging

            Assert.AreEqual(40, isoMapper.NumWindows);
            Assert.AreEqual(41, isoMapper.NumDeconvRegions);
            // Check that each isolation window has two overlap regions with mz values that are contained in it
            for (int isoIndex = 0; isoIndex < isoMapper.NumWindows; ++isoIndex)
            {
                IsoWin isoWin = isoMapper.GetIsolationWindow(isoIndex);
                isoWinList.Add(isoWin);
                Assert.AreEqual(2, isoWin.DeconvRegions.Count);
                for (int i = 0; i < isoWin.DeconvRegions.Count; ++i)
                {
                    // Check self-consistency of each deconvRegion in the isolation window
                    var deconvRegion = isoWin.DeconvRegions[i];
                    var deconvIndex  = deconvRegion.Id;
                    Assert.AreEqual(deconvRegion.Start, isoMapper.GetDeconvRegion(deconvIndex).Start);
                    Assert.AreEqual(deconvRegion.Stop, isoMapper.GetDeconvRegion(deconvIndex).Stop);
                    Assert.AreEqual(deconvRegion.Id, isoMapper.GetDeconvRegion(deconvIndex).Id);
                    Assert.IsTrue(isoWin.Contains(deconvRegion));
                    Assert.IsTrue(isoWin.Start <= deconvRegion.Start && isoWin.Stop >= deconvRegion.Stop);
                    double deconvRegionCenter = (deconvRegion.StartMz + deconvRegion.StopMz) / 2.0;
                    int    newDeconvIndex;
                    isoMapper.TryGetDeconvFromMz(deconvRegionCenter, out newDeconvIndex);
                    Assert.AreEqual(deconvIndex, newDeconvIndex);
                    int[] isosForDeconv;
                    isoMapper.TryGetIsosForDeconv(deconvIndex, out isosForDeconv);
                    // 2 isolation windows cover this deconv region, unless it's at beginning or end
                    int deconvInIsos = deconvRegion.Id == 0 || deconvRegion.Id == isoMapper.NumDeconvRegions - 1 ? 1 : 2;
                    Assert.IsTrue(isosForDeconv.Length == deconvInIsos);
                    foreach (var isoForDeconv in isosForDeconv)
                    {
                        IsoWin isoWindow = isoMapper.GetIsolationWindow(isoForDeconv);
                        Assert.IsTrue(isoWindow.Contains(deconvRegion));
                    }
                }
            }
        }
Пример #2
0
 private static void TestOverlapIsolationWindowMapper(AbstractIsoWindowMapper isoMapper, MsDataFileImpl file)
 {
     // ReSharper disable once CollectionNeverQueried.Local
     var isoWinList = new List<IsoWin>();  // Useful for debugging
     Assert.AreEqual(40,isoMapper.NumWindows);
     Assert.AreEqual(41,isoMapper.NumDeconvRegions);
     // Check that each isolation window has two overlap regions with mz values that are contained in it
     for (int isoIndex = 0; isoIndex < isoMapper.NumWindows; ++isoIndex)
     {
         IsoWin isoWin = isoMapper.GetIsolationWindow(isoIndex);
         isoWinList.Add(isoWin);
         Assert.AreEqual(2, isoWin.DeconvRegions.Count);
         for (int i = 0; i < isoWin.DeconvRegions.Count; ++i)
         {
             // Check self-consistency of each deconvRegion in the isolation window
             var deconvRegion = isoWin.DeconvRegions[i];
             var deconvIndex = deconvRegion.Id;
             Assert.AreEqual(deconvRegion.Start, isoMapper.GetDeconvRegion(deconvIndex).Start);
             Assert.AreEqual(deconvRegion.Stop, isoMapper.GetDeconvRegion(deconvIndex).Stop);
             Assert.AreEqual(deconvRegion.Id, isoMapper.GetDeconvRegion(deconvIndex).Id);
             Assert.IsTrue(isoWin.Contains(deconvRegion));
             Assert.IsTrue(isoWin.Start <= deconvRegion.Start && isoWin.Stop >= deconvRegion.Stop);
             double deconvRegionCenter = (deconvRegion.StartMz + deconvRegion.StopMz) / 2.0;
             int newDeconvIndex;
             isoMapper.TryGetDeconvFromMz(deconvRegionCenter, out newDeconvIndex);
             Assert.AreEqual(deconvIndex, newDeconvIndex);
             int[] isosForDeconv;
             isoMapper.TryGetIsosForDeconv(deconvIndex, out isosForDeconv);
             // 2 isolation windows cover this deconv region, unless it's at beginning or end
             int deconvInIsos = deconvRegion.Id == 0 || deconvRegion.Id == isoMapper.NumDeconvRegions - 1 ? 1 : 2;
             Assert.IsTrue(isosForDeconv.Length == deconvInIsos);
             foreach (var isoForDeconv in isosForDeconv)
             {
                 IsoWin isoWindow = isoMapper.GetIsolationWindow(isoForDeconv);
                 Assert.IsTrue(isoWindow.Contains(deconvRegion));
             }
         }
     }
 }