protected void Application_Start(Object sender, EventArgs e) { var dataroot = "/Users/ericsadit/data-cophir282/"; SpaceGenericIO.NormalizePath = (string name) => dataroot + Path.GetFileName (name); IndexGenericIO.NormalizePath = (string name) => dataroot + Path.GetFileName (name); if (false) { // var indexname = "Index.eptable-optimize.numgroups=4.max_pivots=1000.beta=0.8.DB.CoPhIR-282-1M.sapir-100"; // var index = IndexGenericIO.Load (indexname); var indexname = "Index.knrseq.DB.CoPhIR-282-1M.sapir-100.knr=7.num_refs=2048"; var index = new KnrSeqSearchFootrule( (KnrSeqSearch) IndexGenericIO.Load (indexname) ); // var index = new KnrSeqSearchJaccard( (KnrSeqSearch) IndexGenericIO.Load (indexname) ); index.MAXCAND = 60000; index.MAXCAND = -100; Cophir = new CoPhIR_Original (index, indexname); } else { var indexname = "Index.knrseqsearch.num_refs=2048.knr=7.HFP-512.DB.CoPhIR-282-1M.sapir-100"; // var index = new KnrSeqSearchJaccard( (KnrSeqSearch) IndexGenericIO.Load (indexname) ); var index = new KnrSeqSearchFootrule( (KnrSeqSearch) IndexGenericIO.Load (indexname) ); index.MAXCAND = 60000; index.MAXCAND = -100; // var indexname = "Index.eptable-optimize.numgroups=4.max_pivots=1000.beta=0.8.HFP-512.DB.CoPhIR-282-1M.sapir-100"; // var index = IndexGenericIO.Load (indexname); Cophir = new CoPhIR_HFP(index, indexname, dataroot + "PhotoInfo-DB.CoPhIR-282-1M.sapir-100"); // Cophir = new CoPhIR_HFP("Index.knrseqsearch.num_refs=2048.knr=7.HFP-256.DB.CoPhIR-282-1M.sapir-100", "PhotoInfo-DB.CoPhIR-282-1M.sapir-100", 60000); // Cophir = new CoPhIR_HFP("Index.knrseqsearch.num_refs=2048.knr=7.HFP-128.DB.CoPhIR-282-1M.sapir-100", "PhotoInfo-DB.CoPhIR-282-1M.sapir-100", 60000); } }
public static List<string> ExecuteKNRSEQ(IndexArgumentSetup setup, string nick, int numrefs, int k, double maxcand_ratio) { var idxname = String.Format ("{0}/Index.knrseq-{1}-{2}", nick, numrefs, k); MetricDB db = SpaceGenericIO.Load (setup.BINARY_DATABASE); Index idx; var suffix = ""; var resnamelist = new List<string> (); if (!File.Exists (idxname)) { Console.WriteLine ("*** creating index {0}", idxname); var s = DateTime.Now.Ticks; var c = db.NumberDistances; var IDX = new KnrSeqSearch (); var refsDB = new SampleSpace("", db, numrefs); var refsIDX = new EPTable (); refsIDX.Build(refsDB, 4, (_db, _rand) => new EPListOptimizedA(_db, 4, _rand)); if (k == 0) { k = KnrEstimateParameters.EstimateKnrEnsuringSharedNeighborhoods (db, refsIDX, (int)Math.Abs (setup.QARG)); suffix = String.Format ("estimated-K={0}.", k); } IDX.Build (db, refsIDX, k, int.MaxValue); SaveConstructionTime (idxname, DateTime.Now.Ticks - s, db.NumberDistances - c); IndexGenericIO.Save (idxname, IDX); idx = IDX; } else { Console.WriteLine ("*** loading index {0}", idxname); idx = IndexGenericIO.Load (idxname); if (k == 0) { var _idx = idx as KnrSeqSearch; suffix = String.Format ("estimated-K={0}.", _idx.K); } } string resname; // PPIndex resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.PPI", maxcand_ratio)); resnamelist.Add(resname); if (!File.Exists (resname)) { var knr = idx as KnrSeqSearch; knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); PerformSearch (resname, knr, idxname, setup); } // KnrSeqSearchCosine resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.COS", maxcand_ratio)); resnamelist.Add(resname); if (!File.Exists (resname)) { var knr = new KnrSeqSearchCosine(idx as KnrSeqSearch); knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); PerformSearch (resname, knr, idxname, setup); } // KnrSeqSearchFootrule resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.FOOTRULE", maxcand_ratio)); resnamelist.Add(resname); if (!File.Exists (resname)) { var knr = new KnrSeqSearchFootrule(idx as KnrSeqSearch); knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); PerformSearch (resname, knr, idxname, setup); } // KnrSeqSearchJaccLCS resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.JACCLCS", maxcand_ratio)); resnamelist.Add(resname); if (!File.Exists (resname)) { var knr = new KnrSeqSearchJaccLCS(idx as KnrSeqSearch); knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); PerformSearch (resname, knr, idxname, setup); } // KnrSeqSearchLCSv3 resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.LCSv3", maxcand_ratio)); resnamelist.Add(resname); if (!File.Exists (resname)) { var knr = new KnrSeqSearchLCSv3(idx as KnrSeqSearch); knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); PerformSearch (resname, knr, idxname, setup); } // NAPP foreach (var ksearch in setup.KNR_KSEARCH) { var knr = new NAPP(idx as KnrSeqSearch); knr.MAXCAND = (int)(idx.DB.Count * maxcand_ratio); resname = GetResultName (nick, idxname, setup, String.Format(suffix + "maxcand={0}.NAPP.ksearch={1}", maxcand_ratio, ksearch)); resnamelist.Add(resname); if (!File.Exists (resname)) { PerformSearch (resname, knr, idxname, setup); } } return resnamelist; }