원클릭으로
hvantk-resource-clingen
Onboard, build, or update the ClinGen Gene-Disease Validity resource for hvantk
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Onboard, build, or update the ClinGen Gene-Disease Validity resource for hvantk
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Onboard, build, or update the ClinVar resource for hvantk
Build a Hail Table from GTEx cis-eQTL summary statistics (per-tissue significant variant-gene pairs) for qtlcascade and variant annotation.
Build a Hail Table from the EBI GWAS Catalog v1.0 full-associations TSV for variant-annotation joins.
Build a Hail Table from the Interactome Insider genomic BED (protein-protein interface residues projected to GRCh38) for interval-based variant annotation.
Build a Hail Table from an MSigDB GMT gene-set file (e.g., C2 Canonical Pathways) for enrichment / burden / overlap analyses.
HGNC gene nomenclature lookup table — authoritative human gene symbols, IDs, and cross-references keyed by hgnc_id.
| name | hvantk:resource-clingen |
| description | Onboard, build, or update the ClinGen Gene-Disease Validity resource for hvantk |
| status | provisional |
| backend | hail |
| domain | genomics |
Read hvantk/skills/_conventions/SKILL.md first. This skill assumes its repository map, helpers, keying conventions, builder pattern, and validation contract.
This skill covers BUILD and UPDATE of the ClinGen Gene-Disease Validity Hail Table. It does NOT cover download (see hvantk/skills/clingen/cli.py) or downstream streamer logic. The per-plugin streamer subclass lives in hvantk/skills/clingen/streamers.py (ClinGenGeneDiseaseTableStreamer), built on the shared base GeneDiseaseTableStreamer in hvantk/core/streamers/gene_disease_table.py.
Provider metadata (URL, license, citation) lives in the plugin's catalog/datasets.json (or query it with hvantk catalog show <accession> once a ClinGen catalog entry exists). The URL/version constants live in hvantk/skills/clingen/shared/constants.py (CLINGEN_BASE_URL, CLINGEN_DOWNLOADS_URL, CLINGEN_FILE_PREFIX, CLINGEN_HEADER_SKIP_LINES). Read those files; do not restate.
Stable provider notes the catalog will not capture:
Last-Modified header (when present) and by the values in the leading metadata block.hail. ClinGen is small (~5k rows) and _conventions § 3 allows pandas for mapping tables, but every current consumer (ClinGenStreamer, gene-disease join points in PSROC, recipe-driven multi-table joins) reads it as a Hail Table — producing one avoids redundant materialization at every join site.
CLINGEN_HEADER_SKIP_LINES = 6). The column header begins with "GENE SYMBOL". Separator rows containing ++++++ are interleaved with the metadata block.hl.hadoop_open and writes a cleaned temp CSV containing only the column header + data rows. This is required because hl.import_table cannot skip arbitrary leading metadata.hl.import_table(delimiter=",", quote='"', impute=False, min_partitions=10). All fields stay as strings; no type inference.CLINGEN_GENE_DISEASE_FIELDS (hvantk/skills/clingen/shared/constants.py). Notable renames: GENE SYMBOL → gene_symbol, GENE ID (HGNC) → hgnc_id, DISEASE LABEL → disease_label, DISEASE ID (MONDO) → mondo_id, MOI → mode_of_inheritance, CLASSIFICATION → classification, GCEP → gene_curation_expert_panel.HGNC: and MONDO: prefixes from hgnc_id and mondo_id. This is asymmetric with the HGNC table (which keeps the prefix); downstream joins (e.g., clingen_streamer) account for this.CLINGEN_CLASSIFICATION_LEVELS, strongest first): Definitive, Strong, Moderate, Limited, Disputed, Refuted. The builder annotates classification_level as the numeric position (lower is stronger). Unknown values get len(CLINGEN_CLASSIFICATION_LEVELS).(hgnc_id, mondo_id).Hail Table at <output_path>.ht, keyed by (hgnc_id, mondo_id).
Row schema includes: hgnc_id, gene_symbol, disease_label, mondo_id, mode_of_inheritance, sop, classification, classification_level, classification_date, gene_curation_expert_panel, report_url.
hvantk/skills/clingen/plugin.yaml (the loader resolves this dataset via get_registry().get_dataset("clingen:gene-disease"); top-level builds run through run_builder_for_spec in hvantk/core/plugin/run_builder.py).build_clingen_gene_disease in hvantk/skills/clingen/builder.py. Signature (parsed_input, ctx, *, min_classification=None, fields=None) -> AnnotationTable. The table is built inline (hl.import_table + renames/transforms); the only shared helper is cleanup_temp_file from hvantk/core/utils/hail_helpers.py.download_cmd (Click clingen-download) in hvantk/skills/clingen/cli.py; lifecycle entry-point download_dataset(raw_dir=...) (declared under lifecycle.download in plugin.yaml).ClinGenGeneDiseaseDataset in hvantk/skills/clingen/shared/datasets.py.hvantk reprocess clingen:gene-disease --raw-dir <dir> --output <path>.ht (pass builder kwargs via --plugin-arg key=value, e.g. --plugin-arg min_classification=Strong).ClinGenGeneDiseaseTableStreamer in hvantk/skills/clingen/streamers.py, subclass of GeneDiseaseTableStreamer (hvantk/core/streamers/gene_disease_table.py).CLINGEN_BASE_URL, CLINGEN_DOWNLOADS_URL, CLINGEN_FILE_PREFIX, CLINGEN_HEADER_SKIP_LINES, CLINGEN_GENE_DISEASE_FIELDS, CLINGEN_CLASSIFICATION_LEVELS in hvantk/skills/clingen/shared/constants.py.hvantk/skills/clingen/tests/test_downloader.py, test_drift_probe.py, test_streamer.py.When invoked to build or update:
<raw_dir>/Clingen-Gene-Disease-Summary-<YYYY-MM-DD>.csv. If absent, run the plugin downloader (Click clingen-download, e.g. hvantk download clingen --output-dir <raw_dir>).(hgnc_id, mondo_id). Optionally pass min_classification to drop weaker associations, and fields to select a column subset.hvantk reprocess clingen:gene-disease --raw-dir <dir> --output <path>.ht [--plugin-arg min_classification=Strong].hgnc_id == "1100", not "HGNC:1100").pytest hvantk/skills/clingen/tests -m hail.When ClinGen publishes an updated snapshot (any download is effectively a new snapshot):
hvantk download clingen --output-dir <raw_dir> --overwrite. Capture the Last-Modified header (or the snapshot date label) in the PR description.CLINGEN_GENE_DISEASE_FIELDS. Removed/renamed columns require updating CLINGEN_GENE_DISEASE_FIELDS.hvantk/skills/clingen/tests/drift_fingerprint.json and inspect for column-list changes or hash changes.hvantk/skills/clingen/tests/testdata/raw/clingen/clingen_test_sample.csv) is no longer representative (new classification value, new GCEP under test), refresh it from a curated sub-sample.pytest hvantk/skills/clingen/tests -m hail); expected diffs: new optional columns, refreshed classification_date values. Unexpected diffs (changed key semantics, stripped prefixes leaking back in) require investigation before commit.fixture: hvantk/skills/clingen/tests/testdata/raw/clingen/clingen_test_sample.csvdrift_fingerprint: hvantk/skills/clingen/tests/drift_fingerprint.jsontest_command: pytest hvantk/skills/clingen/tests -m hailSnapshot status: the
tests/snapshots/schema.jsonandtests/snapshots/sample_rows.jsonpaths declared inplugin.yamlhave NOT yet been seeded for this plugin (thetests/snapshots/directory does not exist yet). Until seeded, there is no fixed-schema round-trip check; the live tests aretest_downloader.py,test_drift_probe.py, andtest_streamer.py.