public static FastQCBasicStatisticItem ParseFromFile(string filename)
    {
      FastQCBasicStatisticItem result = new FastQCBasicStatisticItem();
      using (StreamReader sr = new StreamReader(filename))
      {
        string line = sr.ReadLine();
        if (line.StartsWith("##FastQC"))
        {
          result.FastQCVersion = line.StringAfter("\t").Trim();
        }

        while ((line = sr.ReadLine()) != null)
        {
          if (line.StartsWith(">>Basic Statistics"))
          {
            result.Passed = line.StringAfter("\t").Trim().Equals("pass") ? true : false;
            break;
          }
        }

        while ((line = sr.ReadLine()) != null)
        {
          if (line.StartsWith(">>"))
          {
            break;
          }

          var parts = line.Split('\t');
          if (parts[0].Equals("Filename"))
          {
            result.FileName = parts[1];
          }
          else if (parts[0].Equals("File type"))
          {
            result.FileType = parts[1];
          }
          else if (parts[0].Equals("Encoding"))
          {
            result.Encoding = parts[1];
          }
          else if (parts[0].Equals("Total Sequences"))
          {
            result.TotalSequences = long.Parse(parts[1]);
          }
          else if (parts[0].Equals("Filtered Sequences"))
          {
            result.FilteredSequences = long.Parse(parts[1]);
          }
          else if (parts[0].Equals("Sequence length"))
          {
            result.SequenceLength = int.Parse(parts[1]);
          }
          else if (parts[0].Equals("%GC"))
          {
            result.GC = double.Parse(parts[1]);
          }
        }
      }
      return result;
    }
Exemple #2
0
        public static FastQCItem ParseFromDirectory(string directory)
        {
            FastQCItem result = new FastQCItem();

            result.Name = Path.GetFileName(directory);

            foreach (var dir in Directory.GetDirectories(directory))
            {
                var file = dir + "/fastqc_data.txt";
                if (File.Exists(file))
                {
                    result.Items.Add(FastQCBasicStatisticItem.ParseFromFile(file));
                }
            }

            if (result.Items.Count == 0)
            {
                return(null);
            }

            return(result);
        }
        public static FastQCBasicStatisticItem ParseFromFile(string filename)
        {
            FastQCBasicStatisticItem result = new FastQCBasicStatisticItem();

            using (StreamReader sr = new StreamReader(filename))
            {
                string line = sr.ReadLine();
                if (line.StartsWith("##FastQC"))
                {
                    result.FastQCVersion = line.StringAfter("\t").Trim();
                }

                while ((line = sr.ReadLine()) != null)
                {
                    if (line.StartsWith(">>Basic Statistics"))
                    {
                        result.Passed = line.StringAfter("\t").Trim().Equals("pass") ? true : false;
                        break;
                    }
                }

                while ((line = sr.ReadLine()) != null)
                {
                    if (line.StartsWith(">>"))
                    {
                        break;
                    }

                    var parts = line.Split('\t');
                    if (parts[0].Equals("Filename"))
                    {
                        result.FileName = parts[1];
                    }
                    else if (parts[0].Equals("File type"))
                    {
                        result.FileType = parts[1];
                    }
                    else if (parts[0].Equals("Encoding"))
                    {
                        result.Encoding = parts[1];
                    }
                    else if (parts[0].Equals("Total Sequences"))
                    {
                        result.TotalSequences = long.Parse(parts[1]);
                    }
                    else if (parts[0].Equals("Filtered Sequences"))
                    {
                        result.FilteredSequences = long.Parse(parts[1]);
                    }
                    else if (parts[0].Equals("Sequence length"))
                    {
                        result.SequenceLength = int.Parse(parts[1]);
                    }
                    else if (parts[0].Equals("%GC"))
                    {
                        result.GC = double.Parse(parts[1]);
                    }
                }
            }
            return(result);
        }