Exemple #1
0
        public static List <SNPItem> ReadFromFile(string fileName)
        {
            var result = new List <SNPItem>();

            using (var sr = new StreamReader(fileName))
            {
                var line    = sr.ReadLine();
                var hasFlip = line.Contains("_AlleleNeedFlip");

                var platforms = line.Split('\t').ToList().ConvertAll(m => m.StringBefore("_Allele"));
                var step      = hasFlip ? 3 : 2;
                while ((line = sr.ReadLine()) != null)
                {
                    var parts = line.Split('\t');
                    //sw.WriteLine("Dbsnp_ID\tCHROM\tPOS\tDbsnp_RefAllele\tDbsnp_AltAllele\tDbsnp_IsReversed\t1000G_REF\t1000G_ALT\t1000G_MAF\tDataset\t{0}",

                    var item = new SNPItem()
                    {
                        Name                  = parts[0],
                        Chrom                 = int.Parse(parts[1]),
                        Position              = int.Parse(parts[2]),
                        Allele1               = parts[3][0],
                        Allele2               = parts[4],
                        DbsnpIsReversed       = bool.Parse(parts[5]),
                        G1000Allele1          = parts[6][0],
                        G1000Allele2          = parts[7][0],
                        G1000Allele2Frequency = double.Parse(parts[8]),
                        Dataset               = parts[9]
                    };

                    for (int i = 10; i < parts.Length; i += step)
                    {
                        if (string.IsNullOrEmpty(parts[i]))
                        {
                            continue;
                        }

                        var alleles = parts[i].Split(':');
                        var aitem   = new Alleles()
                        {
                            Allele1 = alleles[0],
                            Allele2 = alleles[1]
                        };
                        aitem.Allele2Frequency = double.Parse(parts[i + 1]);
                        if (hasFlip)
                        {
                            aitem.NeedFlip = bool.Parse(parts[i + 2]);
                        }
                        item.Platforms[platforms[i]] = aitem;
                    }

                    result.Add(item);
                }
            }
            return(result);
        }
Exemple #2
0
    public static List<SNPItem> ReadFromFile(string fileName)
    {
      var result = new List<SNPItem>();
      using (var sr = new StreamReader(fileName))
      {
        var line = sr.ReadLine();
        var hasFlip = line.Contains("_AlleleNeedFlip");

        var platforms = line.Split('\t').ToList().ConvertAll(m => m.StringBefore("_Allele"));
        var step = hasFlip ? 3 : 2;
        while ((line = sr.ReadLine()) != null)
        {
          var parts = line.Split('\t');
          //sw.WriteLine("Dbsnp_ID\tCHROM\tPOS\tDbsnp_RefAllele\tDbsnp_AltAllele\tDbsnp_IsReversed\t1000G_REF\t1000G_ALT\t1000G_MAF\tDataset\t{0}",

          var item = new SNPItem()
          {
            Name = parts[0],
            Chrom = int.Parse(parts[1]),
            Position = int.Parse(parts[2]),
            Allele1 = parts[3][0],
            Allele2 = parts[4],
            DbsnpIsReversed = bool.Parse(parts[5]),
            G1000Allele1 = parts[6][0],
            G1000Allele2 = parts[7][0],
            G1000Allele2Frequency = double.Parse(parts[8]),
            Dataset = parts[9]
          };

          for (int i = 10; i < parts.Length; i += step)
          {
            if (string.IsNullOrEmpty(parts[i]))
            {
              continue;
            }

            var alleles = parts[i].Split(':');
            var aitem = new Alleles()
            {
              Allele1 = alleles[0],
              Allele2 = alleles[1]
            };
            aitem.Allele2Frequency = double.Parse(parts[i + 1]);
            if (hasFlip)
            {
              aitem.NeedFlip = bool.Parse(parts[i + 2]);
            }
            item.Platforms[platforms[i]] = aitem;
          }

          result.Add(item);
        }
      }
      return result;
    }