diff --git a/cobrakbase/core/kbasefba/newmodeltemplate_metabolite.py b/cobrakbase/core/kbasefba/newmodeltemplate_metabolite.py index fd74c8b..87ec1e1 100755 --- a/cobrakbase/core/kbasefba/newmodeltemplate_metabolite.py +++ b/cobrakbase/core/kbasefba/newmodeltemplate_metabolite.py @@ -50,15 +50,15 @@ def __init__( def from_dict(d): return NewModelTemplateCompound( d["id"], - d["formula"], - d["name"], - d["defaultCharge"], - d["mass"], - d["deltaG"], - d["deltaGErr"], - d["isCofactor"] == 1, - d["abbreviation"], - d["aliases"], + d.get("formula",None), + d.get("name",d["id"]), + d.get("defaultCharge",None), + d.get("mass",None), + d.get("deltaG",None), + d.get("deltaGErr",None), + d.get("isCofactor",0) == 1, + d.get("abbreviation",d["id"]), + d.get("aliases",[]), ) def __repr__(self): diff --git a/cobrakbase/core/kbasegenome/genome.py b/cobrakbase/core/kbasegenome/genome.py index b849dca..7d8f0bd 100644 --- a/cobrakbase/core/kbasegenome/genome.py +++ b/cobrakbase/core/kbasegenome/genome.py @@ -191,14 +191,14 @@ def from_kbase_data(kbase_data: dict, info=None, args=None): kbase_data["id"], kbase_data["scientific_name"], kbase_data["domain"], - kbase_data["genome_tiers"], - kbase_data["feature_counts"], + kbase_data.get("genome_tiers",None), + kbase_data.get("feature_counts",None), kbase_data["genetic_code"], kbase_data["dna_size"], kbase_data["num_contigs"], - kbase_data["molecule_type"], + kbase_data.get("molecule_type",None), kbase_data["source"], - kbase_data["md5"], + kbase_data.get("md5",None), kbase_data["gc_content"], kbase_data.get("taxonomy", None), kbase_data.get("assembly_ref", None), diff --git a/cobrakbase/core/kbasegenome/genome_cds_feature.py b/cobrakbase/core/kbasegenome/genome_cds_feature.py index 131361a..54615e6 100644 --- a/cobrakbase/core/kbasegenome/genome_cds_feature.py +++ b/cobrakbase/core/kbasegenome/genome_cds_feature.py @@ -294,7 +294,7 @@ def _repr_html_(self): def from_kbase_data(kbase_data): functions = KBaseGenomeFeature.extract_functions(kbase_data) functions_split = KBaseGenomeFeature.split_annotation(functions) - protein_translation = kbase_data["protein_translation"] + protein_translation = kbase_data.get("protein_translation",None) dna_sequence = kbase_data["dna_sequence"] if protein_translation: protein_translation = protein_translation.upper() @@ -305,7 +305,7 @@ def from_kbase_data(kbase_data): protein_translation, dna_sequence, kbase_data["location"], - kbase_data["cdss"], + kbase_data.get("cdss",None), functions, kbase_data.get("aliases") ) diff --git a/cobrakbase/kbaseapi.py b/cobrakbase/kbaseapi.py index 2fb7c8e..c03204d 100755 --- a/cobrakbase/kbaseapi.py +++ b/cobrakbase/kbaseapi.py @@ -64,6 +64,10 @@ def process_workspace_identifiers(id_or_ref, workspace=None): refs, IDs, and names for workspaces and objects """ objspec = {} + if len(id_or_ref.split(";")) > 1: + objspec["to_obj_ref_path"] = id_or_ref.split(";")[0:-1] + print(objspec["to_obj_ref_path"]) + id_or_ref = id_or_ref.split(";")[-1] if workspace is None: objspec["ref"] = id_or_ref else: @@ -286,7 +290,7 @@ def save_object(self, object_id, ws, object_type, data, meta=None): params["workspace"] = ws return KBaseObjectInfo(self.ws_client.save_objects(params)[0]) - def list_objects(self, ws, object_type=None, include_metadata=False): + def list_objects(self, ws, object_type=None, include_metadata=False,showHidden=False): """ List objects of a workspace (i.e., narrative) with either numerical id (e.g., 12345) or string id (e.g., user:narrative_1111111111111) @@ -296,7 +300,7 @@ def list_objects(self, ws, object_type=None, include_metadata=False): :param include_metadata: :return: """ - params = {"includeMetadata": 0} + params = {"includeMetadata": 0, "showHidden": 0} if type(ws) == int: params["ids"] = [ws] else: @@ -305,6 +309,8 @@ def list_objects(self, ws, object_type=None, include_metadata=False): params["type"] = object_type if include_metadata: params["includeMetadata"] = 1 + if showHidden: + params["showHidden"] = 1 return self.ws_client.list_objects(params) def list_workspace(self, ws, object_type=None, include_metadata=False):