Harmonise identifier (e.g. RNAME/Contig, Sample) rules across formats and protocols
- 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