Ejemplo n.º 1
0
    public override IEnumerable<string> Process(string fileName)
    {
      this.Progress.SetMessage("Parsing fastqc result ...");
      var fMap = new FastQCItemReader().ReadFromRootDirectory(fastqcDir).ToDictionary(m => m.Name);

      this.Progress.SetMessage("Parsing RNASeQC result ...");
      var rMap = new RNASeQCItemReader().ReadFromFile(this.rnaseqcMatrixFile).ToDictionary(m => m.Sample);

      using (StreamWriter sw = new StreamWriter(fileName))
      {
        sw.WriteLine("Sample\tFileNames\tTotalSequences\tSequenceLength\tGC\t" +
          "AlternativeAlignments\tMappedUnique\tMappedUniqueRate\tMappedPairs\tBaseMismatchRate\t" +
          "IntragenicRate\tExonicRate\tIntronicRate\tIntergenicRate\tExpressionProfilingEfficiency\tTranscriptsDetected\tGenesDetected\tMeanPerBaseCoverage\tFragmentLengthMean\tFragmentLengthStdDev");
        var keys = (from k in fMap.Keys
                    orderby k
                    select k).ToList();
        foreach (var key in keys)
        {
          var fitem = fMap[key];
          var ritem = rMap[key];
          sw.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7:0.000}\t{8}\t{9:0.000}\t{10:0.000}\t{11:0.000}\t{12:0.000}\t{13:0.000}\t{14:0.000}\t{15}\t{16}\t{17}\t{18}\t{19}",
            fitem.Name,
            fitem.FileNames,
            fitem.TotalSequences,
            fitem.SequenceLength,
            fitem.GC,
            ritem.AlternativeAlignments,
            ritem.MappedUnique,
            ritem.MappedUnique * 1.0 / fitem.TotalSequences,
            ritem.MappedPairs,
            ritem.BaseMismatchRate,
            ritem.IntragenicRate,
            ritem.ExonicRate,
            ritem.IntronicRate,
            ritem.IntergenicRate,
            ritem.ExpressionProfilingEfficiency,
            ritem.TranscriptsDetected,
            ritem.GenesDetected,
            ritem.MeanPerBaseCoverage,
            ritem.FragmentLengthMean,
            ritem.FragmentLengthStdDev
            );
        }
      }

      return new string[] { fileName };
    }
Ejemplo n.º 2
0
 public void Test()
 {
   var items = new RNASeQCItemReader().ReadFromFile("../../../data/rnaseqc_metrics.tsv");
   Assert.AreEqual(19, items.Count);
   Assert.AreEqual("G1_7071", items[0].Sample);
   Assert.AreEqual(2437915, items[0].AlternativeAlignments);
   Assert.AreEqual(69485233, items[0].MappedUnique);
   Assert.AreEqual(0.002318971, items[0].BaseMismatchRate);
   Assert.AreEqual(33526847, items[0].MappedPairs);
   Assert.AreEqual(218, items[0].FragmentLengthMean);
   Assert.AreEqual(205, items[0].FragmentLengthStdDev);
   Assert.AreEqual(1094795, items[0].ChimericPairs);
   Assert.AreEqual(0.9299, items[0].IntragenicRate, 0.0001);
   Assert.AreEqual(0.0879, items[0].IntronicRate, 0.0001);
   Assert.AreEqual(0.8420, items[0].ExonicRate, 0.0001);
   Assert.AreEqual(99, items[0].ReadLength);
   Assert.AreEqual(134191, items[0].TranscriptsDetected);
   Assert.AreEqual(23641, items[0].GenesDetected);
   Assert.AreEqual(56.24, items[0].MeanPerBaseCoverage, 0.01);
   Assert.AreEqual(0.8420, items[0].ExpressionProfilingEfficiency, 0.01);
 }