From 5d05dbbf9d74f0588046888c454b0a6538c6bd22 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 10:32:08 -0800 Subject: [PATCH 01/22] =?UTF-8?q?Use=20jsonschema=20=E2=89=A54.18.0=20and?= =?UTF-8?q?=20new=20referencing=20library?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In v4.18.0, jsonschema.RefResolver was deprecated in favor of the new referencing library.¹ The intro² and API³ docs were helpful in determining the necessary changes. I've tested that our new usage is not backwards compatible with v4.17.3 and thus updated the minimum requirement to v4.18.0. I chose v0.29.1 as the minimum supported version of referencing because that was the version released alongside jsonschema v4.18.0. The default behavior no longer tries to access the network, so I've reworded the retrieval function comment and error message. Local reference mismatches are now a "PointerToNowhere" error instead of an "Unresolvable JSON pointer" error. It shows the entire schema JSON in the output which can seem unnecessarily verbose, but I think it's fine since this is only intended to show on internal errors with the schema. ¹ https://github.com/python-jsonschema/jsonschema/blob/93e0caa5752947ec77333da81a634afe41a022ed/CHANGELOG.rst#v4180 ² https://python-jsonschema.readthedocs.io/en/stable/referencing/#introduction-to-the-referencing-api ³ https://referencing.readthedocs.io/en/stable/api/#referencing.Registry.with_contents --- augur/validate.py | 29 ++++++++++++++++------------- setup.py | 3 ++- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/augur/validate.py b/augur/validate.py index 364a5d785..da758f2b5 100644 --- a/augur/validate.py +++ b/augur/validate.py @@ -9,6 +9,7 @@ import jsonschema.exceptions import re from itertools import groupby +from referencing import Registry from textwrap import indent from typing import Iterable, Union from augur.data import as_file @@ -48,22 +49,24 @@ def load_json_schema(path, refs=None): for k, v in refs.items(): with as_file(v) as file, open_file(file, "r") as fh: schema_store[k] = json.load(fh) - resolver = jsonschema.RefResolver.from_schema(schema,store=schema_store) - schema_validator = Validator(schema, resolver=resolver) + + # Create a dummy retrieval function to handle URIs not present in + # schema_store. This often indicates a typo (the $ref doesn't match the + # key of the schema_store) or we forgot to add a local mapping for a new + # $ref. + def retrieve(uri): + # Take advantage of the fact that BaseException is not handled by + # Registry.get_or_retrieve. This means the custom error message is + # printed instead of the less helpful default: + # jsonschema.exceptions._WrappedReferencingError: Unresolvable: https://… + raise BaseException(f"The schema used for validation could not resolve a local file for {uri!r}. " + + "Please check the schema used and update the appropriate schema_store as needed." ) + + registry = Registry(retrieve=retrieve).with_contents(schema_store.items()) + schema_validator = Validator(schema, registry=registry) else: schema_validator = Validator(schema) - # By default $ref URLs which we don't define in a schema_store are fetched - # by jsonschema. This often indicates a typo (the $ref doesn't match the key - # of the schema_store) or we forgot to add a local mapping for a new $ref. - # Either way, Augur should not be accessing the network. - def resolve_remote(url): - # The exception type is not important as jsonschema will catch & re-raise as a RefResolutionError - raise Exception(f"The schema used for validation attempted to fetch the remote URL {url!r}. " + - "Augur should resolve schema references to local files, please check the schema used " + - "and update the appropriate schema_store as needed." ) - schema_validator.resolver.resolve_remote = resolve_remote - return schema_validator diff --git a/setup.py b/setup.py index 81aad167d..57b6a5f1c 100644 --- a/setup.py +++ b/setup.py @@ -57,7 +57,7 @@ "cvxopt >=1.1.9, ==1.*", "importlib_resources >=5.3.0; python_version < '3.11'", "isodate ==0.6.*", - "jsonschema >=3.0.0, ==3.*", + "jsonschema >=4.18.0, ==4.*", "networkx >= 2.5, <4", "numpy ==1.*", "packaging >=19.2", @@ -65,6 +65,7 @@ "phylo-treetime >=0.11.2, <0.12", "pyfastx >=1.0.0, <3.0", "python_calamine >=0.2.0", + "referencing >=0.29.1, <1.0", "scipy ==1.*", "xopen[zstd] >=1.7.0, <3" # TODO: Deprecated, remove v1 support around November 2024 ], From 901fcc82dd46fd6398c7c08eec221720b642a50f Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:36:07 -0800 Subject: [PATCH 02/22] Update changelog --- CHANGES.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index e8f0d0aec..fe85ebddf 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,15 @@ ## __NEXT__ +### Major Changes + +- Drop support for older versions of jsonschema (<4.18.0). [#1691] (@victorlin) + +### Bug fixes + +- export: validation will no longer crash with `KeyError: 'tree'` when newer versions of jsonschema (≥4.18.0) are installed. [#1691] (@victorlin) + +[#1691]: https://github.com/nextstrain/augur/pull/1691 ## 26.2.0 (20 November 2024) From e370b77fd451f5c7b48bb0f39a40e1b7502f20b2 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:15:03 -0800 Subject: [PATCH 03/22] Drop support for xopen v1 Following through with deprecation to simplify the code. --- DEPRECATED.md | 2 +- augur/io/file.py | 16 ++-------------- setup.py | 2 +- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/DEPRECATED.md b/DEPRECATED.md index 4523d354f..667bded3a 100644 --- a/DEPRECATED.md +++ b/DEPRECATED.md @@ -6,7 +6,7 @@ available for backwards compatibility, but should not be used in new code. ## `xopen` major version 1 -*Deprecated in version 25.1.0 (July 2024). Planned for removal November 2024 or after.* +*Deprecated in version 25.1.0 (July 2024). Removed in version 27.0.0 (December 2024).* ## `augur parse` preference of `name` over `strain` as the sequence ID field diff --git a/augur/io/file.py b/augur/io/file.py index 1aa5f59af..2b9883f32 100644 --- a/augur/io/file.py +++ b/augur/io/file.py @@ -2,21 +2,9 @@ from contextlib import contextmanager from io import IOBase from textwrap import dedent -from xopen import xopen +from xopen import xopen, _PipedCompressionProgram from augur.errors import AugurError -# Workaround to maintain compatibility with both xopen v1 and v2 -# Around November 2024, we shall drop support for xopen v1 -# by removing the try-except block and using -# _PipedCompressionProgram directly -try: - from xopen import _PipedCompressionProgram as PipedCompressionReader - from xopen import _PipedCompressionProgram as PipedCompressionWriter -except ImportError: - from xopen import ( # type: ignore[attr-defined, no-redef] - PipedCompressionReader, - PipedCompressionWriter, - ) ENCODING = "utf-8" @@ -63,7 +51,7 @@ def open_file(path_or_buffer, mode="r", **kwargs): Try re-saving the file using the {e.encoding!r} encoding.""")) - elif isinstance(path_or_buffer, (IOBase, PipedCompressionReader, PipedCompressionWriter)): + elif isinstance(path_or_buffer, (IOBase, _PipedCompressionProgram)): yield path_or_buffer else: diff --git a/setup.py b/setup.py index 57b6a5f1c..7cf0e0a8d 100644 --- a/setup.py +++ b/setup.py @@ -67,7 +67,7 @@ "python_calamine >=0.2.0", "referencing >=0.29.1, <1.0", "scipy ==1.*", - "xopen[zstd] >=1.7.0, <3" # TODO: Deprecated, remove v1 support around November 2024 + "xopen[zstd] >=2.0.0, <3" ], extras_require = { 'dev': [ From cc6d19a870ccdf58309cc58f40d40629a0179d6a Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:19:41 -0800 Subject: [PATCH 04/22] Update changelog --- CHANGES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index fe85ebddf..b758145ca 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,12 +5,14 @@ ### Major Changes - Drop support for older versions of jsonschema (<4.18.0). [#1691] (@victorlin) +- Drop support for xopen <2.0.0. [#1692] (@victorlin) ### Bug fixes - export: validation will no longer crash with `KeyError: 'tree'` when newer versions of jsonschema (≥4.18.0) are installed. [#1691] (@victorlin) [#1691]: https://github.com/nextstrain/augur/pull/1691 +[#1692]: https://github.com/nextstrain/augur/pull/1692 ## 26.2.0 (20 November 2024) From 821c5a5f979d010cc306443da1f7a32106371e11 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:02:46 -0800 Subject: [PATCH 05/22] Drop Python 3.8 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Python 3.8 reached EOL ~2 months ago¹. Many dependencies have already dropped support in recent versions. Use 3.9 as the minimum Python version. ¹ https://devguide.python.org/versions/ --- .github/workflows/ci.yaml | 1 - docs/contribute/DEV_DOCS.md | 2 +- docs/installation/installation.rst | 2 +- mypy.ini | 2 +- pyrightconfig.json | 2 +- setup.py | 1 - 6 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 45f664e14..c721c6f8f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -41,7 +41,6 @@ jobs: strategy: matrix: python-version: - - '3.8' - '3.9' - '3.10' - '3.11' diff --git a/docs/contribute/DEV_DOCS.md b/docs/contribute/DEV_DOCS.md index c46542819..1d3b89e74 100644 --- a/docs/contribute/DEV_DOCS.md +++ b/docs/contribute/DEV_DOCS.md @@ -17,7 +17,7 @@ Please see the [open issues list](https://github.com/nextstrain/augur/issues) fo ## Contributing code -We currently target compatibility with Python 3.8 and higher. As Python releases new versions, +We currently target compatibility with Python 3.9 and higher. As Python releases new versions, the minimum target compatibility may be increased in the future. ### Running local changes diff --git a/docs/installation/installation.rst b/docs/installation/installation.rst index 34f82e919..172686459 100644 --- a/docs/installation/installation.rst +++ b/docs/installation/installation.rst @@ -45,7 +45,7 @@ There are several ways to install Augur, ordered from least to most complex. .. warning:: Installing other Python packages after Augur may cause dependency incompatibilities. If this happens, re-install Augur using the command in step 1. - Augur is written in Python 3 and requires at least Python 3.8. It's published on `PyPI `__ as `nextstrain-augur `__. + Augur is written in Python 3 and requires at least Python 3.9. It's published on `PyPI `__ as `nextstrain-augur `__. 1. Install Augur along with Python dependencies. diff --git a/mypy.ini b/mypy.ini index 56de27ade..873e5c085 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,6 +1,6 @@ [mypy] # Check against lowest compatible Python version -python_version = 3.8 +python_version = 3.9 # Don't set python_version. Instead, use the default behavior of checking for # compatibility against the version of Python used to run mypy. diff --git a/pyrightconfig.json b/pyrightconfig.json index 0fbcad0c2..90c0c23fd 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,7 +1,7 @@ { // Check against lowest compatible Python version // Sync this with python-version in .github/workflows/ci.yaml:jobs.pyright - "pythonVersion": "3.8", + "pythonVersion": "3.9", "include": ["augur/"], diff --git a/setup.py b/setup.py index 7cf0e0a8d..a2545fe3a 100644 --- a/setup.py +++ b/setup.py @@ -103,7 +103,6 @@ # Python 3 only "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", From f609938bc2e100b04a3a0a3d5717632dae6a0072 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:04:32 -0800 Subject: [PATCH 06/22] Remove explicit line_buffering for stderr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is now consistently the default with Python 3.9 onwards.¹ ¹ --- augur/__main__.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/augur/__main__.py b/augur/__main__.py index 59f89dd8f..68b3a0bde 100644 --- a/augur/__main__.py +++ b/augur/__main__.py @@ -24,11 +24,7 @@ def main(): errors="backslashreplace", newline=None, - # Always line-buffer stderr since we only use it for messaging, not - # data output. This is the Python default from 3.9 onwards, but we - # also run on 3.8 where it's not. Be consistent regardless of Python - # version. - line_buffering=True, + # By default, stderr is always line-buffered. ) return augur.run( argv[1:] ) From b739d9093aaadf7015314c16a255ef52e20d274f Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:09:28 -0800 Subject: [PATCH 07/22] Remove unclear TODO on dictionary union operator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's not clear to me how to use the dictionary union operator to implement deep merge (a non-trivial problem¹). ¹ https://stackoverflow.com/q/7204805 --- augur/util_support/node_data.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/augur/util_support/node_data.py b/augur/util_support/node_data.py index 62b553663..0bb77bdf9 100644 --- a/augur/util_support/node_data.py +++ b/augur/util_support/node_data.py @@ -31,8 +31,6 @@ def deep_add_or_update(self, d, key, value): raise exception """ - # TODO Python 3.9: Use the new dictionary union operator (https://www.python.org/dev/peps/pep-0584/) - if key not in d or ( not isinstance(d[key], dict) and not isinstance(value, dict) ): From d85578c07ba2284e6655df9541ea09d305635b6c Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:25:08 -0800 Subject: [PATCH 08/22] Update changelog --- CHANGES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index b758145ca..c64f473d8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,7 @@ - Drop support for older versions of jsonschema (<4.18.0). [#1691] (@victorlin) - Drop support for xopen <2.0.0. [#1692] (@victorlin) +- Drop support for Python 3.8. [#1693] (@victorlin) ### Bug fixes @@ -13,6 +14,7 @@ [#1691]: https://github.com/nextstrain/augur/pull/1691 [#1692]: https://github.com/nextstrain/augur/pull/1692 +[#1693]: https://github.com/nextstrain/augur/pull/1693 ## 26.2.0 (20 November 2024) From f4b89f3d123a2bdcd15863f0d9d3b34129dccd1b Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:27:50 -0800 Subject: [PATCH 09/22] Add link to jsonschema incompatibility issue There is more context in the issue than the PR that closed it. --- CHANGES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index c64f473d8..61a00a11c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,8 +10,9 @@ ### Bug fixes -- export: validation will no longer crash with `KeyError: 'tree'` when newer versions of jsonschema (≥4.18.0) are installed. [#1691] (@victorlin) +- export: validation will no longer crash with `KeyError: 'tree'` when newer versions of jsonschema (≥4.18.0) are installed. [#1358] (@victorlin) +[#1358]: https://github.com/nextstrain/augur/issues/1358 [#1691]: https://github.com/nextstrain/augur/pull/1691 [#1692]: https://github.com/nextstrain/augur/pull/1692 [#1693]: https://github.com/nextstrain/augur/pull/1693 From 721124337b8b31111f536d539ca316a1c181d2f0 Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:15:24 -0800 Subject: [PATCH 10/22] Reorder major changes entries Adjusting the order from roughly most to least impactful based on the assumption that users will only have to worry about these versions in self-managed installations (not Nextstrain runtimes), and: - In most cases (conda/pip), Python version is static unless explicitly changed by the user. I suspect there is a good chunk of users still using Python 3.8 just because it was the latest available version when the environment was set up. - More users should be on jsonschema version <4.18.0 compared to xopen <2.0.0. A few have inadvertently updated to the newer jsonschema version through another pip install encountered an incompatibility and would be keen to see this changelog. --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 61a00a11c..ac356107f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,9 +4,9 @@ ### Major Changes +- Drop support for Python 3.8. [#1693] (@victorlin) - Drop support for older versions of jsonschema (<4.18.0). [#1691] (@victorlin) - Drop support for xopen <2.0.0. [#1692] (@victorlin) -- Drop support for Python 3.8. [#1693] (@victorlin) ### Bug fixes From a2c8d9d9e5bff84f6ca7ffcb9221d987e4097c1a Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:37:27 -0800 Subject: [PATCH 11/22] Ignore TreeTime citation link for linkcheck This has recently been returning 403 consistently. --- docs/conf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 9fa3145d2..7b439c465 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -157,9 +157,10 @@ def prose_list(items): ## string" matching happening, and something like a plain `r'google'` ## regular expression will _NOT_ match all google.com URLs. linkcheck_ignore = [ - # This URL will occasionally fail and return 403 (broken). + # These URLs will occasionally fail and return 403 (broken). # r'^http://www\.microbesonline\.org/fasttree/', + r'^https://academic\.oup\.com/ve/article/4/1/vex042/4794731', ] linkcheck_anchors_ignore_for_url = [ # Github uses anchor-looking links for highlighting lines but From e713505cfa2b979e7e72851fecbe56be45596e9f Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:55:13 -0800 Subject: [PATCH 12/22] Fix release job condition Follow-up to "Condition release job on default branch" (78a8fb62) which used the wrong property. --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c99890fee..27a914224 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -10,7 +10,7 @@ on: type: string jobs: run: - if: github.ref == github.event.repository.default_branch + if: github.ref_name == github.event.repository.default_branch uses: ./.github/workflows/ci.yaml secrets: inherit with: From 85ab8021f7288a8f189430151bbf695df8a1f252 Mon Sep 17 00:00:00 2001 From: Nextstrain bot Date: Mon, 9 Dec 2024 19:22:38 +0000 Subject: [PATCH 13/22] version 27.0.0 --- CHANGES.md | 3 +++ augur/__version__.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index ac356107f..b0cf6e697 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ## __NEXT__ + +## 27.0.0 (9 December 2024) + ### Major Changes - Drop support for Python 3.8. [#1693] (@victorlin) diff --git a/augur/__version__.py b/augur/__version__.py index 3f47307d8..9b9c5d5d6 100644 --- a/augur/__version__.py +++ b/augur/__version__.py @@ -1,4 +1,4 @@ -__version__ = '26.2.0' +__version__ = '27.0.0' def is_augur_version_compatible(version): From ce291aeb982690e383aa227eec4c0e0c5557896c Mon Sep 17 00:00:00 2001 From: Victor Lin <13424970+victorlin@users.noreply.github.com> Date: Mon, 9 Dec 2024 12:48:59 -0800 Subject: [PATCH 14/22] Add CITATION.cff file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CFF is a file format for citations.¹ This adds a "Cite this repository" button on the GitHub repo homepage.² Values retrieved from the JOSS paper page. ¹ https://citation-file-format.github.io ² https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-citation-files --- CITATION.cff | 45 +++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 47 insertions(+) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..c8328c8fc --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,45 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." + +preferred-citation: + type: article + title: "Augur: a bioinformatics toolkit for phylogenetic analyses of human pathogens" + doi: "10.21105/joss.02906" + journal: "Journal of Open Source Software" + year: 2021 + month: 1 + volume: 6 + issue: 57 + start: 2906 + end: 2906 + + authors: + - family-names: Huddleston + given-names: John + + - family-names: Hadfield + given-names: James + + - family-names: Sibley + given-names: Thomas R. + + - family-names: Lee + given-names: Jover + + - family-names: Fay + given-names: Kairsten + + - family-names: Ilcisin + given-names: Misja + + - family-names: Harkins + given-names: Elias + + - family-names: Bedford + given-names: Trevor + + - family-names: Neher + given-names: Richard A. + + - family-names: Hodcroft + given-names: Emma B. diff --git a/README.md b/README.md index cac384427..64a8fd508 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,8 @@ Try out an analysis of real virus data by [completing the Zika tutorial](https:/ Huddleston J, Hadfield J, Sibley TR, Lee J, Fay K, Ilcisin M, Harkins E, Bedford T, Neher RA, Hodcroft EB, (2021). Augur: a bioinformatics toolkit for phylogenetic analyses of human pathogens. Journal of Open Source Software, 6(57), 2906, https://doi.org/10.21105/joss.02906 +For other formats, refer to [CITATION.cff](./CITATION.cff). + ## License and copyright Copyright 2014-2022 Trevor Bedford and Richard Neher. From fcea9c0b449d260623724ab224304005246339c8 Mon Sep 17 00:00:00 2001 From: Jover Lee Date: Wed, 18 Dec 2024 12:52:30 -0800 Subject: [PATCH 15/22] .readthedocs.yml: explicit Sphinx configuration Prompted by deprecation of RTD's auto-detection of Sphinx configs --- .readthedocs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index e958dd6de..791a83096 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,6 +11,9 @@ build: # generated from the full git history in conf.py. - git fetch --unshallow +sphinx: + configuration: docs/conf.py + python: install: - method: pip From 46745d681ffc29811a5aaa65e264a13f43ba3f83 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Thu, 19 Dec 2024 08:30:59 -0800 Subject: [PATCH 16/22] Removes unsupported pylint `no-space-check` option As of pylint 2.6, `no-space-check` is not a supported option in the pylint configuration file [1]. This commit removes the option from the project-specific pylintrc to silence errors from pylint during development in emacs. Since pylint is now at version 4 and no one else on the team has run into this issue, I strongly suspect no one else is using this pylintrc the same way I am. If folks want to make a case for removing this file entirely in favor of some other IDE-based linting they prefer, I'm open to that. [1] https://pylint.pycqa.org/en/latest/whatsnew/2/2.6/summary.html#other-changes --- .pylintrc | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.pylintrc b/.pylintrc index 023aa51ed..07a082fff 100644 --- a/.pylintrc +++ b/.pylintrc @@ -317,13 +317,6 @@ max-line-length=100 # Maximum number of lines in a module max-module-lines=1000 -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator - # Allow the body of a class to be on the same line as the declaration if body # contains single statement. single-line-class-stmt=no From c25b09d2d3d11eb6ff7e8e116af8183c13789ff8 Mon Sep 17 00:00:00 2001 From: Jover Lee Date: Fri, 20 Dec 2024 11:41:43 -0800 Subject: [PATCH 17/22] Remove extra whitespace --- .github/workflows/ci.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c721c6f8f..ea2abdade 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -45,14 +45,14 @@ jobs: - '3.10' - '3.11' - '3.12' - biopython-version: - # list of Biopython versions with support for a new Python version - # from https://github.com/biopython/biopython/blob/master/NEWS.rst + biopython-version: + # list of Biopython versions with support for a new Python version + # from https://github.com/biopython/biopython/blob/master/NEWS.rst - '1.80' # first to support Python 3.10 and 3.11 - '1.82' # first to support Python 3.12 - - '' # latest - exclude: - # some older Biopython versions are incompatible with later Python versions + - '' # latest + exclude: + # some older Biopython versions are incompatible with later Python versions - { biopython-version: '1.80', python-version: '3.12' } defaults: run: From c9e2e059935fe87e5c45aaafa058b8e0532698ff Mon Sep 17 00:00:00 2001 From: Jover Lee Date: Fri, 20 Dec 2024 11:41:55 -0800 Subject: [PATCH 18/22] CI: Add new pathogens to `pathogen-repo-ci` --- .github/workflows/ci.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ea2abdade..b1fd84e83 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -114,7 +114,11 @@ jobs: - lassa - measles - mpox + - oropouche + - rabies - seasonal-cov + - wnv + - yellow-fever - zika name: pathogen-repo-ci (${{ matrix.pathogen }}) From 8588609cddcf9d54f60e69357eef6216c5976645 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 23 Dec 2024 11:50:41 -0800 Subject: [PATCH 19/22] Add unit tests for titer model validation Adds unit tests for validation of both tree and substitution titer models including public test data from Bedford et al. 2014 (titers and sequences). These tests cover code that is only accessible through the Python API and which previously had type errors caused by changes in core Python since the code was last run (probably circa late 2016). Several doctest updates in this commit reflect the change of test titer data. --- augur/titer_model.py | 64 +- .../h3n2_ha_aligned_genbank_HA1.fasta | 833 ++++++++++++++++++ tests/data/titer_model/h3n2_ha_tree.nwk | 1 + tests/data/titer_model/h3n2_titers_subset.tsv | 285 +++++- tests/test_titer_models.py | 67 +- 5 files changed, 1204 insertions(+), 46 deletions(-) create mode 100644 tests/data/titer_model/h3n2_ha_aligned_genbank_HA1.fasta create mode 100644 tests/data/titer_model/h3n2_ha_tree.nwk diff --git a/augur/titer_model.py b/augur/titer_model.py index 92b213be0..77efc298b 100644 --- a/augur/titer_model.py +++ b/augur/titer_model.py @@ -38,42 +38,42 @@ def load_from_file(filenames, excluded_sources=None): >>> type(measurements) >>> len(measurements) - 11 + 248 >>> len(strains) - 13 + 62 >>> len(sources) - 5 + 15 Inspect specific measurements. First, inspect a measurement that has a specific value in the input. - >>> measurements[("A/Acores/11/2013", ("A/Alabama/5/2010", "F27/10"))] - [80.0] + >>> measurements[("A/Wisconsin/3/2007", ("A/Wisconsin/3/2007", "A/Wis3/07"))] + [5120.0] Next, inspect a measurement that has a thresholded value at the lower - bound of detection (e.g., "<80"). This measurement should be reported as - one half of its threshold value (e.g., 40.0). + bound of detection (e.g., "<40"). This measurement should be reported as + one half of its threshold value (e.g., 20.0). - >>> measurements[("A/Acores/11/2013", ("A/Victoria/208/2009", "F7/10"))] - [40.0] + >>> measurements[("A/HongKong/1/1968", ("A/Victoria/3/1975", "A/Vic/3/75"))] + [20.0] Inspect a measurement that has a thresholded value at the upper bound of - detection (">1280"). This measurement should be reported as twice its - threshold value (e.g., 2560.0). + detection (">5120"). This measurement should be reported as twice its + threshold value (e.g., 10240.0). - >>> measurements[("A/Acores/SU43/2012", ("A/Texas/50/2012", "F36/12"))] - [2560.0] + >>> measurements[("A/Wisconsin/3/2007", ("A/Uruguay/716/2007", "A/Uru716/07"))] + [10240.0] Confirm that excluding sources produces fewer measurements. - >>> measurements, strains, sources = TiterCollection.load_from_file("tests/data/titer_model/h3n2_titers_subset.tsv", excluded_sources=["NIMR_Sep2013_7-11.csv"]) + >>> measurements, strains, sources = TiterCollection.load_from_file("tests/data/titer_model/h3n2_titers_subset.tsv", excluded_sources=["Hay2001"]) >>> len(measurements) - 5 + 223 Request measurements for a test/reference/serum tuple that should not exist after excluding its source. - >>> measurements.get(("A/Acores/11/2013", ("A/Alabama/5/2010", "F27/10"))) + >>> measurements.get(("A/HongKong/1/1968", ("A/HongKong/1/1968", "A/HK/1/68"))) >>> Missing titer data should produce an error. @@ -150,12 +150,10 @@ def count_strains(titers): -------- >>> measurements, strains, sources = TiterCollection.load_from_file("tests/data/titer_model/h3n2_titers_subset.tsv") >>> titer_counts = TiterCollection.count_strains(measurements) - >>> titer_counts["A/Acores/11/2013"] - 6 - >>> titer_counts["A/Acores/SU43/2012"] - 3 - >>> titer_counts["A/Cairo/63/2012"] - 2 + >>> titer_counts["A/Auckland/6/2003"] + 4 + >>> titer_counts["A/Brisbane/9/2006"] + 15 """ counts = defaultdict(int) for key in titers.keys(): @@ -187,22 +185,26 @@ def filter_strains(titers, strains): -------- >>> measurements, strains, sources = TiterCollection.load_from_file("tests/data/titer_model/h3n2_titers_subset.tsv") >>> len(measurements) - 11 + 248 Test the case when a test strain exists in the subset but the none of its corresponding reference strains do. - >>> len(TiterCollection.filter_strains(measurements, ["A/Acores/11/2013"])) + >>> len(TiterCollection.filter_strains(measurements, ["A/Oslo/244/1997"])) 0 - Test when both the test and reference strains exist in the subset. + Test when both the test and reference strains exist in the subset. This + first test gets a heterologous pair (first and second strain) and the + autologous pair for the second strain. - >>> len(TiterCollection.filter_strains(measurements, ["A/Acores/11/2013", "A/Alabama/5/2010", "A/Athens/112/2012"])) + >>> len(TiterCollection.filter_strains(measurements, ["A/Oslo/244/1997", "A/Johannesburg/33/1994"])) 2 - >>> len(TiterCollection.filter_strains(measurements, ["A/Acores/11/2013", "A/Acores/SU43/2012", "A/Alabama/5/2010", "A/Athens/112/2012"])) - 3 + + Test when no strains are provided. + >>> len(TiterCollection.filter_strains(measurements, [])) 0 + """ return {key: value for key, value in titers.items() if key[0] in strains and key[1][0] in strains} @@ -318,11 +320,11 @@ def strain_census(self, titers): >>> titers = TiterCollection(measurements) >>> sera, ref_strains, test_strains = titers.strain_census(measurements) >>> len(sera) - 9 + 66 >>> len(ref_strains) - 9 + 27 >>> len(test_strains) - 13 + 62 Parameters ---------- diff --git a/tests/data/titer_model/h3n2_ha_aligned_genbank_HA1.fasta b/tests/data/titer_model/h3n2_ha_aligned_genbank_HA1.fasta new file mode 100644 index 000000000..369ce3347 --- /dev/null +++ b/tests/data/titer_model/h3n2_ha_aligned_genbank_HA1.fasta @@ -0,0 +1,833 @@ +>A/Auckland/6/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVVPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Bilthoven/16190/1968 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITDDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDVFQDETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +ITEGFTWTGVTQNGGSNACKRGPGSGFFSRLNWLTKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTRRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DVLVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIDTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Bilthoven/2271/1976 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICNNPHRILD +GINCTLIDALLGDPHCDGFQNKKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSYACKRGPDNGFFSRLNWLYKSESTYPVLNVTMPNNDNFDKLYIW +GVHHPSTDKEQTNLYVQASGRVTVSTKRSQQTIIPNVGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKIRNGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Bilthoven/5146/1974 +QNFPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GIDCTLIDALLGDPHCDGFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFTWTGVTQNGGSNACKRGPDIGFFSRLNWLYKSGNTYPVLNVSMPNNDNFDKLYIW +GVHHPSTDQEQTSLYVQASGRVTVSTKRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDASIGTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Bilthoven/5168/1976 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICDNPHRILD +GINCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSSACKRGPDNGFFSRLNWLYKSGSTYPVQNVTMPNNDNSDKLYIW +GVHHPSTDKEQTDLYVQASGKVTVSTKRSQQTVIPNVGSRPWVRGLSSRVSIYWTIVKPG +DILIINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Bilthoven/93/1970 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GVNCTLIDALLGDPHCDVFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +ITEGFTWTGVTQNGGSNACKRGPGSGFFSRLNWLTKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTRRSQQTIIPNIGSRPWVRGQSSRISIYWTIVKPG +DVLVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIDTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Brisbane/3/2005 +QKLPGNDNSTATLCIGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLIASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEEFDKLYIW +GVHHPGTDNDQISLYAQASGKITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Brisbane/5/2002 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Brisbane/6/2002 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Brisbane/7/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFDWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Brisbane/9/2006 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTQLKFKYPALNVTMPNNEKFDKLYIW +GVHHPVTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/California/20/2005 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSSCKRRSNNSFFSRLNWLTRLKFKYPALNVTMPNNEKFDKLYIW +GVHHPVTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Cheonnam/432/2002 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQTSLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/ChristChurch/2/1988 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFIERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSYACKRGSVNSFFSRLNWLYESEYKYPALNVTMPNNGKFDKLYIW +GVHHPITEKEQTNLYVRASGRVTVSTKRSQQTRIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYGKQNTLKLATGMRNVPEKQTR +>A/England/392/2008 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLRFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/England/394/2008 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVSDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLRFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/England/42/1972 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GIDCTLIDALLGDPHCDGFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFTWTGVTQNGGSNACKRGPDSGFFSRLNWLYKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTKGSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Fujian/445/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPVTDSDQINLYAQASGRITVSTKRSQQTVIPNIGYRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Geneva/AI9509/1995 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TKEGFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/1/1968 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITDDQIEVTNATELVQSSSTGKICNNPHRILD +GIDCTLIDALLGDPHCDVFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +ITEGFTWTGVTQNGGSNACKRGPGSGFFSRLNWLTKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTRRSQQTIIPNIWSRPWVRGLSSRISIYWTIVKPG +DVLVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIDTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/1550/2002 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSSCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPVTDSDQISIYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/26560/2009 +QKIPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GKNCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSKNSFFSRLNWLTHLNFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDKDQIFPYAQASGRITVSTKRSQQTAIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSGCITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/280/1997 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSTAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRRSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVHASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIDNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/32/1995 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/38/1995 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TKEGFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCKSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/HongKong/55/1994 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSPTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INENFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPDIGYRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Johannesburg/33/1994 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSPTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INENFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPDIGYRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Johannesburg/47/1994 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQNSPTGRICDSPHRILD +GKNCTLIDALLGDPHCDGLQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INENFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPDIGYRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKLRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGPCPRYVKQNTLKLATGMRNVPEKQTR +>A/Leningrad/360/1986 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFIERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQSGGSYTCKRGSVNSFFSRLNWLYESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTEKEQTNLYVRASGRVTVSTKRSQQTVIPNIGSSPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Louisiana/4/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITDDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFDWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYIKQNTLKLATGMRNVPEKQTR +>A/Lyon/108/2005 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRISNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLVNSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Madrid/G130/1993 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDVPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Nepal/921/2006 +QKLPGIDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWAGVTQNGTSSACKRGSNNSFFSRLNWLTHSKFKYPALNVTMPNNEEFDKLYIW +GVLHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Netherlands/115/1993 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKISQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Netherlands/371/1993 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVATKRSQQTVIPNIGFRPWVRGQSSGISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Netherlands/414/1998 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVQDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSYACKRRSIKSFFSRLNWLHQLKYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNNLKLATGMRNVPEKQTR +>A/NewCaledonia/6/2002 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSDKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYYKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Oslo/2352/1993 +QKIPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPNCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Oslo/244/1997 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFKNKEWDLFVERSTAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRGSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIDNCNSECITPNGSIPNDKPFQNVNRI +TYGPCPRYVKQNTLKLATGMRNVPEKQTR +>A/Philippines/1159050/2002 +QKLPGNDNSTATLCLGHHAVSNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRGSNKSFFSRLNWLHQLKDKYPALNVTMPNNEKFDKLYIW +GVLHPSTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/RhodeIsland/1/2010 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSAGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSRAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLNFKYPALNVTMPNNEQFDKLYIW +GVLHPGTYKDQIFLYAQASGRITVSTKRSQQAVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQSTLKLATGMRNVPEKQTR +>A/Seoul/1/1990 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQSGGSYACKRGSVNSFFSRLNWLHESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Shiga/6/1993 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Singapore/35/2005 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLRFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Singapore/38/2005 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLIASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEEFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTRRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Singapore/57/2006 +LKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHSKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Singapore/70/2005 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITSDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYAFLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Singapore/95/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Sofia/141/2003 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTSRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKTYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSDKSFFSRLNWLHQLRYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQIRIYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIHWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQKTLKLATGMRNVPEKQTR +>A/SouthAustralia/102/2001 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/SouthAustralia/23/1992 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEDFNWTGVAQSGESYACKRGSVKSFFSRLNWLHESDYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/SouthAustralia/27/1992 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEDFNWTGVAQSGESYACKRGSVKSFFSRLNWLHESDYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Taiwan/83/2006 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Texas/40/2003 +QKLPGNDNSTATLCLGHHAAPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFDWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Uruguay/716/2007 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSSCIRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFPYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Victoria/102/2003 +QKLPGNDNSMATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSDKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIDKCNSECITPNGSIPNDKPFQNVNRI +TYGLCPRYVKQNTLKLATGMLNVPEKQNR +>A/Victoria/3/1975 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSSACKRGPDSGFFSRLNWLYKSGSTYPVQNVTMPNNDNSDKLYIW +GVHHPSTDKEQTNLYVQASGKVTVSTKRSQQTIIPNVGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>A/Victoria/7/1987 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVTQSGGSYACKRGSVNSFFSRLNWLHESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Wellington/1/2004 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQINLYVQASGRITVSTKRSQQTVIPNIGSRPRVRDVPSRISIYWTIVKPG +DILLISSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Wisconsin/15/2009 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GKNCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSKNSFFSRLNWLTHLNFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDKDQIFPYAQASGRITVSTKRSQQTAIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Wisconsin/3/2007 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEEFDKLYIW +GVHHPVTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGFRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Wuhan/359/1995 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRGSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSIYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Wyoming/2/2003 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWAGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>A/Yamagata/62/1993 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000000 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000001 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000002 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVTPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000003 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000004 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQSGGSYACKRGSVNSFFSRLNWLHESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000005 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEDFNWTGVAQSGESYACKRGSVKSFFSRLNWLHESDYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000006 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQSGGSYACKRGSVNSFFSRLNWLHESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000007 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVTQSGGSYACKRGSVNSFFSRLNWLHESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDREQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000008 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQSGGSYACKRGSVNSFFSRLNWLYESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDKEQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000009 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNEKWDLFIERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQSGGSYACKRGSVNSFFSRLNWLYESEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTEKEQTNLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000010 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICNNPHRILD +GINCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSYACKRGPDNGFFSRLNWLYKSESTYPVLNVTMPNNDNFDKLYIW +GVHHPSTDKEQTNLYVQASGRVTVSTKRSQQTIIPNVGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKIRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000011 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSNACKRGPDSGFFSRLNWLYKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTDKEQTNLYVQASGRVTVSTKRSQQTIIPNVGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000012 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDGFQNEKWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFNWTGVTQNGGSSACKRGPDSGFFSRLNWLYKSGSTYPVQNVTMPNNDNSDKLYIW +GVHHPSTDKEQTNLYVQASGKVTVSTKRSQQTIIPNVGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCSSECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000013 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GIDCTLIDALLGDPHCDGFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFTWTGVTQNGGSNACKRGPDSGFFSRLNWLYKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTDQEQTSLYVQASGRVTVSTKRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000014 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GIDCTLIDALLGDPHCDGFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +INEGFTWTGVTQNGGSNACKRGPDSGFFSRLNWLYKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTKRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DILVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIGTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000015 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDVFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +ITEGFTWTGVTQNGGSNACKRGPGSGFFSRLNWLTKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTRRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DVLVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIDTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000016 +QDLPGNDNSTATLCLGHHAVPNGTLVKTITDDQIEVTNATELVQSSSTGKICNNPHRILD +GINCTLIDALLGDPHCDVFQNETWDLFVERSKAFSNCYPYDVPDYASLRSLVASSGTLEF +ITEGFTWTGVTQNGGSNACKRGPGSGFFSRLNWLTKSGSTYPVLNVTMPNNDNFDKLYIW +GVHHPSTNQEQTSLYVQASGRVTVSTRRSQQTIIPNIGSRPWVRGLSSRISIYWTIVKPG +DVLVINSNGNLIAPRGYFKMRTGKSSIMRSDAPIDTCISECITPNGSIPNDKPFQNVNKI +TYGACPKYVKQNTLKLATGMRNVPEKQTR +>NODE_0000017 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGGSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000018 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGLSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000019 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INEDFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPNIGSRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000020 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSPTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INENFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPDIGYRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000021 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSPTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +INENFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNGKFDKLYIW +GVHHPSTDSDQTSLYVRASGRVTVSTKRSQQTVIPDIGYRPWVRGQSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCSSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000022 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000023 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TKEGFNWTGVAQDGKSYACKRGSVNSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRNGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000024 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRGSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGISSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000025 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRGSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000026 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GKNCTLIDALLGDPHCDGFQNKEWDLFVERSTAYSNCYPYDVPDYASLRSLVASSGTLEF +TNEGFNWTGVAQDGTSYACKRGSVKSFFSRLNWLHKLEYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYVQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIDNCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000027 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHRILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSYACKRRSIKSFFSRLNWLHQLKYKYPALNVTMPNNDKFDKLYIW +GVHHPSTDSDQTSLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000028 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPSTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000029 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000030 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000031 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSDKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000032 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGRICDSPHQILD +GENCTLIDALLGDPHCDGFQNKEWDLFVERSKAYSNCYPYDVPDYVSLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSDKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRVTVSTKRSQQTVIPNIGSRPWVRGVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000033 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000034 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVAQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000035 +QKLPGNDNSTATLCLGHHAVPNGTLVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPHCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLHQLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000036 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000037 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000038 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFDWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000039 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFDWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDVSSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000040 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDSDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000041 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKYKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000042 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNKSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000043 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000044 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLIASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEEFDKLYIW +GVHHPGTDNDQISLYAQASGRITVSTKRSQQTVIPNIGSRPRVRDIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000045 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000046 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000047 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHSKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000048 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGGICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACKRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000049 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000050 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEKFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000051 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLKFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000052 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLRFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDNDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000053 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GENCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSNNSFFSRLNWLTHLNFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDKDQIFLYAQASGRITVSTKRSQQTVIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR +>NODE_0000054 +QKLPGNDNSTATLCLGHHAVPNGTIVKTITNDQIEVTNATELVQSSSTGEICDSPHQILD +GKNCTLIDALLGDPQCDGFQNKKWDLFVERSKAYSNCYPYDVPDYASLRSLVASSGTLEF +NNESFNWTGVTQNGTSSACIRRSKNSFFSRLNWLTHLNFKYPALNVTMPNNEQFDKLYIW +GVHHPGTDKDQIFPYAQASGRITVSTKRSQQTAIPNIGSRPRVRNIPSRISIYWTIVKPG +DILLINSTGNLIAPRGYFKIRSGKSSIMRSDAPIGKCNSECITPNGSIPNDKPFQNVNRI +TYGACPRYVKQNTLKLATGMRNVPEKQTR diff --git a/tests/data/titer_model/h3n2_ha_tree.nwk b/tests/data/titer_model/h3n2_ha_tree.nwk new file mode 100644 index 000000000..caab9dcef --- /dev/null +++ b/tests/data/titer_model/h3n2_ha_tree.nwk @@ -0,0 +1 @@ +(A/Madrid/G130/1993:0.00412851,(A/Shiga/6/1993:0.00058812,A/Yamagata/62/1993:0.00117671)NODE_0000001:0.00059075,(A/Oslo/2352/1993:0.00590760,(((A/SouthAustralia/23/1992:0.00444065,A/SouthAustralia/27/1992:0.00290809)NODE_0000005:0.01328559,(A/Seoul/1/1990:0.00707834,(A/Victoria/7/1987:0.00133891,((A/ChristChurch/2/1988:0.00501685,A/Leningrad/360/1986:0.00260463)NODE_0000009:0.00256191,(A/Bilthoven/2271/1976:0.00585226,((A/Bilthoven/5168/1976:0.00645549,A/Victoria/3/1975:0.00282823)NODE_0000012:0.00387309,(A/Bilthoven/5146/1974:0.00814669,(A/England/42/1972:0.00297122,(A/Bilthoven/93/1970:0.00547332,(A/Bilthoven/16190/1968:0.00105913,A/HongKong/1/1968:0.00203248)NODE_0000016:0.00136207)NODE_0000015:0.01606080)NODE_0000014:0.00633939)NODE_0000013:0.00728327)NODE_0000011:0.00543478)NODE_0000010:0.03310998)NODE_0000008:0.00367598)NODE_0000007:0.00700334)NODE_0000006:0.00381565)NODE_0000004:0.01006134,(A/Netherlands/115/1993:0.00353062,((A/Netherlands/371/1993:0.00348885,(A/Johannesburg/47/1994:0.00476567,(A/HongKong/55/1994:0.00294770,A/Johannesburg/33/1994:0.00000100)NODE_0000021:0.00056578)NODE_0000020:0.00831003)NODE_0000019:0.00065911,(A/HongKong/32/1995:0.00531386,(A/Geneva/AI9509/1995:0.00091591,A/HongKong/38/1995:0.00275260)NODE_0000023:0.00137553,(A/Wuhan/359/1995:0.00236997,((A/HongKong/280/1997:0.00470528,A/Oslo/244/1997:0.00299294)NODE_0000026:0.00177339,(A/Netherlands/414/1998:0.00241273,(A/Philippines/1159050/2002:0.00403703,((A/SouthAustralia/102/2001:0.00203246,(A/Victoria/102/2003:0.00718893,(A/NewCaledonia/6/2002:0.00411014,A/Sofia/141/2003:0.01230976)NODE_0000032:0.00096963)NODE_0000031:0.00203490)NODE_0000030:0.00410442,((A/Brisbane/6/2002:0.00000100,A/HongKong/1550/2002:0.00304867)NODE_0000034:0.00101761,(A/Brisbane/5/2002:0.00307112,(A/Cheonnam/432/2002:0.00121713,(A/Auckland/6/2003:0.00203003,A/Wyoming/2/2003:0.00287500,(A/Brisbane/7/2003:0.00000100,(A/Louisiana/4/2003:0.00287053,A/Texas/40/2003:0.00545762)NODE_0000039:0.00182278)NODE_0000038:0.00181245,(A/Fujian/445/2003:0.00533393,(A/Singapore/95/2003:0.00101768,(A/Wellington/1/2004:0.00295945,(A/Lyon/108/2005:0.00397132,(A/Singapore/38/2005:0.00305355,A/Brisbane/3/2005:0.00196250)NODE_0000044:0.00195767,(A/California/20/2005:0.00454468,A/Singapore/35/2005:0.00509131,A/Singapore/70/2005:0.00203189,A/Taiwan/83/2006:0.00195727,((A/Singapore/57/2006:0.00204416,A/Nepal/921/2006:0.00570335)NODE_0000047:0.00080540,(A/Brisbane/9/2006:0.00295945,((A/Uruguay/716/2007:0.00236277,A/Wisconsin/3/2007:0.00236281)NODE_0000050:0.00116743,((A/England/392/2008:0.00000100,A/England/394/2008:0.00101623)NODE_0000052:0.00101227,(A/RhodeIsland/1/2010:0.00936562,(A/HongKong/26560/2009:0.00236261,A/Wisconsin/15/2009:0.00058812)NODE_0000054:0.00319382)NODE_0000053:0.00225060)NODE_0000051:0.00241381)NODE_0000049:0.00416133)NODE_0000048:0.00058551)NODE_0000046:0.00100489)NODE_0000045:0.00777785)NODE_0000043:0.00129194)NODE_0000042:0.00118046)NODE_0000041:0.00236693)NODE_0000040:0.00121215)NODE_0000037:0.00059100)NODE_0000036:0.00668261)NODE_0000035:0.00081069)NODE_0000033:0.01004037)NODE_0000029:0.00083517)NODE_0000028:0.00668440)NODE_0000027:0.01187504)NODE_0000025:0.00059268)NODE_0000024:0.00591801)NODE_0000022:0.00591547)NODE_0000018:0.00176618)NODE_0000017:0.00059495)NODE_0000003:0.00059812)NODE_0000002:0.00059298)NODE_0000000:0.00100000; diff --git a/tests/data/titer_model/h3n2_titers_subset.tsv b/tests/data/titer_model/h3n2_titers_subset.tsv index 4991001fb..482482b92 100644 --- a/tests/data/titer_model/h3n2_titers_subset.tsv +++ b/tests/data/titer_model/h3n2_titers_subset.tsv @@ -1,12 +1,273 @@ -A/Acores/11/2013 A/Alabama/5/2010 F27/10 NIMR_Sep2013_7-11.csv 80 hi -A/Acores/11/2013 A/Athens/112/2012 F16/12 NIMR_Sep2013_7-11.csv 640 hi -A/Acores/11/2013 A/Berlin/93/2011 T/CF11/12 NIMR_Sep2013_7-11.csv 640 hi -A/Acores/11/2013 A/Victoria/208/2009 F7/10 NIMR_Sep2013_7-11.csv <80 hi -A/Acores/11/2013 A/Stockholm/18/2011 F28/11 NIMR_Sep2013_7-11.csv 160 hi -A/Acores/SU43/2012 A/Alabama/5/2010 F27/10 NIMR_Feb2013_18.csv 320 hi -A/Acores/SU43/2012 A/Hawaii/22/2012 F37/12 NIMR_Feb2013_18.csv 320 hi -A/Acores/11/2013 A/Perth/16/2009 F35/11 NIMR_Sep2013_7-11.csv 40 hi -A/Acores/SU43/2012 A/Texas/50/2012 F36/12 NIMR_Feb2013_18.csv >1280 hi -A/Adana/116/2014 A/Iowa/19/2010 F15/11 NIMR_Feb2014_9-09.csv 80 hi -A/Cairo/63/2012 A/Texas/50/2012 F36/12 NIMR_Feb2013_16.csv 1280 hi -A/Cairo/63/2012 A/Texas/50/2012 F36/12 NIMR_Sep2013_7-04.csv 640 hi +virus_strain serum_strain serum_id source titer +A/Wisconsin/3/2007 A/Wisconsin/3/2007 A/Wis3/07 Barr2010 5120 +A/Wisconsin/3/2007 A/Uruguay/716/2007 A/Uru716/07 Barr2010 >5120 +A/Wisconsin/3/2007 A/England/394/2008 A/Eng394/08 Barr2010 1280 +A/Uruguay/716/2007 A/Wisconsin/3/2007 A/Wis3/07 Barr2010 640 +A/Uruguay/716/2007 A/Uruguay/716/2007 A/Uru716/07 Barr2010 5120 +A/Uruguay/716/2007 A/England/394/2008 A/Eng394/08 Barr2010 320 +A/England/394/2008 A/Wisconsin/3/2007 A/Wis3/07 Barr2010 320 +A/England/394/2008 A/Uruguay/716/2007 A/Uru716/07 Barr2010 320 +A/England/394/2008 A/England/394/2008 A/Eng394/08 Barr2010 640 +A/Uruguay/716/2007 A/Uruguay/716/2007 UY/716 Cox2011 640 +A/Uruguay/716/2007 A/RhodeIsland/1/2010 RI/1 Cox2011 320 +A/Uruguay/716/2007 A/RhodeIsland/1/2010 RI/1 Cox2011 80 +A/RhodeIsland/1/2010 A/Uruguay/716/2007 UY/716 Cox2011 10 +A/RhodeIsland/1/2010 A/RhodeIsland/1/2010 RI/1 Cox2011 640 +A/RhodeIsland/1/2010 A/RhodeIsland/1/2010 RI/1 Cox2011 80 +A/RhodeIsland/1/2010 A/Uruguay/716/2007 UY/716 Cox2011 40 +A/RhodeIsland/1/2010 A/RhodeIsland/1/2010 RI/1 Cox2011 320 +A/RhodeIsland/1/2010 A/RhodeIsland/1/2010 RI/1 Cox2011 160 +A/HongKong/1/1968 A/HongKong/1/1968 A/HK/1/68 Hay2001 1280 +A/HongKong/1/1968 A/England/42/1972 A/Eng/42/72 Hay2001 320 +A/HongKong/1/1968 A/Victoria/3/1975 A/Vic/3/75 Hay2001 <40 +A/HongKong/1/1968 A/Johannesburg/33/1994 A/Jhb/33/94 Hay2001 <40 +A/HongKong/1/1968 A/Wuhan/359/1995 A/Wuh/359/95 Hay2001 <40 +A/England/42/1972 A/HongKong/1/1968 A/HK/1/68 Hay2001 40 +A/England/42/1972 A/England/42/1972 A/Eng/42/72 Hay2001 640 +A/England/42/1972 A/Victoria/3/1975 A/Vic/3/75 Hay2001 40 +A/England/42/1972 A/Johannesburg/33/1994 A/Jhb/33/94 Hay2001 <40 +A/England/42/1972 A/Wuhan/359/1995 A/Wuh/359/95 Hay2001 <40 +A/Victoria/3/1975 A/HongKong/1/1968 A/HK/1/68 Hay2001 <40 +A/Victoria/3/1975 A/England/42/1972 A/Eng/42/72 Hay2001 <40 +A/Victoria/3/1975 A/Victoria/3/1975 A/Vic/3/75 Hay2001 640 +A/Victoria/3/1975 A/Johannesburg/33/1994 A/Jhb/33/94 Hay2001 <40 +A/Victoria/3/1975 A/Wuhan/359/1995 A/Wuh/359/95 Hay2001 <40 +A/Johannesburg/33/1994 A/HongKong/1/1968 A/HK/1/68 Hay2001 <40 +A/Johannesburg/33/1994 A/England/42/1972 A/Eng/42/72 Hay2001 <40 +A/Johannesburg/33/1994 A/Victoria/3/1975 A/Vic/3/75 Hay2001 <40 +A/Johannesburg/33/1994 A/Johannesburg/33/1994 A/Jhb/33/94 Hay2001 640 +A/Johannesburg/33/1994 A/Wuhan/359/1995 A/Wuh/359/95 Hay2001 80 +A/Wuhan/359/1995 A/HongKong/1/1968 A/HK/1/68 Hay2001 <40 +A/Wuhan/359/1995 A/England/42/1972 A/Eng/42/72 Hay2001 <40 +A/Wuhan/359/1995 A/Victoria/3/1975 A/Vic/3/75 Hay2001 <40 +A/Wuhan/359/1995 A/Johannesburg/33/1994 A/Jhb/33/94 Hay2001 40 +A/Wuhan/359/1995 A/Wuhan/359/1995 A/Wuh/359/95 Hay2001 1280 +A/Fujian/445/2003 A/Texas/40/2003 TEXAS/40-LOT-2004-029/2003-CDC Russell2008 1512 +A/Fujian/445/2003 A/Fujian/445/2003 FUJIAN/445-LOT-2004-043/2003-CDC Russell2008 800 +A/Fujian/445/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2004-12/2003-CDC Russell2008 1440 +A/Fujian/445/2003 A/Fujian/445/2003 FUJIAN/445-LOT-2004-043-NEW/2003-CDC Russell2008 640 +A/Fujian/445/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99/2003-CDC Russell2008 1280 +A/Taiwan/83/2006 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 80 +A/Taiwan/83/2006 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 320 +A/Taiwan/83/2006 A/Wellington/1/2004 WELLINGTON/1-NO-2/2004-NIID Russell2008 320 +A/Sofia/141/2003 A/Texas/40/2003 TEXAS/40-LOT-2004-029/2003-CDC Russell2008 20 +A/Sofia/141/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2004-12/2003-CDC Russell2008 12 +A/Sofia/141/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99/2003-CDC Russell2008 457 +A/Sofia/141/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2003-12-NEW/2003-CDC Russell2008 10 +A/Sofia/141/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99-NEW/2003-CDC Russell2008 160 +A/Lyon/108/2005 A/Wellington/1/2004 WELLINGTON/1-LOT-2004-093/2004-CDC Russell2008 40 +A/Lyon/108/2005 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 160 +A/Auckland/6/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99-NEW/2003-CDC Russell2008 480 +A/Auckland/6/2003 A/Auckland/6/2003 AUCKLAND/6/2003-MELB Russell2008 373 +A/Auckland/6/2003 A/Wellington/1/2004 WELLINGTON/1-IVR-139/2004-MELB Russell2008 640 +A/Auckland/6/2003 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 640 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-LOT-2004-093/2004-CDC Russell2008 640 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-X-PR-8-LOT-2005-019/2004-CDC Russell2008 1920 +A/Wellington/1/2004 A/Texas/40/2003 TEXAS/40/2003-CDC Russell2008 640 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-CDC-20040908-COL-12/2004-CDC Russell2008 640 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1/2004-CDC Russell2008 533 +A/Wellington/1/2004 A/Auckland/6/2003 AUCKLAND/6/2003-MELB Russell2008 80 +A/Wellington/1/2004 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 165 +A/Wellington/1/2004 A/Brisbane/9/2006 BRISBANE/9/2006-MELB Russell2008 224 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-IVR-139/2004-MELB Russell2008 1600 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-MELB-20040922-COL-11/2004-MELB Russell2008 1280 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 1374 +A/Wellington/1/2004 A/HongKong/1550/2002 HONG-KONG/1550/2002-NIID Russell2008 1280 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1-NO-2/2004-NIID Russell2008 1427 +A/Wellington/1/2004 A/Wellington/1/2004 WELLINGTON/1/2004-NIID Russell2008 853 +A/Brisbane/5/2002 A/Brisbane/6/2002 BRISBANE/6/2002-MELB Russell2008 160 +A/Brisbane/5/2002 A/HongKong/1550/2002 HONG-KONG/1550/2002-MELB Russell2008 160 +A/Brisbane/6/2002 A/Brisbane/6/2002 BRISBANE/6/2002-MELB Russell2008 3646 +A/Brisbane/6/2002 A/HongKong/1550/2002 HONG-KONG/1550/2002-MELB Russell2008 1318 +A/NewCaledonia/6/2002 A/Brisbane/6/2002 BRISBANE/6/2002-MELB Russell2008 288 +A/NewCaledonia/6/2002 A/HongKong/1550/2002 HONG-KONG/1550/2002-MELB Russell2008 400 +A/Brisbane/7/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99-NEW/2003-CDC Russell2008 320 +A/Brisbane/3/2005 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 966 +A/Brisbane/3/2005 A/Brisbane/9/2006 BRISBANE/9/2006-MELB Russell2008 160 +A/Brisbane/3/2005 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 652 +A/Brisbane/3/2005 A/Wellington/1/2004 WELLINGTON/1-NO-2/2004-NIID Russell2008 1280 +A/Brisbane/9/2006 A/Brisbane/9/2006 BRISBANE/9-LOT-2007-069/2006-CDC Russell2008 290 +A/Brisbane/9/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-074/2006-CDC Russell2008 280 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-089-AND-2007-090-POOL/2007-CDC Russell2008 800 +A/Brisbane/9/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-103-NEW/2006-CDC Russell2008 320 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-089-NEW/2007-CDC Russell2008 320 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-090-NEW/2007-CDC Russell2008 160 +A/Brisbane/9/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-074-NEW/2006-CDC Russell2008 160 +A/Brisbane/9/2006 A/Brisbane/9/2006 BRISBANE/9-LOT-2007-069-NEW/2006-CDC Russell2008 640 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-109-NEW/2007-CDC Russell2008 320 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-110-NEW/2007-CDC Russell2008 320 +A/Brisbane/9/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-110/2007-CDC Russell2008 320 +A/Brisbane/9/2006 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 53 +A/Brisbane/9/2006 A/Brisbane/9/2006 BRISBANE/9/2006-MELB Russell2008 1005 +A/Brisbane/9/2006 A/Nepal/921/2006 NEPAL/921/2006-MELB Russell2008 192 +A/Brisbane/9/2006 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 131 +A/Wyoming/2/2003 A/HongKong/1550/2002 HONG-KONG/1550-LOT-2002-26/2002-CDC Russell2008 320 +A/Nepal/921/2006 A/Brisbane/9/2006 BRISBANE/9-LOT-2007-069/2006-CDC Russell2008 261 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-074/2006-CDC Russell2008 190 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-089-AND-2007-090-POOL/2007-CDC Russell2008 586 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-103-NEW/2006-CDC Russell2008 80 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-089-NEW/2007-CDC Russell2008 160 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-LOT-2007-090-NEW/2007-CDC Russell2008 640 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921-X-PR8-X-165-LOT-2007-074-NEW/2006-CDC Russell2008 160 +A/Nepal/921/2006 A/Brisbane/9/2006 BRISBANE/9-LOT-2007-069-NEW/2006-CDC Russell2008 320 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-109-NEW/2007-CDC Russell2008 80 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-110-NEW/2007-CDC Russell2008 240 +A/Nepal/921/2006 A/Wisconsin/3/2007 WISCONSIN/3-X-PR8-X-167-LOT-2007-110/2007-CDC Russell2008 160 +A/Nepal/921/2006 A/Brisbane/9/2006 BRISBANE/9/2006-MELB Russell2008 663 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921/2006-MELB Russell2008 503 +A/Nepal/921/2006 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 166 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921-NO-1/2006-NIID Russell2008 576 +A/Nepal/921/2006 A/Nepal/921/2006 NEPAL/921/2006-NIID Russell2008 640 +A/Victoria/102/2003 A/Brisbane/6/2002 BRISBANE/6/2002-MELB Russell2008 2560 +A/Victoria/102/2003 A/HongKong/1550/2002 HONG-KONG/1550/2002-MELB Russell2008 320 +A/HongKong/1550/2002 A/HongKong/1550/2002 HONG-KONG/1550-LOT-2002-26/2002-CDC Russell2008 832 +A/HongKong/1550/2002 A/Brisbane/6/2002 BRISBANE/6/2002-MELB Russell2008 5280 +A/HongKong/1550/2002 A/HongKong/1550/2002 HONG-KONG/1550/2002-MELB Russell2008 2066 +A/Cheonnam/432/2002 A/HongKong/1550/2002 HONG-KONG/1550-LOT-2002-26/2002-CDC Russell2008 240 +A/Singapore/95/2003 A/Texas/40/2003 TEXAS/40-LOT-2004-029/2003-CDC Russell2008 1280 +A/Singapore/95/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2004-12/2003-CDC Russell2008 1280 +A/Singapore/35/2005 A/Wellington/1/2004 WELLINGTON/1-LOT-2004-093/2004-CDC Russell2008 10 +A/Singapore/35/2005 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 80 +A/Singapore/38/2005 A/Wellington/1/2004 WELLINGTON/1-LOT-2004-093/2004-CDC Russell2008 10 +A/Singapore/38/2005 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 80 +A/Singapore/38/2005 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 160 +A/Singapore/70/2005 A/California/20/2005 CALIFORNIA/20-LOT-2006-050-NEW/2005-CDC Russell2008 640 +A/Singapore/70/2005 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 40 +A/Singapore/70/2005 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 80 +A/Singapore/57/2006 A/Brisbane/3/2005 BRISBANE/3/2005-MELB Russell2008 80 +A/Singapore/57/2006 A/Wellington/1/2004 WELLINGTON/1/2004-MELB Russell2008 160 +A/Philippines/1159050/2002 A/HongKong/1550/2002 HONG-KONG/1550-LOT-2002-26/2002-CDC Russell2008 80 +A/Louisiana/4/2003 A/Texas/40/2003 TEXAS/40-LOT-2004-029/2003-CDC Russell2008 1066 +A/Louisiana/4/2003 A/Fujian/445/2003 FUJIAN/445-LOT-2004-043/2003-CDC Russell2008 266 +A/Louisiana/4/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2004-12/2003-CDC Russell2008 773 +A/Louisiana/4/2003 A/Fujian/445/2003 FUJIAN/445-LOT-2004-043-NEW/2003-CDC Russell2008 320 +A/Louisiana/4/2003 A/Sofia/141/2003 SOFIA/141-LOT-2003-99/2003-CDC Russell2008 580 +A/Louisiana/4/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2003-12-NEW/2003-CDC Russell2008 320 +A/Texas/40/2003 A/Wellington/1/2004 WELLINGTON/1-LOT-2004-093/2004-CDC Russell2008 248 +A/Texas/40/2003 A/Texas/40/2003 TEXAS/40-LOT-2004-029/2003-CDC Russell2008 1715 +A/Texas/40/2003 A/Wellington/1/2004 WELLINGTON/1-X-PR-8-LOT-2005-019/2004-CDC Russell2008 480 +A/Texas/40/2003 A/Texas/40/2003 TEXAS/40/2003-CDC Russell2008 2560 +A/Texas/40/2003 A/Wellington/1/2004 WELLINGTON/1-CDC-20040908-COL-12/2004-CDC Russell2008 1280 +A/Texas/40/2003 A/Wellington/1/2004 WELLINGTON/1/2004-CDC Russell2008 1066 +A/Texas/40/2003 A/Fujian/445/2003 FUJIAN/445-LOT-2004-043/2003-CDC Russell2008 400 +A/Texas/40/2003 A/Louisiana/4/2003 LOUISIANA/4-LOT-2004-12/2003-CDC Russell2008 1280 +A/Texas/40/2003 A/HongKong/1550/2002 HONG-KONG/1550/2002-NIID Russell2008 1280 +A/California/20/2005 A/California/20/2005 CALIFORNIA/20-LOT-2006-050-NEW/2005-CDC Russell2008 640 +A/Bilthoven/16190/1968 A/HongKong/1/1968 HK/1/68 Smith2004 640 +A/Bilthoven/16190/1968 A/England/42/1972 EN/42/72 Smith2004 320 +A/Bilthoven/16190/1968 A/Victoria/3/1975 VI/3A/75 Smith2004 40 +A/HongKong/1/1968 A/HongKong/1/1968 HK/1/68 Smith2004 1280 +A/HongKong/1/1968 A/England/42/1972 EN/42/72 Smith2004 2560 +A/HongKong/1/1968 A/Leningrad/360/1986 LE/360/86 Smith2004 <10 +A/HongKong/1/1968 A/Johannesburg/33/1994 JO/33/94 Smith2004 <10 +A/HongKong/1/1968 A/Victoria/3/1975 VI/3C/75 Smith2004 <10 +A/Bilthoven/93/1970 A/HongKong/1/1968 HK/1/68 Smith2004 1109 +A/Bilthoven/93/1970 A/England/42/1972 EN/42/72 Smith2004 640 +A/Bilthoven/93/1970 A/Victoria/3/1975 VI/3A/75 Smith2004 46 +A/Bilthoven/93/1970 A/Leningrad/360/1986 LE/360/86 Smith2004 <10 +A/Bilthoven/93/1970 A/Victoria/7/1987 VI/7/87 Smith2004 <20 +A/Bilthoven/93/1970 A/Victoria/3/1975 VI/3C/75 Smith2004 <20 +A/England/42/1972 A/England/42/1972 EN/42/72 Smith2004 5120 +A/England/42/1972 A/Leningrad/360/1986 LE/360/86 Smith2004 <10 +A/England/42/1972 A/Johannesburg/33/1994 JO/33/94 Smith2004 <10 +A/England/42/1972 A/Victoria/3/1975 VI/3C/75 Smith2004 160 +A/Bilthoven/5146/1974 A/HongKong/1/1968 HK/1/68 Smith2004 40 +A/Bilthoven/5146/1974 A/England/42/1972 EN/42/72 Smith2004 320 +A/Bilthoven/5146/1974 A/Victoria/3/1975 VI/3A/75 Smith2004 80 +A/Victoria/3/1975 A/England/42/1972 EN/42/72 Smith2004 320 +A/Victoria/3/1975 A/Leningrad/360/1986 LE/360/86 Smith2004 40 +A/Victoria/3/1975 A/Johannesburg/33/1994 JO/33/94 Smith2004 <10 +A/Victoria/3/1975 A/Victoria/3/1975 VI/3C/75 Smith2004 2560 +A/Bilthoven/5168/1976 A/HongKong/1/1968 HK/1/68 Smith2004 <10 +A/Bilthoven/5168/1976 A/England/42/1972 EN/42/72 Smith2004 160 +A/Bilthoven/5168/1976 A/Victoria/3/1975 VI/3A/75 Smith2004 1280 +A/Bilthoven/2271/1976 A/HongKong/1/1968 HK/1/68 Smith2004 <10 +A/Bilthoven/2271/1976 A/England/42/1972 EN/42/72 Smith2004 120 +A/Bilthoven/2271/1976 A/Victoria/3/1975 VI/3A/75 Smith2004 160 +A/Leningrad/360/1986 A/England/42/1972 EN/42/72 Smith2004 <10 +A/Leningrad/360/1986 A/Leningrad/360/1986 LE/360/86 Smith2004 640 +A/Leningrad/360/1986 A/Victoria/7/1987 VI/7/87 Smith2004 160 +A/Leningrad/360/1986 A/Victoria/3/1975 VI/3C/75 Smith2004 <10 +A/Victoria/7/1987 A/Victoria/7/1987 VI/7/87 Smith2004 1437 +A/ChristChurch/2/1988 A/Victoria/7/1987 VI/7/87 Smith2004 320 +A/Seoul/1/1990 A/Victoria/7/1987 VI/7/87 Smith2004 1280 +A/SouthAustralia/23/1992 A/Johannesburg/33/1994 JO/33/94 Smith2004 <5 +A/SouthAustralia/27/1992 A/Johannesburg/33/1994 JO/33/94 Smith2004 20 +A/Madrid/G130/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 240 +A/Netherlands/115/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 240 +A/Shiga/6/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 400 +A/Yamagata/62/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 200 +A/Netherlands/371/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 1120 +A/Oslo/2352/1993 A/Oslo/2352/1993 OS/2352/93 Smith2004 1280 +A/Oslo/2352/1993 A/Johannesburg/33/1994 JO/33/94 Smith2004 315 +A/HongKong/55/1994 A/Oslo/2352/1993 OS/2352/93 Smith2004 1280 +A/HongKong/55/1994 A/Johannesburg/33/1994 JO/33/94 Smith2004 2326 +A/Johannesburg/33/1994 A/HongKong/1/1968 HK/1/68 Smith2004 <10 +A/Johannesburg/33/1994 A/England/42/1972 EN/42/72 Smith2004 <10 +A/Johannesburg/33/1994 A/Leningrad/360/1986 LE/360/86 Smith2004 <10 +A/Johannesburg/33/1994 A/Oslo/2352/1993 OS/2352/93 Smith2004 298 +A/Johannesburg/33/1994 A/Geneva/AI9509/1995 GE/A9509/95 Smith2004 640 +A/Johannesburg/33/1994 A/Victoria/3/1975 VI/3C/75 Smith2004 <10 +A/Johannesburg/47/1994 A/Oslo/2352/1993 OS/2352/93 Smith2004 320 +A/Johannesburg/47/1994 A/Johannesburg/33/1994 JO/33/94 Smith2004 1358 +A/Geneva/AI9509/1995 A/Oslo/2352/1993 OS/2352/93 Smith2004 226 +A/Geneva/AI9509/1995 A/Johannesburg/33/1994 JO/33/94 Smith2004 342 +A/Geneva/AI9509/1995 A/Geneva/AI9509/1995 GE/A9509/95 Smith2004 1280 +A/HongKong/32/1995 A/Oslo/2352/1993 OS/2352/93 Smith2004 1810 +A/HongKong/32/1995 A/Johannesburg/33/1994 JO/33/94 Smith2004 3225 +A/HongKong/38/1995 A/Johannesburg/33/1994 JO/33/94 Smith2004 1280 +A/HongKong/38/1995 A/Geneva/AI9509/1995 GE/A9509/95 Smith2004 2560 +A/Wuhan/359/1995 A/Johannesburg/33/1994 JO/33/94 Smith2004 207 +A/Wuhan/359/1995 A/Geneva/AI9509/1995 GE/A9509/95 Smith2004 370 +A/Wuhan/359/1995 A/Wuhan/359/1995 WU/359B/95 Smith2004 2560 +A/Oslo/244/1997 A/Johannesburg/33/1994 JO/33/94 Smith2004 240 +A/Netherlands/414/1998 A/HongKong/1/1968 HK/1/68 Smith2004 <10 +A/Netherlands/414/1998 A/Wuhan/359/1995 WU/359B/95 Smith2004 320 +A/Wisconsin/3/2007 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-feb-2009-table5 2560 +A/Wisconsin/3/2007 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2009-table5 5120 +A/Wisconsin/3/2007 A/England/394/2008 A/Eng/394/08_F32/08 nimr-feb-2009-table5 640 +A/Uruguay/716/2007 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-feb-2009-table5 640 +A/Uruguay/716/2007 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2009-table5 2560 +A/Uruguay/716/2007 A/England/394/2008 A/Eng/394/08_F32/08 nimr-feb-2009-table5 320 +A/England/394/2008 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-feb-2009-table5 320 +A/England/394/2008 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2009-table5 640 +A/England/394/2008 A/England/394/2008 A/Eng/394/08_F32/08 nimr-feb-2009-table5 640 +A/England/392/2008 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-feb-2009-table5 160 +A/England/392/2008 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2009-table5 640 +A/England/392/2008 A/England/394/2008 A/Eng/394/08_F32/08 nimr-feb-2009-table5 1280 +A/England/394/2008 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-feb-2009-table5 160 +A/England/394/2008 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2009-table5 640 +A/England/394/2008 A/England/394/2008 A/Eng/394/08_F32/08 nimr-feb-2009-table5 1280 +A/Uruguay/716/2007 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2010-table12 2560 +A/Uruguay/716/2007 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-feb-2010-table12 <40 +A/Wisconsin/15/2009 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2010-table12 <40 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-feb-2010-table12 160 +A/Uruguay/716/2007 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2010-table13 1280 +A/Uruguay/716/2007 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-feb-2010-table13 <40 +A/Uruguay/716/2007 A/HongKong/26560/2009 A/HK/26560/09_CDCF38/10 nimr-feb-2010-table13 40 +A/Wisconsin/15/2009 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2010-table13 40 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-feb-2010-table13 160 +A/Wisconsin/15/2009 A/HongKong/26560/2009 A/HK/26560/09_CDCF38/10 nimr-feb-2010-table13 1280 +A/HongKong/26560/2009 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-feb-2010-table13 <40 +A/HongKong/26560/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-feb-2010-table13 80 +A/HongKong/26560/2009 A/HongKong/26560/2009 A/HK/26560/09_CDCF38/10 nimr-feb-2010-table13 1280 +A/Nepal/921/2006 A/Nepal/921/2006 A/Nepal/921/06_F2/07 nimr-march-2008-table5 5120 +A/Nepal/921/2006 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-march-2008-table5 640 +A/Wisconsin/3/2007 A/Nepal/921/2006 A/Nepal/921/06_F2/07 nimr-march-2008-table5 5120 +A/Wisconsin/3/2007 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-march-2008-table5 2560 +A/Uruguay/716/2007 A/Nepal/921/2006 A/Nepal/921/06_F2/07 nimr-march-2008-table5 2560 +A/Uruguay/716/2007 A/Wisconsin/3/2007 A/Wis/3/07_F15/07 nimr-march-2008-table5 640 +A/Uruguay/716/2007 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-sep-2010-table8 1280 +A/Uruguay/716/2007 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2010-table8 <40 +A/Uruguay/716/2007 A/RhodeIsland/1/2010 A/RhodeIs/1/10_CDC77/10 nimr-sep-2010-table8 40 +A/Wisconsin/15/2009 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-sep-2010-table8 <40 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2010-table8 320 +A/Wisconsin/15/2009 A/RhodeIsland/1/2010 A/RhodeIs/1/10_CDC77/10 nimr-sep-2010-table8 320 +A/RhodeIsland/1/2010 A/Uruguay/716/2007 A/Uru/716/07_F26/08 nimr-sep-2010-table8 40 +A/RhodeIsland/1/2010 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2010-table8 80 +A/RhodeIsland/1/2010 A/RhodeIsland/1/2010 A/RhodeIs/1/10_CDC77/10 nimr-sep-2010-table8 640 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2011-2011-04-12 320 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2011-2011-05-13 160 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2011-2011-05-18 320 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2011-2011-06-24 160 +A/Wisconsin/15/2009 A/Wisconsin/15/2009 A/Wis/15/09_F24/09 nimr-sep-2011-2011-06-24b 160 diff --git a/tests/test_titer_models.py b/tests/test_titer_models.py index b0ac53ddc..16351b31a 100644 --- a/tests/test_titer_models.py +++ b/tests/test_titer_models.py @@ -1,5 +1,6 @@ - -from augur.titer_model import TiterCollection +from augur.reconstruct_sequences import load_alignments +from augur.titer_model import TiterCollection, TreeModel, SubstitutionModel +from augur.utils import read_tree def test_titer_collection(): @@ -7,4 +8,64 @@ def test_titer_collection(): titers = TiterCollection("tests/data/titer_model/h3n2_titers_subset.tsv") # Confirm that all distinct test and reference strains have been counted. - assert len(titers.strains) == 13 + assert len(titers.strains) == 62 + + +def test_titer_tree_model_validate_measurements(): + """Validate titer tree model with a subset of measurements. + """ + # Load tree. + tree = read_tree("tests/data/titer_model/h3n2_ha_tree.nwk") + + # Prepare model. + model = TreeModel(tree, "tests/data/titer_model/h3n2_titers_subset.tsv") + model.prepare( + training_fraction=0.8, + subset_strains=False, + ) + + # Train the model. + model.train() + + # Validate model on a subset of measurements. + performance = model.validate() + + +def test_titer_tree_model_validate_strains(): + """Validate titer tree model with a subset of virus strains. + """ + # Load tree. + tree = read_tree("tests/data/titer_model/h3n2_ha_tree.nwk") + + # Prepare model. + model = TreeModel(tree, "tests/data/titer_model/h3n2_titers_subset.tsv") + model.prepare( + training_fraction=0.8, + subset_strains=True, + ) + + # Train the model. + model.train() + + # Validate model on a subset of measurements. + performance = model.validate() + + +def test_titer_substitution_model_validate_measurements(): + """Validate titer substitution model with a subset of measurements. + """ + # Load alignments. + alignments = load_alignments(["tests/data/titer_model/h3n2_ha_aligned_genbank_HA1.fasta"], ["HA1"]) + + # Prepare model. + model = SubstitutionModel(alignments, "tests/data/titer_model/h3n2_titers_subset.tsv") + model.prepare( + training_fraction=0.8, + subset_strains=False, + ) + + # Train the model. + model.train() + + # Validate model on a subset of measurements. + performance = model.validate() From 0501e70d12ff2d6a0664e9533e411f05b7e6293c Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Thu, 21 Nov 2024 11:46:27 -0800 Subject: [PATCH 20/22] Fix type error in titer model cross-validation Fixes type errors in titer model code that is only accessible through the developer's Python API but which prevented me from running cross-validation of titer models with that API. It looks like these were the only references to the dictionary methods of keys and values that didn't get updated in the past. --- augur/titer_model.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/augur/titer_model.py b/augur/titer_model.py index 77efc298b..cb64d542f 100644 --- a/augur/titer_model.py +++ b/augur/titer_model.py @@ -228,7 +228,7 @@ def __init__(self, titers, **kwargs): else: self.titers = titers strain_counts = type(self).count_strains(titers) - self.strains = strain_counts.keys() + self.strains = list(strain_counts.keys()) def read_titers(self, fname): self.titer_fname = fname @@ -506,7 +506,7 @@ def validate(self, plot=False, cutoff=0.0, validation_set = None, fname=None): pred_titer = self.predict_titer(key[0], key[1], cutoff=cutoff) validation[key] = (val, pred_titer) - validation_array = np.array(validation.values()) + validation_array = np.array(list(validation.values())) actual = validation_array[:,0] predicted = validation_array[:,1] @@ -519,7 +519,7 @@ def validate(self, plot=False, cutoff=0.0, validation_set = None, fname=None): 'rms_error': np.sqrt(np.mean((actual-predicted)**2)), } pprint(model_performance) - model_performance['values'] = validation.values() + model_performance['values'] = list(validation.values()) self.validation = model_performance From ccbbebe08f5ee0d616712f99cac19a5cacf4ff4b Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Fri, 20 Dec 2024 16:12:01 -0800 Subject: [PATCH 21/22] titer_model: Fix error when subsampling strains Fixes a type error "Population must be a sequence. For dicts or sets, use sorted(d)." --- augur/titer_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/augur/titer_model.py b/augur/titer_model.py index cb64d542f..0112f49f1 100644 --- a/augur/titer_model.py +++ b/augur/titer_model.py @@ -417,7 +417,7 @@ def make_training_set(self, training_fraction=1.0, subset_strains=False, **kwarg from random import sample tmp = set(self.test_strains) tmp.difference_update(self.ref_strains) # don't use references viruses in the set to sample from - training_strains = sample(tmp, int(training_fraction*len(tmp))) + training_strains = sample(sorted(tmp), int(training_fraction*len(tmp))) for tmpstrain in self.ref_strains: # add all reference viruses to the training set if tmpstrain not in training_strains: training_strains.append(tmpstrain) From 6340cf0e945bd22b90ea6b1880d92eacea90a6d7 Mon Sep 17 00:00:00 2001 From: John Huddleston Date: Mon, 23 Dec 2024 11:54:35 -0800 Subject: [PATCH 22/22] Update change log --- CHANGES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index b0cf6e697..aaf8c06cb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,11 @@ ## __NEXT__ +### Bug Fixes + +* titers: Fix type errors in code associated with cross-validation of models. [#1688][] (@huddlej) + +[#1688]: https://github.com/nextstrain/augur/pull/1688 ## 27.0.0 (9 December 2024)