public override void ConvertFrom(BuildSummaryOptions result)
        {
            base.ConvertFrom(result);

            this.PathNameBin.Clear();

            var dsList = result.DatasetList.Where(m => m.Enabled).ToList();

            if (dsList.Count == 0)
            {
                return;
            }

            foreach (var ds1 in dsList)
            {
                if (ds1 is SequestDatasetOptions)
                {
                    continue;
                }

                throw new Exception(MyConvert.Format("The data set {0} is not Sequest data set.", ds1.Name));
            }

            SequestDatasetOptions ds = dsList[0] as SequestDatasetOptions;

            this.FilterByXcorr          = ds.FilterByXcorr;
            this.FilterByDeltaCn        = ds.FilterByDeltaCn;
            this.FilterBySpRank         = ds.FilterBySpRank;
            this.MaxModificationDeltaCn = ds.MaxModificationDeltaCn;
            this.MaxSpRank  = ds.MaxSpRank;
            this.MinDeltaCn = ds.MinDeltaCn;
            this.MinXcorr1  = ds.MinXcorr1;
            this.MinXcorr2  = ds.MinXcorr2;
            this.MinXcorr3  = ds.MinXcorr3;

            foreach (SequestDatasetOptions ds2 in dsList)
            {
                foreach (var file in ds2.PathNames)
                {
                    this.PathNameBin[file] = ds2.Name;
                }
            }
        }
        public void Test()
        {
            var option = new SequestDatasetOptions()
            {
                MinDeltaCn        = 0.1,
                FilterByDeltaCn   = true,
                FilterByPrecursor = true,
                FilterBySpRank    = true,
                FilterByXcorr     = true,
                PathNames         = new string[] { "111", "222" }.ToList(),
                PrecursorPPMTolerance = 0.5,
                MaxSpRank             = 4,
                MinXcorr1             = 1.9,
                MinXcorr2             = 2.2,
                MinXcorr3             = 3.75,
                SkipSamePeptideButDifferentModificationSite = true,
                MaxModificationDeltaCn = 0.08
            };

            XElement root = new XElement("Root");

            option.Save(root);

            //Console.WriteLine(root);

            var target = new SequestDatasetOptions();

            target.Load(root);

            Assert.AreEqual(option.MinDeltaCn, target.MinDeltaCn);
            Assert.AreEqual(option.FilterByDeltaCn, target.FilterByDeltaCn);
            Assert.AreEqual(option.FilterByPrecursor, target.FilterByPrecursor);
            Assert.AreEqual(option.FilterBySpRank, target.FilterBySpRank);
            Assert.AreEqual(option.FilterByXcorr, target.FilterByXcorr);
            Assert.AreEqual(option.PathNames.ToArray().ToString(), target.PathNames.ToArray().ToString());
            Assert.AreEqual(option.PrecursorPPMTolerance, target.PrecursorPPMTolerance);
            Assert.AreEqual(option.MaxSpRank, target.MaxSpRank);
            Assert.AreEqual(option.MinXcorr1, target.MinXcorr1);
            Assert.AreEqual(option.MinXcorr2, target.MinXcorr2);
            Assert.AreEqual(option.MinXcorr3, target.MinXcorr3);
        }