Census release 2023-12-15 (LTS)ΒΆ

import lamindb as ln
import lnschema_bionty as lb
from cellxgene_lamin import get_datasets_from_cxg, get_collections_from_cxg
πŸ’‘ lamindb instance: laminlabs/cellxgene
census_version = "2023-12-15"
s3path = f"s3://cellxgene-data-public/cell-census/{census_version}/h5ads"
ln.UPath(s3path)
S3Path('s3://cellxgene-data-public/cell-census/2023-12-15/h5ads')
ln.UPath(s3path).view_tree()
h5ads (0 sub-directories & 1113 files with suffixes '.h5ad'): 
β”œβ”€β”€ 00099d5e-154f-4a7a-aa8d-fa30c8c0c43c.h5ad
β”œβ”€β”€ 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
...
ln.context.track()
πŸ’‘ notebook imports: cellxgene_lamin==0.0.1 lamindb==0.67.2 lnschema_bionty==0.39.0
πŸ’‘ saved: Transform(uid='G69jtgzKO0eJ5zKv', name='Census release 2023-12-15 (LTS)', short_name='cencus-release-2023-12-15-LTS', version='1', type=notebook, updated_at=2024-01-30 09:07:36 UTC, created_by_id=1)
πŸ’‘ saved: Run(uid='bfvbF0TJVEuW4HALTilN', run_at=2024-01-30 09:07:36 UTC, transform_id=19, created_by_id=1)
πŸ’‘ tracked pip freeze > /Users/sunnysun/Library/Caches/lamindb/run_env_pip_bfvbF0TJVEuW4HALTilN.txt

Get all datasets and associated metadata using cellxgene REST API:

cxg_datasets = get_datasets_from_cxg()
len(cxg_datasets)
1188
cxg_datasets[0].keys()
dict_keys(['assay', 'assets', 'cell_count', 'cell_type', 'citation', 'collection_doi', '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', 'schema_version', 'self_reported_ethnicity', 'sex', 'suspension_type', 'tissue', 'title', 'tombstone', '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
artifacts = ln.Artifact.filter(key__contains=census_version).all()
len(artifacts)
1113
artifacts.update(version=census_version)
1113
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_20230725 = ln.Artifact.filter(key__contains="2023-07-25").all()
artifacts_20230725.count()
850
for artifact in artifacts:
    dataset_id = artifact.key.split("/")[-1]
    artifact_20230725 = artifacts_20230725.filter(
        key__endswith=dataset_id
    ).one_or_none()
    if artifact_20230725 is not None:
        artifact.add_to_version_family(artifact_20230725, version=census_version)
Hide code cell output
βœ… updated uid from jbGctvVweuYvtT1D7pVr to AgNp36K3y5FgXaaN8e5i!
βœ… updated uid from DdI5XzpthbcRyOaDLvle to bUlXBHcPujazoj3bpmoJ!
βœ… updated uid from RHrB9Yj8dLWURf0J2a20 to 9hp8YDdwZTg6x2SD6BbC!
βœ… updated uid from 7u2SAelGS9oddNfQymin to Mgilie8RUip2slElQoDx!
βœ… updated uid from jFNiJKiY5q6Qcycpsa2h to iAZPSOBKLpaK7lqyYp9O!
βœ… updated uid from 9G0hWRdVZvFRMPpcHlXU to c3n8XPOt9Em5YAlbQTZy!
βœ… updated uid from zAjw3H7ItSG2w38q8EKF to UEE9mPND42ONqZUCCw0z!
βœ… updated uid from 9tRnNRrzuKdtJw802V7b to R4ZHoQegxXdSFNFYJ146!
βœ… updated uid from 8pcRnzBAHN7yh7IwV9tK to SHV11AEetZOms4WhehiN!
βœ… updated uid from XYXCCchdkZ5v3AI03nmB to lfZD1fkdaALmNjIgaTtD!
βœ… updated uid from twPhLDdEcdwHrVVGhSWw to 4YOO34dfpLCVOwzbyge7!
βœ… updated uid from Px7OMRpTeR6NoZF014CK to V6DPJx8rP3wWRQ43cVkb!
βœ… updated uid from g48SSaSbRUAfSeQzHWVM to znTBqWgfYgFlLjdQQxBF!
βœ… updated uid from ptb21Lg5poxzhXe284MD to 314auhzorwb3WRbOL7Y7!
βœ… updated uid from RZTAE7s3Mm2xOqsLqOoU to 6QKCg2OKiI8EOU2am7wk!
βœ… updated uid from F2LsLwla9DUY4wbX0MNk to w7mio9wDxUHrCx7BV6q2!
βœ… updated uid from hmWWdltFE04coDuuoatl to HVcsneoxlIT4Qk7I2rjI!
βœ… updated uid from ey7y1wxfsrhE8u7LSKS1 to mHUxsd0hBiAcEt7jR8Ap!
βœ… updated uid from Jo3lSAzXyagP2sjf1i55 to Oc6ANFJ0FgOW1B70KOCA!
βœ… updated uid from 1XXuCWQxop69KeRjMvFs to AOzFnX6KBbO7pTGkKi8w!
βœ… updated uid from Xw4fZf2qExqYFEYGKZXN to fyut6rlVbJHagLf5Tx0L!
βœ… updated uid from U2xftdsrYVKVEQ4KXlMA to DevPS6lhgCJfq6L4EBUU!
βœ… updated uid from 0QkxolLC3LxaIyY9QaAc to tnqgtMh3ULJElOCzomJB!
βœ… updated uid from RjGfEMaGfW4QbZlpkzsN to Gz5G2ETTEuuRDgwmXt2W!
βœ… updated uid from S5wDGYSwc5ZEYRlr0hnR to uV9sLXN7EWkdHK9yodVu!
βœ… updated uid from qshDj3z9rUVW4DbXjMq0 to QsCW3FBUQZneBvPvdQo1!
βœ… updated uid from Ut3lHIQ1LwXBC8rFqri6 to XwO2aoN1iXHFGb6SQanH!
βœ… updated uid from 8z5COIF6OLPBQcvp945W to mImhScwKXSOfMkOl8pSk!
βœ… updated uid from ZOXI0eDDQ2wZh9rYT0BI to kfkYpeeZMautMxSdS23z!
βœ… updated uid from d4KPKIGd35poloouRKeH to vQXMqjVxolyhp3nBOTe5!
βœ… updated uid from MWkHKiE6RW1T0naPKJpc to 3nGVClsz5UZCKqApXo17!
βœ… updated uid from 9UxfyMxdb5aXiMFPLbbS to YyBdEsN89p2aF4xJDGCv!
βœ… updated uid from fzvvaosoOAbSGU09MpkE to AZUiHYg59CbunwIezpx3!
βœ… updated uid from 8YTCM4z9lR1sHI38yC18 to HQPT59lX80spJyfKQPCN!
βœ… updated uid from JYouvM86vAJ1HldfRbkN to wYiUe9hn4TJijpoXVMkL!
βœ… updated uid from BrjmClJKC5PaaQz9IlxI to adXo4PAGe9Pr1HCp4zeX!
βœ… updated uid from Nr6vvB5AsxILu5TFD10w to ItCG6pavB8TCcuQT7cUs!
βœ… updated uid from axp5C5JdDOTBO7HNu1qB to Db2slWFdbTWkZKqE16JD!
βœ… updated uid from uOGZECkgdjrBui42w08p to XYpo2FcGEhmbGmo9Mfx6!
βœ… updated uid from K0PYtbYU4JFmDPK4R8oV to vagYxrFN9qzqVv2FWCSn!
βœ… updated uid from EPGXLUqlS4WWjryP4utl to 7uWdx2sU0D0ujw5YkqPg!
βœ… updated uid from dqWhUioDHt4Nm00abyLe to b2x19Eg28GGSNnXW1hAD!
βœ… updated uid from 0HFxrj48JQiL3nlIwPua to TxGUZEhMkKhTnGQndAK3!
βœ… updated uid from sLp49W44fLsPb2kFQy7L to vWr4zjODRjjueCITsbiY!
βœ… updated uid from sYGKSJwjOqcsSiFVev1o to SO5yBTUDBgkAmz0QoFci!
βœ… updated uid from mOSzEyr4WX5NkyFHZW6a to u5dyq91aTYYBzdp5gOT6!
βœ… updated uid from dxtUISAqYZLpT3GO3BSh to GpuCbqeLbXSsqMyeLmWU!
βœ… updated uid from sg8tPm76239ZnEZbxFS7 to etTjuoUniTJkOKmZe3Kq!
βœ… updated uid from RAzHWGFt3RBAyIY5EkcL to V5bXREeWMnpLaxlmwRnF!
βœ… updated uid from UGZxJLQQdUrv7brhe5bZ to DurunLZdRNd9qxqbUFXg!
βœ… updated uid from UZAfj9QLpA6Jo4PEzB34 to tQaZHQ9Lyy5AE2n5fgAK!
βœ… updated uid from QtMgb6uyaLLyFryv1qdX to m0ct0FkKkpiEP4nCCU6k!
βœ… updated uid from LSitLhwafSMHT3aLJ3gg to 46CaqALOTtUuueBJVX32!
βœ… updated uid from H1xm7IjmQMi3l68HA0Qt to zwom62bNy5XaeQRFKBeb!
βœ… updated uid from m3D91tA0PLVZUT1big34 to UzMc4KyxApajkG5XqIrR!
βœ… updated uid from YwW4F9T4KGLkcLaqWbVu to 0k73U6bowYAuL9uiILdm!
βœ… updated uid from dWwwLG6j0i4pYQ8K1Bsc to r4iCehg3Tw5IbCLiuLOF!
βœ… updated uid from AJHM8ei3tWk8s05E1kzH to 60TIR8XFosoLt8Pr6s5Z!
βœ… updated uid from Cs8JJaregB0nSKaQIiRC to 2ufZT95I6SEBm2inmq0V!
βœ… updated uid from unoUaNB7r4pwVADJguy8 to jUkQUsSsKvgp2ziWDx87!
βœ… updated uid from 8XRt5foQ9X5LORYdPDXE to Hqxc0q36z3qQwsnVdKTp!
βœ… updated uid from tPpfBO40xYgF7RkNP4ni to CveO4v6tQXbvViYwQPA2!
βœ… updated uid from FKVLc45fehPZnC6iF8Ou to EKS6f9cqMx0lNFsyRArm!
βœ… updated uid from HgRtQq8WDuVKOn1zJrwQ to DSpevwaIl5E2jIWH5plO!
βœ… updated uid from IK4EQDCKyB8ieeD6R8kb to JtF9WtWYQtXwDmydN6wt!
βœ… updated uid from EZwTxiVFtiZQUcVzhJe8 to P8hRgYHELfpWp6v6cd8k!
βœ… updated uid from RCngNAvyAdRrrUYP3nKd to DxTEHnGoVcPnAVVLtZFi!
βœ… updated uid from TLj4HlsNND4Po91IVZyG to XcxJeUlA2569cVZUzWad!
βœ… updated uid from RxrPRdVDr6zi2mxYBSvI to GA2BXWwoJlcRfzNpVYID!
βœ… updated uid from ONp5UOlYO3vgYo83SJqx to u4Vt5eu2X7od4vomvNyb!
βœ… updated uid from 8vBAl7VzZODflw54OZ77 to 6HEdNdd2aq5AMQYcp13L!
βœ… updated uid from bHnPNNxH9szuWIzbJn0I to f5N93YhrlPYQn3d86yw5!
βœ… updated uid from BHbeON14HxZwnZvncRxI to udAbdaYhtkbw2NAAkgHm!
βœ… updated uid from cwkf7KdrotqksYPU6Mla to SqvXr3i3PGXM8toXqP5z!
βœ… updated uid from CTN01eN2It5SduYx7NEI to hXOb0X5pmYGXjpqdKoni!
βœ… updated uid from 1elSJAQXVqtK5LGhzbrp to REIyQZE6OMZm1S3WtiUy!
βœ… updated uid from 0w16chBqZXgh5UeIzh0e to rYZ7gs0E0cqPOLOND6gc!
βœ… updated uid from JXlWLhCiSASPehI7irya to 5OhgKfpVqkeW8RzW9HCM!
βœ… updated uid from 0URnfAgZkmoqgDwfxgFi to YCryquAx1tGdiU0a0Xpb!
βœ… updated uid from ObmWJnR6R6Nl7P4Cy0nV to WPlYxjg0AJXeBmDa3bBT!
βœ… updated uid from 9EfV3UEKcubdQqF1YFwx to 5dunx6wTeIOGD1itJtrW!
βœ… updated uid from GkoPuFdN0Vd8FMltMich to 5n7E7muno1fQDXozs68W!
βœ… updated uid from MCuz7en2QKl8WXDQfTPK to JBjSu79Lhhw8yye8ZZNl!
βœ… updated uid from ukoASblvbNsGP50EbnRy to 3t6pynYLQjTbBDpCv4e1!
βœ… updated uid from 52AXtVQB13KfXC8kpDhM to qWct0RterDRXkBXAKZvn!
βœ… updated uid from T5NU5nJPjpENQBA495tf to hi1KW2skkjleuoYXMEjx!
βœ… updated uid from nbxp2Vay9Ewc1sxlfOgM to 1ks6CDWlF2r3GFWGcCQG!
βœ… updated uid from rnLfCkYKvILvU90TkUt4 to EeIovm6enXfWkX0sUiE9!
βœ… updated uid from UALNDPOIfCrqiEPCTnHS to xQuk1UERwAorqS9dQRaN!
βœ… updated uid from qtRlqF47zcSCcRkhubvI to xZxycKf9WdkA1Vsq76Yo!
βœ… updated uid from B7822gKrRSTJCpOBxFaq to Vd2uGOTQOwleGdFR77p8!
βœ… updated uid from 0aZgE9SnZPvymkPFgHVV to FcwMDDbAQPNYIjcYVF8m!
βœ… updated uid from ARGPYcjsfQlsm8JU5Npf to eAQOstenTKAUTRrw5ZIK!
βœ… updated uid from 8uESp4RfOPmIg1I0O5PS to jCBjAe0xiLrRqJVlAcjU!
βœ… updated uid from v8NYJVtfiaNvqkTDqUPn to ZJ7mY9phkW5jgWkWVbQA!
βœ… updated uid from Fb2kHr3VDa3aHZpCUzVF to WwmBIhBNLTlRcSoBpatT!
βœ… updated uid from VCMVzghaDtZqSqgCHKPa to fOwWLm8148joYT59JALG!
βœ… updated uid from dy8XTD7HhEKm2SMP1qon to Sxvk2M4zZCarn5PuYwH6!
βœ… updated uid from mu1eS6BywW8iXqDwlbWt to voIUnrdzTMzJzEjp602i!
βœ… updated uid from T7pBkmzSQGDXmkdQ4QDE to SFmTFMi3DdJhIhZplFjR!
βœ… updated uid from awtRzk5ZQEy1kBoihole to sb5NmYQn82LauJ8Xo4TV!
βœ… updated uid from pnBRoxVcqgSjeo0r5znK to HpnxGOoYonDkD4UIjkNJ!
βœ… updated uid from 41usWOLTkw92DaJ3JReD to AtL7zQWRrR3NZwjN8xmc!
βœ… updated uid from yLcQkTZ0VfGmSRoBiylT to gHlQ5Muwu3G9pvFC7egT!
βœ… updated uid from hQUfVpSMOglWD8yYwabX to UayfAFTNPi7fL1mFvoS7!
βœ… updated uid from tmQ1MlrAmYQeULI0RCiQ to Afq8P0M89AzgmzDiZinz!
βœ… updated uid from I24LU55y7yP19DZOxKJF to 9vPQdDJOpTcMB74JTLHa!
βœ… updated uid from ZXelexPJBegaVNMlhqEm to EAywu3AuuzcCMBBZIfRO!
βœ… updated uid from VwG7959WGzbHCpyNMW9n to 0noB3Wq1N9V2o0eWs7Oi!
βœ… updated uid from lFfbm7RUhr5IImhNVc1s to M2jc01ZgcWIKIPcTm2nS!
βœ… updated uid from pdtrIbEtTjiApjxAKtzn to vN8vhbZpLzhgxGOgyJ8e!
βœ… updated uid from UxKz8MfBY8WjZDHOvTh8 to ssl1IY0iKYPOhysqy2aX!
βœ… updated uid from 5HioqAftiXLcUMy54VcD to l5P63hnBVpeu38mRjSuy!
βœ… updated uid from rzbkHWBsZmvs1nO7NqR2 to t2nugwPEwEAArwow8tWo!
βœ… updated uid from zvcjzjvknIoy8pU5zXMx to 1d5xD081yyKI65tLl1EC!
βœ… updated uid from KFOHBPEI20SpHIERxR9d to a4OyJ5EQBuduBD4gQiHY!
βœ… updated uid from xACbtT9N6wxNdzK3aG5S to gNNpgpo6gATjuxTEW2mi!
βœ… updated uid from scO5MNK43ziEF9wLSRaJ to JSGrsBJpAgQNBPk7zeEm!
βœ… updated uid from vUlFRobmj3vsECbwhYqN to zp0ZikzjRevChBBMYL5A!
βœ… updated uid from lMEawOdZy7jk6SdYSM52 to GxmLqqoOQC24uqisTiOa!
βœ… updated uid from 3HYwBzVEv8gmafcXbcaS to riRYsTe5E5e8qi6nDwH8!
βœ… updated uid from jcAlkLjhgPWZZRJhJcSa to cuPJVE17Q06v2eoxsSXc!
βœ… updated uid from eQlaJKH9ihjZENE6tDKh to RR5T5Yz2Ea5CUxFJX7ci!
βœ… updated uid from rw6JNSLEfmrBVAR14lsR to MI8Zyh0vExjsIQNvom1n!
βœ… updated uid from aLrLMcahHUV9pdPffBGu to 2df4ZFLiOzYsVPFYdfPN!
βœ… updated uid from 0Ju1pwSFwrhOX5ffhGyY to VuxaSuEq7YcNMsvW0HMv!
βœ… updated uid from ZA0TRMws0HQzmTaAPCCM to 93Cr5dUeVNf4tvp8rIu7!
βœ… updated uid from 1UdC2vmc42eAUk8zWlRY to UvHonarD5Gj6d1ZohKYW!
βœ… updated uid from VPF30xHRARncXF9ifRoI to fvU5BAMJrm7vrgDmMrRw!
βœ… updated uid from jrcPaiveeUvL27e77rFH to upEnDjoOBrNfXf5wD2d1!
βœ… updated uid from ZMlOmO4Z7Kw9mS35cLiB to USUgRVwrCMquHiImhk5D!
βœ… updated uid from NhclLIduLPnMhTV2kUeO to Blpu3GqdoLFzjDIcfWPi!
βœ… updated uid from Ph191cN9e57kXCays4ik to QpuY5RsGTBBMN61Q4un3!
βœ… updated uid from tzzGgPPZNzRhJsY1OkWJ to CABtggF9aAxK3sc7FFvu!
βœ… updated uid from dzTh1kLGyAln2OX6S56B to F9rOMRMmMBhxmtbNngm8!
βœ… updated uid from MFTaSJiP5Ux19BUVYgXS to 3A8lrrjfKWmH5AHSDGL5!
βœ… updated uid from Q0M8d5zhsy9E4uCfZcqY to MKdtJ7wdzfIaEJGyBiPk!
βœ… updated uid from zlcn68PTMa4zFxm7oJWs to zfc9YcMPpCX8G5vJAZV0!
βœ… updated uid from TkaKPS2iTEB2OHz8SSwP to w5NIicHB9tH1jljMyfAs!
βœ… updated uid from UB3LPZJ6PydFCXHbvd1L to 3OK2MC5NxguntYsINS5d!
βœ… updated uid from 1GiD9RjD4kvuILIJFg71 to GcVBvpW5MYlrsH1i6rbV!
βœ… updated uid from MoFLvHV3MHqQ4kPyM3kP to HlOvVNpsKBwYgOXIffgH!
βœ… updated uid from p1PX5h4CXyJseSAHGZV5 to oX29SOGLbgjn9YK4rXsO!
βœ… updated uid from 8x7BkOEMYj6JwGyP2OoG to xSEA3TpbD0pONmkFUjBM!
βœ… updated uid from 6tO3A98v7lzVBcGvlDFv to CmEeRmEsDe8cBCTqV02z!
βœ… updated uid from 9fvBoikOqTauXFIP5z9m to lOcKGjF2cfxFdGyoe7eb!
βœ… updated uid from z75V8LYbGIucr9eczaxs to Ley3KZULHSFXfahNjOx6!
βœ… updated uid from 0LWwShH0OCTdCuyJSj96 to BGxbof2cgBwKJx9vP7g6!
βœ… updated uid from j3OmcqO5m6pYxdFyl0P0 to jqxAIKjsPodzU7V7EJOi!
βœ… updated uid from Ifb0aocNe9ouDPWJCROb to ysDMfpFKcbJ5X3oEQ7zd!
βœ… updated uid from baoI0GSRR8sytj7APUsg to pET6MI2iNQFwWgRDijFb!
βœ… updated uid from NrN0UiWgVnYapa4hjGHk to K72BdDYN4qcG1mOl4s33!
βœ… updated uid from JmOmlRsAGHK4kFJ6j9Or to musQqpujzuko6e4xrO0b!
βœ… updated uid from Vp9NjlFKPcHhPaHNnnvn to xs8JnOHLfChf3XUXbSB2!
βœ… updated uid from 1MZiHqyK7gUF1XejsXOL to gIzz0ibIImsZZbb6FT1V!
βœ… updated uid from 4rjsNkj0pgMBiJMw63qv to LO6WOiti7jnycOg49RJM!
βœ… updated uid from LkoZTucKficuEMpBhAZP to SUlKWKIEpKMiy3GJj5TO!
βœ… updated uid from XKyLg91hdUWJKWGIMKJM to rqnQa5vEpy6cwCH6LLvA!
βœ… updated uid from OJTj4taDO0r7GVPs9cz3 to v1FHCR5YTmuS0iPYqC1k!
βœ… updated uid from C2TCiUlF8TKh2KT8465r to EE5gHCpWrUnpgWMb7IOS!
βœ… updated uid from rlgSvenrRN20d5kXAF4I to Se13r5wxPUmO6ZqeklC3!
βœ… updated uid from ZstWTzraobFeLg1PCk5M to h1OfBAUVyqCe47Tmqcbg!
βœ… updated uid from 4ib34hXd6FVxaBAk3XXQ to drwul1WQ492Z34rUWfnr!
βœ… updated uid from Sc9W4GBUfdpSkZy7u4qx to KLlggfw6I6lvmbqia1QP!
βœ… updated uid from rEuNLmGANoSHaPUawihb to FsYqhy1l4qy7cYJS00FN!
βœ… updated uid from xU2MQIU42w7t5fRp3Snp to d2zjqLtgkTFODH8VtMJK!
βœ… updated uid from PvnrlTW4zSG5dTo0gm1E to gJXmxzeiI1eZxiXO5Uvm!
βœ… updated uid from FX6xo66600bXefTE3aSE to MsOKeQl9gpOYy90I3sdo!
βœ… updated uid from GztKBd6mwSzzZ4XgmJZ1 to EgqcKWxmRIKFccWVhhJp!
βœ… updated uid from kXj7CHV79T1hJ2uOSQxM to MWNiSb30WQcnPiMmCaJM!
βœ… updated uid from 1TLSeJxKJUEKFMrkZRTw to 2Z5NKeDsCtmuHbHk4s7K!
βœ… updated uid from aLgLGNgnNnIRk60RUcIP to tiv3Ff8vIX2tlwjsujXg!
βœ… updated uid from ppX5pGPXZF6UsMBQa1XB to CglbDlvPOK6edPBU76wf!
βœ… updated uid from CEZxUXBrM0hHvfrl11Br to vCaxx7zZMDSk9PGjMWjY!
βœ… updated uid from w8bXup0SJ3idVxRASQnG to 5O8phHYznOGzv6pZgc3m!
βœ… updated uid from auW0UhJeLje42bsAH15u to khWWiqvvhXO9vqp4fnQT!
βœ… updated uid from RNqpjsylsbs8Ts85224a to Me6Dn2yBu3WhuODNOYAw!
βœ… updated uid from k5KO3K7fi08UL2Dn55k3 to jvy1iNvr9FKQkLvLHc6T!
βœ… updated uid from 2yzzmnidDC4wFwGA1GI7 to 3xdOASXuAxxJtSch8tdx!
βœ… updated uid from 3nBA0auOPo457tVELpSA to UUpMMudqcmW7od9GcDRs!
βœ… updated uid from traTUqCswnQK57BNz6Ms to rbvP0rzqyWgr8Ukrgnuh!
βœ… updated uid from aRefLpMjUIjRknn1zlZ6 to r3tDxdCN5sEk3EOvNbqJ!
βœ… updated uid from bS321n37sLo6DwwNapn6 to wngG0fuSqG9HBxR1qimL!
βœ… updated uid from ElSrfz1WvMSDnjHDCDHP to TaoFD9DKHGQ8uIPiohW5!
βœ… updated uid from iGv71GqgaZ4l4dyH6izZ to rvqTn2ART0yRtcLWSoqE!
βœ… updated uid from L0qy9zcpbGnJkRoQzBNa to fJfw0qkSd5S655OCnwKo!
βœ… updated uid from CGOE0oC7V1EyipiueSXs to JuwezvL94lLJw9XULFPn!
βœ… updated uid from K8OTRBsqKlhQxmXx6VTq to OCTLjPX0svrJTpCTpkXH!
βœ… updated uid from XZr78YELrpolqOxxFc95 to vgm2tlcvVpFBEWCtQ9gn!
βœ… updated uid from Okl8WshRiQ8U72DGsdBC to HvyRdM4G1xh9KFZoxIEm!
βœ… updated uid from m64uq8LjFQw8UiqZvN0t to 8wr0wIVc8bpvbL34CHSZ!
βœ… updated uid from hMOGbcc6FS6rTaclC7dx to ifv72GuRMK20tbSmcStv!
βœ… updated uid from lUNm6baFRV6yk956xN5T to gpu2A6vYDjiQuxhnSrDY!
βœ… updated uid from 4okzWox14VLWMZ98VOwr to 7wTYH0khROV3KRp84fVB!
βœ… updated uid from rl9xh29ESRPJ2JuSrjQU to KfDkQJqeiPxMnrEXVq6l!
βœ… updated uid from 2uclNE2nHLra3gIMR6YT to pwc3uYt2PB42X8tuaaoy!
βœ… updated uid from jigTkwM5XDNLUrekHSmK to TFvkEtpfXFj2V9Q1BMRf!
βœ… updated uid from 2ZsOlDUKud3Trn8OCTHa to ulclz7BbddYHJGOlxQYP!
βœ… updated uid from WyDXKvTXcZSb2ZNPSbj6 to PqcQhooGXDsJsxc94OWx!
βœ… updated uid from UFLGaXcLPr5Kra7GIybR to F0mDLWXo0FoVz6U7swtF!
βœ… updated uid from ZnQTfDOr40SRu3h0Evqy to RyLToVwx9LcnDuKm58jg!
βœ… updated uid from mfmA68c6jQWRjJUEKazg to 6XqztgSGlvbK7UVCFFtn!
βœ… updated uid from XhOa490SEdg2cZkJYP7Y to urgBvoKtd5Lybv0NN3qx!
βœ… updated uid from niy6vBYPML0vCjY2BEGi to wjZn90qJ6ttKp3UBKQd7!
βœ… updated uid from XCoI7Trf0lQZ9qb5VRur to HQWwlfvUZIBcVBmZILkz!
βœ… updated uid from td8q1cNYf0Ompm7fE8hg to wAFJ2QTvWz7vFtlT3H1R!
βœ… updated uid from nShxNVoZ9zEZoKNjfaVk to AVbEsCEKrYmd912VPxUy!
βœ… updated uid from m3HVhPy2cQTqc4Y5zT28 to dcc3sx85dZP9ucI73871!
βœ… updated uid from MKftaWTCgTAYZpvNCfHB to FEuCnAv6fs73sOmv6kyB!
βœ… updated uid from adFDBQLBylX32WiJX8Eb to l9HeucSsCG63NTKT0uQl!
βœ… updated uid from Od9ikHx7Vb8AFOELSQ0y to qed11gz7NbQceCvrjeVc!
βœ… updated uid from FUrlu7Z61nR0Ktt2HbYw to s3C5F3OeGBR7RC6cMcjz!
βœ… updated uid from 9mVYAR13WXqOytiIMeFw to grkjIG64BjI19hWaZRnC!
βœ… updated uid from TsluZeH52dVH4pKiUwiu to TYCiyFr6bIXDraztl87A!
βœ… updated uid from 9GiAUax9tlgqQvfHECSs to HDQxdRUajBgugrFgAF0n!
βœ… updated uid from oCy2ZEqTUAsL9AltiJOX to XFMEZTWoIZ5hGxiSo8SA!
βœ… updated uid from A1P80gImCGwQ3LArCS4D to MN0oUp5RCRXZhTeVjS35!
βœ… updated uid from jUSphw147QCjYbhFClRA to A1TAN6IUC0CTKbIjQTPb!
βœ… updated uid from 1g5SQqZbroySHWwJUuEk to ssM9nJClnxGY7qE01lXj!
βœ… updated uid from nChCsJDdhAx0RdQyjEvX to EURH2QfHYZigeuMepwXs!
βœ… updated uid from nGbqmAUrYuOXzM0G9oUw to BzAlVNXUaEAYk9mw7ruu!
βœ… updated uid from QGLyUNFRtb1lim7O70Ij to KmCx0cGdtpH8V826YKNT!
βœ… updated uid from UpEUzC4YeIRmv6Y633DL to suXT1uLLVumE6G7goqvf!
βœ… updated uid from szTAW0ViuEcqlaTUno7O to oirni3bB5islMD7OetXr!
βœ… updated uid from jTCem7mWhDRpJLZJCPip to rJKXcQ63FFi2SVVCakPg!
βœ… updated uid from kGLMT2zGIcjaFC9Ndo66 to wNIkT2q9yFhHkntE0IRo!
βœ… updated uid from 0Gf0thXpIIAwoPrPAadY to wt7eD72sTzwL3rfYvxey!
βœ… updated uid from uZAcUNp87XE1a88DywVF to nWk5O43qTK4nqOeWQ1GW!
βœ… updated uid from 4ijgh9E8xTwh2XOtLs1G to zuJXglTH8zUA7aP9Fcr3!
βœ… updated uid from M5bY3OTLRt3brOn2nNaW to bN6Kl8Zsk7KU6XYlgR3i!
βœ… updated uid from 2NfTbOSXd5UBR50H44Pb to vjkZWSZRjpObi2MoHDqU!
βœ… updated uid from crR9uW8XObxCgSNITnCL to aO8c6yXUZwPz5ndmuZZO!
βœ… updated uid from yJRqUCHj3E0MOtTB4JMq to vUdR0XLzU945oDGeP3sj!
βœ… updated uid from 2cCGqnngyXTxAdi996Rt to o8HrYzOW7wXnThrscRSG!
βœ… updated uid from 5LZFnX6UugNSvEjXkE51 to m4WzzGM8l0fYfJghFySF!
βœ… updated uid from zKl7XuWmgtMQx6ujdTJH to p8g1N0PPXRWN8h9zqw8A!
βœ… updated uid from QOwhJPYAE6aJsk72Phv0 to 0EvCxCNIHX5sJ5SuDrTS!
βœ… updated uid from yyhbMxMN8ehJnte6uxu8 to 8E5DyJLxZFaIiBGQKGbH!
βœ… updated uid from PYB4CmsMl2F4SCRDEKz7 to ADirQbyrGFOcERnzNvW1!
βœ… updated uid from 7DKXkop5ufkfiTnHw8gl to bFTu8iuaCVJifzTIAGC7!
βœ… updated uid from zGT6BmZdXbc43Deh3Em0 to w3KnFmI2pJAdE1EJms9b!
βœ… updated uid from xrOsJpWfteh9wpnZVBh7 to NYRLicGsn4fI4tXAU1Y5!
βœ… updated uid from 3skW21NhqFjauJCFr2Qp to NGsAPpQNtrssjknEJylN!
βœ… updated uid from 6RELOQ68orqvvwP0sUmj to pigZAtMiYmrFNrRAGMFh!
βœ… updated uid from oRWBVZgWrSsge1JSadCH to S29z8PZV8Ld2cFmqpdmg!
βœ… updated uid from ioJ7qHH3IGmOOeojooYh to VQ8S0Sg75ZBumVo2kKDH!
βœ… updated uid from ShaQVVZ9TKnwDhVjfLkv to 1a9BE7LF1RccRIU4pJci!
βœ… updated uid from ryaykfl5wRMpHcTC771U to NTa2c4JThVa7kkaJtN4f!
βœ… updated uid from 0ejHFRjN8wsTmkzxq8EK to D4wGW1MkfehdBMu5fSZW!
βœ… updated uid from fdAkCK0iQG7aWdrUD8jN to Kdy4bxDlJrb70wHIN3Lo!
βœ… updated uid from vaiHO9GIasnMECgar97F to ONkfPTYhFgRsFNhezfyo!
βœ… updated uid from I1IiJ6dYz5B3bhmrRkhD to jpMhbjrjRuZWUZXro5YX!
βœ… updated uid from GOyUndhHhhXlOBIuQ3P3 to WIVeDXDJBJM1HAkHDrkV!
βœ… updated uid from awfzMAzs9mQjx5rL9PES to 3J0IkqmxiWoZsOzgJvE6!
βœ… updated uid from oq4aIA0P4D2hQ09wnzNH to 8ugqqKSQXcKwVUT9rdX1!
βœ… updated uid from XibhZJlDH7u0MGm74SF7 to yxvWMF8f35ROWzBDExRM!
βœ… updated uid from YHHvReAV38NCbD3GaVTU to WBWVxYmIgqS2PpnwbAgP!
βœ… updated uid from tjjAXZ325ddZJ7wpqvrF to sD0HRBSDqa2oUcltg7OD!
βœ… updated uid from YdbIXdNx9wRDDy8fkPkK to T8dngqjnVIkeYCgOponN!
βœ… updated uid from LXsge1SrDpstJcJt7Frt to Vp6xzTmhGRJ1QFaDhZ7t!
βœ… updated uid from 3FiArDSZjYtSYnMSIjuN to KX2554w0BVOezLoHzRxn!
βœ… updated uid from Z0wxoLciXzNike1q1dUA to Hrrey2kkxBc0KQchICe5!
βœ… updated uid from YGuHil2H6DDEKQ3f6SjK to PurwAg9jY6bOyYEWzfKY!
βœ… updated uid from NNcftPrsFjjhdz27q2Gb to m01KSeHTE4BRTtUkYSPJ!
βœ… updated uid from dOvbx9u2l3NqaoEtbxiG to 2foNbjCmWjyb1tKlWdNV!
βœ… updated uid from k40dsu67YkuEPcODHX7d to paDb2i9vvjnwbyHWStXe!
βœ… updated uid from M2l2mlNZT34YvXpxfsEY to fpYlD95bV7NuX31iorX9!
βœ… updated uid from ah9sQYBzgrKufk980fgu to 69BlvSza74SouvB8zpVQ!
βœ… updated uid from fQjKPKvmpRpcrGUPMdZ9 to yBlPj8fH71ZpQzzIbg6O!
βœ… updated uid from YFr5ulQDU6TbWuZHjKHP to QMbJH1850MbTZuMCiAy0!
βœ… updated uid from pSfNdfkaL745quwWPlzq to lStGQDPtaZxyT0g1AofC!
βœ… updated uid from tqxBZunfAjaUrwm8Up4l to zRZeN6g61S8cOYqDbWIZ!
βœ… updated uid from DgVLqV7vXT15JF0xvPYk to 6hvYg2EVUO8VzSQnbxO5!
βœ… updated uid from bgwjWwLuaqvBeu29IQpc to ojEamIQcv083w6D39KXD!
βœ… updated uid from 9qGowa2Fwp6plO8m213q to XGFlCNXwqnByyUnS40J9!
βœ… updated uid from Vr5ArhICxqdvodGqTJXJ to ysmOxMcw9g2LEAbuISXT!
βœ… updated uid from s4iDxl6IkFaRfQk8s8Ep to NClf65zcAXU0dm5Zf3wK!
βœ… updated uid from rnmNhQyoUf8MKT0zliVf to aOLH2SPv5IdlpThof5wd!
βœ… updated uid from tgd7RENnIHO2omwJNnRs to HNom9TanYjbhT7AdUrbe!
βœ… updated uid from L5PjInS120L8HAiLf8PZ to nEl31U5JF2fL38z9gzuB!
βœ… updated uid from FVZCu8R1WSzPeoMRZZFR to uYysYJbiHCcpoJgL9cRs!
βœ… updated uid from eg863rG3LREuhgNxFtNy to fXWpCo654lybqMOcVl11!
βœ… updated uid from k31uaRHrRyoIIirKitj0 to sFqNOvhT8VKxEXKr5ZH8!
βœ… updated uid from 1iqSBLk4TzDrKd1YL7Za to HZtxUszJoQ9yBPUwdu3B!
βœ… updated uid from 3l4AjP7dMesWlcXHVead to OmYz1WHJ7IV5KZT4DxTi!
βœ… updated uid from zgdZuclT4Z7vnWAgWfZc to tggrprv4cllqGOrHDmnz!
βœ… updated uid from ACwNgcEZz6RR5w8oslp1 to 6iSn6EVq5BEVayyh7eSO!
βœ… updated uid from 3TmwiXCETB2iT1Mui7di to 9iiE8Epz4zQUikZpToaj!
βœ… updated uid from w8BCstbEJPv3xXDGv9Nq to E6yj6BS8P9OFTPsj8Va2!
βœ… updated uid from PGWmVbNYqmHW9QOHMyRK to cJnz4Xj5CLWKka3sAbaK!
βœ… updated uid from kTrNQeXaNNqXABBGRcua to 3Y2hJugseERRsoLUwZMH!
βœ… updated uid from d8ZRAfZja6AakIHhD3Lb to tczTlSHFPOcAcBnfcEq9!
βœ… updated uid from NryJRCM5kURb7OUFN3OZ to BruYcDqMhCfPWd3qNwbo!
βœ… updated uid from jg0IptJ2uWLDPHo0sAw6 to kqghXS81TCI6u17w829v!
βœ… updated uid from wkAPoQDn4p8u6ZtoULyf to j9taMjlgDLGhkiYtLLLA!
βœ… updated uid from ww8PmgnesUGyMKiYbCaq to lLoHjjZVJzf25YyWjv7J!
βœ… updated uid from D4Hq3MvcLjCVutqTtjGm to H6PRGdO0QrDhjpLKG3XD!
βœ… updated uid from 9u0RRqqzUBFXuxsPypQb to MoFmAQZ9WoJ7GIPaKKxJ!
βœ… updated uid from P2nI6sTfLb1tYjikhvjc to nHndtVCPzuc3pav8Jv57!
βœ… updated uid from W2gvzRtYXyiVvLcrRF7q to TEoJ0BIoyUcdxcRRp5PF!
βœ… updated uid from 6PMDURSXBT06xEkMq4oe to DqQShMxaHzyIMCqcxYwo!
βœ… updated uid from 2Ml0zzKySegSMtPVHNfy to ijgbYnOzeso9kiPI5Kwt!
βœ… updated uid from 42V3izjFIvvLqYyVjWd0 to xwg06JZLL89kltqkmFeg!
βœ… updated uid from svm0hO5aRATgigSkm2Yo to EfyIwzf9SfhsqJUrH75x!
βœ… updated uid from rWvQUeYc1V23dG6ndaAa to B2l3AUYp4egcmgRjlBx2!
βœ… updated uid from 71Makmf1QXQh5zkyCTDT to qecDzr0ENq0JQP21SROv!
βœ… updated uid from 4X7oxlYqZVIpKohdqhoj to nTKot0epC5kKRCYsM1i4!
βœ… updated uid from qiXuM0Do9KIpa7UvBIDy to srVaz6iYjLv8b0Al84Vo!
βœ… updated uid from BkYNnzEJR34bqh6zX1TH to 2hW7IyDezh4ZGfJRRJJh!
βœ… updated uid from IQM2kW8xgOi1AwAGCJez to AM7fqVd2qHpyRep7RqTq!
βœ… updated uid from vl0v5VIukeOMCstv9W3t to prpy1BuQpzzN8MWdGyYk!
βœ… updated uid from bYey7TTDzVzeneJB5wW1 to s8x0Idi587LQtXCoWNmH!
βœ… updated uid from y1GlKiNiyUxuaS45Zngr to 6bucM9ddi5AkCvbfVy76!
βœ… updated uid from 4AKzlEUSDDOdniF2WMbw to mLNsxg1OtUGShbkGRm5S!
βœ… updated uid from ThtVtm6GzAv9BY3HXdKO to q8mDVNaLoIVFIIlMR1cM!
βœ… updated uid from FnxFH61XTYBceHMFiZZZ to Yyszx0yIrSEuzWTeQBCI!
βœ… updated uid from hzxwVAARO5ZTPqvzpnuQ to i2lSvLRNxHW6fKHkMxqI!
βœ… updated uid from Z4HQpvtYcbc6btjgIsis to vBAoZ3akkvDiaSXlpjyF!
βœ… updated uid from LWOqC8ElO45hQzAZPgmE to 5v0IoJIlnuX4q1y5gzoy!
βœ… updated uid from aTAGni261Yu5TB11IfqL to Be7feRxaAe75Yg0nZQAI!
βœ… updated uid from JhaBXAkkVvZ4va5jhoCc to fEe5MAhdT2f1UEXyCtfp!
βœ… updated uid from 2VwiC2509EzeQLg4Uz7l to mw6kNqp9Gql3uTC2bJlR!
βœ… updated uid from zWCNXZeCI7NSJlWcNkXA to Vk6RSIIGLvELtKPmH3u3!
βœ… updated uid from uhvpELbsh6uXqjxWMBCd to v432ItMAd5yVPDYnPGX5!
βœ… updated uid from SevkditeMeydJNtvaAAn to fG25H57XuForGM0Q2sKI!
βœ… updated uid from UmUehfKTpTngWwmpI2hA to uNwtPV8FbEiy1L5TgMmi!
βœ… updated uid from sSJPlHfSdFTEpEnb8myh to sFG24wZ6CVPeDEwzgYzb!
βœ… updated uid from 63XTuhCC7ZYwX61XQNMq to bumxwv6BCUSGlpjp124S!
βœ… updated uid from ueAHmiviIy4MeKqLARjm to wsNSkVpy1ytJURNUXaXY!
βœ… updated uid from eG53HIZw7lCQJYDQIn5p to ZDBvlk1lmoOSXHFXzhKS!
βœ… updated uid from 5opqSqqxuztxJsOpDoqh to JKbtTgqQemTxDdZfjOWv!
βœ… updated uid from XOI4GOdQZHGTR7WOnRGX to 2F7WO5OcDQIFmDJtaO3z!
βœ… updated uid from UJQe7CgPgDTXBVrujWaV to ZcQ2ut4JGwk9zB2LoeNV!
βœ… updated uid from rXLUNkevPP4Os8SgHqQy to os6MrlcQJCWVfAQjZH89!
βœ… updated uid from q4lykwvfHRmxOqKW0j63 to 9vpGkXblzQIJAlh2Xznf!
βœ… updated uid from XGAHYChAzJ1GHx6wNKmu to q33XvYIgCwKDDRWm0ZYZ!
βœ… updated uid from 64uHDNuyEuDho8Sw9Eu7 to mtRyl9W0R7ee9l67dWaW!
βœ… updated uid from 2yVCkfQjY68L61HFsXGb to f9lGZkg8IIhLCmJGiBSW!
βœ… updated uid from 3DTzPti755uN43ZlSeO7 to qsa3GuATZjqaQGdDpvI0!
βœ… updated uid from kfoe644RL8rP7VBGWngN to B9i51CZzdbzfw6wYlqyz!
βœ… updated uid from ZzJnNLTpd7PlKeY6o8Kj to fbICYv7ARvTk7HC0GPa7!
βœ… updated uid from f97ChQOsQqKWhcwxcOHB to ZH4cx66JrjWgRaemEIFx!
βœ… updated uid from 3qGYW3GBu6fbIVb0te67 to y8TurdrXpaqWCShRIJ5N!
βœ… updated uid from A50VyWzKyx0eqTa3kGT2 to iCP76GdiIdv0Yb49rgGD!
βœ… updated uid from mCNMUwo1nnX0b8neF69A to EnNi47dwsMHZgghcQ58X!
βœ… updated uid from CQg3kCZCJKSHvcooj7iu to OhJkg06jEAfG7cpMAPVV!
βœ… updated uid from 5EwwWcqxAbpLjGslc1Up to 7KpelZCKNcnSWsBbmgvC!
βœ… updated uid from d474aT0MCIZSRTxxFj8A to mLHsQqAEkPRuYKoF9XK4!
βœ… updated uid from EpbXNcvnMVhLo2n8qu5O to LVUZLGsiRnAsqi1CWpMU!
βœ… updated uid from DoXh8rpIGcuysV421zCI to e7vtt5p8Iq3iyZIYrOZO!
βœ… updated uid from kKcWY5B6ukRjKYIKxIHH to LSbEXAVsWYrug9lAj961!
βœ… updated uid from LkBQCkmtAasO9iOKAeBU to HFk1Nhl1LgUBg6rHi8ot!
βœ… updated uid from kK5oXPl69ysVU6edeptW to Urf0ocoZIzU80lWYiEQE!
βœ… updated uid from U0F6uHEDZcOz9l8W5IUi to jS876jSjLQT4GrfW47Nx!
βœ… updated uid from 0poJHWSEzY7KEz1F4C3N to PFlYLsbcuXiVg6x9P2sH!
βœ… updated uid from Nq4hHl0GGeJMe5sgUAHm to yyEovILsyx6hMvnzaOoQ!
βœ… updated uid from 75fzAn5PyBIseZ4KlTa8 to cs5xflc9TR0nrgpHg1mi!
βœ… updated uid from LTJ1zADkVad4PcZ4EJxZ to NP8LNBRrqAyWgloh55Xh!
βœ… updated uid from 0GGdk2fgiEZNGrXfdWVt to QpEH622I4ZyDFoaD3gs4!
βœ… updated uid from rhpFKVgjnwpVTHoN2iTn to cndYdsmvSWsCyZQZjjEu!
βœ… updated uid from Lef9pckHF7ZbIFWYuuyB to YrCnqs5KLHAMdE0MpDzf!
βœ… updated uid from rXufStIqvVAFoGNo5Hmm to lCVyrfntSROMxki9ZM6o!
βœ… updated uid from EMrklKcjhpUd4LNpqXZc to 4BAX2PdKsjBCNX3ILjdB!
βœ… updated uid from Fxp754oYpXBXPMaGaAng to h6SlkQIx95jmgHiF7ICi!
βœ… updated uid from hBCFiUN3aLoITILK6cFl to 3l9xpVRZgVIO9BbRY3Qe!
βœ… updated uid from AxMg3LKwJFLaguHi2pcR to 1OyQQLNfu1nzvVAD98r1!
βœ… updated uid from zZBcGgkbArwKrxzhBaMn to aP6LjumDJsGNpXZOY0eC!
βœ… updated uid from ZdmRHkA1xUTIznAQY9uw to aJTH55LW2CTIWu30V0qr!
βœ… updated uid from vngWUYH9XEtjM3FUHg7W to 1YpDHD0mjLFA7QDbfY1r!
βœ… updated uid from 3eG7un6jhdLuZCOk7bWt to RCzyhZz9tfi6YI4FGjf1!
βœ… updated uid from 3ROhDw0fVjLyG0eG8b16 to 31odMKqqn43VuWTB8Jha!
βœ… updated uid from iznmjuDeOQONikaHZmby to 4yDhZvzUe13WIY9YvNur!
βœ… updated uid from y0Z99ZzLGgNtCxFGSqLg to JcdhMjwI4M5p80p84Ipc!
βœ… updated uid from dwTYJwJ89H8oCA6WCs5k to qmlhpDTkT39mloc8WA6I!
βœ… updated uid from ZKIZwNnIPjSDHg19pCqe to ileq73vZO0Gjb2C2RbWl!
βœ… updated uid from pUlNweYElAUYZmAYXLQu to fyloWFULJFeXyT94rkTx!
βœ… updated uid from dsAtnIY9B9kuM09HCnJl to 2pSqPCly1zpnoGcxq7QU!
βœ… updated uid from aGIDMWGSHKUIfusxlZGZ to Qz7b95dwvsyoc2ALHb7m!
βœ… updated uid from 3obZLJ5jC3d2mLGc0MBO to SdsQF4T1LVWNaTiv6tWH!
βœ… updated uid from ItxZJhm5jqDXUBw5ADVa to 1pGy4sJuik81S3TnflFa!
βœ… updated uid from r3zeBbBQI4Wmt3AK8t5o to KCdDXw5sKqn7LmiKbsyq!
βœ… updated uid from r0MIA8FYqcUZtE10B6rV to qajxoNnKJBU0e49jKgLJ!
βœ… updated uid from KXetpf2P1EF2gGra2Ng9 to xORZVYp5YztbqqLiNuGb!
βœ… updated uid from Hhcf6QXBlQYZzmN5XoAM to o76CJvILdBmfoch05KVu!
βœ… updated uid from HGNHWLaqmSKCVuZQI08q to vo6OzHCW7HAeDzerlJVw!
βœ… updated uid from OUZD1w77edEIFg7b9oFa to yBqxA1OBSSwMps03Folo!
βœ… updated uid from dKzkG5FEh9dnOol8nm0Z to EDsJDpw1ASzmNl3OGdx3!
βœ… updated uid from 7pL9rnIFomzMDZYCUknq to f1kC34CMs9FYjJyI8KVR!
βœ… updated uid from 1Ipre0CP9z5vQh6PmUEB to m6hmbKYUyJMtLw18ALXV!
βœ… updated uid from lZctsKhC1uEzmflvfTxe to 7llAZ1IsZc4W93PeqJX2!
βœ… updated uid from YenoD4wfcL2zNtgDXig0 to Zg00wCoZ2h8sIwTufQfg!
βœ… updated uid from jYtMu3mll8W78LQmUWee to rYIU9HVbuJHfyENHxyLS!
βœ… updated uid from crkXrFKgMSfbiZiUeqZb to gTl4VjNhYGsex3MAl7ra!
βœ… updated uid from uQZgJjVwTqPVgm6ft81Z to HBbTSqLs5UtS859HSKWf!
βœ… updated uid from saKyPowm8YGpEC6qJ9rO to 3MdFlC6kg7AS97pC8Tal!
βœ… updated uid from LSoB1JwEjj91OsW99pZ2 to olfCW3fJx5o9RpvNjmlN!
βœ… updated uid from MW3pR7HYBU1oxGZu8CZB to W24OA3PL0R9an0aRJvzk!
βœ… updated uid from FKQD0KdywT84AZ7F8UzR to SgKCPcjLOZMMkIi15CFa!
βœ… updated uid from NfTIe0PlYK0WGsV1vLWE to ea9WOqFR6K9fT2tKHybl!
βœ… updated uid from BNHO0YCdnUl7qVckyQbx to P4Oai3OLGAzRwoicaxCB!
βœ… updated uid from Wbvz6mtPPh0MpYOZAjLu to aOPFDr886ibMSQkP8PFf!
βœ… updated uid from RAEVmeV0ohOAjwgVMPLZ to PDsBucA5LyDgcnBmVGGt!
βœ… updated uid from moTnFtlHwxwcKGJ2UosN to AhfSbOToRZvmVaXH0OKl!
βœ… updated uid from jvnHXq67GjlRJBfrbXnA to Il21u84B0t0O2aikQTSA!
βœ… updated uid from MZzMGK4VRXdoftJRVzZe to 8e3wD0QM57E6oRQ266ZT!
βœ… updated uid from GbsMHDXxDq1VwKrIgxGi to x2Cf6CoPBdBszgzYp74x!
βœ… updated uid from YhiEQQMXaKhIMV72J2Ed to TUAbAHaYd7pc87WB8Tlr!
βœ… updated uid from FQKYEzvnlkRs89E4WACl to NX48aBroUbLfH1GbXrqS!
βœ… updated uid from yv2WBHy5Ub4BXCXaOwK9 to NMcmKEqTBqT1HBEIqdDo!
βœ… updated uid from fFF8BNx49ApdbwHibiey to 3wM3DSoToH6Dx3LjwfDl!
βœ… updated uid from JMycz8smtFBZaBMbm9O5 to 1SX76nDlg1TRYlMGz7tI!
βœ… updated uid from hY65JMgLwGJxk9j5j3u7 to Mp7Qm5wAooJZGUzOsMQh!
βœ… updated uid from 4UEvWmkPHZjAZavZzEfN to sMYTEwfxhn3I6LCkTrF4!
βœ… updated uid from 86GXphgqpgA3gts3I9hp to Jb1pdlGufuWnPhjWtMFv!
βœ… updated uid from bq3zeA0JVwslnkudMsjJ to y3r7lrs9c6KrLOdYfZAK!
βœ… updated uid from yj1zZBiFh4Ke6NQ1WcpW to 0WrJGPWy2WCV670wNzqU!
βœ… updated uid from cUlyhphxISPDOILivClr to txst3MWWFtvPGcYOvaUo!
βœ… updated uid from nKPCdXAdOTjfApFGg8DU to gJscvcghJjRIf7CKMp5n!
βœ… updated uid from v2i1LQqnOIXFPhPJfCdx to 0R8ghH2SLoAEDRRDUKnI!
βœ… updated uid from iTaxnJl4EJLei1YUOnow to LBJQF13N6cKrHFXTwxGO!
βœ… updated uid from 0KHe6RE0BhUVkJr31EO2 to 8KCG26fwVdVDkcPBOuj0!
βœ… updated uid from rZ0Vwi1vMTAWMREx9k1U to 3ACN4x8xJWqmQ4O3u7qi!
βœ… updated uid from uxAWgxUIjO1PwZofMzia to Tk7VvA3WZwZ5b7LZUqNT!
βœ… updated uid from CjzjGeWAIkxS1T7xIZE4 to 0cPExUt19otkTSps77GY!
βœ… updated uid from CNFleViF0JiryjibivnV to Jis0nXZNtlIedOxeuoSs!
βœ… updated uid from ScEkX2QF4G17mXcnldBM to u5fvyYiBdvPC4tF3aNQ8!
βœ… updated uid from bDpoGjP6TRlTplGRUzwO to 6d4y4WrKSO68EBQwuNQh!
βœ… updated uid from U7TNgNQh5cG3HjsPr9t1 to G278M0rh9bmIPJwFz0bQ!
βœ… updated uid from zgQ3z7Ao5Xk6hUc2aB6p to 2cu7yo4RU5yAddIHNoh2!
βœ… updated uid from HZqS4KkrL6cVGdJFPcyJ to dyDHBmxcXT87k6Ft2NLC!
βœ… updated uid from 54bcxShl9LCdKwhIhp5Q to Nl5QNcPU7t2HF9ecK5de!
βœ… updated uid from bilw6xQimRi5S6JYr1Tc to MUSJ94kuSMGp31yAh5K3!
βœ… updated uid from ommq2OgOMYDTANMavXVD to mhVgYOIk5YlOALMtYVA1!
βœ… updated uid from feKV2sjahMZIoEtwiTLD to jWM5kRgHf8S4kID1GtfZ!
βœ… updated uid from dlWfLIEVbBomvcMpFkOF to n6BbWkIZ1YgMge5p4aWS!
βœ… updated uid from 7dBCNBsro6DH6x3RbdFU to xcB49st0ePu4urWkWHIE!
βœ… updated uid from xMOmrqUbVoIw9u6ljHTB to fcaCRu557PUKn5IAClvx!
βœ… updated uid from PDZXLTT3rrrwxNrnG2aQ to g3JwG0mEL5EpVa5eCRa3!
βœ… updated uid from 5mVtYts5dO95WCgRYPKw to ArlM69uqtaMF30gVGCpK!
βœ… updated uid from N6GxEagPsfg6oCo6IwpT to 9iY5bdSjYnWmrFntHfao!
βœ… updated uid from 5V8vnHOwl9s190feb19P to y34Wtbj0OQb71Pp2ICMO!
βœ… updated uid from qGfD8p6raWra0ttwA41A to jgfTdG6l4vFKrForVPHD!
βœ… updated uid from zDYirYrkWFEtvCvjstb0 to YUKR2t2Lnss7SrPhi52i!
βœ… updated uid from XYI2YPfyXCVCHu4cXnRg to 0jGp9QF0WeaU08DosSmB!
βœ… updated uid from lgbN6VGhd9zsjS0EwoQK to 6pGHX3bAIzwZ2FrxVzF6!
βœ… updated uid from QFGceOjKkcC4zbq7WuE2 to Ce4Mqe4X2vUhwkwn8hCn!
βœ… updated uid from YMjduP9Ya2COGJmLgC4Y to CDlzizK7gB6Wp3QsISnu!
βœ… updated uid from A9PuvvXsc4ODSPOJjaBk to 1W8MgqcO0evL1hcrHQY4!
βœ… updated uid from mykvKeda8LGVJ67HCogP to OMkJkHjUz316hxaKLntW!
βœ… updated uid from vg4Gpv43uJeOaN2bhVuc to FLLhne5CQGsTmVTK2daV!
βœ… updated uid from TJRfLAVSRuXMILMWNsfP to i3XEI4gXPwloSmGPxF03!
βœ… updated uid from yGGUX43LWavF5HbsUHYs to GWIiUYjsepRyTi3Confc!
βœ… updated uid from 90jALP2VG1Cy62xWNZYZ to tC4x3bL2Anr0GrPFRNPA!
βœ… updated uid from ma7ReSS2law8nrELx9Sg to h3ceP9ROuuzqxmHyuY2m!
βœ… updated uid from 7WUJGVUXtefGt9ERYOIL to Mg76BLjhFnwDm66j1Ldd!
βœ… updated uid from jsqUNtOYy17GooK7GPmu to HnrJglrg2wk4ZBJEBcXf!
βœ… updated uid from jbWlwA4s1maOXzS4Wo1k to Rj0tGeqMc1KzBG3v1eOi!
βœ… updated uid from L2xUIsZrtdx7ZtmqsTt6 to kl8STjrpbxvPtxA6F7N7!
βœ… updated uid from Sh3JXfiB0MqHG2VoaPcu to Bwobkr3uNlMpohh2lyOg!
βœ… updated uid from A0lOAF0QDIj14oNQdxll to bpGM2ctxzaOljosnxUe2!
βœ… updated uid from tZ3G1ZoeucpeTb68StPw to 1LMYfRVyaEthHlP0ci57!
βœ… updated uid from EVAC8BYtmwRDeIYod9Xy to 2iuVzXQDmUs7xuej8kjR!
βœ… updated uid from 4Vrxaw3lom0nldsgUX8b to W66M8ccnkQ7VZJkWItXQ!
βœ… updated uid from heenX9zUiUvfQfIG1IpK to dbNcAhjk3abxBkxEDQXw!
βœ… updated uid from YxaQxuRJpZz9Y5FY79vx to 4xHBtTf6gQXoeZ38myl0!
βœ… updated uid from FCHI1WFeNg1IoejenKCN to qSKZnTrpbI9qNmnqOfqn!
βœ… updated uid from FzRI3E7LW8mjPCjoJ8o3 to Jjs1ddVhcHUUonLxsfED!
βœ… updated uid from zEhb2dGHKdTAjjnKF3Ph to Nl6GfwFn5YYSWywZaB27!
βœ… updated uid from 39bxGoABGHSktwbMtcNR to qDWWmEMCw9AZNqb4hMKa!
βœ… updated uid from 2kC4h2NV11zhvbVHGEmu to XMY55ElXAS3JzMko7eg9!
βœ… updated uid from UePDvlvxI8oIGlPEzrel to vGLMnyZyY1tCZz1BoZZ3!
βœ… updated uid from NhLc0GldakbqDuFTwmGf to oEACuS0zuCyCM4rAjWYt!
βœ… updated uid from 4oSS7jLgNAcHPei9nnkH to 5KiNZFTmmrbJz4iENIjt!
βœ… updated uid from 8HqFI2A8Vh3bbTh9IJ8a to iTNEO8km89kmLdtyXmOz!
βœ… updated uid from l1j1n9qvHoH5U0k1Hbtk to ozgLNeKft6J51PJEEmXo!
βœ… updated uid from V0rupqWFCLt3Xk2mNWqd to nQVo2EzYsLqDRyJMwnV2!
βœ… updated uid from oRhq8fRnObmeMTm9hHoT to 3aschyZWQq1Q46xcjg5b!
βœ… updated uid from vrq3roOJ3NyUcivSPJig to gyp2h9pp9NFvhnqlnrKY!
βœ… updated uid from 7dn6yyYVbYHh9Go4GDbE to odCmvHUVWraE6UybigvQ!
βœ… updated uid from OuCf8RvTzGcr2dx4kBSv to w6UNsyZp0eTrl3UzlvXu!
βœ… updated uid from viCNE5xIQjc2RokRM4iY to dEP0dZ8UxLgwnkLjHssX!
βœ… updated uid from UIsIaWZC4f5FF6dd8BUa to 9z4YiL0Pk0DBLnIATPoO!
βœ… updated uid from 5hpM0TQaLwW1Kukso7gy to 2vY719FXrp8UpgETjggw!
βœ… updated uid from IJ5EKkeJGNMErQ4Suw5g to nAJSAIcRSAq0wa6dCN34!
βœ… updated uid from ucOgTPReZkqdI9LjtFwW to kC30Bas9AlZmLUT1BsPp!
βœ… updated uid from H3oJPBI3v7jx2fCidpNo to vXLNZkm7qaNHomkJQdb4!
βœ… updated uid from 6faruHqeNMZAKESRthQn to OyjydrknrbOj3cIvMMac!
βœ… updated uid from d2HwLBWVQSG1kPbyFmU4 to vRnWAp9oYTMzn4BYambL!
βœ… updated uid from 0XZZ1tvh7nMvZcgIuSxl to G12OJ3GwGFmm4lByFHYd!
βœ… updated uid from sm1Cbhi0cMjsLQxuc1Qa to NNdUC4eyyyunfc56gtI7!
βœ… updated uid from fhEUgJXsYjDepMlvV84C to J2WvGiwOE7tQ02OjOMDn!
βœ… updated uid from rqMrYDGvOl1B5Ru4rwkf to KzsdnozUB43gMFgHvC5y!
βœ… updated uid from v4GRXqtBG5Tzi2zJmRVS to TYpQYfvoacDkTzQYG3KP!
βœ… updated uid from ooYrp53ztWXdmFRqmJkc to ECCLBSq58bgj8oyVhEFz!
βœ… updated uid from dozlmOW5OXMyHOwrYsCh to znAOtN05qx7pskA3RunY!
βœ… updated uid from EZkVBMgH1ji5QerD4Dlf to fYxfMtiIP6NxyGtcGowJ!
βœ… updated uid from 6G0jeJdOm7u2wVhlZfP4 to 6mnZ3SeQFhffr3wTdZZb!
βœ… updated uid from QIG1UjedkJBqt7hnApA5 to EWpZNwV8VVRmqMDsvnZU!
βœ… updated uid from ua5GWSLPPdEqJqd9FNun to 8aoJOsRQ3MqAl6WJkI2G!
βœ… updated uid from k0na5L4Dgrb7w1K59d6x to oIsrfkkYiD1kZxKQgVtm!
βœ… updated uid from CRFxnCIuswk8rQomyrw2 to RaAgwD1SB9bRdLOMajQs!
βœ… updated uid from rm291Y2W9kbK1g4s2f0Y to vY9WYsSWq1e8M41M9doG!
βœ… updated uid from FG13BmvNaiNB9Uc958uH to c1Itlm1mM14cAQ8GuK6O!
βœ… updated uid from gdPPRw7cFsIPJViy8beF to 3xyDgsLdP9DW2GBTbpKL!
βœ… updated uid from w9xyp5NrS7N1iyrZBAba to PRKoLikXilVZU9dRMT1J!
βœ… updated uid from 18yN2Lm3HLE1RA2DIul5 to i39RSk5ICtjNmwGbWOYk!
βœ… updated uid from v7TcOFmrxY73Jn3iiLQZ to 4nrJsQi3AGMJv1gHjaox!
βœ… updated uid from muxhgrCtQQuO1AIm46rD to SERtzz2ju6MCnsQPaWYt!
βœ… updated uid from i3P6qsYH3fUDJDwKOkxA to KFxLLDMNU8Q7aEliuEdl!
βœ… updated uid from 3Fn7F6R8DRkLCYLyKlqL to 43wk9oVNmGy53PC9XHKG!
βœ… updated uid from es4zbbE8bfDKkK3mfjOb to HVioHyawLqj44h24XSa3!
βœ… updated uid from CUPe9NJe0gGbcAks3LS4 to SR5mmS7N83dSPMk5xY1r!
βœ… updated uid from F5mth7wBPPIBXRt7zaG8 to w0eKx2MO3At5bEJ5CWzF!
βœ… updated uid from Iu28c5fN5S0XuyuWq4FM to hn0MbdTz2ZitmN5KFGO3!
βœ… updated uid from kQbvRx2zjNs8zHCHdfTQ to lEzrtwE3PN3MdwxaklgQ!
βœ… updated uid from 4fjuDldYzYfJzc8qhXAz to TKHFkSRPTbwBIOR3NaAO!
βœ… updated uid from ytuT1Jc44dwFuox0ZLus to QLRrWNrxIYVnNENvByUk!
βœ… updated uid from FEFguzX4DZakMCk0ywyI to 5Wybz8K31lCBu74zf26O!
βœ… updated uid from r65UbogNKyclCodbSZOT to d58AMLPI4p9jitpxv40g!
βœ… updated uid from FwnDFVgThsbzBVMHgPc2 to s2Ym6LMYpb4PE2suw2P2!
βœ… updated uid from IJ3oXnbRrYCM6X0bOtpD to wSJEAZcBnIplLzuwbP90!
βœ… updated uid from kG9GHGc9vu2G7Ns6sLGk to u90rRNHqXfnoHWA5zngb!
βœ… updated uid from 1hMxzhON5QOXa0k4GaIm to njAUwN3NLGljK47SwNM4!
βœ… updated uid from PEmUVrPjBTxFllGlIleN to 36Kp6meGRm3wNERx53lA!
βœ… updated uid from fDsZtIGiXO6mktTI7MnM to cTykZt4wUCOobD9lJKlC!
βœ… updated uid from ql2RusQ6cnidbmuzs8Bo to hsUNjhiFgq3FYI8qruzW!
βœ… updated uid from 5eeBb3vmeFS0fYrohbzn to 781jxq9bIKwhGtgyv1s5!
βœ… updated uid from KxBCTz2b8iTQIWZRjMBh to qzbh60hKjCc0rUPNqJzb!
βœ… updated uid from 4Z4fhgOiDPyXaJeKEkA6 to xZhAEj7AYTQ2pMV6Jaga!
βœ… updated uid from 0cbUkWjX0aWB4qLdsjAj to AxZyNrImoyyllQ17Tw0k!
βœ… updated uid from mUyTX71xG9Q8Y5G8t1D1 to wz0GqTdrEOxbzib7uqUx!
βœ… updated uid from 6MdP3uKMjsqmMPSZz8BT to 7j8DEpELneDHzU43fPHL!
βœ… updated uid from AhJFwTEMCmAOP5WvdBuu to 3tBOKwUCzd1d6e8BC2Vw!
βœ… updated uid from wJtzpiGQMevkTjmrYrQy to gghCu0RoR5JsgW7Cbtt0!
βœ… updated uid from LZ4DUl5nxC2Kqmz0qssL to ywGKT3u2oLn7BDQTEVRE!
βœ… updated uid from TJxD2Idg9ff80VeCUkLW to 17vdxerambO3PKmygTC8!
βœ… updated uid from kPwXkxLZBdD5Eg4FNmbJ to gj4O42Qu2nsCmUDPqWwl!
βœ… updated uid from e2rffkF289HdfD69aH37 to Mzl7GCFIe5xinjTXbM6L!
βœ… updated uid from TQDg77gK4V3HYOb7JG1L to r9rMYLF3RpX6UUsG0yQH!
βœ… updated uid from gb9b5P1ZxLYszt3rGAfM to nReEXA9KUC896jHs7ql0!
βœ… updated uid from J3uCi3unfp7d3gfkQXHc to e63bGRsuxnZkGZt4C2PS!
βœ… updated uid from Yaq1oK0q2q8DzzX6HaMu to tS3TXuffE5Nith57XBFK!
βœ… updated uid from aGfYPRPolxe90vDc9VXD to upR31puIm5bp3AC7PrlL!
βœ… updated uid from 2EZYa44XYb1JqtKhIdmz to dfcB8OkR3GjDc2lBlW8o!
βœ… updated uid from ILpHJGY7dRBrdkKYJ8Kk to MkRm3eUKPwfnAyZMflT2!
βœ… updated uid from 5YsLfQqEfC6FOYS4bwar to i7J3Mfd6mWoe8kvaouzZ!
βœ… updated uid from VPZwuDDTOSvIINrseOlC to 11HQaMeIUaOwyHoOWVvA!
βœ… updated uid from Sdg1uF9RKk7hhTveiKd5 to boS3N9G4FT9FFwyYsBYi!
βœ… updated uid from jBZHZUmacvyR9pQP01dI to vvBVHvno5rrp8Rh5xqME!
βœ… updated uid from bg6oaAhYS5E3sn7v6Hyn to SBv1h9H3qMK9o46zj63v!
βœ… updated uid from LJaWl5HPtVA4rASrpcsS to r3Il0eSvaXTZk3P2oXmI!
βœ… updated uid from XAveVmm9PvZqXqyDxccA to dSQfhOcDievCEboZ0fGV!
βœ… updated uid from bI2RInkrkNoGZMBTTXmU to 7DkkEwr8heBoaaZjBTuG!
βœ… updated uid from sifvdeXpaRDAj7gWJ9jM to y6vV1riVLiZQXt4ALLS9!
βœ… updated uid from p10ERteN7GztAldJiYwX to AWVtlEeUP9CZ3YFG74pR!
βœ… updated uid from wxeU1LVvLmNErocjUHy5 to pLQxlcWMDusZbAT9xYfo!
βœ… updated uid from EMoPiRofFJVq4wptZzUl to 6OCyqH6WevEuFvS8tJbH!
βœ… updated uid from saTLZGI4O5pyCmmncj4l to w23ytD6ugNHpFLWhDnUQ!
βœ… updated uid from nz96uDWxh4jEYJp0zGt2 to weRKEj2UwQ2R95nDUeHN!
βœ… updated uid from t7sLdDvV4ldDMPJNk2Du to q8ipGp1TEMGeoqWAojFV!
βœ… updated uid from Cc8MojKKmbEfuMKDt0KS to fPixaPrRFZbdc6vtH8H4!
βœ… updated uid from bHOreXtRJAQ3j6U3UF1F to K1RFDvVDpiVn8bS4Lmrx!
βœ… updated uid from ldYqbFURvnTQMofYf7jz to vdfcBC1KQrOAbxEnp1ay!
βœ… updated uid from xqe6phVebRzXmCIxA3XM to 7xkqYdCxhmLutVd5KBiL!
βœ… updated uid from NBrwOhiaROEr5NhXBZTi to gwvH4Czm7hrzovBlIrnL!
βœ… updated uid from QXKp3vxz7DjRn014A33h to DKUxuKKJ5eXAtFYhRH7b!
βœ… updated uid from D86pqQHZfEhol97DuC29 to MZdKXmBGUCNtlHbwTmdJ!
βœ… updated uid from ymVB3ssZMZV2PhZlrOaI to Pr4M9VSjosnj5sOQVzNn!
βœ… updated uid from WD9JUnGPNCHUEXJrqBa4 to LZiLuqCzaB8peGzTEYX6!
βœ… updated uid from lYDNt7caFPh9OxX09vaf to 8HqrXTy3ziRbU4UUGCK5!
βœ… updated uid from WdhfDTDpfYTsXDzeIlNZ to qnlBU5a6OR46Zkkugsdu!
βœ… updated uid from a0mXFUHOZswjrYpUVM2T to JbI2ffXwy6u2N47SRBuw!
βœ… updated uid from 7GcXjTBvDmIgG9TfkfzN to Zzyxj0NDbRHh6DiX1K6F!
βœ… updated uid from RKMqKEej2CN76G3oQrVB to HRnkxNDMCrJv3kVo73LZ!
βœ… updated uid from gMeG7Ghu3IIooVRiBjgp to vOsBDoqtMFPl3JcmEtqi!
βœ… updated uid from sSqa3tCpYU8C3eYm91oX to hepeOsNPBGb3ibNFNzoJ!
βœ… updated uid from j4XujhCToLbihQMqt4YL to tmZTkviWbuseGWThvwi0!
βœ… updated uid from V3G5Y6BZkn9Fb6dg4LPD to 2RBKRoyJiKdKn903YSbp!
βœ… updated uid from l0pQdsT7gl3wNDcrT64e to WBNllawD7nrb0LvWynb5!
βœ… updated uid from ttSM22qzS12weGt3LKJH to RCwa4hpHqWFXvVxn8G9h!
βœ… updated uid from CUJZnXSfqcWecZWGIlq1 to ZhURVUtdypLDh93ZYdlZ!
βœ… updated uid from CRXjnupK8v9zXpoLvlqh to srCjBo9UGBfblOz1F9wd!
βœ… updated uid from LwdJUk6XpoLNiNVjQ4LE to ciDzKfg6l9BHLU9JsNie!
βœ… updated uid from lUxu6F05JPDVrChpWd4z to d0JqVUfPuonxM3K3bJuS!
βœ… updated uid from nWtzaK2DzGTfPApXhoc4 to yK2DFgccPxjJCl8BpbUP!
βœ… updated uid from Cyg7D2F1Av9RnmLKQ99B to T56N3QOzdv0LCDQXiZl6!
βœ… updated uid from WygoWjLskB7x5b8F3Vcm to rgofRIOEBBZBTxZ6Y5Qa!
βœ… updated uid from Zv4ULrCzbCMdPBtDRkiD to a2tJIqeD21ZljNam6fm2!
βœ… updated uid from dtvZDRwmzoo80lcgb8kx to a3o2Oyfy17w2mvFBtpZp!
βœ… updated uid from IdfTRxmIvPFMjl7JBwFg to uirvOIb9k0gCD5vqtGqI!
βœ… updated uid from cgf0qlLXQNIKCmxkhe9c to ZwnH3yEs6D6E6hwKTW3c!
βœ… updated uid from ZbWiIa0A2eQeXHt4ZpsL to KPdvPezb9hjQ1HcF7dJV!
βœ… updated uid from 0EnK6sPvIi84aU1nXyUT to zjcyPjp2fVK0vWe2Pe98!
βœ… updated uid from da4Bz0unPzZCRayxbKLo to ieYOBljY0NgUP36V2Uqb!
βœ… updated uid from yQYvDiftOZ1sIpgBFFUx to zOW2EbIMZU08r44E1OiE!
βœ… updated uid from PicUyGrYhBkfAXwQ5wap to q7rGFy5JQVC4FU4XY5gt!
βœ… updated uid from fYmoZDy8DeGFzkEfXBsQ to qcWqelYb5nf5hTSnwEXK!
βœ… updated uid from b541pjUo7d8hv0Az4REB to 1AeEHLQzGyRZL5nwPwKP!
βœ… updated uid from fQ1HG8P0faC9Qpldkg3K to mEuIWK9ttyh2JUfO1xLb!
βœ… updated uid from r5h2zk5vxEq1jxMn9ebO to 7Pr8OGXRBwtBS5C63Ede!
βœ… updated uid from YrxoIM7TnybUcxE6qnf4 to CSyLfeYCqiU8rieRR3BQ!
βœ… updated uid from AHROxbUZL0cnHg5qCXiF to 8co8I8I2FNl8QewWOfzg!
βœ… updated uid from MihziEC0I5wYMPernpOa to Ov1FG8RPMZpf7fu4eZqR!
βœ… updated uid from YFQXmCYMsadr5SQyQe3s to CsjHLdJwvT8ZIl1SwJnL!
βœ… updated uid from GRwFIOIBS9gleXWC8H91 to pMszg0eKbyGXF0BohdZI!
βœ… updated uid from G2oZf7BPtYMZuUxpoNNz to K0A0xPNYJ7TPQFR9i6XA!
βœ… updated uid from Z6i7j5Db5zOROoq9xWx0 to OPiDnHTLQTnj252U8Q7w!
βœ… updated uid from 6wD80vDi1iQvDxdqX6z3 to mnlBjvQsb6dptjfUE6zK!
βœ… updated uid from a3YbPBs6Ru6BemN9uQIH to 2h0h56ia9s03B60ycwlV!
βœ… updated uid from E8Rf305fG45XXN7kux4r to ZYP3pcNjwdatsYunOdF3!
βœ… updated uid from jlLmfWxuhbukOymFpSv1 to KAMpTRl9uQ2SK0Q2bEs5!
βœ… updated uid from cXsnXwXn1FWx3jQYlL50 to 7JWPBDDaO3v4bsarUzbm!
βœ… updated uid from D7Qwh5av00o8VFDzqjlf to 0pPePAhfgf1sp5YYCcVr!
βœ… updated uid from cJdoDgzGhM2eGAMWtqjJ to CmCFFXH6ANF2aeguonBl!
βœ… updated uid from HuOCt4WyyJKFzecKctFI to f9vZ3oDdtf47coxWZJR5!
βœ… updated uid from nByusp6GsZEeZAPIJOCK to NiaMP8YQMbmkdOgn9Emx!
βœ… updated uid from j2zbxxkyLSkcOlAAx4wA to aEdyY5KgAr2UsN8iztsh!
βœ… updated uid from Y8PNOePFw551dX3dkygg to 80xlsVmayPPBCCEZ3STE!
βœ… updated uid from ZGqAUICUKNt8gW96uALy to xiRAVXfFZgb81hPRsJaK!
βœ… updated uid from ndpfXsasAmrWR4MSBiJy to AmnU2DMsVcP9jvWkap36!
βœ… updated uid from Cg2wnM1TGH3oMDUtlMaC to tXuyRMDbSYy731XR7t7E!
βœ… updated uid from w589rlX02AiYxYizRED7 to I9Byr2X0Er33TYSuMlmh!
βœ… updated uid from 4H3bdrSk6mSpI5WzhZrL to RqB06HPJWUcoX57OllzD!
βœ… updated uid from EniSR7Rr1HAgRvJ5B8NX to ebzAixUDLHhz8c2xtz3t!
βœ… updated uid from pDydHah7rzcPj6z2uDPx to OqNaHVoOvO57na0a7FN2!
βœ… updated uid from de3AAndURz3hpv1lfvFg to BsvfKNhvT0k4cv4d4Rpy!
βœ… updated uid from dHzh6JnL2v9UKJVhMxZc to 9N9UyXoHMKj93sVGbV2m!
βœ… updated uid from oJjo7nSPl79ihK2n0VYu to YtUix1NKhvnryfHuF7j3!
βœ… updated uid from kX3EY9tYjo7UNRl6lqc9 to o3PqSM5mpPpirVwaBXec!
βœ… updated uid from fD0pVqr7v3eGeEMwX5Kl to ACKKgFCboJIhYLtAO1Nx!
βœ… updated uid from sV7Tg0M8TtKXaWAdhYUk to xXfrauwVrb5LDn6RGImo!
βœ… updated uid from 48OTT5KTKZACeUBmBX7z to xdXNUKucnL4Hfd7lgo8n!
βœ… updated uid from 7XiM3lHdMIaUGK2oq6Om to jU7wZmF7oieXlnzwtqvg!
βœ… updated uid from ZWuZ02nUoCxTS5doq7wv to Cge3PL4Wko0lACbiYapK!
βœ… updated uid from B7tk8OTVMFzRiEQHSeEk to 4CUoY0VCkiFtNFia2fo6!
βœ… updated uid from Urem0kq1IsYmz6xB50TE to L6g2bVgYgW5u7jToU9hq!
βœ… updated uid from rY2VpcLU8xJCjNq9zeJC to on4IoXjPCWcLCoHMHIrL!
βœ… updated uid from 4Pr4mQYQgbg1X7QsSlRJ to UQrmDlXa3F8oJ1UhFYYn!
βœ… updated uid from ra0pknnDCK6GZuh2ZYtG to BTqDzIN6ecwSRlibqGF7!
βœ… updated uid from rBWEfqJ5G5q6Dfr9xSbw to qA6JWwBI3uNVjUqXhWHn!
βœ… updated uid from w3eMJHGNUzIK3O3MRZIO to AifmQJg3o0LppBpNNX7E!
βœ… updated uid from juvBvFd9ltZHLNCTwz8J to 3nbhZ3GH3pKmT8aPSTUa!
βœ… updated uid from CF2qvER0RNGu7NPfGNfs to vdes15TDCM31PqryMnaw!
βœ… updated uid from KuyRACdQvIysRESBDKDk to ijegYnsWNUYemo98O5FZ!
βœ… updated uid from gEkvrIykJhLWrrvb5Ltn to gT2fnE2c58KiBxdCznf8!
βœ… updated uid from 5Sa2JtbLG4jJGLpbbH8K to Ntdynj9uX3LGLRCKLCSi!
βœ… updated uid from c2ek0Kg5K4VjILbt8hGK to OX929rXjWdWMP6SyStEH!
βœ… updated uid from Xn2cvRZZFOnu7zfbsvL0 to XpnXIfcamsSLAvGsK9ZU!
βœ… updated uid from UViArRiDaBPvSkVwMGBD to dMy6xuRTCsxOy1HowiNr!
βœ… updated uid from 4NuzQNp8yMiRYnB5hJ8H to 9z7kKh6NoGinAveQhciS!
βœ… updated uid from EYFJv7sza7H3PpaDglUs to EFsvwaHeCMhns3zXQJnL!
βœ… updated uid from 5Rcfxmq3BwCvWSHosvgj to 0V1wJPgLcRWZvVveRuEx!
βœ… updated uid from UwYr1KnSqccKWQ6mKGc3 to fXa9OIxv89aZ8lB3WsiZ!
βœ… updated uid from zhOuXcSAPM0TsjuKsIBM to 6GM0siRkIUISUwpFu2vB!
βœ… updated uid from 52WvLpkcVofyagJDOQvh to ds2ArOPrb4AA8WBGj7DX!
βœ… updated uid from HgA8B41ns7jJ9a0w995g to J7Ni7YzRM9R94RhmbD3R!
βœ… updated uid from EMnpP32xVRsObVzBJLlh to retxYDEdgMQttwl2mkWU!
βœ… updated uid from DVXXQYtAekR91mJpAh1u to KBW89Mf7IGcekja2HJj5!
βœ… updated uid from 39h348ww1VquAZrWJuGs to livFRRpMaOgb3y8U2mK2!
βœ… updated uid from FrrYyyW8rMt5XfknSZLz to 8OxkoDF7XECAcIfkVqVw!
βœ… updated uid from bP20ByjNY6H393ahDTb5 to g0RcSSYe5vQKzSWYXkuK!
βœ… updated uid from RxmDZ1EFJIs3YO0DK72r to YCAHUBGcICn4FwsqlpEB!
βœ… updated uid from Cj2ZPnbjH5l0oQl1vreJ to PuqnmUwzXQ56VPAT3kGw!
βœ… updated uid from t3FBjBYnJEUDUjWPAnNI to skvFz29DjLGaOOCIiiky!
βœ… updated uid from 2lqYzOcvlv7MN77jmPs5 to SDVD1M4X3SFiVEsV81EI!
βœ… updated uid from 19bVRnbQRwZsD02dBcoI to 4YfCHEGNZFmcXuDI8VRU!
βœ… updated uid from DxHBT0TYjv4P69Z5ajO2 to vEw6vGy47Zi0Qj6Tf6me!
βœ… updated uid from POwdD3cwXdXR0Ag7rSEt to 4G7QtgJ0oNlJTiqNYCS0!
βœ… updated uid from CAqtsOIdZTBWMXOPFE7Q to 3VsUdMB93zPy4phYWjXY!
βœ… updated uid from 3VOd3ho9jmbL5Zj0CMBS to voNLGmLepudw1jkFvtBM!
βœ… updated uid from x8Yfk47IKbX7Hn8DEJ1O to XqjsmDJu9vpxwLPVOxL6!
βœ… updated uid from hFAVOVIPbBd5W5XsqCiN to N7KX13kNDkfDzFIZ9giY!
βœ… updated uid from k36X1PyMbHYJfngEFlJi to FqxF1y70fhTZYjJJBTn7!
βœ… updated uid from IYmobN59g2cEjOWLMCCV to THcjhEfgJXoikr352cpK!
βœ… updated uid from zChfqskgb8l1WMu56RgM to ZsbQWmQGRWADFdhqVrZz!
βœ… updated uid from gQHLlSccfKQbx2rsEW3C to 1le1JAlTYEAIlvSDpdYk!
βœ… updated uid from Ke01F1aqr6bJg0cWpq4t to 6TNaDQUOMRx9Zj0sl5zu!
βœ… updated uid from 79DClNBALpOTkMTmG65R to N849OuhsgqIerohvhVGP!
βœ… updated uid from CJf3VcjtauLRGQjfyXel to JDgehPtJxxhdTOtivX1v!
βœ… updated uid from ScOfJYTxCP3vK3u83UqH to COsRhWtVHhSTbnlr7U6G!
βœ… updated uid from FGdesgaKRWtr1NIkGLl1 to Pt2KR2uvWqr9YwnwY21n!
βœ… updated uid from IeGN4CNkQthW8AxdNKFN to RHgzUuMuwOh9jBdinG1M!
βœ… updated uid from h3xHgkn1einLQy9pV4Wq to 4enY6C2lUHqLGTXAjlLk!
βœ… updated uid from wEwjUmsE3xRSfpWvbcRl to bittNWi0gJTdcJ0pbp7b!
βœ… updated uid from IEtRr4srnS0JlnhSItbh to j50iKDhkM86ysI9c79X0!
βœ… updated uid from aRxKe711wLkV3gm2ZyoG to tUyvzeQn1yaUfgLX2zSo!
βœ… updated uid from nPgLBocitaiXVxcAUULS to IhGeXQ5lmk2gkeShGvUb!
βœ… updated uid from FhYjx3zNdp4pqPisb0gi to 2whWG1oW3an5dY08gPdO!
βœ… updated uid from HnpxSKCM4PyT3D2HWXvS to uf7uKaLtRAa7NfCzTc8x!
βœ… updated uid from PvbizPYEhMrgc8Wx3ZuU to c7WS9K7sIDhr4B5P5UM9!
βœ… updated uid from 2zI2aMdnc9JmaQXvKs8U to CoMgrnD2GCTGmBZZvBLA!
βœ… updated uid from kvnAX2IjS8kGCBdC0Mm4 to 6fkuxqyina8axLiKdjX7!
βœ… updated uid from TfYTHxPrJCZIBCn7Gwg3 to pWt1pWz0USGpjUYzhPw2!
βœ… updated uid from VLl2fgzisJaah9tVjZlg to VgweucTjTX7vESC7yedn!
βœ… updated uid from ArxtDAXKxEauKc4KWXS5 to ktwL1x8BiMQEQOovMGAR!
βœ… updated uid from xs0Db3kmMLFHvclFAGXX to NdDSSgvqoRZmX9drAvtk!
βœ… updated uid from 03Mnbj5FCAkqdxzIwzXv to 2Q57QiG5V58K3fYApMXb!
βœ… updated uid from dfrQBy2rizdrO7IaPSLr to VZP9PoED6T7PfPHTy7r2!
βœ… updated uid from kaGsK3aHNtPfWp245rgq to TJWkpg366cGCnTARSHYg!
βœ… updated uid from kAx7XU5khak7wBolqdnh to s7nff3V7TPSeFtpMIm5s!
βœ… updated uid from vDzWYccCwwpNk5OxLqQC to 23zN4qyB6ZAvETud9Rcb!
βœ… updated uid from FkRhwTkWDR7u09P12Psf to q1pdkWTstZrhLHws1kbR!
βœ… updated uid from FvjD8s2xDthxN2Lmb2Iu to b64sxYNzw50xZSe7hVMn!
βœ… updated uid from 3I0SfoXEkioQQ36P5Djr to 9nirNwn3Gf9wT5J4NfzP!
βœ… updated uid from AICUcoeOzBcl2BcTho2G to kYRTpMaBzEiJBUcWmQEw!
βœ… updated uid from 8pshcDQtsoJzlPbHZfFU to h8wzc2NfxIWyGIADqwFG!
βœ… updated uid from sQbswhpKOcyjwfCsKjI0 to ZDxuonbHn2F8sJXwjrEr!
βœ… updated uid from kMCtWZjckEqodU8e5NgI to NChX0fXEoyfsKhsmVgAK!
βœ… updated uid from tTF7KqrpZn5eV0wCTikP to PDKtIjVvJxyT3C6q11XM!
βœ… updated uid from rq4IbgBMWjIlxvHM05FO to sC6i5fdJMb43iGSHdR4k!
βœ… updated uid from ChRbMb7xTKPNso7EBjdz to Vs3BpES2xk0guildtwAe!
βœ… updated uid from bq9LdrWnUTfWuneA7MBv to usSFyvyTQFKySuSchJY6!
βœ… updated uid from g2QV0aYJXRDK10fnJkwm to X4OyQqMyC4fXjMGKin5x!
βœ… updated uid from MHiOHr0LHZ0C1XgATrvC to QpLAXjwHM6NaIjRuAhwI!
βœ… updated uid from ptkvboyEGTHvEQMBTpSP to TKzywJw8vc9r2IpMhNhN!
βœ… updated uid from aUplufzeGpQMOx1rSEUa to lFgxsIQyeSBmR3NfGpa4!
βœ… updated uid from 1V013kw1fBtdpIeAiD7z to 67LLgp5Y4ubtsUPfjMJI!
βœ… updated uid from 5XrpQFsstmyhFvIYm7Sy to WXgxQnuAebAyqObhCs68!
βœ… updated uid from IhxAyd4KA7MhyvqdBBlF to NmmzMx9qbjBNGQMyAcjY!
βœ… updated uid from pXBy2NKpd2e8FnDzNxqz to fBtvEjIhqfEtGCFuy8XT!
βœ… updated uid from 2OahRJRHx7YDHazHfxjK to c1Nb4Opl4d0JWEqMCIun!
βœ… updated uid from p2yNt7kmAD3rrxmjYro6 to iIEHpul5RhH6VpPiAMFe!
βœ… updated uid from 43FmbDUPMDEYmOyttGQl to T3kjoG0j8Sfmyx7JL7RC!
βœ… updated uid from U95FGPmZQCiGGyh33Jey to 79xgB6ceuX6RfGwYpYYk!
βœ… updated uid from yuhrVNslqD94PiFhyVXv to C35RXXzuPrWPGo4PxYSQ!
βœ… updated uid from IGBgENk0fNyuarSfFr1E to dptYEcjH6o3p9Vy1N17E!
βœ… updated uid from HZIdN1XVLE2DsTjepZZh to 0WPZA1PLpOS2aQ4WsHAo!
βœ… updated uid from VeB4WlzoIyU9Ia2ZuDfP to l3uBVNC3SshUUpANRRQB!
βœ… updated uid from 93ybka2A2ROrzoFbMa8D to 3Zgd7VK3gwBKdFBhBX1c!
βœ… updated uid from NjTPmWUGPekTy4l3pHPc to ZzGi8GCf1UIvv5RNXGTF!
βœ… updated uid from egoAgAfXXw82ubpFURcv to rS2iuD195uJ6srTC9LOb!
βœ… updated uid from 0ZsDTaO3xSO9xmjSVmdy to qBoT3nzo2rFxDKtBJlva!
βœ… updated uid from CBkH10MvYnEy7P7PSWrw to K3hcTKE7wG2ou1yhtfA1!
βœ… updated uid from d5LXaiNeBEDQhl8oncdU to PH7jnrjV2pqEL94fK0As!
βœ… updated uid from pc94Z1Di4ACeRdPVstus to Xu8NsXWhXR2Hrv8GCsAU!
βœ… updated uid from ECFbPqD0XmjUGJDsQ5z0 to CK7YR7ON2oBBcWXpfbi1!
βœ… updated uid from stIde1U1N8obKbifXUJs to sQOP9lrdMbGl2G787ady!
βœ… updated uid from ZFTMIHHwYWktOjXwEGi4 to 5kWd9g4s93oOQn0aEzNU!
βœ… updated uid from sXmg4AqeYRRu5UXwXat8 to UkVCPiopePlyQD0zvPsO!
βœ… updated uid from e6mDfjgHcKxI2aQzK6I7 to r7QcEiwrQ7rLFznORxpA!
βœ… updated uid from 8SzO67l8gvh1y0vWJAIh to KukTUhZjLYSTUrcqnXvO!
βœ… updated uid from oCPNdMfMTqOvVwivcEqq to WEIV7gttPMdDeWrAzoEF!
βœ… updated uid from oAph6mBFeMzDsfM9TofA to z3AsAOO39crEioi5TNUK!
βœ… updated uid from OwRmP6NC34K1Ededr4C4 to 56hlmjXrmktNyheUm4ph!
βœ… updated uid from t9zK1wl7Fhr11f2Mys69 to yzUQhwz2SeK7uyQ1H8Pb!
βœ… updated uid from ZdOEHOalPNsu8LPGM5pV to qCqzcgqxdHklK2mAyIBj!
βœ… updated uid from T2tvUIaVJTVpGZoLOpJl to OL1RnDNsC4032LPu9Bg8!
βœ… updated uid from 6ZO3sw0LYwO2ET8WSOj8 to sbiq3DblQ6knEMLFAizz!
βœ… updated uid from ZvmXrklKV5XQ1dS0lKjM to ubrY2slK4QErNBLrBK0P!
βœ… updated uid from qMqITzIGSBJGEq5Jm5dd to 3ql5kfSKtf0rKNOORDJY!
βœ… updated uid from sVtsKRiBTq6fCwraZC25 to n11KAh0SGhZlecv35AkE!
βœ… updated uid from JfngatYFrrmYILA2jNBz to y54VAzapgdrqHkrVxci1!
βœ… updated uid from 4jv5hRfcgfMYdmHz7bAG to RVBzwu3xTxhTteiTPkvy!
βœ… updated uid from pWqLUigjo0JSjdu1GhyO to EZubvswwxfhvVeLD26gf!
βœ… updated uid from btfztccVskur2dPhQIhr to 39wjVmVnzsqkXmXBULkq!
βœ… updated uid from WYIltUqhBJrweeYjduoE to hP1fk81JEtFAlKyNUh6n!
βœ… updated uid from PoMM1exzmWwNhEh843y9 to DHyEaFQpiavZ9e3h4YDL!
βœ… updated uid from p1rB4tVk1Do0uPGOsaCJ to 2PN6LTuSmJI2TSGlE6V5!
βœ… updated uid from jgMqdtzieCvVygtc4t24 to uLU7vymLJFr1yOnXNsjS!
βœ… updated uid from AFFzybVnPQdw3EyRX01o to 1LJUcEAyBcFf9m8jWHvY!
βœ… updated uid from WudgBEBlrEru5w4KN4qV to aXoSMai1QQlmqCchKOhH!
βœ… updated uid from FAvJPN7vfEizA3HAFklT to eHovM5Ga5DAbaLN2NDGT!
βœ… updated uid from 4P1wuL9UdtNx8N7vhIkr to Np1PSgWwIIYPWz0UCT3r!
βœ… updated uid from lLk5XjHxSafqM3iT4NpX to vcwHu1b0bNlF4sCvkEe9!
βœ… updated uid from uXhLFx1kwiY0vN9YjVkI to 4bad6d71fQQUex0N6YOH!
βœ… updated uid from cI3Rb7qe8xAoPgvoqit6 to 3QL05vr3oc1Ze6PMCzfp!
βœ… updated uid from BARjWjFiz9wQ8rM9vAK9 to wFrzh6O9IfyEynB3pjn1!
βœ… updated uid from NSHdtU2KU5kDJcQjD2bA to 7NfKcGBap98m0WmrL99d!
βœ… updated uid from Q4ecQfbTTyBXt30XNH7X to jQvZokfIUb25resTBRZI!
βœ… updated uid from FR8FlAUBknNieNL3g4db to oV6tX5xoUepYGXA18fkl!
βœ… updated uid from KUYLSmwZRPYcyLqPceRo to WzVCV1EILrno8zarjRUF!
βœ… updated uid from PQ3kt5iVD8UKfAoXv2S9 to f5QEryUQ7ZK0xyLOVAm7!
βœ… updated uid from zTM96Ss3XjCok4RLCZre to k47zGG0frHuyK0PqDnDq!
βœ… updated uid from GOIPy3GNpDmLi1ZNt4tB to TmvQZ4ioBfgokdlQpWVB!
βœ… updated uid from LWKMx1Rfw699UuQZ55lB to JHYjS8VrI68ilpZlj4JT!
βœ… updated uid from J89TSpiRpNMeCKYptU8x to MYnveColUJPTR4rtanrT!
βœ… updated uid from zkFdCN6aBogauvyYIPya to mQbKye6lhsKKSB8ztOiI!
βœ… updated uid from LmPhaRhKzSS4qQVBUiYn to 6IYilXiyiTxZYMCJm7PR!
βœ… updated uid from UnZQ39JnO4r5aTxPs0gf to Xq9KTG7TEx9GIuUXoOET!
βœ… updated uid from A4EV5QhtVn01xyTCkmpj to gcT3x0eWG9LlKyHQh43U!
βœ… updated uid from kGYUgC7PABKloRRIAwvI to WhZRzFQFCAPgkhLdp3s3!
βœ… updated uid from aMZGLhOyBiH89uSYFSGw to zAhpSi7q9Vm1CfAn4dyL!
βœ… updated uid from SonhOzJ6VJAABKEEJV7x to UOYPaKDFPX2x1yTLrLNH!
βœ… updated uid from r4xB9VEUmiLwYMFYQ230 to U3iD7lM00F5VjnL3Gazi!
βœ… updated uid from ZQn7hjmFPZGk6qQVMVXz to 77LxRx6ZLbHKFqtRtRUH!
βœ… updated uid from 3xn1NkDluFbc0T9oVkqk to VIoVqW2X5sIf37PZN3k7!
βœ… updated uid from gvP7jsRNw3gkuxNuisvv to NL5TTp9QLqBaTNLZnTYH!
βœ… updated uid from qeKmR1Mebnow4TgLqTuN to zuSDjhCBRxYCOm8pY6SL!
βœ… updated uid from 5VWw8X9ZrjL4T0AQB2ec to TcZoqxVMTGtgGCtlMqmF!
βœ… updated uid from Pkr70MG34hdmM2P1jsMl to x0APspENZDwEK2rigVxG!
βœ… updated uid from K3wNGCHPUA6bc82Bm7bB to t3tpFjsfQ9gF4pnE9m0G!
βœ… updated uid from DOI5jH3H9M4pWfZx1pI6 to TOhZnj5XmVwJPUPKqmF0!
βœ… updated uid from oUHfAoZKcIqSZ5vPz70l to CbnqPQBah3WvAy6Ub1RR!
βœ… updated uid from 6XPc9ZG6jtb3DN5fJGon to bTQmRRzeSVPGIIGSth3E!
βœ… updated uid from gZbiIlJTPv2Ws6ZJNvl3 to EtxwAoHUyGTdCB8sxtH9!
βœ… updated uid from DzPKFVzgNTJCurDEG9Dr to TN1F0WcfkLVg24uKvvEB!
βœ… updated uid from lfMT4ZYOAF86XhVIl6rf to aK7qnVEWtYT8xGPelpDJ!
βœ… updated uid from mfhCM8hxw9pL5yXUvrru to 40q3JHi1pUgfBl32FZrV!
βœ… updated uid from JXiHC8brOpUrpASJHFEG to BCutg5cxmqLmy2Z5nQYe!
βœ… updated uid from F6AV3AZ3J1FGgGdHkfLS to 3hfdSoNDWqS5GUuYxbLi!
βœ… updated uid from loaIQmX7bXZnUTGsPaAP to xkWgb5OXRlTnPkbadEpi!
βœ… updated uid from TAkntsTmCuTvheFp0e97 to bi0jzkt8G8r9F7OdHLTe!
βœ… updated uid from ZthLxmrTYE32Q3aORYLU to NmE5wV6HoaaCIbvNbBH4!
βœ… updated uid from Q8tXZWec2W59B3AhNnpx to nWoJprpwl1MBrTlvU5gb!
βœ… updated uid from ZYtbksgF7i0uG84q6sAV to LGai3Qzq7PdlkPrHlQTX!
βœ… updated uid from oARiuGQaV4SjpUfldvzf to 9cqJq1IlRRuI9yW8qmv4!
βœ… updated uid from VLaIGC5MFlFQZUcf8oZF to d1J6DqfPEev0aBzfuK1g!
βœ… updated uid from hLxpzhqnajnY4I7RDNim to fiQbndwsVQJdrGcDebVW!
βœ… updated uid from giYD4OGzSoppt0LPf7c0 to 0hrPhYDPB3oG2BRqF4Um!
βœ… updated uid from dNOOFK7g6hSMxSb1VnvR to rC7AgZLCPp2EUiGLTsWg!
βœ… updated uid from rdxF0BkUIjsC9lHU0iIY to j2isuojTqCvxmxII0p4i!
βœ… updated uid from dGDjV1fQtqa86GFAnk1c to BfQ4qzhqUVk2kP0fThrP!
βœ… updated uid from H4THtSiGgTa6koKC1w7P to XEPprsoI6tkT2I67upX2!
βœ… updated uid from J7ilSwD6ARG1nxKAswaF to 1Kb6hekaLHsuewJY6g3P!
βœ… updated uid from uwpPcdm5MAfgiSiBKwxa to bjEy8ho5HhFUBQX8BTyP!
βœ… updated uid from sFykEkpNA2ZfazcpActv to xXTTv6JnGYSKSTQq2GGg!
βœ… updated uid from D9RRjuBei1Na8wOcG3Bi to 2OjDbS8g7Debu64Soavl!
βœ… updated uid from ZEb2D0zab5fDvxk6Oean to 1BNWhcCqu1CMSJaHsbJf!
βœ… updated uid from kogoYW7n24YHcFu9kXU7 to dS2EDlKTapIz08QK9Vuv!
βœ… updated uid from iPnXcmg4KHB9BqDflGai to PBQOfPPt6DbWjK64Y2ma!
βœ… updated uid from PwFfBISKL6FilXpqTM8U to sn1HfdyROtYgkngiRvpC!
βœ… updated uid from ZDHmgxMo9dlONMyH8Zuc to qbgxNWiLRkvUJqy32zd2!
βœ… updated uid from 3UbnjXudz8zDKllNvNC0 to P2M3r3KJTvcMZlG67EK9!
βœ… updated uid from g7OWX8Yt5rs46UiM8aGg to HqQx5PAULfU7V0iRuAfy!
βœ… updated uid from qxUeGDqBrU7BrJce6z9H to uOBoDhyJqTCY4fM0hA9h!
βœ… updated uid from mTThtrC98ja03wGSFA4G to YTYeoSEsXTxvFSdf3ZkZ!
βœ… updated uid from gb20GNiWcayPSY19OhD3 to 9ZD042baEAvW8QpoX4dW!
βœ… updated uid from 3IGzrsguuHABMCb4L9jL to 3GktMKv7NFZfOtzTO37t!
βœ… updated uid from k5rRXrRGKApByV0dEGja to wMQB9riiulYOwucDk8hs!
βœ… updated uid from q3N8RTYbpVmLckhA14r6 to KAHDMhL7KC7aHUNAhkar!
βœ… updated uid from gHVv3CHPzx7Kslfdu4dM to BtGLeSFvjUjCldgGelwt!
βœ… updated uid from nB6o64P9tt4Mca5j5Z2I to yeORGtsGyr7m1kNi6YfW!
βœ… updated uid from ReJ2vo3wudBCqMOSIXh3 to DPHpKfWvz1iPV9YX89vZ!
βœ… updated uid from oUmeVa8IckeQvlAFLhJb to 8p7XTuhjWwSpzRWWKNZE!
βœ… updated uid from M7xoaLqoUwiTaiVmtMq4 to hKyQa62JLSaE8UlFseoq!
βœ… updated uid from NL7KFUGB3utEsvtTlTKZ to BTHskNWGFg0iJwixoSGY!
βœ… updated uid from A4JgGwTo7H5quckrd9H4 to 4XeJhfSD3dptyqoSUHDx!
βœ… updated uid from fDDgVfLmVZKNAdWt07xY to 3SSFIz287j3aUMHWQwOJ!
βœ… updated uid from blgjMaqOclgVgHK4OULQ to my4iPi9IgSiYIcc0TRO9!
βœ… updated uid from QSUOjsglKICKAnD2iP2h to pnQX4jvkj3eFWGOzekiO!
βœ… updated uid from NQcBf5QzUKy9CcQVVXk0 to KdWQ4KYK4rEgU2Ch6TtH!
βœ… updated uid from kwnPVvQ9OPaeZkDHHyLV to lMLp2Aj9tTGXaRtjSQDZ!
βœ… updated uid from tI39GJTqSlZ8g5OaSm68 to MvewDAN2FsUAMG2bAzPu!
βœ… updated uid from Xq6TTQPUSmNDFdHqJz8R to 2HoqnnMXeQtWwrLoFIUy!
βœ… updated uid from ccjn4ml6wFi65BKwEcUH to jkeQwS8gamxdOVE56qAj!
βœ… updated uid from QbMXpTg8cfV30wfFFelH to 4LP6iYPWOKjBuJLb49tY!
βœ… updated uid from dBi9UBfZB4zLTCgJdtzw to NwFOBmT6emiJaeyrpdUO!
βœ… updated uid from 635VXAEl6dPWqeajIGaN to AyKamhQmdQRufk8SC1iR!
βœ… updated uid from 4UdE334dCgOh0n5xk4ix to LJnjzUJCEG3BkiIUMqz8!

Register metadataΒΆ

Register new features and parent labelsΒΆ

from cellxgene_lamin._features import OBS_FEATURES, EXT_FEATURES, register_feature_set
obs_feature_set = ln.FeatureSet.filter(name="obs features").one_or_none()
if obs_feature_set is None:
    obs_feature_set = register_feature_set(artifacts, "obs")

ext_feature_set = ln.FeatureSet.filter(name="external metadata").one_or_none()
if ext_feature_set is None:
    ext_feature_set = register_feature_set(artifacts, "ext")
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
registering cell_type
βœ… loaded 752 CellType records matching ontology_id: 'CL:0019003', 'CL:1000494', 'CL:0000708', 'CL:0009089', 'CL:1000850', 'CL:0009111', 'CL:0000055', 'CL:1000309', 'CL:0000890', 'CL:1001045', 'CL:0000394', 'CL:0000553', 'CL:0000123', 'CL:0002145', 'CL:0002085', 'CL:1000223', 'CL:1000692', 'CL:0000084', 'CL:0000485', 'CL:0000066', ...
βœ… created 20 CellType records from Bionty matching ontology_id: 'CL:0000459', 'CL:0000753', 'CL:0000754', 'CL:0000756', 'CL:0000757', 'CL:0000758', 'CL:0000759', 'CL:0000760', 'CL:0000761', 'CL:0000917', 'CL:0002102', 'CL:0002626', 'CL:0002672', 'CL:0004213', 'CL:0004214', 'CL:0004215', 'CL:0004216', 'CL:0011031', 'CL:1000042', 'CL:4023161'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: lb.settings.auto_save_parents = False
πŸ’‘ also saving parents of CellType(uid='15Fmigot', name='noradrenergic cell', ontology_id='CL:0000459', synonyms='noradrenaline secreting cell|norepinephrin secreting cell|norepinephrine secreting cell', description='A Cell Capable Of Producting Norepiniphrine. Norepiniphrine Is A Catecholamine With Multiple Roles Including As A Hormone And A Neurotransmitter. In Addition, Epiniphrine Is Synthesized From Norepiniphrine By The Actions Of The Phenylethanolamine N-Methyltransferase Enzyme.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='5QdiFSqz', name='type 1 cone bipolar cell (sensu Mus)', ontology_id='CL:0000753', synonyms='DB1 cone bipolar cell', description='An Off-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Outer Half Of The Inner Plexiform Layer. The Cell Body Of These Cells Is In The Middle Of The Inner Plexiform Layer. The Dendritic Tree Is Stout And The Axon Terminates In Sublamina 1. The Axonal Terminal Is Wide And Has Only A Few Varicosities.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
βœ… created 1 CellType record from Bionty matching ontology_id: 'CL:0000752'
πŸ’‘ also saving parents of CellType(uid='nK9fhvk3', name='cone retinal bipolar cell', ontology_id='CL:0000752', description='A Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptor Cells And Neurons In The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:44 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='16lJK1l3', name='type 2 cone bipolar cell (sensu Mus)', ontology_id='CL:0000754', synonyms='FMB cone bipolar cell', description='An Off-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Outer Half Of The Inner Plexiform Layer. The Dendritic Tree Is Not Well Filled And The Dendrites Are More Delicate Than In Type 1 Cells. The Axon Terminal Is Bushier And Exhibits A Dense Plexus Of Varicosities In The Inner Part Of Sublamina 1 (Ghosh Et Al., 2004).  It Can Be Differentiated From Other Retinal Bipolar Neurons By Its Expression Of Marker Genes: Neto1, Lhx3 And Irx-6 (Shekhar, 2016).', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='5bskGP7s', name='type 4 cone bipolar cell (sensu Mus)', ontology_id='CL:0000756', synonyms='DB3 cone bipolar cell', description='An Off-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Outer Half Of The Inner Plexiform Layer. The Cell Has A Diffuse Axon Terminal With Varicosities In Sublaminae 1 And 2 Of The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='5m55ukEt', name='type 5 cone bipolar cell (sensu Mus)', ontology_id='CL:0000757', synonyms='DB4 cone bipolar cell', description='An On-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Inner Half Of The Inner Plexiform Layer. The Axon Terminal Is Restricted To Sublamina 3 Of The Inner Plexiform Layer. It Is Narrowly Stratified And Branched. The Dendritic Tree Has Many Delicate Branches.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='RHTDqjIk', name='type 6 cone bipolar cell (sensu Mus)', ontology_id='CL:0000758', synonyms='DB5 cone bipolar cell', description='An On-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Inner Half Of The Inner Plexiform Layer. The Cell Has A Loose, Delicate Axon Terminal That Opens In Sublamina 3 Of The Inner Plexiform Layer And Descends Into Sublamina 4.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='1FSe7Fgv', name='type 7 cone bipolar cell (sensu Mus)', ontology_id='CL:0000759', synonyms='IMB cone bipolar cell', description='An On-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Inner Half Of The Inner Plexiform Layer. The Axon Terminal Is Narrowly Stratified And Are Found Just Below A Calretinin-Expressing Band In Sublamina 4 Of The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='2fwQAWrK', name='type 8 cone bipolar cell (sensu Mus)', ontology_id='CL:0000760', synonyms='DB6 cone bipolar cell', description='An On-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Inner Half Of The Inner Plexiform Layer. This Cell Has The Widest Dendritic Field And The Widest Axon Terminal Of All Retinal Bipolar Cells. The Axon Terminal Is Delicate And Stratified Through Sublaminae 4 And 5 Of The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='3MDP6uCq', name='type 9 cone bipolar cell (sensu Mus)', ontology_id='CL:0000761', synonyms='BB cone bipolar cell', description='An On-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Inner Half Of The Inner Plexiform Layer. The Dendritic Tree Is Wide And The Dendritic Convergence Indicates Cone Selectivity. The Axon Terminal Is Sparsely Branched And Terminates In Sublamina 5 Of The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='4AQr9CRo', name='Tc1 cell', ontology_id='CL:0000917', synonyms='Tc1 T lymphocyte|Tc1 T-cell|Tc1 T cell|T-cytotoxic T cell type 1|CD8-positive Th1 cell|Tc1 CD8+ T cell|Th1 CD8-positive T cell|Tc1 T-lymphocyte|Th1 non-TFH CD8-positive T cell', description='A Cd8-Positive, Alpha-Beta Positive T Cell That Has The Phenotype T-Bet-Positive, Eomesodermin-Positive, Cxcr3-Positive, Ccr6-Negative, And Is Capable Of Producing Interferon-Gamma.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='6uy4Hmew', name='CD38-negative naive B cell', ontology_id='CL:0002102', synonyms='CD38- naive B cell|CD38- naive B-lymphocyte|CD38- naive B-cell|CD38-negative naive B lymphocyte|CD38-negative naive B-cell|CD38- naive B lymphocyte|CD38-negative naive B-lymphocyte', description='A Cd38-Negative Naive B Cell Is A Mature B Cell That Has The Phenotype Cd38-Negative, Surface Igd-Positive, Surface Igm-Positive, And Cd27-Negative, That Has Not Yet Been Activated By Antigen In The Periphery.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='1awEFhiW', name='immature astrocyte', ontology_id='CL:0002626', synonyms='immature astrocytic glia', description='An Immature Astrocyte.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='2DATbWD2', name='retinal progenitor cell', ontology_id='CL:0002672', description='A Multi-Fate Stem Cell That Can Give Rise To Different Retinal Cell Types Including Rod And Cone Cells.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='eS0b73VF', name='type 3a cone bipolar cell', ontology_id='CL:0004213', description='A Type Of Type 3 Cone Bipolar Cell With Distinctive Curly Dendrites.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
βœ… created 1 CellType record from Bionty matching ontology_id: 'CL:0000755'
πŸ’‘ also saving parents of CellType(uid='7Nwix97c', name='type 3 cone bipolar cell (sensu Mus)', ontology_id='CL:0000755', synonyms='DB2 cone bipolar cell', description='An Off-Bipolar Neuron Found In The Retina And Having Connections With Cone Photoreceptors Cells And Neurons In The Outer Half Of The Inner Plexiform Layer. The Dendritic Tree Is Delicate And The Dendritic Tips Appear Small When Compared With Type 1 Cells. The Axon Terminal Is Stratified And Restricted To Sublamina 2 Of The Inner Plexiform Layer.', updated_at=2024-01-15 07:18:46 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='54NyoAxX', name='type 3b cone bipolar cell', ontology_id='CL:0004214', description='A Type Of Type 3 Cone Bipolar Cell With Distinctive Crescent-Shaped Dendrites.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='1tUGQcMy', name='type 5a cone bipolar cell', ontology_id='CL:0004215', description='A Type 5 Cone Bipolar Cell With Narrowly Stratified Post Synaptic Terminals.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='59K8GEoD', name='type 5b cone bipolar cell', ontology_id='CL:0004216', description='A Type 5 Cone Bipolar Cell With Diffuse Axonal Branches.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='r810TTDw', name='monocyte-derived dendritic cell', ontology_id='CL:0011031', synonyms='MDDC cell', description='A Dendritic Cell That Develops From A Monocyte.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='4vjvlFED', name='forebrain neuroblast', ontology_id='CL:1000042', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
πŸ’‘ also saving parents of CellType(uid='011iVJMd', name='unipolar brush cell', ontology_id='CL:4023161', description='An Excitatory Glutamatergic Interneuron Found In The Granular Layer Of The Cerebellar Cortex And Also In The Granule Cell Domain Of The Cochlear Nucleus. Unipolar Brush Cells Have A Round Or Oval Cell Body With Usually A Single Short Dendrite That Ends In A Brush-Like Tuft Of Short Dendrites Unique To Them Known As Dendrioles.', updated_at=2024-01-15 07:18:43 UTC, public_source_id=48, created_by_id=1)
registering development_stage
βœ… loaded 228 DevelopmentalStage records matching ontology_id: 'MmusDv:0000034', 'MmusDv:0000052', 'HsapDv:0000242', 'HsapDv:0000060', 'HsapDv:0000121', 'HsapDv:0000238', 'HsapDv:0000119', 'HsapDv:0000216', 'HsapDv:0000096', 'HsapDv:0000179', 'MmusDv:0000089', 'HsapDv:0000208', 'MmusDv:0000057', 'HsapDv:0000068', 'HsapDv:0000103', 'HsapDv:0000183', 'HsapDv:0000029', 'HsapDv:0000148', 'HsapDv:0000237', 'MmusDv:0000051', ...
❗ did not create DevelopmentalStage records for 3 non-validated ontology_ids: 'MmusDv:0000025', 'MmusDv:0000041', 'MmusDv:0000092'
βœ… created 3 DevelopmentalStage records from Bionty matching ontology_id: 'MmusDv:0000041', 'MmusDv:0000025', 'MmusDv:0000092'
registered 3 records: [DevelopmentalStage(uid='6jNHUvWd', name='unknown', ontology_id='MmusDv:0000041', public_source_id=44, created_by_id=1), DevelopmentalStage(uid='4vN31Q5K', name='Theiler stage 18', ontology_id='MmusDv:0000025', synonyms='E10.5-11.25|TS18', description='Organogenesis Stage During Which The Lens Vesicle Gradually Closes And The Nasal Pits Start To Form. The Rapid Growth Of The Brain Is Striking.', public_source_id=44, created_by_id=1), DevelopmentalStage(uid='3wDLorw8', name='postpartum stage', ontology_id='MmusDv:0000092', description='Mouse Developmental Stage That Covers The Period From Birth Until Late Adulthood.', public_source_id=44, created_by_id=1)]
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: lb.settings.auto_save_parents = False
πŸ’‘ also saving parents of DevelopmentalStage(uid='6jNHUvWd', name='unknown', ontology_id='MmusDv:0000041', updated_at=2024-01-15 07:18:49 UTC, public_source_id=44, created_by_id=1)
πŸ’‘ also saving parents of DevelopmentalStage(uid='4vN31Q5K', name='Theiler stage 18', ontology_id='MmusDv:0000025', synonyms='E10.5-11.25|TS18', description='Organogenesis Stage During Which The Lens Vesicle Gradually Closes And The Nasal Pits Start To Form. The Rapid Growth Of The Brain Is Striking.', updated_at=2024-01-15 07:18:49 UTC, public_source_id=44, created_by_id=1)
πŸ’‘ also saving parents of DevelopmentalStage(uid='3wDLorw8', name='postpartum stage', ontology_id='MmusDv:0000092', description='Mouse Developmental Stage That Covers The Period From Birth Until Late Adulthood.', updated_at=2024-01-15 07:18:49 UTC, public_source_id=44, created_by_id=1)
registering disease
βœ… loaded 91 Disease records matching ontology_id: 'MONDO:0009061', 'MONDO:0005027', 'MONDO:0003573', 'MONDO:0001627', 'MONDO:0004849', 'MONDO:0008433', 'MONDO:0004335', 'MONDO:0004691', 'MONDO:0004514', 'MONDO:0005575', 'MONDO:0013662', 'MONDO:0005021', 'MONDO:0005005', 'MONDO:0005011', 'MONDO:0002052', 'MONDO:0007472', 'MONDO:0002120', 'MONDO:0003050', 'MONDO:0100096', 'MONDO:0600025', ...
βœ… created 8 Disease records from Bionty matching ontology_id: 'MONDO:0000819', 'MONDO:0004781', 'MONDO:0004989', 'MONDO:0005252', 'MONDO:0005453', 'MONDO:0005494', 'MONDO:0021115', 'MONDO:0021116'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: lb.settings.auto_save_parents = False
πŸ’‘ also saving parents of Disease(uid='2g6pBHyD', name='anencephaly', ontology_id='MONDO:0000819', synonyms='anencephalus', description='A Rare Neural Tube Defect During Pregnancy, Resulting In The Absence Of A Large Portion Of The Brain And Skull In The Fetus.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
βœ… loaded 1 Disease record matching ontology_id: 'MONDO:0003847'
βœ… created 1 Disease record from Bionty matching ontology_id: 'MONDO:0002320'
πŸ’‘ also saving parents of Disease(uid='2t0kJzgY', name='congenital nervous system disorder', ontology_id='MONDO:0002320', synonyms='congenital abnormality of the nervous system|congenital neurologic anomaly|congenital nervous system disorder', description='An Abnormality Of The Nervous System That Is Present At Birth Or Detected In The Neonatal Period.', updated_at=2024-01-15 07:18:53 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='5j7A7XYG', name='acute myocardial infarction', ontology_id='MONDO:0004781', synonyms='myocardial infarction (disease), acute|acute myocardial infarction (disease)', description='Necrosis Of The Myocardium, As A Result Of Interruption Of The Blood Supply To The Area. It Is Characterized By A Severe And Rapid Onset Of Symptoms That May Include Chest Pain, Often Radiating To The Left Arm And Left Side Of The Neck, Dyspnea, Sweating, And Palpitations.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='1yX8SwAD', name='breast carcinoma', ontology_id='MONDO:0004989', synonyms='mammary carcinoma|breast carcinoma|carcinoma of the breast|carcinoma of breast', description='A Carcinoma That Arises From Epithelial Cells Of The Breast', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='4rqQ6I6U', name='heart failure', ontology_id='MONDO:0005252', synonyms='insufficiency, Cardiac|cardiac failure|heart failure|cardiac insufficiency|failure, heart', description='Inability Of The Heart To Pump Blood At An Adequate Rate To Meet Tissue Metabolic Requirements. Clinical Symptoms Of Heart Failure Include: Unusual Dyspnea On Light Exertion, Recurrent Dyspnea Occurring In The Supine Position, Fluid Retention Or Rales, Jugular Venous Distension, Pulmonary Edema On Physical Exam, Or Pulmonary Edema On Chest X-Ray Presumed To Be Cardiac Dysfunction.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='76nVPrn5', name='congenital heart disease', ontology_id='MONDO:0005453', synonyms='congenital anomaly of heart|congenital heart defects|congenital heart defect|heart defect', description='A Heart Disease That Is Present At Birth. Representative Examples Include Atrial Septal Defect, Ventricular Septal Defect, Tetralogy Of Fallot, And Patent Foramen Ovale.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
βœ… loaded 1 Disease record matching ontology_id: 'MONDO:0005267'
βœ… created 1 Disease record from Bionty matching ontology_id: 'MONDO:0024239'
πŸ’‘ also saving parents of Disease(uid='7c9IFE6d', name='congenital anomaly of cardiovascular system', ontology_id='MONDO:0024239', synonyms='congenital Abnormality of the circulatory system|congenital anomaly of cardiovascular system|congenital cardiovascular Abnormality|disorder of cardiovascular system development|congenital cardiovascular anomaly|cardiovascular system development disease', description='A Disease That Has Its Basis In The Disruption Of Cardiovascular System Development.', updated_at=2024-01-15 07:18:54 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='2g3vdh4F', name='triple-negative breast carcinoma', ontology_id='MONDO:0005494', synonyms='triple-negative breast cancer|triple-negative breast carcinoma|triple-receptor negative breast cancer', description='An Invasive Breast Carcinoma Which Is Negative For Expression Of Estrogen Receptor (Er), Progesterone Receptor (Pr), And Human Epidermal Growth Factor Receptor 2 (Her2).', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
βœ… created 3 Disease records from Bionty matching ontology_id: 'MONDO:0000616', 'MONDO:0006513', 'MONDO:0000618'
πŸ’‘ also saving parents of Disease(uid='2OGAtYpX', name='progesterone-receptor negative breast cancer', ontology_id='MONDO:0000616', updated_at=2024-01-15 07:18:55 UTC, public_source_id=49, created_by_id=1)
βœ… created 1 Disease record from Bionty matching ontology_id: 'MONDO:0006116'
πŸ’‘ also saving parents of Disease(uid='rpYSjunF', name='breast carcinoma by gene expression profile', ontology_id='MONDO:0006116', synonyms='breast carcinoma by gene expression profile', description='A Header Term That Includes The Following Breast Carcinoma Subtypes Determined By Gene Expression Profiling: Luminal A Breast Carcinoma, Luminal B Breast Carcinoma, Her2 Positive Breast Carcinoma, Basal-Like Breast Carcinoma, Triple-Negative Breast Carcinoma, And Normal Breast-Like Subtype Of Breast Carcinoma.', updated_at=2024-01-15 07:18:57 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='1FdMycA0', name='estrogen-receptor negative breast cancer', ontology_id='MONDO:0006513', synonyms='ER- breast cancer', description='A Subtype Of Breast Cancer That Is Estrogen-Receptor Negative', updated_at=2024-01-15 07:18:55 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='1UsnNL28', name='Her2-receptor negative breast cancer', ontology_id='MONDO:0000618', updated_at=2024-01-15 07:18:55 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='7N4DbHPa', name='luminal B breast carcinoma', ontology_id='MONDO:0021115', synonyms='Luminal B|Luminal B breast carcinoma|Luminal B estrogen receptor positive subtype of breast carcinoma|Luminal B breast cancer|Luminal B subtype of breast carcinoma', description='A Biologic Subset Of Breast Carcinoma Defined By Low To Moderate Expression Of Genes Characteristic Of Luminal Epithelial Cells Including Estrogen Receptor (Er), And High Expression Of Ggh, Laptm4B, And Ccne1. This Subtype Of Breast Cancer Is Associated With A Good Prognosis, Although Not As Favorable As The Luminal A Subtype.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
βœ… created 1 Disease record from Bionty matching ontology_id: 'MONDO:0004990'
πŸ’‘ also saving parents of Disease(uid='Me1FU1fo', name='breast tumor luminal A or B', ontology_id='MONDO:0004990', synonyms='breast tumor luminal|luminal breast cancer', description='Subsets Of Breast Carcinoma Defined By Expression Of Genes Characteristic Of Luminal Epithelial Cells.', updated_at=2024-01-15 07:18:58 UTC, public_source_id=49, created_by_id=1)
πŸ’‘ also saving parents of Disease(uid='6L0xexcA', name='luminal A breast carcinoma', ontology_id='MONDO:0021116', synonyms='Luminal A breast carcinoma|Luminal A estrogen receptor positive subtype of breast carcinoma|Luminal A breast cancer|Luminal A subtype of breast carcinoma|Luminal A', description='A Biologic Subset Of Breast Carcinoma Defined By High Expression Of Genes Characteristic Of Luminal Epithelial Cells, Including Estrogen Receptor (Er), Estrogen Regulated Protein Liv-1, And The Transcription Factors Hepatocyte Nuclear Factor 3, Hnf3A, Xbp1, And Gata 3. This Subtype Of Breast Cancer Is Associated With A Good Prognosis.', updated_at=2024-01-15 07:18:51 UTC, public_source_id=49, created_by_id=1)
registering self_reported_ethnicity
βœ… loaded 28 Ethnicity records matching ontology_id: 'unknown', 'HANCESTRO:0017', 'HANCESTRO:0590', 'HANCESTRO:0462', 'HANCESTRO:0009', 'HANCESTRO:0463', 'HANCESTRO:0010', 'HANCESTRO:0568', 'HANCESTRO:0025', 'HANCESTRO:0019', 'HANCESTRO:0008', 'HANCESTRO:0588', 'HANCESTRO:0383', 'HANCESTRO:0321', 'HANCESTRO:0027', 'HANCESTRO:0005', 'HANCESTRO:0595', 'HANCESTRO:0016', 'HANCESTRO:0015', 'HANCESTRO:0021', ...
βœ… created 2 Ethnicity records from Bionty matching ontology_id: 'HANCESTRO:0597', 'HANCESTRO:0598'
❗ did not create Ethnicity records for 2 non-validated ontology_ids: 'HANCESTRO:0005,HANCESTRO:0008', 'HANCESTRO:0013,HANCESTRO:0014'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: lb.settings.auto_save_parents = False
πŸ’‘ also saving parents of Ethnicity(uid='7RNCY3yC', name='Singaporean Malay', ontology_id='HANCESTRO:0597', description='Includes Individuals Who Either Self-Report Or Have Been Described By Authors As Singaporean Malay.', updated_at=2024-01-15 07:19:00 UTC, public_source_id=45, created_by_id=1)
πŸ’‘ also saving parents of Ethnicity(uid='011BKLRZ', name='Singaporean Indian', ontology_id='HANCESTRO:0598', description='Includes Individuals Who Either Self-Report Or Have Been Described By Authors As Singaporean Indian.', updated_at=2024-01-15 07:19:00 UTC, public_source_id=45, created_by_id=1)
registered 2 records: [Ethnicity(uid='8t2kwFPT', name='Native American,Hispanic or Latin American', ontology_id='HANCESTRO:0013,HANCESTRO:0014', created_by_id=1), Ethnicity(uid='76lLnODz', name='European,Asian', ontology_id='HANCESTRO:0005,HANCESTRO:0008', created_by_id=1)]
registering sex
registering tissue
βœ… loaded 356 Tissue records matching ontology_id: 'UBERON:0002067', 'UBERON:0002113', 'UBERON:0002115', 'UBERON:0001925', 'UBERON:0001225', 'UBERON:0001293', 'UBERON:0002382', 'UBERON:0001295', 'UBERON:0001393', 'UBERON:0001159', 'UBERON:0002810', 'UBERON:0004167', 'UBERON:0001707', 'UBERON:0001366', 'UBERON:0002299', 'UBERON:0001471', 'UBERON:0002420', 'UBERON:0039167', 'UBERON:0000004', 'UBERON:0002108', ...
βœ… created 6 Tissue records from Bionty matching ontology_id: 'UBERON:0002129', 'UBERON:0002132', 'UBERON:0002245', 'UBERON:0004070', 'UBERON:0014648', 'UBERON:0019207'
❗ did not create Tissue records for 12 non-validated ontology_ids: 'CL:0000010', 'CL:0000082', 'CL:0000084', 'CL:0000115', 'CL:0000351', 'CL:0002322', 'CL:0002327', 'CL:0002328', 'CL:0002334', 'CL:0002335', 'CL:0002633', 'CL:0010003'
❗ now recursing through parents: this only happens once, but is much slower than bulk saving
πŸ’‘ you can switch this off via: lb.settings.auto_save_parents = False
πŸ’‘ also saving parents of Tissue(uid='3PjakEs6', name='cerebellar cortex', ontology_id='UBERON:0002129', synonyms='cortex of cerebellar hemisphere', description='The Superficial Gray Matter Of The Cerebellum. It Consists Of Three Main Layers, The Molecular Layer, The Purkinje Cell Layer And The Granule Cell Layer.', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
βœ… created 1 Tissue record from Bionty matching ontology_id: 'UBERON:0019263'
πŸ’‘ also saving parents of Tissue(uid='49MXa4pd', name='gray matter of hindbrain', ontology_id='UBERON:0019263', synonyms='gray matter of the hindbrain', updated_at=2024-01-15 07:19:05 UTC, public_source_id=47, created_by_id=1)
πŸ’‘ also saving parents of Tissue(uid='487THodN', name='dentate nucleus', ontology_id='UBERON:0002132', synonyms='lateral nucleus of cerebellum|lateral cerebellar nucleus|dentate cerebellar nucleus', description='The Largest And Most Lateral Of The Deep Cerebellum Nuclei; It Receives Axons Of Purkinje Cells In The Lateral Cerebellar Hemisphere (Neocerebellum) And Receives Its Afferents From The Premotor Cortex And The Supplementary Motor Cortex Through The Pontocerebellar System, And Its Efferents Project Through The Superior Cerebellar Peduncle And Is A Major Source Of Its Fibers.', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
βœ… created 1 Tissue record from Bionty matching ontology_id: 'UBERON:0008995'
πŸ’‘ also saving parents of Tissue(uid='5ycRhxnh', name='nucleus of cerebellar nuclear complex', ontology_id='UBERON:0008995', synonyms='deep cerebellar nucleus|cerebellar nucleus', description='Four Accumulations Of Gray Substance Embedded In The White Substance Of The Cerebellum, Comprising The Nucleus Dentatus, Nucleus Emboliformis, Nucleus Globosus, And Nucleus Fastigii.', updated_at=2024-01-15 07:19:07 UTC, public_source_id=47, created_by_id=1)
πŸ’‘ also saving parents of Tissue(uid='47CtdZAI', name='cerebellar hemisphere', ontology_id='UBERON:0002245', synonyms='cerebellum hemisphere|hemispherium cerebelli [H II - H X]|cerebellar hemisphere|hemispherium cerebelli [hII-hX]|hemisphere of cerebellum [H II - H X]|hemisphere of cerebellum', description='A Paired Regions Of The Cerebellum That Lie Outside And Lateral To The Central Vermis[Mp]. The Cerebellum Consists Of Three Parts, A Median And Two Lateral, Which Are Continuous With Each Other, And Are Substantially The Same In Structure. The Median Portion Is Constricted, And Is Called The Vermis, From Its Annulated Appearance Which It Owes To The Transverse Ridges And Furrows Upon It; The Lateral Expanded Portions Are Named The Hemispheres. The Lateral Hemisphere Is Considered The Portion Of The Cerebellum To Develop Most Recently. [Wp,Unvetted].', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
πŸ’‘ also saving parents of Tissue(uid='3RMLZOKz', name='cerebellum vermis lobule', ontology_id='UBERON:0004070', synonyms='lobule of vermis', description='The Region Of A Cerebellar Lobule That Resides In The Central Section Of The Cerebellum Between The Two Hemispheres.', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
πŸ’‘ also saving parents of Tissue(uid='3r1l5rzE', name='hemisphere part of cerebellar posterior lobe', ontology_id='UBERON:0014648', synonyms='hemispherium lobus posterior|hemisphere of posterior lobe|hemisphere of posterior lobe of cerebellum', description='A Multi-Tissue Structure That Is Part Of A Cerebellar Hemisphere And Is Part Of A Posterior Lobe Of Cerebellum.', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
πŸ’‘ also saving parents of Tissue(uid='1q7DYk8z', name='chorioretinal region', ontology_id='UBERON:0019207', synonyms='retinachoroid|retinachoroidal region|chorioretina|choroid and retina', description='The Part Of The Eye That Consists Of Both The Retina And The Optic Choroid.', updated_at=2024-01-15 07:19:04 UTC, public_source_id=47, created_by_id=1)
registered 12 records: [Tissue(uid='22LvKd01', name='T cell', ontology_id='CL:0000084', created_by_id=1), Tissue(uid='1ERsVqRf', name='embryonic stem cell', ontology_id='CL:0002322', created_by_id=1), Tissue(uid='48whgmiD', name='epithelial cell of alveolus of lung', ontology_id='CL:0010003', created_by_id=1), Tissue(uid='5F4YNEUS', name='mammary gland epithelial cell', ontology_id='CL:0002327', created_by_id=1), Tissue(uid='1J6s4gSi', name='endothelial cell', ontology_id='CL:0000115', created_by_id=1), Tissue(uid='XS6m3PvU', name='cultured cell', ontology_id='CL:0000010', created_by_id=1), Tissue(uid='1LzSyCsJ', name='respiratory basal cell', ontology_id='CL:0002633', created_by_id=1), Tissue(uid='4IRoehoY', name='preadipocyte', ontology_id='CL:0002334', created_by_id=1), Tissue(uid='8dEt6lpw', name='brown preadipocyte', ontology_id='CL:0002335', created_by_id=1), Tissue(uid='2mqTx1qQ', name='epithelial cell of lung', ontology_id='CL:0000082', created_by_id=1), Tissue(uid='7MscrSDl', name='trophoblast cell', ontology_id='CL:0000351', created_by_id=1), Tissue(uid='MJYdRbdq', name='bronchial epithelial cell', ontology_id='CL:0002328', created_by_id=1)]

donors and suspension_typesΒΆ

from cellxgene_lamin._labels import register_ulabels
register_ulabels(cxg_datasets, "donor_id")
registered 205 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
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:
            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
lb.DevelopmentalStage.filter(name="unknown").exclude(ontology_id="unknown").delete()
annotating dataset 0 of 1163
annotating dataset 100 of 1163
annotating dataset 200 of 1163
annotating dataset 300 of 1163
annotating dataset 400 of 1163
annotating dataset 500 of 1163
annotating dataset 600 of 1163
annotating dataset 700 of 1163
annotating dataset 800 of 1163
annotating dataset 900 of 1163
annotating dataset 1000 of 1163
annotating dataset 1100 of 1163

Validate and register genesΒΆ

from cellxgene_lamin._gene import register_genes

Register all genes for each organism:

register_genes()
registering homo_sapiens genes
❗ did not create Gene records for 147 non-validated ensembl_gene_ids: 'ENSG00000112096', 'ENSG00000137808', 'ENSG00000161149', 'ENSG00000182230', 'ENSG00000203812', 'ENSG00000204092', 'ENSG00000205485', 'ENSG00000212951', 'ENSG00000215271', 'ENSG00000221995', 'ENSG00000224739', 'ENSG00000224745', 'ENSG00000225178', 'ENSG00000225932', 'ENSG00000226377', 'ENSG00000226380', 'ENSG00000226403', 'ENSG00000227021', 'ENSG00000227220', 'ENSG00000227902', ...
❗ 147 terms (0.20%) are not validated for ensembl_gene_id: ENSG00000269933, ENSG00000261737, ENSG00000259834, ENSG00000256374, ENSG00000263464, ENSG00000203812, ENSG00000272196, ENSG00000272880, ENSG00000284299, ENSG00000270188, ENSG00000287116, ENSG00000237133, ENSG00000224739, ENSG00000227902, ENSG00000239467, ENSG00000272551, ENSG00000280374, ENSG00000284741, ENSG00000236886, ENSG00000229352, ...
registering mus_musculus genes
❗ did not create Gene records for 135 non-validated ensembl_gene_ids: 'ENSMUSG00000022591', 'ENSMUSG00000045506', 'ENSMUSG00000053706', 'ENSMUSG00000053861', 'ENSMUSG00000066378', 'ENSMUSG00000066810', 'ENSMUSG00000066936', 'ENSMUSG00000067085', 'ENSMUSG00000067122', 'ENSMUSG00000067292', 'ENSMUSG00000067627', 'ENSMUSG00000067929', 'ENSMUSG00000068181', 'ENSMUSG00000069518', 'ENSMUSG00000072693', 'ENSMUSG00000073290', 'ENSMUSG00000073291', 'ENSMUSG00000073682', 'ENSMUSG00000074210', 'ENSMUSG00000074302', ...
❗ 135 terms (0.20%) are not validated for ensembl_gene_id: ENSMUSG00000022591, ENSMUSG00000094127, ENSMUSG00000066936, ENSMUSG00000116275, ENSMUSG00000091312, ENSMUSG00000098794, ENSMUSG00000079353, ENSMUSG00000096240, ENSMUSG00000079286, ENSMUSG00000085431, ENSMUSG00000075015, ENSMUSG00000075014, ENSMUSG00000078091, ENSMUSG00000075006, ENSMUSG00000079175, ENSMUSG00000079171, ENSMUSG00000079170, ENSMUSG00000079169, ENSMUSG00000090353, ENSMUSG00000100963, ...
registering synthetic_construct genes
❗ loading non-default source inside a LaminDB instance
❗ no Bionty source found, skipping Bionty validation
❗ loading non-default source inside a LaminDB instance
❗ did not create Gene records for 92 non-validated ensembl_gene_ids: 'ERCC-00002', 'ERCC-00003', 'ERCC-00004', 'ERCC-00009', 'ERCC-00012', 'ERCC-00013', 'ERCC-00014', 'ERCC-00016', 'ERCC-00017', 'ERCC-00019', 'ERCC-00022', 'ERCC-00024', 'ERCC-00025', 'ERCC-00028', 'ERCC-00031', 'ERCC-00033', 'ERCC-00034', 'ERCC-00035', 'ERCC-00039', 'ERCC-00040', ...
❗ 92 terms (100.00%) are not validated for ensembl_gene_id: ERCC-00002, ERCC-00003, ERCC-00004, ERCC-00009, ERCC-00012, ERCC-00013, ERCC-00014, ERCC-00016, ERCC-00017, ERCC-00019, ERCC-00022, ERCC-00024, ERCC-00025, ERCC-00028, ERCC-00031, ERCC-00033, ERCC-00034, ERCC-00035, ERCC-00039, ERCC-00040, ...
registering severe_acute_respiratory_syndrome_coronavirus_2 genes
❗ loading non-default source inside a LaminDB instance
❗ no Bionty source found, skipping Bionty validation
❗ loading non-default source inside a LaminDB instance
❗ did not create Gene records for 12 non-validated ensembl_gene_ids: 'ENSSASG00005000002', 'ENSSASG00005000003', 'ENSSASG00005000004', 'ENSSASG00005000006', 'ENSSASG00005000010', 'ENSSASG00005000007', 'ENSSASG00005000011', 'ENSSASG00005000009', 'ENSSASG00005000012', 'ENSSASG00005000008', 'ENSSASG00005000005', 'ENSSASG00005000013'
❗ 12 terms (100.00%) are not validated for ensembl_gene_id: ENSSASG00005000002, ENSSASG00005000003, ENSSASG00005000004, ENSSASG00005000006, ENSSASG00005000010, ENSSASG00005000007, ENSSASG00005000011, ENSSASG00005000009, ENSSASG00005000012, ENSSASG00005000008, ENSSASG00005000005, ENSSASG00005000013

Annotate tissue_typeΒΆ

Before CxG schema 4.0, tissue_type column was not annotated, instead β€œcell culture” or β€œorganoid” was added to the record ontology_id.

register_ulabels(cxg_datasets, "tissue_type")
is_tissue_type = ln.ULabel.filter(name="is_tissue_type").one()
tissue_types = is_tissue_type.children.lookup()
features = ln.Feature.lookup()
organoids = lb.Tissue.filter(ontology_id__contains="organoid").all()
organoids.df()
uid name ontology_id abbr synonyms description created_at updated_at public_source_id created_by_id
id
for record in organoids:
    print(record.name)
    ontology_id = record.ontology_id.split(" ")[0]
    tissue_record = lb.Tissue.from_bionty(ontology_id=ontology_id)
    if tissue_record._state.adding:
        tissue_record.save()
    for f in tissue_record.artifacts.all():
        f.labels.add(tissue_types.organoid, features.tissue_type)
organoids.delete()
cell_cultures = lb.Tissue.filter(ontology_id__contains="cell culture").all()
cell_cultures.df()
uid name ontology_id abbr synonyms description created_at updated_at public_source_id created_by_id
id
for record in cell_cultures:
    print(record.name)
    ontology_id = record.ontology_id.split(" ")[0]
    tissue_record = lb.CellType.from_bionty(ontology_id=ontology_id)
    if tissue_record._state.adding:
        tissue_record.save()
    for f in tissue_record.artifacts.all():
        f.labels.add(tissue_types.cell_culture, features.tissue_type)
cell_cultures.delete()

Register collectionsΒΆ

collection = ln.Collection(
    artifacts,
    name="cellxgene-census",
    version=census_version,
    is_new_version_of=ln.Collection.filter(
        name="cellxgene-census", version="2023-07-25"
    ).one(),
)
collection.save()
cxg_collections = get_collections_from_cxg()
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()

Add existing collections to their corresponding version families:

collections = ln.Collection.filter(version=census_version).all()
collections.count()
165
collections_20230725 = ln.Collection.filter(version="2023-07-25").all()
collections_20230725.count()
80
for collection in collections:
    collection_20230725 = collections_20230725.filter(
        reference=collection.reference
    ).one_or_none()
    if collection_20230725 is not None:
        collection.add_to_version_family(collection_20230725, version=census_version)
Hide code cell output
βœ… updated uid from HacsFDS6DfEU5KXCLcmZ to quQDnLsMLkP3JRsCJNGB!
βœ… updated uid from 0DvZuqeEcDiDx7oLdUVw to qtjPc1TBPcgWNCJyK4ug!
βœ… updated uid from NLIm3oW9sb0iyYmjsjcd to xz9kRdjXkrgxSTjO1Y5Q!
βœ… updated uid from tZZ2HarvODxNyGHJvwaS to kAcitlx0g6C2lgacuec9!
βœ… updated uid from D3nJb9ptDMfDFwsdCggO to IwAqdxTSCfEgrnuWrFQL!
βœ… updated uid from 1aKLErf81KbVfyzb3Sf5 to 4mzgY3wTBZ9wMhVzGvDa!
βœ… updated uid from lIPYLJwgrNUU4wlv4SMt to rajIlBML7BvEzz3y1m2k!
βœ… updated uid from 6mnARNwZTxIsU1xCuhF8 to Oukj3dkWzNST4iiVW0EJ!
βœ… updated uid from hOzqMoQia9rGAmDOhoCA to OImDNzgLRxoYfFT82Lnw!
βœ… updated uid from QdlqHsGdN6hvaNhGVv45 to JAK8eDp8BmHPjKfTNwva!
βœ… updated uid from 4hMGiVriMB4BYCH4jxym to EMBNZeigssidDwb4Xyrb!
βœ… updated uid from 9paIKMAtEE5DOJ5wvevQ to AK50xC5oXngFz72HvGOb!
βœ… updated uid from g425gdx9RXKgxfQw10z7 to FaJmPleTV3HjPBTdFyOZ!
βœ… updated uid from JXews8WqRJe7zZ1FnNNy to DI60aiNNLqOpa8t3Gbqu!
βœ… updated uid from mxGr2ZIKYVMQJGVf2jDV to 4EiiJgcIrR3QLRnUS1Kf!
βœ… updated uid from ETo6oYbajh30Cd2lIMTU to vOt1sh7kQCO5CzRy0JEf!
βœ… updated uid from Am8wjJg7Ye0xO2CpJjDk to tZYmzwfh0bIYzKBQr6yv!
βœ… updated uid from vgL6fm9wfiM58k8Mi2DC to dAV4frrtNvlAogglVYL8!
βœ… updated uid from sg8mR4MImnwdVrkEZx9x to vGq7f3WWgBMgCRXmNVks!
βœ… updated uid from jKtZVVIZV4PU3Dd1DEBk to BROXfXCEj7e1V4gw3dPj!
βœ… updated uid from 1gsdckxvOvIjQgeDVS1F to kDJ9Xb8d11d93LAHZLTC!
βœ… updated uid from AuqoU2qAMLIWmfFffvJw to 3eYxM8IjTZVOrbvXAaIp!
βœ… updated uid from EibY2egYQCc9ZvIYFSSs to k6nrsJJdBqfLcLdgVj1R!
βœ… updated uid from Mfgy65YXOiB7lPa6KrgA to 1qo3tBI7la7JNT7cQrC3!
βœ… updated uid from 2U33T4rcvnKe7j01t2Li to f8IWHzCeBxqmQA9onelG!
βœ… updated uid from RcGAP4BnhK2IClqiCiAQ to wNOorBV9YnTaI9qQmlXs!
βœ… updated uid from B3YgHHRnLwx43ZtBSZGW to jV7cCEQfgHGNhtVFACPG!
βœ… updated uid from 44wKN2FAM29pckgOg1j3 to vjsPjCXG7X9LPU8vD2lv!
βœ… updated uid from 4VS3mxnrNBwNac4fHmwh to oHwAz0bRdryXX6EhSHXm!
βœ… updated uid from sdL209RBtiyV0lcsxMVM to vfxWN9BEYFDb5kY8Co6r!
βœ… updated uid from lfMZBirbI2cZ1iLsawdF to Op2drQc2W4DokUc98mas!
βœ… updated uid from hPkt8QeYYXfDA2nwCnaO to q1YP6rAY7SSrZ1TkYXm4!
βœ… updated uid from UnwJLZm6R16KdzwjTDPf to TWZevdipvmWsuEiF7d3N!
βœ… updated uid from pGhUw8tEiXp674CpNMFR to 9LsQD4Qbh1dKq5Sj5y5q!
βœ… updated uid from VK2V8UKpATeWLyboaj6t to wHFESrWvDls8N3ywd60d!
βœ… updated uid from PH3e9BDpA4FQfHKn0Zge to 1MYLC8DhQK3wsKtZi0bt!
βœ… updated uid from Z8WF4VGyZBy7RTAMcV2f to IzQdA3dJgMqv60Gao3tv!
βœ… updated uid from Bc4S75qLCPcG2xCC9aUK to kqiPjpzpK9H9rdtnV67f!
βœ… updated uid from PsSHcf0fgDeLSq15TkLl to BlgDRaKr0cx6jUk47zga!
βœ… updated uid from lU1z5oMe9NwHlIdDT004 to ULIxjBaeNPFBK4GKeTuz!
βœ… updated uid from 0Lqegbed8l6zzuTsrgMV to mDcZsWmaZqRBtJgkWuK5!
βœ… updated uid from U9o7G3Oo0N1AUCchI1h9 to qLRcbwF6CgxlklqqCsBm!
βœ… updated uid from 038vA2YgNEOaHItwR4fL to WJLbdahJcDE8E9mzkkNk!
βœ… updated uid from FroBxgHjqgcI86udZbls to BrNY23NpauL2lyDtCtAZ!
βœ… updated uid from qcBTN4OsZSH2doUtI8sP to D4mQlKcQOGzGvZrWkzxZ!
βœ… updated uid from dreasLeSd1jAeKAvXMwL to yuoorv2f9lvz0sL9Q3Vb!
βœ… updated uid from 5J9nCQBzhyn76YOdid5c to HfPCzJuNYrI9QfV5jblV!
βœ… updated uid from UbSJ3XnTIjpI6MsRoxl1 to H6vvljrLTkJ61R4VBRJp!
βœ… updated uid from dveDBdkVZchz9b67jClH to HFLbbT3k1JxVUgKpfD46!
βœ… updated uid from Y3MnrJEG9EAYGhkWXLrg to iFVFKj9fKdUH7pY1S1Xl!
βœ… updated uid from u96LfmzrCCTM6gIRl7qS to 1wS0REe0cAfduc8tjkuw!
βœ… updated uid from UIyRtHDSVjtgNebOYtSC to hhzgrH6ZdsP54F293lwJ!
βœ… updated uid from 4UR5BbTxQEfPVVqyQLEN to 60hcu8l3K5HpiZVwI3zO!
βœ… updated uid from 2hEo0de02GrgllW8za77 to 6sOT5dCCyQAAX5bTNtfp!
βœ… updated uid from KT0ju1iouj60fIqlNWTP to yql5LxVFGGa5LiIE8uxm!
βœ… updated uid from bd46qOIb9ceA8EXbuGhq to d6gWiRY3XXy8qj0VNgXe!
βœ… updated uid from D9mJ5C3Lc6tJC2utRPyq to tCaHB7zSD8S6MAhFTj5M!
βœ… updated uid from kiinrEztrpl3WkuzSoIz to SuNR9dTsshWd6MYNLWmd!
βœ… updated uid from gy4aGohMeOOlKECnqlOY to veK7yRfThpdptF4vPT3l!
βœ… updated uid from YJd7SQIAqWY1EXc4andg to H5uu4ULRKZVmmTkr8zk8!
βœ… updated uid from HT1gJzkHZQWqs7dPETGa to kzeNot0sAt848R4qdKk5!
βœ… updated uid from PT0esS0kOKO4X0epHRRl to sOamqZMlsMfKH5SWaosf!
βœ… updated uid from Q74PSAuoVW0k4yaq79Rd to 5jphRyjMm0wYpMaUd4Cd!
βœ… updated uid from A54LtqiFiSOdSF2TgM48 to y6XaxhXv4BVcOAo9dpsu!
βœ… updated uid from 3lMZiN3BaZ4O0Pk1PNd2 to 0H2X3A2FhWOgA7i8Jof5!
βœ… updated uid from qP8xyr4tSOIUjBsTc8EO to Q2lwtI06DtUQbWUMrRDh!
βœ… updated uid from 5Rz60S6o2ej7JMnYA50b to PWDH0VJMkhsYyHwgnFYH!
βœ… updated uid from HgifXSsqrMzNbtsTndl3 to Yed6da6CsPXaGmLQDTBi!
βœ… updated uid from T9xK6Iu5mJCY0lmd832u to OirHTWDrudY2TYltfvNe!
βœ… updated uid from TjhUkVjHBl8V2MrZJ0PG to 2AD1dN2753sXScFNQhAa!
βœ… updated uid from 0pp3xaXkZz9xvXPGX9qM to ddXyHE40uh5vdkAvuiwL!
βœ… updated uid from hvU03ppc7ASr8GP7HEI0 to WpJDkF942c2mHNbJfk6u!
βœ… updated uid from HuCw2hbmnBVVbFC3CA3j to RnmHQkzC78TivXFyOyaS!
βœ… updated uid from MjeFFkxIIHic7EPKx7Fa to NoRCcrtIjLnLdEjiMIET!
βœ… updated uid from ztOo2hhErSsMDSuVdUzI to xAdBoFC2SWW8a0we0u6t!
βœ… updated uid from RQPtnyubWWaQ6QCofPfN to 4o637zldLBYp12h3vnO4!
βœ… updated uid from ewsbEVAUCtlnftFjUZcc to 0dOlh07SLGzVeaRMWpuj!
βœ… updated uid from hdCALfAEJrNwRHVV23kw to IOkwvXcfL2hyt8R938gC!
βœ… updated uid from a2BcDztgqxGBHa0BgbYT to 57MCDAB1w3eK7I5Qp9iH!
βœ… updated uid from NwRSgeFWLW1wbkHjg3EV to GvLlD9JDDqWjPkvEi3UU!