protected void LoadKnownCN(string oracleVCFPath) { // Load our "oracle" of known copy numbers: this.KnownCN = new Dictionary <string, List <CNInterval> >(); int count = 0; using (FileStream stream = new FileStream(oracleVCFPath, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(stream)) { while (true) { string fileLine = reader.ReadLine(); if (fileLine == null) { break; } if (fileLine.Length == 0 || fileLine[0] == '#') { continue; } string[] bits = fileLine.Split('\t'); string chromosome = bits[0]; if (!KnownCN.ContainsKey(chromosome)) { KnownCN[chromosome] = new List <CNInterval>(); } CNInterval interval = new CNInterval(); interval.Start = int.Parse(bits[1]); interval.CN = -1; bits = bits[7].Split(';'); foreach (string subBit in bits) { if (subBit.StartsWith("CN=")) { interval.CN = int.Parse(subBit.Substring(3)); } if (subBit.StartsWith("END=")) { interval.End = int.Parse(subBit.Substring(4)); } } if (interval.End == 0 || interval.CN < 0) { Console.WriteLine("Error - bogus record!"); Console.WriteLine(fileLine); } else { KnownCN[chromosome].Add(interval); count++; } } } Console.WriteLine(">>>Loaded {0} known-CN intervals", count); }
protected void LoadKnownCN(string oracleVCFPath) { // Load our "oracle" of known copy numbers: this.KnownCN = new Dictionary<string, List<CNInterval>>(); int count = 0; using (StreamReader reader = new StreamReader(oracleVCFPath)) { while (true) { string fileLine = reader.ReadLine(); if (fileLine == null) break; if (fileLine.Length == 0 || fileLine[0] == '#') continue; string[] bits = fileLine.Split('\t'); string chromosome = bits[0]; if (!KnownCN.ContainsKey(chromosome)) KnownCN[chromosome] = new List<CNInterval>(); CNInterval interval = new CNInterval(); interval.Start = int.Parse(bits[1]); interval.CN = -1; bits = bits[7].Split(';'); foreach (string subBit in bits) { if (subBit.StartsWith("CN=")) { interval.CN = int.Parse(subBit.Substring(3)); } if (subBit.StartsWith("END=")) { interval.End = int.Parse(subBit.Substring(4)); } } if (interval.End == 0 || interval.CN < 0) { Console.WriteLine("Error - bogus record!"); Console.WriteLine(fileLine); } else { KnownCN[chromosome].Add(interval); count++; } } } Console.WriteLine(">>>Loaded {0} known-CN intervals", count); }