Skip to content

Commit

Permalink
hpoa output
Browse files Browse the repository at this point in the history
  • Loading branch information
pnrobinson committed Apr 15, 2024
1 parent e3a0c0d commit ad8cb42
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/pyphetools/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from . import visualization
from . import validation

__version__ = "0.9.76"
__version__ = "0.9.77"

__all__ = [
"creation",
Expand Down
18 changes: 16 additions & 2 deletions src/pyphetools/visualization/hpoa_table_creator.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ def write_data_frame(self):

class HpoaTableBuilder:

def __init__(self, indir=None, phenopacket_list=None, created_by:str=None) -> None:
def __init__(self, indir=None, phenopacket_list=None, created_by:str=None, target=None) -> None:
if indir is not None:
if not os.path.isdir(indir):
raise ValueError(f"indir argument {indir} must be directory!")
Expand All @@ -307,7 +307,10 @@ def __init__(self, indir=None, phenopacket_list=None, created_by:str=None) -> No
ppack = Parse(json.dumps(jsondata), PPKt.Phenopacket())
self._phenopackets.append(ppack)
elif phenopacket_list is not None:
self._phenopackets = phenopacket_list
if target is not None:
self._phenopackets = HpoaTableBuilder.filter_diseases(target, phenopacket_list)
else:
self._phenopackets = phenopacket_list
else:
raise ValueError("A valid value must be supplied for either \"indir\" or \"phenopacket_list\"")
self._onset_term_d = defaultdict(list)
Expand All @@ -321,6 +324,17 @@ def __init__(self, indir=None, phenopacket_list=None, created_by:str=None) -> No
tcounter.increment_term(onset)
self._onset_term_d[pmid].extend(tcounter.get_counted_terms())

@staticmethod
def filter_diseases(disease_id, ppkt_list):
target_list = list()
for ppkt in ppkt_list:
for d in ppkt.diseases:
if d.term.id == disease_id:
target_list.append(ppkt)
break
print(f"[INFO] Extracted {(len(target_list))} from {(len(ppkt_list))} phenopackets with {disease_id}\n")
return target_list

def autosomal_recessive(self, pmid):
moi_term = HpTerm(hpo_id="HP:0000007", label="Autosomal recessive inheritance")
self._moi_d[pmid].append(moi_term)
Expand Down

0 comments on commit ad8cb42

Please sign in to comment.