Skip to content

Commit 17f1ec9

Browse files
committed
Merge branch 'release/0.16.1'
2 parents d38e477 + 972f052 commit 17f1ec9

6 files changed

Lines changed: 27 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
66

77
## [Unreleased]
88

9+
## [0.16.1] - 2023-06-14
10+
11+
### Fixed
12+
- fix for NCBI's assembly report header "asm_submitter" instead of "submitter"
13+
914
## [0.16.0] - 2023-05-31
1015

1116
### Added
@@ -473,6 +478,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
473478
- Added `-r` and `--match/--no-match` option to select sequences by regex.
474479

475480
[Unreleased]: https://github.com/vanheeringen-lab/genomepy/compare/master...develop
481+
[0.16.0]: https://github.com/vanheeringen-lab/genomepy/compare/0.16.0...0.16.1
476482
[0.16.0]: https://github.com/vanheeringen-lab/genomepy/compare/0.15.0...0.16.0
477483
[0.15.0]: https://github.com/vanheeringen-lab/genomepy/compare/0.14.0...0.15.0
478484
[0.14.0]: https://github.com/vanheeringen-lab/genomepy/compare/0.13.1...0.14.0

genomepy/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""Metadata"""
2-
__version__ = "0.16.0"
2+
__version__ = "0.16.1"
33
__author__ = (
44
"Siebren Frölich, Maarten van der Sande, Tilman Schäfers and Simon van Heeringen"
55
)

genomepy/providers/base.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ def _search_text(self, term: str, exact=False) -> Iterator[str]:
331331

332332
pattern = re.compile(term, re.I) # case insensitive
333333
for name, metadata in self.genomes.items():
334-
texts = [name] + [str(metadata[f]) for f in self.description_fields]
334+
texts = [name] + [str(metadata.get(f, "")) for f in self.description_fields]
335335
if any(pattern.search(t) for t in texts):
336336
yield name
337337

@@ -340,7 +340,7 @@ def _search_accession(self, term: str, exact=False) -> Iterator[str]:
340340
# cut off prefix (GCA/GCF) and suffix (version numbers, e.g. '.3')
341341
term = term.upper() if exact else term[3:].split(".")[0]
342342
for name, metadata in self.genomes.items():
343-
if any(term in str(metadata[f]) for f in self.accession_fields):
343+
if any(term in str(metadata.get(f, "")) for f in self.accession_fields):
344344
yield name
345345

346346
def _search_taxonomy(self, term: str, exact=False) -> Iterator[str]:
@@ -354,7 +354,7 @@ def exact_match(md, t):
354354

355355
func = exact_match if exact else fuzzy_match
356356
for name, metadata in self.genomes.items():
357-
if any(func(metadata[f], term) for f in self.taxid_fields):
357+
if any(func(metadata.get(f, ""), term) for f in self.taxid_fields):
358358
yield name
359359

360360
def search(self, term: str or int, exact=False, size=False):

genomepy/providers/ncbi.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ class NcbiProvider(BaseProvider):
3939
accession_fields = ["assembly_accession", "gbrs_paired_asm"]
4040
taxid_fields = ["species_taxid", "taxid"]
4141
description_fields = [
42-
"submitter",
42+
"submitter", # replaced with "asm_submitter" in 2023
43+
"asm_submitter",
4344
"organism_name",
4445
"assembly_accession",
4546
"gbrs_paired_asm",
@@ -65,7 +66,7 @@ def _genome_info_tuple(self, name, size=False):
6566
taxid = self.genome_taxid(name)
6667
annotations = bool(self.annotation_links(name))
6768
species = self.genomes[name].get("organism_name")
68-
other = self.genomes[name].get("submitter")
69+
other = self.genomes[name].get("asm_submitter")
6970
if size:
7071
length = get_genome_size(accession)
7172
return name, accession, taxid, annotations, species, length, other
@@ -224,14 +225,14 @@ def load_summary(url):
224225
]
225226
# filter summaries to these keys (to reduce the size of the cached data)
226227
summary_keys_to_keep = [
227-
0, # 'assembly_accession',
228-
5, # 'taxid',
229-
6, # 'species_taxid',
230-
7, # 'organism_name',
231-
16, # 'submitter',
232-
17, # 'gbrs_paired_asm',
233-
18, # 'paired_asm_comp',
234-
19, # 'ftp_path',
228+
0, # "assembly_accession",
229+
5, # "taxid",
230+
6, # "species_taxid",
231+
7, # "organism_name",
232+
16, # "asm_submitter",
233+
17, # "gbrs_paired_asm",
234+
18, # "paired_asm_comp",
235+
19, # "ftp_path",
235236
]
236237
for fname in names:
237238
lines = load_summary(f"{assembly_url}/{fname}")

genomepy/providers/ucsc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def _search_accession(self, term: str, exact=False) -> Iterator[str]:
9797
term = term.upper() if exact else term[3:].split(".")[0]
9898
hits = False
9999
for name, metadata in self.genomes.items():
100-
if any([term in str(metadata[f]) for f in self.accession_fields]):
100+
if any([term in str(metadata.get(f, "")) for f in self.accession_fields]):
101101
hits = True
102102
yield name
103103

tests/test_07_provider_ncbi.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ def test__get_genomes(ncbi):
7272
genome = ncbi.genomes["ASM2732v1"]
7373
assert isinstance(genome, dict)
7474
for field in ncbi.accession_fields + ncbi.taxid_fields + ncbi.description_fields:
75-
assert field in genome
75+
if field.endswith("submitter"):
76+
# "submitter" or "asm_submitter" must be present
77+
assert sum([k.endswith("submitter") for k in genome.keys()]) == 1
78+
else:
79+
assert field in genome.keys()
7680
assert genome["species_taxid"] == "2097"
7781
assert genome["taxid"] == "243273"
7882

0 commit comments

Comments
 (0)