public virtual void ConvertTo(BuildSummaryOptions result)
        {
            result.ApplicationTitle = this.ApplicationTitle;
            result.MergeResult      = this.MergeResult;
            result.KeepTopPeptideFromSameEngineButDifferentSearchParameters = this.MergeResultFromSameEngineButDifferentSearchParameters;

            result.Classification.ClassifyByCharge             = this.ClassifyByCharge;
            result.Classification.ClassifyByMissCleavage       = this.ClassifyByMissCleavage;
            result.Classification.ClassifyByModification       = this.ClassifyByModification;
            result.Classification.ClassifyByNumProteaseTermini = this.ClassifyByNumProteaseTermini;
            result.Classification.ModifiedAminoacids           = this.ModifiedAminoacids;
            result.Classification.ClassifyByProteinTag         = this.ClassifyByProteinTag;
            result.Classification.ProteinTag = this.ProteinTag;

            result.FalseDiscoveryRate.FilterByFdr             = this.FilterByFdr;
            result.FalseDiscoveryRate.FdrLevel                = this.FdrLevel;
            result.FalseDiscoveryRate.FdrType                 = this.FdrType;
            result.FalseDiscoveryRate.FdrValue                = this.FdrValue;
            result.FalseDiscoveryRate.FdrPeptideCount         = this.FdrPeptideCount;
            result.FalseDiscoveryRate.MaxPeptideFdr           = this.MaxPeptideFdr;
            result.FalseDiscoveryRate.TargetDecoyConflictType = this.TargetDecoyConflictType;

            result.Database = new DatabaseOptions(this.Database);

            result.PeptideFilter.FilterBySequenceLength = this.FilterBySequenceLength;
            result.PeptideFilter.MinSequenceLength      = this.MinSequenceLength;

            var dics = from s in this.PathNameBin
                       group s.Key by s.Value;

            result.DatasetList.Clear();
            foreach (var tag in dics)
            {
                var ds = DatasetListOptions.GetDatasetOption(this.SearchEngine);
                ds.Name      = tag.Key;
                ds.Parent    = result;
                ds.PathNames = (from t in tag
                                select t).ToList();
                ds.FilterByPrecursor                 = this.FilterByPrecursor;
                ds.FilterByPrecursorIsotopic         = this.FilterByPrecursorSecondIsotopic;
                ds.FilterByPrecursorDynamicTolerance = this.FilterByPrecursorDynamicTolerance;

                ds.PrecursorPPMTolerance = this.PrecursorPPMTolerance;
                result.DatasetList.Add(ds);
            }
        }