コード例 #1
0
 private DbProtein EndProtein()
 {
     if (_curProtein == null)
     {
         return null;
     }
     _curProtein.Sequence = _curSequence.ToString();
     _curSequence = new StringBuilder();
     DbProtein result = _curProtein;
     _curProtein = null;
     return result;
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 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;
     }
 }