示例#1
0
        private IEnumerable <IGrouping <string, KeyValuePair <string, UOPair <char> > > > SnpGroupsCidToNucPairEnumerable(List <string> cidList)
        {
            using (TextReader textReader = TPedFile.OpenText())
            {
                string line;
                while (null != (line = textReader.ReadLine()))
                {
                    string[] fields    = line.Split(new[] { '\t' }, 5);
                    string   snpName   = fields[1];
                    string[] pairArray = fields[4].Split('\t');
                    Helper.CheckCondition(pairArray.Length == cidList.Count, "Expect the number of nuc pairs on a line to be the same as the number of cids in the tfam file");

                    var cidAndPairQuery = cidList.Zip(pairArray, (cid, pairString) => new KeyValuePair <string, UOPair <char> >(cid, StringToUOPairConverter(pairString)));
                    yield return(Grouping <string, KeyValuePair <string, UOPair <char> > > .GetInstance(snpName, cidAndPairQuery.GetEnumerator()));
                }
            }
        }