ga4gh / ga4gh/TASC

Harmonise identifier (e.g. RNAME/Contig, Sample) rules across formats and protocols

Open
#5 13 comments 2 reactions 0 assignees View on GitHub
picked TASC-athon
Dominant language
No language data
Stars
12
Forks
9
Avg merge
1m
Merged PRs (30d)
1

Description

There are a number of short identifier-sized pieces of metadata that are used across many GA4GH products. For example:

* Reference sequence names

In SAM/BAM/CRAM, this is the `@SQ-SN` header field and `RNAME`/`RNEXT`/etc fields.
In VCF/BCF, it's the `##contig` `ID`.
In htsget, it's `referenceName`.
In refget, it may be returned as an `alias`.

* Sample identifiers

In SAM/BAM/CRAM, this is the `@RG-SM` header field.
In VCF/BCF, it's the `##SAMPLE` `ID` and it also appears on the `#CHROM` header line.
In htsget, it forms the bulk of the `path` part of request URLs, and there is a proposal to encode samples in the `query` part as well (samtools/hts-specs#430).
In Phenopackets, it's a [Biosample](https://phenopackets-schema.readthedocs.io/en/latest/biosample.html)'s `id` field.

These items of metadata are embedded within the surrounding text using various delimiters in these various formats and protocols. So there are various restrictions on what characters may appear in them so as to avoid conflicting with the delimiter characters or otherwise requiring complicated escaping or encoding mechanisms. It would be good to harmonise these restrictions across GA4GH products, so that a value that was e.g. a valid Sample identifier in one product could be assumed to also be valid in other products.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing identifier rules in SAM/BAM/CRAM, VCF/BCF, htsget, refget, and Phenopackets, including the referenced hts-specs#430 proposal. Done means producing an agreed cross-product set of character restrictions that avoids delimiter conflicts and can be applied consistently across the listed formats and protocols.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.