lamindb 0.64.2__tar.gz → 0.65.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.
- {lamindb-0.64.2 → lamindb-0.65.1}/.github/workflows/build.yml +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/.github/workflows/latest-changes.jinja2 +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/PKG-INFO +7 -6
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/annotate.ipynb +36 -36
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/changelog.md +19 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/data.ipynb +3 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/delete.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/key.ipynb +29 -29
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/reference-field.ipynb +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/validator.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/visibility.ipynb +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/features-lamindb.md +3 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/guide.md +0 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/introduction.ipynb +12 -12
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/meta.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/transfer.ipynb +6 -115
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/tutorial.ipynb +25 -25
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/tutorial2.ipynb +33 -33
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/validate.ipynb +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/__init__.py +4 -4
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_artifact.py +2 -13
- lamindb-0.64.2/lamindb/_dataset.py → lamindb-0.65.1/lamindb/_collection.py +58 -55
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_feature.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_filter.py +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_parents.py +28 -22
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_query_manager.py +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_registry.py +23 -9
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_transform.py +5 -8
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/__init__.py +11 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_data.py +12 -12
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_feature_manager.py +44 -22
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_label_manager.py +40 -15
- lamindb-0.64.2/lamindb/dev/_mapped_dataset.py → lamindb-0.65.1/lamindb/dev/_mapped_collection.py +104 -32
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_run_context.py +34 -35
- lamindb-0.65.1/lamindb/dev/_track_environment.py +18 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/datasets/__init__.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/datasets/_core.py +12 -12
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/_backed_access.py +4 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/_zarr.py +4 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/versioning.py +16 -23
- {lamindb-0.64.2 → lamindb-0.65.1}/noxfile.py +1 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/pyproject.toml +6 -5
- lamindb-0.65.1/sub/lamin-cli/lamin_cli/__init__.py +3 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/lamin_cli/_transform.py +72 -47
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/scripts/initialized.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/test_cli.py +0 -12
- lamindb-0.65.1/sub/lamin-cli/tests/test_migrate.py +31 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/test_notebooks.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/test_scripts.py +9 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/.github/workflows/build.yml +21 -39
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/.pre-commit-config.yaml +4 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/changelog.md +9 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-empty-init.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-load-lock.ipynb +3 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/01-init-instance.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/02-load-instance.ipynb +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/03-set-storage.ipynb +1 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/__init__.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_delete.py +5 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_init_instance.py +24 -4
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_load_instance.py +6 -6
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_migrate.py +39 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_register_instance.py +1 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_settings.py +2 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_core.py +36 -75
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_crud.py +29 -17
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_utils.py +0 -38
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_instance.py +17 -6
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_load.py +8 -3
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_setup_bionty_sources.py +6 -7
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/cloud_sqlite_locker.py +12 -9
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/django.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/upath.py +11 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/noxfile.py +3 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/pyproject.toml +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/hub-local/test_all.py +12 -7
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_init_instance.py +2 -2
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_load_instance.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/test_storage_access.py +9 -7
- lamindb-0.65.1/sub/lnschema-bionty/.github/workflows/build.yml +51 -0
- lamindb-0.65.1/sub/lnschema-bionty/.github/workflows/latest-changes.yml +25 -0
- lamindb-0.65.1/sub/lnschema-bionty/.gitignore +119 -0
- lamindb-0.65.1/sub/lnschema-bionty/.pre-commit-config.yaml +65 -0
- lamindb-0.65.1/sub/lnschema-bionty/README.md +5 -0
- lamindb-0.65.1/sub/lnschema-bionty/docs/changelog.md +181 -0
- lamindb-0.65.1/sub/lnschema-bionty/docs/index.md +11 -0
- lamindb-0.65.1/sub/lnschema-bionty/docs/reference.md +5 -0
- lamindb-0.65.1/sub/lnschema-bionty/lamin-project.yaml +5 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/__init__.py +119 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/_bionty.py +121 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/dev/__init__.py +14 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/dev/_bionty.py +40 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/dev/_settings.py +62 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/ids.py +71 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial.py +766 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0001_initial_squashed_0016.py +549 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0002_rename_gene_type_gene_biotype_and_more.py +46 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0003_alter_biontysource_entity_alter_biontysource_source_and_more.py +85 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0004_alter_cellline_bionty_source_and_more.py +151 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0005_rename_short_name_cellline_abbr_and_more.py +137 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0006_alter_biontysource_options_alter_cellline_options_and_more.py +60 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0007_rename_readout_experimental_factor.py +67 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0008_remove_gene_hgnc_id_remove_gene_mgi_id_and_more.py +82 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0009_alter_gene_ensembl_gene_id.py +17 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0010_alter_species_name.py +17 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0011_cellline_datasets_cellmarker_datasets_and_more.py +93 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0012_gene_stable_id.py +17 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0013_alter_cellmarker_species_alter_gene_species_and_more.py +43 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0014_ethnicity_developmentalstage.py +163 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0015_migrate_to_integer_pks.py +123 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0016_export_legacy_data.py +53 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0017_import_legacy_data.py +64 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0018_organism_rename_species_biontysource_organism_and_more.py +132 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0019_rename_taxon_id_organism_ontology_id_and_more.py +77 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0020_alter_organism_bionty_source.py +23 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0021_rename_files_cellline_artifacts_and_more.py +78 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/migrations/0022_rename_datasets_cellline_collections_and_more.py +77 -0
- lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty/models.py +1266 -0
- lamindb-0.65.1/sub/lnschema-bionty/noxfile.py +20 -0
- lamindb-0.65.1/sub/lnschema-bionty/pyproject.toml +46 -0
- lamindb-0.65.1/sub/lnschema-bionty/tests/test_integrity.py +13 -0
- lamindb-0.65.1/sub/lnschema-core/.github/workflows/latest-changes.jinja2 +2 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/CHANGELOG.md +5 -0
- lamindb-0.65.1/sub/lnschema-core/LICENSE +201 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/__init__.py +2 -4
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/0034_run_environment.py +18 -0
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/0035_remove_artifact_initial_version_and_more.py +29 -0
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/0036_storage_description.py +17 -0
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/0037_rename_dataset_to_collection.py +34 -0
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/0038_alter_collection_artifact_alter_collection_artifacts_and_more.py +57 -0
- lamindb-0.65.1/sub/lnschema-core/lnschema_core/migrations/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/mocks.py +1 -1
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/models.py +146 -106
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_artifact.py +6 -13
- lamindb-0.64.2/tests/test_dataset.py → lamindb-0.65.1/tests/test_collection.py +139 -118
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_feature_manager.py +12 -12
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_run_context.py +5 -7
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_transfer.py +5 -5
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_transform.py +3 -10
- lamindb-0.65.1/tests/test_visibility.py +35 -0
- lamindb-0.64.2/docs/public-ontologies.ipynb +0 -757
- lamindb-0.64.2/sub/lamin-cli/lamin_cli/__init__.py +0 -3
- lamindb-0.64.2/tests/test_visibility.py +0 -35
- {lamindb-0.64.2 → lamindb-0.65.1}/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/.gitignore +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/.gitmodules +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/.pre-commit-config.yaml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/LICENSE +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/README.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/bio-registries.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/bionty.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/acid.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/idempotency.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/import-schema.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq/track-run-inputs.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/faq.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/features-laminhub.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/index.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/installation.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/lamin-utils.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/lamindb.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/lnschema-bionty.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/nbproject.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/query-search.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/readfcs.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/reference.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/schemas.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/setup.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/signup-login.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/add-replace-stage.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage/upload.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/storage.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/test_notebooks.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/docs/track.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_delete.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_feature_set.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_from_values.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_query_set.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_run.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_save.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_storage.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_ulabel.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_utils.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_validate.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/_view.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_settings.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/_view_tree.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/datasets/_fake.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/exceptions.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/fields.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/hashing.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/_anndata_sizes.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/file.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/storage/object.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/dev/types.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/lamindb/setup/dev/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/.gitignore +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/.pre-commit-config.yaml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/README.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/lamin_cli/__main__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/pyproject.toml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/conftest.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/notebooks/no-title.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/notebooks/not-initialized.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-consecutive.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/notebooks/with-title-and-initialized-non-consecutive.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamin-cli/tests/scripts/not-initialized.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/.gitignore +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/LICENSE +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/README.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/index.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/notebooks.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-cache-management.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-import-schema.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-insufficient-user-info.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-invalid-schema.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test-sqlite-sync.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-only/test_notebooks2.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/04-test-bionty.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/test-multi-session.ipynb +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/prod-staging/test_notebooks.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/docs/reference.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_cache.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_check.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_check_instance_setup.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_close.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_django.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_docstrings.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_export.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_info.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_init_vault.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_schema.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_set.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_setup_user.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/_silence_loggers.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_deprecated.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_docs.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_hub_client.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_save.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_storage.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_store.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/lamindb_setup/dev/_settings_user.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/hub-local/conftest.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-only/conftest.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-only/test_django.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-only/test_switch_and_fallback_env.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_delete_instance.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_login.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_migrate.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/prod-staging/test_set_storage.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lamindb-setup/tests/test_vault.py +0 -0
- {lamindb-0.64.2/sub/lnschema-core → lamindb-0.65.1/sub/lnschema-bionty}/.github/workflows/latest-changes.jinja2 +0 -0
- {lamindb-0.64.2/sub/lnschema-core → lamindb-0.65.1/sub/lnschema-bionty}/LICENSE +0 -0
- {lamindb-0.64.2/sub/lnschema-core/lnschema_core → lamindb-0.65.1/sub/lnschema-bionty/lnschema_bionty}/migrations/__init__.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/.github/workflows/build.yml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/.github/workflows/latest-changes.yml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/.gitignore +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/.pre-commit-config.yaml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/README.md +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/ids.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0001_initial_squashed_0023.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0002_alter_user_name.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0003_alter_storage_region_alter_transform_short_name.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0004_rename_folder_tag_alter_project_folders.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0005_alter_run_inputs_delete_runinput.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0006_feature_dataset.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0007_feature_synonyms_featureset_field_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0008_file_hash_type_transform_parents.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0009_remove_featureset_files_feature_unit_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0010_dataset_categories_file_categories.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0011_label_remove_tag_created_by_remove_tag_parents_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0012_remove_label_ref_id_remove_label_ref_orm_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0013_remove_feature_labels_orm_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0014_rename_ref_field_featureset_registry.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0015_file_initial_version_file_version.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0016_dataset_input_of_dataset_run_dataset_transform_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0017_dataset_initial_version_dataset_version.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0018_rename_datasetlabel_datasetulabel_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0019_dataset_reference_dataset_reference_type_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0020_run_report_transform_latest_report_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0021_dataset_storage_alter_dataset_file.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0022_migrate_to_integer_pks.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0023_export_legacy_data.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0024_import_legacy_data.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0025_remove_user_email.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0026_dataset_visibility_file_visibility.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0027_file_key_is_virtual.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0028_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0029_remove_feature_modality_remove_featureset_modality_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0030_alter_dataset_visibility_alter_file_visibility.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0031_rename_file_to_artifact.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0032_remove_dataset_storage.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/migrations/0033_alter_artifact_unique_together_artifact_n_objects_and_more.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/types.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/lnschema_core/users.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/noxfile.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/pyproject.toml +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/sub/lnschema-core/tests/test_integrity.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/conftest.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_cache.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_data.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_db.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_delete.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_feature.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_feature_set.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_from_values.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_hashing.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_label_manager.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_manager.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_parents.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_queryset.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_registry.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_run.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_save.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_settings.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_storage.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_ulabel.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_validate.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_versioning.py +0 -0
- {lamindb-0.64.2 → lamindb-0.65.1}/tests/test_view.py +0 -0
@@ -63,7 +63,7 @@ jobs:
|
|
63
63
|
if: ${{ matrix.group == 'tutorial' }} # choose a fast-running a group
|
64
64
|
- run: nox -s "install(group='${{ matrix.group }}')"
|
65
65
|
- uses: aws-actions/configure-aws-credentials@v1
|
66
|
-
if: ${{ matrix.group == 'unit' || matrix.group == 'guide' || matrix.group == 'storage' }}
|
66
|
+
if: ${{ matrix.group == 'unit' || matrix.group == 'guide' || matrix.group == 'storage' || matrix.group == 'cli' }}
|
67
67
|
# in particular, the tutorial should be run on an anonymous worker *without* AWS credentials
|
68
68
|
with:
|
69
69
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
@@ -1 +1 @@
|
|
1
|
-
- {{pr.title}} [PR{{pr.number}}]({{pr.html_url}}) [@{{pr.user.login}}]({{pr.user.html_url}})
|
1
|
+
- {{pr.title}} [PR{{pr.number}}]({{pr.html_url}}) [@{{pr.user.login}}]({{pr.user.html_url}})
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lamindb
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.65.1
|
4
4
|
Summary: A data framework for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.8
|
@@ -8,10 +8,11 @@ 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
|
-
|
12
|
-
Requires-Dist:
|
13
|
-
Requires-Dist:
|
14
|
-
Requires-Dist:
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
12
|
+
Requires-Dist: lnschema_core==0.60.0
|
13
|
+
Requires-Dist: lamindb_setup==0.63.1
|
14
|
+
Requires-Dist: lamin_utils==0.13.0
|
15
|
+
Requires-Dist: lamin_cli==0.5.0
|
15
16
|
Requires-Dist: rapidfuzz
|
16
17
|
Requires-Dist: pyarrow
|
17
18
|
Requires-Dist: typing_extensions!=4.6.0
|
@@ -27,7 +28,7 @@ Requires-Dist: boto3==1.28.17 ; extra == "aws"
|
|
27
28
|
Requires-Dist: aiobotocore==2.5.4 ; extra == "aws"
|
28
29
|
Requires-Dist: fsspec[s3]==2023.9.0 ; extra == "aws"
|
29
30
|
Requires-Dist: s3fs>=2023.9.0 ; extra == "aws"
|
30
|
-
Requires-Dist: lnschema_bionty==0.
|
31
|
+
Requires-Dist: lnschema_bionty==0.37.0 ; extra == "bionty"
|
31
32
|
Requires-Dist: pandas<2 ; extra == "dev"
|
32
33
|
Requires-Dist: pre-commit ; extra == "dev"
|
33
34
|
Requires-Dist: nox ; extra == "dev"
|
@@ -67,7 +67,7 @@
|
|
67
67
|
"cell_type": "markdown",
|
68
68
|
"metadata": {},
|
69
69
|
"source": [
|
70
|
-
"## Register a
|
70
|
+
"## Register a collection"
|
71
71
|
]
|
72
72
|
},
|
73
73
|
{
|
@@ -111,7 +111,7 @@
|
|
111
111
|
" index=[\"sample1\", \"sample2\", \"sample3\"],\n",
|
112
112
|
")\n",
|
113
113
|
"\n",
|
114
|
-
"# external metadata (describes the entire
|
114
|
+
"# external metadata (describes the entire collection)\n",
|
115
115
|
"external_meta = {\n",
|
116
116
|
" \"organism\": \"human\",\n",
|
117
117
|
" \"assay\": \"scRNA-seq\",\n",
|
@@ -157,15 +157,15 @@
|
|
157
157
|
"source": [
|
158
158
|
"ln.track()\n",
|
159
159
|
"\n",
|
160
|
-
"
|
161
|
-
"
|
160
|
+
"collection = ln.Collection(adata, name=\"my RNA-seq\")\n",
|
161
|
+
"collection.save()"
|
162
162
|
]
|
163
163
|
},
|
164
164
|
{
|
165
165
|
"cell_type": "markdown",
|
166
166
|
"metadata": {},
|
167
167
|
"source": [
|
168
|
-
"We don't see any metadata in the registered
|
168
|
+
"We don't see any metadata in the registered collection yet:"
|
169
169
|
]
|
170
170
|
},
|
171
171
|
{
|
@@ -174,7 +174,7 @@
|
|
174
174
|
"metadata": {},
|
175
175
|
"outputs": [],
|
176
176
|
"source": [
|
177
|
-
"
|
177
|
+
"collection.describe()"
|
178
178
|
]
|
179
179
|
},
|
180
180
|
{
|
@@ -230,7 +230,7 @@
|
|
230
230
|
"source": [
|
231
231
|
"Metadata features refer to descriptive or contextual information about the data. They don't directly describe the content of the data but rather its characteristics.\n",
|
232
232
|
"\n",
|
233
|
-
"In this example, the metadata features are \"cell_type\", \"tissue\" that describe observations (stored in `adata.obs.columns`) and \"organism\", \"assay\", \"experiment\" that describe the entire
|
233
|
+
"In this example, the metadata features are \"cell_type\", \"tissue\" that describe observations (stored in `adata.obs.columns`) and \"organism\", \"assay\", \"experiment\" that describe the entire collection.\n",
|
234
234
|
"\n",
|
235
235
|
"Here we define them using the {class}`~lamindb.Feature` registry:"
|
236
236
|
]
|
@@ -353,7 +353,7 @@
|
|
353
353
|
"source": [
|
354
354
|
"## Annotate with features\n",
|
355
355
|
"\n",
|
356
|
-
"Non-external features are annotated when registering
|
356
|
+
"Non-external features are annotated when registering collections using `.from_df` or `.from_anndata` methods:\n",
|
357
357
|
"\n",
|
358
358
|
"(See the below \"Annotate with labels stratified by metadata features\" session for adding external features.)"
|
359
359
|
]
|
@@ -368,19 +368,19 @@
|
|
368
368
|
},
|
369
369
|
"outputs": [],
|
370
370
|
"source": [
|
371
|
-
"
|
371
|
+
"collection = ln.Collection.from_anndata(\n",
|
372
372
|
" adata,\n",
|
373
373
|
" name=\"my RNA-seq\",\n",
|
374
374
|
" field=lb.Gene.symbol, # the registry field to use for the data features\n",
|
375
375
|
")\n",
|
376
|
-
"
|
376
|
+
"collection.save()"
|
377
377
|
]
|
378
378
|
},
|
379
379
|
{
|
380
380
|
"cell_type": "markdown",
|
381
381
|
"metadata": {},
|
382
382
|
"source": [
|
383
|
-
"This
|
383
|
+
"This collection is now annotated with features:"
|
384
384
|
]
|
385
385
|
},
|
386
386
|
{
|
@@ -389,7 +389,7 @@
|
|
389
389
|
"metadata": {},
|
390
390
|
"outputs": [],
|
391
391
|
"source": [
|
392
|
-
"
|
392
|
+
"collection.describe()"
|
393
393
|
]
|
394
394
|
},
|
395
395
|
{
|
@@ -407,7 +407,7 @@
|
|
407
407
|
"metadata": {},
|
408
408
|
"outputs": [],
|
409
409
|
"source": [
|
410
|
-
"
|
410
|
+
"collection.features"
|
411
411
|
]
|
412
412
|
},
|
413
413
|
{
|
@@ -423,7 +423,7 @@
|
|
423
423
|
"metadata": {},
|
424
424
|
"outputs": [],
|
425
425
|
"source": [
|
426
|
-
"
|
426
|
+
"collection.features[\"var\"].df()"
|
427
427
|
]
|
428
428
|
},
|
429
429
|
{
|
@@ -432,7 +432,7 @@
|
|
432
432
|
"metadata": {},
|
433
433
|
"outputs": [],
|
434
434
|
"source": [
|
435
|
-
"
|
435
|
+
"collection.features[\"obs\"].df()"
|
436
436
|
]
|
437
437
|
},
|
438
438
|
{
|
@@ -441,7 +441,7 @@
|
|
441
441
|
"source": [
|
442
442
|
"## Annotate with labels\n",
|
443
443
|
"\n",
|
444
|
-
"If you simply want to tag a
|
444
|
+
"If you simply want to tag a collection with some descriptive labels, you can pass them to `.labels.add`. For example, let's add the experiment label \"EXP0001\" and project label \"PRJ0001\" to the collection:"
|
445
445
|
]
|
446
446
|
},
|
447
447
|
{
|
@@ -450,15 +450,15 @@
|
|
450
450
|
"metadata": {},
|
451
451
|
"outputs": [],
|
452
452
|
"source": [
|
453
|
-
"
|
454
|
-
"
|
453
|
+
"collection.labels.add(experiment)\n",
|
454
|
+
"collection.labels.add(project)"
|
455
455
|
]
|
456
456
|
},
|
457
457
|
{
|
458
458
|
"cell_type": "markdown",
|
459
459
|
"metadata": {},
|
460
460
|
"source": [
|
461
|
-
"Now you see the
|
461
|
+
"Now you see the collection is annotated with 'EXP0001', 'PRJ0001' labels:"
|
462
462
|
]
|
463
463
|
},
|
464
464
|
{
|
@@ -467,7 +467,7 @@
|
|
467
467
|
"metadata": {},
|
468
468
|
"outputs": [],
|
469
469
|
"source": [
|
470
|
-
"
|
470
|
+
"collection.describe()"
|
471
471
|
]
|
472
472
|
},
|
473
473
|
{
|
@@ -483,7 +483,7 @@
|
|
483
483
|
"metadata": {},
|
484
484
|
"outputs": [],
|
485
485
|
"source": [
|
486
|
-
"
|
486
|
+
"collection.labels"
|
487
487
|
]
|
488
488
|
},
|
489
489
|
{
|
@@ -501,7 +501,7 @@
|
|
501
501
|
"metadata": {},
|
502
502
|
"outputs": [],
|
503
503
|
"source": [
|
504
|
-
"
|
504
|
+
"collection.ulabels.df()"
|
505
505
|
]
|
506
506
|
},
|
507
507
|
{
|
@@ -512,7 +512,7 @@
|
|
512
512
|
"\n",
|
513
513
|
"For labels associated with metadata features, you can pass \"feature\" to `.labels.add` to stratified them by feature. (Another way to stratify labels is through ontological hierarchy, which is covered in the [Quickstart](/introduction))\n",
|
514
514
|
"\n",
|
515
|
-
"Let's add the experiment label \"EXP0001\" and project label \"PRJ0001\" to the
|
515
|
+
"Let's add the experiment label \"EXP0001\" and project label \"PRJ0001\" to the collection again, this time specifying their features:"
|
516
516
|
]
|
517
517
|
},
|
518
518
|
{
|
@@ -528,15 +528,15 @@
|
|
528
528
|
"# an auto-complete object of registered features\n",
|
529
529
|
"features = ln.Feature.lookup()\n",
|
530
530
|
"\n",
|
531
|
-
"
|
532
|
-
"
|
531
|
+
"collection.labels.add(experiment, feature=features.experiment)\n",
|
532
|
+
"collection.labels.add(project, feature=features.project)"
|
533
533
|
]
|
534
534
|
},
|
535
535
|
{
|
536
536
|
"cell_type": "markdown",
|
537
537
|
"metadata": {},
|
538
538
|
"source": [
|
539
|
-
"You now see a 3rd featureset is added to the
|
539
|
+
"You now see a 3rd featureset is added to the collection at slot \"external\", and the labels are stratified by two features:"
|
540
540
|
]
|
541
541
|
},
|
542
542
|
{
|
@@ -545,7 +545,7 @@
|
|
545
545
|
"metadata": {},
|
546
546
|
"outputs": [],
|
547
547
|
"source": [
|
548
|
-
"
|
548
|
+
"collection.describe()"
|
549
549
|
]
|
550
550
|
},
|
551
551
|
{
|
@@ -561,7 +561,7 @@
|
|
561
561
|
"metadata": {},
|
562
562
|
"outputs": [],
|
563
563
|
"source": [
|
564
|
-
"
|
564
|
+
"collection.labels.get(features.experiment).df()"
|
565
565
|
]
|
566
566
|
},
|
567
567
|
{
|
@@ -581,7 +581,7 @@
|
|
581
581
|
},
|
582
582
|
"outputs": [],
|
583
583
|
"source": [
|
584
|
-
"
|
584
|
+
"collection.labels.add(assay, feature=features.assay)"
|
585
585
|
]
|
586
586
|
},
|
587
587
|
{
|
@@ -591,7 +591,7 @@
|
|
591
591
|
"outputs": [],
|
592
592
|
"source": [
|
593
593
|
"# access labels directly via default accessor \"experimental_factors\"\n",
|
594
|
-
"
|
594
|
+
"collection.experimental_factors.df()"
|
595
595
|
]
|
596
596
|
},
|
597
597
|
{
|
@@ -601,7 +601,7 @@
|
|
601
601
|
"outputs": [],
|
602
602
|
"source": [
|
603
603
|
"# access labels via feature\n",
|
604
|
-
"
|
604
|
+
"collection.labels.get(features.assay).df()"
|
605
605
|
]
|
606
606
|
},
|
607
607
|
{
|
@@ -622,18 +622,18 @@
|
|
622
622
|
"outputs": [],
|
623
623
|
"source": [
|
624
624
|
"# labels of obs metadata features\n",
|
625
|
-
"
|
626
|
-
"
|
625
|
+
"collection.labels.add(cell_types, feature=features.cell_type)\n",
|
626
|
+
"collection.labels.add(tissues, feature=features.tissue)\n",
|
627
627
|
"\n",
|
628
628
|
"# labels of external metadata features\n",
|
629
|
-
"
|
629
|
+
"collection.labels.add(organism, feature=features.organism)"
|
630
630
|
]
|
631
631
|
},
|
632
632
|
{
|
633
633
|
"cell_type": "markdown",
|
634
634
|
"metadata": {},
|
635
635
|
"source": [
|
636
|
-
"Now you've annotated your
|
636
|
+
"Now you've annotated your collection with all features and labels:"
|
637
637
|
]
|
638
638
|
},
|
639
639
|
{
|
@@ -642,7 +642,7 @@
|
|
642
642
|
"metadata": {},
|
643
643
|
"outputs": [],
|
644
644
|
"source": [
|
645
|
-
"
|
645
|
+
"collection.describe()"
|
646
646
|
]
|
647
647
|
},
|
648
648
|
{
|
@@ -4,6 +4,25 @@
|
|
4
4
|
.. role:: small
|
5
5
|
```
|
6
6
|
|
7
|
+
## 0.65
|
8
|
+
|
9
|
+
### 0.65.1 {small}`2024-01-05`
|
10
|
+
|
11
|
+
- 🩹 Prepare a potential migration of the hub to Django [PR1385](https://github.com/laminlabs/lamindb/pull/1385) [@falexwolf](https://github.com/falexwolf)
|
12
|
+
- 🚸 Various improvements [PR1384](https://github.com/laminlabs/lamindb/pull/1384) [@falexwolf](https://github.com/falexwolf)
|
13
|
+
- 🩹 Track suffix of requirements.txt [PR1383](https://github.com/laminlabs/lamindb/pull/1383) [@falexwolf](https://github.com/falexwolf)
|
14
|
+
- ✨ Add outer join and categories caching to Collection.mapped [PR1380](https://github.com/laminlabs/lamindb/pull/1380) [@Koncopd](https://github.com/Koncopd)
|
15
|
+
- ♻️ Except memory error [PR1382](https://github.com/laminlabs/lamindb/pull/1382) [@falexwolf](https://github.com/falexwolf)
|
16
|
+
|
17
|
+
### 0.65.0 {small}`2024-01-02`
|
18
|
+
|
19
|
+
- 🚚 Rename `Dataset` to `Collection` [PR1377](https://github.com/laminlabs/lamindb/pull/1377) [@falexwolf](https://github.com/falexwolf)
|
20
|
+
- ✨ Track run environment [PR1368](https://github.com/laminlabs/lamindb/pull/1368) [@falexwolf](https://github.com/falexwolf)
|
21
|
+
- ✨ Allow transfer from private instances [PR1370](https://github.com/laminlabs/lamindb/pull/1370) [@falexwolf](https://github.com/falexwolf)
|
22
|
+
- 🚸 Speed up transfer and enable transfer parents [PR1371](https://github.com/laminlabs/lamindb/pull/1371) [@sunnyosun](https://github.com/sunnyosun)
|
23
|
+
- 🎨 Version based on `stem_uid` instead of `initial_version_id` and replace `__lamindb_uid_prefix__` with `__transform_stem_uid__` [PR1369](https://github.com/laminlabs/lamindb/pull/1369) [PR1375](https://github.com/laminlabs/lamindb/pull/1375) [PR1373](https://github.com/laminlabs/lamindb/pull/1373) [@bpenteado](https://github.com/bpenteado) [@falexwolf](https://github.com/falexwolf)
|
24
|
+
- 🎨 Name `.lndb` files by instance id [PR1372](https://github.com/laminlabs/lamindb/pull/1372) [@falexwolf](https://github.com/falexwolf)
|
25
|
+
|
7
26
|
## 0.64
|
8
27
|
|
9
28
|
### 0.64.2 {small}`2023-12-18`
|
@@ -20,7 +20,7 @@
|
|
20
20
|
"cell_type": "markdown",
|
21
21
|
"metadata": {},
|
22
22
|
"source": [
|
23
|
-
"We saw how LaminDB allows to query & search across artifacts &
|
23
|
+
"We saw how LaminDB allows to query & search across artifacts & collections using registries: {doc}`meta`.\n",
|
24
24
|
"\n",
|
25
25
|
"Let us now look at the following case:\n",
|
26
26
|
"\n",
|
@@ -35,12 +35,12 @@
|
|
35
35
|
"\n",
|
36
36
|
"Because the artifact was validated, querying the `DataFrame` is guaranteed to succeed!\n",
|
37
37
|
"\n",
|
38
|
-
"Such within-
|
38
|
+
"Such within-collection queries are also possible for cloud-backed collections using DuckDB, TileDB, zarr, HDF5, parquet, and other storage backends.\n",
|
39
39
|
"\n",
|
40
40
|
"- For a use case with TileDB, see: {doc}`docs:cellxgene`\n",
|
41
41
|
"- For a use case with DuckDB, see: {doc}`docs:rxrx`\n",
|
42
42
|
"\n",
|
43
|
-
"In this notebook, we show how to subset an `AnnData` and generic `HDF5` and `zarr`
|
43
|
+
"In this notebook, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud."
|
44
44
|
]
|
45
45
|
},
|
46
46
|
{
|
@@ -8,7 +8,7 @@
|
|
8
8
|
"\n",
|
9
9
|
"Registry records can be deleted with `record.delete()`, which will **permanently remove** them from your database.\n",
|
10
10
|
"\n",
|
11
|
-
"When it comes to **records of `File` and `
|
11
|
+
"When it comes to **records of `File` and `Collection`**, they are **\"moved into trash\"** when you first call `record.delete()`.\n",
|
12
12
|
"- Trashed records are invisible in the UI and excluded from the query results, see [visibility faq](/faq/visibility).\n",
|
13
13
|
"- If a record is already in the trash or `permanent=True` is passed, calling `record.delete()` triggers permanent delete.\n",
|
14
14
|
"- During permanent deletion of a record, its artifact in storage is also deleted unless it has a semantic `key`."
|
@@ -11,8 +11,8 @@
|
|
11
11
|
"cell_type": "markdown",
|
12
12
|
"metadata": {},
|
13
13
|
"source": [
|
14
|
-
"LaminDB is designed around associating biological metadata to artifacts and
|
15
|
-
"This enables querying for them in storage by metadata and removes the requirement for semantic artifact and
|
14
|
+
"LaminDB is designed around associating biological metadata to artifacts and collections.\n",
|
15
|
+
"This enables querying for them in storage by metadata and removes the requirement for semantic artifact and collection names.\n",
|
16
16
|
"\n",
|
17
17
|
"Here, we will discuss trade-offs for using the `key` parameter, which allows for semantic keys, in various scenarios."
|
18
18
|
]
|
@@ -65,12 +65,12 @@
|
|
65
65
|
" f.write(random_text)\n",
|
66
66
|
"\n",
|
67
67
|
" for i in range(1, 3):\n",
|
68
|
-
"
|
69
|
-
"
|
68
|
+
" collection_folder = raw_folder / f\"Collection_{i}\"\n",
|
69
|
+
" collection_folder.mkdir()\n",
|
70
70
|
"\n",
|
71
71
|
" for j in range(1, 5):\n",
|
72
72
|
" artifact_name = f\"raw_data_{j}.txt\"\n",
|
73
|
-
" with (
|
73
|
+
" with (collection_folder / artifact_name).open(\"w\") as f:\n",
|
74
74
|
" random_text = \"\".join(\n",
|
75
75
|
" random.choice(string.ascii_letters) for _ in range(10)\n",
|
76
76
|
" )\n",
|
@@ -132,7 +132,7 @@
|
|
132
132
|
"cell_type": "markdown",
|
133
133
|
"metadata": {},
|
134
134
|
"source": [
|
135
|
-
"## Storing artifacts using `Storage`, `File`, and `
|
135
|
+
"## Storing artifacts using `Storage`, `File`, and `Collection`"
|
136
136
|
]
|
137
137
|
},
|
138
138
|
{
|
@@ -143,7 +143,7 @@
|
|
143
143
|
"\n",
|
144
144
|
"1. {class}`~lamindb.Storage`: Manages the default storage root that can be either local or in the cloud. For more details we refer to {doc}`docs:faq/storage`.\n",
|
145
145
|
"2. {class}`~lamindb.Artifact`: Manages data batches with an optional `key` that acts as a relative path within the current default storage root (see {class}`~lamindb.Storage`). An example is a single h5 artifact.\n",
|
146
|
-
"3. {class}`~lamindb.
|
146
|
+
"3. {class}`~lamindb.Collection`: Manages a collection of data batches with an optional `key` that acts as a relative path within the current default storage root (see {class}`~lamindb.Storage`). An example is a collection of h5 artifacts.\n",
|
147
147
|
"\n",
|
148
148
|
"For more details we refer to {doc}`docs:tutorial`."
|
149
149
|
]
|
@@ -186,7 +186,7 @@
|
|
186
186
|
"cell_type": "markdown",
|
187
187
|
"metadata": {},
|
188
188
|
"source": [
|
189
|
-
"We will now create `File` objects with and without semantic keys using `key` and also save them as `
|
189
|
+
"We will now create `File` objects with and without semantic keys using `key` and also save them as `Collections`."
|
190
190
|
]
|
191
191
|
},
|
192
192
|
{
|
@@ -253,8 +253,8 @@
|
|
253
253
|
"cell_type": "markdown",
|
254
254
|
"metadata": {},
|
255
255
|
"source": [
|
256
|
-
"`
|
257
|
-
"In contrast, it has a `name` parameter that serves as a semantic identifier of the
|
256
|
+
"`Collection` does not have a `key` parameter because it does not store any additional data in `Storage`.\n",
|
257
|
+
"In contrast, it has a `name` parameter that serves as a semantic identifier of the collection."
|
258
258
|
]
|
259
259
|
},
|
260
260
|
{
|
@@ -263,8 +263,8 @@
|
|
263
263
|
"metadata": {},
|
264
264
|
"outputs": [],
|
265
265
|
"source": [
|
266
|
-
"ds_1 = ln.
|
267
|
-
"ds_2 = ln.
|
266
|
+
"ds_1 = ln.Collection(data=[artifact_no_key_1, artifact_no_key_2], name=\"no key collection\")\n",
|
267
|
+
"ds_2 = ln.Collection(data=[artifact_key_3, artifact_key_4], name=\"sample collection\")\n",
|
268
268
|
"ds_1"
|
269
269
|
]
|
270
270
|
},
|
@@ -283,7 +283,7 @@
|
|
283
283
|
"\n",
|
284
284
|
"### Advantages:\n",
|
285
285
|
"\n",
|
286
|
-
"- Simple: It can be easier to refer to specific
|
286
|
+
"- Simple: It can be easier to refer to specific collections in conversations\n",
|
287
287
|
"- Familiarity: Most people are familiar with the concept of semantic names\n",
|
288
288
|
"\n",
|
289
289
|
"### Disadvantages\n",
|
@@ -600,8 +600,8 @@
|
|
600
600
|
"It can be useful to resemble the artifact structure in \"complex_biological_project\" from above also in LaminDB to allow for queries for artifacts that were stored in specific folders.\n",
|
601
601
|
"Common examples of this are folders specifying different processing stages such as `raw`, `preprocessed`, or `annotated`.\n",
|
602
602
|
"\n",
|
603
|
-
"Note that this use-case may also be overlapping with `
|
604
|
-
"However, `
|
603
|
+
"Note that this use-case may also be overlapping with `Collection` which also allows for grouping `Files`.\n",
|
604
|
+
"However, `Collection` cannot model hierarchical groupings."
|
605
605
|
]
|
606
606
|
},
|
607
607
|
{
|
@@ -640,14 +640,14 @@
|
|
640
640
|
"cell_type": "markdown",
|
641
641
|
"metadata": {},
|
642
642
|
"source": [
|
643
|
-
"###
|
643
|
+
"### Collection"
|
644
644
|
]
|
645
645
|
},
|
646
646
|
{
|
647
647
|
"cell_type": "markdown",
|
648
648
|
"metadata": {},
|
649
649
|
"source": [
|
650
|
-
"Alternatively, it would have been possible to create a `
|
650
|
+
"Alternatively, it would have been possible to create a `Collection` with a corresponding name:"
|
651
651
|
]
|
652
652
|
},
|
653
653
|
{
|
@@ -666,7 +666,7 @@
|
|
666
666
|
"for path in all_data_paths:\n",
|
667
667
|
" all_data_artifacts.append(ln.Artifact(path))\n",
|
668
668
|
"\n",
|
669
|
-
"data_ds = ln.
|
669
|
+
"data_ds = ln.Collection(all_data_artifacts, name=\"data\")\n",
|
670
670
|
"data_ds.save()"
|
671
671
|
]
|
672
672
|
},
|
@@ -676,7 +676,7 @@
|
|
676
676
|
"metadata": {},
|
677
677
|
"outputs": [],
|
678
678
|
"source": [
|
679
|
-
"ln.
|
679
|
+
"ln.Collection.filter(name__icontains=\"data\").df()"
|
680
680
|
]
|
681
681
|
},
|
682
682
|
{
|
@@ -748,7 +748,7 @@
|
|
748
748
|
"metadata": {},
|
749
749
|
"source": [
|
750
750
|
"Due to the chance of clashes for the aforementioned approaches being rather high, we generally recommend not to store hierarchical data with solely semantic keys.\n",
|
751
|
-
"Biological metadata makes `Files` and `
|
751
|
+
"Biological metadata makes `Files` and `Collections` unambiguous and easily queryable.\n"
|
752
752
|
]
|
753
753
|
},
|
754
754
|
{
|
@@ -762,7 +762,7 @@
|
|
762
762
|
"cell_type": "markdown",
|
763
763
|
"metadata": {},
|
764
764
|
"source": [
|
765
|
-
"### Distributed
|
765
|
+
"### Distributed Collections"
|
766
766
|
]
|
767
767
|
},
|
768
768
|
{
|
@@ -771,7 +771,7 @@
|
|
771
771
|
"source": [
|
772
772
|
"LaminDB can ingest legacy data that already had a structure in their storage.\n",
|
773
773
|
"In such cases, it disables `artifact_use_virtual_keys` and the artifacts are ingested with their actual storage location.\n",
|
774
|
-
"It might be therefore be possible that `Files` stored in different storage roots may be associated with a single `
|
774
|
+
"It might be therefore be possible that `Files` stored in different storage roots may be associated with a single `Collection`.\n",
|
775
775
|
"To simulate this, we are disabling `artifact_use_virtual_keys` and ingest artifacts stored in a different path (the \"legacy data\")."
|
776
776
|
]
|
777
777
|
},
|
@@ -817,7 +817,7 @@
|
|
817
817
|
"metadata": {},
|
818
818
|
"outputs": [],
|
819
819
|
"source": [
|
820
|
-
"artifact_from_raw = ln.Artifact.filter(key__icontains=\"
|
820
|
+
"artifact_from_raw = ln.Artifact.filter(key__icontains=\"Collection_2/raw_data_1\").first()\n",
|
821
821
|
"artifact_from_preprocessed = ln.Artifact.filter(\n",
|
822
822
|
" key__icontains=\"preprocessed/result_1\"\n",
|
823
823
|
").first()\n",
|
@@ -830,7 +830,7 @@
|
|
830
830
|
"cell_type": "markdown",
|
831
831
|
"metadata": {},
|
832
832
|
"source": [
|
833
|
-
"Let's create our `
|
833
|
+
"Let's create our `Collection`:"
|
834
834
|
]
|
835
835
|
},
|
836
836
|
{
|
@@ -839,8 +839,8 @@
|
|
839
839
|
"metadata": {},
|
840
840
|
"outputs": [],
|
841
841
|
"source": [
|
842
|
-
"ds = ln.
|
843
|
-
" [artifact_from_raw, artifact_from_preprocessed], name=\"
|
842
|
+
"ds = ln.Collection(\n",
|
843
|
+
" [artifact_from_raw, artifact_from_preprocessed], name=\"raw_and_processed_collection_2\"\n",
|
844
844
|
")\n",
|
845
845
|
"ds.save()"
|
846
846
|
]
|
@@ -1010,12 +1010,12 @@
|
|
1010
1010
|
"\n",
|
1011
1011
|
"Question: Does the rxrx1 use-case work well with our current `key` design?\n",
|
1012
1012
|
"\n",
|
1013
|
-
"Answer: The rxrx1 use-case currently has an immutable parquet file with metadata associated with the `
|
1013
|
+
"Answer: The rxrx1 use-case currently has an immutable parquet file with metadata associated with the `Collection`.\n",
|
1014
1014
|
"Since we did not register the `File` objects themselves, we have to query for the artifacts and their paths through the parquet file.\n",
|
1015
1015
|
"This requires the paths to be stable remote URLs that are kept sync with the metadata parquet `File`.\n",
|
1016
1016
|
"https://github.com/laminlabs/rxrx-lamin/blob/main/docs/notebooks/02-rxrx1.ipynb describes the curation for the images.\n",
|
1017
|
-
"Here, a `
|
1018
|
-
"The `
|
1017
|
+
"Here, a `Collection` is created without any `File` objects.\n",
|
1018
|
+
"The `Collection` does not have `key`, solely `File` objects, which are not created here.\n",
|
1019
1019
|
"Any hierarchy that is resembled in the `paths` and `path` (why 2?) columns of the metadata DataFrame is not reflected in `Storage` (via `key`) due to the lack of `Files`."
|
1020
1020
|
]
|
1021
1021
|
},
|
@@ -11,9 +11,9 @@
|
|
11
11
|
"cell_type": "markdown",
|
12
12
|
"metadata": {},
|
13
13
|
"source": [
|
14
|
-
"When registering data in LaminDB, you might want to store a reference link or ID to indicate the source of the
|
14
|
+
"When registering data in LaminDB, you might want to store a reference link or ID to indicate the source of the collection.\n",
|
15
15
|
"\n",
|
16
|
-
"We have `reference` and `reference_type` fields for this purpose, they are available for {class}`~lamindb.
|
16
|
+
"We have `reference` and `reference_type` fields for this purpose, they are available for {class}`~lamindb.Collection`, {class}`~lamindb.Transform`, {class}`~lamindb.Run` and {class}`~lamindb.ULabel`."
|
17
17
|
]
|
18
18
|
},
|
19
19
|
{
|
@@ -4,9 +4,9 @@
|
|
4
4
|
"cell_type": "markdown",
|
5
5
|
"metadata": {},
|
6
6
|
"source": [
|
7
|
-
"# When do visibility of artifacts and
|
7
|
+
"# When do visibility of artifacts and collections change?\n",
|
8
8
|
"\n",
|
9
|
-
"Files and
|
9
|
+
"Files and collections in LaminDB have the following 3 levels if visibility:\n",
|
10
10
|
"- 1: \"default\", visible in the UI by default, returned from the query results\n",
|
11
11
|
"- 0: \"hidden\", excluded from the query results, notebook artifacts (generated by `lamin save`) are default to be hidden\n",
|
12
12
|
"- -1: \"trash\", excluded from the query results, set with `.delete()`"
|
@@ -5,10 +5,10 @@
|
|
5
5
|
- Model data using {class}`~lamindb.Feature`, {class}`~lamindb.FeatureSet`, {class}`~lamindb.ULabel`
|
6
6
|
- Plug-in custom [schemas](/schemas) & manage schema migrations
|
7
7
|
- Use array formats in memory & storage: [DataFrame](/tutorial), [AnnData](/data), [MuData](docs:multimodal), [SOMA](docs:cellxgene), ... backed by [parquet](/tutorial), [zarr](/data), [TileDB](docs:cellxgene), [HDF5](/data), [h5ad](/data), [DuckDB](docs:rxrx), ...
|
8
|
-
- Bridge artifacts and warehousing: {class}`~lamindb.Artifact`, {class}`~lamindb.
|
9
|
-
- Version artifacts,
|
8
|
+
- Bridge artifacts and warehousing: {class}`~lamindb.Artifact`, {class}`~lamindb.Collection`
|
9
|
+
- Version artifacts, collections & transforms
|
10
10
|
|
11
|
-
**Track data
|
11
|
+
**Track data lineage across notebooks, pipelines & UI: {meth}`~lamindb.track`, {class}`~lamindb.Transform` & {class}`~lamindb.Run`.**
|
12
12
|
|
13
13
|
- Execution reports & source code for [notebooks & scripts](/track)
|
14
14
|
- Integrate with workflow managers: [redun](docs:redun), [nextflow](docs:nextflow), [snakemake](docs:snakemake)
|