Skip to content

Includes STRs as a data source#667

Open
MattWellie wants to merge 35 commits into
devfrom
include_STR_data
Open

Includes STRs as a data source#667
MattWellie wants to merge 35 commits into
devfrom
include_STR_data

Conversation

@MattWellie

@MattWellie MattWellie commented May 22, 2026

Copy link
Copy Markdown
Collaborator

Fixes

  • No STRs

Proposed Changes

  • Adds an STR VCF as an optional variant source
  • Adds in a repeat disorders panel - only STRs which are pathogenic according to STRipy and PanelApp are considered
  • Creates a new ShortTandemRepeat variant type, which contains the per-sample genotypes and repeat count for each allele. It also records the diseases relevant to each locus and pathogenic count thresholds for presentation in the report
  • Makes a few pieces in ValidateMoi easier - i.e. instead of keeping track of the small variant and (optional) mito, sv, and now STR VCFs, as separate objects which need to be passed around explicitly they're now loaded into a dictionary which looks like:
vcf_sources = {
    'small': small_variant_vcf,
    'sv': sv_vcf | None,
    'str': str_vcf | None,
    'mito': mito_vcf | None,
}
  • adds a new child-row block specific to STRs, which shows each disease relevant to the locus, its ranges and thresholds, and a RAG rating for whether the STR detected exceeds the pathogenic threshold for the specific disease

Checklist

  • ChangeLog Updated
  • Version Bumped
  • Related Issue created
  • Tests covering new change
  • Linting checks pass

@MattWellie MattWellie marked this pull request as ready for review May 25, 2026 03:58
@MattWellie MattWellie requested a review from cassimons May 25, 2026 03:59
@MattWellie

Copy link
Copy Markdown
Collaborator Author

n.b. I think the wiring here all makes sense, but the exact VCF specification/INFO/FORMAT fields matching what we're populating internally is a bit shortsighted... ExpansionHunter VCFs would be a more generic target.

# Conflicts:
#	.gitignore
#	Dockerfile
#	README.md
#	nextflow.config
#	pyproject.toml
#	src/talos/cpg_internal_scripts/CPG_Dockerfile
#	src/talos/cpg_internal_scripts/cpgflow_jobs/annotate_csq_with_bcftools.py
#	src/talos/version.py
@MattWellie

MattWellie commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

I'm re-opening this. It's tightly scoped to a very specific STR caller, but it's a good chunk of effort and better than nothing. Improving (e.g. targetting any-old STR caller and its catalog) can come later if there's appetite outside CPG/VCGS/Broad.

It also includes a number of tidy-up pieces like how multiple variant sources are handled, which I would like to keep

@MattWellie MattWellie reopened this Jul 7, 2026
# Conflicts:
#	CHANGELOG.md
#	Dockerfile
#	README.md
#	docs/getting-started.md
#	nextflow.config
#	nextflow/modules/talos/AnnotateMitoVcf/main.nf
#	nextflow_schema.json
#	preparation.nf
#	pyproject.toml
#	src/talos/cpg_internal_scripts/CPG_Dockerfile
#	src/talos/cpg_internal_scripts/cpgflow_jobs/annotate_mito.py
#	src/talos/create_talos_html.py
#	src/talos/download_panelapp.py
#	src/talos/example_config.toml
#	src/talos/liftover/lift_2_2_0_to_2_3_0.py
#	src/talos/models.py
#	src/talos/moi_tests.py
#	src/talos/templates/index.html.jinja
#	src/talos/validate_moi.py
#	src/talos/version.py
#	test/input/panelapp_current_137.json
#	test/test_panelapp_download.py
#	uv.lock
@MattWellie

Copy link
Copy Markdown
Collaborator Author

memo to self - I need to ping off some test runs now that this has been rebased (messy)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants