Census release 2024-07-01 (LTS)ΒΆ

import lamindb as ln
import bionty as bt
from cellxgene_lamin import get_datasets_from_cxg, get_collections_from_cxg

ln.settings.verbosity = "hint"
πŸ’‘ connected lamindb: laminlabs/cellxgene
census_version = "2024-07-01"
previous_release = "2023-12-15"
s3path = f"s3://cellxgene-data-public/cell-census/{census_version}/h5ads"
ln.UPath(s3path)
S3Path('s3://cellxgene-data-public/cell-census/2024-07-01/h5ads')
ln.UPath(s3path).view_tree()
0 sub-directories & 812 files with suffixes '.h5ad'
s3://cellxgene-data-public/cell-census/2024-07-01/h5ads
β”œβ”€β”€ 0041b9c3-6a49-4bf7-8514-9bc7190067a7.h5ad
β”œβ”€β”€ 00476f9f-ebc1-4b72-b541-32f912ce36ea.h5ad
β”œβ”€β”€ 00e5dedd-b9b7-43be-8c28-b0e5c6414a62.h5ad
β”œβ”€β”€ 00ff600e-6e2e-4d76-846f-0eec4f0ae417.h5ad
β”œβ”€β”€ 01209dce-3575-4bed-b1df-129f57fbc031.h5ad
β”œβ”€β”€ 0129dbd9-a7d3-4f6b-96b9-1da155a93748.h5ad
β”œβ”€β”€ 015c230d-650c-4527-870d-8a805849a382.h5ad
β”œβ”€β”€ 019c7af2-c827-4454-9970-44d5e39ce068.h5ad
β”œβ”€β”€ 01ad3cd7-3929-4654-84c0-6db05bd5fd59.h5ad
β”œβ”€β”€ 01c93cf6-b695-4e30-a26e-121ae8b16a9e.h5ad
β”œβ”€β”€ 02792605-4760-4023-82ad-40fc4458a5db.h5ad
β”œβ”€β”€ 03181d87-4769-41e7-8c39-d9a81835f0d2.h5ad
β”œβ”€β”€ 0325478a-9b52-45b5-b40a-2e2ab0d72eb1.h5ad
β”œβ”€β”€ 0374f03c-62e2-4859-8a14-acb00b0627d5.h5ad
β”œβ”€β”€ 0380ddce-c31b-422a-88fe-34a1945bd949.h5ad
β”œβ”€β”€ 03c0e874-f984-4e6c-9d2a-26ef8507dbbc.h5ad
β”œβ”€β”€ 03c544fb-a103-4d18-9230-eae9cfee3af2.h5ad
β”œβ”€β”€ 03d38670-1444-4001-bc53-9936e61d9b20.h5ad
β”œβ”€β”€ 03d5794d-cde9-4769-a1a9-b3899d2b1d87.h5ad
β”œβ”€β”€ 047d57f2-4d14-45de-aa98-336c6f583750.h5ad
β”œβ”€β”€ 04a23820-ffa8-4be5-9f65-64db15631d1e.h5ad
β”œβ”€β”€ 04b0eb97-d816-44bb-93a5-8b2968791aa0.h5ad
β”œβ”€β”€ 04c0bdd8-840f-488e-b72d-2a1229bc65db.h5ad
β”œβ”€β”€ 04c94a7d-1133-42c9-bb48-c697bd302a8d.h5ad
β”œβ”€β”€ 04d87de6-c20a-4186-8884-f47dba20b0a4.h5ad
β”œβ”€β”€ 055ca631-6ffb-40de-815e-b931e10718c0.h5ad
β”œβ”€β”€ 05e6f6e3-0473-4b85-9f94-bcc5f1b5e04b.h5ad
β”œβ”€β”€ 066943a2-fdac-4b29-b348-40cede398e4e.h5ad
β”œβ”€β”€ 06b91002-4d3d-4d2e-8484-20c3b31e232c.h5ad
β”œβ”€β”€ 06ef6b36-6c9b-4e10-8a94-d0baf274276e.h5ad
β”œβ”€β”€ 07428d73-fdea-4bd4-a801-94b00c4d961c.h5ad
β”œβ”€β”€ 07760522-707a-4a1c-8891-dbd1226d6b27.h5ad
β”œβ”€β”€ 07854d9c-5375-4a9b-ac34-fa919d3c3686.h5ad
β”œβ”€β”€ 07a4e406-3a76-47a3-a21c-a28d7ce7984a.h5ad
β”œβ”€β”€ 07b1d7c8-5c2e-42f7-9246-26f746cd6013.h5ad
β”œβ”€β”€ 07f14e26-ff0d-43c4-bfe3-bf1a94dc73c3.h5ad
β”œβ”€β”€ 08073b32-d389-41f4-a4fd-616de76915ab.h5ad
β”œβ”€β”€ 0895c838-e550-48a3-a777-dbcd35d30272.h5ad
β”œβ”€β”€ 090da8ea-46e8-40df-bffc-1f78e1538d27.h5ad
β”œβ”€β”€ 093d3bfe-6f0f-4ac0-a7a1-829f94d0a49f.h5ad
β”œβ”€β”€ 095940cb-7422-4510-96e2-cbafd961eb88.h5ad
β”œβ”€β”€ 0a21f80c-e7a3-465b-8aba-fdda2b4c36bc.h5ad
β”œβ”€β”€ 0b4a15a7-4e9e-4555-9733-2423e5c66469.h5ad
β”œβ”€β”€ 0b75c598-0893-4216-afe8-5414cab7739d.h5ad
β”œβ”€β”€ 0ba16f4b-cb87-4fa3-9363-19fc51eec6e7.h5ad
β”œβ”€β”€ 0ba636a1-4754-4786-a8be-7ab3cf760fd6.h5ad
β”œβ”€β”€ 0bc7235a-ae5a-479d-a487-510435377e55.h5ad
β”œβ”€β”€ 0bcda669-c2ab-484f-a87f-4e21f7a5bcab.h5ad
β”œβ”€β”€ 0bce33ed-455c-4e12-93f8-b7b04a2de4a1.h5ad
β”œβ”€β”€ 0bd1a1de-3aee-40e0-b2ec-86c7a30c7149.h5ad
β”œβ”€β”€ 0c86f0de-ddcb-454c-b00b-37feb69e7da1.h5ad
β”œβ”€β”€ 0c9a8cfb-6649-4d52-b418-6d8e56bd7afe.h5ad
β”œβ”€β”€ 0ced5e76-6040-47ff-8a72-93847965afc0.h5ad
β”œβ”€β”€ 0d2ee4ac-05ee-40b2-afb6-ebb584caa867.h5ad
β”œβ”€β”€ 0d7f4c06-a6bd-47d2-a42b-3a7196704f77.h5ad
β”œβ”€β”€ 0e9d47fb-89b1-42d8-b426-2c7630b5f5fa.h5ad
β”œβ”€β”€ 0eccaf0c-19d2-4900-9962-899378adf8be.h5ad
β”œβ”€β”€ 0ed60482-a34f-4268-b576-d69cc30210f6.h5ad
β”œβ”€β”€ 0ee5ae70-c3f5-473f-bd1c-287f4690ffc5.h5ad
β”œβ”€β”€ 0f4865d5-8000-4f68-8ac7-f5efea9e5e70.h5ad
β”œβ”€β”€ 0fb7916e-7a68-4a4c-a441-3ab3989f29a7.h5ad
β”œβ”€β”€ 0fdb6122-4600-40f0-a703-2da47cc7080d.h5ad
β”œβ”€β”€ 1009f384-b12d-448e-ba9f-1b7d2ecfbb4e.h5ad
β”œβ”€β”€ 100c6145-7b0e-4ba6-81c1-ffebed0d1ac4.h5ad
β”œβ”€β”€ 105c7dad-0468-4628-a5be-2bb42c6a8ae4.h5ad
β”œβ”€β”€ 1062c0f2-2a44-4cf9-a7c8-b5ed58b4728d.h5ad
β”œβ”€β”€ 1185a7d3-a9c1-4280-9ba5-d61895b15cac.h5ad
β”œβ”€β”€ 1196334f-a441-474a-95ee-400780941690.h5ad
β”œβ”€β”€ 11a3244a-6b2f-43ca-95a5-d2cd95c482d2.h5ad
β”œβ”€β”€ 11ef37ee-2173-458e-aab8-7fe35da8e47b.h5ad
β”œβ”€β”€ 11ff73e8-d3e4-4445-9309-477a2c5be6f6.h5ad
β”œβ”€β”€ 12194ced-8086-458e-84a8-e2ab935d8db1.h5ad
β”œβ”€β”€ 124744b8-4681-474a-9894-683896122708.h5ad
β”œβ”€β”€ 1252c5fb-945f-42d6-b1a8-8a3bd864384b.h5ad
β”œβ”€β”€ 12967895-3d58-4e93-be2c-4e1bcf4388d5.h5ad
β”œβ”€β”€ 1304e107-0f06-4d33-b634-d95ed986d02b.h5ad
β”œβ”€β”€ 138423b0-4fde-47d2-acac-c2de8082a152.h5ad
β”œβ”€β”€ 1398f3a9-b48b-431a-a5f2-d4a1931c4b45.h5ad
β”œβ”€β”€ 13b61a7d-5605-4948-ba48-02c588960143.h5ad
β”œβ”€β”€ 14363b6e-3428-45b0-8704-10fd5d6316df.h5ad
β”œβ”€β”€ 146216e1-ec30-4fee-a1fb-25defe801e2d.h5ad
β”œβ”€β”€ 1492eb6b-7d50-4c4d-94ac-c801a7d5555c.h5ad
β”œβ”€β”€ 170ce19f-7a2f-4926-a1cc-adcad99e7474.h5ad
β”œβ”€β”€ 182f6a56-7360-4924-a74e-1772e07b3031.h5ad
β”œβ”€β”€ 18500fcd-9960-49cb-8a8e-7d868dc14efe.h5ad
β”œβ”€β”€ 1873a18a-66fd-4a4d-8277-a872c93f5b59.h5ad
β”œβ”€β”€ 18e2a8c5-33f7-455e-a58a-b2ba6921db27.h5ad
β”œβ”€β”€ 18eb630b-a754-4111-8cd4-c24ec80aa5ec.h5ad
β”œβ”€β”€ 19b21f40-db42-4a71-a0d6-913e83b17784.h5ad
β”œβ”€β”€ 19e46756-9100-4e01-8b0e-23b557558a4c.h5ad
β”œβ”€β”€ 1a018108-b4b6-457b-ba15-046d5e98c169.h5ad
β”œβ”€β”€ 1a0610d8-1339-479b-b261-7fb586c3dab9.h5ad
β”œβ”€β”€ 1a2e3350-28a8-4f49-b33c-5b67ceb001f6.h5ad
β”œβ”€β”€ 1a38e762-2465-418f-b81c-6a4bce261c34.h5ad
β”œβ”€β”€ 1a434263-2aa5-4fd9-a1f3-1c4a2a8fb771.h5ad
β”œβ”€β”€ 1a7e99fe-d5b6-44d7-aa50-c6ef6ab29761.h5ad
β”œβ”€β”€ 1b767f95-d0a0-4a3d-b394-cc665d86c3dc.h5ad
β”œβ”€β”€ 1b9d8702-5af8-4142-85ed-020eb06ec4f6.h5ad
β”œβ”€β”€ 1c05b7ae-4dfb-4c1b-a441-4b23c04b169e.h5ad
...
ln.settings.transform.stem_uid = "MIbO3QeJERcy"
ln.settings.transform.version = "1"
ln.track()
πŸ’‘ notebook imports: bionty==0.43.1 cellxgene_lamin==0.0.1 lamindb==0.74.1
πŸ’‘ loaded: Transform(uid='MIbO3QeJERcy5zKv', version='1', name='Census release 2024-07-01 (LTS)', key='cencus-release-2024-07-01-LTS', type='notebook', created_by_id=1, updated_at='2024-07-16 12:49:15 UTC')
πŸ’‘ loaded: Run(uid='1QV6wwhlHfLi2vMjjfOg', started_at='2024-07-16 12:49:41 UTC', finished_at='2024-07-16 12:26:21 UTC', is_consecutive=False, transform_id=22, created_by_id=1, environment_id=3663)
πŸ’‘ tracked pip freeze > /Users/sunnysun/Library/Caches/lamindb/run_env_pip_1QV6wwhlHfLi2vMjjfOg.txt
Run(uid='1QV6wwhlHfLi2vMjjfOg', started_at='2024-07-16 12:49:41 UTC', finished_at='2024-07-16 12:26:21 UTC', is_consecutive=True, transform_id=22, created_by_id=1, environment_id=3663)

Get all datasets and associated metadata using cellxgene REST API:

cxg_datasets = get_datasets_from_cxg()
len(cxg_datasets)
1387
cxg_datasets[0].keys()
dict_keys(['assay', 'assets', 'cell_count', 'cell_type', 'citation', 'collection_doi', 'collection_doi_label', 'collection_id', 'collection_name', 'collection_version_id', 'dataset_id', 'dataset_version_id', 'development_stage', 'disease', 'donor_id', 'explorer_url', 'is_primary_data', 'mean_genes_per_cell', 'organism', 'primary_cell_count', 'processing_status', 'published_at', 'revised_at', 'revision_of_collection', 'revision_of_dataset', 'schema_version', 'self_reported_ethnicity', 'sex', 'spatial', 'suspension_type', 'tissue', 'title', 'tombstone', 'visibility', 'x_approximate_distribution'])

Register artifactsΒΆ

artifacts = ln.Artifact.from_dir(s3path)
ln.save(artifacts)
❗ this creates one artifact per file in the directory - you might simply call ln.Artifact(dir) to get one artifact for the entire directory
βœ… created 812 artifacts from directory using storage s3://cellxgene-data-public and key = cell-census/2024-07-01/h5ads/
artifacts = ln.Artifact.filter(key__contains=census_version).all()
len(artifacts)
812
artifacts.update(version=census_version)
812
for cxg_dataset in cxg_datasets:
    artifact = artifacts.filter(key__contains=cxg_dataset["dataset_id"]).one_or_none()
    if artifact is not None:
        artifact.n_observations = cxg_dataset["cell_count"]
        artifact.description = cxg_dataset["title"]
        artifact.save()
artifacts_previous = ln.Artifact.filter(version=previous_release).all()
artifacts_previous.count()
1113
for artifact in artifacts:
    dataset_id = artifact.key.split("/")[-1]
    artifact_previous = artifacts_previous.filter(
        key__endswith=dataset_id
    ).one_or_none()
    if artifact_previous is not None:
        artifact.add_to_version_family(artifact_previous, version=census_version)
Hide code cell output
βœ… updated uid from nn6TnXRLrNxmIJxnTDdI to 1BNWhcCqu1CMSJaHxpbn!
βœ… updated uid from JUBxgv0Pw736sNmVp9gH to aJTH55LW2CTIWu306YiY!
βœ… updated uid from x96cOk7U5eADHi8gcVfA to W24OA3PL0R9an0aRh8pO!
βœ… updated uid from Oev7zCb5t7dUdLdnJoSs to RCzyhZz9tfi6YI4F7mxb!
βœ… updated uid from FLYal0M4A1luNziYiKmy to pnQX4jvkj3eFWGOzDxbW!
βœ… updated uid from EvZB0pSIGheW4jOxkREw to xT6KRWIcByIyORlog2cs!
βœ… updated uid from IQgexx9anx4MPeQ23dCE to 24jpTvAM7ipZe2mvty5W!
βœ… updated uid from xsEcZ5nZ2JW02zhky4MR to cs5xflc9TR0nrgpHmT4L!
βœ… updated uid from aD7NwWpeQwiRGTIlCRxz to 1pGy4sJuik81S3TndIbn!
βœ… updated uid from fW1furkWQaE5c9GiE5PT to yBqxA1OBSSwMps0364FK!
βœ… updated uid from i3jVb2IrzD4V2wlBhbG6 to TUAbAHaYd7pc87WBfhIp!
βœ… updated uid from VqkvkTAYHh7UiZijDQ4U to 2bF2gDSwbNbDsFVg2KQf!
βœ… updated uid from sEYmR0qQr7X2bJ8vr0OQ to YkFIVbopZvYXDbumEP7X!
βœ… updated uid from 542v8x5p4D4leIVor6Ol to c2gVUmJmbgOyxTcqkMSZ!
βœ… updated uid from Wv7Ds897C0rOtBuc9WYZ to 7avWWWLuB6eQM93Bf5HX!
βœ… updated uid from ctbft25xp9KKg1cdmiGr to m28Or4k5VabbwTlE5cIx!
βœ… updated uid from C1pNC6V0xH8zYzbn2dBC to feQ9jQCfTcPqKdOaOTTg!
βœ… updated uid from 3Ovtu7j967qdxzCy3m1l to TKwoZqdBthiTwP4ZYjI5!
βœ… updated uid from kX9KW8y31IeVBDeoJSKw to C7KKerpUwrbqBadAFk6k!
βœ… updated uid from E79CIYKHv4bLgoYuxCU5 to h7Wca5cPlpeXldBuGqI0!
βœ… updated uid from C4wpYWi7NwVhsMfV9UYR to n33nFE2kXSNzNhIAa28w!
βœ… updated uid from N3KABm7eGLXd48z9xiAe to 2e905pEdUqkD4mklyfgB!
βœ… updated uid from CQpOasIPlRsBDPX6VEVF to LzxrOu6zhuFHwWUD88K8!
βœ… updated uid from u7Mv6JnPL7Nj7RHuysQs to R6l3kNLRtVnJpx9nnGW7!
βœ… updated uid from WNcT5yKFSS5tpU8jmk0h to V0tqrgE1z1NY2eUUnH4q!
βœ… updated uid from yYatQSe4UFzrZLRCqdG1 to 3373uv5BK17LRRw51be0!
βœ… updated uid from Z6VY2N2NFawJGDTbsXPX to dEP0dZ8UxLgwnkLjr5qo!
βœ… updated uid from zUIUgsTVEc88g6QWObcP to jS876jSjLQT4GrfWVbQU!
βœ… updated uid from qUoH18dKtD7icdK7fvXF to PurwAg9jY6bOyYEWIEP8!
βœ… updated uid from OKTQCIhwwAxFcW8h2MOK to fOwWLm8148joYT59j5lo!
βœ… updated uid from cacFiE1yWGvZp8d3EOSh to YCryquAx1tGdiU0aX57j!
βœ… updated uid from qEF4g0WXn1LajVzIgcRc to vgm2tlcvVpFBEWCtq4ag!
βœ… updated uid from q26x9ZJ7vnZ8kegKmsJN to CABtggF9aAxK3sc7a2EF!
βœ… updated uid from BpZs0jTtfl42wBvM0Oko to voNLGmLepudw1jkFBIox!
βœ… updated uid from W36FdJfd4nGy4Yj6i61F to Sxvk2M4zZCarn5PuAwd9!
βœ… updated uid from JJZnoaNzByXREB7AmDud to THcjhEfgJXoikr35hicd!
βœ… updated uid from uMqhOCkjyILexKIGYja3 to uNwtPV8FbEiy1L5TI0Im!
βœ… updated uid from l54wmuC3jVNTijqpMLo4 to HZtxUszJoQ9yBPUwvutx!
βœ… updated uid from PagEp3fM5oWpzSZzVFj4 to F9rOMRMmMBhxmtbNHyrK!
βœ… updated uid from TR4IwpaboXiJFsH81GGT to vOsBDoqtMFPl3JcmzUUt!
βœ… updated uid from gNnin71e7aKCNTXADG2A to 0pPePAhfgf1sp5YYkBP2!
βœ… updated uid from HmaOvV5UJn5ICXiV1o6H to ZsbQWmQGRWADFdhqGdZP!
βœ… updated uid from etHuD4HrmU2odtPGODeY to 7xkqYdCxhmLutVd5oZr2!
βœ… updated uid from dRobBNfmpoJBIvmTWx49 to 1le1JAlTYEAIlvSDUpAu!
βœ… updated uid from MLoT7H3Sp9iaG5fjQHXF to upR31puIm5bp3AC7mlrt!
βœ… updated uid from 7urnmYRwlYOHPmz6jFCL to vCaxx7zZMDSk9PGjBhiK!
βœ… updated uid from 9AGXgcfeCBmxf5fDN18T to WPlYxjg0AJXeBmDabfqX!
βœ… updated uid from CYc5t0LdhszvpCBelfXJ to FsYqhy1l4qy7cYJSJ3JM!
βœ… updated uid from wzYLMBJXMKpd0CNRLsFY to rJKXcQ63FFi2SVVC9IKk!
βœ… updated uid from xdVdDGctpuKcA6TzI2gL to SFmTFMi3DdJhIhZp66bg!
βœ… updated uid from 0ASDnQpgxiEQAQEEshJr to hXOb0X5pmYGXjpqdDJkk!
βœ… updated uid from vr5d08h2dGFaxaWgjaUF to on4IoXjPCWcLCoHMnLR3!
βœ… updated uid from BcFfWmMOPIO9WcKRrhZL to 3A8lrrjfKWmH5AHSG7j9!
βœ… updated uid from V5XHTW7sKW7CW1QcGYUt to Pt2KR2uvWqr9Ywnwf6lf!
βœ… updated uid from 0BakldVVtuEukA8NuBrs to 5O8phHYznOGzv6pZpJXe!
βœ… updated uid from IDZhDj9FVyaybVwm4WDL to upEnDjoOBrNfXf5wVKNL!
βœ… updated uid from Cg8VJTAjDpMaS8gUPE0R to pET6MI2iNQFwWgRDmvII!
βœ… updated uid from k7x8Y9Y8y6AM9zGAMhJA to 5dunx6wTeIOGD1itXO8W!
βœ… updated uid from Yx7px1bRQsTkYiUkxaqr to YCAHUBGcICn4Fwsqg3ss!
βœ… updated uid from c2YaGNct8RQnETg6iUBj to OCTLjPX0svrJTpCTYPxw!
βœ… updated uid from bEwwDBHpShWlKih0OQ2v to R4ZHoQegxXdSFNFYMaIP!
βœ… updated uid from p0jsI2ic9RKW1xcQQk7V to K72BdDYN4qcG1mOlG00s!
βœ… updated uid from b4Dtb0MFo3BZC0RwGERw to HqQx5PAULfU7V0iRI1D9!
βœ… updated uid from gpcJ75yB87LQGdoc9EpN to s7nff3V7TPSeFtpMjnHx!
βœ… updated uid from zznGHRN04kkUh5aZFRHy to qA6JWwBI3uNVjUqXBlGF!
βœ… updated uid from stYGVXCKTZTBdFag3Jne to 23zN4qyB6ZAvETudO1D5!
βœ… updated uid from YhAZcYBinyS3geZ08dCe to AifmQJg3o0LppBpNtoSS!
βœ… updated uid from Mfk08to2MbOTZsSwDORJ to 3nbhZ3GH3pKmT8aPWZYQ!
βœ… updated uid from Mx8SuhNlXG5AlElDVdN2 to AmnU2DMsVcP9jvWkg0d2!
βœ… updated uid from 0Psz0QYCEXC3tK4O4ZOF to tXuyRMDbSYy731XRwK9U!
βœ… updated uid from KGxHwnFNkky024nzYgHi to q1pdkWTstZrhLHwssZcS!
βœ… updated uid from qowZqko9wN4cMr6POxUN to RqB06HPJWUcoX57OaYcS!
βœ… updated uid from MwIWQ1JxNABQFEbK1MWb to ebzAixUDLHhz8c2xD64g!
βœ… updated uid from DtizO4cYXAMSBuMdYzNx to pMszg0eKbyGXF0BoeUjJ!
βœ… updated uid from 6E6WL2TR9pyTF5jciMYw to T56N3QOzdv0LCDQXdx4s!
βœ… updated uid from HeN95yrcE4aZr1of2611 to 7j8DEpELneDHzU43B5hw!
βœ… updated uid from S37d1Sd9ZftFBQJBmaXK to gghCu0RoR5JsgW7CVb0M!
βœ… updated uid from qDqHbiztDuxZGLhSvfb4 to uf7uKaLtRAa7NfCz6ZJO!
βœ… updated uid from xgimczw9fDkRLXwmwipI to 9hp8YDdwZTg6x2SDKIke!
βœ… updated uid from BqOaLD8BdxOQg4gU3dCn to ArlM69uqtaMF30gVLZ2a!
βœ… updated uid from BxK8pBZG5kI6k1h4R316 to 9iY5bdSjYnWmrFntXEld!
βœ… updated uid from XKQE2SUOXsWZzTqxedGe to h8wzc2NfxIWyGIAD346V!
βœ… updated uid from mWDBBNlFwmMcyRCguYeV to 3Y2hJugseERRsoLUU6sR!
βœ… updated uid from LiV9lCFSgKm6TurzaN4A to paDb2i9vvjnwbyHWBy2W!
βœ… updated uid from 1MTSzNngghtkXcZwgqEs to vUdR0XLzU945oDGeLWFm!
βœ… updated uid from 3CFjzdkiMlJTPdG12vXm to Vs3BpES2xk0guildZ7g6!
βœ… updated uid from tk55JffSKx5LJLUJUsPJ to m4WzzGM8l0fYfJghsGed!
βœ… updated uid from HujbH61cLyWHTashFQSn to HDQxdRUajBgugrFgVtpZ!
βœ… updated uid from Xf1e1RJwjqM8I4id00BV to XFMEZTWoIZ5hGxiS8uVU!
βœ… updated uid from IZ2mCf4Mbn6H3momn94C to usSFyvyTQFKySuScCH2K!
βœ… updated uid from SvekeYiVAmCR26XIoQq7 to X4OyQqMyC4fXjMGKENdB!
βœ… updated uid from GjnAaxtKnj4SEp92SSCp to 7wTYH0khROV3KRp8ztEk!
βœ… updated uid from YXWgyVIAPxMNUd8liReT to urgBvoKtd5Lybv0NSe8C!
βœ… updated uid from A3cgMTOsyndZDohX4Vdj to wjZn90qJ6ttKp3UBCQnU!
βœ… updated uid from 7ZFv2w6oFqe4tSPYqYen to QpLAXjwHM6NaIjRuJbOV!
βœ… updated uid from iUCo5Xc5YL2veXKwmkHB to gIzz0ibIImsZZbb64Vqs!
βœ… updated uid from nSM6lk48ifPDMYOkcHfi to TKzywJw8vc9r2IpM3CBu!
βœ… updated uid from 7pWapfcg1TXhCOReftZA to LO6WOiti7jnycOg4clBp!
βœ… updated uid from VruzdUsj4uVlnyjdzYkY to SUlKWKIEpKMiy3GJpLR3!
βœ… updated uid from tq8neRA5CltlhxERA8FN to rqnQa5vEpy6cwCH6pk3M!
βœ… updated uid from lRceMzW57gMEmGkNz8Mv to d2zjqLtgkTFODH8VB2Ms!
βœ… updated uid from 9ESoj6ktnzf1w2tRSlzq to lFgxsIQyeSBmR3NfkMxt!
βœ… updated uid from 6SIUk0OJWbq2Xi1uXpoc to MsOKeQl9gpOYy90InUH0!
βœ… updated uid from esQxlIfTuLDTJxzSusl5 to MKdtJ7wdzfIaEJGyfMLy!
βœ… updated uid from jry1P3XhFMcEgA92xUbX to 67LLgp5Y4ubtsUPfpK2g!
βœ… updated uid from ZAKV9QuO5LFK662A81gc to zfc9YcMPpCX8G5vJhQnb!
βœ… updated uid from IUcqIJalz5sBFBx692rG to WXgxQnuAebAyqObhUOBH!
βœ… updated uid from l4lhZm7mKEG9C9ttFGyk to NmmzMx9qbjBNGQMyyqGV!
βœ… updated uid from Ej7fD7ZkcDIdXXVsa6kp to 1d5xD081yyKI65tLuhYr!
βœ… updated uid from zzBu7Vl0SMWQjK8Ba9W4 to JSGrsBJpAgQNBPk7DPMw!
βœ… updated uid from AXhvjfvS2kyas1Iod3UC to iAZPSOBKLpaK7lqy3kVe!
βœ… updated uid from CVJpypj8LCxt9JRqW1dc to fBtvEjIhqfEtGCFuyOVz!
βœ… updated uid from mI8Vx0xMOUBbn5zwGMpo to 5n7E7muno1fQDXozcyB2!
βœ… updated uid from Cnx9rks5JJ1EKmbUGMRD to JBjSu79Lhhw8yye8RCsY!
βœ… updated uid from BH5PAnA58Dl1X7ve2Iip to 3t6pynYLQjTbBDpC3L5o!
βœ… updated uid from cfMcdxPr1ruyZt9a6rIl to c1Nb4Opl4d0JWEqMldlb!
βœ… updated uid from qUYJDAfm0Z5YsmWUEJlv to qsa3GuATZjqaQGdDbTS7!
βœ… updated uid from RsXjRpHyIwQv2zcEJB2z to NP8LNBRrqAyWglohzVm0!
βœ… updated uid from 06hq9eudiEDxrBYwCxUf to iIEHpul5RhH6VpPieQkW!
βœ… updated uid from QF4NsnxVtnij6NP64Ilj to olfCW3fJx5o9RpvNYfug!
βœ… updated uid from zZigQVKMqSAIPkxKsVej to XMY55ElXAS3JzMko5KqY!
βœ… updated uid from i09UtHNba4PdxTSc4veG to T3kjoG0j8Sfmyx7JZ2df!
βœ… updated uid from 5EhT0Gb8Ro0hb9ngpYS3 to SHV11AEetZOms4Whac16!
βœ… updated uid from o2yQmG3WFW1dQAMNQ1EY to 79xgB6ceuX6RfGwYsjz1!
βœ… updated uid from JMPcXaIGo7X59z93Iwta to Db2slWFdbTWkZKqEtOL4!
βœ… updated uid from xhvqD8mZ1K5R9kulj4Gw to 0WPZA1PLpOS2aQ4Wny5A!
βœ… updated uid from 5bxd74bCfzePTm8SG75k to l3uBVNC3SshUUpANvJwH!
βœ… updated uid from tSShio2aviwlfw43RoEJ to 3Zgd7VK3gwBKdFBh9U3R!
βœ… updated uid from pYKAiGqGCzOFVl98F37I to iCP76GdiIdv0Yb49PH8O!
βœ… updated uid from w2DdpjUSVGVl50ZZ2ima to qWct0RterDRXkBXAMp92!
βœ… updated uid from NG33fe1CB0gSeOdbNtBQ to i2lSvLRNxHW6fKHko5PX!
βœ… updated uid from PRob7BIX9WjL2vc6HmXo to hi1KW2skkjleuoYXKinP!
βœ… updated uid from d5rSFabPCYXY33O5h0ED to hn0MbdTz2ZitmN5K6W2s!
βœ… updated uid from Jngrmj0dkn6lGin6FAOp to GcVBvpW5MYlrsH1izOjN!
βœ… updated uid from ipxubMBwuYMSg7z8vhG2 to K3hcTKE7wG2ou1yhRFYY!
βœ… updated uid from 7C5RC0QUBllK1rovMrf2 to mLHsQqAEkPRuYKoFs03c!
βœ… updated uid from j5uni6Zn5gKQYgUn8U42 to mImhScwKXSOfMkOlAXCN!
βœ… updated uid from Ly7oxpbBBLoYCd8jEKSx to ZJ7mY9phkW5jgWkWaM2d!
βœ… updated uid from WcDOXihtS5AHRpdUKP5X to QLRrWNrxIYVnNENvTqiX!
βœ… updated uid from l44DVXGQmveLEMNdgTBl to qCqzcgqxdHklK2mAtdXJ!
βœ… updated uid from 1knr3iG6CK9dvnnaJBN0 to 781jxq9bIKwhGtgyPoeZ!
βœ… updated uid from RwisFblQaiVsiLW3X3EY to ea9WOqFR6K9fT2tK9Pzy!
βœ… updated uid from 11LD2Ve4VbgmH53M7WDi to OL1RnDNsC4032LPunJ2k!
βœ… updated uid from LvpUyV0jZE4Xy16C8xhG to ubrY2slK4QErNBLrA9vl!
βœ… updated uid from KBhvmwHz4GnsjN3rWd05 to AtL7zQWRrR3NZwjNBEg3!
βœ… updated uid from 2rVhMwObd1eZ8PVjhJ6L to USUgRVwrCMquHiImnB9A!
βœ… updated uid from g3Jd3IzuZ2udKt2V9Xc3 to WwmBIhBNLTlRcSoBDt76!
βœ… updated uid from FeQpF8JJhlX4i4aFXajV to RVBzwu3xTxhTteiTzbAu!
βœ… updated uid from BgTiT25spA8u7VRkLJYU to SBv1h9H3qMK9o46zhYoY!
βœ… updated uid from m0596gxCEgwhqMofjPVQ to Nl5QNcPU7t2HF9ecyj0i!
βœ… updated uid from DyTcg81fY56bxIcP5B4E to 39wjVmVnzsqkXmXBHSFW!
βœ… updated uid from xAi24FbZxazBzeAffKVS to 2RBKRoyJiKdKn903fH75!
βœ… updated uid from FdWIoQQ1qZEOeg7EUznY to DHyEaFQpiavZ9e3h9DgA!
βœ… updated uid from RoGlsH46IZb9GPvjFcEu to v1FHCR5YTmuS0iPY1MPj!
βœ… updated uid from vIVoTgN8QxdQERqFRbpG to EWpZNwV8VVRmqMDsaN0H!
βœ… updated uid from KdlJQ3xlqwM5VY6KyOsX to pLQxlcWMDusZbAT9bp44!
βœ… updated uid from 80i7lU759lPfCEhc4J5P to 2F7WO5OcDQIFmDJtLM1i!
βœ… updated uid from 8F5zlMDwVhoPB1cO9rVp to ADirQbyrGFOcERnz3jSL!
βœ… updated uid from 6JvLp8VUre0gUVWoUEpg to cuPJVE17Q06v2eoxiYG7!
βœ… updated uid from prFXExYYIxRbUR7tzkHL to weRKEj2UwQ2R95nDpjPs!
βœ… updated uid from 358oFiSjMeZJLMad1Yhp to WhZRzFQFCAPgkhLdZD1U!
βœ… updated uid from 756LrJ7Zd2KhkGnF9ul4 to vY9WYsSWq1e8M41MHhXp!
βœ… updated uid from W8RQz9SDRVh3A0OfZL4k to TN1F0WcfkLVg24uKe4La!
βœ… updated uid from 8QWbuUDBB43WNhO5GMzc to EeIovm6enXfWkX0sinNT!
βœ… updated uid from s7WbI4Y6v0EzRRVrxwy9 to wYiUe9hn4TJijpoX90Mr!
βœ… updated uid from C6n7bBsi4jEm8jXDPMWN to QpuY5RsGTBBMN61QGY4t!
βœ… updated uid from ztsvwpW8P0eXC05xgbC9 to h1OfBAUVyqCe47TmODzc!
βœ… updated uid from ENstaT8Ojlz73Iih3W7h to xQuk1UERwAorqS9dFuBI!
βœ… updated uid from Ieyn3lpjkNPl4M67SjjZ to d1J6DqfPEev0aBzfRWt9!
βœ… updated uid from XrsEEAozFuICOC1PjQjn to fiQbndwsVQJdrGcDyoMg!
βœ… updated uid from rftUYzIn1296nv9lonxL to 8co8I8I2FNl8QewWOPu9!
βœ… updated uid from oSMnk2XkBuUgPfsbcDLJ to 2cu7yo4RU5yAddIHNNp1!
βœ… updated uid from UW6NVo27KyhESGtVNsHh to xkWgb5OXRlTnPkbaUG9V!
βœ… updated uid from X2ugzvWp7Jw93A51tbSd to bi0jzkt8G8r9F7Odp13X!
βœ… updated uid from se8MBkh3xyoT7raBIkYB to qmlhpDTkT39mloc8YOvx!
βœ… updated uid from qOVTM7DTNv9KXItPYeRZ to l5P63hnBVpeu38mRKSmF!
βœ… updated uid from FEUxWVkuVSHFnby539Xc to bjEy8ho5HhFUBQX8JeIm!
βœ… updated uid from 8J4AEkzj7qFd5XgtjqL8 to 2OjDbS8g7Debu64Sf4yK!
βœ… updated uid from lVlDvgZgZdJ8wUIqpy5v to ifv72GuRMK20tbSmgNqh!
βœ… updated uid from C27NoyJZ8CBrg7v7uLWO to dS2EDlKTapIz08QKrjIh!
βœ… updated uid from lFs8ZgGpa19f2tOtNx23 to PBQOfPPt6DbWjK6449NK!
βœ… updated uid from PjqFcfbBUrKyT3FBW2h9 to sn1HfdyROtYgkngigUpg!
βœ… updated uid from ShrURWVGntC1ym6pFOl0 to a2tJIqeD21ZljNamxzex!
βœ… updated uid from 8ifY2Uo7eL4wRulf1rUA to os6MrlcQJCWVfAQjPJWH!
βœ… updated uid from pLLhrFxHIAYJsRBMBEBR to YTYeoSEsXTxvFSdfsKwx!
βœ… updated uid from FQ984oagp6CFSj1goXKL to qbgxNWiLRkvUJqy3Q6kQ!
βœ… updated uid from CYDZXKR6fbCRpeeaSaAE to 3aschyZWQq1Q46xcS97R!
βœ… updated uid from B8mLLy0QDVgQtRlEZmVY to HQPT59lX80spJyfKEF70!
βœ… updated uid from rfOdIUUqeghppYezxkNE to 2h0h56ia9s03B60yR8p9!
βœ… updated uid from of9dbUZjaft5GJOvCDMZ to hsUNjhiFgq3FYI8q0vSK!
βœ… updated uid from 5UcNCVPIsr9Rf9ORf8S6 to gyp2h9pp9NFvhnqlQDjR!
βœ… updated uid from WWsx5I1JAzs33RTyZJvu to LSbEXAVsWYrug9lAh5F5!
βœ… updated uid from GGr8isFaGNyQgV4F8cBe to KAHDMhL7KC7aHUNAMYHy!
βœ… updated uid from FG3mfdTu0kt3PyNmtHAF to ileq73vZO0Gjb2C2h6co!
βœ… updated uid from 1pXovrANnSyygnDAmOtc to 6iSn6EVq5BEVayyhIa6L!
βœ… updated uid from rTAdy2p4ejSsQnsjV0Mz to a3o2Oyfy17w2mvFB318p!
βœ… updated uid from UnRth5UdmSqPCRmNf5xd to BtGLeSFvjUjCldgGxsr9!
βœ… updated uid from HYAcXFosgalwUG0NB4l8 to yeORGtsGyr7m1kNikshN!
βœ… updated uid from kEY4TDdBwXNCnJpeiFtd to DPHpKfWvz1iPV9YXgYQJ!
βœ… updated uid from 5cdQ1rjGUxUKdcspRwuD to 1a9BE7LF1RccRIU4J9jp!
βœ… updated uid from cke8RyI0m0cvefDiG8jF to 8p7XTuhjWwSpzRWWakx1!
βœ… updated uid from frFW1abEY2vje8sCWraG to ZhURVUtdypLDh93ZeWUZ!
βœ… updated uid from RMhe9VV4YuTNwtTAfzN8 to hKyQa62JLSaE8UlF1wC9!
βœ… updated uid from iTMdA8szPDO33O7d2DL3 to Vd2uGOTQOwleGdFRmpJJ!
βœ… updated uid from 4DlYNV7ipwIqa30ncoxt to BTHskNWGFg0iJwixO0rn!
βœ… updated uid from ClRUsD5ir2ZnanMeb89b to fyloWFULJFeXyT940fmF!
βœ… updated uid from a7h8N8Ar2K7GI56MPD0i to ysDMfpFKcbJ5X3oE3BUx!
βœ… updated uid from sBgBR8E1fxgt7CrMptoz to vdfcBC1KQrOAbxEnwMVo!
βœ… updated uid from OvwvEeq1k4YuyFaSvA8k to xs8JnOHLfChf3XUXUbxR!
βœ… updated uid from iCvCnHXRFRCrT61yjtly to gTl4VjNhYGsex3MAigvZ!
βœ… updated uid from 5K4ymSTr9drlGah4s2MD to nEl31U5JF2fL38z93rVB!
βœ… updated uid from Ji3vY8yeLc9Ma1IiZTE2 to odCmvHUVWraE6Uyb5Rqw!
βœ… updated uid from NAUGjyp2EJ2yRL0cVz5l to eAQOstenTKAUTRrwzDoZ!
βœ… updated uid from KqczbPAt58feoWWzuQX0 to MvewDAN2FsUAMG2bMoDd!
βœ… updated uid from QRtpYtpcHGYCk88PaUrL to fvU5BAMJrm7vrgDmw6So!
βœ… updated uid from EuKGA8NINc8htsFwtYLM to d954c2cfANA3HpLzuO4h!
βœ… updated uid from Z9TmMY6quJX0iMpXDfxZ to Wq5nQaTQaSSSlKdvxKrL!
βœ… updated uid from D7mpJCIJ6O5faSFoDvqO to 53TLhoe4O3kdfCKuqyKn!
βœ… updated uid from oENt5ZauXEEUd19Yrahv to 8KCG26fwVdVDkcPBfERq!
βœ… updated uid from qQXrh1O7bkCHZUwfYuys to P4Oai3OLGAzRwoicHfLM!
βœ… updated uid from N00j9SWHM8lJ1rYawhxf to 1SX76nDlg1TRYlMGGpS6!
βœ… updated uid from oM4PyfBVcjtxBzh09TgE to m6hmbKYUyJMtLw18baRV!
βœ… updated uid from Q65Blo6tJMbu9tfOMXjq to znTBqWgfYgFlLjdQh7RS!
βœ… updated uid from sPi7jU3XvdvjWRm19dlc to Zg00wCoZ2h8sIwTuVvI2!
βœ… updated uid from aH8cxBz2cTpT8c38sEKR to rYIU9HVbuJHfyENHYOZg!
βœ… updated uid from tQo32OtdfoVZAsbiCYdA to HBbTSqLs5UtS859HNZ4Z!
βœ… updated uid from GiuRfqZMGyDqOCYX0Dk8 to Il21u84B0t0O2aikBOrj!
βœ… updated uid from 5j5FB6TimFPG8Q8wK7yw to 2pSqPCly1zpnoGcx17eR!
βœ… updated uid from 8EbiMeKOldPqDpTZ9kzL to Qz7b95dwvsyoc2ALK1Pe!
βœ… updated uid from awvB9tw4YxtGbtZEnABS to x2Cf6CoPBdBszgzYFulK!
βœ… updated uid from ONtslHupQ5rjSaNwUMP5 to NdDSSgvqoRZmX9drSxN2!
βœ… updated uid from HfoJ5zbFSWMW9CyemGz9 to LBJQF13N6cKrHFXT8Nab!
βœ… updated uid from 2Wqz5eMNEu9qjHj2fD4Y to f1kC34CMs9FYjJyIBscN!
βœ… updated uid from TR1gfXR55MZNPKVUoUeP to 3MdFlC6kg7AS97pCKqYE!
βœ… updated uid from hySGbC5ELlOHSVwxrsFD to pWt1pWz0USGpjUYzMsPo!
βœ… updated uid from kuessAAdOTFP1KB23GBZ to DevPS6lhgCJfq6L4cCbo!
βœ… updated uid from 2r6WC6Pwmtra8gxKdUNR to C35RXXzuPrWPGo4PX8SY!
βœ… updated uid from zkHM7HirdGkQlxhI76kt to QsCW3FBUQZneBvPvSTHP!
βœ… updated uid from FT678VTrNiCBKuBDtcWC to dptYEcjH6o3p9Vy1xnYo!
βœ… updated uid from z8CRt88yPR6Q9Nk3h7Z4 to eHovM5Ga5DAbaLN2oFQ0!
βœ… updated uid from dMKAGlnnLqTBt7PZFZxv to kfkYpeeZMautMxSdxGZD!
βœ… updated uid from pnol7zKtvAmvynAoA9sO to 3nGVClsz5UZCKqApqERL!
βœ… updated uid from VUx3ResTq7roaEqd1Sow to Oc6ANFJ0FgOW1B70mNIq!
βœ… updated uid from W1Tt94coVmuj3ZoYlqT8 to adXo4PAGe9Pr1HCp28SR!
βœ… updated uid from u9oecsAhbRkg12SHbYY4 to BCutg5cxmqLmy2Z5hnEn!
βœ… updated uid from mJBmLUw1br4s0mxCNLD0 to 5A72UhOXDuE6oqXGPBDF!
βœ… updated uid from hXJNw5XBglrklut6tuh9 to WGPlaaUotWu5wxAhAy06!
βœ… updated uid from 2irfOmYhA6TBGZvW7ilW to 5GB7eykNwc6grWQeNV2y!
βœ… updated uid from Je7wFXR978xDro6xYKWZ to vEw6vGy47Zi0Qj6TG6l7!
βœ… updated uid from COkrvfOh2KkIlQxGT0u4 to uV9sLXN7EWkdHK9yA6Kd!
βœ… updated uid from 34a3tWNjrHjIR8vOZdCd to bittNWi0gJTdcJ0prQuV!
βœ… updated uid from i9cwnzO34zKcjiYIa0ji to fyut6rlVbJHagLf5BfLG!
βœ… updated uid from dtSLwG31ebQtZHWHkxI0 to etTjuoUniTJkOKmZAu82!
βœ… updated uid from TUhgwS8Gh9PlMqFWxaZg to V5bXREeWMnpLaxlmpjDH!
βœ… updated uid from bftQzgrcJupQTuP83pi5 to DurunLZdRNd9qxqbWRYN!
βœ… updated uid from FJUUuGpfPJyJkKPoLD42 to ItCG6pavB8TCcuQTJJuL!
βœ… updated uid from Aec9NDXpqxwqlr0nints to XYpo2FcGEhmbGmo9S7GW!
βœ… updated uid from MfJBDJ2BCuOrWIyjtlpy to vagYxrFN9qzqVv2FeYW8!
βœ… updated uid from ybHgWMuvfU3PzML916tb to 7uWdx2sU0D0ujw5YXrHs!
βœ… updated uid from ObV4aHKxKrBZ9chLy3W5 to yzUQhwz2SeK7uyQ1gxSv!
βœ… updated uid from 0zl5RZ0z17oojGPDqHPU to b2x19Eg28GGSNnXWsrrN!
βœ… updated uid from n98iUeyWUMhCe4ganvf8 to TxGUZEhMkKhTnGQnUAIJ!
βœ… updated uid from k2P5m5F74ojEMTJCY7zY to vcwHu1b0bNlF4sCv1Ffb!
βœ… updated uid from Zl3gG4FYJt0M2gwZZx0M to SO5yBTUDBgkAmz0QSukU!
βœ… updated uid from IRfo4K2sEWE2CzXJUQBQ to GpuCbqeLbXSsqMyeVtpz!
βœ… updated uid from HP8eKh1Ys7gJcdhxvTt9 to a8DtPeRYgwDwUsEzrr04!
βœ… updated uid from Phld5PcAuUAWlobjpp4Q to 9fj3MQIVuQ6QZ8bcM9g0!
βœ… updated uid from PKvbPY2ZoOmkSswBCbzz to m0ct0FkKkpiEP4nC5KaN!
βœ… updated uid from M7LBahmIWM8Eu8nRtSlj to 46CaqALOTtUuueBJVgBF!
βœ… updated uid from RweVaRPqqG5yRnEdoYbJ to zwom62bNy5XaeQRFke2i!
βœ… updated uid from XFzLWe3qiOlT6LgMq0EQ to UzMc4KyxApajkG5Xrz7l!
βœ… updated uid from F9ZuThxuATgaa5D8NqVe to znAOtN05qx7pskA3HsnU!
βœ… updated uid from f2a9RZwJ6uNGsz9eiPN8 to 60TIR8XFosoLt8PrsOnI!
βœ… updated uid from O61gy0yQqPBA6eCeZmNz to jUkQUsSsKvgp2ziWx0KE!
βœ… updated uid from DVextnFFuOXj00iycUhY to Hqxc0q36z3qQwsnVs52y!
βœ… updated uid from Yev0O0z0ovKXxHmwZNPX to CveO4v6tQXbvViYwW1sR!
βœ… updated uid from IX8tFlreqXGy0IpX73kS to rYZ7gs0E0cqPOLON0oy5!
βœ… updated uid from wTyYwqAGxjWLvAkzop8n to EKS6f9cqMx0lNFsy1s4X!
βœ… updated uid from ME4AjoAPGb0ypi5kMgVV to DSpevwaIl5E2jIWHbui4!
βœ… updated uid from 3sBzPr6IJOZSnQrtrH1G to GA2BXWwoJlcRfzNp3iyQ!
βœ… updated uid from pNWvL75iCkLb7Idj0Cpb to XEPprsoI6tkT2I670NCk!
βœ… updated uid from VhEFkTkITNshn65mvLSl to 6HEdNdd2aq5AMQYcrDKt!
βœ… updated uid from VWeIENDzc4s6vgLYWh71 to f5N93YhrlPYQn3d8jKqf!
βœ… updated uid from TV5LWwCvVbFu1pWpgWFi to mtoOxeGG0Rg3NPH1wRBQ!
βœ… updated uid from YoeUKEtxLFEH94vioYjE to sFqNOvhT8VKxEXKrSYFI!
βœ… updated uid from 8HQLjMa6SLC5phk43pyt to udAbdaYhtkbw2NAAyWhS!
βœ… updated uid from 5ywx7CDJv3irKKkames9 to sFG24wZ6CVPeDEwzsBqj!
βœ… updated uid from RTsQWhDojLrBvSGvrtYw to SqvXr3i3PGXM8toXS4gF!
βœ… updated uid from JrwMTXbwXIeHWl1R1PVH to REIyQZE6OMZm1S3Wovf8!
βœ… updated uid from 66b6itzEEIHn4V8Jo0HP to 4XeJhfSD3dptyqoSaCzN!
βœ… updated uid from 1XzZJDBgrw9vj8jxXfgP to jCBjAe0xiLrRqJVllz6F!
βœ… updated uid from kxSuBkcW6h3YmiqdGDgG to P2M3r3KJTvcMZlG6FP6l!
βœ… updated uid from qwkJvRmt6Y5kjJah9pM6 to aEdyY5KgAr2UsN8igqD9!
βœ… updated uid from zOnueRV8jKSyCSHfl0Lg to i7J3Mfd6mWoe8kvaTrOW!
βœ… updated uid from kwnmvpZdHtstwpaeIfjT to Mp7Qm5wAooJZGUzOnedv!
βœ… updated uid from Z6rCvvkvZryGcw3Et5Z4 to 3GktMKv7NFZfOtzTKNog!
βœ… updated uid from pj2m7Q30g7VruzOjwJiK to UayfAFTNPi7fL1mFiEzd!
βœ… updated uid from donVcq8wVgkR6okJlktM to t2nugwPEwEAArwowlk2z!
βœ… updated uid from 47PyjWtl3A3OAdfY5B97 to Afq8P0M89AzgmzDiboEU!
βœ… updated uid from bDdhirY4EH4DCtLuFEdu to sb5NmYQn82LauJ8XeWRr!
βœ… updated uid from E213ACjPihP3m4uOEU4s to vN8vhbZpLzhgxGOgKi7x!
βœ… updated uid from ce5xFqNMaVh84Vposh3Z to 0oRLkRq6xkr5EfYehufT!
βœ… updated uid from tkJyCcNWel6op4uAJ7DB to gHlQ5Muwu3G9pvFCx3x8!
βœ… updated uid from 2KhOJgSsZbpkrE1qJpM9 to HpnxGOoYonDkD4UIEP9V!
βœ… updated uid from REJeZssQVmqIW3PmRSp3 to BGxbof2cgBwKJx9vBIhG!
βœ… updated uid from 6AsQ2bl55azAukodBce9 to GxmLqqoOQC24uqisowvG!
βœ… updated uid from sWPXaIdFULw5nhsGMY5v to zp0ZikzjRevChBBMR1CP!
βœ… updated uid from cAk1qtrQCjNWkf9MDcQS to RR5T5Yz2Ea5CUxFJz33b!
βœ… updated uid from 1aOafkABkU34JngJbOgh to Blpu3GqdoLFzjDIcDJc5!
βœ… updated uid from OwqcLsb1w33WHXfmE2h9 to xSEA3TpbD0pONmkFESAs!
βœ… updated uid from Nqio9xbNc7BCbllEqeSG to HlOvVNpsKBwYgOXIih46!
βœ… updated uid from c4ElZkAbhEA3vpAurqwk to 3OK2MC5NxguntYsIpP1m!
βœ… updated uid from LgoDI69HGfoueneBdCO1 to lOcKGjF2cfxFdGyortqe!
βœ… updated uid from glksiPgtSRR4Pkd4YRPJ to N7KX13kNDkfDzFIZ66Se!
βœ… updated uid from HjVKwKDErswevmEqTJ6M to oX29SOGLbgjn9YK4LLP6!
βœ… updated uid from uQsUMWUDiBtSM6QVSjko to gJXmxzeiI1eZxiXO0Vfl!
βœ… updated uid from yvnLMvTZ795k80Bxqlzv to EgqcKWxmRIKFccWVDEcV!
βœ… updated uid from ql0FCH8CFx24hf6ankmD to wngG0fuSqG9HBxR1EL7g!
βœ… updated uid from ASODPyA3eBJWVMtEm41x to MWNiSb30WQcnPiMmcVJZ!
βœ… updated uid from FmKNiHODvC9RdodPS3fo to drwul1WQ492Z34rUBvx5!
βœ… updated uid from yqHdoncn7OlrSk6mCu6V to nWoJprpwl1MBrTlvdJn6!
βœ… updated uid from UtatNqgJAgQGakBzI1db to rvqTn2ART0yRtcLWS65u!
βœ… updated uid from OnVXIZy5BRIwysbA7haP to fJfw0qkSd5S655OCqSEj!
βœ… updated uid from rXlp4wsz2k1ZJIYL8ZLr to 4enY6C2lUHqLGTXAO468!
βœ… updated uid from gMZqkt6aBBAotHNpO187 to musQqpujzuko6e4xcrVN!
βœ… updated uid from 1Eel8i7BkUfFdboFgYa8 to jvy1iNvr9FKQkLvL3iDX!
βœ… updated uid from 0wD142OpctkM7LWU1pQF to 3xdOASXuAxxJtSchijMA!
βœ… updated uid from ewbDZv6gw9FNyT8Q55Ti to r3tDxdCN5sEk3EOvzCAv!
βœ… updated uid from fBIHq4CGd8Z76fFIsxxv to Me6Dn2yBu3WhuODNEmAo!
βœ… updated uid from JlHH223XnX36ZvyCkkCm to ulclz7BbddYHJGOlQdUH!
βœ… updated uid from cZikESVXQh9138pEQc6q to khWWiqvvhXO9vqp4VUJO!
βœ… updated uid from zSfDIT2VsKWcBsfAsY9G to 2Z5NKeDsCtmuHbHk5N0t!
βœ… updated uid from tBiCBCEI2uc763YnzNEf to VZP9PoED6T7PfPHT21hV!
βœ… updated uid from OLpuuQpELvLyZKR4L8SA to 6XqztgSGlvbK7UVC6WP3!
βœ… updated uid from ynX6DuRQQT5hyduzua6U to 8wr0wIVc8bpvbL34WwQm!
βœ… updated uid from HYm8otB837JG1FxSJSXF to JuwezvL94lLJw9XUkCRH!
βœ… updated uid from G3kH0sQ8iNxh2BaZwued to HvyRdM4G1xh9KFZoACNJ!
βœ… updated uid from De4uQR83bJCrutBrJCr9 to qBoT3nzo2rFxDKtBewAC!
βœ… updated uid from N62dmOBXnTYl5VU1ULNv to 3ql5kfSKtf0rKNOOhHuM!
βœ… updated uid from D5a6ZkIz5EAPdUkRH2Vb to AVbEsCEKrYmd912VRz0b!
βœ… updated uid from ng7fRYWDwPw3kTkMcWmv to KfDkQJqeiPxMnrEXPoJY!
βœ… updated uid from DeJodGbfqx3kOb0qZnFf to pwc3uYt2PB42X8tujsZO!
βœ… updated uid from FMTJxAsjgmbpCE0JT00i to TFvkEtpfXFj2V9Q1GJkp!
βœ… updated uid from ZlyoP3lZ0V0XjxJMjssT to l9HeucSsCG63NTKTf5aD!
βœ… updated uid from qfIIJvfWeQcmF8SOBcVo to KmCx0cGdtpH8V826vjuf!
βœ… updated uid from 8vtK18MkG2J7UldkUaS3 to wMQB9riiulYOwucDFegD!
βœ… updated uid from 0pEyQ9ViYvni3zUJWsBj to suXT1uLLVumE6G7gM1b6!
βœ… updated uid from 6rDLWg8IZcmnnfBsBD5Q to oirni3bB5islMD7OriKy!
βœ… updated uid from QFsHU4mtxjO2yUFn3UMd to BwCLScmXkty5yBDNd83J!
βœ… updated uid from a3zRGDuIBc0DbYEmlXgT to zrmNQs9fDGgEmRLi28hB!
βœ… updated uid from iF1KUrn4k4SQHtOR9oS4 to grkjIG64BjI19hWadhto!
βœ… updated uid from 2IZstehpfUJacKy2OmqO to tnqgtMh3ULJElOCzUqJn!
βœ… updated uid from cCYaJyFBrnN5DTOLlqIa to SdsQF4T1LVWNaTivyMtT!
βœ… updated uid from pfaTzMUNKe9o1eJ3ZqVT to YtUix1NKhvnryfHuIOOO!
βœ… updated uid from 6m7v0f6eTL2pa3zfP0ZT to gpu2A6vYDjiQuxhnhmdy!
βœ… updated uid from aXT7wKfXQw8oyrWvgFvq to wNIkT2q9yFhHkntEfKmn!
βœ… updated uid from 6BHXLCBt7eunWS4VLm1F to o8HrYzOW7wXnThrsf2uA!
βœ… updated uid from X1blc4GfmMflm2B5swtW to MN0oUp5RCRXZhTeVQJ3w!
βœ… updated uid from rUkRLb8wKY0E2wYm3RVl to A1TAN6IUC0CTKbIjIW2I!
βœ… updated uid from uSbOmAZL0cdknLcf1BQH to hP1fk81JEtFAlKyNtEUo!
βœ… updated uid from 2fpNQsBDTVMJDj1i9VvU to rC7AgZLCPp2EUiGLHmjo!
βœ… updated uid from bPswgsh1dqZcbMk7lKhF to j2isuojTqCvxmxII3mIu!
βœ… updated uid from zwlfFUq928CdGQTaTz0q to NGsAPpQNtrssjknEVjG3!
βœ… updated uid from TdD9lWT5a2jNUCMsoQUt to pigZAtMiYmrFNrRA71cq!
βœ… updated uid from ifkWAufg5lcHdlb7ldZs to S29z8PZV8Ld2cFmq9rWM!
βœ… updated uid from 0Eu7ZPmqlnrz9zCcEFe8 to KX2554w0BVOezLoH7QNs!
βœ… updated uid from kXJIqNfrIEVtyrs3LXOs to VQ8S0Sg75ZBumVo2Mc11!
βœ… updated uid from l0zQMzdyseHs3EXevSqw to NgCF3CwBGHeX0LuXxwvY!
βœ… updated uid from e08vhL6X9799UdJBnHxO to 50kjKVc25kPV8h9vkvFO!
βœ… updated uid from Rj69te5HZYbxQQOcnEX9 to nWk5O43qTK4nqOeWPRRs!
βœ… updated uid from bWgHXobfrLc5ivqnN54p to zuJXglTH8zUA7aP91FYo!
βœ… updated uid from UUg68FnTqORUwPxjtraE to JDgehPtJxxhdTOtiuvEu!
βœ… updated uid from L2R06OCvCAo72Sl2xqtI to bN6Kl8Zsk7KU6XYlwii2!
βœ… updated uid from ffBImSsqFKBsyqIS2bYa to aO8c6yXUZwPz5ndmdwU3!
βœ… updated uid from ilSVkXcERCPS0kD3O7IJ to wt7eD72sTzwL3rfYfHge!
βœ… updated uid from KN1b5OgDSJzjGi5zRZjD to p8g1N0PPXRWN8h9zXUeB!
βœ… updated uid from Olx1ZmR2dXQO7hv3AlOh to ONkfPTYhFgRsFNhefNDT!
βœ… updated uid from RPW6cfyeYjr59MJDmDMm to jpMhbjrjRuZWUZXr4kxB!
βœ… updated uid from JVmSNPaqgBXpJ1WmwWIT to 0EvCxCNIHX5sJ5SuiJc4!
βœ… updated uid from 0Edbgx8RNe8jMRm6F6mh to 2foNbjCmWjyb1tKlEcdS!
βœ… updated uid from SeVmby37YVTa6VXV1AEv to 8E5DyJLxZFaIiBGQYhtH!
βœ… updated uid from 5W9azIgTQtGjOFNgqTO6 to 3J0IkqmxiWoZsOzgD78p!
βœ… updated uid from RdTqHF10RIPg3J0O7DC5 to NmE5wV6HoaaCIbvNGxCA!
βœ… updated uid from VnJhki0vXuqRGxEDOx8I to HNom9TanYjbhT7AdZ94i!
βœ… updated uid from kCyIct3z3pLs9xgDwPFk to Hrrey2kkxBc0KQchrfJN!
βœ… updated uid from ll6O9S9mZhQukqCbE1EO to ekiORffZYKdSp9uE7Shx!
βœ… updated uid from qfReYF5DRKUCkBirOt7v to EuvuWGd8NKvfxDdRpiRZ!
βœ… updated uid from F4IJz61hnGMh4qfkqWzE to NjmCS1pQeNOnH4JQ8l5a!
βœ… updated uid from 7Bul3xKcbXs25Pw66UcE to Ll7wns5EZVQCOZPNjtwk!
βœ… updated uid from EAf6qGZLJgvHkTz6EfqV to Gz5G2ETTEuuRDgwmD7jx!
βœ… updated uid from FBElwku8T9f8rVXmmtLe to vjkZWSZRjpObi2Mol6Lv!
βœ… updated uid from qOBKhnifvDWN3m2RrUoI to NTa2c4JThVa7kkaJJ48M!
βœ… updated uid from usyfMAh5WnbiSvPhvTRN to sC6i5fdJMb43iGSHM9oO!
βœ… updated uid from BY41S690Gxn3CIWKFVUl to D4wGW1MkfehdBMu5t3uR!
βœ… updated uid from qEXBwLFnuvHf9f8kdQTn to Kdy4bxDlJrb70wHI5Sgz!
βœ… updated uid from cQAguJTIBU3nUpKEJ068 to KdWQ4KYK4rEgU2ChcWQ4!
βœ… updated uid from GMZM3rMQF8qI0N7zrTj1 to B2l3AUYp4egcmgRjGi8d!
βœ… updated uid from SDOykvxZJEnnBgQcjGgg to yBlPj8fH71ZpQzzICcyd!
βœ… updated uid from tYtNgl5PlOQvm8d5OwcA to lStGQDPtaZxyT0g1JLhC!
βœ… updated uid from T6ovP34CZnsXyDZArF19 to 6hvYg2EVUO8VzSQnycxi!
βœ… updated uid from kzXjWKTUhK8oUyzqS2D7 to ojEamIQcv083w6D3asIG!
βœ… updated uid from xFjNMkwmbyK5T6ysq7jL to aXoSMai1QQlmqCch1uNE!
βœ… updated uid from DSOj5xvWtK9RQtn7ggcj to s8x0Idi587LQtXCo0Pie!
βœ… updated uid from jBmfzjvDVL7OwSAvyfye to 9iiE8Epz4zQUikZp7gpm!
βœ… updated uid from wGwz3S9qagW7iJBESrET to Cch8MMTZLQzCpL13ebtc!
βœ… updated uid from p7Tr28eyUYaT289eI4SW to gPfsMJxKeK5P3LwRK8IL!
βœ… updated uid from 4xzGHU3YzxKGNFuvX5fO to 4c28hitblZyeF2Cn884s!
βœ… updated uid from EDe8UN7LpxmBcwa2n3nu to SDVD1M4X3SFiVEsVU0Gd!
βœ… updated uid from 3OLvH0444SQomVxHWoir to uYysYJbiHCcpoJgLSbXo!
βœ… updated uid from TQbsStVgOv78jamNZj8D to fXWpCo654lybqMOcOEKN!
βœ… updated uid from F2s23WD2uqmCbmAjVJSI to ijgbYnOzeso9kiPImQCV!
βœ… updated uid from EhGiEfWYgjDIcDe9q8X7 to BruYcDqMhCfPWd3qEVbF!
βœ… updated uid from XOfBmpk3T7VBtYPcBHpo to Mgilie8RUip2slElAhaw!
βœ… updated uid from xgUoQjys0dxNBWCTcWuG to PDKtIjVvJxyT3C6qfQIt!
βœ… updated uid from fOzi2xV5wuH3bimm7jWr to fpYlD95bV7NuX31iLnAB!
βœ… updated uid from wU2vVnfDans8D8H33Bas to 69BlvSza74SouvB8Nk0H!
βœ… updated uid from wLzsWwoKaNx3aSUNoWGE to nHndtVCPzuc3pav8Ggjt!
βœ… updated uid from 0pdzb4xBYzYpyY53QqzE to q8mDVNaLoIVFIIlMysOO!
βœ… updated uid from 4cL3j0wgR1voSATETAy5 to Yyszx0yIrSEuzWTezlsW!
βœ… updated uid from ZeGrFPJZligTm43IJkoS to qecDzr0ENq0JQP21uIGl!
βœ… updated uid from b9awk0AjD9yFvL8HltxQ to vBAoZ3akkvDiaSXlfeM3!
βœ… updated uid from 25LCpdBzUazpaZ17WYED to 5v0IoJIlnuX4q1y57LDy!
βœ… updated uid from ItnJlSmvUagSDJy8Yv4s to wsNSkVpy1ytJURNUgUWW!
βœ… updated uid from n4XPRyiw8KWl07cggEgi to n11KAh0SGhZlecv3CVqV!
βœ… updated uid from DVVsODB1XaYOp9VxpjHv to ZDBvlk1lmoOSXHFXm4Ot!
βœ… updated uid from UFuAV5nRByKKTznAMydA to kqghXS81TCI6u17wYfjk!
βœ… updated uid from pm7A3x0h6uB8xIIegxNI to fbICYv7ARvTk7HC0f9rI!
βœ… updated uid from maX9yDVzBPurGhsJyLmb to j9taMjlgDLGhkiYtD0Ft!
βœ… updated uid from lWlTJ30Wt1w0QQqL3Ofx to 1LJUcEAyBcFf9m8jCcP0!
βœ… updated uid from biPog83rjuexOfekxIR7 to v432ItMAd5yVPDYnbWxS!
βœ… updated uid from yBXyAtV0bPd5zP5IoDuR to DqQShMxaHzyIMCqcbNG9!
βœ… updated uid from YDxIf845xQNo44buzhxd to xwg06JZLL89kltqkYBIw!
βœ… updated uid from xM3Rl5Bhxhpkm1Evmy7G to EfyIwzf9SfhsqJUrgXn9!
βœ… updated uid from DnRI64SeUIKd1xGB6yee to kYRTpMaBzEiJBUcWWkbR!
βœ… updated uid from 268hNBPVPfuUZdDDz7LJ to tggrprv4cllqGOrH8RlL!
βœ… updated uid from IQYN7hkOHhLqOq7DXrYq to cJnz4Xj5CLWKka3sQEwc!
βœ… updated uid from bN6MGKocGpoC4Thvw1oR to ZDxuonbHn2F8sJXwg33q!
βœ… updated uid from BlshSnZTwMkV1p7ZVQ4m to tczTlSHFPOcAcBnf73bg!
βœ… updated uid from xZAVloPMwoQNEmdan9nL to prpy1BuQpzzN8MWdeNMA!
βœ… updated uid from qgmNvCon7tU1o74stcKv to srVaz6iYjLv8b0AlCvWn!
βœ… updated uid from odyb9HHHx5w43wVEB3tS to B9i51CZzdbzfw6wYjsRe!
βœ… updated uid from pUnPwPsjQh3FArlk3xXF to mLNsxg1OtUGShbkGvrJl!
βœ… updated uid from 4WO5uBVsvjXCaiF6dxaP to 7KpelZCKNcnSWsBbPuQs!
βœ… updated uid from 8or8wnYyaMblIrmKji9d to EZubvswwxfhvVeLDjlIN!
βœ… updated uid from AquZBToGe0raLCl3sKK2 to LVUZLGsiRnAsqi1Cvmbc!
βœ… updated uid from 48wP3IT6g4y30wmg57wD to e7vtt5p8Iq3iyZIYfMyD!
βœ… updated uid from EttNncXODMQ6wxcOYoga to lCVyrfntSROMxki9Isj2!
βœ… updated uid from CElECyMny9A5hBboWYsF to 1OyQQLNfu1nzvVADODND!
βœ… updated uid from ulu2Pd0gNmglTwRdcaq6 to aP6LjumDJsGNpXZO8tEQ!
βœ… updated uid from Gz0qZk3RwTqGcUfWfyN3 to HVcsneoxlIT4Qk7Ifycq!
βœ… updated uid from pdb0NNmEztJHhzQmWuL0 to ZcQ2ut4JGwk9zB2LZ7AS!
βœ… updated uid from y48mpuzSELZlFk49XfST to lMLp2Aj9tTGXaRtjJ2oZ!
βœ… updated uid from hTDKYtwbYJxESXb9W7X0 to YX7ptFx31rGtB9MpPXbl!
βœ… updated uid from VwqQOgzlAdSyc7GK9Gdf to JKbtTgqQemTxDdZfo122!
βœ… updated uid from R4LU1L5JygEgFq7oknwR to Vk6RSIIGLvELtKPmmBOL!
βœ… updated uid from luZQ4VBR5Z48BNZHx1XG to 9vpGkXblzQIJAlh2e8MZ!
βœ… updated uid from VVBfqT3OkxiXbpsK5tSJ to bumxwv6BCUSGlpjp1oPg!
βœ… updated uid from PKmIae6fhL3Sa1GiTb30 to q33XvYIgCwKDDRWmee31!
βœ… updated uid from xL9d3SnCxjN7LzLVYoNg to mtRyl9W0R7ee9l67l2d3!
βœ… updated uid from DleIntZBl8lh3M7hHv7b to f9lGZkg8IIhLCmJGHmI1!
βœ… updated uid from z6g0FBO3JKBghZ8wMFXG to HFk1Nhl1LgUBg6rH6HFP!
βœ… updated uid from 4zTgW3WpIpglF3zTP4sz to xORZVYp5YztbqqLil7nX!
βœ… updated uid from QMC5gKOTMqFgmlfQBrKZ to EnNi47dwsMHZgghca0BE!
βœ… updated uid from t3S6e34gy7gBryhd0wo8 to 56hlmjXrmktNyheUNq4I!
βœ… updated uid from qgLMCcAAhbgPhHSPMIsS to 1YpDHD0mjLFA7QDbe8n6!
βœ… updated uid from m4B9m9liYE7GerRhafnX to JcdhMjwI4M5p80p8XFVq!
βœ… updated uid from YBWvXtmfaKu01VwDc0Rx to EHhxQUdTFjv0T1V9bkUx!
βœ… updated uid from fCgYnrZ3MrDcn9m8BYXx to vXTpeThGQFYQTY6hJXlc!
βœ… updated uid from mIq2mAM2EtNp6D51ckF7 to XlL5VozrEz4UU0TNsE2P!
βœ… updated uid from K8FJ35QhBDHbq2IFnX4I to 3VsUdMB93zPy4phY1qHT!
βœ… updated uid from kh2Oyba76yR6cliBpPK0 to yyEovILsyx6hMvnz3FvZ!
βœ… updated uid from N7HOigWme6XiEyZDtCj0 to 3l9xpVRZgVIO9BbRIZ1m!
βœ… updated uid from MTz9C0B1xCPzRmUxkHQ6 to KCdDXw5sKqn7LmiKh8SK!
βœ… updated uid from bIRKbtGl5eV5LjAufguf to qajxoNnKJBU0e49jrp2u!
βœ… updated uid from 7bkumc1vKC51yP0FGZFC to VgweucTjTX7vESC7fVUv!
βœ… updated uid from KO0gQitavYjsn6rCJ8vJ to ktwL1x8BiMQEQOovZ3CK!
βœ… updated uid from O0GZswRvmRaeRvKupoOY to 3ACN4x8xJWqmQ4O3cKgB!
βœ… updated uid from 6DLcG6w4U4qZz4NJxSFR to y34Wtbj0OQb71Pp26rDz!
βœ… updated uid from tXy1ZzX0f1VXXWtxUAND to mhVgYOIk5YlOALMtEYhO!
βœ… updated uid from x1NqtehjNNEZZT6PHTWA to sMYTEwfxhn3I6LCkqTcz!
βœ… updated uid from MlmEjigOtKpv0Y16zgqt to Tk7VvA3WZwZ5b7LZKbkI!
βœ… updated uid from 5JaMFsOeBGCZ7o7IFki1 to CDlzizK7gB6Wp3QsnGL8!
βœ… updated uid from 2p2D5epoFwwggpatrlAD to 1W8MgqcO0evL1hcrqHi7!
βœ… updated uid from UO1alKvjk3OSyeScnpj2 to n6BbWkIZ1YgMge5pmI7l!
βœ… updated uid from UVIsoNLl9JfoRYAZlTEE to dh4gbM1TXtBswOMHgYjX!
βœ… updated uid from YuFClXQYwWDgxAHViWx4 to PDsBucA5LyDgcnBm8qPE!
βœ… updated uid from jY0VLsVH2Z4WYzCMsOlW to AhfSbOToRZvmVaXHPfwk!
βœ… updated uid from gMj92S7Eu3Uo7JFkUOus to XqjsmDJu9vpxwLPVKMuo!
βœ… updated uid from zBaYvlITPtoE7jfMdbVB to gJscvcghJjRIf7CKqcWN!
βœ… updated uid from jM0bO0AMhYiAWP84Skjp to 0R8ghH2SLoAEDRRDY7uY!
βœ… updated uid from wcQhjJqKzbSquiy1gjW4 to Jis0nXZNtlIedOxerO0c!
βœ… updated uid from iMiLN2EADjjQuJrUB0FK to u5fvyYiBdvPC4tF3hJTt!
βœ… updated uid from sFO15Lgl1Dzv5O9tUFZM to NX48aBroUbLfH1GbKwzh!
βœ… updated uid from JDQoh5MgFZT5vr0LvhUU to 6fkuxqyina8axLiKpMyO!
βœ… updated uid from 4MRApeDfb3RUD1zIxYuO to NMcmKEqTBqT1HBEIWJgV!
βœ… updated uid from vFNGyg19cOnNwV1t0KyS to 3wM3DSoToH6Dx3LjsSFg!
βœ… updated uid from gKplrFrvQip6lAr6cifq to ZzGi8GCf1UIvv5RNk1Sz!
βœ… updated uid from TtsEWgUomY9emHqdil6T to FLLhne5CQGsTmVTKH2j3!
βœ… updated uid from pR5RFx1GW0T5OLOTdRNj to i3XEI4gXPwloSmGPkoS5!
βœ… updated uid from rDjtveyrbtDt1pTmOGWW to GWIiUYjsepRyTi3CDvCx!
βœ… updated uid from OMcywyJ0pbG3Q91lLSmg to MUSJ94kuSMGp31yAFgPj!
βœ… updated uid from SxLseo6Sn7drXq1XEJF3 to tC4x3bL2Anr0GrPFYpt9!
βœ… updated uid from wY2fmY6uf7iInd4LxfeC to h3ceP9ROuuzqxmHyIRBW!
βœ… updated uid from CVWzlb3rk25dwWGQHGPv to 6pGHX3bAIzwZ2FrxmIAJ!
βœ… updated uid from RI9fq3EZNZapgFS1KrQI to Ce4Mqe4X2vUhwkwnh5YQ!
βœ… updated uid from Q1ic4F6Q0WftDS61tt0Q to kl8STjrpbxvPtxA6cn9v!
βœ… updated uid from IX4qY3lX18yn5eYDPhpx to xcB49st0ePu4urWkbyAn!
βœ… updated uid from XZ2Gp00BuzRG1ANQpryd to fcaCRu557PUKn5IAMrc6!
βœ… updated uid from W14jo4QdQawFv58NXO1K to PLmAGL4QyZCmvyCEHbxQ!
βœ… updated uid from l6zP2DayyjjUHmKJAwyW to mJZN2fZRIPBZf5yDJHVi!
βœ… updated uid from blgvCbwMqO8wgXLg4nqE to dbNcAhjk3abxBkxE2BRd!
βœ… updated uid from fj0ROwkqiKYHHWHEKbJy to N849OuhsgqIerohv9CZF!
βœ… updated uid from LMfxE7x7tDrwyzzfueZ6 to 4xHBtTf6gQXoeZ38BBsQ!
βœ… updated uid from JV369dGZYUQu8dnigXWk to 0cPExUt19otkTSpsBZ85!
βœ… updated uid from zUasMbvB3Yk0SfMbsUIG to g3JwG0mEL5EpVa5ekQRL!
βœ… updated uid from uLvNvqIZags5qMIfrTsy to CoMgrnD2GCTGmBZZB6qf!
βœ… updated uid from x5vsuOPnp0N6md0w0tD7 to vXLNZkm7qaNHomkJ9F6c!
βœ… updated uid from fn4Ohhx8oCXXyEO3qdPZ to y54VAzapgdrqHkrV4ULX!
βœ… updated uid from r05b8KPH7alpnun40RLQ to OMkJkHjUz316hxaKGykI!
βœ… updated uid from 8LLaDAAU7hwy27PZXJJb to 5KiNZFTmmrbJz4iEcypV!
βœ… updated uid from 0NTN1kuCCp8MIXlgKp1O to gcT3x0eWG9LlKyHQUZ5w!
βœ… updated uid from p8C8JfLqAwmJRejU5lSV to ozgLNeKft6J51PJEqUKV!
βœ… updated uid from eeFRXhwBcb4reDU56DJY to 9ZD042baEAvW8QpoOo0b!
βœ… updated uid from 13YlDFTH8TJnMIU6uYUo to 3SSFIz287j3aUMHWXxbr!
βœ… updated uid from 3V9rqZBX4evxsr2d3eJ6 to bpGM2ctxzaOljosnse0U!
βœ… updated uid from fhgFRW5kenXM823bIKaP to 1LMYfRVyaEthHlP0AeFG!
βœ… updated uid from JC8LHKU3NCNcLhv5VGZn to 8qIWcHHXu2SNUJntFTGk!
βœ… updated uid from QyyvLyq7kbnNV80Dg3jP to 606Q69EwbjTav5rRyARY!
βœ… updated uid from M1TV4rm3ZfDuPNFbWF9l to 9z4YiL0Pk0DBLnIA1zK6!
βœ… updated uid from dMUt01bd8ni5x99qJARP to 2vY719FXrp8UpgET9qOk!
βœ… updated uid from kDsb5Y9kIvh6aDmlDxS9 to kC30Bas9AlZmLUT19RE9!
βœ… updated uid from 9JrO7v8C5EeLQerd2Z9D to Nl6GfwFn5YYSWywZZMxK!
βœ… updated uid from aeo6Cmi9BvzPx5X7sziF to qDWWmEMCw9AZNqb4RtD5!
βœ… updated uid from DIYulH11uyMvdlkOCUx7 to c7WS9K7sIDhr4B5Pu3Qz!
βœ… updated uid from htbDp0iDwhlAbDhQWko3 to fYxfMtiIP6NxyGtcItM1!
βœ… updated uid from ob2nbrSnYI4JLuwkq891 to vGLMnyZyY1tCZz1BSai8!
βœ… updated uid from KGezMX4w5VwOXoiATTfJ to 6mnZ3SeQFhffr3wTKcRr!
βœ… updated uid from SC4Gd4Psq6E9uNazhnMH to vRnWAp9oYTMzn4BYZ8My!
βœ… updated uid from bN3NiRyfDNUSKWonMOaj to qSKZnTrpbI9qNmnqjP5i!
βœ… updated uid from VxwGoXreSnmmlQ9BQxjG to 8aoJOsRQ3MqAl6WJIBnt!
βœ… updated uid from kKDg7HaMvIVjJZj3Icnk to RaAgwD1SB9bRdLOMMTDB!
βœ… updated uid from wkI1hOUO746wIt33oFM0 to 4nrJsQi3AGMJv1gHv6j3!
βœ… updated uid from T0gZ5fDxTUEzp8TOddoE to SERtzz2ju6MCnsQPjIyV!
βœ… updated uid from qPyDFzhUjoNkCISKZ0wG to c1Itlm1mM14cAQ8GYQUa!
βœ… updated uid from hweZ6cpIiTXm8iZ4Vl9q to uOBoDhyJqTCY4fM0SBoj!
βœ… updated uid from BeGrJygAhgbMlHPoLw2P to 3xyDgsLdP9DW2GBTtmJK!
βœ… updated uid from HhjQ8OsK4IUgplsls5FI to FwDN7OxREMzZE9i6pVZi!
βœ… updated uid from z6RzbGetDgZPXtUgnysT to 4G7QtgJ0oNlJTiqNpkcn!
βœ… updated uid from NK823ekAS0Sxkox3YrFj to J2WvGiwOE7tQ02OjoM1k!
βœ… updated uid from N2jgXkMYYWOTmZBtHeOm to nAJSAIcRSAq0wa6dkE6U!
βœ… updated uid from sQRMZuvdkk9pQsZviLAG to PRKoLikXilVZU9dRkg5j!
βœ… updated uid from 8IvypVvaZq0lu8Vejg8P to 2whWG1oW3an5dY08HxeO!
βœ… updated uid from xMzvIi6AY1dadongRKKl to KzsdnozUB43gMFgHKVwh!
βœ… updated uid from w3tDaFUu3lvYFtffQyXC to TYpQYfvoacDkTzQY5dT5!
βœ… updated uid from 4CIIGYfm9z8LD6om6lMY to ECCLBSq58bgj8oyVJ36H!
βœ… updated uid from MBNURrKQlWJzSNrZVtvH to Jjs1ddVhcHUUonLxJydE!
βœ… updated uid from U1tZIYKBMVdE9ym9nSEM to ywGKT3u2oLn7BDQTqWzY!
βœ… updated uid from HX9HZxZC2R9sMv4Z85GX to 17vdxerambO3PKmyYTok!
βœ… updated uid from 3dKM8NieTB7CbasT2UYX to lEzrtwE3PN3MdwxaS2n4!
βœ… updated uid from hAN1RX9bfCGjLOHLE0DY to TKHFkSRPTbwBIOR324CC!
βœ… updated uid from QocY5jpLclL1hPE9f3Yw to vvBVHvno5rrp8Rh5e680!
βœ… updated uid from tRCwYF0ij3TDD4yDvzI5 to uLU7vymLJFr1yOnXUEyd!
βœ… updated uid from iXtX9ZWmDQLVLuh24hwV to KFxLLDMNU8Q7aElirmEN!
βœ… updated uid from XISCCzi6gmVT8pH4yLg0 to wSJEAZcBnIplLzuw4Qv3!
βœ… updated uid from YEYcDZwEOZFTx4psv0vf to 36Kp6meGRm3wNERxTayc!
βœ… updated uid from 28gLCJJGwSu91jAMOv6h to cTykZt4wUCOobD9lh6cc!
βœ… updated uid from eKsECkSN7HJ4SEwomo33 to 2HoqnnMXeQtWwrLoLLBo!
βœ… updated uid from PysSI7tPsGC7RSoG7AfZ to f1dolV6972dklce1QBVH!
βœ… updated uid from AY8ZtjIqhvUDfs3WJp7i to HfEyRjUMujDc7lWtLOPt!
βœ… updated uid from OTXgWav4eLt7336LB2LZ to NkaSlYHau71IYVM2cI8L!
βœ… updated uid from jETSLOL4vioVYEKJJwAo to 43wk9oVNmGy53PC9FkoU!
βœ… updated uid from EIeZKNr75TrXtx9qZ18d to G12OJ3GwGFmm4lByY9u1!
βœ… updated uid from zYDCXrxIRncxvnpaHOpQ to tS3TXuffE5Nith5791ML!
βœ… updated uid from HE4bXlD9Nnf96w2793Bk to HVioHyawLqj44h24yo6H!
βœ… updated uid from 2Ed1dZP37f3hD7J9OYhG to tUyvzeQn1yaUfgLX0PXA!
βœ… updated uid from 9FxaskT0e9mKuX0KyUwB to IhGeXQ5lmk2gkeShkj1A!
βœ… updated uid from 8MbEzntY8k4WB9QaMpxr to bUlXBHcPujazoj3bZcYy!
βœ… updated uid from Ag5HJEm7TLOYG0r7ZmG2 to w0eKx2MO3At5bEJ5pFXj!
βœ… updated uid from zq38AoOuHdEOclrO76Ic to MkRm3eUKPwfnAyZMWD9v!
βœ… updated uid from NnAtnzf1iryFtbxkiHw6 to 11HQaMeIUaOwyHoOkqqM!
βœ… updated uid from HLWd1zXZ2CKac48xd8O3 to boS3N9G4FT9FFwyYVWWd!
βœ… updated uid from aQSY2PFqNbqS4AycZliE to 4YOO34dfpLCVOwzbvrL0!
βœ… updated uid from QVBbPZTjEVo3EexwAhPu to qzbh60hKjCc0rUPN3D19!
βœ… updated uid from k7yilTJuTlZmPvT8JmrW to 0hrPhYDPB3oG2BRqA4RI!
βœ… updated uid from pqRBPgFO4yy0BhrZePfX to fPixaPrRFZbdc6vtZ7tA!
βœ… updated uid from oepD8LOCfWBJYFmHZJnt to srCjBo9UGBfblOz1d618!
βœ… updated uid from kukHtNYJo90hW6hrolGk to my4iPi9IgSiYIcc0isYk!
βœ… updated uid from vMj8xGvfuXPOTFfRE2dL to wjLcReBTgOY4y2u9VSbo!
βœ… updated uid from I77JlYA82CUTXaLV24CE to nReEXA9KUC896jHsVplv!
βœ… updated uid from xl3MT2ql18yESaK9RjG3 to e63bGRsuxnZkGZt4LELT!
βœ… updated uid from 9AxPbkuIftFf498DLabh to FqxF1y70fhTZYjJJtDyc!
βœ… updated uid from El8iKpuBs4BG3gPOf5WA to gwvH4Czm7hrzovBlO0Yw!
βœ… updated uid from 5MqFLSJy1KtmhJotfWM1 to MZdKXmBGUCNtlHbwngOt!
βœ… updated uid from YUw2HghTGoNsJUWD8awN to UEE9mPND42ONqZUCu0kM!
βœ… updated uid from zdvA2upLnL7Sp1EZZZot to dfcB8OkR3GjDc2lB0teD!
βœ… updated uid from Yfl9iLN0UzuK6PfJAcFv to 2Q57QiG5V58K3fYANFI1!
βœ… updated uid from 4COo6giWeYmVOsH5vr8P to AxZyNrImoyyllQ17mYBl!
βœ… updated uid from VavKfaTZDLXmzdeuLbwV to wz0GqTdrEOxbzib75emU!
βœ… updated uid from 6XMrseVcLvgCXIy1MI2s to j50iKDhkM86ysI9c7Vuj!
βœ… updated uid from wBLfG53eCGPSYRfJJhwV to 3tBOKwUCzd1d6e8ByFVb!
βœ… updated uid from XL1XyIpgWEHGDlY9uX3h to 7DkkEwr8heBoaaZj6rEO!
βœ… updated uid from oKGlfMRgcwfJf7yUQAMo to AWVtlEeUP9CZ3YFGoATF!
βœ… updated uid from 3C5bQOxWapQ4eQUHHB3M to 2PN6LTuSmJI2TSGlbUMV!
βœ… updated uid from kdNSRnbhNjxqwAFIFbEl to w23ytD6ugNHpFLWhv2Ob!
βœ… updated uid from bUkwBb3BUaKIoWOjuhMs to 3hfdSoNDWqS5GUuY2CQu!
βœ… updated uid from FnWPx5oVnN3dOvXZfgl0 to LZiLuqCzaB8peGzT21IX!
βœ… updated uid from hL7op9RF0uDXstZIDm8P to 8HqrXTy3ziRbU4UUDea2!
βœ… updated uid from 7OJIdLJTlui3V0Flj58I to LGai3Qzq7PdlkPrHvQyl!
βœ… updated uid from K2dUZtTruoXplHI3kki1 to Ov1FG8RPMZpf7fu4uwkE!
βœ… updated uid from YYaGERnMaFYpU6XG97wx to NwFOBmT6emiJaeyrEc65!
βœ… updated uid from 8GCjIYH269X8pt8w6S4d to MGpa3gkgR2O9Qml2QyPT!
βœ… updated uid from drTW88WQmT2JNhwXmqyz to 8Nvv13lKsjEHL8dnaCfW!
βœ… updated uid from dKB7q3zVKhf7nmMTkNr9 to ciDzKfg6l9BHLU9JyHix!
βœ… updated uid from ZKY5S55aVmReV17qhG0q to DKUxuKKJ5eXAtFYh2Gm4!
βœ… updated uid from fpqs1CVomrY3PS5aKOZ8 to d0JqVUfPuonxM3K3USwM!
βœ… updated uid from u9suVM5ZGcPx984Nm1ZV to hepeOsNPBGb3ibNFPn4C!
βœ… updated uid from ME2rtl6HiRcFagnKe5ww to r3Il0eSvaXTZk3P2umM4!
βœ… updated uid from chTwxQRWyS3ZnCPZV5sZ to dSQfhOcDievCEboZ9Mcl!
βœ… updated uid from s35aPSgtEPLeDmudbrSG to zjcyPjp2fVK0vWe2JlNF!
βœ… updated uid from kkApYChO8NvT1Igxgg1z to q7rGFy5JQVC4FU4XT13l!
βœ… updated uid from tvDGaD8rjhb8VSpQyZqW to qcWqelYb5nf5hTSn1fRd!
βœ… updated uid from DXa2yo4C42kYjDQALxUN to WBNllawD7nrb0LvWAWSC!
βœ… updated uid from JBcj8KTSaBG0PkXLEHr5 to 1AeEHLQzGyRZL5nwpffu!
βœ… updated uid from SiIWZXZ46nihN2xPNvsl to xiRAVXfFZgb81hPRvi7i!
βœ… updated uid from EtorIAXwdxBe1pTmLpON to ZYP3pcNjwdatsYunfi26!
βœ… updated uid from PW2yLEbrioi6Dfb5dQM1 to JbI2ffXwy6u2N47SbXtG!
βœ… updated uid from 82AFBXeGUkavkBWORiaR to Zzyxj0NDbRHh6DiXWF0n!
βœ… updated uid from 9BU6rSr3ROU2IooRElzF to HRnkxNDMCrJv3kVoqANc!
βœ… updated uid from PdRYpdafbeKa1rZHh6LH to KPdvPezb9hjQ1HcFM7rE!
βœ… updated uid from lBBtu9rWORmZsNZNY1ko to COsRhWtVHhSTbnlrZTR6!
βœ… updated uid from ZfGvBcwpEa1cacOLxlaT to yK2DFgccPxjJCl8BSW4D!
βœ… updated uid from wwuKtto8dr2ejL592KZ0 to OPiDnHTLQTnj252UttQp!
βœ… updated uid from e364PbVfNZwWLLnIak8s to 9nirNwn3Gf9wT5J4rqw1!
βœ… updated uid from barRcKh08SU5fvMxKLTH to rgofRIOEBBZBTxZ6yz2t!
βœ… updated uid from oDWZeNdOCx5Mni5wpFHl to Xu8NsXWhXR2Hrv8GfPLh!
βœ… updated uid from 6YaCSDCcjTlYseJHKjsY to z3AsAOO39crEioi5VxqA!
βœ… updated uid from bbxCwpYsw9khCiMk92tW to zOW2EbIMZU08r44EmHXs!
βœ… updated uid from rRKvZlWE1OaRawSiu1mQ to 6QKCg2OKiI8EOU2a0k7F!
βœ… updated uid from T0Ef1DzR2ybOFxw2u1j6 to ACKKgFCboJIhYLtAZbOK!
βœ… updated uid from 2rqiTeXoVvrmaKH04lmz to BsvfKNhvT0k4cv4dcgvv!
βœ… updated uid from OawNiEZigGfOgQdLSRCM to xXfrauwVrb5LDn6R6YNL!
βœ… updated uid from IDJnG5ogfjHJTEkU1VvX to xdXNUKucnL4Hfd7lQTvd!
βœ… updated uid from EcLhsU6p3M3BlUeoLOAj to V6DPJx8rP3wWRQ43zQTI!
βœ… updated uid from e9TF13TwJA3h7179tK72 to jU7wZmF7oieXlnzwxaD7!
βœ… updated uid from Nh3ivcD4tj7eRjWGlE8I to mEuIWK9ttyh2JUfOGVkt!
βœ… updated uid from pNPyDjO05YAQqL4T66m3 to 80xlsVmayPPBCCEZ7aBc!
βœ… updated uid from bcZUqjaWiMa1px3hlLVX to mnlBjvQsb6dptjfUWON8!
βœ… updated uid from PPCyRswAte6Bx7UeVBC3 to G0fHmpO5qn0p1h8xGCUz!
βœ… updated uid from d136SLGae6q0Ksrkeuty to KAMpTRl9uQ2SK0Q2CDv7!
βœ… updated uid from UQw79KTgFemWmEVnXfc1 to uirvOIb9k0gCD5vqAJ3C!
βœ… updated uid from 4HyRXc8FFW7d7Xi0FPGC to 7JWPBDDaO3v4bsarZfKf!
βœ… updated uid from sXKqpgXb5sBdSxAKginO to CmCFFXH6ANF2aegumNpf!
βœ… updated uid from 5deC7SBVB06nhoPOYUfh to I9Byr2X0Er33TYSu7Gwb!
βœ… updated uid from LGYhsVVi2IlC3mT9V6Rk to b64sxYNzw50xZSe78SmS!
βœ… updated uid from Hy19BM0aVAfbiXfy9SeU to K0A0xPNYJ7TPQFR9mUKU!
βœ… updated uid from gEwzcmR0On6NbwKjb6ZF to f9vZ3oDdtf47coxW0FP3!
βœ… updated uid from DyPJA0KrhfIMDg8BREjO to OqNaHVoOvO57na0aDOpY!
βœ… updated uid from oqle4NcqNEHsOSbr82Fq to o3PqSM5mpPpirVwaK13e!
βœ… updated uid from li0ZXK1BfVkgA4rjW9cK to dMy6xuRTCsxOy1HoZqrz!
βœ… updated uid from ByckURTQvF0YAY0O9XER to NiaMP8YQMbmkdOgnAa1T!
βœ… updated uid from XvjooLyqhvru3mzWznfg to 9z7kKh6NoGinAveQSHAP!
βœ… updated uid from TC3Z8jSUfPHNNkfIsJeN to ijegYnsWNUYemo98fF9f!
βœ… updated uid from X2MeM8csaebP8ZQdN5FH to vdes15TDCM31PqryGT6E!
βœ… updated uid from 4nKjYZdaKsqNMSlj4erd to Ntdynj9uX3LGLRCK2xcV!
βœ… updated uid from VkTYkfW5vZEfDANgETkZ to OX929rXjWdWMP6Syru1D!
βœ… updated uid from 0TiOhoN2dWsmNhfLNVqs to 1Kb6hekaLHsuewJYE2pG!
βœ… updated uid from 608nLg8aM9gtkKtZB4x5 to XpnXIfcamsSLAvGsufmV!
βœ… updated uid from 9s12K2HcUjYYrKJa9XZk to jkeQwS8gamxdOVE5PPmm!
βœ… updated uid from Btvi2x4cWNByDRcT6lPD to a2bqKf5GqBgEih5GGrpj!
βœ… updated uid from x0AZlhUqswXVfmbGtyHJ to n37gHogaNTh7slIM23k1!
βœ… updated uid from 5z54ON70amF65B9L7Rw3 to QYOyTlyIdDwuZRmTYCnL!
βœ… updated uid from E5gKHof1SdipTqGomSaM to 6TNaDQUOMRx9Zj0s0d2v!
βœ… updated uid from n63psilvMbrTWITMoPeb to UQrmDlXa3F8oJ1UhOBhj!
βœ… updated uid from AEmaLUGEYXgpmlrjKijW to RHgzUuMuwOh9jBdisLrm!
βœ… updated uid from 2LFlm0KqC0gFxNN5H86i to BTqDzIN6ecwSRliblOsi!
βœ… updated uid from GslP7HY7ODdnTZ4hHcXL to lfZD1fkdaALmNjIggnAu!
βœ… updated uid from PcQ8Y6QmCXfJRZaGrXAd to KBW89Mf7IGcekja2hADu!
βœ… updated uid from Qe7ZtbL6pm22jiXwV1td to 8OxkoDF7XECAcIfkD8gZ!
βœ… updated uid from nSPeUcefCv0qX0MhVCW7 to OoktqBIu8jCoGOJlDlPR!
βœ… updated uid from fbFXa5QjKv7PANPeyWTs to ds2ArOPrb4AA8WBGkITP!
βœ… updated uid from A5RnIQksT3VmI62PEUlR to J7Ni7YzRM9R94RhmShk0!
βœ… updated uid from pMJjahlDenmjM11WgKsg to TJWkpg366cGCnTAR9t8I!
βœ… updated uid from 2EniebVNEB2AqHusmCYT to g0RcSSYe5vQKzSWYkhMc!

Register metadataΒΆ

Register new features and parent labelsΒΆ

artifacts = ln.Artifact.filter(key__contains=census_version).all()
from cellxgene_lamin._features import OBS_FEATURES, register_obs_featureset
if not artifacts[0].feature_sets.filter(name="obs metadata").exists():
    obs_feature_set = register_obs_featureset(artifacts)
features = ln.Feature.lookup()

organismsΒΆ

from cellxgene_lamin._organism import register_organisms, annotate_organisms
register_organisms(cxg_datasets)

Link collections and organisms to artifacts:

annotate_organisms(artifacts, cxg_datasets)

ontologiesΒΆ

Register all ontology ids:

from cellxgene_lamin._ontology import register_ontology_ids
register_ontology_ids(cxg_datasets)
Hide code cell output
registering assay
βœ… loaded 36 ExperimentalFactor records matching ontology_id: 'EFO:0700016', 'EFO:0008722', 'EFO:0010961', 'EFO:0030003', 'EFO:0008930', 'EFO:0008992', 'EFO:0030019', 'EFO:0030027', 'EFO:0700003', 'EFO:0030002', 'EFO:0008931', 'EFO:0008720', 'EFO:0009899', 'EFO:0009901', 'EFO:0010891', 'EFO:0008796', 'EFO:0008919', 'EFO:0011025', 'EFO:0009919', 'EFO:0700010', ...
βœ… created 2 ExperimentalFactor records from Bionty matching ontology_id: 'EFO:0022490', 'EFO:0022492'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: bt.settings.auto_save_parents = False
πŸ’‘ also saving parents of ExperimentalFactor(uid='NuGX0K6A', name='ScaleBio single cell RNA sequencing', ontology_id='EFO:0022490', description='Scalebio Technology That Utilizes A Plate-Based Approach With Combinatorial Indexing To Generate Single Cell Libraries.', created_by_id=1, run_id=27, public_source_id=68, updated_at='2024-07-12 14:20:41 UTC')
πŸ’‘ also saving parents of ExperimentalFactor(uid='5rfEtsEk', name='snm3C-seq', ontology_id='EFO:0022492', synonyms='sn-m3C-seq', description='A Method To Jointly Profile Chromatin Conformation And Cytosine Dna Methylation From The Same Cell.', molecule='DNA assay', instrument='assay by high throughput sequencer', created_by_id=1, run_id=27, public_source_id=68, updated_at='2024-07-12 14:20:41 UTC')
registering cell_type
βœ… loaded 881 CellType records matching ontology_id: 'CL:4023036', 'CL:0003001', 'CL:4023041', 'CL:0000050', 'CL:0011024', 'CL:1001131', 'CL:0000695', 'CL:3000001', 'CL:2000097', 'CL:0000515', 'CL:0002328', 'CL:0000895', 'CL:0009010', 'CL:1001567', 'CL:0000935', 'CL:0000514', 'CL:0008031', 'CL:0000928', 'CL:1000353', 'CL:0000322', ...
βœ… created 10 CellType records from Bionty matching ontology_id: 'CL:4030059', 'CL:4030061', 'CL:4030062', 'CL:4030063', 'CL:4030065', 'CL:4030066', 'CL:4030067', 'CL:4033056', 'CL:4033057', 'CL:4033058'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: bt.settings.auto_save_parents = False
πŸ’‘ also saving parents of CellType(uid='42PLafOv', name='L2/3 intratelencephalic projecting glutamatergic neuron', ontology_id='CL:4030059', description='An Intratelencephalic-Projecting Glutamatergic Neuron With A Soma Found In Cortical Layer 2/3.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='aECMKjUW', name='L3 intratelencephalic projecting glutamatergic neuron', ontology_id='CL:4030061', description='An Intratelencephalic-Projecting Glutamatergic Neuron With A Soma Found In Cortical Layer 3.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='6IlUXXLR', name='L4/5 intratelencephalic projecting glutamatergic neuron', ontology_id='CL:4030062', description='An Intratelencephalic-Projecting Glutamatergic With A Soma Located In Cortical Layer 4/5.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='2HrbvQGK', name='L4 intratelencephalic projecting glutamatergic neuron', ontology_id='CL:4030063', description='An Intratelencephalic-Projecting Glutamatergic Neuron With A Soma Found In Cortical Layer 4.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='2ZbG4sPC', name='L6 intratelencephalic projecting glutamatergic neuron', ontology_id='CL:4030065', description='An Intratelencephalic-Projecting Glutamatergic Neuron With A Soma Found In Cortical Layer 6.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='hRZYk1yi', name='ureteric bud cell', ontology_id='CL:4030066', description='An Epithelial Cell That Is Part Of A Ureteric Bud. A Ureteric Bud Cell Has The Potential To Induce Metanephric Mesenchymal Cells To Proliferate And Convert To Epithelia That Form Renal Tubules Via: (1) The Secretion Of Multiple Diffusible Growth Factors That Rescue Renal Progenitors From Apoptosis And Stimulate Them To Proliferate And (2) Contact-Dependent Mechanisms That Induce Mesenchymal-Epithelial Conversion.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='4wlSFvBI', name='L5/6 near-projecting glutamatergic neuron', ontology_id='CL:4030067', description='A Near-Projecting Glutamatergic Neuron With A Soma Found In Cortical Layer 5/6.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='5fugWvKl', name='onychocyte', ontology_id='CL:4033056', description='A Differentiated Flat Keratinocyte That Is Part Of A Nail Plate. An Onychocyte Is Firmly Adherent And Does Not Desquamate.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='2wh8CpfX', name='luminal adaptive secretory precursor cell of mammary gland', ontology_id='CL:4033057', synonyms='ER-negative luminal alveolar progenitor', description='A Luminal Epithelial Cell Of The Mammary Gland That Can Proliferate And Has The Potential To Differentiate Into A Lactocyte During Pregnancy. In Humans, A Luminal Adaptive Secretory Precursor Cell Can Be Identified By High Levels Of The Markers Epcam And Cd49F, And In Mice It Can Be Identified By Low Levels Of Cd29 And High Levels Of Cd14, Kit, Cd61, And Tspan8.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
πŸ’‘ also saving parents of CellType(uid='1RLBZZWy', name='luminal hormone-sensing cell of mammary gland', ontology_id='CL:4033058', synonyms='ER-positive luminal hormone-sensor cell', description='A Luminal Epithelial Cell Of The Mammary Gland That Transduces Endocrine Cues To Orchestrate Proliferation, Architectural Remodeling, And Differentiation Of Other Cells In The Mammary Gland Via Paracrine Signaling. This Cell Expresses High Levels Of Estrogen Receptors. In Humans, A Luminal Hormone-Sensing Cell Can Be Identified By High Levels Of Epcam And Low Levels Of Cd49F, And In Mice It Can Be Identified By Low Levels Of Cd29 And High Levels Of Foxa1, Cd133, And Sca1 (Ly6A).', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:43 UTC')
βœ… loaded 2 CellType records matching ontology_id: 'CL:0002326', 'CL:0000152'
βœ… created 1 CellType record from Bionty matching ontology_id: 'CL:0000512'
πŸ’‘ also saving parents of CellType(uid='6eUNBkGI', name='paracrine cell', ontology_id='CL:0000512', description='A Paracrine Cell Is A Secretory Cell That Secretes An Agonist Into Intercellular Spaces In Which It Diffuses To A Target Cell Other Than That Which Produced It.', created_by_id=1, run_id=27, public_source_id=60, updated_at='2024-07-12 14:20:47 UTC')
registering development_stage
βœ… loaded 243 DevelopmentalStage records matching ontology_id: 'HsapDv:0000143', 'HsapDv:0000021', 'HsapDv:0000208', 'HsapDv:0000029', 'HsapDv:0000212', 'UBERON:0000113', 'HsapDv:0000030', 'MmusDv:0000054', 'HsapDv:0000166', 'HsapDv:0000058', 'HsapDv:0000107', 'HsapDv:0000120', 'MmusDv:0000046', 'HsapDv:0000198', 'MmusDv:0000072', 'MmusDv:0000091', 'HsapDv:0000057', 'HsapDv:0000140', 'HsapDv:0000096', 'HsapDv:0000256', ...
❗ did not create DevelopmentalStage record for 1 non-validated ontology_id: 'MmusDv:0000041'
βœ… created 1 DevelopmentalStage record from Bionty matching ontology_id: 'MmusDv:0000041'
registered 1 records: [DevelopmentalStage(uid='6jNHUvWd', name='unknown', ontology_id='MmusDv:0000041', created_by_id=1, run_id=27, public_source_id=44)]
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: bt.settings.auto_save_parents = False
πŸ’‘ also saving parents of DevelopmentalStage(uid='6jNHUvWd', name='unknown', ontology_id='MmusDv:0000041', created_by_id=1, run_id=27, public_source_id=44, updated_at='2024-07-12 14:20:50 UTC')
registering disease
βœ… loaded 122 Disease records matching ontology_id: 'MONDO:0005147', 'MONDO:0005021', 'MONDO:0004849', 'MONDO:0005252', 'MONDO:0008608', 'MONDO:0005148', 'MONDO:0005016', 'MONDO:0002771', 'MONDO:0021178', 'MONDO:0002052', 'MONDO:0019622', 'MONDO:0001933', 'MONDO:0024660', 'MONDO:0005575', 'MONDO:0004994', 'MONDO:0021116', 'MONDO:0600025', 'MONDO:0002508', 'MONDO:0005061', 'MONDO:0005453', ...
❗ did not create Disease record for 1 non-validated ontology_id: 'MONDO:0100542'
registered 1 records: [Disease(uid='1sfLCprL', name='clonal hematopoiesis', ontology_id='MONDO:0100542', created_by_id=1, run_id=27)]
registering self_reported_ethnicity
registering sex
registering tissue
βœ… loaded 417 Tissue records matching ontology_id: 'UBERON:0001836', 'UBERON:0000992', 'UBERON:0003532', 'UBERON:0000411', 'UBERON:8480030', 'UBERON:0039167', 'CL:0002328', 'UBERON:0003876', 'UBERON:0002119', 'UBERON:0007628', 'UBERON:0000955', 'UBERON:0000310', 'UBERON:0002382', 'UBERON:0002046', 'UBERON:0000059', 'UBERON:0034891', 'UBERON:0007224', 'UBERON:0000970', 'UBERON:0001049', 'UBERON:0000948', ...
❗ did not create Tissue record for 1 non-validated ontology_id: 'CL:0000307'
registered 1 records: [Tissue(uid='3bgY2Yz8', name='tracheal epithelial cell', ontology_id='CL:0000307', created_by_id=1, run_id=27)]
registering organism
# clean up the celltype in Tissue
import bionty as bt

bt.Tissue.filter(ontology_id='CL:0000307').delete()
bt.CellType.from_public(ontology_id='CL:0000307').save()

donors and suspension_typesΒΆ

from cellxgene_lamin._labels import register_ulabels
ln.settings.creation.search_names = False
register_ulabels(cxg_datasets, "donor_id")
ln.settings.creation.search_names = True
registered 1207 donor_ids
register_ulabels(cxg_datasets, "suspension_type")
registered 0 suspension_types

Annotate artifacts with obs metadataΒΆ

from cellxgene_lamin._features import FEATURE_TO_ACCESSOR
import bionty as bt

features = ln.Feature.lookup()

for idx, cxg_dataset in enumerate(cxg_datasets):
    if idx % 100 == 0:
        print(f"annotating dataset {idx} of {len(cxg_datasets)}")
    artifact = artifacts.filter(key__contains=cxg_dataset["dataset_id"]).one_or_none()
    if artifact is None:
        continue
    for field, terms in cxg_dataset.items():
        if field not in FEATURE_TO_ACCESSOR:
            continue
        accessor, orm = FEATURE_TO_ACCESSOR.get(field)
        if field in ["donor_id", "suspension_type", "tissue_type"]:
            records = orm.from_values(terms, field="name")
            if len(records) > 0:
                # stratify by feature so that link tables records are written
                artifact.labels.add(records, feature=getattr(features, field))
        else:
            if field == "tissue":
                records = []
                celltypes = [i["ontology_term_id"] for i in terms if i["tissue_type"]=="cell culture"]
                if len(celltypes) > 0:
                    # records += bt.CellType.from_values(
                    #     [i["ontology_term_id"] for i in terms], field="ontology_id"
                    # )
                    print(f"These tissues are not yet linked: {celltypes}")
                tissues = [i["ontology_term_id"] for i in terms if i["tissue_type"]!="cell culture"]
                if len(tissues) > 0:
                    records += bt.Tissue.from_values(
                        [i["ontology_term_id"] for i in terms], field="ontology_id"
                    )
            else:
                records = orm.from_values(
                    [i["ontology_term_id"] for i in terms], field="ontology_id"
                )
            if len(records) > 0:
                getattr(artifact, accessor).add(*records)

# clean up the 2 "unknowns" in DevelopmentalStage
bt.DevelopmentalStage.filter(name="unknown").exclude(ontology_id="unknown").delete()
annotating dataset 1370 of 1387
annotating dataset 1371 of 1387
annotating dataset 1372 of 1387
annotating dataset 1373 of 1387
annotating dataset 1374 of 1387
annotating dataset 1375 of 1387
annotating dataset 1376 of 1387
annotating dataset 1377 of 1387
annotating dataset 1378 of 1387
These tissues are not yet linked: ['CL:0002322']
annotating dataset 1379 of 1387
annotating dataset 1380 of 1387
annotating dataset 1381 of 1387
annotating dataset 1382 of 1387
annotating dataset 1383 of 1387
annotating dataset 1384 of 1387
annotating dataset 1385 of 1387
annotating dataset 1386 of 1387

Validate and register genesΒΆ

from cellxgene_lamin._gene import register_genes

Register all genes for each organism:

register_genes()
registering homo_sapiens genes
βœ… 62754 terms (100.00%) are validated for ensembl_gene_id
registering mus_musculus genes
βœ… loaded 55281 Gene records matching ensembl_gene_id: 'ENSMUSG00000102693', 'ENSMUSG00000064842', 'ENSMUSG00000051951', 'ENSMUSG00000102851', 'ENSMUSG00000103377', 'ENSMUSG00000104017', 'ENSMUSG00000103025', 'ENSMUSG00000089699', 'ENSMUSG00000103201', 'ENSMUSG00000103147', 'ENSMUSG00000103161', 'ENSMUSG00000102331', 'ENSMUSG00000102348', 'ENSMUSG00000102592', 'ENSMUSG00000088333', 'ENSMUSG00000102343', 'ENSMUSG00000025900', 'ENSMUSG00000102948', 'ENSMUSG00000104123', 'ENSMUSG00000025902', ...
βœ… created 1660 Gene records from Bionty matching ensembl_gene_id: 'ENSMUSG00000119939', 'ENSMUSG00000119940', 'ENSMUSG00000119941', 'ENSMUSG00000119942', 'ENSMUSG00000119943', 'ENSMUSG00000119944', 'ENSMUSG00000119945', 'ENSMUSG00000119946', 'ENSMUSG00000119947', 'ENSMUSG00000119948', 'ENSMUSG00000119949', 'ENSMUSG00000119950', 'ENSMUSG00000119951', 'ENSMUSG00000119952', 'ENSMUSG00000119953', 'ENSMUSG00000119954', 'ENSMUSG00000119955', 'ENSMUSG00000119956', 'ENSMUSG00000119957', 'ENSMUSG00000119958', ...
βœ… 56941 terms (100.00%) are validated for ensembl_gene_id
registering synthetic_construct genes
βœ… 92 terms (100.00%) are validated for ensembl_gene_id
registering severe_acute_respiratory_syndrome_coronavirus_2 genes
βœ… 12 terms (100.00%) are validated for ensembl_gene_id

Annotate tissue_typeΒΆ

register_ulabels(cxg_datasets, "tissue_type")

Register collectionsΒΆ

collection = ln.Collection(
    artifacts,
    name="cellxgene-census",
    version=census_version,
    is_new_version_of=ln.Collection.filter(
        name="cellxgene-census", version=previous_release
    ).one(),
)
collection.save()
πŸ’‘ adding collection ids [456] as inputs for run 27, adding parent transform 19
βœ… saved 1 feature set for slot: 'var'
cxg_collections = get_collections_from_cxg()
artifacts.first().key
'cell-census/2024-07-01/h5ads/98e5ea9f-16d6-47ec-a529-686e76515e39.h5ad'
ln.settings.creation.search_names = False
for collection_meta in cxg_collections:
    keys = [
        f'cell-census/{census_version}/h5ads/{dataset["dataset_id"]}.h5ad'
        for dataset in collection_meta["datasets"]
    ]
    collection_artifacts = artifacts.filter(key__in=keys).all()
    if collection_artifacts.count() > 0:
        kwargs = dict(
            name=collection_meta["name"],
            description=collection_meta["doi"],
            reference=collection_meta["collection_id"],
            reference_type="CELLxGENE Collection ID",
            version=census_version,
        )
        collection_record = ln.Collection(
            collection_artifacts,
            **kwargs,
        )
        # if is needed here as .save() errors if collection is already saved
        if collection_record._state.adding:
            collection_record.save()
ln.settings.creation.search_names = True
❗ returning existing collection with same hash: Collection(uid='5LEE4fd5yMXsRtR6WUrs', version='2024-07-01', name='Type I interferon responsive microglia shape cortical development and behavior', description='10.1016/j.cell.2024.02.020', hash='UzOU3URUb50M_5lZtThV', reference='4828d33d-fb26-42e7-bf36-18293b0eec85', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:38 UTC')
❗ returning existing collection with same hash: Collection(uid='fYJ7GBbbLRwmVRHyDYu9', version='2024-07-01', name='Human breast cell atlas', description='10.1038/s41588-024-01688-9', hash='wXMzOvp8a-_nGgkwfjSM', reference='48259aa8-f168-4bf5-b797-af8e88da6637', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:38 UTC')
❗ returning existing collection with same hash: Collection(uid='6Nu0TAYjj2ePrtyUe6HL', version='2024-07-01', name='SEA-AD: Seattle Alzheimer’s Disease Brain Cell Atlas', description='10.1101/2023.05.08.539485', hash='PDK1s9n30FRoxgRVUV-8', reference='1ca90a2d-2943-483d-b678-b809bf464c30', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:40 UTC')
❗ returning existing collection with same hash: Collection(uid='iuZQ5FuxUx8djUoy0wBW', version='2024-07-01', name='Molecular and spatial signatures of mouse brain aging at single-cell resolution', description='10.1016/j.cell.2022.12.010', hash='drimjqzQf_jCXILUH6Qb', reference='31937775-0602-4e52-a799-b6acdd2bac2e', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:40 UTC')
❗ returning existing collection with same hash: Collection(uid='XGeEFfpeKAYMtQlnJAaY', version='2024-07-01', name='Multi-scale spatial mapping of cell populations across anatomical sites in healthy human skin and basal cell carcinoma', description='10.1073/pnas.2313326120', hash='SR4yp3Hfk5B3SrqRoNXN', reference='34f12de7-c5e5-4813-a136-832677f98ac8', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:41 UTC')
❗ returning existing collection with same hash: Collection(uid='mKfQgOwlCTuLFneySJGV', version='2024-07-01', name='LungMAP β€” The genomic, epigenomic and biophysical cues controlling the emergence of the gas exchange niche in the lung.', description='10.1126/science.abc3172', hash='51fJjmq_GrC2uLS3Klvm', reference='48d354f5-a5ca-4f35-a3bb-fa3687502252', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:41 UTC')
❗ returning existing collection with same hash: Collection(uid='cwFRDKcBVLQ1DgA4O6nC', version='2024-07-01', name='Single cell transcriptomic profiling identifies molecular phenotypes of newborn human lung cells', description='10.3390/genes15030298', hash='P4dNll_9XIdx7s4kAugC', reference='28e9d721-6816-48a2-8d0b-43bf0b0c0ebc', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:42 UTC')
❗ returning existing collection with same hash: Collection(uid='jelUsbHyfZH67CXH4Y9I', version='2024-07-01', name='A single-cell transcriptional roadmap of the mouse and human lymph node lymphatic vasculature', description='10.3389/fcvm.2020.00052', hash='nYmNBfcoJd_QfCqr6xUX', reference='9c8808ce-1138-4dbe-818c-171cff10e650', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:47 UTC')
❗ returning existing collection with same hash: Collection(uid='Iu3eo1onLtTxVw1jhXA9', version='2024-07-01', name='Type I interferon autoantibodies are associated with systemic immune alterations in patients with COVID-19', description='10.1126/scitranslmed.abh2624', hash='bfClxMqNa1i5FbGt8qjI', reference='7d7cabfd-1d1f-40af-96b7-26a0825a306d', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:47 UTC')
❗ returning existing collection with same hash: Collection(uid='kZGohNB7hv9Qu2QlfMe3', version='2024-07-01', name='Insulin is expressed by enteroendocrine cells during human fetal development', description='10.1038/s41591-021-01586-1', hash='_1jCWDd-1qoqGzSTpmZ4', reference='7651ac1a-f947-463a-9223-a9e408a41989', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:48 UTC')
❗ returning existing collection with same hash: Collection(uid='tY63QUQc4y2Iv3pC2v4X', version='2024-07-01', name='Multiomic Profiling of Human Clonal Hematopoiesis Reveals Genotype and Cell-Specific Inflammatory Pathway Activation', description='10.1182/bloodadvances.2023011445', hash='YrsiMzRiXI7IML3mmKPo', reference='0aab20b3-c30c-4606-bd2e-d20dae739c45', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:49 UTC')
❗ returning existing collection with same hash: Collection(uid='Ioc0kigyLbByHgTGVEdi', version='2024-07-01', name='High-resolution single-cell atlas reveals diversity and plasticity of tumor-associated neutrophils in non-small cell lung cancer', description='10.1016/j.ccell.2022.10.008', hash='sQ2o8xVD_cZ2S9pVIAnU', reference='edb893ee-4066-4128-9aec-5eb2b03f8287', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:50 UTC')
❗ returning existing collection with same hash: Collection(uid='7D6yIlnySNfVDZozoMuk', version='2024-07-01', name='Comparative transcriptomics reveals human-specific cortical features', description='10.1126/science.ade9516', hash='6aAYLBJvC-dOgnZxg7sd', reference='4dca242c-d302-4dba-a68f-4c61e7bad553', reference_type='CELLxGENE Collection ID', visibility=1, created_by_id=1, transform_id=22, run_id=27, updated_at='2024-07-16 12:17:50 UTC')
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'
βœ… saved 1 feature set for slot: 'var'

Add existing collections to their corresponding version families:

collections = ln.Collection.filter(version=census_version).all()
collections.count()
177
collections_previous = ln.Collection.filter(version=previous_release).all()
collections_previous.count()
165
for collection in collections:
    collection_previous = collections_previous.filter(
        reference=collection.reference
    ).one_or_none()
    if collection_previous is not None:
        collection.add_to_version_family(collection_previous, version=census_version)
Hide code cell output
βœ… updated uid from dMyEX3NTfKOEYXyMciWu to dMyEX3NTfKOEYXyMKDD7!
βœ… updated uid from fYJ7GBbbLRwmVRHyDYu9 to kAcitlx0g6C2lgacOCAS!
βœ… updated uid from 6Nu0TAYjj2ePrtyUe6HL to Q2lwtI06DtUQbWUMUAs5!
βœ… updated uid from iuZQ5FuxUx8djUoy0wBW to 1MYLC8DhQK3wsKtZHZgD!
βœ… updated uid from mKfQgOwlCTuLFneySJGV to jMgmBjDxsNvnkgTHWWoP!
βœ… updated uid from jelUsbHyfZH67CXH4Y9I to 0H2X3A2FhWOgA7i8EtaM!
βœ… updated uid from Iu3eo1onLtTxVw1jhXA9 to gwCdNiXJtlYDhd6gPLLP!
βœ… updated uid from kZGohNB7hv9Qu2QlfMe3 to PUJ2Tv8Ie9lUbxb0ZSfl!
βœ… updated uid from Ioc0kigyLbByHgTGVEdi to Op2drQc2W4DokUc9PpQ6!
βœ… updated uid from 7D6yIlnySNfVDZozoMuk to uarP82A6F0cOH8dKjpQL!
βœ… updated uid from moIxw3JxMtRl9Py5Js6I to nZaV7G3xaFHYYWeJSCvZ!
βœ… updated uid from hg78nvGj2jsvrdLVkJHa to IwAqdxTSCfEgrnuWWvKP!
βœ… updated uid from Cnveibz2XUCqju5A6PbU to WJLbdahJcDE8E9mzsjbl!
βœ… updated uid from Q4327JEqd4gLomTAK1YO to D4mQlKcQOGzGvZrWCXrh!
βœ… updated uid from J9rYTZb0QfERXA6O8gnm to DI60aiNNLqOpa8t3JJPJ!
βœ… updated uid from K4fEurXklkZQuNCWCWBC to RWmOmv3bnmWvbYSmFBq8!
βœ… updated uid from 7S4Pmlzjq00sMsC7vPTr to km2M7msz9NtEBqDVL6n7!
βœ… updated uid from oVpYrbDghZuTXTs2asev to iTdQLpLfAhvqOsNIpr4A!
βœ… updated uid from 6JrvWiJt8c7DVrZOOtpM to M84z8Rh7Z2obJbvBlHo1!
βœ… updated uid from 3b0pMqkpbCGkOKJEOp0v to RoCAhVTi0ao0p5yXmoA6!
βœ… updated uid from IuAVLIuHvsWds3mI6CqJ to wHFESrWvDls8N3ywjqkN!
βœ… updated uid from CRqaZxz7P94dVrpJVrcJ to hhzgrH6ZdsP54F29RPP0!
βœ… updated uid from dZmSd3DQ6EjJFVRv6Kgz to KPB4Hic8RZym5HaAbpyZ!
βœ… updated uid from AdFZTnmod3UCe00FEfwz to v7RKtneHPCkCVyU1dXoz!
βœ… updated uid from mfDciDOR7XS1d7NneuuJ to XOl1N7D7hXW6n9EsW7x3!
βœ… updated uid from xaL1hQb366nEYJHWEGmU to 6tT3kRYI2c6slEpvwfRX!
βœ… updated uid from dwestwYMl0YDb67PTqAQ to 3eYxM8IjTZVOrbvXPIJ3!
βœ… updated uid from GGk25Hi2QZDRZw555ZQ5 to SuNR9dTsshWd6MYN2IL8!
βœ… updated uid from IBd2D7PFaFz8ePVxcdvD to BrNY23NpauL2lyDtiRkn!
βœ… updated uid from KVV5AsraS8hzxP4YxT0i to iFVFKj9fKdUH7pY1zMro!
βœ… updated uid from ByhRTjMcDGgCJtRI1fgU to 9yfmjrGcMNMd37ogpxmj!
βœ… updated uid from 9lJt2hyfKNb13j7p0cHG to qLRcbwF6CgxlklqqTRFr!
βœ… updated uid from fgRC3e9PBCkE9OPA9DKo to 0dOlh07SLGzVeaRMvSGQ!
βœ… updated uid from nS6L2cXlV8EAaQFHxkES to 94eNDctVYvr7mrdpMclC!
βœ… updated uid from ZsMO69tiAzlQIHlttsIt to I5MMFFAGoWtSa43bentd!
βœ… updated uid from zhVDwLrapwteXdDmRxvF to AK50xC5oXngFz72HVjHR!
βœ… updated uid from aLxcqV3jSL1xeG1JVY9C to sOamqZMlsMfKH5SWj4nK!
βœ… updated uid from bPbQoidniedqCIYDSRBz to JAK8eDp8BmHPjKfTZhME!
βœ… updated uid from HCtKNYT75uP3dbn0SSzA to GvLlD9JDDqWjPkvERqDR!
βœ… updated uid from 1xHpCX5MktkIjO7GEdRy to hdE4OJYcxWgmKoUcR6SL!
βœ… updated uid from 1rSJxJHs5J0KgqwEJfQ3 to olY10cghAPIz2oGrIWMq!
βœ… updated uid from aYxxVzPMs1QZmQCFbqRH to 4EiiJgcIrR3QLRnU7GC2!
βœ… updated uid from FtLRAy0HoCE47NRaJzzi to YVo6IaHRKZfDxJLMfiP8!
βœ… updated uid from aTVmsocXMwV5DGaharIr to 5jphRyjMm0wYpMaUnUTx!
βœ… updated uid from MeiGlQLdi06QFgsNHG4I to vfxWN9BEYFDb5kY8N1Vg!
βœ… updated uid from 9XB47ouBfu5FowLT5U6h to tZYmzwfh0bIYzKBQVuro!
βœ… updated uid from 9yNQuuDASOqEgwmq6LTp to Yed6da6CsPXaGmLQDGmn!
βœ… updated uid from CDojmX5aCcDldiDXhG6Z to EMBNZeigssidDwb4eCs4!
βœ… updated uid from i2FQEG8pMK9PnQEvcbb3 to vGq7f3WWgBMgCRXmmmR9!
βœ… updated uid from iZeVehqLA78Fs3FlcWXh to vUL4bLnfnvI2hRpBSfK5!
βœ… updated uid from eB6pmrbx3OJzqan1k5E1 to y6XaxhXv4BVcOAo9U4cz!
βœ… updated uid from Vhc1AWUEywCpdGUM5SWo to EMmA6XE0t183Gsba3J5X!
βœ… updated uid from kkK1dAv4oj6giIa87hrd to VVsweEynenmLLY85PaXn!
βœ… updated uid from 1F0kNiufsSrYHxOoJOES to RnmHQkzC78TivXFy5ycL!
βœ… updated uid from m6c0OFUxpwhMNMzsmfOt to VP3ieyEFOixwhsBYECKC!
βœ… updated uid from W5LDazc1PzFDdw4WFkDw to KKCcdJaQH9D8AK5NCBuH!
βœ… updated uid from Y2SPuctTfg7jB5W5jn8X to q7dJs4VrNoEGx8rK1OSD!
βœ… updated uid from 7vISuZIqLCwrmROJoIoE to idf1gv334K5FkrHFNI5h!
βœ… updated uid from VOJOMDScWgsXU4vStY9Y to lVPsdIh56TVNlEx2WF4d!
βœ… updated uid from 2aFuVGM2z1KkyFlvH7qz to 1XNsbOgjaUKIh64FJXDs!
βœ… updated uid from 1LVsLdFsY5ThNtn2om4m to BROXfXCEj7e1V4gw2NKZ!
βœ… updated uid from qLenHC8lY5CP1imzGu5T to oCCJTIIDT9HQd3LNOOVp!
βœ… updated uid from qAF5K3bMy9M0q4xlL9Xh to 1ufVK1EvG99Fgq7mYN6r!
βœ… updated uid from tmo3R1Qml3o4dINw1YQZ to IOkwvXcfL2hyt8R9EQjR!
βœ… updated uid from RPyFAi5ybA35BENTE7kb to I78OxPCebBfC0xIgbeTX!
βœ… updated uid from 5GoCoZPDgaEmEAfCQIxB to 1bXqTYYBWc7cqqMgfr0f!
βœ… updated uid from nVSPgJbJ6tNwDa37cR9U to ZzUntpjOt8v7AwqdkRP0!
βœ… updated uid from gkq1Sl3WhRD96SBH9kLb to D1iu1zmxG7KgjVx8ZVPV!
βœ… updated uid from 62P2AbbaPyfse4A4ENdI to HFLbbT3k1JxVUgKpJDHH!
βœ… updated uid from HGLY9RwvLcp8z4PvGpb9 to d6gWiRY3XXy8qj0VZ6ux!
βœ… updated uid from sbbX3UXhCKxhoiDMuXVw to HfPCzJuNYrI9QfV5rzZx!
βœ… updated uid from Gc8I13MrBIMYoWQYpQVl to rbcRjHfXE0LKIvZcjZro!
βœ… updated uid from 1sySaUsCn0g2LJ8PAGSr to 4CmbJrpoAWg19fjEiI0l!
βœ… updated uid from mggs0QTtLW13NBJg007H to rajIlBML7BvEzz3yUvhv!
βœ… updated uid from 3sk4tR2jqpdRzvN7qKhL to zZLyhpo1aDdxdbULFbVT!
βœ… updated uid from BgYMd7y4VfrDTmZG3Oh1 to 4mzgY3wTBZ9wMhVzlZLT!
βœ… updated uid from WU2Iumu24KA4apXo8Itd to PWDH0VJMkhsYyHwgIhN9!
βœ… updated uid from xuLeoFok7WH7p5fu9WcZ to wNOorBV9YnTaI9qQa7Qr!
βœ… updated uid from zJDCZ4RIepbJsQekTqiQ to veK7yRfThpdptF4vRiGg!
βœ… updated uid from OI9yPyz0FOq4Kf2w3Nwg to iXkgtvx2L7ZxZDX6wZFH!
βœ… updated uid from ZLrYeEchDM49i9dtyBPW to 9LsQD4Qbh1dKq5Sj6FrC!
βœ… updated uid from ul7bdBYoqhvYKvfiZKOg to vjsPjCXG7X9LPU8vWkhP!
βœ… updated uid from Plvn6tiNOEV0gQ8XdemG to IzQdA3dJgMqv60GapqOC!
βœ… updated uid from oMZSCnvB3ItQV17wDNzT to kDJ9Xb8d11d93LAHMJpf!
βœ… updated uid from Jp1XooGrkZqdufGWQz70 to nVY0j9lZNdNL61EdyDq7!
βœ… updated uid from 2kf7upUHLHmAYTILZuBk to OImDNzgLRxoYfFT8Y76V!
βœ… updated uid from 3tsT59OPeJi8iUXDfXOh to 2yoIZbpp2mq2oqMNf3VO!
βœ… updated uid from EjRsiCRs0StjF71Vj8mG to n2lVzwwawVqsJ5u5qBZq!
βœ… updated uid from QbVpgUll2BMiDosd4rTv to 28dvpXZpoi1qD8LnAlb3!
βœ… updated uid from 4jSg60cQmqFddeEsPIl0 to 2gBKIwx8AtCHc4nfcQqc!
βœ… updated uid from 2ZS8rF54RWLGg8lEKapD to kzeNot0sAt848R4qSEKs!
βœ… updated uid from 6WJpX3Dg8f7xdPveLduz to gHBNw253Sj64W4wBFZkE!
βœ… updated uid from yx5x6dJEFOFkJ3KAY2cy to 1wS0REe0cAfduc8tWxML!
βœ… updated uid from IuhSKlDmvbkQl9rDDq2g to Q1wNvCwqAOnrtKTbzbqR!
βœ… updated uid from rBemmcHX2bh33bJcOKWE to 1IrEYjM56rE7SEltiWNe!
βœ… updated uid from zkEKDZdk6J0BQS7BaQaE to 4o637zldLBYp12h3gT6Z!
βœ… updated uid from LZXiD45T2YUfaYDYNOlD to ocJEJ2xS6KZH95ngzvTq!
βœ… updated uid from tG85g4DZPAtHH1zru6Fz to KB2Fpjcokbm2UBLNFYjW!
βœ… updated uid from 1tVMkWeDbAnqXy0EdTqd to 60hcu8l3K5HpiZVwYVCf!
βœ… updated uid from 0WNbjUmxmJSuZRTMT4JQ to xAdBoFC2SWW8a0weqh1N!
βœ… updated uid from f8Nuvt2x6W4mmSXHskXN to q1YP6rAY7SSrZ1Tkx4Up!
βœ… updated uid from P2ehV04thYY2dO2nhoo0 to 7xatbabJNWdh0uMwoAZl!
βœ… updated uid from KkcbpjKTWTkFpGc1c27S to oHwAz0bRdryXX6EhDN1g!
βœ… updated uid from Z8msUCmKnOQrG9z6XATm to vOt1sh7kQCO5CzRy39Mb!
βœ… updated uid from mS1Jk5zzeVCYvMINkX5T to 1879QoxBW96febHBb94x!
βœ… updated uid from l84UtdnAxR5nJFty4zzC to urOgy3d2zakh9vP6WgL5!
βœ… updated uid from 4k67yPWTPOSDoGzo9ICW to WDwVnJuArH1QWR2QQPBE!
βœ… updated uid from EhbtDL5CujLBfqHz8hg9 to CrY3Fw6G29qJSenUy1Ox!
βœ… updated uid from r8tKNYjbSqccW9AfQJF6 to jV7cCEQfgHGNhtVFMpyX!
βœ… updated uid from qbpbPs3ViBs9dzZbgDL0 to 8Rn5Tl3rykhNieH79Jhx!
βœ… updated uid from ecZQ9Vu0G2tezhFy1Oqb to TWZevdipvmWsuEiF84mT!
βœ… updated uid from kCPyvj5CUH7dO8JIxaqY to qtjPc1TBPcgWNCJyoFVs!
βœ… updated uid from mgqofErhBPosFQcFWLbq to kqiPjpzpK9H9rdtnCt1o!
βœ… updated uid from 6JFO9QuvIoKWqIP8A5li to ke6FOitDtvoq8XONEyiY!
βœ… updated uid from FarkrFdYaoXjMfUQRM89 to bOAWmbIN8bdXZh5F8dkx!
βœ… updated uid from Rg8iSXOAnmCJDKEUEEPW to gEX3na35hQk5ZOGBAACd!
βœ… updated uid from MKSG0pvHfXgk6c3VPODx to Oukj3dkWzNST4iiVAQe9!
βœ… updated uid from UBBA9zQC8HLYgmRYRcly to FZ2NjVzMuGVxom1ZSPxp!
βœ… updated uid from pufGlDRhKu3eBsD3YKe9 to tCaHB7zSD8S6MAhFifKl!
βœ… updated uid from MQUKS7C6v7rmTqKH8GKl to mDcZsWmaZqRBtJgkhF0o!
βœ… updated uid from iNf776ZxGeGgRHyarpS1 to sXNKPODk8bbXZdSnqEXf!
βœ… updated uid from 8OpWtQlec9HvbGH767l9 to quQDnLsMLkP3JRsC8gp4!
βœ… updated uid from 53Y1VIsfXPDqbOV4pk3g to 1qo3tBI7la7JNT7c8o9i!
βœ… updated uid from aZFKWnJex3ydKdveVDc9 to sK6CMdZCjNaMJdeuKU0L!
βœ… updated uid from bHXOYXNDoUvr2oOjhKDn to Yxth0JJgMb2VVOCfSgWj!
βœ… updated uid from 3SaG35DqczV2BJzQh86a to 9t5Mx1vYSpdrRNg0XXdV!
βœ… updated uid from zXk2XkZfp2vq4OnU9KL5 to 1bpAt9Hk4djMs3OCiwaS!
βœ… updated uid from dv6lVJLczlm9VNzKGRIC to FaJmPleTV3HjPBTdezTB!
βœ… updated uid from M98VUdhFfpMXq7fjpm6j to jS3RYae1gf0fT2B3xrSz!
βœ… updated uid from utsuNrsRrsh4ydq1sa6u to 2AD1dN2753sXScFNNX2o!
βœ… updated uid from JV7kCIV6bcKqc31YnS6T to M9ZzRKzzayhdh6ph0IX9!
βœ… updated uid from OyheAMFiyqRFEs9OQGWn to H6vvljrLTkJ61R4Vy2DV!
βœ… updated uid from 5GbOXgtnEBQuFu3nU1Ez to W5oiGwA9QAZwjMQKLzWk!
βœ… updated uid from 0bastS5jEWCcEW27Tdva to w1noEANQfbDv7a0y47pd!
βœ… updated uid from OHTF76XfoSmgJL6VtpgC to jmk1ayW8PdQaPPHlOkj7!
βœ… updated uid from QcFTjiftO6TZtOxAnIsH to H5uu4ULRKZVmmTkr3Ml9!
βœ… updated uid from PIP0Vprz9TDmF0GIKP1o to WpJDkF942c2mHNbJ3En3!
βœ… updated uid from HS3aaQQ5VpHlM0G8tJrn to 6sOT5dCCyQAAX5bTwzhT!
βœ… updated uid from ktFRARpMxhfUQ7WgUYzL to yql5LxVFGGa5LiIEOnE9!
βœ… updated uid from wXAkwBDVpCakaTBOhEfJ to 57MCDAB1w3eK7I5QOFpw!
βœ… updated uid from S6FiZ6QjnTz8bszp6b3v to f8IWHzCeBxqmQA9opHqq!
βœ… updated uid from IBMXS5y5PYldz6bBguZQ to xz9kRdjXkrgxSTjOBSbu!
βœ… updated uid from 0Cic5XIHAILcZfoeXsCy to oyTLFK0Zl0alAmITAKYO!
βœ… updated uid from HhSnxxJwvvSY7OytLt3g to NoRCcrtIjLnLdEjizoaM!
βœ… updated uid from YQqBxjrX350MEjzfSZ9L to VnqB6Y76ePP6wuaFzNyR!

Register the soma storeΒΆ

soma_path = f"s3://cellxgene-data-public/cell-census/{census_version}/soma"
ln.UPath(soma_path).view_tree()
14 sub-directories & 6 files with suffixes '', '.tdb'
s3://cellxgene-data-public/cell-census/2024-07-01/soma
β”œβ”€β”€ __tiledb_group.tdb
β”œβ”€β”€ __group/
β”‚   └── __1716234740654_1716234740654_d973bcf54a2242b78bf352eaed600c4a_2
β”œβ”€β”€ __meta/
β”‚   β”œβ”€β”€ __1716234740654_1716234740654_421b60d8e8ca434a9a3685ac90643161
β”‚   └── __1716234740654_1716234740654_42cb2a544da846dfbe555399fa25c462
β”œβ”€β”€ census_data/
β”‚   β”œβ”€β”€ __tiledb_group.tdb
β”‚   β”œβ”€β”€ __group/
β”‚   β”œβ”€β”€ __meta/
β”‚   β”œβ”€β”€ homo_sapiens/
β”‚   └── mus_musculus/
└── census_info/
    β”œβ”€β”€ __tiledb_group.tdb
    β”œβ”€β”€ __group/
    β”œβ”€β”€ __meta/
    β”œβ”€β”€ datasets/
    β”œβ”€β”€ organisms/
    β”œβ”€β”€ summary/
    └── summary_cell_counts/
soma_artifact = ln.Artifact(soma_path, description=f"Census {census_version}").save()
soma_artifact
πŸ’‘ path in storage 's3://cellxgene-data-public' with key 'cell-census/2024-07-01/soma'
Artifact(uid='TwIR80MO51oM3CCuFail', description='Census 2024-07-01', key='cell-census/2024-07-01/soma', suffix='', type='dataset', size=870700998221, hash='bzrXBPNvitSVKvb3GG38_w', hash_type='md5-d', n_objects=330, visibility=1, key_is_virtual=False, created_by_id=1, storage_id=2, transform_id=22, run_id=27, updated_at='2024-07-16 12:52:01 UTC')
ln.finish()
❗ cells [(13, 8), (14, 12), (13, 16), (17, 19), (20, 23), (23, 28), (28, 9), (11, None), (None, 16), (16, 18), (18, 23), (23, 25), (25, 27), (27, 29), (32, 34), (35, 7), (7, 9)] were not run consecutively
πŸ’‘ go to: https://lamin.ai/laminlabs/cellxgene/transform/MIbO3QeJERcy5zKv
πŸ’‘ if you want to update your notebook without re-running it, use `lamin save notebook.ipynb`