You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add genomic fingerprint index for privacy-preserving duplicate detection
Summary
Add an optional genomic fingerprint index to vrs-matcher for privacy-preserving duplicate detection and fast candidate prefiltering.
This should complement the existing VRS allele-based matcher rather than replace it.
Background
vrs-matcher already supports:
VRS-annotated VCF ingestion
SQLite-backed sample allele indexing
Jaccard and genotype concordance scoring
Pluggable matcher algorithms
The current model answers:
How similar are two samples based on shared VRS allele identifiers?
A genomic fingerprint layer would answer:
Have we likely seen this individual before, without exposing the full genotype?
Motivation
For cohort deduplication, data release QC, and federated discovery, it is useful to identify likely duplicate samples before performing full VRS-set comparison.
This separation preserves the current matcher architecture while adding a practical privacy-preserving sample identity layer.
Potential implementations:
SHA256Fingerprinter
PPHFingerprinter
LSHFingerprinter
MinHashFingerprinter
flowchart TD
A[VCF / BCF input] --> B[VRS-annotated sample ingestion]
A --> C[Fingerprint panel extraction]
B --> D[(sample_allele SQLite table)]
D --> E[VRS allele matcher]
E --> F[Jaccard similarity]
E --> G[Weighted genotype concordance]
C --> H[Canonical SNP genotype vector]
H --> I[Fingerprint algorithm]
I --> J[(sample_fingerprint SQLite table)]
J --> K[Duplicate search]
J --> L[Candidate prefiltering]
K --> M[Likely duplicate samples]
L --> E
E --> N[Final ranked sample matches]
subgraph Existing vrs-matcher
B
D
E
F
G
end
subgraph Proposed fingerprint extension
C
H
I
J
K
L
end
See ga4gh connect slides
Issue Title
Add genomic fingerprint index for privacy-preserving duplicate detection
Summary
Add an optional genomic fingerprint index to
vrs-matcherfor privacy-preserving duplicate detection and fast candidate prefiltering.This should complement the existing VRS allele-based matcher rather than replace it.
Background
vrs-matcheralready supports:The current model answers:
A genomic fingerprint layer would answer:
Motivation
For cohort deduplication, data release QC, and federated discovery, it is useful to identify likely duplicate samples before performing full VRS-set comparison.
A fixed SNP fingerprint panel could provide:
Proposed Design
Add a new optional fingerprint subsystem:
Suggested schema:
Suggested CLI
Initial Scope
Phase 1 should implement exact fingerprints only:
Approximate or property-preserving hashing should remain future work.
Future Work
Acceptance Criteria
sample_fingerprinttableexamples/example-cohort.vcfDesign Note
The fingerprint layer should remain orthogonal to the existing VRS matcher.
This separation preserves the current matcher architecture while adding a practical privacy-preserving sample identity layer.
Potential implementations:
flowchart TD A[VCF / BCF input] --> B[VRS-annotated sample ingestion] A --> C[Fingerprint panel extraction] B --> D[(sample_allele SQLite table)] D --> E[VRS allele matcher] E --> F[Jaccard similarity] E --> G[Weighted genotype concordance] C --> H[Canonical SNP genotype vector] H --> I[Fingerprint algorithm] I --> J[(sample_fingerprint SQLite table)] J --> K[Duplicate search] J --> L[Candidate prefiltering] K --> M[Likely duplicate samples] L --> E E --> N[Final ranked sample matches] subgraph Existing vrs-matcher B D E F G end subgraph Proposed fingerprint extension C H I J K L end