public RefAligner(List<QPeptide> Peptides, List<QProtein> Proteins,int FileCount, int RefNumber) { AlList = new List<Object>(); AlLine = new QAlignment[FileCount]; this.FileCount = FileCount; this.RefNumber = RefNumber; for (int i = 0 ; i < FileCount ; i++){ AlLine[i] = new QAlignment(Peptides, Proteins, i, RefNumber); AlList.Add(AlLine[i]); } }
public override 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++; } }