public void WriteLine(MzTab.LinePrefix prefix, params string[] data) { WriteLine(prefix, string.Join(MzTab.FieldSeparator.ToString(), data)); }
private void WriteData <T>(MzTabSection section, IEnumerable <T> data, bool includeCommentLine = false) where T : MzTabEntity { if ((_currentState & MzTab.States.MetaData) != MzTab.States.MetaData) { throw new ArgumentException("Unable to write the " + section + " section, incorrect location. The Meta Data section must come first."); } List <T> objects = data.ToList(); if (objects.Count == 0) { return; } MzTab.LinePrefix headerPrefix = MzTab.LinePrefix.Comment; MzTab.LinePrefix prefix = MzTab.LinePrefix.Comment; switch (section) { case MzTabSection.SmallMolecule: headerPrefix = MzTab.LinePrefix.SmallMoleculeTable; prefix = MzTab.LinePrefix.SmallMoleculeData; _currentState |= MzTab.States.SmallMoleculeData; _currentState |= MzTab.States.SmallMoleculeHeader; break; case MzTabSection.Peptide: headerPrefix = MzTab.LinePrefix.PeptideTable; prefix = MzTab.LinePrefix.PeptideData; _currentState |= MzTab.States.PeptideData; _currentState |= MzTab.States.PeptideHeader; break; case MzTabSection.PSM: headerPrefix = MzTab.LinePrefix.PsmTable; prefix = MzTab.LinePrefix.PsmData; _currentState |= MzTab.States.PsmData; _currentState |= MzTab.States.PsmHeader; break; case MzTabSection.Protein: headerPrefix = MzTab.LinePrefix.ProteinTable; prefix = MzTab.LinePrefix.ProteinData; _currentState |= MzTab.States.ProteinData; _currentState |= MzTab.States.ProteinHeader; break; } // Write Header string[] header = MzTabEntity.GetHeader(objects).ToArray(); WriteLine(headerPrefix, header); if (includeCommentLine) { WriteComment(string.Join("\t", header)); } // Write table foreach (string[] values in objects.Select(datum => datum.GetStringValues(header).ToArray())) { WriteLine(prefix, values); } }
public void WriteLine(MzTab.LinePrefix prefix, string line) { _writer.Write(MzTab.GetLinePrefixText(prefix)); _writer.Write(MzTab.FieldSeparator); _writer.WriteLine(line); }