Skip to content

Commit d5b99c5

Browse files
committed
pr suggestions
1 parent b933f8a commit d5b99c5

File tree

6 files changed

+8
-154
lines changed

6 files changed

+8
-154
lines changed

src/anyvlm/anyvar/base_client.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from collections.abc import Iterable, Sequence
55

66
from anyvar.utils.liftover_utils import ReferenceAssembly
7-
from anyvar.utils.types import VrsVariation
87
from ga4gh.vrs.models import Allele
98

109

@@ -23,7 +22,7 @@ class BaseAnyVarClient(abc.ABC):
2322
"""Interface elements for an AnyVar client"""
2423

2524
@abc.abstractmethod
26-
def get_registered_allele_expression(
25+
def get_registered_allele(
2726
self, expression: str, assembly: ReferenceAssembly = ReferenceAssembly.GRCH38
2827
) -> Allele | None:
2928
"""Retrieve registered VRS Allele for given allele expression
@@ -55,19 +54,6 @@ def put_allele_expressions(
5554
else `None`, for the i'th expression
5655
"""
5756

58-
@abc.abstractmethod
59-
def search_by_interval(
60-
self, accession: str, start: int, end: int
61-
) -> list[VrsVariation]:
62-
"""Get all variation IDs located within the specified range
63-
64-
:param accession: sequence accession
65-
:param start: start position for genomic region
66-
:param end: end position for genomic region
67-
:return: list of matching variant objects
68-
:raise AnyVarClientConnectionError: if connection is unsuccessful during search query
69-
"""
70-
7157
@abc.abstractmethod
7258
def close(self) -> None:
7359
"""Clean up AnyVar connection."""

src/anyvlm/anyvar/http_client.py

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import requests
88
from anyvar.utils.liftover_utils import ReferenceAssembly
9-
from anyvar.utils.types import VrsVariation
109
from ga4gh.vrs import VrsType, models
1110

1211
from anyvlm.anyvar.base_client import (
@@ -97,7 +96,7 @@ def _make_allele_expression_request(
9796
raise AnyVarClientError from e
9897
return response
9998

100-
def get_registered_allele_expression(
99+
def get_registered_allele(
101100
self, expression: str, assembly: ReferenceAssembly = ReferenceAssembly.GRCH38
102101
) -> models.Allele | None:
103102
"""Retrieve registered VRS Allele for given allele expression
@@ -146,31 +145,6 @@ def put_allele_expressions(
146145
results.append(response.json()["object_id"])
147146
return results
148147

149-
def search_by_interval(
150-
self, accession: str, start: int, end: int
151-
) -> list[VrsVariation]:
152-
"""Get all variation IDs located within the specified range
153-
154-
:param accession: sequence accession
155-
:param start: start position for genomic region
156-
:param end: end position for genomic region
157-
:return: list of matching variant objects
158-
:raise AnyVarClientError: if connection is unsuccessful during search query
159-
"""
160-
response = requests.get(
161-
f"{self.hostname}/search?accession={accession}&start={start}&end={end}",
162-
timeout=self.request_timeout,
163-
)
164-
try:
165-
response.raise_for_status()
166-
except requests.HTTPError as e:
167-
if response.json() == {
168-
"detail": "Unable to dereference provided accession ID"
169-
}:
170-
return []
171-
raise AnyVarClientError from e
172-
return [models.Allele(**v) for v in response.json()["variations"]]
173-
174148
def close(self) -> None:
175149
"""Clean up AnyVar connection.
176150

src/anyvlm/anyvar/python_client.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from anyvar.storage.base_storage import Storage
88
from anyvar.translate.translate import TranslationError, Translator
99
from anyvar.utils.liftover_utils import ReferenceAssembly
10-
from anyvar.utils.types import SupportedVariationType, VrsVariation
10+
from anyvar.utils.types import SupportedVariationType
1111
from ga4gh.vrs.dataproxy import DataProxyValidationError
1212
from ga4gh.vrs.models import Allele
1313

@@ -53,7 +53,7 @@ def _translate_allele_expression(
5353
_logger.exception("Failed to translate expression: %s", expression)
5454
return translated_variation # type: ignore
5555

56-
def get_registered_allele_expression(
56+
def get_registered_allele(
5757
self, expression: str, assembly: ReferenceAssembly = ReferenceAssembly.GRCH38
5858
) -> Allele | None:
5959
"""Retrieve registered VRS Allele for given allele expression
@@ -105,31 +105,6 @@ def put_allele_expressions(
105105
results.append(None)
106106
return results
107107

108-
def search_by_interval(
109-
self, accession: str, start: int, end: int
110-
) -> list[VrsVariation]:
111-
"""Get all variation IDs located within the specified range
112-
113-
:param accession: sequence accession
114-
:param start: start position for genomic region
115-
:param end: end position for genomic region
116-
:return: list of matching variant objects
117-
"""
118-
try:
119-
if accession.startswith("ga4gh:"):
120-
ga4gh_id = accession
121-
else:
122-
ga4gh_id = self.av.translator.get_sequence_id(accession)
123-
except KeyError:
124-
return []
125-
126-
alleles = []
127-
if ga4gh_id:
128-
refget_accession = ga4gh_id.split("ga4gh:")[-1]
129-
alleles = self.av.object_store.search_alleles(refget_accession, start, end)
130-
131-
return alleles # type: ignore[reportReturnType]
132-
133108
def close(self) -> None:
134109
"""Clean up AnyVar instance."""
135110
_logger.info("Closing AnyVar client.")

src/anyvlm/functions/get_caf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def get_caf(
5050
msg = "Unsupported assembly ID: {assembly_id}"
5151
raise ValueError(msg) from e
5252

53-
vrs_variation = anyvar_client.get_registered_allele_expression(gnomad_vcf, assembly)
53+
vrs_variation = anyvar_client.get_registered_allele(gnomad_vcf, assembly)
5454
if not vrs_variation:
5555
msg = f"Variant {assembly.value} {gnomad_vcf} is not registered in AnyVar"
5656
raise VariantNotRegisteredError(msg)

tests/unit/anyvar/test_clients.py

Lines changed: 2 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,7 @@ def test_get_registered_allele_expressions_unpopulated(
8282
if "vcf_expression" not in allele_fixture:
8383
continue
8484
assert (
85-
anyvar_client.get_registered_allele_expression(
86-
allele_fixture["vcf_expression"]
87-
)
85+
anyvar_client.get_registered_allele(allele_fixture["vcf_expression"])
8886
is None
8987
)
9088

@@ -98,7 +96,7 @@ def test_get_registered_allele_expressions_populated(
9896
for allele_fixture in alleles.values():
9997
if "vcf_expression" not in allele_fixture:
10098
continue
101-
assert anyvar_client.get_registered_allele_expression(
99+
assert anyvar_client.get_registered_allele(
102100
allele_fixture["vcf_expression"]
103101
) == models.Allele(**allele_fixture["variation"])
104102

@@ -129,76 +127,3 @@ def test_put_allele_expressions_handle_invalid(
129127
["Y-2781761-A-C", allele_fixture["vcf_expression"]]
130128
)
131129
assert results == [None, allele_fixture["variation"]["id"]]
132-
133-
134-
@pytest.mark.vcr
135-
@pytest.mark.parametrize("anyvar_client", POPULATED_CLIENTS, indirect=True)
136-
def test_search_by_interval(anyvar_client: BaseAnyVarClient, alleles: dict):
137-
"""Test `search_by_interval` for a couple of basic cases"""
138-
results = anyvar_client.search_by_interval(
139-
"ga4gh:SQ.8_liLu1aycC0tPQPFmUaGXJLDs5SbPZ5", 2781760, 2781760
140-
)
141-
assert sorted(results, key=lambda r: r.id) == [
142-
models.Allele(
143-
**alleles["ga4gh:VA.9VDxL0stMBOZwcTKw3yb3UoWQkpaI9OD"]["variation"]
144-
),
145-
models.Allele(
146-
**alleles["ga4gh:VA.R4kbmdsn5VldGrBiAaByO5N9zM3qCSFw"]["variation"]
147-
),
148-
]
149-
results = anyvar_client.search_by_interval(
150-
"ga4gh:SQ.8_liLu1aycC0tPQPFmUaGXJLDs5SbPZ5", 2781760, 2781768
151-
)
152-
assert sorted(results, key=lambda r: r.id) == [
153-
models.Allele(
154-
**alleles["ga4gh:VA.9VDxL0stMBOZwcTKw3yb3UoWQkpaI9OD"]["variation"]
155-
),
156-
models.Allele(
157-
**alleles["ga4gh:VA.R4kbmdsn5VldGrBiAaByO5N9zM3qCSFw"]["variation"]
158-
),
159-
models.Allele(
160-
**alleles["ga4gh:VA.yi7A2l0uIUMaInQaJnHU_B2Cf_OuZRJg"]["variation"]
161-
),
162-
]
163-
164-
165-
@pytest.mark.vcr
166-
@pytest.mark.parametrize("anyvar_client", POPULATED_CLIENTS, indirect=True)
167-
def test_search_by_interval_with_alias(anyvar_client: BaseAnyVarClient, alleles: dict):
168-
"""Test use of sequence alias"""
169-
results = anyvar_client.search_by_interval("GRCh38.p1:Y", 2781760, 2781760)
170-
assert sorted(results, key=lambda r: r.id) == [
171-
models.Allele(
172-
**alleles["ga4gh:VA.9VDxL0stMBOZwcTKw3yb3UoWQkpaI9OD"]["variation"]
173-
),
174-
models.Allele(
175-
**alleles["ga4gh:VA.R4kbmdsn5VldGrBiAaByO5N9zM3qCSFw"]["variation"]
176-
),
177-
]
178-
179-
180-
@pytest.mark.vcr
181-
@pytest.mark.parametrize("anyvar_client", POPULATED_CLIENTS, indirect=True)
182-
def test_search_by_interval_unknown_alias(anyvar_client: BaseAnyVarClient):
183-
"""Test handling response when sequence alias isn't recognized."""
184-
assert anyvar_client.search_by_interval("GRCh45.p1:Y", 2781760, 2781760) == []
185-
186-
187-
@pytest.mark.vcr
188-
@pytest.mark.parametrize("anyvar_client", POPULATED_CLIENTS, indirect=True)
189-
def test_search_by_interval_unknown_accession(anyvar_client: BaseAnyVarClient):
190-
"""Test handling response when accession ID isn't recognized"""
191-
results = anyvar_client.search_by_interval(
192-
"ga4gh:SQ.ZZZZZu1aycC0tPQPFmUaGXJLDs5SbPZ5", 2781760, 2781768
193-
)
194-
assert results == []
195-
196-
197-
@pytest.mark.vcr
198-
@pytest.mark.parametrize("anyvar_client", POPULATED_CLIENTS, indirect=True)
199-
def test_search_by_interval_not_found(anyvar_client: BaseAnyVarClient):
200-
"""Test handling response when no matching variants are found"""
201-
results = anyvar_client.search_by_interval(
202-
"ga4gh:SQ.8_liLu1aycC0tPQPFmUaGXJLDs5SbPZ5", 1, 100
203-
)
204-
assert results == []

tests/unit/functions/test_ingest_vcf.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import pytest
55
from anyvar.utils.liftover_utils import ReferenceAssembly
6-
from anyvar.utils.types import VrsVariation
76

87
from anyvlm.anyvar.base_client import BaseAnyVarClient
98
from anyvlm.functions.ingest_vcf import VcfAfColumnsError, ingest_vcf
@@ -44,7 +43,7 @@ def stub_anyvar_client():
4443
}
4544

4645
class TestAnyVarClient(BaseAnyVarClient):
47-
def get_registered_allele_expression(
46+
def get_registered_allele(
4847
self,
4948
expression: str,
5049
assembly: ReferenceAssembly = ReferenceAssembly.GRCH38,
@@ -61,11 +60,6 @@ def put_allele_expressions(
6160
for expr in expressions
6261
]
6362

64-
def search_by_interval(
65-
self, accession: str, start: int, end: int
66-
) -> list[VrsVariation]:
67-
raise NotImplementedError
68-
6963
def close(self) -> None:
7064
"""Clean up AnyVar connection."""
7165

0 commit comments

Comments
 (0)