- Component: remeta
gene, conditional mode (--condition-list / --condition-htp)
- Version:
v0.11.2-9462889 (source checkout: /home/sklasfeld/remeta, commit 9462889, matches the container banner)
Severity: fatal — SIGABRT, exit 134, no partial output. One lead kills the whole run, not just
the affected chromosome, and it is uncatchable at the task level.
Two ways REMETA GENE handles a missing ancestry:
- If an ancestry has no row for the lead/conditional variant in the respective HTP, REMETA handles it gracefully. This is the case where the variant was never captured in that ancestry's data, or did not pass its QC. REMETA conditions using the ancestries that DO have the variant and ignores the one that does not. I confirmed this holds even when four of five ancestries are missing the variant.
- If an ancestry has a row but no usable effect estimate, REMETA aborts. The variant was observed, but regenie could not fit it, so the beta is NA
. REMETA exits 134 partway through with could not find beta for: `. There is no way to catch this and no partial output; one such lead terminates the entire run, not just that chromosome.
| that cohort's HTP, for the lead |
remeta gene |
what() |
| no row at all (never captured, or failed QC) |
exit 0 — conditions on the cohorts that have it |
— |
row present, no usable effect estimate (Effect=NA, no *_BETA= key) |
exit 134 |
could not find beta for: <variant> |
row present, REGENIE_BETA=NA beside a good Effect |
exit 134 |
stod |
The last two abort by different routes, and only one is diagnosable. get_beta throws
runtime_error when no beta exists in any encoding, but a present key goes to stod, which
throws std::invalid_argument — a sibling of runtime_error under logic_error. So
has_beta's catch (const runtime_error&) (htpv4_reader.cpp:352-359) structurally cannot catch
it, and the message that reaches the user carries no variant, cohort or file.
Expected behavior
Treat a lead whose record carries no usable effect estimate in cohort i the same as a lead absent from cohort i: cohort i contributes nothing to the conditioning, the run continues on the cohorts that can supply an estimate. Failing that, abort with the variant, cohort and file named in every path, so the offending row can be found without a source dive.
gene, conditional mode (--condition-list/--condition-htp)v0.11.2-9462889(source checkout:/home/sklasfeld/remeta, commit9462889, matches the container banner)Severity: fatal — SIGABRT, exit 134, no partial output. One lead kills the whole run, not just
the affected chromosome, and it is uncatchable at the task level.
Two ways REMETA GENE handles a missing ancestry:
. REMETA exits 134 partway through withcould not find beta for: `. There is no way to catch this and no partial output; one such lead terminates the entire run, not just that chromosome.remeta genewhat()Effect=NA, no*_BETA=key)could not find beta for: <variant>REGENIE_BETA=NAbeside a goodEffectstodThe last two abort by different routes, and only one is diagnosable.
get_betathrowsruntime_errorwhen no beta exists in any encoding, but a present key goes tostod, whichthrows
std::invalid_argument— a sibling ofruntime_errorunderlogic_error. Sohas_beta'scatch (const runtime_error&)(htpv4_reader.cpp:352-359) structurally cannot catchit, and the message that reaches the user carries no variant, cohort or file.
Expected behavior
Treat a lead whose record carries no usable effect estimate in cohort i the same as a lead absent from cohort i: cohort i contributes nothing to the conditioning, the run continues on the cohorts that can supply an estimate. Failing that, abort with the variant, cohort and file named in every path, so the offending row can be found without a source dive.