Exemplo n.º 1
0
 public FormForDescriptorInfo(cDescriptorsType CurrentDesc)
 {
     this.CurrentDesc = CurrentDesc;
     InitializeComponent();
     this.textBoxNameDescriptor.Text = CurrentDesc.GetName();
     this.labelDataType.Text = CurrentDesc.GetDataType();
 }
        public FormForDescriptorInfo(cDescriptorsType CurrentDesc)
        {
            this.CurrentDesc = CurrentDesc;
            InitializeComponent();
            this.textBoxNameDescriptor.Text = CurrentDesc.GetName();

            if (CurrentDesc.DataType == eDataType.SINGLE)
            {
                this.numericUpDownBinValue.Visible = false;
                this.labelDataType.Text = "Single";
            }
            else
            {
                this.labelDataType.Text = "Histogram";
            }
            this.numericUpDownBinValue.Value = CurrentDesc.GetBinNumber();

            this.OriginalBinNumber = CurrentDesc.GetBinNumber();

            if (CurrentDesc.IsConnectedToDatabase)
            {
                this.labelDataBaseConnection.Text = "DataBase Connection.";
                panelForColor.BackColor = Color.LightGreen;
            }
            else
            {
                this.labelDataBaseConnection.Text = "No DataBase connection.";
                panelForColor.BackColor = Color.Red;
            }
        }
Exemplo n.º 3
0
        private void AverageDescItem(object sender, EventArgs e)
        {
            //int NumBin = CompleteScreening.ListDescriptors[IntToTransfer].GetBinNumber();

            // first we update the descriptor

            cDescriptorsType NewAverageType = new cDescriptorsType("Average(" + CompleteScreening.ListDescriptors[IntToTransfer].GetName() + ")", true, 1, GlobalInfo);

            CompleteScreening.ListDescriptors.AddNew(NewAverageType);

            foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
            {
                foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();
                    cDescriptor NewDesc = new cDescriptor(Tmpwell.ListDescriptors[IntToTransfer].Histogram.GetAverageValue(), NewAverageType, CompleteScreening);
                    LDesc.Add(NewDesc);
                    Tmpwell.AddDescriptors(LDesc);
                }
            }

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

            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();
        }
Exemplo n.º 4
0
        private void AddCorrelatedSquareDescItem(object sender, EventArgs e)
        {
            cDescriptorsType ColumnType = new cDescriptorsType("Square(" + CompleteScreening.ListDescriptors[IntToTransfer].GetName() + ")", true, 1, GlobalInfo);

            CompleteScreening.ListDescriptors.AddNew(ColumnType);

            foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
            {
                foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();

                    cDescriptor NewDesc = new cDescriptor(Math.Pow(Tmpwell.ListDescriptors[IntToTransfer].GetValue(), 2), ColumnType, CompleteScreening);
                    LDesc.Add(NewDesc);

                    Tmpwell.AddDescriptors(LDesc);
                }
            }

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

            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();
        }
Exemplo n.º 5
0
        private void SumCheckedDescToDescriptorItem(object sender, EventArgs e)
        {
            string NewName = "";

            for (int Idx = 0; Idx < CompleteScreening.GlobalInfo.WindowHCSAnalyzer.checkedListBoxActiveDescriptors.Items.Count; Idx++)
            {

                if (CompleteScreening.ListDescriptors[Idx].IsActive())
                    if (CompleteScreening.ListDescriptors[Idx].GetBinNumber() == 1)
                    {
                        NewName += CompleteScreening.ListDescriptors[Idx].GetName() + "+";
                    }
                    else
                    {
                        MessageBox.Show("Descriptor length not consistent (" + CompleteScreening.ListDescriptors[Idx].GetName() + " : " + CompleteScreening.ListDescriptors[Idx].GetBinNumber() + " bins", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
            }
            cDescriptorsType ColumnType = new cDescriptorsType(NewName.Remove(NewName.Length - 1), true, 1, GlobalInfo);

            CompleteScreening.ListDescriptors.AddNew(ColumnType);

            foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
            {
                foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();

                    double NewValue = 0;

                    for (int IdxActiveDesc = 0; IdxActiveDesc < CompleteScreening.ListDescriptors.Count - 1; IdxActiveDesc++)
                    {
                        if (CompleteScreening.ListDescriptors[IdxActiveDesc].IsActive())
                            NewValue += Tmpwell.ListDescriptors[IdxActiveDesc].GetValue();
                    }
                    cDescriptor NewDesc = new cDescriptor(NewValue, ColumnType, CompleteScreening);
                    LDesc.Add(NewDesc);

                    Tmpwell.AddDescriptors(LDesc);

                }
            }

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

            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();
        }
Exemplo n.º 6
0
        public string GeneratePCADescriptor(cExtendPlateList PlatesToProcess, int NumberOfAxis, int NeutralClass)
        {
            int NumWell = 0;
            int NumWellForLearning = 0;
            foreach (cPlate CurrentPlate in PlatesToProcess)
            {
                NumWellForLearning += CurrentPlate.GetNumberOfWellOfClass(NeutralClass);
                NumWell += CompleteScreening.GetCurrentDisplayPlate().GetNumberOfActiveWells();
            }

            if (NumWellForLearning == 0)
            {
                MessageBox.Show("No well identified !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return null;
            }

            int NumDesc = CompleteScreening.GetNumberOfActiveDescriptor();

            if (NumDesc <= 1)
            {
                MessageBox.Show("More than one descriptor are required for this operation", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return null;
            }

            double[,] DataForLDA = new double[NumWellForLearning, CompleteScreening.GetNumberOfActiveDescriptor() + 1];

            //   return;
            Matrix EigenVectors = PCAComputation(DataForLDA, NumWellForLearning, NumWell, NumDesc, NeutralClass, PlatesToProcess);

            string AxeName = "";
            int IDxDesc = 0;
            //for (int Desc = 0; Desc < CompleteScreening.ListDescriptors.Count; Desc++)
            //{
            //    if (CompleteScreening.ListDescriptors[Desc].IsActive() == false) continue;

            //    //   AxeName += String.Format("{0:0.##}", EigenVectors.getElement(CompleteScreening.ListDescriptors.Count - 1, 0)) + "x" + CompleteScreening.ListDescriptorName[CompleteScreening.ListDescriptors.Count - 1];
            //}

            int OriginalDescNumber = CompleteScreening.GlobalInfo.WindowHCSAnalyzer.checkedListBoxActiveDescriptors.Items.Count;

            for (int AxesIdx = 0; AxesIdx < NumberOfAxis; AxesIdx++)
            {

                //for (int Idx = 0; Idx < CompleteScreening.GlobalInfo.WindowHCSAnalyzer.checkedListBoxActiveDescriptors.Items.Count; Idx++)
                //{

                //     if (CompleteScreening.ListDescriptors[Idx].IsActive())
                //         if (CompleteScreening.ListDescriptors[Idx].GetBinNumber() == 1)
                //         {
                //             AxeName += String.Format("{0:0.###}", EigenVectors.getElement(IDxDesc++, AxesIdx)) + "x" + CompleteScreening.ListDescriptors[Idx].GetName() + " + ";
                //         }
                //         else
                //         {
                //             MessageBox.Show("Descriptor length not consistent (" + CompleteScreening.ListDescriptors[Idx].GetName() + " : " + CompleteScreening.ListDescriptors[Idx].GetBinNumber() + " bins", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //             return;
                //         }
                // }

                //cDescriptorsType ColumnType = new cDescriptorsType(AxeName.Remove(AxeName.Length - 3), true, 1);

                cDescriptorsType ColumnType = new cDescriptorsType("PCA_" + (AxesIdx + 1), true, 1, GlobalInfo);

                CompleteScreening.ListDescriptors.AddNew(ColumnType);

                foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
                {
                    foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                    {
                        List<cDescriptor> LDesc = new List<cDescriptor>();

                        double NewValue = 0;
                        IDxDesc = 0;

                        //    AxeName += "\nPCA_" + (AxesIdx + 1);
                        for (int Idx = 0; Idx < OriginalDescNumber - 1; Idx++)
                        {
                            if (CompleteScreening.ListDescriptors[Idx].IsActive())
                                // AxeName += String.Format("{0:0.###}", EigenVectors.getElement(IDxDesc, AxesIdx)) + "x" + CompleteScreening.ListDescriptors[Idx].GetName() + " + ";
                                NewValue += EigenVectors.getElement(IDxDesc++, AxesIdx) * Tmpwell.ListDescriptors[Idx].GetValue();
                        }

                        cDescriptor NewDesc = new cDescriptor(NewValue, ColumnType, CompleteScreening);
                        LDesc.Add(NewDesc);
                        Tmpwell.AddDescriptors(LDesc);
                    }
                }
            }
            CompleteScreening.ListDescriptors.UpDateDisplay();
            CompleteScreening.UpDatePlateListWithFullAvailablePlate();
            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();

            StartingUpDateUI();

            return AxeName;
        }
Exemplo n.º 7
0
        private void RowToDescriptorItem(object sender, EventArgs e)
        {
            cDescriptorsType RowType = new cDescriptorsType("Row", true, 1, GlobalInfo);

            CompleteScreening.ListDescriptors.AddNew(RowType);

            foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
            {
                foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();

                    cDescriptor NewDesc = new cDescriptor(Tmpwell.GetPosY(), RowType, CompleteScreening);
                    LDesc.Add(NewDesc);

                    Tmpwell.AddDescriptors(LDesc);
                }
            }

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

            for (int idxP = 0; idxP < CompleteScreening.ListPlatesActive.Count; idxP++)
                CompleteScreening.ListPlatesActive[idxP].UpDataMinMax();
        }
Exemplo n.º 8
0
        private void generateHitsDistributionMapToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (CompleteScreening == null) return;
            List<cPanelForDisplayArray> ListPlates = new List<cPanelForDisplayArray>();

            foreach (cPlate CurrentPlate in CompleteScreening.ListPlatesActive)
            {
                ListPlates.Add(new FormToDisplayPlate(CurrentPlate, CompleteScreening));
            }

            cWindowToDisplayEntireScreening WindowToDisplayArray = new cWindowToDisplayEntireScreening(ListPlates, CompleteScreening.ListDescriptors[CompleteScreening.ListDescriptors.CurrentSelectedDescriptor].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 (CompleteScreening != null) CompleteScreening.Close3DView();

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

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

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

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

            for (int i = 0; i < GlobalInfo.GetNumberofDefinedClass(); i++)
            {
                cDescriptorsType DescClass = new cDescriptorsType("Class_" + i, true, 1, GlobalInfo);
                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.CurrentSelectedDescriptor = 0;

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

            cPlate NewPlate = new cPlate("Cpds", CompleteScreening.Name, MergedScreening);

            for (int X = 0; X < CompleteScreening.Columns; X++)
                for (int Y = 0; Y < CompleteScreening.Rows; Y++)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();
                    for (int i = 0; i < GlobalInfo.GetNumberofDefinedClass(); i++)
                    {
                        cDescriptor Desc = new cDescriptor(Values[i][X][Y], ListDescType[i], CompleteScreening);
                        LDesc.Add(Desc);

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

                }

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

            MergedScreening.GlobalInfo.WindowHCSAnalyzer.toolStripcomboBoxPlateList.Items.Clear();

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

            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.CurrentDisplayPlateIdx = 0;
            CompleteScreening.GetCurrentDisplayPlate().DisplayDistribution(CompleteScreening.ListDescriptors.CurrentSelectedDescriptor, true);

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

            cWindowToDisplayEntireDescriptors WindowToDisplayDesc = new cWindowToDisplayEntireDescriptors(ListPlates, CompleteScreening.GetCurrentDisplayPlate().Name, GlobalInfo.GetNumberofDefinedClass());
            WindowToDisplayDesc.checkBoxGlobalNormalization.Checked = true;

            WindowToDisplayDesc.Show();
        }
Exemplo n.º 9
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();
        }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        private void ConcentrationToDescriptorItem(object sender, EventArgs e)
        {
            cDescriptorsType ConcentrationType = new cDescriptorsType("Concentration", true, 1);

            CompleteScreening.ListDescriptors.AddNew(ConcentrationType);

            foreach (cPlate TmpPlate in CompleteScreening.ListPlatesAvailable)
            {
                foreach (cWell Tmpwell in TmpPlate.ListActiveWells)
                {
                    List<cDescriptor> LDesc = new List<cDescriptor>();

                    cDescriptor NewDesc = new cDescriptor(Tmpwell.Concentration, ConcentrationType,CompleteScreening);
                    LDesc.Add(NewDesc);

                    Tmpwell.AddDescriptors(LDesc);
                }
            }

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

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

            StartingUpDateUI();
        }