public void RecomputeDistances(eDistances Dist)
        {
            for (int j = 0; j < ValuesMatrix.Length; j++)
            {
                cWell SourceWell = this.AssociatedPlate.ListActiveWells[j];
                for (int i = j; i < ValuesMatrix[0].Length; i++)
                {
                    cWell DestinationWell = this.AssociatedPlate.ListActiveWells[i];
                    ValuesMatrix[i][j] = ValuesMatrix[j][i] = SourceWell.DistanceTo(DestinationWell, Dist);

                //    CurrentScreening.ListDescriptors[0].IsActive
                }
            }

            Max = double.MinValue;
            Min = double.MaxValue;

            for (int j = 0; j < ValuesMatrix.Length; j++)
                for (int i = 0; i < ValuesMatrix[0].Length; i++)
                {
                    if (ValuesMatrix[j][i] > Max)
                        Max = ValuesMatrix[j][i];
                    if (ValuesMatrix[j][i] < Min)
                        Min = ValuesMatrix[j][i];
                }
        }
        public cWindowToDisplaySingleMatrix(cPanelForDisplayArray PanelToDisplay, eDistances Dist)
        {
            //this.CellSize = SizeSquare;
            this.Text = "Distance Matrix ( " + Dist.ToString() + ")";

            this.XNumber = 1;

            this.checkBoxDisplayClasses.Visible = false;
            this.checkBoxGlobalNormalization.Visible = false;

            cExtendedList GlobalValues = new cExtendedList();

            GlobalValues.AddRange(PanelToDisplay.GetListValues());

            double Max_ = GlobalValues.Max();
            double Min_ = GlobalValues.Min();

            PanelToDisplay.GlobalMin = Min_;
            PanelToDisplay.GlobalMax = Max_;

            this.PanelList = new List<cPanelForDisplayArray>();
            this.PanelList.Add(PanelToDisplay);

            this.Width = PanelToDisplay.Width + 500;
            this.Height = PanelToDisplay.Height + 500;
            RefreshDisplay(false);

            this.Show();
        }
Ejemplo n.º 3
0
        public double DistanceTo(cWell DestinationWell, eDistances DistanceType)
        {
            double Distance = 0;

            switch (DistanceType)
            {
                case eDistances.EUCLIDEAN:
                    Distance += this.GetAverageValuesList(true)[0].Dist_Euclidean(DestinationWell.GetAverageValuesList(true)[0]);
                    break;
                case eDistances.MANHATTAN:
                    Distance += this.GetAverageValuesList(true)[0].Dist_Manhattan(DestinationWell.GetAverageValuesList(true)[0]);
                    break;
                case eDistances.VECTOR_COS:
                    Distance += this.GetAverageValuesList(true)[0].Dist_VectorCosine(DestinationWell.GetAverageValuesList(true)[0]);
                    break;
                case eDistances.BHATTACHARYYA:
                    Distance += this.GetAverageValuesList(true)[0].Dist_BhattacharyyaCoefficient(DestinationWell.GetAverageValuesList(true)[0]);
                    break;
                case eDistances.EMD:
                    Distance += this.GetAverageValuesList(true)[0].Dist_EarthMover(DestinationWell.GetAverageValuesList(true)[0]);
                    break;
                default:
                    break;
            }

            return Distance;
        }
Ejemplo n.º 4
0
        public double DistanceTo(cWell DestinationWell, eDistances IntraHistoDistanceType, eDistances InterHistoDistanceType)
        {
            double Distance = 0;

            cExtendedList ListDistSource = new cExtendedList();
            cExtendedList ListDistDest = new cExtendedList();

            for (int Idxdescriptor = 0; Idxdescriptor < cGlobalInfo.CurrentScreening.ListDescriptors.Count; Idxdescriptor++)
            {
                if (cGlobalInfo.CurrentScreening.ListDescriptors[Idxdescriptor].IsActive() == false) continue;

                switch (IntraHistoDistanceType)
                {
                    case eDistances.EUCLIDEAN:
                        ListDistSource.Add(this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_Euclidean(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues()));
                        ListDistDest.Add(DestinationWell.ListSignatures[Idxdescriptor].GetValue());

                        Distance = ListDistSource.Dist_Euclidean(ListDistDest);
                        break;
                    case eDistances.MANHATTAN:
                        Distance = ListDistSource.Dist_Manhattan(ListDistDest);
                        break;
                    case eDistances.VECTOR_COS:
                        Distance = ListDistSource.Dist_VectorCosine(ListDistDest);
                        break;
                    case eDistances.BHATTACHARYYA:
                        Distance = ListDistSource.Dist_BhattacharyyaCoefficient(ListDistDest);
                        break;
                    case eDistances.EMD:
                        Distance = ListDistSource.Dist_EarthMover(ListDistDest);
                        break;
                    default:
                        break;
                }

            }

            switch (InterHistoDistanceType)
            {
                case eDistances.EUCLIDEAN:
                    Distance = ListDistSource.Dist_Euclidean(ListDistDest);
                    break;
                case eDistances.MANHATTAN:
                    Distance = ListDistSource.Dist_Manhattan(ListDistDest);
                    break;
                case eDistances.VECTOR_COS:
                    Distance = ListDistSource.Dist_VectorCosine(ListDistDest);
                    break;
                case eDistances.BHATTACHARYYA:
                    Distance = ListDistSource.Dist_BhattacharyyaCoefficient(ListDistDest);
                    break;
                case eDistances.EMD:
                    Distance = ListDistSource.Dist_EarthMover(ListDistDest);
                    break;
                default:
                    break;
            }

            return Distance;
        }
Ejemplo n.º 5
0
 public double DistanceTo(cWell DestinationWell, int Idxdescriptor, eDistances DistanceType)
 {
     double Distance = 0;
     switch (DistanceType)
     {
         case eDistances.EUCLIDEAN:
             Distance = this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_Euclidean(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues());
             break;
         case eDistances.MANHATTAN:
             Distance = this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_Manhattan(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues());
             break;
         case eDistances.VECTOR_COS:
             Distance = this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_VectorCosine(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues());
             break;
         case eDistances.BHATTACHARYYA:
             Distance = this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_BhattacharyyaCoefficient(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues());
             break;
         case eDistances.EMD:
             Distance = this.ListSignatures[Idxdescriptor].GetHistovalues().Dist_EarthMover(DestinationWell.ListSignatures[Idxdescriptor].GetHistovalues());
             break;
         default:
             break;
     }
     return Distance;
 }