public void Init(List <string> peptides, Dictionary <string, model.glycan.IGlycan> glycans)
        {
            foreach (var it in peptides)
            {
                algorithm.Point <string> seq = new algorithm.Point <string>(util.mass.Peptide.To.Compute(it), it);
                peptides_.Add(seq);
            }

            foreach (var it in glycans.Values)
            {
                glycans_.Add(it);
            }
            searcher_.Init(peptides_);
        }
        protected void InitSearch(Dictionary <string, List <model.glycan.IGlycan> > candidate)
        {
            List <algorithm.Point <string> > peptides_points = new List <algorithm.Point <string> >();

            foreach (var peptide in candidate.Keys)
            {
                // get glycan mass
                double glycan_mean_mass = SearchHelper.ComputeGlycanMass(candidate[peptide]);

                // create points
                foreach (int pos in protein.ProteinPTM.FindNGlycanSite(peptide))
                {
                    string table_key = SearchHelper.MakeKeySequence(peptide, pos);
                    //init table
                    if (!mass_table_.ContainsKey(table_key))
                    {
                        List <double> mass_list = SearchHelper.ComputeNonePTMPeptideMass(peptide, pos);
                        mass_table_[table_key] = new List <double>(mass_list);
                        mass_list = SearchHelper.ComputePTMPeptideMass(peptide, pos);
                        ptm_mass_table_[table_key] = new List <double>(mass_list);
                    }
                    // retreive table
                    foreach (double mass in mass_table_[table_key])
                    {
                        algorithm.Point <string> point = new algorithm.Point <string>(mass, table_key);
                        peptides_points.Add(point);
                    }
                    foreach (double mass in ptm_mass_table_[table_key])
                    {
                        algorithm.Point <string> point = new algorithm.Point <string>(mass + glycan_mean_mass, table_key);
                        peptides_points.Add(point);
                    }
                }
            }

            searcher_.Init(peptides_points);
        }