Genome builds have no unified format
Describe the bug Currently genome builds have different "names"/"labels" in different APIs. For example:
https://reev.cubi.bihealth.org/internal/proxy/mehari/genes/txs?hgncId=HGNC:4806&genomeBuild=GENOME_BUILD_GRCH37&pageSize=1000
https://reev.cubi.bihealth.org/internal/proxy/mehari/seqvars/csq?genome_release=grch37&chromosome=6&position=24302274&reference=T&alternative=C
To Reproduce N/A
Expected behavior There should be one standard for genome builds across the mehari APIs.
Additional context N/A
Issue is that currently the type definition for the seqvar/structvar endpoints are defined in rust, whereas the tx endpoint is directly defined in protobuf.
All exposed API endpoints should be defined consistently. Putting query definitions in protobuf might have the nice effect for allowing non-http APIs, but might be less easy to use in rust.
Currently prost is used to interface with protobuf defined structures, whereas everything else uses serde. Both are unfortunately not compatible.
As a general design, moving everything i/o facing into protobuf might make sense.
Action plan
- define all request/response types for seqvar/structvar in protobuf
- coordinate change with tools depending on proper mehari server functionality (currently reev and varfish)
With utoipa, openAPI schema and corresponding new api/v1/…/ endpoints, the genes/txs endpoint is now api/v1/genes/transcripts and uses genome_build=grch37 instead of genomeBuild=GENOME_BUILD_GRCH37 as parameters.
However, it still says genome_build in contrast to genome_release used by the other endpoints.