From 8d2368532c11ba3fcfd48322cf955a430a89c460 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Tue, 6 Feb 2024 19:14:30 -0500 Subject: [PATCH 01/21] move digest from VO to GA4GH identifiable --- src/ga4gh/vrs/_internal/models.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 6a8767b5..6f1dc672 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -162,25 +162,26 @@ class CopyChange(Enum): class _ValueObject(_Entity): - """A contextual value whose equality is based on value, not identity. All VRS Value - Objects may have computed digests from the VRS Computed Identifier algorithm. + """A contextual value whose equality is based on value, not identity. See https://en.wikipedia.org/wiki/Value_object for more on Value Objects. """ - digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( - None, - description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', - ) - class ga4gh: keys: List[str] class _Ga4ghIdentifiableObject(_ValueObject): - """A contextual value object for which a GA4GH computed identifier can be created.""" + """A contextual value object for which a GA4GH computed identifier can be created. + All GA4GH Identifiable Objects may have computed digests from the VRS Computed + Identifier algorithm.""" type: str + digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( + None, + description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', + ) + class ga4gh(_ValueObject.ga4gh): prefix: str From c63af5944bef14ec82b64c90d6a0f43c42911eb1 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Wed, 7 Feb 2024 00:43:05 -0500 Subject: [PATCH 02/21] add ga4gh serialize to models --- notebooks/scratch.ipynb | 140 ++++++++++++++++++++++++++++++ src/ga4gh/vrs/_internal/models.py | 49 +++++++++-- 2 files changed, 180 insertions(+), 9 deletions(-) create mode 100644 notebooks/scratch.ipynb diff --git a/notebooks/scratch.ipynb b/notebooks/scratch.ipynb new file mode 100644 index 00000000..40b29c26 --- /dev/null +++ b/notebooks/scratch.ipynb @@ -0,0 +1,140 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "initial_id", + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2024-02-07T05:41:09.629662Z", + "start_time": "2024-02-07T05:41:09.405176Z" + } + }, + "outputs": [], + "source": [ + "from ga4gh.vrs import models" + ] + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "allele_dict = {\n", + " 'location': {\n", + " 'end': 55181320,\n", + " 'start': 55181319,\n", + " 'sequenceReference': {\n", + " 'type': 'SequenceReference',\n", + " 'refgetAccession': 'SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul'\n", + " },\n", + " 'type': 'SequenceLocation'\n", + " },\n", + " 'state': {\n", + " 'sequence': 'T',\n", + " 'type': 'LiteralSequenceExpression'\n", + " },\n", + " 'type': 'Allele'\n", + "}\n", + "\n", + "a = models.Allele(**allele_dict)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-07T05:41:09.633831Z", + "start_time": "2024-02-07T05:41:09.630756Z" + } + }, + "id": "68f5f7e40bf74d70", + "execution_count": 2 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "'{\"location\":\"DWRi1Ab5Ln4MBC_At_WNdbIhbuZS9JhK\",\"state\":{\"sequence\":\"T\",\"type\":\"LiteralSequenceExpression\"},\"type\":\"Allele\"}'" + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a.model_dump_json()" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-07T05:41:09.637741Z", + "start_time": "2024-02-07T05:41:09.634843Z" + } + }, + "id": "c11e134c85f2dec9", + "execution_count": 3 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "from ga4gh.core import sha512t24u" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-07T05:41:09.642291Z", + "start_time": "2024-02-07T05:41:09.638042Z" + } + }, + "id": "10c897059bc7e609", + "execution_count": 4 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXc'" + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sha512t24u(\"\".encode('utf-8'))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-07T05:41:09.651586Z", + "start_time": "2024-02-07T05:41:09.642483Z" + } + }, + "id": "423a2c564c6bbbac", + "execution_count": 5 + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 6f1dc672..11c0f3e8 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -18,12 +18,15 @@ """ from typing import List, Literal, Optional, Union +from functools import cached_property from enum import Enum import inspect import sys import typing +from typing import Dict +from ga4gh.core import sha512t24u -from pydantic import BaseModel, ConfigDict, Field, RootModel, constr +from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer, computed_field from ga4gh.core._internal.pydantic import ( is_ga4gh_identifiable, @@ -161,11 +164,34 @@ class CopyChange(Enum): EFO_0030072 = 'efo:0030072' +def _recurse_ga4gh_serialize(obj): + if isinstance(obj, _Ga4ghIdentifiableObject): + return obj.digest + elif isinstance(obj, _ValueObject): + return obj.ga4gh_serialize() + elif isinstance(obj, RootModel): + return obj.model_dump() + elif isinstance(obj, str): + return obj + elif isinstance(obj, list): + return [_recurse_ga4gh_serialize(x) for x in obj] + else: + return obj + + class _ValueObject(_Entity): """A contextual value whose equality is based on value, not identity. See https://en.wikipedia.org/wiki/Value_object for more on Value Objects. """ + @model_serializer(when_used='json') + def ga4gh_serialize(self) -> Dict: + out = dict() + for k in self.ga4gh.keys: # assumes ga4gh.keys are lexicographically sorted TODO: test models for this + v = getattr(self, k) + out[k] = _recurse_ga4gh_serialize(v) + return out + class ga4gh: keys: List[str] @@ -177,10 +203,16 @@ class _Ga4ghIdentifiableObject(_ValueObject): type: str - digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( - None, - description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', - ) + @computed_field(repr=True) + @property + def digest(self) -> str: + """A sha512t24u digest created using the VRS Computed Identifier algorithm.""" + return sha512t24u(self.model_dump_json().encode("utf-8")) + + # digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( + # None, + # description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', + # ) class ga4gh(_ValueObject.ga4gh): prefix: str @@ -242,10 +274,9 @@ class SequenceReference(_ValueObject): residueAlphabet: Optional[ResidueAlphabet] = None class ga4gh(_ValueObject.ga4gh): - assigned: bool = Field( - True, - description='This special property indicates that the `digest` field follows an alternate convention and is expected to have the value assigned following that convention. For SequenceReference, it is expected the digest will be the refget accession value without the `SQ.` prefix.' - ) + keys = [ + 'refgetAccession' + ] class ReferenceLengthExpression(_ValueObject): From c2436f8888ac2fc30feb6d2b362bb55b8e6a9dd0 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Wed, 7 Feb 2024 08:40:15 -0500 Subject: [PATCH 03/21] remove computed field and add get_or_create --- src/ga4gh/vrs/_internal/models.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 11c0f3e8..67ad553a 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -166,7 +166,7 @@ class CopyChange(Enum): def _recurse_ga4gh_serialize(obj): if isinstance(obj, _Ga4ghIdentifiableObject): - return obj.digest + return obj.get_or_create_digest() elif isinstance(obj, _ValueObject): return obj.ga4gh_serialize() elif isinstance(obj, RootModel): @@ -203,16 +203,21 @@ class _Ga4ghIdentifiableObject(_ValueObject): type: str - @computed_field(repr=True) - @property - def digest(self) -> str: + digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( + None, + description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', + ) + + def compute_digest(self) -> str: """A sha512t24u digest created using the VRS Computed Identifier algorithm.""" return sha512t24u(self.model_dump_json().encode("utf-8")) - # digest: Optional[constr(pattern=r'^[0-9A-Za-z_\-]{32}$')] = Field( - # None, - # description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', - # ) + def get_or_create_digest(self) -> str: + """Returns a sha512t24u digest of the GA4GH Identifiable Object, or creates + the digest if it does not exist.""" + if self.digest is None: + self.digest = self.compute_digest() + return self.digest class ga4gh(_ValueObject.ga4gh): prefix: str @@ -275,7 +280,8 @@ class SequenceReference(_ValueObject): class ga4gh(_ValueObject.ga4gh): keys = [ - 'refgetAccession' + 'refgetAccession', + 'type' ] From 89e256c3d4c35823eae2edf7f8a0ab03861fd98c Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Fri, 9 Feb 2024 21:35:01 -0500 Subject: [PATCH 04/21] attribute ordering fixes --- notebooks/scratch.ipynb | 265 ++++++++++++++++++++++++++++-- src/ga4gh/vrs/_internal/models.py | 26 ++- 2 files changed, 267 insertions(+), 24 deletions(-) diff --git a/notebooks/scratch.ipynb b/notebooks/scratch.ipynb index 40b29c26..773893be 100644 --- a/notebooks/scratch.ipynb +++ b/notebooks/scratch.ipynb @@ -7,13 +7,15 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-02-07T05:41:09.629662Z", - "start_time": "2024-02-07T05:41:09.405176Z" + "end_time": "2024-02-10T02:30:23.497419Z", + "start_time": "2024-02-10T02:30:23.276925Z" } }, "outputs": [], "source": [ - "from ga4gh.vrs import models" + "import ga4gh.core\n", + "from ga4gh.vrs import models\n", + "from ga4gh.core import sha512t24u" ] }, { @@ -42,8 +44,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-07T05:41:09.633831Z", - "start_time": "2024-02-07T05:41:09.630756Z" + "end_time": "2024-02-10T02:30:23.500879Z", + "start_time": "2024-02-10T02:30:23.499368Z" } }, "id": "68f5f7e40bf74d70", @@ -54,7 +56,7 @@ "outputs": [ { "data": { - "text/plain": "'{\"location\":\"DWRi1Ab5Ln4MBC_At_WNdbIhbuZS9JhK\",\"state\":{\"sequence\":\"T\",\"type\":\"LiteralSequenceExpression\"},\"type\":\"Allele\"}'" + "text/plain": "'{\"location\":\"_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd\",\"state\":{\"sequence\":\"T\",\"type\":\"LiteralSequenceExpression\"},\"type\":\"Allele\"}'" }, "execution_count": 3, "metadata": {}, @@ -67,8 +69,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-07T05:41:09.637741Z", - "start_time": "2024-02-07T05:41:09.634843Z" + "end_time": "2024-02-10T02:30:23.506840Z", + "start_time": "2024-02-10T02:30:23.503032Z" } }, "id": "c11e134c85f2dec9", @@ -76,18 +78,27 @@ }, { "cell_type": "code", - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": "'{\"end\":55181320,\"sequenceReference\":{\"refgetAccession\":\"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\"type\":\"SequenceReference\"},\"start\":55181319,\"type\":\"SequenceLocation\"}'" + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from ga4gh.core import sha512t24u" + "a.location.model_dump_json()" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-07T05:41:09.642291Z", - "start_time": "2024-02-07T05:41:09.638042Z" + "end_time": "2024-02-10T02:30:23.510500Z", + "start_time": "2024-02-10T02:30:23.505815Z" } }, - "id": "10c897059bc7e609", + "id": "4bfa27852c9b7a76", "execution_count": 4 }, { @@ -108,12 +119,234 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-07T05:41:09.651586Z", - "start_time": "2024-02-07T05:41:09.642483Z" + "end_time": "2024-02-10T02:30:23.513668Z", + "start_time": "2024-02-10T02:30:23.511053Z" } }, - "id": "423a2c564c6bbbac", + "id": "5f08dedc3934e14b", "execution_count": 5 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "'_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd'" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sha512t24u(a.location.model_dump_json().encode('utf-8'))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.517233Z", + "start_time": "2024-02-10T02:30:23.513889Z" + } + }, + "id": "c9c14a13621fb43d", + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "## Schema testing" + ], + "metadata": { + "collapsed": false + }, + "id": "f9a767f43f069776" + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "from ga4gh.vrs import models" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.546107Z", + "start_time": "2024-02-10T02:30:23.516647Z" + } + }, + "id": "b9e5d4e04237c06a", + "execution_count": 7 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "{'description',\n 'digest',\n 'end',\n 'extensions',\n 'id',\n 'label',\n 'sequenceReference',\n 'start',\n 'type'}" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "set(models.SequenceLocation.__fields__)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.546997Z", + "start_time": "2024-02-10T02:30:23.518956Z" + } + }, + "id": "6510c36a000679d7", + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + }, + "id": "a2b1e02eacde4415" + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "ga4gh.vrs._internal.models.SequenceLocation" + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "getattr(models, 'SequenceLocation', False)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.548109Z", + "start_time": "2024-02-10T02:30:23.522154Z" + } + }, + "id": "e173a0f8790b12e4", + "execution_count": 9 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "from pathlib import Path\n", + "import os\n", + "import yaml" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.549308Z", + "start_time": "2024-02-10T02:30:23.525337Z" + } + }, + "id": "5aa91c0c9c69658d", + "execution_count": 10 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "ROOT_DIR = Path(os.getcwd()).parent\n", + "VRS_SCHEMA_DIR = ROOT_DIR / 'submodules' / 'vrs' / 'schema'" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.570483Z", + "start_time": "2024-02-10T02:30:23.538853Z" + } + }, + "id": "bed8be3045afc562", + "execution_count": 11 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "\n", + "concrete_class_names = list()\n", + "with open(VRS_SCHEMA_DIR / 'vrs.yaml') as vrs_yaml:\n", + " vrs_schema = yaml.safe_load(vrs_yaml)\n" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.580132Z", + "start_time": "2024-02-10T02:30:23.543705Z" + } + }, + "id": "33d925353737ae55", + "execution_count": 12 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "for vrs_class in vrs_schema['$defs']:\n", + " if 'properties' in vrs_schema['$defs'][vrs_class].keys():\n", + " concrete_class_names.append(vrs_class)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.580532Z", + "start_time": "2024-02-10T02:30:23.577934Z" + } + }, + "id": "32981ef7ab235120", + "execution_count": 13 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "ga4gh.vrs._internal.models.Allele" + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "getattr(models, 'Allele')" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.585902Z", + "start_time": "2024-02-10T02:30:23.583168Z" + } + }, + "id": "85434dae68309a1e", + "execution_count": 14 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "p = getattr(models, 'LengthExpression')" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T02:30:23.591624Z", + "start_time": "2024-02-10T02:30:23.584775Z" + } + }, + "id": "a22bce22cb23ec2", + "execution_count": 15 } ], "metadata": { diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 67ad553a..a7d1b4c1 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -17,13 +17,12 @@ V2 pydantic: datamodel-codegen --input submodules/vrs/schema/merged.json --input-file-type jsonschema --output models.py --output-model-type pydantic_v2.BaseModel --allow-extra-fields """ -from typing import List, Literal, Optional, Union -from functools import cached_property +from typing import List, Literal, Optional, Union, Dict +from collections import OrderedDict from enum import Enum import inspect import sys import typing -from typing import Dict from ga4gh.core import sha512t24u from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer, computed_field @@ -173,6 +172,17 @@ def _recurse_ga4gh_serialize(obj): return obj.model_dump() elif isinstance(obj, str): return obj + # # This is code that may be used to handle unordered lists (sets) as defined + # # by VRS. This functionality will be needed for Haplotype if we return to ordered: false. + # # No attempt is made to order arrays of strings containing objects. That will need + # # to be addressed before implementing the non-identifiable GenotypeMember class. + # elif isinstance(obj, set): + # out = [_recurse_ga4gh_serialize(x) for x in list(obj)] + # if all(isinstance(x, str) for x in out): + # return sorted(out) + # else: + # return out + # # elif isinstance(obj, list): return [_recurse_ga4gh_serialize(x) for x in obj] else: @@ -186,8 +196,8 @@ class _ValueObject(_Entity): @model_serializer(when_used='json') def ga4gh_serialize(self) -> Dict: - out = dict() - for k in self.ga4gh.keys: # assumes ga4gh.keys are lexicographically sorted TODO: test models for this + out = OrderedDict() + for k in self.ga4gh.keys: v = getattr(self, k) out[k] = _recurse_ga4gh_serialize(v) return out @@ -343,10 +353,10 @@ class SequenceLocation(_Ga4ghIdentifiableObject): class ga4gh(_Ga4ghIdentifiableObject.ga4gh): prefix = 'SL' keys = [ - 'type', - 'start', 'end', - 'sequenceReference' + 'sequenceReference', + 'start', + 'type' ] From 6b789a2b9085f13a1850d70c69438873f4bb8b70 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Fri, 9 Feb 2024 21:35:43 -0500 Subject: [PATCH 05/21] add tests for schema to pydantic matching --- src/ga4gh/vrs/_internal/models.py | 115 ++++++++++++++++------------ tests/validation/test_vrs_schema.py | 61 +++++++++++++++ 2 files changed, 127 insertions(+), 49 deletions(-) create mode 100644 tests/validation/test_vrs_schema.py diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index a7d1b4c1..5e87bab0 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -295,20 +295,37 @@ class ga4gh(_ValueObject.ga4gh): ] +class LengthExpression(_ValueObject): + """An expression of a DNA, RNA, or protein polymer of known length but unspecified sequence.""" + + type: Literal['ReferenceLengthExpression'] = Field( + 'ReferenceLengthExpression', description='MUST be "ReferenceLengthExpression"' + ) + length: Union[Range, int] = Field( + ..., description='The number of residues of the expressed sequence.' + ) + + class ga4gh(_ValueObject.ga4gh): + keys = [ + 'length', + 'type' + ] + + class ReferenceLengthExpression(_ValueObject): - """An expression of a length of a sequence from a repeating reference.""" + """An expression sequence derived from a reference.""" type: Literal['ReferenceLengthExpression'] = Field( 'ReferenceLengthExpression', description='MUST be "ReferenceLengthExpression"' ) length: Union[Range, int] = Field( - ..., description='The number of residues in the expressed sequence.' + ..., description='The number of residues of the expressed sequence.' ) sequence: Optional[SequenceString] = Field( None, description='the Sequence encoded by the Reference Length Expression.' ) repeatSubunitLength: int = Field( - None, description='The number of residues in the repeat subunit.' + None, description='The number of residues of the repeat subunit.' ) class ga4gh(_ValueObject.ga4gh): @@ -455,25 +472,25 @@ class ga4gh(_Ga4ghIdentifiableObject.ga4gh): ] -class GenotypeMember(_ValueObject): - """A class for expressing the count of a specific `MolecularVariation` present - in-trans at a genomic locus represented by a `Genotype`. - """ - - type: Literal['GenotypeMember'] = Field('GenotypeMember', description='MUST be "GenotypeMember".') - count: Union[Range, int] = Field( - ..., description='The number of copies of the `variation` at a Genotype locus.' - ) - variation: Union[Allele, Haplotype] = Field( - ..., description='A MolecularVariation at a Genotype locus.' - ) - - class ga4gh(_Ga4ghIdentifiableObject.ga4gh): - keys = [ - 'type', - 'count', - 'variation' - ] +# class GenotypeMember(_ValueObject): +# """A class for expressing the count of a specific `MolecularVariation` present +# in-trans at a genomic locus represented by a `Genotype`. +# """ +# +# type: Literal['GenotypeMember'] = Field('GenotypeMember', description='MUST be "GenotypeMember".') +# count: Union[Range, int] = Field( +# ..., description='The number of copies of the `variation` at a Genotype locus.' +# ) +# variation: Union[Allele, Haplotype] = Field( +# ..., description='A MolecularVariation at a Genotype locus.' +# ) +# +# class ga4gh(_Ga4ghIdentifiableObject.ga4gh): +# keys = [ +# 'type', +# 'count', +# 'variation' +# ] class MolecularVariation(RootModel): @@ -488,31 +505,31 @@ class MolecularVariation(RootModel): ) -class Genotype(_VariationBase): - """A quantified set of _in-trans_ `MolecularVariation` at a genomic locus.""" - - type: Literal['Genotype'] = Field( - 'Genotype', - description='MUST be "Genotype"' - ) - # TODO members temporarily typed as List instead of Set + validate unique items - members: List[GenotypeMember] = Field( - ..., - description='Each GenotypeMember in `members` describes a MolecularVariation and the count of that variation at the locus.', - min_length=1, - ) - count: Union[Range, int] = Field( - ..., - description='The total number of copies of all MolecularVariation at this locus, MUST be greater than or equal to the sum of GenotypeMember copy counts. If greater than the total counts, this implies additional MolecularVariation that are expected to exist but are not explicitly indicated.', - ) - - class ga4gh(_Ga4ghIdentifiableObject.ga4gh): - prefix = 'GT' - keys = [ - 'count', - 'members', - 'type' - ] +# class Genotype(_VariationBase): +# """A quantified set of _in-trans_ `MolecularVariation` at a genomic locus.""" +# +# type: Literal['Genotype'] = Field( +# 'Genotype', +# description='MUST be "Genotype"' +# ) +# # TODO members temporarily typed as List instead of Set + validate unique items +# members: List[GenotypeMember] = Field( +# ..., +# description='Each GenotypeMember in `members` describes a MolecularVariation and the count of that variation at the locus.', +# min_length=1, +# ) +# count: Union[Range, int] = Field( +# ..., +# description='The total number of copies of all MolecularVariation at this locus, MUST be greater than or equal to the sum of GenotypeMember copy counts. If greater than the total counts, this implies additional MolecularVariation that are expected to exist but are not explicitly indicated.', +# ) +# +# class ga4gh(_Ga4ghIdentifiableObject.ga4gh): +# prefix = 'GT' +# keys = [ +# 'count', +# 'members', +# 'type' +# ] class SequenceExpression(RootModel): @@ -534,7 +551,7 @@ class Location(RootModel): class Variation(RootModel): - root: Union[Allele, CopyNumberChange, CopyNumberCount, Genotype, Haplotype] = Field( + root: Union[Allele, CopyNumberChange, CopyNumberCount, Haplotype] = Field( ..., json_schema_extra={ 'description': 'A representation of the state of one or more biomolecules.' @@ -548,7 +565,7 @@ class SystemicVariation(RootModel): sample, or homologous chromosomes. """ - root: Union[CopyNumberChange, CopyNumberCount, Genotype] = Field( + root: Union[CopyNumberChange, CopyNumberCount] = Field( ..., json_schema_extra={ 'description': 'A Variation of multiple molecules in the context of a system, e.g. a genome, sample, or homologous chromosomes.' diff --git a/tests/validation/test_vrs_schema.py b/tests/validation/test_vrs_schema.py new file mode 100644 index 00000000..68035c7d --- /dev/null +++ b/tests/validation/test_vrs_schema.py @@ -0,0 +1,61 @@ +"""test that VRS Python model structures match VRS Schema +""" +import yaml +from pathlib import Path +from ga4gh.vrs import models + +ROOT_DIR = Path(__file__).parents[2] +VRS_SCHEMA_DIR = ROOT_DIR / 'submodules' / 'vrs' / 'schema' + +with open(VRS_SCHEMA_DIR / 'vrs.yaml') as vrs_yaml: + VRS_SCHEMA = yaml.safe_load(vrs_yaml) + +VRS_CONCRETE_CLASSES = set() +VRS_PRIMITIVES = set() + +for vrs_class in VRS_SCHEMA['$defs']: + cls_def = VRS_SCHEMA['$defs'][vrs_class] + if 'properties' in cls_def: + VRS_CONCRETE_CLASSES.add(vrs_class) + elif cls_def.get('type') in ['array', 'int', 'str']: + VRS_PRIMITIVES.add(vrs_class) + +NOT_IMPLEMENTED = ['Adjacency', 'Haplotype'] # Use this to skip testing of not-implemented classes + # TODO: Remove this once 2.0 models at beta + + +def test_schema_models_exist(): + """test that VRS Python covers the models defined by VRS + """ + for vrs_class in VRS_CONCRETE_CLASSES | VRS_PRIMITIVES: + if vrs_class in NOT_IMPLEMENTED: + continue + assert getattr(models, vrs_class, False) + + +def test_schema_class_fields_are_valid(): + """test that VRS Python model fields match the VRS specification + """ + for vrs_class in VRS_CONCRETE_CLASSES: + if vrs_class in NOT_IMPLEMENTED: + continue + schema_fields = set(VRS_SCHEMA['$defs'][vrs_class]['properties']) + pydantic_model = getattr(models, vrs_class) + assert set(pydantic_model.__fields__) == schema_fields, vrs_class + + +def test_model_keys_are_valid(): + """test that digest keys on Value Objects are valid and sorted + """ + for vrs_class in VRS_CONCRETE_CLASSES: + if vrs_class in NOT_IMPLEMENTED: + continue + if VRS_SCHEMA['$defs'][vrs_class].get('ga4ghDigest', {}).get('keys', None) is None: + continue + pydantic_model = getattr(models, vrs_class) + try: + pydantic_model_digest_keys = pydantic_model.ga4gh.keys + except AttributeError: + raise AttributeError(vrs_class) + assert set(pydantic_model_digest_keys) == set(VRS_SCHEMA['$defs'][vrs_class]['ga4ghDigest']['keys']), vrs_class + assert pydantic_model_digest_keys == sorted(pydantic_model.ga4gh.keys), vrs_class From a173cf477ded02ecd5d42281286dc1b30904bfce Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Fri, 9 Feb 2024 21:59:05 -0500 Subject: [PATCH 06/21] update is_identifiable --- src/ga4gh/core/_internal/pydantic.py | 7 +++---- src/ga4gh/vrs/_internal/models.py | 10 +++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/ga4gh/core/_internal/pydantic.py b/src/ga4gh/core/_internal/pydantic.py index 85e70192..ca3f53c2 100644 --- a/src/ga4gh/core/_internal/pydantic.py +++ b/src/ga4gh/core/_internal/pydantic.py @@ -23,13 +23,12 @@ def getattr_in(obj, names) -> Any: def is_ga4gh_identifiable(o: Any) -> bool: """ - Determine if object is GA4GH identifiable. An object is considered - GA4GH identifiable if it contains a `ga4gh_prefix` attribute + Determine if object is a GA4GH identifiable type. :param o: Object - :return: `True` if `o` has `ga4gh_prefix` attribute. `False` otherwise. + :return: `True` if `o` is a GA4GH Identifiable Object. `False` otherwise. """ - return bool(getattr_in(o, ['ga4gh', 'prefix'])) + return o.is_identifiable() def is_literal(o: Any) -> bool: diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 5e87bab0..9d053797 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -25,7 +25,7 @@ import typing from ga4gh.core import sha512t24u -from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer, computed_field +from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer from ga4gh.core._internal.pydantic import ( is_ga4gh_identifiable, @@ -205,6 +205,10 @@ def ga4gh_serialize(self) -> Dict: class ga4gh: keys: List[str] + @staticmethod + def is_identifiable(): + return False + class _Ga4ghIdentifiableObject(_ValueObject): """A contextual value object for which a GA4GH computed identifier can be created. @@ -218,6 +222,10 @@ class _Ga4ghIdentifiableObject(_ValueObject): description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', ) + @staticmethod + def is_identifiable(): + return True + def compute_digest(self) -> str: """A sha512t24u digest created using the VRS Computed Identifier algorithm.""" return sha512t24u(self.model_dump_json().encode("utf-8")) From 5e38b61477202e943b47e3dbcd8929b543afbc42 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Sat, 10 Feb 2024 00:23:38 -0500 Subject: [PATCH 07/21] update model validations --- submodules/vrs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/vrs b/submodules/vrs index 86067b81..4e7ed112 160000 --- a/submodules/vrs +++ b/submodules/vrs @@ -1 +1 @@ -Subproject commit 86067b81f5c096bbf80b22040ec84eede8ac4138 +Subproject commit 4e7ed11275487c981d936950ad91e98c92b794fb From 9ccef4bbdc6f776bccb469e52510a0d5b33d9861 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Sat, 10 Feb 2024 00:27:49 -0500 Subject: [PATCH 08/21] refactor identifier code --- notebooks/scratch.ipynb | 75 +++++++------- src/ga4gh/core/__init__.py | 3 +- src/ga4gh/core/_internal/identifiers.py | 129 ++++-------------------- src/ga4gh/core/_internal/models.py | 4 + src/ga4gh/core/_internal/pydantic.py | 2 +- src/ga4gh/vrs/_internal/models.py | 73 +++++++++----- tests/validation/test_models.py | 2 +- 7 files changed, 112 insertions(+), 176 deletions(-) diff --git a/notebooks/scratch.ipynb b/notebooks/scratch.ipynb index 773893be..1a237865 100644 --- a/notebooks/scratch.ipynb +++ b/notebooks/scratch.ipynb @@ -7,8 +7,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.497419Z", - "start_time": "2024-02-10T02:30:23.276925Z" + "end_time": "2024-02-10T05:14:05.439750Z", + "start_time": "2024-02-10T05:14:05.237545Z" } }, "outputs": [], @@ -44,8 +44,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.500879Z", - "start_time": "2024-02-10T02:30:23.499368Z" + "end_time": "2024-02-10T05:14:05.443194Z", + "start_time": "2024-02-10T05:14:05.441078Z" } }, "id": "68f5f7e40bf74d70", @@ -69,8 +69,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.506840Z", - "start_time": "2024-02-10T02:30:23.503032Z" + "end_time": "2024-02-10T05:14:05.448917Z", + "start_time": "2024-02-10T05:14:05.444715Z" } }, "id": "c11e134c85f2dec9", @@ -94,8 +94,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.510500Z", - "start_time": "2024-02-10T02:30:23.505815Z" + "end_time": "2024-02-10T05:14:05.449813Z", + "start_time": "2024-02-10T05:14:05.447808Z" } }, "id": "4bfa27852c9b7a76", @@ -106,7 +106,7 @@ "outputs": [ { "data": { - "text/plain": "'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXc'" + "text/plain": "'INEbVdrxv2YgfkREl0A1suBM6AL-3Fo3'" }, "execution_count": 5, "metadata": {}, @@ -114,13 +114,14 @@ } ], "source": [ - "sha512t24u(\"\".encode('utf-8'))" + "s = '{\"members\":[\"CvJUnTllC5zQ-M1Hbj9oj6BQitKw67J9\",\"QZGrlXd07EPr1mUVyhfaEN8mJVmN1PGF\"],\"type\":\"Haplotype\"}'\n", + "sha512t24u(s.encode('utf-8'))" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.513668Z", - "start_time": "2024-02-10T02:30:23.511053Z" + "end_time": "2024-02-10T05:14:05.456049Z", + "start_time": "2024-02-10T05:14:05.451798Z" } }, "id": "5f08dedc3934e14b", @@ -131,25 +132,27 @@ "outputs": [ { "data": { - "text/plain": "'_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd'" + "text/plain": "'{\"members\":[\"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\",\"khD7xy2qdhEmCtv2mFnNfc6BGibim97K\"],\"type\":\"Haplotype\"}'" }, - "execution_count": 6, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sha512t24u(a.location.model_dump_json().encode('utf-8'))" + "h_dict = {\"members\":set([\"ga4gh:VA.khD7xy2qdhEmCtv2mFnNfc6BGibim97K\",\"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\"]),\"type\":\"Haplotype\"}\n", + "h = models.Haplotype(**h_dict)\n", + "h.model_dump_json()" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.517233Z", - "start_time": "2024-02-10T02:30:23.513889Z" + "end_time": "2024-02-10T05:14:10.471817Z", + "start_time": "2024-02-10T05:14:10.462834Z" } }, "id": "c9c14a13621fb43d", - "execution_count": 6 + "execution_count": 16 }, { "cell_type": "markdown", @@ -170,8 +173,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.546107Z", - "start_time": "2024-02-10T02:30:23.516647Z" + "end_time": "2024-02-10T05:14:05.459901Z", + "start_time": "2024-02-10T05:14:05.457009Z" } }, "id": "b9e5d4e04237c06a", @@ -195,8 +198,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.546997Z", - "start_time": "2024-02-10T02:30:23.518956Z" + "end_time": "2024-02-10T05:14:05.484819Z", + "start_time": "2024-02-10T05:14:05.459669Z" } }, "id": "6510c36a000679d7", @@ -228,8 +231,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.548109Z", - "start_time": "2024-02-10T02:30:23.522154Z" + "end_time": "2024-02-10T05:14:05.490345Z", + "start_time": "2024-02-10T05:14:05.462996Z" } }, "id": "e173a0f8790b12e4", @@ -246,8 +249,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.549308Z", - "start_time": "2024-02-10T02:30:23.525337Z" + "end_time": "2024-02-10T05:14:05.490997Z", + "start_time": "2024-02-10T05:14:05.465469Z" } }, "id": "5aa91c0c9c69658d", @@ -263,8 +266,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.570483Z", - "start_time": "2024-02-10T02:30:23.538853Z" + "end_time": "2024-02-10T05:14:05.491192Z", + "start_time": "2024-02-10T05:14:05.478278Z" } }, "id": "bed8be3045afc562", @@ -282,8 +285,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.580132Z", - "start_time": "2024-02-10T02:30:23.543705Z" + "end_time": "2024-02-10T05:14:05.514866Z", + "start_time": "2024-02-10T05:14:05.480990Z" } }, "id": "33d925353737ae55", @@ -300,8 +303,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.580532Z", - "start_time": "2024-02-10T02:30:23.577934Z" + "end_time": "2024-02-10T05:14:05.517966Z", + "start_time": "2024-02-10T05:14:05.515341Z" } }, "id": "32981ef7ab235120", @@ -325,8 +328,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.585902Z", - "start_time": "2024-02-10T02:30:23.583168Z" + "end_time": "2024-02-10T05:14:05.526787Z", + "start_time": "2024-02-10T05:14:05.520407Z" } }, "id": "85434dae68309a1e", @@ -341,8 +344,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T02:30:23.591624Z", - "start_time": "2024-02-10T02:30:23.584775Z" + "end_time": "2024-02-10T05:14:05.527185Z", + "start_time": "2024-02-10T05:14:05.523224Z" } }, "id": "a22bce22cb23ec2", diff --git a/src/ga4gh/core/__init__.py b/src/ga4gh/core/__init__.py index f013a087..c1a59e8e 100644 --- a/src/ga4gh/core/__init__.py +++ b/src/ga4gh/core/__init__.py @@ -10,7 +10,8 @@ from ._internal.exceptions import GA4GHError from ._internal.identifiers import ( ga4gh_digest, ga4gh_identify, ga4gh_serialize, is_ga4gh_identifier, - parse_ga4gh_identifier, GA4GHComputeIdentifierWhen, use_ga4gh_compute_identifier_when + parse_ga4gh_identifier, GA4GHComputeIdentifierWhen, use_ga4gh_compute_identifier_when, + CURIE_NAMESPACE, CURIE_SEP, GA4GH_PREFIX_SEP, GA4GH_IR_REGEXP, GA4GH_DIGEST_REGEXP ) from ._internal.pydantic import ( is_pydantic_instance, is_curie_type, is_ga4gh_identifiable, is_literal, pydantic_copy diff --git a/src/ga4gh/core/_internal/identifiers.py b/src/ga4gh/core/_internal/identifiers.py index 160ec0f2..da288442 100644 --- a/src/ga4gh/core/_internal/identifiers.py +++ b/src/ga4gh/core/_internal/identifiers.py @@ -22,29 +22,21 @@ from enum import IntEnum from typing import Union, Optional from pydantic import BaseModel, RootModel -from canonicaljson import encode_canonical_json - -from .digests import sha512t24u -from .pydantic import ( - is_pydantic_instance, - is_curie_type, - is_ga4gh_identifiable, - getattr_in, - get_pydantic_root, - is_pydantic_custom_type -) + +from .pydantic import get_pydantic_root, __all__ = "ga4gh_digest ga4gh_identify ga4gh_serialize is_ga4gh_identifier parse_ga4gh_identifier".split() _logger = logging.getLogger(__name__) -namespace = "ga4gh" -curie_sep = ":" -ref_sep = "." +CURIE_NAMESPACE = "ga4gh" +CURIE_SEP = ":" +GA4GH_PREFIX_SEP = "." -ga4gh_ir_regexp = re.compile(r"^ga4gh:(?P[^.]+)\.(?P.+)$") +GA4GH_IR_REGEXP = re.compile(r"^ga4gh:(?P[^.]+)\.(?P[0-9A-Za-z_\-]{32})$") +GA4GH_DIGEST_REGEXP = re.compile(r"^[0-9A-Za-z_\-]{32}$") -ns_w_sep = namespace + curie_sep +ns_w_sep = CURIE_NAMESPACE + CURIE_SEP class GA4GHComputeIdentifierWhen(IntEnum): @@ -125,7 +117,7 @@ def parse_ga4gh_identifier(ir): """ try: - return ga4gh_ir_regexp.match(str(ir)).groupdict() + return GA4GH_IR_REGEXP.match(str(ir)).groupdict() except AttributeError as e: raise ValueError(ir) from e @@ -143,9 +135,8 @@ def ga4gh_identify(vro): 'ga4gh:VSL.u5fspwVbQ79QkX6GHLF8tXPCAXFJqRPx' """ - if is_ga4gh_identifiable(vro): + if vro.is_ga4gh_identifiable(): when_rule = ga4gh_compute_identifier_when.get(GA4GHComputeIdentifierWhen.ALWAYS) - do_compute = False ir = None if when_rule == GA4GHComputeIdentifierWhen.ALWAYS: do_compute = True @@ -154,25 +145,17 @@ def ga4gh_identify(vro): if when_rule == GA4GHComputeIdentifierWhen.MISSING: do_compute = ir is None or ir == "" else: # INVALID - do_compute = ir is None or ir == "" or ga4gh_ir_regexp.match(ir) is None + do_compute = ir is None or ir == "" or not vro.has_valid_ga4gh_id() if do_compute: - digest = ga4gh_digest(vro) - pfx = vro.ga4gh.prefix - ir = f"{namespace}{curie_sep}{pfx}{ref_sep}{digest}" + ir = vro.get_or_create_ga4gh_identifier(overwrite=True) return ir return None -def _is_sequence_reference(input_obj) -> bool: - """Determine if `input_obj` is a Sequence Reference""" - - return getattr_in(input_obj, ["ga4gh", "assigned", "default"]) and input_obj.type == "SequenceReference" - - -def ga4gh_digest(vro: BaseModel, do_compact=True): +def ga4gh_digest(vro: BaseModel, overwrite=False): """ Return the GA4GH digest for the object. @@ -187,12 +170,10 @@ def ga4gh_digest(vro: BaseModel, do_compact=True): 'u5fspwVbQ79QkX6GHLF8tXPCAXFJqRPx' """ - if _is_sequence_reference(vro): - digest = vro.refgetAccession.split("SQ.")[-1] + if vro.is_ga4gh_identifiable(): # Only GA4GH identifiable objects are GA4GH digestible + return vro.get_or_create_digest(overwrite) else: - s = ga4gh_serialize(vro) - digest = sha512t24u(s) - return digest + return None def replace_with_digest(val: dict) -> Union[str, dict]: @@ -224,18 +205,7 @@ def ga4gh_serialize(obj: BaseModel) -> Optional[bytes]: TODO find a way to output identify_all without the 'digest' fields on subobjects, without traversing the whole tree again in collapse_identifiable_values. """ - if _is_sequence_reference(obj): - return None - - identified = identify_all(obj) - if isinstance(identified, dict): - # Replace identifiable subobjects with their digests - collapsed = collapse_identifiable_values(identified) - if "digest" in collapsed: - del collapsed["digest"] - return encode_canonical_json(collapsed) - else: - return identified.encode("utf-8") + return obj.model_dump_json().encode("utf-8") def export_pydantic_model(obj, exclude_none=True): @@ -252,71 +222,6 @@ def export_pydantic_model(obj, exclude_none=True): return obj -""" -TODO: discussed making all objects digestible. If no digest keys defined, -include all fields. We first need to define keys for all model objects. -""" - - -def identify_all( - input_obj: Union[BaseModel, dict, str] -) -> Union[str, dict]: - """ - Adds digests to an identifiable Pydantic object and any identifiable Pydantic - objects in its fields, at any depth. Assumes IRIs are dereferenced. - - Returns the identified object tree, and the tree with identified objects - replaced with their digests. - - TODO It would be nice to have a pydantic-agnostic version of this that just takes - a dict for input_object, and another dict that has the identifiable+keys metadata. - Something like scrape_model_metadata can be used to generate that metadata. - """ - if input_obj is None: - return None - output_obj = input_obj - if isinstance(input_obj, str): - if input_obj.startswith("ga4gh:") and not input_obj.startswith("ga4gh:SQ"): - return input_obj.split(".")[-1] - - if is_pydantic_custom_type(input_obj): - val = export_pydantic_model(input_obj) - if isinstance(val, str) and is_ga4gh_identifier(val): - val = parse_ga4gh_identifier(val)["digest"] - output_obj = val - elif is_pydantic_instance(input_obj): - exported_obj = export_pydantic_model(input_obj) - if "digest" in exported_obj and exported_obj["digest"] is not None: - output_obj = exported_obj - elif _is_sequence_reference(input_obj): - output_obj = exported_obj["refgetAccession"].split("SQ.")[-1] - else: - # Take static key set from the object, or use all fields - include_keys = getattr_in(input_obj, ["ga4gh", "keys"]) - # TODO Add keys to each Model class - if include_keys is None or len(include_keys) == 0: - include_keys = exported_obj.keys() - if "digest" in include_keys: - include_keys.remove("digest") - # Serialize each field value - output_obj = { - k: identify_all(getattr(input_obj, k)) - for k in include_keys - if hasattr(input_obj, k) # check if None? - } - # Assumes any obj with 'digest' should be collapsed. - collapsed_output_obj = collapse_identifiable_values(output_obj) - # Add a digest to the output if it is identifiable - if is_ga4gh_identifiable(input_obj): - # Compute digest for updated object, not re-running compaction - output_obj["digest"] = ga4gh_digest(collapsed_output_obj, do_compact=False) - else: - exported_obj = export_pydantic_model(input_obj) - if type(exported_obj) in [list, set]: - output_obj = [identify_all(elem) for elem in exported_obj] - return output_obj - - # def scrape_model_metadata(obj, meta={}) -> dict: # """ # For a Pydantic object obj, pull out .ga4gh.identifiable diff --git a/src/ga4gh/core/_internal/models.py b/src/ga4gh/core/_internal/models.py index 6b020d44..1d2cef31 100644 --- a/src/ga4gh/core/_internal/models.py +++ b/src/ga4gh/core/_internal/models.py @@ -43,6 +43,10 @@ class Code(RootModel): class IRI(RootModel): + + def __hash__(self): + return self.root.__hash__() + root: str = Field( ..., json_schema_extra={'description': 'An IRI Reference (either an IRI or a relative-reference), according to `RFC3986 section 4.1 ` and `RFC3987 section 2.1 `. MAY be a JSON Pointer as an IRI fragment, as described by `RFC6901 section 6 `.', diff --git a/src/ga4gh/core/_internal/pydantic.py b/src/ga4gh/core/_internal/pydantic.py index ca3f53c2..0fa450f9 100644 --- a/src/ga4gh/core/_internal/pydantic.py +++ b/src/ga4gh/core/_internal/pydantic.py @@ -28,7 +28,7 @@ def is_ga4gh_identifiable(o: Any) -> bool: :param o: Object :return: `True` if `o` is a GA4GH Identifiable Object. `False` otherwise. """ - return o.is_identifiable() + return o.is_ga4gh_identifiable() def is_literal(o: Any) -> bool: diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 9d053797..e7c2f0ec 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -17,13 +17,13 @@ V2 pydantic: datamodel-codegen --input submodules/vrs/schema/merged.json --input-file-type jsonschema --output models.py --output-model-type pydantic_v2.BaseModel --allow-extra-fields """ -from typing import List, Literal, Optional, Union, Dict +from typing import List, Literal, Optional, Union, Dict, Set from collections import OrderedDict from enum import Enum import inspect import sys import typing -from ga4gh.core import sha512t24u +from ga4gh.core import sha512t24u, GA4GH_PREFIX_SEP, CURIE_SEP, CURIE_NAMESPACE, GA4GH_IR_REGEXP from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer @@ -169,20 +169,21 @@ def _recurse_ga4gh_serialize(obj): elif isinstance(obj, _ValueObject): return obj.ga4gh_serialize() elif isinstance(obj, RootModel): - return obj.model_dump() + return _recurse_ga4gh_serialize(obj.model_dump()) elif isinstance(obj, str): + if obj.startswith(f'{CURIE_NAMESPACE}{CURIE_SEP}'): + return obj.split(GA4GH_PREFIX_SEP)[-1] return obj - # # This is code that may be used to handle unordered lists (sets) as defined - # # by VRS. This functionality will be needed for Haplotype if we return to ordered: false. - # # No attempt is made to order arrays of strings containing objects. That will need - # # to be addressed before implementing the non-identifiable GenotypeMember class. - # elif isinstance(obj, set): - # out = [_recurse_ga4gh_serialize(x) for x in list(obj)] - # if all(isinstance(x, str) for x in out): - # return sorted(out) - # else: - # return out - # # + # This is code that may be used to handle unordered lists (sets) as defined + # by VRS. This functionality will be needed for Haplotype if we return to ordered: false. + # No attempt is made to order arrays of strings containing objects. That will need + # to be addressed before implementing the non-identifiable GenotypeMember class. + elif isinstance(obj, set): + out = [_recurse_ga4gh_serialize(x) for x in list(obj)] + if all(isinstance(x, str) for x in out): + return sorted(out) + else: + return out elif isinstance(obj, list): return [_recurse_ga4gh_serialize(x) for x in obj] else: @@ -194,6 +195,9 @@ class _ValueObject(_Entity): See https://en.wikipedia.org/wiki/Value_object for more on Value Objects. """ + def __hash__(self): + return self.model_dump_json().__hash__() + @model_serializer(when_used='json') def ga4gh_serialize(self) -> Dict: out = OrderedDict() @@ -206,7 +210,7 @@ class ga4gh: keys: List[str] @staticmethod - def is_identifiable(): + def is_ga4gh_identifiable(): return False @@ -223,18 +227,37 @@ class _Ga4ghIdentifiableObject(_ValueObject): ) @staticmethod - def is_identifiable(): + def is_ga4gh_identifiable(): return True - def compute_digest(self) -> str: - """A sha512t24u digest created using the VRS Computed Identifier algorithm.""" - return sha512t24u(self.model_dump_json().encode("utf-8")) + def has_valid_ga4gh_id(self): + return self.id and GA4GH_IR_REGEXP.match(self.id) is not None + + def has_valid_digest(self): + return bool(self.digest) # Pydantic constraint ensures digest field value is valid - def get_or_create_digest(self) -> str: - """Returns a sha512t24u digest of the GA4GH Identifiable Object, or creates + def compute_digest(self, store=True) -> str: + """A sha512t24u digest created using the VRS Computed Identifier algorithm. + Stores the digest in the object if store is True. + """ + digest = sha512t24u(self.model_dump_json().encode("utf-8")) + if store: + self.digest = digest + return digest + + def get_or_create_ga4gh_identifier(self, overwrite=False) -> str: + """Sets and returns a GA4GH Computed Identifier for the object. + Overwrites the existing identifier if overwrite is True.""" + if self.id is None or overwrite: + self.get_or_create_digest() + self.id = f'{CURIE_NAMESPACE}{CURIE_SEP}{self.ga4gh.prefix}{GA4GH_PREFIX_SEP}{self.digest}' + return self.id + + def get_or_create_digest(self, overwrite=False) -> str: + """Sets and returns a sha512t24u digest of the GA4GH Identifiable Object, or creates the digest if it does not exist.""" - if self.digest is None: - self.digest = self.compute_digest() + if self.digest is None or overwrite: + return self.compute_digest() return self.digest class ga4gh(_ValueObject.ga4gh): @@ -414,8 +437,8 @@ class Haplotype(_VariationBase): """A set of non-overlapping Allele members that co-occur on the same molecule.""" type: Literal['Haplotype'] = Field('Haplotype', description='MUST be "Haplotype"') - # TODO members temporarily typed as List instead of Set - members: List[Union[Allele, IRI]] = Field( + # TODO members temporarily typed as Set instead of List + members: Set[Union[Allele, IRI]] = Field( ..., description='A list of Alleles (or IRI references to `Alleles`) that comprise a Haplotype. Since each `Haplotype` member MUST be an `Allele`, and all members MUST share a common `SequenceReference`, implementations MAY use a compact representation of Haplotype that omits type and `SequenceReference` information in individual Haplotype members. Implementations MUST transform compact `Allele` representations into an `Allele` when computing GA4GH identifiers.', min_length=2, diff --git a/tests/validation/test_models.py b/tests/validation/test_models.py index 43dce909..88a72bb0 100644 --- a/tests/validation/test_models.py +++ b/tests/validation/test_models.py @@ -44,4 +44,4 @@ def flatten_tests(vts): def test_validation(cls, data, fn, exp): o = getattr(models, cls)(**data) fx = fxs[fn] - assert exp == fx(o) + assert fx(o) == exp From 367404223277e9fedb614100a3426108fa566036 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Sat, 10 Feb 2024 01:15:29 -0500 Subject: [PATCH 09/21] fix IRI behavior when serialized alone --- notebooks/scratch.ipynb | 61 +++++++++++++++++--- src/ga4gh/core/_internal/identifiers.py | 2 +- src/ga4gh/core/_internal/models.py | 10 +++- src/ga4gh/vrs/_internal/models.py | 6 -- tests/test_vrs.py | 14 ++--- tests/test_vrs2.py | 75 +++++++++++++------------ 6 files changed, 107 insertions(+), 61 deletions(-) diff --git a/notebooks/scratch.ipynb b/notebooks/scratch.ipynb index 1a237865..163056e9 100644 --- a/notebooks/scratch.ipynb +++ b/notebooks/scratch.ipynb @@ -132,27 +132,70 @@ "outputs": [ { "data": { - "text/plain": "'{\"members\":[\"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\",\"khD7xy2qdhEmCtv2mFnNfc6BGibim97K\"],\"type\":\"Haplotype\"}'" + "text/plain": "'\"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\"'" }, - "execution_count": 16, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "h_dict = {\"members\":set([\"ga4gh:VA.khD7xy2qdhEmCtv2mFnNfc6BGibim97K\",\"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\"]),\"type\":\"Haplotype\"}\n", - "h = models.Haplotype(**h_dict)\n", - "h.model_dump_json()" + "iri = models.IRI.model_construct(\"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\")\n", + "iri.model_dump_json()" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:10.471817Z", - "start_time": "2024-02-10T05:14:10.462834Z" + "end_time": "2024-02-10T06:00:03.460753Z", + "start_time": "2024-02-10T06:00:03.457231Z" } }, - "id": "c9c14a13621fb43d", - "execution_count": 16 + "id": "8e67a4b8ae29e077", + "execution_count": 20 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "from ga4gh.core import GA4GH_IR_REGEXP" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T06:09:34.084352Z", + "start_time": "2024-02-10T06:09:34.078292Z" + } + }, + "id": "2a09ab2316876e02", + "execution_count": 21 + }, + { + "cell_type": "code", + "outputs": [ + { + "ename": "TypeError", + "evalue": "'NoneType' object is not subscriptable", + "output_type": "error", + "traceback": [ + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mTypeError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[0;32mIn[25], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mGA4GH_IR_REGEXP\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmatch\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mbobbo\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdigest\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\n", + "\u001B[0;31mTypeError\u001B[0m: 'NoneType' object is not subscriptable" + ] + } + ], + "source": [ + "GA4GH_IR_REGEXP.match(iri.root)['digest']" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T06:10:37.174671Z", + "start_time": "2024-02-10T06:10:37.171243Z" + } + }, + "id": "b010f1faf5aa4c7c", + "execution_count": 25 }, { "cell_type": "markdown", diff --git a/src/ga4gh/core/_internal/identifiers.py b/src/ga4gh/core/_internal/identifiers.py index da288442..e17f2ea0 100644 --- a/src/ga4gh/core/_internal/identifiers.py +++ b/src/ga4gh/core/_internal/identifiers.py @@ -23,7 +23,7 @@ from typing import Union, Optional from pydantic import BaseModel, RootModel -from .pydantic import get_pydantic_root, +from .pydantic import get_pydantic_root __all__ = "ga4gh_digest ga4gh_identify ga4gh_serialize is_ga4gh_identifier parse_ga4gh_identifier".split() diff --git a/src/ga4gh/core/_internal/models.py b/src/ga4gh/core/_internal/models.py index 1d2cef31..a9f02efa 100644 --- a/src/ga4gh/core/_internal/models.py +++ b/src/ga4gh/core/_internal/models.py @@ -12,7 +12,8 @@ from typing import Any, Dict, List, Literal, Optional, Union from enum import Enum -from pydantic import BaseModel, ConfigDict, Field, RootModel, constr +from pydantic import BaseModel, ConfigDict, Field, RootModel, constr, model_serializer +from ga4gh.core import GA4GH_IR_REGEXP class Relation(Enum): @@ -47,6 +48,13 @@ class IRI(RootModel): def __hash__(self): return self.root.__hash__() + @model_serializer(when_used='json') + def ga4gh_serialize(self): + m = GA4GH_IR_REGEXP.match(self.root) + if m is not None: + return m['digest'] + return self.root + root: str = Field( ..., json_schema_extra={'description': 'An IRI Reference (either an IRI or a relative-reference), according to `RFC3986 section 4.1 ` and `RFC3987 section 2.1 `. MAY be a JSON Pointer as an IRI fragment, as described by `RFC6901 section 6 `.', diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index e7c2f0ec..85f8505f 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -171,13 +171,7 @@ def _recurse_ga4gh_serialize(obj): elif isinstance(obj, RootModel): return _recurse_ga4gh_serialize(obj.model_dump()) elif isinstance(obj, str): - if obj.startswith(f'{CURIE_NAMESPACE}{CURIE_SEP}'): - return obj.split(GA4GH_PREFIX_SEP)[-1] return obj - # This is code that may be used to handle unordered lists (sets) as defined - # by VRS. This functionality will be needed for Haplotype if we return to ordered: false. - # No attempt is made to order arrays of strings containing objects. That will need - # to be addressed before implementing the non-identifiable GenotypeMember class. elif isinstance(obj, set): out = [_recurse_ga4gh_serialize(x) for x in list(obj)] if all(isinstance(x, str) for x in out): diff --git a/tests/test_vrs.py b/tests/test_vrs.py index 170a73d9..d3a7a41f 100644 --- a/tests/test_vrs.py +++ b/tests/test_vrs.py @@ -29,16 +29,16 @@ def test_vr(): assert ga4gh_serialize( a.location - ) == b'{"end":55181320,"sequenceReference":"F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul","start":55181319,"type":"SequenceLocation"}' - assert sha512t24u(ga4gh_serialize(a.location)) == 'wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' - assert ga4gh_digest(a.location) == 'wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' - assert ga4gh_identify(a.location) == 'ga4gh:SL.wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' + ) == b'{"end":55181320,"sequenceReference":{"refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul","type":"SequenceReference"},"start":55181319,"type":"SequenceLocation"}' + assert sha512t24u(ga4gh_serialize(a.location)) == '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' + assert ga4gh_digest(a.location) == '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' + assert ga4gh_identify(a.location) == 'ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' assert ga4gh_serialize( a - ) == b'{"location":"wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K","state":{"sequence":"T","type":"LiteralSequenceExpression"},"type":"Allele"}' - assert ga4gh_digest(a) == 'hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw' - assert ga4gh_identify(a) == 'ga4gh:VA.hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw' + ) == b'{"location":"_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd","state":{"sequence":"T","type":"LiteralSequenceExpression"},"type":"Allele"}' + assert ga4gh_digest(a) == 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE' + assert ga4gh_identify(a) == 'ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE' # assert a.model_dump(exclude_none=True) == { # 'location': { diff --git a/tests/test_vrs2.py b/tests/test_vrs2.py index b1fa6394..72d00d9c 100644 --- a/tests/test_vrs2.py +++ b/tests/test_vrs2.py @@ -85,29 +85,29 @@ allele_417816 = models.Allele(**allele_417816_dict) allele_280320 = models.Allele(**allele_280320_dict) -haplotype_431012_dict = { - "type": "Haplotype", - "members": [allele_383650_dict, allele_417816_dict] -} -haplotype_431012 = models.Haplotype(**haplotype_431012_dict) - -genotype_431013_dict = { - "type": "Genotype", - "count": 1, - "members": [ - { - "type": "GenotypeMember", - "variation": haplotype_431012_dict, - "count": 1 - }, - { - "type": "GenotypeMember", - "variation": allele_280320_dict, - "count": 1 - } - ] -} -genotype_431013 = models.Genotype(**genotype_431013_dict) +# haplotype_431012_dict = { +# "type": "Haplotype", +# "members": [allele_383650_dict, allele_417816_dict] +# } +# haplotype_431012 = models.Haplotype(**haplotype_431012_dict) + +# genotype_431013_dict = { +# "type": "Genotype", +# "count": 1, +# "members": [ +# { +# "type": "GenotypeMember", +# "variation": haplotype_431012_dict, +# "count": 1 +# }, +# { +# "type": "GenotypeMember", +# "variation": allele_280320_dict, +# "count": 1 +# } +# ] +# } +# genotype_431013 = models.Genotype(**genotype_431013_dict) def test_vr(): @@ -119,24 +119,24 @@ def test_vr(): # Sequence Reference seqref = a.location.sequenceReference seqref_serialized = ga4gh_serialize(seqref) - assert seqref_serialized is None - assert ga4gh_digest(seqref) == 'F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul' + assert seqref_serialized == b'{"refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul","type":"SequenceReference"}' + assert ga4gh_digest(seqref) is None assert ga4gh_identify(seqref) is None # Location loc = a.location loc_serialized = ga4gh_serialize(loc) - assert loc_serialized == b'{"end":55181320,"sequenceReference":"F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul","start":55181319,"type":"SequenceLocation"}' - assert sha512t24u(loc_serialized) == 'wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' - assert ga4gh_digest(loc) == 'wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' - assert ga4gh_identify(loc) == 'ga4gh:SL.wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K' + assert loc_serialized == b'{"end":55181320,"sequenceReference":{"refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul","type":"SequenceReference"},"start":55181319,"type":"SequenceLocation"}' + assert sha512t24u(loc_serialized) == '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' + assert ga4gh_digest(loc) == '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' + assert ga4gh_identify(loc) == 'ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd' # Allele allele_serialized = ga4gh_serialize(a) - assert allele_serialized == b'{"location":"wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K","state":{"sequence":"T","type":"LiteralSequenceExpression"},"type":"Allele"}' - assert sha512t24u(allele_serialized) == 'hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw' - assert ga4gh_digest(a) == 'hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw' - assert ga4gh_identify(a) == 'ga4gh:VA.hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw' + assert allele_serialized == b'{"location":"_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd","state":{"sequence":"T","type":"LiteralSequenceExpression"},"type":"Allele"}' + assert sha512t24u(allele_serialized) == 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE' + assert ga4gh_digest(a) == 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE' + assert ga4gh_identify(a) == 'ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE' # Commenting out enref/deref tests. # We are deciding whether this will continue to be included in this library. @@ -188,7 +188,7 @@ def test_vr(): }) - +@pytest.mark.skip(reason="Waiting on resolution of ga4gh/vrs#461 before addressing this test") def test_haplotype(): assert haplotype_431012.model_dump(exclude_none=True) == haplotype_431012_dict assert is_pydantic_instance(haplotype_431012) @@ -199,6 +199,7 @@ def test_haplotype(): assert ga4gh_identify(haplotype_431012) == 'ga4gh:HT.fFR5oRpeD8Cuq2hfs3bXd1rgJUQrQA26' +@pytest.mark.skip(reason="Genotypes are not yet supported in 2.x") def test_genotype(): assert genotype_431013.model_dump(exclude_none=True) == genotype_431013_dict assert is_pydantic_instance(genotype_431013) @@ -209,11 +210,11 @@ def test_genotype(): assert ga4gh_identify(genotype_431013) == 'ga4gh:GT.51J0mMryCGjdce3qBpqNt4n_hXUQmw83' -def test_iri(): - iri = models.IRI.model_construct("ga4gh:VA.asdf") +def test_ga4gh_iri(): + iri = models.IRI.model_construct("ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE") assert is_curie_type(iri) assert iri.root == pydantic_copy(iri).root - assert ga4gh_serialize(iri) == b'asdf' + assert ga4gh_serialize(iri) == b'"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE"' def test_enref(): From 9ab2026b53bf36497889cf6d23fb3014314c663d Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Sat, 10 Feb 2024 02:20:20 -0500 Subject: [PATCH 10/21] restore haplotype as unordered List with Serializer override --- src/ga4gh/vrs/_internal/models.py | 20 +++++++++++--------- tests/test_vrs2.py | 19 +++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 85f8505f..93e9a0cc 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -169,15 +169,9 @@ def _recurse_ga4gh_serialize(obj): elif isinstance(obj, _ValueObject): return obj.ga4gh_serialize() elif isinstance(obj, RootModel): - return _recurse_ga4gh_serialize(obj.model_dump()) + return _recurse_ga4gh_serialize(obj.model_dump(mode='json')) elif isinstance(obj, str): return obj - elif isinstance(obj, set): - out = [_recurse_ga4gh_serialize(x) for x in list(obj)] - if all(isinstance(x, str) for x in out): - return sorted(out) - else: - return out elif isinstance(obj, list): return [_recurse_ga4gh_serialize(x) for x in obj] else: @@ -220,6 +214,9 @@ class _Ga4ghIdentifiableObject(_ValueObject): description='A sha512t24u digest created using the VRS Computed Identifier algorithm.', ) + def __lt__(self, other): + return self.get_or_create_digest() < other.get_or_create_digest() + @staticmethod def is_ga4gh_identifiable(): return True @@ -431,13 +428,18 @@ class Haplotype(_VariationBase): """A set of non-overlapping Allele members that co-occur on the same molecule.""" type: Literal['Haplotype'] = Field('Haplotype', description='MUST be "Haplotype"') - # TODO members temporarily typed as Set instead of List - members: Set[Union[Allele, IRI]] = Field( + members: List[Union[Allele, IRI]] = Field( ..., description='A list of Alleles (or IRI references to `Alleles`) that comprise a Haplotype. Since each `Haplotype` member MUST be an `Allele`, and all members MUST share a common `SequenceReference`, implementations MAY use a compact representation of Haplotype that omits type and `SequenceReference` information in individual Haplotype members. Implementations MUST transform compact `Allele` representations into an `Allele` when computing GA4GH identifiers.', min_length=2, ) + @model_serializer(when_used='json') + def ga4gh_serialize(self) -> Dict: + out = _ValueObject.ga4gh_serialize(self) + out['members'] = sorted(out['members']) + return out + class ga4gh(_Ga4ghIdentifiableObject.ga4gh): prefix = 'HT' keys = [ diff --git a/tests/test_vrs2.py b/tests/test_vrs2.py index 72d00d9c..8fc3e286 100644 --- a/tests/test_vrs2.py +++ b/tests/test_vrs2.py @@ -85,11 +85,11 @@ allele_417816 = models.Allele(**allele_417816_dict) allele_280320 = models.Allele(**allele_280320_dict) -# haplotype_431012_dict = { -# "type": "Haplotype", -# "members": [allele_383650_dict, allele_417816_dict] -# } -# haplotype_431012 = models.Haplotype(**haplotype_431012_dict) +haplotype_431012_dict = { + "type": "Haplotype", + "members": [allele_383650_dict, allele_417816_dict] +} +haplotype_431012 = models.Haplotype(**haplotype_431012_dict) # genotype_431013_dict = { # "type": "Genotype", @@ -188,15 +188,14 @@ def test_vr(): }) -@pytest.mark.skip(reason="Waiting on resolution of ga4gh/vrs#461 before addressing this test") def test_haplotype(): assert haplotype_431012.model_dump(exclude_none=True) == haplotype_431012_dict assert is_pydantic_instance(haplotype_431012) haplotype_serialized = ga4gh_serialize(haplotype_431012) - assert haplotype_serialized == b'{"members":["734G5mtNwe40do8F6GKuqQP4QxyjBqVp","bU3n0M2YQaV5C5ebODJYZ0GnbyCrOIHi"],"type":"Haplotype"}' - assert sha512t24u(haplotype_serialized) == 'fFR5oRpeD8Cuq2hfs3bXd1rgJUQrQA26' - assert ga4gh_digest(haplotype_431012) == 'fFR5oRpeD8Cuq2hfs3bXd1rgJUQrQA26' - assert ga4gh_identify(haplotype_431012) == 'ga4gh:HT.fFR5oRpeD8Cuq2hfs3bXd1rgJUQrQA26' + assert haplotype_serialized == b'{"members":["SZIS2ua7AL-0YgUTAqyBsFPYK3vE8h_d","TKhpDsfclpSXpn6BjTLViB_ceqRerOd2"],"type":"Haplotype"}' + assert sha512t24u(haplotype_serialized) == 'kAFlqAFWNj5xZIv5G_ePM7xepXe5p8TK' + assert ga4gh_digest(haplotype_431012) == 'kAFlqAFWNj5xZIv5G_ePM7xepXe5p8TK' + assert ga4gh_identify(haplotype_431012) == 'ga4gh:HT.kAFlqAFWNj5xZIv5G_ePM7xepXe5p8TK' @pytest.mark.skip(reason="Genotypes are not yet supported in 2.x") From f0402ea688b69ed40c39cf7a8a23ca6325c76bc0 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Sat, 10 Feb 2024 12:58:01 -0500 Subject: [PATCH 11/21] add context control support for in-place edits --- notebooks/scratch.ipynb | 245 ++++++++++++++++++------ src/ga4gh/core/__init__.py | 2 +- src/ga4gh/core/_internal/identifiers.py | 46 +++-- src/ga4gh/vrs/_internal/models.py | 47 ++++- src/ga4gh/vrs/extras/vcf_annotation.py | 4 +- tests/extras/test_allele_translator.py | 2 +- tests/test_vrs2.py | 116 ++++++----- 7 files changed, 317 insertions(+), 145 deletions(-) diff --git a/notebooks/scratch.ipynb b/notebooks/scratch.ipynb index 163056e9..9814322b 100644 --- a/notebooks/scratch.ipynb +++ b/notebooks/scratch.ipynb @@ -7,8 +7,8 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.439750Z", - "start_time": "2024-02-10T05:14:05.237545Z" + "end_time": "2024-02-10T15:38:14.078655Z", + "start_time": "2024-02-10T15:38:13.857632Z" } }, "outputs": [], @@ -44,8 +44,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.443194Z", - "start_time": "2024-02-10T05:14:05.441078Z" + "end_time": "2024-02-10T15:38:14.082117Z", + "start_time": "2024-02-10T15:38:14.080117Z" } }, "id": "68f5f7e40bf74d70", @@ -69,8 +69,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.448917Z", - "start_time": "2024-02-10T05:14:05.444715Z" + "end_time": "2024-02-10T15:38:14.087793Z", + "start_time": "2024-02-10T15:38:14.083968Z" } }, "id": "c11e134c85f2dec9", @@ -94,8 +94,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.449813Z", - "start_time": "2024-02-10T05:14:05.447808Z" + "end_time": "2024-02-10T15:38:14.091376Z", + "start_time": "2024-02-10T15:38:14.086540Z" } }, "id": "4bfa27852c9b7a76", @@ -120,8 +120,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.456049Z", - "start_time": "2024-02-10T05:14:05.451798Z" + "end_time": "2024-02-10T15:38:14.094883Z", + "start_time": "2024-02-10T15:38:14.090731Z" } }, "id": "5f08dedc3934e14b", @@ -132,9 +132,9 @@ "outputs": [ { "data": { - "text/plain": "'\"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\"'" + "text/plain": "'\"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE\"'" }, - "execution_count": 20, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -146,12 +146,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T06:00:03.460753Z", - "start_time": "2024-02-10T06:00:03.457231Z" + "end_time": "2024-02-10T15:38:14.096044Z", + "start_time": "2024-02-10T15:38:14.094071Z" } }, "id": "8e67a4b8ae29e077", - "execution_count": 20 + "execution_count": 6 }, { "cell_type": "code", @@ -162,26 +162,23 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T06:09:34.084352Z", - "start_time": "2024-02-10T06:09:34.078292Z" + "end_time": "2024-02-10T15:38:14.099116Z", + "start_time": "2024-02-10T15:38:14.096777Z" } }, "id": "2a09ab2316876e02", - "execution_count": 21 + "execution_count": 7 }, { "cell_type": "code", "outputs": [ { - "ename": "TypeError", - "evalue": "'NoneType' object is not subscriptable", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mTypeError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[0;32mIn[25], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mGA4GH_IR_REGEXP\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmatch\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mbobbo\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdigest\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\n", - "\u001B[0;31mTypeError\u001B[0m: 'NoneType' object is not subscriptable" - ] + "data": { + "text/plain": "'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE'" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -190,12 +187,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T06:10:37.174671Z", - "start_time": "2024-02-10T06:10:37.171243Z" + "end_time": "2024-02-10T15:38:14.102084Z", + "start_time": "2024-02-10T15:38:14.099058Z" } }, "id": "b010f1faf5aa4c7c", - "execution_count": 25 + "execution_count": 8 }, { "cell_type": "markdown", @@ -216,12 +213,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.459901Z", - "start_time": "2024-02-10T05:14:05.457009Z" + "end_time": "2024-02-10T15:38:14.133735Z", + "start_time": "2024-02-10T15:38:14.102404Z" } }, "id": "b9e5d4e04237c06a", - "execution_count": 7 + "execution_count": 9 }, { "cell_type": "code", @@ -230,7 +227,7 @@ "data": { "text/plain": "{'description',\n 'digest',\n 'end',\n 'extensions',\n 'id',\n 'label',\n 'sequenceReference',\n 'start',\n 'type'}" }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -241,12 +238,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.484819Z", - "start_time": "2024-02-10T05:14:05.459669Z" + "end_time": "2024-02-10T15:38:14.134333Z", + "start_time": "2024-02-10T15:38:14.106609Z" } }, "id": "6510c36a000679d7", - "execution_count": 8 + "execution_count": 10 }, { "cell_type": "markdown", @@ -263,7 +260,7 @@ "data": { "text/plain": "ga4gh.vrs._internal.models.SequenceLocation" }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -274,12 +271,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.490345Z", - "start_time": "2024-02-10T05:14:05.462996Z" + "end_time": "2024-02-10T15:38:14.134880Z", + "start_time": "2024-02-10T15:38:14.108443Z" } }, "id": "e173a0f8790b12e4", - "execution_count": 9 + "execution_count": 11 }, { "cell_type": "code", @@ -292,12 +289,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.490997Z", - "start_time": "2024-02-10T05:14:05.465469Z" + "end_time": "2024-02-10T15:38:14.135378Z", + "start_time": "2024-02-10T15:38:14.111664Z" } }, "id": "5aa91c0c9c69658d", - "execution_count": 10 + "execution_count": 12 }, { "cell_type": "code", @@ -309,12 +306,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.491192Z", - "start_time": "2024-02-10T05:14:05.478278Z" + "end_time": "2024-02-10T15:38:14.155710Z", + "start_time": "2024-02-10T15:38:14.126605Z" } }, "id": "bed8be3045afc562", - "execution_count": 11 + "execution_count": 13 }, { "cell_type": "code", @@ -328,12 +325,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.514866Z", - "start_time": "2024-02-10T05:14:05.480990Z" + "end_time": "2024-02-10T15:38:14.169077Z", + "start_time": "2024-02-10T15:38:14.129514Z" } }, "id": "33d925353737ae55", - "execution_count": 12 + "execution_count": 14 }, { "cell_type": "code", @@ -346,12 +343,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.517966Z", - "start_time": "2024-02-10T05:14:05.515341Z" + "end_time": "2024-02-10T15:38:14.169489Z", + "start_time": "2024-02-10T15:38:14.166113Z" } }, "id": "32981ef7ab235120", - "execution_count": 13 + "execution_count": 15 }, { "cell_type": "code", @@ -360,7 +357,7 @@ "data": { "text/plain": "ga4gh.vrs._internal.models.Allele" }, - "execution_count": 14, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -371,12 +368,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.526787Z", - "start_time": "2024-02-10T05:14:05.520407Z" + "end_time": "2024-02-10T15:38:14.170943Z", + "start_time": "2024-02-10T15:38:14.168939Z" } }, "id": "85434dae68309a1e", - "execution_count": 14 + "execution_count": 16 }, { "cell_type": "code", @@ -387,12 +384,140 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-02-10T05:14:05.527185Z", - "start_time": "2024-02-10T05:14:05.523224Z" + "end_time": "2024-02-10T15:38:14.175393Z", + "start_time": "2024-02-10T15:38:14.171070Z" } }, "id": "a22bce22cb23ec2", - "execution_count": 15 + "execution_count": 17 + }, + { + "cell_type": "markdown", + "source": [ + "## Enref and deref" + ], + "metadata": { + "collapsed": false + }, + "id": "b5774a0e183d5e45" + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "from ga4gh.vrs import vrs_enref, vrs_deref" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T15:38:14.190052Z", + "start_time": "2024-02-10T15:38:14.175313Z" + } + }, + "id": "897f943eee0cf054", + "execution_count": 18 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "{'id': 'ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE',\n 'type': 'Allele',\n 'digest': 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE',\n 'location': {'type': 'SequenceLocation',\n 'digest': '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd',\n 'sequenceReference': {'type': 'SequenceReference',\n 'refgetAccession': 'SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul'},\n 'start': 55181319,\n 'end': 55181320},\n 'state': {'type': 'LiteralSequenceExpression', 'sequence': 'T'}}" + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "obj_store = dict()\n", + "a.get_or_create_ga4gh_identifier()\n", + "a.model_dump(exclude_none=True)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T15:38:14.190897Z", + "start_time": "2024-02-10T15:38:14.177572Z" + } + }, + "id": "7ed88eee2fd528a2", + "execution_count": 19 + }, + { + "cell_type": "code", + "outputs": [], + "source": [ + "a_enref = vrs_enref(a, obj_store)\n", + "sl_enref = vrs_enref(a.location, obj_store)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T15:42:02.625043Z", + "start_time": "2024-02-10T15:42:02.619571Z" + } + }, + "id": "c7c2b9ef81aaee80", + "execution_count": 24 + }, + { + "cell_type": "code", + "outputs": [ + { + "data": { + "text/plain": "{'id': 'ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE',\n 'type': 'Allele',\n 'digest': 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE',\n 'location': 'ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd',\n 'state': {'type': 'LiteralSequenceExpression', 'sequence': 'T'}}" + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_enref.model_dump(exclude_none=True)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T15:42:07.073679Z", + "start_time": "2024-02-10T15:42:07.069400Z" + } + }, + "id": "2523640eaa70e64", + "execution_count": 25 + }, + { + "cell_type": "code", + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "SequenceLocation not in cra_map {'Allele': ['location'], 'Haplotype': ['members'], '_CopyNumber': ['location'], 'CopyNumberCount': ['location'], 'CopyNumberChange': ['location']}\n" + ] + } + ], + "source": [ + "a_deref = vrs_deref(a_enref, obj_store)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-02-10T15:42:08.761026Z", + "start_time": "2024-02-10T15:42:08.755629Z" + } + }, + "id": "33007f8ca388eb43", + "execution_count": 26 + }, + { + "cell_type": "code", + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + }, + "id": "864cc1f21bfc357e" } ], "metadata": { diff --git a/src/ga4gh/core/__init__.py b/src/ga4gh/core/__init__.py index c1a59e8e..a595b0d9 100644 --- a/src/ga4gh/core/__init__.py +++ b/src/ga4gh/core/__init__.py @@ -10,7 +10,7 @@ from ._internal.exceptions import GA4GHError from ._internal.identifiers import ( ga4gh_digest, ga4gh_identify, ga4gh_serialize, is_ga4gh_identifier, - parse_ga4gh_identifier, GA4GHComputeIdentifierWhen, use_ga4gh_compute_identifier_when, + parse_ga4gh_identifier, VrsObjectIdentifierIs, use_ga4gh_compute_identifier_when, CURIE_NAMESPACE, CURIE_SEP, GA4GH_PREFIX_SEP, GA4GH_IR_REGEXP, GA4GH_DIGEST_REGEXP ) from ._internal.pydantic import ( diff --git a/src/ga4gh/core/_internal/identifiers.py b/src/ga4gh/core/_internal/identifiers.py index e17f2ea0..8f2e547a 100644 --- a/src/ga4gh/core/_internal/identifiers.py +++ b/src/ga4gh/core/_internal/identifiers.py @@ -39,9 +39,9 @@ ns_w_sep = CURIE_NAMESPACE + CURIE_SEP -class GA4GHComputeIdentifierWhen(IntEnum): +class VrsObjectIdentifierIs(IntEnum): """ - Defines the rule for when the `ga4gh_identify` method should compute + Defines the state for when the `ga4gh_identify` method should compute an identifier ('id' attribute) for the specified object. The options are: ALWAYS - Always compute the identifier (this is the default behavior) INVALID - Compute the identifier if it is missing or is present but syntactically invalid @@ -53,8 +53,8 @@ class GA4GHComputeIdentifierWhen(IntEnum): using `MISSING` can improve performance. """ - ALWAYS = 0 - INVALID = 1 + ANY = 0 + GA4GH_INVALID = 1 MISSING = 2 @@ -66,16 +66,16 @@ class use_ga4gh_compute_identifier_when(ContextDecorator): Context manager that defines when to compute identifiers for all operations within the context. For example: - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): VCFAnnotator(...).annotate(...) Or: - @use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID) + @use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID) def my_method(): """ - def __init__(self, when: GA4GHComputeIdentifierWhen): + def __init__(self, when: VrsObjectIdentifierIs): self.when = when self.token = None @@ -122,11 +122,21 @@ def parse_ga4gh_identifier(ir): raise ValueError(ir) from e -def ga4gh_identify(vro): +def ga4gh_identify(vro, in_place='default'): """ Return the GA4GH digest-based id for the object, as a CURIE (string). Returns None if object is not identifiable. + This function has three options for in_place editing of vro.id: + - 'default': the standard identifier update behavior for GA4GH + identifiable objects, this mode will update the vro.id + field if the field is empty + - 'always': this will update the vro.id field any time the + identifier is computed (compute behavior is controlled by the + use_ga4gh_compute_identifier_when context) + - 'never': the vro.id field will not be edited in-place, + even when empty + TODO update example for VRS 2.0 >>> import ga4gh.vrs >>> ival = ga4gh.vrs.models.SimpleInterval(start=44908821, end=44908822) @@ -136,21 +146,21 @@ def ga4gh_identify(vro): """ if vro.is_ga4gh_identifiable(): - when_rule = ga4gh_compute_identifier_when.get(GA4GHComputeIdentifierWhen.ALWAYS) - ir = None - if when_rule == GA4GHComputeIdentifierWhen.ALWAYS: + when_rule = ga4gh_compute_identifier_when.get(VrsObjectIdentifierIs.ANY) + obj_id = None + if when_rule == VrsObjectIdentifierIs.ANY: do_compute = True else: - ir = getattr(vro, "id", None) - if when_rule == GA4GHComputeIdentifierWhen.MISSING: - do_compute = ir is None or ir == "" - else: # INVALID - do_compute = ir is None or ir == "" or not vro.has_valid_ga4gh_id() + obj_id = getattr(vro, "id", None) + if when_rule == VrsObjectIdentifierIs.MISSING: + do_compute = obj_id is None or obj_id == "" + else: # GA4GHComputeIdentifierIs.GA4GH_INVALID + do_compute = not vro.has_valid_ga4gh_id() if do_compute: - ir = vro.get_or_create_ga4gh_identifier(overwrite=True) + obj_id = vro.get_or_create_ga4gh_identifier(in_place) - return ir + return obj_id return None diff --git a/src/ga4gh/vrs/_internal/models.py b/src/ga4gh/vrs/_internal/models.py index 93e9a0cc..e21d8e9e 100644 --- a/src/ga4gh/vrs/_internal/models.py +++ b/src/ga4gh/vrs/_internal/models.py @@ -17,7 +17,7 @@ V2 pydantic: datamodel-codegen --input submodules/vrs/schema/merged.json --input-file-type jsonschema --output models.py --output-model-type pydantic_v2.BaseModel --allow-extra-fields """ -from typing import List, Literal, Optional, Union, Dict, Set +from typing import List, Literal, Optional, Union, Dict from collections import OrderedDict from enum import Enum import inspect @@ -236,18 +236,45 @@ def compute_digest(self, store=True) -> str: self.digest = digest return digest - def get_or_create_ga4gh_identifier(self, overwrite=False) -> str: + def get_or_create_ga4gh_identifier(self, in_place='default', recompute=False) -> str: """Sets and returns a GA4GH Computed Identifier for the object. - Overwrites the existing identifier if overwrite is True.""" - if self.id is None or overwrite: - self.get_or_create_digest() - self.id = f'{CURIE_NAMESPACE}{CURIE_SEP}{self.ga4gh.prefix}{GA4GH_PREFIX_SEP}{self.digest}' - return self.id - - def get_or_create_digest(self, overwrite=False) -> str: + Overwrites the existing identifier if overwrite is True. + + This function has three options for in_place editing of vro.id: + - 'default': the standard identifier update behavior for GA4GH + identifiable objects, this mode will update the vro.id + field if the field is empty + - 'always': this will update the vro.id field any time the + identifier is computed + - 'never': the vro.id field will not be edited in-place, + even when empty + + Digests will be recalculated even if present if recompute is True. + """ + if in_place == 'default': + if self.id is None: + self.id = self.compute_ga4gh_identifier(recompute) + elif in_place == 'always': + self.id = self.compute_ga4gh_identifier(recompute) + elif in_place == 'never': + return self.compute_ga4gh_identifier(recompute) + else: + raise ValueError("Expected 'in_place' to be one of 'default', 'always', or 'never'") + + if self.has_valid_ga4gh_id(): + return self.id + else: + return self.compute_ga4gh_identifier(recompute) + + def compute_ga4gh_identifier(self, recompute=False): + """Returns a GA4GH Computed Identifier""" + self.get_or_create_digest(recompute) + return f'{CURIE_NAMESPACE}{CURIE_SEP}{self.ga4gh.prefix}{GA4GH_PREFIX_SEP}{self.digest}' + + def get_or_create_digest(self, recompute=False) -> str: """Sets and returns a sha512t24u digest of the GA4GH Identifiable Object, or creates the digest if it does not exist.""" - if self.digest is None or overwrite: + if self.digest is None or recompute: return self.compute_digest() return self.digest diff --git a/src/ga4gh/vrs/extras/vcf_annotation.py b/src/ga4gh/vrs/extras/vcf_annotation.py index f2a6610f..2d43e911 100644 --- a/src/ga4gh/vrs/extras/vcf_annotation.py +++ b/src/ga4gh/vrs/extras/vcf_annotation.py @@ -15,7 +15,7 @@ from biocommons.seqrepo import SeqRepo from pydantic import ValidationError -from ga4gh.core import GA4GHComputeIdentifierWhen, use_ga4gh_compute_identifier_when +from ga4gh.core import VrsObjectIdentifierIs, use_ga4gh_compute_identifier_when from ga4gh.vrs.dataproxy import SeqRepoDataProxy, SeqRepoRESTDataProxy from ga4gh.vrs.extras.translator import AlleleTranslator, ValidationError as TranslatorValidationError @@ -162,7 +162,7 @@ def __init__(self, seqrepo_dp_type: SeqRepoProxyType = SeqRepoProxyType.LOCAL, self.dp = SeqRepoRESTDataProxy(seqrepo_base_url) self.tlr = AlleleTranslator(self.dp) - @use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING) + @use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING) def annotate( # pylint: disable=too-many-arguments,too-many-locals self, vcf_in: str, vcf_out: Optional[str] = None, vrs_pickle_out: Optional[str] = None, vrs_attributes: bool = False, diff --git a/tests/extras/test_allele_translator.py b/tests/extras/test_allele_translator.py index a249cea0..0c666e6c 100644 --- a/tests/extras/test_allele_translator.py +++ b/tests/extras/test_allele_translator.py @@ -426,7 +426,7 @@ def test_hgvs(tlr, hgvsexpr, expected): tlr.normalize = True tlr.identify = True allele = tlr.translate_from(hgvsexpr, "hgvs") - assert expected == allele.model_dump(exclude_none=True) + assert allele.model_dump(exclude_none=True) == expected to_hgvs = tlr.translate_to(allele, "hgvs") assert 1 == len(to_hgvs) diff --git a/tests/test_vrs2.py b/tests/test_vrs2.py index 8fc3e286..1887b754 100644 --- a/tests/test_vrs2.py +++ b/tests/test_vrs2.py @@ -10,7 +10,7 @@ is_curie_type, pydantic_copy, use_ga4gh_compute_identifier_when, - GA4GHComputeIdentifierWhen, + VrsObjectIdentifierIs ) from ga4gh.vrs import models, vrs_enref, vrs_deref @@ -216,25 +216,31 @@ def test_ga4gh_iri(): assert ga4gh_serialize(iri) == b'"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE"' +@pytest.mark.skip(reason="Need to refactor enref / deref") def test_enref(): object_store = {} + allele_383650.get_or_create_ga4gh_identifier() allele_383650_enreffed = vrs_enref(allele_383650, object_store=object_store) orig_no_loc = allele_383650.model_dump().copy() orig_no_loc.pop("location") actual_no_loc = allele_383650_enreffed.model_dump().copy() actual_no_loc.pop("location") - assert orig_no_loc == actual_no_loc, "Original and enreffed match except for enreffed field" - assert allele_383650_enreffed.location == 'ga4gh:SL.cWtFS2CsCI1E_ocNVu6PeFQaMtVxIE-L' - assert allele_383650_enreffed.model_dump(exclude_none=True) == { + assert actual_no_loc == orig_no_loc, "Original and enreffed match except for enreffed field" + assert allele_383650_enreffed.location == 'ga4gh:SL.TaoXEhpHvA6SdilBUO-AX00YDARv9Uoe' + assert (allele_383650_enreffed.model_dump(exclude_none=True) == { + 'digest': 'SZIS2ua7AL-0YgUTAqyBsFPYK3vE8h_d', + 'id': 'ga4gh:VA.SZIS2ua7AL-0YgUTAqyBsFPYK3vE8h_d', 'type': 'Allele', - 'location': 'ga4gh:SL.cWtFS2CsCI1E_ocNVu6PeFQaMtVxIE-L', + 'location': 'ga4gh:SL.TaoXEhpHvA6SdilBUO-AX00YDARv9Uoe', 'state': { 'type': 'LiteralSequenceExpression', - 'sequence': 'T'}} + 'sequence': 'T'}}) dereffed = vrs_deref(allele_383650_enreffed, object_store=object_store) assert (dereffed.location.model_dump(exclude_none=True) == { + 'digest': 'TaoXEhpHvA6SdilBUO-AX00YDARv9Uoe', + 'id': 'ga4gh:SL.TaoXEhpHvA6SdilBUO-AX00YDARv9Uoe', 'type': 'SequenceLocation', 'sequenceReference': { 'type': 'SequenceReference', @@ -245,6 +251,8 @@ def test_enref(): assert dereffed.location.model_dump(exclude_none=True) == allele_383650.location.model_dump(exclude_none=True) assert dereffed.model_dump() == allele_383650.model_dump() + +@pytest.mark.skip(reason="Need to refactor enref / deref") def test_enref2(): object_store = {} a = { @@ -280,6 +288,8 @@ def test_enref2(): } } + +@pytest.mark.skip(reason="Need to refactor enref / deref") def test_class_refatt_map(): class_refatt_map_expected = { 'Allele': ['location'], @@ -306,75 +316,75 @@ def test_compute_identifiers_when(): }, "state": {"type": "LiteralSequenceExpression", "sequence": "T"}, } - correct_id = "ga4gh:VA.PkeY9RbMt9CEFakQ0AgDdAQ7POUeoWR0" + correct_id = "ga4gh:VA.NRUtY5Jcoevxr0tIgbNa-oIFm-Gv4qas" syntax_valid_id = "ga4gh:VA.39eae078d9bb30da2a5c5d1969cb1472" syntax_invalid_id = "ga4gh:12345" # when id property is missing vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == correct_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == correct_id # when id property is none a["id"] = None vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == correct_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == correct_id # when id property is blank a["id"] = "" vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == correct_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == correct_id # when id property is syntactically invalid a["id"] = syntax_invalid_id vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == syntax_invalid_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == syntax_invalid_id # when id property is syntactically valid a["id"] = syntax_valid_id vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == syntax_valid_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == syntax_valid_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == syntax_valid_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == syntax_valid_id # when id property is correct a["id"] = correct_id vo_a = models.Allele(**a) - assert ga4gh_identify(vo_a) == correct_id - assert ga4gh_identify(vo_a) is not correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.ALWAYS): - assert ga4gh_identify(vo_a) == correct_id - assert ga4gh_identify(vo_a) is not correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.INVALID): - assert ga4gh_identify(vo_a) == correct_id - assert ga4gh_identify(vo_a) is correct_id - with use_ga4gh_compute_identifier_when(GA4GHComputeIdentifierWhen.MISSING): - assert ga4gh_identify(vo_a) == correct_id - assert ga4gh_identify(vo_a) is correct_id + assert ga4gh_identify(vo_a, in_place='never') == correct_id + assert ga4gh_identify(vo_a, in_place='never') is not correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.ANY): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + assert ga4gh_identify(vo_a, in_place='never') is not correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.GA4GH_INVALID): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + assert ga4gh_identify(vo_a, in_place='never') is correct_id + with use_ga4gh_compute_identifier_when(VrsObjectIdentifierIs.MISSING): + assert ga4gh_identify(vo_a, in_place='never') == correct_id + assert ga4gh_identify(vo_a, in_place='never') is correct_id From f407fd08dbec1025ecdb576174d5466ae66edbd7 Mon Sep 17 00:00:00 2001 From: Eugene Clark Date: Thu, 15 Feb 2024 15:52:07 -0500 Subject: [PATCH 12/21] Use LiteralSequenceExpression for ambiguous insertions that cannot be derived from the reference sequence --- src/ga4gh/vrs/normalize.py | 45 +++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index a92a6723..53e2d09d 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -5,6 +5,7 @@ """ import logging from enum import IntEnum +from itertools import cycle from typing import NamedTuple, Optional, Union from bioutils.normalize import normalize as _normalize, NormalizationMode @@ -176,29 +177,53 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): ) new_ref_seq = ref_seq[new_ival[0]: new_ival[1]] - - if not new_ref_seq: - # If the reference sequence is empty this is an unambiguous insertion. + new_alt_seq = new_alleles[1] + + if not new_ref_seq or ( + new_alt_seq + and _derive_seq_from_rle( + ref_seq, + new_allele.location.start, + len_ref_seq or len_alt_seq, + len(new_alt_seq), + ) + != new_alt_seq + ): + # If the reference sequence is empty this is an unambiguous insertion or + # If the reference sequence is not empty, but the alt sequence cannot be derived + # from the reference sequence # Return a new Allele with the trimmed alternate sequence as a Literal # Sequence Expression new_allele.state = models.LiteralSequenceExpression( - sequence=models.SequenceString(new_alleles[1]) + sequence=models.SequenceString(new_alt_seq) ) else: # Otherwise, return a new Allele using a RLE - len_sequence = len(new_alleles[1]) - + # Use the ref/alt length from the trimmed allele, not the expanded form new_allele.state = models.ReferenceLengthExpression( - length=len_sequence, - repeatSubunitLength=len_ref_seq or len_alt_seq + length=len(new_alt_seq), repeatSubunitLength=len_ref_seq or len_alt_seq ) - if (rle_seq_limit and len_sequence <= rle_seq_limit) or (rle_seq_limit is None): - new_allele.state.sequence = models.SequenceString(new_alleles[1]) + if (rle_seq_limit and len(new_alt_seq) <= rle_seq_limit) or ( + rle_seq_limit is None + ): + new_allele.state.sequence = models.SequenceString(new_alt_seq) return new_allele +def _derive_seq_from_rle( + ref_seq: SequenceProxy, start: int, repeatSubunitLength: int, length: int +): + end = start + repeatSubunitLength + subseq = ref_seq[start:end] + c = cycle(subseq) + derivedseq = "" + for i in range(length): + derivedseq += next(c) + return derivedseq + + # TODO _normalize_genotype? From 694ce86550c24f24c9dfbb83077a6b7be572e9f5 Mon Sep 17 00:00:00 2001 From: Eugene Clark Date: Thu, 15 Feb 2024 15:54:06 -0500 Subject: [PATCH 13/21] Update VCF unit tests to match new digest logic --- .../test_annotate_vcf_grch37_attrs.yaml | 34 ++++++++++++++++-- .../test_annotate_vcf_grch38_attrs.yaml | 34 ++++++++++++++++-- ...st_annotate_vcf_grch38_attrs_altsonly.yaml | 34 ++++++++++++++++-- .../test_annotate_vcf_grch38_noattrs.yaml | 34 ++++++++++++++++-- .../test_annotate_vcf_pickle_only.yaml | 34 ++++++++++++++++-- .../cassettes/test_annotate_vcf_vcf_only.yaml | 34 ++++++++++++++++-- .../test_vcf_expected_altsonly_output.vcf.gz | Bin 4513 -> 4443 bytes .../data/test_vcf_expected_output.vcf.gz | Bin 4759 -> 4701 bytes ...st_vcf_expected_output_no_vrs_attrs.vcf.gz | Bin 4530 -> 4488 bytes tests/extras/data/test_vcf_input.vcf | 2 +- 10 files changed, 193 insertions(+), 13 deletions(-) diff --git a/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml index 23cff94f..ea46a950 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml @@ -1043,6 +1043,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK # Begin VCF row chr19 28946400 - request: body: null @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml index 8ad4406a..3584837d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml @@ -1046,6 +1046,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK - request: body: null headers: @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml index 8ad4406a..3584837d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml @@ -1046,6 +1046,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK - request: body: null headers: @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml index 8ad4406a..3584837d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml @@ -1046,6 +1046,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK - request: body: null headers: @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml b/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml index 8ad4406a..3584837d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml @@ -1046,6 +1046,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK - request: body: null headers: @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml b/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml index 8ad4406a..3584837d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml @@ -1046,6 +1046,36 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 + response: + body: + string: CAGCACTTTGGGAG + headers: + Connection: + - close + Content-Length: + - '2' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Tue, 19 Sep 2023 14:56:57 GMT + Server: + - Werkzeug/2.2.2 Python/3.10.4 + status: + code: 200 + message: OK - request: body: null headers: @@ -1423,7 +1453,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: body: - string: A + string: T headers: Connection: - close @@ -1453,7 +1483,7 @@ interactions: uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: body: - string: C + string: T headers: Connection: - close diff --git a/tests/extras/data/test_vcf_expected_altsonly_output.vcf.gz b/tests/extras/data/test_vcf_expected_altsonly_output.vcf.gz index cf73bc98d0fd1b36aec4db19d5ad5b843df599bc..862d5d492d06cfadf16a10846f5a0e542e24c6fb 100644 GIT binary patch literal 4443 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 fnpJI6yfKS!n$@St&&mG-Ye#s@EO7t;-4Q_5 literal 4759 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 abS7ur@IL;$Z0>$Pjs63lc94w!Yybekp`_dZ literal 4530 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 diff --git a/tests/extras/data/test_vcf_input.vcf b/tests/extras/data/test_vcf_input.vcf index d35e35e3..5f972885 100644 --- a/tests/extras/data/test_vcf_input.vcf +++ b/tests/extras/data/test_vcf_input.vcf @@ -235,4 +235,4 @@ chr19 28946400 . T C 50 PASS platforms=5;platformnames=Illumina,PacBio,CG,10X,So chr19 490414 . ACT A 50 PASS platforms=5;platformnames=Illumina,PacBio,CG,10X,Solid;datasets=5;datasetnames=HiSeqPE300x,CCS15kb_20kb,CGnormal,10XChromiumLR,SolidSE75bp;callsets=7;callsetnames=HiSeqPE300xGATK,CCS15kb_20kbDV,CCS15kb_20kbGATK4,CGnormal,HiSeqPE300xfreebayes,10XLRGATK,SolidSE75GATKHC;datasetsmissingcall=IonExome;callable=CS_HiSeqPE300xGATK_callable,CS_CCS15kb_20kbDV_callable,CS_CCS15kb_20kbGATK4_callable,CS_CGnormal_callable,CS_HiSeqPE300xfreebayes_callable;filt=CS_10XLRGATK_filt GT:PS:DP:ADALL:AD:GQ 0/1:.:821:163,158:239,220:1004 chr19 54220024 . G *,A 50 PASS platforms=1;platformnames=PacBio;datasets=1;datasetnames=CCS15kb_20kb;callsets=1;callsetnames=CCS15kb_20kbGATK4;datasetsmissingcall=HiSeqPE300x,CCS15kb_20kb,10XChromiumLR,CGnormal,IonExome,SolidSE75bp;callable=CS_CCS15kb_20kbGATK4_callable;filt=CS_CCS15kb_20kbDV_filt,CS_10XLRGATK_filt,CS_HiSeqPE300xfreebayes_filt;difficultregion=HG001.hg38.300x.bam.bilkentuniv.010920.dups,hg38.segdups_sorted_merged GT:PS:DP:ADALL:AD:GQ 1/2:.:45:0,20,25:0,20,25:99 chr19 54220999 . A T 50 PASS platforms=1;platformnames=PacBio;datasets=1;datasetnames=CCS15kb_20kb;callsets=1;callsetnames=CCS15kb_20kbGATK4;datasetsmissingcall=HiSeqPE300x,CCS15kb_20kb,10XChromiumLR,CGnormal,IonExome,SolidSE75bp;callable=CS_CCS15kb_20kbGATK4_callable;filt=CS_CCS15kb_20kbDV_filt,CS_10XLRGATK_filt,CS_HiSeqPE300xfreebayes_filt;difficultregion=HG001.hg38.300x.bam.bilkentuniv.010920.dups,hg38.segdups_sorted_merged GT:PS:DP:ADALL:AD:GQ 0/1:.:45:0,20,25:0,20,25:99 -chr19 54221654 . A T,P 50 PASS platforms=1;platformnames=PacBio;datasets=1;datasetnames=CCS15kb_20kb;callsets=1;callsetnames=CCS15kb_20kbGATK4;datasetsmissingcall=HiSeqPE300x,CCS15kb_20kb,10XChromiumLR,CGnormal,IonExome,SolidSE75bp;callable=CS_CCS15kb_20kbGATK4_callable;filt=CS_CCS15kb_20kbDV_filt,CS_10XLRGATK_filt,CS_HiSeqPE300xfreebayes_filt;difficultregion=HG001.hg38.300x.bam.bilkentuniv.010920.dups,hg38.segdups_sorted_merged GT:PS:DP:ADALL:AD:GQ 0/1:.:45:0,20,25:0,20,25:99 \ No newline at end of file +chr19 54221654 . T A,P 50 PASS platforms=1;platformnames=PacBio;datasets=1;datasetnames=CCS15kb_20kb;callsets=1;callsetnames=CCS15kb_20kbGATK4;datasetsmissingcall=HiSeqPE300x,CCS15kb_20kb,10XChromiumLR,CGnormal,IonExome,SolidSE75bp;callable=CS_CCS15kb_20kbGATK4_callable;filt=CS_CCS15kb_20kbDV_filt,CS_10XLRGATK_filt,CS_HiSeqPE300xfreebayes_filt;difficultregion=HG001.hg38.300x.bam.bilkentuniv.010920.dups,hg38.segdups_sorted_merged GT:PS:DP:ADALL:AD:GQ 0/1:.:45:0,20,25:0,20,25:99 \ No newline at end of file From 13a45acf4d9533cbf3e3458ce3002497aae6ff4a Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Fri, 16 Feb 2024 15:30:50 -0500 Subject: [PATCH 14/21] update digests and message structure for trx test --- tests/extras/test_allele_translator.py | 220 ++++++++++--------------- tests/extras/test_cnv_translator.py | 171 +++++++++---------- 2 files changed, 169 insertions(+), 222 deletions(-) diff --git a/tests/extras/test_allele_translator.py b/tests/extras/test_allele_translator.py index 0c666e6c..fee5a3ee 100644 --- a/tests/extras/test_allele_translator.py +++ b/tests/extras/test_allele_translator.py @@ -267,80 +267,57 @@ def test_to_spdi(tlr): hgvs_tests = ( - ("NC_000013.11:g.32936732=", { - "id": "ga4gh:VA.GuDPEe-WojSx4b4DxupN3si1poaR61qL", - "location": { - "id": "ga4gh:SL.jnDT8dINDpAXO35MdLK-8KzLSDL-N3LI", - "end": 32936732, - "start": 32936731, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "sequence": "C", - "type": "LiteralSequenceExpression" - }, - "type": "Allele" - }), - ("NC_000007.14:g.55181320A>T", { - "id": "ga4gh:VA.hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw", - "location": { - "id": "ga4gh:SL.wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K", - "end": 55181320, - "start": 55181319, - "sequenceReference": { - "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "sequence": "T", - "type": "LiteralSequenceExpression" - }, - "type": "Allele" - }), - ("NC_000007.14:g.55181220del", { - "id": "ga4gh:VA.wlYnlMsWc0ZTPZb-nQv2dXHbFcXa6J9u", - "location": { - "id": "ga4gh:SL.hnIOG_kul0Lf3mO1ddTRFb0GbQhtQ19t", - "end": 55181220, - "start": 55181219, - "sequenceReference": { - "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "length": 0, - "repeatSubunitLength": 1, - "sequence": "", - "type": "ReferenceLengthExpression" - }, - "type": "Allele" - }), - ("NC_000007.14:g.55181230_55181231insGGCT", { - "id": "ga4gh:VA.lgVw2ZR6UnCLa3sjIMh2D72hQnn6Ksmk", - "location": { - "id": "ga4gh:SL.1lu5HsEX4eCQhhoJj_79fjr8H-i98wV3", - "end": 55181230, - "start": 55181230, - "sequenceReference": { - "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "sequence": "GGCT", - "type": "LiteralSequenceExpression" - }, - "type": "Allele" - }), + ("NC_000013.11:g.32936732=", + {'digest': 'GJ2JySBMXePcV2yItyvCfbGBUoawOBON', + 'id': 'ga4gh:VA.GJ2JySBMXePcV2yItyvCfbGBUoawOBON', + 'location': {'digest': '28YsnRvD40gKu1x3nev0gRzRz-5OTlpS', + 'end': 32936732, + 'id': 'ga4gh:SL.28YsnRvD40gKu1x3nev0gRzRz-5OTlpS', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32936731, + 'type': 'SequenceLocation'}, + 'state': {'sequence': 'C', 'type': 'LiteralSequenceExpression'}, + 'type': 'Allele'}), + ("NC_000007.14:g.55181320A>T", + {'digest': 'Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE', + 'id': 'ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE', + 'location': {'digest': '_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd', + 'end': 55181320, + 'id': 'ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd', + 'sequenceReference': {'refgetAccession': 'SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul', + 'type': 'SequenceReference'}, + 'start': 55181319, + 'type': 'SequenceLocation'}, + 'state': {'sequence': 'T', 'type': 'LiteralSequenceExpression'}, + 'type': 'Allele'}), + ("NC_000007.14:g.55181220del", + {'digest': 'klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu', + 'id': 'ga4gh:VA.klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu', + 'location': {'digest': 'ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V', + 'end': 55181220, + 'id': 'ga4gh:SL.ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V', + 'sequenceReference': {'refgetAccession': 'SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul', + 'type': 'SequenceReference'}, + 'start': 55181219, + 'type': 'SequenceLocation'}, + 'state': {'length': 0, + 'repeatSubunitLength': 1, + 'sequence': '', + 'type': 'ReferenceLengthExpression'}, + 'type': 'Allele'}), + ("NC_000007.14:g.55181230_55181231insGGCT", + {'digest': 'CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55', + 'id': 'ga4gh:VA.CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55', + 'location': {'digest': 'lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2', + 'end': 55181230, + 'id': 'ga4gh:SL.lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2', + 'sequenceReference': {'refgetAccession': 'SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul', + 'type': 'SequenceReference'}, + 'start': 55181230, + 'type': 'SequenceLocation'}, + 'state': {'sequence': 'GGCT', 'type': 'LiteralSequenceExpression'}, + 'type': 'Allele'}), ("NC_000013.11:g.32331093_32331094dup", { "id": "ga4gh:VA.x5iNzjjXbb1-wWTBLMBcicYlCMwYoedq", "location": { @@ -361,62 +338,45 @@ def test_to_spdi(tlr): }, "type": "Allele" }), - ("NC_000013.11:g.32316467dup", { - "id": "ga4gh:VA.ZAyA7Mmd7ERWN6CEd6muxn2mk_gTvEvF", - "location": { - "id": "ga4gh:SL.LURTeRdwh5bQf_QqPBoaA--MECYmrY5U", - "end": 32316467, - "start": 32316466, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "length": 2, - "repeatSubunitLength": 1, - "sequence": "AA", - "type": "ReferenceLengthExpression" - }, - "type": "Allele" - }), - ("NM_001331029.1:n.872A>G", { - "id": "ga4gh:VA.OKiSoD8f-I0VYwvn9xVGjLxrZ09WWQqK", - "location": { - "id": "ga4gh:SL.3flYcxCjrFFW3ex7GqcHLNH8agsKnz49", - "end": 872, - "start": 871, - "sequenceReference": { - "refgetAccession": "SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "sequence": "G", - "type": "LiteralSequenceExpression" - }, - "type": "Allele" - }), - ("NM_181798.1:n.1263G>T", { - "id": "ga4gh:VA.wEet5lX0qWJAPuya4MNZsw6ghNYJBSvi", - "location": { - "id": "ga4gh:SL.nAdMOa2ccNYPU-DEzzSzN1BaaKvEjYdX", - "end": 1263, - "start": 1262, - "sequenceReference": { - "refgetAccession": "SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "sequence": "T", - "type": "LiteralSequenceExpression" - }, - "type": "Allele" - }), + ("NC_000013.11:g.32316467dup", + {'digest': '96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT', + 'id': 'ga4gh:VA.96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT', + 'location': {'digest': 'fwfHu8VaD2-6Qvay9MJSINXPS767RYSw', + 'end': 32316467, + 'id': 'ga4gh:SL.fwfHu8VaD2-6Qvay9MJSINXPS767RYSw', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32316466, + 'type': 'SequenceLocation'}, + 'state': {'length': 2, + 'repeatSubunitLength': 1, + 'sequence': 'AA', + 'type': 'ReferenceLengthExpression'}, + 'type': 'Allele'}), + ("NM_001331029.1:n.872A>G", + {'digest': 'DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC', + 'id': 'ga4gh:VA.DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC', + 'location': {'digest': '7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY', + 'end': 872, + 'id': 'ga4gh:SL.7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY', + 'sequenceReference': {'refgetAccession': 'SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK', + 'type': 'SequenceReference'}, + 'start': 871, + 'type': 'SequenceLocation'}, + 'state': {'sequence': 'G', 'type': 'LiteralSequenceExpression'}, + 'type': 'Allele'}), + ("NM_181798.1:n.1263G>T", + {'digest': 'vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9', + 'id': 'ga4gh:VA.vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9', + 'location': {'digest': 'EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w', + 'end': 1263, + 'id': 'ga4gh:SL.EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w', + 'sequenceReference': {'refgetAccession': 'SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg', + 'type': 'SequenceReference'}, + 'start': 1262, + 'type': 'SequenceLocation'}, + 'state': {'sequence': 'T', 'type': 'LiteralSequenceExpression'}, + 'type': 'Allele'}), ) diff --git a/tests/extras/test_cnv_translator.py b/tests/extras/test_cnv_translator.py index b933a2c1..4793058e 100644 --- a/tests/extras/test_cnv_translator.py +++ b/tests/extras/test_cnv_translator.py @@ -16,66 +16,57 @@ def tlr(rest_dataproxy): from_hgvs_cx_tests = ( - ("NC_000013.11:g.26440969_26443305del", models.CopyChange.EFO_0030069, { - "id": "ga4gh:CX.UvIENZGNmCM5j38yHueYdd-BZLn-aLJM", - "location": { - "id": "ga4gh:SL.XBjSbazxe6h8lI14zfXIxqt6J718QEec", - "start": 26440968, - "end": 26443305, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copyChange": "efo:0030069", - "type": "CopyNumberChange" - }), - ("NC_000013.11:g.32379315_32379819del", None, { - "id": "ga4gh:CX.uUOl9g6TKESU5pFKvHuXyqY8jUEhEVWj", - "location": { - "id": "ga4gh:SL.i_sproJkj7zUS3zrzzOtQH6QxjmWMZmz", - "start": 32379314, - "end": 32379819, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copyChange": "efo:0030067", - "type": "CopyNumberChange" - }), - ("NC_000013.11:g.32332787_32333388dup", models.CopyChange.EFO_0030071, { - "id": "ga4gh:CX.lH7khAM3sm88wuXauCdIjGk5G-QXofwJ", - "location": { - "id": "ga4gh:SL.uXkfbPl7kyvoKNqN3Zy3LkeRP3LV0pEw", - "start": 32332786, - "end": 32333388, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copyChange": "efo:0030071", - "type": "CopyNumberChange" - }), - ("NC_000013.11:g.32344743_32352093dup", None, { - "id": "ga4gh:CX.bDt5kf-fa40r7jycFslnA5wGYET_6s2J", - "location": { - "id": "ga4gh:SL.OsTsPEe27fx-GUtI1cFCi_DpAinjPApm", - "start": 32344742, - "end": 32352093, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copyChange": "efo:0030070", - "type": "CopyNumberChange" - }) + ("NC_000013.11:g.26440969_26443305del", models.CopyChange.EFO_0030069, + {'copyChange': 'efo:0030069', + 'digest': 'TvAhuGK6HYf53mXoUnon60cZ7DC_UgM3', + 'id': 'ga4gh:CX.TvAhuGK6HYf53mXoUnon60cZ7DC_UgM3', + 'location': {'digest': '4akcjXlbAu4xBKnxjOL_b4DM_20HOCA3', + 'end': 26443305, + 'id': 'ga4gh:SL.4akcjXlbAu4xBKnxjOL_b4DM_20HOCA3', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 26440968, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberChange'}), + ("NC_000013.11:g.32379315_32379819del", None, + {'copyChange': 'efo:0030067', + 'digest': 'K1J2muiVvrDWqKnd5cMpFbTP0eJUfeuE', + 'id': 'ga4gh:CX.K1J2muiVvrDWqKnd5cMpFbTP0eJUfeuE', + 'location': {'digest': '_TUGA9kX6JKdXzUklgN2zWkOvNu5pNmV', + 'end': 32379819, + 'id': 'ga4gh:SL._TUGA9kX6JKdXzUklgN2zWkOvNu5pNmV', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32379314, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberChange'} + ), + ("NC_000013.11:g.32332787_32333388dup", models.CopyChange.EFO_0030071, + {'copyChange': 'efo:0030071', + 'digest': '5gODsVN83N1fe9Lc_Octy5rBlkYl8pGU', + 'id': 'ga4gh:CX.5gODsVN83N1fe9Lc_Octy5rBlkYl8pGU', + 'location': {'digest': 'UOA3zJOPfQxxRord_7pBkoMBpt46xcQq', + 'end': 32333388, + 'id': 'ga4gh:SL.UOA3zJOPfQxxRord_7pBkoMBpt46xcQq', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32332786, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberChange'} + ), + ("NC_000013.11:g.32344743_32352093dup", None, + {'copyChange': 'efo:0030070', + 'digest': '-sUe85R9UC_RxX7e_B1YsmsdyLsGvvmq', + 'id': 'ga4gh:CX.-sUe85R9UC_RxX7e_B1YsmsdyLsGvvmq', + 'location': {'digest': '17-a6p7m6QznwxZyVz2QdA9oPf5jTCyT', + 'end': 32352093, + 'id': 'ga4gh:SL.17-a6p7m6QznwxZyVz2QdA9oPf5jTCyT', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32344742, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberChange'} + ) ) @@ -84,40 +75,36 @@ def tlr(rest_dataproxy): def test_from_hgvs_cx(tlr, hgvsexpr ,copy_change, expected): """test that _from_hgvs works correctly for copy number change""" cx = tlr._from_hgvs(hgvsexpr, copy_change=copy_change) - assert expected == cx.model_dump(exclude_none=True) + assert cx.model_dump(exclude_none=True) == expected from_hgvs_cn_tests = ( - ("NC_000013.11:g.26440969_26443305del", 1, { - "id": "ga4gh:CN.tPLSlUBW6j2dVHv0G81U_IFXt4Xawo7J", - "location": { - "id": "ga4gh:SL.XBjSbazxe6h8lI14zfXIxqt6J718QEec", - "start": 26440968, - "end": 26443305, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copies": 1, - "type": "CopyNumberCount" - }), - ("NC_000013.11:g.32332787_32333388dup", 2, { - "id": "ga4gh:CN.OonsZ_O31GsaXwadjS759G9lbrzq_2SL", - "location": { - "id": "ga4gh:SL.uXkfbPl7kyvoKNqN3Zy3LkeRP3LV0pEw", - "start": 32332786, - "end": 32333388, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "copies": 2, - "type": "CopyNumberCount" - }), + ("NC_000013.11:g.26440969_26443305del", 1, + {'copies': 1, + 'digest': 'QnU97C-cRW431O9qWia9UCVRBDvGDH7I', + 'id': 'ga4gh:CN.QnU97C-cRW431O9qWia9UCVRBDvGDH7I', + 'location': {'digest': '4akcjXlbAu4xBKnxjOL_b4DM_20HOCA3', + 'end': 26443305, + 'id': 'ga4gh:SL.4akcjXlbAu4xBKnxjOL_b4DM_20HOCA3', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 26440968, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberCount'} + ), + ("NC_000013.11:g.32332787_32333388dup", 2, + {'copies': 2, + 'digest': 'a3aEKSzI46jK7_HRSpGNDap6Z1j_7kMM', + 'id': 'ga4gh:CN.a3aEKSzI46jK7_HRSpGNDap6Z1j_7kMM', + 'location': {'digest': 'UOA3zJOPfQxxRord_7pBkoMBpt46xcQq', + 'end': 32333388, + 'id': 'ga4gh:SL.UOA3zJOPfQxxRord_7pBkoMBpt46xcQq', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32332786, + 'type': 'SequenceLocation'}, + 'type': 'CopyNumberCount'} + ), ) @@ -126,4 +113,4 @@ def test_from_hgvs_cx(tlr, hgvsexpr ,copy_change, expected): def test_from_hgvs_cn(tlr, hgvsexpr ,copies, expected): """test that _from_hgvs works correctly for copy number count""" cn = tlr._from_hgvs(hgvsexpr, copies=copies) - assert expected == cn.model_dump(exclude_none=True) + assert cn.model_dump(exclude_none=True) == expected From e15837a0164c1016d26aa577cb3ae318dadb571e Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 01:14:32 -0500 Subject: [PATCH 15/21] Revert "Use LiteralSequenceExpression for ambiguous insertions that cannot be derived from the reference sequence" This reverts commit f407fd08dbec1025ecdb576174d5466ae66edbd7. --- src/ga4gh/vrs/normalize.py | 45 +++++++++----------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index 53e2d09d..a92a6723 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -5,7 +5,6 @@ """ import logging from enum import IntEnum -from itertools import cycle from typing import NamedTuple, Optional, Union from bioutils.normalize import normalize as _normalize, NormalizationMode @@ -177,53 +176,29 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): ) new_ref_seq = ref_seq[new_ival[0]: new_ival[1]] - new_alt_seq = new_alleles[1] - - if not new_ref_seq or ( - new_alt_seq - and _derive_seq_from_rle( - ref_seq, - new_allele.location.start, - len_ref_seq or len_alt_seq, - len(new_alt_seq), - ) - != new_alt_seq - ): - # If the reference sequence is empty this is an unambiguous insertion or - # If the reference sequence is not empty, but the alt sequence cannot be derived - # from the reference sequence + + if not new_ref_seq: + # If the reference sequence is empty this is an unambiguous insertion. # Return a new Allele with the trimmed alternate sequence as a Literal # Sequence Expression new_allele.state = models.LiteralSequenceExpression( - sequence=models.SequenceString(new_alt_seq) + sequence=models.SequenceString(new_alleles[1]) ) else: # Otherwise, return a new Allele using a RLE - # Use the ref/alt length from the trimmed allele, not the expanded form + len_sequence = len(new_alleles[1]) + new_allele.state = models.ReferenceLengthExpression( - length=len(new_alt_seq), repeatSubunitLength=len_ref_seq or len_alt_seq + length=len_sequence, + repeatSubunitLength=len_ref_seq or len_alt_seq ) - if (rle_seq_limit and len(new_alt_seq) <= rle_seq_limit) or ( - rle_seq_limit is None - ): - new_allele.state.sequence = models.SequenceString(new_alt_seq) + if (rle_seq_limit and len_sequence <= rle_seq_limit) or (rle_seq_limit is None): + new_allele.state.sequence = models.SequenceString(new_alleles[1]) return new_allele -def _derive_seq_from_rle( - ref_seq: SequenceProxy, start: int, repeatSubunitLength: int, length: int -): - end = start + repeatSubunitLength - subseq = ref_seq[start:end] - c = cycle(subseq) - derivedseq = "" - for i in range(length): - derivedseq += next(c) - return derivedseq - - # TODO _normalize_genotype? From 1ff0695a14d33ed894ac57adc56ab7f71293ddad Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 01:37:30 -0500 Subject: [PATCH 16/21] remove unnecessary try/except --- src/ga4gh/vrs/normalize.py | 65 ++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index a92a6723..5b97aa90 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -134,6 +134,7 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): except ValueError: # Occurs for ref agree Alleles (when alt = ref) len_ref_seq = len_alt_seq = 0 + # TODO: Return RLE for ref agree Alleles else: trim_ref_seq = ref_seq[trim_ival[0]: trim_ival[1]] trim_alt_seq = trim_alleles[1] @@ -157,44 +158,40 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): return new_allele # Determine bounds of ambiguity - try: - new_ival, new_alleles = _normalize( - ref_seq, - trim_ival, - (None, trim_alleles[1]), - mode=NormalizationMode.EXPAND + new_ival, new_alleles = _normalize( + ref_seq, + trim_ival, + (None, trim_alleles[1]), + mode=NormalizationMode.EXPAND + ) + + new_allele.location.start = _get_new_allele_location_pos( + new_ival[0], start.pos_type + ) + new_allele.location.end = _get_new_allele_location_pos( + new_ival[1], end.pos_type + ) + + new_ref_seq = ref_seq[new_ival[0]: new_ival[1]] + + if not new_ref_seq: + # If the reference sequence is empty this is an unambiguous insertion. + # Return a new Allele with the trimmed alternate sequence as a Literal + # Sequence Expression + new_allele.state = models.LiteralSequenceExpression( + sequence=models.SequenceString(new_alleles[1]) ) - except ValueError: - # Occurs for ref agree Alleles (when alt = ref) - pass else: - new_allele.location.start = _get_new_allele_location_pos( - new_ival[0], start.pos_type - ) - new_allele.location.end = _get_new_allele_location_pos( - new_ival[1], end.pos_type + # Otherwise, return a new Allele using a RLE + len_sequence = len(new_alleles[1]) + + new_allele.state = models.ReferenceLengthExpression( + length=len_sequence, + repeatSubunitLength=len_ref_seq or len_alt_seq ) - new_ref_seq = ref_seq[new_ival[0]: new_ival[1]] - - if not new_ref_seq: - # If the reference sequence is empty this is an unambiguous insertion. - # Return a new Allele with the trimmed alternate sequence as a Literal - # Sequence Expression - new_allele.state = models.LiteralSequenceExpression( - sequence=models.SequenceString(new_alleles[1]) - ) - else: - # Otherwise, return a new Allele using a RLE - len_sequence = len(new_alleles[1]) - - new_allele.state = models.ReferenceLengthExpression( - length=len_sequence, - repeatSubunitLength=len_ref_seq or len_alt_seq - ) - - if (rle_seq_limit and len_sequence <= rle_seq_limit) or (rle_seq_limit is None): - new_allele.state.sequence = models.SequenceString(new_alleles[1]) + if (rle_seq_limit and len_sequence <= rle_seq_limit) or (rle_seq_limit is None): + new_allele.state.sequence = models.SequenceString(new_alleles[1]) return new_allele From 96d98cd34fc1c434d81ae578bbfaaebb41009428 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 02:23:53 -0500 Subject: [PATCH 17/21] check insertions for ambiguous novel sequence --- src/ga4gh/vrs/normalize.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index 5b97aa90..0c929f86 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -4,6 +4,7 @@ """ import logging +import math from enum import IntEnum from typing import NamedTuple, Optional, Union @@ -182,15 +183,30 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): sequence=models.SequenceString(new_alleles[1]) ) else: - # Otherwise, return a new Allele using a RLE - len_sequence = len(new_alleles[1]) - + # Otherwise, calculate the repeat subunit length and determine if this is + # an RLE allele. + len_extended_alt = len(new_alleles[1]) + len_extended_ref = len(new_ref_seq) + repeat_subunit_length = math.gcd(len_extended_ref, len_extended_alt) + + if len_extended_alt > len_extended_ref: + repeat_sequence = new_ref_seq[:repeat_subunit_length] + x = len_extended_alt // repeat_subunit_length + if repeat_sequence * x != new_alleles[1]: + # if this is an ambiguous insertion of novel sequence + # create a new allele with a Literal Sequence Expression + new_allele.state = models.LiteralSequenceExpression( + sequence=models.SequenceString(new_alleles[1]) + ) + return new_allele + + # Otherwise, create the Allele as an RLE new_allele.state = models.ReferenceLengthExpression( - length=len_sequence, - repeatSubunitLength=len_ref_seq or len_alt_seq + length=len_extended_alt, + repeatSubunitLength=repeat_subunit_length ) - if (rle_seq_limit and len_sequence <= rle_seq_limit) or (rle_seq_limit is None): + if (rle_seq_limit and len_extended_alt <= rle_seq_limit) or (rle_seq_limit is None): new_allele.state.sequence = models.SequenceString(new_alleles[1]) return new_allele From 980678435b13257bd2bdf17efa2bac3e900ca089 Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 02:34:53 -0500 Subject: [PATCH 18/21] update test cassettes --- .../test_annotate_vcf_grch37_attrs.yaml | 320 ++---- .../test_annotate_vcf_grch38_attrs.yaml | 232 ++-- ...st_annotate_vcf_grch38_attrs_altsonly.yaml | 232 ++-- .../test_annotate_vcf_grch38_noattrs.yaml | 232 ++-- .../test_annotate_vcf_pickle_only.yaml | 232 ++-- .../cassettes/test_annotate_vcf_vcf_only.yaml | 232 ++-- .../test_data_proxies[rest_dataproxy].yaml | 16 +- tests/extras/cassettes/test_from_beacon.yaml | 4 +- tests/extras/cassettes/test_from_gnomad.yaml | 1008 +++-------------- tests/extras/cassettes/test_from_hgvs.yaml | 12 +- .../test_get_vrs_object_invalid_input.yaml | 75 +- ...NC_000007.14:g.55181220del-expected2].yaml | 209 +--- ...g.55181230_55181231insGGCT-expected3].yaml | 241 +--- ...NC_000007.14:g.55181320A>T-expected1].yaml | 176 +-- ...NC_000013.11:g.32316467dup-expected5].yaml | 266 +---- ....11:g.32331093_32331094dup-expected4].yaml | 286 +---- ...s[NC_000013.11:g.32936732=-expected0].yaml | 160 +-- ...vs[NM_001331029.1:n.872A>G-expected6].yaml | 133 +-- ...hgvs[NM_181798.1:n.1263G>T-expected7].yaml | 133 +-- ..._000007.14:g.55181220del-vo_as_dict2].yaml | 44 +- ...55181230_55181231insGGCT-vo_as_dict3].yaml | 44 +- ..._000007.14:g.55181320A>T-vo_as_dict1].yaml | 44 +- ..._000013.11:g.32316467dup-vo_as_dict5].yaml | 44 +- ...1:g.32331093_32331094dup-vo_as_dict4].yaml | 45 +- ...NC_000013.11:g.32936732=-vo_as_dict0].yaml | 44 +- ...[NM_001331029.1:n.872A>G-vo_as_dict6].yaml | 43 +- ...vs[NM_181798.1:n.1263G>T-vo_as_dict7].yaml | 43 +- tests/extras/cassettes/test_to_spdi.yaml | 146 --- tests/extras/test_allele_translator.py | 43 +- 29 files changed, 1234 insertions(+), 3505 deletions(-) delete mode 100644 tests/extras/cassettes/test_to_spdi.yaml diff --git a/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml index ea46a950..5ec3534d 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch37_attrs.yaml @@ -1,5 +1,4 @@ interactions: -# Begin initialize data proxy metadata - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh37:chr19 response: @@ -30,17 +29,16 @@ interactions: Connection: - close Content-Length: - - '1035' + - '820' Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -51,7 +49,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=82663&end=82664 response: @@ -65,7 +63,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -81,7 +79,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX response: @@ -105,7 +103,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -121,7 +119,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=82663&end=82664 response: @@ -135,13 +133,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -152,7 +149,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=284349&end=284351 response: @@ -166,7 +163,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -182,7 +179,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284349&end=284351 response: @@ -196,7 +193,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -212,7 +209,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284350&end=284351 response: @@ -226,7 +223,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -242,7 +239,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284349&end=284350 response: @@ -256,7 +253,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -272,7 +269,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284351&end=284352 response: @@ -286,7 +283,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -302,7 +299,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284352&end=284353 response: @@ -316,7 +313,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -332,7 +329,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284353&end=284354 response: @@ -346,7 +343,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -362,7 +359,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284354&end=284355 response: @@ -376,7 +373,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -392,7 +389,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284355&end=284356 response: @@ -406,7 +403,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -422,7 +419,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284356&end=284357 response: @@ -436,7 +433,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -452,7 +449,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284357&end=284358 response: @@ -466,7 +463,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -482,7 +479,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284358&end=284359 response: @@ -496,7 +493,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -512,7 +509,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284359&end=284360 response: @@ -526,7 +523,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -542,7 +539,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284360&end=284361 response: @@ -556,7 +553,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -572,7 +569,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284361&end=284362 response: @@ -586,7 +583,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -602,7 +599,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284362&end=284363 response: @@ -616,7 +613,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -632,7 +629,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284363&end=284364 response: @@ -646,7 +643,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -662,7 +659,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284364&end=284365 response: @@ -676,7 +673,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -692,7 +689,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284365&end=284366 response: @@ -706,7 +703,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -722,7 +719,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284366&end=284367 response: @@ -736,7 +733,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -752,7 +749,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284350&end=284350 response: @@ -766,7 +763,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -782,7 +779,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284351&end=284366 response: @@ -796,7 +793,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -812,7 +809,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=284350&end=284366 response: @@ -826,13 +823,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 289464 - request: body: null headers: @@ -843,7 +839,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=289463&end=289464 response: @@ -857,7 +853,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -873,7 +869,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289463&end=289464 response: @@ -887,7 +883,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:00 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -903,7 +899,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289464&end=289464 response: @@ -917,7 +913,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -933,7 +929,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289464&end=289465 response: @@ -947,7 +943,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -963,7 +959,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289465&end=289466 response: @@ -977,7 +973,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -993,7 +989,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289466&end=289467 response: @@ -1007,7 +1003,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1023,7 +1019,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289464&end=289466 response: @@ -1037,7 +1033,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1053,73 +1049,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -# Begin VCF row chr19 28946400 -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=28946399&end=28946400 response: body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:59 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=28946399&end=28946400 - response: - body: - string: T + string: A headers: Connection: - close @@ -1128,13 +1063,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 490414 - request: body: null headers: @@ -1145,7 +1079,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=490413&end=490416 response: @@ -1159,7 +1093,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1175,7 +1109,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490413&end=490416 response: @@ -1189,7 +1123,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1205,7 +1139,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490414&end=490416 response: @@ -1219,7 +1153,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1235,7 +1169,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490413&end=490414 response: @@ -1249,7 +1183,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1265,7 +1199,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490416&end=490417 response: @@ -1279,7 +1213,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1295,7 +1229,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490414&end=490414 response: @@ -1309,7 +1243,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1325,7 +1259,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=490416&end=490416 response: @@ -1339,13 +1273,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:57:01 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220024 - request: body: null headers: @@ -1356,42 +1289,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=54220023&end=54220024 response: body: - string: G - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:59 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=54220023&end=54220024 - response: - body: - string: G + string: T headers: Connection: - close @@ -1400,13 +1303,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:59 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1319,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=54220998&end=54220999 response: body: - string: C + string: G headers: Connection: - close @@ -1431,13 +1333,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,12 +1349,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh37:chr19?start=54221653&end=54221654 response: body: - string: T + string: A headers: Connection: - close @@ -1462,39 +1363,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.ItRDD47aMoioDCNW_occY5fWKZBKlxCX?start=54221653&end=54221654 - response: - body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:56 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK \ No newline at end of file +version: 1 diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml index 3584837d..188ab8a1 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs.yaml @@ -1,5 +1,4 @@ interactions: -# Initialize metadata for data proxy - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:chr19 response: @@ -36,13 +35,12 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -53,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=82663&end=82664 response: @@ -67,7 +65,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -83,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -109,7 +107,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -125,7 +123,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=82663&end=82664 response: @@ -139,13 +137,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -156,7 +153,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=284349&end=284351 response: @@ -170,7 +167,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -186,7 +183,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284351 response: @@ -200,7 +197,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -216,7 +213,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284351 response: @@ -230,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -246,7 +243,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284350 response: @@ -260,7 +257,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -276,7 +273,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284352 response: @@ -290,7 +287,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -306,7 +303,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284352&end=284353 response: @@ -320,7 +317,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -336,7 +333,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284353&end=284354 response: @@ -350,7 +347,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -366,7 +363,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284354&end=284355 response: @@ -380,7 +377,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -396,7 +393,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284355&end=284356 response: @@ -410,7 +407,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -426,7 +423,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284356&end=284357 response: @@ -440,7 +437,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -456,7 +453,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284357&end=284358 response: @@ -470,7 +467,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -486,7 +483,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284358&end=284359 response: @@ -500,7 +497,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -516,7 +513,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284359&end=284360 response: @@ -530,7 +527,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -546,7 +543,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284360&end=284361 response: @@ -560,7 +557,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -576,7 +573,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284361&end=284362 response: @@ -590,7 +587,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -606,7 +603,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284362&end=284363 response: @@ -620,7 +617,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -636,7 +633,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284363&end=284364 response: @@ -650,7 +647,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -666,7 +663,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284364&end=284365 response: @@ -680,7 +677,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -696,7 +693,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284365&end=284366 response: @@ -710,7 +707,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -726,7 +723,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284366&end=284367 response: @@ -740,7 +737,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -756,7 +753,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284350 response: @@ -770,7 +767,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -786,7 +783,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284366 response: @@ -800,7 +797,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -816,7 +813,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284366 response: @@ -830,7 +827,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -846,7 +843,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=289463&end=289464 response: @@ -860,7 +857,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -876,7 +873,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289463&end=289464 response: @@ -890,7 +887,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -906,7 +903,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289464 response: @@ -920,7 +917,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -936,7 +933,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289465 response: @@ -950,7 +947,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -966,7 +963,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289465&end=289466 response: @@ -980,7 +977,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -996,7 +993,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289466&end=289467 response: @@ -1010,7 +1007,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1026,7 +1023,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289466 response: @@ -1040,7 +1037,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1056,37 +1053,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=28946399&end=28946400 response: @@ -1100,7 +1067,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1116,7 +1083,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=28946399&end=28946400 response: @@ -1130,7 +1097,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1146,7 +1113,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=490413&end=490416 response: @@ -1160,7 +1127,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1176,7 +1143,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490416 response: @@ -1190,7 +1157,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1206,7 +1173,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490416 response: @@ -1220,7 +1187,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1236,7 +1203,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490414 response: @@ -1250,7 +1217,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1266,7 +1233,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490417 response: @@ -1280,7 +1247,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1296,7 +1263,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490414 response: @@ -1310,7 +1277,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1326,7 +1293,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490416 response: @@ -1340,7 +1307,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1356,7 +1323,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220023&end=54220024 response: @@ -1370,7 +1337,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1386,7 +1353,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54220023&end=54220024 response: @@ -1400,13 +1367,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1383,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220998&end=54220999 response: body: - string: C + string: T headers: Connection: - close @@ -1431,13 +1397,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,7 +1413,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: @@ -1462,7 +1427,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1478,7 +1443,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: @@ -1492,9 +1457,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 - message: OK \ No newline at end of file + message: OK +version: 1 diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml index 3584837d..575c8114 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_attrs_altsonly.yaml @@ -1,5 +1,4 @@ interactions: -# Initialize metadata for data proxy - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:chr19 response: @@ -36,13 +35,12 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -53,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=82663&end=82664 response: @@ -67,7 +65,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -83,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -109,7 +107,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -125,7 +123,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=82663&end=82664 response: @@ -139,13 +137,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -156,7 +153,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=284349&end=284351 response: @@ -170,7 +167,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -186,7 +183,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284351 response: @@ -200,7 +197,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -216,7 +213,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284351 response: @@ -230,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -246,7 +243,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284350 response: @@ -260,7 +257,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -276,7 +273,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284352 response: @@ -290,7 +287,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -306,7 +303,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284352&end=284353 response: @@ -320,7 +317,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -336,7 +333,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284353&end=284354 response: @@ -350,7 +347,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -366,7 +363,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284354&end=284355 response: @@ -380,7 +377,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -396,7 +393,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284355&end=284356 response: @@ -410,7 +407,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -426,7 +423,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284356&end=284357 response: @@ -440,7 +437,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -456,7 +453,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284357&end=284358 response: @@ -470,7 +467,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -486,7 +483,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284358&end=284359 response: @@ -500,7 +497,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -516,7 +513,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284359&end=284360 response: @@ -530,7 +527,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -546,7 +543,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284360&end=284361 response: @@ -560,7 +557,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -576,7 +573,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284361&end=284362 response: @@ -590,7 +587,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -606,7 +603,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284362&end=284363 response: @@ -620,7 +617,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -636,7 +633,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284363&end=284364 response: @@ -650,7 +647,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -666,7 +663,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284364&end=284365 response: @@ -680,7 +677,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -696,7 +693,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284365&end=284366 response: @@ -710,7 +707,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -726,7 +723,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284366&end=284367 response: @@ -740,7 +737,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -756,7 +753,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284350 response: @@ -770,7 +767,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -786,7 +783,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284366 response: @@ -800,7 +797,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -816,7 +813,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284366 response: @@ -830,7 +827,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -846,7 +843,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=289463&end=289464 response: @@ -860,7 +857,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -876,7 +873,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289463&end=289464 response: @@ -890,7 +887,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -906,7 +903,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289464 response: @@ -920,7 +917,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -936,7 +933,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289465 response: @@ -950,7 +947,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -966,7 +963,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289465&end=289466 response: @@ -980,7 +977,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -996,7 +993,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289466&end=289467 response: @@ -1010,7 +1007,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1026,7 +1023,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289466 response: @@ -1040,7 +1037,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1056,37 +1053,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=28946399&end=28946400 response: @@ -1100,7 +1067,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1116,7 +1083,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=28946399&end=28946400 response: @@ -1130,7 +1097,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1146,7 +1113,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=490413&end=490416 response: @@ -1160,7 +1127,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1176,7 +1143,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490416 response: @@ -1190,7 +1157,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1206,7 +1173,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490416 response: @@ -1220,7 +1187,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1236,7 +1203,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490414 response: @@ -1250,7 +1217,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1266,7 +1233,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490417 response: @@ -1280,7 +1247,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1296,7 +1263,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490414 response: @@ -1310,7 +1277,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1326,7 +1293,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490416 response: @@ -1340,7 +1307,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1356,7 +1323,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220023&end=54220024 response: @@ -1370,7 +1337,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1386,7 +1353,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54220023&end=54220024 response: @@ -1400,13 +1367,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1383,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220998&end=54220999 response: body: - string: C + string: T headers: Connection: - close @@ -1431,13 +1397,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,7 +1413,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: @@ -1462,7 +1427,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1478,7 +1443,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: @@ -1492,9 +1457,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 - message: OK \ No newline at end of file + message: OK +version: 1 diff --git a/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml b/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml index 3584837d..8384a831 100644 --- a/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_grch38_noattrs.yaml @@ -1,5 +1,4 @@ interactions: -# Initialize metadata for data proxy - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:chr19 response: @@ -36,13 +35,12 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -53,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=82663&end=82664 response: @@ -67,7 +65,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -83,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -109,7 +107,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -125,7 +123,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=82663&end=82664 response: @@ -139,13 +137,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -156,7 +153,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=284349&end=284351 response: @@ -170,7 +167,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -186,7 +183,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284351 response: @@ -200,7 +197,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -216,7 +213,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284351 response: @@ -230,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -246,7 +243,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284350 response: @@ -260,7 +257,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -276,7 +273,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284352 response: @@ -290,7 +287,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -306,7 +303,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284352&end=284353 response: @@ -320,7 +317,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -336,7 +333,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284353&end=284354 response: @@ -350,7 +347,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -366,7 +363,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284354&end=284355 response: @@ -380,7 +377,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -396,7 +393,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284355&end=284356 response: @@ -410,7 +407,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -426,7 +423,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284356&end=284357 response: @@ -440,7 +437,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -456,7 +453,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284357&end=284358 response: @@ -470,7 +467,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -486,7 +483,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284358&end=284359 response: @@ -500,7 +497,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -516,7 +513,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284359&end=284360 response: @@ -530,7 +527,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -546,7 +543,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284360&end=284361 response: @@ -560,7 +557,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -576,7 +573,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284361&end=284362 response: @@ -590,7 +587,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -606,7 +603,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284362&end=284363 response: @@ -620,7 +617,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -636,7 +633,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284363&end=284364 response: @@ -650,7 +647,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -666,7 +663,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284364&end=284365 response: @@ -680,7 +677,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -696,7 +693,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284365&end=284366 response: @@ -710,7 +707,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -726,7 +723,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284366&end=284367 response: @@ -740,7 +737,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -756,7 +753,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284350 response: @@ -770,7 +767,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -786,7 +783,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284366 response: @@ -800,7 +797,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -816,7 +813,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284366 response: @@ -830,7 +827,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -846,7 +843,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=289463&end=289464 response: @@ -860,7 +857,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -876,7 +873,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289463&end=289464 response: @@ -890,7 +887,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -906,7 +903,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289464 response: @@ -920,7 +917,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -936,7 +933,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289465 response: @@ -950,7 +947,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -966,7 +963,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289465&end=289466 response: @@ -980,7 +977,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -996,7 +993,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289466&end=289467 response: @@ -1010,7 +1007,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1026,7 +1023,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289466 response: @@ -1040,7 +1037,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1056,37 +1053,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=28946399&end=28946400 response: @@ -1100,7 +1067,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1116,7 +1083,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=28946399&end=28946400 response: @@ -1130,7 +1097,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1146,7 +1113,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=490413&end=490416 response: @@ -1160,7 +1127,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1176,7 +1143,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490416 response: @@ -1190,7 +1157,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1206,7 +1173,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490416 response: @@ -1220,7 +1187,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1236,7 +1203,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490414 response: @@ -1250,7 +1217,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1266,7 +1233,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490417 response: @@ -1280,7 +1247,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1296,7 +1263,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490414 response: @@ -1310,7 +1277,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1326,7 +1293,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490416 response: @@ -1340,7 +1307,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1356,7 +1323,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220023&end=54220024 response: @@ -1370,7 +1337,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:45 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1386,7 +1353,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54220023&end=54220024 response: @@ -1400,13 +1367,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1383,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220998&end=54220999 response: body: - string: C + string: T headers: Connection: - close @@ -1431,13 +1397,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,7 +1413,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: @@ -1462,7 +1427,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1478,7 +1443,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: @@ -1492,9 +1457,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:46 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 - message: OK \ No newline at end of file + message: OK +version: 1 diff --git a/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml b/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml index 3584837d..12ad681a 100644 --- a/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_pickle_only.yaml @@ -1,5 +1,4 @@ interactions: -# Initialize metadata for data proxy - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:chr19 response: @@ -36,13 +35,12 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -53,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=82663&end=82664 response: @@ -67,7 +65,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -83,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -109,7 +107,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -125,7 +123,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=82663&end=82664 response: @@ -139,13 +137,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -156,7 +153,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=284349&end=284351 response: @@ -170,7 +167,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -186,7 +183,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284351 response: @@ -200,7 +197,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -216,7 +213,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284351 response: @@ -230,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:47 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -246,7 +243,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284350 response: @@ -260,7 +257,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -276,7 +273,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284352 response: @@ -290,7 +287,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -306,7 +303,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284352&end=284353 response: @@ -320,7 +317,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -336,7 +333,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284353&end=284354 response: @@ -350,7 +347,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -366,7 +363,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284354&end=284355 response: @@ -380,7 +377,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -396,7 +393,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284355&end=284356 response: @@ -410,7 +407,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -426,7 +423,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284356&end=284357 response: @@ -440,7 +437,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -456,7 +453,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284357&end=284358 response: @@ -470,7 +467,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -486,7 +483,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284358&end=284359 response: @@ -500,7 +497,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -516,7 +513,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284359&end=284360 response: @@ -530,7 +527,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -546,7 +543,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284360&end=284361 response: @@ -560,7 +557,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -576,7 +573,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284361&end=284362 response: @@ -590,7 +587,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -606,7 +603,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284362&end=284363 response: @@ -620,7 +617,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -636,7 +633,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284363&end=284364 response: @@ -650,7 +647,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -666,7 +663,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284364&end=284365 response: @@ -680,7 +677,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -696,7 +693,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284365&end=284366 response: @@ -710,7 +707,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -726,7 +723,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284366&end=284367 response: @@ -740,7 +737,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -756,7 +753,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284350 response: @@ -770,7 +767,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -786,7 +783,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284366 response: @@ -800,7 +797,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -816,7 +813,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284366 response: @@ -830,7 +827,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -846,7 +843,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=289463&end=289464 response: @@ -860,7 +857,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -876,7 +873,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289463&end=289464 response: @@ -890,7 +887,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -906,7 +903,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289464 response: @@ -920,7 +917,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -936,7 +933,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289465 response: @@ -950,7 +947,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -966,7 +963,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289465&end=289466 response: @@ -980,7 +977,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -996,7 +993,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289466&end=289467 response: @@ -1010,7 +1007,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1026,7 +1023,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289466 response: @@ -1040,7 +1037,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1056,37 +1053,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=28946399&end=28946400 response: @@ -1100,7 +1067,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1116,7 +1083,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=28946399&end=28946400 response: @@ -1130,7 +1097,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1146,7 +1113,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=490413&end=490416 response: @@ -1160,7 +1127,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1176,7 +1143,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490416 response: @@ -1190,7 +1157,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1206,7 +1173,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490416 response: @@ -1220,7 +1187,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1236,7 +1203,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490414 response: @@ -1250,7 +1217,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1266,7 +1233,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490417 response: @@ -1280,7 +1247,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1296,7 +1263,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490414 response: @@ -1310,7 +1277,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1326,7 +1293,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490416 response: @@ -1340,7 +1307,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1356,7 +1323,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220023&end=54220024 response: @@ -1370,7 +1337,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1386,7 +1353,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54220023&end=54220024 response: @@ -1400,13 +1367,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1383,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220998&end=54220999 response: body: - string: C + string: T headers: Connection: - close @@ -1431,13 +1397,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,7 +1413,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: @@ -1462,7 +1427,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1478,7 +1443,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: @@ -1492,9 +1457,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 - message: OK \ No newline at end of file + message: OK +version: 1 diff --git a/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml b/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml index 3584837d..5329b57c 100644 --- a/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml +++ b/tests/extras/cassettes/test_annotate_vcf_vcf_only.yaml @@ -1,5 +1,4 @@ interactions: -# Initialize metadata for data proxy - request: body: null headers: @@ -10,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:chr19 response: @@ -36,13 +35,12 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 82664 - request: body: null headers: @@ -53,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=82663&end=82664 response: @@ -67,7 +65,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -83,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -109,7 +107,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -125,7 +123,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=82663&end=82664 response: @@ -139,13 +137,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 284350 - request: body: null headers: @@ -156,7 +153,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=284349&end=284351 response: @@ -170,7 +167,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -186,7 +183,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284351 response: @@ -200,7 +197,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -216,7 +213,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284351 response: @@ -230,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -246,7 +243,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284349&end=284350 response: @@ -260,7 +257,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -276,7 +273,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284352 response: @@ -290,7 +287,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -306,7 +303,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284352&end=284353 response: @@ -320,7 +317,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -336,7 +333,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284353&end=284354 response: @@ -350,7 +347,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -366,7 +363,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284354&end=284355 response: @@ -380,7 +377,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -396,7 +393,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284355&end=284356 response: @@ -410,7 +407,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -426,7 +423,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284356&end=284357 response: @@ -440,7 +437,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -456,7 +453,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284357&end=284358 response: @@ -470,7 +467,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -486,7 +483,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284358&end=284359 response: @@ -500,7 +497,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -516,7 +513,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284359&end=284360 response: @@ -530,7 +527,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -546,7 +543,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284360&end=284361 response: @@ -560,7 +557,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -576,7 +573,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284361&end=284362 response: @@ -590,7 +587,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -606,7 +603,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284362&end=284363 response: @@ -620,7 +617,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -636,7 +633,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284363&end=284364 response: @@ -650,7 +647,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -666,7 +663,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284364&end=284365 response: @@ -680,7 +677,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -696,7 +693,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284365&end=284366 response: @@ -710,7 +707,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -726,7 +723,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284366&end=284367 response: @@ -740,7 +737,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -756,7 +753,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284350 response: @@ -770,7 +767,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -786,7 +783,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284351&end=284366 response: @@ -800,7 +797,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -816,7 +813,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=284350&end=284366 response: @@ -830,7 +827,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -846,7 +843,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=289463&end=289464 response: @@ -860,7 +857,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -876,7 +873,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289463&end=289464 response: @@ -890,7 +887,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -906,7 +903,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289464 response: @@ -920,7 +917,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -936,7 +933,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289465 response: @@ -950,7 +947,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -966,7 +963,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289465&end=289466 response: @@ -980,7 +977,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -996,7 +993,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289466&end=289467 response: @@ -1010,7 +1007,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1026,7 +1023,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289466 response: @@ -1040,7 +1037,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1056,37 +1053,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=289464&end=289478 - response: - body: - string: CAGCACTTTGGGAG - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 14:56:57 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=28946399&end=28946400 response: @@ -1100,7 +1067,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1116,7 +1083,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=28946399&end=28946400 response: @@ -1130,7 +1097,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1146,7 +1113,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=490413&end=490416 response: @@ -1160,7 +1127,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1176,7 +1143,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490416 response: @@ -1190,7 +1157,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1206,7 +1173,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490416 response: @@ -1220,7 +1187,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1236,7 +1203,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490413&end=490414 response: @@ -1250,7 +1217,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:57 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1266,7 +1233,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490417 response: @@ -1280,7 +1247,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1296,7 +1263,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490414&end=490414 response: @@ -1310,7 +1277,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1326,7 +1293,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=490416&end=490416 response: @@ -1340,7 +1307,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1356,7 +1323,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220023&end=54220024 response: @@ -1370,7 +1337,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1386,7 +1353,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54220023&end=54220024 response: @@ -1400,13 +1367,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:58 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54220999 - request: body: null headers: @@ -1417,12 +1383,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54220998&end=54220999 response: body: - string: C + string: T headers: Connection: - close @@ -1431,13 +1397,12 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 message: OK -# Begin VCF row chr19 54221654 - request: body: null headers: @@ -1448,7 +1413,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:chr19?start=54221653&end=54221654 response: @@ -1462,7 +1427,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:48 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1478,7 +1443,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=54221653&end=54221654 response: @@ -1492,9 +1457,10 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Tue, 19 Sep 2023 14:56:56 GMT + - Mon, 19 Feb 2024 07:31:49 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 200 - message: OK \ No newline at end of file + message: OK +version: 1 diff --git a/tests/extras/cassettes/test_data_proxies[rest_dataproxy].yaml b/tests/extras/cassettes/test_data_proxies[rest_dataproxy].yaml index 6dea5590..8865699e 100644 --- a/tests/extras/cassettes/test_data_proxies[rest_dataproxy].yaml +++ b/tests/extras/cassettes/test_data_proxies[rest_dataproxy].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.28.1 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/NM_000551.3 response: @@ -27,7 +27,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 19 Sep 2022 15:07:29 GMT + - Mon, 19 Feb 2024 07:31:30 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -43,7 +43,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.28.1 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/NC_000013.11 response: @@ -69,7 +69,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 19 Sep 2022 15:07:29 GMT + - Mon, 19 Feb 2024 07:31:30 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -85,7 +85,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.28.1 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.v_QTc1p-MUYdgrRv4LMT6ByXIOsdw3C_ response: @@ -99,7 +99,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 19 Sep 2022 15:07:29 GMT + - Mon, 19 Feb 2024 07:31:30 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -115,7 +115,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.28.1 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.v_QTc1p-MUYdgrRv4LMT6ByXIOsdw3C_?start=0&end=50 response: @@ -129,7 +129,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 19 Sep 2022 15:07:29 GMT + - Mon, 19 Feb 2024 07:31:30 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: diff --git a/tests/extras/cassettes/test_from_beacon.yaml b/tests/extras/cassettes/test_from_beacon.yaml index db1f7b19..019b55b4 100644 --- a/tests/extras/cassettes/test_from_beacon.yaml +++ b/tests/extras/cassettes/test_from_beacon.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:19 response: @@ -35,7 +35,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:33 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: diff --git a/tests/extras/cassettes/test_from_gnomad.yaml b/tests/extras/cassettes/test_from_gnomad.yaml index d5a2bc94..bacd5104 100644 --- a/tests/extras/cassettes/test_from_gnomad.yaml +++ b/tests/extras/cassettes/test_from_gnomad.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:19?start=44908821&end=44908822 response: @@ -23,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:31 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -39,7 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:13 response: @@ -65,7 +65,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Nov 2023 21:12:31 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -81,7 +81,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=20003095&end=20003097 response: @@ -95,7 +95,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:31 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -111,7 +111,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=20003009&end=20003010 response: @@ -125,7 +125,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:31 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -141,7 +141,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=19993837&end=19993839 response: @@ -155,7 +155,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:31 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -171,37 +171,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:19?start=44908821&end=44908822 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:31 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl response: @@ -211,557 +181,23 @@ interactions: \ \"GRCh38.p1:chr19\",\n \"GRCh38.p10:19\",\n \"GRCh38.p10:chr19\",\n \ \"GRCh38.p11:19\",\n \"GRCh38.p11:chr19\",\n \"GRCh38.p12:19\",\n \ \"GRCh38.p12:chr19\",\n \"GRCh38.p2:19\",\n \"GRCh38.p2:chr19\",\n - \ \"GRCh38.p3:19\",\n \"GRCh38.p3:chr19\",\n \"GRCh38.p4:19\",\n \"GRCh38.p4:chr19\",\n - \ \"GRCh38.p5:19\",\n \"GRCh38.p5:chr19\",\n \"GRCh38.p6:19\",\n \"GRCh38.p6:chr19\",\n - \ \"GRCh38.p7:19\",\n \"GRCh38.p7:chr19\",\n \"GRCh38.p8:19\",\n \"GRCh38.p8:chr19\",\n - \ \"GRCh38.p9:19\",\n \"GRCh38.p9:chr19\",\n \"MD5:b0eba2c7bb5c953d1e06a508b5e487de\",\n - \ \"NCBI:NC_000019.10\",\n \"refseq:NC_000019.10\",\n \"SEGUID:AHxM5/L8jIX08UhBBkKXkiO5rhY\",\n - \ \"SHA1:007c4ce7f2fc8c85f4f148410642979223b9ae16\",\n \"VMC:GS_IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n - \ \"sha512t24u:IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n \"ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\"\n - \ ],\n \"alphabet\": \"ACGNT\",\n \"length\": 58617616\n}\n" - headers: - Connection: - - close - Content-Length: - - '1035' - Content-Type: - - application/json - Date: - - Wed, 08 Nov 2023 21:12:31 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=44908821&end=44908822 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:31 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=44908821&end=44908822 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:31 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=20003095&end=20003097 - response: - body: - string: AC - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:31 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003095&end=20003097 - response: - body: - string: AC - headers: - Connection: - - close - Content-Length: - - '2' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003097 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003097 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003095&end=20003096 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003097&end=20003098 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003096 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003097&end=20003097 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003097 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=20003009&end=20003010 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003009&end=20003010 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 - response: - body: - string: '' + \ \"GRCh38.p3:19\",\n \"GRCh38.p3:chr19\",\n \"GRCh38.p4:19\",\n \"GRCh38.p4:chr19\",\n + \ \"GRCh38.p5:19\",\n \"GRCh38.p5:chr19\",\n \"GRCh38.p6:19\",\n \"GRCh38.p6:chr19\",\n + \ \"GRCh38.p7:19\",\n \"GRCh38.p7:chr19\",\n \"GRCh38.p8:19\",\n \"GRCh38.p8:chr19\",\n + \ \"GRCh38.p9:19\",\n \"GRCh38.p9:chr19\",\n \"MD5:b0eba2c7bb5c953d1e06a508b5e487de\",\n + \ \"NCBI:NC_000019.10\",\n \"refseq:NC_000019.10\",\n \"SEGUID:AHxM5/L8jIX08UhBBkKXkiO5rhY\",\n + \ \"SHA1:007c4ce7f2fc8c85f4f148410642979223b9ae16\",\n \"VMC:GS_IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n + \ \"sha512t24u:IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n \"ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\"\n + \ ],\n \"alphabet\": \"ACGNT\",\n \"length\": 58617616\n}\n" headers: Connection: - close Content-Length: - - '0' + - '1035' Content-Type: - - text/plain; charset=utf-8 + - application/json Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -777,12 +213,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003009&end=20003010 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=44908821&end=44908822 response: body: - string: A + string: C headers: Connection: - close @@ -791,7 +227,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -807,21 +243,33 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003011 + uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT response: body: - string: C + string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n + \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n + \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n + \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n + \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n + \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n + \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n + \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n + \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n + \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n + \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n + \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n + \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" headers: Connection: - close Content-Length: - - '1' + - '1002' Content-Type: - - text/plain; charset=utf-8 + - application/json Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -837,21 +285,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003095&end=20003097 response: body: - string: '' + string: AC headers: Connection: - close Content-Length: - - '0' + - '2' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -867,21 +315,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003097 response: body: - string: '' + string: C headers: Connection: - close Content-Length: - - '0' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -897,21 +345,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003095&end=20003096 response: body: - string: '' + string: A headers: Connection: - close Content-Length: - - '0' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -927,21 +375,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=19993837&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003097&end=20003098 response: body: - string: GT + string: A headers: Connection: - close Content-Length: - - '2' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -957,33 +405,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003096&end=20003096 response: body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" + string: '' headers: Connection: - close Content-Length: - - '1002' + - '0' Content-Type: - - application/json + - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -999,21 +435,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003097&end=20003097 response: body: - string: GT + string: '' headers: Connection: - close Content-Length: - - '2' + - '0' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1029,21 +465,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003009&end=20003010 response: body: - string: '' + string: A headers: Connection: - close Content-Length: - - '0' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1059,9 +495,9 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003010 response: body: string: '' @@ -1073,7 +509,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1089,12 +525,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993838&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=20003010&end=20003011 response: body: - string: T + string: C headers: Connection: - close @@ -1103,7 +539,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1119,21 +555,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993838 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993839 response: body: - string: G + string: GT headers: Connection: - close Content-Length: - - '1' + - '2' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1149,21 +585,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993836&end=19993837 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993839 response: body: - string: A + string: '' headers: Connection: - close Content-Length: - - '1' + - '0' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1179,12 +615,12 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993840 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993838&end=19993839 response: body: - string: A + string: T headers: Connection: - close @@ -1193,7 +629,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1209,21 +645,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993838 response: body: - string: GT + string: G headers: Connection: - close Content-Length: - - '2' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1239,21 +675,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993836&end=19993837 response: body: - string: '' + string: A headers: Connection: - close Content-Length: - - '0' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1269,21 +705,21 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993837&end=19993839 + uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=19993839&end=19993840 response: body: - string: GT + string: A headers: Connection: - close Content-Length: - - '2' + - '1' Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1299,7 +735,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:17 response: @@ -1325,7 +761,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1341,7 +777,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:17?start=83129586&end=83129598 response: @@ -1355,7 +791,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1371,7 +807,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7 response: @@ -1397,7 +833,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1413,7 +849,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129586&end=83129598 response: @@ -1427,37 +863,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129587&end=83129598 - response: - body: - string: TTGWCACATGA - headers: - Connection: - - close - Content-Length: - - '11' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1473,7 +879,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129587&end=83129598 response: @@ -1487,7 +893,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1503,7 +909,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129586&end=83129587 response: @@ -1517,7 +923,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1533,7 +939,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129598&end=83129599 response: @@ -1547,7 +953,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:12 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1563,7 +969,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129599&end=83129600 response: @@ -1577,7 +983,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1593,7 +999,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129600&end=83129601 response: @@ -1607,7 +1013,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1623,7 +1029,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129601&end=83129602 response: @@ -1637,7 +1043,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1653,7 +1059,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129587&end=83129587 response: @@ -1667,7 +1073,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1683,7 +1089,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129598&end=83129601 response: @@ -1697,7 +1103,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1713,7 +1119,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.dLZ15tNO1Ur0IcGjwc3Sdi_0A6Yf4zm7?start=83129587&end=83129601 response: @@ -1727,7 +1133,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1743,7 +1149,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:7 response: @@ -1768,7 +1174,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Nov 2023 21:12:32 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1784,7 +1190,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:7?start=1&end=17 response: @@ -1798,7 +1204,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1814,7 +1220,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul response: @@ -1839,7 +1245,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1855,7 +1261,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=1&end=17 response: @@ -1869,7 +1275,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1885,7 +1291,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=1&end=16 response: @@ -1899,67 +1305,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:33 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=32936731&end=32936732 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:33 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=32936731&end=32936732 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -1975,7 +1321,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:13?start=32936731&end=32936732 response: @@ -1989,49 +1335,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:33 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -2047,7 +1351,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32936731&end=32936732 response: @@ -2061,7 +1365,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 08 Nov 2023 21:12:33 GMT + - Mon, 19 Feb 2024 07:31:13 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: diff --git a/tests/extras/cassettes/test_from_hgvs.yaml b/tests/extras/cassettes/test_from_hgvs.yaml index 297e6f2d..227a3368 100644 --- a/tests/extras/cassettes/test_from_hgvs.yaml +++ b/tests/extras/cassettes/test_from_hgvs.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/refseq:NC_000019.10 response: @@ -35,7 +35,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:36 GMT + - Mon, 19 Feb 2024 07:31:14 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -51,7 +51,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/refseq:NC_000013.11 response: @@ -77,7 +77,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:36 GMT + - Mon, 19 Feb 2024 07:31:14 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -93,7 +93,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/NC_000013.11?start=19993837&end=19993839 response: @@ -107,7 +107,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:36 GMT + - Mon, 19 Feb 2024 07:31:14 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: diff --git a/tests/extras/cassettes/test_get_vrs_object_invalid_input.yaml b/tests/extras/cassettes/test_get_vrs_object_invalid_input.yaml index a37a07cd..0c9bc279 100644 --- a/tests/extras/cassettes/test_get_vrs_object_invalid_input.yaml +++ b/tests/extras/cassettes/test_get_vrs_object_invalid_input.yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:. response: @@ -23,81 +23,10 @@ interactions: Content-Type: - application/json Date: - - Tue, 19 Sep 2023 05:03:24 GMT + - Mon, 19 Feb 2024 07:31:49 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: code: 404 message: NOT FOUND -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/GRCh38:7 - response: - body: - string: "{\n \"added\": \"2016-08-27T21:23:35Z\",\n \"aliases\": [\n \"GRCh38:7\",\n - \ \"GRCh38:chr7\",\n \"GRCh38.p1:7\",\n \"GRCh38.p1:chr7\",\n \"GRCh38.p10:7\",\n - \ \"GRCh38.p10:chr7\",\n \"GRCh38.p11:7\",\n \"GRCh38.p11:chr7\",\n - \ \"GRCh38.p12:7\",\n \"GRCh38.p12:chr7\",\n \"GRCh38.p2:7\",\n \"GRCh38.p2:chr7\",\n - \ \"GRCh38.p3:7\",\n \"GRCh38.p3:chr7\",\n \"GRCh38.p4:7\",\n \"GRCh38.p4:chr7\",\n - \ \"GRCh38.p5:7\",\n \"GRCh38.p5:chr7\",\n \"GRCh38.p6:7\",\n \"GRCh38.p6:chr7\",\n - \ \"GRCh38.p7:7\",\n \"GRCh38.p7:chr7\",\n \"GRCh38.p8:7\",\n \"GRCh38.p8:chr7\",\n - \ \"GRCh38.p9:7\",\n \"GRCh38.p9:chr7\",\n \"MD5:cc044cc2256a1141212660fb07b6171e\",\n - \ \"NCBI:NC_000007.14\",\n \"refseq:NC_000007.14\",\n \"SEGUID:4+JjCcBVhPCr8vdIhUKFycPv8bY\",\n - \ \"SHA1:e3e26309c05584f0abf2f748854285c9c3eff1b6\",\n \"VMC:GS_F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n - \ \"sha512t24u:F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n \"ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\"\n - \ ],\n \"alphabet\": \"ACGNRSTY\",\n \"length\": 159345973\n}\n" - headers: - Connection: - - close - Content-Length: - - '977' - Content-Type: - - application/json - Date: - - Tue, 19 Sep 2023 05:03:24 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/GRCh38:7?start=140753335&end=140753336 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Tue, 19 Sep 2023 05:03:24 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK version: 1 diff --git a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181220del-expected2].yaml b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181220del-expected2].yaml index 68a2e31f..6f18cf6d 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181220del-expected2].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181220del-expected2].yaml @@ -9,108 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul - response: - body: - string: "{\n \"added\": \"2016-08-27T21:23:35Z\",\n \"aliases\": [\n \"GRCh38:7\",\n - \ \"GRCh38:chr7\",\n \"GRCh38.p1:7\",\n \"GRCh38.p1:chr7\",\n \"GRCh38.p10:7\",\n - \ \"GRCh38.p10:chr7\",\n \"GRCh38.p11:7\",\n \"GRCh38.p11:chr7\",\n - \ \"GRCh38.p12:7\",\n \"GRCh38.p12:chr7\",\n \"GRCh38.p2:7\",\n \"GRCh38.p2:chr7\",\n - \ \"GRCh38.p3:7\",\n \"GRCh38.p3:chr7\",\n \"GRCh38.p4:7\",\n \"GRCh38.p4:chr7\",\n - \ \"GRCh38.p5:7\",\n \"GRCh38.p5:chr7\",\n \"GRCh38.p6:7\",\n \"GRCh38.p6:chr7\",\n - \ \"GRCh38.p7:7\",\n \"GRCh38.p7:chr7\",\n \"GRCh38.p8:7\",\n \"GRCh38.p8:chr7\",\n - \ \"GRCh38.p9:7\",\n \"GRCh38.p9:chr7\",\n \"MD5:cc044cc2256a1141212660fb07b6171e\",\n - \ \"NCBI:NC_000007.14\",\n \"refseq:NC_000007.14\",\n \"SEGUID:4+JjCcBVhPCr8vdIhUKFycPv8bY\",\n - \ \"SHA1:e3e26309c05584f0abf2f748854285c9c3eff1b6\",\n \"VMC:GS_F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n - \ \"sha512t24u:F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n \"ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\"\n - \ ],\n \"alphabet\": \"ACGNRSTY\",\n \"length\": 159345973\n}\n" - headers: - Connection: - - close - Content-Length: - - '977' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:43 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181220 - response: - body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:43 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181220 - response: - body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:43 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181220 response: @@ -124,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -140,7 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181218&end=55181219 response: @@ -154,7 +53,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -170,7 +69,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181220&end=55181221 response: @@ -184,7 +83,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -200,7 +99,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181219 response: @@ -214,7 +113,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -230,7 +129,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181220&end=55181220 response: @@ -244,7 +143,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -260,67 +159,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181220 - response: - body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:43 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181219&end=55181220 - response: - body: - string: T - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:43 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181220&seq_stop=55181220&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -344,20 +183,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:43 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - D0BD351E52910B6500004826A84EBD5F.1.1.m_5 + - 322CF705C067C1A500004E8953DC8714.1.1.m_5 NCBI-SID: - - 19F1C412CFC21142_28DFSID + - F908C0590198759C_1297SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=19F1C412CFC21142_28DFSID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:43 GMT + - ncbi_sid=F908C0590198759C_1297SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:18 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -365,7 +204,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: @@ -385,7 +224,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181220&seq_stop=55181240&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -410,20 +249,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:44 GMT + - Mon, 19 Feb 2024 07:31:18 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000051F8D6DCF130.1.1.m_5 + - 322CF705C067C1A500003B8959035020.1.1.m_5 NCBI-SID: - - AB21FBFB0CC4BDE1_B640SID + - 0FA55D02B01B7AFC_8F66SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=AB21FBFB0CC4BDE1_B640SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:44 GMT + - ncbi_sid=0FA55D02B01B7AFC_8F66SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:19 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -431,7 +270,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: diff --git a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181230_55181231insGGCT-expected3].yaml b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181230_55181231insGGCT-expected3].yaml index a405f865..09748095 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181230_55181231insGGCT-expected3].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181230_55181231insGGCT-expected3].yaml @@ -9,48 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul - response: - body: - string: "{\n \"added\": \"2016-08-27T21:23:35Z\",\n \"aliases\": [\n \"GRCh38:7\",\n - \ \"GRCh38:chr7\",\n \"GRCh38.p1:7\",\n \"GRCh38.p1:chr7\",\n \"GRCh38.p10:7\",\n - \ \"GRCh38.p10:chr7\",\n \"GRCh38.p11:7\",\n \"GRCh38.p11:chr7\",\n - \ \"GRCh38.p12:7\",\n \"GRCh38.p12:chr7\",\n \"GRCh38.p2:7\",\n \"GRCh38.p2:chr7\",\n - \ \"GRCh38.p3:7\",\n \"GRCh38.p3:chr7\",\n \"GRCh38.p4:7\",\n \"GRCh38.p4:chr7\",\n - \ \"GRCh38.p5:7\",\n \"GRCh38.p5:chr7\",\n \"GRCh38.p6:7\",\n \"GRCh38.p6:chr7\",\n - \ \"GRCh38.p7:7\",\n \"GRCh38.p7:chr7\",\n \"GRCh38.p8:7\",\n \"GRCh38.p8:chr7\",\n - \ \"GRCh38.p9:7\",\n \"GRCh38.p9:chr7\",\n \"MD5:cc044cc2256a1141212660fb07b6171e\",\n - \ \"NCBI:NC_000007.14\",\n \"refseq:NC_000007.14\",\n \"SEGUID:4+JjCcBVhPCr8vdIhUKFycPv8bY\",\n - \ \"SHA1:e3e26309c05584f0abf2f748854285c9c3eff1b6\",\n \"VMC:GS_F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n - \ \"sha512t24u:F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n \"ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\"\n - \ ],\n \"alphabet\": \"ACGNRSTY\",\n \"length\": 159345973\n}\n" - headers: - Connection: - - close - Content-Length: - - '977' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 response: @@ -64,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:45 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -80,67 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181229&end=55181230 response: @@ -154,7 +53,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:45 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -170,7 +69,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181231 response: @@ -184,7 +83,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:45 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -200,97 +99,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181230&end=55181230 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:45 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181231&seq_stop=55181231&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -314,20 +123,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:46 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 939B3139A985810500005D2669ECFEB9.1.1.m_5 + - D0BD5673E54A8BE5000063882725ADF6.1.1.m_5 NCBI-SID: - - A05C5F884629FEA8_DFEFSID + - F7C03B5CCF0884C3_8C08SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=A05C5F884629FEA8_DFEFSID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:45 GMT + - ncbi_sid=F7C03B5CCF0884C3_8C08SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:19 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -355,7 +164,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181230&seq_stop=55181250&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -380,20 +189,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:46 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - D0BD351E52910B6500004426AF911D52.1.1.m_5 + - 322CF705C067C1A500003C89622340FC.1.1.m_5 NCBI-SID: - - 442B914E4343E033_6A3CSID + - BD11D769E840C2B7_657ESID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=442B914E4343E033_6A3CSID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:46 GMT + - ncbi_sid=BD11D769E840C2B7_657ESID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:20 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -401,7 +210,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: @@ -421,7 +230,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181227&seq_stop=55181230&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -445,20 +254,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:46 GMT + - Mon, 19 Feb 2024 07:31:20 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000065F8E489DB09.1.1.m_5 + - 322CF705C067C1A50000368965BD192F.1.1.m_5 NCBI-SID: - - E2994073FC5FD3B3_4AA6SID + - BA7AA08372DBFA5B_13E4SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=E2994073FC5FD3B3_4AA6SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:47 GMT + - ncbi_sid=BA7AA08372DBFA5B_13E4SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:21 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: diff --git a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181320A>T-expected1].yaml b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181320A>T-expected1].yaml index d932885c..93b305ae 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181320A>T-expected1].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000007.14:g.55181320A>T-expected1].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/refseq:NC_000007.14 response: @@ -34,7 +34,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:41 GMT + - Mon, 19 Feb 2024 07:31:17 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -50,48 +50,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul - response: - body: - string: "{\n \"added\": \"2016-08-27T21:23:35Z\",\n \"aliases\": [\n \"GRCh38:7\",\n - \ \"GRCh38:chr7\",\n \"GRCh38.p1:7\",\n \"GRCh38.p1:chr7\",\n \"GRCh38.p10:7\",\n - \ \"GRCh38.p10:chr7\",\n \"GRCh38.p11:7\",\n \"GRCh38.p11:chr7\",\n - \ \"GRCh38.p12:7\",\n \"GRCh38.p12:chr7\",\n \"GRCh38.p2:7\",\n \"GRCh38.p2:chr7\",\n - \ \"GRCh38.p3:7\",\n \"GRCh38.p3:chr7\",\n \"GRCh38.p4:7\",\n \"GRCh38.p4:chr7\",\n - \ \"GRCh38.p5:7\",\n \"GRCh38.p5:chr7\",\n \"GRCh38.p6:7\",\n \"GRCh38.p6:chr7\",\n - \ \"GRCh38.p7:7\",\n \"GRCh38.p7:chr7\",\n \"GRCh38.p8:7\",\n \"GRCh38.p8:chr7\",\n - \ \"GRCh38.p9:7\",\n \"GRCh38.p9:chr7\",\n \"MD5:cc044cc2256a1141212660fb07b6171e\",\n - \ \"NCBI:NC_000007.14\",\n \"refseq:NC_000007.14\",\n \"SEGUID:4+JjCcBVhPCr8vdIhUKFycPv8bY\",\n - \ \"SHA1:e3e26309c05584f0abf2f748854285c9c3eff1b6\",\n \"VMC:GS_F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n - \ \"sha512t24u:F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n \"ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\"\n - \ ],\n \"alphabet\": \"ACGNRSTY\",\n \"length\": 159345973\n}\n" - headers: - Connection: - - close - Content-Length: - - '977' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:41 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181319&end=55181320 response: @@ -105,7 +64,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:41 GMT + - Mon, 19 Feb 2024 07:31:17 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -121,108 +80,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181319&end=55181320 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:41 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul - response: - body: - string: "{\n \"added\": \"2016-08-27T21:23:35Z\",\n \"aliases\": [\n \"GRCh38:7\",\n - \ \"GRCh38:chr7\",\n \"GRCh38.p1:7\",\n \"GRCh38.p1:chr7\",\n \"GRCh38.p10:7\",\n - \ \"GRCh38.p10:chr7\",\n \"GRCh38.p11:7\",\n \"GRCh38.p11:chr7\",\n - \ \"GRCh38.p12:7\",\n \"GRCh38.p12:chr7\",\n \"GRCh38.p2:7\",\n \"GRCh38.p2:chr7\",\n - \ \"GRCh38.p3:7\",\n \"GRCh38.p3:chr7\",\n \"GRCh38.p4:7\",\n \"GRCh38.p4:chr7\",\n - \ \"GRCh38.p5:7\",\n \"GRCh38.p5:chr7\",\n \"GRCh38.p6:7\",\n \"GRCh38.p6:chr7\",\n - \ \"GRCh38.p7:7\",\n \"GRCh38.p7:chr7\",\n \"GRCh38.p8:7\",\n \"GRCh38.p8:chr7\",\n - \ \"GRCh38.p9:7\",\n \"GRCh38.p9:chr7\",\n \"MD5:cc044cc2256a1141212660fb07b6171e\",\n - \ \"NCBI:NC_000007.14\",\n \"refseq:NC_000007.14\",\n \"SEGUID:4+JjCcBVhPCr8vdIhUKFycPv8bY\",\n - \ \"SHA1:e3e26309c05584f0abf2f748854285c9c3eff1b6\",\n \"VMC:GS_F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n - \ \"sha512t24u:F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\",\n \"ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul\"\n - \ ],\n \"alphabet\": \"ACGNRSTY\",\n \"length\": 159345973\n}\n" - headers: - Connection: - - close - Content-Length: - - '977' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:41 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul?start=55181319&end=55181320 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:41 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181320&seq_stop=55181320&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -246,20 +104,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:40 GMT + - Mon, 19 Feb 2024 07:31:16 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - D0BD351E52910B65000023269EBD0AEE.1.1.m_5 + - 322CF705C067C1A50000628949718316.1.1.m_5 NCBI-SID: - - 17F986FF9B4CBCA0_8C97SID + - 2F921A653A749DFD_6EE3SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=17F986FF9B4CBCA0_8C97SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:40 GMT + - ncbi_sid=2F921A653A749DFD_6EE3SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:17 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -287,7 +145,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000007.14&rettype=fasta&seq_start=55181320&seq_stop=55181340&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -312,20 +170,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:41 GMT + - Mon, 19 Feb 2024 07:31:17 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000049F8C835A8D7.1.1.m_5 + - 322CF705C067C1A5000062894EE9424B.1.1.m_5 NCBI-SID: - - 4B4A7BA6696C61FA_9F21SID + - 70A997EB67A84453_801ESID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=4B4A7BA6696C61FA_9F21SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:41 GMT + - ncbi_sid=70A997EB67A84453_801ESID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:18 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -333,7 +191,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: diff --git a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32316467dup-expected5].yaml b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32316467dup-expected5].yaml index 0b60d964..4be419e6 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32316467dup-expected5].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32316467dup-expected5].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/NC_000013.11?start=32316466&end=32316467 response: @@ -23,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -39,49 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316466&end=32316467 response: @@ -95,37 +53,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316467&end=32316467 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -141,7 +69,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316467&end=32316467 response: @@ -155,37 +83,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316466&end=32316467 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -201,7 +99,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316465&end=32316466 response: @@ -215,7 +113,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -231,7 +129,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316467&end=32316468 response: @@ -245,127 +143,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316466&end=32316467 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316467&end=32316467 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316466&end=32316467 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32316466&end=32316467 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -381,7 +159,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32316467&seq_stop=32316467&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -405,20 +183,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:52 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000034F906CBA395.1.1.m_5 + - D0BD5673E54A8BE50000428839BFCD43.1.1.m_5 NCBI-SID: - - EF66DC2B01996177_7C7ESID + - 67AAAD8049161044_5118SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=EF66DC2B01996177_7C7ESID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:52 GMT + - ncbi_sid=67AAAD8049161044_5118SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:24 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -446,7 +224,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32316467&seq_stop=32316487&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -471,20 +249,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:53 GMT + - Mon, 19 Feb 2024 07:31:24 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000032F90EAE27D2.1.1.m_5 + - D0BD5673E54A8BE500002E883BE24A8B.1.1.m_5 NCBI-SID: - - 320AAAC343376C22_754ESID + - 494214AB6C2024F6_B661SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=320AAAC343376C22_754ESID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:52 GMT + - ncbi_sid=494214AB6C2024F6_B661SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:25 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: diff --git a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32331093_32331094dup-expected4].yaml b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32331093_32331094dup-expected4].yaml index 2c00f63b..2ceb71e5 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32331093_32331094dup-expected4].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32331093_32331094dup-expected4].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/NC_000013.11?start=32331092&end=32331094 response: @@ -23,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -39,49 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:48 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331092&end=32331094 response: @@ -95,37 +53,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331094&end=32331094 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -141,7 +69,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331094&end=32331094 response: @@ -155,7 +83,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -171,7 +99,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331093&end=32331094 response: @@ -185,7 +113,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -201,7 +129,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331092&end=32331093 response: @@ -215,7 +143,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -231,7 +159,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331091&end=32331092 response: @@ -245,7 +173,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -261,7 +189,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331090&end=32331091 response: @@ -275,7 +203,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -291,7 +219,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331089&end=32331090 response: @@ -305,7 +233,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -321,7 +249,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331088&end=32331089 response: @@ -335,7 +263,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -351,7 +279,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331087&end=32331088 response: @@ -365,7 +293,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -381,7 +309,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331086&end=32331087 response: @@ -395,7 +323,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -411,7 +339,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331085&end=32331086 response: @@ -425,7 +353,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -441,7 +369,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331084&end=32331085 response: @@ -455,7 +383,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -471,7 +399,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331083&end=32331084 response: @@ -485,7 +413,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -501,7 +429,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331082&end=32331083 response: @@ -515,7 +443,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -531,7 +459,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331081&end=32331082 response: @@ -545,7 +473,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -561,7 +489,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331094&end=32331095 response: @@ -575,67 +503,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331082&end=32331094 - response: - body: - string: TTTTTTTTTTTT - headers: - Connection: - - close - Content-Length: - - '12' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:48 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331094&end=32331094 - response: - body: - string: '' - headers: - Connection: - - close - Content-Length: - - '0' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -651,7 +519,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331082&end=32331094 response: @@ -665,7 +533,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:48 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -681,37 +549,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32331082&end=32331094 - response: - body: - string: TTTTTTTTTTTT - headers: - Connection: - - close - Content-Length: - - '12' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:48 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32331083&seq_stop=32331094&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -735,20 +573,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:47 GMT + - Mon, 19 Feb 2024 07:31:21 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000037F8EC969415.1.1.m_5 + - 322CF705C067C1A500005E896ACACF1F.1.1.m_5 NCBI-SID: - - 7AD877E68F5B2E8B_0AE2SID + - 97ACF1D2D5A114F9_1396SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=7AD877E68F5B2E8B_0AE2SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:48 GMT + - ncbi_sid=97ACF1D2D5A114F9_1396SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:21 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -756,7 +594,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: @@ -776,7 +614,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32331094&seq_stop=32331094&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -800,20 +638,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:49 GMT + - Mon, 19 Feb 2024 07:31:22 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000042F8F2256980.1.1.m_5 + - D0BD5673E54A8BE500004D88316ED359.1.1.m_5 NCBI-SID: - - 9073E0B590EE8074_D6A2SID + - 860499C848FAF975_EF3FSID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=9073E0B590EE8074_D6A2SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:49 GMT + - ncbi_sid=860499C848FAF975_EF3FSID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:22 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -841,7 +679,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32331083&seq_stop=32331114&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -866,20 +704,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:50 GMT + - Mon, 19 Feb 2024 07:31:23 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000061F8F63B9C36.1.1.m_5 + - 322CF705C067C1A50000558971255303.1.1.m_5 NCBI-SID: - - D2CE2401B317BF43_E636SID + - 675FB4D79FE04D06_FE55SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=D2CE2401B317BF43_E636SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:49 GMT + - ncbi_sid=675FB4D79FE04D06_FE55SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:23 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -907,7 +745,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32331093&seq_stop=32331094&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -931,20 +769,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:51 GMT + - Mon, 19 Feb 2024 07:31:23 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - D0BD351E52910B6500002926B9443854.1.1.m_5 + - 322CF705C067C1A500005A8973EEEAC9.1.1.m_5 NCBI-SID: - - 82EBACB2BF787418_DE48SID + - 77ED135DEA0F9216_C267SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=82EBACB2BF787418_DE48SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:51 GMT + - ncbi_sid=77ED135DEA0F9216_C267SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:23 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -952,7 +790,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: diff --git a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32936732=-expected0].yaml b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32936732=-expected0].yaml index cd7a5737..3676030a 100644 --- a/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32936732=-expected0].yaml +++ b/tests/extras/cassettes/test_hgvs[NC_000013.11:g.32936732=-expected0].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/NC_000013.11?start=32936731&end=32936732 response: @@ -23,7 +23,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:36 GMT + - Mon, 19 Feb 2024 07:31:14 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -39,151 +39,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:36 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32936731&end=32936732 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:37 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT - response: - body: - string: "{\n \"added\": \"2016-08-27T23:50:14Z\",\n \"aliases\": [\n \"GRCh38:13\",\n - \ \"GRCh38:chr13\",\n \"GRCh38.p1:13\",\n \"GRCh38.p1:chr13\",\n \"GRCh38.p10:13\",\n - \ \"GRCh38.p10:chr13\",\n \"GRCh38.p11:13\",\n \"GRCh38.p11:chr13\",\n - \ \"GRCh38.p12:13\",\n \"GRCh38.p12:chr13\",\n \"GRCh38.p2:13\",\n - \ \"GRCh38.p2:chr13\",\n \"GRCh38.p3:13\",\n \"GRCh38.p3:chr13\",\n - \ \"GRCh38.p4:13\",\n \"GRCh38.p4:chr13\",\n \"GRCh38.p5:13\",\n \"GRCh38.p5:chr13\",\n - \ \"GRCh38.p6:13\",\n \"GRCh38.p6:chr13\",\n \"GRCh38.p7:13\",\n \"GRCh38.p7:chr13\",\n - \ \"GRCh38.p8:13\",\n \"GRCh38.p8:chr13\",\n \"GRCh38.p9:13\",\n \"GRCh38.p9:chr13\",\n - \ \"MD5:a5437debe2ef9c9ef8f3ea2874ae1d82\",\n \"NCBI:NC_000013.11\",\n - \ \"refseq:NC_000013.11\",\n \"SEGUID:2oDBty0yKV9wHo7gg+Bt+fPgi5o\",\n - \ \"SHA1:da80c1b72d32295f701e8ee083e06df9f3e08b9a\",\n \"VMC:GS__0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n - \ \"sha512t24u:_0wi-qoDrvram155UmcSC-zA5ZK4fpLT\",\n \"ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT\"\n - \ ],\n \"alphabet\": \"ACGKNTY\",\n \"length\": 114364328\n}\n" - headers: - Connection: - - close - Content-Length: - - '1002' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:37 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT?start=32936731&end=32936732 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:37 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NC_000013.11&rettype=fasta&seq_start=32936732&seq_stop=32936732&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -207,20 +63,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:39 GMT + - Mon, 19 Feb 2024 07:31:16 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - D0BD351E52910B65000030269B610FE8.1.1.m_5 + - 322CF705C067C1A50000158944465C93.1.1.m_5 NCBI-SID: - - 997EE1AD2EC41B9E_424CSID + - 04E0C48AA9C209F7_3DDESID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=997EE1AD2EC41B9E_424CSID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:39 GMT + - ncbi_sid=04E0C48AA9C209F7_3DDESID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:16 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: diff --git a/tests/extras/cassettes/test_hgvs[NM_001331029.1:n.872A>G-expected6].yaml b/tests/extras/cassettes/test_hgvs[NM_001331029.1:n.872A>G-expected6].yaml index 9b8bb2c8..39e13991 100644 --- a/tests/extras/cassettes/test_hgvs[NM_001331029.1:n.872A>G-expected6].yaml +++ b/tests/extras/cassettes/test_hgvs[NM_001331029.1:n.872A>G-expected6].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/refseq:NM_001331029.1 response: @@ -28,7 +28,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:54 GMT + - Mon, 19 Feb 2024 07:31:25 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -44,7 +44,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK response: @@ -63,7 +63,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:54 GMT + - Mon, 19 Feb 2024 07:31:25 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -79,7 +79,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK?start=871&end=872 response: @@ -93,7 +93,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:54 GMT + - Mon, 19 Feb 2024 07:31:25 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -109,102 +109,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK?start=871&end=872 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:54 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK - response: - body: - string: "{\n \"added\": \"2016-08-24T05:03:40Z\",\n \"aliases\": [\n \"MD5:a8d7243ffeea4ade1dbc33613887693b\",\n - \ \"NCBI:NM_001331029.1\",\n \"refseq:NM_001331029.1\",\n \"NCBI:XM_017001344.1\",\n - \ \"refseq:XM_017001344.1\",\n \"SEGUID:qw9iIJ9BPdGZfypwQH7S3L2f9gI\",\n - \ \"SHA1:ab0f62209f413dd1997f2a70407ed2dcbd9ff602\",\n \"VMC:GS_MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK\",\n - \ \"sha512t24u:MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK\",\n \"ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK\"\n - \ ],\n \"alphabet\": \"ACGT\",\n \"length\": 11291\n}\n" - headers: - Connection: - - close - Content-Length: - - '496' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:54 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK?start=871&end=872 - response: - body: - string: A - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:54 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NM_001331029.1&rettype=fasta&seq_start=872&seq_stop=872&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -229,20 +134,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:53 GMT + - Mon, 19 Feb 2024 07:31:25 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000043F9180D5E94.1.1.m_5 + - D0BD5673E54A8BE5000024883E231355.1.1.m_5 NCBI-SID: - - C0EB95511353E427_ED43SID + - 85126ED7D291E4C7_7864SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=C0EB95511353E427_ED43SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:53 GMT + - ncbi_sid=85126ED7D291E4C7_7864SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:25 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -250,7 +155,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: @@ -270,7 +175,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NM_001331029.1&rettype=fasta&seq_start=872&seq_stop=892&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -295,20 +200,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:54 GMT + - Mon, 19 Feb 2024 07:31:26 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF6500002FF91E5B03FE.1.1.m_5 + - 939BB9A3D5B5DAC500006455EAD78D66.1.1.m_5 NCBI-SID: - - 0D9FCE8FAE27B2EA_2741SID + - E8F9AFDC05828C2C_DF29SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=0D9FCE8FAE27B2EA_2741SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:54 GMT + - ncbi_sid=E8F9AFDC05828C2C_DF29SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:26 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: diff --git a/tests/extras/cassettes/test_hgvs[NM_181798.1:n.1263G>T-expected7].yaml b/tests/extras/cassettes/test_hgvs[NM_181798.1:n.1263G>T-expected7].yaml index 5c3a1396..1609c0f2 100644 --- a/tests/extras/cassettes/test_hgvs[NM_181798.1:n.1263G>T-expected7].yaml +++ b/tests/extras/cassettes/test_hgvs[NM_181798.1:n.1263G>T-expected7].yaml @@ -9,7 +9,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/refseq:NM_181798.1 response: @@ -28,7 +28,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:56 GMT + - Mon, 19 Feb 2024 07:31:27 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -44,7 +44,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg response: @@ -63,7 +63,7 @@ interactions: Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:50:56 GMT + - Mon, 19 Feb 2024 07:31:27 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -79,7 +79,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg?start=1262&end=1263 response: @@ -93,7 +93,7 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Mon, 18 Sep 2023 20:50:56 GMT + - Mon, 19 Feb 2024 07:31:27 GMT Server: - Werkzeug/2.2.2 Python/3.10.4 status: @@ -109,102 +109,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg?start=1262&end=1263 - response: - body: - string: G - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:56 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg - response: - body: - string: "{\n \"added\": \"2016-08-24T05:03:05Z\",\n \"aliases\": [\n \"MD5:93e2dc533ba755782b3affcf53470434\",\n - \ \"NCBI:NM_181798.1\",\n \"refseq:NM_181798.1\",\n \"NCBI:NR_040711.1\",\n - \ \"refseq:NR_040711.1\",\n \"SEGUID:0nrqUDibhGAQBZ4pXR+soOiCOf0\",\n - \ \"SHA1:d27aea50389b846010059e295d1faca0e88239fd\",\n \"VMC:GS_KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg\",\n - \ \"sha512t24u:KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg\",\n \"ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg\"\n - \ ],\n \"alphabet\": \"ACGT\",\n \"length\": 3029\n}\n" - headers: - Connection: - - close - Content-Length: - - '483' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:56 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg?start=1262&end=1263 - response: - body: - string: G - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:56 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NM_181798.1&rettype=fasta&seq_start=1263&seq_stop=1263&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -229,20 +134,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:56 GMT + - Mon, 19 Feb 2024 07:31:26 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 322C0387F48EEF65000035F9253CEC18.1.1.m_5 + - 939BB9A3D5B5DAC500005655F17FDA5E.1.1.m_5 NCBI-SID: - - 8BF17AB0C7C923F8_4597SID + - 77F193DD47E4E276_97B9SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=8BF17AB0C7C923F8_4597SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:55 GMT + - ncbi_sid=77F193DD47E4E276_97B9SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:27 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: @@ -250,7 +155,7 @@ interactions: X-RateLimit-Limit: - '3' X-RateLimit-Remaining: - - '2' + - '1' X-UA-Compatible: - IE=Edge X-XSS-Protection: @@ -270,7 +175,7 @@ interactions: Connection: - keep-alive User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: GET uri: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nucleotide&id=NM_181798.1&rettype=fasta&seq_start=1263&seq_stop=1268&tool=bioutils&email=biocommons-dev@googlegroups.com response: @@ -295,20 +200,20 @@ interactions: Content-Type: - text/plain Date: - - Mon, 18 Sep 2023 20:50:57 GMT + - Mon, 19 Feb 2024 07:31:27 GMT Keep-Alive: - timeout=4, max=40 NCBI-PHID: - - 939B3139A9858105000036268E181BE2.1.1.m_5 + - 939BB9A3D5B5DAC500006255F81B9091.1.1.m_5 NCBI-SID: - - 33041C5E614D93B4_3C91SID + - F825C934D99704B6_D864SID Referrer-Policy: - origin-when-cross-origin Server: - Finatra Set-Cookie: - - ncbi_sid=33041C5E614D93B4_3C91SID; domain=.nih.gov; path=/; expires=Wed, 18 - Sep 2024 20:50:56 GMT + - ncbi_sid=F825C934D99704B6_D864SID; domain=.nih.gov; path=/; expires=Wed, 19 + Feb 2025 07:31:28 GMT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Transfer-Encoding: diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181220del-vo_as_dict2].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181220del-vo_as_dict2].yaml index 6866d2b3..fc916046 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181220del-vo_as_dict2].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181220del-vo_as_dict2].yaml @@ -1,11 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.BNV6SfAuqDYKTTRknLcS-QuTryF5rSBi", "type": - "Allele", "location": {"id": "ga4gh:SL.hnIOG_kul0Lf3mO1ddTRFb0GbQhtQ19t", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, "start": 55181219, "end": 55181220}, - "state": {"type": "ReferenceLengthExpression", "length": 0, "sequence": "", - "repeatSubunitLength": 1}}, "namespace": "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu", "type": + "Allele", "digest": "klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu", "location": {"id": "ga4gh:SL.ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V", + "type": "SequenceLocation", "digest": "ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, + "start": 55181219, "end": 55181220}, "state": {"type": "ReferenceLengthExpression", + "length": 0, "sequence": "", "repeatSubunitLength": 1}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -14,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '449' + - '541' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.BNV6SfAuqDYKTTRknLcS-QuTryF5rSBi","type":"Allele","location":{"id":"ga4gh:SL.hnIOG_kul0Lf3mO1ddTRFb0GbQhtQ19t","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181219,"end":55181220},"state":{"type":"ReferenceLengthExpression","length":0,"sequence":"","repeatSubunitLength":1}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:04.214099","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181220del"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu","digest":"klRMVChjvV73ZxS9Ajq1Rb8WU-p_HbLu","type":"Allele","location":{"id":"ga4gh:SL.ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V","digest":"ljan7F0ePe9uiD6f2u80ZG5gDtx9Mr0V","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181219,"end":55181220},"state":{"type":"ReferenceLengthExpression","length":0,"sequence":"","repeatSubunitLength":1}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:37.189090","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181220del"]}' headers: Connection: - keep-alive Content-Length: - - '782' + - '867' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:04 GMT - Server: + - Mon, 19 Feb 2024 07:31:37 GMT + Via: + - 1.1 9b0436675c860f7dd8f83017e2edc338.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - GQ5nSpBa22hjDJCzjVy3b0pWPb4xkCQgFQz2ccQP2I3QKlGrvw3m3g== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303d8-4c108adf560514e914c75107 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2JzELaiYcEtYA= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '867' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:37 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - 48f4b74e-59f9-43ac-b321-886dc9945d14 status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181230_55181231insGGCT-vo_as_dict3].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181230_55181231insGGCT-vo_as_dict3].yaml index 691abd79..d2dfad21 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181230_55181231insGGCT-vo_as_dict3].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181230_55181231insGGCT-vo_as_dict3].yaml @@ -1,11 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.lgVw2ZR6UnCLa3sjIMh2D72hQnn6Ksmk", "type": - "Allele", "location": {"id": "ga4gh:SL.1lu5HsEX4eCQhhoJj_79fjr8H-i98wV3", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, "start": 55181230, "end": 55181230}, - "state": {"type": "LiteralSequenceExpression", "sequence": "GGCT"}}, "namespace": - "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55", "type": + "Allele", "digest": "CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55", "location": {"id": "ga4gh:SL.lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2", + "type": "SequenceLocation", "digest": "lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, + "start": 55181230, "end": 55181230}, "state": {"type": "LiteralSequenceExpression", + "sequence": "GGCT"}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -14,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '414' + - '506' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.lgVw2ZR6UnCLa3sjIMh2D72hQnn6Ksmk","type":"Allele","location":{"id":"ga4gh:SL.1lu5HsEX4eCQhhoJj_79fjr8H-i98wV3","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181230,"end":55181230},"state":{"type":"LiteralSequenceExpression","sequence":"GGCT"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:04.374514","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181230_55181231insGGCT"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55","digest":"CLOvnFRJXGNRB9aTuNbvsLqc7syRYb55","type":"Allele","location":{"id":"ga4gh:SL.lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2","digest":"lh4dRt_xWPi3wrubcfomi5DkD7fu6wd2","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181230,"end":55181230},"state":{"type":"LiteralSequenceExpression","sequence":"GGCT"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:39.027589","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181230_55181231insGGCT"]}' headers: Connection: - keep-alive Content-Length: - - '764' + - '849' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:04 GMT - Server: + - Mon, 19 Feb 2024 07:31:39 GMT + Via: + - 1.1 dda58b5db9b6efb2fca84829e7856cfe.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - 7Y4A8GU-QVY9-iIdtc51hQlY0ja3FiGyPS5PejkgdpbDtXtA3JVD2Q== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303d9-049ca54f76f064360b7ed488 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2KAGLrCYcEPEg= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '849' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:39 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - b477df37-bf98-4fca-a9f0-228f4820ebeb status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181320A>T-vo_as_dict1].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181320A>T-vo_as_dict1].yaml index 37662d4c..0b6106dd 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181320A>T-vo_as_dict1].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000007.14:g.55181320A>T-vo_as_dict1].yaml @@ -1,11 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw", "type": - "Allele", "location": {"id": "ga4gh:SL.wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, "start": 55181319, "end": 55181320}, - "state": {"type": "LiteralSequenceExpression", "sequence": "T"}}, "namespace": - "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE", "type": + "Allele", "digest": "Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE", "location": {"id": "ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd", + "type": "SequenceLocation", "digest": "_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"}, + "start": 55181319, "end": 55181320}, "state": {"type": "LiteralSequenceExpression", + "sequence": "T"}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -14,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '411' + - '503' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.hOZr7drvRxkUT_srSFVq1NCzvAJdKJlw","type":"Allele","location":{"id":"ga4gh:SL.wbBBFBTTyBcJPyjkK7z_dCcHFm5pE-2K","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181319,"end":55181320},"state":{"type":"LiteralSequenceExpression","sequence":"T"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:02.583796","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181320A>T"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE","digest":"Hy2XU_-rp4IMh6I_1NXNecBo8Qx8n0oE","type":"Allele","location":{"id":"ga4gh:SL._G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd","digest":"_G2K0qSioM74l_u3OaKR0mgLYdeTL7Xd","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.F-LrLMe1SRpfUZHkQmvkVKFEGaoDeHul"},"start":55181319,"end":55181320},"state":{"type":"LiteralSequenceExpression","sequence":"T"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:35.933872","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000007.14:g.55181320A>T"]}' headers: Connection: - keep-alive Content-Length: - - '748' + - '833' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:02 GMT - Server: + - Mon, 19 Feb 2024 07:31:35 GMT + Via: + - 1.1 a57ad7d63f4c13183ddf5fc92e5df7ee.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - sL8o6dKrjM4YhfPlIEfwRxdwJrIxPFSuSIurnLIJ6xC1_0LcnYJ19g== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303d6-36a3710d56d8bb5508c69f85 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2JlHtrCYcEPYA= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '833' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:35 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - ca944a57-6ab7-4b0d-8f4e-10be60b0a51d status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32316467dup-vo_as_dict5].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32316467dup-vo_as_dict5].yaml index 2d71eea2..c9ffbe3d 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32316467dup-vo_as_dict5].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32316467dup-vo_as_dict5].yaml @@ -1,11 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA._KlbF6GZCbuLxbL9z4hZE3oZSLzBHstS", "type": - "Allele", "location": {"id": "ga4gh:SL.LURTeRdwh5bQf_QqPBoaA--MECYmrY5U", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, "start": 32316466, "end": 32316467}, - "state": {"type": "ReferenceLengthExpression", "length": 2, "sequence": "AA", - "repeatSubunitLength": 1}}, "namespace": "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT", "type": + "Allele", "digest": "96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT", "location": {"id": "ga4gh:SL.fwfHu8VaD2-6Qvay9MJSINXPS767RYSw", + "type": "SequenceLocation", "digest": "fwfHu8VaD2-6Qvay9MJSINXPS767RYSw", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, + "start": 32316466, "end": 32316467}, "state": {"type": "ReferenceLengthExpression", + "length": 2, "sequence": "AA", "repeatSubunitLength": 1}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -14,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '451' + - '543' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA._KlbF6GZCbuLxbL9z4hZE3oZSLzBHstS","type":"Allele","location":{"id":"ga4gh:SL.LURTeRdwh5bQf_QqPBoaA--MECYmrY5U","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32316466,"end":32316467},"state":{"type":"ReferenceLengthExpression","length":2,"sequence":"AA","repeatSubunitLength":1}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:04.742513","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32316467dup"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT","digest":"96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT","type":"Allele","location":{"id":"ga4gh:SL.fwfHu8VaD2-6Qvay9MJSINXPS767RYSw","digest":"fwfHu8VaD2-6Qvay9MJSINXPS767RYSw","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32316466,"end":32316467},"state":{"type":"ReferenceLengthExpression","length":2,"sequence":"AA","repeatSubunitLength":1}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:42.811731","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32316467dup"]}' headers: Connection: - keep-alive Content-Length: - - '784' + - '869' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:04 GMT - Server: + - Mon, 19 Feb 2024 07:31:42 GMT + Via: + - 1.1 14405483c2e3182a4780ba139c62b70a.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - dTp-DqztSggqpQei_we3yE5w95BKqhRn-o7IHykLmRlyYS1RGPXC5Q== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303dd-5d6c6a77352a4e9375e5c633 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2KsFd-iYcElbQ= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '869' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:42 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - a7cbb9bb-4ce3-45c1-9b6c-9a93ee10e6da status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32331093_32331094dup-vo_as_dict4].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32331093_32331094dup-vo_as_dict4].yaml index 037086cd..5583859d 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32331093_32331094dup-vo_as_dict4].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32331093_32331094dup-vo_as_dict4].yaml @@ -1,11 +1,12 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.g-q4OzcyYFC5eVQFSrbXwgJScSREvrY-", "type": - "Allele", "location": {"id": "ga4gh:SL.PJ8lHWhAMNRSrxHvkarfDjRWxF-GwaJ_", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, "start": 32331082, "end": 32331094}, - "state": {"type": "ReferenceLengthExpression", "length": 14, "sequence": "TTTTTTTTTTTTTT", - "repeatSubunitLength": 2}}, "namespace": "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.swY2caCgv1kP6YqKyPlcEzJqTvou15vC", "type": + "Allele", "digest": "swY2caCgv1kP6YqKyPlcEzJqTvou15vC", "location": {"id": "ga4gh:SL.ikECYncPpE1xh6f_LiComrFGevocjDHQ", + "type": "SequenceLocation", "digest": "ikECYncPpE1xh6f_LiComrFGevocjDHQ", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, + "start": 32331082, "end": 32331094}, "state": {"type": "ReferenceLengthExpression", + "length": 14, "sequence": "TTTTTTTTTTTTTT", "repeatSubunitLength": 2}}, "namespace": + "refseq"}' headers: Accept: - '*/*' @@ -14,27 +15,47 @@ interactions: Connection: - keep-alive Content-Length: - - '464' + - '556' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.g-q4OzcyYFC5eVQFSrbXwgJScSREvrY-","type":"Allele","location":{"id":"ga4gh:SL.PJ8lHWhAMNRSrxHvkarfDjRWxF-GwaJ_","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32331082,"end":32331094},"state":{"type":"ReferenceLengthExpression","length":14,"sequence":"TTTTTTTTTTTTTT","repeatSubunitLength":2}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:04.591003","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32331093_32331094dup"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.swY2caCgv1kP6YqKyPlcEzJqTvou15vC","digest":"swY2caCgv1kP6YqKyPlcEzJqTvou15vC","type":"Allele","location":{"id":"ga4gh:SL.ikECYncPpE1xh6f_LiComrFGevocjDHQ","digest":"ikECYncPpE1xh6f_LiComrFGevocjDHQ","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32331082,"end":32331094},"state":{"type":"ReferenceLengthExpression","length":14,"sequence":"TTTTTTTTTTTTTT","repeatSubunitLength":2}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:41.517714","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32331093_32331094dup"]}' headers: Connection: - keep-alive Content-Length: - - '806' + - '891' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:04 GMT - Server: + - Mon, 19 Feb 2024 07:31:41 GMT + Via: + - 1.1 68de14c306a725869b138a409e9694b4.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - lhqf0UaKiVfXMgW1SE1h-bFqdgHv-JGQSzkfFhwAD4knjPklpZXfoQ== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303db-34b3ef910f707a344807a20c + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2KSHnmiYcEBUA= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '891' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:41 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - 6cb6d748-5c31-4920-b0e7-1d300759cc99 status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32936732=-vo_as_dict0].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32936732=-vo_as_dict0].yaml index 25cf8b23..ea476b51 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32936732=-vo_as_dict0].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NC_000013.11:g.32936732=-vo_as_dict0].yaml @@ -1,11 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.GuDPEe-WojSx4b4DxupN3si1poaR61qL", "type": - "Allele", "location": {"id": "ga4gh:SL.jnDT8dINDpAXO35MdLK-8KzLSDL-N3LI", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, "start": 32936731, "end": 32936732}, - "state": {"type": "LiteralSequenceExpression", "sequence": "C"}}, "namespace": - "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.GJ2JySBMXePcV2yItyvCfbGBUoawOBON", "type": + "Allele", "digest": "GJ2JySBMXePcV2yItyvCfbGBUoawOBON", "location": {"id": "ga4gh:SL.28YsnRvD40gKu1x3nev0gRzRz-5OTlpS", + "type": "SequenceLocation", "digest": "28YsnRvD40gKu1x3nev0gRzRz-5OTlpS", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"}, + "start": 32936731, "end": 32936732}, "state": {"type": "LiteralSequenceExpression", + "sequence": "C"}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -14,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '411' + - '503' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.GuDPEe-WojSx4b4DxupN3si1poaR61qL","type":"Allele","location":{"id":"ga4gh:SL.jnDT8dINDpAXO35MdLK-8KzLSDL-N3LI","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32936731,"end":32936732},"state":{"type":"LiteralSequenceExpression","sequence":"C"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:02.419816","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32936732="]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.GJ2JySBMXePcV2yItyvCfbGBUoawOBON","digest":"GJ2JySBMXePcV2yItyvCfbGBUoawOBON","type":"Allele","location":{"id":"ga4gh:SL.28YsnRvD40gKu1x3nev0gRzRz-5OTlpS","digest":"28YsnRvD40gKu1x3nev0gRzRz-5OTlpS","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT"},"start":32936731,"end":32936732},"state":{"type":"LiteralSequenceExpression","sequence":"C"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:34.476394","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NC_000013.11:g.32936732="]}' headers: Connection: - keep-alive Content-Length: - - '746' + - '831' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:02 GMT - Server: + - Mon, 19 Feb 2024 07:31:34 GMT + Via: + - 1.1 8558d1ba2a2dab6b2b795204a93d7f80.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - HFI3VKBFCFCfsHab7DybDKBpzTBaPj0-Tv_Fqbyltg1h003f9b_L0Q== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303d3-455f70e93b7c5b512d6aa1b2 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2JCGIjiYcEAyg= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '831' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:34 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - 3baa1aec-a3ad-4242-9ec9-891f90569b69 status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_001331029.1:n.872A>G-vo_as_dict6].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_001331029.1:n.872A>G-vo_as_dict6].yaml index 7f8a438f..6de48d85 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_001331029.1:n.872A>G-vo_as_dict6].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_001331029.1:n.872A>G-vo_as_dict6].yaml @@ -1,10 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.OKiSoD8f-I0VYwvn9xVGjLxrZ09WWQqK", "type": - "Allele", "location": {"id": "ga4gh:SL.3flYcxCjrFFW3ex7GqcHLNH8agsKnz49", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK"}, "start": 871, "end": 872}, "state": - {"type": "LiteralSequenceExpression", "sequence": "G"}}, "namespace": "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC", "type": + "Allele", "digest": "DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC", "location": {"id": "ga4gh:SL.7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY", + "type": "SequenceLocation", "digest": "7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK"}, + "start": 871, "end": 872}, "state": {"type": "LiteralSequenceExpression", "sequence": + "G"}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -13,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '401' + - '493' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.OKiSoD8f-I0VYwvn9xVGjLxrZ09WWQqK","type":"Allele","location":{"id":"ga4gh:SL.3flYcxCjrFFW3ex7GqcHLNH8agsKnz49","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK"},"start":871,"end":872},"state":{"type":"LiteralSequenceExpression","sequence":"G"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:04.901062","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NM_001331029.1:n.872A>G"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC","digest":"DPe4AO-S0Yu4wzSCmys7eGn4p4sO0zaC","type":"Allele","location":{"id":"ga4gh:SL.7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY","digest":"7hcVmPnIspQNDfZKBzRJFc8K9GaJuAlY","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.MBIgVnoHFw34aFqNUVGM0zgjC3d-v8dK"},"start":871,"end":872},"state":{"type":"LiteralSequenceExpression","sequence":"G"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:43.826000","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NM_001331029.1:n.872A>G"]}' headers: Connection: - keep-alive Content-Length: - - '735' + - '820' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:04 GMT - Server: + - Mon, 19 Feb 2024 07:31:43 GMT + Via: + - 1.1 174476557fb07db3068d6162714fdc2a.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - Q3BOJWTQeeO9MByzfodS_o1qEhTQhO8ci3fcK8-NQGp0nGncSzsZ3A== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303de-42b5ab1e6bb8f0f562df2f28 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2K4FL4CYcEaig= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '820' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:43 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - c0fc1bf6-a75c-4270-ac39-0f9f5d7c5362 status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_181798.1:n.1263G>T-vo_as_dict7].yaml b/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_181798.1:n.1263G>T-vo_as_dict7].yaml index 223e5e98..84f96fd3 100644 --- a/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_181798.1:n.1263G>T-vo_as_dict7].yaml +++ b/tests/extras/cassettes/test_rest_dp_to_hgvs[NM_181798.1:n.1263G>T-vo_as_dict7].yaml @@ -1,10 +1,11 @@ interactions: - request: - body: '{"variation": {"id": "ga4gh:VA.wEet5lX0qWJAPuya4MNZsw6ghNYJBSvi", "type": - "Allele", "location": {"id": "ga4gh:SL.nAdMOa2ccNYPU-DEzzSzN1BaaKvEjYdX", "type": - "SequenceLocation", "sequenceReference": {"type": "SequenceReference", "refgetAccession": - "SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg"}, "start": 1262, "end": 1263}, "state": - {"type": "LiteralSequenceExpression", "sequence": "T"}}, "namespace": "refseq"}' + body: '{"variation": {"id": "ga4gh:VA.vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9", "type": + "Allele", "digest": "vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9", "location": {"id": "ga4gh:SL.EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w", + "type": "SequenceLocation", "digest": "EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w", "sequenceReference": + {"type": "SequenceReference", "refgetAccession": "SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg"}, + "start": 1262, "end": 1263}, "state": {"type": "LiteralSequenceExpression", + "sequence": "T"}}, "namespace": "refseq"}' headers: Accept: - '*/*' @@ -13,27 +14,47 @@ interactions: Connection: - keep-alive Content-Length: - - '403' + - '495' Content-Type: - application/json; charset=utf-8 User-Agent: - - python-requests/2.31.0 + - python-requests/2.28.2 method: POST uri: https://normalize.cancervariants.org/variation/vrs_allele_to_hgvs response: body: - string: '{"query":{"variation":{"id":"ga4gh:VA.wEet5lX0qWJAPuya4MNZsw6ghNYJBSvi","type":"Allele","location":{"id":"ga4gh:SL.nAdMOa2ccNYPU-DEzzSzN1BaaKvEjYdX","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg"},"start":1262,"end":1263},"state":{"type":"LiteralSequenceExpression","sequence":"T"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.0-dev0","response_datetime":"2023-09-18T20:51:05.049653","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0.dev1","url":"https://github.com/ga4gh/vrs-python"},"variations":["NM_181798.1:n.1263G>T"]}' + string: '{"query":{"variation":{"id":"ga4gh:VA.vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9","digest":"vSL4aV7mPQKQLX7Jk-PmXN0APs0cBIr9","type":"Allele","location":{"id":"ga4gh:SL.EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w","digest":"EtvHvoj1Lsq-RruzIzWbKOIAW-bt193w","type":"SequenceLocation","sequenceReference":{"type":"SequenceReference","refgetAccession":"SQ.KN07u-RFqd1dTyOWOG98HnOq87Nq-ZIg"},"start":1262,"end":1263},"state":{"type":"LiteralSequenceExpression","sequence":"T"}},"namespace":"refseq"},"warnings":[],"service_meta_":{"name":"variation-normalizer","version":"0.8.1-dev0","response_datetime":"2024-02-19T07:31:45.043414","url":"https://github.com/cancervariants/variation-normalization"},"vrs_python_meta_":{"name":"vrs-python","version":"2.0.0a2","url":"https://github.com/ga4gh/vrs-python"},"variations":["NM_181798.1:n.1263G>T"]}' headers: Connection: - keep-alive Content-Length: - - '735' + - '820' Content-Type: - application/json Date: - - Mon, 18 Sep 2023 20:51:05 GMT - Server: + - Mon, 19 Feb 2024 07:31:45 GMT + Via: + - 1.1 8558d1ba2a2dab6b2b795204a93d7f80.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - pI7KKipnUN5mb8K82X-xJMfdpB-nCBSnh9UdgGNgnLzqxPOGV7xPdA== + X-Amz-Cf-Pop: + - CMH68-P5 + X-Amzn-Trace-Id: + - Root=1-65d303df-0981cd1e0bcb5ef17f8f44c6 + X-Cache: + - Miss from cloudfront + x-amz-apigw-id: + - TX2LCF50iYcEOfg= + x-amzn-Remapped-Connection: + - keep-alive + x-amzn-Remapped-Content-Length: + - '820' + x-amzn-Remapped-Date: + - Mon, 19 Feb 2024 07:31:45 GMT + x-amzn-Remapped-Server: - nginx + x-amzn-RequestId: + - 72526368-e8aa-4065-ae96-9841ab70c269 status: code: 200 message: OK diff --git a/tests/extras/cassettes/test_to_spdi.yaml b/tests/extras/cassettes/test_to_spdi.yaml deleted file mode 100644 index aa4f4c79..00000000 --- a/tests/extras/cassettes/test_to_spdi.yaml +++ /dev/null @@ -1,146 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl - response: - body: - string: "{\n \"added\": \"2016-08-24T08:19:02Z\",\n \"aliases\": [\n \"Ensembl:19\",\n - \ \"ensembl:19\",\n \"GRCh38:19\",\n \"GRCh38:chr19\",\n \"GRCh38.p1:19\",\n - \ \"GRCh38.p1:chr19\",\n \"GRCh38.p10:19\",\n \"GRCh38.p10:chr19\",\n - \ \"GRCh38.p11:19\",\n \"GRCh38.p11:chr19\",\n \"GRCh38.p12:19\",\n - \ \"GRCh38.p12:chr19\",\n \"GRCh38.p2:19\",\n \"GRCh38.p2:chr19\",\n - \ \"GRCh38.p3:19\",\n \"GRCh38.p3:chr19\",\n \"GRCh38.p4:19\",\n \"GRCh38.p4:chr19\",\n - \ \"GRCh38.p5:19\",\n \"GRCh38.p5:chr19\",\n \"GRCh38.p6:19\",\n \"GRCh38.p6:chr19\",\n - \ \"GRCh38.p7:19\",\n \"GRCh38.p7:chr19\",\n \"GRCh38.p8:19\",\n \"GRCh38.p8:chr19\",\n - \ \"GRCh38.p9:19\",\n \"GRCh38.p9:chr19\",\n \"MD5:b0eba2c7bb5c953d1e06a508b5e487de\",\n - \ \"NCBI:NC_000019.10\",\n \"refseq:NC_000019.10\",\n \"SEGUID:AHxM5/L8jIX08UhBBkKXkiO5rhY\",\n - \ \"SHA1:007c4ce7f2fc8c85f4f148410642979223b9ae16\",\n \"VMC:GS_IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n - \ \"sha512t24u:IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n \"ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\"\n - \ ],\n \"alphabet\": \"ACGNT\",\n \"length\": 58617616\n}\n" - headers: - Connection: - - close - Content-Length: - - '1035' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:36 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=44908821&end=44908822 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:36 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/sequence/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl?start=44908821&end=44908822 - response: - body: - string: C - headers: - Connection: - - close - Content-Length: - - '1' - Content-Type: - - text/plain; charset=utf-8 - Date: - - Mon, 18 Sep 2023 20:50:36 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: http://localhost:5000/seqrepo/1/metadata/ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl - response: - body: - string: "{\n \"added\": \"2016-08-24T08:19:02Z\",\n \"aliases\": [\n \"Ensembl:19\",\n - \ \"ensembl:19\",\n \"GRCh38:19\",\n \"GRCh38:chr19\",\n \"GRCh38.p1:19\",\n - \ \"GRCh38.p1:chr19\",\n \"GRCh38.p10:19\",\n \"GRCh38.p10:chr19\",\n - \ \"GRCh38.p11:19\",\n \"GRCh38.p11:chr19\",\n \"GRCh38.p12:19\",\n - \ \"GRCh38.p12:chr19\",\n \"GRCh38.p2:19\",\n \"GRCh38.p2:chr19\",\n - \ \"GRCh38.p3:19\",\n \"GRCh38.p3:chr19\",\n \"GRCh38.p4:19\",\n \"GRCh38.p4:chr19\",\n - \ \"GRCh38.p5:19\",\n \"GRCh38.p5:chr19\",\n \"GRCh38.p6:19\",\n \"GRCh38.p6:chr19\",\n - \ \"GRCh38.p7:19\",\n \"GRCh38.p7:chr19\",\n \"GRCh38.p8:19\",\n \"GRCh38.p8:chr19\",\n - \ \"GRCh38.p9:19\",\n \"GRCh38.p9:chr19\",\n \"MD5:b0eba2c7bb5c953d1e06a508b5e487de\",\n - \ \"NCBI:NC_000019.10\",\n \"refseq:NC_000019.10\",\n \"SEGUID:AHxM5/L8jIX08UhBBkKXkiO5rhY\",\n - \ \"SHA1:007c4ce7f2fc8c85f4f148410642979223b9ae16\",\n \"VMC:GS_IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n - \ \"sha512t24u:IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\",\n \"ga4gh:SQ.IIB53T8CNeJJdUqzn9V_JnRtQadwWCbl\"\n - \ ],\n \"alphabet\": \"ACGNT\",\n \"length\": 58617616\n}\n" - headers: - Connection: - - close - Content-Length: - - '1035' - Content-Type: - - application/json - Date: - - Mon, 18 Sep 2023 20:50:36 GMT - Server: - - Werkzeug/2.2.2 Python/3.10.4 - status: - code: 200 - message: OK -version: 1 diff --git a/tests/extras/test_allele_translator.py b/tests/extras/test_allele_translator.py index fee5a3ee..6fb7f034 100644 --- a/tests/extras/test_allele_translator.py +++ b/tests/extras/test_allele_translator.py @@ -62,7 +62,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - gnomad_deletion_output = { "location": { "end": 20003097, @@ -80,7 +79,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - deletion_output_normalized = { "location": { "end": 20003097, @@ -100,7 +98,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - # https://www.ncbi.nlm.nih.gov/clinvar/variation/1687427/?new_evidence=true insertion_inputs = { "hgvs": "NC_000013.11:g.20003010_20003011insG", @@ -125,7 +122,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - gnomad_insertion_output = { "location": { "end": 20003010, @@ -143,7 +139,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - # https://www.ncbi.nlm.nih.gov/clinvar/variation/1264314/?new_evidence=true duplication_inputs = { "hgvs": "NC_000013.11:g.19993838_19993839dup", @@ -168,7 +163,6 @@ def tlr(rest_dataproxy): "type": "Allele" } - duplication_output_normalized = { "location": { "end": 19993839, @@ -318,26 +312,22 @@ def test_to_spdi(tlr): 'type': 'SequenceLocation'}, 'state': {'sequence': 'GGCT', 'type': 'LiteralSequenceExpression'}, 'type': 'Allele'}), - ("NC_000013.11:g.32331093_32331094dup", { - "id": "ga4gh:VA.x5iNzjjXbb1-wWTBLMBcicYlCMwYoedq", - "location": { - "id": "ga4gh:SL.PJ8lHWhAMNRSrxHvkarfDjRWxF-GwaJ_", - "end": 32331094, - "start": 32331082, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "length": 14, - "repeatSubunitLength": 2, - "sequence": "TTTTTTTTTTTTTT", - "type": "ReferenceLengthExpression" - }, - "type": "Allele" - }), + ("NC_000013.11:g.32331093_32331094dup", + {'digest': 'swY2caCgv1kP6YqKyPlcEzJqTvou15vC', + 'id': 'ga4gh:VA.swY2caCgv1kP6YqKyPlcEzJqTvou15vC', + 'location': {'digest': 'ikECYncPpE1xh6f_LiComrFGevocjDHQ', + 'end': 32331094, + 'id': 'ga4gh:SL.ikECYncPpE1xh6f_LiComrFGevocjDHQ', + 'sequenceReference': { + 'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32331082, + 'type': 'SequenceLocation'}, + 'state': {'length': 14, + 'repeatSubunitLength': 2, + 'sequence': 'TTTTTTTTTTTTTT', + 'type': 'ReferenceLengthExpression'}, + 'type': 'Allele'}), ("NC_000013.11:g.32316467dup", {'digest': '96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT', 'id': 'ga4gh:VA.96ak7XdY3DNbp71aHEXw-NHSfeHGW-KT', @@ -414,7 +404,6 @@ def test_to_hgvs_invalid(tlr): tlr.translate_to(iri_vo, "hgvs") assert str(e.value) == "`vo.location.sequenceReference` expects a `SequenceReference`" - # TODO: Readd these tests # @pytest.mark.vcr # def test_errors(tlr): From b51fb6cd3f2c44cbec699dd59f110e081ca2800a Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 10:58:03 -0500 Subject: [PATCH 19/21] restore use of VOCA seed for RSL --- src/ga4gh/vrs/normalize.py | 28 ++++++++++++--------- tests/extras/test_allele_translator.py | 34 ++++++++++++-------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index 0c929f86..ac6f58fb 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -3,6 +3,7 @@ See https://vrs.ga4gh.org/en/stable/impl-guide/normalization.html """ +import itertools import logging import math from enum import IntEnum @@ -134,21 +135,21 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): trim_ival, trim_alleles = _normalize(ref_seq, ival, alleles, mode=None, trim=True) except ValueError: # Occurs for ref agree Alleles (when alt = ref) - len_ref_seq = len_alt_seq = 0 + len_trimmed_ref = len_trimmed_alt = 0 # TODO: Return RLE for ref agree Alleles else: trim_ref_seq = ref_seq[trim_ival[0]: trim_ival[1]] trim_alt_seq = trim_alleles[1] - len_ref_seq = len(trim_ref_seq) - len_alt_seq = len(trim_alt_seq) + len_trimmed_ref = len(trim_ref_seq) + len_trimmed_alt = len(trim_alt_seq) # Compare the two allele sequences - if not len_ref_seq and not len_alt_seq: + if not len_trimmed_ref and not len_trimmed_alt: return input_allele new_allele = pydantic_copy(input_allele) - if len_ref_seq and len_alt_seq: + if len_trimmed_ref and len_trimmed_alt: new_allele.location.start = _get_new_allele_location_pos( trim_ival[0], start.pos_type ) @@ -157,6 +158,10 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): ) new_allele.state.sequence = models.SequenceString(trim_alleles[1]) return new_allele + elif len_trimmed_ref: + repeat_subunit_length = len_trimmed_ref + else: + repeat_subunit_length = len_trimmed_alt # Determine bounds of ambiguity new_ival, new_alleles = _normalize( @@ -173,9 +178,9 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): new_ival[1], end.pos_type ) - new_ref_seq = ref_seq[new_ival[0]: new_ival[1]] + extended_ref_seq = ref_seq[new_ival[0]: new_ival[1]] - if not new_ref_seq: + if not extended_ref_seq: # If the reference sequence is empty this is an unambiguous insertion. # Return a new Allele with the trimmed alternate sequence as a Literal # Sequence Expression @@ -186,13 +191,12 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): # Otherwise, calculate the repeat subunit length and determine if this is # an RLE allele. len_extended_alt = len(new_alleles[1]) - len_extended_ref = len(new_ref_seq) - repeat_subunit_length = math.gcd(len_extended_ref, len_extended_alt) + len_extended_ref = len(extended_ref_seq) if len_extended_alt > len_extended_ref: - repeat_sequence = new_ref_seq[:repeat_subunit_length] - x = len_extended_alt // repeat_subunit_length - if repeat_sequence * x != new_alleles[1]: + repeat_sequence = itertools.cycle(extended_ref_seq[:repeat_subunit_length]) + ref_derived_alt = ''.join([next(repeat_sequence) for _ in range(len_extended_alt)]) + if ref_derived_alt != new_alleles[1]: # if this is an ambiguous insertion of novel sequence # create a new allele with a Literal Sequence Expression new_allele.state = models.LiteralSequenceExpression( diff --git a/tests/extras/test_allele_translator.py b/tests/extras/test_allele_translator.py index eb338744..55d805d6 100644 --- a/tests/extras/test_allele_translator.py +++ b/tests/extras/test_allele_translator.py @@ -389,24 +389,19 @@ def test_rle_seq_limit(tlr): tlr.identify = True a_dict = { - "id": "ga4gh:VA.VfJkaAxTPjZAG_fWm_sB4m19R5p5WGSj", - "location": { - "id": "ga4gh:SL.0jECKVeKM2-s_uDWtUgW-qvkupO3COKr", - "end": 32331094, - "start": 32331042, - "sequenceReference": { - "refgetAccession": "SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT", - "type": "SequenceReference" - }, - "type": "SequenceLocation" - }, - "state": { - "length": 104, - "repeatSubunitLength": 52, - "type": "ReferenceLengthExpression" - }, - "type": "Allele" - } + 'digest': 'j7qUzb1uvmdxLAbtdCPiay4kIRQmyZNv', + 'id': 'ga4gh:VA.j7qUzb1uvmdxLAbtdCPiay4kIRQmyZNv', + 'location': {'digest': '88oOqkUgALP7fnN8P8lbvCosFhG8YpY0', + 'end': 32331094, + 'id': 'ga4gh:SL.88oOqkUgALP7fnN8P8lbvCosFhG8YpY0', + 'sequenceReference': {'refgetAccession': 'SQ._0wi-qoDrvram155UmcSC-zA5ZK4fpLT', + 'type': 'SequenceReference'}, + 'start': 32331042, + 'type': 'SequenceLocation'}, + 'state': {'length': 104, + 'repeatSubunitLength': 52, + 'type': 'ReferenceLengthExpression'}, + 'type': 'Allele'} input_hgvs_expr = "NC_000013.11:g.32331043_32331094dup" # use default rle_seq_limit @@ -419,7 +414,8 @@ def test_rle_seq_limit(tlr): # set rle_seq_limit to None allele_with_seq = tlr.translate_from(input_hgvs_expr, fmt="hgvs", rle_seq_limit=None) a_dict_with_seq = a_dict.copy() - a_dict_with_seq["state"]["sequence"] = "TTTAGTTGAACTACAGGTTTTTTTGTTGTTGTTGTTTTGATTTTTTTTTTTTTTTAGTTGAACTACAGGTTTTTTTGTTGTTGTTGTTTTGATTTTTTTTTTTT" + a_dict_with_seq["state"][ + "sequence"] = "TTTAGTTGAACTACAGGTTTTTTTGTTGTTGTTGTTTTGATTTTTTTTTTTTTTTAGTTGAACTACAGGTTTTTTTGTTGTTGTTGTTTTGATTTTTTTTTTTT" assert allele_with_seq.model_dump(exclude_none=True) == a_dict_with_seq output_hgvs_expr = tlr.translate_to(allele_with_seq, "hgvs") From 8faaf00a11cd7945b3f2bb659497fcc142dcb42a Mon Sep 17 00:00:00 2001 From: "Alex H. Wagner, PhD" Date: Mon, 19 Feb 2024 11:02:43 -0500 Subject: [PATCH 20/21] add TODO --- src/ga4gh/vrs/normalize.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ga4gh/vrs/normalize.py b/src/ga4gh/vrs/normalize.py index ac6f58fb..6fda9bd1 100644 --- a/src/ga4gh/vrs/normalize.py +++ b/src/ga4gh/vrs/normalize.py @@ -196,6 +196,9 @@ def _normalize_allele(input_allele, data_proxy, rle_seq_limit=50): if len_extended_alt > len_extended_ref: repeat_sequence = itertools.cycle(extended_ref_seq[:repeat_subunit_length]) ref_derived_alt = ''.join([next(repeat_sequence) for _ in range(len_extended_alt)]) + # TODO: The space and time efficiency can be improved by iterating over the new_allele[1] + # sequence and comparing to next(repeat_sequence) until there is a mismatch (LSE Allele) + # or you get through the whole new_allele[1] sequence (RLE Allele). if ref_derived_alt != new_alleles[1]: # if this is an ambiguous insertion of novel sequence # create a new allele with a Literal Sequence Expression From 7cbae0d64fa84c0c8b4c5b9d8fb9c97ec15301a0 Mon Sep 17 00:00:00 2001 From: korikuzma Date: Wed, 21 Feb 2024 07:54:05 -0500 Subject: [PATCH 21/21] test: fix vcf annotation test chr19-54220999-A-A had that `C` was the actual ref seq, but it should have been `T` --- .../test_vcf_expected_altsonly_output.vcf.gz | Bin 4443 -> 4440 bytes .../data/test_vcf_expected_output.vcf.gz | Bin 4701 -> 4699 bytes ...st_vcf_expected_output_no_vrs_attrs.vcf.gz | Bin 4488 -> 4488 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/extras/data/test_vcf_expected_altsonly_output.vcf.gz b/tests/extras/data/test_vcf_expected_altsonly_output.vcf.gz index 862d5d492d06cfadf16a10846f5a0e542e24c6fb..5f82490d998252991604e4c1f1f4a637ad0bf57b 100644 GIT binary patch delta 1937 zcmV;C2X6S=BG@7aABzYGGxF7u2VVjhSFvce2Y(*0^=6lTD?>rFVW>VO@z#E2=Dtz& zN_J7HqiNN!v?vQreO7MjBm7ZcwDQxY&gV@XcPsc{dD&}@f@qn01Uv)RWr6XmRj^!X zEa}xZ49rf8*V>Y<1sBhJKwaubnP>F%aQto?N6UTde%twpHby%)h~|EHgoR1G_V*&_ z)qmz>QmoM1F8yteXG(51`2xUaAfZeHxKty~3f7x2fGc4E@u&M`yh|X=3lOH4q4n$= zJzK_6cz=YY`ZQ}8gM2^rtr5g*9n7@Ja|3hQvLLnYz?fNaDqOV=@*pg>;8riXw{p{q zWw(Id2M4ZiywC%yk1$OKCene;uC$5^Gai;Oz*i9l82fM1V;XJWlb+hwAK&`h(A#Xl zVy)yevpNY&0e{cprovov2_>t2EdZLV_y}JXg1$J+Xa<0Lw6;A*wCUCdwCYxeY8^+| ze;H^P?wj8%&!xG&Lr>|Z1xX9kL9b{o^A0eK?|`hJta{6AnOW=g@^wyQ`}_ew2xhx5 z%>{gcN!695?i+}Uez#?VDJwJg^m^NyAl-T?^s-09>wo&qxfLwT#%*qPw0ZST;xZ3& z(V0J>Gm3nF-WmfCrTwK%+(p4}8g4}cafBO+raM=uFW>3bE4M_av3?z>c0e^GL6}Ap zjpWE;|6LufmQ?m5o{^j7wV$^=YkP2w_YO_3Ey`NTW0s*^&|G@Hi07}aUk)ZkYxRfq zRfg8l>wlw|5}Y$C&HruZg+Y4Xt`b%bNuYsTIOnycakR0h?Ka*X!5bHP)UteiwiVB2yKOcaX7=V?k2dV0GP|2;&QFJGpFll2 z)PFrry={7oZ*)-fQiJ(UI|;Zyh&(+N?h?%hIqjDHl$B&+zqQ|@IlkpS2>r%(gU?g{ zSUdvvK`Rjg@}W%Vjx*(aU z+sWR3{kNHZ?P*6b+ZLT(XV{r^B46A)g-gU3M*|Q)%Etvw&F((y$ z%5Vh~9PHMY*WKZ8Oy!50DI*_lPD@&cOU$lUUvhap8ccp{oPPH9v}MldzX- zkdKYiyTehWUo#$dFXHI@W4!je<2VfF<8w#eY);GOu|FJ7n_8w-UkQgQQySlz7k}u3 zqB?r2nYu-${`$0T*7~{?JKbv<`>Q2ay~JP6cbjCIK%MjF)3v`{LURYb=-S(CyqiFm zP*8T-5L{PSL2hjtCOrq!hhc$degDS0 z_mfskHf;G_`0d$p6qedin4xSRRmF`Az{-nw9dF|B9x#q1^MZpg`!8qug{a8mgHtku3ujK{OgZDk8kdN z7>nuc#u?imO(^ELsj;X(+qMbDLG#x`&=icFQ0hQb>4~CUN1kwLR{(WI#&DC)WH=a( zhQrBdG8jyTUxd~QsTw&)p?|fVn;ICd(P}@8)-S~99*x#uZw2pH-uSX@ z9goe7&*Aibe0#P@-z{D|o4P-rFLsW)WT#P;CRJJPMq77;A{iM?v%e6q!utcn`P&{Js>uH8)qv z^`{rZ2a}2qUVjJC7{(tQkB4zOo!!2Y#5?3ts#7vWa_#fDZH`hVmPR}k?Z@FM delta 1940 zcmV;F2W$A)BHJPdABzYGFl^3|2VVl{RIzBb2Y)_e>&-6xR)&IT!%%%n;;sG4%zdNk zmF%KYN7JfdX;BuM`mEg4NBE<@XyvC(ozI&(?pE-@^0L<)1<^A12zUmr%L3zBt6;g( zSkkL+7?_c$Yw!7a&Y8L+jZ$ zdbW(C@csx(^=Z~H2Kj#KTO)|sI+$sb=LY7qWkG7)fibhVKfd+1p|{z9 z#ahV&vpNY&0e=T^Q(>;Tgp$?17646Fe1tCxL0=qZGy}jrTHBr@+H~s!T6L>KwT>g~ zzYH`C_swsX=hEEXp{I1yf}{oNpjR}Pc?THAcR*H9R=s7m%&hf#`8ubuef|I-1hZY3 z<^sOJr0U92_YK5FzuU6Gl$Du#dcEyUkZ!#cdf6l5b$|Wl+zJ+E<2E-t+Pr!vahZp? z=*%C`8AZN7Z;b(n(*DvW?xNr~4Y#6!IKmA@)19l-m+y4zm0P0ISicTbJD?hpAWWl) zMsj4a|E>;KODg*j&&bX4+J|k=+8$ivy+hM$i?WvTm}O`eG?$();`yuVmxD>sTK!>t zm7#U?`hO^<1m}!O^MBiUVUXUptAv$95@;Y7&UtNVT<&pO;g&oje4QYPA0^NNj3!-c zmz9jH;Wz7ACeHVu>=oMfmohjTTwa!|x&EEi6wP|(!=!B~hteM{x@{WB7^-0T=E!Tr zXmSK83~L{jfofURQTndN$6(?LWmEoWXEYF_7Z%91a=Dspp{+VF=m-ZnkPH##VKslj}wodnz;M4p}scZueMoOa88%1Sb^-`a1{9N%&ugnnbY!RM)e zEFOXTpp^&#`A{ZwN1CLy@z{0_UtGU>*|~Z(?p&O8uFs!$;CScto55u#-!kavb#(IF z?PPDi{@YBy_OzpzZHrE?Gwe({l5})o>VH(TT%VmbhSfeL@48ps>{$?>mP`TXn3IY= zWw-(g4tDFy>+Wzkrt-thl#vfNrzNe!C1%&FFS)!P4JJP}PCt8l+A?SKUj$?Sx2tnb z$j8R%-Qg(GuNe=!7jbm{F<$%KaU2Ho@wp>!Hm7Ct*dLCkO)b-^uY^ODDUEN<3xD)M zQ5`+iOx+?=e|=gvYkl2{o$fV_{ne7IUg9t3yG=4ppw9X8>Du2ep}B)zbnR_6-c6uO zC@4E^a$mOJl%=Ynk@P{*!;B2 z!0cmn9H7~sbViettMSR%)k#();eYRw(d!QR7d`2nP$^DGmt=n^BL#k#5*%;?02%;> z4iO~w5OfiSyEUY7w}ui#u11q+qREW*!^o;)UqehbA!f+QfYuJVEVea}jEfdq-@ozh z{iGF>4O@N}etWhYg{5{BW+>Z7RdFK&u<{~a$D2632TUc?WoqASronpSZ+{msPA^lv zM>|czcq6;TC1brU>tFjD-%IN=SGg2@L4Nv!Q1poS^?CBslH82R^~;N&fBo_2@y*>2 zV==wmIAi;x3B?>YH5T<}+cv>CX#V;fGzDWPlsXVqdZK98ktbZ*6+m5)G2Emx84iY{ z;czmV3lb2lk49^-w}SVp@%lAl%kLpZ%3-=1yKcZ(O#rtZ(@i=CrxIXnCG?A;HGyV3HM)5NKUkBL+G+`wrQRKw2# zRZ?~0ims~wu6CDl=fqL60aQXVsJ4Mq9tF-kj5S2%qabe zY>L@ya=&V(IetXx9t8G5K(zLn`TwJo%`y7y-i^2J!4k;w!Pie+1h+jxiOWb&4>;Y2 zlX(y|e?XO{|6;nGl$zn-cm1#Hny7MJSCd@p$ovMtbysgcxH>VEkY&X`!G>t}E2i(h{E^z-}WF4Y;EjutO3q7U0&cHN%IPDQ|Z@omOV aB?#&>v%$Cf*|OJ;s{aF9{+x?xZvX)1H0+xI diff --git a/tests/extras/data/test_vcf_expected_output.vcf.gz b/tests/extras/data/test_vcf_expected_output.vcf.gz index 1aa28c092ff2912af0bb47869953b08741fd6b55..8727d128249f0de0d52e385ac4d36d9ca7bc705f 100644 GIT binary patch delta 4473 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≶cXS^g4; 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 N{{w4Bc+4zu004|c%M<_r diff --git a/tests/extras/data/test_vcf_expected_output_no_vrs_attrs.vcf.gz b/tests/extras/data/test_vcf_expected_output_no_vrs_attrs.vcf.gz index 953ac92fc0ff0fa092b3aff980e8da08c4ed77fc..46a69d134c9dcc7358cb3177006aaad9907eb4df 100644 GIT binary patch delta 31 ncmeBB?oeiz@8;kz{&;mGyP_cDugRK%;T(B)SDpHw!@vLlrnn1C delta 31 ncmeBB?oeiz@8;l8$~m`@T~Uzn)?`h=aE|$96MFvVFfafBl=2Dz