Skip to content

Commit

Permalink
Merge pull request #65 from genomehubs:rjchallis/issue64
Browse files Browse the repository at this point in the history
fix alt_taxon_id spellcheck import/exceptions
  • Loading branch information
rjchallis committed Apr 6, 2021
2 parents 05cad18 + bde7c56 commit 64627bd
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions src/genomehubs/lib/fill.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Usage:
genomehubs fill [--hub-name STRING] [--hub-path PATH] [--hub-version PATH]
[--config-file PATH...] [--config-save PATH]
[--es-host URL...]
[--es-host URL...] [--traverse-limit STRING]
[--traverse-infer-ancestors] [--traverse-infer-descendants]
[--traverse-infer-both] [--traverse-threads INT]
[--traverse-depth INT] [--traverse-root STRING]
Expand All @@ -25,6 +25,7 @@
--traverse-infer-descendants Flag to enable tree traversal from root to tips.
--traverse-infer-both Flag to enable tree traversal from tips to root and
back to tips.
--traverse-limit STRING Maximum rank to ascend to during traversal. [Default: class]
--traverse-root ID Root taxon id for tree traversal.
--traverse-threads INT Number of threads to use for tree traversal. [Default: 1]
--traverse-weight STRING Weighting scheme for setting values during tree
Expand Down Expand Up @@ -265,6 +266,7 @@ def set_values_from_descendants(
taxon_id,
parent,
taxon_rank,
traverse_limit,
parents,
descendant_ranks=None,
attr_dict=None,
Expand All @@ -284,7 +286,7 @@ def set_values_from_descendants(
traverseable = False
if not traverseable or taxon_id in limits[key]:
continue
traverse_limit = meta[key].get("traverse_limit", None)
traverse_limit = meta[key].get("traverse_limit", traverse_limit)
if traverse_limit:
if (
descendant_ranks is not None
Expand Down Expand Up @@ -333,7 +335,7 @@ def set_values_from_descendants(
return changed, attr_dict


def set_attributes_to_descend(meta):
def set_attributes_to_descend(meta, traverse_limit):
"""Set which attributes should have values inferred from ancestral taxa."""
desc_attrs = set()
desc_attr_limits = {}
Expand All @@ -346,6 +348,8 @@ def set_attributes_to_descend(meta):
desc_attrs.add(key)
if "traverse_limit" in value:
desc_attr_limits.update({key: value["traverse_limit"]})
else:
desc_attr_limits.update({key: traverse_limit})
return desc_attrs, desc_attr_limits


Expand Down Expand Up @@ -408,18 +412,15 @@ def traverse_from_tips(es, opts, *, template, root=None, max_depth=None):
)
root_depth = max_depth
meta = template["types"]["attributes"]
# for key, value in meta.items():
# if "traverse_limit" in value:
# if not isinstance(value["traverse_limit"], list):
# value["traverse_limit"] = [value["traverse_limit"]]
# value["traverse_limit"] = set(value["traverse_limit"])
attrs = set(meta.keys())
parents = defaultdict(
lambda: defaultdict(lambda: {"max": None, "min": None, "values": []})
)
limits = defaultdict(set)
if "traverse-infer-both" in opts and opts["traverse-infer-both"]:
desc_attrs, desc_attr_limits = set_attributes_to_descend(meta)
desc_attrs, desc_attr_limits = set_attributes_to_descend(
meta, opts["traverse-limit"]
)
missing_attributes = defaultdict(dict)
descendant_ranks = defaultdict(set)
else:
Expand Down Expand Up @@ -459,6 +460,7 @@ def traverse_from_tips(es, opts, *, template, root=None, max_depth=None):
parents=parents,
descendant_ranks=descendant_ranks,
taxon_rank=node["_source"]["taxon_rank"],
traverse_limit=opts["traverse-limit"],
attr_dict=attr_dict,
limits=limits,
)
Expand Down

0 comments on commit 64627bd

Please sign in to comment.