Standardize metadata on-the-flyยถ

This use cases runs on a LaminDB instance with populated CellType and Pathway registries. Make sure you run the GO Ontology notebook before executing this use case.

Here, we demonstrate how to standardize the metadata on-the-fly during cell type annotation and pathway enrichment analysis using these two registries.

For more information, see:

!lamin load use-cases-registries
๐Ÿ’ก connected lamindb: testuser1/use-cases-registries
import lamindb as ln
import bionty as bt
from lamin_usecases import datasets as ds
import scanpy as sc
import matplotlib.pyplot as plt
import celltypist
import gseapy as gp
๐Ÿ’ก connected lamindb: testuser1/use-cases-registries
sc.settings.set_figure_params(dpi=50, facecolor="white")
ln.settings.transform.stem_uid = "hsPU1OENv0LS"
ln.settings.transform.version = "0"
ln.track()
๐Ÿ’ก notebook imports: bionty==0.43.0 celltypist==1.6.2 gseapy==1.1.3 lamin_usecases==0.0.1 lamindb==0.72.0 matplotlib==3.9.0 scanpy==1.10.1
๐Ÿ’ก saved: Transform(version='0', uid='hsPU1OENv0LS6K79', name='Standardize metadata on-the-fly', key='analysis-registries', type='notebook', updated_at=2024-05-20 08:32:43 UTC, created_by_id=1)
๐Ÿ’ก saved: Run(uid='etZ8zWfalDaPNZLAtAuX', transform_id=1, created_by_id=1)

An interferon-beta treated datasetยถ

A small peripheral blood mononuclear cell dataset that is split into control and stimulated groups. The stimulated group was treated with interferon beta.

Letโ€™s load the dataset and perform some preprocessing:

adata = ds.anndata_seurat_ifnb(preprocess=False, populate_registries=True)
adata


AnnData object with n_obs ร— n_vars = 13999 ร— 9939
    obs: 'stim'
    var: 'symbol'
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.pp.pca(adata, n_comps=20)
sc.pp.neighbors(adata, n_pcs=10)
sc.tl.umap(adata)
/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm

Analysis: cell type annotation using CellTypistยถ

model = celltypist.models.Model.load(model="Immune_All_Low.pkl")
Hide code cell output
๐Ÿ”Ž No available models. Downloading...
๐Ÿ“œ Retrieving model list from server https://celltypist.cog.sanger.ac.uk/models/models.json
๐Ÿ“š Total models in list: 48
๐Ÿ“‚ Storing models in /home/runner/.celltypist/data/models
๐Ÿ’พ Downloading model [1/48]: Immune_All_Low.pkl
๐Ÿ’พ Downloading model [2/48]: Immune_All_High.pkl
๐Ÿ’พ Downloading model [3/48]: Adult_CynomolgusMacaque_Hippocampus.pkl
๐Ÿ’พ Downloading model [4/48]: Adult_Human_PancreaticIslet.pkl
๐Ÿ’พ Downloading model [5/48]: Adult_Human_Skin.pkl
๐Ÿ’พ Downloading model [6/48]: Adult_Mouse_Gut.pkl
๐Ÿ’พ Downloading model [7/48]: Adult_Mouse_OlfactoryBulb.pkl
๐Ÿ’พ Downloading model [8/48]: Adult_Pig_Hippocampus.pkl
๐Ÿ’พ Downloading model [9/48]: Adult_RhesusMacaque_Hippocampus.pkl
๐Ÿ’พ Downloading model [10/48]: Autopsy_COVID19_Lung.pkl
๐Ÿ’พ Downloading model [11/48]: COVID19_HumanChallenge_Blood.pkl
๐Ÿ’พ Downloading model [12/48]: COVID19_Immune_Landscape.pkl
๐Ÿ’พ Downloading model [13/48]: Cells_Adult_Breast.pkl
๐Ÿ’พ Downloading model [14/48]: Cells_Fetal_Lung.pkl
๐Ÿ’พ Downloading model [15/48]: Cells_Human_Tonsil.pkl
๐Ÿ’พ Downloading model [16/48]: Cells_Intestinal_Tract.pkl
๐Ÿ’พ Downloading model [17/48]: Cells_Lung_Airway.pkl
๐Ÿ’พ Downloading model [18/48]: Developing_Human_Brain.pkl
๐Ÿ’พ Downloading model [19/48]: Developing_Human_Gonads.pkl
๐Ÿ’พ Downloading model [20/48]: Developing_Human_Hippocampus.pkl
๐Ÿ’พ Downloading model [21/48]: Developing_Human_Organs.pkl
๐Ÿ’พ Downloading model [22/48]: Developing_Human_Thymus.pkl
๐Ÿ’พ Downloading model [23/48]: Developing_Mouse_Brain.pkl
๐Ÿ’พ Downloading model [24/48]: Developing_Mouse_Hippocampus.pkl
๐Ÿ’พ Downloading model [25/48]: Fetal_Human_AdrenalGlands.pkl
๐Ÿ’พ Downloading model [26/48]: Fetal_Human_Pancreas.pkl
๐Ÿ’พ Downloading model [27/48]: Fetal_Human_Pituitary.pkl
๐Ÿ’พ Downloading model [28/48]: Fetal_Human_Retina.pkl
๐Ÿ’พ Downloading model [29/48]: Fetal_Human_Skin.pkl
๐Ÿ’พ Downloading model [30/48]: Healthy_Adult_Heart.pkl
๐Ÿ’พ Downloading model [31/48]: Healthy_COVID19_PBMC.pkl
๐Ÿ’พ Downloading model [32/48]: Healthy_Human_Liver.pkl
๐Ÿ’พ Downloading model [33/48]: Healthy_Mouse_Liver.pkl
๐Ÿ’พ Downloading model [34/48]: Human_AdultAged_Hippocampus.pkl
๐Ÿ’พ Downloading model [35/48]: Human_Colorectal_Cancer.pkl
๐Ÿ’พ Downloading model [36/48]: Human_Developmental_Retina.pkl
๐Ÿ’พ Downloading model [37/48]: Human_Embryonic_YolkSac.pkl
๐Ÿ’พ Downloading model [38/48]: Human_IPF_Lung.pkl
๐Ÿ’พ Downloading model [39/48]: Human_Longitudinal_Hippocampus.pkl
๐Ÿ’พ Downloading model [40/48]: Human_Lung_Atlas.pkl
๐Ÿ’พ Downloading model [41/48]: Human_PF_Lung.pkl
๐Ÿ’พ Downloading model [42/48]: Lethal_COVID19_Lung.pkl
๐Ÿ’พ Downloading model [43/48]: Mouse_Dentate_Gyrus.pkl
๐Ÿ’พ Downloading model [44/48]: Mouse_Isocortex_Hippocampus.pkl
๐Ÿ’พ Downloading model [45/48]: Mouse_Postnatal_DentateGyrus.pkl
๐Ÿ’พ Downloading model [46/48]: Mouse_Whole_Brain.pkl
๐Ÿ’พ Downloading model [47/48]: Nuclei_Lung_Airway.pkl
๐Ÿ’พ Downloading model [48/48]: Pan_Fetal_Human.pkl
predictions = celltypist.annotate(
    adata, model="Immune_All_Low.pkl", majority_voting=True
)
adata.obs["cell_type_celltypist"] = predictions.predicted_labels.majority_voting
๐Ÿ”ฌ Input data has 13999 cells and 9939 genes
๐Ÿ”— Matching reference genes in the model
๐Ÿงฌ 3701 features used for prediction
โš–๏ธ Scaling input data
๐Ÿ–‹๏ธ Predicting labels
โœ… Prediction done!
๐Ÿ‘€ Detected a neighborhood graph in the input object, will run over-clustering on the basis of it
โ›“๏ธ Over-clustering input data with resolution set to 10
๐Ÿ—ณ๏ธ Majority voting the predictions
โœ… Majority voting done!
adata.obs["cell_type_celltypist"] = bt.CellType.standardize(
    adata.obs["cell_type_celltypist"]
)
sc.pl.umap(
    adata,
    color=["cell_type_celltypist", "stim"],
    frameon=False,
    legend_fontsize=10,
    wspace=0.4,
)
... storing 'cell_type_celltypist' as categorical
_images/adfb1531dbae6373a78c9f631a4f55c9319216b4cff2094e5986f07d0e034620.png

Analysis: Pathway enrichment analysis using Enrichrยถ

This analysis is based on the GSEApy scRNA-seq Example.

First, we compute differentially expressed genes using a Wilcoxon test between stimulated and control cells.

# compute differentially expressed genes
sc.tl.rank_genes_groups(
    adata,
    groupby="stim",
    use_raw=False,
    method="wilcoxon",
    groups=["STIM"],
    reference="CTRL",
)

rank_genes_groups_df = sc.get.rank_genes_groups_df(adata, "STIM")
rank_genes_groups_df.head()
names scores logfoldchanges pvals pvals_adj
0 ISG15 99.455231 7.132803 0.0 0.0
1 ISG20 96.735291 5.074359 0.0 0.0
2 IFI6 94.971313 5.828791 0.0 0.0
3 IFIT3 92.482048 7.432512 0.0 0.0
4 IFIT1 90.698792 8.053708 0.0 0.0

Next, we filter out up/down-regulated differentially expressed gene sets:

degs_up = rank_genes_groups_df[
    (rank_genes_groups_df["logfoldchanges"] > 0)
    & (rank_genes_groups_df["pvals_adj"] < 0.05)
]
degs_dw = rank_genes_groups_df[
    (rank_genes_groups_df["logfoldchanges"] < 0)
    & (rank_genes_groups_df["pvals_adj"] < 0.05)
]

degs_up.shape, degs_dw.shape
((541, 5), (937, 5))

Run pathway enrichment analysis on DEGs and plot top 10 pathways:

enr_up = gp.enrichr(degs_up.names, gene_sets="GO_Biological_Process_2023").res2d
gp.dotplot(enr_up, figsize=(2, 3), title="Up", cmap=plt.cm.autumn_r);
enr_dw = gp.enrichr(degs_dw.names, gene_sets="GO_Biological_Process_2023").res2d
gp.dotplot(enr_dw, figsize=(2, 3), title="Down", cmap=plt.cm.winter_r);

Register analyzed dataset and annotate with metadataยถ

gRegister new features and labels (check out more details here):

new_features = ln.Feature.from_df(adata.obs)
ln.save(new_features)
new_labels = [ln.ULabel(name=i) for i in adata.obs["stim"].unique()]
ln.save(new_labels)
features = ln.Feature.lookup()

Register dataset using a Artifact object:

artifact = ln.Artifact.from_anndata(
    adata,
    description="seurat_ifnb_activated_Bcells",
)
artifact.save()
Artifact(updated_at=2024-05-20 08:35:36 UTC, uid='nE45kAZRkbKvoQSYijtB', suffix='.h5ad', accessor='AnnData', description='seurat_ifnb_activated_Bcells', size=214836309, hash='TfHU3BbnUjwev6xTCcOr0B', hash_type='sha1-fl', visibility=1, key_is_virtual=True, created_by_id=1, storage_id=1, transform_id=1, run_id=1)
artifact.features.add_from_anndata(
    var_field=bt.Gene.symbol,
    organism="human", # optionally, globally set organism via bt.settings.organism = "human"
)

Querying metadataยถ

artifact.describe()
Artifact(updated_at=2024-05-20 08:35:37 UTC, uid='nE45kAZRkbKvoQSYijtB', suffix='.h5ad', accessor='AnnData', description='seurat_ifnb_activated_Bcells', size=214836309, hash='TfHU3BbnUjwev6xTCcOr0B', hash_type='sha1-fl', visibility=1, key_is_virtual=True)

Provenance:
  ๐Ÿ“Ž created_by: User(uid='DzTjkKse', handle='testuser1', name='Test User1')
  ๐Ÿ“Ž storage: uid='VLmS2FZEykzO', root='/home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries', type='local', instance_uid='6l8lZsT2TN6X')
  ๐Ÿ“Ž transform: Transform(version='0', uid='hsPU1OENv0LS6K79', name='Standardize metadata on-the-fly', key='analysis-registries', type='notebook')
  ๐Ÿ“Ž run: Run(uid='etZ8zWfalDaPNZLAtAuX', started_at=2024-05-20 08:32:43 UTC, is_consecutive=True)
Features:
  var: FeatureSet(uid='0p7PewAZ30tWKxPvx8kL', n=11281, dtype='float', registry='bionty.Gene')
    'YWHAQ', 'DHX30', 'CHST7', 'AMPD3', 'AK5', 'RGL2', 'STAB1', 'ZNF394', 'SPTLC1', 'DOCK10', 'POLR3K', 'MDM4', 'MTBP', 'GANC', 'ELP6', 'TOP1MT', 'SNX3', 'ITM2A', 'CDC20', 'NDUFA11'
  obs: FeatureSet(uid='K7rwkUmpRS4VlKeFAbZB', n=2, registry='Feature')
    ๐Ÿ”— stim (2, cat[ULabel]): 'STIM', 'CTRL'
    ๐Ÿ”— cell_type_celltypist (2, cat[bionty.CellType]): 'effector memory CD8-positive, alpha-beta T cell', 'B cell', 'effector memory CD4-positive, alpha-beta T cell', 'hematopoietic multipotent progenitor cell', 'plasmacytoid dendritic cell', 'dendritic cell, human', 'macrophage', 'natural killer cell', 'classical monocyte', 'non-classical monocyte'
  STIM-up-DEGs: FeatureSet(uid='YBPUL2x8CDJUmTEqpmY8', name='Up-regulated DEGs STIM vs CTRL', n=660, dtype='category', registry='bionty.Gene')
    'PRKX', 'YWHAQ', 'SAP18', 'IFI27', 'TRAFD1', 'TAPBP', 'TMEM50A', 'TCF4', 'SNX3', 'TRIM5', 'GTF2E2', 'UBE2Z', 'RPL30', 'HLA-B', 'TTC39B', 'IRF7', 'CAPN2', 'UBE2F', 'CFLAR', 'BTG3'
  STIM-down-DEGs: FeatureSet(uid='P2C74EOHJolIG1qM6YfG', name='Down-regulated DEGs STIM vs CTRL', n=1095, dtype='category', registry='bionty.Gene')
    'TSC22D3', 'FKBP1A', 'TMED10', 'RPL8', 'NR5A1', 'SQSTM1', 'TNFRSF1B', 'DDX24', 'RPS16', 'TPST2', 'NACA', 'ITM2A', 'BLOC1S4', 'NDUFA11', 'SH3BGRL3', 'NMB', 'SLBP', 'GTF2A2', 'POLR2E', 'SORL1'
Labels:
  ๐Ÿ“Ž cell_types (13, bionty.CellType): 'effector memory CD8-positive, alpha-beta T cell', 'B cell', 'effector memory CD4-positive, alpha-beta T cell', 'hematopoietic multipotent progenitor cell', 'plasmacytoid dendritic cell', 'dendritic cell, human', 'macrophage', 'natural killer cell', 'classical monocyte', 'non-classical monocyte'
  ๐Ÿ“Ž ulabels (2, ULabel): 'STIM', 'CTRL'

Querying cell typesยถ

Querying for cell types contains โ€œB cellโ€ in the name:

bt.CellType.filter(name__contains="B cell").df().head()
created_at created_by_id run_id updated_at uid name ontology_id abbr synonyms description public_source_id
id
1 2024-05-20 08:31:55.259167+00:00 1 None 2024-05-20 08:32:35.621062+00:00 ryEtgi1y B cell CL:0000236 None B cells|Cycling B cells|B lymphocyte|B-cell|B-... A Lymphocyte Of B Lineage That Is Capable Of B... 21
2 2024-05-20 08:31:55.259428+00:00 1 None 2024-05-20 08:32:35.412528+00:00 2EhFTUoZ follicular B cell CL:0000843 None follicular B lymphocyte|Fo B cell|Follicular B... A Resting Mature B Cell That Has The Phenotype... 21
3 2024-05-20 08:31:55.259530+00:00 1 None 2024-05-20 08:32:35.449728+00:00 4IowPafD germinal center B cell CL:0000844 None germinal center B-cell|Proliferative germinal ... A Rapidly Cycling Mature B Cell That Has Disti... 21
4 2024-05-20 08:31:55.259627+00:00 1 None 2024-05-20 08:32:35.488196+00:00 2cUPBtY8 memory B cell CL:0000787 None memory B-lymphocyte|memory B-cell|Memory B cel... A Memory B Cell Is A Mature B Cell That Is Lon... 21
5 2024-05-20 08:31:55.259722+00:00 1 None 2024-05-20 08:32:35.507269+00:00 3jdCg7zi naive B cell CL:0000788 None naive B-cell|naive B-lymphocyte|naive B lympho... A Naive B Cell Is A Mature B Cell That Has The... 21

Querying for all artifacts annotated with a cell type:

celltypes = bt.CellType.lookup()
celltypes.plasmacytoid_dendritic_cell
CellType(updated_at=2024-05-20 08:32:28 UTC, uid='3JO0EdVd', name='plasmacytoid dendritic cell', ontology_id='CL:0000784', synonyms='type 2 DC|pDC|interferon-producing cell|IPC|T-associated plasma cell|plasmacytoid T cell|DC2|plasmacytoid monocyte|lymphoid dendritic cell', description='A Dendritic Cell Type Of Distinct Morphology, Localization, And Surface Marker Expression (Cd123-Positive) From Other Dendritic Cell Types And Associated With Early Stage Immune Responses, Particularly The Release Of Physiologically Abundant Amounts Of Type I Interferons In Response To Infection.', created_by_id=1, public_source_id=21)
ln.Artifact.filter(cell_types=celltypes.plasmacytoid_dendritic_cell).df()
version created_at created_by_id updated_at uid storage_id key suffix accessor description size hash hash_type n_objects n_observations transform_id run_id visibility key_is_virtual
id
1 None 2024-05-20 08:35:36.116731+00:00 1 2024-05-20 08:35:37.573935+00:00 nE45kAZRkbKvoQSYijtB 1 None .h5ad AnnData seurat_ifnb_activated_Bcells 214836309 TfHU3BbnUjwev6xTCcOr0B sha1-fl None None 1 1 1 True

Querying pathwaysยถ

Querying for pathways contains โ€œinterferon-betaโ€ in the name:

bt.Pathway.filter(name__contains="interferon-beta").df()
created_at created_by_id run_id updated_at uid name ontology_id abbr synonyms description public_source_id
id
684 2024-05-20 08:31:07.379270+00:00 1 None 2024-05-20 08:31:07.379295+00:00 1l4z0v8W cellular response to interferon-beta GO:0035458 None cellular response to fibroblast interferon|cel... Any Process That Results In A Change In State ... 48
2130 2024-05-20 08:31:07.536719+00:00 1 None 2024-05-20 08:31:07.536743+00:00 1NzHDJDi negative regulation of interferon-beta production GO:0032688 None down regulation of interferon-beta production|... Any Process That Stops, Prevents, Or Reduces T... 48
3127 2024-05-20 08:31:07.647891+00:00 1 None 2024-05-20 08:31:07.647915+00:00 3x0xmK1y positive regulation of interferon-beta production GO:0032728 None positive regulation of IFN-beta production|up-... Any Process That Activates Or Increases The Fr... 48
4334 2024-05-20 08:31:07.782987+00:00 1 None 2024-05-20 08:31:07.783013+00:00 54R2a0el regulation of interferon-beta production GO:0032648 None regulation of IFN-beta production Any Process That Modulates The Frequency, Rate... 48
4953 2024-05-20 08:31:07.851905+00:00 1 None 2024-05-20 08:31:07.851933+00:00 3VZq4dMe response to interferon-beta GO:0035456 None response to fiblaferon|response to fibroblast ... Any Process That Results In A Change In State ... 48

Query pathways from a gene:

bt.Pathway.filter(genes__symbol="KIR2DL1").df()
created_at created_by_id run_id updated_at uid name ontology_id abbr synonyms description public_source_id
id
1346 2024-05-20 08:31:07.450653+00:00 1 None 2024-05-20 08:31:07.450677+00:00 7S7qlEkG immune response-inhibiting cell surface recept... GO:0002767 None immune response-inhibiting cell surface recept... The Series Of Molecular Signals Initiated By A... 48

Query artifacts from a pathway:

ln.Artifact.filter(feature_sets__pathways__name__icontains="interferon-beta").first()
Artifact(updated_at=2024-05-20 08:35:37 UTC, uid='nE45kAZRkbKvoQSYijtB', suffix='.h5ad', accessor='AnnData', description='seurat_ifnb_activated_Bcells', size=214836309, hash='TfHU3BbnUjwev6xTCcOr0B', hash_type='sha1-fl', visibility=1, key_is_virtual=True, created_by_id=1, storage_id=1, transform_id=1, run_id=1)

Query featuresets from a pathway to learn from which geneset this pathway was computed:

pathway = bt.Pathway.filter(ontology_id="GO:0035456").one()
pathway
Pathway(updated_at=2024-05-20 08:31:07 UTC, uid='3VZq4dMe', name='response to interferon-beta', ontology_id='GO:0035456', synonyms='response to fiblaferon|response to fibroblast interferon|response to interferon beta', description='Any Process That Results In A Change In State Or Activity Of A Cell Or An Organism (In Terms Of Movement, Secretion, Enzyme Production, Gene Expression, Etc.) As A Result Of An Interferon-Beta Stimulus. Interferon-Beta Is A Type I Interferon.', created_by_id=1, public_source_id=48)
degs = ln.FeatureSet.filter(pathways__ontology_id=pathway.ontology_id).one()

Now we can get the list of genes that are differentially expressed and belong to this pathway:

contributing_genes = pathway.genes.all() & degs.genes.all()
contributing_genes.list("symbol")
['IFITM2',
 'CALM1',
 'IFITM3',
 'PNPT1',
 'MNDA',
 'BST2',
 'OAS1',
 'SHFL',
 'STAT1',
 'IFI16',
 'AIM2',
 'IRF1',
 'XAF1',
 'IFITM1',
 'PLSCR1']
# clean up test instance
!lamin delete --force use-cases-registries
!rm -r ./use-cases-registries
Hide code cell output
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.14/x64/bin/lamin", line 8, in <module>
    sys.exit(main())
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rich_click/rich_command.py", line 367, in __call__
    return super().__call__(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/rich_click/rich_command.py", line 152, in main
    rv = self.invoke(ctx)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/lamin_cli/__main__.py", line 103, in delete
    return delete(instance, force=force)
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/lamindb_setup/_delete.py", line 98, in delete
    n_objects = check_storage_is_empty(
  File "/opt/hostedtoolcache/Python/3.10.14/x64/lib/python3.10/site-packages/lamindb_setup/core/upath.py", line 760, in check_storage_is_empty
    raise InstanceNotEmpty(message)
lamindb_setup.core.upath.InstanceNotEmpty: Storage /home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries/.lamindb contains 1 objects ('_is_initialized' ignored) - delete them prior to deleting the instance
['/home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries/.lamindb/_is_initialized', '/home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries/.lamindb/nE45kAZRkbKvoQSYijtB.h5ad']