示例#1
0
        private void Parse(string tagFilePath)
        {
            var tagParser    = new TsvFileParser(tagFilePath);
            var scan         = tagParser.GetData("ScanNum").Select(s => Convert.ToInt32(s)).ToArray();
            var sequence     = tagParser.GetData("SequenceTag").ToArray();
            var isPrefix     = tagParser.GetData("IsPrefix").Select(s => s.Equals("1")).ToArray();
            var flankingMass = tagParser.GetData("FlankingMass").Select(Convert.ToDouble).ToArray();

            for (var i = 0; i < tagParser.NumData; i++)
            {
                if (sequence[i].Length < _minTagLength)
                {
                    continue;
                }
                var tag = new SequenceTag.SequenceTag(scan[i], sequence[i], isPrefix[i], flankingMass[i]);

                IList <SequenceTag.SequenceTag> tagList;
                if (_scanToTags.TryGetValue(scan[i], out tagList))
                {
                    if (tagList.Count < _numTagsPerScan)
                    {
                        tagList.Add(tag);
                    }
                }
                else
                {
                    _scanToTags.Add(scan[i], new List <SequenceTag.SequenceTag> {
                        tag
                    });
                }
            }
        }
示例#2
0
        public MatchedTag(SequenceTag.SequenceTag tag, int startIndex, double?featureMass)
        {
            StartIndex            = startIndex;
            EndIndex              = startIndex + tag.Sequence.Length;
            NumMergedSequenceTags = 1;
            NTermFlankingMass     = tag.GetNTermFlankingMass(featureMass - Composition.H2O.Mass);
            CTermFlankingMass     = tag.GetCTermFlankingMass(featureMass - Composition.H2O.Mass);

            NumReliableNTermFlankingMasses = tag.IsPrefix ? 1 : 0;
            NumReliableCTermFlankingMasses = tag.IsPrefix ? 0 : 1;
        }
示例#3
0
 public MatchedTag(SequenceTag.SequenceTag tag, int startIndex) : this(tag, startIndex, null)
 {
 }