private VariantCall[] LoadIlluminaFinalReportVariant(string line)
        {
            if (line[0] != 'r')
            {
                return null;
            }
            if (line[1] != 's')
            {
                return null;
            }

            if (_splitter == null)
            {
                var testSplit = line.Split('\t');
                _splitter = new StringSplitter(testSplit.Length);
            }

            _splitter.Split(line, '\t');
            var lineSplit = _splitter.Results;
            var newVar = new VariantCall();

            newVar.Id = lineSplit[0];
            newVar.AlleleA = lineSplit[16];
            newVar.AlleleB = lineSplit[17];

            return new[] { newVar };
        }
        private VariantCall[] LoadIlluminaMatrixReportVariant(string line)
        {
            if (line[0] != 'r')
            {
                return null;
            }
            if (line[1] != 's')
            {
                return null;
            }

            if (_splitter == null)
            {
                var testSplit = line.Split('\t');
                _splitter = new StringSplitter(testSplit.Length);
            }

            _splitter.Split(line, '\t');
            var lineSplit = _splitter.Results;

            var variants = new VariantCall[lineSplit.Length - 1];
            for (var i = 1; i < lineSplit.Length; i++)
            {
                var variant = new VariantCall();
                variant.Id = lineSplit[0];
                variant.AlleleA = lineSplit[i][0].ToString();
                variant.AlleleB = lineSplit[i][1].ToString();
                variants[i - 1] = variant;
            }

            return variants;
        }
        private VariantCall[] LoadVcfVariant(string line)
        {
            //Check for comment headers
            if (line.Length < 2)
            {
                return null;
            }
            if (line.Substring(0, 2) == "##")
            {
                return null;
            }
            if (line[0] == '#')
            {
                return null;
            }

            if (_splitter == null)
            {             
                var testSplit = line.Split('\t');
                _splitter = new StringSplitter(testSplit.Length);
            }

            _splitter.Split(line, '\t');
            var lineSplit = _splitter.Results;

            //Check if we passed QC
            if (lineSplit[6] != "PASS")
            {
                return null;
            }

            //Check if id starts with rs
            if (lineSplit[2][0] != 'r')
            {
                return null;
            }
            if (lineSplit[2][1] != 's')
            {
                return null;
            }

            //Create variant
            var newVar = new VariantCall();
            newVar.Id = lineSplit[2];
            newVar.VcfRef = lineSplit[3];
            newVar.VcfAlt = lineSplit[4];
            return new[] {newVar};
        }