/// <summary> /// Apply the filter to the selected result set /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdApplyFilterRes_Click(object sender, EventArgs e) { AssayResults ar = SelectedAssayResult(); if (SelectedAssayResult() != null) { AssayResultsFilter arf = new AssayResultsFilter(); // TODO implement checking of box values try { if (txtExcludeText.Text != "") { arf.ExcludeString = txtExcludeText.Text; } if (txtExHighCutoff.Text != "") { arf.HighCutoff = Convert.ToInt32(txtExHighCutoff.Text); } if (txtExLowCutoff.Text != "") { arf.LowCutoff = Convert.ToInt32(txtExLowCutoff.Text); } if (cmbExSDsBelow.SelectedItem != null) { if (cmbExSDsBelow.SelectedItem.ToString() != "") { arf.LowSDCutoff = Convert.ToInt32(cmbExSDsBelow.SelectedItem.ToString()); } } if (cmbExSDsAbove.SelectedItem != null) { if (cmbExSDsAbove.SelectedItem.ToString() != "") { arf.HighSDCutoff = Convert.ToInt32(cmbExSDsAbove.SelectedItem.ToString()); } } ar.ApplyFilter(arf); lblFilteredResultProperties.Text = ar.FilteredResults.propertyString + "\r\nLibrary Coverage: " + ar.FilteredResults.Coverage(_env.subsLib.FilteredLibrary); } catch (Exception ex) { MessageBox.Show("One or more filter parameters was not in the correct format."); } } }
/// <summary> /// When the selected index is changed, load the file /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lstAssayResults_SelectedIndexChanged(object sender, EventArgs e) { AssayResults ar = SelectedAssayResult(); // set the property string lblResultProperties.Text = ar.propertyString + "\r\nLibrary Coverage: " + ar.Coverage(_env.subsLib.FilteredLibrary); if (ar.FilteredResults != ar) { lblFilteredResultProperties.Text = ar.FilteredResults.propertyString + "\r\nLibrary Coverage: " + ar.FilteredResults.Coverage(_env.subsLib); // set filter AssayResultsFilter arf = ar.Filter; txtExcludeText.Text = arf.ExcludeString; txtExHighCutoff.Text = arf.HighCutoff == arf.DEFAULT_CUTOFF ? "" : arf.HighCutoff.ToString(); txtExLowCutoff.Text = arf.LowCutoff == -arf.DEFAULT_CUTOFF ? "" : arf.LowCutoff.ToString(); cmbExSDsAbove.SelectedText = arf.HighSDCutoff == arf.DEFAULT_CUTOFF ? "" : arf.HighSDCutoff.ToString(); cmbExSDsBelow.Text = arf.LowSDCutoff == arf.DEFAULT_CUTOFF ? "" : arf.LowSDCutoff.ToString(); } else { lblFilteredResultProperties.Text = "No filter."; } }
/// <summary> /// Construct an AssayResults object from an existing assay results object and a filter /// </summary> /// <param name="original"></param> /// <param name="filter"></param> public AssayResults(AssayResults original, AssayResultsFilter filter) : this(original.Name, "") { // copy all values that match the filter criteria bool pass = true; double mean = original.meanValue; double sd = original.sdValue; foreach (string s in original.ResultHash.Keys) { pass = true; double val = (double)original.ResultHash[s]; if (val > filter.HighCutoff) { pass = false; } if (val < filter.LowCutoff) { pass = false; } if (val > mean + filter.HighSDCutoff * sd) { pass = false; } if (val < mean - filter.LowSDCutoff * sd) { pass = false; } if (filter.ExcludeString != "" && original.OmitHash[s].ToString() == filter.ExcludeString) { pass = false; } if (pass) { _hsResults.Add(s, val); } } // convert hashtable values to array _results = (double[])(new ArrayList(_hsResults.Values).ToArray(typeof(double))); }
public AssayResults ApplyFilter(AssayResultsFilter filter) { _filter = filter; _filteredResults = new AssayResults(this, filter); return(_filteredResults); }