lamindb 1.11.3__tar.gz → 1.12.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-1.11.3 → lamindb-1.12.1}/.gitignore +3 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/PKG-INFO +18 -21
- {lamindb-1.11.3 → lamindb-1.12.1}/README.md +11 -12
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/arrays.ipynb +4 -25
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/curate.ipynb +75 -65
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/acid.ipynb +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/curate-any.ipynb +9 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/idempotency.ipynb +7 -7
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/keep-artifacts-local.ipynb +4 -4
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/pydantic-pandera.ipynb +6 -6
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/reference-field.ipynb +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/search.ipynb +3 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/track-run-inputs.ipynb +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/guide.md +1 -1
- lamindb-1.11.3/docs/bio-registries.ipynb → lamindb-1.12.1/docs/manage-ontologies.ipynb +23 -38
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/registries.ipynb +17 -15
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_anndata_flexible.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_anndata_uns.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_dataframe_external_features.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_dataframe_flexible.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_dataframe_minimal_errors.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_mudata.py +10 -10
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_soma_experiment.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_spatialdata.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_mini_immuno_features_labels.py +3 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/run_workflow.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/save_mini_immuno_datasets.py +6 -6
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/add-replace-cache.ipynb +101 -18
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/upload.ipynb +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/vitessce.ipynb +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/track.ipynb +34 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/__init__.py +8 -14
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/_tracked.py +2 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/types.py +1 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_context.py +16 -31
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_mapped_collection.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/paths.py +5 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/curators/core.py +15 -4
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/__init__.py +3 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/croissant/__init__.py +3 -1
- lamindb-1.12.1/lamindb/examples/mlflow/__init__.py +38 -0
- lamindb-1.12.1/lamindb/examples/wandb/__init__.py +40 -0
- lamindb-1.12.1/lamindb/integrations/__init__.py +40 -0
- lamindb-1.12.1/lamindb/integrations/_lightning.py +87 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0120_add_record_fk_constraint.py +1 -1
- lamindb-1.12.1/lamindb/migrations/0122_remove_personproject_person_and_more.py +219 -0
- lamindb-1.12.1/lamindb/migrations/0123_alter_artifact_description_alter_branch_description_and_more.py +82 -0
- lamindb-1.12.1/lamindb/migrations/0124_page_artifact_page_collection_page_feature_page_and_more.py +15 -0
- lamindb-1.12.1/lamindb/migrations/0125_artifact_is_locked_collection_is_locked_and_more.py +79 -0
- lamindb-1.12.1/lamindb/migrations/0126_alter_artifact_is_locked_alter_collection_is_locked_and_more.py +105 -0
- lamindb-1.12.1/lamindb/migrations/0127_alter_run_status_code_feature_dtype.py +31 -0
- lamindb-1.12.1/lamindb/migrations/0128_artifact__real_key.py +21 -0
- lamindb-1.12.1/lamindb/migrations/0129_remove_feature_page_remove_project_page_and_more.py +779 -0
- lamindb-1.12.1/lamindb/migrations/0130_branch_space_alter_artifactblock_artifact_and_more.py +170 -0
- lamindb-1.12.1/lamindb/migrations/0131_record_unique_name_type_space.py +18 -0
- lamindb-1.12.1/lamindb/migrations/0132_record_parents_record_reference_and_more.py +61 -0
- lamindb-1.12.1/lamindb/migrations/0133_artifactuser_artifact_users.py +108 -0
- lamindb-1.11.3/lamindb/migrations/0119_squashed.py → lamindb-1.12.1/lamindb/migrations/0133_squashed.py +1211 -322
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/__init__.py +14 -4
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_django.py +1 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_feature_manager.py +1 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_is_versioned.py +14 -16
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_relations.py +7 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/artifact.py +99 -56
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/artifact_set.py +20 -3
- lamindb-1.12.1/lamindb/models/block.py +174 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/can_curate.py +7 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/collection.py +9 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/feature.py +38 -38
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/has_parents.py +15 -6
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/project.py +44 -99
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/query_manager.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/query_set.py +36 -8
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/record.py +169 -46
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/run.py +44 -10
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/save.py +7 -7
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/schema.py +9 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/sqlrecord.py +87 -35
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/storage.py +13 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/transform.py +7 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/ulabel.py +6 -23
- {lamindb-1.11.3 → lamindb-1.12.1}/noxfile.py +4 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/pyproject.toml +11 -17
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/no-title.ipynb +2 -7
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_artifact.py +30 -11
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_artifact_folders.py +4 -10
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_collection.py +5 -2
- lamindb-1.12.1/tests/core/test_delete.py +37 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_describe_and_df_calls.py +7 -7
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_dtype.py +35 -35
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_feature.py +41 -25
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_feature_label_manager.py +55 -56
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_from_values.py +3 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_has_parents.py +9 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_manager.py +4 -4
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_models.py +14 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_queryset.py +50 -22
- lamindb-1.11.3/tests/core/test_ulabel.py → lamindb-1.12.1/tests/core/test_record.py +7 -7
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_run.py +1 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_save.py +9 -9
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_schema.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_sqlrecord.py +38 -26
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_track.py +3 -3
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_tracked.py +1 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_transform.py +1 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_versioning.py +64 -26
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_cat_managers.py +0 -178
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_curators_examples.py +3 -33
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_curators_general.py +2 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_cxg_curator.py +2 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_records.py +28 -2
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/scripts/check_lamin_dev.py +5 -19
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_artifact_storage.py +9 -1
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_transfer.py +2 -2
- lamindb-1.11.3/docs/clinicore.md +0 -5
- lamindb-1.11.3/lamindb/integrations/__init__.py +0 -14
- lamindb-1.11.3/tests/core/test_delete.py +0 -18
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/ISSUE_TEMPLATE/enhancement.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/ISSUE_TEMPLATE/usage_question.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/workflows/build.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.github/workflows/doc-changes.yml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.gitmodules +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/.pre-commit-config.yaml +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/CONTRIBUTING.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/LICENSE +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/api.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/bionty.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/changelog.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/delete.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/import-modules.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/setup.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/symbol-mapping.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/test_notebooks.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/validate-fields.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq/visibility.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/faq.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/includes/installation.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/index.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/lamindb.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/query-search.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/curate_dataframe_attrs.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_mini_immuno_schema_flexible.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_schema_anndata_ensembl_gene_ids_and_valid_features_in_obs.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_schema_anndata_uns.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_schema_df_metadata.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_schema_spatialdata.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/define_valid_features.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/run_track_and_finish.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/run_track_with_params.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/scripts/synced_with_git.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/anndata-accessor.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/prepare-transfer-local-to-cloud.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/test-files/iris.csv +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/test-files/iris.data +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/test-files/new_iris.csv +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/test_notebooks.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage/transfer-local-to-cloud.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/storage.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/test_notebooks.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/transfer.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/docs/wetlab.md +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/_finish.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/_view.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/dtypes.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/fields.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/ids.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/uids.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/base/users.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_compat.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_settings.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_sync_git.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/_track_environment.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/exceptions.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/loaders.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_anndata_accessor.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_backed_access.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_polars_lazy_df.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_pyarrow_dataset.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_spatialdata_accessor.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_tiledbsoma.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_valid_suffixes.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/_zarr.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/storage/objects.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/subsettings/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/subsettings/_annotation_settings.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/subsettings/_creation_settings.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/core/types.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/curators/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/curators/_legacy.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/errors.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/cellxgene/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/cellxgene/_cellxgene.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/cellxgene/cellxgene_schema_versions.csv +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/croissant/mini_immuno.anndata.zarr_metadata.json +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/datasets/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/datasets/_core.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/datasets/_fake.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/datasets/_small.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/datasets/mini_immuno.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/fixtures/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/fixtures/sheets.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/schemas/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/schemas/_anndata.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/examples/schemas/_simple.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/integrations/_croissant.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/integrations/_vitessce.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0069_squashed.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0070_lamindbv1_migrate_data.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0071_lamindbv1_migrate_schema.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0072_remove_user__branch_code_remove_user_aux_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0073_merge_ourprojects.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0074_lamindbv1_part4.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0075_lamindbv1_part5.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0076_lamindbv1_part6.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0077_lamindbv1_part6b.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0078_lamindbv1_part6c.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0079_alter_rundata_value_json_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0080_polish_lamindbv1.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0081_revert_textfield_collection.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0082_alter_feature_dtype.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0083_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0084_alter_schemafeature_feature_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0085_alter_feature_is_type_alter_flextable_is_type_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0086_various.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0087_rename__schemas_m2m_artifact_feature_sets_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0088_schema_components.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0089_subsequent_runs.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0090_runproject_project_runs.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0091_alter_featurevalue_options_alter_space_options_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0092_alter_artifactfeaturevalue_artifact_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0093_alter_schemacomponent_unique_together.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0094_writeloglock_writelogmigrationstate_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0095_remove_rundata_flextable.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0096_remove_artifact__param_values_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0097_remove_schemaparam_param_remove_paramvalue_param_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0098_alter_feature_type_alter_project_type_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0099_alter_writelog_seqno.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0100_branch_alter_artifact__branch_code_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0101_alter_artifact_hash_alter_feature_name_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0102_remove_writelog_branch_code_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0103_remove_writelog_migration_state_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0104_alter_branch_uid.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0105_record_unique_name.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0106_transfer_data_migration.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0107_add_schema_to_record.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0108_remove_record_sheet_remove_sheetproject_sheet_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0109_record_input_of_runs_alter_record_run_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0110_rename_values_artifacts_record_linked_artifacts.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0111_remove_record__sort_order.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0112_alter_recordartifact_feature_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0113_lower_case_branch_and_space_names.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0114_alter_run__status_code.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0115_alter_space_uid.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0116_remove_artifact_unique_artifact_storage_key_hash_and_more.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0117_fix_artifact_storage_hash_unique_constraints.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0118_alter_recordproject_value_projectrecord.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0119_rename_records_project_linked_in_records.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/0121_recorduser.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/migrations/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_describe.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_from_values.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/models/_label_manager.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/py.typed +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/setup/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/setup/_switch.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/setup/core/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/setup/errors/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/lamindb/setup/types/__init__.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/conftest.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/_dataset_fixtures.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/conftest.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/basic-r-notebook.Rmd.cleaned.html +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/basic-r-notebook.Rmd.html +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/duplicate/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/with-title-initialized-consecutive-finish-not-last-cell.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/notebooks/with-title-initialized-consecutive-finish.ipynb +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/duplicate1/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/duplicate2/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/duplicate3/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/duplicate4/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/duplicate5/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/script-to-test-filename-change.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/scripts/script-to-test-versioning.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_can_curate.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_data.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_db.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_integrity.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_load.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_notebooks.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_search.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_settings.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_storage.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_view.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/core/test_visibility.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/conftest.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_curate_from_croissant.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_curators_multivalue.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/curators/test_dataframe_curators_accounting_example.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/conftest.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/jwt_utils.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/scripts/clean_lamin_dev.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/scripts/setup_access.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/scripts/setup_instance.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/permissions/test_permissions.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/conftest.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_artifact_zarr.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_cache.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_connect_reconnect.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_storage_lifecycle.py +0 -0
- {lamindb-1.11.3 → lamindb-1.12.1}/tests/storage/test_streaming.py +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: lamindb
|
3
|
-
Version: 1.
|
4
|
-
Summary: A data
|
3
|
+
Version: 1.12.1
|
4
|
+
Summary: A data lakehouse for biology.
|
5
5
|
Author-email: Lamin Labs <open-source@lamin.ai>
|
6
6
|
Requires-Python: >=3.10,<3.14
|
7
7
|
Description-Content-Type: text/markdown
|
@@ -10,22 +10,20 @@ Classifier: Programming Language :: Python :: 3.11
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.12
|
11
11
|
Classifier: Programming Language :: Python :: 3.13
|
12
12
|
Requires-Dist: lamin_utils==0.15.0
|
13
|
-
Requires-Dist: lamin_cli==1.
|
14
|
-
Requires-Dist: lamindb_setup[aws]==1.
|
15
|
-
Requires-Dist: bionty
|
16
|
-
Requires-Dist: wetlab
|
13
|
+
Requires-Dist: lamin_cli==1.8.0
|
14
|
+
Requires-Dist: lamindb_setup[aws]==1.11.0
|
15
|
+
Requires-Dist: bionty==1.8.1
|
16
|
+
Requires-Dist: wetlab==1.6.1
|
17
17
|
Requires-Dist: nbproject==0.11.1
|
18
18
|
Requires-Dist: jupytext
|
19
19
|
Requires-Dist: nbconvert>=7.2.1
|
20
|
-
Requires-Dist: mistune!=3.1.0
|
21
20
|
Requires-Dist: pyyaml
|
22
21
|
Requires-Dist: pyarrow
|
23
22
|
Requires-Dist: pandera>=0.24.0
|
24
23
|
Requires-Dist: typing_extensions!=4.6.0
|
25
24
|
Requires-Dist: python-dateutil
|
26
25
|
Requires-Dist: pandas>=2.0.0
|
27
|
-
Requires-Dist:
|
28
|
-
Requires-Dist: anndata>=0.8.0,<=0.12.1
|
26
|
+
Requires-Dist: anndata>=0.8.0,<=0.12.2
|
29
27
|
Requires-Dist: fsspec
|
30
28
|
Requires-Dist: graphviz
|
31
29
|
Requires-Dist: psycopg2-binary
|
@@ -60,8 +58,7 @@ Provides-Extra: zarr
|
|
60
58
|
|
61
59
|
# LaminDB - A data lakehouse for biology
|
62
60
|
|
63
|
-
LaminDB
|
64
|
-
It organizes datasets through validation & annotation and provides data lineage, queryability, and reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
|
61
|
+
LaminDB organizes datasets through validation & annotation and provides data lineage, queryability & reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
|
65
62
|
|
66
63
|
<details>
|
67
64
|
<summary>Why?</summary>
|
@@ -80,17 +77,17 @@ Moreover, it provides context through data lineage -- tracing data and code, sci
|
|
80
77
|
**Highlights.**
|
81
78
|
|
82
79
|
- **data lineage:** track inputs & outputs of notebooks, scripts, functions & pipelines with a single line of code
|
83
|
-
- **unified
|
84
|
-
- **lakehouse
|
85
|
-
- **biological
|
86
|
-
- **biological entities**:
|
80
|
+
- **unified access:** storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
|
81
|
+
- **lakehouse**: manage, monitor & validate features, labels & dataset schemas; distributed queries and batch loading
|
82
|
+
- **biological formats:** validate & annotate `DataFrame`, `AnnData`, `SpatialData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, ...
|
83
|
+
- **biological entities**: manage experimental metadata & ontologies based on the Django ORM
|
87
84
|
- **reproducible & auditable:** auto-version & timestamp execution reports, source code & compute environments, attribute records to users
|
88
85
|
- **zero lock-in & scalable:** runs in your infrastructure; is _not_ a client for a rate-limited REST API
|
89
86
|
- **extendable:** create custom plug-ins for your own applications based on the Django ecosystem
|
90
87
|
- **integrations:** visualization tools like [vitessce](https://docs.lamin.ai/vitessce), workflow managers like [nextflow](https://docs.lamin.ai/nextflow) & [redun](https://docs.lamin.ai/redun), and [other tools](https://docs.lamin.ai/integrations)
|
91
88
|
- **production-ready:** used in BigPharma, BioTech, hospitals & top labs
|
92
89
|
|
93
|
-
LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai)
|
90
|
+
LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai).
|
94
91
|
|
95
92
|
## Docs
|
96
93
|
|
@@ -155,26 +152,26 @@ artifact.describe()
|
|
155
152
|
|
156
153
|
<img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/BOTCBgHDAvwglN3U0002.png" width="550">
|
157
154
|
|
158
|
-
You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g)
|
155
|
+
You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g):
|
159
156
|
|
160
157
|
<img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/6sofuDVvTANB0f480002.png" width="850">
|
161
158
|
|
162
159
|
To annotate an artifact with a label, use:
|
163
160
|
|
164
161
|
```python
|
165
|
-
my_experiment = ln.
|
166
|
-
artifact.
|
162
|
+
my_experiment = ln.Record(name="My experiment").save() # create a label in the universal label ontology
|
163
|
+
artifact.records.add(my_experiment) # annotate the artifact with the label
|
167
164
|
```
|
168
165
|
|
169
166
|
To query for a set of artifacts, use the `filter()` statement.
|
170
167
|
|
171
168
|
```python
|
172
|
-
ln.Artifact.filter(
|
169
|
+
ln.Artifact.filter(records=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
|
173
170
|
ln.Artifact.filter(transform__key="create-fasta.py").to_dataframe() # query by the name of the script we just ran
|
174
171
|
```
|
175
172
|
|
176
173
|
If you have a structured dataset like a `DataFrame`, an `AnnData`, or another array, you can validate the content of the dataset (and parse annotations).
|
177
|
-
Here is an example for a dataframe
|
174
|
+
Here is [an example for a dataframe](https://docs.lamin.ai/tutorial#validate-an-artifact).
|
178
175
|
|
179
176
|
With a large body of validated datasets, you can then access data through distributed queries & batch streaming, see here: [docs.lamin.ai/arrays](https://docs.lamin.ai/arrays).
|
180
177
|
|
@@ -7,8 +7,7 @@
|
|
7
7
|
|
8
8
|
# LaminDB - A data lakehouse for biology
|
9
9
|
|
10
|
-
LaminDB
|
11
|
-
It organizes datasets through validation & annotation and provides data lineage, queryability, and reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
|
10
|
+
LaminDB organizes datasets through validation & annotation and provides data lineage, queryability & reproducibility on top of [FAIR](https://en.wikipedia.org/wiki/FAIR_data) data.
|
12
11
|
|
13
12
|
<details>
|
14
13
|
<summary>Why?</summary>
|
@@ -27,17 +26,17 @@ Moreover, it provides context through data lineage -- tracing data and code, sci
|
|
27
26
|
**Highlights.**
|
28
27
|
|
29
28
|
- **data lineage:** track inputs & outputs of notebooks, scripts, functions & pipelines with a single line of code
|
30
|
-
- **unified
|
31
|
-
- **lakehouse
|
32
|
-
- **biological
|
33
|
-
- **biological entities**:
|
29
|
+
- **unified access:** storage locations (local, S3, GCP, ...), SQL databases (Postgres, SQLite) & ontologies
|
30
|
+
- **lakehouse**: manage, monitor & validate features, labels & dataset schemas; distributed queries and batch loading
|
31
|
+
- **biological formats:** validate & annotate `DataFrame`, `AnnData`, `SpatialData`, ... backed by `parquet`, `zarr`, HDF5, LanceDB, ...
|
32
|
+
- **biological entities**: manage experimental metadata & ontologies based on the Django ORM
|
34
33
|
- **reproducible & auditable:** auto-version & timestamp execution reports, source code & compute environments, attribute records to users
|
35
34
|
- **zero lock-in & scalable:** runs in your infrastructure; is _not_ a client for a rate-limited REST API
|
36
35
|
- **extendable:** create custom plug-ins for your own applications based on the Django ecosystem
|
37
36
|
- **integrations:** visualization tools like [vitessce](https://docs.lamin.ai/vitessce), workflow managers like [nextflow](https://docs.lamin.ai/nextflow) & [redun](https://docs.lamin.ai/redun), and [other tools](https://docs.lamin.ai/integrations)
|
38
37
|
- **production-ready:** used in BigPharma, BioTech, hospitals & top labs
|
39
38
|
|
40
|
-
LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai)
|
39
|
+
LaminDB can be connected to LaminHub to serve as a [LIMS](https://en.wikipedia.org/wiki/Laboratory_information_management_system) for wetlab scientists, closing the drylab-wetlab feedback loop: [lamin.ai](https://lamin.ai).
|
41
40
|
|
42
41
|
## Docs
|
43
42
|
|
@@ -102,25 +101,25 @@ artifact.describe()
|
|
102
101
|
|
103
102
|
<img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/BOTCBgHDAvwglN3U0002.png" width="550">
|
104
103
|
|
105
|
-
You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g)
|
104
|
+
You can organize datasets with validation & annotation of any kind of metadata to then access them via queries & search. Here is a more [comprehensive example](https://lamin.ai/laminlabs/lamindata/artifact/9K1dteZ6Qx0EXK8g):
|
106
105
|
|
107
106
|
<img src="https://lamin-site-assets.s3.amazonaws.com/.lamindb/6sofuDVvTANB0f480002.png" width="850">
|
108
107
|
|
109
108
|
To annotate an artifact with a label, use:
|
110
109
|
|
111
110
|
```python
|
112
|
-
my_experiment = ln.
|
113
|
-
artifact.
|
111
|
+
my_experiment = ln.Record(name="My experiment").save() # create a label in the universal label ontology
|
112
|
+
artifact.records.add(my_experiment) # annotate the artifact with the label
|
114
113
|
```
|
115
114
|
|
116
115
|
To query for a set of artifacts, use the `filter()` statement.
|
117
116
|
|
118
117
|
```python
|
119
|
-
ln.Artifact.filter(
|
118
|
+
ln.Artifact.filter(records=my_experiment, suffix=".fasta").to_dataframe() # query by suffix and the ulabel we just created
|
120
119
|
ln.Artifact.filter(transform__key="create-fasta.py").to_dataframe() # query by the name of the script we just ran
|
121
120
|
```
|
122
121
|
|
123
122
|
If you have a structured dataset like a `DataFrame`, an `AnnData`, or another array, you can validate the content of the dataset (and parse annotations).
|
124
|
-
Here is an example for a dataframe
|
123
|
+
Here is [an example for a dataframe](https://docs.lamin.ai/tutorial#validate-an-artifact).
|
125
124
|
|
126
125
|
With a large body of validated datasets, you can then access data through distributed queries & batch streaming, see here: [docs.lamin.ai/arrays](https://docs.lamin.ai/arrays).
|
@@ -18,31 +18,9 @@
|
|
18
18
|
"cell_type": "markdown",
|
19
19
|
"metadata": {},
|
20
20
|
"source": [
|
21
|
-
"We saw how LaminDB allows to query & search across artifacts
|
21
|
+
"We saw how LaminDB allows to query & search across artifacts using registries: {doc}`registries`.\n",
|
22
22
|
"\n",
|
23
|
-
"Let us now
|
24
|
-
"\n",
|
25
|
-
"```\n",
|
26
|
-
"# get a lookup for labels\n",
|
27
|
-
"ulabels = ln.ULabel.lookup()\n",
|
28
|
-
"# query a parquet file matching an \"setosa\"\n",
|
29
|
-
"df = ln.Artifact.filter(ulabels=ulabels.setosa, suffix=\".suffix\").first().load()\n",
|
30
|
-
"# query all observations in the DataFrame matching \"setosa\"\n",
|
31
|
-
"df_setosa = df.loc[:, df.iris_organism_name == ulabels.setosa.name] \n",
|
32
|
-
"```\n",
|
33
|
-
"\n",
|
34
|
-
"Because the artifact was validated, querying the `DataFrame` is guaranteed to succeed!\n",
|
35
|
-
"\n",
|
36
|
-
"Such within-collection queries are also possible for cloud-backed collections using [DuckDB](https://duckdb.org),\n",
|
37
|
-
"[TileDB](https://tiledb.com), [zarr](https://zarr.readthedocs.io/en/stable), [HDF5](https://docs.h5py.org/en/stable),\n",
|
38
|
-
"[parquet](https://parquet.apache.org), and other storage backends.\n",
|
39
|
-
"\n",
|
40
|
-
"- For a use case with TileDB, see: {doc}`docs:cellxgene`\n",
|
41
|
-
"- For a use case with DuckDB, see: {doc}`docs:rxrx`\n",
|
42
|
-
"\n",
|
43
|
-
"In this notebook, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud.\n",
|
44
|
-
"\n",
|
45
|
-
"Let us create a remote instance for testing."
|
23
|
+
"Let us now query the datasets in storage themselves. Here, we show how to subset an `AnnData` and generic `HDF5` and `zarr` collections accessed in the cloud."
|
46
24
|
]
|
47
25
|
},
|
48
26
|
{
|
@@ -55,6 +33,7 @@
|
|
55
33
|
},
|
56
34
|
"outputs": [],
|
57
35
|
"source": [
|
36
|
+
"# replace with your username and S3 bucket\n",
|
58
37
|
"!lamin login testuser1\n",
|
59
38
|
"!lamin init --storage s3://lamindb-ci/test-arrays"
|
60
39
|
]
|
@@ -80,7 +59,7 @@
|
|
80
59
|
"import numpy as np\n",
|
81
60
|
"import zarr\n",
|
82
61
|
"\n",
|
83
|
-
"ln.track(
|
62
|
+
"ln.track()"
|
84
63
|
]
|
85
64
|
},
|
86
65
|
{
|