1#ifndef SCRAN_SUMMARIZE_EFFECTS_HPP
2#define SCRAN_SUMMARIZE_EFFECTS_HPP
4#include "../utils/macros.hpp"
6#include "../utils/vector_to_pointers.hpp"
175 compute_min_rank = c;
196 template<
typename Stat>
197 void run(
size_t ngenes,
size_t ngroups,
const Stat* effects, std::vector<std::vector<Stat*> > summaries)
const {
198 if (summaries.empty()) {
202 auto& min_rank = summaries[differential_analysis::MIN_RANK];
203 if (min_rank.size()) {
204 differential_analysis::compute_min_rank(ngenes, ngroups, effects, min_rank, num_threads);
207 differential_analysis::summarize_comparisons(ngenes, ngroups, effects, summaries, num_threads);
227 template<
typename Stat>
228 std::vector<std::vector<std::vector<Stat> > >
run(
size_t ngenes,
size_t ngroups,
const Stat* effects)
const {
229 std::vector<std::vector<std::vector<Stat> > > output(differential_analysis::n_summaries);
231 auto inflate = [&](
auto& o) ->
void {
239 inflate(output[differential_analysis::MIN]);
242 inflate(output[differential_analysis::MEAN]);
244 if (compute_median) {
245 inflate(output[differential_analysis::MEDIAN]);
248 inflate(output[differential_analysis::MAX]);
250 if (compute_min_rank) {
251 inflate(output[differential_analysis::MIN_RANK]);
Summarize pairwise effects into summary statistics per group.
Definition SummarizeEffects.hpp:64
void run(size_t ngenes, size_t ngroups, const Stat *effects, std::vector< std::vector< Stat * > > summaries) const
Definition SummarizeEffects.hpp:197
SummarizeEffects & set_compute_min(bool c=Defaults::compute_min)
Definition SummarizeEffects.hpp:126
SummarizeEffects & set_compute_min_rank(bool c=Defaults::compute_min_rank)
Definition SummarizeEffects.hpp:174
SummarizeEffects & set_compute_median(bool c=Defaults::compute_median)
Definition SummarizeEffects.hpp:150
std::vector< std::vector< std::vector< Stat > > > run(size_t ngenes, size_t ngroups, const Stat *effects) const
Definition SummarizeEffects.hpp:228
SummarizeEffects & set_num_threads(int n=Defaults::num_threads)
Definition SummarizeEffects.hpp:114
SummarizeEffects & set_compute_mean(bool c=Defaults::compute_mean)
Definition SummarizeEffects.hpp:138
SummarizeEffects & set_compute_max(bool c=Defaults::compute_max)
Definition SummarizeEffects.hpp:162
Functions for single-cell RNA-seq analyses.
Definition AggregateAcrossCells.hpp:18
std::vector< T * > vector_to_pointers(std::vector< std::vector< T > > &input)
Definition vector_to_pointers.hpp:26
Default parameter settings.
Definition SummarizeEffects.hpp:69
static constexpr bool compute_median
Definition SummarizeEffects.hpp:88
static constexpr bool compute_max
Definition SummarizeEffects.hpp:93
static constexpr int num_threads
Definition SummarizeEffects.hpp:73
static constexpr bool compute_min
Definition SummarizeEffects.hpp:78
static constexpr bool compute_mean
Definition SummarizeEffects.hpp:83
static constexpr bool compute_min_rank
Definition SummarizeEffects.hpp:98
Utilities for effect summarization.