Add arbitrary fixed-effect contrasts

This commit is contained in:
2026-08-13 13:39:33 +08:00
parent 8557daecac
commit 48ab77f9ab
8 changed files with 515 additions and 29 deletions

View File

@@ -20,6 +20,8 @@ struct BatchInputPaths {
std::filesystem::path tasks_tsv;
std::filesystem::path extra_offsets_i64;
std::filesystem::path extra_indices_i32;
std::filesystem::path contrast_matrix_f64;
std::filesystem::path contrast_metadata_tsv;
std::filesystem::path output_directory;
};
@@ -28,6 +30,7 @@ struct BatchDimensions {
std::size_t base_covariate_count = 0;
std::size_t phenotype_row_count = 0;
std::size_t extra_covariate_row_count = 0;
std::size_t contrast_count = 0;
};
struct BatchOptions {

View File

@@ -164,6 +164,10 @@ struct RemlResult {
std::vector<double> beta_covariance_packed_lower;
FixedEffectInferenceResult fixed_effect_inference;
FixedEffectTestResult extra_fixed_effect_joint_test;
// Named shared contrasts supplied by the batch interface, in manifest
// contrast order. Every contrast acts on the common/base fixed effects;
// task-specific fixed-effect columns are assigned zero weight.
std::vector<FixedEffectTestResult> contrast_tests;
std::string error;
[[nodiscard]] bool has_estimates() const noexcept {