Пример #1
0
 public FormFor3DVisu(cScreening CompleteScreening, FormForSimuGenerator Parent)
 {
     InitializeComponent();
     this.CompleteScreening = CompleteScreening;
     //this.NewWorld = NewWorld;
     this.Parent = Parent;
 }
Пример #2
0
 public cGlobalInfo(cScreening CurrentScreen, HCSAnalyzer WindowHCSAnalyzer)
 {
     OptionsWindow = new FormForOptionsWindow(CurrentScreen);
     this.CurrentScreen = CurrentScreen;
     this.WindowHCSAnalyzer = WindowHCSAnalyzer;
     this.WindowName = WindowHCSAnalyzer.Text;
     this.LUT = LUTs.LUT_JET;
 }
Пример #3
0
 // protected Size SizeHisto = new System.Drawing.Size(10, 5);
 public cWell(cWell NewWell)
 {
     this.PosX = NewWell.PosX;
     this.PosY = NewWell.PosY;
     this.ListDescriptors = NewWell.ListDescriptors;
     this.Parent = NewWell.Parent;
     this.AssociatedChart = NewWell.AssociatedChart;
     this.AssociatedPlate = NewWell.AssociatedPlate;
     this.CurrentColor = this.Parent.GlobalInfo.GetColor(ClassForClassif);
 }
        public FormForOptionsWindow(cScreening CurrentScreen)
        {
            this.CurrentScreen = CurrentScreen;

            InitializeComponent();
            buttonOk.Focus();
            buttonOk.Select();
            this.comboBoxHierarchicalDistance.SelectedIndex = 0;
            this.comboBoxHierarchicalLinkType.SelectedIndex = 0;
        }
        public FormFor3DDataDisplay(bool IsFullScreen, cScreening CompleteScreening)
        {
            this.CompleteScreening = CompleteScreening;
            InitializeComponent();
            this.IsFullScreen = IsFullScreen;
              //  WindowFormFor3DVizuOptions.Parent = this;

            for (int i = 0; i < (int)CompleteScreening.ListDescriptors.Count; i++)
            {
                ListScales.Add(1);
            }
        }
Пример #6
0
        public cWell(List<cDescriptor> ListDesc, int Col, int Row, cScreening screenParent, cPlate CurrentPlate)
        {
            this.Parent = screenParent;
            this.AssociatedPlate = CurrentPlate;
            this.ListDescriptors = new List<cDescriptor>();

            this.ListDescriptors = ListDesc;

            this.PosX = Col;
            this.PosY = Row;

            this.CurrentColor = this.Parent.GlobalInfo.GetColor(ClassForClassif);
        }
Пример #7
0
        //public cWell(cWell NewWell)
        //{
        //    this.PosX = NewWell.PosX;
        //    this.PosY = NewWell.PosY;
        //    this.ListDescriptors = NewWell.ListDescriptors;
        //    this.Parent = NewWell.Parent;
        //    this.AssociatedChart = NewWell.AssociatedChart;
        //    this.AssociatedPlate = NewWell.AssociatedPlate;
        //    this.CurrentColor = this.Parent.GlobalInfo.GetColor(ClassForClassif);
        //}
        public cWell(cDescriptor Desc, int Col, int Row, cScreening screenParent, cPlate CurrentPlate)
        {
            this.CellNumber = -1;
            this.Parent = screenParent;
            this.AssociatedPlate = CurrentPlate;
            this.ListDescriptors = new List<cDescriptor>();
            List<cDescriptor> TmpListDescriptors = new List<cDescriptor>();
            TmpListDescriptors.Add(Desc);

            this.AddDescriptors(TmpListDescriptors);

            this.PosX = Col;
            this.PosY = Row;

            this.CurrentColor = this.Parent.GlobalInfo.GetColor(ClassForClassif);
        }
Пример #8
0
        public FormFor3DDataDisplay(bool IsFullScreen, cScreening CompleteScreening)
        {
            this.CompleteScreening = CompleteScreening;
            InitializeComponent();

            // toolTip1.SetToolTip(comboBoxDescriptorX,comboBoxDescriptorX.Text+"aaaaaa");
            //comboBoxDescriptorX.MouseHover += new System.EventHandler(this.comboBoxDescriptorX_MouseHover);

            //this.comboBoxDescriptorX.tool
            // Set up the ToolTip text for the Button and Checkbox.
            // toolTip1.SetToolTip(, "Unsupervised feature selection.\nThese approaches use all the active wells as data for the dimensionality reduction.");

            this.IsFullScreen = IsFullScreen;
            //  WindowFormFor3DVizuOptions.Parent = this;

            for (int i = 0; i < (int)CompleteScreening.ListDescriptors.Count; i++)
            {
                ListScales.Add(1);
            }

            ClassSelectionPanel = new PanelForClassSelection(true, Classes.Base_Classes.GUI.eClassType.WELL);
            ClassSelectionPanel.Height = panelForClasses.Height;
            ClassSelectionPanel.SelectAll();
            panelForClasses.Controls.Add(ClassSelectionPanel);

            foreach (var CurrentCheckBox in ClassSelectionPanel.ListCheckBoxes)
            {
                CurrentCheckBox.CheckedChanged += new EventHandler(CurrentCheckBox_CheckedChanged);
            }

            ToolTipForX.AutoPopDelay = ToolTipForY.AutoPopDelay = ToolTipForZ.AutoPopDelay = 5000;
            ToolTipForX.InitialDelay = ToolTipForY.InitialDelay = ToolTipForZ.InitialDelay = 500;
            ToolTipForX.ReshowDelay = ToolTipForY.ReshowDelay = ToolTipForZ.ReshowDelay = 500;
            ToolTipForX.ShowAlways = ToolTipForY.ShowAlways = ToolTipForZ.ShowAlways = true;
            ToolTipForX.SetToolTip(comboBoxDescriptorX, comboBoxDescriptorX.Text);

            this.WindowFormFor3DVizuOptions = new FormFor3DVizuOptions(this);

            this.LightIntensity = (double)this.WindowFormFor3DVizuOptions.numericUpDownLightIntensity.Value;
            this.LightAmbient = (double)this.WindowFormFor3DVizuOptions.numericUpDownLightAmbient.Value;
            this.LightDiffuse = (double)this.WindowFormFor3DVizuOptions.numericUpDownLightIntensity.Value;
            this.LightSpecular = (double)this.WindowFormFor3DVizuOptions.numericUpDownLightIntensity.Value;

            SphereSource = vtkSphereSource.New();
        }
Пример #9
0
        public cWell(cSignature Desc, int Col, int Row, cScreening screenParent, cPlate CurrentPlate)
        {
            //Parent = screenParent;
            this.AssociatedPlate = CurrentPlate;

            this.ListSignatures = new cListSignature();

            this.ListSignatures.Add(Desc);

            this.PosX = Col;
            this.PosY = Row;

            //   this.CurrentColor = this.cGlobalInfo.ListClasses[ClassForClassif].ColourForDisplay;
            Desc.AssociatedWell = this;

            // this.ListClass.Add(this.InitialClass);
            this.ListProperties = new cListWellProperty(this);
            this.ListProperties.UpdateValueByName("Well Class", 2);
        }
        public cPanelForDisplayArray(double[][] Values, cScreening CurrentScreening)
        {
            this.CellSize = 2;
            this.Paint += new System.Windows.Forms.PaintEventHandler(this.cPanelForDisplayArray_Paint);
            this.DoubleBuffered = false;

            this.CurrentScreening = CurrentScreening;
            this.ValuesMatrix = Values;

            for (int j = 0; j < ValuesMatrix.Length; j++)
                for (int i = 0; i < ValuesMatrix[0].Length; i++)
                {
                    if (ValuesMatrix[j][i] > this.Max)
                        this.Max = ValuesMatrix[j][i];
                    if (ValuesMatrix[j][i] < this.Min)
                        this.Min = ValuesMatrix[j][i];

                }

            DisplayMatrix();
        }
Пример #11
0
 public FormClassification(cScreening CurrentScreening)
 {
     InitializeComponent();
     this.CurrentScreening = CurrentScreening;
 }
Пример #12
0
        private void generateDRCsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int nbrofdrugs = 6;
            int nbrofconcentrations = 10;
            int nbrofdesc = 3;
            double[, ,] DRC = new double[nbrofconcentrations, nbrofdrugs, nbrofdesc];
            float[] X1 = new float[nbrofconcentrations];
            X1[0] = 1000;
            for (int i = 1; i < X1.Length; i++)
            {
                X1[i] = X1[i - 1] / 3;
            }
            Random Bot = new Random();
            Random To = new Random();
            Random Ec5 = new Random();
            Random Slop = new Random();

            CompleteScreening = new cScreening("Current Screen", this.GlobalInfo);
            CompleteScreening.Columns = nbrofconcentrations;
            CompleteScreening.Rows = nbrofdrugs;

            for (int j = 0; j < nbrofdrugs; j++)
            {
                for (int k = 0; k < nbrofdesc; k++)
                {
                    float Bottom = Bot.Next(10);
                    float Top = To.Next(80, 100);
                    float Ec50 = Ec5.Next(40, 60);
                    float Slope = Slop.Next(1, 5);
                    for (int i = 0; i < X1.Length; i++)
                    {
                        //DRC[i, j, k] = Bottom + (Top - Bottom) / (1 + Math.Pow(((Math.Pow(10, Ec50) / Math.Pow(10, X1[0]))), Slope));
                        DRC[i, j, k] = Bottom + (Top - Bottom) / (1 + Math.Pow((X1[i] / Ec50), -Slope));
                    }
                }
            }

            cPlate NewPlate = new cPlate("Cpds", "Plate0", CompleteScreening);
            CompleteScreening.AddPlate(NewPlate);
            CompleteScreening.ListDescriptors.Clean();
            for (int k = 0; k < nbrofdesc; k++)
            {
                cDescriptorsType DescType = new cDescriptorsType("Desc" + k, true, 1, GlobalInfo);
                CompleteScreening.ListDescriptors.AddNew(DescType);
            }

            for (int j = 0; j < nbrofdrugs; j++)
            {
                for (int i = 0; i < nbrofconcentrations; i++)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();
                    for (int k = 0; k < nbrofdesc; k++)
                    {
                        //DRC[i, j, k] = Bottom + (Top - Bottom) / (1 + Math.Pow(((Math.Pow(10, Ec50) / Math.Pow(10, X1[0]))), Slope));
                        cDescriptor CurrentDesc = new cDescriptor(DRC[i, j, k], CompleteScreening.ListDescriptors[k], CompleteScreening);
                        LDesc.Add(CurrentDesc);

                    }
                    cWell NewWell = new cWell(LDesc, i+1, j+1, CompleteScreening, NewPlate);
                    NewWell.Concentration = X1[i];
                    NewPlate.AddWell(NewWell);

                }
            }

            CompleteScreening.ListDescriptors.UpDateDisplay();
            CompleteScreening.UpDatePlateListWithFullAvailablePlate();

            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();

            StartingUpDateUI();

            this.toolStripcomboBoxPlateList.Items.Clear();

            for (int IdxPlate = 0; IdxPlate < CompleteScreening.ListPlatesActive.Count; IdxPlate++)
            {
                string Name = CompleteScreening.ListPlatesActive.GetPlate(IdxPlate).Name;
                this.toolStripcomboBoxPlateList.Items.Add(Name);
                PlateListWindow.listBoxPlateNameToProcess.Items.Add(Name);
                PlateListWindow.listBoxAvaliableListPlates.Items.Add(Name);
            }

            CompleteScreening.CurrentDisplayPlateIdx = 0;
            CompleteScreening.SetSelectionType(comboBoxClass.SelectedIndex - 1);

            UpdateUIAfterLoading();
        }
Пример #13
0
        private void convertDRCToWellToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.DialogResult ResWin = MessageBox.Show("By applying this process, the current screening will be entirely updated ! Proceed ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (ResWin == System.Windows.Forms.DialogResult.No) return;
            //foreach (cDescriptorsType DescType in CompleteScreening.ListDescriptors)
            //{
            //    CompleteScreening.ListDescriptors.RemoveDescUnSafe(DescType, CompleteScreening);
            //}

            if (CompleteScreening != null) CompleteScreening.Close3DView();

            //   CompleteScreening.ListDescriptors.RemoveDesc(CompleteScreening.ListDescriptors[IntToTransfer], CompleteScreening);
            cScreening MergedScreening = new cScreening("Merged Screen", GlobalInfo);
            MergedScreening.PanelForPlate = this.panelForPlate;

            MergedScreening.Rows = CompleteScreening.Rows;
            MergedScreening.Columns = CompleteScreening.Columns;
            MergedScreening.ListPlatesAvailable = new cExtendPlateList();

            // create the descriptor
            MergedScreening.ListDescriptors.Clean();

            int Idesc = 0;

            List<cDescriptorsType> ListDescType = new List<cDescriptorsType>();

            for (int i = 0; i < CompleteScreening.ListDescriptors.Count; i++)
            {
                if (!CompleteScreening.ListDescriptors[i].IsActive()) continue;

                cDescriptorsType DescEC50 = new cDescriptorsType("EC50_" + CompleteScreening.ListDescriptors[i].GetName(), true, 1, GlobalInfo);
                ListDescType.Add(DescEC50);
                MergedScreening.ListDescriptors.AddNew(DescEC50);

                cDescriptorsType DescTop = new cDescriptorsType("Top_" + CompleteScreening.ListDescriptors[i].GetName(), true, 1, GlobalInfo);
                ListDescType.Add(DescTop);
                MergedScreening.ListDescriptors.AddNew(DescTop);

                cDescriptorsType DescBottom = new cDescriptorsType("Bottom_" + CompleteScreening.ListDescriptors[i].GetName(), true, 1, GlobalInfo);
                ListDescType.Add(DescBottom);
                MergedScreening.ListDescriptors.AddNew(DescBottom);

                cDescriptorsType DescSlope = new cDescriptorsType("Slope_" + CompleteScreening.ListDescriptors[i].GetName(), true, 1, GlobalInfo);
                ListDescType.Add(DescSlope);
                MergedScreening.ListDescriptors.AddNew(DescSlope);

                Idesc++;
            }

            MergedScreening.ListDescriptors.CurrentSelectedDescriptor = 0;
            foreach (cPlate CurrentPlate in CompleteScreening.ListPlatesAvailable)
            {

                cPlate NewPlate = new cPlate("Cpds", CurrentPlate.Name + " Merged", MergedScreening);
                // check if the plate exist already
                MergedScreening.AddPlate(NewPlate);

                foreach (cDRC_Region CurrentRegion in CurrentPlate.ListDRCRegions)
                {

                    List<cDescriptor> LDesc = new List<cDescriptor>();

                    Idesc = 0;
                    int IDESCBase = 0;

                    for (int i = 0; i < CompleteScreening.ListDescriptors.Count; i++)
                    {
                        if (!CompleteScreening.ListDescriptors[i].IsActive()) continue;

                        cDRC CurrentDRC = CurrentRegion.GetDRC(CompleteScreening.ListDescriptors[IDESCBase++]);

                        cDescriptor Desc_EC50 = new cDescriptor(CurrentDRC.EC50, ListDescType[Idesc++], CompleteScreening);
                        LDesc.Add(Desc_EC50);

                        cDescriptor Desc_Top = new cDescriptor(CurrentDRC.Top, ListDescType[Idesc++], CompleteScreening);
                        LDesc.Add(Desc_Top);

                        cDescriptor Desc_Bottom = new cDescriptor(CurrentDRC.Bottom, ListDescType[Idesc++], CompleteScreening);
                        LDesc.Add(Desc_Bottom);

                        cDescriptor Desc_Slope = new cDescriptor(CurrentDRC.Slope, ListDescType[Idesc++], CompleteScreening);
                        LDesc.Add(Desc_Slope);
                    }
                    cWell NewWell = new cWell(LDesc, CurrentRegion.PosXMin + 1, CurrentRegion.PosYMin + 1, MergedScreening, NewPlate);
                    NewWell.Name = "DRC [" + CurrentRegion.PosXMin + ":" + CurrentRegion.PosYMin + "]";
                    NewPlate.AddWell(NewWell);
                }
            }

            // PanelList[0].CurrentScreening.ListPlatesActive.Clear();
            // PanelList[0].CurrentScreening.GlobalInfo.WindowHCSAnalyzer.RefreshInfoScreeningRichBox();
            MergedScreening.ListPlatesActive = new cExtendPlateList();

            for (int i = 0; i < MergedScreening.ListPlatesAvailable.Count; i++)
            {
                MergedScreening.ListPlatesActive.Add(MergedScreening.ListPlatesAvailable[i]);
                // MergedScreening.GlobalInfo.WindowHCSAnalyzer.toolStripcomboBoxPlateList.Items.Add(PanelList[0].CurrentScreening.ListPlatesActive[i].Name);
            }
            //PanelList[0].CurrentScreening.CurrentDisplayPlateIdx = 0;
            //PanelList[0].CurrentScreening.GlobalInfo.WindowHCSAnalyzer.toolStripcomboBoxPlateList.SelectedIndex = 0;

            //PanelList[0].CurrentScreening.GetCurrentDisplayPlate().DisplayDistribution(PanelList[0].CurrentScreening.ListDescriptors.CurrentSelectedDescriptor, false);

            CompleteScreening.ListDescriptors = MergedScreening.ListDescriptors;
            CompleteScreening.ListPlatesAvailable = MergedScreening.ListPlatesAvailable;
            CompleteScreening.ListPlatesActive = MergedScreening.ListPlatesActive;

            CompleteScreening.UpDatePlateListWithFullAvailablePlate();
            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();
            CompleteScreening.GetCurrentDisplayPlate().DisplayDistribution(CompleteScreening.ListDescriptors.CurrentSelectedDescriptor, true);
        }
Пример #14
0
        public cWell(string FileName, cScreening screenParent, cPlate CurrentPlate)
        {
            this.Parent = screenParent;
            this.AssociatedPlate = CurrentPlate;

            StreamReader sr = new StreamReader(FileName);
            int Idx;
            string NewLine;
            string TmpLine;
            string line;

            // we have to build the descriptor list
            if (screenParent.ListDescriptors.Count == 0)
            {
                Idx = FileName.LastIndexOf("\\");
                NewLine = FileName.Remove(0, Idx + 1);
                TmpLine = NewLine;

                Idx = TmpLine.IndexOf("x");
                NewLine = TmpLine.Remove(Idx);

                if (!int.TryParse(NewLine, out this.PosX))
                {
                    MessageBox.Show("Error in load the current file.\n", "Loading error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    sr.Close();
                    return;
                }

                NewLine = TmpLine.Remove(0, Idx + 1);
                Idx = NewLine.IndexOf(".");
                TmpLine = NewLine.Remove(Idx);

                this.PosY = Convert.ToInt16(TmpLine);

                line = sr.ReadLine();
                while (line != null)
                {
                    if (line != null)
                    {
                        Idx = line.IndexOf("\t");
                        string DescName = line.Remove(Idx);

                        List<double> readData = new List<double>();

                        NewLine = line.Remove(0, Idx + 1);
                        line = NewLine;

                        Idx = line.IndexOf("\t");
                        int NumValue = 0;
                        while (Idx > 0)
                        {
                            string DescValue = line.Remove(Idx);
                            double CurrentValue = Convert.ToDouble(DescValue);

                            readData.Add(CurrentValue);
                            NewLine = line.Remove(0, Idx + 1);
                            line = NewLine;
                            Idx = line.IndexOf("\t");
                            NumValue++;
                        }
                        if (line.Length > 0)
                        {
                            double Value = Convert.ToDouble(line);
                            readData.Add(Value);
                        }
                        // first check if the descriptor exist
                        screenParent.ListDescriptors.AddNew(new cDescriptorsType(DescName, true, NumValue));

                    }
                    line = sr.ReadLine();
                }
                sr.Close();
            }

            this.ListDescriptors = new List<cDescriptor>();
            sr = new StreamReader(FileName);

            Idx = FileName.LastIndexOf("\\");
            NewLine = FileName.Remove(0, Idx + 1);
            TmpLine = NewLine;

            Idx = TmpLine.IndexOf("x");
            NewLine = TmpLine.Remove(Idx);
            this.PosX = Convert.ToInt16(NewLine);

            NewLine = TmpLine.Remove(0, Idx + 1);
            Idx = NewLine.IndexOf(".");
            TmpLine = NewLine.Remove(Idx);

            this.PosY = Convert.ToInt16(TmpLine);

            line = sr.ReadLine();
            int IDxLine = 0;
            while (line != null)
            {
                if (line != null)
                {
                    Idx = line.IndexOf("\t");
                    string DescName = line.Remove(Idx);
                    List<double> readData = new List<double>();

                    NewLine = line.Remove(0, Idx + 1);
                    line = NewLine;

                    Idx = line.IndexOf("\t");

                    while (Idx > 0)
                    {
                        string DescValue = line.Remove(Idx);
                        double CurrentValue = Convert.ToDouble(DescValue);

                        readData.Add(CurrentValue);
                        NewLine = line.Remove(0, Idx + 1);
                        line = NewLine;
                        Idx = line.IndexOf("\t");
                    }
                    if (line.Length > 0)
                    {
                        double Value = Convert.ToDouble(line);
                        readData.Add(Value);
                    }
                    cDescriptor CurrentDesc = new cDescriptor(readData.ToArray(), 0, screenParent.ListDescriptors[IDxLine].GetBinNumber() - 1, screenParent.ListDescriptors[IDxLine], this.Parent/* DescName*/);
                    this.ListDescriptors.Add(CurrentDesc);
                }
                line = sr.ReadLine();
                IDxLine++;
            }
            sr.Close();
            this.CurrentColor = this.Parent.GlobalInfo.GetColor(ClassForClassif);
            return;
        }
Пример #15
0
        public cWell(string FileName, cScreening screenParent, cPlate CurrentPlate)
        {
            // Parent = screenParent;
            this.AssociatedPlate = CurrentPlate;

            StreamReader sr = new StreamReader(FileName);
            int Idx;
            string NewLine;
            string TmpLine;
            string line;

            // we have to build the descriptor list
            if (cGlobalInfo.CurrentScreening.ListDescriptors.Count == 0)
            {
                Idx = FileName.LastIndexOf("\\");
                NewLine = FileName.Remove(0, Idx + 1);
                TmpLine = NewLine;

                Idx = TmpLine.IndexOf("x");
                NewLine = TmpLine.Remove(Idx);

                if (!int.TryParse(NewLine, out this.PosX))
                {
                    MessageBox.Show("Error in load the current file.\n", "Loading error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    sr.Close();
                    return;
                }

                NewLine = TmpLine.Remove(0, Idx + 1);
                Idx = NewLine.IndexOf(".");
                TmpLine = NewLine.Remove(Idx);

                this.PosY = Convert.ToInt16(TmpLine);

                line = sr.ReadLine();
                while (line != null)
                {
                    if (line != null)
                    {
                        Idx = line.IndexOf("\t");
                        string DescName = line.Remove(Idx);

                        List<double> readData = new List<double>();

                        NewLine = line.Remove(0, Idx + 1);
                        line = NewLine;

                        Idx = line.IndexOf("\t");
                        int NumValue = 0;
                        while (Idx > 0)
                        {
                            string DescValue = line.Remove(Idx);
                            double CurrentValue = Convert.ToDouble(DescValue);

                            readData.Add(CurrentValue);
                            NewLine = line.Remove(0, Idx + 1);
                            line = NewLine;
                            Idx = line.IndexOf("\t");
                            NumValue++;
                        }
                        if (line.Length > 0)
                        {
                            double Value = Convert.ToDouble(line);
                            readData.Add(Value);
                        }
                        // first check if the descriptor exist
                        cGlobalInfo.CurrentScreening.ListDescriptors.AddNew(new cDescriptorType(DescName, true, NumValue));

                    }
                    line = sr.ReadLine();
                }
                sr.Close();
            }

            this.ListSignatures = new cListSignature();
            sr = new StreamReader(FileName);

            Idx = FileName.LastIndexOf("\\");
            NewLine = FileName.Remove(0, Idx + 1);
            TmpLine = NewLine;

            Idx = TmpLine.IndexOf("x");
            NewLine = TmpLine.Remove(Idx);
            this.PosX = Convert.ToInt16(NewLine);

            NewLine = TmpLine.Remove(0, Idx + 1);
            Idx = NewLine.IndexOf(".");
            TmpLine = NewLine.Remove(Idx);

            this.PosY = Convert.ToInt16(TmpLine);

            line = sr.ReadLine();
            int IDxLine = 0;
            while (line != null)
            {
                if (line != null)
                {
                    Idx = line.IndexOf("\t");
                    string DescName = line.Remove(Idx);
                    cExtendedList readData = new cExtendedList();

                    NewLine = line.Remove(0, Idx + 1);
                    line = NewLine;

                    Idx = line.IndexOf("\t");

                    while (Idx > 0)
                    {
                        string DescValue = line.Remove(Idx);
                        double CurrentValue = Convert.ToDouble(DescValue);

                        readData.Add(CurrentValue);
                        NewLine = line.Remove(0, Idx + 1);
                        line = NewLine;
                        Idx = line.IndexOf("\t");
                    }
                    if (line.Length > 0)
                    {
                        double Value = Convert.ToDouble(line);
                        readData.Add(Value);
                    }
                    cSignature CurrentDesc = new cSignature(readData, cGlobalInfo.CurrentScreening.ListDescriptors[IDxLine].GetBinNumber() - 1, cGlobalInfo.CurrentScreening.ListDescriptors[IDxLine], cGlobalInfo.CurrentScreening);
                    this.ListSignatures.Add(CurrentDesc);
                }
                line = sr.ReadLine();
                IDxLine++;
            }
            sr.Close();

            // this.ListClass.Add(this.InitialClass);

            this.ListProperties = new cListWellProperty(this);
            this.ListProperties.UpdateValueByName("Well Class", 2);
            //    this.CurrentColor = this.cGlobalInfo.ListClasses[ClassForClassif].ColourForDisplay;
            return;
        }
Пример #16
0
 public void SetCurrentScreening(cScreening CurrentScreen)
 {
     this.CurrentScreen = CurrentScreen;
 }
Пример #17
0
        void OptionsItem(object sender, EventArgs e)
        {
            //ColorDialog colorDialog = new ColorDialog();
            //if (colorDialog.ShowDialog() != DialogResult.OK) return;
            //Color backgroundColor = colorDialog.Color;
            //this.SetBackgroundColor(backgroundColor);
            //this.renWin.Render();

            this.CurrentScreen.GlobalInfo.OptionsWindow.tabControlWindowOption.SelectedTab = this.CurrentScreen.GlobalInfo.OptionsWindow.tabPage3D;

            this.CurrentScreen.GlobalInfo.OptionsWindow.CurrentScreen = this.CurrentScreen;
            this.CurrentScreen.GlobalInfo.OptionsWindow.Visible = !this.CurrentScreen.GlobalInfo.OptionsWindow.Visible;
            this.CurrentScreen.GlobalInfo.OptionsWindow.Update();
        }
        public FormToDisplayPlate(cPlate PlateToDisplay, cScreening CompleteScreening)
        {
            //this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
               // this.WindowToDisplayEntireScreening = WindowToDisplayEntireScreening;
            this.PlateToDisplay = PlateToDisplay;

            this.CompleteScreening = CompleteScreening;
            this.CurrentScreening = CompleteScreening;
            this.LUT = this.CurrentScreening.GlobalInfo.LUT;
            this.AssociatedPlate = PlateToDisplay;
            bool ResMiss = false;
            this.MouseDoubleClick += new MouseEventHandler(this.FormToDisplayPlate_MouseDoubleClick);
            this.MouseClick += new MouseEventHandler(this.FormToDisplayPlate_MouseClick);

            ValuesMatrix = PlateToDisplay.GetAverageValueDescTable1(CompleteScreening.ListDescriptors.CurrentSelectedDescriptor, out ResMiss);
            System.Windows.Forms.ToolTip ToolTip = new System.Windows.Forms.ToolTip();
            ToolTip.SetToolTip(this, PlateToDisplay.Name);

            for (int j = 0; j < ValuesMatrix.Length; j++)
                for (int i = 0; i < ValuesMatrix[0].Length; i++)
                {
                    if(double.IsNaN(ValuesMatrix[j][i])) continue;

                    if (ValuesMatrix[j][i] > Max)
                        Max = ValuesMatrix[j][i];
                    if (ValuesMatrix[j][i] < Min)
                        Min = ValuesMatrix[j][i];
                }

            this.SetNewCellSize(5);
            //DisplayMatrix();

               // this.Update();
        }
        public FormToDisplayDistanceMap(cPlate CurrentPlate, cScreening CompleteScreening)
        {
            this.CurrentScreening = CompleteScreening;
            this.LUT = this.CurrentScreening.GlobalInfo.LUTs.LUT_FIRE;
            this.AssociatedPlate = CurrentPlate;
            bool ResMiss = false;
            //this.MouseDoubleClick += new MouseEventHandler(this.FormToDisplayPlate_MouseDoubleClick);
            this.MouseClick += new MouseEventHandler(this.FormToDisplayDistanceMap_MouseClick);

            ValuesMatrix = new double[CurrentPlate.ListActiveWells.Count][];

            for (int i = 0; i < ValuesMatrix.Length; i++)
                ValuesMatrix[i] = new double[CurrentPlate.ListActiveWells.Count];

            RecomputeDistances(eDistances.EUCLIDEAN);

            this.SetNewCellSize(2);
        }
 public FormForPCAAxisGeneration(cScreening CurrentScreening)
 {
     InitializeComponent();
     this.CurrentScreening = CurrentScreening;
 }
Пример #21
0
        //public cReplicateType AssociatedReplicateType { get; private set; }
        //public bool SetNewReplicateType(cReplicateType NewReplicate)
        //{
        //    foreach (var item in ParentScreening.ListReplicate)
        //    {
        //        if (NewReplicate == item)
        //        {
        //            this.AssociatedReplicateType = NewReplicate;
        //            return true;
        //        }
        //    }
        //    return false;
        //}
        public cPlate(string Name, cScreening ParentScreening)
        {
            this.ParentScreening = ParentScreening;
            this.Name = Name;
            //this.PlateType = Type;
            ListWell = new cWell[ParentScreening.Columns, ParentScreening.Rows];
            //this.AssociatedReplicateType = ParentScreening.ListReplicate[0];

            this.ListProperties = new cListPlateProperty(this);
            //this.ListProperties.UpdateValueByName("Quality", 1);
            this.ListProperties.UpdateValueByName("Name", Name);

            this.IsActive = true;
            this.CurrentLUTManager = new cPlateLUTManager(this);
            return;
        }
Пример #22
0
 //private List<double> List
 public cEdgeEffect(cScreening CurrentScreening, int MaxIteration)
 {
     this.CurrentScreening = CurrentScreening;
     GenerateMask();
     ComputeDiffusionMaps(MaxIteration);
 }
Пример #23
0
        private void hitsDistributionMapToolStripMenuItem_Click(object sender, EventArgs e)
        {

            if (cGlobalInfo.CurrentScreening == null) return;
            List<cPanelForDisplayArray> ListPlates = new List<cPanelForDisplayArray>();

            foreach (cPlate CurrentPlate in cGlobalInfo.CurrentScreening.ListPlatesActive)
            {
                ListPlates.Add(new FormToDisplayPlate(CurrentPlate));
            }

            cWindowToDisplayEntireScreening WindowToDisplayArray = new cWindowToDisplayEntireScreening(ListPlates, cGlobalInfo.CurrentScreening.ListDescriptors[cGlobalInfo.CurrentScreening.ListDescriptors.CurrentSelectedDescriptorIdx].GetName(), 6);
            WindowToDisplayArray.checkBoxDisplayClasses.Checked = true;
            WindowToDisplayArray.Text = "Generate Hits Distribution Maps";

            WindowToDisplayArray.Show();


            System.Windows.Forms.DialogResult ResWin = MessageBox.Show("By applying this process, the current screening will be entirely updated ! Proceed ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (ResWin == System.Windows.Forms.DialogResult.No)
            {
                WindowToDisplayArray.Close();
                return;
            }

            WindowToDisplayArray.Close();
            if (cGlobalInfo.CurrentScreening != null) cGlobalInfo.CurrentScreening.Close3DView();

            //   CompleteScreening.ListDescriptors.RemoveDesc(CompleteScreening.ListDescriptors[IntToTransfer], CompleteScreening);
            cScreening MergedScreening = new cScreening("Class Screen");
            MergedScreening.PanelForPlate = this.panelForPlate;

            MergedScreening.Rows = cGlobalInfo.CurrentScreening.Rows;
            MergedScreening.Columns = cGlobalInfo.CurrentScreening.Columns;
            MergedScreening.ListPlatesAvailable = new cListPlates();

            // create the descriptor
            MergedScreening.ListDescriptors.Clean();

            List<cDescriptorType> ListDescType = new List<cDescriptorType>();
            List<int[][]> Values = new List<int[][]>();

            for (int i = 0; i < cGlobalInfo.ListWellClasses.Count; i++)
            {
                cDescriptorType DescClass = new cDescriptorType("Class_" + i, true, 1);
                ListDescType.Add(DescClass);
                MergedScreening.ListDescriptors.AddNew(DescClass);

                int[][] TMpVal = new int[MergedScreening.Columns][];
                for (int ii = 0; ii < MergedScreening.Columns; ii++)
                    TMpVal[ii] = new int[MergedScreening.Rows];

                Values.Add(TMpVal);
            }

            MergedScreening.ListDescriptors.CurrentSelectedDescriptorIdx = 0;

            foreach (cPlate CurrentPlate in cGlobalInfo.CurrentScreening.ListPlatesActive)
            {
                foreach (cWell TmpWell in CurrentPlate.ListActiveWells)
                {
                    int Class = TmpWell.GetCurrentClassIdx();
                    if (Class >= 0)
                        Values[Class][TmpWell.GetPosX() - 1][TmpWell.GetPosY() - 1]++;
                }
            }

            cPlate NewPlate = new cPlate(cGlobalInfo.CurrentScreening.GetName(), MergedScreening);

            for (int X = 0; X < cGlobalInfo.CurrentScreening.Columns; X++)
                for (int Y = 0; Y < cGlobalInfo.CurrentScreening.Rows; Y++)
                {
                    cListSignature LDesc = new cListSignature();
                    for (int i = 0; i < cGlobalInfo.ListWellClasses.Count; i++)
                    {
                        cSignature Desc = new cSignature(Values[i][X][Y], ListDescType[i], cGlobalInfo.CurrentScreening);
                        LDesc.Add(Desc);

                    }
                    cWell NewWell = new cWell(LDesc, X + 1, Y + 1, MergedScreening, NewPlate);
                   // NewWell.SetCpdName("Well [" + (X + 1) + ":" + (Y + 1) + "]");
                    NewPlate.AddWell(NewWell);

                }

            // check if the plate exist already
            MergedScreening.AddPlate(NewPlate);
            MergedScreening.ListPlatesActive = new cListPlates();

            cGlobalInfo.WindowHCSAnalyzer.toolStripcomboBoxPlateList.Items.Clear();

            for (int i = 0; i < MergedScreening.ListPlatesAvailable.Count; i++)
            {
                MergedScreening.ListPlatesActive.Add(MergedScreening.ListPlatesAvailable[i]);
                cGlobalInfo.WindowHCSAnalyzer.toolStripcomboBoxPlateList.Items.Add(NewPlate.GetName());
            }

            cGlobalInfo.CurrentScreening.ListDescriptors = MergedScreening.ListDescriptors;
            cGlobalInfo.CurrentScreening.ListPlatesAvailable = MergedScreening.ListPlatesAvailable;
            cGlobalInfo.CurrentScreening.ListPlatesActive = MergedScreening.ListPlatesActive;

            cGlobalInfo.CurrentScreening.UpDatePlateListWithFullAvailablePlate();
            for (int idxP = 0; idxP < cGlobalInfo.CurrentScreening.ListPlatesActive.Count; idxP++)
                cGlobalInfo.CurrentScreening.ListPlatesActive[idxP].UpDataMinMax();

            cGlobalInfo.CurrentScreening.CurrentDisplayPlateIdx = 0;
            cGlobalInfo.CurrentScreening.GetCurrentDisplayPlate().DisplayDistribution(cGlobalInfo.CurrentScreening.ListDescriptors.GetActiveDescriptor(), true);

            ListPlates = new List<cPanelForDisplayArray>();
            for (int DescIdx = 0; DescIdx < cGlobalInfo.CurrentScreening.ListDescriptors.Count; DescIdx++)
            {
                if (cGlobalInfo.CurrentScreening.ListDescriptors[DescIdx].IsActive())
                    ListPlates.Add(new FormToDisplayDescriptorPlate(cGlobalInfo.CurrentScreening.GetCurrentDisplayPlate(), cGlobalInfo.CurrentScreening, DescIdx));
            }

            cWindowToDisplayEntireDescriptors WindowToDisplayDesc = new cWindowToDisplayEntireDescriptors(ListPlates, cGlobalInfo.CurrentScreening.GetCurrentDisplayPlate().GetName(), cGlobalInfo.ListWellClasses.Count);
            WindowToDisplayDesc.checkBoxGlobalNormalization.Checked = true;

            WindowToDisplayDesc.Show();
        }
Пример #24
0
 public void SetInputData(cScreening Input)
 {
     this.Input = Input;
 }
Пример #25
0
 public SimpleForm(cScreening CompleteScreening)
 {
     InitializeComponent();
     this.CompleteScreening = CompleteScreening;
 }
Пример #26
0
 public cGlobalInfo(cScreening CurrentScreen)
 {
     OptionsWindow = new FormForOptionsWindow(CurrentScreen);
     this.CurrentScreen = CurrentScreen;
 }
Пример #27
0
        public FormForPlateManager(cScreening CurrentScreen)
        {
            InitializeComponent();
            this.CurrentScreening = CurrentScreen;

            this.dataGridView.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray;

            DataGridViewComboBoxColumn Col = (DataGridViewComboBoxColumn)this.dataGridView.Columns[1];

            List<string> ListReplicateNames = new List<string>();

               // foreach (var item in cGlobalInfo.CurrentScreening.ListReplicate)
            //    ListReplicateNames.Add(item.Name);

            Col.DataSource = ListReplicateNames.ToArray();

            foreach (cPlate TmpPlate in CurrentScreen.ListPlatesAvailable)
            {
                this.dataGridView.Rows.Add();
                this.dataGridView[0, this.dataGridView.Rows.Count - 2].ValueType = typeof(string);
                this.dataGridView[0, this.dataGridView.Rows.Count - 2].Value = TmpPlate.GetName();

               // this.dataGridView[1, this.dataGridView.Rows.Count - 2].Value = TmpPlate.AssociatedReplicateType.Name;

                this.dataGridView[2, this.dataGridView.Rows.Count - 2].Value = TmpPlate.IsActive;

            }

            //dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

            dataGridView.AllowUserToAddRows = false;

            ContextMenuStrip ImageContextMenu = new ContextMenuStrip();

            ToolStripMenuItem ToolStripMenuItem_CheckAll = new ToolStripMenuItem("Check all");
            ImageContextMenu.Items.Add(ToolStripMenuItem_CheckAll);
            ToolStripMenuItem_CheckAll.Click += new System.EventHandler(this.ToolStripMenuItem_CheckAll);

            ToolStripMenuItem ToolStripMenuItem_UnCheckAll = new ToolStripMenuItem("Uncheck all");
            ImageContextMenu.Items.Add(ToolStripMenuItem_UnCheckAll);
            ToolStripMenuItem_UnCheckAll.Click += new System.EventHandler(this.ToolStripMenuItem_UnCheckAll);

            ImageContextMenu.Items.Add(new ToolStripSeparator());

            ToolStripMenuItem ToolStripMenuItem_MoveUp = new ToolStripMenuItem("Move Up");
            ImageContextMenu.Items.Add(ToolStripMenuItem_MoveUp);
            ToolStripMenuItem_MoveUp.Click += new System.EventHandler(this.ToolStripMenuItem_MoveUp);

            ToolStripMenuItem ToolStripMenuItem_MoveDown = new ToolStripMenuItem("Move Down");
            ImageContextMenu.Items.Add(ToolStripMenuItem_MoveDown);
            ToolStripMenuItem_MoveDown.Click += new System.EventHandler(this.ToolStripMenuItem_MoveDown);

            ImageContextMenu.Items.Add(new ToolStripSeparator());

            ToolStripMenuItem ToolStripMenuItem_CreateNewReplicateType = new ToolStripMenuItem("Create New Replicate Type");
            ImageContextMenu.Items.Add(ToolStripMenuItem_CreateNewReplicateType);
            ToolStripMenuItem_CreateNewReplicateType.Click += new System.EventHandler(this.ToolStripMenuItem_CreateNewReplicateType);

            dataGridView.ContextMenuStrip = ImageContextMenu;
            dataGridView.ContextMenuStrip.BringToFront();
        }
Пример #28
0
        /// <summary>
        /// Create a 3D world
        /// </summary>
        /// <param name="CurrentrenderWindowControl">vtk Control</param>
        /// <param name="Dimensions">in pixels</param>
        /// <param name="Resolution">spatial resolutions</param>
        public c3DWorld(cPoint3D Dimensions, cPoint3D Resolution, RenderWindowControl CurrentrenderWindowControl, int[] WinPos, cScreening CurrentScreen)
        {
            this.CurrentScreen = CurrentScreen;
            // int[] Pos =  renWin.GetPosition();
            if (CurrentrenderWindowControl == null)
            {
                renWin = vtkRenderWindow.New();
                renWin.LineSmoothingOn();
                renWin.PointSmoothingOn();
                renWin.SetWindowName("3D World");
                renWin.BordersOn();
                renWin.DoubleBufferOn();
                if(WinPos!=null)
                renWin.SetSize(WinPos[0], WinPos[1]);

                this.ren1 = vtkRenderer.New();
                //   if(WinPos!=null)            renWin.SetPosition(WinPos[0], WinPos[1]);
                // this.ren1 = CurrentrenderWindowControl.RenderWindow.GetRenderers().GetFirstRenderer();
                //CurrentrenderWindowControl.RenderWindow;
            }
            else
            {
                renWin = CurrentrenderWindowControl.RenderWindow;
                this.ren1 = CurrentrenderWindowControl.RenderWindow.GetRenderers().GetFirstRenderer();
            }
            //// Menu Strip Construction
            //this.contextMenuStripActorPicker = new ContextMenuStrip();
            //ToolStripMenuItem StripMenuItemDisplay = new ToolStripMenuItem("Display");
            //contextMenuStripActorPicker.Items.Add(StripMenuItemDisplay);
            //renWin = CurrentrenderWindowControl.RenderWindow;//vtkRenderWindow.New();

            renWin.AddRenderer(ren1);
            iren = new vtkRenderWindowInteractor();
            iren.SetRenderWindow(renWin);

            //iren.SetInteractorStyle(vtkInteractorStyleJoystickCamera.New());
            iren.SetInteractorStyle(vtkInteractorStyleTrackballCamera.New());
            //   iren.SetInteractorStyle(vtkInteractorStyleTerrain.New());
            // iren.LeftButtonPressEvt += new vtkObject.vtkObjectEventHandler(RenderWindow_LeftButtonPressEvt);
            iren.KeyPressEvt += new vtkObject.vtkObjectEventHandler(RenderWindow_KeyPressEvt);
            iren.RightButtonPressEvt += new vtkObject.vtkObjectEventHandler(RenderWindow_RightButtonPressEvt);

            //Render();
            //this.ren1 =

            Xres = Resolution.X;
            Yres = Resolution.Y;
            Zres = Resolution.Z;

            SizeX = (int)Dimensions.X;
            SizeY = (int)Dimensions.Y;
            SizeZ = (int)Dimensions.Z;

            //  double[] fp = ren1.GetActiveCamera().GetFocalPoint();
            //   double[] p = ren1.GetActiveCamera().GetPosition();
            //   ren1.GetActiveCamera().ParallelProjectionOn();

            //   double dist = Math.Sqrt((p[0] - fp[0]) * (p[0] - fp[0]) + (p[1] - fp[1]) * (p[1] - fp[1]) + (p[2] - fp[2]) * (p[2] - fp[2]));
            //    ren1.GetActiveCamera().SetPosition(fp[0], fp[1], fp[2] + dist*1000);
            //    ren1.GetActiveCamera().Zoom(2);
            //ren1.Render();
            //  this.Render();
            ListPolyDataMapper = new List<vtkPolyDataMapper>();
            ListObject = new List<cObject3D>();

            //     Vtk_CameraViewOrientation = ren1.GetActiveCamera();
        }
Пример #29
0
        public cWindowToDisplayHisto(cScreening CompleteScreening0, cExtendedList RawValues0)
        {
            this.CompleteScreening = CompleteScreening0;

            this.parametersToolStripMenuItem.Click += new System.EventHandler(this.parametersToolStripMenuItem_Click);

            RequestWindow.label3.Text = "Bin Number";

            this.RawValues = RawValues0;

            CurrentChartArea = new ChartArea();
            CurrentChartArea.BorderColor = Color.Black;

            this.chartForSimpleForm.ChartAreas.Add(CurrentChartArea);
            CurrentChartArea.Axes[0].MajorGrid.Enabled = false;
            if(CompleteScreening!=null)
                CurrentChartArea.Axes[0].Title = CompleteScreening.ListDescriptors[CompleteScreening.ListDescriptors.CurrentSelectedDescriptorIdx].GetName();
            CurrentChartArea.Axes[1].Title = "Sum";
            CurrentChartArea.AxisX.LabelStyle.Format = "N2";

            this.chartForSimpleForm.TextAntiAliasingQuality = TextAntiAliasingQuality.High;

            if (CompleteScreening != null)
                CurrentChartArea.BackColor = Color.White;

            this.chartForSimpleForm.ChartAreas[0].CursorX.IsUserEnabled = true;
            this.chartForSimpleForm.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
            this.chartForSimpleForm.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
            this.chartForSimpleForm.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;

            if ((CompleteScreening != null) && (cGlobalInfo.OptionsWindow.FFAllOptions.checkBoxHistoDisplayStats.Checked))
            {
                StripLine AverageLine = new StripLine();
                AverageLine.BackColor = Color.Black;
                AverageLine.IntervalOffset = RawValues.Mean();
                AverageLine.StripWidth = double.Epsilon;
                CurrentChartArea.AxisX.StripLines.Add(AverageLine);
                AverageLine.Text = String.Format("{0:0.###}", AverageLine.IntervalOffset);

                StripLine StdLine = new StripLine();
                StdLine.BackColor = Color.FromArgb(64, Color.Black);
                double Std = RawValues.Std();
                StdLine.IntervalOffset = AverageLine.IntervalOffset - 0.5 * Std;
                StdLine.StripWidth = Std;
                CurrentChartArea.AxisX.StripLines.Add(StdLine);
                AverageLine.StripWidth = 0.0001;
            }

            SerieForHisto = new Series();
            SerieForHisto.ShadowOffset = 1;
            SerieForHisto.ChartType = SeriesChartType.Column;
            if (CompleteScreening != null)
            SerieForHisto.Color = cGlobalInfo.ListWellClasses[1].ColourForDisplay;

            List<double[]> HistoPos = RawValues.CreateHistogram(this.BinNumber, false);
            if (HistoPos.Count == 0) return;

            for (int IdxValue = 0; IdxValue < HistoPos[0].Length; IdxValue++)
            {
                SerieForHisto.Points.AddXY(HistoPos[0][IdxValue], HistoPos[1][IdxValue]);
                SerieForHisto.Points[IdxValue].ToolTip = HistoPos[1][IdxValue].ToString();
                if (CompleteScreening != null)
                {
                    if (CompleteScreening.SelectedClass == -1)
                        SerieForHisto.Points[IdxValue].Color = Color.Black;
                    else
                        SerieForHisto.Points[IdxValue].Color = cGlobalInfo.ListWellClasses[CompleteScreening.SelectedClass].ColourForDisplay;
                }
            }
            this.chartForSimpleForm.Series.Add(SerieForHisto);
        }
        public cFeedBackMessage Run(cScreening CompleteScreening)
        {
            if (this.Input == null)
            {
                FeedBackMessage.IsSucceed = false;
                FeedBackMessage.Message = "No input data defined.";
                return FeedBackMessage;
            }

            bool IsCurrentDescOnly = false;
            if (this.ListPlates == null)
                ListPlates = CompleteScreening.ListPlatesActive;

            cDisplayToWindow CDW1 = new cDisplayToWindow();

            cDesignerTab DT = new cDesignerTab();

            foreach (cDescriptorType CurrentDesc in CompleteScreening.ListDescriptors.GetActiveDescriptors())
            {
                cListExtendedTable CompleteListOfData = new cListExtendedTable();

                cExtendedTable FullTableAverage = new cExtendedTable();
                FullTableAverage.ListRowNames = new List<string>();

                string TableName = CurrentDesc.GetName() + " evolution\n" + Input[0].Sum() + " classes - ";

                for (int i = 0; i < Input[0].Count; i++)
                {
                    if ((Input[0][i] == 1) && (Input[0].ListTags != null) && (Input[0].ListTags[i].GetType() == typeof(cWellClassType)))
                    {
                        cWellClassType TmpWellClass = (cWellClassType)Input[0].ListTags[i];

                        CompleteListOfData.Add(new cExtendedTable());
                        CompleteListOfData[CompleteListOfData.Count - 1].Name = TmpWellClass.Name;
                        CompleteListOfData[CompleteListOfData.Count - 1].Tag = Input[0].ListTags[i];

                        FullTableAverage.Add(new cExtendedList(TmpWellClass.Name));
                        FullTableAverage[FullTableAverage.Count - 1].ListTags = new List<object>();
                        FullTableAverage[FullTableAverage.Count - 1].Name = TmpWellClass.Name;
                        FullTableAverage[FullTableAverage.Count - 1].Tag = TmpWellClass;

                        int IdxPlate = 0;
                        foreach (cPlate TmpPlate in CompleteScreening.ListPlatesActive)
                        {
                            FullTableAverage[FullTableAverage.Count - 1].Add(0);
                            FullTableAverage[FullTableAverage.Count - 1].ListTags.Add(TmpWellClass);

                            CompleteListOfData[CompleteListOfData.Count - 1].Add(new cExtendedList(TmpPlate.GetName()));
                            CompleteListOfData[CompleteListOfData.Count - 1][CompleteListOfData[CompleteListOfData.Count - 1].Count - 1].Tag = TmpPlate;
                            CompleteListOfData[CompleteListOfData.Count - 1][CompleteListOfData[CompleteListOfData.Count - 1].Count - 1].Add(IdxPlate);

                            IdxPlate++;
                        }
                    }
                }

                TableName += FullTableAverage[0].Count + " plates";
                FullTableAverage.Name = TableName;

                foreach (cPlate TmpPlate in CompleteScreening.ListPlatesActive)
                    FullTableAverage.ListRowNames.Add(TmpPlate.GetName());

              //  cDescriptorsType CurrentDesc = CompleteScreening.ListDescriptors.GetActiveDescriptor();
                int RealIdx = 0;
                for (int i = 0; i < Input[0].Count; i++)
                {
                    if (Input[0][i] == 1)
                    {
                        int IdxPlate = 0;
                        foreach (cPlate TmpPlate in ListPlates/*CompleteScreening.ListPlatesActive*/)
                        {
                            cExtendedList CurrentListValues = new cExtendedList();

                            foreach (cWell item in TmpPlate.ListActiveWells)
                                if ((item.GetCurrentClassIdx() != -1) && (item.GetCurrentClassIdx() == i))
                                {
                                    double Value = item.ListSignatures.GetSignature(CurrentDesc).GetValue();
                                    CurrentListValues.Add(Value);
                                    CompleteListOfData[RealIdx][IdxPlate].Add(Value);
                                }

                            FullTableAverage[RealIdx][IdxPlate] = CurrentListValues.Mean();
                            IdxPlate++;
                        }
                        RealIdx++;
                    }
                }

                cViewerGraph1D VG = new cViewerGraph1D();
                VG.Chart.IsLine = true;
                VG.Chart.IsShadow = true;
                VG.Chart.IsZoomableX = true;
                // VG.Chart.IsYGrid = true;
                //VG.Chart.IsDisplayValues = true;
                VG.Chart.IsLegend = true;
                //cViewerStackedHistogram CV1 = new cViewerStackedHistogram();
                //  CV1.SetInputData(NewTable);

                VG.SetInputData(FullTableAverage);
                VG.SetInputData(CompleteListOfData);

                VG.Chart.LabelAxisX = "Plate";
                VG.Chart.LabelAxisY = CurrentDesc.GetName();
                VG.Run();

                cExtendedControl TmpCtrl = VG.GetOutPut();
                TmpCtrl.Title = CurrentDesc.GetName();

                DT.SetInputData(TmpCtrl);

            }
            DT.Run();

            CDW1.Title = "Descriptor Evolution";
            CDW1.SetInputData(DT.GetOutPut());
            CDW1.Run();
            CDW1.Display();

            return FeedBackMessage;
        }