ga4gh / ga4gh/cat-vrs-python

Add warning if optional Sequence Location and Sequence Reference files are not populated

Open
#20 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.