Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ docs/source/generated
# gcloud cli
google-cloud-cli-*
google-cloud-sdk
venv/
venv/
22 changes: 22 additions & 0 deletions malariagen_data/anoph/sample_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ def __init__(
# default value provided in the release configuration.
self._aim_analysis_override = aim_analysis

#cache for metadata
self._cache_sample_metadata = {}

# N.B., the expected AIM metadata columns may vary between
# data resources, and so column names and dtype need to be
# passed in as parameters.
Expand Down Expand Up @@ -215,6 +218,25 @@ def general_metadata(
prepared_sample_sets = self._prep_sample_sets_param(sample_sets=sample_sets)
del sample_sets

#create cache key
cache_key = tuple(sorted(prepared_sample_sets))

#check cache
if cache_key in self._cache_sample_metadata:
return self._cache_sample_metadata[cache_key]

# compute metdata
df = self._parse_metadata_paths(
path_template="{release_path}/metadata/general/{sample_set}/samples.meta.csv",
parse_metadata_func=self._parse_general_metadata,
sample_sets=prepared_sample_sets,
)

#store result in cache
self._cache_sample_metadata[cache_key] = df

return df

return self._parse_metadata_paths(
path_template="{release_path}/metadata/general/{sample_set}/samples.meta.csv",
parse_metadata_func=self._parse_general_metadata,
Expand Down