public static HistogramBin[] Histogram(this IList <MetaNum> self, int binCount = -1, double binWidth = double.NaN) { var min = (double)self.Min(); var max = (double)self.Max(); HistogramInterval intervals; if (!double.IsNaN(binWidth)) { intervals = HistogramHelper.GetHistogramIntervalFromBinWidth(min, max, binWidth); } else { if (binCount < 0) { binCount = HistogramHelper.GetBinCount(min, max, self.Count); } intervals = HistogramHelper.GetHistogramIntervalFromBinCount(min, max, binCount); } var collect = CollectHistogram(self, intervals); var counts = collect.Item1; var total = collect.Item2; return(HistogramBin.CreateHistogram(intervals, counts, total)); }
public override void HandleMouseClick(object sender, MouseEventArgs e) { if (_selectedData != null && e.Button == MouseButtons.Left) { HistogramHelper.CreateAndShowFindResults((ZedGraphControl)sender, GraphSummary, _document, _selectedData); _selectedData = null; } }
public WindowedStreamConsumer([NotNull] WindowedStreamConsumerSettings <T, TKey> settings, [CanBeNull] ILog log) : base(settings, log) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); this.log = (log ?? LogProvider.Get()).ForContext <WindowedStreamConsumer <T, TKey> >(); tracer = settings.Tracer ?? TracerProvider.Get(); windows = new Dictionary <TKey, Windows <T, TKey> >(); var applicationMetricContext = settings.ApplicationMetricContext ?? new DevNullMetricContext(); eventLagMetric = applicationMetricContext.CreateHistogram("eventLag", new HistogramConfig { Buckets = HistogramHelper.CreateDefaultBuckets(), Unit = WellKnownUnits.Milliseconds }); var instanceMetricContext = settings.InstanceMetricContext ?? new DevNullMetricContext(); stateMetric = instanceMetricContext.CreateIntegerGauge("state", "type"); var settingsOnBatchEnd = settings.OnBatchEnd; settings.OnBatchEnd = c => { FlushWindows(); Task.Run(() => settings.LeftCoordinatesStorage.AdvanceAsync(leftCoordinates)); settingsOnBatchEnd?.Invoke(c); }; var settingsOnEvent = settings.OnEvent; settings.OnEvent = (e, c) => { AddEvent(e, c); settingsOnEvent?.Invoke(e, c); }; var settingsOnRestart = settings.OnRestart; settings.OnRestart = c => { Restart(c).GetAwaiter().GetResult(); settingsOnRestart?.Invoke(c); }; var settingsOnStop = settings.OnStop; settings.OnStop = c => { Stop(c).GetAwaiter().GetResult(); settingsOnStop?.Invoke(c); }; }
private void padButton_Click(object sender, EventArgs e) { try { GraphPane graphPane = histogramControl.GraphPane; HistogramHelper.SetPointsList(ref pointsPAD, padPath); HistogramHelper.AddPadHistogram(graphPane, histogramControl, pointsPAD); } catch (Exception) { MessageBox.Show("Fail to load histogram!"); } }
private void Form1_Load(object sender, EventArgs e) { try { HistogramHelper.SetPointsList(ref pointsAC, acPath); GraphPane graphPane = histogramControl.GraphPane; HistogramHelper.AddAcHistogram(graphPane, histogramControl, pointsAC); //HistogramHelper.JoinFiles(); } catch (Exception) { MessageBox.Show("Fail to load histogram!"); } }
private void AddLabels(Graphics g) { if (_areaCVGraphData == null) { Title.Text = Resources.AreaCVHistogramGraphPane_AddLabels_Calculating____; } else if (!_areaCVGraphData.IsValid) { Title.Text = Resources.AreaCVHistogramGraphPane_AddLabels_Not_enough_data; } else { Title.Text = string.Empty; var unit = _percentage ? @"%" : string.Empty; var factor = _percentage ? 100.0 : 1.0; var scaleFactor = CalcScaleFactor(); var fontHeight = GraphSummary.CreateFontSpec(Color.Black).GetHeight(scaleFactor); var height = PaneHeightToYValue(fontHeight); // Anchor labels at top of graph pane var y = Math.Min(PaneHeightToYValue(Rect.Height - TitleGap * Title.FontSpec.GetHeight(scaleFactor) - fontHeight * _stickItems.Count), _areaCVGraphData.MaxFrequency + height); var index = 0; if (Settings.Default.AreaCVShowMedianCV) { _stickItems[index++].Points[1].Y = y; string text = string.Format(Resources.AreaCVHistogramGraphPane_AddLabels_Median___0_, HistogramHelper.FormatDouble(_areaCVGraphData.MedianCV * factor, _decimals) + unit); GraphObjList.Add(AddLabel(text, _areaCVGraphData.MedianCV * factor, y, Color.Blue)); y += height; } if (Settings.Default.AreaCVShowCVCutoff) { _stickItems[index++].Points[1].Y = y; string text = string.Format(Resources.AreaCVHistogramGraphPane_UpdateGraph_Below__0____1_, Settings.Default.AreaCVCVCutoff + unit, HistogramHelper.FormatDouble(_areaCVGraphData.BelowCVCutoff * factor, _decimals) + unit); GraphObjList.Add(AddLabel(text, Settings.Default.AreaCVCVCutoff, y, Color.Red)); } } }
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { var combobox = (ComboBox)sender; var selectedItem = (ComboBoxItem)combobox.SelectedItem; if (selectedItem == null || HistogramPolygon == null) { return; } switch (selectedItem.Content.ToString()) { default: case "Czerwony": HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(_histogram.HistogramR); HistogramPolygon.Fill = new SolidColorBrush(Colors.Red); HistogramType = HistogramType.Red; break; case "Zielony": HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(_histogram.HistogramG); HistogramPolygon.Fill = new SolidColorBrush(Colors.Green); HistogramType = HistogramType.Green; break; case "Niebieski": HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(_histogram.HistogramB); HistogramPolygon.Fill = new SolidColorBrush(Colors.Blue); HistogramType = HistogramType.Blue; break; case "Uśredniony": HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(_histogram.HistogramAv); HistogramPolygon.Fill = new SolidColorBrush(Colors.Gray); HistogramType = HistogramType.Average; break; } }
private void UpdateHistogram() { var tempHistogram = new Histogram((ImageBrush)PreviewImage.Background); switch (HistogramType) { default: case HistogramType.Red: HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(tempHistogram.HistogramR); break; case HistogramType.Green: HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(tempHistogram.HistogramG); break; case HistogramType.Blue: HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(tempHistogram.HistogramB); break; case HistogramType.Average: HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(tempHistogram.HistogramAv); break; } }
public override void UpdateGraph(bool selectionChanged) { if (!GraphSummary.DocumentUIContainer.DocumentUI.Settings.HasResults) { _areaCVGraphData = null; return; } var settings = new AreaCVGraphData.AreaCVGraphSettings(GraphSummary.Type); _document = GraphSummary.DocumentUIContainer.DocumentUI; _percentage = !Settings.Default.AreaCVShowDecimals; _decimals = _percentage ? 1 : 3; CurveList.Clear(); var gotData = _cache.TryGet(_document, settings, DataCallback, out _areaCVGraphData); if (!gotData) { Title.Text = Resources.AreaCVHistogram2DGraphPane_UpdateGraph_Calculating____; return; } if (!_areaCVGraphData.IsValid) { Title.Text = Resources.AreaCVHistogram2DGraphPane_Draw_Not_enough_data; return; } var factor = AreaGraphController.GetAreaCVFactorToDecimal(); Title.Text = string.Empty; YAxis.Title.Text = Resources.AreaCVHistogram2DGraphPane_UpdateGraph_CV + (_percentage ? @" (%)" : string.Empty); XAxis.Title.Text = Resources.AreaCvHistogram2DGraphPane_UpdateGraph_Log10_Mean_Area; XAxis.Scale.MinAuto = XAxis.Scale.MinAuto = XAxis.Scale.MaxAuto = YAxis.Scale.MaxAuto = false; XAxis.Scale.Min = Math.Max(0, double.IsNaN(Settings.Default.AreaCVMinLog10Area) ? _areaCVGraphData.MinMeanArea : Settings.Default.AreaCVMinLog10Area); XAxis.Scale.Max = double.IsNaN(Settings.Default.AreaCVMaxLog10Area) ? _areaCVGraphData.MaxMeanArea : Settings.Default.AreaCVMaxLog10Area; YAxis.Scale.Min = 0.0; YAxis.Scale.Max = double.IsNaN(Settings.Default.AreaCVMaxCV) ? _areaCVGraphData.MaxCV * factor : Settings.Default.AreaCVMaxCV; AxisChange(); var points = _areaCVGraphData.Data .Select(d => new HeatMapData.TaggedPoint3D(new Point3D(d.MeanArea, d.CV * factor, d.Frequency), d)) .ToList(); Items = points.Count; // Because heatmaps can't be trusted to have a consistent number of points on all monitors var heatMapData = new HeatMapData(points); HeatMapGraphPane.GraphHeatMap(this, heatMapData, 17, 2, (float)(_areaCVGraphData.MinCV * factor), (float)(_areaCVGraphData.MaxCV * factor), Settings.Default.AreaCVLogScale, 0); var unit = _percentage ? @"%" : string.Empty; if (Settings.Default.AreaCVShowMedianCV) { string text = string.Format(Resources.AreaCVHistogram2DGraphPane_UpdateGraph_Median___0_, HistogramHelper.FormatDouble(_areaCVGraphData.MedianCV * factor, _decimals) + unit); _lineItems[0] = AddLineItem(text, XAxis.Scale.Min, XAxis.Scale.Max, _areaCVGraphData.MedianCV * factor, _areaCVGraphData.MedianCV * factor, Color.Blue); CurveList.Insert(0, _lineItems[0]); } if (Settings.Default.AreaCVShowCVCutoff) { string text = string.Format(Resources.AreaCVHistogramGraphPane_UpdateGraph_Below__0____1_, Settings.Default.AreaCVCVCutoff + unit, HistogramHelper.FormatDouble(_areaCVGraphData.BelowCVCutoff * factor, _decimals) + unit); _lineItems[1] = AddLineItem(text, XAxis.Scale.Min, XAxis.Scale.Max, Settings.Default.AreaCVCVCutoff, Settings.Default.AreaCVCVCutoff, Color.Red); CurveList.Insert(0, _lineItems[1]); } }
private double[] GetBuckets(string id) => HistogramHelper.GetBuckets(_config.Histograms, id);
private void InitializeHistogram() { HistogramPolygon.Points = HistogramHelper.ConvertToPointCollection(_histogram.HistogramR); HistogramPolygon.Fill = new SolidColorBrush(Colors.Red); }
private async Task UpdatePreviewImage(int min, int max) { Lut = HistogramHelper.GetLutStretching(min, max); PreviewImage.Background = await HistogramHelper.StretchHistogram(_origin, Lut, HistogramType); }
public override void UpdateGraph(bool selectionChanged) { if (!GraphSummary.DocumentUIContainer.DocumentUI.Settings.HasResults) { _areaCVGraphData = null; return; } var settings = new AreaCVGraphData.AreaCVGraphSettings(GraphSummary.Type); _document = GraphSummary.DocumentUIContainer.DocumentUI; var factor = AreaGraphController.GetAreaCVFactorToDecimal(); BarSettings.Type = BarType.SortedOverlay; BarSettings.ClusterScaleWidth = Settings.Default.AreaCVHistogramBinWidth; BarSettings.MinClusterGap = 0.0f; _percentage = !Settings.Default.AreaCVShowDecimals; _decimals = _percentage ? 1 : 3; GraphObjList.Clear(); CurveList.Clear(); _stickItems.Clear(); var gotData = _cache.TryGet(_document, settings, DataCallback, out _areaCVGraphData); if (!gotData || !_areaCVGraphData.IsValid) { return; } var fontHeight = GraphSummary.CreateFontSpec(Color.Black).GetHeight(CalcScaleFactor()); var height = PaneHeightToYValue(fontHeight); var heightFactor = 1; if (Settings.Default.AreaCVShowMedianCV) { var stick = AddStickItem(_areaCVGraphData.MedianCV * factor, _areaCVGraphData.MedianCV * factor, 0.0, _areaCVGraphData.MaxFrequency + heightFactor++ *height, Color.Blue); CurveList.Add(stick); _stickItems.Add(stick); } if (Settings.Default.AreaCVShowCVCutoff) { var stick = AddStickItem(Settings.Default.AreaCVCVCutoff, Settings.Default.AreaCVCVCutoff, 0.0, _areaCVGraphData.MaxFrequency + heightFactor++ *height, Color.Red); CurveList.Add(stick); _stickItems.Add(stick); } var selected = HistogramHelper.GetSelectedPeptides(GraphSummary).NodePeps.OrderBy(p => p.Id.GlobalIndex).ToList(); var comparer = Comparer <PeptideDocNode> .Create((a, b) => a.Id.GlobalIndex.CompareTo(b.Id.GlobalIndex)); var selectedPoints = new PointPairList(); var selectedPoints2 = new PointPairList(); var otherPoints = new PointPairList(); foreach (var d in _areaCVGraphData.Data) { int frequency; var x = d.CV * factor + Settings.Default.AreaCVHistogramBinWidth / 2.0f; var pt = new PointPair(x, d.Frequency) { Tag = d }; if (Settings.Default.ShowReplicateSelection && (frequency = d.PeptideAnnotationPairs.Count(pair => selected.BinarySearch(pair.Peptide, comparer) >= 0)) > 0) { selectedPoints.Add(pt); selectedPoints2.Add(new PointPair(x, frequency) { Tag = d }); } else { otherPoints.Add(pt); } } CurveList.Insert(0, MakeBarItem(selectedPoints2, Color.Red)); CurveList.Insert(1, MakeBarItem(selectedPoints, Color.FromArgb(Color.Red.ToArgb() & 0x7FFFFFFF))); CurveList.Insert(2, MakeBarItem(otherPoints, Color.FromArgb(180, 220, 255))); XAxis.Title.Text = Resources.AreaCVHistogramGraphPane_UpdateGraph_CV + (_percentage ? @" (%)" : string.Empty); YAxis.Title.Text = Resources.AreaCVHistogramGraphPane_UpdateGraph_Frequency; XAxis.Scale.Min = YAxis.Scale.Min = 0; XAxis.Scale.MinAuto = XAxis.Scale.MaxAuto = YAxis.Scale.MinAuto = YAxis.Scale.MaxAuto = false; if (!double.IsNaN(Settings.Default.AreaCVMaxCV)) { XAxis.Scale.Max = Settings.Default.AreaCVMaxCV; } else { XAxis.Scale.Max = _areaCVGraphData.MaxCV * factor + Settings.Default.AreaCVHistogramBinWidth; } if (!double.IsNaN(Settings.Default.AreaCVMaxFrequency)) { YAxis.Scale.Max = Settings.Default.AreaCVMaxFrequency; } else { YAxis.Scale.Max = _areaCVGraphData.MaxFrequency + heightFactor * height; } AxisChange(); }
public virtual bool EvalSegment(Mat comparePiece) { return(HistogramHelper.IsImageWhite(comparePiece)); }
public override bool EvalSegment(Mat comparePiece) { float compareDiff = (COLS > 10 || ROWS > 10) ? 0.92f : 0.6f;//increase precision if lots of segments, return(HistogramHelper.IsImageWhite(comparePiece, compareDiff)); }
public HistogramWindow() { InitializeComponent(); _histogram = new HistogramHelper(); }