Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }