Add warning if optional Sequence Location and Sequence Reference files are not populated
- Dominant language
- Python
- Stars
- 2
- Forks
- 5
- Avg merge
- 21m
- Merged PRs (30d)
- 1
Description
### Feature description
Could we update cat-vrs-python to produce warnings if a cat-vrs object does not have the following [Sequence Location](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceLocation.html) and [Sequence Reference](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceReference.html) fields populated when validating cat-vrs objects?
Within a [Sequence Location](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceLocation.html):
- start
- end
- sequence
Within [Sequence Reference](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceReference.html):
- id
- name
### Use case
We would like to encourage implementers to populate these field / attributes within their cat-vrs/vrs objects, and adding a warning from the reference implementation(s) is a gentle way to suggest them to do so. Because they are optional attributes within for [Sequence Location](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceLocation.html) and [Sequence Reference](https://vrs.ga4gh.org/en/stable/concepts/LocationAndReference/SequenceReference.html), sometimes implementations and tools will only include the hashes, reducing the utility of the cat-vrs/vrs objects.
@rhdolin [opened an Issue](https://github.com/ga4gh/cat-vrs/issues/144) where he emphasizing the importance of having these location and reference attributes populated within cat-vrs / vrs objects to facilitate matching and searching across categorical variants via location. At [today's meeting](https://docs.google.com/document/d/1oI4ir4OzXFvhZNbMVEX-RHGAQ-d2K4lAKP-7lf-uzPc/edit?tab=t.0#heading=h.1tr26qkxe73) he shared a [really nice illustration](https://docs.google.com/presentation/d/1ItSpq-33zPzN8g1azb8rmmRSZVhZ0Tms_HG1YQH1IAM/edit?slide=id.g3571014ecef_0_0#slide=id.g3571014ecef_0_0) going over their use case. @cmprocknow also added that they are trying to do something similar at EPIC, and are facing similar limitations of receiving _only_ hashed ids from some datasources.
For example, while the [variant normalizer](https://github.com/cancervariants/variation-normalization) produces `start`, `end`, and `sequence` for the location object, it only produces the `refgetAccession` for `sequenceReference`. @korikuzma explained to me a bit ago that this could be resolved by updating [seqrepo](https://github.com/biocommons/biocommons.seqrepo), if my memory is serving me correctly.
### Proposed solution
I _think_ that this would be addressed by adding a function to the DefiningAlleleConstraint and DefiningLocationConstraint classes within [cat-vrs/src/ga4gh/cat-vrs/python](https://github.com/ga4gh/cat-vrs-python/blob/main/src/ga4gh/cat_vrs/models.py#L46-L62) that checks if these fields are populated?
I'm not sure of the interplay between vrs-python and cat-vrs-python, but this may be more appropriate to put in the vrs-python repository.
### Alternatives considered
_No response_
### Implementation details
_No response_
### Potential Impact
_No response_
### Additional context
_No response_
### Contribution
None
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.