public List <IIdentifiedSpectrumBase> ReadFromFile(string filename) { if (!File.Exists(filename)) { throw new FileNotFoundException("File not exist : " + filename); } var result = new List <IIdentifiedSpectrumBase>(); long fileSize = new FileInfo(filename).Length; Progress.SetRange(0, fileSize); char[] cs = new char[] { '\t' }; using (var br = new StreamReader(filename)) { String line = br.ReadLine(); List <string> headers = line.Split(cs).ToList(); int seqIndex = headers.IndexOf("Sequence"); int refIndex = headers.IndexOf("Reference"); var seqConverter = new IdentifiedSpectrumSequenceConverter <IIdentifiedSpectrumBase>(); var refConverter = new IdentifiedSpectrumSequenceConverter <IIdentifiedSpectrumBase>(); while ((line = br.ReadLine()) != null) { if (0 == line.Trim().Length) { break; } string[] parts = line.Split(cs); var item = new IdentifiedSpectrumBase(); seqConverter.SetProperty(item, parts[seqIndex]); refConverter.SetProperty(item, parts[refIndex]); item.SummaryLine = line; result.Add(item); } } return(result); }
public void Test() { IPropertyConverter<IdentifiedSpectrum> io = new IdentifiedSpectrumSequenceConverter<IdentifiedSpectrum>(); var mph = new IdentifiedSpectrum(); var mp1 = new IdentifiedPeptide(mph); mp1.Sequence = "AAAAA"; var mp2 = new IdentifiedPeptide(mph); mp2.Sequence = "BBBBB"; Assert.AreEqual("Sequence", io.Name); Assert.AreEqual("AAAAA ! BBBBB", io.GetProperty(mph)); io.SetProperty(mph, "CCCCC ! DDDDD ! EEEEE"); Assert.AreEqual(3, mph.Peptides.Count); Assert.AreEqual("CCCCC", mph.Peptides[0].Sequence); Assert.AreEqual("DDDDD", mph.Peptides[1].Sequence); Assert.AreEqual("EEEEE", mph.Peptides[2].Sequence); }