override public void ThreadProc(Object stateInfo)
        {
            int i, j;

            i = (stateInfo as QAlInfo).i;
            j = (stateInfo as QAlInfo).j;
            QAlignment Align = new QAlignment(Peptides, Proteins, i, j);

            Align.Run();
            Align.Proteins.Sort(new ProteinPair.byIPI());
            Align.Peptides.Sort(new PeptidePair.bySet());
            //копирование итоговых значений в итоговые массивы
            for (int k = 0; k < Peptides.Count; k++)
            {
                PeptidePair PP = Align.Peptides[k];
                if (PP.Ratio == 0.0)
                {
                    PeptideRatios[i, j][k] = 0.0;
                }
                else
                {
                    PeptideRatios[i, j][k] = PP.Ratio;
                }
            }
            for (int k = 0; k < Proteins.Count; k++)
            {
                ProteinPair PP = Align.Proteins[k];
                ProteinMedians[i, j, k] = PP.Median;
                ProteinSlopes[i, j, k]  = PP.Slope;
                ProteinDeltas[i, j, k]  = PP.SlopeDelta;
            }
            lock (ForCountLock){
                Count++;
            }
        }
 public override double[] GetPeptRatios(QPeptide Pept)
 {
     double [] Res = new double[FileCount];
     for (int i = 0; i < FileCount; i++)
     {
         PeptidePair PPair = GetPeptPair(Pept, i, RefNumber);
         Res[i] = PPair.Ratio;
     }
     return(Res);
 }