lamindb 0.48a2__tar.gz → 0.48.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. {lamindb-0.48a2 → lamindb-0.48.1}/.github/workflows/build.yml +3 -3
  2. {lamindb-0.48a2 → lamindb-0.48.1}/.gitignore +7 -7
  3. {lamindb-0.48a2 → lamindb-0.48.1}/PKG-INFO +10 -8
  4. {lamindb-0.48a2 → lamindb-0.48.1}/README.md +5 -3
  5. lamindb-0.48a2/docs/biology/01-registries.ipynb → lamindb-0.48.1/docs/biology/00-registries.ipynb +54 -112
  6. lamindb-0.48a2/docs/biology/02-scrna.ipynb → lamindb-0.48.1/docs/biology/10-scrna.ipynb +241 -116
  7. lamindb-0.48a2/docs/biology/04-samples.ipynb → lamindb-0.48.1/docs/biology/11-scrna-1.ipynb +99 -117
  8. lamindb-0.48a2/docs/biology/03-flow.ipynb → lamindb-0.48.1/docs/biology/20-flow.ipynb +90 -31
  9. lamindb-0.48.1/docs/biology/30-spatial.ipynb +192 -0
  10. lamindb-0.48.1/docs/biology/40-multimodal.ipynb +320 -0
  11. {lamindb-0.48a2 → lamindb-0.48.1}/docs/changelog.md +14 -11
  12. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/acid.ipynb +0 -70
  13. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/idempotency.ipynb +9 -9
  14. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/track-run-inputs.ipynb +6 -6
  15. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/data-lineage.ipynb +203 -91
  16. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/index.md +6 -4
  17. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/select.ipynb +21 -3
  18. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/setup.ipynb +1 -1
  19. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/tutorial1.ipynb +224 -68
  20. lamindb-0.48.1/docs/ref/lamin-utils.md +3 -0
  21. {lamindb-0.48a2 → lamindb-0.48.1}/docs/reference.md +3 -3
  22. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/__init__.py +15 -24
  23. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_context.py +5 -2
  24. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_dataset.py +6 -3
  25. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_delete.py +6 -6
  26. lamindb-0.48.1/lamindb/_feature.py +124 -0
  27. lamindb-0.48.1/lamindb/_feature_manager.py +176 -0
  28. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_feature_set.py +63 -27
  29. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_file.py +120 -76
  30. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_from_values.py +88 -28
  31. lamindb-0.48.1/lamindb/_label.py +85 -0
  32. lamindb-0.48.1/lamindb/_logger.py +1 -0
  33. lamindb-0.48.1/lamindb/_manager.py +52 -0
  34. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_orm.py +157 -33
  35. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_queryset.py +37 -35
  36. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_save.py +19 -9
  37. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_transform.py +12 -3
  38. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_view.py +1 -1
  39. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/__init__.py +4 -0
  40. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/_settings.py +1 -1
  41. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/_view_parents.py +70 -34
  42. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/datasets/__init__.py +12 -0
  43. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/datasets/_core.py +116 -65
  44. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/storage/__init__.py +1 -5
  45. lamindb-0.48.1/lamindb/dev/storage/_backed_access.py +591 -0
  46. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/storage/file.py +3 -1
  47. {lamindb-0.48a2 → lamindb-0.48.1}/noxfile.py +4 -1
  48. {lamindb-0.48a2 → lamindb-0.48.1}/pyproject.toml +4 -4
  49. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/changelog.md +1 -0
  50. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
  51. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +1 -1
  52. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +11 -10
  53. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +25 -0
  54. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/CHANGELOG.md +6 -0
  55. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/__init__.py +2 -6
  56. lamindb-0.48.1/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +71 -0
  57. lamindb-0.48.1/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +125 -0
  58. lamindb-0.48.1/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +81 -0
  59. {lamindb-0.48a2/sub → lamindb-0.48.1/sub/lamindb-setup}/lnschema-core/lnschema_core/models.py +337 -285
  60. lamindb-0.48.1/sub/lamindb-setup/tests/hub/test_instance.py +78 -0
  61. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_init_instance.py +29 -0
  62. lamindb-0.48.1/sub/lamindb-setup/tests/test_load_instance.py +57 -0
  63. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/CHANGELOG.md +13 -0
  64. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/__init__.py +4 -7
  65. lamindb-0.48.1/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +71 -0
  66. lamindb-0.48.1/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +125 -0
  67. lamindb-0.48.1/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +135 -0
  68. {lamindb-0.48a2/sub/lamindb-setup → lamindb-0.48.1/sub}/lnschema-core/lnschema_core/models.py +612 -314
  69. {lamindb-0.48a2 → lamindb-0.48.1}/tests/conftest.py +1 -1
  70. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_feature.py +28 -5
  71. lamindb-0.48.1/tests/test_feature_manager.py +101 -0
  72. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_feature_set.py +20 -14
  73. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_file.py +51 -43
  74. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_from_values.py +7 -9
  75. lamindb-0.48.1/tests/test_manager.py +15 -0
  76. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_orm.py +11 -5
  77. lamindb-0.48.1/tests/test_queryset.py +88 -0
  78. lamindb-0.48.1/tests/test_transform.py +6 -0
  79. lamindb-0.48a2/docs/biology/features.md +0 -10
  80. lamindb-0.48a2/docs/ref/lamin-logger.md +0 -3
  81. lamindb-0.48a2/lamindb/_category.py +0 -42
  82. lamindb-0.48a2/lamindb/_feature.py +0 -89
  83. lamindb-0.48a2/lamindb/_logger.py +0 -1
  84. lamindb-0.48a2/lamindb/_manager.py +0 -45
  85. lamindb-0.48a2/lamindb/dev/storage/_backed_access.py +0 -465
  86. lamindb-0.48a2/sub/lamindb-setup/tests/hub/test_instance.py +0 -42
  87. lamindb-0.48a2/sub/lamindb-setup/tests/test_load_instance.py +0 -17
  88. lamindb-0.48a2/sub/lnschema-bionty/.github/workflows/build.yml +0 -51
  89. lamindb-0.48a2/sub/lnschema-bionty/.github/workflows/latest-changes.yml +0 -25
  90. lamindb-0.48a2/sub/lnschema-bionty/.gitignore +0 -119
  91. lamindb-0.48a2/sub/lnschema-bionty/.pre-commit-config.yaml +0 -65
  92. lamindb-0.48a2/sub/lnschema-bionty/README.md +0 -5
  93. lamindb-0.48a2/sub/lnschema-bionty/docs/changelog.md +0 -141
  94. lamindb-0.48a2/sub/lnschema-bionty/docs/index.md +0 -11
  95. lamindb-0.48a2/sub/lnschema-bionty/docs/reference.md +0 -5
  96. lamindb-0.48a2/sub/lnschema-bionty/lamin-project.yaml +0 -5
  97. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/__init__.py +0 -81
  98. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/_bionty.py +0 -115
  99. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +0 -10
  100. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +0 -43
  101. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/ids.py +0 -73
  102. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +0 -766
  103. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +0 -46
  104. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +0 -85
  105. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +0 -151
  106. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +0 -137
  107. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +0 -60
  108. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +0 -67
  109. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +0 -82
  110. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +0 -17
  111. lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty/models.py +0 -697
  112. lamindb-0.48a2/sub/lnschema-bionty/noxfile.py +0 -20
  113. lamindb-0.48a2/sub/lnschema-bionty/pyproject.toml +0 -46
  114. lamindb-0.48a2/sub/lnschema-bionty/tests/test_hash_id.py +0 -10
  115. lamindb-0.48a2/sub/lnschema-bionty/tests/test_integrity.py +0 -13
  116. lamindb-0.48a2/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -2
  117. lamindb-0.48a2/sub/lnschema-core/LICENSE +0 -201
  118. lamindb-0.48a2/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  119. lamindb-0.48a2/tests/test_manager.py +0 -12
  120. lamindb-0.48a2/tests/test_queryset.py +0 -61
  121. {lamindb-0.48a2 → lamindb-0.48.1}/.github/workflows/latest-changes.jinja2 +0 -0
  122. {lamindb-0.48a2 → lamindb-0.48.1}/.github/workflows/latest-changes.yml +0 -0
  123. {lamindb-0.48a2 → lamindb-0.48.1}/.gitmodules +0 -0
  124. {lamindb-0.48a2 → lamindb-0.48.1}/.pre-commit-config.yaml +0 -0
  125. {lamindb-0.48a2 → lamindb-0.48.1}/LICENSE +0 -0
  126. {lamindb-0.48a2 → lamindb-0.48.1}/docs/biology/test_notebooks.py +0 -0
  127. {lamindb-0.48a2 → lamindb-0.48.1}/docs/bionty.md +0 -0
  128. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/import-schema.ipynb +0 -0
  129. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/index.md +0 -0
  130. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/ingest.ipynb +0 -0
  131. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/notebooks.ipynb +0 -0
  132. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/setup.ipynb +0 -0
  133. {lamindb-0.48a2 → lamindb-0.48.1}/docs/faq/test_notebooks.py +0 -0
  134. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/schemas.ipynb +0 -0
  135. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/stream.ipynb +0 -0
  136. {lamindb-0.48a2 → lamindb-0.48.1}/docs/guide/test_notebooks.py +0 -0
  137. {lamindb-0.48a2 → lamindb-0.48.1}/docs/index.md +0 -0
  138. {lamindb-0.48a2 → lamindb-0.48.1}/docs/lnschema-bionty.ipynb +0 -0
  139. {lamindb-0.48a2 → lamindb-0.48.1}/docs/nbproject.md +0 -0
  140. {lamindb-0.48a2 → lamindb-0.48.1}/docs/readfcs.md +0 -0
  141. {lamindb-0.48a2 → lamindb-0.48.1}/docs/ref/lamindb.md +0 -0
  142. {lamindb-0.48a2 → lamindb-0.48.1}/docs/ref/lnschema-bionty.md +0 -0
  143. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/add-replace-stage.ipynb +0 -0
  144. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/index.md +0 -0
  145. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/test-files/iris.csv +0 -0
  146. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/test-files/iris.data +0 -0
  147. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/test-files/new_iris.csv +0 -0
  148. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/test_notebooks.py +0 -0
  149. {lamindb-0.48a2 → lamindb-0.48.1}/docs/storage/upload.ipynb +0 -0
  150. {lamindb-0.48a2 → lamindb-0.48.1}/lamin-project.yaml +0 -0
  151. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/_select.py +0 -0
  152. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/datasets/_fake.py +0 -0
  153. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/hashing.py +0 -0
  154. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
  155. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/storage/_zarr.py +0 -0
  156. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/storage/object.py +0 -0
  157. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/dev/utils.py +0 -0
  158. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/schema/__init__.py +0 -0
  159. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/schema/_core.py +0 -0
  160. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/setup/__init__.py +0 -0
  161. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/setup/dev/__init__.py +0 -0
  162. {lamindb-0.48a2 → lamindb-0.48.1}/lamindb/types.py +0 -0
  163. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.github/workflows/build.yml +0 -0
  164. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
  165. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
  166. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.gitignore +0 -0
  167. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.gitmodules +0 -0
  168. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/.pre-commit-config.yaml +0 -0
  169. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/LICENSE +0 -0
  170. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/README.md +0 -0
  171. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/faq/edge-cases-login-init.ipynb +0 -0
  172. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/faq/index.md +0 -0
  173. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/faq/multi-session.ipynb +0 -0
  174. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/faq/switch-environment.ipynb +0 -0
  175. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/faq/test-sqlite-sync.ipynb +0 -0
  176. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/01-init-instance.ipynb +0 -0
  177. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/02-load-instance.ipynb +0 -0
  178. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/03-set-storage.ipynb +0 -0
  179. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/04-schema-modules.ipynb +0 -0
  180. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/index.md +0 -0
  181. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/migrate.md +0 -0
  182. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/guide/setup-user.md +0 -0
  183. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/index.md +0 -0
  184. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/reference.md +0 -0
  185. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/docs/test_notebooks.py +0 -0
  186. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamin-project.yaml +0 -0
  187. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/__main__.py +0 -0
  188. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
  189. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
  190. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_delete.py +0 -0
  191. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
  192. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
  193. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +0 -0
  194. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +0 -0
  195. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_notebook.py +0 -0
  196. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +0 -0
  197. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
  198. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
  199. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_settings.py +0 -0
  200. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_settings_load.py +0 -0
  201. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_settings_store.py +0 -0
  202. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
  203. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
  204. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
  205. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_cloud_sqlite_locker.py +0 -0
  206. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
  207. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_django.py +0 -0
  208. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
  209. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
  210. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +0 -0
  211. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +0 -0
  212. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +0 -0
  213. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
  214. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
  215. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
  216. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +0 -0
  217. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_schema.py +0 -0
  218. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/_storage.py +0 -0
  219. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +0 -0
  220. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/.github/workflows/build.yml +0 -0
  221. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/.github/workflows/latest-changes.jinja2 +0 -0
  222. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  223. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/.gitignore +0 -0
  224. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/.pre-commit-config.yaml +0 -0
  225. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/LICENSE +0 -0
  226. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/README.md +0 -0
  227. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/ids.py +0 -0
  228. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  229. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  230. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  231. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  232. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  233. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  234. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  235. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  236. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  237. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
  238. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/mocks.py +0 -0
  239. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/types.py +0 -0
  240. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/lnschema_core/users.py +0 -0
  241. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/noxfile.py +0 -0
  242. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/pyproject.toml +0 -0
  243. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/lnschema-core/tests/test_integrity.py +0 -0
  244. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/noxfile.py +0 -0
  245. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/pyproject.toml +0 -0
  246. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/hub/test_signup_signin.py +0 -0
  247. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/hub/test_storage.py +0 -0
  248. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_bionty.py +0 -0
  249. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_login.py +0 -0
  250. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_migrate.py +0 -0
  251. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_set_storage.py +0 -0
  252. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lamindb-setup/tests/test_signup.py +0 -0
  253. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
  254. {lamindb-0.48a2/sub/lnschema-bionty → lamindb-0.48.1/sub/lnschema-core}/.github/workflows/latest-changes.jinja2 +0 -0
  255. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
  256. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/.gitignore +0 -0
  257. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
  258. {lamindb-0.48a2/sub/lnschema-bionty → lamindb-0.48.1/sub/lnschema-core}/LICENSE +0 -0
  259. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/README.md +0 -0
  260. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
  261. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
  262. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
  263. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
  264. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
  265. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
  266. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
  267. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
  268. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
  269. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
  270. {lamindb-0.48a2/sub/lnschema-bionty/lnschema_bionty → lamindb-0.48.1/sub/lnschema-core/lnschema_core}/migrations/__init__.py +0 -0
  271. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/mocks.py +0 -0
  272. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
  273. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
  274. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/noxfile.py +0 -0
  275. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/pyproject.toml +0 -0
  276. {lamindb-0.48a2 → lamindb-0.48.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
  277. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test-files/pbmc68k.h5ad +0 -0
  278. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_cache.py +0 -0
  279. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_context.py +0 -0
  280. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_dataset.py +0 -0
  281. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_db.py +0 -0
  282. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_hashing.py +0 -0
  283. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_settings.py +0 -0
  284. {lamindb-0.48a2 → lamindb-0.48.1}/tests/test_storage.py +0 -0
@@ -39,17 +39,17 @@ jobs:
39
39
  path: ~/.cache/pre-commit
40
40
  key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
41
41
  - name: cache postgres
42
- if: ${{ matrix.group == 'faq' }}
42
+ if: ${{ matrix.group == 'faq' || matrix.group == 'unit' }}
43
43
  id: cache-postgres
44
44
  uses: actions/cache@v3
45
45
  with:
46
46
  path: ~/postgres.tar
47
47
  key: cache-postgres-0
48
48
  - name: cache postgres miss
49
- if: ${{ steps.cache-postgres.outputs.cache-hit != 'true' && matrix.group == 'faq' }}
49
+ if: ${{ steps.cache-postgres.outputs.cache-hit != 'true' && matrix.group == 'faq' || matrix.group == 'unit' }}
50
50
  run: docker pull postgres:latest && docker image save postgres:latest --output ~/postgres.tar
51
51
  - name: cache postgres use
52
- if: ${{ steps.cache-postgres.outputs.cache-hit == 'true' && matrix.group == 'faq' }}
52
+ if: ${{ steps.cache-postgres.outputs.cache-hit == 'true' && matrix.group == 'faq' || matrix.group == 'unit' }}
53
53
  run: docker image load --input ~/postgres.tar
54
54
  - name: install Python deps
55
55
  run: |
@@ -1,5 +1,4 @@
1
1
  # LaminDB
2
- test-inherit*
3
2
  docs/guide/data-validation.ipynb
4
3
  docs/guide/knowledge.ipynb
5
4
  docs/guide/lnschema-bionty.ipynb
@@ -37,12 +36,12 @@ docs/faq/mydata_postgres/
37
36
  docs/guide/myobjects/
38
37
  docs/faq/test-run-inputs/
39
38
  docs/intro/paradisi05_laminopathic_nuclei.jpg
40
- test-search0
41
- test-search1
42
- test-search2
43
- test-search3
44
- test-search4
45
- test-search5
39
+ docs/guide/figures/
40
+ suo22/
41
+ docs/biology/test-flow/
42
+ docs/biology/test-scrna/
43
+ docs/biology/test-registries/
44
+ docs/biology/test-multimodal/
46
45
  # General
47
46
  .DS_Store
48
47
 
@@ -184,6 +183,7 @@ _build
184
183
  *.zip
185
184
  *.feather
186
185
  *.h5ad
186
+ *.h5mu
187
187
  *.parquet
188
188
  *.bam
189
189
  *.fastq.gz
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lamindb
3
- Version: 0.48a2
3
+ Version: 0.48.1
4
4
  Summary: LaminDB: Manage R&D data & analyses.
5
5
  Author-email: Lamin Labs <laminlabs@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -8,9 +8,9 @@ Description-Content-Type: text/markdown
8
8
  Classifier: Programming Language :: Python :: 3.8
9
9
  Classifier: Programming Language :: Python :: 3.9
10
10
  Classifier: Programming Language :: Python :: 3.10
11
- Requires-Dist: lnschema_core==0.39.0
12
- Requires-Dist: lamindb_setup==0.49.0
13
- Requires-Dist: lamin_logger==0.8.2
11
+ Requires-Dist: lnschema_core==0.42.2
12
+ Requires-Dist: lamindb_setup==0.49.1
13
+ Requires-Dist: lamin_utils==0.9.3
14
14
  Requires-Dist: erdiagram>=0.1.2
15
15
  Requires-Dist: rapidfuzz
16
16
  Requires-Dist: pydantic[dotenv]
@@ -25,7 +25,7 @@ Requires-Dist: botocore==1.29.76 ; extra == "aws"
25
25
  Requires-Dist: urllib3<2 ; extra == "aws"
26
26
  Requires-Dist: boto3==1.26.76 ; extra == "aws"
27
27
  Requires-Dist: fsspec[s3]==2023.5.0 ; extra == "aws"
28
- Requires-Dist: lnschema_bionty==0.27.3 ; extra == "bionty"
28
+ Requires-Dist: lnschema_bionty==0.28.2 ; extra == "bionty"
29
29
  Requires-Dist: pre-commit ; extra == "dev"
30
30
  Requires-Dist: nox ; extra == "dev"
31
31
  Requires-Dist: laminci>=0.3 ; extra == "dev"
@@ -73,7 +73,7 @@ Update 2023-06-14:
73
73
 
74
74
  ## Introduction
75
75
 
76
- LaminDB is a free & open-source Python library to:
76
+ LaminDB is an open-source Python library to:
77
77
 
78
78
  - Manage files & datasets while tracking provenance across pipelines, notebooks & app uploads.
79
79
  - Manage biological registries, ontologies, features & schemas.
@@ -83,7 +83,7 @@ LaminDB is a free & open-source Python library to:
83
83
 
84
84
  LaminApp is a data management app built on LaminDB. If LaminDB ~ git, LaminApp ~ GitHub.
85
85
 
86
- LaminApp, support, code templates & auto-dispatched integration tests for a BioTech data & analytics platform are currently only available on an enterprise plan. LaminApp is available for your cloud or AWS infrastructure or hosted by us.
86
+ LaminApp, support, code templates & auto-dispatched integration tests for a BioTech data & analytics platform are currently only available on an enterprise plan. LaminApp is available for your cloud infrastructure or hosted by us.
87
87
 
88
88
  ## Quickstart
89
89
 
@@ -257,7 +257,7 @@ pip install lamindb # basic data management
257
257
  You can configure the installation using `extras`, e.g.,
258
258
 
259
259
  ```shell
260
- pip install lamindb[jupyter,bionty,fcs,aws]
260
+ pip install 'lamindb[jupyter,bionty,fcs,aws]'
261
261
  ```
262
262
 
263
263
  Supported `extras` are:
@@ -313,6 +313,8 @@ LaminDB consists of the `lamindb` Python package (repository [here](https://gith
313
313
  - [lnschema-bionty](https://github.com/laminlabs/lnschema-bionty): Bionty schema, ORMs that are coupled to Bionty's entities.
314
314
  - [lnschema-lamin1](https://github.com/laminlabs/lnschema-lamin1): Exemplary configured schema to track samples, treatments, etc.
315
315
  - [nbproject](https://github.com/laminlabs/nbproject): Parse metadata from Jupyter notebooks.
316
+ - [lamin-utils](https://github.com/laminlabs/lamin-utils): Utilities for LaminDB and Bionty.
317
+ - [readfcs](https://github.com/laminlabs/readfcs): FCS file reader.
316
318
 
317
319
  LaminHub & LaminApp are not open-sourced, and neither are templates that model lab operations.
318
320
 
@@ -19,7 +19,7 @@ Update 2023-06-14:
19
19
 
20
20
  ## Introduction
21
21
 
22
- LaminDB is a free & open-source Python library to:
22
+ LaminDB is an open-source Python library to:
23
23
 
24
24
  - Manage files & datasets while tracking provenance across pipelines, notebooks & app uploads.
25
25
  - Manage biological registries, ontologies, features & schemas.
@@ -29,7 +29,7 @@ LaminDB is a free & open-source Python library to:
29
29
 
30
30
  LaminApp is a data management app built on LaminDB. If LaminDB ~ git, LaminApp ~ GitHub.
31
31
 
32
- LaminApp, support, code templates & auto-dispatched integration tests for a BioTech data & analytics platform are currently only available on an enterprise plan. LaminApp is available for your cloud or AWS infrastructure or hosted by us.
32
+ LaminApp, support, code templates & auto-dispatched integration tests for a BioTech data & analytics platform are currently only available on an enterprise plan. LaminApp is available for your cloud infrastructure or hosted by us.
33
33
 
34
34
  ## Quickstart
35
35
 
@@ -203,7 +203,7 @@ pip install lamindb # basic data management
203
203
  You can configure the installation using `extras`, e.g.,
204
204
 
205
205
  ```shell
206
- pip install lamindb[jupyter,bionty,fcs,aws]
206
+ pip install 'lamindb[jupyter,bionty,fcs,aws]'
207
207
  ```
208
208
 
209
209
  Supported `extras` are:
@@ -259,6 +259,8 @@ LaminDB consists of the `lamindb` Python package (repository [here](https://gith
259
259
  - [lnschema-bionty](https://github.com/laminlabs/lnschema-bionty): Bionty schema, ORMs that are coupled to Bionty's entities.
260
260
  - [lnschema-lamin1](https://github.com/laminlabs/lnschema-lamin1): Exemplary configured schema to track samples, treatments, etc.
261
261
  - [nbproject](https://github.com/laminlabs/nbproject): Parse metadata from Jupyter notebooks.
262
+ - [lamin-utils](https://github.com/laminlabs/lamin-utils): Utilities for LaminDB and Bionty.
263
+ - [readfcs](https://github.com/laminlabs/readfcs): FCS file reader.
262
264
 
263
265
  LaminHub & LaminApp are not open-sourced, and neither are templates that model lab operations.
264
266
 
@@ -13,9 +13,15 @@
13
13
  "cell_type": "markdown",
14
14
  "metadata": {},
15
15
  "source": [
16
- "If you only work with pre-defined ontologies (public or in-house), [Bionty](https://lamin.ai/docs/bionty/) is sufficient!\n",
16
+ "Here, you'll learn how to collaborate on biological registries across dry & wetlab.\n",
17
17
  "\n",
18
- "If you'd like to maintain in-house registries for basic entities along with ontologies, manage them using {mod}`lnschema_bionty`.\n",
18
+ "What's special is that LaminDB allows you to leverage ontologies for it, based on plug-in {mod}`lnschema_bionty`.\n",
19
+ "\n",
20
+ "```{note}\n",
21
+ "\n",
22
+ "Registries can anchor dry & wetlab work to help find, access & model data. No more ambiguity about model dimensions and labels!\n",
23
+ "\n",
24
+ "```\n",
19
25
  "\n",
20
26
  "```{toctree}\n",
21
27
  ":hidden:\n",
@@ -30,14 +36,16 @@
30
36
  "cell_type": "markdown",
31
37
  "metadata": {},
32
38
  "source": [
33
- "Let us start with an instance that has {mod}`lnschema_bionty` mounted:"
39
+ "Let us start with an instance that has `lnschema_bionty` mounted:"
34
40
  ]
35
41
  },
36
42
  {
37
43
  "cell_type": "code",
38
44
  "execution_count": null,
39
45
  "metadata": {
40
- "tags": []
46
+ "tags": [
47
+ "hide-output"
48
+ ]
41
49
  },
42
50
  "outputs": [],
43
51
  "source": [
@@ -69,26 +77,20 @@
69
77
  "cell_type": "markdown",
70
78
  "metadata": {},
71
79
  "source": [
72
- "Let us first grab a public ontology for cell types:"
80
+ "Let's consider a public ontology for cell types:"
73
81
  ]
74
82
  },
75
83
  {
76
84
  "cell_type": "code",
77
85
  "execution_count": null,
78
- "metadata": {},
86
+ "metadata": {
87
+ "tags": [
88
+ "hide-output"
89
+ ]
90
+ },
79
91
  "outputs": [],
80
92
  "source": [
81
- "celltype_bt = lb.CellType.bionty() # same as bionty.CellType()\n",
82
- "\n",
83
- "celltype_bt"
84
- ]
85
- },
86
- {
87
- "attachments": {},
88
- "cell_type": "markdown",
89
- "metadata": {},
90
- "source": [
91
- "### Search a cell type"
93
+ "celltype_bt = lb.CellType.bionty() # if you know bionty, is same as bionty.CellType()"
92
94
  ]
93
95
  },
94
96
  {
@@ -97,15 +99,7 @@
97
99
  "metadata": {},
98
100
  "outputs": [],
99
101
  "source": [
100
- "celltype_bt.search(\"gamma delta T cell\").head(3)"
101
- ]
102
- },
103
- {
104
- "attachments": {},
105
- "cell_type": "markdown",
106
- "metadata": {},
107
- "source": [
108
- "### Look up a cell type with auto-completion"
102
+ "celltype_bt"
109
103
  ]
110
104
  },
111
105
  {
@@ -113,7 +107,7 @@
113
107
  "cell_type": "markdown",
114
108
  "metadata": {},
115
109
  "source": [
116
- "Create a lookup object:"
110
+ "We can use it to search cell types:"
117
111
  ]
118
112
  },
119
113
  {
@@ -122,7 +116,7 @@
122
116
  "metadata": {},
123
117
  "outputs": [],
124
118
  "source": [
125
- "celltype_bt_lookup = celltype_bt.lookup()"
119
+ "celltype_bt.search(\"gamma delta T cell\").head(3)"
126
120
  ]
127
121
  },
128
122
  {
@@ -130,16 +124,7 @@
130
124
  "cell_type": "markdown",
131
125
  "metadata": {},
132
126
  "source": [
133
- "There are 2680 terms in it:"
134
- ]
135
- },
136
- {
137
- "cell_type": "code",
138
- "execution_count": null,
139
- "metadata": {},
140
- "outputs": [],
141
- "source": [
142
- "len(celltype_bt_lookup)"
127
+ "And we can also use it to look up cell types with auto-complete:"
143
128
  ]
144
129
  },
145
130
  {
@@ -148,8 +133,8 @@
148
133
  "metadata": {},
149
134
  "outputs": [],
150
135
  "source": [
151
- "gd_tcell = celltype_bt_lookup.gamma_delta_t_cell\n",
152
- "gd_tcell"
136
+ "celltype_bt_lookup = celltype_bt.lookup()\n",
137
+ "celltype_bt_lookup.gamma_delta_t_cell"
153
138
  ]
154
139
  },
155
140
  {
@@ -165,7 +150,7 @@
165
150
  "cell_type": "markdown",
166
151
  "metadata": {},
167
152
  "source": [
168
- "You can create a SQL record directly by passing the result of a Bionty search or lookup."
153
+ "You can create a registry record directly by passing the result of a Bionty search or lookup:"
169
154
  ]
170
155
  },
171
156
  {
@@ -174,7 +159,7 @@
174
159
  "metadata": {},
175
160
  "outputs": [],
176
161
  "source": [
177
- "celltype_record = lb.CellType(gd_tcell)\n",
162
+ "celltype_record = lb.CellType(celltype_bt_lookup.gamma_delta_t_cell)\n",
178
163
  "\n",
179
164
  "celltype_record"
180
165
  ]
@@ -184,59 +169,37 @@
184
169
  "cell_type": "markdown",
185
170
  "metadata": {},
186
171
  "source": [
187
- "Note that this ontology has `parents`, and therefore the parent records will also be added to the DB upon save:"
188
- ]
189
- },
190
- {
191
- "cell_type": "code",
192
- "execution_count": null,
193
- "metadata": {},
194
- "outputs": [],
195
- "source": [
196
- "gd_tcell.parents"
197
- ]
198
- },
199
- {
200
- "attachments": {},
201
- "cell_type": "markdown",
202
- "metadata": {},
203
- "source": [
204
- "Save the record to the DB to seed an in-house ontology:"
172
+ "When we save this record to the registry, logging informs us that we're also saving parent ontology terms.\n",
173
+ "\n",
174
+ "\n",
175
+ "```{dropdown} Will I always see a 100 parents being saved?\n",
176
+ "\n",
177
+ "No, this only happens a single time.\n",
178
+ "\n",
179
+ "- If we accidentally save the same record again, lamindb will recognize that the record and all parents are already in the registry.\n",
180
+ "- If we save another record that has overlapping parents, only new parents will be saved.\n",
181
+ "\n",
182
+ "```"
205
183
  ]
206
184
  },
207
185
  {
208
186
  "cell_type": "code",
209
187
  "execution_count": null,
210
- "metadata": {},
188
+ "metadata": {
189
+ "tags": [
190
+ "hide-output"
191
+ ]
192
+ },
211
193
  "outputs": [],
212
194
  "source": [
213
195
  "celltype_record.save()"
214
196
  ]
215
197
  },
216
198
  {
217
- "attachments": {},
218
- "cell_type": "markdown",
219
- "metadata": {},
220
- "source": [
221
- "This cell type can now be queried from the DB:"
222
- ]
223
- },
224
- {
225
- "cell_type": "code",
226
- "execution_count": null,
227
- "metadata": {},
228
- "outputs": [],
229
- "source": [
230
- "gd_tcell_record = lb.CellType.select(name=celltype_record.name).one()\n",
231
- "gd_tcell_record"
232
- ]
233
- },
234
- {
235
- "attachments": {},
236
199
  "cell_type": "markdown",
237
200
  "metadata": {},
238
201
  "source": [
239
- "Access its direct parents:"
202
+ "View the parents:"
240
203
  ]
241
204
  },
242
205
  {
@@ -245,15 +208,14 @@
245
208
  "metadata": {},
246
209
  "outputs": [],
247
210
  "source": [
248
- "gd_tcell_record.parents.all()"
211
+ "celltype_record.view_parents()"
249
212
  ]
250
213
  },
251
214
  {
252
- "attachments": {},
253
215
  "cell_type": "markdown",
254
216
  "metadata": {},
255
217
  "source": [
256
- "View all parents as a graph: (you may specify `distance=` to view a subset of parents)"
218
+ "Or access them directly:"
257
219
  ]
258
220
  },
259
221
  {
@@ -262,7 +224,7 @@
262
224
  "metadata": {},
263
225
  "outputs": [],
264
226
  "source": [
265
- "gd_tcell_record.view_parents()"
227
+ "celltype_record.parents.df()"
266
228
  ]
267
229
  },
268
230
  {
@@ -270,33 +232,9 @@
270
232
  "cell_type": "markdown",
271
233
  "metadata": {},
272
234
  "source": [
273
- "Query for all the parents with a specified distance:"
274
- ]
275
- },
276
- {
277
- "cell_type": "code",
278
- "execution_count": null,
279
- "metadata": {
280
- "tags": [
281
- "hide-cell"
282
- ]
283
- },
284
- "outputs": [],
285
- "source": [
286
- "distance = 5\n",
235
+ "This cell type and all its parents can now be queried & searched in the registry using `lb.CellType.select` and `lb.CellType.search`.\n",
287
236
  "\n",
288
- "results = []\n",
289
- "for d in range(1, distance + 1):\n",
290
- " msg = f\"Depth = {d}\"\n",
291
- " if d == 1:\n",
292
- " condition = \"children__name\"\n",
293
- " else:\n",
294
- " condition = \"children__\" + condition\n",
295
- " records = lb.CellType.select(**{condition: gd_tcell_record.name}).list()\n",
296
- " msg += f\", {len(records)} records found:\"\n",
297
- " print(msg)\n",
298
- " print(records)\n",
299
- " results.append(records)"
237
+ "Further down the guide, we'll see how this will help us to annotate and validate files & datasets!"
300
238
  ]
301
239
  },
302
240
  {
@@ -468,7 +406,11 @@
468
406
  {
469
407
  "cell_type": "code",
470
408
  "execution_count": null,
471
- "metadata": {},
409
+ "metadata": {
410
+ "tags": [
411
+ "hide-output"
412
+ ]
413
+ },
472
414
  "outputs": [],
473
415
  "source": [
474
416
  "ln.save(cell_types)"