/// <summary> /// returns the key AA based on the key position /// if WildTYpePeptide is set, it returns the aa of wildtype corresponding to that position /// Otherwise it brings the most frequenet amino acid in the positive columns or frequencies /// </summary> /// <param name="keyPosition"></param> /// 0-indexed /// <returns></returns> public char GetKeyChar(int keyPosition) { char keyAA = ' '; if (keyPosition >= 0) { if (string.IsNullOrEmpty(WildTypePeptide)) { if (PositiveColumns != null && keyPosition < PositiveColumns.Count())//OPAL - wieght based motif with no wildtypepeptide { keyAA = PositiveColumns[keyPosition]. OrderByDescending(kv => kv.Value).Select(kv => kv.Key).FirstOrDefault(); } else if (Frequencies != null && keyPosition < Frequencies.Count())//frequency based peptide array, peptide list { keyAA = Frequencies[keyPosition].OrderByDescending(kv => kv.Value).Select(kv => kv.Key).FirstOrDefault(); } } else if (keyPosition < WildTypePeptide.Length) { keyAA = WildTypePeptide[keyPosition]; } } return(keyAA); }
public Bitmap GetFrequencyMotif(int widthImage, int heightImage) { if (Frequencies == null || Frequencies.Count() == 0) { return(null); } return(Render(Frequencies, widthImage, heightImage, defColor: null)); }
public void test_create_frequency_object_from_text() { var text = TextExamples.emma(); var freq = new Frequencies<string>(); foreach (var token in Regex.Split(text, @"(\W+)")) { freq.Add(token); } Assert.AreEqual(freq.Count(), 2227); Assert.AreEqual(freq.Get("and"), 47.0); Assert.AreEqual(freq.Terms().Count(), 479); }
/// <summary> /// Plays the note using the current <see cref="IPlayer"/> for <see cref="Duration"/>ms /// </summary> public void PlayNote() { if (DesiredOctave > Frequencies.Count() - 1) { var error = new ArgumentException($"{DesiredOctave} is too high of an Octave to play {Key}", nameof(DesiredOctave)); Error?.Invoke(this, error); } else { try { string[] desiredChord = null; switch (ChordType) { case ChordType.Note: desiredChord = new string[] { Key }; break; case ChordType.Power: desiredChord = PowerChord; break; case ChordType.MinorThird: desiredChord = MinorChord3; break; case ChordType.MajorThird: desiredChord = MajorChord3; break; case ChordType.MinorSeventh: desiredChord = MinorChord7; break; case ChordType.MajorSeventh: desiredChord = MajorChord7; break; } PlayingNote?.Invoke(this, new EventArgs()); var musicNotes = desiredChord.Select(sn => MusicNote.Create(sn)); var frequencies = musicNotes.Select(mn => new FrequencyDuration(mn.Key, mn.DesiredOctave, mn.Frequencies[DesiredOctave], Duration)); NotePlayer?.Play(frequencies, Instrument); } catch (Exception ex) { Error?.Invoke(this, ex); } } }
private static void frequencies_of_ngrams_in_emma_sample() { var text = TextExamples.emma(); var freq = new Frequencies<string>(); foreach (var token in Regex.Split(text, @"(\W+)").Where((x) => x != ", " && TextTools.not_whitespace.IsMatch(x)).NGram(3)) { freq.Add(token.Aggregate((a, b) => a + " " + b)); } foreach (var term in freq.Generate().OrderBy(p => p.Value).Reverse().Take(10)) { Console.WriteLine(String.Format(@"{0}: {1}", term.Key, term.Value)); } Console.WriteLine(freq.Count()); Console.WriteLine(freq.Terms().Count()); }