private DbProtein EndProtein() { if (_curProtein == null) { return null; } _curProtein.Sequence = _curSequence.ToString(); _curSequence = new StringBuilder(); DbProtein result = _curProtein; _curProtein = null; return result; }
private DbProtein ParseProteinLine(String line) { String[] alternatives = line.Substring(1).Split((char) 1); var protein = new DbProtein(); var proteinMetadata = ParseProteinMetaData(alternatives[0]); var dbName = new DbProteinName(null,proteinMetadata); protein.Names.Add(dbName); for (int i = 1; i < alternatives.Length; i++) { if (alternatives[i].Length > 0) { var altProteinMetadata = ParseProteinMetaData(alternatives[i]); var altName = new DbProteinName(protein,altProteinMetadata); protein.Names.Add(altName); } } return protein; }
public IEnumerable<DbProtein> Import(TextReader reader) { string line; while ((line = reader.ReadLine()) != null) { if (line.StartsWith(">")) // Not L10N { DbProtein protein = EndProtein(); if (protein != null) { yield return protein; } _curProtein = ParseProteinLine(line); _curSequence = new StringBuilder(); } else if (_curSequence == null) { // break; } else { _curSequence.Append(ParseSequenceLine(line)); } } DbProtein lastProtein = EndProtein(); if (lastProtein != null) { yield return lastProtein; } }