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; }
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); }