1#ifndef SCRAN_PER_CELL_RNA_QC_METRICS_HPP
2#define SCRAN_PER_CELL_RNA_QC_METRICS_HPP
4#include "../utils/macros.hpp"
9#include "tatami/base/Matrix.hpp"
69 template<
typename Float =
double,
typename Integer =
int>
104 template<
class Matrix,
typename Subset = const u
int8_t*,
typename Float,
typename Integer>
106 size_t NC = mat->ncol();
118 std::vector<Float> placeholder;
120 placeholder.resize(NC);
121 tmp.
total = placeholder.data();
124 general.
run(mat, subsets, tmp);
129 quality_control::safe_divide(NC, s, tmp.
total);
178 populate_buffers(output, *
this);
188 populate_buffers(output, *
this);
193 template<
class SomeBuffer,
class Results>
194 static void populate_buffers(SomeBuffer& x,
Results& y) {
199 x.subset_proportions.resize(nsubsets);
200 for (
size_t s = 0; s < nsubsets; ++s) {
221 template<
class Matrix,
typename Subset = const u
int8_t*>
222 Results run(
const Matrix* mat,
const std::vector<Subset>& subsets)
const {
223 size_t nsubsets = subsets.size();
224 Results output(mat->ncol(), nsubsets);
225 auto buffers = output.
buffers();
226 run(mat, subsets, buffers);
Compute a variety of per-cell quality control metrics from a count matrix.
Compute a variety of per-cell quality control metrics from a count matrix.
Definition PerCellQcMetrics.hpp:45
PerCellQcMetrics & set_num_threads(int n=Defaults::num_threads)
Definition PerCellQcMetrics.hpp:292
Results run(const Matrix *mat, const std::vector< Subset > &subsets) const
Definition PerCellQcMetrics.hpp:313
Compute typical per-cell quality control metrics from an RNA count matrix.
Definition PerCellRnaQcMetrics.hpp:39
Results run(const Matrix *mat, const std::vector< Subset > &subsets) const
Definition PerCellRnaQcMetrics.hpp:222
PerCellRnaQcMetrics & set_num_threads(int n=Defaults::num_threads)
Definition PerCellRnaQcMetrics.hpp:55
void run(const Matrix *mat, const std::vector< Subset > &subsets, Buffers< Float, Integer > &output) const
Definition PerCellRnaQcMetrics.hpp:105
Functions for single-cell RNA-seq analyses.
Definition AggregateAcrossCells.hpp:18
Buffers for direct storage of the calculated statistics.
Definition PerCellQcMetrics.hpp:111
std::vector< Float * > subset_total
Definition PerCellQcMetrics.hpp:152
Integer * detected
Definition PerCellQcMetrics.hpp:132
Float * total
Definition PerCellQcMetrics.hpp:126
Buffers for direct storage of the calculated statistics.
Definition PerCellRnaQcMetrics.hpp:70
Integer * detected
Definition PerCellRnaQcMetrics.hpp:79
Float * sums
Definition PerCellRnaQcMetrics.hpp:74
std::vector< Float * > subset_proportions
Definition PerCellRnaQcMetrics.hpp:85
Default parameters.
Definition PerCellRnaQcMetrics.hpp:44
static constexpr int num_threads
Definition PerCellRnaQcMetrics.hpp:48
Result store for QC metric calculations.
Definition PerCellRnaQcMetrics.hpp:143
Buffers buffers()
Definition PerCellRnaQcMetrics.hpp:176
std::vector< std::vector< double > > subset_proportions
Definition PerCellRnaQcMetrics.hpp:168
std::vector< int > detected
Definition PerCellRnaQcMetrics.hpp:162
Buffers< const double, const int > buffers() const
Definition PerCellRnaQcMetrics.hpp:186
std::vector< double > sums
Definition PerCellRnaQcMetrics.hpp:157