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 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 ProteinPair GetProtPair(QProtein Prot, int Left, int Right) { if (Right != RefNumber || Left > FileCount - 1) { return(null); } QAlignment TargetAl = AlLine[Left]; for (int i = 0; i < TargetAl.Proteins.Count; i++) { if (TargetAl.Proteins[i].Protein == Prot) { return(TargetAl.Proteins[i]); } } return(null); }
public override PeptidePair GetPeptPair(QPeptide Pept, int Left, int Right) { if (Right != RefNumber || Left > FileCount - 1) { return(null); } QAlignment TargetAl = AlLine[Left]; for (int i = 0; i < TargetAl.Peptides.Count; i++) { if (TargetAl.Peptides[i].Peptide == Pept) { return(TargetAl.Peptides[i]); } } return(null); }