Class SequencingQcMetrics.SampleMetrics

java.lang.Object
ubic.gemma.core.analysis.preprocess.qc.SequencingQcMetrics.SampleMetrics
Enclosing class:
SequencingQcMetrics

public static final class SequencingQcMetrics.SampleMetrics extends Object
The metrics resolved for a single bioAssay.
  • Constructor Details

    • SampleMetrics

      public SampleMetrics(Long bioAssayId, @Nullable String accession, @Nullable String name, boolean outlier, Map<String,Double> values, List<SequencingQcMetrics.RunMetrics> runs, @Nullable Long readCount, @Nullable String readCountSource)
      Creates a new SampleMetrics instance.
      Parameters:
      bioAssayId -
      accession - The assay's accession (a GSM for GEO data), which is what the report rows are keyed by.
      name - The assay's name, for axis labels.
      outlier - True when the assay is flagged as an outlier, so the caller need not join a second call.
      values - Sample-level metrics: the values from report rows whose key IS this assay's accession. Modules are merged into one map; on a name collision between modules the first module MultiQC listed wins.
      runs - Rows whose key merely STARTS with this assay's accession — one per sequencing run or per mate of a paired run, which is how the FASTQ-level modules key their output.

      These are NOT aggregated into getValues(). Summarizing them would need a rule per metric (a mean for a rate, a sum for a count) and no such rule is recorded anywhere, so the rows are passed through as they were read.

      readCount - Sequencing depth for the assay. Taken from the report's total_reads when the report has a sample-level row, and from BioAssay.getSequenceReadCount() otherwise. Null when neither has one.
      readCountSource - Where getReadCount() came from: "report", "bioAssay", or null when there is no read count.
  • Method Details

    • getBioAssayId

      public Long getBioAssayId()
    • getAccession

      @Nullable public String getAccession()
      The assay's accession (a GSM for GEO data), which is what the report rows are keyed by.
    • getName

      @Nullable public String getName()
      The assay's name, for axis labels.
    • isOutlier

      public boolean isOutlier()
      True when the assay is flagged as an outlier, so the caller need not join a second call.
    • getValues

      public Map<String,Double> getValues()
      Sample-level metrics: the values from report rows whose key IS this assay's accession. Modules are merged into one map; on a name collision between modules the first module MultiQC listed wins.
    • getRuns

      Rows whose key merely STARTS with this assay's accession — one per sequencing run or per mate of a paired run, which is how the FASTQ-level modules key their output.

      These are NOT aggregated into getValues(). Summarizing them would need a rule per metric (a mean for a rate, a sum for a count) and no such rule is recorded anywhere, so the rows are passed through as they were read.

    • getReadCount

      @Nullable public Long getReadCount()
      Sequencing depth for the assay. Taken from the report's total_reads when the report has a sample-level row, and from BioAssay.getSequenceReadCount() otherwise. Null when neither has one.
    • getReadCountSource

      @Nullable public String getReadCountSource()
      Where getReadCount() came from: "report", "bioAssay", or null when there is no read count.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object