public OutData(OutData.databases db, OutData.XCorrTypes _XCorrType) { dbType = db; FileNameVal = ""; RAWFileVal = ""; ProteinDescriptionVal = ""; SequenceVal = ""; xcorrType = _XCorrType; Score = double.NaN; }
//public static void test() //{ // string[] txtFiles = new string[1]; // txtFiles[0] = "I:\\wrk\\iTRAQ_estadistica\\samples\\datos_abian\\Salida_Peptidos_Filtrados.txt"; // OutData.databases whichDB = OutData.databases.Target; // ArrayList testing = readTXT(txtFiles, whichDB); //} public static ArrayList readTXT(string[] txtFiles, string[] readingOrder, OutData.databases whichDB) { ArrayList outsList = new ArrayList(); //FormHeaderSelection frmHeader = new FormHeaderSelection(); //frmHeader.Show(); foreach (string file in txtFiles) { try { StreamReader sr = new StreamReader(File.OpenRead(file)); ArrayList myAL = new ArrayList(); try { while (sr.Peek() != -1) //equivalente a feof en C { myAL.Add(sr.ReadLine()); } } catch { //Console.WriteLine(" Parse error: " + e); } //int r = myAL.Count; //object ob = (object)myAL[0]; //myAL.Remove(ob); foreach (object o in myAL) { try { OutData sd = new OutData(whichDB, OutData.XCorrTypes.regular); int RAWFilePos = findInArray(readingOrder, "*RAW file name"); int FirstScanPos = findInArray(readingOrder, "*FirstScan [- LastScan]"); int LastScanPos = findInArray(readingOrder, "LastScan"); int ProteinDescriptionPos = findInArray(readingOrder, "*Protein description"); int MHpPos = findInArray(readingOrder, "MH+"); int deltaMPos = findInArray(readingOrder, "DeltaM"); int ChargePos = findInArray(readingOrder, "*Charge"); int SequencePos = findInArray(readingOrder, "*Sequence"); int PpepPos = findInArray(readingOrder, "P (pep)"); int Xcorr1Pos = findInArray(readingOrder, "Xcorr1"); //int Xcorr2Pos = findInArray(readingOrder, "Xcorr2"); int DeltaCnPos = findInArray(readingOrder, "DeltaCn"); int SpPos = findInArray(readingOrder, "Sp"); int SpRankPos = findInArray(readingOrder, "Sp Rank"); int ionsPos = findInArray(readingOrder, "Ions"); int XcTeoricPos = findInArray(readingOrder, "XcTeoric"); int ScorePos = findInArray(readingOrder, "Score"); sd.FileName = file; string[] str; str = Regex.Split(o.ToString(), "\t"); sd.RAWFile = str[RAWFilePos]; string[] scans = Regex.Split(str[FirstScanPos], "-"); sd.FirstScan = int.Parse(scans[0]); if (scans.Length > 1) { sd.LastScan = int.Parse(scans[scans.Length - 1]); } else { sd.LastScan = sd.FirstScan; } // If there is a specific column for the LastScan, then it is overwritten in next file if (LastScanPos != -1) { sd.LastScan = int.Parse(str[LastScanPos]); } sd.ProteinDescription = str[ProteinDescriptionPos]; if (MHpPos != -1) { sd.MHp = float.Parse(str[MHpPos]); } sd.PrecursorMass = float.Parse(str[MHpPos]); if (deltaMPos != -1) { sd.deltaM = float.Parse(str[deltaMPos]); } sd.Charge = short.Parse(str[ChargePos]); // Sequence is written only if selected if (SequencePos != -1) { sd.Sequence = str[SequencePos]; } if (PpepPos != -1) { sd.Ppep = float.Parse(str[PpepPos]); } if (Xcorr1Pos != -1) { sd.Xcorr1 = float.Parse(str[Xcorr1Pos]); } if (DeltaCnPos != -1) { sd.DeltaCn = float.Parse(str[DeltaCnPos]); sd.Xcorr2 = sd.Xcorr1Search * (1 - sd.DeltaCn); sd.XcorrRandom = sd.Xcorr2; } if (SpPos != -1) { sd.Sp = float.Parse(str[SpPos]); } if (SpRankPos != -1) { sd.SpRank = short.Parse(str[SpRankPos]); } if (ionsPos != -1) { string[] ions = str[ionsPos].Split('/'); sd.IonsMatched = short.Parse(ions[0]); if (ions.Length > 1) { sd.IonsCompared = short.Parse(ions[ions.Length - 1]); } } if (ScorePos != -1) { sd.Score = double.Parse(str[ScorePos]); } if (XcTeoricPos != -1) { sd.XcTeoric = float.Parse(str[XcTeoricPos]); } // Here to implement redundances //int numOfReds = 3; //Redundance[] allReds = new Redundance[numOfReds]; //Redundance myRed = new Redundance(); //allReds[0].FASTAIndex = 12345; //allReds[0].FASTAProteinDescription = "la proteina que le falta al Marco"; //sd.Redundances = (Redundance[]) allReds.Clone(); outsList.Add(sd); } catch { } } sr.Close(); } catch { } } return(outsList); }