public MatrixAligner(List <QPeptide> Peptides, List <QProtein> Proteins, int FileCount) { AlList = new List <Object>(); AlMatrix = new QAlInfo[FileCount, FileCount]; //этот массив иногда оказывается больше 2 гиг PeptideRatios = new double[FileCount, FileCount][]; for (int i = 0; i < FileCount; i++) { for (int j = 0; j < FileCount; j++) { PeptideRatios[i, j] = new double[Peptides.Count]; } } ProteinMedians = new double[FileCount, FileCount, Proteins.Count]; ProteinSlopes = new double[FileCount, FileCount, Proteins.Count]; ProteinDeltas = new double[FileCount, FileCount, Proteins.Count]; this.Peptides = Peptides; this.Proteins = Proteins; this.FileCount = FileCount; Peptides.Sort(new QPeptide.byIPIs()); Proteins.Sort(new QProtein.byIPI()); for (int i = 0; i < FileCount; i++) { for (int j = 0; j < FileCount; j++) { AlMatrix[i, j] = new QAlInfo(); AlMatrix[i, j].i = i; AlMatrix[i, j].j = j; AlList.Add(AlMatrix[i, j]); } } }
public MatrixAligner(List<QPeptide> Peptides, List<QProtein> Proteins,int FileCount) { AlList = new List<Object>(); AlMatrix = new QAlInfo[FileCount, FileCount]; //этот массив иногда оказывается больше 2 гиг PeptideRatios = new double[FileCount, FileCount][]; for ( int i = 0 ; i < FileCount ; i++){ for ( int j = 0 ; j < FileCount ; j++){ PeptideRatios[i,j] = new double[Peptides.Count]; } } ProteinMedians = new double[FileCount, FileCount, Proteins.Count]; ProteinSlopes = new double[FileCount, FileCount, Proteins.Count]; ProteinDeltas = new double[FileCount, FileCount, Proteins.Count]; this.Peptides = Peptides; this.Proteins = Proteins; this.FileCount = FileCount; Peptides.Sort(new QPeptide.byIPIs()); Proteins.Sort(new QProtein.byIPI()); for (int i = 0 ; i < FileCount ; i++){ for (int j = 0 ; j < FileCount ; j++){ AlMatrix[i, j] = new QAlInfo(); AlMatrix[i, j].i = i; AlMatrix[i, j].j = j; AlList.Add(AlMatrix[i,j]); } } }