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.42.9 celltypist==1.6.2 gseapy==1.1.2 lamin_usecases==0.0.1 lamindb==0.70.4 matplotlib==3.8.4 scanpy==1.10.1
π‘ saved: Transform(uid='hsPU1OENv0LS6K79', name='Standardize metadata on-the-fly', key='analysis-registries', version='0', type='notebook', updated_at=2024-04-24 12:47:00 UTC, created_by_id=1)
π‘ saved: Run(uid='y3ul2V43uQPynrb27Ox0', 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 Γ 9938
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)
Analysis: cell type annotation using CellTypist#
model = celltypist.models.Model.load(model="Immune_All_Low.pkl")
Show 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: 46
π Storing models in /home/runner/.celltypist/data/models
πΎ Downloading model [1/46]: Immune_All_Low.pkl
πΎ Downloading model [2/46]: Immune_All_High.pkl
πΎ Downloading model [3/46]: Adult_CynomolgusMacaque_Hippocampus.pkl
πΎ Downloading model [4/46]: Adult_Human_PancreaticIslet.pkl
πΎ Downloading model [5/46]: Adult_Human_Skin.pkl
πΎ Downloading model [6/46]: Adult_Mouse_Gut.pkl
πΎ Downloading model [7/46]: Adult_Mouse_OlfactoryBulb.pkl
πΎ Downloading model [8/46]: Adult_Pig_Hippocampus.pkl
πΎ Downloading model [9/46]: Adult_RhesusMacaque_Hippocampus.pkl
πΎ Downloading model [10/46]: Autopsy_COVID19_Lung.pkl
πΎ Downloading model [11/46]: COVID19_HumanChallenge_Blood.pkl
πΎ Downloading model [12/46]: COVID19_Immune_Landscape.pkl
πΎ Downloading model [13/46]: Cells_Adult_Breast.pkl
πΎ Downloading model [14/46]: Cells_Fetal_Lung.pkl
πΎ Downloading model [15/46]: Cells_Human_Tonsil.pkl
πΎ Downloading model [16/46]: Cells_Intestinal_Tract.pkl
πΎ Downloading model [17/46]: Cells_Lung_Airway.pkl
πΎ Downloading model [18/46]: Developing_Human_Brain.pkl
πΎ Downloading model [19/46]: Developing_Human_Gonads.pkl
πΎ Downloading model [20/46]: Developing_Human_Hippocampus.pkl
πΎ Downloading model [21/46]: Developing_Human_Organs.pkl
πΎ Downloading model [22/46]: Developing_Human_Thymus.pkl
πΎ Downloading model [23/46]: Developing_Mouse_Brain.pkl
πΎ Downloading model [24/46]: Developing_Mouse_Hippocampus.pkl
πΎ Downloading model [25/46]: Fetal_Human_AdrenalGlands.pkl
πΎ Downloading model [26/46]: Fetal_Human_Pancreas.pkl
πΎ Downloading model [27/46]: Fetal_Human_Pituitary.pkl
πΎ Downloading model [28/46]: Fetal_Human_Retina.pkl
πΎ Downloading model [29/46]: Fetal_Human_Skin.pkl
πΎ Downloading model [30/46]: Healthy_Adult_Heart.pkl
πΎ Downloading model [31/46]: Healthy_COVID19_PBMC.pkl
πΎ Downloading model [32/46]: Healthy_Human_Liver.pkl
πΎ Downloading model [33/46]: Healthy_Mouse_Liver.pkl
πΎ Downloading model [34/46]: Human_AdultAged_Hippocampus.pkl
πΎ Downloading model [35/46]: Human_Developmental_Retina.pkl
πΎ Downloading model [36/46]: Human_Embryonic_YolkSac.pkl
πΎ Downloading model [37/46]: Human_IPF_Lung.pkl
πΎ Downloading model [38/46]: Human_Longitudinal_Hippocampus.pkl
πΎ Downloading model [39/46]: Human_Lung_Atlas.pkl
πΎ Downloading model [40/46]: Human_PF_Lung.pkl
πΎ Downloading model [41/46]: Lethal_COVID19_Lung.pkl
πΎ Downloading model [42/46]: Mouse_Dentate_Gyrus.pkl
πΎ Downloading model [43/46]: Mouse_Isocortex_Hippocampus.pkl
πΎ Downloading model [44/46]: Mouse_Postnatal_DentateGyrus.pkl
πΎ Downloading model [45/46]: Nuclei_Lung_Airway.pkl
πΎ Downloading model [46/46]: 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 9938 genes
π Matching reference genes in the model
𧬠3698 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!
bt.CellType.inspect(adata.obs["cell_type_celltypist"]);
β received 14 unique terms, 13985 empty/duplicated terms are ignored
β 14 terms (100.00%) are not validated for name: Intermediate macrophages, B cells, Tcm/Naive helper T cells, Tem/Effector helper T cells, Non-classical monocytes, Regulatory T cells, Tem/Trm cytotoxic T cells, Tcm/Naive cytotoxic T cells, NK cells, pDC, CD16+ NK cells, DC2, Classical monocytes, DC
detected 2 CellType terms in Bionty as synonyms: 'pDC', 'DC2'
β add records from Bionty to your CellType registry via .from_values()
couldn't validate 14 terms: 'Intermediate macrophages', 'Tcm/Naive helper T cells', 'B cells', 'pDC', 'Regulatory T cells', 'NK cells', 'Tem/Effector helper T cells', 'DC', 'Non-classical monocytes', 'DC2', 'Tem/Trm cytotoxic T cells', 'Classical monocytes', 'CD16+ NK cells', 'Tcm/Naive cytotoxic T cells'
β if you are sure, create new records via ln.CellType() and save to your registry
adata.obs["cell_type_celltypist"] = bt.CellType.standardize(
adata.obs["cell_type_celltypist"]
)
β found 2 synonyms in Bionty: ['pDC', 'DC2']
please add corresponding CellType records via `.from_values(['plasmacytoid dendritic cell'])`
# Register cell type of found synonym
bt.CellType.from_public(name='plasmacytoid dendritic cell').save()
β now recursing through parents: this only happens once, but is much slower than bulk saving
sc.pl.umap(
adata,
color=["cell_type_celltypist", "stim"],
frameon=False,
legend_fontsize=10,
wspace=0.4,
)
... storing 'cell_type_celltypist' as categorical
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.455124 | 7.132642 | 0.0 | 0.0 |
1 | ISG20 | 96.735374 | 5.074260 | 0.0 | 0.0 |
2 | IFI6 | 94.971039 | 5.828621 | 0.0 | 0.0 |
3 | IFIT3 | 92.481880 | 7.432333 | 0.0 | 0.0 |
4 | IFIT1 | 90.698692 | 8.053551 | 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#
Register 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.features.add_from_anndata(
var_field=bt.Gene.symbol,
organism="human", # optionally, globally set organism via bt.settings.organism = "human"
)
Link cell type labels#
cell_type_records = bt.CellType.from_values(adata.obs["cell_type_celltypist"])
artifact.labels.add(cell_type_records, features.cell_type_celltypist)
β did not create CellType records for 12 non-validated names: 'Intermediate macrophages', 'Tcm/Naive helper T cells', 'B cells', 'NK cells', 'DC', 'Regulatory T cells', 'Tcm/Naive cytotoxic T cells', 'Tem/Effector helper T cells', 'Tem/Trm cytotoxic T cells', 'Classical monocytes', 'CD16+ NK cells', 'Non-classical monocytes'
Link stimulation labels:
stim_records = ln.ULabel.from_values(adata.obs["stim"])
artifact.labels.add(stim_records, features.stim)
Link pathway labels#
Letβs enable tracking of the current notebook as the transform of this artifact:
We further create two feature sets for degs_up
and degs_dw
which we can later associate with the associated pathways:
degs_up_featureset = ln.FeatureSet.from_values(
degs_up.names,
bt.Gene.symbol,
name="Up-regulated DEGs STIM vs CTRL",
type="category",
organism=( # optionally, globally set organism via bt.settings.organism = "human"
"human"
),
)
degs_dw_featureset = ln.FeatureSet.from_values(
degs_dw.names,
bt.Gene.symbol,
name="Down-regulated DEGs STIM vs CTRL",
type="category",
organism=( # optionally, globally set organism via bt.settings.organism = "human"
"human"
),
)
# Link feature sets to artifact
artifact.features._add_feature_set(degs_up_featureset, slot="STIM-up-DEGs")
artifact.features._add_feature_set(degs_dw_featureset, slot="STIM-down-DEGs")
Link the top 10 pathways to the corresponding differentially expressed genes:
def parse_ontology_id_from_enrichr_results(key):
"""Parse out the ontology id.
"ATF6-mediated Unfolded Protein Response (GO:0036500)" -> ("GO:0036500", "ATF6-mediated Unfolded Protein Response")
"""
id = key.split(" ")[-1].replace("(", "").replace(")", "")
name = key.replace(f" ({id})", "")
return (id, name)
# get ontology ids for the top 10 pathways
enr_up_top10 = [
pw_id[0]
for pw_id in enr_up.head(10).Term.apply(parse_ontology_id_from_enrichr_results)
]
enr_dw_top10 = [
pw_id[0]
for pw_id in enr_dw.head(10).Term.apply(parse_ontology_id_from_enrichr_results)
]
# get pathway records
enr_up_top10_pathways = bt.Pathway.from_values(enr_up_top10, bt.Pathway.ontology_id)
enr_dw_top10_pathways = bt.Pathway.from_values(enr_dw_top10, bt.Pathway.ontology_id)
Associate the pathways to the differentially expressed genes:
degs_up_featureset.pathways.set(enr_up_top10_pathways)
degs_dw_featureset.pathways.set(enr_dw_top10_pathways)
degs_up_featureset.pathways.list("name")
['defense response to symbiont',
'response to type II interferon',
'defense response to virus',
'negative regulation of viral genome replication',
'cellular response to cytokine stimulus',
'positive regulation of cytokine production',
'response to interferon-beta',
'negative regulation of viral process',
'response to cytokine',
'regulation of viral genome replication']
Querying metadata#
artifact.describe()
Artifact(uid='HFYkcrc51YxV5w1bmM7u', suffix='.h5ad', accessor='AnnData', description='seurat_ifnb_activated_Bcells', size=214934328, hash='_OSlVvly0_yBCOnj0Xggr_', hash_type='sha1-fl', visibility=1, key_is_virtual=True, updated_at=2024-04-24 12:50:30 UTC)
Provenance:
π storage: Storage(uid='KYDJiJXP', root='/home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries', type='local')
π transform: Transform(uid='hsPU1OENv0LS6K79', name='Standardize metadata on-the-fly', key='analysis-registries', version='0', type='notebook')
π run: Run(uid='y3ul2V43uQPynrb27Ox0', started_at=2024-04-24 12:47:00 UTC, is_consecutive=True)
π created_by: User(uid='DzTjkKse', handle='testuser1', name='Test User1')
Features:
var: FeatureSet(uid='2jVwfvHz78xORkBkqeGS', n=11279, type='number', registry='bionty.Gene')
'UBE2F', 'IKZF3', 'GTF2A2', 'OARD1', 'CD68', 'AQP3', 'NCBP3', 'WAS', 'NQO1', 'SPOCK2', 'SLC9A1', 'MRTFA', 'CCAR2', 'CTPS2', 'CLCN1', 'SIRPB1', 'PIGS', 'NUBPL', 'HPS1', 'CD44', ...
obs: FeatureSet(uid='gLewV3AHMLsZB4mcOgoi', n=2, registry='core.Feature')
π stim (2, core.ULabel): 'CTRL', 'STIM'
π cell_type_celltypist (1, bionty.CellType): 'plasmacytoid dendritic cell'
STIM-up-DEGs: FeatureSet(uid='3gDUi7oKo0G617uyF3Jr', name='Up-regulated DEGs STIM vs CTRL', n=660, type='category', registry='bionty.Gene')
'UBE2F', 'TBC1D1', 'BATF2', 'GNAI3', 'CFLAR', 'APOBEC3G', 'GSDMD', 'IRF9', 'DHX58', 'DCP1A', 'UBE2B', 'CD53', 'ACSL1', 'CEBPD', 'LILRB2', 'PRR5', 'IFI35', 'RRBP1', 'NUCB1', 'NCF1', ...
STIM-down-DEGs: FeatureSet(uid='n3d5spzYctPESdBPo5ld', name='Down-regulated DEGs STIM vs CTRL', n=1095, type='category', registry='bionty.Gene')
'GTF2A2', 'RPL22', 'HNMT', 'PRELID1', 'EDF1', 'SON', 'SDF4', 'RAB11B', 'KIFC3', 'TUFM', 'WAS', 'PCBP2', 'RPL3', 'RPL26', 'RAB5C', 'RTF2', 'SIVA1', 'CYRIB', 'RPS20', 'PPIF', ...
Labels:
π cell_types (1, bionty.CellType): 'plasmacytoid dendritic cell'
π ulabels (2, core.ULabel): 'CTRL', 'STIM'
Querying cell types#
Querying for cell types contains βB cellβ in the name:
bt.CellType.filter(name__contains="B cell").df().head()
uid | name | ontology_id | abbr | synonyms | description | created_at | updated_at | public_source_id | created_by_id | |
---|---|---|---|---|---|---|---|---|---|---|
id |
Querying for all artifacts annotated with a cell type:
celltypes = bt.CellType.lookup()
celltypes.plasmacytoid_dendritic_cell
CellType(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.', updated_at=2024-04-24 12:50:08 UTC, public_source_id=21, created_by_id=1)
ln.Artifact.filter(cell_types=celltypes.plasmacytoid_dendritic_cell).df()
uid | storage_id | key | suffix | accessor | description | version | size | hash | hash_type | n_objects | n_observations | transform_id | run_id | visibility | key_is_virtual | created_at | updated_at | created_by_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | |||||||||||||||||||
1 | HFYkcrc51YxV5w1bmM7u | 1 | None | .h5ad | AnnData | seurat_ifnb_activated_Bcells | None | 214934328 | _OSlVvly0_yBCOnj0Xggr_ | sha1-fl | None | None | 1 | 1 | 1 | True | 2024-04-24 12:50:29.446405+00:00 | 2024-04-24 12:50:30.989900+00:00 | 1 |
Querying pathways#
Querying for pathways contains βinterferon-betaβ in the name:
bt.Pathway.filter(name__contains="interferon-beta").df()
uid | name | ontology_id | abbr | synonyms | description | public_source_id | created_at | updated_at | created_by_id | |
---|---|---|---|---|---|---|---|---|---|---|
id | ||||||||||
684 | 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 | 2024-04-24 12:46:23.746584+00:00 | 2024-04-24 12:46:23.746593+00:00 | 1 |
2130 | 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 | 2024-04-24 12:46:23.891875+00:00 | 2024-04-24 12:46:23.891884+00:00 | 1 |
3127 | 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 | 2024-04-24 12:46:23.993000+00:00 | 2024-04-24 12:46:23.993008+00:00 | 1 |
4334 | 54R2a0el | regulation of interferon-beta production | GO:0032648 | None | regulation of IFN-beta production | Any Process That Modulates The Frequency, Rate... | 48 | 2024-04-24 12:46:24.115680+00:00 | 2024-04-24 12:46:24.115695+00:00 | 1 |
4953 | 3VZq4dMe | response to interferon-beta | GO:0035456 | None | response to fiblaferon|response to fibroblast ... | Any Process That Results In A Change In State ... | 48 | 2024-04-24 12:46:24.180277+00:00 | 2024-04-24 12:46:24.180286+00:00 | 1 |
Query pathways from a gene:
bt.Pathway.filter(genes__symbol="KIR2DL1").df()
uid | name | ontology_id | abbr | synonyms | description | public_source_id | created_at | updated_at | created_by_id | |
---|---|---|---|---|---|---|---|---|---|---|
id | ||||||||||
1346 | 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 | 2024-04-24 12:46:23.813146+00:00 | 2024-04-24 12:46:23.813154+00:00 | 1 |
Query artifacts from a pathway:
ln.Artifact.filter(feature_sets__pathways__name__icontains="interferon-beta").first()
Artifact(uid='HFYkcrc51YxV5w1bmM7u', suffix='.h5ad', accessor='AnnData', description='seurat_ifnb_activated_Bcells', size=214934328, hash='_OSlVvly0_yBCOnj0Xggr_', hash_type='sha1-fl', visibility=1, key_is_virtual=True, updated_at=2024-04-24 12:50:30 UTC, storage_id=1, transform_id=1, run_id=1, created_by_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(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.', updated_at=2024-04-24 12:46:24 UTC, public_source_id=48, created_by_id=1)
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")
['IFI16',
'OAS1',
'BST2',
'PNPT1',
'XAF1',
'IRF1',
'IFITM3',
'SHFL',
'IFITM1',
'STAT1',
'CALM1',
'MNDA',
'IFITM2',
'AIM2',
'PLSCR1']
# clean up test instance
!lamin delete --force use-cases-registries
!rm -r ./use-cases-registries
Show 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/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 126, 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 130, 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 720, in check_storage_is_empty
raise InstanceNotEmpty(message)
lamindb_setup.core.upath.InstanceNotEmpty: Storage location contains 3 objects (2 ignored) - delete them prior to deleting the instance
['/home/runner/work/lamin-usecases/lamin-usecases/docs/use-cases-registries/.lamindb/HFYkcrc51YxV5w1bmM7u.h5ad', '/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/a11672980b71598ea3e9b60f109b4c76.lndb']