示例#1
0
 private static void Sample(string cleavageSiteName, uniprot db, IEnumerable<Tuple<TagInfo, TagInfo>> cleavageSites, string windowString, Workspace workspace)
 {
     var array = windowString.Split('-');
     Debug.Assert(array.Length == 2, "Window string dont have 2 numbers");
     var windowLeft = int.Parse(array[0]);
     var windowRight = int.Parse(array[1]);
     var acc = workspace.CreateSamplingData(windowLeft + windowRight);
     acc.Class = cleavageSiteName + "|" + windowString;
     foreach (var cleavageSite in cleavageSites)
     {
         Debug.Assert(cleavageSite.Item1.Accession == cleavageSite.Item2.Accession);
         var entry = db.entry.First(x => x.accession.Contains(cleavageSite.Item1.Accession));
         var text = CleanText(entry.sequence.Value);
         Console.Error.WriteLine("Sampling window {0}-{1} applied to {2}:{3}", windowLeft, windowRight, cleavageSite.Item1.Accession, cleavageSiteName);
         SamplePositivesNegatives(acc, text, windowLeft, windowRight, cleavageSite);
     }
     var num = acc.Positives.Count + acc.Negatives.Count;
     Console.Error.WriteLine("Collected {0} samples (p:{1} / n:{2})", num, acc.Positives.Count, acc.Negatives.Count);
 }