public void RankScoreParamResources() { var methodName = MethodBase.GetCurrentMethod().Name; Utils.ShowStarting(methodName); const int ranks = 20; var rankScorer = new RankScore(ActivationMethod.HCD, Ms2DetectorType.Iontrap, Enzyme.Trypsin, Protocol.Standard); for (var charge = 1; charge < 4; charge++) { var ionTypes = rankScorer.GetIonTypes(charge, 0); foreach (var ionType in ionTypes) { for (var r = 0; r <= ranks; r++) { if (r < 4 || r > ranks - 4) { Console.WriteLine(@"Charge: {0}, Ion Type: {1}, Rank: {2}, Score: {3:F4}", charge, ionType.Name, r, rankScorer.GetScore(ionType, r, charge, 0.0)); } else if (r == 4) { Console.WriteLine(" ..."); } } Console.WriteLine(); } Console.WriteLine(); } }
internal void Clear() { CourseScoreList.Clear(); CourseIDs.Clear(); Scores.Clear(); RankResult = new RankScore(decimal.Zero, null); }
public void RankScore() { var methodName = MethodBase.GetCurrentMethod().Name; Utils.ShowStarting(methodName); const int ranks = 20; const string filePath = @"\\protoapps\UserData\Wilkins\DIA\DIA.txt"; if (!File.Exists(filePath)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, filePath); } var rankScorer = new RankScore(filePath); for (var charge = 1; charge < 4; charge++) { var ionTypes = rankScorer.GetIonTypes(charge, 0); foreach (var ionType in ionTypes) { for (var r = 0; r <= ranks; r++) { Console.WriteLine("Charge: {0}, Ion Type: {1}, Rank: {2}, Score: {3}", charge, ionType.Name, r, rankScorer.GetScore(ionType, r, charge, 0.0)); } } } }
private static uint FlushDraw(int[] cards, int[] hole) { //各スートの枚数 int[] suitCount = RankScore.CountSuit(cards); //フラッシュドロー、ナッツフラドロの検査 for (int i = 0; i < suitCount.Length; i++) { //フラドロ以上 if (suitCount[i] >= 4) { //手札と与えられたカード全体から指定のスートを抽出してカードランクをフラグに変換 uint flag_cards = RankScore.HighCard(cards.Where(id => id / 13 == i).ToArray()); uint flag_hand = RankScore.HighCard(hole.Where(id => id / 13 == i).ToArray()); //繰り上がりで15ビット目が立つならナッツフラドロ if (flag_cards + flag_hand >= 0x4000) { return(NUTS_FLUSH_DRAW); } else { return(FLUSH_DRAW); } } } return(NO_DRAW); }
public ScoredSpectrum(Spectrum spec, RankScore scorer, int charge, double massWithH2O, Tolerance tolerance) { _rankedSpec = new RankedSpectrum(spec); _scorer = scorer; _charge = charge; _sequenceMass = massWithH2O; _tolerance = tolerance; }
public StudentRow(StudentScore studentScore) { RawScoreList = new List <HC.JHSCETakeRecord>(); CourseScoreList = new List <CourseScore>(); CourseIDs = new List <string>(); Scores = new FinalScores(); RankResult = new RankScore(decimal.Zero, null); StudentScore = studentScore; }
public InformedBottomUpScorer(LcMsRun run, AminoAcidSet aaSet, int minProductCharge, int maxProductCharge, Tolerance tolerance) { Run = run; AminoAcidSet = aaSet; MinProductCharge = minProductCharge; MaxProductCharge = maxProductCharge; Tolerance = tolerance; _rankScorer = new RankScore(ActivationMethod.HCD, Ms2DetectorType.Orbitrap, Enzyme.Trypsin, Protocol.Standard); _scoredSpectra = new Dictionary <int, ScoredSpectrum>(); }
private void RankCheck(ulong lost, List <int[]> holecard, int a, int b, int c) { List <int> cards = new List <int>(); cards.Add(holecard[0][0]); cards.Add(holecard[0][1]); cards.Add(a); cards.Add(b); cards.Add(c); count++; switch (RankScore.Score(cards.ToArray()) & 0xF0000000) { case RankScore.STFL: straight_flush++; return; case RankScore.QUADS: quads++; return; case RankScore.FULL: full_house++; return; case RankScore.FLUSH: flush++; return; case RankScore.STRAIGHT: straight++; return; case RankScore.THREE: three_card++; return; default: break; } uint draw_flag = DrawOuts.Draw(cards.ToArray(), holecard[0]); if ((draw_flag & (DrawOuts.FLUSH_DRAW | DrawOuts.NUTS_FLUSH_DRAW)) != 0) { flush_draw++; return; } if ((draw_flag & DrawOuts.OPEN_END) != 0) { straight_draw_2_open++; return; } if ((draw_flag & DrawOuts.DOUBLE_BELLY) != 0) { straight_draw_2_belly++; return; } if ((draw_flag & DrawOuts.GUT_SHOT) != 0) { straight_draw_1++; return; } }
private static uint StraightDraw(int[] cards) { //ランクごとに存在するかフラグに変換 uint flag = RankScore.HighCard(cards); { //オープンエンドとダブルベリー検出用のマスクと終了条件 uint mask, end; //オープンエンド mask = 0x1E00; end = 0x001E; while (mask >= end) { if ((flag & mask) == mask) { return(OPEN_END); } //右に1ビットシフト mask = mask >> 1; } //ダブルベリー mask = 0x2E80; end = 0x005D; while (mask >= end) { if ((flag & mask) == mask) { return(DOUBLE_BELLY); } //右に1ビットシフト mask = mask >> 1; } } //A-4,J-A if ((flag & 0x3C00) == 0x3C00 || (flag & 0x000F) == 0x000F) { return(GUT_SHOT); } //ガットショット //マスクと終了条件が3種類存在 {10111,11011,11101} uint[] masks = { 0x2E00, 0x3600, 0x3A00 }; uint[] ends = { 0x0017, 0x001B, 0x001D }; for (int i = 0; i < masks.Length; i++) { //マスクを取得 uint mask = masks[i]; while (mask >= ends[i]) { if ((flag & mask) == mask) { return(GUT_SHOT); } //右に1ビットシフト mask = mask >> 1; } } return(NO_DRAW); }